{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "Install the spreadsheet gem version ~>1.1.1 for using spreadsheet functions.\n", "\n", "Install the mechanize gem version ~>2.7.5 for using mechanize functions.\n" ] }, { "data": { "text/plain": [ "true" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "require 'daru/view'" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", " /* BEGIN highstock.js */\n", "\n", "/*\n", " Highstock JS v5.0.12 (2017-05-24)\n", "\n", " (c) 2009-2016 Torstein Honsi\n", "\n", " License: www.highcharts.com/license\n", "*/\n", "(function(L,T){\"object\"===typeof module&&module.exports?module.exports=L.document?T(L):T:L.Highcharts=T(L)})(\"undefined\"!==typeof window?window:this,function(L){L=function(){var a=window,E=a.document,B=a.navigator&&a.navigator.userAgent||\"\",F=E&&E.createElementNS&&!!E.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\").createSVGRect,D=/(edge|msie|trident)/i.test(B)&&!window.opera,n=!F,h=/Firefox/.test(B),u=h&&4>parseInt(B.split(\"Firefox/\")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:\"Highstock\",\n", "version:\"5.0.12\",deg2rad:2*Math.PI/360,doc:E,hasBidiBug:u,hasTouch:E&&void 0!==E.documentElement.ontouchstart,isMS:D,isWebKit:/AppleWebKit/.test(B),isFirefox:h,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:\"http://www.w3.org/2000/svg\",chartCount:0,seriesTypes:{},symbolSizes:{},svg:F,vml:n,win:a,marginNames:[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"],noop:function(){},charts:[]}}();(function(a){var E=[],B=a.charts,F=a.doc,D=a.win;a.error=function(n,h){n=a.isNumber(n)?\"Highcharts error #\"+\n", "n+\": www.highcharts.com/errors/\"+n:n;if(h)throw Error(n);D.console&&console.log(n)};a.Fx=function(a,h,u){this.options=h;this.elem=a;this.prop=u};a.Fx.prototype={dSetter:function(){var a=this.paths[0],h=this.paths[1],u=[],r=this.now,x=a.length,t;if(1===r)u=this.toD;else if(x===h.length&&1>r)for(;x--;)t=parseFloat(a[x]),u[x]=isNaN(t)?a[x]:r*parseFloat(h[x]-t)+t;else u=h;this.elem.attr(\"d\",u,null,!0)},update:function(){var a=this.elem,h=this.prop,u=this.now,r=this.options.step;if(this[h+\"Setter\"])this[h+\n", "\"Setter\"]();else a.attr?a.element&&a.attr(h,u,null,!0):a.style[h]=u+this.unit;r&&r.call(a,u,this)},run:function(a,h,u){var r=this,n=function(a){return n.stopped?!1:r.step(a)},t;this.startTime=+new Date;this.start=a;this.end=h;this.unit=u;this.now=this.start;this.pos=0;n.elem=this.elem;n.prop=this.prop;n()&&1===E.push(n)&&(n.timerId=setInterval(function(){for(t=0;t=m+this.startTime?(this.now=this.end,this.pos=1,this.update(),u=f[this.prop]=!0,a.objectEach(f,function(a){!0!==a&&(u=!1)}),u&&t&&t.call(x),n=!1):(this.pos=r.easing((h-this.startTime)/m),this.now=this.start+(this.end-this.start)*this.pos,this.update(),n=!0);return n},initPath:function(n,h,u){function r(a){var c,b;for(A=a.length;A--;)c=\"M\"===a[A]||\"L\"===a[A],b=/[a-zA-Z]/.test(a[A+3]),c&&b&&a.splice(A+1,0,a[A+1],a[A+2],a[A+1],a[A+2])}\n", "function x(a,c){for(;a.lengtht?\"AM\":\"PM\",P:12>t?\"am\":\"pm\",S:A(x.getSeconds()),L:A(Math.round(h%1E3),3)},a.dateFormats);a.objectEach(r,function(a,b){for(;-1!==n.indexOf(\"%\"+b);)n=n.replace(\"%\"+b,\"function\"===typeof a?a(h):a)});return u?n.substr(0,\n", "1).toUpperCase()+n.substr(1):n};a.formatSingle=function(n,h){var u=/\\.([0-9])/,r=a.defaultOptions.lang;/f$/.test(n)?(u=(u=n.match(u))?u[1]:-1,null!==h&&(h=a.numberFormat(h,u,r.decimalPoint,-1=u&&(h=[1/u])));for(r=0;r=n||!x&&t<=(h[r]+(h[r+1]||h[r]))/2);r++);return m=a.correctFloat(m*u,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=\n", "function(a,h){var n=a.length,r,x;for(x=0;xn&&(n=a[h]);return n};a.destroyObjectProperties=function(n,h){a.objectEach(n,function(a,r){a&&a!==h&&a.destroy&&a.destroy();delete n[r]})};a.discardElement=function(n){var h=a.garbageBin;h||(h=a.createElement(\"div\"));\n", "n&&h.appendChild(n);h.innerHTML=\"\"};a.correctFloat=function(a,h){return parseFloat(a.toPrecision(h||14))};a.setAnimation=function(n,h){h.renderer.globalAnimation=a.pick(n,h.options.chart.animation,!0)};a.animObject=function(n){return a.isObject(n)?a.merge(n):{duration:n?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(n,h,u,r){n=+n||0;h=+h;var x=a.defaultOptions.lang,t=(n.toString().split(\".\")[1]||\"\").length,\n", "m,f;-1===h?h=Math.min(t,20):a.isNumber(h)||(h=2);f=(Math.abs(n)+Math.pow(10,-Math.max(h,t)-1)).toFixed(h);t=String(a.pInt(f));m=3n?\"-\":\"\")+(m?t.substr(0,m)+r:\"\");n+=t.substr(m).replace(/(\\d{3})(?=\\d)/g,\"$1\"+r);h&&(n+=u+f.slice(-h));return n};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(n,h,u){if(\"width\"===h)return Math.min(n.offsetWidth,n.scrollWidth)-a.getStyle(n,\"padding-left\")-\n", "a.getStyle(n,\"padding-right\");if(\"height\"===h)return Math.min(n.offsetHeight,n.scrollHeight)-a.getStyle(n,\"padding-top\")-a.getStyle(n,\"padding-bottom\");if(n=D.getComputedStyle(n,void 0))n=n.getPropertyValue(h),a.pick(u,!0)&&(n=a.pInt(n));return n};a.inArray=function(a,h){return h.indexOf?h.indexOf(a):[].indexOf.call(h,a)};a.grep=function(a,h){return[].filter.call(a,h)};a.find=function(a,h){return[].find.call(a,h)};a.map=function(a,h){for(var n=[],r=0,x=a.length;r>16,(h&65280)>>8,h&255,1]:4===n&&(r=[(h&3840)>>4|(h&3840)>>8,(h&240)>>4|h&240,(h&15)<<4|h&15,1])),!r)for(x=this.parsers.length;x--&&\n", "!r;)t=this.parsers[x],(n=t.regex.exec(h))&&(r=t.parse(n));this.rgba=r||[]},get:function(a){var h=this.input,r=this.rgba,n;this.stops?(n=D(h),n.stops=[].concat(n.stops),E(this.stops,function(h,m){n.stops[m]=[n.stops[m][0],h.get(a)]})):n=r&&B(r[0])?\"rgb\"===a||!a&&1===r[3]?\"rgb(\"+r[0]+\",\"+r[1]+\",\"+r[2]+\")\":\"a\"===a?r[3]:\"rgba(\"+r.join(\",\")+\")\":h;return n},brighten:function(a){var h,r=this.rgba;if(this.stops)E(this.stops,function(h){h.brighten(a)});else if(B(a)&&0!==a)for(h=0;3>h;h++)r[h]+=n(255*a),0>\n", "r[h]&&(r[h]=0),255C.width)C={width:0,height:0}}else C=this.htmlGetBBox();c.isSVG&&(a=C.width,c=C.height,b&&\"11px\"===b.fontSize&&17===Math.round(c)&&(C.height=c=14),k&&(C.width=Math.abs(c*Math.sin(z))+Math.abs(a*Math.cos(z)),C.height=Math.abs(c*Math.cos(z))+Math.abs(a*Math.sin(z))));\n", "if(g&&0]*>/g,\"\")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,k,c){\"string\"===typeof a?c.setAttribute(k,a):a&&this.colorGradient(a,k,c)},\n", "visibilitySetter:function(a,k,c){\"inherit\"===a?c.removeAttribute(k):c.setAttribute(k,a)},zIndexSetter:function(a,c){var z=this.renderer,l=this.parentGroup,C=(l||z).element||z.box,b,d=this.element,q;b=this.added;var e;t(a)&&(d.zIndex=a,a=+a,this[c]===a&&(b=!1),this[c]=a);if(b){(a=this.zIndex)&&l&&(l.handleZ=!0);c=C.childNodes;for(e=0;ea||!t(a)&&t(b)||0>a&&!t(b)&&C!==z.box)&&(C.insertBefore(d,l),q=!0);q||C.appendChild(d)}return q},_defaultSetter:function(a,\n", "k,c){c.setAttribute(k,a)}});E.prototype.yGetter=E.prototype.xGetter;E.prototype.translateXSetter=E.prototype.translateYSetter=E.prototype.rotationSetter=E.prototype.verticalAlignSetter=E.prototype.scaleXSetter=E.prototype.scaleYSetter=function(a,k){this[k]=a;this.doTransform=!0};E.prototype[\"stroke-widthSetter\"]=E.prototype.strokeSetter=function(a,k,c){this[k]=a;this.stroke&&this[\"stroke-width\"]?(E.prototype.fillSetter.call(this,this.stroke,\"stroke\",c),c.setAttribute(\"stroke-width\",this[\"stroke-width\"]),\n", "this.hasStroke=!0):\"stroke-width\"===k&&0===a&&this.hasStroke&&(c.removeAttribute(\"stroke\"),this.hasStroke=!1)};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};d(B.prototype,{Element:E,SVG_NS:N,init:function(a,k,c,z,l,b){var C;z=this.createElement(\"svg\").attr({version:\"1.1\",\"class\":\"highcharts-root\"}).css(this.getStyle(z));C=z.element;a.appendChild(C);-1===a.innerHTML.indexOf(\"xmlns\")&&n(C,\"xmlns\",this.SVG_NS);this.isSVG=!0;this.box=C;this.boxWrapper=z;this.alignedObjects=[];this.url=(q||\n", "K)&&g.getElementsByTagName(\"base\").length?O.location.href.replace(/#.*?$/,\"\").replace(/<[^>]*>/g,\"\").replace(/([\\('\\)])/g,\"\\\\$1\").replace(/ /g,\"%20\"):\"\";this.createElement(\"desc\").add().element.appendChild(g.createTextNode(\"Created with Highstock 5.0.12\"));this.defs=this.createElement(\"defs\").add();this.allowHTML=b;this.forExport=l;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(k,c,!1);var d;q&&a.getBoundingClientRect&&(k=function(){r(a,{left:0,top:0});d=a.getBoundingClientRect();\n", "r(a,{left:Math.ceil(d.left)-d.left+\"px\",top:Math.ceil(d.top)-d.top+\"px\"})},k(),this.unSubPixelFix=F(O,\"resize\",k))},getStyle:function(a){return this.style=d({fontFamily:'\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif',fontSize:\"12px\"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();f(this.gradients||{});this.gradients=\n", "null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var k=new this.Element;k.init(this,a);return k},draw:G,getRadialAttr:function(a,k){return{cx:a[0]-a[2]/2+k.cx*a[2],cy:a[1]-a[2]/2+k.cy*a[2],r:k.r*a[2]}},getSpanWidth:function(a,k){var c=a.getBBox(!0).width;!M&&this.forExport&&(c=this.measureSpanWidth(k.firstChild.data,a.styles));return c},applyEllipsis:function(a,k,c,z){var l=this.getSpanWidth(a,k),b=l>z,l=c,d,q=0,C=\n", "c.length,e=function(a){k.removeChild(k.firstChild);a&&k.appendChild(g.createTextNode(a))};if(b){for(;q<=C;)d=Math.ceil((q+C)/2),l=c.substring(0,d)+\"\\u2026\",e(l),l=this.getSpanWidth(a,k),q===C?q=C+1:l>z?C=d-1:q=d;0===C&&e(\"\")}return b},buildText:function(a){var c=a.element,z=this,l=z.forExport,d=I(a.textStr,\"\").toString(),q=-1!==d.indexOf(\"\\x3c\"),C=c.childNodes,y,f,w,G,v=n(c,\"x\"),p=a.styles,J=a.textWidth,m=p&&p.lineHeight,A=p&&p.textOutline,H=p&&\"ellipsis\"===p.textOverflow,K=p&&\"nowrap\"===p.whiteSpace,\n", "h=p&&p.fontSize,Q,t,x=C.length,p=J&&!a.added&&this.box,u=function(a){var l;l=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:h||z.style.fontSize||12;return m?k(m):z.fontMetrics(l,a.getAttribute(\"style\")?a:c).h};Q=[d,H,K,m,A,h,J].join();if(Q!==a.textCache){for(a.textCache=Q;x--;)c.removeChild(C[x]);q||A||H||J||-1!==d.indexOf(\" \")?(y=/<.*class=\"([^\"]+)\".*>/,f=/<.*style=\"([^\"]+)\".*>/,w=/<.*href=\"([^\"]+)\".*>/,p&&p.appendChild(c),d=q?d.replace(/<(b|strong)>/g,'\\x3cspan style\\x3d\"font-weight:bold\"\\x3e').replace(/<(i|em)>/g,\n", "'\\x3cspan style\\x3d\"font-style:italic\"\\x3e').replace(//g,\"\\x3c/span\\x3e\").split(//g):[d],d=b(d,function(a){return\"\"!==a}),e(d,function(k,b){var d,q=0;k=k.replace(/^\\s+|\\s+$/g,\"\").replace(//g,\"\\x3c/span\\x3e|||\");d=k.split(\"|||\");e(d,function(k){if(\"\"!==k||1===d.length){var C={},e=g.createElementNS(z.SVG_NS,\"tspan\"),p,I;y.test(k)&&(p=k.match(y)[1],n(e,\"class\",p));f.test(k)&&(I=k.match(f)[1].replace(/(;| |^)color([ :])/,\n", "\"$1fill$2\"),n(e,\"style\",I));w.test(k)&&!l&&(n(e,\"onclick\",'location.href\\x3d\"'+k.match(w)[1]+'\"'),r(e,{cursor:\"pointer\"}));k=(k.replace(/<(.|\\n)*?>/g,\"\")||\" \").replace(/</g,\"\\x3c\").replace(/>/g,\"\\x3e\");if(\" \"!==k){e.appendChild(g.createTextNode(k));q?C.dx=0:b&&null!==v&&(C.x=v);n(e,C);c.appendChild(e);!q&&t&&(!M&&l&&r(e,{display:\"block\"}),n(e,\"dy\",u(e)));if(J){C=k.replace(/([^\\^])-/g,\"$1- \").split(\" \");p=1J,void 0===G&&(G=k),k&&1!==C.length?(e.removeChild(e.firstChild),m.unshift(C.pop())):(C=m,m=[],C.length&&!K&&(e=g.createElementNS(N,\"tspan\"),n(e,{dy:h,x:v}),I&&n(e,\"style\",I),c.appendChild(e)),A>J&&(J=A)),C.length&&e.appendChild(g.createTextNode(C.join(\" \").replace(/- /g,\"-\")));a.rotation=Q}q++}}});t=t||c.childNodes.length}),G&&a.attr(\"title\",a.textStr),p&&p.removeChild(c),A&&a.applyTextOutline&&a.applyTextOutline(A)):c.appendChild(g.createTextNode(d.replace(/</g,\n", "\"\\x3c\").replace(/>/g,\"\\x3e\")))}},getContrast:function(a){a=u(a).rgba;return 510c?l>k+d&&lq?l>k+d&&lz&&q>a+d&&ql&&q>a+d&&qa?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a,k,c){var z=a;k&&c&&(z=Math.max(z*Math.cos(k*m),4));return{x:-a/3*Math.sin(k*m),y:z}},label:function(k,c,\n", "l,b,q,f,w,G,g){var v=this,p=v.g(\"button\"!==g&&\"label\"),M=p.text=v.text(\"\",0,0,w).attr({zIndex:1}),C,I,J=0,m=3,A=0,H,h,K,Q,r,N={},n,x,u=/^url\\((.*?)\\)$/.test(b),P=u,R,V,U,O;g&&p.addClass(\"highcharts-\"+g);P=u;R=function(){return(n||0)%2/2};V=function(){var a=M.element.style,k={};I=(void 0===H||void 0===h||r)&&t(M.textStr)&&M.getBBox();p.width=(H||I.width||0)+2*m+A;p.height=(h||I.height||0)+2*m;x=m+v.fontMetrics(a&&a.fontSize,M).b;P&&(C||(p.box=C=v.symbols[b]||u?v.symbol(b):v.rect(),C.addClass((\"button\"===\n", "g?\"\":\"highcharts-label-box\")+(g?\" highcharts-\"+g+\"-box\":\"\")),C.add(p),a=R(),k.x=a,k.y=(G?-x:0)+a),k.width=Math.round(p.width),k.height=Math.round(p.height),C.attr(d(k,N)),N={})};U=function(){var a=A+m,k;k=G?0:x;t(H)&&I&&(\"center\"===r||\"right\"===r)&&(a+={center:.5,right:1}[r]*(H-I.width));if(a!==M.x||k!==M.y)M.attr(\"x\",a),void 0!==k&&M.attr(\"y\",k);M.x=a;M.y=k};O=function(a,k){C?C.attr(a,k):N[a]=k};p.onAdd=function(){M.add(p);p.attr({text:k||0===k?k:\"\",x:c,y:l});C&&t(q)&&p.attr({anchorX:q,anchorY:f})};\n", "p.widthSetter=function(k){H=a.isNumber(k)?k:null};p.heightSetter=function(a){h=a};p[\"text-alignSetter\"]=function(a){r=a};p.paddingSetter=function(a){t(a)&&a!==m&&(m=p.padding=a,U())};p.paddingLeftSetter=function(a){t(a)&&a!==A&&(A=a,U())};p.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==J&&(J=a,I&&p.attr({x:K}))};p.textSetter=function(a){void 0!==a&&M.textSetter(a);V();U()};p[\"stroke-widthSetter\"]=function(a,k){a&&(P=!0);n=this[\"stroke-width\"]=a;O(k,a)};p.strokeSetter=p.fillSetter=p.rSetter=\n", "function(a,k){\"fill\"===k&&a&&(P=!0);O(k,a)};p.anchorXSetter=function(a,k){q=p.anchorX=a;O(k,Math.round(a)-R()-K)};p.anchorYSetter=function(a,k){f=p.anchorY=a;O(k,a-Q)};p.xSetter=function(a){p.x=a;J&&(a-=J*((H||I.width)+2*m));K=Math.round(a);p.attr(\"translateX\",K)};p.ySetter=function(a){Q=p.y=Math.round(a);p.attr(\"translateY\",Q)};var B=p.css;return d(p,{css:function(a){if(a){var k={};a=y(a);e(p.textProps,function(c){void 0!==a[c]&&(k[c]=a[c],delete a[c])});M.css(k)}return B.call(p,a)},getBBox:function(){return{width:I.width+\n", "2*m,height:I.height+2*m,x:I.x-m,y:I.y-m}},shadow:function(a){a&&(V(),C&&C.shadow(a));return p},destroy:function(){z(p.element,\"mouseenter\");z(p.element,\"mouseleave\");M&&(M=M.destroy());C&&(C=C.destroy());E.prototype.destroy.call(p);p=v=V=U=O=null}})}});a.Renderer=B})(L);(function(a){var E=a.attr,B=a.createElement,F=a.css,D=a.defined,n=a.each,h=a.extend,u=a.isFirefox,r=a.isMS,x=a.isWebKit,t=a.pInt,m=a.SVGRenderer,f=a.win,g=a.wrap;h(a.SVGElement.prototype,{htmlCss:function(a){var d=this.element;if(d=\n", "a&&\"SPAN\"===d.tagName&&a.width)delete a.width,this.textWidth=d,this.updateTransform();a&&\"ellipsis\"===a.textOverflow&&(a.whiteSpace=\"nowrap\",a.overflow=\"hidden\");this.styles=h(this.styles,a);F(this.element,a);return this},htmlGetBBox:function(){var a=this.element;\"text\"===a.nodeName&&(a.style.position=\"absolute\");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,d=this.element,f=this.translateX||0,b=this.translateY||\n", "0,g=this.x||0,v=this.y||0,m=this.textAlign||\"left\",q={left:0,center:.5,right:1}[m],J=this.styles;F(d,{marginLeft:f,marginTop:b});this.shadows&&n(this.shadows,function(a){F(a,{marginLeft:f+1,marginTop:b+1})});this.inverted&&n(d.childNodes,function(c){a.invertChild(c,d)});if(\"SPAN\"===d.tagName){var c=this.rotation,w=t(this.textWidth),K=J&&J.whiteSpace,y=[c,m,d.innerHTML,this.textWidth,this.textAlign].join();y!==this.cTT&&(J=a.fontMetrics(d.style.fontSize).b,D(c)&&this.setSpanRotation(c,q,J),F(d,{width:\"\",\n", "whiteSpace:K||\"nowrap\"}),d.offsetWidth>w&&/[ \\-]/.test(d.textContent||d.innerText)&&F(d,{width:w+\"px\",display:\"block\",whiteSpace:K||\"normal\"}),this.getSpanCorrection(d.offsetWidth,J,q,c,m));F(d,{left:g+(this.xCorr||0)+\"px\",top:v+(this.yCorr||0)+\"px\"});x&&(J=d.offsetHeight);this.cTT=y}}else this.alignOnAdd=!0},setSpanRotation:function(a,d,p){var b={},e=r?\"-ms-transform\":x?\"-webkit-transform\":u?\"MozTransform\":f.opera?\"-o-transform\":\"\";b[e]=b.transform=\"rotate(\"+a+\"deg)\";b[e+(u?\"Origin\":\"-origin\")]=\n", "b.transformOrigin=100*d+\"% \"+p+\"px\";F(this.element,b)},getSpanCorrection:function(a,d,f){this.xCorr=-a*f;this.yCorr=-d}});h(m.prototype,{html:function(a,d,f){var b=this.createElement(\"span\"),e=b.element,p=b.renderer,m=p.isSVG,q=function(a,c){n([\"opacity\",\"visibility\"],function(b){g(a,b+\"Setter\",function(a,b,d,l){a.call(this,b,d,l);c[d]=b})})};b.textSetter=function(a){a!==e.innerHTML&&delete this.bBox;e.innerHTML=this.textStr=a;b.htmlUpdateTransform()};m&&q(b,b.element.style);b.xSetter=b.ySetter=b.alignSetter=\n", "b.rotationSetter=function(a,c){\"align\"===c&&(c=\"textAlign\");b[c]=a;b.htmlUpdateTransform()};b.attr({text:a,x:Math.round(d),y:Math.round(f)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:\"absolute\"});e.style.whiteSpace=\"nowrap\";b.css=b.htmlCss;m&&(b.add=function(a){var c,d=p.box.parentNode,f=[];if(this.parentGroup=a){if(c=a.div,!c){for(;a;)f.push(a),a=a.parentGroup;n(f.reverse(),function(a){var e,l=E(a.element,\"class\");l&&(l={className:l});c=a.div=a.div||B(\"div\",l,{position:\"absolute\",\n", "left:(a.translateX||0)+\"px\",top:(a.translateY||0)+\"px\",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},c||d);e=c.style;h(a,{on:function(){b.on.apply({element:f[0].div},arguments);return a},translateXSetter:function(c,k){e.left=c+\"px\";a[k]=c;a.doTransform=!0},translateYSetter:function(c,k){e.top=c+\"px\";a[k]=c;a.doTransform=!0}});q(a,e)})}}else c=d;c.appendChild(e);b.added=!0;b.alignOnAdd&&b.htmlUpdateTransform();return b});return b}})})(L);(function(a){var E,B,F=\n", "a.createElement,D=a.css,n=a.defined,h=a.deg2rad,u=a.discardElement,r=a.doc,x=a.each,t=a.erase,m=a.extend;E=a.extendClass;var f=a.isArray,g=a.isNumber,e=a.isObject,d=a.merge;B=a.noop;var p=a.pick,b=a.pInt,A=a.SVGElement,v=a.SVGRenderer,H=a.win;a.svg||(B={docMode8:r&&8===r.documentMode,init:function(a,b){var c=[\"\\x3c\",b,' filled\\x3d\"f\" stroked\\x3d\"f\"'],d=[\"position: \",\"absolute\",\";\"],q=\"div\"===b;(\"shape\"===b||q)&&d.push(\"left:0;top:0;width:1px;height:1px;\");d.push(\"visibility: \",q?\"hidden\":\"visible\");\n", "c.push(' style\\x3d\"',d.join(\"\"),'\"/\\x3e');b&&(c=q||\"span\"===b||\"img\"===b?c.join(\"\"):a.prepVML(c),this.element=F(c));this.renderer=a},add:function(a){var b=this.renderer,c=this.element,d=b.box,q=a&&a.inverted,d=a?a.element||a:d;a&&(this.parentGroup=a);q&&b.invertChild(c,d);d.appendChild(c);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr(\"class\",this.className);return this},updateTransform:A.prototype.htmlUpdateTransform,\n", "setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*h),c=Math.sin(a*h);D(this.element,{filter:a?[\"progid:DXImageTransform.Microsoft.Matrix(M11\\x3d\",b,\", M12\\x3d\",-c,\", M21\\x3d\",c,\", M22\\x3d\",b,\", sizingMethod\\x3d'auto expand')\"].join(\"\"):\"none\"})},getSpanCorrection:function(a,b,c,d,e){var q=d?Math.cos(d*h):1,f=d?Math.sin(d*h):0,l=p(this.elemHeight,this.element.offsetHeight),w;this.xCorr=0>q&&-a;this.yCorr=0>f&&-l;w=0>q*f;this.xCorr+=f*b*(w?1-c:c);this.yCorr-=q*b*(d?w?c:1-c:1);e&&\"left\"!==\n", "e&&(this.xCorr-=a*c*(0>q?-1:1),d&&(this.yCorr-=l*c*(0>f?-1:1)),D(this.element,{textAlign:e}))},pathToVML:function(a){for(var b=a.length,c=[];b--;)g(a[b])?c[b]=Math.round(10*a[b])-5:\"Z\"===a[b]?c[b]=\"x\":(c[b]=a[b],!a.isArc||\"wa\"!==a[b]&&\"at\"!==a[b]||(c[b+5]===c[b+7]&&(c[b+7]+=a[b+7]>a[b+5]?1:-1),c[b+6]===c[b+8]&&(c[b+8]+=a[b+8]>a[b+6]?1:-1)));return c.join(\" \")||\"x\"},clip:function(a){var b=this,c;a?(c=a.members,t(c,b),c.push(b),b.destroyClip=function(){t(c,b)},a=a.getCSS(b)):(b.destroyClip&&b.destroyClip(),\n", "a={clip:b.docMode8?\"inherit\":\"rect(auto)\"});return b.css(a)},css:A.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&u(a)},destroy:function(){this.destroyClip&&this.destroyClip();return A.prototype.destroy.apply(this)},on:function(a,b){this.element[\"on\"+a]=function(){var a=H.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,d){var c;a=a.split(/[ ,]/);c=a.length;if(9===c||11===c)a[c-4]=a[c-2]=b(a[c-2])-10*d;return a.join(\" \")},shadow:function(a,d,c){var e=[],q,f=this.element,\n", "g=this.renderer,l,v=f.style,k,z=f.path,m,M,A,J;z&&\"string\"!==typeof z.value&&(z=\"x\");M=z;if(a){A=p(a.width,3);J=(a.opacity||.15)/A;for(q=1;3>=q;q++)m=2*A+1-2*q,c&&(M=this.cutOffPath(z.value,m+.5)),k=['\\x3cshape isShadow\\x3d\"true\" strokeweight\\x3d\"',m,'\" filled\\x3d\"false\" path\\x3d\"',M,'\" coordsize\\x3d\"10 10\" style\\x3d\"',f.style.cssText,'\" /\\x3e'],l=F(g.prepVML(k),null,{left:b(v.left)+p(a.offsetX,1),top:b(v.top)+p(a.offsetY,1)}),c&&(l.cutOff=m+1),k=['\\x3cstroke color\\x3d\"',a.color||\"#000000\",'\" opacity\\x3d\"',\n", "J*q,'\"/\\x3e'],F(g.prepVML(k),null,null,l),d?d.element.appendChild(l):f.parentNode.insertBefore(l,f),e.push(l);this.shadows=e}return this},updateShadows:B,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,c){(c.getElementsByTagName(\"stroke\")[0]||F(this.renderer.prepVML([\"\\x3cstroke/\\x3e\"]),null,null,c))[b]=a||\"solid\";this[b]=a},dSetter:function(a,b,c){var d=this.shadows;\n", "a=a||[];this.d=a.join&&a.join(\" \");c.path=a=this.pathToVML(a);if(d)for(c=d.length;c--;)d[c].path=d[c].cutOff?this.cutOffPath(a,d[c].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,c){var d=c.nodeName;\"SPAN\"===d?c.style.color=a:\"IMG\"!==d&&(c.filled=\"none\"!==a,this.setAttr(\"fillcolor\",this.renderer.color(a,c,b,this)))},\"fill-opacitySetter\":function(a,b,c){F(this.renderer.prepVML([\"\\x3c\",b.split(\"-\")[0],' opacity\\x3d\"',a,'\"/\\x3e']),null,null,c)},opacitySetter:B,rotationSetter:function(a,b,c){c=\n", "c.style;this[b]=c[b]=a;c.left=-Math.round(Math.sin(a*h)+1)+\"px\";c.top=Math.round(Math.cos(a*h))+\"px\"},strokeSetter:function(a,b,c){this.setAttr(\"strokecolor\",this.renderer.color(a,c,b,this))},\"stroke-widthSetter\":function(a,b,c){c.stroked=!!a;this[b]=a;g(a)&&(a+=\"px\");this.setAttr(\"strokeweight\",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,c){\"inherit\"===a&&(a=\"visible\");this.shadows&&x(this.shadows,function(c){c.style[b]=a});\"DIV\"===c.nodeName&&(a=\"hidden\"===a?\"-999em\":\n", "0,this.docMode8||(c.style[b]=a?\"visible\":\"hidden\"),b=\"top\");c.style[b]=a},xSetter:function(a,b,c){this[b]=a;\"x\"===b?b=\"left\":\"y\"===b&&(b=\"top\");this.updateClipping?(this[b]=a,this.updateClipping()):c.style[b]=a},zIndexSetter:function(a,b,c){c.style[b]=a}},B[\"stroke-opacitySetter\"]=B[\"fill-opacitySetter\"],a.VMLElement=B=E(A,B),B.prototype.ySetter=B.prototype.widthSetter=B.prototype.heightSetter=B.prototype.xSetter,B={Element:B,isIE8:-1J[0]&&b.push([1,J[1]]);x(b,function(k,c){q.test(k[1])?(y=a.color(k[1]),z=y.get(\"rgb\"),g=y.get(\"a\")):(z=k[1],g=1);r.push(100*k[0]+\"% \"+z);c?(A=g,C=z):(m=g,H=z)});if(\"fill\"===c)if(\"gradient\"===p)c=v.x1||v[0]||0,b=v.y1||v[1]||0,w=v.x2||v[2]||0,v=v.y2||v[3]||0,h='angle\\x3d\"'+(90-180*Math.atan((v-b)/(w-c))/Math.PI)+'\"',n();else{var k=v.r,t=2*k,u=2*k,B=v.cx,E=v.cy,D=d.radialReference,S,k=function(){D&&(S=e.getBBox(),B+=(D[0]-\n", "S.x)/S.width-.5,E+=(D[1]-S.y)/S.height-.5,t*=D[2]/S.width,u*=D[2]/S.height);h='src\\x3d\"'+a.getOptions().global.VMLRadialGradientURL+'\" size\\x3d\"'+t+\",\"+u+'\" origin\\x3d\"0.5,0.5\" position\\x3d\"'+B+\",\"+E+'\" color2\\x3d\"'+H+'\" ';n()};e.added?k():e.onAdd=k;k=C}else k=z}else q.test(b)&&\"IMG\"!==d.tagName?(y=a.color(b),e[c+\"-opacitySetter\"](y.get(\"a\"),c,d),k=y.get(\"rgb\")):(k=d.getElementsByTagName(c),k.length&&(k[0].opacity=1,k[0].type=\"solid\"),k=b);return k},prepVML:function(a){var b=this.isIE8;a=a.join(\"\");\n", "b?(a=a.replace(\"/\\x3e\",' xmlns\\x3d\"urn:schemas-microsoft-com:vml\" /\\x3e'),a=-1===a.indexOf('style\\x3d\"')?a.replace(\"/\\x3e\",' style\\x3d\"display:inline-block;behavior:url(#default#VML);\" /\\x3e'):a.replace('style\\x3d\"','style\\x3d\"display:inline-block;behavior:url(#default#VML);')):a=a.replace(\"\\x3c\",\"\\x3chcv:\");return a},text:v.prototype.html,path:function(a){var b={coordsize:\"10 10\"};f(a)?b.d=a:e(a)&&m(b,a);return this.createElement(\"shape\").attr(b)},circle:function(a,b,c){var d=this.symbol(\"circle\");\n", "e(a)&&(c=a.r,b=a.y,a=a.x);d.isCircle=!0;d.r=c;return d.attr({x:a,y:b})},g:function(a){var b;a&&(b={className:\"highcharts-\"+a,\"class\":\"highcharts-\"+a});return this.createElement(\"div\").attr(b)},image:function(a,b,c,d,e){var f=this.createElement(\"img\").attr({src:a});1d&&n-p*bf&&(q=Math.round((m-n)/Math.cos(d*u)));else if(m=n+(1-p)*b,n-p*bf&&(v=f-a.x+v*p,H=-1),v=Math.min(A,v),vv||r.autoRotation&&(e.styles||\n", "{}).width)q=v;q&&(J.width=q,(r.options.labels.style||{}).textOverflow||(J.textOverflow=\"ellipsis\"),e.css(J))},getPosition:function(a,h,n,m){var f=this.axis,g=f.chart,e=m&&g.oldChartHeight||g.chartHeight;return{x:a?f.translate(h+n,null,null,m)+f.transB:f.left+f.offset+(f.opposite?(m&&g.oldChartWidth||g.chartWidth)-f.right-f.left:0),y:a?e-f.bottom+f.offset-(f.opposite?f.height:0):e-f.translate(h+n,null,null,m)-f.transB}},getLabelPosition:function(a,h,n,m,f,g,e,d){var p=this.axis,b=p.transA,A=p.reversed,\n", "v=p.staggerLines,H=p.tickRotCorr||{x:0,y:0},q=f.y;B(q)||(q=0===p.side?n.rotation?-8:-n.getBBox().height:2===p.side?H.y+8:Math.cos(n.rotation*u)*(H.y-n.getBBox(!1,0).height/2));a=a+f.x+H.x-(g&&m?g*b*(A?-1:1):0);h=h+q-(g&&!m?g*b*(A?1:-1):0);v&&(n=e/(d||1)%v,p.opposite&&(n=v-n-1),h+=p.labelOffset/v*n);return{x:a,y:Math.round(h)}},getMarkPath:function(a,h,n,m,f,g){return g.crispLine([\"M\",a,h,\"L\",a+(f?0:-n),h+(f?n:0)],m)},renderGridLine:function(a,h,n){var m=this.axis,f=m.options,g=this.gridLine,e={},\n", "d=this.pos,p=this.type,b=m.tickmarkOffset,A=m.chart.renderer,v=p?p+\"Grid\":\"grid\",H=f[v+\"LineWidth\"],q=f[v+\"LineColor\"],f=f[v+\"LineDashStyle\"];g||(e.stroke=q,e[\"stroke-width\"]=H,f&&(e.dashstyle=f),p||(e.zIndex=1),a&&(e.opacity=0),this.gridLine=g=A.path().attr(e).addClass(\"highcharts-\"+(p?p+\"-\":\"\")+\"grid-line\").add(m.gridGroup));if(!a&&g&&(a=m.getPlotLinePath(d+b,g.strokeWidth()*n,a,!0)))g[this.isNew?\"attr\":\"animate\"]({d:a,opacity:h})},renderMark:function(a,n,t){var m=this.axis,f=m.options,g=m.chart.renderer,\n", "e=this.type,d=e?e+\"Tick\":\"tick\",p=m.tickSize(d),b=this.mark,A=!b,v=a.x;a=a.y;var H=h(f[d+\"Width\"],!e&&m.isXAxis?1:0),f=f[d+\"Color\"];p&&(m.opposite&&(p[0]=-p[0]),A&&(this.mark=b=g.path().addClass(\"highcharts-\"+(e?e+\"-\":\"\")+\"tick\").add(m.axisGroup),b.attr({stroke:f,\"stroke-width\":H})),b[A?\"attr\":\"animate\"]({d:this.getMarkPath(v,a,p[0],b.strokeWidth()*t,m.horiz,g),opacity:n}))},renderLabel:function(a,n,t,m){var f=this.axis,g=f.horiz,e=f.options,d=this.label,p=e.labels,b=p.step,A=f.tickmarkOffset,v=!0,\n", "H=a.x;a=a.y;d&&D(H)&&(d.xy=a=this.getLabelPosition(H,a,d,g,p,A,m,b),this.isFirst&&!this.isLast&&!h(e.showFirstLabel,1)||this.isLast&&!this.isFirst&&!h(e.showLastLabel,1)?v=!1:!g||f.isRadial||p.step||p.rotation||n||0===t||this.handleOverflow(a),b&&m%b&&(v=!1),v&&D(a.y)?(a.opacity=t,d[this.isNewLabel?\"attr\":\"animate\"](a),this.isNewLabel=!1):(d.attr(\"y\",-9999),this.isNewLabel=!0),this.isNew=!1)},render:function(a,n,t){var m=this.axis,f=m.horiz,g=this.getPosition(f,this.pos,m.tickmarkOffset,n),e=g.x,\n", "d=g.y,m=f&&e===m.pos+m.len||!f&&d===m.pos?-1:1;t=h(t,1);this.isActive=!0;this.renderGridLine(n,t,m);this.renderMark(g,t,m);this.renderLabel(g,n,t,a)},destroy:function(){F(this,this.axis)}}})(L);var T=function(a){var E=a.addEvent,B=a.animObject,F=a.arrayMax,D=a.arrayMin,n=a.color,h=a.correctFloat,u=a.defaultOptions,r=a.defined,x=a.deg2rad,t=a.destroyObjectProperties,m=a.each,f=a.extend,g=a.fireEvent,e=a.format,d=a.getMagnitude,p=a.grep,b=a.inArray,A=a.isArray,v=a.isNumber,H=a.isString,q=a.merge,J=\n", "a.normalizeTickInterval,c=a.objectEach,w=a.pick,K=a.removeEvent,y=a.splat,G=a.syncTimeout,l=a.Tick,I=function(){this.init.apply(this,arguments)};a.extend(I.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:\"%H:%M:%S.%L\",second:\"%H:%M:%S\",minute:\"%H:%M\",hour:\"%H:%M\",day:\"%e. %b\",week:\"%e. %b\",month:\"%b '%y\",year:\"%Y\"},endOnTick:!1,labels:{enabled:!0,style:{color:\"#666666\",cursor:\"default\",fontSize:\"11px\"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:\"outside\",startOfWeek:1,\n", "startOnTick:!1,tickLength:10,tickmarkPlacement:\"between\",tickPixelInterval:100,tickPosition:\"outside\",title:{align:\"middle\",style:{color:\"#666666\"}},type:\"linear\",minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#ccd6eb\",lineWidth:1,gridLineColor:\"#e6e6e6\",tickColor:\"#ccd6eb\"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:\"Values\"},stackLabels:{enabled:!1,\n", "formatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:\"11px\",fontWeight:\"bold\",color:\"#000000\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,z){var k=z.isX,l=this;l.chart=a;l.horiz=\n", "a.inverted&&!l.isZAxis?!k:k;l.isXAxis=k;l.coll=l.coll||(k?\"xAxis\":\"yAxis\");l.opposite=z.opposite;l.side=z.side||(l.horiz?l.opposite?0:2:l.opposite?1:3);l.setOptions(z);var d=this.options,e=d.type;l.labelFormatter=d.labels.formatter||l.defaultLabelFormatter;l.userOptions=z;l.minPixelPadding=0;l.reversed=d.reversed;l.visible=!1!==d.visible;l.zoomEnabled=!1!==d.zoomEnabled;l.hasNames=\"category\"===e||!0===d.categories;l.categories=d.categories||l.hasNames;l.names=l.names||[];l.plotLinesAndBandsGroups=\n", "{};l.isLog=\"logarithmic\"===e;l.isDatetimeAxis=\"datetime\"===e;l.positiveValuesOnly=l.isLog&&!l.allowNegativeLog;l.isLinked=r(d.linkedTo);l.ticks={};l.labelEdge=[];l.minorTicks={};l.plotLinesAndBands=[];l.alternateBands={};l.len=0;l.minRange=l.userMinRange=d.minRange||d.maxZoom;l.range=d.range;l.offset=d.offset||0;l.stacks={};l.oldStacks={};l.stacksTouched=0;l.max=null;l.min=null;l.crosshair=w(d.crosshair,y(a.options.tooltip.crosshairs)[k?0:1],!1);z=l.options.events;-1===b(l,a.axes)&&(k?a.axes.splice(a.xAxis.length,\n", "0,l):a.axes.push(l),a[l.coll].push(l));l.series=l.series||[];a.inverted&&!l.isZAxis&&k&&void 0===l.reversed&&(l.reversed=!0);c(z,function(a,k){E(l,k,a)});l.lin2log=d.linearToLogConverter||l.lin2log;l.isLog&&(l.val2lin=l.log2lin,l.lin2val=l.lin2log)},setOptions:function(a){this.options=q(this.defaultOptions,\"yAxis\"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],q(u[this.coll],a))},\n", "defaultLabelFormatter:function(){var k=this.axis,c=this.value,b=k.categories,l=this.dateTimeLabelFormat,d=u.lang,f=d.numericSymbols,d=d.numericSymbolMagnitude||1E3,y=f&&f.length,p,g=k.options.labels.format,k=k.isLog?Math.abs(c):k.tickInterval;if(g)p=e(g,this);else if(b)p=c;else if(l)p=a.dateFormat(l,c);else if(y&&1E3<=k)for(;y--&&void 0===p;)b=Math.pow(d,y+1),k>=b&&0===10*c%b&&null!==f[y]&&0!==c&&(p=a.numberFormat(c/b,-1)+f[y]);void 0===p&&(p=1E4<=Math.abs(c)?a.numberFormat(c,-1):a.numberFormat(c,\n", "-1,void 0,\"\"));return p},getSeriesExtremes:function(){var a=this,c=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();m(a.series,function(k){if(k.visible||!c.options.chart.ignoreHiddenSeries){var b=k.options,l=b.threshold,z;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=l&&(l=null);if(a.isXAxis)b=k.xData,b.length&&(k=D(b),v(k)||k instanceof Date||(b=p(b,function(a){return v(a)}),k=D(b)),a.dataMin=Math.min(w(a.dataMin,b[0]),\n", "k),a.dataMax=Math.max(w(a.dataMax,b[0]),F(b)));else if(k.getExtremes(),z=k.dataMax,k=k.dataMin,r(k)&&r(z)&&(a.dataMin=Math.min(w(a.dataMin,k),k),a.dataMax=Math.max(w(a.dataMax,z),z)),r(l)&&(a.threshold=l),!b.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})},translate:function(a,c,b,l,d,e){var k=this.linkedParent||this,z=1,f=0,y=l?k.oldTransA:k.transA;l=l?k.oldMin:k.min;var p=k.minPixelPadding;d=(k.isOrdinal||k.isBroken||k.isLog&&d)&&k.lin2val;y||(y=k.transA);b&&(z*=-1,f=k.len);k.reversed&&\n", "(z*=-1,f-=z*(k.sector||k.len));c?(a=(a*z+f-p)/y+l,d&&(a=k.lin2val(a))):(d&&(a=k.val2lin(a)),a=z*(a-l)*y+f+z*p+(v(e)?y*e:0));return a},toPixels:function(a,c){return this.translate(a,!1,!this.horiz,null,!0)+(c?0:this.pos)},toValue:function(a,c){return this.translate(a-(c?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,c,b,l,d){var k=this.chart,z=this.left,e=this.top,f,y,p=b&&k.oldChartHeight||k.chartHeight,g=b&&k.oldChartWidth||k.chartWidth,q;f=this.transB;var G=function(a,k,c){if(a<\n", "k||a>c)l?a=Math.min(Math.max(k,a),c):q=!0;return a};d=w(d,this.translate(a,null,null,b));a=b=Math.round(d+f);f=y=Math.round(p-d-f);v(d)?this.horiz?(f=e,y=p-this.bottom,a=b=G(a,z,z+this.width)):(a=z,b=g-this.right,f=y=G(f,e,e+this.height)):q=!0;return q&&!l?null:k.renderer.crispLine([\"M\",a,f,\"L\",b,y],c||1)},getLinearTickPositions:function(a,c,b){var k,l=h(Math.floor(c/a)*a);b=h(Math.ceil(b/a)*a);var z=[];if(this.single)return[c];for(c=l;c<=b;){z.push(c);c=h(c+a);if(c===k)break;k=c}return z},getMinorTickPositions:function(){var a=\n", "this,c=a.options,b=a.tickPositions,l=a.minorTickInterval,d=[],e=a.pointRangePadding||0,f=a.min-e,e=a.max+e,y=e-f;if(y&&y/l=this.minRange,v=this.minRange,l=(v-b+c)/2,l=[c-l,w(a.min,c-l)],d&&(l[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),c=F(l),b=[c+v,w(a.max,c+v)],\n", "d&&(b[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),b=D(b),b-c=K?(u=K,I=0):c.dataMax<=K&&(x=K,G=0)),c.min=w(B,u,c.dataMin),c.max=w(D,x,c.dataMax));e&&(c.positiveValuesOnly&&!k&&0>=Math.min(c.min,w(c.dataMin,c.min))&&a.error(10,1),c.min=h(f(c.min),15),c.max=h(f(c.max),15));c.range&&r(c.max)&&(c.userMin=c.min=B=Math.max(c.min,c.minFromRange()),c.userMax=D=c.max,c.range=null);g(c,\"foundExtremes\");c.beforePadding&&\n", "c.beforePadding();c.adjustForMinRange();!(n||c.axisPointRange||c.usePercentage||q)&&r(c.min)&&r(c.max)&&(f=c.max-c.min)&&(!r(B)&&I&&(c.min-=f*I),!r(D)&&G&&(c.max+=f*G));v(l.softMin)&&(c.min=Math.min(c.min,l.softMin));v(l.softMax)&&(c.max=Math.max(c.max,l.softMax));v(l.floor)&&(c.min=Math.max(c.min,l.floor));v(l.ceiling)&&(c.max=Math.min(c.max,l.ceiling));t&&r(c.dataMin)&&(K=K||0,!r(B)&&c.min=K?c.min=K:!r(D)&&c.max>K&&c.dataMax<=K&&(c.max=K));c.tickInterval=c.min===c.max||void 0===c.min||\n", "void 0===c.max?1:q&&!A&&H===c.linkedParent.options.tickPixelInterval?A=c.linkedParent.tickInterval:w(A,this.tickAmount?(c.max-c.min)/Math.max(this.tickAmount-1,1):void 0,n?1:(c.max-c.min)*H/Math.max(c.len,H));p&&!k&&m(c.series,function(a){a.processData(c.min!==c.oldMin||c.max!==c.oldMax)});c.setAxisTranslation(!0);c.beforeSetTickPositions&&c.beforeSetTickPositions();c.postProcessTickInterval&&(c.tickInterval=c.postProcessTickInterval(c.tickInterval));c.pointRange&&!A&&(c.tickInterval=Math.max(c.pointRange,\n", "c.tickInterval));k=w(l.minTickInterval,c.isDatetimeAxis&&c.closestPointRange);!A&&c.tickIntervalc.tickInterval&&1E3c.max)),!!this.tickAmount));this.tickAmount||(c.tickInterval=c.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,c,b=a.tickPositions,l=a.tickPositioner,d=a.startOnTick,e=a.endOnTick;this.tickmarkOffset=this.categories&&\n", "\"between\"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval=\"auto\"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.single=this.min===this.max&&r(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==a.allowDecimals);this.tickPositions=c=b&&b.slice();!c&&(c=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,\n", "!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),c.length>this.len&&(c=[c[0],c.pop()]),this.tickPositions=c,l&&(l=l.apply(this,[this.min,this.max])))&&(this.tickPositions=c=l);this.paddedTicks=c.slice(0);this.trimTicks(c,d,e);this.isLinked||(this.single&&(this.min-=.5,this.max+=.5),b||l||this.adjustTickAmount())},trimTicks:function(a,c,b){var k=a[0],l=a[a.length-1],d=this.minPointOffset||0;if(!this.isLinked){if(c&&\n", "-Infinity!==k)this.min=k;else for(;this.min-d>a[0];)a.shift();if(b)this.max=l;else for(;this.max+dc&&(this.finalTickAmt=c,c=5);this.tickAmount=c},adjustTickAmount:function(){var a=this.tickInterval,c=this.tickPositions,b=this.tickAmount,l=this.finalTickAmt,d=c&&c.length;if(db&&(this.tickInterval*=2,this.setTickPositions());\n", "if(r(l)){for(a=b=c.length;a--;)(3===l&&1===a%2||2>=l&&0l&&(a=l)),r(b)&&(cl&&(c=l))),this.displayBtn=void 0!==a||void 0!==c,this.setExtremes(a,c,!1,void 0,{trigger:\"zoom\"});return!0},setAxisSize:function(){var a=this.chart,c=this.options,b=c.offsets||[0,0,0,0],l=this.horiz,d=w(c.width,a.plotWidth-b[3]+b[1]),e=w(c.height,a.plotHeight-b[0]+b[2]),f=w(c.top,a.plotTop+b[0]),c=w(c.left,a.plotLeft+b[3]),b=/%$/;b.test(e)&&(e=\n", "Math.round(parseFloat(e)/100*a.plotHeight));b.test(f)&&(f=Math.round(parseFloat(f)/100*a.plotHeight+a.plotTop));this.left=c;this.top=f;this.width=d;this.height=e;this.bottom=a.chartHeight-e-f;this.right=a.chartWidth-d-c;this.len=Math.max(l?d:e,0);this.pos=l?c:f},getExtremes:function(){var a=this.isLog,c=this.lin2log;return{min:a?h(c(this.min)):this.min,max:a?h(c(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var c=\n", "this.isLog,k=this.lin2log,b=c?k(this.min):this.min,c=c?k(this.max):this.max;null===a?a=b:b>a?a=b:ca?\"right\":195a?\"left\":\"center\"},tickSize:function(a){var c=this.options,k=c[a+\"Length\"],b=w(c[a+\"Width\"],\"tick\"===a&&this.isXAxis?1:0);if(b&&k)return\"inside\"===c[a+\"Position\"]&&(k=-k),[k,b]},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&\n", "this.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=this.options.labels,c=this.horiz,b=this.tickInterval,l=b,d=this.len/(((this.categories?1:0)+this.max-this.min)/b),e,f=a.rotation,y=this.labelMetrics(),p,g=Number.MAX_VALUE,v,q=function(a){a/=d||1;a=1=a)p=q(Math.abs(y.h/Math.sin(x*a))),c=p+\n", "Math.abs(a/360),c(b.step||0)&&!b.rotation&&(this.staggerLines||1)*this.len/l||!c&&(d&&d-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,c=a.renderer,b=this.tickPositions,l=this.ticks,d=this.options.labels,e=this.horiz,\n", "f=this.getSlotWidth(),y=Math.max(1,Math.round(f-2*(d.padding||5))),p={},g=this.labelMetrics(),v=d.style&&d.style.textOverflow,G,w=0,I,A;H(d.rotation)||(p.rotation=d.rotation||0);m(b,function(a){(a=l[a])&&a.labelLength>w&&(w=a.labelLength)});this.maxLabelLength=w;if(this.autoRotation)w>y&&w>g.h?p.rotation=this.labelRotation:this.labelRotation=0;else if(f&&(G={width:y+\"px\"},!v))for(G.textOverflow=\"clip\",I=b.length;!e&&I--;)if(A=b[I],y=l[A].label)y.styles&&\"ellipsis\"===y.styles.textOverflow?y.css({textOverflow:\"clip\"}):\n", "l[A].labelLength>f&&y.css({width:f+\"px\"}),y.getBBox().height>this.len/b.length-(g.h-g.f)&&(y.specCss={textOverflow:\"ellipsis\"});p.rotation&&(G={width:(w>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+\"px\"},v||(G.textOverflow=\"ellipsis\"));if(this.labelAlign=d.align||this.autoLabelAlign(this.labelRotation))p.align=this.labelAlign;m(b,function(a){var c=(a=l[a])&&a.label;c&&(c.attr(p),G&&c.css(q(G,c.specCss)),delete c.specCss,a.rotation=p.rotation)});this.tickRotCorr=c.rotCorr(g.b,this.labelRotation||\n", "0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||r(this.min)&&r(this.max)&&!!this.tickPositions},addTitle:function(a){var c=this.chart.renderer,k=this.horiz,b=this.opposite,l=this.options.title,d;this.axisTitle||((d=l.textAlign)||(d=(k?{low:\"left\",middle:\"center\",high:\"right\"}:{low:b?\"right\":\"left\",middle:\"center\",high:b?\"left\":\"right\"})[l.align]),this.axisTitle=c.text(l.text,0,0,l.useHTML).attr({zIndex:7,rotation:l.rotation||0,align:d}).addClass(\"highcharts-axis-title\").css(l.style).add(this.axisGroup),\n", "this.axisTitle.isNew=!0);this.axisTitle[a?\"show\":\"hide\"](!0)},generateTick:function(a){var c=this.ticks;c[a]?c[a].addLabel():c[a]=new l(this,a)},getOffset:function(){var a=this,b=a.chart,l=b.renderer,d=a.options,e=a.tickPositions,f=a.ticks,y=a.horiz,p=a.side,g=b.inverted&&!a.isZAxis?[1,0,3,2][p]:p,v,q,G=0,I,A=0,h=d.title,H=d.labels,n=0,K=b.axisOffset,b=b.clipOffset,J=[-1,1,1,-1][p],t=d.className,u=a.axisParent,x=this.tickSize(\"tick\");v=a.hasData();a.showAxis=q=v||w(d.showEmpty,!0);a.staggerLines=\n", "a.horiz&&H.staggerLines;a.axisGroup||(a.gridGroup=l.g(\"grid\").attr({zIndex:d.gridZIndex||1}).addClass(\"highcharts-\"+this.coll.toLowerCase()+\"-grid \"+(t||\"\")).add(u),a.axisGroup=l.g(\"axis\").attr({zIndex:d.zIndex||2}).addClass(\"highcharts-\"+this.coll.toLowerCase()+\" \"+(t||\"\")).add(u),a.labelGroup=l.g(\"axis-labels\").attr({zIndex:H.zIndex||7}).addClass(\"highcharts-\"+a.coll.toLowerCase()+\"-labels \"+(t||\"\")).add(u));v||a.isLinked?(m(e,function(c,b){a.generateTick(c,b)}),a.renderUnsquish(),!1===H.reserveSpace||\n", "0!==p&&2!==p&&{1:\"left\",3:\"right\"}[p]!==a.labelAlign&&\"center\"!==a.labelAlign||m(e,function(a){n=Math.max(f[a].getLabelSize(),n)}),a.staggerLines&&(n*=a.staggerLines,a.labelOffset=n*(a.opposite?-1:1))):c(f,function(a,c){a.destroy();delete f[c]});h&&h.text&&!1!==h.enabled&&(a.addTitle(q),q&&!1!==h.reserveSpace&&(a.titleOffset=G=a.axisTitle.getBBox()[y?\"height\":\"width\"],I=h.offset,A=r(I)?0:w(h.margin,y?5:10)));a.renderLine();a.offset=J*w(d.offset,K[p]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};l=0===p?\n", "-a.labelMetrics().h:2===p?a.tickRotCorr.y:0;A=Math.abs(n)+A;n&&(A=A-l+J*(y?w(H.y,a.tickRotCorr.y+8*J):H.x));a.axisTitleMargin=w(I,A);K[p]=Math.max(K[p],a.axisTitleMargin+G+J*a.offset,A,v&&e.length&&x?x[0]+J*a.offset:0);e=2*Math.floor(a.axisLine.strokeWidth()/2);0=this.min&&a<=this.max)k[a]||(k[a]=new l(this,a)),d&&k[a].isNew&&k[a].render(c,!0,.1),k[a].render(c)},render:function(){var b=this,d=b.chart,e=b.options,f=b.isLog,y=b.lin2log,p=b.isLinked,g=b.tickPositions,q=b.axisTitle,w=b.ticks,I=b.minorTicks,A=b.alternateBands,h=e.stackLabels,H=e.alternateGridColor,n=b.tickmarkOffset,K=b.axisLine,J=b.showAxis,r=B(d.renderer.globalAnimation),t,u;b.labelEdge.length=0;b.overlap=!1;m([w,I,A],function(a){c(a,function(a){a.isActive=!1})});if(b.hasData()||\n", "p)b.minorTickInterval&&!b.categories&&m(b.getMinorTickPositions(),function(a){b.renderMinorTick(a)}),g.length&&(m(g,function(a,c){b.renderTick(a,c)}),n&&(0===b.min||b.single)&&(w[-1]||(w[-1]=new l(b,-1,null,!0)),w[-1].render(-1))),H&&m(g,function(c,l){u=void 0!==g[l+1]?g[l+1]+n:b.max-n;0===l%2&&c=f.second?0:w*Math.floor(q.getMilliseconds()/\n", "w));if(c>=f.second)q[B.hcSetSeconds](c>=f.minute?0:w*Math.floor(q.getSeconds()/w));if(c>=f.minute)q[B.hcSetMinutes](c>=f.hour?0:w*Math.floor(q[B.hcGetMinutes]()/w));if(c>=f.hour)q[B.hcSetHours](c>=f.day?0:w*Math.floor(q[B.hcGetHours]()/w));if(c>=f.day)q[B.hcSetDate](c>=f.month?1:w*Math.floor(q[B.hcGetDate]()/w));c>=f.month&&(q[B.hcSetMonth](c>=f.year?0:w*Math.floor(q[B.hcGetMonth]()/w)),H=q[B.hcGetFullYear]());if(c>=f.year)q[B.hcSetFullYear](H-H%w);if(c===f.week)q[B.hcSetDate](q[B.hcGetDate]()-q[B.hcGetDay]()+\n", "m(p,1));H=q[B.hcGetFullYear]();p=q[B.hcGetMonth]();var y=q[B.hcGetDate](),G=q[B.hcGetHours]();if(B.hcTimezoneOffset||B.hcGetTimezoneOffset)K=(!v||!!B.hcGetTimezoneOffset)&&(d-e>4*f.month||x(e)!==x(d)),q=q.getTime(),q=new B(q+x(q));v=q.getTime();for(e=1;vb.length&&h(b,function(a){0===a%18E5&&\"000000000\"===F(\"%H%M%S%L\",a)&&\n", "(g[a]=\"day\")})}b.info=u(a,{higherRanks:g,totalRange:c*w});return b};E.prototype.normalizeTimeTickInterval=function(a,e){var d=e||[[\"millisecond\",[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1,2]],[\"week\",[1,2]],[\"month\",[1,2,3,4,6]],[\"year\",null]];e=d[d.length-1];var p=f[e[0]],b=e[1],g;for(g=0;gu&&(!x||A<=r)&&void 0!==A&&e.push(A),A>r&&(v=!0),A=b;else u=f(u),r=f(r),a=h[x?\"minorTickInterval\":\"tickInterval\"],a=n(\"auto\"===a?null:a,this._minorAutoInterval,h.tickPixelInterval/(x?5:1)*(r-u)/((x?m/this.tickPositions.length:m)||1)),a=D(a,null,B(a)),e=F(this.getLinearTickPositions(a,u,r),g),x||(this._minorAutoInterval=a/5);x||(this.tickInterval=a);return e};E.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};E.prototype.lin2log=function(a){return Math.pow(10,\n", "a)}})(L);(function(a,E){var B=a.arrayMax,F=a.arrayMin,D=a.defined,n=a.destroyObjectProperties,h=a.each,u=a.erase,r=a.merge,x=a.pick;a.PlotLineOrBand=function(a,m){this.axis=a;m&&(this.options=m,this.id=m.id)};a.PlotLineOrBand.prototype={render:function(){var h=this,m=h.axis,f=m.horiz,g=h.options,e=g.label,d=h.label,p=g.to,b=g.from,A=g.value,v=D(b)&&D(p),H=D(A),q=h.svgElem,n=!q,c=[],w=g.color,K=x(g.zIndex,0),y=g.events,c={\"class\":\"highcharts-plot-\"+(v?\"band \":\"line \")+(g.className||\"\")},G={},l=m.chart.renderer,\n", "I=v?\"bands\":\"lines\",k=m.log2lin;m.isLog&&(b=k(b),p=k(p),A=k(A));H?(c={stroke:w,\"stroke-width\":g.width},g.dashStyle&&(c.dashstyle=g.dashStyle)):v&&(w&&(c.fill=w),g.borderWidth&&(c.stroke=g.borderColor,c[\"stroke-width\"]=g.borderWidth));G.zIndex=K;I+=\"-\"+K;(w=m.plotLinesAndBandsGroups[I])||(m.plotLinesAndBandsGroups[I]=w=l.g(\"plot-\"+I).attr(G).add());n&&(h.svgElem=q=l.path().attr(c).add(w));if(H)c=m.getPlotLinePath(A,q.strokeWidth());else if(v)c=m.getPlotBandPath(b,p,g);else return;n&&c&&c.length?(q.attr({d:c}),\n", "y&&a.objectEach(y,function(a,c){q.on(c,function(a){y[c].apply(h,[a])})})):q&&(c?(q.show(),q.animate({d:c})):(q.hide(),d&&(h.label=d=d.destroy())));e&&D(e.text)&&c&&c.length&&0this.max&&m>this.max;g&&f?(a&&(g.flat=g.toString()===f.toString(),d=0),g.push(e&&f[4]===g[4]?f[4]+d:f[4],e||f[5]!==g[5]?f[5]:f[5]+d,e&&f[1]===g[1]?f[1]+d:f[1],e||f[2]!==g[2]?f[2]:f[2]+d)):g=null;return g},addPlotBand:function(a){return this.addPlotBandOrLine(a,\"plotBands\")},addPlotLine:function(a){return this.addPlotBandOrLine(a,\"plotLines\")},addPlotBandOrLine:function(h,m){var f=(new a.PlotLineOrBand(this,h)).render(),g=this.userOptions;f&&(m&&(g[m]=g[m]||[],g[m].push(h)),this.plotLinesAndBands.push(f));\n", "return f},removePlotBandOrLine:function(a){for(var m=this.plotLinesAndBands,f=this.options,g=this.userOptions,e=m.length;e--;)m[e].id===a&&m[e].destroy();h([f.plotLines||[],g.plotLines||[],f.plotBands||[],g.plotBands||[]],function(d){for(e=d.length;e--;)d[e].id===a&&u(d,d[e])})},removePlotBand:function(a){this.removePlotBandOrLine(a)},removePlotLine:function(a){this.removePlotBandOrLine(a)}})})(L,T);(function(a){var E=a.dateFormat,B=a.each,F=a.extend,D=a.format,n=a.isNumber,h=a.map,u=a.merge,r=a.pick,\n", "x=a.splat,t=a.syncTimeout,m=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,g){this.chart=a;this.options=g;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=g.split&&!a.inverted;this.shared=g.shared||this.split},cleanSplit:function(a){B(this.chart.series,function(f){var e=f&&f.tt;e&&(!e.isActive||a?f.tt=e.destroy():e.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,g=this.options;this.label||(this.split?this.label=\n", "a.g(\"tooltip\"):(this.label=a.label(\"\",0,0,g.shape||\"callout\",null,null,g.useHTML,null,\"tooltip\").attr({padding:g.padding,r:g.borderRadius}),this.label.attr({fill:g.backgroundColor,\"stroke-width\":g.borderWidth}).css(g.style).shadow(g.shadow)),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();u(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,u(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&\n", "(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,g,e,d){var f=this,b=f.now,m=!1!==f.options.animation&&!f.isHidden&&(1g-m?g:g-m);else if(p)b[a]=Math.max(e,k+m+d>c?k:k+m);else return!1},w=function(a,c,d,k){var l;kc-f?l=!1:b[a]=kc-d/2?c-d-2:k-d/2;return l},K=function(a){var c=h;h=q;q=c;v=a},y=function(){!1!==c.apply(0,h)?!1!==w.apply(0,q)||v||(K(!0),y()):v?b.x=b.y=0:(K(!0),y())};(d.inverted||1y&&(m=!1);a=(c.series&&c.series.yAxis&&c.series.yAxis.pos)+(c.plotY||0);a-=p.plotTop;d.push({target:c.isHeader?p.plotHeight+h:a,rank:c.isHeader?1:0,size:f.tt.getBBox().height+1,point:c,x:y,tt:A})});this.cleanSplit();\n", "a.distribute(d,p.plotHeight+h);B(d,function(a){var c=a.point,b=c.series;a.tt.attr({visibility:void 0===a.pos?\"hidden\":\"inherit\",x:m||c.isHeader?a.x:c.plotX+p.plotLeft+r(v.distance,16),y:a.pos+p.plotTop,anchorX:c.isHeader?c.plotX+p.plotLeft:c.plotX+b.xAxis.pos,anchorY:c.isHeader?a.pos+p.plotTop-15:c.plotY+b.yAxis.pos})})},updatePosition:function(a){var f=this.chart,e=this.getLabel(),e=(this.options.positioner||this.getPosition).call(this,e.width,e.height,a);this.move(Math.round(e.x),Math.round(e.y||\n", "0),a.plotX+f.plotLeft,a.plotY+f.plotTop)},getDateFormat:function(a,g,e,d){var f=E(\"%m-%d %H:%M:%S.%L\",g),b,A,v={millisecond:15,second:12,minute:9,hour:6,day:3},h=\"millisecond\";for(A in m){if(a===m.week&&+E(\"%w\",g)===e&&\"00:00:00.000\"===f.substr(6)){A=\"week\";break}if(m[A]>a){A=h;break}if(v[A]&&f.substr(v[A])!==\"01-01 00:00:00.000\".substr(v[A]))break;\"week\"!==A&&(h=A)}A&&(b=d[A]);return b},getXDateFormat:function(a,g,e){g=g.dateTimeLabelFormats;var d=e&&e.closestPointRange;return(d?this.getDateFormat(d,\n", "a.x,e.options.startOfWeek,g):g.day)||g.year},tooltipFooterHeaderFormatter:function(a,g){var e=g?\"footer\":\"header\";g=a.series;var d=g.tooltipOptions,f=d.xDateFormat,b=g.xAxis,m=b&&\"datetime\"===b.options.type&&n(a.key),e=d[e+\"Format\"];m&&!f&&(f=this.getXDateFormat(a,d,b));m&&f&&(e=e.replace(\"{point.key}\",\"{point.key:\"+f+\"}\"));return D(e,{point:a,series:g})},bodyFormatter:function(a){return h(a,function(a){var e=a.series.tooltipOptions;return(e.pointFormatter||a.point.tooltipFormatter).call(a.point,\n", "e.pointFormat)})}}})(L);(function(a){var E=a.addEvent,B=a.attr,F=a.charts,D=a.color,n=a.css,h=a.defined,u=a.doc,r=a.each,x=a.extend,t=a.fireEvent,m=a.offset,f=a.pick,g=a.removeEvent,e=a.splat,d=a.Tooltip,p=a.win;a.Pointer=function(a,d){this.init(a,d)};a.Pointer.prototype={init:function(a,e){this.options=e;this.chart=a;this.runChartClick=e.chart.events&&!!e.chart.events.click;this.pinchDown=[];this.lastValidTouch={};d&&e.tooltip.enabled&&(a.tooltip=new d(a,e.tooltip),this.followTouchMove=f(e.tooltip.followTouchMove,\n", "!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,d=b.options.chart,e=d.zoomType||\"\",b=b.inverted;/touch/.test(a.type)&&(e=f(d.pinchType,e));this.zoomX=a=/x/.test(e);this.zoomY=e=/y/.test(e);this.zoomHor=a&&!b||e&&b;this.zoomVert=e&&!b||a&&b;this.hasZoom=a||e},normalize:function(a,d){var b,e;a=a||p.event;a.target||(a.target=a.srcElement);e=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;d||(this.chartPosition=d=m(this.chart.container));void 0===e.pageX?(b=Math.max(a.x,\n", "a.clientX-d.left),d=a.y):(b=e.pageX-d.left,d=e.pageY-d.top);return x(a,{chartX:Math.round(b),chartY:Math.round(d)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};r(this.chart.axes,function(d){b[d.isXAxis?\"xAxis\":\"yAxis\"].push({axis:d,value:d.toValue(a[d.horiz?\"chartX\":\"chartY\"])})});return b},getKDPoints:function(a,d,e){var b=[],p,g,c;r(a,function(a){p=a.noSharedTooltip&&d;g=!d&&a.directTouch;a.visible&&!g&&f(a.options.enableMouseTracking,!0)&&(c=a.searchPoint(e,!p&&0>a.options.findNearestPointBy.indexOf(\"y\")))&&\n", "c.series&&b.push(c)});b.sort(function(a,c){var b=a.distX-c.distX,e=a.dist-c.dist,l=(c.series.group&&c.series.group.zIndex)-(a.series.group&&a.series.group.zIndex);return 0!==b&&d?b:0!==e?e:0!==l?l:a.series.index>c.series.index?-1:1});if(d&&b[0]&&!b[0].series.noSharedTooltip)for(a=b.length;a--;)(b[a].x!==b[0].x||b[a].series.noSharedTooltip)&&b.splice(a,1);return b},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,d){var b=\n", "a.series,e=b.xAxis,b=b.yAxis;if(e&&b)return d?{chartX:e.len+e.pos-a.clientX,chartY:b.len+b.pos-a.plotY}:{chartX:a.clientX+e.pos,chartY:a.plotY+b.pos}},getHoverData:function(b,d,e,f,p,g){var c=b,v=d,c=p?e:[v];f=!(!f||!b);d=v&&!v.stickyTracking;var q=function(a,c){return 0===c},y;f?q=function(a){return a===b}:d?q=function(a){return a.series===v}:c=a.grep(e,function(a){return a.stickyTracking});y=f&&!p?[b]:this.getKDPoints(c,p,g);v=(c=a.find(y,q))&&c.series;f||d||!p||(y=this.getKDPoints(e,p,g));y.sort(function(a,\n", "c){return a.series.index-c.series.index});return{hoverPoint:c,hoverSeries:v,hoverPoints:y}},runPointActions:function(b,d){var e=this.chart,p=e.tooltip,g=p?p.shared:!1,m=d||e.hoverPoint,c=m&&m.series||e.hoverSeries;d=this.getHoverData(m,c,e.series,!!d||c&&c.directTouch&&this.isDirectTouch,g,b);var w,h,m=d.hoverPoint;w=(c=d.hoverSeries)&&c.tooltipOptions.followPointer;h=(g=g&&m&&!m.series.noSharedTooltip)?d.hoverPoints:m?[m]:[];if(m&&(m!==e.hoverPoint||p&&p.isHidden)){r(e.hoverPoints||[],function(c){-1===\n", "a.inArray(c,h)&&c.setState()});r(h||[],function(a){a.setState(\"hover\")});if(e.hoverSeries!==c)c.onMouseOver();e.hoverPoint&&e.hoverPoint.firePointEvent(\"mouseOut\");m.firePointEvent(\"mouseOver\");e.hoverPoints=h;e.hoverPoint=m;p&&p.refresh(g?h:m,b)}else w&&p&&!p.isHidden&&(c=p.getAnchor([{}],b),p.updatePosition({plotX:c[0],plotY:c[1]}));this.unDocMouseMove||(this.unDocMouseMove=E(u,\"mousemove\",function(c){var b=F[a.hoverChartIndex];if(b)b.pointer.onDocumentMouseMove(c)}));r(e.axes,function(c){f(c.crosshair.snap,\n", "!0)?a.find(h,function(a){return a.series[c.coll]===c})?c.drawCrosshair(b,m):c.hideCrosshair():c.drawCrosshair(b)})},reset:function(a,d){var b=this.chart,f=b.hoverSeries,p=b.hoverPoint,g=b.hoverPoints,c=b.tooltip,m=c&&c.shared?g:p;a&&m&&r(e(m),function(c){c.series.isCartesian&&void 0===c.plotX&&(a=!1)});if(a)c&&m&&(c.refresh(m),p&&(p.setState(p.state,!0),r(b.axes,function(a){a.crosshair&&a.drawCrosshair(null,p)})));else{if(p)p.onMouseOut();g&&r(g,function(a){a.setState()});if(f)f.onMouseOut();c&&c.hide(d);\n", "this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());r(b.axes,function(a){a.hideCrosshair()});this.hoverX=b.hoverPoints=b.hoverPoint=null}},scaleGroups:function(a,d){var b=this.chart,e;r(b.series,function(f){e=a||f.getPlotBox();f.xAxis&&f.xAxis.zoomEnabled&&f.group&&(f.group.attr(e),f.markerGroup&&(f.markerGroup.attr(e),f.markerGroup.clip(d?b.clipRect:null)),f.dataLabelsGroup&&f.dataLabelsGroup.attr(e))});b.clipRect.attr(d||b.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=\n", "a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,d=b.options.chart,e=a.chartX,f=a.chartY,p=this.zoomHor,c=this.zoomVert,g=b.plotLeft,m=b.plotTop,y=b.plotWidth,G=b.plotHeight,l,I=this.selectionMarker,k=this.mouseDownX,z=this.mouseDownY,h=d.panKey&&a[d.panKey+\"Key\"];I&&I.touch||(eg+y&&(e=g+y),fm+G&&(f=m+G),this.hasDragged=Math.sqrt(Math.pow(k-e,2)+Math.pow(z-f,2)),10K.max&&(h=K.max-q,z=!0);z?(l-=.8*(l-g[p][0]),y||(k-=.8*(k-g[p][1])),n()):g[p]=[l,k];w||(f[p]=r-H,f[v]=q);f=w?1/c:c;m[v]=q;m[p]=h;t[w?a?\"scaleY\":\n", "\"scaleX\":\"scale\"+b]=c;t[\"translate\"+b]=f*H+(l-f*G)},pinch:function(a){var r=this,u=r.chart,t=r.pinchDown,m=a.touches,f=m.length,g=r.lastValidTouch,e=r.hasZoom,d=r.selectionMarker,p={},b=1===f&&(r.inClass(a.target,\"highcharts-tracker\")&&u.runTrackerClick||r.runChartClick),A={};1e-6&&m(y||d.spacingBox.width-2*c-b.x)&&(this.itemX=c,this.itemY+=l+this.lastLineHeight+G,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,q);this.lastItemY=l+this.itemY+G;this.lastLineHeight=Math.max(e,this.lastLineHeight);\n", "a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=q:(this.itemY+=l+e+G,this.lastLineHeight=e);this.offsetWidth=y||Math.max((f?this.itemX-c-w:q)+c,this.offsetWidth)},getAllItems:function(){var a=[];n(this.chart.series,function(d){var e=d&&d.options;d&&x(e.showInLegend,D(e.linkedTo)?!1:void 0,!0)&&(a=a.concat(d.legendItems||(\"point\"===e.legendType?d.data:d)))});return a},adjustMargins:function(a,d){var e=this.chart,b=this.options,f=b.align.charAt(0)+b.verticalAlign.charAt(0)+b.layout.charAt(0);\n", "b.floating||n([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(g,p){g.test(f)&&!D(a[p])&&(e[u[p]]=Math.max(e[u[p]],e.legend[(p+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][p]*b[p%2?\"x\":\"y\"]+x(b.margin,12)+d[p]))})},render:function(){var a=this,d=a.chart,f=d.renderer,b=a.group,g,h,H,q,u=a.box,c=a.options,w=a.padding;a.itemX=w;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;b||(a.group=b=f.g(\"legend\").attr({zIndex:7}).add(),a.contentGroup=f.g().attr({zIndex:1}).add(b),a.scrollGroup=\n", "f.g().add(a.contentGroup));a.renderTitle();g=a.getAllItems();m(g,function(a,c){return(a.options&&a.options.legendIndex||0)-(c.options&&c.options.legendIndex||0)});c.reversed&&g.reverse();a.allItems=g;a.display=h=!!g.length;a.lastLineHeight=0;n(g,function(c){a.renderItem(c)});H=(c.width||a.offsetWidth)+w;q=a.lastItemY+a.lastLineHeight+a.titleHeight;q=a.handleOverflow(q);q+=w;u||(a.box=u=f.rect().addClass(\"highcharts-legend-box\").attr({r:c.borderRadius}).add(b),u.isNew=!0);u.attr({stroke:c.borderColor,\n", "\"stroke-width\":c.borderWidth||0,fill:c.backgroundColor||\"none\"}).shadow(c.shadow);0e&&!1!==c.enabled?(this.clipHeight=q=Math.max(e-20-this.titleHeight-\n", "m,0),this.currentPage=x(this.currentPage,1),this.fullHeight=a,n(I,function(a,c){var b=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=G.length;if(!d||b-G[d-1]>q&&(l||b)!==G[d-1])G.push(l||b),d++;c===I.length-1&&b+a-G[d-1]>q&&G.push(b);b!==l&&(l=b)}),h||(h=d.clipRect=b.clipRect(0,m,9999,0),d.contentGroup.clip(h)),k(q),y||(this.nav=y=b.g().attr({zIndex:1}).add(this.group),this.up=b.symbol(\"triangle\",0,0,r,r).on(\"click\",function(){d.scroll(-1,w)}).add(y),this.pager=b.text(\"\",15,\n", "10).addClass(\"highcharts-legend-navigation\").css(c.style).add(y),this.down=b.symbol(\"triangle-down\",0,0,r,r).on(\"click\",function(){d.scroll(1,w)}).add(y)),d.scroll(0),a=e):y&&(k(),this.nav=y.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,d){var e=this.pages,b=e.length;a=this.currentPage+a;var f=this.clipHeight,g=this.options.navigation,m=this.pager,q=this.padding;a>b&&(a=b);0p&&(g=typeof a[0],\"string\"===g?f.name=a[0]:\"number\"===\n", "g&&(f.x=a[0]),b++);m=e.value;)e=f[++g];e&&e.color&&!this.options.color&&(this.color=e.color);return e},destroy:function(){var a=this.series.chart,f=a.hoverPoints,g;a.pointCount--;f&&(this.setState(),D(f,this),f.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)t(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);\n", "for(g in this)this[g]=null},destroyElements:function(){for(var a=[\"graphic\",\"dataLabel\",\"dataLabelUpper\",\"connector\",\"shadowGroup\"],f,g=6;g--;)f=a[g],this[f]&&(this[f]=this[f].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var f=this.series,g=f.tooltipOptions,e=x(g.valueDecimals,\"\"),\n", "d=g.valuePrefix||\"\",p=g.valueSuffix||\"\";B(f.pointArrayMap||[\"y\"],function(b){b=\"{point.\"+b;if(d||p)a=a.replace(b+\"}\",d+b+\"}\"+p);a=a.replace(b+\"}\",b+\":,.\"+e+\"f}\")});return h(a,{point:this,series:this.series})},firePointEvent:function(a,f,g){var e=this,d=this.series.options;(d.point.events[a]||e.options&&e.options.events&&e.options.events[a])&&this.importEvents();\"click\"===a&&d.allowPointSelect&&(g=function(a){e.select&&e.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});n(this,a,f,g)},visible:!0}})(L);\n", "(function(a){var E=a.addEvent,B=a.animObject,F=a.arrayMax,D=a.arrayMin,n=a.correctFloat,h=a.Date,u=a.defaultOptions,r=a.defaultPlotOptions,x=a.defined,t=a.each,m=a.erase,f=a.extend,g=a.fireEvent,e=a.grep,d=a.isArray,p=a.isNumber,b=a.isString,A=a.merge,v=a.objectEach,H=a.pick,q=a.removeEvent,J=a.splat,c=a.SVGElement,w=a.syncTimeout,K=a.win;a.Series=a.seriesType(\"line\",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{lineWidth:0,lineColor:\"#ffffff\",radius:4,\n", "states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",lineColor:\"#000000\",lineWidth:2}}},point:{events:{}},dataLabels:{align:\"center\",formatter:function(){return null===this.y?\"\":a.numberFormat(this.y,-1)},style:{fontSize:\"11px\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{animation:{duration:50},lineWidthPlus:1,marker:{},\n", "halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:\"x\"},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:[\"xAxis\",\"yAxis\"],colorCounter:0,parallelArrays:[\"x\",\"y\"],coll:\"series\",init:function(a,c){var b=this,d,k=a.series,e;b.chart=a;b.options=c=b.setOptions(c);b.linkedSeries=[];b.bindAxes();f(b,{name:c.name,state:\"\",visible:!1!==c.visible,selected:!0===c.selected});d=c.events;v(d,function(a,c){E(b,c,a)});if(d&&\n", "d.click||c.point&&c.point.events&&c.point.events.click||c.allowPointSelect)a.runTrackerClick=!0;b.getColor();b.getSymbol();t(b.parallelArrays,function(a){b[a+\"Data\"]=[]});b.setData(c.data,!1);b.isCartesian&&(a.hasCartesianSeries=!0);k.length&&(e=k[k.length-1]);b._i=H(e&&e._i,-1)+1;a.orderSeries(this.insert(k))},insert:function(a){var c=this.options.index,b;if(p(c)){for(b=a.length;b--;)if(c>=H(a[b].options.index,a[b]._i)){a.splice(b+1,0,this);break}-1===b&&a.unshift(this);b+=1}else a.push(this);return H(b,\n", "a.length-1)},bindAxes:function(){var c=this,b=c.options,d=c.chart,e;t(c.axisTypes||[],function(l){t(d[l],function(a){e=a.options;if(b[l]===e.index||void 0!==b[l]&&b[l]===e.id||void 0===b[l]&&0===e.index)c.insert(a.series),c[l]=a,a.isDirty=!0});c[l]||c.optionalAxis===l||a.error(18,!0)})},updateParallelArrays:function(a,c){var b=a.series,d=arguments,k=p(c)?function(d){var l=\"y\"===d&&b.toYData?b.toYData(a):a[d];b[d+\"Data\"][c]=l}:function(a){Array.prototype[c].apply(b[a+\"Data\"],Array.prototype.slice.call(d,\n", "2))};t(b.parallelArrays,k)},autoIncrement:function(){var a=this.options,c=this.xIncrement,b,d=a.pointIntervalUnit,c=H(c,a.pointStart,0);this.pointInterval=b=H(this.pointInterval,a.pointInterval,1);d&&(a=new h(c),\"day\"===d?a=+a[h.hcSetDate](a[h.hcGetDate]()+b):\"month\"===d?a=+a[h.hcSetMonth](a[h.hcGetMonth]()+b):\"year\"===d&&(a=+a[h.hcSetFullYear](a[h.hcGetFullYear]()+b)),b=a-c);this.xIncrement=c+b;return c},setOptions:function(a){var c=this.chart,b=c.options,d=b.plotOptions,k=(c.userOptions||{}).plotOptions||\n", "{},e=d[this.type];this.userOptions=a;c=A(e,d.series,a);this.tooltipOptions=A(u.tooltip,u.plotOptions.series&&u.plotOptions.series.tooltip,u.plotOptions[this.type].tooltip,b.tooltip.userOptions,d.series&&d.series.tooltip,d[this.type].tooltip,a.tooltip);this.stickyTracking=H(a.stickyTracking,k[this.type]&&k[this.type].stickyTracking,k.series&&k.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:c.stickyTracking);null===e.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=\n", "(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+\"Threshold\"]||c.threshold||0,className:\"highcharts-negative\",color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&x(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor});return c},getCyclic:function(a,c,b){var d,l=this.chart,e=this.userOptions,f=a+\"Index\",g=a+\"Counter\",y=b?b.length:H(l.options.chart[a+\"Count\"],l[a+\"Count\"]);c||(d=H(e[f],e[\"_\"+f]),x(d)||(l.series.length||\n", "(l[g]=0),e[\"_\"+f]=d=l[g]%y,l[g]+=1),b&&(c=b[d]));void 0!==d&&(this[f]=d);this[a]=c},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic(\"color\",this.options.color||r[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic(\"symbol\",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(c,e,l,f){var k=this,g=k.points,y=g&&g.length||0,q,m=k.options,h=k.chart,w=null,G=k.xAxis,\n", "I=m.turboThreshold,v=this.xData,n=this.yData,r=(q=k.pointArrayMap)&&q.length;c=c||[];q=c.length;e=H(e,!0);if(!1!==f&&q&&y===q&&!k.cropped&&!k.hasGroupedData&&k.visible)t(c,function(a,c){g[c].update&&a!==m.data[c]&&g[c].update(a,!1,null,!1)});else{k.xIncrement=null;k.colorCounter=0;t(this.parallelArrays,function(a){k[a+\"Data\"].length=0});if(I&&q>I){for(l=0;null===w&&lp||this.forceCrop))if(b[e-1]n)b=[],d=[];else if(b[0]n)k=this.cropData(this.xData,this.yData,v,n),b=k.xData,d=k.yData,k=k.start,f=!0;for(p=b.length||\n", "1;--p;)e=h?q(b[p])-q(b[p-1]):b[p]-b[p-1],0e&&this.requireSorting&&a.error(15);this.cropped=f;this.cropStart=k;this.processedXData=b;this.processedYData=d;this.closestPointRange=g},cropData:function(a,c,b,d){var l=a.length,e=0,f=l,g=H(this.cropShoulder,1),y;for(y=0;y=b){e=Math.max(0,y-g);break}for(b=y;bd){f=b+g;break}return{xData:a.slice(e,f),yData:c.slice(e,f),start:e,end:f}},generatePoints:function(){var a=this.options,c=a.data,b=this.data,\n", "d,k=this.processedXData,e=this.processedYData,f=this.pointClass,g=k.length,p=this.cropStart||0,q,m=this.hasGroupedData,a=a.keys,w,h=[],v;b||m||(b=[],b.length=c.length,b=this.data=b);a&&m&&(this.options.keys=!1);for(v=0;v=g&&(b[h]||m)<=y,q&&m)if(q=w.length)for(;q--;)null!==w[q]&&(k[f++]=w[q]);else k[f++]=w;this.dataMin=\n", "D(k);this.dataMax=F(k)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,c=a.stacking,b=this.xAxis,d=b.categories,k=this.yAxis,e=this.points,f=e.length,g=!!this.modifyValue,q=a.pointPlacement,m=\"between\"===q||p(q),w=a.threshold,h=a.startFromThreshold?w:0,v,r,K,A,u=Number.MAX_VALUE;\"between\"===q&&(q=.5);p(q)&&(q*=H(a.pointRange||b.pointRange));for(a=0;a=B&&(t.isNull=!0);t.plotX=v=n(Math.min(Math.max(-1E5,b.translate(J,0,0,0,1,q,\"flags\"===this.type)),1E5));c&&this.visible&&!t.isNull&&D&&D[J]&&(A=this.getStackIndicator(A,J,this.index),E=D[J],B=E.points[A.key],r=B[0],B=B[1],r===h&&A.key===D[J].base&&(r=H(w,k.min)),k.positiveValuesOnly&&0>=r&&(r=null),t.total=t.stackTotal=E.total,t.percentage=E.total&&t.y/E.total*100,t.stackY=B,E.setOffset(this.pointXOffset||0,this.barW||0));t.yBottom=x(r)?k.translate(r,0,1,0,1):\n", "null;g&&(B=this.modifyValue(B,t));t.plotY=r=\"number\"===typeof B&&Infinity!==B?Math.min(Math.max(-1E5,k.translate(B,0,1,0,1)),1E5):void 0;t.isInside=void 0!==r&&0<=r&&r<=k.len&&0<=v&&v<=b.len;t.clientX=m?n(b.translate(J,0,0,0,1,q)):v;t.negative=t.y<(w||0);t.category=d&&void 0!==d[t.x]?d[t.x]:t.x;t.isNull||(void 0!==K&&(u=Math.min(u,Math.abs(v-K))),K=v);t.zone=this.zones.length&&t.getZone()}this.closestPointRangePx=u},getValidPoints:function(a,c){var b=this.chart;return e(a||this.points||[],function(a){return c&&\n", "!b.isInsidePlot(a.plotX,a.plotY,b.inverted)?!1:!a.isNull})},setClip:function(a){var c=this.chart,b=this.options,d=c.renderer,k=c.inverted,e=this.clipBox,f=e||c.clipBox,g=this.sharedClipKey||[\"_sharedClip\",a&&a.duration,a&&a.easing,f.height,b.xAxis,b.yAxis].join(),p=c[g],q=c[g+\"m\"];p||(a&&(f.width=0,c[g+\"m\"]=q=d.clipRect(-99,k?-c.plotLeft:-c.plotTop,99,k?c.chartWidth:c.chartHeight)),c[g]=p=d.clipRect(f),p.count={length:0});a&&!p.count[this.index]&&(p.count[this.index]=!0,p.count.length+=1);!1!==b.clip&&\n", "(this.group.clip(a||e?p:c.clipRect),this.markerGroup.clip(q),this.sharedClipKey=g);a||(p.count[this.index]&&(delete p.count[this.index],--p.count.length),0===p.count.length&&g&&c[g]&&(e||(c[g]=c[g].destroy()),c[g+\"m\"]&&(c[g+\"m\"]=c[g+\"m\"].destroy())))},animate:function(a){var c=this.chart,b=B(this.options.animation),d;a?this.setClip(b):(d=this.sharedClipKey,(a=c[d])&&a.animate({width:c.plotSizeX},b),c[d+\"m\"]&&c[d+\"m\"].animate({width:c.plotSizeX+99},b),this.animate=null)},afterAnimate:function(){this.setClip();\n", "g(this,\"afterAnimate\")},drawPoints:function(){var a=this.points,c=this.chart,b,d,k,e,f=this.options.marker,g,q,m,w,h=this[this.specialGroup]||this.markerGroup,v=H(f.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=2*f.radius);if(!1!==f.enabled||this._hasPointMarkers)for(d=0;dl&&c.shadow));e&&(e.startX=b.xMap,e.isArea=b.isArea)})},applyZones:function(){var a=this,c=this.chart,b=c.renderer,\n", "d=this.zones,k,e,f=this.clips||[],g,p=this.graph,q=this.area,m=Math.max(c.chartWidth,c.chartHeight),w=this[(this.zoneAxis||\"y\")+\"Axis\"],h,v,n=c.inverted,r,K,A,u,J=!1;d.length&&(p||q)&&w&&void 0!==w.min&&(v=w.reversed,r=w.horiz,p&&p.hide(),q&&q.hide(),h=w.getExtremes(),t(d,function(d,l){k=v?r?c.plotWidth:0:r?0:w.toPixels(h.min);k=Math.min(Math.max(H(e,k),0),m);e=Math.min(Math.max(Math.round(w.toPixels(H(d.value,h.max),!0)),0),m);J&&(k=e=w.toPixels(h.max));K=Math.abs(k-e);A=Math.min(k,e);u=Math.max(k,\n", "e);w.isXAxis?(g={x:n?u:A,y:0,width:K,height:m},r||(g.x=c.plotHeight-g.x)):(g={x:0,y:n?u:A,width:m,height:K},r&&(g.y=c.plotWidth-g.y));n&&b.isVML&&(g=w.isXAxis?{x:0,y:v?A:u,height:g.width,width:c.chartWidth}:{x:g.y-c.plotLeft-c.spacingBox.x,y:0,width:g.height,height:c.chartHeight});f[l]?f[l].animate(g):(f[l]=b.clipRect(g),p&&a[\"zone-graph-\"+l].clip(f[l]),q&&a[\"zone-area-\"+l].clip(f[l]));J=d.value>h.max}),this.clips=f)},invertGroups:function(a){function c(){t([\"group\",\"markerGroup\"],function(c){b[c]&&\n", "(d.renderer.isVML&&b[c].attr({width:b.yAxis.len,height:b.xAxis.len}),b[c].width=b.yAxis.len,b[c].height=b.xAxis.len,b[c].invert(a))})}var b=this,d=b.chart,k;b.xAxis&&(k=E(d,\"resize\",c),E(b,\"destroy\",k),c(a),b.invertGroups=c)},plotGroup:function(a,c,b,d,k){var l=this[a],e=!l;e&&(this[a]=l=this.chart.renderer.g().attr({zIndex:d||.1}).add(k));l.addClass(\"highcharts-\"+c+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series highcharts-color-\"+this.colorIndex+\" \"+(this.options.className||\"\"),\n", "!0);l.attr({visibility:b})[e?\"attr\":\"animate\"](this.getPlotBox());return l},getPlotBox:function(){var a=this.chart,c=this.xAxis,b=this.yAxis;a.inverted&&(c=b,b=this.xAxis);return{translateX:c?c.left:a.plotLeft,translateY:b?b.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,c=a.chart,b,d=a.options,k=!!a.animate&&c.renderer.isSVG&&B(d.animation).duration,e=a.visible?\"inherit\":\"hidden\",f=d.zIndex,g=a.hasRendered,p=c.seriesGroup,q=c.inverted;b=a.plotGroup(\"group\",\"series\",e,f,p);a.markerGroup=\n", "a.plotGroup(\"markerGroup\",\"markers\",e,f,p);k&&a.animate(!0);b.inverted=a.isCartesian?q:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(q);!1===d.clip||a.sharedClipKey||g||b.clip(c.clipRect);k&&a.animate();g||(a.animationTimeout=w(function(){a.afterAnimate()},k));a.isDirty=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,c=this.isDirty||this.isDirtyData,\n", "b=this.group,d=this.xAxis,k=this.yAxis;b&&(a.inverted&&b.attr({width:a.plotWidth,height:a.plotHeight}),b.animate({translateX:H(d&&d.left,a.plotLeft),translateY:H(k&&k.top,a.plotTop)}));this.translate();this.render();c&&delete this.kdTree},kdAxisArray:[\"clientX\",\"plotY\"],searchPoint:function(a,c){var b=this.xAxis,d=this.yAxis,k=this.chart.inverted;return this.searchKDTree({clientX:k?b.len-a.chartY+b.pos:a.chartX-b.pos,plotY:k?d.len-a.chartX+d.pos:a.chartY-d.pos},c)},buildKDTree:function(){function a(b,\n", "d,l){var k,e;if(e=b&&b.length)return k=c.kdAxisArray[d%l],b.sort(function(a,c){return a[k]-c[k]}),e=Math.floor(e/2),{point:b[e],left:a(b.slice(0,e),d+1,l),right:a(b.slice(e+1),d+1,l)}}this.buildingKdTree=!0;var c=this,b=-1q?\"left\":\"right\";w=0>q?\"right\":\"left\";c[m]&&(m=b(a,c[m],l+1,g),h=m[f]v;)w--;this.updateParallelArrays(q,\"splice\",w,0,0);this.updateParallelArrays(q,w);k&&q.name&&(k[v]=q.name);p.splice(w,0,a);h&&(this.data.splice(w,0,null),this.processData());\"point\"===c.legendType&&this.generatePoints();e&&(l[0]&&l[0].remove?l[0].remove(!1):(l.shift(),this.updateParallelArrays(q,\"shift\"),p.shift()));this.isDirtyData=this.isDirty=!0;d&&g.redraw(f)},removePoint:function(a,d,e){var c=this,f=c.data,l=f[a],g=c.points,\n", "k=c.chart,p=function(){g&&g.length===f.length&&g.splice(a,1);f.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(l||{series:c},\"splice\",a,1);l&&l.destroy();c.isDirty=!0;c.isDirtyData=!0;d&&k.redraw()};q(e,k);d=b(d,!0);l?l.firePointEvent(\"remove\",null,p):p()},remove:function(a,d,e){function c(){f.destroy();l.isDirtyLegend=l.isDirtyBox=!0;l.linkSeries();b(a,!0)&&l.redraw(d)}var f=this,l=f.chart;!1!==e?t(f,\"remove\",null,c):c()},update:function(a,e){var c=this,f=c.chart,g=c.userOptions,l=\n", "c.oldType||c.type,p=a.type||g.type||f.options.chart.type,k=H[l].prototype,q=[\"group\",\"markerGroup\",\"dataLabelsGroup\"],h;if(Object.keys&&\"data\"===Object.keys(a).toString())return this.setData(a.data,e);if(p&&p!==l||void 0!==a.zIndex)q.length=0;u(q,function(a){q[a]=c[a];delete c[a]});a=d(g,{animation:!1,index:c.index,pointStart:c.xData[0]},{data:c.options.data},a);c.remove(!1,null,!1);for(h in k)c[h]=void 0;x(c,H[p||l].prototype);u(q,function(a){c[a]=q[a]});c.init(f,a);c.oldType=l;f.linkSeries();b(e,\n", "!0)&&f.redraw(!1)}});x(F.prototype,{update:function(a,e){var c=this.chart;a=c.options[this.coll][this.options.index]=d(this.userOptions,a);this.destroy(!0);this.init(c,x(a,{events:void 0}));c.isDirtyBox=!0;b(e,!0)&&c.redraw()},remove:function(a){for(var c=this.chart,d=this.coll,f=this.series,g=f.length;g--;)f[g]&&f[g].remove(!1);r(c.axes,this);r(c[d],this);e(c.options[d])?c.options[d].splice(this.options.index,1):delete c.options[d];u(c[d],function(a,c){a.options.index=c});this.destroy();c.isDirtyBox=\n", "!0;b(a,!0)&&c.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})})(L);(function(a){var E=a.color,B=a.each,F=a.map,D=a.pick,n=a.Series,h=a.seriesType;h(\"area\",\"line\",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(){var h=[],n=[],x=this.xAxis,t=this.yAxis,m=t.stacks[this.stackKey],f={},g=this.points,e=this.index,d=t.series,p=d.length,b,A=D(t.options.reversedStacks,!0)?1:-1,v;if(this.options.stacking){for(v=\n", "0;va&&x>h?(x=Math.max(a,h),m=2*h-x):xD&&m>h?(m=Math.max(D,h),x=2*h-m):m=Math.abs(f)&&.5a.closestPointRange*a.xAxis.transA,\n", "e=a.borderWidth=u(g.borderWidth,e?0:1),d=a.yAxis,p=a.translatedThreshold=d.getThreshold(g.threshold),b=u(g.minPointLength,5),h=a.getColumnMetrics(),v=h.width,n=a.barW=Math.max(v,1+2*e),q=a.pointXOffset=h.offset;f.inverted&&(p-=.5);g.pointPadding&&(n=Math.ceil(n));r.prototype.translate.apply(a);F(a.points,function(e){var c=u(e.yBottom,p),g=999+Math.abs(c),g=Math.min(Math.max(-g,e.plotY),d.len+g),h=e.plotX+q,m=n,r=Math.min(g,c),l,I=Math.max(g,c)-r;Math.abs(I)b?c-b:p-(l?b:0));e.barX=h;e.pointWidth=v;e.tooltipPos=f.inverted?[d.len+d.pos-f.plotLeft-g,a.xAxis.len-h-m/2,I]:[h+m/2,g+d.pos-f.plotTop,I];e.shapeType=\"rect\";e.shapeArgs=a.crispCol.apply(a,e.isNull?[h,p,m,0]:[h,r,m,I])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")},pointAttribs:function(a,f){var g=this.options,e,d=this.pointAttrToOptions||{};\n", "e=d.stroke||\"borderColor\";var p=d[\"stroke-width\"]||\"borderWidth\",b=a&&a.color||this.color,m=a[e]||g[e]||this.color||b,v=a[p]||g[p]||this[p]||0,d=g.dashStyle;a&&this.zones.length&&(b=a.getZone(),b=a.options.color||b&&b.color||this.color);f&&(a=h(g.states[f],a.options.states&&a.options.states[f]||{}),f=a.brightness,b=a.color||void 0!==f&&B(b).brighten(a.brightness).get()||b,m=a[e]||m,v=a[p]||v,d=a.dashStyle||d);e={fill:b,stroke:m,\"stroke-width\":v};g.borderRadius&&(e.r=g.borderRadius);d&&(e.dashstyle=\n", "d);return e},drawPoints:function(){var a=this,f=this.chart,g=a.options,e=f.renderer,d=g.animationLimit||250,p;F(a.points,function(b){var m=b.graphic;if(n(b.plotY)&&null!==b.y){p=b.shapeArgs;if(m)m[f.pointCountx;++x)t=u[x],a=2>x||2===x&&/%$/.test(t),u[x]=B(t,[h,\n", "D,r,u[2]][x])+(a?n:0);u[3]>u[2]&&(u[3]=u[2]);return u}}})(L);(function(a){var E=a.addEvent,B=a.defined,F=a.each,D=a.extend,n=a.inArray,h=a.noop,u=a.pick,r=a.Point,x=a.Series,t=a.seriesType,m=a.setAnimation;t(\"pie\",\"line\",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:\"point\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},\n", "borderColor:\"#ffffff\",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var f=this,e=f.points,d=f.startAngleRad;a||(F(e,function(a){var b=a.graphic,e=a.shapeArgs;b&&(b.attr({r:a.startR||f.center[3]/2,start:d,end:d}),b.animate({r:e.r,start:e.start,end:e.end},f.options.animation))}),f.animate=null)},\n", "updateTotals:function(){var a,g=0,e=this.points,d=e.length,p,b=this.options.ignoreHiddenPoint;for(a=0;a1.5*Math.PI?v-=2*Math.PI:v<-Math.PI/2&&(v+=2*Math.PI);t.slicedTranslation={translateX:Math.round(Math.cos(v)*d),translateY:Math.round(Math.sin(v)*d)};h=Math.cos(v)*a[2]/2;c=Math.sin(v)*a[2]/2;t.tooltipPos=[a[0]+.7*h,a[1]+.7*c];t.half=v<-Math.PI/2||v>Math.PI/2?1:0;t.angle=v;b=Math.min(p,t.labelDistance/5);t.labelPos=[a[0]+h+Math.cos(v)*t.labelDistance,\n", "a[1]+c+Math.sin(v)*t.labelDistance,a[0]+h+Math.cos(v)*b,a[1]+c+Math.sin(v)*b,a[0]+h,a[1]+c,0>t.labelDistance?\"center\":t.half?\"right\":\"left\",v]}},drawGraph:null,drawPoints:function(){var a=this,g=a.chart.renderer,e,d,p,b,h=a.options.shadow;h&&!a.shadowGroup&&(a.shadowGroup=g.g(\"shadow\").add(a.group));F(a.points,function(f){if(!f.isNull){d=f.graphic;b=f.shapeArgs;e=f.getTranslate();var m=f.shadowGroup;h&&!m&&(m=f.shadowGroup=g.g(\"shadow\").add(a.shadowGroup));m&&m.attr(e);p=a.pointAttribs(f,f.selected&&\n", "\"select\");d?d.setRadialReference(a.center).attr(p).animate(D(b,e)):(f.graphic=d=g[f.shapeType](b).setRadialReference(a.center).attr(e).add(a.group),f.visible||d.attr({visibility:\"hidden\"}),d.attr(p).attr({\"stroke-linejoin\":\"round\"}).shadow(h,m));d.addClass(f.getClassName())}})},searchPoint:h,sortByAngle:function(a,g){a.sort(function(a,d){return void 0!==a.angle&&(d.angle-a.angle)*g})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:h},{init:function(){r.prototype.init.apply(this,\n", "arguments);var a=this,g;a.name=u(a.name,\"Slice\");g=function(e){a.slice(\"select\"===e.type)};E(a,\"select\",g);E(a,\"unselect\",g);return a},isValid:function(){return a.isNumber(this.y,!0)&&0<=this.y},setVisible:function(a,g){var e=this,d=e.series,f=d.chart,b=d.options.ignoreHiddenPoint;g=u(g,b);a!==e.visible&&(e.visible=e.options.visible=a=void 0===a?!e.visible:a,d.options.data[n(e,d.data)]=e.options,F([\"graphic\",\"dataLabel\",\"connector\",\"shadowGroup\"],function(b){if(e[b])e[b][a?\"show\":\"hide\"](!0)}),e.legendItem&&\n", "f.legend.colorizeItem(e,a),a||\"hover\"!==e.state||e.setState(\"\"),b&&(d.isDirty=!0),g&&f.redraw())},slice:function(a,g,e){var d=this.series;m(e,d.chart);u(g,!0);this.sliced=this.options.sliced=B(a)?a:!this.sliced;d.options.data[n(this,d.data)]=this.options;this.graphic.animate(this.getTranslate());this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(a){var f=this.shapeArgs;return this.sliced||\n", "!this.visible?[]:this.series.chart.renderer.symbols.arc(f.x,f.y,f.r+a,f.r+a,{innerR:this.shapeArgs.r,start:f.start,end:f.end})}})})(L);(function(a){var E=a.addEvent,B=a.arrayMax,F=a.defined,D=a.each,n=a.extend,h=a.format,u=a.map,r=a.merge,x=a.noop,t=a.pick,m=a.relativeLength,f=a.Series,g=a.seriesTypes,e=a.stableSort;a.distribute=function(a,f){function b(a,b){return a.target-b.target}var d,g=!0,p=a,q=[],h;h=0;for(d=a.length;d--;)h+=a[d].size;if(h>f){e(a,function(a,b){return(b.rank||0)-(a.rank||0)});\n", "for(h=d=0;h<=f;)h+=a[d].size,d++;q=a.splice(d-1,a.length)}e(a,b);for(a=u(a,function(a){return{size:a.size,targets:[a.target]}});g;){for(d=a.length;d--;)g=a[d],h=(Math.min.apply(0,g.targets)+Math.max.apply(0,g.targets))/2,g.pos=Math.min(Math.max(0,h-g.size/2),f-g.size);d=a.length;for(g=!1;d--;)0a[d].pos&&(a[d-1].size+=a[d].size,a[d-1].targets=a[d-1].targets.concat(a[d].targets),a[d-1].pos+a[d-1].size>f&&(a[d-1].pos=f-a[d-1].size),a.splice(d,1),g=!0)}d=0;D(a,function(a){var c=\n", "0;D(a.targets,function(){p[d].pos=a.pos+c;c+=p[d].size;d++})});p.push.apply(p,q);e(p,b)};f.prototype.drawDataLabels=function(){var d=this,e=d.options,b=e.dataLabels,f=d.points,g,m,q=d.hasRendered||0,n,c,w=t(b.defer,!!e.animation),u=d.chart.renderer;if(b.enabled||d._hasPointLabels)d.dlProcessOptions&&d.dlProcessOptions(b),c=d.plotGroup(\"dataLabelsGroup\",\"data-labels\",w&&!q?\"hidden\":\"visible\",b.zIndex||6),w&&(c.attr({opacity:+q}),q||E(d,\"afterAnimate\",function(){d.visible&&c.show(!0);c[e.animation?\n", "\"animate\":\"attr\"]({opacity:1},{duration:200})})),m=b,D(f,function(f){var q,l=f.dataLabel,p,k,w=f.connector,v=!l,y;g=f.dlOptions||f.options&&f.options.dataLabels;if(q=t(g&&g.enabled,m.enabled)&&null!==f.y)b=r(m,g),p=f.getLabelConfig(),n=b.format?h(b.format,p):b.formatter.call(p,b),y=b.style,p=b.rotation,y.color=t(b.color,y.color,d.color,\"#000000\"),\"contrast\"===y.color&&(f.contrastColor=u.getContrast(f.color||d.color),y.color=b.inside||0>t(f.labelDistance,b.distance)||e.stacking?f.contrastColor:\"#000000\"),\n", "e.cursor&&(y.cursor=e.cursor),k={fill:b.backgroundColor,stroke:b.borderColor,\"stroke-width\":b.borderWidth,r:b.borderRadius||0,rotation:p,padding:b.padding,zIndex:1},a.objectEach(k,function(a,c){void 0===a&&delete k[c]});!l||q&&F(n)?q&&F(n)&&(l?k.text=n:(l=f.dataLabel=u[p?\"text\":\"label\"](n,0,-9999,b.shape,null,null,b.useHTML,null,\"data-label\"),l.addClass(\"highcharts-data-label-color-\"+f.colorIndex+\" \"+(b.className||\"\")+(b.useHTML?\"highcharts-tracker\":\"\"))),l.attr(k),l.css(y).shadow(b.shadow),l.added||\n", "l.add(c),d.alignDataLabel(f,l,b,null,v)):(f.dataLabel=l=l.destroy(),w&&(f.connector=w.destroy()))})};f.prototype.alignDataLabel=function(a,e,b,f,g){var d=this.chart,q=d.inverted,h=t(a.plotX,-9999),c=t(a.plotY,-9999),p=e.getBBox(),m,v=b.rotation,r=b.align,l=this.visible&&(a.series.forceDL||d.isInsidePlot(h,Math.round(c),q)||f&&d.isInsidePlot(h,q?f.x+1:f.y+f.height-1,q)),I=\"justify\"===t(b.overflow,\"justify\");if(l&&(m=b.style.fontSize,m=d.renderer.fontMetrics(m,e).b,f=n({x:q?d.plotWidth-c:h,y:Math.round(q?\n", "d.plotHeight-h:c),width:0,height:0},f),n(b,{width:p.width,height:p.height}),v?(I=!1,h=d.renderer.rotCorr(m,v),h={x:f.x+b.x+f.width/2+h.x,y:f.y+b.y+{top:0,middle:.5,bottom:1}[b.verticalAlign]*f.height},e[g?\"attr\":\"animate\"](h).attr({align:r}),c=(v+720)%360,c=180c,\"left\"===r?h.y-=c?p.height:0:\"center\"===r?(h.x-=p.width/2,h.y-=p.height/2):\"right\"===r&&(h.x-=p.width,h.y-=c?0:p.height)):(e.align(b,null,f),h=e.alignAttr),I?a.isLabelJustified=this.justifyDataLabel(e,b,h,p,f,g):t(b.crop,!0)&&(l=d.isInsidePlot(h.x,\n", "h.y)&&d.isInsidePlot(h.x+p.width,h.y+p.height)),b.shape&&!v))e[g?\"attr\":\"animate\"]({anchorX:q?d.plotWidth-a.plotY:a.plotX,anchorY:q?d.plotHeight-a.plotX:a.plotY});l||(e.attr({y:-9999}),e.placed=!1)};f.prototype.justifyDataLabel=function(a,e,b,f,g,h){var d=this.chart,p=e.align,c=e.verticalAlign,m,n,v=a.box?0:a.padding||0;m=b.x+v;0>m&&(\"right\"===p?e.align=\"left\":e.x=-m,n=!0);m=b.x+f.width-v;m>d.plotWidth&&(\"left\"===p?e.align=\"right\":e.x=d.plotWidth-m,n=!0);m=b.y+v;0>m&&(\"bottom\"===c?e.verticalAlign=\n", "\"top\":e.y=-m,n=!0);m=b.y+f.height-v;m>d.plotHeight&&(\"top\"===c?e.verticalAlign=\"bottom\":e.y=d.plotHeight-m,n=!0);n&&(a.placed=!h,a.align(e,null,g));return n};g.pie&&(g.pie.prototype.drawDataLabels=function(){var d=this,e=d.data,b,g=d.chart,h=d.options.dataLabels,m=t(h.connectorPadding,10),q=t(h.connectorWidth,1),n=g.plotWidth,c=g.plotHeight,w,r=d.center,y=r[2]/2,u=r[1],l,I,k,z,x=[[],[]],M,N,E,O,C=[0,0,0,0];d.visible&&(h.enabled||d._hasPointLabels)&&(D(e,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&\n", "(a.dataLabel.attr({width:\"auto\"}).css({width:\"auto\",textOverflow:\"clip\"}),a.dataLabel.shortened=!1)}),f.prototype.drawDataLabels.apply(d),D(e,function(a){a.dataLabel&&a.visible&&(x[a.half].push(a),a.dataLabel._pos=null)}),D(x,function(e,f){var q,p,w=e.length,v=[],t;if(w)for(d.sortByAngle(e,f-.5),0b.bottom-2?q:N,f,b),l._attr={visibility:E,align:k[6]},\n", "l._pos={x:M+h.x+({left:m,right:-m}[k[6]]||0),y:N+h.y-10},k.x=M,k.y=N,I=l.getBBox().width,q=null,M-In-m&&(q=Math.round(M+I-n+m),C[1]=Math.max(q,C[1])),0>N-z/2?C[0]=Math.max(Math.round(-N+z/2),C[0]):N+z/2>c&&(C[2]=Math.max(Math.round(N+z/2-c),C[2])),l.sideOverflow=q}),0===B(C)||this.verifyDataLabelOverflow(C))&&(this.placeDataLabels(),q&&D(this.points,function(a){var c;w=a.connector;if((l=a.dataLabel)&&l._pos&&a.visible&&0t(this.translatedThreshold,q.yAxis.len)),m=t(b.inside,!!this.options.stacking);p&&(g=r(p),0>g.y&&(g.height+=g.y,g.y=0),p=g.y+g.height-q.yAxis.len,0a+e||g+cd+f||h+pthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,\n", "e;d&&u(d,function(a){a.setState()});u(\"xy\"===b?[1,0]:[1],function(b){b=c[b?\"xAxis\":\"yAxis\"][0];var d=b.horiz,l=a[d?\"chartX\":\"chartY\"],d=d?\"mouseDownX\":\"mouseDownY\",f=c[d],k=(b.pointRange||0)/2,g=b.getExtremes(),h=b.toValue(f-l,!0)+k,k=b.toValue(f+b.len-l,!0)-k,p=k=h(r.minWidth,0)&&this.chartHeight>=h(r.minHeight,0)}).call(this)&&n.push(a._id)};E.prototype.currentOptions=function(h){function r(h,f,g,e){var d;a.objectEach(h,function(a,b){if(!e&&-1b.length||void 0===e)return a.call(this,g,e,d,p);u=b.length;for(q=0;qd;b[q]5*m||y){if(b[q]>l){for(r=a.call(this,g,b[f],b[q],p);r.length&&r[0]<=l;)r.shift();r.length&&(l=r[r.length-1]);x=x.concat(r)}f=q+1}if(y)break}a=r.info;if(v&&a.unitRange<=t.hour){q=x.length-1;for(f=1;fd?a-1:a;for(k=void 0;v--;)f=q[v],d=Math.abs(k-f),k&&d<.8*I&&(null===w||d<.8*w)?(c[x[v]]&&!c[x[v+1]]?(d=v+1,k=f):d=v,x.splice(d,1)):k=f}return x});r(B.prototype,{beforeSetTickPositions:function(){var a,g=[],e=!1,d,h=this.getExtremes(),b=h.min,m=h.max,n,r=this.isXAxis&&!!this.options.breaks,h=this.options.ordinal,q=this.chart.options.chart.ignoreHiddenSeries;if(h||r){u(this.series,\n", "function(b,c){if(!(q&&!1===b.visible||!1===b.takeOrdinalPosition&&!r)&&(g=g.concat(b.processedXData),a=g.length,g.sort(function(a,c){return a-c}),a))for(c=a-1;c--;)g[c]===g[c+1]&&g.splice(c,1)});a=g.length;if(2d||m-g[g.length-1]>d)&&(e=!0)}e?(this.ordinalPositions=g,d=this.ordinal2lin(Math.max(b,g[0]),!0),n=Math.max(this.ordinal2lin(Math.min(m,g[g.length-1]),!0),1),this.ordinalSlope=m=(m-b)/(n-d),\n", "this.ordinalOffset=b-d*m):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=h&&e;this.groupIntervalFactor=null},val2lin:function(a,g){var e=this.ordinalPositions;if(e){var d=e.length,f,b;for(f=d;f--;)if(e[f]===a){b=f;break}for(f=d-1;f--;)if(a>e[f]||0===f){a=(a-e[f])/(e[f+1]-e[f]);b=f+a;break}g=g?b:this.ordinalSlope*(b||0)+this.ordinalOffset}else g=a;return g},lin2val:function(a,g){var e=this.ordinalPositions;if(e){var d=this.ordinalSlope,f=this.ordinalOffset,b=e.length-\n", "1,h;if(g)0>a?a=e[0]:a>b?a=e[b]:(b=Math.floor(a),h=a-b);else for(;b--;)if(g=d*b+f,a>=g){d=d*(b+1)+f;h=(a-g)/(d-g);break}return void 0!==h&&void 0!==e[b]?e[b]+(h?h*(e[b+1]-e[b]):0):a}return a},getExtendedPositions:function(){var a=this.chart,g=this.series[0].currentDataGrouping,e=this.ordinalIndex,d=g?g.count+g.unitName:\"raw\",h=this.getExtremes(),b,m;e||(e=this.ordinalIndex={});e[d]||(b={series:[],chart:a,getExtremes:function(){return{min:h.dataMin,max:h.dataMax}},options:{ordinal:!0},val2lin:B.prototype.val2lin,\n", "ordinal2lin:B.prototype.ordinal2lin},u(this.series,function(d){m={xAxis:b,xData:d.xData,chart:a,destroyGroupedData:x};m.options={dataGrouping:g?{enabled:!0,forced:!0,approximation:\"open\",units:[[g.unitName,[g.count]]]}:{enabled:!1}};d.processData.apply(m);b.series.push(m)}),this.beforeSetTickPositions.apply(b),e[d]=b.ordinalPositions);return e[d]},getGroupIntervalFactor:function(a,g,e){var d;e=e.processedXData;var f=e.length,b=[];d=this.groupIntervalFactor;if(!d){for(d=0;db?(r=w,y=e.ordinalPositions?e:w):(r=e.ordinalPositions?e:w,y=w),w=y.ordinalPositions,m>w[w.length-1]&&w.push(m),this.fixedRange=q-n,b=e.toFixedRange(null,null,c.apply(r,[t.apply(r,[n,!0])+b,!0]),c.apply(y,[t.apply(y,[q,!0])+b,!0])),b.min>=Math.min(h.dataMin,n)&&\n", "b.max<=Math.max(m,q)&&e.setExtremes(b.min,b.max,!0,!1,{trigger:\"pan\"}),this.mouseDownX=d,D(this.container,{cursor:\"move\"})):f=!0}else f=!0;f&&a.apply(this,Array.prototype.slice.call(arguments,1))})})(L);(function(a){function E(){return Array.prototype.slice.call(arguments,1)}function B(a){a.apply(this);this.drawBreaks(this.xAxis,[\"x\"]);this.drawBreaks(this.yAxis,F(this.pointArrayMap,[\"y\"]))}var F=a.pick,D=a.wrap,n=a.each,h=a.extend,u=a.isArray,r=a.fireEvent,x=a.Axis,t=a.Series;h(x.prototype,{isInBreak:function(a,\n", "f){var g=a.repeat||Infinity,e=a.from,d=a.to-a.from;f=f>=e?(f-e)%g:g-(e-f)%g;return a.inclusive?f<=d:f=a)break;else if(e.isInBreak(b,a)){d-=a-b.from;break}return d},e.lin2val=function(a){var d,b;for(b=0;b=\n", "a);b++)d.tom;)w-=h;for(;wd.to||h>d.from&&md.from&&md.from&&m>d.to&&mthis.closestPointRange*a&&f.splice(g+1,0,{isNull:!0});return this.getGraphPath(f)};D(a.seriesTypes.column.prototype,\"drawPoints\",B);D(a.Series.prototype,\"drawPoints\",B)})(L);(function(a){var E=a.arrayMax,B=a.arrayMin,F=a.Axis,D=a.defaultPlotOptions,n=a.defined,h=a.each,u=a.extend,r=a.format,x=a.isNumber,t=a.merge,m=a.pick,f=a.Point,g=a.Tooltip,e=a.wrap,d=a.Series.prototype,p=d.processData,b=d.generatePoints,\n", "A=d.destroy,v={approximation:\"average\",groupPixelWidth:2,dateTimeLabelFormats:{millisecond:[\"%A, %b %e, %H:%M:%S.%L\",\"%A, %b %e, %H:%M:%S.%L\",\"-%H:%M:%S.%L\"],second:[\"%A, %b %e, %H:%M:%S\",\"%A, %b %e, %H:%M:%S\",\"-%H:%M:%S\"],minute:[\"%A, %b %e, %H:%M\",\"%A, %b %e, %H:%M\",\"-%H:%M\"],hour:[\"%A, %b %e, %H:%M\",\"%A, %b %e, %H:%M\",\"-%H:%M\"],day:[\"%A, %b %e, %Y\",\"%A, %b %e\",\"-%A, %b %e, %Y\"],week:[\"Week from %A, %b %e, %Y\",\"%A, %b %e\",\"-%A, %b %e, %Y\"],month:[\"%B %Y\",\"%B\",\"-%B %Y\"],year:[\"%Y\",\"%Y\",\"-%Y\"]}},\n", "H={line:{},spline:{},area:{},areaspline:{},column:{approximation:\"sum\",groupPixelWidth:10},arearange:{approximation:\"range\"},areasplinerange:{approximation:\"range\"},columnrange:{approximation:\"range\",groupPixelWidth:10},candlestick:{approximation:\"ohlc\",groupPixelWidth:10},ohlc:{approximation:\"ohlc\",groupPixelWidth:5}},q=a.defaultDataGroupingUnits=[[\"millisecond\",[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1]],[\"week\",\n", "[1]],[\"month\",[1,3,6]],[\"year\",null]],J={sum:function(a){var c=a.length,b;if(!c&&a.hasNulls)b=null;else if(c)for(b=0;c--;)b+=a[c];return b},average:function(a){var c=a.length;a=J.sum(a);x(a)&&c&&(a/=c);return a},averages:function(){var a=[];h(arguments,function(c){a.push(J.average(c))});return a},open:function(a){return a.length?a[0]:a.hasNulls?null:void 0},high:function(a){return a.length?E(a):a.hasNulls?null:void 0},low:function(a){return a.length?B(a):a.hasNulls?null:void 0},close:function(a){return a.length?\n", "a[a.length-1]:a.hasNulls?null:void 0},ohlc:function(a,b,d,e){a=J.open(a);b=J.high(b);d=J.low(d);e=J.close(e);if(x(a)||x(b)||x(d)||x(e))return[a,b,d,e]},range:function(a,b){a=J.low(a);b=J.high(b);if(x(a)||x(b))return[a,b];if(null===a&&null===b)return null}};d.groupData=function(a,b,d,e){var c=this.data,f=this.options.data,g=[],k=[],p=[],m=a.length,n,q,r=!!b,w=[];e=\"function\"===typeof e?e:J[e]||H[this.type]&&J[H[this.type].approximation]||J[v.approximation];var u=this.pointArrayMap,t=u&&u.length,y=\n", "0;q=0;var K,A;t?h(u,function(){w.push([])}):w.push([]);K=t||1;for(A=0;A<=m&&!(a[A]>=d[0]);A++);for(A;A<=m;A++){for(;void 0!==d[y+1]&&a[A]>=d[y+1]||A===m;){n=d[y];this.dataGroupInfo={start:q,length:w[0].length};q=e.apply(this,w);void 0!==q&&(g.push(n),k.push(q),p.push(this.dataGroupInfo));q=A;for(n=0;nthis.chart.plotSizeX/e||b&&l.forced)&&(f=!0);return f?\n", "e:0};F.prototype.setDataGrouping=function(a,b){var c;b=m(b,!0);a||(a={forced:!1,units:null});if(this instanceof F)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:a},!1);else h(this.chart.options.series,function(c){c.dataGrouping=a},!1);b&&this.chart.redraw()}})(L);(function(a){var E=a.each,B=a.Point,F=a.seriesType,D=a.seriesTypes;F(\"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'},\n", "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\"},pointAttribs:function(a,h){h=D.column.prototype.pointAttribs.call(this,a,h);var n=this.options;delete h.fill;!a.options.color&&n.upColor&&a.opend)););B(e,function(a,d){var f;void 0===a.plotY&&(a.x>=c.min&&a.x<=c.max?a.plotY=g.chartHeight-q.bottom-(q.opposite?q.height:0)+q.offset-t.top:a.shapeArgs={});a.plotX+=w;(b=e[d-1])&&b.plotX===a.plotX&&(void 0===\n", "b.stackIndex&&(b.stackIndex=0),f=b.stackIndex+1);a.stackIndex=f})},drawPoints:function(){var f=this.points,g=this.chart,e=g.renderer,d,h,b=this.options,m=b.y,n,r,q,t,c,w,u,y=this.yAxis;for(r=f.length;r--;)q=f[r],u=q.plotX>this.xAxis.len,d=q.plotX,t=q.stackIndex,n=q.options.shape||b.shape,h=q.plotY,void 0!==h&&(h=q.plotY+m-(void 0!==t&&t*b.stackDistance)),c=t?void 0:q.plotX,w=t?void 0:q.plotY,t=q.graphic,void 0!==h&&0<=d&&!u?(t||(t=q.graphic=e.label(\"\",null,null,n,null,null,b.useHTML).attr(this.pointAttribs(q)).css(F(b.style,\n", "q.style)).attr({align:\"flag\"===n?\"left\":\"center\",width:b.width,height:b.height,\"text-align\":b.textAlign}).addClass(\"highcharts-point\").add(this.markerGroup),q.graphic.div&&(q.graphic.div.point=q),t.shadow(b.shadow)),0d&&(f-=Math.round((h-d)/2),d=h);f=t[a](f,e,d,h);g&&b&&f.push(\"M\",g,e>b?e:e+h,\"L\",g,b);return f}});n===x&&B([\"flag\",\"circlepin\",\"squarepin\"],function(a){x.prototype.symbols[a]=t[a]})})(L);(function(a){function E(a,b,d){this.init(a,b,d)}var B=a.addEvent,F=a.Axis,D=a.correctFloat,n=a.defaultOptions,h=a.defined,u=a.destroyObjectProperties,r=a.doc,x=a.each,t=a.fireEvent,m=a.hasTouch,f=a.isTouchDevice,\n", "g=a.merge,e=a.pick,d=a.removeEvent,p=a.wrap,b,A={height:f?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!f,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};n.scrollbar=g(!0,A,n.scrollbar);a.swapXY=b=function(a,b){var d=\n", "a.length,e;if(b)for(b=0;b=m?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===d.showFull&&(0>=a&&1<=b?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var d=a.chart.pointer.normalize(b),e=a.options.vertical?\"chartY\":\"chartX\",c=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][e]||\n", "(d=a.cursorToScrollbarPosition(d)[e],e=a[e],e=d-e,a.hasDragged=!0,a.updatePosition(c[0]+e,c[1]+e),a.hasDragged&&t(a,\"changed\",{from:a.from,to:a.to,trigger:\"scrollbar\",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&t(a,\"changed\",{from:a.from,to:a.to,trigger:\"scrollbar\",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b);b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;\n", "a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var d=D(a.to-a.from)*a.options.step;a.updatePosition(D(a.from-d),D(a.to-d));t(a,\"changed\",{from:a.from,to:a.to,trigger:\"scrollbar\",DOMEvent:b})};a.buttonToMaxClick=function(b){var d=(a.to-a.from)*a.options.step;a.updatePosition(a.from+d,a.to+d);t(a,\"changed\",{from:a.from,to:a.to,trigger:\"scrollbar\",DOMEvent:b})};a.trackClick=function(b){var d=a.chart.pointer.normalize(b),e=a.to-a.from,c=a.y+a.scrollbarTop,f=a.x+a.scrollbarLeft;\n", "a.options.vertical&&d.chartY>c||!a.options.vertical&&d.chartX>f?a.updatePosition(a.from+e,a.to+e):a.updatePosition(a.from-e,a.to-e);t(a,\"changed\",{from:a.from,to:a.to,trigger:\"scrollbar\",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a,b){1a&&(b=D(b-a),a=0);\n", "this.from=a;this.to=b},update:function(a){this.destroy();this.init(this.chart.renderer,g(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],b=this.scrollbarButtons,d=this.scrollbarGroup.element,e=this.mouseDownHandler,c=this.mouseMoveHandler,f=this.mouseUpHandler,a=[[b[a[0]].element,\"click\",this.buttonToMinClick],[b[a[1]].element,\"click\",this.buttonToMaxClick],[this.track.element,\"click\",this.trackClick],[d,\"mousedown\",e],[r,\"mousemove\",c],[r,\"mouseup\",f]];\n", "m&&a.push([d,\"touchstart\",e],[r,\"touchmove\",c],[r,\"touchend\",f]);x(a,function(a){B.apply(null,a)});this._events=a},removeEvents:function(){x(this._events,function(a){d.apply(null,a)});this._events.length=0},destroy:function(){var a=this.chart.scroller;this.removeEvents();x([\"track\",\"scrollbarRifles\",\"scrollbar\",\"scrollbarGroup\",\"group\"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&this===a.scrollbar&&(a.scrollbar=null,u(a.scrollbarButtons))}};p(F.prototype,\"init\",function(a){var b=\n", "this;a.apply(b,Array.prototype.slice.call(arguments,1));b.options.scrollbar&&b.options.scrollbar.enabled&&(b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new E(b.chart.renderer,b.options.scrollbar,b.chart),B(b.scrollbar,\"changed\",function(a){var d=Math.min(e(b.options.min,b.min),b.min,b.dataMin),c=Math.max(e(b.options.max,b.max),b.max,b.dataMax)-d,f;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(f=d+c*this.to,d+=c*this.from):(f=d+c*(1-this.from),d+=c*(1-\n", "this.to));b.setExtremes(d,f,!0,!1,a)}))});p(F.prototype,\"render\",function(a){var b=Math.min(e(this.options.min,this.min),this.min,this.dataMin),d=Math.max(e(this.options.max,this.max),this.max,this.dataMax),f=this.scrollbar,c=this.titleOffset||0;a.apply(this,Array.prototype.slice.call(arguments,1));if(f){this.horiz?(f.position(this.left,this.top+this.height+2+this.chart.scrollbarsOffsets[1]+(this.opposite?0:c+this.axisTitleMargin+this.offset),this.width,this.height),c=1):(f.position(this.left+this.width+\n", "2+this.chart.scrollbarsOffsets[0]+(this.opposite?c+this.axisTitleMargin+this.offset:0),this.top,this.width,this.height),c=0);if(!this.opposite&&!this.horiz||this.opposite&&this.horiz)this.chart.scrollbarsOffsets[c]+=this.scrollbar.size+this.scrollbar.options.margin;isNaN(b)||isNaN(d)||!h(this.min)||!h(this.max)?f.setRange(0,0):(c=(this.min-b)/(d-b),b=(this.max-b)/(d-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?f.setRange(c,b):f.setRange(1-b,1-c))}});p(F.prototype,\"getOffset\",function(a){var b=\n", "this.horiz?2:1,d=this.scrollbar;a.apply(this,Array.prototype.slice.call(arguments,1));d&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[b]+=d.size+d.options.margin)});p(F.prototype,\"destroy\",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy());a.apply(this,Array.prototype.slice.call(arguments,1))});a.Scrollbar=E})(L);(function(a){function E(a){this.init(a)}var B=a.addEvent,F=a.Axis,D=a.Chart,n=a.color,h=a.defaultOptions,u=a.defined,r=a.destroyObjectProperties,x=a.doc,t=\n", "a.each,m=a.erase,f=a.error,g=a.extend,e=a.grep,d=a.hasTouch,p=a.isNumber,b=a.isObject,A=a.merge,v=a.pick,H=a.removeEvent,q=a.Scrollbar,J=a.Series,c=a.seriesTypes,w=a.wrap,K=a.swapXY,y=[].concat(a.defaultDataGroupingUnits),G=function(a){var b=e(arguments,p);if(b.length)return Math[a].apply(0,b)};y[4]=[\"day\",[1,2,3,4]];y[5]=[\"week\",[1,2,3]];c=void 0===c.areaspline?\"line\":\"areaspline\";g(h,{navigator:{height:40,margin:25,maskInside:!0,handles:{backgroundColor:\"#f2f2f2\",borderColor:\"#999999\"},maskFill:n(\"#6685c2\").setOpacity(.3).get(),\n", "outlineColor:\"#cccccc\",outlineWidth:1,series:{type:c,color:\"#335cad\",fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:\"average\",enabled:!0,groupPixelWidth:2,smoothed:!0,units:y},dataLabels:{enabled:!1,zIndex:2},id:\"highcharts-navigator-series\",className:\"highcharts-navigator-series\",lineColor:null,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{className:\"highcharts-navigator-xaxis\",tickLength:0,lineWidth:0,gridLineColor:\"#e6e6e6\",gridLineWidth:1,tickPixelInterval:200,\n", "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}}});E.prototype={drawHandle:function(a,b,c,d){this.handles[b][d](c?{translateX:Math.round(this.left+this.height/2-8),translateY:Math.round(this.top+parseInt(a,10)+.5)}:{translateX:Math.round(this.left+parseInt(a,10)),translateY:Math.round(this.top+\n", "this.height/2-8)})},getHandlePath:function(a){return K([\"M\",-4.5,.5,\"L\",3.5,.5,\"L\",3.5,15.5,\"L\",-4.5,15.5,\"L\",-4.5,.5,\"M\",-1.5,4,\"L\",-1.5,12,\"M\",.5,4,\"L\",.5,12],a)},drawOutline:function(a,b,c,d){var e=this.navigatorOptions.maskInside,f=this.outline.strokeWidth(),l=f/2,f=f%2/2,k=this.outlineHeight,g=this.scrollbarHeight,h=this.size,m=this.left-g,n=this.top;c?(m-=l,c=n+b+f,b=n+a+f,a=[\"M\",m+k,n-g-f,\"L\",m+k,c,\"L\",m,c,\"L\",m,b,\"L\",m+k,b,\"L\",m+k,n+h+g].concat(e?[\"M\",m+k,c-l,\"L\",m+k,b+l]:[])):(a+=m+g-f,b+=\n", "m+g-f,n+=l,a=[\"M\",m,n,\"L\",a,n,\"L\",a,n+k,\"L\",b,n+k,\"L\",b,n,\"L\",m+h+2*g,n].concat(e?[\"M\",a-l,n,\"L\",b+l,n]:[]));this.outline[d]({d:a})},drawMasks:function(a,b,c,d){var e=this.left,f=this.top,l=this.height,k,g,h,m;c?(h=[e,e,e],m=[f,f+a,f+b],g=[l,l,l],k=[a,b-a,this.size-b]):(h=[e,e+a,e+b],m=[f,f,f],g=[a,b-a,this.size-b],k=[l,l,l]);t(this.shades,function(a,b){a[d]({x:h[b],y:m[b],width:g[b],height:k[b]})})},renderElements:function(){var a=this,b=a.navigatorOptions,c=b.maskInside,d=a.chart,e=d.inverted,f=\n", "d.renderer,g;a.navigatorGroup=g=f.g(\"navigator\").attr({zIndex:8,visibility:\"hidden\"}).add();var h={cursor:e?\"ns-resize\":\"ew-resize\"};t([!c,c,!c],function(c,d){a.shades[d]=f.rect().addClass(\"highcharts-navigator-mask\"+(1===d?\"-inside\":\"-outside\")).attr({fill:c?b.maskFill:\"rgba(0,0,0,0)\"}).css(1===d&&h).add(g)});a.outline=f.path().addClass(\"highcharts-navigator-outline\").attr({\"stroke-width\":b.outlineWidth,stroke:b.outlineColor}).add(g);t([0,1],function(c){a.handles[c]=f.path(a.getHandlePath(e)).attr({zIndex:7-\n", "c}).addClass(\"highcharts-navigator-handle highcharts-navigator-handle-\"+[\"left\",\"right\"][c]).add(g);var d=b.handles;a.handles[c].attr({fill:d.backgroundColor,stroke:d.borderColor,\"stroke-width\":1}).css(h)})},update:function(a){this.destroy();A(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(a,b,c,d){var e=this.chart,f,l,k=this.scrollbarHeight,g,h=this.xAxis;f=h.fake?e.xAxis[0]:h;var m=this.navigatorEnabled,n,q=this.rendered;l=e.inverted;var r=e.xAxis[0].minRange;\n", "if(!this.hasDragged||u(c)){if(!p(a)||!p(b))if(q)c=0,d=h.width;else return;this.left=v(h.left,e.plotLeft+k+(l?e.plotWidth:0));this.size=n=g=v(h.len,(l?e.plotHeight:e.plotWidth)-2*k);e=l?k:g+2*k;c=v(c,h.toPixels(a,!0));d=v(d,h.toPixels(b,!0));p(c)&&Infinity!==Math.abs(c)||(c=0,d=e);a=h.toValue(c,!0);b=h.toValue(d,!0);if(Math.abs(b-a)=l&&(a=l-g,m=this.getUnionExtremes().dataMax),a!==e&&(this.fixedWidth=g,b=d.toFixedRange(a,a+g,null,m),c.xAxis[0].setExtremes(Math.min(b.min,b.max),Math.max(b.min,b.max),!0,null,{trigger:\"navigator\"})))},handlesMousedown:function(a,b){this.chart.pointer.normalize(a);a=this.chart;var c=a.xAxis[0],d=a.inverted&&!c.reversed||!a.inverted&&c.reversed;0===b?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=d?c.min:c.max):(this.grabbedRight=\n", "!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=d?c.max:c.min);a.fixedRange=null},onMouseMove:function(a){var b=this,c=b.chart,d=b.left,e=b.navigatorSize,f=b.range,l=b.dragOffset,g=c.inverted;a.touches&&0===a.touches[0].pageX||(a=c.pointer.normalize(a),c=a.chartX,g&&(d=b.top,c=a.chartY),b.grabbedLeft?(b.hasDragged=!0,b.render(0,0,c-d,b.otherHandlePos)):b.grabbedRight?(b.hasDragged=!0,b.render(0,0,b.otherHandlePos,c-d)):b.grabbedCenter&&(b.hasDragged=!0,ce+l-f&&(c=e+l-f),b.render(0,\n", "0,c-l,c-l+f)),b.hasDragged&&b.scrollbar&&b.scrollbar.options.liveRedraw&&(a.DOMType=a.type,setTimeout(function(){b.onMouseUp(a)},0)))},onMouseUp:function(a){var b=this.chart,c=this.xAxis,d=this.scrollbar,e,f,l=a.DOMEvent||a;(!this.hasDragged||d&&d.hasDragged)&&\"scrollbar\"!==a.trigger||(this.zoomedMin===this.otherHandlePos?e=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(f=this.fixedExtreme),this.zoomedMax===this.size&&(f=this.getUnionExtremes().dataMax),c=c.toFixedRange(this.zoomedMin,this.zoomedMax,\n", "e,f),u(c.min)&&b.xAxis[0].setExtremes(Math.min(c.min,c.max),Math.max(c.min,c.max),!0,this.hasDragged?!1:null,{trigger:\"navigator\",triggerOp:\"navigator-drag\",DOMEvent:l}));\"mousemove\"!==a.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null)},removeEvents:function(){this.eventsToUnbind&&(t(this.eventsToUnbind,function(a){a()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()},removeBaseSeriesEvents:function(){var a=\n", "this.baseSeries||[];this.navigatorEnabled&&a[0]&&!1!==this.navigatorOptions.adaptToUpdatedData&&(t(a,function(a){H(a,\"updatedData\",this.updatedDataHandler)},this),a[0].xAxis&&H(a[0].xAxis,\"foundExtremes\",this.modifyBaseAxisExtremes))},init:function(a){var b=a.options,c=b.navigator,d=c.enabled,e=b.scrollbar,f=e.enabled,b=d?c.height:0,l=f?e.height:0;this.handles=[];this.shades=[];this.chart=a;this.setBaseSeries();this.height=b;this.scrollbarHeight=l;this.scrollbarEnabled=f;this.navigatorEnabled=d;this.navigatorOptions=\n", "c;this.scrollbarOptions=e;this.outlineHeight=b+l;this.opposite=v(c.opposite,!d&&a.inverted);var g=this,e=g.baseSeries,f=a.xAxis.length,h=a.yAxis.length,m=e&&e[0]&&e[0].xAxis||a.xAxis[0];a.extraMargin={type:g.opposite?\"plotTop\":\"marginBottom\",value:(d||!a.inverted?g.outlineHeight:0)+c.margin};a.inverted&&(a.extraMargin.type=g.opposite?\"marginRight\":\"plotLeft\");a.isDirtyBox=!0;g.navigatorEnabled?(g.xAxis=new F(a,A({breaks:m.options.breaks,ordinal:m.options.ordinal},c.xAxis,{id:\"navigator-x-axis\",yAxis:\"navigator-y-axis\",\n", "isX:!0,type:\"datetime\",index:f,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},a.inverted?{offsets:[l,0,-l,0],width:b}:{offsets:[0,-l,0,l],height:b})),g.yAxis=new F(a,A(c.yAxis,{id:\"navigator-y-axis\",alignTicks:!1,offset:0,index:h,zoomEnabled:!1},a.inverted?{width:b}:{height:b})),e||c.series.data?g.addBaseSeries():0===a.series.length&&w(a,\"redraw\",function(b,c){0=Math.round(a.size);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},addChartEvents:function(){B(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,\n", "b.max)})},destroy:function(){this.removeEvents();this.xAxis&&(m(this.chart.xAxis,this.xAxis),m(this.chart.axes,this.xAxis));this.yAxis&&(m(this.chart.yAxis,this.yAxis),m(this.chart.axes,this.yAxis));t(this.series||[],function(a){a.destroy&&a.destroy()});t(\"series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered\".split(\" \"),function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);t([this.handles],function(a){r(a)},this)}};\n", "a.Navigator=E;w(F.prototype,\"zoom\",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,g=e.navigator,e=e.rangeSelector,k;this.isXAxis&&(g&&g.enabled||e&&e.enabled)&&(\"x\"===f?d.resetZoomButton=\"blocked\":\"y\"===f?k=!1:\"xy\"===f&&(d=this.previousZoom,u(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!==k?k:a.call(this,b,c)});w(D.prototype,\"init\",function(a,b,c){B(this,\"beforeRender\",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=\n", "this.navigator=new E(this)});a.call(this,b,c)});w(D.prototype,\"setChartSize\",function(a){var b=this.legend,c=this.navigator,d,e,f,g;a.apply(this,[].slice.call(arguments,1));c&&(e=b.options,f=c.xAxis,g=c.yAxis,d=c.scrollbarHeight,this.inverted?(c.left=c.opposite?this.chartWidth-d-c.height:this.spacing[3]+d,c.top=this.plotTop+d):(c.left=this.plotLeft+d,c.top=c.navigatorOptions.top||this.chartHeight-c.height-d-this.spacing[2]-(\"bottom\"===e.verticalAlign&&e.enabled&&!e.floating?b.legendHeight+v(e.margin,\n", "10):0)),f&&g&&(this.inverted?f.options.left=g.options.left=c.left:f.options.top=g.options.top=c.top,f.setAxisSize(),g.setAxisSize()))});w(J.prototype,\"addPoint\",function(a,c,d,e,g){var k=this.options.turboThreshold;k&&this.xData.length>k&&b(c,!0)&&this.chart.navigator&&f(20,!0);a.call(this,c,d,e,g)});w(D.prototype,\"addSeries\",function(a,b,c,d){a=a.call(this,b,!1,d);this.navigator&&this.navigator.setBaseSeries();v(c,!0)&&this.redraw();return a});w(J.prototype,\"update\",function(a,b,c){a.call(this,b,\n", "!1);this.chart.navigator&&this.chart.navigator.setBaseSeries();v(c,!0)&&this.chart.redraw()});D.prototype.callbacks.push(function(a){var b=a.navigator;b&&(a=a.xAxis[0].getExtremes(),b.render(a.min,a.max))})})(L);(function(a){function E(a){this.init(a)}var B=a.addEvent,F=a.Axis,D=a.Chart,n=a.css,h=a.createElement,u=a.dateFormat,r=a.defaultOptions,x=r.global.useUTC,t=a.defined,m=a.destroyObjectProperties,f=a.discardElement,g=a.each,e=a.extend,d=a.fireEvent,p=a.Date,b=a.isNumber,A=a.merge,v=a.pick,H=\n", "a.pInt,q=a.splat,J=a.wrap;e(r,{rangeSelector:{buttonTheme:{\"stroke-width\":0,width:28,height:18,padding:2,zIndex:7},height:35,inputPosition:{align:\"right\"},labelStyle:{color:\"#666666\"}}});r.lang=A(r.lang,{rangeSelectorZoom:\"Zoom\",rangeSelectorFrom:\"From\",rangeSelectorTo:\"To\"});E.prototype={clickButton:function(a,d){var c=this,e=c.chart,f=c.buttonOptions[a],h=e.xAxis[0],m=e.scroller&&e.scroller.getUnionExtremes()||h||{},k=m.dataMin,n=m.dataMax,p,r=h&&Math.round(Math.min(h.max,v(n,h.max))),t=f.type,\n", "u,m=f._range,w,C,A,D=f.dataGrouping;if(null!==k&&null!==n){e.fixedRange=m;D&&(this.forcedDataGrouping=!0,F.prototype.setDataGrouping.call(h||{chart:this.chart},D,!1));if(\"month\"===t||\"year\"===t)h?(t={range:f,max:r,dataMin:k,dataMax:n},p=h.minFromRange.call(t),b(t.newMax)&&(r=t.newMax)):m=f;else if(m)p=Math.max(r-m,k),r=Math.min(p+m,n);else if(\"ytd\"===t)if(h)void 0===n&&(k=Number.MAX_VALUE,n=Number.MIN_VALUE,g(e.series,function(a){a=a.xData;k=Math.min(a[0],k);n=Math.max(a[a.length-1],n)}),d=!1),r=\n", "c.getYTDExtremes(n,k,x),p=w=r.min,r=r.max;else{B(e,\"beforeRender\",function(){c.clickButton(a)});return}else\"all\"===t&&h&&(p=k,r=n);c.setSelected(a);h?h.setExtremes(p,r,v(d,1),null,{trigger:\"rangeSelectorButton\",rangeSelectorButton:f}):(u=q(e.options.xAxis)[0],A=u.range,u.range=m,C=u.min,u.min=w,B(e,\"load\",function(){u.range=A;u.min=C}))}},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,\n", "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),f=c.selected,h=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=B(a.container,\"mousedown\",h);this.unResize=B(a,\"resize\",h);g(e,b.computeButtonRange);void 0!==f&&e[f]&&this.clickButton(f,\n", "!1);B(a,\"load\",function(){B(a.xAxis[0],\"setExtremes\",function(c){this.max-this.min!==a.fixedRange&&\"rangeSelectorButton\"!==c.trigger&&\"updatedData\"!==c.trigger&&b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,d=a.xAxis[0],e=Math.round(d.max-d.min),f=!d.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||d,h=a.dataMin,l=a.dataMax,a=this.getYTDExtremes(l,h,x),m=a.min,k=a.max,n=this.selected,p=b(n),q=this.options.allButtonsEnabled,r=this.buttons;\n", "g(this.buttonOptions,function(a,b){var c=a._range,g=a.type,t=a.count||1;a=r[b];var u=0;b=b===n;var w=c>l-h,v=c=864E5*{month:28,year:365}[g]*t&&e<=864E5*{month:31,year:366}[g]*t?c=!0:\"ytd\"===g?(c=k-m===e,x=!b):\"all\"===g&&(c=d.max-d.min>=l-h,y=!b&&p&&c);g=!q&&(w||v||y||f);c=b&&c||c&&!p&&!x;g?u=3:c&&(p=!0,u=2);a.state!==u&&a.setState(u)})},computeButtonRange:function(a){var b=a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,\n", "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},setInputValue:function(a,b){var c=this.chart.options.rangeSelector,d=this[a+\"Input\"];t(b)&&(d.previousValue=d.HCTime,d.HCTime=b);d.value=u(c.inputEditDateFormat||\"%Y-%m-%d\",d.HCTime);this[a+\"DateBox\"].attr({text:u(c.inputDateFormat||\"%b %e, %Y\",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+\"DateBox\"];n(this[a+\"Input\"],{left:b.translateX+c.x+\"px\",top:b.translateY+\n", "\"px\",width:c.width-2+\"px\",height:c.height-2+\"px\",border:\"2px solid silver\"})},hideInput:function(a){n(this[a+\"Input\"],{border:0,width:\"1px\",height:\"1px\"});this.setInputValue(a)},drawInput:function(a){function c(){var a=q.value,c=(m.inputDateParser||Date.parse)(a),e=f.xAxis[0],g=f.scroller&&f.scroller.xAxis?f.scroller.xAxis:e,k=g.dataMin,g=g.dataMax;c!==q.previousValue&&(q.previousValue=c,b(c)||(c=a.split(\"-\"),c=Date.UTC(H(c[0]),H(c[1])-1,H(c[2]))),b(c)&&(x||(c+=6E4*(new Date).getTimezoneOffset()),\n", "p?c>d.maxInput.HCTime?c=void 0:cg&&(c=g),void 0!==c&&e.setExtremes(p?c:e.min,p?e.max:c,void 0,void 0,{trigger:\"rangeSelectorInput\"})))}var d=this,f=d.chart,g=f.renderer.style||{},l=f.renderer,m=f.options.rangeSelector,k=d.div,p=\"min\"===a,q,t,u=this.inputGroup;this[a+\"Label\"]=t=l.label(r.lang[p?\"rangeSelectorFrom\":\"rangeSelectorTo\"],this.inputGroup.offset).addClass(\"highcharts-range-label\").attr({padding:2}).add(u);u.offset+=t.width+5;this[a+\"DateBox\"]=l=l.label(\"\",\n", "u.offset).addClass(\"highcharts-range-input\").attr({padding:2,width:m.inputBoxWidth||90,height:m.inputBoxHeight||17,stroke:m.inputBoxBorderColor||\"#cccccc\",\"stroke-width\":1,\"text-align\":\"center\"}).on(\"click\",function(){d.showInput(a);d[a+\"Input\"].focus()}).add(u);u.offset+=l.width+(p?10:0);this[a+\"Input\"]=q=h(\"input\",{name:a,className:\"highcharts-range-selector\",type:\"text\"},{top:f.plotTop+\"px\"},k);t.css(A(g,m.labelStyle));l.css(A({color:\"#333333\"},g,m.inputStyle));n(q,e({position:\"absolute\",border:0,\n", "width:\"1px\",height:\"1px\",padding:0,textAlign:\"center\",fontSize:g.fontSize,fontFamily:g.fontFamily,left:\"-9em\"},m.inputStyle));q.onfocus=function(){d.showInput(a)};q.onblur=function(){d.hideInput(a)};q.onchange=c;q.onkeypress=function(a){13===a.keyCode&&c()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a=v((b.buttonPosition||{}).y,a.plotTop-a.axisOffset[0]-b.height);return{buttonTop:a,inputTop:a-10}},getYTDExtremes:function(a,b,d){var c=new p(a),e=c[p.hcGetFullYear]();d=d?p.UTC(e,\n", "0,1):+new p(e,0,1);b=Math.max(b||0,d);c=c.getTime();return{max:Math.min(a||c,c),min:b}},render:function(a,b){var c=this,d=c.chart,f=d.renderer,l=d.container,m=d.options,k=m.exporting&&!1!==m.exporting.enabled&&m.navigation&&m.navigation.buttonOptions,n=m.rangeSelector,p=c.buttons,m=r.lang,q=c.div,q=c.inputGroup,u=n.buttonTheme,w=n.buttonPosition||{},x=n.inputEnabled,C=u&&u.states,A=d.plotLeft,B,D=this.getPosition(),E=c.group,F=c.rendered;!1!==n.enabled&&(F||(c.group=E=f.g(\"range-selector-buttons\").add(),\n", "c.zoomText=f.text(m.rangeSelectorZoom,v(w.x,A),15).css(n.labelStyle).add(E),B=v(w.x,A)+c.zoomText.getBBox().width+5,g(c.buttonOptions,function(a,b){p[b]=f.button(a.text,B,0,function(){c.clickButton(b);c.isActive=!0},u,C&&C.hover,C&&C.select,C&&C.disabled).attr({\"text-align\":\"center\"}).add(E);B+=p[b].width+v(n.buttonSpacing,5)}),!1!==x&&(c.div=q=h(\"div\",null,{position:\"relative\",height:0,zIndex:1}),l.parentNode.insertBefore(q,l),c.inputGroup=q=f.g(\"input-group\").add(),q.offset=0,c.drawInput(\"min\"),\n", "c.drawInput(\"max\"))),c.updateButtonStates(),E[F?\"animate\":\"attr\"]({translateY:D.buttonTop}),!1!==x&&(q.align(e({y:D.inputTop,width:q.offset,x:k&&D.inputTop<(k.y||0)+k.height-d.spacing[0]?-40:0},n.inputPosition),!0,d.spacingBox),t(x)||(d=E.getBBox(),q[q.alignAttr.translateXe&&(f?a=d-c:d=a+c);b(a)||(a=d=void 0);\n", "return{min:a,max:d}};F.prototype.minFromRange=function(){var a=this.range,d={month:\"Month\",year:\"FullYear\"}[a.type],e,f=this.max,g,h,m=function(a,b){var c=new Date(a),e=c[\"get\"+d]();c[\"set\"+d](e+b);e===c[\"get\"+d]()&&c.setDate(0);return c.getTime()-a};b(a)?(e=f-a,h=a):(e=f+m(f,-a.count),this.chart&&(this.chart.fixedRange=f-e));g=v(this.dataMin,Number.MIN_VALUE);b(e)||(e=g);e<=g&&(e=g,void 0===h&&(h=m(e,a.count)),this.newMax=Math.min(e+h,this.dataMax));b(f)||(e=void 0);return e};J(D.prototype,\"init\",\n", "function(a,b,d){B(this,\"init\",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new E(this))});a.call(this,b,d)});D.prototype.callbacks.push(function(a){function c(){d=a.xAxis[0].getExtremes();b(d.min)&&e.render(d.min,d.max)}var d,e=a.rangeSelector,f,g;e&&(g=B(a.xAxis[0],\"afterSetExtremes\",function(a){e.render(a.min,a.max)}),f=B(a,\"redraw\",c),c());B(a,\"destroy\",function(){e&&(f(),g())})});a.RangeSelector=E})(L);(function(a){var E=a.arrayMax,B=a.arrayMin,F=a.Axis,D=a.Chart,n=a.defined,\n", "h=a.each,u=a.extend,r=a.format,x=a.grep,t=a.inArray,m=a.isNumber,f=a.isString,g=a.map,e=a.merge,d=a.pick,p=a.Point,b=a.Renderer,A=a.Series,v=a.splat,H=a.SVGRenderer,q=a.VMLRenderer,J=a.wrap,c=A.prototype,w=c.init,K=c.processData,y=p.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(b,c,h){var k=f(b)||b.nodeName,l=arguments[k?1:0],m=l.series,n=a.getOptions(),p,q=d(l.navigator&&l.navigator.enabled,n.navigator.enabled,!0),r=q?{startOnTick:!1,endOnTick:!1}:null,t={marker:{enabled:!1,radius:2}},\n", "u={shadow:!1,borderWidth:0};l.xAxis=g(v(l.xAxis||{}),function(a){return e({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:\"justify\"},showLastLabel:!0},n.xAxis,a,{type:\"datetime\",categories:null},r)});l.yAxis=g(v(l.yAxis||{}),function(a){p=d(a.opposite,!0);return e({labels:{y:-2},opposite:p,showLastLabel:!1,title:{text:null}},n.yAxis,a)});l.series=null;l=e({chart:{panning:!0,pinchType:\"x\"},navigator:{enabled:q},scrollbar:{enabled:d(n.scrollbar.enabled,!0)},rangeSelector:{enabled:d(n.rangeSelector.enabled,\n", "!0)},title:{text:null},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:t,spline:t,area:t,areaspline:t,arearange:t,areasplinerange:t,column:u,columnrange:u,candlestick:u,ohlc:u}},l,{isStock:!0});l.series=m;return k?new D(b,l,h):new D(l,c)};J(F.prototype,\"autoLabelAlign\",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options.isStock&&\"yAxis\"===this.coll&&(c=c.top+\",\"+c.height,!b[c]&&d.enabled)?(15===d.x&&\n", "(d.x=0),void 0===d.align&&(d.align=\"right\"),b[c]=this,\"right\"):a.call(this,[].slice.call(arguments,1))});J(F.prototype,\"destroy\",function(a){var b=this.chart,c=this.options&&this.options.top+\",\"+this.options.height;c&&b._labelPanes&&b._labelPanes[c]===this&&delete b._labelPanes[c];return a.call(this,Array.prototype.slice.call(arguments,1))});J(F.prototype,\"getPlotLinePath\",function(b,c,e,k,p,q){var l=this,r=this.isLinked&&!this.series?this.linkedParent.series:this.series,u=l.chart,v=u.renderer,w=\n", "l.left,x=l.top,z,y,A,B,G=[],D=[],E,I;if(\"xAxis\"!==l.coll&&\"yAxis\"!==l.coll)return b.apply(this,[].slice.call(arguments,1));D=function(a){var b=\"xAxis\"===a?\"yAxis\":\"xAxis\";a=l.options[b];return m(a)?[u[b][a]]:f(a)?[u.get(a)]:g(r,function(a){return a[b]})}(l.coll);h(l.isXAxis?u.yAxis:u.xAxis,function(a){if(n(a.options.id)?-1===a.options.id.indexOf(\"navigator\"):1){var b=a.isXAxis?\"yAxis\":\"xAxis\",b=n(a.options[b])?u[b][a.options[b]]:u[b][0];l===b&&D.push(a)}});E=D.length?[]:[l.isXAxis?u.yAxis[0]:u.xAxis[0]];\n", "h(D,function(b){-1!==t(b,E)||a.find(E,function(a){return a.pos===b.pos&&a.len&&b.len})||E.push(b)});I=d(q,l.translate(c,null,null,k));m(I)&&(l.horiz?h(E,function(a){var b;y=a.pos;B=y+a.len;z=A=Math.round(I+l.transB);if(zw+l.width)p?z=A=Math.min(Math.max(w,z),w+l.width):b=!0;b||G.push(\"M\",z,y,\"L\",A,B)}):h(E,function(a){var b;z=a.pos;A=z+a.len;y=B=Math.round(x+l.height-I);if(yx+l.height)p?y=B=Math.min(Math.max(x,y),l.top+l.height):b=!0;b||G.push(\"M\",z,y,\"L\",A,B)}));return 0=f&&(x=-(m.translateX+b.width-f));m.attr({x:p+x,y:l,anchorX:h?p:this.opposite?0:a.chartWidth,anchorY:h?this.opposite?a.chartHeight:0:l+b.height/2})}});c.init=function(){w.apply(this,arguments);this.setCompare(this.options.compare)};c.setCompare=function(a){this.modifyValue=\"value\"===\n", "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)};c.processData=function(){var a,b=-1,c,d,e,f;K.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,e=d.length,this.pointArrayMap&&(b=t(\"close\",this.pointArrayMap),-1===b&&(b=t(this.pointValKey||\"y\",this.pointArrayMap))),\n", "a=0;a=this.xAxis.min&&0!==f){this.compareValue=f;break}};J(c,\"getExtremes\",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=B(b),this.dataMax=E(b))});F.prototype.setCompare=function(a,b){this.isXAxis||(h(this.series,function(b){b.setCompare(a)}),d(b,!0)&&this.chart.redraw())};p.prototype.tooltipFormatter=function(b){b=b.replace(\"{point.change}\",\n", "(0c.len*c.tickInterval/(c.max-c.min)&&(n=0),u=x>n&&x<180-n?\"left\":x>180+n&&x<360-n?\"right\":\"center\"):u=\"center\",a.attr({align:u})),b.x+=q.x,b.y+=g):b=b.call(this,d,e,a,l,q,k,h,m);return b});b(a,\"getMarkPath\",function(b,d,e,a,l,k,h){var c=this.axis;c.isRadial?(b=c.getPosition(this.pos,c.center[2]/\n", "2+a),d=[\"M\",d,e,\"L\",b.x,b.y]):d=b.call(this,d,e,a,l,k,h);return d})})(v);(function(a){var r=a.each,t=a.noop,w=a.pick,p=a.Series,m=a.seriesType,f=a.seriesTypes;m(\"arearange\",\"area\",{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'\\x3cspan style\\x3d\"color:{series.color}\"\\x3e\\u25cf\\x3c/span\\x3e {series.name}: \\x3cb\\x3e{point.low}\\x3c/b\\x3e - \\x3cb\\x3e{point.high}\\x3c/b\\x3e\\x3cbr/\\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},states:{hover:{halo:!1}}},\n", "{pointArrayMap:[\"low\",\"high\"],dataLabelCollections:[\"dataLabel\",\"dataLabelUpper\"],toYData:function(a){return[a.low,a.high]},pointValKey:\"low\",deferTranslatePolar:!0,highToXY:function(a){var b=this.chart,d=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=d.x-b.plotLeft;a.plotHigh=d.y-b.plotTop},translate:function(){var a=this,b=a.yAxis,d=!!a.modifyValue;f.area.prototype.translate.apply(a);r(a.points,function(e){var k=e.low,c=e.high,g=e.plotY;null===c||null===k?e.isNull=!0:\n", "(e.plotLow=g,e.plotHigh=b.translate(d?a.modifyValue(c,e):c,0,1,0,1),d&&(e.yBottom=e.plotHigh))});this.chart.polar&&r(this.points,function(b){a.highToXY(b)})},getGraphPath:function(a){var b=[],d=[],e,k=f.area.prototype.getGraphPath,c,g,n;n=this.options;var u=this.chart.polar&&!1!==n.connectEnds,l=n.connectNulls,q=n.step;a=a||this.points;for(e=a.length;e--;)c=a[e],c.isNull||u||l||a[e+1]&&!a[e+1].isNull||d.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1}),g={polarPlotY:c.polarPlotY,rectPlotX:c.rectPlotX,\n", "yBottom:c.yBottom,plotX:w(c.plotHighX,c.plotX),plotY:c.plotHigh,isNull:c.isNull},d.push(g),b.push(g),c.isNull||u||l||a[e-1]&&!a[e-1].isNull||d.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1});a=k.call(this,a);q&&(!0===q&&(q=\"left\"),n.step={left:\"right\",center:\"center\",right:\"left\"}[q]);b=k.call(this,b);d=k.call(this,d);n.step=q;n=[].concat(a,b);this.chart.polar||\"M\"!==d[0]||(d[0]=\"L\");this.graphPath=n;this.areaPath=this.areaPath.concat(a,d);n.isArea=!0;n.xMap=a.xMap;this.areaPath.xMap=a.xMap;return n},\n", "drawDataLabels:function(){var a=this.data,b=a.length,d,e=[],k=p.prototype,c=this.options.dataLabels,g=c.align,n=c.verticalAlign,u=c.inside,l,q,x=this.chart.inverted;if(c.enabled||this._hasPointLabels){for(d=b;d--;)if(l=a[d])q=u?l.plotHighl.plotLow,l.y=l.high,l._plotY=l.plotY,l.plotY=l.plotHigh,e[d]=l.dataLabel,l.dataLabel=l.dataLabelUpper,l.below=q,x?g||(c.align=q?\"right\":\"left\"):n||(c.verticalAlign=q?\"top\":\"bottom\"),c.x=c.xHigh,c.y=c.yHigh;k.drawDataLabels&&k.drawDataLabels.apply(this,\n", "arguments);for(d=b;d--;)if(l=a[d])q=u?l.plotHighl.plotLow,l.dataLabelUpper=l.dataLabel,l.dataLabel=e[d],l.y=l.low,l.plotY=l._plotY,l.below=!q,x?g||(c.align=q?\"left\":\"right\"):n||(c.verticalAlign=q?\"bottom\":\"top\"),c.x=c.xLow,c.y=c.yLow;k.drawDataLabels&&k.drawDataLabels.apply(this,arguments)}c.align=g;c.verticalAlign=n},alignDataLabel:function(){f.column.prototype.alignDataLabel.apply(this,arguments)},setStackedPoints:t,getSymbol:t,drawPoints:t})})(v);(function(a){var r=a.seriesType;\n", "r(\"areasplinerange\",\"arearange\",null,{getPointSpline:a.seriesTypes.spline.prototype.getPointSpline})})(v);(function(a){var r=a.defaultPlotOptions,t=a.each,w=a.merge,p=a.noop,m=a.pick,f=a.seriesType,h=a.seriesTypes.column.prototype;f(\"columnrange\",\"arearange\",w(r.column,r.arearange,{lineWidth:1,pointRange:null}),{translate:function(){var b=this,d=b.yAxis,a=b.xAxis,k=a.startAngleRad,c,g=b.chart,n=b.xAxis.isRadial,u;h.translate.apply(b);t(b.points,function(e){var q=e.shapeArgs,l=b.options.minPointLength,\n", "f,h;e.plotHigh=u=d.translate(e.high,0,1,0,1);e.plotLow=e.plotY;h=u;f=m(e.rectPlotY,e.plotY)-u;Math.abs(f)f&&(f*=-1,h-=f);n?(c=e.barX+k,e.shapeType=\"path\",e.shapeArgs={d:b.polarArc(h+f,h,c,c+e.pointWidth)}):(q.height=f,q.y=h,e.tooltipPos=g.inverted?[d.len+d.pos-g.plotLeft-h-f/2,a.len+a.pos-g.plotTop-q.x-q.width/2,f]:[a.left-g.plotLeft+q.x+q.width/2,d.pos-g.plotTop+h+f/2,f])})},directTouch:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],drawGraph:p,crispCol:h.crispCol,drawPoints:h.drawPoints,\n", "drawTracker:h.drawTracker,getColumnMetrics:h.getColumnMetrics,animate:function(){return h.animate.apply(this,arguments)},polarArc:function(){return h.polarArc.apply(this,arguments)},pointAttribs:h.pointAttribs})})(v);(function(a){var r=a.each,t=a.isNumber,w=a.merge,p=a.pick,m=a.pInt,f=a.Series,h=a.seriesType,b=a.TrackerMixin;h(\"gauge\",\"line\",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:\"top\",zIndex:2,borderWidth:1,borderColor:\"#cccccc\"},dial:{},pivot:{},tooltip:{headerFormat:\"\"},\n", "showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:a.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],translate:function(){var b=this.yAxis,a=this.options,k=b.center;this.generatePoints();r(this.points,function(c){var d=w(a.dial,c.dial),e=m(p(d.radius,80))*k[2]/200,u=m(p(d.baseLength,70))*e/100,l=m(p(d.rearLength,10))*e/100,q=d.baseWidth||3,f=d.topWidth||1,h=a.overshoot,r=b.startAngleRad+b.translate(c.y,null,null,null,!0);t(h)?(h=h/180*Math.PI,r=Math.max(b.startAngleRad-\n", "h,Math.min(b.endAngleRad+h,r))):!1===a.wrap&&(r=Math.max(b.startAngleRad,Math.min(b.endAngleRad,r)));r=180*r/Math.PI;c.shapeType=\"path\";c.shapeArgs={d:d.path||[\"M\",-l,-q/2,\"L\",u,-q/2,e,-f/2,e,f/2,u,q/2,-l,q/2,\"z\"],translateX:k[0],translateY:k[1],rotation:r};c.plotX=k[0];c.plotY=k[1]})},drawPoints:function(){var b=this,a=b.yAxis.center,k=b.pivot,c=b.options,g=c.pivot,n=b.chart.renderer;r(b.points,function(a){var d=a.graphic,e=a.shapeArgs,g=e.d,k=w(c.dial,a.dial);d?(d.animate(e),e.d=g):(a.graphic=n[a.shapeType](e).attr({rotation:e.rotation,\n", "zIndex:1}).addClass(\"highcharts-dial\").add(b.group),a.graphic.attr({stroke:k.borderColor||\"none\",\"stroke-width\":k.borderWidth||0,fill:k.backgroundColor||\"#000000\"}))});k?k.animate({translateX:a[0],translateY:a[1]}):(b.pivot=n.circle(0,0,p(g.radius,5)).attr({zIndex:2}).addClass(\"highcharts-pivot\").translate(a[0],a[1]).add(b.group),b.pivot.attr({\"stroke-width\":g.borderWidth||0,stroke:g.borderColor||\"#cccccc\",fill:g.backgroundColor||\"#000000\"}))},animate:function(b){var a=this;b||(r(a.points,function(b){var c=\n", "b.graphic;c&&(c.attr({rotation:180*a.yAxis.startAngleRad/Math.PI}),c.animate({rotation:b.shapeArgs.rotation},a.options.animation))}),a.animate=null)},render:function(){this.group=this.plotGroup(\"group\",\"series\",this.visible?\"visible\":\"hidden\",this.options.zIndex,this.chart.seriesGroup);f.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(b,a){f.prototype.setData.call(this,b,!1);this.processData();this.generatePoints();p(a,!0)&&this.chart.redraw()},drawTracker:b&&b.drawTrackerPoint},\n", "{setState:function(b){this.state=b}})})(v);(function(a){var r=a.each,t=a.noop,w=a.pick,p=a.seriesType,m=a.seriesTypes;p(\"boxplot\",\"column\",{threshold:null,tooltip:{pointFormat:'\\x3cspan style\\x3d\"color:{point.color}\"\\x3e\\u25cf\\x3c/span\\x3e \\x3cb\\x3e {series.name}\\x3c/b\\x3e\\x3cbr/\\x3eMaximum: {point.high}\\x3cbr/\\x3eUpper quartile: {point.q3}\\x3cbr/\\x3eMedian: {point.median}\\x3cbr/\\x3eLower quartile: {point.q1}\\x3cbr/\\x3eMinimum: {point.low}\\x3cbr/\\x3e'},whiskerLength:\"50%\",fillColor:\"#ffffff\",lineWidth:1,\n", "medianWidth:2,states:{hover:{brightness:-.3}},whiskerWidth:2},{pointArrayMap:[\"low\",\"q1\",\"median\",\"q3\",\"high\"],toYData:function(a){return[a.low,a.q1,a.median,a.q3,a.high]},pointValKey:\"high\",pointAttribs:function(a){var f=this.options,b=a&&a.color||this.color;return{fill:a.fillColor||f.fillColor||b,stroke:f.lineColor||b,\"stroke-width\":f.lineWidth||0}},drawDataLabels:t,translate:function(){var a=this.yAxis,h=this.pointArrayMap;m.column.prototype.translate.apply(this);r(this.points,function(b){r(h,\n", "function(d){null!==b[d]&&(b[d+\"Plot\"]=a.translate(b[d],0,1,0,1))})})},drawPoints:function(){var a=this,h=a.options,b=a.chart.renderer,d,e,k,c,g,n,u=0,l,q,m,p,z=!1!==a.doQuartiles,t,y=a.options.whiskerLength;r(a.points,function(f){var x=f.graphic,r=x?\"animate\":\"attr\",J=f.shapeArgs,v={},C={},H={},I=f.color||a.color;void 0!==f.plotY&&(l=J.width,q=Math.floor(J.x),m=q+l,p=Math.round(l/2),d=Math.floor(z?f.q1Plot:f.lowPlot),e=Math.floor(z?f.q3Plot:f.lowPlot),k=Math.floor(f.highPlot),c=Math.floor(f.lowPlot),\n", "x||(f.graphic=x=b.g(\"point\").add(a.group),f.stem=b.path().addClass(\"highcharts-boxplot-stem\").add(x),y&&(f.whiskers=b.path().addClass(\"highcharts-boxplot-whisker\").add(x)),z&&(f.box=b.path(void 0).addClass(\"highcharts-boxplot-box\").add(x)),f.medianShape=b.path(void 0).addClass(\"highcharts-boxplot-median\").add(x)),v.stroke=f.stemColor||h.stemColor||I,v[\"stroke-width\"]=w(f.stemWidth,h.stemWidth,h.lineWidth),v.dashstyle=f.stemDashStyle||h.stemDashStyle,f.stem.attr(v),y&&(C.stroke=f.whiskerColor||h.whiskerColor||\n", "I,C[\"stroke-width\"]=w(f.whiskerWidth,h.whiskerWidth,h.lineWidth),f.whiskers.attr(C)),z&&(x=a.pointAttribs(f),f.box.attr(x)),H.stroke=f.medianColor||h.medianColor||I,H[\"stroke-width\"]=w(f.medianWidth,h.medianWidth,h.lineWidth),f.medianShape.attr(H),n=f.stem.strokeWidth()%2/2,u=q+p+n,f.stem[r]({d:[\"M\",u,e,\"L\",u,k,\"M\",u,d,\"L\",u,c]}),z&&(n=f.box.strokeWidth()%2/2,d=Math.floor(d)+n,e=Math.floor(e)+n,q+=n,m+=n,f.box[r]({d:[\"M\",q,e,\"L\",q,d,\"L\",m,d,\"L\",m,e,\"L\",q,e,\"z\"]})),y&&(n=f.whiskers.strokeWidth()%2/\n", "2,k+=n,c+=n,t=/%$/.test(y)?p*parseFloat(y)/100:y/2,f.whiskers[r]({d:[\"M\",u-t,k,\"L\",u+t,k,\"M\",u-t,c,\"L\",u+t,c]})),g=Math.round(f.medianPlot),n=f.medianShape.strokeWidth()%2/2,g+=n,f.medianShape[r]({d:[\"M\",q,g,\"L\",m,g]}))})},setStackedPoints:t})})(v);(function(a){var r=a.each,t=a.noop,w=a.seriesType,p=a.seriesTypes;w(\"errorbar\",\"boxplot\",{color:\"#000000\",grouping:!1,linkedTo:\":previous\",tooltip:{pointFormat:'\\x3cspan style\\x3d\"color:{point.color}\"\\x3e\\u25cf\\x3c/span\\x3e {series.name}: \\x3cb\\x3e{point.low}\\x3c/b\\x3e - \\x3cb\\x3e{point.high}\\x3c/b\\x3e\\x3cbr/\\x3e'},\n", "whiskerWidth:null},{type:\"errorbar\",pointArrayMap:[\"low\",\"high\"],toYData:function(a){return[a.low,a.high]},pointValKey:\"high\",doQuartiles:!1,drawDataLabels:p.arearange?function(){var a=this.pointValKey;p.arearange.prototype.drawDataLabels.call(this);r(this.data,function(f){f.y=f[a]})}:t,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||p.column.prototype.getColumnMetrics.call(this)}})})(v);(function(a){var r=a.correctFloat,t=a.isNumber,w=a.pick,p=a.Point,m=a.Series,\n", "f=a.seriesType,h=a.seriesTypes;f(\"waterfall\",\"column\",{dataLabels:{inside:!0},lineWidth:1,lineColor:\"#333333\",dashStyle:\"dot\",borderColor:\"#333333\",states:{hover:{lineWidthPlus:0}}},{pointValKey:\"y\",translate:function(){var b=this.options,a=this.yAxis,e,k,c,g,n,f,l,q,m,p,t=w(b.minPointLength,5),v=t/2,y=b.threshold,D=b.stacking,A;h.column.prototype.translate.apply(this);q=m=y;k=this.points;e=0;for(b=k.length;eg.height&&(g.y+=g.height,g.height*=-1),c.plotY=g.y=Math.round(g.y)-this.borderWidth%2/2,g.height=Math.max(Math.round(g.height),.001),c.yBottom=g.y+g.height,g.height<=t&&!c.isNull?(g.height=t,g.y-=v,c.plotY=g.y,c.minPointLengthOffset=0>c.y?-v:v):c.minPointLengthOffset=0,g=c.plotY+(c.negative?g.height:0),this.chart.inverted?c.tooltipPos[0]=a.len-g:c.tooltipPos[1]=g},processData:function(b){var a=this.yData,e=this.options.data,k,c=a.length,g,n,f,l,q,h;n=g=f=l=this.options.threshold||\n", "0;for(h=0;hb[u-1].y&&!f||0=this.minPxSize/2?(d.marker=a.extend(d.marker,{radius:e,width:2*e,height:2*e}),d.dlBox={x:d.plotX-e,y:d.plotY-e,width:2*e,height:2*e}):d.shapeArgs=d.plotY=d.dlBox=void 0},\n", "alignDataLabel:g.column.prototype.alignDataLabel,buildKDTree:h,applyZones:h},{haloPath:function(b){return e.prototype.haloPath.call(this,0===b?0:(this.marker?this.marker.radius||0:0)+b)},ttBelow:!1});v.prototype.beforePadding=function(){var a=this,c=this.len,e=this.chart,g=0,k=c,h=this.isXAxis,p=h?\"xData\":\"yData\",v=this.min,w={},D=Math.min(e.plotWidth,e.plotHeight),A=Number.MAX_VALUE,E=-Number.MAX_VALUE,F=this.max-v,B=c/F,G=[];m(this.series,function(c){var g=c.options;!c.bubblePadding||!c.visible&&\n", "e.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,G.push(c),h&&(m([\"minSize\",\"maxSize\"],function(b){var a=g[b],c=/%$/.test(a),a=d(a);w[b]=c?D*a/100:a}),c.minPxSize=w.minSize,c.maxPxSize=Math.max(w.maxSize,w.minSize),c=c.zData,c.length&&(A=b(g.zMin,Math.min(A,Math.max(t(c),!1===g.displayNegative?g.zThreshold:-Number.MAX_VALUE))),E=b(g.zMax,Math.max(E,r(c))))))});m(G,function(b){var c=b[p],d=c.length,e;h&&b.getRadii(A,E,b.minPxSize,b.maxPxSize);if(0a?b.length-1+a:0;a=0>c-1?b.length-(1+d):c-1;d=c+1>b.length-1?d:c+1;k=b[a];d=b[d];h=k.plotX;k=k.plotY;l=d.plotX;m=d.plotY;d=b[c].plotX;c=b[c].plotY;h=(1.5*d+h)/2.5;k=(1.5*c+k)/2.5;l=(1.5*d+l)/2.5;p=(1.5*c+m)/2.5;m=Math.sqrt(Math.pow(h-d,2)+Math.pow(k-c,2));r=Math.sqrt(Math.pow(l-d,2)+Math.pow(p-c,2));h=Math.atan2(k-c,h-d);p=Math.PI/2+(h+Math.atan2(p-c,l-d))/2;Math.abs(h-p)>Math.PI/2&&(p-=Math.PI);h=d+Math.cos(p)*m;k=c+Math.sin(p)*m;l=d+Math.cos(Math.PI+p)*r;p=c+Math.sin(Math.PI+p)*r;d={rightContX:l,\n", "rightContY:p,leftContX:h,leftContY:k,plotX:d,plotY:c};e&&(d.prevPointCont=this.getConnectors(b,a,!1,f));return d};m(f,\"buildKDTree\",function(b){this.chart.polar&&(this.kdByAngle?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy=\"xy\");b.apply(this)});f.toXY=function(b){var a,e=this.chart,f=b.plotX;a=b.plotY;b.rectPlotX=f;b.rectPlotY=a;a=this.xAxis.postTranslate(b.plotX,this.yAxis.len-a);b.plotX=b.polarPlotX=a.x-e.plotLeft;b.plotY=b.polarPlotY=a.y-e.plotTop;this.kdByAngle?(e=\n", "(f/Math.PI*180+this.xAxis.pane.options.startAngle)%360,0>e&&(e+=360),b.clientX=e):b.clientX=b.plotX};p.spline&&(m(p.spline.prototype,\"getPointSpline\",function(a,d,e,f){this.chart.polar?f?(a=this.getConnectors(d,f,!0,this.connectEnds),a=[\"C\",a.prevPointCont.rightContX,a.prevPointCont.rightContY,a.leftContX,a.leftContY,a.plotX,a.plotY]):a=[\"M\",e.plotX,e.plotY]:a=a.call(this,d,e,f);return a}),p.areasplinerange&&(p.areasplinerange.prototype.getPointSpline=p.spline.prototype.getPointSpline));m(f,\"translate\",\n", "function(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});m(f,\"getGraphPath\",function(a,d){var b=this,f,c,g;if(this.chart.polar){d=d||this.points;for(f=0;fb.center[1]}),m(p,\"alignDataLabel\",function(a,d,e,k,c,g){this.chart.polar?(a=d.rectPlotX/Math.PI*180,null===k.align&&(k.align=20a?\"left\":200a?\"right\":\"center\"),null===k.verticalAlign&&(k.verticalAlign=45>a||315a?\"top\":\"middle\"),f.alignDataLabel.call(this,d,e,k,c,g)):a.call(this,d,e,k,c,g)}));m(h,\"getCoordinates\",function(a,d){var b=this.chart,f={xAxis:[],yAxis:[]};b.polar?t(b.axes,function(a){var c=\n", "a.isXAxis,e=a.center,h=d.chartX-e[0]-b.plotLeft,e=d.chartY-e[1]-b.plotTop;f[c?\"xAxis\":\"yAxis\"].push({axis:a,value:a.translate(c?Math.PI-Math.atan2(h,e):Math.sqrt(Math.pow(h,2)+Math.pow(e,2)),!0)})}):f=a.call(this,d);return f});m(a.Chart.prototype,\"getAxes\",function(b){this.pane||(this.pane=[]);t(a.splat(this.options.pane),function(b){new a.Pane(b,this)},this);b.call(this)});m(a.Chart.prototype,\"drawChartBox\",function(a){a.call(this);t(this.pane,function(a){a.render()})});m(a.Chart.prototype,\"get\",\n", "function(b,d){return a.find(this.pane,function(a){return a.options.id===d})||b.call(this,d)})})(v)});\n", "\n", " /* END highcharts-more.js*/\n", "\n", " /* BEGIN modules/exporting.js */\n", "\n", "/*\n", " Highcharts JS v5.0.12 (2017-05-24)\n", " Exporting module\n", "\n", " (c) 2010-2017 Torstein Honsi\n", "\n", " License: www.highcharts.com/license\n", "*/\n", "(function(k){\"object\"===typeof module&&module.exports?module.exports=k:k(Highcharts)})(function(k){(function(f){var k=f.defaultOptions,p=f.doc,A=f.Chart,w=f.addEvent,I=f.removeEvent,E=f.fireEvent,t=f.createElement,B=f.discardElement,v=f.css,n=f.merge,C=f.pick,h=f.each,F=f.objectEach,u=f.extend,J=f.isTouchDevice,D=f.win,G=D.navigator.userAgent,K=f.Renderer.prototype.symbols;/Edge\\/|Trident\\/|MSIE /.test(G);/firefox/i.test(G);u(k.lang,{printChart:\"Print chart\",downloadPNG:\"Download PNG image\",downloadJPEG:\"Download JPEG image\",\n", "downloadPDF:\"Download PDF document\",downloadSVG:\"Download SVG vector image\",contextButtonTitle:\"Chart context menu\"});k.navigation={buttonOptions:{theme:{},symbolSize:14,symbolX:12.5,symbolY:10.5,align:\"right\",buttonSpacing:3,height:22,verticalAlign:\"top\",width:24}};n(!0,k.navigation,{menuStyle:{border:\"1px solid #999999\",background:\"#ffffff\",padding:\"5px 0\"},menuItemStyle:{padding:\"0.5em 1em\",background:\"none\",color:\"#333333\",fontSize:J?\"14px\":\"11px\",transition:\"background 250ms, color 250ms\"},menuItemHoverStyle:{background:\"#335cad\",\n", "color:\"#ffffff\"},buttonOptions:{symbolFill:\"#666666\",symbolStroke:\"#666666\",symbolStrokeWidth:3,theme:{fill:\"#ffffff\",stroke:\"none\",padding:5}}});k.exporting={type:\"image/png\",url:\"https://export.highcharts.com/\",printMaxWidth:780,scale:2,buttons:{contextButton:{className:\"highcharts-contextbutton\",menuClassName:\"highcharts-contextmenu\",symbol:\"menu\",_titleKey:\"contextButtonTitle\",menuItems:[{textKey:\"printChart\",onclick:function(){this.print()}},{separator:!0},{textKey:\"downloadPNG\",onclick:function(){this.exportChart()}},\n", "{textKey:\"downloadJPEG\",onclick:function(){this.exportChart({type:\"image/jpeg\"})}},{textKey:\"downloadPDF\",onclick:function(){this.exportChart({type:\"application/pdf\"})}},{textKey:\"downloadSVG\",onclick:function(){this.exportChart({type:\"image/svg+xml\"})}}]}}};f.post=function(a,b,e){var c=t(\"form\",n({method:\"post\",action:a,enctype:\"multipart/form-data\"},e),{display:\"none\"},p.body);F(b,function(a,b){t(\"input\",{type:\"hidden\",name:b,value:a},null,c)});c.submit();B(c)};u(A.prototype,{sanitizeSVG:function(a,\n", "b){if(b&&b.exporting&&b.exporting.allowHTML){var e=a.match(/<\\/svg>(.*?$)/);e&&e[1]&&(e='\\x3cforeignObject x\\x3d\"0\" y\\x3d\"0\" width\\x3d\"'+b.chart.width+'\" height\\x3d\"'+b.chart.height+'\"\\x3e\\x3cbody xmlns\\x3d\"http://www.w3.org/1999/xhtml\"\\x3e'+e[1]+\"\\x3c/body\\x3e\\x3c/foreignObject\\x3e\",a=a.replace(\"\\x3c/svg\\x3e\",e+\"\\x3c/svg\\x3e\"))}a=a.replace(/zIndex=\"[^\"]+\"/g,\"\").replace(/isShadow=\"[^\"]+\"/g,\"\").replace(/symbolName=\"[^\"]+\"/g,\"\").replace(/jQuery[0-9]+=\"[^\"]+\"/g,\"\").replace(/url\\((\"|")(\\S+)(\"|")\\)/g,\n", "\"url($2)\").replace(/url\\([^#]+#/g,\"url(#\").replace(/.*?$/,\"\\x3c/svg\\x3e\").replace(/(fill|stroke)=\"rgba\\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\\.]+)\\)\"/g,'$1\\x3d\"rgb($2)\" $1-opacity\\x3d\"$3\"').replace(/ /g,\"\\u00a0\").replace(/­/g,\"\\u00ad\");return a=a.replace(//g,\"\\x3c$1title\\x3e\").replace(/height=([^\" ]+)/g,\n", "'height\\x3d\"$1\"').replace(/width=([^\" ]+)/g,'width\\x3d\"$1\"').replace(/hc-svg-href=\"([^\"]+)\">/g,'xlink:href\\x3d\"$1\"/\\x3e').replace(/ id=([^\" >]+)/g,' id\\x3d\"$1\"').replace(/class=([^\" >]+)/g,'class\\x3d\"$1\"').replace(/ transform /g,\" \").replace(/:(path|rect)/g,\"$1\").replace(/style=\"([^\"]+)\"/g,function(a){return a.toLowerCase()})},getChartHTML:function(){return this.container.innerHTML},getSVG:function(a){var b,e,c,r,m,g=n(this.options,a);p.createElementNS||(p.createElementNS=function(a,b){return p.createElement(b)});\n", "e=t(\"div\",null,{position:\"absolute\",top:\"-9999em\",width:this.chartWidth+\"px\",height:this.chartHeight+\"px\"},p.body);c=this.renderTo.style.width;m=this.renderTo.style.height;c=g.exporting.sourceWidth||g.chart.width||/px$/.test(c)&&parseInt(c,10)||600;m=g.exporting.sourceHeight||g.chart.height||/px$/.test(m)&&parseInt(m,10)||400;u(g.chart,{animation:!1,renderTo:e,forExport:!0,renderer:\"SVGRenderer\",width:c,height:m});g.exporting.enabled=!1;delete g.data;g.series=[];h(this.series,function(a){r=n(a.userOptions,\n", "{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});r.isInternal||g.series.push(r)});h(this.axes,function(a){a.userOptions.internalKey||(a.userOptions.internalKey=f.uniqueKey())});b=new f.Chart(g,this.callback);a&&h([\"xAxis\",\"yAxis\",\"series\"],function(c){var d={};a[c]&&(d[c]=a[c],b.update(d))});h(this.axes,function(a){var c=f.find(b.axes,function(b){return b.options.internalKey===a.userOptions.internalKey}),d=a.getExtremes(),e=d.userMin,d=d.userMax;!c||void 0===e&&void 0===d||\n", "c.setExtremes(e,d,!0,!1)});c=b.getChartHTML();c=this.sanitizeSVG(c,g);g=null;b.destroy();B(e);return c},getSVGForExport:function(a,b){var e=this.options.exporting;return this.getSVG(n({chart:{borderRadius:0}},e.chartOptions,b,{exporting:{sourceWidth:a&&a.sourceWidth||e.sourceWidth,sourceHeight:a&&a.sourceHeight||e.sourceHeight}}))},exportChart:function(a,b){b=this.getSVGForExport(a,b);a=n(this.options.exporting,a);f.post(a.url,{filename:a.filename||\"chart\",type:a.type,width:a.width||0,scale:a.scale,\n", "svg:b},a.formAttributes)},print:function(){var a=this,b=a.container,e=[],c=b.parentNode,f=p.body,m=f.childNodes,g=a.options.exporting.printMaxWidth,d,H;if(!a.isPrinting){a.isPrinting=!0;a.pointer.reset(null,0);E(a,\"beforePrint\");if(H=g&&a.chartWidth>g)d=[a.options.chart.width,void 0,!1],a.setSize(g,void 0,!1);h(m,function(a,b){1===a.nodeType&&(e[b]=a.style.display,a.style.display=\"none\")});f.appendChild(b);D.focus();D.print();setTimeout(function(){c.appendChild(b);h(m,function(a,b){1===a.nodeType&&\n", "(a.style.display=e[b])});a.isPrinting=!1;H&&a.setSize.apply(a,d);E(a,\"afterPrint\")},1E3)}},contextMenu:function(a,b,e,c,f,m,g){var d=this,r=d.options.navigation,k=d.chartWidth,q=d.chartHeight,n=\"cache-\"+a,l=d[n],x=Math.max(f,m),y,z;l||(d[n]=l=t(\"div\",{className:a},{position:\"absolute\",zIndex:1E3,padding:x+\"px\"},d.container),y=t(\"div\",{className:\"highcharts-menu\"},null,l),v(y,u({MozBoxShadow:\"3px 3px 10px #888\",WebkitBoxShadow:\"3px 3px 10px #888\",boxShadow:\"3px 3px 10px #888\"},r.menuStyle)),z=function(){v(l,\n", "{display:\"none\"});g&&g.setState(0);d.openMenu=!1},d.exportEvents.push(w(l,\"mouseleave\",function(){l.hideTimer=setTimeout(z,500)}),w(l,\"mouseenter\",function(){clearTimeout(l.hideTimer)}),w(p,\"mouseup\",function(b){d.pointer.inClass(b.target,a)||z()})),h(b,function(a){if(a){var b;a.separator?b=t(\"hr\",null,null,y):(b=t(\"div\",{className:\"highcharts-menu-item\",onclick:function(b){b&&b.stopPropagation();z();a.onclick&&a.onclick.apply(d,arguments)},innerHTML:a.text||d.options.lang[a.textKey]},null,y),b.onmouseover=\n", "function(){v(this,r.menuItemHoverStyle)},b.onmouseout=function(){v(this,r.menuItemStyle)},v(b,u({cursor:\"pointer\"},r.menuItemStyle)));d.exportDivElements.push(b)}}),d.exportDivElements.push(y,l),d.exportMenuWidth=l.offsetWidth,d.exportMenuHeight=l.offsetHeight);b={display:\"block\"};e+d.exportMenuWidth>k?b.right=k-e-f-x+\"px\":b.left=e-x+\"px\";c+m+d.exportMenuHeight>q&&\"top\"!==g.alignOptions.verticalAlign?b.bottom=q-c-x+\"px\":b.top=c+m-x+\"px\";v(l,b);d.openMenu=!0},addButton:function(a){var b=this,e=b.renderer,\n", "c=n(b.options.navigation.buttonOptions,a),f=c.onclick,m=c.menuItems,g,d,k=c.symbolSize||12;b.btnCount||(b.btnCount=0);b.exportDivElements||(b.exportDivElements=[],b.exportSVGElements=[]);if(!1!==c.enabled){var h=c.theme,q=h.states,p=q&&q.hover,q=q&&q.select,l;delete h.states;f?l=function(a){a.stopPropagation();f.call(b,a)}:m&&(l=function(){b.contextMenu(d.menuClassName,m,d.translateX,d.translateY,d.width,d.height,d);d.setState(2)});c.text&&c.symbol?h.paddingLeft=C(h.paddingLeft,25):c.text||u(h,{width:c.width,\n", "height:c.height,padding:0});d=e.button(c.text,0,0,l,h,p,q).addClass(a.className).attr({\"stroke-linecap\":\"round\",title:b.options.lang[c._titleKey],zIndex:3});d.menuClassName=a.menuClassName||\"highcharts-menu-\"+b.btnCount++;c.symbol&&(g=e.symbol(c.symbol,c.symbolX-k/2,c.symbolY-k/2,k,k).addClass(\"highcharts-button-symbol\").attr({zIndex:1}).add(d),g.attr({stroke:c.symbolStroke,fill:c.symbolFill,\"stroke-width\":c.symbolStrokeWidth||1}));d.add().align(u(c,{width:d.width,x:C(c.x,b.buttonOffset)}),!0,\"spacingBox\");\n", "b.buttonOffset+=(d.width+c.buttonSpacing)*(\"right\"===c.align?-1:1);b.exportSVGElements.push(d,g)}},destroyExport:function(a){var b=a?a.target:this;a=b.exportSVGElements;var e=b.exportDivElements,c=b.exportEvents,f;a&&(h(a,function(a,c){a&&(a.onclick=a.ontouchstart=null,f=\"cache-\"+a.menuClassName,b[f]&&delete b[f],b.exportSVGElements[c]=a.destroy())}),a.length=0);e&&(h(e,function(a,c){clearTimeout(a.hideTimer);I(a,\"mouseleave\");b.exportDivElements[c]=a.onmouseout=a.onmouseover=a.ontouchstart=a.onclick=\n", "null;B(a)}),e.length=0);c&&(h(c,function(a){a()}),c.length=0)}});K.menu=function(a,b,e,c){return[\"M\",a,b+2.5,\"L\",a+e,b+2.5,\"M\",a,b+c/2+.5,\"L\",a+e,b+c/2+.5,\"M\",a,b+c-1.5,\"L\",a+e,b+c-1.5]};A.prototype.renderExporting=function(){var a=this,b=a.options.exporting,e=b.buttons,c=a.isDirtyExporting||!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport();c&&!1!==b.enabled&&(a.exportEvents=[],F(e,function(b){a.addButton(b)}),a.isDirtyExporting=!1);w(a,\"destroy\",a.destroyExport)};A.prototype.callbacks.push(function(a){a.renderExporting();\n", "w(a,\"redraw\",a.renderExporting);h([\"exporting\",\"navigation\"],function(b){a[b]={update:function(e,c){a.isDirtyExporting=!0;n(!0,a.options[b],e);C(c,!0)&&a.redraw()}}})})})(k)});\n", "\n", " /* END modules/exporting.js*/\n", "\n", " /* BEGIN highcharts-3d.js */\n", "\n", "/*\n", " Highcharts JS v5.0.12 (2017-05-24)\n", "\n", " 3D features for Highcharts JS\n", "\n", " @license: www.highcharts.com/license\n", "*/\n", "(function(A){\"object\"===typeof module&&module.exports?module.exports=A:A(Highcharts)})(function(A){(function(d){var w=d.deg2rad,r=d.pick;d.perspective=function(t,x,y){var m=x.options.chart.options3d,u=y?x.inverted:!1,h=x.plotWidth/2,v=x.plotHeight/2,g=m.depth/2,c=r(m.depth,1)*r(m.viewDistance,0),b=x.scale3d||1,e=w*m.beta*(u?-1:1),m=w*m.alpha*(u?-1:1),a=Math.cos(m),f=Math.cos(-e),k=Math.sin(m),p=Math.sin(-e);y||(h+=x.plotLeft,v+=x.plotTop);return d.map(t,function(e){var d,l;l=(u?e.y:e.x)-h;var n=(u?\n", "e.x:e.y)-v,F=(e.z||0)-g;d=f*l-p*F;e=-k*p*l+a*n-f*k*F;l=a*p*l+k*n+a*f*F;n=0c&&f-c>Math.PI/2+.0001?(B=B.concat(w(a,b,e,d,c,c+Math.PI/2,k,g)),B=B.concat(w(a,b,e,d,c+Math.PI/2,f,k,g))):fMath.PI/2+.0001?(B=B.concat(w(a,b,e,d,c,c-Math.PI/2,k,g)),B=B.concat(w(a,b,e,d,c-Math.PI/2,f,k,g))):[\"C\",a+e*Math.cos(c)-e*l*n*Math.sin(c)+k,b+d*Math.sin(c)+d*l*n*Math.cos(c)+g,a+e*Math.cos(f)+e*l*n*Math.sin(f)+k,b+d*Math.sin(f)-\n", "d*l*n*Math.cos(f)+g,a+e*Math.cos(f)+k,b+d*Math.sin(f)+g]}var r=Math.cos,t=Math.PI,x=Math.sin,y=d.animObject,m=d.charts,u=d.color,h=d.defined,v=d.deg2rad,g=d.each,c=d.extend,b=d.inArray,e=d.map,a=d.merge,f=d.perspective,k=d.pick,p=d.SVGElement,z=d.SVGRenderer,q=d.wrap,l=4*(Math.sqrt(2)-1)/3/(t/2);z.prototype.toLinePath=function(a,b){var e=[];g(a,function(a){e.push(\"L\",a.x,a.y)});a.length&&(e[0]=\"M\",b&&e.push(\"Z\"));return e};z.prototype.toLineSegments=function(a){var b=[],e=!0;g(a,function(a){b.push(e?\n", "\"M\":\"L\",a.x,a.y);e=!e});return b};z.prototype.face3d=function(a){var b=this,e=this.createElement(\"path\");e.vertexes=[];e.insidePlotArea=!1;e.enabled=!0;q(e,\"attr\",function(a,e){if(\"object\"===typeof e&&(h(e.enabled)||h(e.vertexes)||h(e.insidePlotArea))){this.enabled=k(e.enabled,this.enabled);this.vertexes=k(e.vertexes,this.vertexes);this.insidePlotArea=k(e.insidePlotArea,this.insidePlotArea);delete e.enabled;delete e.vertexes;delete e.insidePlotArea;var c=f(this.vertexes,m[b.chartIndex],this.insidePlotArea),\n", "B=b.toLinePath(c,!0),c=d.shapeArea(c),c=this.enabled&&0c.faces.length;)e.faces.pop().destroy();\n", "for(;e.faces.lengthc.faces.length;)e.faces.pop().destroy();for(;e.faces.lengthd.shapeArea(a)?f=[a,0]:0>d.shapeArea(c)&&(f=[c,1]);return f};q=z([3,2,1,0],[7,6,5,4]);a=q[0];v=q[1];q=z([1,6,7,0],[4,5,2,3]);n=q[0];l=q[1];q=z([1,2,5,6],[0,7,4,3]);z=q[0];q=q[1];1===q?h+=1E4*(1E3-c):q||(h+=1E4*c);h+=10*(!l||0<=u&&180>=u||360>u&&\n", "357.5Math.PI&&(a=2*Math.PI-a);return a}var b=a.x,c=a.y,f=a.start,d=a.end-.00001,k=a.r,g=a.innerR,v=a.depth,l=a.alpha,p=a.beta,n=Math.cos(f),\n", "q=Math.sin(f);a=Math.cos(d);var h=Math.sin(d),z=k*Math.cos(p),k=k*Math.cos(l),m=g*Math.cos(p),u=g*Math.cos(l),g=v*Math.sin(p),y=v*Math.sin(l),v=[\"M\",b+z*n,c+k*q],v=v.concat(w(b,c,z,k,f,d,0,0)),v=v.concat([\"L\",b+m*a,c+u*h]),v=v.concat(w(b,c,m,u,d,f,0,0)),v=v.concat([\"Z\"]),A=0-A?f:d>-A?-A:f,C=dD&&ft-p&&fp&&(h=Math.min(h,\n", "1-Math.abs((c+f)/(p+f))%1));bq&&(h=0>q?Math.min(h,(e+k)/(-q+e+k)):Math.min(h,1-(e+k)/(q+k)%1));ab*d[c][e]?c=f:b*d[f][e]===b*d[c][e]&&d[f].zk+d[b[1]]||k>g[b[0]+\"Axis\"].len)for(var c in d)d[c]=0;0>k&&(d[b[1]]+=d[b[0]],d[b[0]]=0);k+d[b[1]]>g[b[0]+\"Axis\"].len&&(d[b[1]]=g[b[0]+\"Axis\"].len-d[b[0]])});b.shapeType=\"cuboid\";d.z=f;d.depth=e;d.insidePlotArea=!0;h=t([{x:h[0],y:h[1],z:f}],c,!0)[0];b.tooltipPos=[h.x,h.y]}});g.z=f}});d(m.column.prototype,\"animate\",function(d){if(this.chart.is3d()){var g=arguments[1],c=this.yAxis,b=this,e=this.yAxis.reversed;h&&(g?r(b.data,function(a){null!==a.y&&(a.height=\n", "a.shapeArgs.height,a.shapey=a.shapeArgs.y,a.shapeArgs.height=1,e||(a.shapeArgs.y=a.stackY?a.plotY+c.translate(a.stackY):a.plotY+(a.negative?-a.height:a.height)))}):(r(b.data,function(a){null!==a.y&&(a.shapeArgs.height=a.height,a.shapeArgs.y=a.shapey,a.graphic&&a.graphic.animate(a.shapeArgs,b.options.animation))}),this.drawDataLabels(),b.animate=null))}else d.apply(this,[].slice.call(arguments,1))});d(m.column.prototype,\"plotGroup\",function(d,g,c,b,e,a){this.chart.is3d()&&a&&!this[g]&&(this[g]=a,a.attr(this.getPlotBox()),\n", "this[g].survive=!0);return d.apply(this,Array.prototype.slice.call(arguments,1))});d(m.column.prototype,\"setVisible\",function(d,g){var c=this,b;c.chart.is3d()&&r(c.data,function(e){b=(e.visible=e.options.visible=g=void 0===g?!e.visible:g)?\"visible\":\"hidden\";c.options.data[u(e,c.data)]=e.options;e.graphic&&e.graphic.attr({visibility:b})});d.apply(this,Array.prototype.slice.call(arguments,1))});d(m.column.prototype,\"init\",function(d){d.apply(this,[].slice.call(arguments,1));if(this.chart.is3d()){var g=\n", "this.options,c=g.grouping,b=g.stacking,e=x(this.yAxis.options.reversedStacks,!0),a=0;if(void 0===c||c){c=this.chart.retrieveStacks(b);a=g.stack||0;for(b=0;b=h.min&&c<=h.max:!1,t.push({x:g.plotX,y:g.plotY,z:g.plotZ});m=w(t,m,!0);for(b=0;b=e&&d<=c&&!q&&\"\"!==g&&(a=a.split(h),m(a,function(b,a){a>=\n", "k&&a<=t&&(f[a-k]||(f[a-k]=[]),f[a-k][y]=b)}),y+=1)}),this.dataFound())},parseTable:function(){var b=this.options,a=b.table,d=this.columns,f=b.startRow||0,e=b.endRow||Number.MAX_VALUE,c=b.startColumn||0,k=b.endColumn||Number.MAX_VALUE;a&&(\"string\"===typeof a&&(a=p.getElementById(a)),m(a.getElementsByTagName(\"tr\"),function(b,a){a>=f&&a<=e&&m(b.children,function(b,e){(\"TD\"===b.tagName||\"TH\"===b.tagName)&&e>=c&&e<=k&&(d[e-c]||(d[e-c]=[]),d[e-c][a-f]=b.innerHTML)})}),this.dataFound())},parseGoogleSpreadsheet:function(){var b=\n", "this,a=this.options,d=a.googleSpreadsheetKey,f=this.columns,e=a.startRow||0,c=a.endRow||Number.MAX_VALUE,k=a.startColumn||0,g=a.endColumn||Number.MAX_VALUE,h,q;d&&jQuery.ajax({dataType:\"json\",url:\"https://spreadsheets.google.com/feeds/cells/\"+d+\"/\"+(a.googleSpreadsheetWorksheet||\"od6\")+\"/public/values?alt\\x3djson-in-script\\x26callback\\x3d?\",error:a.error,success:function(a){a=a.feed.entry;var d,t=a.length,r=0,n=0,l;for(l=0;l=k&&l<=g&&(f[l-k]=[],f[l-k].length=Math.min(n,c-e));for(l=0;l=k&&q<=g&&h>=e&&h<=c&&(f[q-k][h-e]=d.content.$t);m(f,function(a){for(l=0;l\n", "b[e+1])):(k=this.parseDate(c),m&&x(k)&&\"float\"!==u?(p[e]=c,b[e]=k,b.isDatetime=!0,void 0!==b[e+1]&&(c=k>b[e+1],c!==r&&void 0!==r&&(this.alternativeFormat?(this.dateFormat=this.alternativeFormat,e=b.length,this.alternativeFormat=this.dateFormats[this.dateFormat].alternative):b.unsorted=!0),r=c)):(b[e]=\"\"===g?null:g,0!==e&&(b.isDatetime||b.isNumeric)&&(b.mixed=!0)));m&&b.mixed&&(f[a]=d[a]);if(m&&r&&this.options.sort)for(a=0;aparseInt(B.split(\\\"Firefox/\\\")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:\\\"Highstock\\\",\\nversion:\\\"5.0.12\\\",deg2rad:2*Math.PI/360,doc:E,hasBidiBug:u,hasTouch:E&&void 0!==E.documentElement.ontouchstart,isMS:D,isWebKit:/AppleWebKit/.test(B),isFirefox:h,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:\\\"http://www.w3.org/2000/svg\\\",chartCount:0,seriesTypes:{},symbolSizes:{},svg:F,vml:n,win:a,marginNames:[\\\"plotTop\\\",\\\"marginRight\\\",\\\"marginBottom\\\",\\\"plotLeft\\\"],noop:function(){},charts:[]}}();(function(a){var E=[],B=a.charts,F=a.doc,D=a.win;a.error=function(n,h){n=a.isNumber(n)?\\\"Highcharts error #\\\"+\\nn+\\\": www.highcharts.com/errors/\\\"+n:n;if(h)throw Error(n);D.console&&console.log(n)};a.Fx=function(a,h,u){this.options=h;this.elem=a;this.prop=u};a.Fx.prototype={dSetter:function(){var a=this.paths[0],h=this.paths[1],u=[],r=this.now,x=a.length,t;if(1===r)u=this.toD;else if(x===h.length&&1>r)for(;x--;)t=parseFloat(a[x]),u[x]=isNaN(t)?a[x]:r*parseFloat(h[x]-t)+t;else u=h;this.elem.attr(\\\"d\\\",u,null,!0)},update:function(){var a=this.elem,h=this.prop,u=this.now,r=this.options.step;if(this[h+\\\"Setter\\\"])this[h+\\n\\\"Setter\\\"]();else a.attr?a.element&&a.attr(h,u,null,!0):a.style[h]=u+this.unit;r&&r.call(a,u,this)},run:function(a,h,u){var r=this,n=function(a){return n.stopped?!1:r.step(a)},t;this.startTime=+new Date;this.start=a;this.end=h;this.unit=u;this.now=this.start;this.pos=0;n.elem=this.elem;n.prop=this.prop;n()&&1===E.push(n)&&(n.timerId=setInterval(function(){for(t=0;t=m+this.startTime?(this.now=this.end,this.pos=1,this.update(),u=f[this.prop]=!0,a.objectEach(f,function(a){!0!==a&&(u=!1)}),u&&t&&t.call(x),n=!1):(this.pos=r.easing((h-this.startTime)/m),this.now=this.start+(this.end-this.start)*this.pos,this.update(),n=!0);return n},initPath:function(n,h,u){function r(a){var c,b;for(A=a.length;A--;)c=\\\"M\\\"===a[A]||\\\"L\\\"===a[A],b=/[a-zA-Z]/.test(a[A+3]),c&&b&&a.splice(A+1,0,a[A+1],a[A+2],a[A+1],a[A+2])}\\nfunction x(a,c){for(;a.lengtht?\\\"AM\\\":\\\"PM\\\",P:12>t?\\\"am\\\":\\\"pm\\\",S:A(x.getSeconds()),L:A(Math.round(h%1E3),3)},a.dateFormats);a.objectEach(r,function(a,b){for(;-1!==n.indexOf(\\\"%\\\"+b);)n=n.replace(\\\"%\\\"+b,\\\"function\\\"===typeof a?a(h):a)});return u?n.substr(0,\\n1).toUpperCase()+n.substr(1):n};a.formatSingle=function(n,h){var u=/\\\\.([0-9])/,r=a.defaultOptions.lang;/f$/.test(n)?(u=(u=n.match(u))?u[1]:-1,null!==h&&(h=a.numberFormat(h,u,r.decimalPoint,-1=u&&(h=[1/u])));for(r=0;r=n||!x&&t<=(h[r]+(h[r+1]||h[r]))/2);r++);return m=a.correctFloat(m*u,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=\\nfunction(a,h){var n=a.length,r,x;for(x=0;xn&&(n=a[h]);return n};a.destroyObjectProperties=function(n,h){a.objectEach(n,function(a,r){a&&a!==h&&a.destroy&&a.destroy();delete n[r]})};a.discardElement=function(n){var h=a.garbageBin;h||(h=a.createElement(\\\"div\\\"));\\nn&&h.appendChild(n);h.innerHTML=\\\"\\\"};a.correctFloat=function(a,h){return parseFloat(a.toPrecision(h||14))};a.setAnimation=function(n,h){h.renderer.globalAnimation=a.pick(n,h.options.chart.animation,!0)};a.animObject=function(n){return a.isObject(n)?a.merge(n):{duration:n?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(n,h,u,r){n=+n||0;h=+h;var x=a.defaultOptions.lang,t=(n.toString().split(\\\".\\\")[1]||\\\"\\\").length,\\nm,f;-1===h?h=Math.min(t,20):a.isNumber(h)||(h=2);f=(Math.abs(n)+Math.pow(10,-Math.max(h,t)-1)).toFixed(h);t=String(a.pInt(f));m=3n?\\\"-\\\":\\\"\\\")+(m?t.substr(0,m)+r:\\\"\\\");n+=t.substr(m).replace(/(\\\\d{3})(?=\\\\d)/g,\\\"$1\\\"+r);h&&(n+=u+f.slice(-h));return n};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(n,h,u){if(\\\"width\\\"===h)return Math.min(n.offsetWidth,n.scrollWidth)-a.getStyle(n,\\\"padding-left\\\")-\\na.getStyle(n,\\\"padding-right\\\");if(\\\"height\\\"===h)return Math.min(n.offsetHeight,n.scrollHeight)-a.getStyle(n,\\\"padding-top\\\")-a.getStyle(n,\\\"padding-bottom\\\");if(n=D.getComputedStyle(n,void 0))n=n.getPropertyValue(h),a.pick(u,!0)&&(n=a.pInt(n));return n};a.inArray=function(a,h){return h.indexOf?h.indexOf(a):[].indexOf.call(h,a)};a.grep=function(a,h){return[].filter.call(a,h)};a.find=function(a,h){return[].find.call(a,h)};a.map=function(a,h){for(var n=[],r=0,x=a.length;r>16,(h&65280)>>8,h&255,1]:4===n&&(r=[(h&3840)>>4|(h&3840)>>8,(h&240)>>4|h&240,(h&15)<<4|h&15,1])),!r)for(x=this.parsers.length;x--&&\\n!r;)t=this.parsers[x],(n=t.regex.exec(h))&&(r=t.parse(n));this.rgba=r||[]},get:function(a){var h=this.input,r=this.rgba,n;this.stops?(n=D(h),n.stops=[].concat(n.stops),E(this.stops,function(h,m){n.stops[m]=[n.stops[m][0],h.get(a)]})):n=r&&B(r[0])?\\\"rgb\\\"===a||!a&&1===r[3]?\\\"rgb(\\\"+r[0]+\\\",\\\"+r[1]+\\\",\\\"+r[2]+\\\")\\\":\\\"a\\\"===a?r[3]:\\\"rgba(\\\"+r.join(\\\",\\\")+\\\")\\\":h;return n},brighten:function(a){var h,r=this.rgba;if(this.stops)E(this.stops,function(h){h.brighten(a)});else if(B(a)&&0!==a)for(h=0;3>h;h++)r[h]+=n(255*a),0>\\nr[h]&&(r[h]=0),255C.width)C={width:0,height:0}}else C=this.htmlGetBBox();c.isSVG&&(a=C.width,c=C.height,b&&\\\"11px\\\"===b.fontSize&&17===Math.round(c)&&(C.height=c=14),k&&(C.width=Math.abs(c*Math.sin(z))+Math.abs(a*Math.cos(z)),C.height=Math.abs(c*Math.cos(z))+Math.abs(a*Math.sin(z))));\\nif(g&&0]*>/g,\\\"\\\")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,k,c){\\\"string\\\"===typeof a?c.setAttribute(k,a):a&&this.colorGradient(a,k,c)},\\nvisibilitySetter:function(a,k,c){\\\"inherit\\\"===a?c.removeAttribute(k):c.setAttribute(k,a)},zIndexSetter:function(a,c){var z=this.renderer,l=this.parentGroup,C=(l||z).element||z.box,b,d=this.element,q;b=this.added;var e;t(a)&&(d.zIndex=a,a=+a,this[c]===a&&(b=!1),this[c]=a);if(b){(a=this.zIndex)&&l&&(l.handleZ=!0);c=C.childNodes;for(e=0;ea||!t(a)&&t(b)||0>a&&!t(b)&&C!==z.box)&&(C.insertBefore(d,l),q=!0);q||C.appendChild(d)}return q},_defaultSetter:function(a,\\nk,c){c.setAttribute(k,a)}});E.prototype.yGetter=E.prototype.xGetter;E.prototype.translateXSetter=E.prototype.translateYSetter=E.prototype.rotationSetter=E.prototype.verticalAlignSetter=E.prototype.scaleXSetter=E.prototype.scaleYSetter=function(a,k){this[k]=a;this.doTransform=!0};E.prototype[\\\"stroke-widthSetter\\\"]=E.prototype.strokeSetter=function(a,k,c){this[k]=a;this.stroke&&this[\\\"stroke-width\\\"]?(E.prototype.fillSetter.call(this,this.stroke,\\\"stroke\\\",c),c.setAttribute(\\\"stroke-width\\\",this[\\\"stroke-width\\\"]),\\nthis.hasStroke=!0):\\\"stroke-width\\\"===k&&0===a&&this.hasStroke&&(c.removeAttribute(\\\"stroke\\\"),this.hasStroke=!1)};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};d(B.prototype,{Element:E,SVG_NS:N,init:function(a,k,c,z,l,b){var C;z=this.createElement(\\\"svg\\\").attr({version:\\\"1.1\\\",\\\"class\\\":\\\"highcharts-root\\\"}).css(this.getStyle(z));C=z.element;a.appendChild(C);-1===a.innerHTML.indexOf(\\\"xmlns\\\")&&n(C,\\\"xmlns\\\",this.SVG_NS);this.isSVG=!0;this.box=C;this.boxWrapper=z;this.alignedObjects=[];this.url=(q||\\nK)&&g.getElementsByTagName(\\\"base\\\").length?O.location.href.replace(/#.*?$/,\\\"\\\").replace(/<[^>]*>/g,\\\"\\\").replace(/([\\\\('\\\\)])/g,\\\"\\\\\\\\$1\\\").replace(/ /g,\\\"%20\\\"):\\\"\\\";this.createElement(\\\"desc\\\").add().element.appendChild(g.createTextNode(\\\"Created with Highstock 5.0.12\\\"));this.defs=this.createElement(\\\"defs\\\").add();this.allowHTML=b;this.forExport=l;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(k,c,!1);var d;q&&a.getBoundingClientRect&&(k=function(){r(a,{left:0,top:0});d=a.getBoundingClientRect();\\nr(a,{left:Math.ceil(d.left)-d.left+\\\"px\\\",top:Math.ceil(d.top)-d.top+\\\"px\\\"})},k(),this.unSubPixelFix=F(O,\\\"resize\\\",k))},getStyle:function(a){return this.style=d({fontFamily:'\\\"Lucida Grande\\\", \\\"Lucida Sans Unicode\\\", Arial, Helvetica, sans-serif',fontSize:\\\"12px\\\"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();f(this.gradients||{});this.gradients=\\nnull;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var k=new this.Element;k.init(this,a);return k},draw:G,getRadialAttr:function(a,k){return{cx:a[0]-a[2]/2+k.cx*a[2],cy:a[1]-a[2]/2+k.cy*a[2],r:k.r*a[2]}},getSpanWidth:function(a,k){var c=a.getBBox(!0).width;!M&&this.forExport&&(c=this.measureSpanWidth(k.firstChild.data,a.styles));return c},applyEllipsis:function(a,k,c,z){var l=this.getSpanWidth(a,k),b=l>z,l=c,d,q=0,C=\\nc.length,e=function(a){k.removeChild(k.firstChild);a&&k.appendChild(g.createTextNode(a))};if(b){for(;q<=C;)d=Math.ceil((q+C)/2),l=c.substring(0,d)+\\\"\\\\u2026\\\",e(l),l=this.getSpanWidth(a,k),q===C?q=C+1:l>z?C=d-1:q=d;0===C&&e(\\\"\\\")}return b},buildText:function(a){var c=a.element,z=this,l=z.forExport,d=I(a.textStr,\\\"\\\").toString(),q=-1!==d.indexOf(\\\"\\\\x3c\\\"),C=c.childNodes,y,f,w,G,v=n(c,\\\"x\\\"),p=a.styles,J=a.textWidth,m=p&&p.lineHeight,A=p&&p.textOutline,H=p&&\\\"ellipsis\\\"===p.textOverflow,K=p&&\\\"nowrap\\\"===p.whiteSpace,\\nh=p&&p.fontSize,Q,t,x=C.length,p=J&&!a.added&&this.box,u=function(a){var l;l=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:h||z.style.fontSize||12;return m?k(m):z.fontMetrics(l,a.getAttribute(\\\"style\\\")?a:c).h};Q=[d,H,K,m,A,h,J].join();if(Q!==a.textCache){for(a.textCache=Q;x--;)c.removeChild(C[x]);q||A||H||J||-1!==d.indexOf(\\\" \\\")?(y=/<.*class=\\\"([^\\\"]+)\\\".*>/,f=/<.*style=\\\"([^\\\"]+)\\\".*>/,w=/<.*href=\\\"([^\\\"]+)\\\".*>/,p&&p.appendChild(c),d=q?d.replace(/<(b|strong)>/g,'\\\\x3cspan style\\\\x3d\\\"font-weight:bold\\\"\\\\x3e').replace(/<(i|em)>/g,\\n'\\\\x3cspan style\\\\x3d\\\"font-style:italic\\\"\\\\x3e').replace(//g,\\\"\\\\x3c/span\\\\x3e\\\").split(//g):[d],d=b(d,function(a){return\\\"\\\"!==a}),e(d,function(k,b){var d,q=0;k=k.replace(/^\\\\s+|\\\\s+$/g,\\\"\\\").replace(//g,\\\"\\\\x3c/span\\\\x3e|||\\\");d=k.split(\\\"|||\\\");e(d,function(k){if(\\\"\\\"!==k||1===d.length){var C={},e=g.createElementNS(z.SVG_NS,\\\"tspan\\\"),p,I;y.test(k)&&(p=k.match(y)[1],n(e,\\\"class\\\",p));f.test(k)&&(I=k.match(f)[1].replace(/(;| |^)color([ :])/,\\n\\\"$1fill$2\\\"),n(e,\\\"style\\\",I));w.test(k)&&!l&&(n(e,\\\"onclick\\\",'location.href\\\\x3d\\\"'+k.match(w)[1]+'\\\"'),r(e,{cursor:\\\"pointer\\\"}));k=(k.replace(/<(.|\\\\n)*?>/g,\\\"\\\")||\\\" \\\").replace(/</g,\\\"\\\\x3c\\\").replace(/>/g,\\\"\\\\x3e\\\");if(\\\" \\\"!==k){e.appendChild(g.createTextNode(k));q?C.dx=0:b&&null!==v&&(C.x=v);n(e,C);c.appendChild(e);!q&&t&&(!M&&l&&r(e,{display:\\\"block\\\"}),n(e,\\\"dy\\\",u(e)));if(J){C=k.replace(/([^\\\\^])-/g,\\\"$1- \\\").split(\\\" \\\");p=1J,void 0===G&&(G=k),k&&1!==C.length?(e.removeChild(e.firstChild),m.unshift(C.pop())):(C=m,m=[],C.length&&!K&&(e=g.createElementNS(N,\\\"tspan\\\"),n(e,{dy:h,x:v}),I&&n(e,\\\"style\\\",I),c.appendChild(e)),A>J&&(J=A)),C.length&&e.appendChild(g.createTextNode(C.join(\\\" \\\").replace(/- /g,\\\"-\\\")));a.rotation=Q}q++}}});t=t||c.childNodes.length}),G&&a.attr(\\\"title\\\",a.textStr),p&&p.removeChild(c),A&&a.applyTextOutline&&a.applyTextOutline(A)):c.appendChild(g.createTextNode(d.replace(/</g,\\n\\\"\\\\x3c\\\").replace(/>/g,\\\"\\\\x3e\\\")))}},getContrast:function(a){a=u(a).rgba;return 510c?l>k+d&&lq?l>k+d&&lz&&q>a+d&&ql&&q>a+d&&qa?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a,k,c){var z=a;k&&c&&(z=Math.max(z*Math.cos(k*m),4));return{x:-a/3*Math.sin(k*m),y:z}},label:function(k,c,\\nl,b,q,f,w,G,g){var v=this,p=v.g(\\\"button\\\"!==g&&\\\"label\\\"),M=p.text=v.text(\\\"\\\",0,0,w).attr({zIndex:1}),C,I,J=0,m=3,A=0,H,h,K,Q,r,N={},n,x,u=/^url\\\\((.*?)\\\\)$/.test(b),P=u,R,V,U,O;g&&p.addClass(\\\"highcharts-\\\"+g);P=u;R=function(){return(n||0)%2/2};V=function(){var a=M.element.style,k={};I=(void 0===H||void 0===h||r)&&t(M.textStr)&&M.getBBox();p.width=(H||I.width||0)+2*m+A;p.height=(h||I.height||0)+2*m;x=m+v.fontMetrics(a&&a.fontSize,M).b;P&&(C||(p.box=C=v.symbols[b]||u?v.symbol(b):v.rect(),C.addClass((\\\"button\\\"===\\ng?\\\"\\\":\\\"highcharts-label-box\\\")+(g?\\\" highcharts-\\\"+g+\\\"-box\\\":\\\"\\\")),C.add(p),a=R(),k.x=a,k.y=(G?-x:0)+a),k.width=Math.round(p.width),k.height=Math.round(p.height),C.attr(d(k,N)),N={})};U=function(){var a=A+m,k;k=G?0:x;t(H)&&I&&(\\\"center\\\"===r||\\\"right\\\"===r)&&(a+={center:.5,right:1}[r]*(H-I.width));if(a!==M.x||k!==M.y)M.attr(\\\"x\\\",a),void 0!==k&&M.attr(\\\"y\\\",k);M.x=a;M.y=k};O=function(a,k){C?C.attr(a,k):N[a]=k};p.onAdd=function(){M.add(p);p.attr({text:k||0===k?k:\\\"\\\",x:c,y:l});C&&t(q)&&p.attr({anchorX:q,anchorY:f})};\\np.widthSetter=function(k){H=a.isNumber(k)?k:null};p.heightSetter=function(a){h=a};p[\\\"text-alignSetter\\\"]=function(a){r=a};p.paddingSetter=function(a){t(a)&&a!==m&&(m=p.padding=a,U())};p.paddingLeftSetter=function(a){t(a)&&a!==A&&(A=a,U())};p.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==J&&(J=a,I&&p.attr({x:K}))};p.textSetter=function(a){void 0!==a&&M.textSetter(a);V();U()};p[\\\"stroke-widthSetter\\\"]=function(a,k){a&&(P=!0);n=this[\\\"stroke-width\\\"]=a;O(k,a)};p.strokeSetter=p.fillSetter=p.rSetter=\\nfunction(a,k){\\\"fill\\\"===k&&a&&(P=!0);O(k,a)};p.anchorXSetter=function(a,k){q=p.anchorX=a;O(k,Math.round(a)-R()-K)};p.anchorYSetter=function(a,k){f=p.anchorY=a;O(k,a-Q)};p.xSetter=function(a){p.x=a;J&&(a-=J*((H||I.width)+2*m));K=Math.round(a);p.attr(\\\"translateX\\\",K)};p.ySetter=function(a){Q=p.y=Math.round(a);p.attr(\\\"translateY\\\",Q)};var B=p.css;return d(p,{css:function(a){if(a){var k={};a=y(a);e(p.textProps,function(c){void 0!==a[c]&&(k[c]=a[c],delete a[c])});M.css(k)}return B.call(p,a)},getBBox:function(){return{width:I.width+\\n2*m,height:I.height+2*m,x:I.x-m,y:I.y-m}},shadow:function(a){a&&(V(),C&&C.shadow(a));return p},destroy:function(){z(p.element,\\\"mouseenter\\\");z(p.element,\\\"mouseleave\\\");M&&(M=M.destroy());C&&(C=C.destroy());E.prototype.destroy.call(p);p=v=V=U=O=null}})}});a.Renderer=B})(L);(function(a){var E=a.attr,B=a.createElement,F=a.css,D=a.defined,n=a.each,h=a.extend,u=a.isFirefox,r=a.isMS,x=a.isWebKit,t=a.pInt,m=a.SVGRenderer,f=a.win,g=a.wrap;h(a.SVGElement.prototype,{htmlCss:function(a){var d=this.element;if(d=\\na&&\\\"SPAN\\\"===d.tagName&&a.width)delete a.width,this.textWidth=d,this.updateTransform();a&&\\\"ellipsis\\\"===a.textOverflow&&(a.whiteSpace=\\\"nowrap\\\",a.overflow=\\\"hidden\\\");this.styles=h(this.styles,a);F(this.element,a);return this},htmlGetBBox:function(){var a=this.element;\\\"text\\\"===a.nodeName&&(a.style.position=\\\"absolute\\\");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,d=this.element,f=this.translateX||0,b=this.translateY||\\n0,g=this.x||0,v=this.y||0,m=this.textAlign||\\\"left\\\",q={left:0,center:.5,right:1}[m],J=this.styles;F(d,{marginLeft:f,marginTop:b});this.shadows&&n(this.shadows,function(a){F(a,{marginLeft:f+1,marginTop:b+1})});this.inverted&&n(d.childNodes,function(c){a.invertChild(c,d)});if(\\\"SPAN\\\"===d.tagName){var c=this.rotation,w=t(this.textWidth),K=J&&J.whiteSpace,y=[c,m,d.innerHTML,this.textWidth,this.textAlign].join();y!==this.cTT&&(J=a.fontMetrics(d.style.fontSize).b,D(c)&&this.setSpanRotation(c,q,J),F(d,{width:\\\"\\\",\\nwhiteSpace:K||\\\"nowrap\\\"}),d.offsetWidth>w&&/[ \\\\-]/.test(d.textContent||d.innerText)&&F(d,{width:w+\\\"px\\\",display:\\\"block\\\",whiteSpace:K||\\\"normal\\\"}),this.getSpanCorrection(d.offsetWidth,J,q,c,m));F(d,{left:g+(this.xCorr||0)+\\\"px\\\",top:v+(this.yCorr||0)+\\\"px\\\"});x&&(J=d.offsetHeight);this.cTT=y}}else this.alignOnAdd=!0},setSpanRotation:function(a,d,p){var b={},e=r?\\\"-ms-transform\\\":x?\\\"-webkit-transform\\\":u?\\\"MozTransform\\\":f.opera?\\\"-o-transform\\\":\\\"\\\";b[e]=b.transform=\\\"rotate(\\\"+a+\\\"deg)\\\";b[e+(u?\\\"Origin\\\":\\\"-origin\\\")]=\\nb.transformOrigin=100*d+\\\"% \\\"+p+\\\"px\\\";F(this.element,b)},getSpanCorrection:function(a,d,f){this.xCorr=-a*f;this.yCorr=-d}});h(m.prototype,{html:function(a,d,f){var b=this.createElement(\\\"span\\\"),e=b.element,p=b.renderer,m=p.isSVG,q=function(a,c){n([\\\"opacity\\\",\\\"visibility\\\"],function(b){g(a,b+\\\"Setter\\\",function(a,b,d,l){a.call(this,b,d,l);c[d]=b})})};b.textSetter=function(a){a!==e.innerHTML&&delete this.bBox;e.innerHTML=this.textStr=a;b.htmlUpdateTransform()};m&&q(b,b.element.style);b.xSetter=b.ySetter=b.alignSetter=\\nb.rotationSetter=function(a,c){\\\"align\\\"===c&&(c=\\\"textAlign\\\");b[c]=a;b.htmlUpdateTransform()};b.attr({text:a,x:Math.round(d),y:Math.round(f)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:\\\"absolute\\\"});e.style.whiteSpace=\\\"nowrap\\\";b.css=b.htmlCss;m&&(b.add=function(a){var c,d=p.box.parentNode,f=[];if(this.parentGroup=a){if(c=a.div,!c){for(;a;)f.push(a),a=a.parentGroup;n(f.reverse(),function(a){var e,l=E(a.element,\\\"class\\\");l&&(l={className:l});c=a.div=a.div||B(\\\"div\\\",l,{position:\\\"absolute\\\",\\nleft:(a.translateX||0)+\\\"px\\\",top:(a.translateY||0)+\\\"px\\\",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},c||d);e=c.style;h(a,{on:function(){b.on.apply({element:f[0].div},arguments);return a},translateXSetter:function(c,k){e.left=c+\\\"px\\\";a[k]=c;a.doTransform=!0},translateYSetter:function(c,k){e.top=c+\\\"px\\\";a[k]=c;a.doTransform=!0}});q(a,e)})}}else c=d;c.appendChild(e);b.added=!0;b.alignOnAdd&&b.htmlUpdateTransform();return b});return b}})})(L);(function(a){var E,B,F=\\na.createElement,D=a.css,n=a.defined,h=a.deg2rad,u=a.discardElement,r=a.doc,x=a.each,t=a.erase,m=a.extend;E=a.extendClass;var f=a.isArray,g=a.isNumber,e=a.isObject,d=a.merge;B=a.noop;var p=a.pick,b=a.pInt,A=a.SVGElement,v=a.SVGRenderer,H=a.win;a.svg||(B={docMode8:r&&8===r.documentMode,init:function(a,b){var c=[\\\"\\\\x3c\\\",b,' filled\\\\x3d\\\"f\\\" stroked\\\\x3d\\\"f\\\"'],d=[\\\"position: \\\",\\\"absolute\\\",\\\";\\\"],q=\\\"div\\\"===b;(\\\"shape\\\"===b||q)&&d.push(\\\"left:0;top:0;width:1px;height:1px;\\\");d.push(\\\"visibility: \\\",q?\\\"hidden\\\":\\\"visible\\\");\\nc.push(' style\\\\x3d\\\"',d.join(\\\"\\\"),'\\\"/\\\\x3e');b&&(c=q||\\\"span\\\"===b||\\\"img\\\"===b?c.join(\\\"\\\"):a.prepVML(c),this.element=F(c));this.renderer=a},add:function(a){var b=this.renderer,c=this.element,d=b.box,q=a&&a.inverted,d=a?a.element||a:d;a&&(this.parentGroup=a);q&&b.invertChild(c,d);d.appendChild(c);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr(\\\"class\\\",this.className);return this},updateTransform:A.prototype.htmlUpdateTransform,\\nsetSpanRotation:function(){var a=this.rotation,b=Math.cos(a*h),c=Math.sin(a*h);D(this.element,{filter:a?[\\\"progid:DXImageTransform.Microsoft.Matrix(M11\\\\x3d\\\",b,\\\", M12\\\\x3d\\\",-c,\\\", M21\\\\x3d\\\",c,\\\", M22\\\\x3d\\\",b,\\\", sizingMethod\\\\x3d'auto expand')\\\"].join(\\\"\\\"):\\\"none\\\"})},getSpanCorrection:function(a,b,c,d,e){var q=d?Math.cos(d*h):1,f=d?Math.sin(d*h):0,l=p(this.elemHeight,this.element.offsetHeight),w;this.xCorr=0>q&&-a;this.yCorr=0>f&&-l;w=0>q*f;this.xCorr+=f*b*(w?1-c:c);this.yCorr-=q*b*(d?w?c:1-c:1);e&&\\\"left\\\"!==\\ne&&(this.xCorr-=a*c*(0>q?-1:1),d&&(this.yCorr-=l*c*(0>f?-1:1)),D(this.element,{textAlign:e}))},pathToVML:function(a){for(var b=a.length,c=[];b--;)g(a[b])?c[b]=Math.round(10*a[b])-5:\\\"Z\\\"===a[b]?c[b]=\\\"x\\\":(c[b]=a[b],!a.isArc||\\\"wa\\\"!==a[b]&&\\\"at\\\"!==a[b]||(c[b+5]===c[b+7]&&(c[b+7]+=a[b+7]>a[b+5]?1:-1),c[b+6]===c[b+8]&&(c[b+8]+=a[b+8]>a[b+6]?1:-1)));return c.join(\\\" \\\")||\\\"x\\\"},clip:function(a){var b=this,c;a?(c=a.members,t(c,b),c.push(b),b.destroyClip=function(){t(c,b)},a=a.getCSS(b)):(b.destroyClip&&b.destroyClip(),\\na={clip:b.docMode8?\\\"inherit\\\":\\\"rect(auto)\\\"});return b.css(a)},css:A.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&u(a)},destroy:function(){this.destroyClip&&this.destroyClip();return A.prototype.destroy.apply(this)},on:function(a,b){this.element[\\\"on\\\"+a]=function(){var a=H.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,d){var c;a=a.split(/[ ,]/);c=a.length;if(9===c||11===c)a[c-4]=a[c-2]=b(a[c-2])-10*d;return a.join(\\\" \\\")},shadow:function(a,d,c){var e=[],q,f=this.element,\\ng=this.renderer,l,v=f.style,k,z=f.path,m,M,A,J;z&&\\\"string\\\"!==typeof z.value&&(z=\\\"x\\\");M=z;if(a){A=p(a.width,3);J=(a.opacity||.15)/A;for(q=1;3>=q;q++)m=2*A+1-2*q,c&&(M=this.cutOffPath(z.value,m+.5)),k=['\\\\x3cshape isShadow\\\\x3d\\\"true\\\" strokeweight\\\\x3d\\\"',m,'\\\" filled\\\\x3d\\\"false\\\" path\\\\x3d\\\"',M,'\\\" coordsize\\\\x3d\\\"10 10\\\" style\\\\x3d\\\"',f.style.cssText,'\\\" /\\\\x3e'],l=F(g.prepVML(k),null,{left:b(v.left)+p(a.offsetX,1),top:b(v.top)+p(a.offsetY,1)}),c&&(l.cutOff=m+1),k=['\\\\x3cstroke color\\\\x3d\\\"',a.color||\\\"#000000\\\",'\\\" opacity\\\\x3d\\\"',\\nJ*q,'\\\"/\\\\x3e'],F(g.prepVML(k),null,null,l),d?d.element.appendChild(l):f.parentNode.insertBefore(l,f),e.push(l);this.shadows=e}return this},updateShadows:B,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,c){(c.getElementsByTagName(\\\"stroke\\\")[0]||F(this.renderer.prepVML([\\\"\\\\x3cstroke/\\\\x3e\\\"]),null,null,c))[b]=a||\\\"solid\\\";this[b]=a},dSetter:function(a,b,c){var d=this.shadows;\\na=a||[];this.d=a.join&&a.join(\\\" \\\");c.path=a=this.pathToVML(a);if(d)for(c=d.length;c--;)d[c].path=d[c].cutOff?this.cutOffPath(a,d[c].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,c){var d=c.nodeName;\\\"SPAN\\\"===d?c.style.color=a:\\\"IMG\\\"!==d&&(c.filled=\\\"none\\\"!==a,this.setAttr(\\\"fillcolor\\\",this.renderer.color(a,c,b,this)))},\\\"fill-opacitySetter\\\":function(a,b,c){F(this.renderer.prepVML([\\\"\\\\x3c\\\",b.split(\\\"-\\\")[0],' opacity\\\\x3d\\\"',a,'\\\"/\\\\x3e']),null,null,c)},opacitySetter:B,rotationSetter:function(a,b,c){c=\\nc.style;this[b]=c[b]=a;c.left=-Math.round(Math.sin(a*h)+1)+\\\"px\\\";c.top=Math.round(Math.cos(a*h))+\\\"px\\\"},strokeSetter:function(a,b,c){this.setAttr(\\\"strokecolor\\\",this.renderer.color(a,c,b,this))},\\\"stroke-widthSetter\\\":function(a,b,c){c.stroked=!!a;this[b]=a;g(a)&&(a+=\\\"px\\\");this.setAttr(\\\"strokeweight\\\",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,c){\\\"inherit\\\"===a&&(a=\\\"visible\\\");this.shadows&&x(this.shadows,function(c){c.style[b]=a});\\\"DIV\\\"===c.nodeName&&(a=\\\"hidden\\\"===a?\\\"-999em\\\":\\n0,this.docMode8||(c.style[b]=a?\\\"visible\\\":\\\"hidden\\\"),b=\\\"top\\\");c.style[b]=a},xSetter:function(a,b,c){this[b]=a;\\\"x\\\"===b?b=\\\"left\\\":\\\"y\\\"===b&&(b=\\\"top\\\");this.updateClipping?(this[b]=a,this.updateClipping()):c.style[b]=a},zIndexSetter:function(a,b,c){c.style[b]=a}},B[\\\"stroke-opacitySetter\\\"]=B[\\\"fill-opacitySetter\\\"],a.VMLElement=B=E(A,B),B.prototype.ySetter=B.prototype.widthSetter=B.prototype.heightSetter=B.prototype.xSetter,B={Element:B,isIE8:-1J[0]&&b.push([1,J[1]]);x(b,function(k,c){q.test(k[1])?(y=a.color(k[1]),z=y.get(\\\"rgb\\\"),g=y.get(\\\"a\\\")):(z=k[1],g=1);r.push(100*k[0]+\\\"% \\\"+z);c?(A=g,C=z):(m=g,H=z)});if(\\\"fill\\\"===c)if(\\\"gradient\\\"===p)c=v.x1||v[0]||0,b=v.y1||v[1]||0,w=v.x2||v[2]||0,v=v.y2||v[3]||0,h='angle\\\\x3d\\\"'+(90-180*Math.atan((v-b)/(w-c))/Math.PI)+'\\\"',n();else{var k=v.r,t=2*k,u=2*k,B=v.cx,E=v.cy,D=d.radialReference,S,k=function(){D&&(S=e.getBBox(),B+=(D[0]-\\nS.x)/S.width-.5,E+=(D[1]-S.y)/S.height-.5,t*=D[2]/S.width,u*=D[2]/S.height);h='src\\\\x3d\\\"'+a.getOptions().global.VMLRadialGradientURL+'\\\" size\\\\x3d\\\"'+t+\\\",\\\"+u+'\\\" origin\\\\x3d\\\"0.5,0.5\\\" position\\\\x3d\\\"'+B+\\\",\\\"+E+'\\\" color2\\\\x3d\\\"'+H+'\\\" ';n()};e.added?k():e.onAdd=k;k=C}else k=z}else q.test(b)&&\\\"IMG\\\"!==d.tagName?(y=a.color(b),e[c+\\\"-opacitySetter\\\"](y.get(\\\"a\\\"),c,d),k=y.get(\\\"rgb\\\")):(k=d.getElementsByTagName(c),k.length&&(k[0].opacity=1,k[0].type=\\\"solid\\\"),k=b);return k},prepVML:function(a){var b=this.isIE8;a=a.join(\\\"\\\");\\nb?(a=a.replace(\\\"/\\\\x3e\\\",' xmlns\\\\x3d\\\"urn:schemas-microsoft-com:vml\\\" /\\\\x3e'),a=-1===a.indexOf('style\\\\x3d\\\"')?a.replace(\\\"/\\\\x3e\\\",' style\\\\x3d\\\"display:inline-block;behavior:url(#default#VML);\\\" /\\\\x3e'):a.replace('style\\\\x3d\\\"','style\\\\x3d\\\"display:inline-block;behavior:url(#default#VML);')):a=a.replace(\\\"\\\\x3c\\\",\\\"\\\\x3chcv:\\\");return a},text:v.prototype.html,path:function(a){var b={coordsize:\\\"10 10\\\"};f(a)?b.d=a:e(a)&&m(b,a);return this.createElement(\\\"shape\\\").attr(b)},circle:function(a,b,c){var d=this.symbol(\\\"circle\\\");\\ne(a)&&(c=a.r,b=a.y,a=a.x);d.isCircle=!0;d.r=c;return d.attr({x:a,y:b})},g:function(a){var b;a&&(b={className:\\\"highcharts-\\\"+a,\\\"class\\\":\\\"highcharts-\\\"+a});return this.createElement(\\\"div\\\").attr(b)},image:function(a,b,c,d,e){var f=this.createElement(\\\"img\\\").attr({src:a});1d&&n-p*bf&&(q=Math.round((m-n)/Math.cos(d*u)));else if(m=n+(1-p)*b,n-p*bf&&(v=f-a.x+v*p,H=-1),v=Math.min(A,v),vv||r.autoRotation&&(e.styles||\\n{}).width)q=v;q&&(J.width=q,(r.options.labels.style||{}).textOverflow||(J.textOverflow=\\\"ellipsis\\\"),e.css(J))},getPosition:function(a,h,n,m){var f=this.axis,g=f.chart,e=m&&g.oldChartHeight||g.chartHeight;return{x:a?f.translate(h+n,null,null,m)+f.transB:f.left+f.offset+(f.opposite?(m&&g.oldChartWidth||g.chartWidth)-f.right-f.left:0),y:a?e-f.bottom+f.offset-(f.opposite?f.height:0):e-f.translate(h+n,null,null,m)-f.transB}},getLabelPosition:function(a,h,n,m,f,g,e,d){var p=this.axis,b=p.transA,A=p.reversed,\\nv=p.staggerLines,H=p.tickRotCorr||{x:0,y:0},q=f.y;B(q)||(q=0===p.side?n.rotation?-8:-n.getBBox().height:2===p.side?H.y+8:Math.cos(n.rotation*u)*(H.y-n.getBBox(!1,0).height/2));a=a+f.x+H.x-(g&&m?g*b*(A?-1:1):0);h=h+q-(g&&!m?g*b*(A?1:-1):0);v&&(n=e/(d||1)%v,p.opposite&&(n=v-n-1),h+=p.labelOffset/v*n);return{x:a,y:Math.round(h)}},getMarkPath:function(a,h,n,m,f,g){return g.crispLine([\\\"M\\\",a,h,\\\"L\\\",a+(f?0:-n),h+(f?n:0)],m)},renderGridLine:function(a,h,n){var m=this.axis,f=m.options,g=this.gridLine,e={},\\nd=this.pos,p=this.type,b=m.tickmarkOffset,A=m.chart.renderer,v=p?p+\\\"Grid\\\":\\\"grid\\\",H=f[v+\\\"LineWidth\\\"],q=f[v+\\\"LineColor\\\"],f=f[v+\\\"LineDashStyle\\\"];g||(e.stroke=q,e[\\\"stroke-width\\\"]=H,f&&(e.dashstyle=f),p||(e.zIndex=1),a&&(e.opacity=0),this.gridLine=g=A.path().attr(e).addClass(\\\"highcharts-\\\"+(p?p+\\\"-\\\":\\\"\\\")+\\\"grid-line\\\").add(m.gridGroup));if(!a&&g&&(a=m.getPlotLinePath(d+b,g.strokeWidth()*n,a,!0)))g[this.isNew?\\\"attr\\\":\\\"animate\\\"]({d:a,opacity:h})},renderMark:function(a,n,t){var m=this.axis,f=m.options,g=m.chart.renderer,\\ne=this.type,d=e?e+\\\"Tick\\\":\\\"tick\\\",p=m.tickSize(d),b=this.mark,A=!b,v=a.x;a=a.y;var H=h(f[d+\\\"Width\\\"],!e&&m.isXAxis?1:0),f=f[d+\\\"Color\\\"];p&&(m.opposite&&(p[0]=-p[0]),A&&(this.mark=b=g.path().addClass(\\\"highcharts-\\\"+(e?e+\\\"-\\\":\\\"\\\")+\\\"tick\\\").add(m.axisGroup),b.attr({stroke:f,\\\"stroke-width\\\":H})),b[A?\\\"attr\\\":\\\"animate\\\"]({d:this.getMarkPath(v,a,p[0],b.strokeWidth()*t,m.horiz,g),opacity:n}))},renderLabel:function(a,n,t,m){var f=this.axis,g=f.horiz,e=f.options,d=this.label,p=e.labels,b=p.step,A=f.tickmarkOffset,v=!0,\\nH=a.x;a=a.y;d&&D(H)&&(d.xy=a=this.getLabelPosition(H,a,d,g,p,A,m,b),this.isFirst&&!this.isLast&&!h(e.showFirstLabel,1)||this.isLast&&!this.isFirst&&!h(e.showLastLabel,1)?v=!1:!g||f.isRadial||p.step||p.rotation||n||0===t||this.handleOverflow(a),b&&m%b&&(v=!1),v&&D(a.y)?(a.opacity=t,d[this.isNewLabel?\\\"attr\\\":\\\"animate\\\"](a),this.isNewLabel=!1):(d.attr(\\\"y\\\",-9999),this.isNewLabel=!0),this.isNew=!1)},render:function(a,n,t){var m=this.axis,f=m.horiz,g=this.getPosition(f,this.pos,m.tickmarkOffset,n),e=g.x,\\nd=g.y,m=f&&e===m.pos+m.len||!f&&d===m.pos?-1:1;t=h(t,1);this.isActive=!0;this.renderGridLine(n,t,m);this.renderMark(g,t,m);this.renderLabel(g,n,t,a)},destroy:function(){F(this,this.axis)}}})(L);var T=function(a){var E=a.addEvent,B=a.animObject,F=a.arrayMax,D=a.arrayMin,n=a.color,h=a.correctFloat,u=a.defaultOptions,r=a.defined,x=a.deg2rad,t=a.destroyObjectProperties,m=a.each,f=a.extend,g=a.fireEvent,e=a.format,d=a.getMagnitude,p=a.grep,b=a.inArray,A=a.isArray,v=a.isNumber,H=a.isString,q=a.merge,J=\\na.normalizeTickInterval,c=a.objectEach,w=a.pick,K=a.removeEvent,y=a.splat,G=a.syncTimeout,l=a.Tick,I=function(){this.init.apply(this,arguments)};a.extend(I.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:\\\"%H:%M:%S.%L\\\",second:\\\"%H:%M:%S\\\",minute:\\\"%H:%M\\\",hour:\\\"%H:%M\\\",day:\\\"%e. %b\\\",week:\\\"%e. %b\\\",month:\\\"%b '%y\\\",year:\\\"%Y\\\"},endOnTick:!1,labels:{enabled:!0,style:{color:\\\"#666666\\\",cursor:\\\"default\\\",fontSize:\\\"11px\\\"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:\\\"outside\\\",startOfWeek:1,\\nstartOnTick:!1,tickLength:10,tickmarkPlacement:\\\"between\\\",tickPixelInterval:100,tickPosition:\\\"outside\\\",title:{align:\\\"middle\\\",style:{color:\\\"#666666\\\"}},type:\\\"linear\\\",minorGridLineColor:\\\"#f2f2f2\\\",minorGridLineWidth:1,minorTickColor:\\\"#999999\\\",lineColor:\\\"#ccd6eb\\\",lineWidth:1,gridLineColor:\\\"#e6e6e6\\\",tickColor:\\\"#ccd6eb\\\"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:\\\"Values\\\"},stackLabels:{enabled:!1,\\nformatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:\\\"11px\\\",fontWeight:\\\"bold\\\",color:\\\"#000000\\\",textOutline:\\\"1px contrast\\\"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,z){var k=z.isX,l=this;l.chart=a;l.horiz=\\na.inverted&&!l.isZAxis?!k:k;l.isXAxis=k;l.coll=l.coll||(k?\\\"xAxis\\\":\\\"yAxis\\\");l.opposite=z.opposite;l.side=z.side||(l.horiz?l.opposite?0:2:l.opposite?1:3);l.setOptions(z);var d=this.options,e=d.type;l.labelFormatter=d.labels.formatter||l.defaultLabelFormatter;l.userOptions=z;l.minPixelPadding=0;l.reversed=d.reversed;l.visible=!1!==d.visible;l.zoomEnabled=!1!==d.zoomEnabled;l.hasNames=\\\"category\\\"===e||!0===d.categories;l.categories=d.categories||l.hasNames;l.names=l.names||[];l.plotLinesAndBandsGroups=\\n{};l.isLog=\\\"logarithmic\\\"===e;l.isDatetimeAxis=\\\"datetime\\\"===e;l.positiveValuesOnly=l.isLog&&!l.allowNegativeLog;l.isLinked=r(d.linkedTo);l.ticks={};l.labelEdge=[];l.minorTicks={};l.plotLinesAndBands=[];l.alternateBands={};l.len=0;l.minRange=l.userMinRange=d.minRange||d.maxZoom;l.range=d.range;l.offset=d.offset||0;l.stacks={};l.oldStacks={};l.stacksTouched=0;l.max=null;l.min=null;l.crosshair=w(d.crosshair,y(a.options.tooltip.crosshairs)[k?0:1],!1);z=l.options.events;-1===b(l,a.axes)&&(k?a.axes.splice(a.xAxis.length,\\n0,l):a.axes.push(l),a[l.coll].push(l));l.series=l.series||[];a.inverted&&!l.isZAxis&&k&&void 0===l.reversed&&(l.reversed=!0);c(z,function(a,k){E(l,k,a)});l.lin2log=d.linearToLogConverter||l.lin2log;l.isLog&&(l.val2lin=l.log2lin,l.lin2val=l.lin2log)},setOptions:function(a){this.options=q(this.defaultOptions,\\\"yAxis\\\"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],q(u[this.coll],a))},\\ndefaultLabelFormatter:function(){var k=this.axis,c=this.value,b=k.categories,l=this.dateTimeLabelFormat,d=u.lang,f=d.numericSymbols,d=d.numericSymbolMagnitude||1E3,y=f&&f.length,p,g=k.options.labels.format,k=k.isLog?Math.abs(c):k.tickInterval;if(g)p=e(g,this);else if(b)p=c;else if(l)p=a.dateFormat(l,c);else if(y&&1E3<=k)for(;y--&&void 0===p;)b=Math.pow(d,y+1),k>=b&&0===10*c%b&&null!==f[y]&&0!==c&&(p=a.numberFormat(c/b,-1)+f[y]);void 0===p&&(p=1E4<=Math.abs(c)?a.numberFormat(c,-1):a.numberFormat(c,\\n-1,void 0,\\\"\\\"));return p},getSeriesExtremes:function(){var a=this,c=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();m(a.series,function(k){if(k.visible||!c.options.chart.ignoreHiddenSeries){var b=k.options,l=b.threshold,z;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=l&&(l=null);if(a.isXAxis)b=k.xData,b.length&&(k=D(b),v(k)||k instanceof Date||(b=p(b,function(a){return v(a)}),k=D(b)),a.dataMin=Math.min(w(a.dataMin,b[0]),\\nk),a.dataMax=Math.max(w(a.dataMax,b[0]),F(b)));else if(k.getExtremes(),z=k.dataMax,k=k.dataMin,r(k)&&r(z)&&(a.dataMin=Math.min(w(a.dataMin,k),k),a.dataMax=Math.max(w(a.dataMax,z),z)),r(l)&&(a.threshold=l),!b.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})},translate:function(a,c,b,l,d,e){var k=this.linkedParent||this,z=1,f=0,y=l?k.oldTransA:k.transA;l=l?k.oldMin:k.min;var p=k.minPixelPadding;d=(k.isOrdinal||k.isBroken||k.isLog&&d)&&k.lin2val;y||(y=k.transA);b&&(z*=-1,f=k.len);k.reversed&&\\n(z*=-1,f-=z*(k.sector||k.len));c?(a=(a*z+f-p)/y+l,d&&(a=k.lin2val(a))):(d&&(a=k.val2lin(a)),a=z*(a-l)*y+f+z*p+(v(e)?y*e:0));return a},toPixels:function(a,c){return this.translate(a,!1,!this.horiz,null,!0)+(c?0:this.pos)},toValue:function(a,c){return this.translate(a-(c?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,c,b,l,d){var k=this.chart,z=this.left,e=this.top,f,y,p=b&&k.oldChartHeight||k.chartHeight,g=b&&k.oldChartWidth||k.chartWidth,q;f=this.transB;var G=function(a,k,c){if(a<\\nk||a>c)l?a=Math.min(Math.max(k,a),c):q=!0;return a};d=w(d,this.translate(a,null,null,b));a=b=Math.round(d+f);f=y=Math.round(p-d-f);v(d)?this.horiz?(f=e,y=p-this.bottom,a=b=G(a,z,z+this.width)):(a=z,b=g-this.right,f=y=G(f,e,e+this.height)):q=!0;return q&&!l?null:k.renderer.crispLine([\\\"M\\\",a,f,\\\"L\\\",b,y],c||1)},getLinearTickPositions:function(a,c,b){var k,l=h(Math.floor(c/a)*a);b=h(Math.ceil(b/a)*a);var z=[];if(this.single)return[c];for(c=l;c<=b;){z.push(c);c=h(c+a);if(c===k)break;k=c}return z},getMinorTickPositions:function(){var a=\\nthis,c=a.options,b=a.tickPositions,l=a.minorTickInterval,d=[],e=a.pointRangePadding||0,f=a.min-e,e=a.max+e,y=e-f;if(y&&y/l=this.minRange,v=this.minRange,l=(v-b+c)/2,l=[c-l,w(a.min,c-l)],d&&(l[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),c=F(l),b=[c+v,w(a.max,c+v)],\\nd&&(b[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),b=D(b),b-c=K?(u=K,I=0):c.dataMax<=K&&(x=K,G=0)),c.min=w(B,u,c.dataMin),c.max=w(D,x,c.dataMax));e&&(c.positiveValuesOnly&&!k&&0>=Math.min(c.min,w(c.dataMin,c.min))&&a.error(10,1),c.min=h(f(c.min),15),c.max=h(f(c.max),15));c.range&&r(c.max)&&(c.userMin=c.min=B=Math.max(c.min,c.minFromRange()),c.userMax=D=c.max,c.range=null);g(c,\\\"foundExtremes\\\");c.beforePadding&&\\nc.beforePadding();c.adjustForMinRange();!(n||c.axisPointRange||c.usePercentage||q)&&r(c.min)&&r(c.max)&&(f=c.max-c.min)&&(!r(B)&&I&&(c.min-=f*I),!r(D)&&G&&(c.max+=f*G));v(l.softMin)&&(c.min=Math.min(c.min,l.softMin));v(l.softMax)&&(c.max=Math.max(c.max,l.softMax));v(l.floor)&&(c.min=Math.max(c.min,l.floor));v(l.ceiling)&&(c.max=Math.min(c.max,l.ceiling));t&&r(c.dataMin)&&(K=K||0,!r(B)&&c.min=K?c.min=K:!r(D)&&c.max>K&&c.dataMax<=K&&(c.max=K));c.tickInterval=c.min===c.max||void 0===c.min||\\nvoid 0===c.max?1:q&&!A&&H===c.linkedParent.options.tickPixelInterval?A=c.linkedParent.tickInterval:w(A,this.tickAmount?(c.max-c.min)/Math.max(this.tickAmount-1,1):void 0,n?1:(c.max-c.min)*H/Math.max(c.len,H));p&&!k&&m(c.series,function(a){a.processData(c.min!==c.oldMin||c.max!==c.oldMax)});c.setAxisTranslation(!0);c.beforeSetTickPositions&&c.beforeSetTickPositions();c.postProcessTickInterval&&(c.tickInterval=c.postProcessTickInterval(c.tickInterval));c.pointRange&&!A&&(c.tickInterval=Math.max(c.pointRange,\\nc.tickInterval));k=w(l.minTickInterval,c.isDatetimeAxis&&c.closestPointRange);!A&&c.tickIntervalc.tickInterval&&1E3c.max)),!!this.tickAmount));this.tickAmount||(c.tickInterval=c.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,c,b=a.tickPositions,l=a.tickPositioner,d=a.startOnTick,e=a.endOnTick;this.tickmarkOffset=this.categories&&\\n\\\"between\\\"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval=\\\"auto\\\"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.single=this.min===this.max&&r(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==a.allowDecimals);this.tickPositions=c=b&&b.slice();!c&&(c=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,\\n!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),c.length>this.len&&(c=[c[0],c.pop()]),this.tickPositions=c,l&&(l=l.apply(this,[this.min,this.max])))&&(this.tickPositions=c=l);this.paddedTicks=c.slice(0);this.trimTicks(c,d,e);this.isLinked||(this.single&&(this.min-=.5,this.max+=.5),b||l||this.adjustTickAmount())},trimTicks:function(a,c,b){var k=a[0],l=a[a.length-1],d=this.minPointOffset||0;if(!this.isLinked){if(c&&\\n-Infinity!==k)this.min=k;else for(;this.min-d>a[0];)a.shift();if(b)this.max=l;else for(;this.max+dc&&(this.finalTickAmt=c,c=5);this.tickAmount=c},adjustTickAmount:function(){var a=this.tickInterval,c=this.tickPositions,b=this.tickAmount,l=this.finalTickAmt,d=c&&c.length;if(db&&(this.tickInterval*=2,this.setTickPositions());\\nif(r(l)){for(a=b=c.length;a--;)(3===l&&1===a%2||2>=l&&0l&&(a=l)),r(b)&&(cl&&(c=l))),this.displayBtn=void 0!==a||void 0!==c,this.setExtremes(a,c,!1,void 0,{trigger:\\\"zoom\\\"});return!0},setAxisSize:function(){var a=this.chart,c=this.options,b=c.offsets||[0,0,0,0],l=this.horiz,d=w(c.width,a.plotWidth-b[3]+b[1]),e=w(c.height,a.plotHeight-b[0]+b[2]),f=w(c.top,a.plotTop+b[0]),c=w(c.left,a.plotLeft+b[3]),b=/%$/;b.test(e)&&(e=\\nMath.round(parseFloat(e)/100*a.plotHeight));b.test(f)&&(f=Math.round(parseFloat(f)/100*a.plotHeight+a.plotTop));this.left=c;this.top=f;this.width=d;this.height=e;this.bottom=a.chartHeight-e-f;this.right=a.chartWidth-d-c;this.len=Math.max(l?d:e,0);this.pos=l?c:f},getExtremes:function(){var a=this.isLog,c=this.lin2log;return{min:a?h(c(this.min)):this.min,max:a?h(c(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var c=\\nthis.isLog,k=this.lin2log,b=c?k(this.min):this.min,c=c?k(this.max):this.max;null===a?a=b:b>a?a=b:ca?\\\"right\\\":195a?\\\"left\\\":\\\"center\\\"},tickSize:function(a){var c=this.options,k=c[a+\\\"Length\\\"],b=w(c[a+\\\"Width\\\"],\\\"tick\\\"===a&&this.isXAxis?1:0);if(b&&k)return\\\"inside\\\"===c[a+\\\"Position\\\"]&&(k=-k),[k,b]},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&\\nthis.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=this.options.labels,c=this.horiz,b=this.tickInterval,l=b,d=this.len/(((this.categories?1:0)+this.max-this.min)/b),e,f=a.rotation,y=this.labelMetrics(),p,g=Number.MAX_VALUE,v,q=function(a){a/=d||1;a=1=a)p=q(Math.abs(y.h/Math.sin(x*a))),c=p+\\nMath.abs(a/360),c(b.step||0)&&!b.rotation&&(this.staggerLines||1)*this.len/l||!c&&(d&&d-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,c=a.renderer,b=this.tickPositions,l=this.ticks,d=this.options.labels,e=this.horiz,\\nf=this.getSlotWidth(),y=Math.max(1,Math.round(f-2*(d.padding||5))),p={},g=this.labelMetrics(),v=d.style&&d.style.textOverflow,G,w=0,I,A;H(d.rotation)||(p.rotation=d.rotation||0);m(b,function(a){(a=l[a])&&a.labelLength>w&&(w=a.labelLength)});this.maxLabelLength=w;if(this.autoRotation)w>y&&w>g.h?p.rotation=this.labelRotation:this.labelRotation=0;else if(f&&(G={width:y+\\\"px\\\"},!v))for(G.textOverflow=\\\"clip\\\",I=b.length;!e&&I--;)if(A=b[I],y=l[A].label)y.styles&&\\\"ellipsis\\\"===y.styles.textOverflow?y.css({textOverflow:\\\"clip\\\"}):\\nl[A].labelLength>f&&y.css({width:f+\\\"px\\\"}),y.getBBox().height>this.len/b.length-(g.h-g.f)&&(y.specCss={textOverflow:\\\"ellipsis\\\"});p.rotation&&(G={width:(w>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+\\\"px\\\"},v||(G.textOverflow=\\\"ellipsis\\\"));if(this.labelAlign=d.align||this.autoLabelAlign(this.labelRotation))p.align=this.labelAlign;m(b,function(a){var c=(a=l[a])&&a.label;c&&(c.attr(p),G&&c.css(q(G,c.specCss)),delete c.specCss,a.rotation=p.rotation)});this.tickRotCorr=c.rotCorr(g.b,this.labelRotation||\\n0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||r(this.min)&&r(this.max)&&!!this.tickPositions},addTitle:function(a){var c=this.chart.renderer,k=this.horiz,b=this.opposite,l=this.options.title,d;this.axisTitle||((d=l.textAlign)||(d=(k?{low:\\\"left\\\",middle:\\\"center\\\",high:\\\"right\\\"}:{low:b?\\\"right\\\":\\\"left\\\",middle:\\\"center\\\",high:b?\\\"left\\\":\\\"right\\\"})[l.align]),this.axisTitle=c.text(l.text,0,0,l.useHTML).attr({zIndex:7,rotation:l.rotation||0,align:d}).addClass(\\\"highcharts-axis-title\\\").css(l.style).add(this.axisGroup),\\nthis.axisTitle.isNew=!0);this.axisTitle[a?\\\"show\\\":\\\"hide\\\"](!0)},generateTick:function(a){var c=this.ticks;c[a]?c[a].addLabel():c[a]=new l(this,a)},getOffset:function(){var a=this,b=a.chart,l=b.renderer,d=a.options,e=a.tickPositions,f=a.ticks,y=a.horiz,p=a.side,g=b.inverted&&!a.isZAxis?[1,0,3,2][p]:p,v,q,G=0,I,A=0,h=d.title,H=d.labels,n=0,K=b.axisOffset,b=b.clipOffset,J=[-1,1,1,-1][p],t=d.className,u=a.axisParent,x=this.tickSize(\\\"tick\\\");v=a.hasData();a.showAxis=q=v||w(d.showEmpty,!0);a.staggerLines=\\na.horiz&&H.staggerLines;a.axisGroup||(a.gridGroup=l.g(\\\"grid\\\").attr({zIndex:d.gridZIndex||1}).addClass(\\\"highcharts-\\\"+this.coll.toLowerCase()+\\\"-grid \\\"+(t||\\\"\\\")).add(u),a.axisGroup=l.g(\\\"axis\\\").attr({zIndex:d.zIndex||2}).addClass(\\\"highcharts-\\\"+this.coll.toLowerCase()+\\\" \\\"+(t||\\\"\\\")).add(u),a.labelGroup=l.g(\\\"axis-labels\\\").attr({zIndex:H.zIndex||7}).addClass(\\\"highcharts-\\\"+a.coll.toLowerCase()+\\\"-labels \\\"+(t||\\\"\\\")).add(u));v||a.isLinked?(m(e,function(c,b){a.generateTick(c,b)}),a.renderUnsquish(),!1===H.reserveSpace||\\n0!==p&&2!==p&&{1:\\\"left\\\",3:\\\"right\\\"}[p]!==a.labelAlign&&\\\"center\\\"!==a.labelAlign||m(e,function(a){n=Math.max(f[a].getLabelSize(),n)}),a.staggerLines&&(n*=a.staggerLines,a.labelOffset=n*(a.opposite?-1:1))):c(f,function(a,c){a.destroy();delete f[c]});h&&h.text&&!1!==h.enabled&&(a.addTitle(q),q&&!1!==h.reserveSpace&&(a.titleOffset=G=a.axisTitle.getBBox()[y?\\\"height\\\":\\\"width\\\"],I=h.offset,A=r(I)?0:w(h.margin,y?5:10)));a.renderLine();a.offset=J*w(d.offset,K[p]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};l=0===p?\\n-a.labelMetrics().h:2===p?a.tickRotCorr.y:0;A=Math.abs(n)+A;n&&(A=A-l+J*(y?w(H.y,a.tickRotCorr.y+8*J):H.x));a.axisTitleMargin=w(I,A);K[p]=Math.max(K[p],a.axisTitleMargin+G+J*a.offset,A,v&&e.length&&x?x[0]+J*a.offset:0);e=2*Math.floor(a.axisLine.strokeWidth()/2);0=this.min&&a<=this.max)k[a]||(k[a]=new l(this,a)),d&&k[a].isNew&&k[a].render(c,!0,.1),k[a].render(c)},render:function(){var b=this,d=b.chart,e=b.options,f=b.isLog,y=b.lin2log,p=b.isLinked,g=b.tickPositions,q=b.axisTitle,w=b.ticks,I=b.minorTicks,A=b.alternateBands,h=e.stackLabels,H=e.alternateGridColor,n=b.tickmarkOffset,K=b.axisLine,J=b.showAxis,r=B(d.renderer.globalAnimation),t,u;b.labelEdge.length=0;b.overlap=!1;m([w,I,A],function(a){c(a,function(a){a.isActive=!1})});if(b.hasData()||\\np)b.minorTickInterval&&!b.categories&&m(b.getMinorTickPositions(),function(a){b.renderMinorTick(a)}),g.length&&(m(g,function(a,c){b.renderTick(a,c)}),n&&(0===b.min||b.single)&&(w[-1]||(w[-1]=new l(b,-1,null,!0)),w[-1].render(-1))),H&&m(g,function(c,l){u=void 0!==g[l+1]?g[l+1]+n:b.max-n;0===l%2&&c=f.second?0:w*Math.floor(q.getMilliseconds()/\\nw));if(c>=f.second)q[B.hcSetSeconds](c>=f.minute?0:w*Math.floor(q.getSeconds()/w));if(c>=f.minute)q[B.hcSetMinutes](c>=f.hour?0:w*Math.floor(q[B.hcGetMinutes]()/w));if(c>=f.hour)q[B.hcSetHours](c>=f.day?0:w*Math.floor(q[B.hcGetHours]()/w));if(c>=f.day)q[B.hcSetDate](c>=f.month?1:w*Math.floor(q[B.hcGetDate]()/w));c>=f.month&&(q[B.hcSetMonth](c>=f.year?0:w*Math.floor(q[B.hcGetMonth]()/w)),H=q[B.hcGetFullYear]());if(c>=f.year)q[B.hcSetFullYear](H-H%w);if(c===f.week)q[B.hcSetDate](q[B.hcGetDate]()-q[B.hcGetDay]()+\\nm(p,1));H=q[B.hcGetFullYear]();p=q[B.hcGetMonth]();var y=q[B.hcGetDate](),G=q[B.hcGetHours]();if(B.hcTimezoneOffset||B.hcGetTimezoneOffset)K=(!v||!!B.hcGetTimezoneOffset)&&(d-e>4*f.month||x(e)!==x(d)),q=q.getTime(),q=new B(q+x(q));v=q.getTime();for(e=1;vb.length&&h(b,function(a){0===a%18E5&&\\\"000000000\\\"===F(\\\"%H%M%S%L\\\",a)&&\\n(g[a]=\\\"day\\\")})}b.info=u(a,{higherRanks:g,totalRange:c*w});return b};E.prototype.normalizeTimeTickInterval=function(a,e){var d=e||[[\\\"millisecond\\\",[1,2,5,10,20,25,50,100,200,500]],[\\\"second\\\",[1,2,5,10,15,30]],[\\\"minute\\\",[1,2,5,10,15,30]],[\\\"hour\\\",[1,2,3,4,6,8,12]],[\\\"day\\\",[1,2]],[\\\"week\\\",[1,2]],[\\\"month\\\",[1,2,3,4,6]],[\\\"year\\\",null]];e=d[d.length-1];var p=f[e[0]],b=e[1],g;for(g=0;gu&&(!x||A<=r)&&void 0!==A&&e.push(A),A>r&&(v=!0),A=b;else u=f(u),r=f(r),a=h[x?\\\"minorTickInterval\\\":\\\"tickInterval\\\"],a=n(\\\"auto\\\"===a?null:a,this._minorAutoInterval,h.tickPixelInterval/(x?5:1)*(r-u)/((x?m/this.tickPositions.length:m)||1)),a=D(a,null,B(a)),e=F(this.getLinearTickPositions(a,u,r),g),x||(this._minorAutoInterval=a/5);x||(this.tickInterval=a);return e};E.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};E.prototype.lin2log=function(a){return Math.pow(10,\\na)}})(L);(function(a,E){var B=a.arrayMax,F=a.arrayMin,D=a.defined,n=a.destroyObjectProperties,h=a.each,u=a.erase,r=a.merge,x=a.pick;a.PlotLineOrBand=function(a,m){this.axis=a;m&&(this.options=m,this.id=m.id)};a.PlotLineOrBand.prototype={render:function(){var h=this,m=h.axis,f=m.horiz,g=h.options,e=g.label,d=h.label,p=g.to,b=g.from,A=g.value,v=D(b)&&D(p),H=D(A),q=h.svgElem,n=!q,c=[],w=g.color,K=x(g.zIndex,0),y=g.events,c={\\\"class\\\":\\\"highcharts-plot-\\\"+(v?\\\"band \\\":\\\"line \\\")+(g.className||\\\"\\\")},G={},l=m.chart.renderer,\\nI=v?\\\"bands\\\":\\\"lines\\\",k=m.log2lin;m.isLog&&(b=k(b),p=k(p),A=k(A));H?(c={stroke:w,\\\"stroke-width\\\":g.width},g.dashStyle&&(c.dashstyle=g.dashStyle)):v&&(w&&(c.fill=w),g.borderWidth&&(c.stroke=g.borderColor,c[\\\"stroke-width\\\"]=g.borderWidth));G.zIndex=K;I+=\\\"-\\\"+K;(w=m.plotLinesAndBandsGroups[I])||(m.plotLinesAndBandsGroups[I]=w=l.g(\\\"plot-\\\"+I).attr(G).add());n&&(h.svgElem=q=l.path().attr(c).add(w));if(H)c=m.getPlotLinePath(A,q.strokeWidth());else if(v)c=m.getPlotBandPath(b,p,g);else return;n&&c&&c.length?(q.attr({d:c}),\\ny&&a.objectEach(y,function(a,c){q.on(c,function(a){y[c].apply(h,[a])})})):q&&(c?(q.show(),q.animate({d:c})):(q.hide(),d&&(h.label=d=d.destroy())));e&&D(e.text)&&c&&c.length&&0this.max&&m>this.max;g&&f?(a&&(g.flat=g.toString()===f.toString(),d=0),g.push(e&&f[4]===g[4]?f[4]+d:f[4],e||f[5]!==g[5]?f[5]:f[5]+d,e&&f[1]===g[1]?f[1]+d:f[1],e||f[2]!==g[2]?f[2]:f[2]+d)):g=null;return g},addPlotBand:function(a){return this.addPlotBandOrLine(a,\\\"plotBands\\\")},addPlotLine:function(a){return this.addPlotBandOrLine(a,\\\"plotLines\\\")},addPlotBandOrLine:function(h,m){var f=(new a.PlotLineOrBand(this,h)).render(),g=this.userOptions;f&&(m&&(g[m]=g[m]||[],g[m].push(h)),this.plotLinesAndBands.push(f));\\nreturn f},removePlotBandOrLine:function(a){for(var m=this.plotLinesAndBands,f=this.options,g=this.userOptions,e=m.length;e--;)m[e].id===a&&m[e].destroy();h([f.plotLines||[],g.plotLines||[],f.plotBands||[],g.plotBands||[]],function(d){for(e=d.length;e--;)d[e].id===a&&u(d,d[e])})},removePlotBand:function(a){this.removePlotBandOrLine(a)},removePlotLine:function(a){this.removePlotBandOrLine(a)}})})(L,T);(function(a){var E=a.dateFormat,B=a.each,F=a.extend,D=a.format,n=a.isNumber,h=a.map,u=a.merge,r=a.pick,\\nx=a.splat,t=a.syncTimeout,m=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,g){this.chart=a;this.options=g;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=g.split&&!a.inverted;this.shared=g.shared||this.split},cleanSplit:function(a){B(this.chart.series,function(f){var e=f&&f.tt;e&&(!e.isActive||a?f.tt=e.destroy():e.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,g=this.options;this.label||(this.split?this.label=\\na.g(\\\"tooltip\\\"):(this.label=a.label(\\\"\\\",0,0,g.shape||\\\"callout\\\",null,null,g.useHTML,null,\\\"tooltip\\\").attr({padding:g.padding,r:g.borderRadius}),this.label.attr({fill:g.backgroundColor,\\\"stroke-width\\\":g.borderWidth}).css(g.style).shadow(g.shadow)),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();u(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,u(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&\\n(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,g,e,d){var f=this,b=f.now,m=!1!==f.options.animation&&!f.isHidden&&(1g-m?g:g-m);else if(p)b[a]=Math.max(e,k+m+d>c?k:k+m);else return!1},w=function(a,c,d,k){var l;kc-f?l=!1:b[a]=kc-d/2?c-d-2:k-d/2;return l},K=function(a){var c=h;h=q;q=c;v=a},y=function(){!1!==c.apply(0,h)?!1!==w.apply(0,q)||v||(K(!0),y()):v?b.x=b.y=0:(K(!0),y())};(d.inverted||1y&&(m=!1);a=(c.series&&c.series.yAxis&&c.series.yAxis.pos)+(c.plotY||0);a-=p.plotTop;d.push({target:c.isHeader?p.plotHeight+h:a,rank:c.isHeader?1:0,size:f.tt.getBBox().height+1,point:c,x:y,tt:A})});this.cleanSplit();\\na.distribute(d,p.plotHeight+h);B(d,function(a){var c=a.point,b=c.series;a.tt.attr({visibility:void 0===a.pos?\\\"hidden\\\":\\\"inherit\\\",x:m||c.isHeader?a.x:c.plotX+p.plotLeft+r(v.distance,16),y:a.pos+p.plotTop,anchorX:c.isHeader?c.plotX+p.plotLeft:c.plotX+b.xAxis.pos,anchorY:c.isHeader?a.pos+p.plotTop-15:c.plotY+b.yAxis.pos})})},updatePosition:function(a){var f=this.chart,e=this.getLabel(),e=(this.options.positioner||this.getPosition).call(this,e.width,e.height,a);this.move(Math.round(e.x),Math.round(e.y||\\n0),a.plotX+f.plotLeft,a.plotY+f.plotTop)},getDateFormat:function(a,g,e,d){var f=E(\\\"%m-%d %H:%M:%S.%L\\\",g),b,A,v={millisecond:15,second:12,minute:9,hour:6,day:3},h=\\\"millisecond\\\";for(A in m){if(a===m.week&&+E(\\\"%w\\\",g)===e&&\\\"00:00:00.000\\\"===f.substr(6)){A=\\\"week\\\";break}if(m[A]>a){A=h;break}if(v[A]&&f.substr(v[A])!==\\\"01-01 00:00:00.000\\\".substr(v[A]))break;\\\"week\\\"!==A&&(h=A)}A&&(b=d[A]);return b},getXDateFormat:function(a,g,e){g=g.dateTimeLabelFormats;var d=e&&e.closestPointRange;return(d?this.getDateFormat(d,\\na.x,e.options.startOfWeek,g):g.day)||g.year},tooltipFooterHeaderFormatter:function(a,g){var e=g?\\\"footer\\\":\\\"header\\\";g=a.series;var d=g.tooltipOptions,f=d.xDateFormat,b=g.xAxis,m=b&&\\\"datetime\\\"===b.options.type&&n(a.key),e=d[e+\\\"Format\\\"];m&&!f&&(f=this.getXDateFormat(a,d,b));m&&f&&(e=e.replace(\\\"{point.key}\\\",\\\"{point.key:\\\"+f+\\\"}\\\"));return D(e,{point:a,series:g})},bodyFormatter:function(a){return h(a,function(a){var e=a.series.tooltipOptions;return(e.pointFormatter||a.point.tooltipFormatter).call(a.point,\\ne.pointFormat)})}}})(L);(function(a){var E=a.addEvent,B=a.attr,F=a.charts,D=a.color,n=a.css,h=a.defined,u=a.doc,r=a.each,x=a.extend,t=a.fireEvent,m=a.offset,f=a.pick,g=a.removeEvent,e=a.splat,d=a.Tooltip,p=a.win;a.Pointer=function(a,d){this.init(a,d)};a.Pointer.prototype={init:function(a,e){this.options=e;this.chart=a;this.runChartClick=e.chart.events&&!!e.chart.events.click;this.pinchDown=[];this.lastValidTouch={};d&&e.tooltip.enabled&&(a.tooltip=new d(a,e.tooltip),this.followTouchMove=f(e.tooltip.followTouchMove,\\n!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,d=b.options.chart,e=d.zoomType||\\\"\\\",b=b.inverted;/touch/.test(a.type)&&(e=f(d.pinchType,e));this.zoomX=a=/x/.test(e);this.zoomY=e=/y/.test(e);this.zoomHor=a&&!b||e&&b;this.zoomVert=e&&!b||a&&b;this.hasZoom=a||e},normalize:function(a,d){var b,e;a=a||p.event;a.target||(a.target=a.srcElement);e=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;d||(this.chartPosition=d=m(this.chart.container));void 0===e.pageX?(b=Math.max(a.x,\\na.clientX-d.left),d=a.y):(b=e.pageX-d.left,d=e.pageY-d.top);return x(a,{chartX:Math.round(b),chartY:Math.round(d)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};r(this.chart.axes,function(d){b[d.isXAxis?\\\"xAxis\\\":\\\"yAxis\\\"].push({axis:d,value:d.toValue(a[d.horiz?\\\"chartX\\\":\\\"chartY\\\"])})});return b},getKDPoints:function(a,d,e){var b=[],p,g,c;r(a,function(a){p=a.noSharedTooltip&&d;g=!d&&a.directTouch;a.visible&&!g&&f(a.options.enableMouseTracking,!0)&&(c=a.searchPoint(e,!p&&0>a.options.findNearestPointBy.indexOf(\\\"y\\\")))&&\\nc.series&&b.push(c)});b.sort(function(a,c){var b=a.distX-c.distX,e=a.dist-c.dist,l=(c.series.group&&c.series.group.zIndex)-(a.series.group&&a.series.group.zIndex);return 0!==b&&d?b:0!==e?e:0!==l?l:a.series.index>c.series.index?-1:1});if(d&&b[0]&&!b[0].series.noSharedTooltip)for(a=b.length;a--;)(b[a].x!==b[0].x||b[a].series.noSharedTooltip)&&b.splice(a,1);return b},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,d){var b=\\na.series,e=b.xAxis,b=b.yAxis;if(e&&b)return d?{chartX:e.len+e.pos-a.clientX,chartY:b.len+b.pos-a.plotY}:{chartX:a.clientX+e.pos,chartY:a.plotY+b.pos}},getHoverData:function(b,d,e,f,p,g){var c=b,v=d,c=p?e:[v];f=!(!f||!b);d=v&&!v.stickyTracking;var q=function(a,c){return 0===c},y;f?q=function(a){return a===b}:d?q=function(a){return a.series===v}:c=a.grep(e,function(a){return a.stickyTracking});y=f&&!p?[b]:this.getKDPoints(c,p,g);v=(c=a.find(y,q))&&c.series;f||d||!p||(y=this.getKDPoints(e,p,g));y.sort(function(a,\\nc){return a.series.index-c.series.index});return{hoverPoint:c,hoverSeries:v,hoverPoints:y}},runPointActions:function(b,d){var e=this.chart,p=e.tooltip,g=p?p.shared:!1,m=d||e.hoverPoint,c=m&&m.series||e.hoverSeries;d=this.getHoverData(m,c,e.series,!!d||c&&c.directTouch&&this.isDirectTouch,g,b);var w,h,m=d.hoverPoint;w=(c=d.hoverSeries)&&c.tooltipOptions.followPointer;h=(g=g&&m&&!m.series.noSharedTooltip)?d.hoverPoints:m?[m]:[];if(m&&(m!==e.hoverPoint||p&&p.isHidden)){r(e.hoverPoints||[],function(c){-1===\\na.inArray(c,h)&&c.setState()});r(h||[],function(a){a.setState(\\\"hover\\\")});if(e.hoverSeries!==c)c.onMouseOver();e.hoverPoint&&e.hoverPoint.firePointEvent(\\\"mouseOut\\\");m.firePointEvent(\\\"mouseOver\\\");e.hoverPoints=h;e.hoverPoint=m;p&&p.refresh(g?h:m,b)}else w&&p&&!p.isHidden&&(c=p.getAnchor([{}],b),p.updatePosition({plotX:c[0],plotY:c[1]}));this.unDocMouseMove||(this.unDocMouseMove=E(u,\\\"mousemove\\\",function(c){var b=F[a.hoverChartIndex];if(b)b.pointer.onDocumentMouseMove(c)}));r(e.axes,function(c){f(c.crosshair.snap,\\n!0)?a.find(h,function(a){return a.series[c.coll]===c})?c.drawCrosshair(b,m):c.hideCrosshair():c.drawCrosshair(b)})},reset:function(a,d){var b=this.chart,f=b.hoverSeries,p=b.hoverPoint,g=b.hoverPoints,c=b.tooltip,m=c&&c.shared?g:p;a&&m&&r(e(m),function(c){c.series.isCartesian&&void 0===c.plotX&&(a=!1)});if(a)c&&m&&(c.refresh(m),p&&(p.setState(p.state,!0),r(b.axes,function(a){a.crosshair&&a.drawCrosshair(null,p)})));else{if(p)p.onMouseOut();g&&r(g,function(a){a.setState()});if(f)f.onMouseOut();c&&c.hide(d);\\nthis.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());r(b.axes,function(a){a.hideCrosshair()});this.hoverX=b.hoverPoints=b.hoverPoint=null}},scaleGroups:function(a,d){var b=this.chart,e;r(b.series,function(f){e=a||f.getPlotBox();f.xAxis&&f.xAxis.zoomEnabled&&f.group&&(f.group.attr(e),f.markerGroup&&(f.markerGroup.attr(e),f.markerGroup.clip(d?b.clipRect:null)),f.dataLabelsGroup&&f.dataLabelsGroup.attr(e))});b.clipRect.attr(d||b.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=\\na.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,d=b.options.chart,e=a.chartX,f=a.chartY,p=this.zoomHor,c=this.zoomVert,g=b.plotLeft,m=b.plotTop,y=b.plotWidth,G=b.plotHeight,l,I=this.selectionMarker,k=this.mouseDownX,z=this.mouseDownY,h=d.panKey&&a[d.panKey+\\\"Key\\\"];I&&I.touch||(eg+y&&(e=g+y),fm+G&&(f=m+G),this.hasDragged=Math.sqrt(Math.pow(k-e,2)+Math.pow(z-f,2)),10K.max&&(h=K.max-q,z=!0);z?(l-=.8*(l-g[p][0]),y||(k-=.8*(k-g[p][1])),n()):g[p]=[l,k];w||(f[p]=r-H,f[v]=q);f=w?1/c:c;m[v]=q;m[p]=h;t[w?a?\\\"scaleY\\\":\\n\\\"scaleX\\\":\\\"scale\\\"+b]=c;t[\\\"translate\\\"+b]=f*H+(l-f*G)},pinch:function(a){var r=this,u=r.chart,t=r.pinchDown,m=a.touches,f=m.length,g=r.lastValidTouch,e=r.hasZoom,d=r.selectionMarker,p={},b=1===f&&(r.inClass(a.target,\\\"highcharts-tracker\\\")&&u.runTrackerClick||r.runChartClick),A={};1e-6&&m(y||d.spacingBox.width-2*c-b.x)&&(this.itemX=c,this.itemY+=l+this.lastLineHeight+G,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,q);this.lastItemY=l+this.itemY+G;this.lastLineHeight=Math.max(e,this.lastLineHeight);\\na._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=q:(this.itemY+=l+e+G,this.lastLineHeight=e);this.offsetWidth=y||Math.max((f?this.itemX-c-w:q)+c,this.offsetWidth)},getAllItems:function(){var a=[];n(this.chart.series,function(d){var e=d&&d.options;d&&x(e.showInLegend,D(e.linkedTo)?!1:void 0,!0)&&(a=a.concat(d.legendItems||(\\\"point\\\"===e.legendType?d.data:d)))});return a},adjustMargins:function(a,d){var e=this.chart,b=this.options,f=b.align.charAt(0)+b.verticalAlign.charAt(0)+b.layout.charAt(0);\\nb.floating||n([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(g,p){g.test(f)&&!D(a[p])&&(e[u[p]]=Math.max(e[u[p]],e.legend[(p+1)%2?\\\"legendHeight\\\":\\\"legendWidth\\\"]+[1,-1,-1,1][p]*b[p%2?\\\"x\\\":\\\"y\\\"]+x(b.margin,12)+d[p]))})},render:function(){var a=this,d=a.chart,f=d.renderer,b=a.group,g,h,H,q,u=a.box,c=a.options,w=a.padding;a.itemX=w;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;b||(a.group=b=f.g(\\\"legend\\\").attr({zIndex:7}).add(),a.contentGroup=f.g().attr({zIndex:1}).add(b),a.scrollGroup=\\nf.g().add(a.contentGroup));a.renderTitle();g=a.getAllItems();m(g,function(a,c){return(a.options&&a.options.legendIndex||0)-(c.options&&c.options.legendIndex||0)});c.reversed&&g.reverse();a.allItems=g;a.display=h=!!g.length;a.lastLineHeight=0;n(g,function(c){a.renderItem(c)});H=(c.width||a.offsetWidth)+w;q=a.lastItemY+a.lastLineHeight+a.titleHeight;q=a.handleOverflow(q);q+=w;u||(a.box=u=f.rect().addClass(\\\"highcharts-legend-box\\\").attr({r:c.borderRadius}).add(b),u.isNew=!0);u.attr({stroke:c.borderColor,\\n\\\"stroke-width\\\":c.borderWidth||0,fill:c.backgroundColor||\\\"none\\\"}).shadow(c.shadow);0e&&!1!==c.enabled?(this.clipHeight=q=Math.max(e-20-this.titleHeight-\\nm,0),this.currentPage=x(this.currentPage,1),this.fullHeight=a,n(I,function(a,c){var b=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=G.length;if(!d||b-G[d-1]>q&&(l||b)!==G[d-1])G.push(l||b),d++;c===I.length-1&&b+a-G[d-1]>q&&G.push(b);b!==l&&(l=b)}),h||(h=d.clipRect=b.clipRect(0,m,9999,0),d.contentGroup.clip(h)),k(q),y||(this.nav=y=b.g().attr({zIndex:1}).add(this.group),this.up=b.symbol(\\\"triangle\\\",0,0,r,r).on(\\\"click\\\",function(){d.scroll(-1,w)}).add(y),this.pager=b.text(\\\"\\\",15,\\n10).addClass(\\\"highcharts-legend-navigation\\\").css(c.style).add(y),this.down=b.symbol(\\\"triangle-down\\\",0,0,r,r).on(\\\"click\\\",function(){d.scroll(1,w)}).add(y)),d.scroll(0),a=e):y&&(k(),this.nav=y.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,d){var e=this.pages,b=e.length;a=this.currentPage+a;var f=this.clipHeight,g=this.options.navigation,m=this.pager,q=this.padding;a>b&&(a=b);0p&&(g=typeof a[0],\\\"string\\\"===g?f.name=a[0]:\\\"number\\\"===\\ng&&(f.x=a[0]),b++);m=e.value;)e=f[++g];e&&e.color&&!this.options.color&&(this.color=e.color);return e},destroy:function(){var a=this.series.chart,f=a.hoverPoints,g;a.pointCount--;f&&(this.setState(),D(f,this),f.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)t(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);\\nfor(g in this)this[g]=null},destroyElements:function(){for(var a=[\\\"graphic\\\",\\\"dataLabel\\\",\\\"dataLabelUpper\\\",\\\"connector\\\",\\\"shadowGroup\\\"],f,g=6;g--;)f=a[g],this[f]&&(this[f]=this[f].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var f=this.series,g=f.tooltipOptions,e=x(g.valueDecimals,\\\"\\\"),\\nd=g.valuePrefix||\\\"\\\",p=g.valueSuffix||\\\"\\\";B(f.pointArrayMap||[\\\"y\\\"],function(b){b=\\\"{point.\\\"+b;if(d||p)a=a.replace(b+\\\"}\\\",d+b+\\\"}\\\"+p);a=a.replace(b+\\\"}\\\",b+\\\":,.\\\"+e+\\\"f}\\\")});return h(a,{point:this,series:this.series})},firePointEvent:function(a,f,g){var e=this,d=this.series.options;(d.point.events[a]||e.options&&e.options.events&&e.options.events[a])&&this.importEvents();\\\"click\\\"===a&&d.allowPointSelect&&(g=function(a){e.select&&e.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});n(this,a,f,g)},visible:!0}})(L);\\n(function(a){var E=a.addEvent,B=a.animObject,F=a.arrayMax,D=a.arrayMin,n=a.correctFloat,h=a.Date,u=a.defaultOptions,r=a.defaultPlotOptions,x=a.defined,t=a.each,m=a.erase,f=a.extend,g=a.fireEvent,e=a.grep,d=a.isArray,p=a.isNumber,b=a.isString,A=a.merge,v=a.objectEach,H=a.pick,q=a.removeEvent,J=a.splat,c=a.SVGElement,w=a.syncTimeout,K=a.win;a.Series=a.seriesType(\\\"line\\\",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{lineWidth:0,lineColor:\\\"#ffffff\\\",radius:4,\\nstates:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\\\"#cccccc\\\",lineColor:\\\"#000000\\\",lineWidth:2}}},point:{events:{}},dataLabels:{align:\\\"center\\\",formatter:function(){return null===this.y?\\\"\\\":a.numberFormat(this.y,-1)},style:{fontSize:\\\"11px\\\",fontWeight:\\\"bold\\\",color:\\\"contrast\\\",textOutline:\\\"1px contrast\\\"},verticalAlign:\\\"bottom\\\",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{animation:{duration:50},lineWidthPlus:1,marker:{},\\nhalo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:\\\"x\\\"},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:[\\\"xAxis\\\",\\\"yAxis\\\"],colorCounter:0,parallelArrays:[\\\"x\\\",\\\"y\\\"],coll:\\\"series\\\",init:function(a,c){var b=this,d,k=a.series,e;b.chart=a;b.options=c=b.setOptions(c);b.linkedSeries=[];b.bindAxes();f(b,{name:c.name,state:\\\"\\\",visible:!1!==c.visible,selected:!0===c.selected});d=c.events;v(d,function(a,c){E(b,c,a)});if(d&&\\nd.click||c.point&&c.point.events&&c.point.events.click||c.allowPointSelect)a.runTrackerClick=!0;b.getColor();b.getSymbol();t(b.parallelArrays,function(a){b[a+\\\"Data\\\"]=[]});b.setData(c.data,!1);b.isCartesian&&(a.hasCartesianSeries=!0);k.length&&(e=k[k.length-1]);b._i=H(e&&e._i,-1)+1;a.orderSeries(this.insert(k))},insert:function(a){var c=this.options.index,b;if(p(c)){for(b=a.length;b--;)if(c>=H(a[b].options.index,a[b]._i)){a.splice(b+1,0,this);break}-1===b&&a.unshift(this);b+=1}else a.push(this);return H(b,\\na.length-1)},bindAxes:function(){var c=this,b=c.options,d=c.chart,e;t(c.axisTypes||[],function(l){t(d[l],function(a){e=a.options;if(b[l]===e.index||void 0!==b[l]&&b[l]===e.id||void 0===b[l]&&0===e.index)c.insert(a.series),c[l]=a,a.isDirty=!0});c[l]||c.optionalAxis===l||a.error(18,!0)})},updateParallelArrays:function(a,c){var b=a.series,d=arguments,k=p(c)?function(d){var l=\\\"y\\\"===d&&b.toYData?b.toYData(a):a[d];b[d+\\\"Data\\\"][c]=l}:function(a){Array.prototype[c].apply(b[a+\\\"Data\\\"],Array.prototype.slice.call(d,\\n2))};t(b.parallelArrays,k)},autoIncrement:function(){var a=this.options,c=this.xIncrement,b,d=a.pointIntervalUnit,c=H(c,a.pointStart,0);this.pointInterval=b=H(this.pointInterval,a.pointInterval,1);d&&(a=new h(c),\\\"day\\\"===d?a=+a[h.hcSetDate](a[h.hcGetDate]()+b):\\\"month\\\"===d?a=+a[h.hcSetMonth](a[h.hcGetMonth]()+b):\\\"year\\\"===d&&(a=+a[h.hcSetFullYear](a[h.hcGetFullYear]()+b)),b=a-c);this.xIncrement=c+b;return c},setOptions:function(a){var c=this.chart,b=c.options,d=b.plotOptions,k=(c.userOptions||{}).plotOptions||\\n{},e=d[this.type];this.userOptions=a;c=A(e,d.series,a);this.tooltipOptions=A(u.tooltip,u.plotOptions.series&&u.plotOptions.series.tooltip,u.plotOptions[this.type].tooltip,b.tooltip.userOptions,d.series&&d.series.tooltip,d[this.type].tooltip,a.tooltip);this.stickyTracking=H(a.stickyTracking,k[this.type]&&k[this.type].stickyTracking,k.series&&k.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:c.stickyTracking);null===e.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=\\n(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+\\\"Threshold\\\"]||c.threshold||0,className:\\\"highcharts-negative\\\",color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&x(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor});return c},getCyclic:function(a,c,b){var d,l=this.chart,e=this.userOptions,f=a+\\\"Index\\\",g=a+\\\"Counter\\\",y=b?b.length:H(l.options.chart[a+\\\"Count\\\"],l[a+\\\"Count\\\"]);c||(d=H(e[f],e[\\\"_\\\"+f]),x(d)||(l.series.length||\\n(l[g]=0),e[\\\"_\\\"+f]=d=l[g]%y,l[g]+=1),b&&(c=b[d]));void 0!==d&&(this[f]=d);this[a]=c},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic(\\\"color\\\",this.options.color||r[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic(\\\"symbol\\\",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(c,e,l,f){var k=this,g=k.points,y=g&&g.length||0,q,m=k.options,h=k.chart,w=null,G=k.xAxis,\\nI=m.turboThreshold,v=this.xData,n=this.yData,r=(q=k.pointArrayMap)&&q.length;c=c||[];q=c.length;e=H(e,!0);if(!1!==f&&q&&y===q&&!k.cropped&&!k.hasGroupedData&&k.visible)t(c,function(a,c){g[c].update&&a!==m.data[c]&&g[c].update(a,!1,null,!1)});else{k.xIncrement=null;k.colorCounter=0;t(this.parallelArrays,function(a){k[a+\\\"Data\\\"].length=0});if(I&&q>I){for(l=0;null===w&&lp||this.forceCrop))if(b[e-1]n)b=[],d=[];else if(b[0]n)k=this.cropData(this.xData,this.yData,v,n),b=k.xData,d=k.yData,k=k.start,f=!0;for(p=b.length||\\n1;--p;)e=h?q(b[p])-q(b[p-1]):b[p]-b[p-1],0e&&this.requireSorting&&a.error(15);this.cropped=f;this.cropStart=k;this.processedXData=b;this.processedYData=d;this.closestPointRange=g},cropData:function(a,c,b,d){var l=a.length,e=0,f=l,g=H(this.cropShoulder,1),y;for(y=0;y=b){e=Math.max(0,y-g);break}for(b=y;bd){f=b+g;break}return{xData:a.slice(e,f),yData:c.slice(e,f),start:e,end:f}},generatePoints:function(){var a=this.options,c=a.data,b=this.data,\\nd,k=this.processedXData,e=this.processedYData,f=this.pointClass,g=k.length,p=this.cropStart||0,q,m=this.hasGroupedData,a=a.keys,w,h=[],v;b||m||(b=[],b.length=c.length,b=this.data=b);a&&m&&(this.options.keys=!1);for(v=0;v=g&&(b[h]||m)<=y,q&&m)if(q=w.length)for(;q--;)null!==w[q]&&(k[f++]=w[q]);else k[f++]=w;this.dataMin=\\nD(k);this.dataMax=F(k)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,c=a.stacking,b=this.xAxis,d=b.categories,k=this.yAxis,e=this.points,f=e.length,g=!!this.modifyValue,q=a.pointPlacement,m=\\\"between\\\"===q||p(q),w=a.threshold,h=a.startFromThreshold?w:0,v,r,K,A,u=Number.MAX_VALUE;\\\"between\\\"===q&&(q=.5);p(q)&&(q*=H(a.pointRange||b.pointRange));for(a=0;a=B&&(t.isNull=!0);t.plotX=v=n(Math.min(Math.max(-1E5,b.translate(J,0,0,0,1,q,\\\"flags\\\"===this.type)),1E5));c&&this.visible&&!t.isNull&&D&&D[J]&&(A=this.getStackIndicator(A,J,this.index),E=D[J],B=E.points[A.key],r=B[0],B=B[1],r===h&&A.key===D[J].base&&(r=H(w,k.min)),k.positiveValuesOnly&&0>=r&&(r=null),t.total=t.stackTotal=E.total,t.percentage=E.total&&t.y/E.total*100,t.stackY=B,E.setOffset(this.pointXOffset||0,this.barW||0));t.yBottom=x(r)?k.translate(r,0,1,0,1):\\nnull;g&&(B=this.modifyValue(B,t));t.plotY=r=\\\"number\\\"===typeof B&&Infinity!==B?Math.min(Math.max(-1E5,k.translate(B,0,1,0,1)),1E5):void 0;t.isInside=void 0!==r&&0<=r&&r<=k.len&&0<=v&&v<=b.len;t.clientX=m?n(b.translate(J,0,0,0,1,q)):v;t.negative=t.y<(w||0);t.category=d&&void 0!==d[t.x]?d[t.x]:t.x;t.isNull||(void 0!==K&&(u=Math.min(u,Math.abs(v-K))),K=v);t.zone=this.zones.length&&t.getZone()}this.closestPointRangePx=u},getValidPoints:function(a,c){var b=this.chart;return e(a||this.points||[],function(a){return c&&\\n!b.isInsidePlot(a.plotX,a.plotY,b.inverted)?!1:!a.isNull})},setClip:function(a){var c=this.chart,b=this.options,d=c.renderer,k=c.inverted,e=this.clipBox,f=e||c.clipBox,g=this.sharedClipKey||[\\\"_sharedClip\\\",a&&a.duration,a&&a.easing,f.height,b.xAxis,b.yAxis].join(),p=c[g],q=c[g+\\\"m\\\"];p||(a&&(f.width=0,c[g+\\\"m\\\"]=q=d.clipRect(-99,k?-c.plotLeft:-c.plotTop,99,k?c.chartWidth:c.chartHeight)),c[g]=p=d.clipRect(f),p.count={length:0});a&&!p.count[this.index]&&(p.count[this.index]=!0,p.count.length+=1);!1!==b.clip&&\\n(this.group.clip(a||e?p:c.clipRect),this.markerGroup.clip(q),this.sharedClipKey=g);a||(p.count[this.index]&&(delete p.count[this.index],--p.count.length),0===p.count.length&&g&&c[g]&&(e||(c[g]=c[g].destroy()),c[g+\\\"m\\\"]&&(c[g+\\\"m\\\"]=c[g+\\\"m\\\"].destroy())))},animate:function(a){var c=this.chart,b=B(this.options.animation),d;a?this.setClip(b):(d=this.sharedClipKey,(a=c[d])&&a.animate({width:c.plotSizeX},b),c[d+\\\"m\\\"]&&c[d+\\\"m\\\"].animate({width:c.plotSizeX+99},b),this.animate=null)},afterAnimate:function(){this.setClip();\\ng(this,\\\"afterAnimate\\\")},drawPoints:function(){var a=this.points,c=this.chart,b,d,k,e,f=this.options.marker,g,q,m,w,h=this[this.specialGroup]||this.markerGroup,v=H(f.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=2*f.radius);if(!1!==f.enabled||this._hasPointMarkers)for(d=0;dl&&c.shadow));e&&(e.startX=b.xMap,e.isArea=b.isArea)})},applyZones:function(){var a=this,c=this.chart,b=c.renderer,\\nd=this.zones,k,e,f=this.clips||[],g,p=this.graph,q=this.area,m=Math.max(c.chartWidth,c.chartHeight),w=this[(this.zoneAxis||\\\"y\\\")+\\\"Axis\\\"],h,v,n=c.inverted,r,K,A,u,J=!1;d.length&&(p||q)&&w&&void 0!==w.min&&(v=w.reversed,r=w.horiz,p&&p.hide(),q&&q.hide(),h=w.getExtremes(),t(d,function(d,l){k=v?r?c.plotWidth:0:r?0:w.toPixels(h.min);k=Math.min(Math.max(H(e,k),0),m);e=Math.min(Math.max(Math.round(w.toPixels(H(d.value,h.max),!0)),0),m);J&&(k=e=w.toPixels(h.max));K=Math.abs(k-e);A=Math.min(k,e);u=Math.max(k,\\ne);w.isXAxis?(g={x:n?u:A,y:0,width:K,height:m},r||(g.x=c.plotHeight-g.x)):(g={x:0,y:n?u:A,width:m,height:K},r&&(g.y=c.plotWidth-g.y));n&&b.isVML&&(g=w.isXAxis?{x:0,y:v?A:u,height:g.width,width:c.chartWidth}:{x:g.y-c.plotLeft-c.spacingBox.x,y:0,width:g.height,height:c.chartHeight});f[l]?f[l].animate(g):(f[l]=b.clipRect(g),p&&a[\\\"zone-graph-\\\"+l].clip(f[l]),q&&a[\\\"zone-area-\\\"+l].clip(f[l]));J=d.value>h.max}),this.clips=f)},invertGroups:function(a){function c(){t([\\\"group\\\",\\\"markerGroup\\\"],function(c){b[c]&&\\n(d.renderer.isVML&&b[c].attr({width:b.yAxis.len,height:b.xAxis.len}),b[c].width=b.yAxis.len,b[c].height=b.xAxis.len,b[c].invert(a))})}var b=this,d=b.chart,k;b.xAxis&&(k=E(d,\\\"resize\\\",c),E(b,\\\"destroy\\\",k),c(a),b.invertGroups=c)},plotGroup:function(a,c,b,d,k){var l=this[a],e=!l;e&&(this[a]=l=this.chart.renderer.g().attr({zIndex:d||.1}).add(k));l.addClass(\\\"highcharts-\\\"+c+\\\" highcharts-series-\\\"+this.index+\\\" highcharts-\\\"+this.type+\\\"-series highcharts-color-\\\"+this.colorIndex+\\\" \\\"+(this.options.className||\\\"\\\"),\\n!0);l.attr({visibility:b})[e?\\\"attr\\\":\\\"animate\\\"](this.getPlotBox());return l},getPlotBox:function(){var a=this.chart,c=this.xAxis,b=this.yAxis;a.inverted&&(c=b,b=this.xAxis);return{translateX:c?c.left:a.plotLeft,translateY:b?b.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,c=a.chart,b,d=a.options,k=!!a.animate&&c.renderer.isSVG&&B(d.animation).duration,e=a.visible?\\\"inherit\\\":\\\"hidden\\\",f=d.zIndex,g=a.hasRendered,p=c.seriesGroup,q=c.inverted;b=a.plotGroup(\\\"group\\\",\\\"series\\\",e,f,p);a.markerGroup=\\na.plotGroup(\\\"markerGroup\\\",\\\"markers\\\",e,f,p);k&&a.animate(!0);b.inverted=a.isCartesian?q:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(q);!1===d.clip||a.sharedClipKey||g||b.clip(c.clipRect);k&&a.animate();g||(a.animationTimeout=w(function(){a.afterAnimate()},k));a.isDirty=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,c=this.isDirty||this.isDirtyData,\\nb=this.group,d=this.xAxis,k=this.yAxis;b&&(a.inverted&&b.attr({width:a.plotWidth,height:a.plotHeight}),b.animate({translateX:H(d&&d.left,a.plotLeft),translateY:H(k&&k.top,a.plotTop)}));this.translate();this.render();c&&delete this.kdTree},kdAxisArray:[\\\"clientX\\\",\\\"plotY\\\"],searchPoint:function(a,c){var b=this.xAxis,d=this.yAxis,k=this.chart.inverted;return this.searchKDTree({clientX:k?b.len-a.chartY+b.pos:a.chartX-b.pos,plotY:k?d.len-a.chartX+d.pos:a.chartY-d.pos},c)},buildKDTree:function(){function a(b,\\nd,l){var k,e;if(e=b&&b.length)return k=c.kdAxisArray[d%l],b.sort(function(a,c){return a[k]-c[k]}),e=Math.floor(e/2),{point:b[e],left:a(b.slice(0,e),d+1,l),right:a(b.slice(e+1),d+1,l)}}this.buildingKdTree=!0;var c=this,b=-1q?\\\"left\\\":\\\"right\\\";w=0>q?\\\"right\\\":\\\"left\\\";c[m]&&(m=b(a,c[m],l+1,g),h=m[f]v;)w--;this.updateParallelArrays(q,\\\"splice\\\",w,0,0);this.updateParallelArrays(q,w);k&&q.name&&(k[v]=q.name);p.splice(w,0,a);h&&(this.data.splice(w,0,null),this.processData());\\\"point\\\"===c.legendType&&this.generatePoints();e&&(l[0]&&l[0].remove?l[0].remove(!1):(l.shift(),this.updateParallelArrays(q,\\\"shift\\\"),p.shift()));this.isDirtyData=this.isDirty=!0;d&&g.redraw(f)},removePoint:function(a,d,e){var c=this,f=c.data,l=f[a],g=c.points,\\nk=c.chart,p=function(){g&&g.length===f.length&&g.splice(a,1);f.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(l||{series:c},\\\"splice\\\",a,1);l&&l.destroy();c.isDirty=!0;c.isDirtyData=!0;d&&k.redraw()};q(e,k);d=b(d,!0);l?l.firePointEvent(\\\"remove\\\",null,p):p()},remove:function(a,d,e){function c(){f.destroy();l.isDirtyLegend=l.isDirtyBox=!0;l.linkSeries();b(a,!0)&&l.redraw(d)}var f=this,l=f.chart;!1!==e?t(f,\\\"remove\\\",null,c):c()},update:function(a,e){var c=this,f=c.chart,g=c.userOptions,l=\\nc.oldType||c.type,p=a.type||g.type||f.options.chart.type,k=H[l].prototype,q=[\\\"group\\\",\\\"markerGroup\\\",\\\"dataLabelsGroup\\\"],h;if(Object.keys&&\\\"data\\\"===Object.keys(a).toString())return this.setData(a.data,e);if(p&&p!==l||void 0!==a.zIndex)q.length=0;u(q,function(a){q[a]=c[a];delete c[a]});a=d(g,{animation:!1,index:c.index,pointStart:c.xData[0]},{data:c.options.data},a);c.remove(!1,null,!1);for(h in k)c[h]=void 0;x(c,H[p||l].prototype);u(q,function(a){c[a]=q[a]});c.init(f,a);c.oldType=l;f.linkSeries();b(e,\\n!0)&&f.redraw(!1)}});x(F.prototype,{update:function(a,e){var c=this.chart;a=c.options[this.coll][this.options.index]=d(this.userOptions,a);this.destroy(!0);this.init(c,x(a,{events:void 0}));c.isDirtyBox=!0;b(e,!0)&&c.redraw()},remove:function(a){for(var c=this.chart,d=this.coll,f=this.series,g=f.length;g--;)f[g]&&f[g].remove(!1);r(c.axes,this);r(c[d],this);e(c.options[d])?c.options[d].splice(this.options.index,1):delete c.options[d];u(c[d],function(a,c){a.options.index=c});this.destroy();c.isDirtyBox=\\n!0;b(a,!0)&&c.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})})(L);(function(a){var E=a.color,B=a.each,F=a.map,D=a.pick,n=a.Series,h=a.seriesType;h(\\\"area\\\",\\\"line\\\",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(){var h=[],n=[],x=this.xAxis,t=this.yAxis,m=t.stacks[this.stackKey],f={},g=this.points,e=this.index,d=t.series,p=d.length,b,A=D(t.options.reversedStacks,!0)?1:-1,v;if(this.options.stacking){for(v=\\n0;va&&x>h?(x=Math.max(a,h),m=2*h-x):xD&&m>h?(m=Math.max(D,h),x=2*h-m):m=Math.abs(f)&&.5a.closestPointRange*a.xAxis.transA,\\ne=a.borderWidth=u(g.borderWidth,e?0:1),d=a.yAxis,p=a.translatedThreshold=d.getThreshold(g.threshold),b=u(g.minPointLength,5),h=a.getColumnMetrics(),v=h.width,n=a.barW=Math.max(v,1+2*e),q=a.pointXOffset=h.offset;f.inverted&&(p-=.5);g.pointPadding&&(n=Math.ceil(n));r.prototype.translate.apply(a);F(a.points,function(e){var c=u(e.yBottom,p),g=999+Math.abs(c),g=Math.min(Math.max(-g,e.plotY),d.len+g),h=e.plotX+q,m=n,r=Math.min(g,c),l,I=Math.max(g,c)-r;Math.abs(I)b?c-b:p-(l?b:0));e.barX=h;e.pointWidth=v;e.tooltipPos=f.inverted?[d.len+d.pos-f.plotLeft-g,a.xAxis.len-h-m/2,I]:[h+m/2,g+d.pos-f.plotTop,I];e.shapeType=\\\"rect\\\";e.shapeArgs=a.crispCol.apply(a,e.isNull?[h,p,m,0]:[h,r,m,I])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?\\\"addClass\\\":\\\"removeClass\\\"](\\\"highcharts-dense-data\\\")},pointAttribs:function(a,f){var g=this.options,e,d=this.pointAttrToOptions||{};\\ne=d.stroke||\\\"borderColor\\\";var p=d[\\\"stroke-width\\\"]||\\\"borderWidth\\\",b=a&&a.color||this.color,m=a[e]||g[e]||this.color||b,v=a[p]||g[p]||this[p]||0,d=g.dashStyle;a&&this.zones.length&&(b=a.getZone(),b=a.options.color||b&&b.color||this.color);f&&(a=h(g.states[f],a.options.states&&a.options.states[f]||{}),f=a.brightness,b=a.color||void 0!==f&&B(b).brighten(a.brightness).get()||b,m=a[e]||m,v=a[p]||v,d=a.dashStyle||d);e={fill:b,stroke:m,\\\"stroke-width\\\":v};g.borderRadius&&(e.r=g.borderRadius);d&&(e.dashstyle=\\nd);return e},drawPoints:function(){var a=this,f=this.chart,g=a.options,e=f.renderer,d=g.animationLimit||250,p;F(a.points,function(b){var m=b.graphic;if(n(b.plotY)&&null!==b.y){p=b.shapeArgs;if(m)m[f.pointCountx;++x)t=u[x],a=2>x||2===x&&/%$/.test(t),u[x]=B(t,[h,\\nD,r,u[2]][x])+(a?n:0);u[3]>u[2]&&(u[3]=u[2]);return u}}})(L);(function(a){var E=a.addEvent,B=a.defined,F=a.each,D=a.extend,n=a.inArray,h=a.noop,u=a.pick,r=a.Point,x=a.Series,t=a.seriesType,m=a.setAnimation;t(\\\"pie\\\",\\\"line\\\",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:\\\"point\\\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},\\nborderColor:\\\"#ffffff\\\",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:[\\\"group\\\",\\\"dataLabelsGroup\\\"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var f=this,e=f.points,d=f.startAngleRad;a||(F(e,function(a){var b=a.graphic,e=a.shapeArgs;b&&(b.attr({r:a.startR||f.center[3]/2,start:d,end:d}),b.animate({r:e.r,start:e.start,end:e.end},f.options.animation))}),f.animate=null)},\\nupdateTotals:function(){var a,g=0,e=this.points,d=e.length,p,b=this.options.ignoreHiddenPoint;for(a=0;a1.5*Math.PI?v-=2*Math.PI:v<-Math.PI/2&&(v+=2*Math.PI);t.slicedTranslation={translateX:Math.round(Math.cos(v)*d),translateY:Math.round(Math.sin(v)*d)};h=Math.cos(v)*a[2]/2;c=Math.sin(v)*a[2]/2;t.tooltipPos=[a[0]+.7*h,a[1]+.7*c];t.half=v<-Math.PI/2||v>Math.PI/2?1:0;t.angle=v;b=Math.min(p,t.labelDistance/5);t.labelPos=[a[0]+h+Math.cos(v)*t.labelDistance,\\na[1]+c+Math.sin(v)*t.labelDistance,a[0]+h+Math.cos(v)*b,a[1]+c+Math.sin(v)*b,a[0]+h,a[1]+c,0>t.labelDistance?\\\"center\\\":t.half?\\\"right\\\":\\\"left\\\",v]}},drawGraph:null,drawPoints:function(){var a=this,g=a.chart.renderer,e,d,p,b,h=a.options.shadow;h&&!a.shadowGroup&&(a.shadowGroup=g.g(\\\"shadow\\\").add(a.group));F(a.points,function(f){if(!f.isNull){d=f.graphic;b=f.shapeArgs;e=f.getTranslate();var m=f.shadowGroup;h&&!m&&(m=f.shadowGroup=g.g(\\\"shadow\\\").add(a.shadowGroup));m&&m.attr(e);p=a.pointAttribs(f,f.selected&&\\n\\\"select\\\");d?d.setRadialReference(a.center).attr(p).animate(D(b,e)):(f.graphic=d=g[f.shapeType](b).setRadialReference(a.center).attr(e).add(a.group),f.visible||d.attr({visibility:\\\"hidden\\\"}),d.attr(p).attr({\\\"stroke-linejoin\\\":\\\"round\\\"}).shadow(h,m));d.addClass(f.getClassName())}})},searchPoint:h,sortByAngle:function(a,g){a.sort(function(a,d){return void 0!==a.angle&&(d.angle-a.angle)*g})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:h},{init:function(){r.prototype.init.apply(this,\\narguments);var a=this,g;a.name=u(a.name,\\\"Slice\\\");g=function(e){a.slice(\\\"select\\\"===e.type)};E(a,\\\"select\\\",g);E(a,\\\"unselect\\\",g);return a},isValid:function(){return a.isNumber(this.y,!0)&&0<=this.y},setVisible:function(a,g){var e=this,d=e.series,f=d.chart,b=d.options.ignoreHiddenPoint;g=u(g,b);a!==e.visible&&(e.visible=e.options.visible=a=void 0===a?!e.visible:a,d.options.data[n(e,d.data)]=e.options,F([\\\"graphic\\\",\\\"dataLabel\\\",\\\"connector\\\",\\\"shadowGroup\\\"],function(b){if(e[b])e[b][a?\\\"show\\\":\\\"hide\\\"](!0)}),e.legendItem&&\\nf.legend.colorizeItem(e,a),a||\\\"hover\\\"!==e.state||e.setState(\\\"\\\"),b&&(d.isDirty=!0),g&&f.redraw())},slice:function(a,g,e){var d=this.series;m(e,d.chart);u(g,!0);this.sliced=this.options.sliced=B(a)?a:!this.sliced;d.options.data[n(this,d.data)]=this.options;this.graphic.animate(this.getTranslate());this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(a){var f=this.shapeArgs;return this.sliced||\\n!this.visible?[]:this.series.chart.renderer.symbols.arc(f.x,f.y,f.r+a,f.r+a,{innerR:this.shapeArgs.r,start:f.start,end:f.end})}})})(L);(function(a){var E=a.addEvent,B=a.arrayMax,F=a.defined,D=a.each,n=a.extend,h=a.format,u=a.map,r=a.merge,x=a.noop,t=a.pick,m=a.relativeLength,f=a.Series,g=a.seriesTypes,e=a.stableSort;a.distribute=function(a,f){function b(a,b){return a.target-b.target}var d,g=!0,p=a,q=[],h;h=0;for(d=a.length;d--;)h+=a[d].size;if(h>f){e(a,function(a,b){return(b.rank||0)-(a.rank||0)});\\nfor(h=d=0;h<=f;)h+=a[d].size,d++;q=a.splice(d-1,a.length)}e(a,b);for(a=u(a,function(a){return{size:a.size,targets:[a.target]}});g;){for(d=a.length;d--;)g=a[d],h=(Math.min.apply(0,g.targets)+Math.max.apply(0,g.targets))/2,g.pos=Math.min(Math.max(0,h-g.size/2),f-g.size);d=a.length;for(g=!1;d--;)0a[d].pos&&(a[d-1].size+=a[d].size,a[d-1].targets=a[d-1].targets.concat(a[d].targets),a[d-1].pos+a[d-1].size>f&&(a[d-1].pos=f-a[d-1].size),a.splice(d,1),g=!0)}d=0;D(a,function(a){var c=\\n0;D(a.targets,function(){p[d].pos=a.pos+c;c+=p[d].size;d++})});p.push.apply(p,q);e(p,b)};f.prototype.drawDataLabels=function(){var d=this,e=d.options,b=e.dataLabels,f=d.points,g,m,q=d.hasRendered||0,n,c,w=t(b.defer,!!e.animation),u=d.chart.renderer;if(b.enabled||d._hasPointLabels)d.dlProcessOptions&&d.dlProcessOptions(b),c=d.plotGroup(\\\"dataLabelsGroup\\\",\\\"data-labels\\\",w&&!q?\\\"hidden\\\":\\\"visible\\\",b.zIndex||6),w&&(c.attr({opacity:+q}),q||E(d,\\\"afterAnimate\\\",function(){d.visible&&c.show(!0);c[e.animation?\\n\\\"animate\\\":\\\"attr\\\"]({opacity:1},{duration:200})})),m=b,D(f,function(f){var q,l=f.dataLabel,p,k,w=f.connector,v=!l,y;g=f.dlOptions||f.options&&f.options.dataLabels;if(q=t(g&&g.enabled,m.enabled)&&null!==f.y)b=r(m,g),p=f.getLabelConfig(),n=b.format?h(b.format,p):b.formatter.call(p,b),y=b.style,p=b.rotation,y.color=t(b.color,y.color,d.color,\\\"#000000\\\"),\\\"contrast\\\"===y.color&&(f.contrastColor=u.getContrast(f.color||d.color),y.color=b.inside||0>t(f.labelDistance,b.distance)||e.stacking?f.contrastColor:\\\"#000000\\\"),\\ne.cursor&&(y.cursor=e.cursor),k={fill:b.backgroundColor,stroke:b.borderColor,\\\"stroke-width\\\":b.borderWidth,r:b.borderRadius||0,rotation:p,padding:b.padding,zIndex:1},a.objectEach(k,function(a,c){void 0===a&&delete k[c]});!l||q&&F(n)?q&&F(n)&&(l?k.text=n:(l=f.dataLabel=u[p?\\\"text\\\":\\\"label\\\"](n,0,-9999,b.shape,null,null,b.useHTML,null,\\\"data-label\\\"),l.addClass(\\\"highcharts-data-label-color-\\\"+f.colorIndex+\\\" \\\"+(b.className||\\\"\\\")+(b.useHTML?\\\"highcharts-tracker\\\":\\\"\\\"))),l.attr(k),l.css(y).shadow(b.shadow),l.added||\\nl.add(c),d.alignDataLabel(f,l,b,null,v)):(f.dataLabel=l=l.destroy(),w&&(f.connector=w.destroy()))})};f.prototype.alignDataLabel=function(a,e,b,f,g){var d=this.chart,q=d.inverted,h=t(a.plotX,-9999),c=t(a.plotY,-9999),p=e.getBBox(),m,v=b.rotation,r=b.align,l=this.visible&&(a.series.forceDL||d.isInsidePlot(h,Math.round(c),q)||f&&d.isInsidePlot(h,q?f.x+1:f.y+f.height-1,q)),I=\\\"justify\\\"===t(b.overflow,\\\"justify\\\");if(l&&(m=b.style.fontSize,m=d.renderer.fontMetrics(m,e).b,f=n({x:q?d.plotWidth-c:h,y:Math.round(q?\\nd.plotHeight-h:c),width:0,height:0},f),n(b,{width:p.width,height:p.height}),v?(I=!1,h=d.renderer.rotCorr(m,v),h={x:f.x+b.x+f.width/2+h.x,y:f.y+b.y+{top:0,middle:.5,bottom:1}[b.verticalAlign]*f.height},e[g?\\\"attr\\\":\\\"animate\\\"](h).attr({align:r}),c=(v+720)%360,c=180c,\\\"left\\\"===r?h.y-=c?p.height:0:\\\"center\\\"===r?(h.x-=p.width/2,h.y-=p.height/2):\\\"right\\\"===r&&(h.x-=p.width,h.y-=c?0:p.height)):(e.align(b,null,f),h=e.alignAttr),I?a.isLabelJustified=this.justifyDataLabel(e,b,h,p,f,g):t(b.crop,!0)&&(l=d.isInsidePlot(h.x,\\nh.y)&&d.isInsidePlot(h.x+p.width,h.y+p.height)),b.shape&&!v))e[g?\\\"attr\\\":\\\"animate\\\"]({anchorX:q?d.plotWidth-a.plotY:a.plotX,anchorY:q?d.plotHeight-a.plotX:a.plotY});l||(e.attr({y:-9999}),e.placed=!1)};f.prototype.justifyDataLabel=function(a,e,b,f,g,h){var d=this.chart,p=e.align,c=e.verticalAlign,m,n,v=a.box?0:a.padding||0;m=b.x+v;0>m&&(\\\"right\\\"===p?e.align=\\\"left\\\":e.x=-m,n=!0);m=b.x+f.width-v;m>d.plotWidth&&(\\\"left\\\"===p?e.align=\\\"right\\\":e.x=d.plotWidth-m,n=!0);m=b.y+v;0>m&&(\\\"bottom\\\"===c?e.verticalAlign=\\n\\\"top\\\":e.y=-m,n=!0);m=b.y+f.height-v;m>d.plotHeight&&(\\\"top\\\"===c?e.verticalAlign=\\\"bottom\\\":e.y=d.plotHeight-m,n=!0);n&&(a.placed=!h,a.align(e,null,g));return n};g.pie&&(g.pie.prototype.drawDataLabels=function(){var d=this,e=d.data,b,g=d.chart,h=d.options.dataLabels,m=t(h.connectorPadding,10),q=t(h.connectorWidth,1),n=g.plotWidth,c=g.plotHeight,w,r=d.center,y=r[2]/2,u=r[1],l,I,k,z,x=[[],[]],M,N,E,O,C=[0,0,0,0];d.visible&&(h.enabled||d._hasPointLabels)&&(D(e,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&\\n(a.dataLabel.attr({width:\\\"auto\\\"}).css({width:\\\"auto\\\",textOverflow:\\\"clip\\\"}),a.dataLabel.shortened=!1)}),f.prototype.drawDataLabels.apply(d),D(e,function(a){a.dataLabel&&a.visible&&(x[a.half].push(a),a.dataLabel._pos=null)}),D(x,function(e,f){var q,p,w=e.length,v=[],t;if(w)for(d.sortByAngle(e,f-.5),0b.bottom-2?q:N,f,b),l._attr={visibility:E,align:k[6]},\\nl._pos={x:M+h.x+({left:m,right:-m}[k[6]]||0),y:N+h.y-10},k.x=M,k.y=N,I=l.getBBox().width,q=null,M-In-m&&(q=Math.round(M+I-n+m),C[1]=Math.max(q,C[1])),0>N-z/2?C[0]=Math.max(Math.round(-N+z/2),C[0]):N+z/2>c&&(C[2]=Math.max(Math.round(N+z/2-c),C[2])),l.sideOverflow=q}),0===B(C)||this.verifyDataLabelOverflow(C))&&(this.placeDataLabels(),q&&D(this.points,function(a){var c;w=a.connector;if((l=a.dataLabel)&&l._pos&&a.visible&&0t(this.translatedThreshold,q.yAxis.len)),m=t(b.inside,!!this.options.stacking);p&&(g=r(p),0>g.y&&(g.height+=g.y,g.y=0),p=g.y+g.height-q.yAxis.len,0a+e||g+cd+f||h+pthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,\\ne;d&&u(d,function(a){a.setState()});u(\\\"xy\\\"===b?[1,0]:[1],function(b){b=c[b?\\\"xAxis\\\":\\\"yAxis\\\"][0];var d=b.horiz,l=a[d?\\\"chartX\\\":\\\"chartY\\\"],d=d?\\\"mouseDownX\\\":\\\"mouseDownY\\\",f=c[d],k=(b.pointRange||0)/2,g=b.getExtremes(),h=b.toValue(f-l,!0)+k,k=b.toValue(f+b.len-l,!0)-k,p=k=h(r.minWidth,0)&&this.chartHeight>=h(r.minHeight,0)}).call(this)&&n.push(a._id)};E.prototype.currentOptions=function(h){function r(h,f,g,e){var d;a.objectEach(h,function(a,b){if(!e&&-1b.length||void 0===e)return a.call(this,g,e,d,p);u=b.length;for(q=0;qd;b[q]5*m||y){if(b[q]>l){for(r=a.call(this,g,b[f],b[q],p);r.length&&r[0]<=l;)r.shift();r.length&&(l=r[r.length-1]);x=x.concat(r)}f=q+1}if(y)break}a=r.info;if(v&&a.unitRange<=t.hour){q=x.length-1;for(f=1;fd?a-1:a;for(k=void 0;v--;)f=q[v],d=Math.abs(k-f),k&&d<.8*I&&(null===w||d<.8*w)?(c[x[v]]&&!c[x[v+1]]?(d=v+1,k=f):d=v,x.splice(d,1)):k=f}return x});r(B.prototype,{beforeSetTickPositions:function(){var a,g=[],e=!1,d,h=this.getExtremes(),b=h.min,m=h.max,n,r=this.isXAxis&&!!this.options.breaks,h=this.options.ordinal,q=this.chart.options.chart.ignoreHiddenSeries;if(h||r){u(this.series,\\nfunction(b,c){if(!(q&&!1===b.visible||!1===b.takeOrdinalPosition&&!r)&&(g=g.concat(b.processedXData),a=g.length,g.sort(function(a,c){return a-c}),a))for(c=a-1;c--;)g[c]===g[c+1]&&g.splice(c,1)});a=g.length;if(2d||m-g[g.length-1]>d)&&(e=!0)}e?(this.ordinalPositions=g,d=this.ordinal2lin(Math.max(b,g[0]),!0),n=Math.max(this.ordinal2lin(Math.min(m,g[g.length-1]),!0),1),this.ordinalSlope=m=(m-b)/(n-d),\\nthis.ordinalOffset=b-d*m):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=h&&e;this.groupIntervalFactor=null},val2lin:function(a,g){var e=this.ordinalPositions;if(e){var d=e.length,f,b;for(f=d;f--;)if(e[f]===a){b=f;break}for(f=d-1;f--;)if(a>e[f]||0===f){a=(a-e[f])/(e[f+1]-e[f]);b=f+a;break}g=g?b:this.ordinalSlope*(b||0)+this.ordinalOffset}else g=a;return g},lin2val:function(a,g){var e=this.ordinalPositions;if(e){var d=this.ordinalSlope,f=this.ordinalOffset,b=e.length-\\n1,h;if(g)0>a?a=e[0]:a>b?a=e[b]:(b=Math.floor(a),h=a-b);else for(;b--;)if(g=d*b+f,a>=g){d=d*(b+1)+f;h=(a-g)/(d-g);break}return void 0!==h&&void 0!==e[b]?e[b]+(h?h*(e[b+1]-e[b]):0):a}return a},getExtendedPositions:function(){var a=this.chart,g=this.series[0].currentDataGrouping,e=this.ordinalIndex,d=g?g.count+g.unitName:\\\"raw\\\",h=this.getExtremes(),b,m;e||(e=this.ordinalIndex={});e[d]||(b={series:[],chart:a,getExtremes:function(){return{min:h.dataMin,max:h.dataMax}},options:{ordinal:!0},val2lin:B.prototype.val2lin,\\nordinal2lin:B.prototype.ordinal2lin},u(this.series,function(d){m={xAxis:b,xData:d.xData,chart:a,destroyGroupedData:x};m.options={dataGrouping:g?{enabled:!0,forced:!0,approximation:\\\"open\\\",units:[[g.unitName,[g.count]]]}:{enabled:!1}};d.processData.apply(m);b.series.push(m)}),this.beforeSetTickPositions.apply(b),e[d]=b.ordinalPositions);return e[d]},getGroupIntervalFactor:function(a,g,e){var d;e=e.processedXData;var f=e.length,b=[];d=this.groupIntervalFactor;if(!d){for(d=0;db?(r=w,y=e.ordinalPositions?e:w):(r=e.ordinalPositions?e:w,y=w),w=y.ordinalPositions,m>w[w.length-1]&&w.push(m),this.fixedRange=q-n,b=e.toFixedRange(null,null,c.apply(r,[t.apply(r,[n,!0])+b,!0]),c.apply(y,[t.apply(y,[q,!0])+b,!0])),b.min>=Math.min(h.dataMin,n)&&\\nb.max<=Math.max(m,q)&&e.setExtremes(b.min,b.max,!0,!1,{trigger:\\\"pan\\\"}),this.mouseDownX=d,D(this.container,{cursor:\\\"move\\\"})):f=!0}else f=!0;f&&a.apply(this,Array.prototype.slice.call(arguments,1))})})(L);(function(a){function E(){return Array.prototype.slice.call(arguments,1)}function B(a){a.apply(this);this.drawBreaks(this.xAxis,[\\\"x\\\"]);this.drawBreaks(this.yAxis,F(this.pointArrayMap,[\\\"y\\\"]))}var F=a.pick,D=a.wrap,n=a.each,h=a.extend,u=a.isArray,r=a.fireEvent,x=a.Axis,t=a.Series;h(x.prototype,{isInBreak:function(a,\\nf){var g=a.repeat||Infinity,e=a.from,d=a.to-a.from;f=f>=e?(f-e)%g:g-(e-f)%g;return a.inclusive?f<=d:f=a)break;else if(e.isInBreak(b,a)){d-=a-b.from;break}return d},e.lin2val=function(a){var d,b;for(b=0;b=\\na);b++)d.tom;)w-=h;for(;wd.to||h>d.from&&md.from&&md.from&&m>d.to&&mthis.closestPointRange*a&&f.splice(g+1,0,{isNull:!0});return this.getGraphPath(f)};D(a.seriesTypes.column.prototype,\\\"drawPoints\\\",B);D(a.Series.prototype,\\\"drawPoints\\\",B)})(L);(function(a){var E=a.arrayMax,B=a.arrayMin,F=a.Axis,D=a.defaultPlotOptions,n=a.defined,h=a.each,u=a.extend,r=a.format,x=a.isNumber,t=a.merge,m=a.pick,f=a.Point,g=a.Tooltip,e=a.wrap,d=a.Series.prototype,p=d.processData,b=d.generatePoints,\\nA=d.destroy,v={approximation:\\\"average\\\",groupPixelWidth:2,dateTimeLabelFormats:{millisecond:[\\\"%A, %b %e, %H:%M:%S.%L\\\",\\\"%A, %b %e, %H:%M:%S.%L\\\",\\\"-%H:%M:%S.%L\\\"],second:[\\\"%A, %b %e, %H:%M:%S\\\",\\\"%A, %b %e, %H:%M:%S\\\",\\\"-%H:%M:%S\\\"],minute:[\\\"%A, %b %e, %H:%M\\\",\\\"%A, %b %e, %H:%M\\\",\\\"-%H:%M\\\"],hour:[\\\"%A, %b %e, %H:%M\\\",\\\"%A, %b %e, %H:%M\\\",\\\"-%H:%M\\\"],day:[\\\"%A, %b %e, %Y\\\",\\\"%A, %b %e\\\",\\\"-%A, %b %e, %Y\\\"],week:[\\\"Week from %A, %b %e, %Y\\\",\\\"%A, %b %e\\\",\\\"-%A, %b %e, %Y\\\"],month:[\\\"%B %Y\\\",\\\"%B\\\",\\\"-%B %Y\\\"],year:[\\\"%Y\\\",\\\"%Y\\\",\\\"-%Y\\\"]}},\\nH={line:{},spline:{},area:{},areaspline:{},column:{approximation:\\\"sum\\\",groupPixelWidth:10},arearange:{approximation:\\\"range\\\"},areasplinerange:{approximation:\\\"range\\\"},columnrange:{approximation:\\\"range\\\",groupPixelWidth:10},candlestick:{approximation:\\\"ohlc\\\",groupPixelWidth:10},ohlc:{approximation:\\\"ohlc\\\",groupPixelWidth:5}},q=a.defaultDataGroupingUnits=[[\\\"millisecond\\\",[1,2,5,10,20,25,50,100,200,500]],[\\\"second\\\",[1,2,5,10,15,30]],[\\\"minute\\\",[1,2,5,10,15,30]],[\\\"hour\\\",[1,2,3,4,6,8,12]],[\\\"day\\\",[1]],[\\\"week\\\",\\n[1]],[\\\"month\\\",[1,3,6]],[\\\"year\\\",null]],J={sum:function(a){var c=a.length,b;if(!c&&a.hasNulls)b=null;else if(c)for(b=0;c--;)b+=a[c];return b},average:function(a){var c=a.length;a=J.sum(a);x(a)&&c&&(a/=c);return a},averages:function(){var a=[];h(arguments,function(c){a.push(J.average(c))});return a},open:function(a){return a.length?a[0]:a.hasNulls?null:void 0},high:function(a){return a.length?E(a):a.hasNulls?null:void 0},low:function(a){return a.length?B(a):a.hasNulls?null:void 0},close:function(a){return a.length?\\na[a.length-1]:a.hasNulls?null:void 0},ohlc:function(a,b,d,e){a=J.open(a);b=J.high(b);d=J.low(d);e=J.close(e);if(x(a)||x(b)||x(d)||x(e))return[a,b,d,e]},range:function(a,b){a=J.low(a);b=J.high(b);if(x(a)||x(b))return[a,b];if(null===a&&null===b)return null}};d.groupData=function(a,b,d,e){var c=this.data,f=this.options.data,g=[],k=[],p=[],m=a.length,n,q,r=!!b,w=[];e=\\\"function\\\"===typeof e?e:J[e]||H[this.type]&&J[H[this.type].approximation]||J[v.approximation];var u=this.pointArrayMap,t=u&&u.length,y=\\n0;q=0;var K,A;t?h(u,function(){w.push([])}):w.push([]);K=t||1;for(A=0;A<=m&&!(a[A]>=d[0]);A++);for(A;A<=m;A++){for(;void 0!==d[y+1]&&a[A]>=d[y+1]||A===m;){n=d[y];this.dataGroupInfo={start:q,length:w[0].length};q=e.apply(this,w);void 0!==q&&(g.push(n),k.push(q),p.push(this.dataGroupInfo));q=A;for(n=0;nthis.chart.plotSizeX/e||b&&l.forced)&&(f=!0);return f?\\ne:0};F.prototype.setDataGrouping=function(a,b){var c;b=m(b,!0);a||(a={forced:!1,units:null});if(this instanceof F)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:a},!1);else h(this.chart.options.series,function(c){c.dataGrouping=a},!1);b&&this.chart.redraw()}})(L);(function(a){var E=a.each,B=a.Point,F=a.seriesType,D=a.seriesTypes;F(\\\"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'},\\nthreshold: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\\\"},pointAttribs:function(a,h){h=D.column.prototype.pointAttribs.call(this,a,h);var n=this.options;delete h.fill;!a.options.color&&n.upColor&&a.opend)););B(e,function(a,d){var f;void 0===a.plotY&&(a.x>=c.min&&a.x<=c.max?a.plotY=g.chartHeight-q.bottom-(q.opposite?q.height:0)+q.offset-t.top:a.shapeArgs={});a.plotX+=w;(b=e[d-1])&&b.plotX===a.plotX&&(void 0===\\nb.stackIndex&&(b.stackIndex=0),f=b.stackIndex+1);a.stackIndex=f})},drawPoints:function(){var f=this.points,g=this.chart,e=g.renderer,d,h,b=this.options,m=b.y,n,r,q,t,c,w,u,y=this.yAxis;for(r=f.length;r--;)q=f[r],u=q.plotX>this.xAxis.len,d=q.plotX,t=q.stackIndex,n=q.options.shape||b.shape,h=q.plotY,void 0!==h&&(h=q.plotY+m-(void 0!==t&&t*b.stackDistance)),c=t?void 0:q.plotX,w=t?void 0:q.plotY,t=q.graphic,void 0!==h&&0<=d&&!u?(t||(t=q.graphic=e.label(\\\"\\\",null,null,n,null,null,b.useHTML).attr(this.pointAttribs(q)).css(F(b.style,\\nq.style)).attr({align:\\\"flag\\\"===n?\\\"left\\\":\\\"center\\\",width:b.width,height:b.height,\\\"text-align\\\":b.textAlign}).addClass(\\\"highcharts-point\\\").add(this.markerGroup),q.graphic.div&&(q.graphic.div.point=q),t.shadow(b.shadow)),0d&&(f-=Math.round((h-d)/2),d=h);f=t[a](f,e,d,h);g&&b&&f.push(\\\"M\\\",g,e>b?e:e+h,\\\"L\\\",g,b);return f}});n===x&&B([\\\"flag\\\",\\\"circlepin\\\",\\\"squarepin\\\"],function(a){x.prototype.symbols[a]=t[a]})})(L);(function(a){function E(a,b,d){this.init(a,b,d)}var B=a.addEvent,F=a.Axis,D=a.correctFloat,n=a.defaultOptions,h=a.defined,u=a.destroyObjectProperties,r=a.doc,x=a.each,t=a.fireEvent,m=a.hasTouch,f=a.isTouchDevice,\\ng=a.merge,e=a.pick,d=a.removeEvent,p=a.wrap,b,A={height:f?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!f,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};n.scrollbar=g(!0,A,n.scrollbar);a.swapXY=b=function(a,b){var d=\\na.length,e;if(b)for(b=0;b=m?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===d.showFull&&(0>=a&&1<=b?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var d=a.chart.pointer.normalize(b),e=a.options.vertical?\\\"chartY\\\":\\\"chartX\\\",c=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][e]||\\n(d=a.cursorToScrollbarPosition(d)[e],e=a[e],e=d-e,a.hasDragged=!0,a.updatePosition(c[0]+e,c[1]+e),a.hasDragged&&t(a,\\\"changed\\\",{from:a.from,to:a.to,trigger:\\\"scrollbar\\\",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&t(a,\\\"changed\\\",{from:a.from,to:a.to,trigger:\\\"scrollbar\\\",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b);b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;\\na.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var d=D(a.to-a.from)*a.options.step;a.updatePosition(D(a.from-d),D(a.to-d));t(a,\\\"changed\\\",{from:a.from,to:a.to,trigger:\\\"scrollbar\\\",DOMEvent:b})};a.buttonToMaxClick=function(b){var d=(a.to-a.from)*a.options.step;a.updatePosition(a.from+d,a.to+d);t(a,\\\"changed\\\",{from:a.from,to:a.to,trigger:\\\"scrollbar\\\",DOMEvent:b})};a.trackClick=function(b){var d=a.chart.pointer.normalize(b),e=a.to-a.from,c=a.y+a.scrollbarTop,f=a.x+a.scrollbarLeft;\\na.options.vertical&&d.chartY>c||!a.options.vertical&&d.chartX>f?a.updatePosition(a.from+e,a.to+e):a.updatePosition(a.from-e,a.to-e);t(a,\\\"changed\\\",{from:a.from,to:a.to,trigger:\\\"scrollbar\\\",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a,b){1a&&(b=D(b-a),a=0);\\nthis.from=a;this.to=b},update:function(a){this.destroy();this.init(this.chart.renderer,g(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],b=this.scrollbarButtons,d=this.scrollbarGroup.element,e=this.mouseDownHandler,c=this.mouseMoveHandler,f=this.mouseUpHandler,a=[[b[a[0]].element,\\\"click\\\",this.buttonToMinClick],[b[a[1]].element,\\\"click\\\",this.buttonToMaxClick],[this.track.element,\\\"click\\\",this.trackClick],[d,\\\"mousedown\\\",e],[r,\\\"mousemove\\\",c],[r,\\\"mouseup\\\",f]];\\nm&&a.push([d,\\\"touchstart\\\",e],[r,\\\"touchmove\\\",c],[r,\\\"touchend\\\",f]);x(a,function(a){B.apply(null,a)});this._events=a},removeEvents:function(){x(this._events,function(a){d.apply(null,a)});this._events.length=0},destroy:function(){var a=this.chart.scroller;this.removeEvents();x([\\\"track\\\",\\\"scrollbarRifles\\\",\\\"scrollbar\\\",\\\"scrollbarGroup\\\",\\\"group\\\"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&this===a.scrollbar&&(a.scrollbar=null,u(a.scrollbarButtons))}};p(F.prototype,\\\"init\\\",function(a){var b=\\nthis;a.apply(b,Array.prototype.slice.call(arguments,1));b.options.scrollbar&&b.options.scrollbar.enabled&&(b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new E(b.chart.renderer,b.options.scrollbar,b.chart),B(b.scrollbar,\\\"changed\\\",function(a){var d=Math.min(e(b.options.min,b.min),b.min,b.dataMin),c=Math.max(e(b.options.max,b.max),b.max,b.dataMax)-d,f;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(f=d+c*this.to,d+=c*this.from):(f=d+c*(1-this.from),d+=c*(1-\\nthis.to));b.setExtremes(d,f,!0,!1,a)}))});p(F.prototype,\\\"render\\\",function(a){var b=Math.min(e(this.options.min,this.min),this.min,this.dataMin),d=Math.max(e(this.options.max,this.max),this.max,this.dataMax),f=this.scrollbar,c=this.titleOffset||0;a.apply(this,Array.prototype.slice.call(arguments,1));if(f){this.horiz?(f.position(this.left,this.top+this.height+2+this.chart.scrollbarsOffsets[1]+(this.opposite?0:c+this.axisTitleMargin+this.offset),this.width,this.height),c=1):(f.position(this.left+this.width+\\n2+this.chart.scrollbarsOffsets[0]+(this.opposite?c+this.axisTitleMargin+this.offset:0),this.top,this.width,this.height),c=0);if(!this.opposite&&!this.horiz||this.opposite&&this.horiz)this.chart.scrollbarsOffsets[c]+=this.scrollbar.size+this.scrollbar.options.margin;isNaN(b)||isNaN(d)||!h(this.min)||!h(this.max)?f.setRange(0,0):(c=(this.min-b)/(d-b),b=(this.max-b)/(d-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?f.setRange(c,b):f.setRange(1-b,1-c))}});p(F.prototype,\\\"getOffset\\\",function(a){var b=\\nthis.horiz?2:1,d=this.scrollbar;a.apply(this,Array.prototype.slice.call(arguments,1));d&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[b]+=d.size+d.options.margin)});p(F.prototype,\\\"destroy\\\",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy());a.apply(this,Array.prototype.slice.call(arguments,1))});a.Scrollbar=E})(L);(function(a){function E(a){this.init(a)}var B=a.addEvent,F=a.Axis,D=a.Chart,n=a.color,h=a.defaultOptions,u=a.defined,r=a.destroyObjectProperties,x=a.doc,t=\\na.each,m=a.erase,f=a.error,g=a.extend,e=a.grep,d=a.hasTouch,p=a.isNumber,b=a.isObject,A=a.merge,v=a.pick,H=a.removeEvent,q=a.Scrollbar,J=a.Series,c=a.seriesTypes,w=a.wrap,K=a.swapXY,y=[].concat(a.defaultDataGroupingUnits),G=function(a){var b=e(arguments,p);if(b.length)return Math[a].apply(0,b)};y[4]=[\\\"day\\\",[1,2,3,4]];y[5]=[\\\"week\\\",[1,2,3]];c=void 0===c.areaspline?\\\"line\\\":\\\"areaspline\\\";g(h,{navigator:{height:40,margin:25,maskInside:!0,handles:{backgroundColor:\\\"#f2f2f2\\\",borderColor:\\\"#999999\\\"},maskFill:n(\\\"#6685c2\\\").setOpacity(.3).get(),\\noutlineColor:\\\"#cccccc\\\",outlineWidth:1,series:{type:c,color:\\\"#335cad\\\",fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:\\\"average\\\",enabled:!0,groupPixelWidth:2,smoothed:!0,units:y},dataLabels:{enabled:!1,zIndex:2},id:\\\"highcharts-navigator-series\\\",className:\\\"highcharts-navigator-series\\\",lineColor:null,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{className:\\\"highcharts-navigator-xaxis\\\",tickLength:0,lineWidth:0,gridLineColor:\\\"#e6e6e6\\\",gridLineWidth:1,tickPixelInterval:200,\\nlabels:{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}}});E.prototype={drawHandle:function(a,b,c,d){this.handles[b][d](c?{translateX:Math.round(this.left+this.height/2-8),translateY:Math.round(this.top+parseInt(a,10)+.5)}:{translateX:Math.round(this.left+parseInt(a,10)),translateY:Math.round(this.top+\\nthis.height/2-8)})},getHandlePath:function(a){return K([\\\"M\\\",-4.5,.5,\\\"L\\\",3.5,.5,\\\"L\\\",3.5,15.5,\\\"L\\\",-4.5,15.5,\\\"L\\\",-4.5,.5,\\\"M\\\",-1.5,4,\\\"L\\\",-1.5,12,\\\"M\\\",.5,4,\\\"L\\\",.5,12],a)},drawOutline:function(a,b,c,d){var e=this.navigatorOptions.maskInside,f=this.outline.strokeWidth(),l=f/2,f=f%2/2,k=this.outlineHeight,g=this.scrollbarHeight,h=this.size,m=this.left-g,n=this.top;c?(m-=l,c=n+b+f,b=n+a+f,a=[\\\"M\\\",m+k,n-g-f,\\\"L\\\",m+k,c,\\\"L\\\",m,c,\\\"L\\\",m,b,\\\"L\\\",m+k,b,\\\"L\\\",m+k,n+h+g].concat(e?[\\\"M\\\",m+k,c-l,\\\"L\\\",m+k,b+l]:[])):(a+=m+g-f,b+=\\nm+g-f,n+=l,a=[\\\"M\\\",m,n,\\\"L\\\",a,n,\\\"L\\\",a,n+k,\\\"L\\\",b,n+k,\\\"L\\\",b,n,\\\"L\\\",m+h+2*g,n].concat(e?[\\\"M\\\",a-l,n,\\\"L\\\",b+l,n]:[]));this.outline[d]({d:a})},drawMasks:function(a,b,c,d){var e=this.left,f=this.top,l=this.height,k,g,h,m;c?(h=[e,e,e],m=[f,f+a,f+b],g=[l,l,l],k=[a,b-a,this.size-b]):(h=[e,e+a,e+b],m=[f,f,f],g=[a,b-a,this.size-b],k=[l,l,l]);t(this.shades,function(a,b){a[d]({x:h[b],y:m[b],width:g[b],height:k[b]})})},renderElements:function(){var a=this,b=a.navigatorOptions,c=b.maskInside,d=a.chart,e=d.inverted,f=\\nd.renderer,g;a.navigatorGroup=g=f.g(\\\"navigator\\\").attr({zIndex:8,visibility:\\\"hidden\\\"}).add();var h={cursor:e?\\\"ns-resize\\\":\\\"ew-resize\\\"};t([!c,c,!c],function(c,d){a.shades[d]=f.rect().addClass(\\\"highcharts-navigator-mask\\\"+(1===d?\\\"-inside\\\":\\\"-outside\\\")).attr({fill:c?b.maskFill:\\\"rgba(0,0,0,0)\\\"}).css(1===d&&h).add(g)});a.outline=f.path().addClass(\\\"highcharts-navigator-outline\\\").attr({\\\"stroke-width\\\":b.outlineWidth,stroke:b.outlineColor}).add(g);t([0,1],function(c){a.handles[c]=f.path(a.getHandlePath(e)).attr({zIndex:7-\\nc}).addClass(\\\"highcharts-navigator-handle highcharts-navigator-handle-\\\"+[\\\"left\\\",\\\"right\\\"][c]).add(g);var d=b.handles;a.handles[c].attr({fill:d.backgroundColor,stroke:d.borderColor,\\\"stroke-width\\\":1}).css(h)})},update:function(a){this.destroy();A(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(a,b,c,d){var e=this.chart,f,l,k=this.scrollbarHeight,g,h=this.xAxis;f=h.fake?e.xAxis[0]:h;var m=this.navigatorEnabled,n,q=this.rendered;l=e.inverted;var r=e.xAxis[0].minRange;\\nif(!this.hasDragged||u(c)){if(!p(a)||!p(b))if(q)c=0,d=h.width;else return;this.left=v(h.left,e.plotLeft+k+(l?e.plotWidth:0));this.size=n=g=v(h.len,(l?e.plotHeight:e.plotWidth)-2*k);e=l?k:g+2*k;c=v(c,h.toPixels(a,!0));d=v(d,h.toPixels(b,!0));p(c)&&Infinity!==Math.abs(c)||(c=0,d=e);a=h.toValue(c,!0);b=h.toValue(d,!0);if(Math.abs(b-a)=l&&(a=l-g,m=this.getUnionExtremes().dataMax),a!==e&&(this.fixedWidth=g,b=d.toFixedRange(a,a+g,null,m),c.xAxis[0].setExtremes(Math.min(b.min,b.max),Math.max(b.min,b.max),!0,null,{trigger:\\\"navigator\\\"})))},handlesMousedown:function(a,b){this.chart.pointer.normalize(a);a=this.chart;var c=a.xAxis[0],d=a.inverted&&!c.reversed||!a.inverted&&c.reversed;0===b?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=d?c.min:c.max):(this.grabbedRight=\\n!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=d?c.max:c.min);a.fixedRange=null},onMouseMove:function(a){var b=this,c=b.chart,d=b.left,e=b.navigatorSize,f=b.range,l=b.dragOffset,g=c.inverted;a.touches&&0===a.touches[0].pageX||(a=c.pointer.normalize(a),c=a.chartX,g&&(d=b.top,c=a.chartY),b.grabbedLeft?(b.hasDragged=!0,b.render(0,0,c-d,b.otherHandlePos)):b.grabbedRight?(b.hasDragged=!0,b.render(0,0,b.otherHandlePos,c-d)):b.grabbedCenter&&(b.hasDragged=!0,ce+l-f&&(c=e+l-f),b.render(0,\\n0,c-l,c-l+f)),b.hasDragged&&b.scrollbar&&b.scrollbar.options.liveRedraw&&(a.DOMType=a.type,setTimeout(function(){b.onMouseUp(a)},0)))},onMouseUp:function(a){var b=this.chart,c=this.xAxis,d=this.scrollbar,e,f,l=a.DOMEvent||a;(!this.hasDragged||d&&d.hasDragged)&&\\\"scrollbar\\\"!==a.trigger||(this.zoomedMin===this.otherHandlePos?e=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(f=this.fixedExtreme),this.zoomedMax===this.size&&(f=this.getUnionExtremes().dataMax),c=c.toFixedRange(this.zoomedMin,this.zoomedMax,\\ne,f),u(c.min)&&b.xAxis[0].setExtremes(Math.min(c.min,c.max),Math.max(c.min,c.max),!0,this.hasDragged?!1:null,{trigger:\\\"navigator\\\",triggerOp:\\\"navigator-drag\\\",DOMEvent:l}));\\\"mousemove\\\"!==a.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null)},removeEvents:function(){this.eventsToUnbind&&(t(this.eventsToUnbind,function(a){a()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()},removeBaseSeriesEvents:function(){var a=\\nthis.baseSeries||[];this.navigatorEnabled&&a[0]&&!1!==this.navigatorOptions.adaptToUpdatedData&&(t(a,function(a){H(a,\\\"updatedData\\\",this.updatedDataHandler)},this),a[0].xAxis&&H(a[0].xAxis,\\\"foundExtremes\\\",this.modifyBaseAxisExtremes))},init:function(a){var b=a.options,c=b.navigator,d=c.enabled,e=b.scrollbar,f=e.enabled,b=d?c.height:0,l=f?e.height:0;this.handles=[];this.shades=[];this.chart=a;this.setBaseSeries();this.height=b;this.scrollbarHeight=l;this.scrollbarEnabled=f;this.navigatorEnabled=d;this.navigatorOptions=\\nc;this.scrollbarOptions=e;this.outlineHeight=b+l;this.opposite=v(c.opposite,!d&&a.inverted);var g=this,e=g.baseSeries,f=a.xAxis.length,h=a.yAxis.length,m=e&&e[0]&&e[0].xAxis||a.xAxis[0];a.extraMargin={type:g.opposite?\\\"plotTop\\\":\\\"marginBottom\\\",value:(d||!a.inverted?g.outlineHeight:0)+c.margin};a.inverted&&(a.extraMargin.type=g.opposite?\\\"marginRight\\\":\\\"plotLeft\\\");a.isDirtyBox=!0;g.navigatorEnabled?(g.xAxis=new F(a,A({breaks:m.options.breaks,ordinal:m.options.ordinal},c.xAxis,{id:\\\"navigator-x-axis\\\",yAxis:\\\"navigator-y-axis\\\",\\nisX:!0,type:\\\"datetime\\\",index:f,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},a.inverted?{offsets:[l,0,-l,0],width:b}:{offsets:[0,-l,0,l],height:b})),g.yAxis=new F(a,A(c.yAxis,{id:\\\"navigator-y-axis\\\",alignTicks:!1,offset:0,index:h,zoomEnabled:!1},a.inverted?{width:b}:{height:b})),e||c.series.data?g.addBaseSeries():0===a.series.length&&w(a,\\\"redraw\\\",function(b,c){0=Math.round(a.size);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},addChartEvents:function(){B(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,\\nb.max)})},destroy:function(){this.removeEvents();this.xAxis&&(m(this.chart.xAxis,this.xAxis),m(this.chart.axes,this.xAxis));this.yAxis&&(m(this.chart.yAxis,this.yAxis),m(this.chart.axes,this.yAxis));t(this.series||[],function(a){a.destroy&&a.destroy()});t(\\\"series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered\\\".split(\\\" \\\"),function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);t([this.handles],function(a){r(a)},this)}};\\na.Navigator=E;w(F.prototype,\\\"zoom\\\",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,g=e.navigator,e=e.rangeSelector,k;this.isXAxis&&(g&&g.enabled||e&&e.enabled)&&(\\\"x\\\"===f?d.resetZoomButton=\\\"blocked\\\":\\\"y\\\"===f?k=!1:\\\"xy\\\"===f&&(d=this.previousZoom,u(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!==k?k:a.call(this,b,c)});w(D.prototype,\\\"init\\\",function(a,b,c){B(this,\\\"beforeRender\\\",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=\\nthis.navigator=new E(this)});a.call(this,b,c)});w(D.prototype,\\\"setChartSize\\\",function(a){var b=this.legend,c=this.navigator,d,e,f,g;a.apply(this,[].slice.call(arguments,1));c&&(e=b.options,f=c.xAxis,g=c.yAxis,d=c.scrollbarHeight,this.inverted?(c.left=c.opposite?this.chartWidth-d-c.height:this.spacing[3]+d,c.top=this.plotTop+d):(c.left=this.plotLeft+d,c.top=c.navigatorOptions.top||this.chartHeight-c.height-d-this.spacing[2]-(\\\"bottom\\\"===e.verticalAlign&&e.enabled&&!e.floating?b.legendHeight+v(e.margin,\\n10):0)),f&&g&&(this.inverted?f.options.left=g.options.left=c.left:f.options.top=g.options.top=c.top,f.setAxisSize(),g.setAxisSize()))});w(J.prototype,\\\"addPoint\\\",function(a,c,d,e,g){var k=this.options.turboThreshold;k&&this.xData.length>k&&b(c,!0)&&this.chart.navigator&&f(20,!0);a.call(this,c,d,e,g)});w(D.prototype,\\\"addSeries\\\",function(a,b,c,d){a=a.call(this,b,!1,d);this.navigator&&this.navigator.setBaseSeries();v(c,!0)&&this.redraw();return a});w(J.prototype,\\\"update\\\",function(a,b,c){a.call(this,b,\\n!1);this.chart.navigator&&this.chart.navigator.setBaseSeries();v(c,!0)&&this.chart.redraw()});D.prototype.callbacks.push(function(a){var b=a.navigator;b&&(a=a.xAxis[0].getExtremes(),b.render(a.min,a.max))})})(L);(function(a){function E(a){this.init(a)}var B=a.addEvent,F=a.Axis,D=a.Chart,n=a.css,h=a.createElement,u=a.dateFormat,r=a.defaultOptions,x=r.global.useUTC,t=a.defined,m=a.destroyObjectProperties,f=a.discardElement,g=a.each,e=a.extend,d=a.fireEvent,p=a.Date,b=a.isNumber,A=a.merge,v=a.pick,H=\\na.pInt,q=a.splat,J=a.wrap;e(r,{rangeSelector:{buttonTheme:{\\\"stroke-width\\\":0,width:28,height:18,padding:2,zIndex:7},height:35,inputPosition:{align:\\\"right\\\"},labelStyle:{color:\\\"#666666\\\"}}});r.lang=A(r.lang,{rangeSelectorZoom:\\\"Zoom\\\",rangeSelectorFrom:\\\"From\\\",rangeSelectorTo:\\\"To\\\"});E.prototype={clickButton:function(a,d){var c=this,e=c.chart,f=c.buttonOptions[a],h=e.xAxis[0],m=e.scroller&&e.scroller.getUnionExtremes()||h||{},k=m.dataMin,n=m.dataMax,p,r=h&&Math.round(Math.min(h.max,v(n,h.max))),t=f.type,\\nu,m=f._range,w,C,A,D=f.dataGrouping;if(null!==k&&null!==n){e.fixedRange=m;D&&(this.forcedDataGrouping=!0,F.prototype.setDataGrouping.call(h||{chart:this.chart},D,!1));if(\\\"month\\\"===t||\\\"year\\\"===t)h?(t={range:f,max:r,dataMin:k,dataMax:n},p=h.minFromRange.call(t),b(t.newMax)&&(r=t.newMax)):m=f;else if(m)p=Math.max(r-m,k),r=Math.min(p+m,n);else if(\\\"ytd\\\"===t)if(h)void 0===n&&(k=Number.MAX_VALUE,n=Number.MIN_VALUE,g(e.series,function(a){a=a.xData;k=Math.min(a[0],k);n=Math.max(a[a.length-1],n)}),d=!1),r=\\nc.getYTDExtremes(n,k,x),p=w=r.min,r=r.max;else{B(e,\\\"beforeRender\\\",function(){c.clickButton(a)});return}else\\\"all\\\"===t&&h&&(p=k,r=n);c.setSelected(a);h?h.setExtremes(p,r,v(d,1),null,{trigger:\\\"rangeSelectorButton\\\",rangeSelectorButton:f}):(u=q(e.options.xAxis)[0],A=u.range,u.range=m,C=u.min,u.min=w,B(e,\\\"load\\\",function(){u.range=A;u.min=C}))}},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,\\ntext:\\\"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),f=c.selected,h=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=B(a.container,\\\"mousedown\\\",h);this.unResize=B(a,\\\"resize\\\",h);g(e,b.computeButtonRange);void 0!==f&&e[f]&&this.clickButton(f,\\n!1);B(a,\\\"load\\\",function(){B(a.xAxis[0],\\\"setExtremes\\\",function(c){this.max-this.min!==a.fixedRange&&\\\"rangeSelectorButton\\\"!==c.trigger&&\\\"updatedData\\\"!==c.trigger&&b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,d=a.xAxis[0],e=Math.round(d.max-d.min),f=!d.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||d,h=a.dataMin,l=a.dataMax,a=this.getYTDExtremes(l,h,x),m=a.min,k=a.max,n=this.selected,p=b(n),q=this.options.allButtonsEnabled,r=this.buttons;\\ng(this.buttonOptions,function(a,b){var c=a._range,g=a.type,t=a.count||1;a=r[b];var u=0;b=b===n;var w=c>l-h,v=c=864E5*{month:28,year:365}[g]*t&&e<=864E5*{month:31,year:366}[g]*t?c=!0:\\\"ytd\\\"===g?(c=k-m===e,x=!b):\\\"all\\\"===g&&(c=d.max-d.min>=l-h,y=!b&&p&&c);g=!q&&(w||v||y||f);c=b&&c||c&&!p&&!x;g?u=3:c&&(p=!0,u=2);a.state!==u&&a.setState(u)})},computeButtonRange:function(a){var b=a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,\\nday: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},setInputValue:function(a,b){var c=this.chart.options.rangeSelector,d=this[a+\\\"Input\\\"];t(b)&&(d.previousValue=d.HCTime,d.HCTime=b);d.value=u(c.inputEditDateFormat||\\\"%Y-%m-%d\\\",d.HCTime);this[a+\\\"DateBox\\\"].attr({text:u(c.inputDateFormat||\\\"%b %e, %Y\\\",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+\\\"DateBox\\\"];n(this[a+\\\"Input\\\"],{left:b.translateX+c.x+\\\"px\\\",top:b.translateY+\\n\\\"px\\\",width:c.width-2+\\\"px\\\",height:c.height-2+\\\"px\\\",border:\\\"2px solid silver\\\"})},hideInput:function(a){n(this[a+\\\"Input\\\"],{border:0,width:\\\"1px\\\",height:\\\"1px\\\"});this.setInputValue(a)},drawInput:function(a){function c(){var a=q.value,c=(m.inputDateParser||Date.parse)(a),e=f.xAxis[0],g=f.scroller&&f.scroller.xAxis?f.scroller.xAxis:e,k=g.dataMin,g=g.dataMax;c!==q.previousValue&&(q.previousValue=c,b(c)||(c=a.split(\\\"-\\\"),c=Date.UTC(H(c[0]),H(c[1])-1,H(c[2]))),b(c)&&(x||(c+=6E4*(new Date).getTimezoneOffset()),\\np?c>d.maxInput.HCTime?c=void 0:cg&&(c=g),void 0!==c&&e.setExtremes(p?c:e.min,p?e.max:c,void 0,void 0,{trigger:\\\"rangeSelectorInput\\\"})))}var d=this,f=d.chart,g=f.renderer.style||{},l=f.renderer,m=f.options.rangeSelector,k=d.div,p=\\\"min\\\"===a,q,t,u=this.inputGroup;this[a+\\\"Label\\\"]=t=l.label(r.lang[p?\\\"rangeSelectorFrom\\\":\\\"rangeSelectorTo\\\"],this.inputGroup.offset).addClass(\\\"highcharts-range-label\\\").attr({padding:2}).add(u);u.offset+=t.width+5;this[a+\\\"DateBox\\\"]=l=l.label(\\\"\\\",\\nu.offset).addClass(\\\"highcharts-range-input\\\").attr({padding:2,width:m.inputBoxWidth||90,height:m.inputBoxHeight||17,stroke:m.inputBoxBorderColor||\\\"#cccccc\\\",\\\"stroke-width\\\":1,\\\"text-align\\\":\\\"center\\\"}).on(\\\"click\\\",function(){d.showInput(a);d[a+\\\"Input\\\"].focus()}).add(u);u.offset+=l.width+(p?10:0);this[a+\\\"Input\\\"]=q=h(\\\"input\\\",{name:a,className:\\\"highcharts-range-selector\\\",type:\\\"text\\\"},{top:f.plotTop+\\\"px\\\"},k);t.css(A(g,m.labelStyle));l.css(A({color:\\\"#333333\\\"},g,m.inputStyle));n(q,e({position:\\\"absolute\\\",border:0,\\nwidth:\\\"1px\\\",height:\\\"1px\\\",padding:0,textAlign:\\\"center\\\",fontSize:g.fontSize,fontFamily:g.fontFamily,left:\\\"-9em\\\"},m.inputStyle));q.onfocus=function(){d.showInput(a)};q.onblur=function(){d.hideInput(a)};q.onchange=c;q.onkeypress=function(a){13===a.keyCode&&c()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a=v((b.buttonPosition||{}).y,a.plotTop-a.axisOffset[0]-b.height);return{buttonTop:a,inputTop:a-10}},getYTDExtremes:function(a,b,d){var c=new p(a),e=c[p.hcGetFullYear]();d=d?p.UTC(e,\\n0,1):+new p(e,0,1);b=Math.max(b||0,d);c=c.getTime();return{max:Math.min(a||c,c),min:b}},render:function(a,b){var c=this,d=c.chart,f=d.renderer,l=d.container,m=d.options,k=m.exporting&&!1!==m.exporting.enabled&&m.navigation&&m.navigation.buttonOptions,n=m.rangeSelector,p=c.buttons,m=r.lang,q=c.div,q=c.inputGroup,u=n.buttonTheme,w=n.buttonPosition||{},x=n.inputEnabled,C=u&&u.states,A=d.plotLeft,B,D=this.getPosition(),E=c.group,F=c.rendered;!1!==n.enabled&&(F||(c.group=E=f.g(\\\"range-selector-buttons\\\").add(),\\nc.zoomText=f.text(m.rangeSelectorZoom,v(w.x,A),15).css(n.labelStyle).add(E),B=v(w.x,A)+c.zoomText.getBBox().width+5,g(c.buttonOptions,function(a,b){p[b]=f.button(a.text,B,0,function(){c.clickButton(b);c.isActive=!0},u,C&&C.hover,C&&C.select,C&&C.disabled).attr({\\\"text-align\\\":\\\"center\\\"}).add(E);B+=p[b].width+v(n.buttonSpacing,5)}),!1!==x&&(c.div=q=h(\\\"div\\\",null,{position:\\\"relative\\\",height:0,zIndex:1}),l.parentNode.insertBefore(q,l),c.inputGroup=q=f.g(\\\"input-group\\\").add(),q.offset=0,c.drawInput(\\\"min\\\"),\\nc.drawInput(\\\"max\\\"))),c.updateButtonStates(),E[F?\\\"animate\\\":\\\"attr\\\"]({translateY:D.buttonTop}),!1!==x&&(q.align(e({y:D.inputTop,width:q.offset,x:k&&D.inputTop<(k.y||0)+k.height-d.spacing[0]?-40:0},n.inputPosition),!0,d.spacingBox),t(x)||(d=E.getBBox(),q[q.alignAttr.translateXe&&(f?a=d-c:d=a+c);b(a)||(a=d=void 0);\\nreturn{min:a,max:d}};F.prototype.minFromRange=function(){var a=this.range,d={month:\\\"Month\\\",year:\\\"FullYear\\\"}[a.type],e,f=this.max,g,h,m=function(a,b){var c=new Date(a),e=c[\\\"get\\\"+d]();c[\\\"set\\\"+d](e+b);e===c[\\\"get\\\"+d]()&&c.setDate(0);return c.getTime()-a};b(a)?(e=f-a,h=a):(e=f+m(f,-a.count),this.chart&&(this.chart.fixedRange=f-e));g=v(this.dataMin,Number.MIN_VALUE);b(e)||(e=g);e<=g&&(e=g,void 0===h&&(h=m(e,a.count)),this.newMax=Math.min(e+h,this.dataMax));b(f)||(e=void 0);return e};J(D.prototype,\\\"init\\\",\\nfunction(a,b,d){B(this,\\\"init\\\",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new E(this))});a.call(this,b,d)});D.prototype.callbacks.push(function(a){function c(){d=a.xAxis[0].getExtremes();b(d.min)&&e.render(d.min,d.max)}var d,e=a.rangeSelector,f,g;e&&(g=B(a.xAxis[0],\\\"afterSetExtremes\\\",function(a){e.render(a.min,a.max)}),f=B(a,\\\"redraw\\\",c),c());B(a,\\\"destroy\\\",function(){e&&(f(),g())})});a.RangeSelector=E})(L);(function(a){var E=a.arrayMax,B=a.arrayMin,F=a.Axis,D=a.Chart,n=a.defined,\\nh=a.each,u=a.extend,r=a.format,x=a.grep,t=a.inArray,m=a.isNumber,f=a.isString,g=a.map,e=a.merge,d=a.pick,p=a.Point,b=a.Renderer,A=a.Series,v=a.splat,H=a.SVGRenderer,q=a.VMLRenderer,J=a.wrap,c=A.prototype,w=c.init,K=c.processData,y=p.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(b,c,h){var k=f(b)||b.nodeName,l=arguments[k?1:0],m=l.series,n=a.getOptions(),p,q=d(l.navigator&&l.navigator.enabled,n.navigator.enabled,!0),r=q?{startOnTick:!1,endOnTick:!1}:null,t={marker:{enabled:!1,radius:2}},\\nu={shadow:!1,borderWidth:0};l.xAxis=g(v(l.xAxis||{}),function(a){return e({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:\\\"justify\\\"},showLastLabel:!0},n.xAxis,a,{type:\\\"datetime\\\",categories:null},r)});l.yAxis=g(v(l.yAxis||{}),function(a){p=d(a.opposite,!0);return e({labels:{y:-2},opposite:p,showLastLabel:!1,title:{text:null}},n.yAxis,a)});l.series=null;l=e({chart:{panning:!0,pinchType:\\\"x\\\"},navigator:{enabled:q},scrollbar:{enabled:d(n.scrollbar.enabled,!0)},rangeSelector:{enabled:d(n.rangeSelector.enabled,\\n!0)},title:{text:null},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:t,spline:t,area:t,areaspline:t,arearange:t,areasplinerange:t,column:u,columnrange:u,candlestick:u,ohlc:u}},l,{isStock:!0});l.series=m;return k?new D(b,l,h):new D(l,c)};J(F.prototype,\\\"autoLabelAlign\\\",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options.isStock&&\\\"yAxis\\\"===this.coll&&(c=c.top+\\\",\\\"+c.height,!b[c]&&d.enabled)?(15===d.x&&\\n(d.x=0),void 0===d.align&&(d.align=\\\"right\\\"),b[c]=this,\\\"right\\\"):a.call(this,[].slice.call(arguments,1))});J(F.prototype,\\\"destroy\\\",function(a){var b=this.chart,c=this.options&&this.options.top+\\\",\\\"+this.options.height;c&&b._labelPanes&&b._labelPanes[c]===this&&delete b._labelPanes[c];return a.call(this,Array.prototype.slice.call(arguments,1))});J(F.prototype,\\\"getPlotLinePath\\\",function(b,c,e,k,p,q){var l=this,r=this.isLinked&&!this.series?this.linkedParent.series:this.series,u=l.chart,v=u.renderer,w=\\nl.left,x=l.top,z,y,A,B,G=[],D=[],E,I;if(\\\"xAxis\\\"!==l.coll&&\\\"yAxis\\\"!==l.coll)return b.apply(this,[].slice.call(arguments,1));D=function(a){var b=\\\"xAxis\\\"===a?\\\"yAxis\\\":\\\"xAxis\\\";a=l.options[b];return m(a)?[u[b][a]]:f(a)?[u.get(a)]:g(r,function(a){return a[b]})}(l.coll);h(l.isXAxis?u.yAxis:u.xAxis,function(a){if(n(a.options.id)?-1===a.options.id.indexOf(\\\"navigator\\\"):1){var b=a.isXAxis?\\\"yAxis\\\":\\\"xAxis\\\",b=n(a.options[b])?u[b][a.options[b]]:u[b][0];l===b&&D.push(a)}});E=D.length?[]:[l.isXAxis?u.yAxis[0]:u.xAxis[0]];\\nh(D,function(b){-1!==t(b,E)||a.find(E,function(a){return a.pos===b.pos&&a.len&&b.len})||E.push(b)});I=d(q,l.translate(c,null,null,k));m(I)&&(l.horiz?h(E,function(a){var b;y=a.pos;B=y+a.len;z=A=Math.round(I+l.transB);if(zw+l.width)p?z=A=Math.min(Math.max(w,z),w+l.width):b=!0;b||G.push(\\\"M\\\",z,y,\\\"L\\\",A,B)}):h(E,function(a){var b;z=a.pos;A=z+a.len;y=B=Math.round(x+l.height-I);if(yx+l.height)p?y=B=Math.min(Math.max(x,y),l.top+l.height):b=!0;b||G.push(\\\"M\\\",z,y,\\\"L\\\",A,B)}));return 0=f&&(x=-(m.translateX+b.width-f));m.attr({x:p+x,y:l,anchorX:h?p:this.opposite?0:a.chartWidth,anchorY:h?this.opposite?a.chartHeight:0:l+b.height/2})}});c.init=function(){w.apply(this,arguments);this.setCompare(this.options.compare)};c.setCompare=function(a){this.modifyValue=\\\"value\\\"===\\na||\\\"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)};c.processData=function(){var a,b=-1,c,d,e,f;K.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,e=d.length,this.pointArrayMap&&(b=t(\\\"close\\\",this.pointArrayMap),-1===b&&(b=t(this.pointValKey||\\\"y\\\",this.pointArrayMap))),\\na=0;a=this.xAxis.min&&0!==f){this.compareValue=f;break}};J(c,\\\"getExtremes\\\",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=B(b),this.dataMax=E(b))});F.prototype.setCompare=function(a,b){this.isXAxis||(h(this.series,function(b){b.setCompare(a)}),d(b,!0)&&this.chart.redraw())};p.prototype.tooltipFormatter=function(b){b=b.replace(\\\"{point.change}\\\",\\n(0c.len*c.tickInterval/(c.max-c.min)&&(n=0),u=x>n&&x<180-n?\\\"left\\\":x>180+n&&x<360-n?\\\"right\\\":\\\"center\\\"):u=\\\"center\\\",a.attr({align:u})),b.x+=q.x,b.y+=g):b=b.call(this,d,e,a,l,q,k,h,m);return b});b(a,\\\"getMarkPath\\\",function(b,d,e,a,l,k,h){var c=this.axis;c.isRadial?(b=c.getPosition(this.pos,c.center[2]/\\n2+a),d=[\\\"M\\\",d,e,\\\"L\\\",b.x,b.y]):d=b.call(this,d,e,a,l,k,h);return d})})(v);(function(a){var r=a.each,t=a.noop,w=a.pick,p=a.Series,m=a.seriesType,f=a.seriesTypes;m(\\\"arearange\\\",\\\"area\\\",{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'\\\\x3cspan style\\\\x3d\\\"color:{series.color}\\\"\\\\x3e\\\\u25cf\\\\x3c/span\\\\x3e {series.name}: \\\\x3cb\\\\x3e{point.low}\\\\x3c/b\\\\x3e - \\\\x3cb\\\\x3e{point.high}\\\\x3c/b\\\\x3e\\\\x3cbr/\\\\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},states:{hover:{halo:!1}}},\\n{pointArrayMap:[\\\"low\\\",\\\"high\\\"],dataLabelCollections:[\\\"dataLabel\\\",\\\"dataLabelUpper\\\"],toYData:function(a){return[a.low,a.high]},pointValKey:\\\"low\\\",deferTranslatePolar:!0,highToXY:function(a){var b=this.chart,d=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=d.x-b.plotLeft;a.plotHigh=d.y-b.plotTop},translate:function(){var a=this,b=a.yAxis,d=!!a.modifyValue;f.area.prototype.translate.apply(a);r(a.points,function(e){var k=e.low,c=e.high,g=e.plotY;null===c||null===k?e.isNull=!0:\\n(e.plotLow=g,e.plotHigh=b.translate(d?a.modifyValue(c,e):c,0,1,0,1),d&&(e.yBottom=e.plotHigh))});this.chart.polar&&r(this.points,function(b){a.highToXY(b)})},getGraphPath:function(a){var b=[],d=[],e,k=f.area.prototype.getGraphPath,c,g,n;n=this.options;var u=this.chart.polar&&!1!==n.connectEnds,l=n.connectNulls,q=n.step;a=a||this.points;for(e=a.length;e--;)c=a[e],c.isNull||u||l||a[e+1]&&!a[e+1].isNull||d.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1}),g={polarPlotY:c.polarPlotY,rectPlotX:c.rectPlotX,\\nyBottom:c.yBottom,plotX:w(c.plotHighX,c.plotX),plotY:c.plotHigh,isNull:c.isNull},d.push(g),b.push(g),c.isNull||u||l||a[e-1]&&!a[e-1].isNull||d.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1});a=k.call(this,a);q&&(!0===q&&(q=\\\"left\\\"),n.step={left:\\\"right\\\",center:\\\"center\\\",right:\\\"left\\\"}[q]);b=k.call(this,b);d=k.call(this,d);n.step=q;n=[].concat(a,b);this.chart.polar||\\\"M\\\"!==d[0]||(d[0]=\\\"L\\\");this.graphPath=n;this.areaPath=this.areaPath.concat(a,d);n.isArea=!0;n.xMap=a.xMap;this.areaPath.xMap=a.xMap;return n},\\ndrawDataLabels:function(){var a=this.data,b=a.length,d,e=[],k=p.prototype,c=this.options.dataLabels,g=c.align,n=c.verticalAlign,u=c.inside,l,q,x=this.chart.inverted;if(c.enabled||this._hasPointLabels){for(d=b;d--;)if(l=a[d])q=u?l.plotHighl.plotLow,l.y=l.high,l._plotY=l.plotY,l.plotY=l.plotHigh,e[d]=l.dataLabel,l.dataLabel=l.dataLabelUpper,l.below=q,x?g||(c.align=q?\\\"right\\\":\\\"left\\\"):n||(c.verticalAlign=q?\\\"top\\\":\\\"bottom\\\"),c.x=c.xHigh,c.y=c.yHigh;k.drawDataLabels&&k.drawDataLabels.apply(this,\\narguments);for(d=b;d--;)if(l=a[d])q=u?l.plotHighl.plotLow,l.dataLabelUpper=l.dataLabel,l.dataLabel=e[d],l.y=l.low,l.plotY=l._plotY,l.below=!q,x?g||(c.align=q?\\\"left\\\":\\\"right\\\"):n||(c.verticalAlign=q?\\\"bottom\\\":\\\"top\\\"),c.x=c.xLow,c.y=c.yLow;k.drawDataLabels&&k.drawDataLabels.apply(this,arguments)}c.align=g;c.verticalAlign=n},alignDataLabel:function(){f.column.prototype.alignDataLabel.apply(this,arguments)},setStackedPoints:t,getSymbol:t,drawPoints:t})})(v);(function(a){var r=a.seriesType;\\nr(\\\"areasplinerange\\\",\\\"arearange\\\",null,{getPointSpline:a.seriesTypes.spline.prototype.getPointSpline})})(v);(function(a){var r=a.defaultPlotOptions,t=a.each,w=a.merge,p=a.noop,m=a.pick,f=a.seriesType,h=a.seriesTypes.column.prototype;f(\\\"columnrange\\\",\\\"arearange\\\",w(r.column,r.arearange,{lineWidth:1,pointRange:null}),{translate:function(){var b=this,d=b.yAxis,a=b.xAxis,k=a.startAngleRad,c,g=b.chart,n=b.xAxis.isRadial,u;h.translate.apply(b);t(b.points,function(e){var q=e.shapeArgs,l=b.options.minPointLength,\\nf,h;e.plotHigh=u=d.translate(e.high,0,1,0,1);e.plotLow=e.plotY;h=u;f=m(e.rectPlotY,e.plotY)-u;Math.abs(f)f&&(f*=-1,h-=f);n?(c=e.barX+k,e.shapeType=\\\"path\\\",e.shapeArgs={d:b.polarArc(h+f,h,c,c+e.pointWidth)}):(q.height=f,q.y=h,e.tooltipPos=g.inverted?[d.len+d.pos-g.plotLeft-h-f/2,a.len+a.pos-g.plotTop-q.x-q.width/2,f]:[a.left-g.plotLeft+q.x+q.width/2,d.pos-g.plotTop+h+f/2,f])})},directTouch:!0,trackerGroups:[\\\"group\\\",\\\"dataLabelsGroup\\\"],drawGraph:p,crispCol:h.crispCol,drawPoints:h.drawPoints,\\ndrawTracker:h.drawTracker,getColumnMetrics:h.getColumnMetrics,animate:function(){return h.animate.apply(this,arguments)},polarArc:function(){return h.polarArc.apply(this,arguments)},pointAttribs:h.pointAttribs})})(v);(function(a){var r=a.each,t=a.isNumber,w=a.merge,p=a.pick,m=a.pInt,f=a.Series,h=a.seriesType,b=a.TrackerMixin;h(\\\"gauge\\\",\\\"line\\\",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:\\\"top\\\",zIndex:2,borderWidth:1,borderColor:\\\"#cccccc\\\"},dial:{},pivot:{},tooltip:{headerFormat:\\\"\\\"},\\nshowInLegend:!1},{angular:!0,directTouch:!0,drawGraph:a.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:[\\\"group\\\",\\\"dataLabelsGroup\\\"],translate:function(){var b=this.yAxis,a=this.options,k=b.center;this.generatePoints();r(this.points,function(c){var d=w(a.dial,c.dial),e=m(p(d.radius,80))*k[2]/200,u=m(p(d.baseLength,70))*e/100,l=m(p(d.rearLength,10))*e/100,q=d.baseWidth||3,f=d.topWidth||1,h=a.overshoot,r=b.startAngleRad+b.translate(c.y,null,null,null,!0);t(h)?(h=h/180*Math.PI,r=Math.max(b.startAngleRad-\\nh,Math.min(b.endAngleRad+h,r))):!1===a.wrap&&(r=Math.max(b.startAngleRad,Math.min(b.endAngleRad,r)));r=180*r/Math.PI;c.shapeType=\\\"path\\\";c.shapeArgs={d:d.path||[\\\"M\\\",-l,-q/2,\\\"L\\\",u,-q/2,e,-f/2,e,f/2,u,q/2,-l,q/2,\\\"z\\\"],translateX:k[0],translateY:k[1],rotation:r};c.plotX=k[0];c.plotY=k[1]})},drawPoints:function(){var b=this,a=b.yAxis.center,k=b.pivot,c=b.options,g=c.pivot,n=b.chart.renderer;r(b.points,function(a){var d=a.graphic,e=a.shapeArgs,g=e.d,k=w(c.dial,a.dial);d?(d.animate(e),e.d=g):(a.graphic=n[a.shapeType](e).attr({rotation:e.rotation,\\nzIndex:1}).addClass(\\\"highcharts-dial\\\").add(b.group),a.graphic.attr({stroke:k.borderColor||\\\"none\\\",\\\"stroke-width\\\":k.borderWidth||0,fill:k.backgroundColor||\\\"#000000\\\"}))});k?k.animate({translateX:a[0],translateY:a[1]}):(b.pivot=n.circle(0,0,p(g.radius,5)).attr({zIndex:2}).addClass(\\\"highcharts-pivot\\\").translate(a[0],a[1]).add(b.group),b.pivot.attr({\\\"stroke-width\\\":g.borderWidth||0,stroke:g.borderColor||\\\"#cccccc\\\",fill:g.backgroundColor||\\\"#000000\\\"}))},animate:function(b){var a=this;b||(r(a.points,function(b){var c=\\nb.graphic;c&&(c.attr({rotation:180*a.yAxis.startAngleRad/Math.PI}),c.animate({rotation:b.shapeArgs.rotation},a.options.animation))}),a.animate=null)},render:function(){this.group=this.plotGroup(\\\"group\\\",\\\"series\\\",this.visible?\\\"visible\\\":\\\"hidden\\\",this.options.zIndex,this.chart.seriesGroup);f.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(b,a){f.prototype.setData.call(this,b,!1);this.processData();this.generatePoints();p(a,!0)&&this.chart.redraw()},drawTracker:b&&b.drawTrackerPoint},\\n{setState:function(b){this.state=b}})})(v);(function(a){var r=a.each,t=a.noop,w=a.pick,p=a.seriesType,m=a.seriesTypes;p(\\\"boxplot\\\",\\\"column\\\",{threshold:null,tooltip:{pointFormat:'\\\\x3cspan style\\\\x3d\\\"color:{point.color}\\\"\\\\x3e\\\\u25cf\\\\x3c/span\\\\x3e \\\\x3cb\\\\x3e {series.name}\\\\x3c/b\\\\x3e\\\\x3cbr/\\\\x3eMaximum: {point.high}\\\\x3cbr/\\\\x3eUpper quartile: {point.q3}\\\\x3cbr/\\\\x3eMedian: {point.median}\\\\x3cbr/\\\\x3eLower quartile: {point.q1}\\\\x3cbr/\\\\x3eMinimum: {point.low}\\\\x3cbr/\\\\x3e'},whiskerLength:\\\"50%\\\",fillColor:\\\"#ffffff\\\",lineWidth:1,\\nmedianWidth:2,states:{hover:{brightness:-.3}},whiskerWidth:2},{pointArrayMap:[\\\"low\\\",\\\"q1\\\",\\\"median\\\",\\\"q3\\\",\\\"high\\\"],toYData:function(a){return[a.low,a.q1,a.median,a.q3,a.high]},pointValKey:\\\"high\\\",pointAttribs:function(a){var f=this.options,b=a&&a.color||this.color;return{fill:a.fillColor||f.fillColor||b,stroke:f.lineColor||b,\\\"stroke-width\\\":f.lineWidth||0}},drawDataLabels:t,translate:function(){var a=this.yAxis,h=this.pointArrayMap;m.column.prototype.translate.apply(this);r(this.points,function(b){r(h,\\nfunction(d){null!==b[d]&&(b[d+\\\"Plot\\\"]=a.translate(b[d],0,1,0,1))})})},drawPoints:function(){var a=this,h=a.options,b=a.chart.renderer,d,e,k,c,g,n,u=0,l,q,m,p,z=!1!==a.doQuartiles,t,y=a.options.whiskerLength;r(a.points,function(f){var x=f.graphic,r=x?\\\"animate\\\":\\\"attr\\\",J=f.shapeArgs,v={},C={},H={},I=f.color||a.color;void 0!==f.plotY&&(l=J.width,q=Math.floor(J.x),m=q+l,p=Math.round(l/2),d=Math.floor(z?f.q1Plot:f.lowPlot),e=Math.floor(z?f.q3Plot:f.lowPlot),k=Math.floor(f.highPlot),c=Math.floor(f.lowPlot),\\nx||(f.graphic=x=b.g(\\\"point\\\").add(a.group),f.stem=b.path().addClass(\\\"highcharts-boxplot-stem\\\").add(x),y&&(f.whiskers=b.path().addClass(\\\"highcharts-boxplot-whisker\\\").add(x)),z&&(f.box=b.path(void 0).addClass(\\\"highcharts-boxplot-box\\\").add(x)),f.medianShape=b.path(void 0).addClass(\\\"highcharts-boxplot-median\\\").add(x)),v.stroke=f.stemColor||h.stemColor||I,v[\\\"stroke-width\\\"]=w(f.stemWidth,h.stemWidth,h.lineWidth),v.dashstyle=f.stemDashStyle||h.stemDashStyle,f.stem.attr(v),y&&(C.stroke=f.whiskerColor||h.whiskerColor||\\nI,C[\\\"stroke-width\\\"]=w(f.whiskerWidth,h.whiskerWidth,h.lineWidth),f.whiskers.attr(C)),z&&(x=a.pointAttribs(f),f.box.attr(x)),H.stroke=f.medianColor||h.medianColor||I,H[\\\"stroke-width\\\"]=w(f.medianWidth,h.medianWidth,h.lineWidth),f.medianShape.attr(H),n=f.stem.strokeWidth()%2/2,u=q+p+n,f.stem[r]({d:[\\\"M\\\",u,e,\\\"L\\\",u,k,\\\"M\\\",u,d,\\\"L\\\",u,c]}),z&&(n=f.box.strokeWidth()%2/2,d=Math.floor(d)+n,e=Math.floor(e)+n,q+=n,m+=n,f.box[r]({d:[\\\"M\\\",q,e,\\\"L\\\",q,d,\\\"L\\\",m,d,\\\"L\\\",m,e,\\\"L\\\",q,e,\\\"z\\\"]})),y&&(n=f.whiskers.strokeWidth()%2/\\n2,k+=n,c+=n,t=/%$/.test(y)?p*parseFloat(y)/100:y/2,f.whiskers[r]({d:[\\\"M\\\",u-t,k,\\\"L\\\",u+t,k,\\\"M\\\",u-t,c,\\\"L\\\",u+t,c]})),g=Math.round(f.medianPlot),n=f.medianShape.strokeWidth()%2/2,g+=n,f.medianShape[r]({d:[\\\"M\\\",q,g,\\\"L\\\",m,g]}))})},setStackedPoints:t})})(v);(function(a){var r=a.each,t=a.noop,w=a.seriesType,p=a.seriesTypes;w(\\\"errorbar\\\",\\\"boxplot\\\",{color:\\\"#000000\\\",grouping:!1,linkedTo:\\\":previous\\\",tooltip:{pointFormat:'\\\\x3cspan style\\\\x3d\\\"color:{point.color}\\\"\\\\x3e\\\\u25cf\\\\x3c/span\\\\x3e {series.name}: \\\\x3cb\\\\x3e{point.low}\\\\x3c/b\\\\x3e - \\\\x3cb\\\\x3e{point.high}\\\\x3c/b\\\\x3e\\\\x3cbr/\\\\x3e'},\\nwhiskerWidth:null},{type:\\\"errorbar\\\",pointArrayMap:[\\\"low\\\",\\\"high\\\"],toYData:function(a){return[a.low,a.high]},pointValKey:\\\"high\\\",doQuartiles:!1,drawDataLabels:p.arearange?function(){var a=this.pointValKey;p.arearange.prototype.drawDataLabels.call(this);r(this.data,function(f){f.y=f[a]})}:t,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||p.column.prototype.getColumnMetrics.call(this)}})})(v);(function(a){var r=a.correctFloat,t=a.isNumber,w=a.pick,p=a.Point,m=a.Series,\\nf=a.seriesType,h=a.seriesTypes;f(\\\"waterfall\\\",\\\"column\\\",{dataLabels:{inside:!0},lineWidth:1,lineColor:\\\"#333333\\\",dashStyle:\\\"dot\\\",borderColor:\\\"#333333\\\",states:{hover:{lineWidthPlus:0}}},{pointValKey:\\\"y\\\",translate:function(){var b=this.options,a=this.yAxis,e,k,c,g,n,f,l,q,m,p,t=w(b.minPointLength,5),v=t/2,y=b.threshold,D=b.stacking,A;h.column.prototype.translate.apply(this);q=m=y;k=this.points;e=0;for(b=k.length;eg.height&&(g.y+=g.height,g.height*=-1),c.plotY=g.y=Math.round(g.y)-this.borderWidth%2/2,g.height=Math.max(Math.round(g.height),.001),c.yBottom=g.y+g.height,g.height<=t&&!c.isNull?(g.height=t,g.y-=v,c.plotY=g.y,c.minPointLengthOffset=0>c.y?-v:v):c.minPointLengthOffset=0,g=c.plotY+(c.negative?g.height:0),this.chart.inverted?c.tooltipPos[0]=a.len-g:c.tooltipPos[1]=g},processData:function(b){var a=this.yData,e=this.options.data,k,c=a.length,g,n,f,l,q,h;n=g=f=l=this.options.threshold||\\n0;for(h=0;hb[u-1].y&&!f||0=this.minPxSize/2?(d.marker=a.extend(d.marker,{radius:e,width:2*e,height:2*e}),d.dlBox={x:d.plotX-e,y:d.plotY-e,width:2*e,height:2*e}):d.shapeArgs=d.plotY=d.dlBox=void 0},\\nalignDataLabel:g.column.prototype.alignDataLabel,buildKDTree:h,applyZones:h},{haloPath:function(b){return e.prototype.haloPath.call(this,0===b?0:(this.marker?this.marker.radius||0:0)+b)},ttBelow:!1});v.prototype.beforePadding=function(){var a=this,c=this.len,e=this.chart,g=0,k=c,h=this.isXAxis,p=h?\\\"xData\\\":\\\"yData\\\",v=this.min,w={},D=Math.min(e.plotWidth,e.plotHeight),A=Number.MAX_VALUE,E=-Number.MAX_VALUE,F=this.max-v,B=c/F,G=[];m(this.series,function(c){var g=c.options;!c.bubblePadding||!c.visible&&\\ne.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,G.push(c),h&&(m([\\\"minSize\\\",\\\"maxSize\\\"],function(b){var a=g[b],c=/%$/.test(a),a=d(a);w[b]=c?D*a/100:a}),c.minPxSize=w.minSize,c.maxPxSize=Math.max(w.maxSize,w.minSize),c=c.zData,c.length&&(A=b(g.zMin,Math.min(A,Math.max(t(c),!1===g.displayNegative?g.zThreshold:-Number.MAX_VALUE))),E=b(g.zMax,Math.max(E,r(c))))))});m(G,function(b){var c=b[p],d=c.length,e;h&&b.getRadii(A,E,b.minPxSize,b.maxPxSize);if(0a?b.length-1+a:0;a=0>c-1?b.length-(1+d):c-1;d=c+1>b.length-1?d:c+1;k=b[a];d=b[d];h=k.plotX;k=k.plotY;l=d.plotX;m=d.plotY;d=b[c].plotX;c=b[c].plotY;h=(1.5*d+h)/2.5;k=(1.5*c+k)/2.5;l=(1.5*d+l)/2.5;p=(1.5*c+m)/2.5;m=Math.sqrt(Math.pow(h-d,2)+Math.pow(k-c,2));r=Math.sqrt(Math.pow(l-d,2)+Math.pow(p-c,2));h=Math.atan2(k-c,h-d);p=Math.PI/2+(h+Math.atan2(p-c,l-d))/2;Math.abs(h-p)>Math.PI/2&&(p-=Math.PI);h=d+Math.cos(p)*m;k=c+Math.sin(p)*m;l=d+Math.cos(Math.PI+p)*r;p=c+Math.sin(Math.PI+p)*r;d={rightContX:l,\\nrightContY:p,leftContX:h,leftContY:k,plotX:d,plotY:c};e&&(d.prevPointCont=this.getConnectors(b,a,!1,f));return d};m(f,\\\"buildKDTree\\\",function(b){this.chart.polar&&(this.kdByAngle?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy=\\\"xy\\\");b.apply(this)});f.toXY=function(b){var a,e=this.chart,f=b.plotX;a=b.plotY;b.rectPlotX=f;b.rectPlotY=a;a=this.xAxis.postTranslate(b.plotX,this.yAxis.len-a);b.plotX=b.polarPlotX=a.x-e.plotLeft;b.plotY=b.polarPlotY=a.y-e.plotTop;this.kdByAngle?(e=\\n(f/Math.PI*180+this.xAxis.pane.options.startAngle)%360,0>e&&(e+=360),b.clientX=e):b.clientX=b.plotX};p.spline&&(m(p.spline.prototype,\\\"getPointSpline\\\",function(a,d,e,f){this.chart.polar?f?(a=this.getConnectors(d,f,!0,this.connectEnds),a=[\\\"C\\\",a.prevPointCont.rightContX,a.prevPointCont.rightContY,a.leftContX,a.leftContY,a.plotX,a.plotY]):a=[\\\"M\\\",e.plotX,e.plotY]:a=a.call(this,d,e,f);return a}),p.areasplinerange&&(p.areasplinerange.prototype.getPointSpline=p.spline.prototype.getPointSpline));m(f,\\\"translate\\\",\\nfunction(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});m(f,\\\"getGraphPath\\\",function(a,d){var b=this,f,c,g;if(this.chart.polar){d=d||this.points;for(f=0;fb.center[1]}),m(p,\\\"alignDataLabel\\\",function(a,d,e,k,c,g){this.chart.polar?(a=d.rectPlotX/Math.PI*180,null===k.align&&(k.align=20a?\\\"left\\\":200a?\\\"right\\\":\\\"center\\\"),null===k.verticalAlign&&(k.verticalAlign=45>a||315a?\\\"top\\\":\\\"middle\\\"),f.alignDataLabel.call(this,d,e,k,c,g)):a.call(this,d,e,k,c,g)}));m(h,\\\"getCoordinates\\\",function(a,d){var b=this.chart,f={xAxis:[],yAxis:[]};b.polar?t(b.axes,function(a){var c=\\na.isXAxis,e=a.center,h=d.chartX-e[0]-b.plotLeft,e=d.chartY-e[1]-b.plotTop;f[c?\\\"xAxis\\\":\\\"yAxis\\\"].push({axis:a,value:a.translate(c?Math.PI-Math.atan2(h,e):Math.sqrt(Math.pow(h,2)+Math.pow(e,2)),!0)})}):f=a.call(this,d);return f});m(a.Chart.prototype,\\\"getAxes\\\",function(b){this.pane||(this.pane=[]);t(a.splat(this.options.pane),function(b){new a.Pane(b,this)},this);b.call(this)});m(a.Chart.prototype,\\\"drawChartBox\\\",function(a){a.call(this);t(this.pane,function(a){a.render()})});m(a.Chart.prototype,\\\"get\\\",\\nfunction(b,d){return a.find(this.pane,function(a){return a.options.id===d})||b.call(this,d)})})(v)});\\n\\n /* END highcharts-more.js*/\\n\\n /* BEGIN modules/exporting.js */\\n\\n/*\\n Highcharts JS v5.0.12 (2017-05-24)\\n Exporting module\\n\\n (c) 2010-2017 Torstein Honsi\\n\\n License: www.highcharts.com/license\\n*/\\n(function(k){\\\"object\\\"===typeof module&&module.exports?module.exports=k:k(Highcharts)})(function(k){(function(f){var k=f.defaultOptions,p=f.doc,A=f.Chart,w=f.addEvent,I=f.removeEvent,E=f.fireEvent,t=f.createElement,B=f.discardElement,v=f.css,n=f.merge,C=f.pick,h=f.each,F=f.objectEach,u=f.extend,J=f.isTouchDevice,D=f.win,G=D.navigator.userAgent,K=f.Renderer.prototype.symbols;/Edge\\\\/|Trident\\\\/|MSIE /.test(G);/firefox/i.test(G);u(k.lang,{printChart:\\\"Print chart\\\",downloadPNG:\\\"Download PNG image\\\",downloadJPEG:\\\"Download JPEG image\\\",\\ndownloadPDF:\\\"Download PDF document\\\",downloadSVG:\\\"Download SVG vector image\\\",contextButtonTitle:\\\"Chart context menu\\\"});k.navigation={buttonOptions:{theme:{},symbolSize:14,symbolX:12.5,symbolY:10.5,align:\\\"right\\\",buttonSpacing:3,height:22,verticalAlign:\\\"top\\\",width:24}};n(!0,k.navigation,{menuStyle:{border:\\\"1px solid #999999\\\",background:\\\"#ffffff\\\",padding:\\\"5px 0\\\"},menuItemStyle:{padding:\\\"0.5em 1em\\\",background:\\\"none\\\",color:\\\"#333333\\\",fontSize:J?\\\"14px\\\":\\\"11px\\\",transition:\\\"background 250ms, color 250ms\\\"},menuItemHoverStyle:{background:\\\"#335cad\\\",\\ncolor:\\\"#ffffff\\\"},buttonOptions:{symbolFill:\\\"#666666\\\",symbolStroke:\\\"#666666\\\",symbolStrokeWidth:3,theme:{fill:\\\"#ffffff\\\",stroke:\\\"none\\\",padding:5}}});k.exporting={type:\\\"image/png\\\",url:\\\"https://export.highcharts.com/\\\",printMaxWidth:780,scale:2,buttons:{contextButton:{className:\\\"highcharts-contextbutton\\\",menuClassName:\\\"highcharts-contextmenu\\\",symbol:\\\"menu\\\",_titleKey:\\\"contextButtonTitle\\\",menuItems:[{textKey:\\\"printChart\\\",onclick:function(){this.print()}},{separator:!0},{textKey:\\\"downloadPNG\\\",onclick:function(){this.exportChart()}},\\n{textKey:\\\"downloadJPEG\\\",onclick:function(){this.exportChart({type:\\\"image/jpeg\\\"})}},{textKey:\\\"downloadPDF\\\",onclick:function(){this.exportChart({type:\\\"application/pdf\\\"})}},{textKey:\\\"downloadSVG\\\",onclick:function(){this.exportChart({type:\\\"image/svg+xml\\\"})}}]}}};f.post=function(a,b,e){var c=t(\\\"form\\\",n({method:\\\"post\\\",action:a,enctype:\\\"multipart/form-data\\\"},e),{display:\\\"none\\\"},p.body);F(b,function(a,b){t(\\\"input\\\",{type:\\\"hidden\\\",name:b,value:a},null,c)});c.submit();B(c)};u(A.prototype,{sanitizeSVG:function(a,\\nb){if(b&&b.exporting&&b.exporting.allowHTML){var e=a.match(/<\\\\/svg>(.*?$)/);e&&e[1]&&(e='\\\\x3cforeignObject x\\\\x3d\\\"0\\\" y\\\\x3d\\\"0\\\" width\\\\x3d\\\"'+b.chart.width+'\\\" height\\\\x3d\\\"'+b.chart.height+'\\\"\\\\x3e\\\\x3cbody xmlns\\\\x3d\\\"http://www.w3.org/1999/xhtml\\\"\\\\x3e'+e[1]+\\\"\\\\x3c/body\\\\x3e\\\\x3c/foreignObject\\\\x3e\\\",a=a.replace(\\\"\\\\x3c/svg\\\\x3e\\\",e+\\\"\\\\x3c/svg\\\\x3e\\\"))}a=a.replace(/zIndex=\\\"[^\\\"]+\\\"/g,\\\"\\\").replace(/isShadow=\\\"[^\\\"]+\\\"/g,\\\"\\\").replace(/symbolName=\\\"[^\\\"]+\\\"/g,\\\"\\\").replace(/jQuery[0-9]+=\\\"[^\\\"]+\\\"/g,\\\"\\\").replace(/url\\\\((\\\"|")(\\\\S+)(\\\"|")\\\\)/g,\\n\\\"url($2)\\\").replace(/url\\\\([^#]+#/g,\\\"url(#\\\").replace(/.*?$/,\\\"\\\\x3c/svg\\\\x3e\\\").replace(/(fill|stroke)=\\\"rgba\\\\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\\\\.]+)\\\\)\\\"/g,'$1\\\\x3d\\\"rgb($2)\\\" $1-opacity\\\\x3d\\\"$3\\\"').replace(/ /g,\\\"\\\\u00a0\\\").replace(/­/g,\\\"\\\\u00ad\\\");return a=a.replace(//g,\\\"\\\\x3c$1title\\\\x3e\\\").replace(/height=([^\\\" ]+)/g,\\n'height\\\\x3d\\\"$1\\\"').replace(/width=([^\\\" ]+)/g,'width\\\\x3d\\\"$1\\\"').replace(/hc-svg-href=\\\"([^\\\"]+)\\\">/g,'xlink:href\\\\x3d\\\"$1\\\"/\\\\x3e').replace(/ id=([^\\\" >]+)/g,' id\\\\x3d\\\"$1\\\"').replace(/class=([^\\\" >]+)/g,'class\\\\x3d\\\"$1\\\"').replace(/ transform /g,\\\" \\\").replace(/:(path|rect)/g,\\\"$1\\\").replace(/style=\\\"([^\\\"]+)\\\"/g,function(a){return a.toLowerCase()})},getChartHTML:function(){return this.container.innerHTML},getSVG:function(a){var b,e,c,r,m,g=n(this.options,a);p.createElementNS||(p.createElementNS=function(a,b){return p.createElement(b)});\\ne=t(\\\"div\\\",null,{position:\\\"absolute\\\",top:\\\"-9999em\\\",width:this.chartWidth+\\\"px\\\",height:this.chartHeight+\\\"px\\\"},p.body);c=this.renderTo.style.width;m=this.renderTo.style.height;c=g.exporting.sourceWidth||g.chart.width||/px$/.test(c)&&parseInt(c,10)||600;m=g.exporting.sourceHeight||g.chart.height||/px$/.test(m)&&parseInt(m,10)||400;u(g.chart,{animation:!1,renderTo:e,forExport:!0,renderer:\\\"SVGRenderer\\\",width:c,height:m});g.exporting.enabled=!1;delete g.data;g.series=[];h(this.series,function(a){r=n(a.userOptions,\\n{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});r.isInternal||g.series.push(r)});h(this.axes,function(a){a.userOptions.internalKey||(a.userOptions.internalKey=f.uniqueKey())});b=new f.Chart(g,this.callback);a&&h([\\\"xAxis\\\",\\\"yAxis\\\",\\\"series\\\"],function(c){var d={};a[c]&&(d[c]=a[c],b.update(d))});h(this.axes,function(a){var c=f.find(b.axes,function(b){return b.options.internalKey===a.userOptions.internalKey}),d=a.getExtremes(),e=d.userMin,d=d.userMax;!c||void 0===e&&void 0===d||\\nc.setExtremes(e,d,!0,!1)});c=b.getChartHTML();c=this.sanitizeSVG(c,g);g=null;b.destroy();B(e);return c},getSVGForExport:function(a,b){var e=this.options.exporting;return this.getSVG(n({chart:{borderRadius:0}},e.chartOptions,b,{exporting:{sourceWidth:a&&a.sourceWidth||e.sourceWidth,sourceHeight:a&&a.sourceHeight||e.sourceHeight}}))},exportChart:function(a,b){b=this.getSVGForExport(a,b);a=n(this.options.exporting,a);f.post(a.url,{filename:a.filename||\\\"chart\\\",type:a.type,width:a.width||0,scale:a.scale,\\nsvg:b},a.formAttributes)},print:function(){var a=this,b=a.container,e=[],c=b.parentNode,f=p.body,m=f.childNodes,g=a.options.exporting.printMaxWidth,d,H;if(!a.isPrinting){a.isPrinting=!0;a.pointer.reset(null,0);E(a,\\\"beforePrint\\\");if(H=g&&a.chartWidth>g)d=[a.options.chart.width,void 0,!1],a.setSize(g,void 0,!1);h(m,function(a,b){1===a.nodeType&&(e[b]=a.style.display,a.style.display=\\\"none\\\")});f.appendChild(b);D.focus();D.print();setTimeout(function(){c.appendChild(b);h(m,function(a,b){1===a.nodeType&&\\n(a.style.display=e[b])});a.isPrinting=!1;H&&a.setSize.apply(a,d);E(a,\\\"afterPrint\\\")},1E3)}},contextMenu:function(a,b,e,c,f,m,g){var d=this,r=d.options.navigation,k=d.chartWidth,q=d.chartHeight,n=\\\"cache-\\\"+a,l=d[n],x=Math.max(f,m),y,z;l||(d[n]=l=t(\\\"div\\\",{className:a},{position:\\\"absolute\\\",zIndex:1E3,padding:x+\\\"px\\\"},d.container),y=t(\\\"div\\\",{className:\\\"highcharts-menu\\\"},null,l),v(y,u({MozBoxShadow:\\\"3px 3px 10px #888\\\",WebkitBoxShadow:\\\"3px 3px 10px #888\\\",boxShadow:\\\"3px 3px 10px #888\\\"},r.menuStyle)),z=function(){v(l,\\n{display:\\\"none\\\"});g&&g.setState(0);d.openMenu=!1},d.exportEvents.push(w(l,\\\"mouseleave\\\",function(){l.hideTimer=setTimeout(z,500)}),w(l,\\\"mouseenter\\\",function(){clearTimeout(l.hideTimer)}),w(p,\\\"mouseup\\\",function(b){d.pointer.inClass(b.target,a)||z()})),h(b,function(a){if(a){var b;a.separator?b=t(\\\"hr\\\",null,null,y):(b=t(\\\"div\\\",{className:\\\"highcharts-menu-item\\\",onclick:function(b){b&&b.stopPropagation();z();a.onclick&&a.onclick.apply(d,arguments)},innerHTML:a.text||d.options.lang[a.textKey]},null,y),b.onmouseover=\\nfunction(){v(this,r.menuItemHoverStyle)},b.onmouseout=function(){v(this,r.menuItemStyle)},v(b,u({cursor:\\\"pointer\\\"},r.menuItemStyle)));d.exportDivElements.push(b)}}),d.exportDivElements.push(y,l),d.exportMenuWidth=l.offsetWidth,d.exportMenuHeight=l.offsetHeight);b={display:\\\"block\\\"};e+d.exportMenuWidth>k?b.right=k-e-f-x+\\\"px\\\":b.left=e-x+\\\"px\\\";c+m+d.exportMenuHeight>q&&\\\"top\\\"!==g.alignOptions.verticalAlign?b.bottom=q-c-x+\\\"px\\\":b.top=c+m-x+\\\"px\\\";v(l,b);d.openMenu=!0},addButton:function(a){var b=this,e=b.renderer,\\nc=n(b.options.navigation.buttonOptions,a),f=c.onclick,m=c.menuItems,g,d,k=c.symbolSize||12;b.btnCount||(b.btnCount=0);b.exportDivElements||(b.exportDivElements=[],b.exportSVGElements=[]);if(!1!==c.enabled){var h=c.theme,q=h.states,p=q&&q.hover,q=q&&q.select,l;delete h.states;f?l=function(a){a.stopPropagation();f.call(b,a)}:m&&(l=function(){b.contextMenu(d.menuClassName,m,d.translateX,d.translateY,d.width,d.height,d);d.setState(2)});c.text&&c.symbol?h.paddingLeft=C(h.paddingLeft,25):c.text||u(h,{width:c.width,\\nheight:c.height,padding:0});d=e.button(c.text,0,0,l,h,p,q).addClass(a.className).attr({\\\"stroke-linecap\\\":\\\"round\\\",title:b.options.lang[c._titleKey],zIndex:3});d.menuClassName=a.menuClassName||\\\"highcharts-menu-\\\"+b.btnCount++;c.symbol&&(g=e.symbol(c.symbol,c.symbolX-k/2,c.symbolY-k/2,k,k).addClass(\\\"highcharts-button-symbol\\\").attr({zIndex:1}).add(d),g.attr({stroke:c.symbolStroke,fill:c.symbolFill,\\\"stroke-width\\\":c.symbolStrokeWidth||1}));d.add().align(u(c,{width:d.width,x:C(c.x,b.buttonOffset)}),!0,\\\"spacingBox\\\");\\nb.buttonOffset+=(d.width+c.buttonSpacing)*(\\\"right\\\"===c.align?-1:1);b.exportSVGElements.push(d,g)}},destroyExport:function(a){var b=a?a.target:this;a=b.exportSVGElements;var e=b.exportDivElements,c=b.exportEvents,f;a&&(h(a,function(a,c){a&&(a.onclick=a.ontouchstart=null,f=\\\"cache-\\\"+a.menuClassName,b[f]&&delete b[f],b.exportSVGElements[c]=a.destroy())}),a.length=0);e&&(h(e,function(a,c){clearTimeout(a.hideTimer);I(a,\\\"mouseleave\\\");b.exportDivElements[c]=a.onmouseout=a.onmouseover=a.ontouchstart=a.onclick=\\nnull;B(a)}),e.length=0);c&&(h(c,function(a){a()}),c.length=0)}});K.menu=function(a,b,e,c){return[\\\"M\\\",a,b+2.5,\\\"L\\\",a+e,b+2.5,\\\"M\\\",a,b+c/2+.5,\\\"L\\\",a+e,b+c/2+.5,\\\"M\\\",a,b+c-1.5,\\\"L\\\",a+e,b+c-1.5]};A.prototype.renderExporting=function(){var a=this,b=a.options.exporting,e=b.buttons,c=a.isDirtyExporting||!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport();c&&!1!==b.enabled&&(a.exportEvents=[],F(e,function(b){a.addButton(b)}),a.isDirtyExporting=!1);w(a,\\\"destroy\\\",a.destroyExport)};A.prototype.callbacks.push(function(a){a.renderExporting();\\nw(a,\\\"redraw\\\",a.renderExporting);h([\\\"exporting\\\",\\\"navigation\\\"],function(b){a[b]={update:function(e,c){a.isDirtyExporting=!0;n(!0,a.options[b],e);C(c,!0)&&a.redraw()}}})})})(k)});\\n\\n /* END modules/exporting.js*/\\n\\n /* BEGIN highcharts-3d.js */\\n\\n/*\\n Highcharts JS v5.0.12 (2017-05-24)\\n\\n 3D features for Highcharts JS\\n\\n @license: www.highcharts.com/license\\n*/\\n(function(A){\\\"object\\\"===typeof module&&module.exports?module.exports=A:A(Highcharts)})(function(A){(function(d){var w=d.deg2rad,r=d.pick;d.perspective=function(t,x,y){var m=x.options.chart.options3d,u=y?x.inverted:!1,h=x.plotWidth/2,v=x.plotHeight/2,g=m.depth/2,c=r(m.depth,1)*r(m.viewDistance,0),b=x.scale3d||1,e=w*m.beta*(u?-1:1),m=w*m.alpha*(u?-1:1),a=Math.cos(m),f=Math.cos(-e),k=Math.sin(m),p=Math.sin(-e);y||(h+=x.plotLeft,v+=x.plotTop);return d.map(t,function(e){var d,l;l=(u?e.y:e.x)-h;var n=(u?\\ne.x:e.y)-v,F=(e.z||0)-g;d=f*l-p*F;e=-k*p*l+a*n-f*k*F;l=a*p*l+k*n+a*f*F;n=0c&&f-c>Math.PI/2+.0001?(B=B.concat(w(a,b,e,d,c,c+Math.PI/2,k,g)),B=B.concat(w(a,b,e,d,c+Math.PI/2,f,k,g))):fMath.PI/2+.0001?(B=B.concat(w(a,b,e,d,c,c-Math.PI/2,k,g)),B=B.concat(w(a,b,e,d,c-Math.PI/2,f,k,g))):[\\\"C\\\",a+e*Math.cos(c)-e*l*n*Math.sin(c)+k,b+d*Math.sin(c)+d*l*n*Math.cos(c)+g,a+e*Math.cos(f)+e*l*n*Math.sin(f)+k,b+d*Math.sin(f)-\\nd*l*n*Math.cos(f)+g,a+e*Math.cos(f)+k,b+d*Math.sin(f)+g]}var r=Math.cos,t=Math.PI,x=Math.sin,y=d.animObject,m=d.charts,u=d.color,h=d.defined,v=d.deg2rad,g=d.each,c=d.extend,b=d.inArray,e=d.map,a=d.merge,f=d.perspective,k=d.pick,p=d.SVGElement,z=d.SVGRenderer,q=d.wrap,l=4*(Math.sqrt(2)-1)/3/(t/2);z.prototype.toLinePath=function(a,b){var e=[];g(a,function(a){e.push(\\\"L\\\",a.x,a.y)});a.length&&(e[0]=\\\"M\\\",b&&e.push(\\\"Z\\\"));return e};z.prototype.toLineSegments=function(a){var b=[],e=!0;g(a,function(a){b.push(e?\\n\\\"M\\\":\\\"L\\\",a.x,a.y);e=!e});return b};z.prototype.face3d=function(a){var b=this,e=this.createElement(\\\"path\\\");e.vertexes=[];e.insidePlotArea=!1;e.enabled=!0;q(e,\\\"attr\\\",function(a,e){if(\\\"object\\\"===typeof e&&(h(e.enabled)||h(e.vertexes)||h(e.insidePlotArea))){this.enabled=k(e.enabled,this.enabled);this.vertexes=k(e.vertexes,this.vertexes);this.insidePlotArea=k(e.insidePlotArea,this.insidePlotArea);delete e.enabled;delete e.vertexes;delete e.insidePlotArea;var c=f(this.vertexes,m[b.chartIndex],this.insidePlotArea),\\nB=b.toLinePath(c,!0),c=d.shapeArea(c),c=this.enabled&&0c.faces.length;)e.faces.pop().destroy();\\nfor(;e.faces.lengthc.faces.length;)e.faces.pop().destroy();for(;e.faces.lengthd.shapeArea(a)?f=[a,0]:0>d.shapeArea(c)&&(f=[c,1]);return f};q=z([3,2,1,0],[7,6,5,4]);a=q[0];v=q[1];q=z([1,6,7,0],[4,5,2,3]);n=q[0];l=q[1];q=z([1,2,5,6],[0,7,4,3]);z=q[0];q=q[1];1===q?h+=1E4*(1E3-c):q||(h+=1E4*c);h+=10*(!l||0<=u&&180>=u||360>u&&\\n357.5Math.PI&&(a=2*Math.PI-a);return a}var b=a.x,c=a.y,f=a.start,d=a.end-.00001,k=a.r,g=a.innerR,v=a.depth,l=a.alpha,p=a.beta,n=Math.cos(f),\\nq=Math.sin(f);a=Math.cos(d);var h=Math.sin(d),z=k*Math.cos(p),k=k*Math.cos(l),m=g*Math.cos(p),u=g*Math.cos(l),g=v*Math.sin(p),y=v*Math.sin(l),v=[\\\"M\\\",b+z*n,c+k*q],v=v.concat(w(b,c,z,k,f,d,0,0)),v=v.concat([\\\"L\\\",b+m*a,c+u*h]),v=v.concat(w(b,c,m,u,d,f,0,0)),v=v.concat([\\\"Z\\\"]),A=0-A?f:d>-A?-A:f,C=dD&&ft-p&&fp&&(h=Math.min(h,\\n1-Math.abs((c+f)/(p+f))%1));bq&&(h=0>q?Math.min(h,(e+k)/(-q+e+k)):Math.min(h,1-(e+k)/(q+k)%1));ab*d[c][e]?c=f:b*d[f][e]===b*d[c][e]&&d[f].zk+d[b[1]]||k>g[b[0]+\\\"Axis\\\"].len)for(var c in d)d[c]=0;0>k&&(d[b[1]]+=d[b[0]],d[b[0]]=0);k+d[b[1]]>g[b[0]+\\\"Axis\\\"].len&&(d[b[1]]=g[b[0]+\\\"Axis\\\"].len-d[b[0]])});b.shapeType=\\\"cuboid\\\";d.z=f;d.depth=e;d.insidePlotArea=!0;h=t([{x:h[0],y:h[1],z:f}],c,!0)[0];b.tooltipPos=[h.x,h.y]}});g.z=f}});d(m.column.prototype,\\\"animate\\\",function(d){if(this.chart.is3d()){var g=arguments[1],c=this.yAxis,b=this,e=this.yAxis.reversed;h&&(g?r(b.data,function(a){null!==a.y&&(a.height=\\na.shapeArgs.height,a.shapey=a.shapeArgs.y,a.shapeArgs.height=1,e||(a.shapeArgs.y=a.stackY?a.plotY+c.translate(a.stackY):a.plotY+(a.negative?-a.height:a.height)))}):(r(b.data,function(a){null!==a.y&&(a.shapeArgs.height=a.height,a.shapeArgs.y=a.shapey,a.graphic&&a.graphic.animate(a.shapeArgs,b.options.animation))}),this.drawDataLabels(),b.animate=null))}else d.apply(this,[].slice.call(arguments,1))});d(m.column.prototype,\\\"plotGroup\\\",function(d,g,c,b,e,a){this.chart.is3d()&&a&&!this[g]&&(this[g]=a,a.attr(this.getPlotBox()),\\nthis[g].survive=!0);return d.apply(this,Array.prototype.slice.call(arguments,1))});d(m.column.prototype,\\\"setVisible\\\",function(d,g){var c=this,b;c.chart.is3d()&&r(c.data,function(e){b=(e.visible=e.options.visible=g=void 0===g?!e.visible:g)?\\\"visible\\\":\\\"hidden\\\";c.options.data[u(e,c.data)]=e.options;e.graphic&&e.graphic.attr({visibility:b})});d.apply(this,Array.prototype.slice.call(arguments,1))});d(m.column.prototype,\\\"init\\\",function(d){d.apply(this,[].slice.call(arguments,1));if(this.chart.is3d()){var g=\\nthis.options,c=g.grouping,b=g.stacking,e=x(this.yAxis.options.reversedStacks,!0),a=0;if(void 0===c||c){c=this.chart.retrieveStacks(b);a=g.stack||0;for(b=0;b=h.min&&c<=h.max:!1,t.push({x:g.plotX,y:g.plotY,z:g.plotZ});m=w(t,m,!0);for(b=0;b=e&&d<=c&&!q&&\\\"\\\"!==g&&(a=a.split(h),m(a,function(b,a){a>=\\nk&&a<=t&&(f[a-k]||(f[a-k]=[]),f[a-k][y]=b)}),y+=1)}),this.dataFound())},parseTable:function(){var b=this.options,a=b.table,d=this.columns,f=b.startRow||0,e=b.endRow||Number.MAX_VALUE,c=b.startColumn||0,k=b.endColumn||Number.MAX_VALUE;a&&(\\\"string\\\"===typeof a&&(a=p.getElementById(a)),m(a.getElementsByTagName(\\\"tr\\\"),function(b,a){a>=f&&a<=e&&m(b.children,function(b,e){(\\\"TD\\\"===b.tagName||\\\"TH\\\"===b.tagName)&&e>=c&&e<=k&&(d[e-c]||(d[e-c]=[]),d[e-c][a-f]=b.innerHTML)})}),this.dataFound())},parseGoogleSpreadsheet:function(){var b=\\nthis,a=this.options,d=a.googleSpreadsheetKey,f=this.columns,e=a.startRow||0,c=a.endRow||Number.MAX_VALUE,k=a.startColumn||0,g=a.endColumn||Number.MAX_VALUE,h,q;d&&jQuery.ajax({dataType:\\\"json\\\",url:\\\"https://spreadsheets.google.com/feeds/cells/\\\"+d+\\\"/\\\"+(a.googleSpreadsheetWorksheet||\\\"od6\\\")+\\\"/public/values?alt\\\\x3djson-in-script\\\\x26callback\\\\x3d?\\\",error:a.error,success:function(a){a=a.feed.entry;var d,t=a.length,r=0,n=0,l;for(l=0;l=k&&l<=g&&(f[l-k]=[],f[l-k].length=Math.min(n,c-e));for(l=0;l=k&&q<=g&&h>=e&&h<=c&&(f[q-k][h-e]=d.content.$t);m(f,function(a){for(l=0;l\\nb[e+1])):(k=this.parseDate(c),m&&x(k)&&\\\"float\\\"!==u?(p[e]=c,b[e]=k,b.isDatetime=!0,void 0!==b[e+1]&&(c=k>b[e+1],c!==r&&void 0!==r&&(this.alternativeFormat?(this.dateFormat=this.alternativeFormat,e=b.length,this.alternativeFormat=this.dateFormats[this.dateFormat].alternative):b.unsorted=!0),r=c)):(b[e]=\\\"\\\"===g?null:g,0!==e&&(b.isDatetime||b.isNumeric)&&(b.mixed=!0)));m&&b.mixed&&(f[a]=d[a]);if(m&&r&&this.options.sort)for(a=0;a#kmfvpjbzuce .highcharts-color-0 {fill: #7cb5ec;stroke: #7cb5ec;}#kmfvpjbzuce .highcharts-axis.highcharts-color-0 .highcharts-axis-line {stroke: #7cb5ec;}#kmfvpjbzuce .highcharts-color-1 {fill: #90ed7d;stroke: #90ed7d;}#kmfvpjbzuce .highcharts-axis.highcharts-color-1 .highcharts-axis-line {stroke: #90ed7d;}#kmfvpjbzuce .highcharts-yaxis .highcharts-axis-line {stroke-width: 2px;} \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'column'\n", " },\n", " css: ['.highcharts-color-0 {fill: #7cb5ec;stroke: #7cb5ec;}', \n", " '.highcharts-axis.highcharts-color-0 .highcharts-axis-line {stroke: #7cb5ec;}',\n", " '.highcharts-color-1 {fill: #90ed7d;stroke: #90ed7d;}',\n", " '.highcharts-axis.highcharts-color-1 .highcharts-axis-line {stroke: #90ed7d;}',\n", " '.highcharts-yaxis .highcharts-axis-line {stroke-width: 2px;}'\n", " ], \n", " title: {\n", " text: 'Styling axes'\n", " },\n", "\n", " yAxis: [{\n", " className: 'highcharts-color-0',\n", " title: {\n", " text: 'Primary axis'\n", " }\n", " }, {\n", " className: 'highcharts-color-1',\n", " opposite: true,\n", " title: {\n", " text: 'Secondary axis'\n", " }\n", " }],\n", "\n", " plotOptions: {\n", " column: {\n", " borderRadius: 5\n", " }\n", " }\n", "}\n", "\n", "series_dt = [{\n", " data: [1, 3, 2, 4]\n", " }, {\n", " data: [324, 124, 547, 221],\n", " yAxis: 1\n", "}]\n", "\n", "column = Daru::View::Plot.new\n", "column.chart.options = opts;\n", "column.chart.series_data = series_dt\n", "column.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'line'\n", " },\n", " chart_class: 'stock',\n", " css: ['.highcharts-background {fill: #efefef;stroke: #a4edba;stroke-width: 2px;}'],\n", " title: {\n", " text: 'Chart border and background by CSS'\n", " },\n", "\n", " xAxis: {\n", " categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n", " },\n", "\n", " legend: {\n", " layout: 'vertical',\n", " floating: true,\n", " align: 'left',\n", " x: 100,\n", " verticalAlign: 'top',\n", " y: 70\n", " }\n", "}\n", "\n", "series_dt = [{\n", " data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]\n", "}]\n", "\n", "line = Daru::View::Plot.new\n", "line.chart.options = opts;\n", "line.chart.series_data = series_dt\n", "line.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'line'\n", " },\n", " css: ['.highcharts-button-symbol{fill: #90ed7d;stroke: #90ed7d;}'],\n", " title: {\n", " text: 'Chart border and background by CSS'\n", " },\n", "\n", " xAxis: {\n", " categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n", " },\n", "\n", " legend: {\n", " layout: 'vertical',\n", " floating: true,\n", " align: 'left',\n", " x: 100,\n", " verticalAlign: 'top',\n", " y: 70\n", " }\n", "}\n", "\n", "series_dt = [{\n", " data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]\n", "}]\n", "\n", "line = Daru::View::Plot.new\n", "line.chart.options = opts;\n", "line.chart.series_data = series_dt\n", "line.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ " opts = {\n", " chart_class: 'stock',\n", " css: ['.highcharts-candlestick-series .highcharts-point {stroke: #2f7ed8;}',\n", " '.highcharts-candlestick-series .highcharts-point-up {stroke: silver;fill: silver;}'],\n", " rangeSelector: {\n", " selected: 1\n", " },\n", "\n", " title: {\n", " text: 'AAPL Stock Price'\n", " }\n", " }\n", "\n", " series_dt = [\n", " {\n", " type: 'candlestick',\n", " name: 'AAPL Stock Price',\n", " data: [\n", " [1294617600000,48.40,49.03,48.17,48.92],\n", " [1294704000000,49.27,49.28,48.50,48.81],\n", " [1294790400000,49.04,49.20,48.86,49.20],\n", " [1294876800000,49.31,49.52,49.12,49.38],\n", " [1294963200000,49.41,49.78,49.21,49.78],\n", " [1295308800000,47.07,49.25,46.57,48.66],\n", " [1295395200000,49.76,49.80,48.13,48.41],\n", " [1295481600000,48.06,48.33,47.16,47.53],\n", " [1295568000000,47.68,47.84,46.66,46.67],\n", " [1295827200000,46.70,48.21,46.67,48.21],\n", " [1295913600000,48.05,48.78,47.80,48.77],\n", " [1296000000000,48.99,49.37,48.79,49.12],\n", " [1296086400000,49.11,49.24,48.98,49.03],\n", " [1296172800000,49.17,49.20,47.65,48.01],\n", " [1296432000000,47.97,48.58,47.76,48.47],\n", "\n", " [1309478400000,47.99,49.07,47.74,49.04],\n", " [1309824000000,49.00,49.98,48.93,49.92],\n", " [1309910400000,49.85,50.59,49.53,50.25],\n", " [1309996800000,50.67,51.14,50.57,51.03],\n", " [1310083200000,50.48,51.43,50.31,51.39],\n", " [1310342400000,50.91,51.40,50.40,50.57],\n", " [1310428800000,50.50,51.10,49.80,50.54],\n", " [1310515200000,51.19,51.43,50.91,51.15],\n", " [1310601600000,51.57,51.66,50.91,51.11],\n", " [1310688000000,51.60,52.14,51.31,52.13],\n", " [1310947200000,52.20,53.52,52.18,53.40],\n", " [1311033600000,54.00,54.09,53.33,53.84],\n", " [1311120000000,56.59,56.61,55.14,55.27],\n", " [1311206400000,55.28,55.72,54.84,55.33],\n", " [1311292800000,55.47,56.44,55.39,56.19],\n", " [1311552000000,55.76,57.14,55.66,56.93],\n", " [1311638400000,57.14,57.79,57.10,57.63],\n", " [1311724800000,57.23,57.52,56.02,56.08],\n", " [1311811200000,55.95,56.71,55.45,55.97],\n", " [1311897600000,55.38,56.45,54.86,55.78],\n", "\n", " [1417392000000,118.81,119.25,111.27,115.07],\n", " [1417478400000,113.50,115.75,112.75,114.63],\n", " [1417564800000,115.75,116.35,115.11,115.93],\n", " [1417651200000,115.77,117.20,115.29,115.49],\n", " [1417737600000,115.99,116.08,114.64,115.00],\n", " [1417996800000,114.10,114.65,111.62,112.40],\n", " [1418083200000,110.19,114.30,109.35,114.12],\n", " [1418169600000,114.41,114.85,111.54,111.95],\n", " [1418256000000,112.26,113.80,111.34,111.62],\n", " [1418342400000,110.46,111.87,109.58,109.73],\n", " [1418601600000,110.70,111.60,106.35,108.22],\n", " [1418688000000,106.37,110.16,106.26,106.74],\n", " [1418774400000,107.12,109.84,106.82,109.41],\n", " [1418860800000,111.87,112.65,110.66,112.65],\n", " [1418947200000,112.26,113.24,111.66,111.78],\n", " [1419206400000,112.16,113.49,111.97,112.94],\n", " [1419292800000,113.23,113.33,112.46,112.54],\n", " [1419379200000,112.58,112.71,112.01,112.01],\n", " [1419552000000,112.10,114.52,112.01,113.99],\n", " [1419811200000,113.79,114.77,113.70,113.91],\n", " [1419897600000,113.64,113.92,112.11,112.52],\n", " [1419984000000,112.82,113.13,110.21,110.38],\n", "\n", " [1514851200000,170.16,172.30,169.26,172.26],\n", " [1514937600000,172.53,174.55,171.96,172.23],\n", " [1515024000000,172.54,173.47,172.08,173.03],\n", " [1515110400000,173.44,175.37,173.05,175.00]\n", " ],\n", " dataGrouping: \"{\n", " units: [\n", " [\n", " 'week', // unit name\n", " [1] // allowed multiples\n", " ], [\n", " 'month',\n", " [1, 2, 3, 4, 6]\n", " ]\n", " ]\n", " }\".js_code\n", " }\n", " ]\n", "\n", "candle_stick = Daru::View::Plot.new\n", "candle_stick.chart.options = opts;\n", "candle_stick.chart.series_data = series_dt\n", "candle_stick.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " title: {\n", " text: 'Pie point CSS'\n", " },\n", " css: ['.highcharts-point.highcharts-color-2,',\n", " '.highcharts-legend-item.highcharts-color-2 .highcharts-point,',\n", " '.highcharts-tooltip .highcharts-color-2 {fill: #78a8d1;}',\n", " '.highcharts-tooltip.highcharts-color-2,',\n", " '.highcharts-data-label-connector.highcharts-color-2 {stroke: #78a8d1;}'],\n", " xAxis: {\n", " categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n", " }\n", "}\n", "\n", "series_dt = [{\n", " type: 'pie',\n", " allowPointSelect: true,\n", " keys: ['name', 'y', 'selected', 'sliced'],\n", " data: [\n", " ['Apples', 29.9, false],\n", " ['Pears', 71.5, false],\n", " ['Oranges', 106.4, false],\n", " ['Plums', 129.2, false],\n", " ['Bananas', 144.0, false],\n", " ['Peaches', 176.0, false],\n", " ['Prunes', 135.6, true, true],\n", " ['Avocados', 148.5, false]\n", " ],\n", " showInLegend: true\n", "}]\n", "\n", "pie = Daru::View::Plot.new\n", "pie.chart.options = opts;\n", "pie.chart.series_data = series_dt\n", "pie.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'line'\n", " },\n", " css: ['.highcharts-crosshair{fill: #90ed7d;stroke: #90ed7d;}'],\n", " title: {\n", " text: 'Chart border and background by CSS'\n", " },\n", "\n", " xAxis: {\n", " categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n", " },\n", "\n", " legend: {\n", " layout: 'vertical',\n", " floating: true,\n", " align: 'left',\n", " x: 100,\n", " verticalAlign: 'top',\n", " y: 70\n", " },\n", " \n", " yAxis: {\n", " crosshair: true\n", " }\n", "}\n", "\n", "series_dt = [{\n", " data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]\n", "}]\n", "\n", "line = Daru::View::Plot.new\n", "line.chart.options = opts;\n", "line.chart.series_data = series_dt\n", "line.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'gauge'\n", " },\n", " \n", " css: ['.outer-pane {fill: #EFEFEF;}',\n", " '.middle-pane {stroke-width: 1px;stroke: #AAA;}',\n", " '.inner-pane {fill: #DDDDDD;}',\n", " '.green-band {fill: #55BF3B;fill-opacity: 1;}',\n", " '.yellow-band {fill: #DDDF0D;fill-opacity: 1;}',\n", " '.red-band {fill: #DF5353;fill-opacity: 1;}'],\n", " \n", " title: {\n", " text: 'Speedometer'\n", " },\n", "\n", " pane: {\n", " startAngle: -150,\n", " endAngle: 150,\n", " background: [{\n", " className: 'outer-pane',\n", " outerRadius: '115%'\n", " }, {\n", " className: 'middle-pane',\n", " outerRadius: '112%'\n", " }, {\n", " # default background\n", " }, {\n", " className: 'inner-pane',\n", " outerRadius: '105%',\n", " innerRadius: '103%'\n", " }]\n", " },\n", "\n", " # the value axis\n", " yAxis: {\n", " min: 0,\n", " max: 200,\n", "\n", " minorTickInterval: 'auto',\n", " minorTickLength: 10,\n", " minorTickPosition: 'inside',\n", "\n", " tickPixelInterval: 30,\n", " tickPosition: 'inside',\n", " tickLength: 10,\n", " labels: {\n", " step: 2,\n", " rotation: 'auto'\n", " },\n", " title: {\n", " text: 'km/h'\n", " },\n", " plotBands: [{\n", " from: 0,\n", " to: 120,\n", " className: 'green-band'\n", " }, {\n", " from: 120,\n", " to: 160,\n", " className: 'yellow-band'\n", " }, {\n", " from: 160,\n", " to: 200,\n", " className: 'red-band'\n", " }]\n", " }\n", "}\n", "\n", "series_dt = [{\n", " name: 'Speed',\n", " data: [80],\n", " tooltip: {\n", " valueSuffix: ' km/h'\n", " }\n", "}]\n", "\n", "gauge = Daru::View::Plot.new\n", "gauge.chart.options = opts;\n", "gauge.chart.series_data = series_dt\n", "gauge.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'scatter'\n", " },\n", " \n", " css: ['.highcharts-xaxis-grid .highcharts-grid-line {stroke-width: 2px;stroke: #d8d8d8;}',\n", " '.highcharts-xaxis .highcharts-tick {stroke-width: 2px;stroke: #d8d8d8;}'],\n", "\n", " title: {\n", " text: 'Styling grid and ticks'\n", " },\n", "\n", " xAxis: {\n", " minorTickInterval: 'auto',\n", " startOnTick: true,\n", " endOnTick: true\n", " }\n", "}\n", "\n", "series_dt = [{\n", " data: [[161.2, 51.6], [167.5, 59.0], [159.5, 49.2], [157.0, 63.0], [155.8, 53.6],\n", " [170.0, 59.0], [159.1, 47.6], [166.0, 69.8], [176.2, 66.8], [160.2, 75.2],\n", " [172.5, 55.2], [170.9, 54.2], [172.9, 62.5], [153.4, 42.0], [160.0, 50.0],\n", " [147.2, 49.8], [168.2, 49.2], [175.0, 73.2], [157.0, 47.8], [167.6, 68.8],\n", " [159.5, 50.6], [175.0, 82.5], [166.8, 57.2], [176.5, 87.8], [170.2, 72.8],\n", " [174.0, 54.5], [173.0, 59.8], [179.9, 67.3], [170.5, 67.8], [160.0, 47.0],\n", " [154.4, 46.2], [162.0, 55.0], [176.5, 83.0], [160.0, 54.4], [152.0, 45.8],\n", " [162.1, 53.6], [170.0, 73.2], [160.2, 52.1], [161.3, 67.9], [166.4, 56.6],\n", " [168.9, 62.3], [163.8, 58.5], [167.6, 54.5], [160.0, 50.2], [161.3, 60.3],\n", " [167.6, 58.3], [165.1, 56.2], [160.0, 50.2], [170.0, 72.9], [157.5, 59.8],\n", " [167.6, 61.0], [160.7, 69.1], [163.2, 55.9], [152.4, 46.5], [157.5, 54.3],\n", " [168.3, 54.8], [180.3, 60.7], [165.5, 60.0], [165.0, 62.0], [164.5, 60.3],\n", " [156.0, 52.7], [160.0, 74.3], [163.0, 62.0], [165.7, 73.1], [161.0, 80.0],\n", " [162.0, 54.7], [166.0, 53.2], [174.0, 75.7], [172.7, 61.1], [167.6, 55.7],\n", " [151.1, 48.7], [164.5, 52.3], [163.5, 50.0], [152.0, 59.3], [169.0, 62.5],\n", " [164.0, 55.7], [161.2, 54.8], [155.0, 45.9], [170.0, 70.6], [176.2, 67.2],\n", " [170.0, 69.4], [162.5, 58.2], [170.3, 64.8], [164.1, 71.6], [169.5, 52.8],\n", " [163.2, 59.8], [154.5, 49.0], [159.8, 50.0], [173.2, 69.2], [170.0, 55.9]]\n", "}]\n", "\n", "scatter = Daru::View::Plot.new\n", "scatter.chart.options = opts;\n", "scatter.chart.series_data = series_dt\n", "scatter.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " title: {\n", " text: 'Pie point CSS'\n", " },\n", " css: ['.highcharts-legend-box {fill: black;fill-opacity: 0.3;stroke: black;stroke-width: 1px;}'],\n", " xAxis: {\n", " categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n", " }\n", "}\n", "\n", "series_dt = [{\n", " type: 'pie',\n", " allowPointSelect: true,\n", " keys: ['name', 'y', 'selected', 'sliced'],\n", " data: [\n", " ['Apples', 29.9, false],\n", " ['Pears', 71.5, false],\n", " ['Oranges', 106.4, false],\n", " ['Plums', 129.2, false],\n", " ['Bananas', 144.0, false],\n", " ['Peaches', 176.0, false],\n", " ['Prunes', 135.6, true, true],\n", " ['Avocados', 148.5, false]\n", " ],\n", " showInLegend: true\n", "}]\n", "\n", "pie = Daru::View::Plot.new\n", "pie.chart.options = opts;\n", "pie.chart.series_data = series_dt\n", "pie.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'pie',\n", " width: 500,\n", " borderWidth: 2\n", " },\n", " \n", " css: ['.highcharts-legend-box {fill: black;fill-opacity: 0.3;stroke: black;stroke-width: 1px;}',\n", " '.highcharts-legend-item text {fill: #e0e0e0;transition: fill 250ms;}',\n", " '.highcharts-legend-item:hover text {fill: white;}',\n", " '.highcharts-legend-item-hidden * {fill: gray !important;stroke: gray !important;}',\n", " '.highcharts-legend-title {fill: white;font-style: italic;}',\n", " '.highcharts-legend-navigation {fill: white;}',\n", " '.highcharts-legend-nav-active {fill: white;}',\n", " '.highcharts-legend-nav-inactive {fill: gray;}'],\n", "\n", " title: {\n", " text: 'Legend styled by CSS'\n", " },\n", "\n", " credits: {\n", " enabled: false\n", " },\n", "\n", " legend: {\n", " layout: 'vertical',\n", " align: 'right',\n", " verticalAlign: 'top',\n", " y: 30,\n", " title: {\n", " text: 'Male name'\n", " }\n", " }\n", "}\n", "\n", "series_dt = [{\n", " data: \"(function () {\n", " var names = 'Ari,Bjartur,Bogi,Bragi,Dánjal,Dávur,Eli,Emil,Fróði,Hákun,Hanus,Hjalti,Ísakur,' +\n", " 'Johan,Jóhan,Julian,Kristian,Leon,Levi,Magnus,Martin,Mattias,Mikkjal,Nóa,Óli,Pauli,Petur,Rói,Sveinur,Teitur',\n", " arr = [];\n", "\n", " Highcharts.each(names.split(','), function (name) {\n", " arr.push({\n", " name: name,\n", " y: Math.round(Math.random() * 100)\n", " });\n", " });\n", "\n", " return arr;\n", " }())\".js_code,\n", " showInLegend: true\n", "}]\n", "\n", "pie = Daru::View::Plot.new\n", "pie.chart.options = opts;\n", "pie.chart.series_data = series_dt\n", "pie.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'scatter'\n", " },\n", " \n", " css: ['.highcharts-minor-grid-line {stroke-dasharray: 2, 2;stroke-width: 2px;stroke: #d8d8d8;}'],\n", "\n", " title: {\n", " text: 'Styling grid and ticks'\n", " },\n", "\n", " xAxis: {\n", " minorTickInterval: 'auto',\n", " startOnTick: true,\n", " endOnTick: true\n", " }\n", "}\n", "\n", "series_dt = [{\n", " data: [[161.2, 51.6], [167.5, 59.0], [159.5, 49.2], [157.0, 63.0], [155.8, 53.6],\n", " [170.0, 59.0], [159.1, 47.6], [166.0, 69.8], [176.2, 66.8], [160.2, 75.2],\n", " [172.5, 55.2], [170.9, 54.2], [172.9, 62.5], [153.4, 42.0], [160.0, 50.0],\n", " [147.2, 49.8], [168.2, 49.2], [175.0, 73.2], [157.0, 47.8], [167.6, 68.8],\n", " [159.5, 50.6], [175.0, 82.5], [166.8, 57.2], [176.5, 87.8], [170.2, 72.8],\n", " [174.0, 54.5], [173.0, 59.8], [179.9, 67.3], [170.5, 67.8], [160.0, 47.0],\n", " [154.4, 46.2], [162.0, 55.0], [176.5, 83.0], [160.0, 54.4], [152.0, 45.8],\n", " [162.1, 53.6], [170.0, 73.2], [160.2, 52.1], [161.3, 67.9], [166.4, 56.6],\n", " [168.9, 62.3], [163.8, 58.5], [167.6, 54.5], [160.0, 50.2], [161.3, 60.3],\n", " [167.6, 58.3], [165.1, 56.2], [160.0, 50.2], [170.0, 72.9], [157.5, 59.8],\n", " [167.6, 61.0], [160.7, 69.1], [163.2, 55.9], [152.4, 46.5], [157.5, 54.3],\n", " [168.3, 54.8], [180.3, 60.7], [165.5, 60.0], [165.0, 62.0], [164.5, 60.3],\n", " [156.0, 52.7], [160.0, 74.3], [163.0, 62.0], [165.7, 73.1], [161.0, 80.0],\n", " [162.0, 54.7], [166.0, 53.2], [174.0, 75.7], [172.7, 61.1], [167.6, 55.7],\n", " [151.1, 48.7], [164.5, 52.3], [163.5, 50.0], [152.0, 59.3], [169.0, 62.5],\n", " [164.0, 55.7], [161.2, 54.8], [155.0, 45.9], [170.0, 70.6], [176.2, 67.2],\n", " [170.0, 69.4], [162.5, 58.2], [170.3, 64.8], [164.1, 71.6], [169.5, 52.8],\n", " [163.2, 59.8], [154.5, 49.0], [159.8, 50.0], [173.2, 69.2], [170.0, 55.9]]\n", "}]\n", "\n", "scatter = Daru::View::Plot.new\n", "scatter.chart.options = opts;\n", "scatter.chart.series_data = series_dt\n", "scatter.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# line with markers and shadow\n", "\n", " opts = {\n", " chart_class: 'stock',\n", " rangeSelector: {\n", " selected: 1\n", " },\n", " css: ['.highcharts-navigator-handle{fill: #90ed7d;stroke: #90ed7d;}'],\n", " title: {\n", " text: 'AAPL Stock Price'\n", " }\n", " }\n", "\n", " series_dt = [\n", " {\n", " name: 'AAPL Stock Price',\n", " data: [\n", " [1147651200000,67.79],\n", " [1147737600000,64.98],\n", " [1147824000000,65.26],\n", "\n", " [1149120000000,62.17],\n", " [1149206400000,61.66],\n", " [1149465600000,60.00],\n", " [1149552000000,59.72],\n", "\n", " [1157932800000,72.50],\n", " [1158019200000,72.63],\n", " [1158105600000,74.20],\n", " [1158192000000,74.17],\n", " [1158278400000,74.10],\n", " [1158537600000,73.89],\n", "\n", " [1170288000000,84.74],\n", " [1170374400000,84.75],\n", "\n", " [1174953600000,95.46],\n", " [1175040000000,93.24],\n", " [1175126400000,93.75],\n", " [1175212800000,92.91],\n", "\n", " [1180051200000,113.62],\n", " [1180396800000,114.35],\n", " [1180483200000,118.77],\n", " [1180569600000,121.19],\n", " ],\n", " marker: {\n", " enabled: true,\n", " radius: 3\n", " },\n", " shadow: true,\n", " tooltip: {\n", " valueDecimals: 2\n", " }\n", " }\n", " ]\n", "\n", "line_series_shadow_markers = Daru::View::Plot.new\n", "line_series_shadow_markers.chart.options = opts;\n", "line_series_shadow_markers.chart.series_data = series_dt\n", "line_series_shadow_markers.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# line with markers and shadow\n", "\n", " opts = {\n", " chart_class: 'stock',\n", " rangeSelector: {\n", " selected: 1\n", " },\n", " css: ['.highcharts-navigator-mask-inside{fill: #90ed7d;stroke: #90ed7d;}',\n", " '.highcharts-navigator-outline{stroke: #90ed7d;}'],\n", " title: {\n", " text: 'AAPL Stock Price'\n", " }\n", " }\n", "\n", " series_dt = [\n", " {\n", " name: 'AAPL Stock Price',\n", " data: [\n", " [1147651200000,67.79],\n", " [1147737600000,64.98],\n", " [1147824000000,65.26],\n", "\n", " [1149120000000,62.17],\n", " [1149206400000,61.66],\n", " [1149465600000,60.00],\n", " [1149552000000,59.72],\n", "\n", " [1157932800000,72.50],\n", " [1158019200000,72.63],\n", " [1158105600000,74.20],\n", " [1158192000000,74.17],\n", " [1158278400000,74.10],\n", " [1158537600000,73.89],\n", "\n", " [1170288000000,84.74],\n", " [1170374400000,84.75],\n", "\n", " [1174953600000,95.46],\n", " [1175040000000,93.24],\n", " [1175126400000,93.75],\n", " [1175212800000,92.91],\n", "\n", " [1180051200000,113.62],\n", " [1180396800000,114.35],\n", " [1180483200000,118.77],\n", " [1180569600000,121.19],\n", " ],\n", " marker: {\n", " enabled: true,\n", " radius: 3\n", " },\n", " shadow: true,\n", " tooltip: {\n", " valueDecimals: 2\n", " }\n", " }\n", " ]\n", "\n", "line_series_shadow_markers = Daru::View::Plot.new\n", "line_series_shadow_markers.chart.options = opts;\n", "line_series_shadow_markers.chart.series_data = series_dt\n", "line_series_shadow_markers.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Area chart : negative values\n", " opts = {\n", " title: {\n", " text: 'Monthly temperatures in a random cold place'\n", " },\n", " css: ['.highcharts-point {stroke: white;}',\n", " '.main-color .highcharts-graph {stroke: red;}',\n", " '.main-color, .main-color .highcharts-point {fill: red;}',\n", " '.highcharts-graph.highcharts-negative {stroke: blue;}',\n", " '.highcharts-area.highcharts-negative {fill: blue;}',\n", " '.highcharts-point.highcharts-negative {fill: blue;}'],\n", " subtitle: {\n", " text: 'All series should be blue below zero'\n", " },\n", " xAxis: {\n", " type: 'datetime'\n", " },\n", " plotOptions: {\n", " series: {\n", " className: 'main-color',\n", " negativeColor: true\n", " }\n", " }\n", " }\n", "\n", " series_dt = [\n", " {\n", " name: 'Spline',\n", " type: 'spline',\n", " data: [-6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0],\n", " pointStart: 'Date.UTC(2010, 0)'.js_code,\n", " pointInterval: '31 * 24 * 36e5'.js_code\n", " }, {\n", " name: 'Area',\n", " type: 'area',\n", " data: [-6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0],\n", " pointStart: 'Date.UTC(2011, 0)'.js_code,\n", " pointInterval: '30 * 24 * 36e5'.js_code\n", " }, {\n", " name: 'Column',\n", " type: 'column',\n", " data: [-6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0],\n", " pointStart: 'Date.UTC(2012, 0)'.js_code,\n", " pointInterval: '30 * 24 * 36e5'.js_code\n", " }\n", " ]\n", "\n", "area_neg = Daru::View::Plot.new\n", "area_neg.chart.options = opts;\n", "area_neg.chart.series_data = series_dt\n", "area_neg.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'line'\n", " },\n", " css: ['.highcharts-plot-background {fill: #efffff;}',\n", " '.highcharts-plot-border {stroke-width: 2px;stroke: #7cb5ec;}'],\n", " title: {\n", " text: 'Chart border and background by CSS'\n", " },\n", "\n", " xAxis: {\n", " categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n", " },\n", "\n", " legend: {\n", " layout: 'vertical',\n", " floating: true,\n", " align: 'left',\n", " x: 100,\n", " verticalAlign: 'top',\n", " y: 70\n", " },\n", " \n", " yAxis: {\n", " crosshair: true\n", " }\n", "}\n", "\n", "series_dt = [{\n", " data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]\n", "}]\n", "\n", "line = Daru::View::Plot.new\n", "line.chart.options = opts;\n", "line.chart.series_data = series_dt\n", "line.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'line'\n", " },\n", " css: ['.highcharts-title {fill: #434348;font-weight: bold;}',\n", " \".highcharts-subtitle {font-family: 'Courier New', monospace;font-style: italic;fill: #7cb5ec;}\"],\n", " title: {\n", " text: 'Title styles ...'\n", " },\n", "\n", " subtitle: {\n", " text: '... and subtitle styles'\n", " },\n", "\n", " xAxis: {\n", " categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n", " },\n", "\n", " legend: {\n", " layout: 'vertical',\n", " floating: true,\n", " align: 'left',\n", " x: 100,\n", " verticalAlign: 'top',\n", " y: 70\n", " },\n", " \n", " yAxis: {\n", " crosshair: true\n", " }\n", "}\n", "\n", "series_dt = [{\n", " data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]\n", "}]\n", "\n", "line = Daru::View::Plot.new\n", "line.chart.options = opts;\n", "line.chart.series_data = series_dt\n", "line.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'line'\n", " },\n", " css: ['.highcharts-tooltip-box {fill: black;fill-opacity: 0.1;stroke-width: 0;}',\n", " '.highcharts-title {fill: #434348;font-weight: bold;}'],\n", " title: {\n", " text: 'Title styles ...'\n", " },\n", "\n", " xAxis: {\n", " categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n", " },\n", "\n", " legend: {\n", " layout: 'vertical',\n", " floating: true,\n", " align: 'left',\n", " x: 100,\n", " verticalAlign: 'top',\n", " y: 70\n", " },\n", " \n", " yAxis: {\n", " crosshair: true\n", " }\n", "}\n", "\n", "series_dt = [{\n", " data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]\n", "}]\n", "\n", "line = Daru::View::Plot.new\n", "line.chart.options = opts;\n", "line.chart.series_data = series_dt\n", "line.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " title: {\n", " text: 'Styled color zones'\n", " },\n", " \n", " css: ['.highcharts-point {stroke: white;}',\n", " '.highcharts-graph.zone-0 {stroke: #f7a35c;}',\n", " '.highcharts-area.zone-0 {fill: #f7a35c;}',\n", " '.highcharts-point.zone-0 {fill: #f7a35c;}',\n", " '.highcharts-graph.zone-1 {stroke: #7cb5ec;}',\n", " '.highcharts-area.zone-1 {fill: #7cb5ec;}',\n", " '.highcharts-point.zone-1 {fill: #7cb5ec;}',\n", " '.highcharts-graph.zone-2 {stroke: #90ed7d;}',\n", " '.highcharts-area.zone-2 {fill: #90ed7d;}',\n", " '.highcharts-point.zone-2 {fill: #90ed7d;}'],\n", "\n", " yAxis: {\n", " min: -10\n", " },\n", "\n", " plotOptions: {\n", " series: {\n", " zones: [{\n", " value: 0,\n", " className: 'zone-0'\n", " }, {\n", " value: 10,\n", " className: 'zone-1'\n", " }, {\n", " className: 'zone-2'\n", " }],\n", " threshold: -10\n", " }\n", " }\n", "}\n", "\n", "series_dt = [{\n", " type: 'areaspline',\n", " data: [-10, -5, 0, 5, 10, 15, 10, 10, 5, 0, -5]\n", "}, {\n", " type: 'column',\n", " data: [1, 13, 2, -4, 6, 7, 5, 3, 2, -1, 2]\n", "}]\n", "\n", "area_spline = Daru::View::Plot.new\n", "area_spline.chart.options = opts;\n", "area_spline.chart.series_data = series_dt\n", "area_spline.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'column'\n", " },\n", " css: ['.highcharts-plot-background {fill: #efffff;}'],\n", " title: {\n", " text: 'Column chart CSS'\n", " }\n", "}\n", "\n", "data_frame = Daru::DataFrame.new(\n", " {\n", " 'Beer' => ['Kingfisher', 'Snow', 'Bud Light', 'Tiger Beer', 'Budweiser'],\n", " 'Gallons sold' => [500, 400, 450, 200, 250]\n", " }\n", ")\n", "\n", "chart = Daru::View::Plot.new(data_frame, opts)\n", "chart.show_in_iruby" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", "\n", "
" ], "text/plain": [ "\" \\n\\n
\"" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opts = {\n", " chart: {\n", " type: 'line'\n", " },\n", " css: ['.highcharts-xaxis-grid .highcharts-grid-line {stroke-width: 2px;stroke: #d8d8d8;}',\n", " '.highcharts-xaxis .highcharts-tick {stroke-width: 2px;stroke: #d8d8d8;}'],\n", " title: {\n", " text: 'Column chart CSS'\n", " }\n", "}\n", "\n", "chart = Daru::View::Plot.new(data_frame.first(3), opts)\n", "chart.show_in_iruby" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.4.1", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": ".rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.4.1" } }, "nbformat": 4, "nbformat_minor": 2 }