From 6011a91f7413b52acb345762ebf5ff46289d91bb Mon Sep 17 00:00:00 2001 From: Prakriti-nith Date: Wed, 23 May 2018 01:33:49 +0530 Subject: [PATCH 01/11] Added custom CSS in highcharts Added Examples --- .rubocop.yml | 1 + .../css/highcharts_css/highcharts.css | 835 ++++++ lib/daru/view/adapters/highcharts/display.rb | 28 +- .../adapters/highcharts/iruby_notebook.rb | 7 + .../adapters/js/highcharts_js/js/highstock.js | 515 ++++ .../view/adapters/js/highcharts_js/js/map.js | 68 + .../js/highcharts_js/maps/custom/europe.js | 2 + .../templates/highcharts/init.inline.css.erb | 9 + lib/tasks/high_charts.rake | 12 +- spec/adapters/highcharts/display_spec.rb | 38 +- .../highcharts/iruby_notebook_spec.rb | 7 + .../HighCharts - Custom styling in CSS.ipynb | 2439 +++++++++++++++++ 12 files changed, 3956 insertions(+), 5 deletions(-) create mode 100644 lib/daru/view/adapters/css/highcharts_css/highcharts.css create mode 100644 lib/daru/view/adapters/js/highcharts_js/js/highstock.js create mode 100644 lib/daru/view/adapters/js/highcharts_js/js/map.js create mode 100644 lib/daru/view/adapters/js/highcharts_js/maps/custom/europe.js create mode 100644 lib/daru/view/templates/highcharts/init.inline.css.erb create mode 100644 spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb diff --git a/.rubocop.yml b/.rubocop.yml index d171474..e2b9849 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -7,6 +7,7 @@ AllCops: - 'Guardfile' - '**/*.erb' - '**/*.js' + - '**/*.css' - 'spec/*' - 'spec/**/*' - 'vendor/**/*' diff --git a/lib/daru/view/adapters/css/highcharts_css/highcharts.css b/lib/daru/view/adapters/css/highcharts_css/highcharts.css new file mode 100644 index 0000000..83076a5 --- /dev/null +++ b/lib/daru/view/adapters/css/highcharts_css/highcharts.css @@ -0,0 +1,835 @@ +/** + * @license Highcharts + * + * (c) 2009-2016 Torstein Honsi + * + * License: www.highcharts.com/license + */ +.highcharts-container { + position: relative; + overflow: hidden; + width: 100%; + height: 100%; + text-align: left; + line-height: normal; + z-index: 0; + /* #1072 */ + -webkit-tap-highlight-color: transparent; + font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif; + font-size: 12px; +} + +.highcharts-root { + display: block; +} + +.highcharts-root text { + stroke-width: 0; +} + +.highcharts-strong { + font-weight: bold; +} + +.highcharts-emphasized { + font-style: italic; +} + +.highcharts-anchor { + cursor: pointer; +} + +.highcharts-background { + fill: #ffffff; +} + +.highcharts-plot-border, .highcharts-plot-background { + fill: none; +} + +.highcharts-label-box { + fill: none; +} + +.highcharts-button-box { + fill: inherit; +} + +/* Titles */ +.highcharts-title { + fill: #333333; + font-size: 1.5em; +} + +.highcharts-subtitle { + fill: #666666; +} + +/* Axes */ +.highcharts-axis-line { + fill: none; + stroke: #ccd6eb; +} + +.highcharts-yaxis .highcharts-axis-line { + stroke-width: 0; +} + +.highcharts-axis-title { + fill: #666666; +} + +.highcharts-axis-labels { + fill: #666666; + cursor: default; + font-size: 0.9em; +} + +.highcharts-grid-line { + fill: none; + stroke: #e6e6e6; +} + +.highcharts-xaxis-grid .highcharts-grid-line { + stroke-width: 0px; +} + +.highcharts-tick { + stroke: #ccd6eb; +} + +.highcharts-yaxis .highcharts-tick { + stroke-width: 0; +} + +.highcharts-minor-grid-line { + stroke: #f2f2f2; +} + +.highcharts-crosshair-thin { + stroke-width: 1px; + stroke: #cccccc; +} + +.highcharts-crosshair-category { + stroke: #ccd6eb; + stroke-opacity: 0.25; +} + +/* Credits */ +.highcharts-credits { + cursor: pointer; + fill: #999999; + font-size: 0.7em; + transition: fill 250ms, font-size 250ms; +} + +.highcharts-credits:hover { + fill: black; + font-size: 1em; +} + +/* Tooltip */ +.highcharts-tooltip { + cursor: default; + pointer-events: none; + white-space: nowrap; + transition: stroke 150ms; +} + +.highcharts-tooltip text { + fill: #333333; +} + +.highcharts-tooltip .highcharts-header { + font-size: 0.85em; +} + +.highcharts-tooltip-box { + stroke-width: 1px; + fill: #f7f7f7; + fill-opacity: 0.85; +} + +.highcharts-tooltip-box .highcharts-label-box { + fill: #f7f7f7; + fill-opacity: 0.85; +} + +.highcharts-selection-marker { + fill: #335cad; + fill-opacity: 0.25; +} + +.highcharts-graph { + fill: none; + stroke-width: 2px; + stroke-linecap: round; + stroke-linejoin: round; +} + +.highcharts-state-hover .highcharts-graph { + stroke-width: 3; +} + +.highcharts-state-hover path { + transition: stroke-width 50; + /* quick in */ +} + +.highcharts-state-normal path { + transition: stroke-width 250ms; + /* slow out */ +} + +/* Legend hover affects points and series */ +g.highcharts-series, +.highcharts-point, +.highcharts-markers, +.highcharts-data-labels { + transition: opacity 250ms; +} + +.highcharts-legend-series-active g.highcharts-series:not(.highcharts-series-hover), +.highcharts-legend-point-active .highcharts-point:not(.highcharts-point-hover), +.highcharts-legend-series-active .highcharts-markers:not(.highcharts-series-hover), +.highcharts-legend-series-active .highcharts-data-labels:not(.highcharts-series-hover) { + opacity: 0.2; +} + +/* Series options */ +/* Default colors */ +.highcharts-color-0 { + fill: #7cb5ec; + stroke: #7cb5ec; +} + +.highcharts-color-1 { + fill: #434348; + stroke: #434348; +} + +.highcharts-color-2 { + fill: #90ed7d; + stroke: #90ed7d; +} + +.highcharts-color-3 { + fill: #f7a35c; + stroke: #f7a35c; +} + +.highcharts-color-4 { + fill: #8085e9; + stroke: #8085e9; +} + +.highcharts-color-5 { + fill: #f15c80; + stroke: #f15c80; +} + +.highcharts-color-6 { + fill: #e4d354; + stroke: #e4d354; +} + +.highcharts-color-7 { + fill: #2b908f; + stroke: #2b908f; +} + +.highcharts-color-8 { + fill: #f45b5b; + stroke: #f45b5b; +} + +.highcharts-color-9 { + fill: #91e8e1; + stroke: #91e8e1; +} + +.highcharts-area { + fill-opacity: 0.75; + stroke-width: 0; +} + +.highcharts-markers { + stroke-width: 1px; + stroke: #ffffff; +} + +.highcharts-point { + stroke-width: 1px; +} + +.highcharts-dense-data .highcharts-point { + stroke-width: 0; +} + +.highcharts-data-label { + font-size: 0.9em; + font-weight: bold; +} + +.highcharts-data-label-box { + fill: none; + stroke-width: 0; +} + +.highcharts-data-label text, text.highcharts-data-label { + fill: #333333; +} + +.highcharts-data-label-connector { + fill: none; +} + +.highcharts-halo { + fill-opacity: 0.25; + stroke-width: 0; +} + +.highcharts-series:not(.highcharts-pie-series) .highcharts-point-select { + fill: #cccccc; + stroke: #000000; +} + +.highcharts-column-series rect.highcharts-point { + stroke: #ffffff; +} + +.highcharts-column-series .highcharts-point { + transition: fill-opacity 250ms; +} + +.highcharts-column-series .highcharts-point-hover { + fill-opacity: 0.75; + transition: fill-opacity 50ms; +} + +.highcharts-pie-series .highcharts-point { + stroke-linejoin: round; + stroke: #ffffff; +} + +.highcharts-pie-series .highcharts-point-hover { + fill-opacity: 0.75; + transition: fill-opacity 50ms; +} + +.highcharts-funnel-series .highcharts-point { + stroke-linejoin: round; + stroke: #ffffff; +} + +.highcharts-funnel-series .highcharts-point-hover { + fill-opacity: 0.75; + transition: fill-opacity 50ms; +} + +.highcharts-funnel-series .highcharts-point-select { + fill: inherit; + stroke: inherit; +} + +.highcharts-pyramid-series .highcharts-point { + stroke-linejoin: round; + stroke: #ffffff; +} + +.highcharts-pyramid-series .highcharts-point-hover { + fill-opacity: 0.75; + transition: fill-opacity 50ms; +} + +.highcharts-pyramid-series .highcharts-point-select { + fill: inherit; + stroke: inherit; +} + +.highcharts-solidgauge-series .highcharts-point { + stroke-width: 0; +} + +.highcharts-treemap-series .highcharts-point { + stroke-width: 1px; + stroke: #e6e6e6; + transition: stroke 250ms, fill 250ms, fill-opacity 250ms; +} + +.highcharts-treemap-series .highcharts-point-hover { + stroke: #999999; + transition: stroke 25ms, fill 25ms, fill-opacity 25ms; +} + +.highcharts-treemap-series .highcharts-above-level { + display: none; +} + +.highcharts-treemap-series .highcharts-internal-node { + fill: none; +} + +.highcharts-treemap-series .highcharts-internal-node-interactive { + fill-opacity: 0.15; + cursor: pointer; +} + +.highcharts-treemap-series .highcharts-internal-node-interactive:hover { + fill-opacity: 0.75; +} + +/* Legend */ +.highcharts-legend-box { + fill: none; + stroke-width: 0; +} + +.highcharts-legend-item text { + fill: #333333; + font-weight: bold; + font-size: 1em; + cursor: pointer; + stroke-width: 0; +} + +.highcharts-legend-item:hover text { + fill: #000000; +} + +.highcharts-legend-item-hidden * { + fill: #cccccc !important; + stroke: #cccccc !important; + transition: fill 250ms; +} + +.highcharts-legend-nav-active { + fill: #003399; + cursor: pointer; +} + +.highcharts-legend-nav-inactive { + fill: #cccccc; +} + +.highcharts-legend-title-box { + fill: none; + stroke-width: 0; +} + +/* Loading */ +.highcharts-loading { + position: absolute; + background-color: #ffffff; + opacity: 0.5; + text-align: center; + z-index: 10; + transition: opacity 250ms; +} + +.highcharts-loading-hidden { + height: 0 !important; + opacity: 0; + overflow: hidden; + transition: opacity 250ms, height 250ms step-end; +} + +.highcharts-loading-inner { + font-weight: bold; + position: relative; + top: 45%; +} + +/* Plot bands and polar pane backgrounds */ +.highcharts-plot-band, .highcharts-pane { + fill: #000000; + fill-opacity: 0.05; +} + +.highcharts-plot-line { + fill: none; + stroke: #999999; + stroke-width: 1px; +} + +/* Highcharts More and modules */ +.highcharts-boxplot-box { + fill: #ffffff; +} + +.highcharts-boxplot-median { + stroke-width: 2px; +} + +.highcharts-bubble-series .highcharts-point { + fill-opacity: 0.5; +} + +.highcharts-errorbar-series .highcharts-point { + stroke: #000000; +} + +.highcharts-gauge-series .highcharts-data-label-box { + stroke: #cccccc; + stroke-width: 1px; +} + +.highcharts-gauge-series .highcharts-dial { + fill: #000000; + stroke-width: 0; +} + +.highcharts-polygon-series .highcharts-graph { + fill: inherit; + stroke-width: 0; +} + +.highcharts-waterfall-series .highcharts-graph { + stroke: #333333; + stroke-dasharray: 1, 3; +} + +.highcharts-sankey-series .highcharts-point { + stroke-width: 0; +} + +.highcharts-sankey-series .highcharts-link { + transition: fill 250ms, fill-opacity 250ms; + fill-opacity: 0.5; +} + +.highcharts-sankey-series .highcharts-point-hover.highcharts-link { + transition: fill 50ms, fill-opacity 50ms; + fill-opacity: 1; +} + +/* Highstock */ +.highcharts-navigator-mask-outside { + fill-opacity: 0; +} + +.highcharts-navigator-mask-inside { + fill: #6685c2; + /* navigator.maskFill option */ + fill-opacity: 0.25; + cursor: ew-resize; +} + +.highcharts-navigator-outline { + stroke: #cccccc; + fill: none; +} + +.highcharts-navigator-handle { + stroke: #cccccc; + fill: #f2f2f2; + cursor: ew-resize; +} + +.highcharts-navigator-series { + fill: #335cad; + stroke: #335cad; +} + +.highcharts-navigator-series .highcharts-graph { + stroke-width: 1px; +} + +.highcharts-navigator-series .highcharts-area { + fill-opacity: 0.05; +} + +.highcharts-navigator-xaxis .highcharts-axis-line { + stroke-width: 0; +} + +.highcharts-navigator-xaxis .highcharts-grid-line { + stroke-width: 1px; + stroke: #e6e6e6; +} + +.highcharts-navigator-xaxis.highcharts-axis-labels { + fill: #999999; +} + +.highcharts-navigator-yaxis .highcharts-grid-line { + stroke-width: 0; +} + +.highcharts-scrollbar-thumb { + fill: #cccccc; + stroke: #cccccc; + stroke-width: 1px; +} + +.highcharts-scrollbar-button { + fill: #e6e6e6; + stroke: #cccccc; + stroke-width: 1px; +} + +.highcharts-scrollbar-arrow { + fill: #666666; +} + +.highcharts-scrollbar-rifles { + stroke: #666666; + stroke-width: 1px; +} + +.highcharts-scrollbar-track { + fill: #f2f2f2; + stroke: #f2f2f2; + stroke-width: 1px; +} + +.highcharts-button { + fill: #f7f7f7; + stroke: #cccccc; + cursor: default; + stroke-width: 1px; + transition: fill 250ms; +} + +.highcharts-button text { + fill: #333333; +} + +.highcharts-button-hover { + transition: fill 0ms; + fill: #e6e6e6; + stroke: #cccccc; +} + +.highcharts-button-hover text { + fill: #333333; +} + +.highcharts-button-pressed { + font-weight: bold; + fill: #e6ebf5; + stroke: #cccccc; +} + +.highcharts-button-pressed text { + fill: #333333; + font-weight: bold; +} + +.highcharts-button-disabled text { + fill: #333333; +} + +.highcharts-range-selector-buttons .highcharts-button { + stroke-width: 0px; +} + +.highcharts-range-label rect { + fill: none; +} + +.highcharts-range-label text { + fill: #666666; +} + +.highcharts-range-input rect { + fill: none; +} + +.highcharts-range-input text { + fill: #333333; +} + +.highcharts-range-input { + stroke-width: 1px; + stroke: #cccccc; +} + +input.highcharts-range-selector { + position: absolute; + border: 0; + width: 1px; + /* Chrome needs a pixel to see it */ + height: 1px; + padding: 0; + text-align: center; + left: -9em; + /* #4798 */ +} + +.highcharts-crosshair-label text { + fill: #ffffff; + font-size: 1.1em; +} + +.highcharts-crosshair-label .highcharts-label-box { + fill: inherit; +} + +.highcharts-candlestick-series .highcharts-point { + stroke: #000000; + stroke-width: 1px; +} + +.highcharts-candlestick-series .highcharts-point-up { + fill: #ffffff; +} + +.highcharts-ohlc-series .highcharts-point-hover { + stroke-width: 3px; +} + +.highcharts-flags-series .highcharts-point .highcharts-label-box { + stroke: #999999; + fill: #ffffff; + transition: fill 250ms; +} + +.highcharts-flags-series .highcharts-point-hover .highcharts-label-box { + stroke: #000000; + fill: #ccd6eb; +} + +.highcharts-flags-series .highcharts-point text { + fill: #000000; + font-size: 0.9em; + font-weight: bold; +} + +/* Highmaps */ +.highcharts-map-series .highcharts-point { + transition: fill 500ms, fill-opacity 500ms, stroke-width 250ms; + stroke: #cccccc; +} + +.highcharts-map-series .highcharts-point-hover { + transition: fill 0ms, fill-opacity 0ms; + fill-opacity: 0.5; + stroke-width: 2px; +} + +.highcharts-mapline-series .highcharts-point { + fill: none; +} + +.highcharts-heatmap-series .highcharts-point { + stroke-width: 0; +} + +.highcharts-map-navigation { + font-size: 1.3em; + font-weight: bold; + text-align: center; +} + +.highcharts-coloraxis { + stroke-width: 0; +} + +.highcharts-coloraxis-marker { + fill: #999999; +} + +.highcharts-null-point { + fill: #f7f7f7; +} + +/* 3d charts */ +.highcharts-3d-frame { + fill: transparent; +} + +/* Exporting module */ +.highcharts-contextbutton { + fill: #ffffff; + /* needed to capture hover */ + stroke: none; + stroke-linecap: round; +} + +.highcharts-contextbutton:hover { + fill: #e6e6e6; + stroke: #e6e6e6; +} + +.highcharts-button-symbol { + stroke: #666666; + stroke-width: 3px; +} + +.highcharts-menu { + border: 1px solid #999999; + background: #ffffff; + padding: 5px 0; + box-shadow: 3px 3px 10px #888; +} + +.highcharts-menu-item { + padding: 0.5em 1em; + background: none; + color: #333333; + cursor: pointer; + transition: background 250ms, color 250ms; +} + +.highcharts-menu-item:hover { + background: #335cad; + color: #ffffff; +} + +/* Drilldown module */ +.highcharts-drilldown-point { + cursor: pointer; +} + +.highcharts-drilldown-data-label text, +text.highcharts-drilldown-data-label, +.highcharts-drilldown-axis-label { + cursor: pointer; + fill: #003399; + font-weight: bold; + text-decoration: underline; +} + +/* No-data module */ +.highcharts-no-data text { + font-weight: bold; + font-size: 12px; + fill: #666666; +} + +/* Drag-panes module */ +.highcharts-axis-resizer { + cursor: ns-resize; + stroke: black; + stroke-width: 2px; +} + +/* Bullet type series */ +.highcharts-bullet-target { + stroke-width: 0; +} + +/* Lineargauge type series */ +.highcharts-lineargauge-target { + stroke-width: 1px; + stroke: #333333; +} + +.highcharts-lineargauge-target-line { + stroke-width: 1px; + stroke: #333333; +} + +/* Annotations module */ +.highcharts-annotation-label-box { + stroke-width: 1px; + stroke: #000000; + fill: #000000; + fill-opacity: 0.75; +} + +.highcharts-annotation-label text { + fill: #e6e6e6; +} diff --git a/lib/daru/view/adapters/highcharts/display.rb b/lib/daru/view/adapters/highcharts/display.rb index 63e389a..33e4392 100644 --- a/lib/daru/view/adapters/highcharts/display.rb +++ b/lib/daru/view/adapters/highcharts/display.rb @@ -4,7 +4,8 @@ module LazyHighCharts def self.init_script( - dependent_js=HIGHCHARTS_DEPENDENCIES + dependent_js=HIGHCHARTS_DEPENDENCIES, + dependent_css=['highcharts.css'] ) # Highstock is based on Highcharts, meaning it has all the core # functionality of Highcharts, plus some additional features. So @@ -14,6 +15,9 @@ def self.init_script( # Note: Don't reorder the dependent_js elements. It must be loaded in # the same sequence. Otherwise some of the JS overlap and doesn't work. js = '' + js << "\n" js << "\n" @@ -34,6 +38,7 @@ class HighChart def to_html(placeholder=random_canvas_id) chart_hash_must_be_present script = load_dependencies('web_frameworks') + script << high_chart_css(placeholder) # Helps to denote either of the three classes. chart_class = extract_chart_class # When user wants to plot a HighMap @@ -61,7 +66,26 @@ def show_in_iruby(placeholder=random_canvas_id) def to_html_iruby(placeholder=random_canvas_id) # TODO : placeholder pass, in plot#div chart_hash_must_be_present - high_chart_iruby(extract_chart_class, placeholder, self) + script = high_chart_css(placeholder) + script << high_chart_iruby(extract_chart_class, placeholder, self) + script + end + + # return [String] css code of the chart + def high_chart_css(placeholder) + # contains the css provided by the user as a String array + css_data = options[:css].nil? ? '' : option.delete(:css) + script = '' + if css_data != '' + script << '' + end + script end # Loads the dependent mapdata and dependent modules of the chart diff --git a/lib/daru/view/adapters/highcharts/iruby_notebook.rb b/lib/daru/view/adapters/highcharts/iruby_notebook.rb index 27b03d3..9fe1e87 100644 --- a/lib/daru/view/adapters/highcharts/iruby_notebook.rb +++ b/lib/daru/view/adapters/highcharts/iruby_notebook.rb @@ -9,6 +9,13 @@ def self.generate_init_code(dependent_js) ERB.new(template).result(binding) end + def self.generate_init_code_css(dependent_css) + css_dir = File.expand_path('../css/highcharts_css', __dir__) + path = File.expand_path('../../templates/highcharts/init.inline.css.erb', __dir__) + template = File.read(path) + ERB.new(template).result(binding) + end + # Enable to show plots on IRuby notebook def self.init_iruby( dependent_js=HIGHCHARTS_DEPENDENCIES diff --git a/lib/daru/view/adapters/js/highcharts_js/js/highstock.js b/lib/daru/view/adapters/js/highcharts_js/js/highstock.js new file mode 100644 index 0000000..5b6f38a --- /dev/null +++ b/lib/daru/view/adapters/js/highcharts_js/js/highstock.js @@ -0,0 +1,515 @@ +/* + Highstock JS v6.1.0 (2018-04-13) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(U,K){"object"===typeof module&&module.exports?module.exports=U.document?K(U):K:U.Highcharts=K(U)})("undefined"!==typeof window?window:this,function(U){var K=function(){var a="undefined"===typeof U?window:U,F=a.document,G=a.navigator&&a.navigator.userAgent||"",H=F&&F.createElementNS&&!!F.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,r=/(edge|msie|trident)/i.test(G)&&!a.opera,k=-1!==G.indexOf("Firefox"),f=-1!==G.indexOf("Chrome"),u=k&&4>parseInt(G.split("Firefox/")[1], +10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock",version:"6.1.0",deg2rad:2*Math.PI/360,doc:F,hasBidiBug:u,hasTouch:F&&void 0!==F.documentElement.ontouchstart,isMS:r,isWebKit:-1!==G.indexOf("AppleWebKit"),isFirefox:k,isChrome:f,isSafari:!f&&-1!==G.indexOf("Safari"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(G),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:H,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){}, +charts:[]}}();(function(a){a.timers=[];var F=a.charts,G=a.doc,H=a.win;a.error=function(r,k){r=a.isNumber(r)?"Highcharts error #"+r+": www.highcharts.com/errors/"+r:r;if(k)throw Error(r);H.console&&console.log(r)};a.Fx=function(a,k,f){this.options=k;this.elem=a;this.prop=f};a.Fx.prototype={dSetter:function(){var a=this.paths[0],k=this.paths[1],f=[],u=this.now,y=a.length,v;if(1===u)f=this.toD;else if(y===k.length&&1>u)for(;y--;)v=parseFloat(a[y]),f[y]=isNaN(v)?k[y]:u*parseFloat(k[y]-v)+v;else f=k;this.elem.attr("d", +f,null,!0)},update:function(){var a=this.elem,k=this.prop,f=this.now,u=this.options.step;if(this[k+"Setter"])this[k+"Setter"]();else a.attr?a.element&&a.attr(k,f,null,!0):a.style[k]=f+this.unit;u&&u.call(a,f,this)},run:function(r,k,f){var u=this,y=u.options,v=function(a){return v.stopped?!1:u.step(a)},q=H.requestAnimationFrame||function(a){setTimeout(a,13)},d=function(){for(var c=0;c=q+this.startTime?(this.now=this.end,this.pos=1,this.update(),f=d[this.prop]=!0,a.objectEach(d,function(a){!0!== +a&&(f=!1)}),f&&v&&v.call(y),r=!1):(this.pos=u.easing((k-this.startTime)/q),this.now=this.start+(this.end-this.start)*this.pos,this.update(),r=!0);return r},initPath:function(r,k,f){function u(a){var b,c;for(l=a.length;l--;)b="M"===a[l]||"L"===a[l],c=/[a-zA-Z]/.test(a[l+3]),b&&c&&a.splice(l+1,0,a[l+1],a[l+2],a[l+1],a[l+2])}function y(a,b){for(;a.lengtha&&-Infinity=f&&(k=[1/f])));for(u=0;u=r|| +!y&&v<=(k[u]+(k[u+1]||k[u]))/2);u++);return q=a.correctFloat(q*f,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,k){var f=a.length,u,y;for(y=0;yf&&(f=a[k]);return f};a.destroyObjectProperties=function(r,k){a.objectEach(r,function(a, +u){a&&a!==k&&a.destroy&&a.destroy();delete r[u]})};a.discardElement=function(r){var k=a.garbageBin;k||(k=a.createElement("div"));r&&k.appendChild(r);k.innerHTML=""};a.correctFloat=function(a,k){return parseFloat(a.toPrecision(k||14))};a.setAnimation=function(r,k){k.renderer.globalAnimation=a.pick(r,k.options.chart.animation,!0)};a.animObject=function(r){return a.isObject(r)?a.merge(r):{duration:r?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5, +year:314496E5};a.numberFormat=function(r,k,f,u){r=+r||0;k=+k;var y=a.defaultOptions.lang,v=(r.toString().split(".")[1]||"").split("e")[0].length,q,d,c=r.toString().split("e");-1===k?k=Math.min(v,20):a.isNumber(k)?k&&c[1]&&0>c[1]&&(q=k+ +c[1],0<=q?(c[0]=(+c[0]).toExponential(q).split("e")[0],k=q):(c[0]=c[0].split(".")[0]||0,r=20>k?(c[0]*Math.pow(10,c[1])).toFixed(k):0,c[1]=0)):k=2;d=(Math.abs(c[1]?c[0]:r)+Math.pow(10,-Math.max(k,v)-1)).toFixed(k);v=String(a.pInt(d));q=3r?"-":"")+(q?v.substr(0,q)+u:"");r+=v.substr(q).replace(/(\d{3})(?=\d)/g,"$1"+u);k&&(r+=f+d.slice(-k));c[1]&&0!==+r&&(r+="e"+c[1]);return r};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(r,k,f){if("width"===k)return Math.min(r.offsetWidth,r.scrollWidth)-a.getStyle(r,"padding-left")-a.getStyle(r,"padding-right");if("height"===k)return Math.min(r.offsetHeight,r.scrollHeight)-a.getStyle(r,"padding-top")-a.getStyle(r, +"padding-bottom");H.getComputedStyle||a.error(27,!0);if(r=H.getComputedStyle(r,void 0))r=r.getPropertyValue(k),a.pick(f,"opacity"!==k)&&(r=a.pInt(r));return r};a.inArray=function(r,k,f){return(a.indexOfPolyfill||Array.prototype.indexOf).call(k,r,f)};a.grep=function(r,k){return(a.filterPolyfill||Array.prototype.filter).call(r,k)};a.find=Array.prototype.find?function(a,k){return a.find(k)}:function(a,k){var f,u=a.length;for(f=0;f>16,(f&65280)>>8,f&255,1]:4===k&&(y=[(f&3840)>>4|(f&3840)>>8,(f&240)>>4|f&240,(f&15)<<4|f&15,1])),!y)for(v=this.parsers.length;v--&& +!y;)q=this.parsers[v],(k=q.regex.exec(f))&&(y=q.parse(k));this.rgba=y||[]},get:function(a){var f=this.input,k=this.rgba,v;this.stops?(v=r(f),v.stops=[].concat(v.stops),F(this.stops,function(q,d){v.stops[d]=[v.stops[d][0],q.get(a)]})):v=k&&G(k[0])?"rgb"===a||!a&&1===k[3]?"rgb("+k[0]+","+k[1]+","+k[2]+")":"a"===a?k[3]:"rgba("+k.join(",")+")":f;return v},brighten:function(a){var f,y=this.rgba;if(this.stops)F(this.stops,function(f){f.brighten(a)});else if(G(a)&&0!==a)for(f=0;3>f;f++)y[f]+=k(255*a),0> +y[f]&&(y[f]=0),255b.width)b={width:0,height:0}}else b=this.htmlGetBBox();A.isSVG&&(a=b.width,A=b.height,c&&"11px"===c.fontSize&&17===Math.round(A)&& +(b.height=A=14),e&&(b.width=Math.abs(A*Math.sin(C))+Math.abs(a*Math.cos(C)),b.height=Math.abs(A*Math.cos(C))+Math.abs(a*Math.sin(C))));if(L&&0]*>/g,"").replace(/</g,"\x3c").replace(/>/g,"\x3e")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&& +this.renderer.buildText(this))},fillSetter:function(a,g,e){"string"===typeof a?e.setAttribute(g,a):a&&this.complexColor(a,g,e)},visibilitySetter:function(a,g,e){"inherit"===a?e.removeAttribute(g):this[g]!==a&&e.setAttribute(g,a);this[g]=a},zIndexSetter:function(a,g){var e=this.renderer,b=this.parentGroup,A=(b||e).element||e.box,m,c=this.element,h,x,e=A===e.box;m=this.added;var l;q(a)&&(c.zIndex=a,a=+a,this[g]===a&&(m=!1),this[g]=a);if(m){(a=this.zIndex)&&b&&(b.handleZ=!0);g=A.childNodes;for(l=g.length- +1;0<=l&&!h;l--)if(b=g[l],m=b.zIndex,x=!q(m),b!==c)if(0>a&&x&&!e&&!l)A.insertBefore(c,g[l]),h=!0;else if(C(m)<=a||x&&(!q(a)||0<=a))A.insertBefore(c,g[l+1]||null),h=!0;h||(A.insertBefore(c,g[e?3:0]||null),h=!0)}return h},_defaultSetter:function(a,g,e){e.setAttribute(g,a)}});F.prototype.yGetter=F.prototype.xGetter;F.prototype.translateXSetter=F.prototype.translateYSetter=F.prototype.rotationSetter=F.prototype.verticalAlignSetter=F.prototype.rotationOriginXSetter=F.prototype.rotationOriginYSetter=F.prototype.scaleXSetter= +F.prototype.scaleYSetter=F.prototype.matrixSetter=function(a,g){this[g]=a;this.doTransform=!0};G=a.SVGRenderer=function(){this.init.apply(this,arguments)};n(G.prototype,{Element:F,SVG_NS:V,init:function(a,g,e,b,A,C){var m;b=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});m=b.element;a.appendChild(m);k(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&k(m,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=m;this.boxWrapper=b;this.alignedObjects=[];this.url=(t||D)&&z.getElementsByTagName("base").length? +O.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(z.createTextNode("Created with Highstock 6.1.0"));this.defs=this.createElement("defs").add();this.allowHTML=C;this.forExport=A;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(g,e,!1);var c;t&&a.getBoundingClientRect&&(g=function(){y(a,{left:0,top:0});c=a.getBoundingClientRect();y(a,{left:Math.ceil(c.left)- +c.left+"px",top:Math.ceil(c.top)-c.top+"px"})},g(),this.unSubPixelFix=H(O,"resize",g))},definition:function(a){function g(a,b){var C;p(A(a),function(a){var A=e.createElement(a.tagName),m={};J(a,function(a,g){"tagName"!==g&&"children"!==g&&"textContent"!==g&&(m[g]=a)});A.attr(m);A.add(b||e.defs);a.textContent&&A.element.appendChild(z.createTextNode(a.textContent));g(a.children||[],A);C=A});return C}var e=this;return g(a)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a= +this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();c(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var g=new this.Element;g.init(this,a);return g},draw:x,getRadialAttr:function(a,g){return{cx:a[0]-a[2]/2+g.cx*a[2],cy:a[1]-a[2]/2+g.cy*a[2],r:g.r*a[2]}},getSpanWidth:function(a){return a.getBBox(!0).width},applyEllipsis:function(a,g,e,b){var A=a.rotation,C=e,m,c=0,h= +e.length,x=function(a){g.removeChild(g.firstChild);a&&g.appendChild(z.createTextNode(a))},l;a.rotation=0;C=this.getSpanWidth(a,g);if(l=C>b){for(;c<=h;)m=Math.ceil((c+h)/2),C=e.substring(0,m)+"\u2026",x(C),C=this.getSpanWidth(a,g),c===h?c=h+1:C>b?h=m-1:c=m;0===h&&x("")}a.rotation=A;return l},escapes:{"\x26":"\x26amp;","\x3c":"\x26lt;","\x3e":"\x26gt;","'":"\x26#39;",'"':"\x26quot;"},buildText:function(a){var e=a.element,b=this,A=b.forExport,m=g(a.textStr,"").toString(),c=-1!==m.indexOf("\x3c"),h=e.childNodes, +x,d=k(e,"x"),n=a.styles,D=a.textWidth,t=n&&n.lineHeight,L=n&&n.textOutline,w=n&&"ellipsis"===n.textOverflow,P=n&&"nowrap"===n.whiteSpace,I,B=h.length,q=D&&!a.added&&this.box,f=function(a){return t?C(t):b.fontMetrics(void 0,a.getAttribute("style")?a:e).h},v=function(a,g){J(b.escapes,function(e,b){g&&-1!==E(e,g)||(a=a.toString().replace(new RegExp(e,"g"),b))});return a},N=function(a,g){var e;e=a.indexOf("\x3c");a=a.substring(e,a.indexOf("\x3e")-e);e=a.indexOf(g+"\x3d");if(-1!==e&&(e=e+g.length+1,g= +a.charAt(e),'"'===g||"'"===g))return a=a.substring(e+1),a.substring(0,a.indexOf(g))},n=[m,w,P,t,L,n&&n.fontSize,D].join();if(n!==a.textCache){for(a.textCache=n;B--;)e.removeChild(h[B]);c||L||w||D||-1!==m.indexOf(" ")?(q&&q.appendChild(e),m=c?m.replace(/<(b|strong)>/g,'\x3cspan class\x3d"highcharts-strong"\x3e').replace(/<(i|em)>/g,'\x3cspan class\x3d"highcharts-emphasized"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[m],m=l(m,function(a){return""!== +a}),p(m,function(g,C){var m,c=0;g=g.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");m=g.split("|||");p(m,function(g){if(""!==g||1===m.length){var h={},l=z.createElementNS(b.SVG_NS,"tspan"),n,t;(n=N(g,"class"))&&k(l,"class",n);if(n=N(g,"style"))n=n.replace(/(;| |^)color([ :])/,"$1fill$2"),k(l,"style",n);(t=N(g,"href"))&&!A&&(k(l,"onclick",'location.href\x3d"'+t+'"'),k(l,"class","highcharts-anchor"));g=v(g.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!== +g){l.appendChild(z.createTextNode(g));c?h.dx=0:C&&null!==d&&(h.x=d);k(l,h);e.appendChild(l);!c&&I&&(!X&&A&&y(l,{display:"block"}),k(l,"dy",f(l)));if(D){h=g.replace(/([^\^])-/g,"$1- ").split(" ");t=1D,void 0===x&&(x=g),g&&1!==h.length?(l.removeChild(l.firstChild),L.unshift(h.pop())):(h=L,L=[],h.length&&!P&&(l=z.createElementNS(V,"tspan"), +k(l,{dy:B,x:d}),n&&k(l,"style",n),e.appendChild(l)),E>D&&(D=E)),h.length&&l.appendChild(z.createTextNode(h.join(" ").replace(/- /g,"-")));a.rotation=p}c++}}});I=I||e.childNodes.length}),x&&a.attr("title",v(a.textStr,["\x26lt;","\x26gt;"])),q&&q.removeChild(e),L&&a.applyTextOutline&&a.applyTextOutline(L)):e.appendChild(z.createTextNode(v(m)))}},getContrast:function(a){a=u(a).rgba;return 510Math.abs(C.end-C.start-2*Math.PI));var x=Math.cos(m),n=Math.sin(m),D=Math.cos(l),l=Math.sin(l);C=.001>C.end-m-Math.PI?0:1;c=["M",a+c*x,e+h*n,"A",c,h,0,C,1,a+c*D,e+h*l];q(b)&&c.push(A?"M":"L",a+b*D,e+b*l,"A",b,b,0,C,0,a+b*x,e+b*n);c.push(A?"":"Z");return c},callout:function(a,g,e,b,A){var C=Math.min(A&&A.r||0,e,b),m=C+6,c=A&&A.anchorX;A=A&&A.anchorY;var h; +h=["M",a+C,g,"L",a+e-C,g,"C",a+e,g,a+e,g,a+e,g+C,"L",a+e,g+b-C,"C",a+e,g+b,a+e,g+b,a+e-C,g+b,"L",a+C,g+b,"C",a,g+b,a,g+b,a,g+b-C,"L",a,g+C,"C",a,g,a,g,a+C,g];c&&c>e?A>g+m&&Ac?A>g+m&&Ab&&c>a+m&&cA&&c>a+m&&ca?a+3:Math.round(1.2*a);return{h:g,b:Math.round(.8*g),f:a}},rotCorr:function(a,g,e){var b=a;g&&e&&(b=Math.max(b*Math.cos(g*d),4));return{x:-a/3*Math.sin(g*d),y:b}},label:function(g,b,A,C,m,c,h,l,x){var D=this,d=D.g("button"!== +x&&"label"),t=d.text=D.text("",0,0,h).attr({zIndex:1}),L,w,E=0,I=3,B=0,z,J,f,X,k,v={},y,V=/^url\((.*?)\)$/.test(C),u=V,r,M,O,N;x&&d.addClass("highcharts-"+x);u=!0;r=function(){return L.strokeWidth()%2/2};M=function(){var a=t.element.style,g={};w=(void 0===z||void 0===J||k)&&q(t.textStr)&&t.getBBox();d.width=(z||w.width||0)+2*I+B;d.height=(J||w.height||0)+2*I;y=I+D.fontMetrics(a&&a.fontSize,t).b;u&&(L||(d.box=L=D.symbols[C]||V?D.symbol(C):D.rect(),L.addClass(("button"===x?"":"highcharts-label-box")+ +(x?" highcharts-"+x+"-box":"")),L.add(d),a=r(),g.x=a,g.y=(l?-y:0)+a),g.width=Math.round(d.width),g.height=Math.round(d.height),L.attr(n(g,v)),v={})};O=function(){var a=B+I,g;g=l?0:y;q(z)&&w&&("center"===k||"right"===k)&&(a+={center:.5,right:1}[k]*(z-w.width));if(a!==t.x||g!==t.y)t.attr("x",a),void 0!==g&&t.attr("y",g);t.x=a;t.y=g};N=function(a,g){L?L.attr(a,g):v[a]=g};d.onAdd=function(){t.add(d);d.attr({text:g||0===g?g:"",x:b,y:A});L&&q(m)&&d.attr({anchorX:m,anchorY:c})};d.widthSetter=function(g){z= +a.isNumber(g)?g:null};d.heightSetter=function(a){J=a};d["text-alignSetter"]=function(a){k=a};d.paddingSetter=function(a){q(a)&&a!==I&&(I=d.padding=a,O())};d.paddingLeftSetter=function(a){q(a)&&a!==B&&(B=a,O())};d.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==E&&(E=a,w&&d.attr({x:f}))};d.textSetter=function(a){void 0!==a&&t.textSetter(a);M();O()};d["stroke-widthSetter"]=function(a,g){a&&(u=!0);this["stroke-width"]=a;N(g,a)};d.rSetter=function(a,g){N(g,a)};d.anchorXSetter=function(a,g){m= +d.anchorX=a;N(g,Math.round(a)-r()-f)};d.anchorYSetter=function(a,g){c=d.anchorY=a;N(g,a-X)};d.xSetter=function(a){d.x=a;E&&(a-=E*((z||w.width)+2*I),d["forceAnimate:x"]=!0);f=Math.round(a);d.attr("translateX",f)};d.ySetter=function(a){X=d.y=Math.round(a);d.attr("translateY",X)};var G=d.css;return n(d,{css:function(a){if(a){var g={};a=e(a);p(d.textProps,function(e){void 0!==a[e]&&(g[e]=a[e],delete a[e])});t.css(g);"width"in g&&M()}return G.call(d,a)},getBBox:function(){return{width:w.width+2*I,height:w.height+ +2*I,x:w.x-I,y:w.y-I}},destroy:function(){P(d.element,"mouseenter");P(d.element,"mouseleave");t&&(t=t.destroy());L&&(L=L.destroy());F.prototype.destroy.call(d);d=D=M=O=N=null}})}});a.Renderer=G})(K);(function(a){var F=a.attr,G=a.createElement,H=a.css,r=a.defined,k=a.each,f=a.extend,u=a.isFirefox,y=a.isMS,v=a.isWebKit,q=a.pick,d=a.pInt,c=a.SVGRenderer,z=a.win,p=a.wrap;f(a.SVGElement.prototype,{htmlCss:function(a){var b=this.element;if(b=a&&"SPAN"===b.tagName&&a.width)delete a.width,this.textWidth=b, +this.htmlUpdateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=f(this.styles,a);H(this.element,a);return this},htmlGetBBox:function(){var a=this.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,b=this.element,c=this.x||0,h=this.y||0,E=this.textAlign||"left",B={left:0,center:.5,right:1}[E],t=this.styles,I=t&&t.whiteSpace;H(b,{marginLeft:this.translateX|| +0,marginTop:this.translateY||0});this.inverted&&k(b.childNodes,function(e){a.invertChild(e,b)});if("SPAN"===b.tagName){var t=this.rotation,w=this.textWidth&&d(this.textWidth),m=[t,E,b.innerHTML,this.textWidth,this.textAlign].join(),D;(D=w!==this.oldTextWidth)&&!(D=w>this.oldTextWidth)&&((D=this.textPxLength)||(H(b,{width:"",whiteSpace:I||"nowrap"}),D=b.offsetWidth),D=D>w);D&&/[ \-]/.test(b.textContent||b.innerText)&&(H(b,{width:w+"px",display:"block",whiteSpace:I||"normal"}),this.oldTextWidth=w); +m!==this.cTT&&(I=a.fontMetrics(b.style.fontSize).b,r(t)&&t!==(this.oldRotation||0)&&this.setSpanRotation(t,B,I),this.getSpanCorrection(!r(t)&&this.textPxLength||b.offsetWidth,I,B,t,E));H(b,{left:c+(this.xCorr||0)+"px",top:h+(this.yCorr||0)+"px"});this.cTT=m;this.oldRotation=t}}else this.alignOnAdd=!0},setSpanRotation:function(a,b,c){var h={},l=this.renderer.getTransformKey();h[l]=h.transform="rotate("+a+"deg)";h[l+(u?"Origin":"-origin")]=h.transformOrigin=100*b+"% "+c+"px";H(this.element,h)},getSpanCorrection:function(a, +b,c){this.xCorr=-a*c;this.yCorr=-b}});f(c.prototype,{getTransformKey:function(){return y&&!/Edge/.test(z.navigator.userAgent)?"-ms-transform":v?"-webkit-transform":u?"MozTransform":z.opera?"-o-transform":""},html:function(a,b,c){var h=this.createElement("span"),l=h.element,d=h.renderer,n=d.isSVG,I=function(a,b){k(["opacity","visibility"],function(m){p(a,m+"Setter",function(a,m,c,g){a.call(this,m,c,g);b[c]=m})});a.addedSetters=!0};h.textSetter=function(a){a!==l.innerHTML&&delete this.bBox;this.textStr= +a;l.innerHTML=q(a,"");h.doTransform=!0};n&&I(h,h.element.style);h.xSetter=h.ySetter=h.alignSetter=h.rotationSetter=function(a,b){"align"===b&&(b="textAlign");h[b]=a;h.doTransform=!0};h.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};h.attr({text:a,x:Math.round(b),y:Math.round(c)}).css({position:"absolute"});l.style.whiteSpace="nowrap";h.css=h.htmlCss;n&&(h.add=function(a){var b,c=d.box.parentNode,e=[];if(this.parentGroup=a){if(b=a.div,!b){for(;a;)e.push(a), +a=a.parentGroup;k(e.reverse(),function(a){function m(e,b){a[b]=e;"translateX"===b?g.left=e+"px":g.top=e+"px";a.doTransform=!0}var g,C=F(a.element,"class");C&&(C={className:C});b=a.div=a.div||G("div",C,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},b||c);g=b.style;f(a,{classSetter:function(a){return function(g){this.element.setAttribute("class",g);a.className=g}}(b),on:function(){e[0].div&& +h.on.apply({element:e[0].div},arguments);return a},translateXSetter:m,translateYSetter:m});a.addedSetters||I(a,g)})}}else b=c;b.appendChild(l);h.added=!0;h.alignOnAdd&&h.htmlUpdateTransform();return h});return h}})})(K);(function(a){var F=a.defined,G=a.each,H=a.extend,r=a.merge,k=a.pick,f=a.timeUnits,u=a.win;a.Time=function(a){this.update(a,!1)};a.Time.prototype={defaultOptions:{},update:function(f){var v=k(f&&f.useUTC,!0),q=this;this.options=f=r(!0,this.options||{},f);this.Date=f.Date||u.Date;this.timezoneOffset= +(this.useUTC=v)&&f.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();(this.variableTimezone=!(v&&!f.getTimezoneOffset&&!f.timezone))||this.timezoneOffset?(this.get=function(a,c){var d=c.getTime(),p=d-q.getTimezoneOffset(c);c.setTime(p);a=c["getUTC"+a]();c.setTime(d);return a},this.set=function(d,c,z){var p;if(-1!==a.inArray(d,["Milliseconds","Seconds","Minutes"]))c["set"+d](z);else p=q.getTimezoneOffset(c),p=c.getTime()-p,c.setTime(p),c["setUTC"+d](z),d=q.getTimezoneOffset(c),p= +c.getTime()+d,c.setTime(p)}):v?(this.get=function(a,c){return c["getUTC"+a]()},this.set=function(a,c,z){return c["setUTC"+a](z)}):(this.get=function(a,c){return c["get"+a]()},this.set=function(a,c,z){return c["set"+a](z)})},makeTime:function(f,v,q,d,c,z){var p,n,b;this.useUTC?(p=this.Date.UTC.apply(0,arguments),n=this.getTimezoneOffset(p),p+=n,b=this.getTimezoneOffset(p),n!==b?p+=b-n:n-36E5!==this.getTimezoneOffset(p-36E5)||a.isSafari||(p-=36E5)):p=(new this.Date(f,v,k(q,1),k(d,0),k(c,0),k(z,0))).getTime(); +return p},timezoneOffsetFunction:function(){var f=this,k=this.options,q=u.moment;if(!this.useUTC)return function(a){return 6E4*(new Date(a)).getTimezoneOffset()};if(k.timezone){if(q)return function(a){return 6E4*-q.tz(a,k.timezone).utcOffset()};a.error(25)}return this.useUTC&&k.getTimezoneOffset?function(a){return 6E4*k.getTimezoneOffset(a)}:function(){return 6E4*(f.timezoneOffset||0)}},dateFormat:function(f,k,q){if(!a.defined(k)||isNaN(k))return a.defaultOptions.lang.invalidDate||"";f=a.pick(f,"%Y-%m-%d %H:%M:%S"); +var d=this,c=new this.Date(k),z=this.get("Hours",c),p=this.get("Day",c),n=this.get("Date",c),b=this.get("Month",c),l=this.get("FullYear",c),h=a.defaultOptions.lang,E=h.weekdays,B=h.shortWeekdays,t=a.pad,c=a.extend({a:B?B[p]:E[p].substr(0,3),A:E[p],d:t(n),e:t(n,2," "),w:p,b:h.shortMonths[b],B:h.months[b],m:t(b+1),y:l.toString().substr(2,2),Y:l,H:t(z),k:z,I:t(z%12||12),l:z%12||12,M:t(d.get("Minutes",c)),p:12>z?"AM":"PM",P:12>z?"am":"pm",S:t(c.getSeconds()),L:t(Math.round(k%1E3),3)},a.dateFormats);a.objectEach(c, +function(a,b){for(;-1!==f.indexOf("%"+b);)f=f.replace("%"+b,"function"===typeof a?a.call(d,k):a)});return q?f.substr(0,1).toUpperCase()+f.substr(1):f},getTimeTicks:function(a,v,q,d){var c=this,z=[],p={},n,b=new c.Date(v),l=a.unitRange,h=a.count||1,E;if(F(v)){c.set("Milliseconds",b,l>=f.second?0:h*Math.floor(c.get("Milliseconds",b)/h));l>=f.second&&c.set("Seconds",b,l>=f.minute?0:h*Math.floor(c.get("Seconds",b)/h));l>=f.minute&&c.set("Minutes",b,l>=f.hour?0:h*Math.floor(c.get("Minutes",b)/h));l>=f.hour&& +c.set("Hours",b,l>=f.day?0:h*Math.floor(c.get("Hours",b)/h));l>=f.day&&c.set("Date",b,l>=f.month?1:h*Math.floor(c.get("Date",b)/h));l>=f.month&&(c.set("Month",b,l>=f.year?0:h*Math.floor(c.get("Month",b)/h)),n=c.get("FullYear",b));l>=f.year&&c.set("FullYear",b,n-n%h);l===f.week&&c.set("Date",b,c.get("Date",b)-c.get("Day",b)+k(d,1));n=c.get("FullYear",b);d=c.get("Month",b);var B=c.get("Date",b),t=c.get("Hours",b);v=b.getTime();c.variableTimezone&&(E=q-v>4*f.month||c.getTimezoneOffset(v)!==c.getTimezoneOffset(q)); +b=b.getTime();for(v=1;bz.length&&G(z,function(a){0===a%18E5&&"000000000"===c.dateFormat("%H%M%S%L",a)&&(p[a]="day")})}z.info=H(a,{higherRanks:p,totalRange:l*h});return z}}})(K);(function(a){var F=a.merge;a.defaultOptions={symbols:["circle","diamond","square","triangle","triangle-down"], +lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:a.Time.prototype.defaultOptions,chart:{borderRadius:0,colorCount:10,defaultSeriesType:"line", +ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},width:null,height:null},title:{text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",alignColumns:!0,layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{},itemCheckboxStyle:{position:"absolute", +width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{}},loading:{},tooltip:{enabled:!0,animation:a.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:a.isTouchDevice?25:10,headerFormat:'\x3cspan class\x3d"highcharts-header"\x3e{point.key}\x3c/span\x3e\x3cbr/\x3e', +pointFormat:'\x3cspan class\x3d"highcharts-color-{point.colorIndex}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cspan class\x3d"highcharts-strong"\x3e{point.y}\x3c/span\x3e\x3cbr/\x3e'},credits:{enabled:!0,href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},text:"Highcharts.com"}};a.setOptions=function(G){a.defaultOptions=F(!0,a.defaultOptions,G);a.time.update(F(a.defaultOptions.global,a.defaultOptions.time),!1);return a.defaultOptions};a.getOptions=function(){return a.defaultOptions}; +a.defaultPlotOptions=a.defaultOptions.plotOptions;a.time=new a.Time(F(a.defaultOptions.global,a.defaultOptions.time));a.dateFormat=function(G,F,r){return a.time.dateFormat(G,F,r)}})(K);(function(a){var F=a.correctFloat,G=a.defined,H=a.destroyObjectProperties,r=a.fireEvent,k=a.isNumber,f=a.pick,u=a.deg2rad;a.Tick=function(a,f,q,d){this.axis=a;this.pos=f;this.type=q||"";this.isNewLabel=this.isNew=!0;q||d||this.addLabel()};a.Tick.prototype={addLabel:function(){var a=this.axis,k=a.options,q=a.chart,d= +a.categories,c=a.names,z=this.pos,p=k.labels,n=a.tickPositions,b=z===n[0],l=z===n[n.length-1],c=d?f(d[z],c[z],z):z,d=this.label,n=n.info,h;a.isDatetimeAxis&&n&&(h=k.dateTimeLabelFormats[n.higherRanks[z]||n.unitName]);this.isFirst=b;this.isLast=l;k=a.labelFormatter.call({axis:a,chart:q,isFirst:b,isLast:l,dateTimeLabelFormat:h,value:a.isLog?F(a.lin2log(c)):c,pos:z});if(G(d))d&&d.attr({text:k});else{if(this.label=d=G(k)&&p.enabled?q.renderer.text(k,0,0,p.useHTML).add(a.labelGroup):null)d.textPxLength= +d.getBBox().width;this.rotation=0}},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(a){var k=this.axis,q=k.options.labels,d=a.x,c=k.chart.chartWidth,z=k.chart.spacing,p=f(k.labelLeft,Math.min(k.pos,z[3])),z=f(k.labelRight,Math.max(k.isRadial?0:k.pos+k.len,c-z[1])),n=this.label,b=this.rotation,l={left:0,center:.5,right:1}[k.labelAlign||n.attr("align")],h=n.getBBox().width,E=k.getSlotWidth(),B=E,t=1,I,w={};if(b||!1===q.overflow)0> +b&&d-l*hz&&(I=Math.round((c-d)/Math.cos(b*u)));else if(c=d+(1-l)*h,d-l*hz&&(B=z-a.x+B*l,t=-1),B=Math.min(E,B),BB||k.autoRotation&&(n.styles||{}).width)I=B;I&&(w.width=I,(q.style||{}).textOverflow||(w.textOverflow="ellipsis"),n.css(w))},getPosition:function(f,k,q,d){var c=this.axis,z=c.chart,p=d&&z.oldChartHeight||z.chartHeight;f={x:f?a.correctFloat(c.translate(k+q,null, +null,d)+c.transB):c.left+c.offset+(c.opposite?(d&&z.oldChartWidth||z.chartWidth)-c.right-c.left:0),y:f?p-c.bottom+c.offset-(c.opposite?c.height:0):a.correctFloat(p-c.translate(k+q,null,null,d)-c.transB)};r(this,"afterGetPosition",{pos:f});return f},getLabelPosition:function(a,f,q,d,c,z,p,n){var b=this.axis,l=b.transA,h=b.reversed,E=b.staggerLines,B=b.tickRotCorr||{x:0,y:0},t=c.y,I=d||b.reserveSpaceDefault?0:-b.labelOffset*("center"===b.labelAlign?.5:1),w={};G(t)||(t=0===b.side?q.rotation?-8:-q.getBBox().height: +2===b.side?B.y+8:Math.cos(q.rotation*u)*(B.y-q.getBBox(!1,0).height/2));a=a+c.x+I+B.x-(z&&d?z*l*(h?-1:1):0);f=f+t-(z&&!d?z*l*(h?1:-1):0);E&&(q=p/(n||1)%E,b.opposite&&(q=E-q-1),f+=b.labelOffset/E*q);w.x=a;w.y=Math.round(f);r(this,"afterGetLabelPosition",{pos:w});return w},getMarkPath:function(a,f,q,d,c,z){return z.crispLine(["M",a,f,"L",a+(c?0:-q),f+(c?q:0)],d)},renderGridLine:function(a,f,q){var d=this.axis,c=this.gridLine,z={},p=this.pos,n=this.type,b=d.tickmarkOffset,l=d.chart.renderer;c||(n||(z.zIndex= +1),a&&(z.opacity=0),this.gridLine=c=l.path().attr(z).addClass("highcharts-"+(n?n+"-":"")+"grid-line").add(d.gridGroup));if(!a&&c&&(a=d.getPlotLinePath(p+b,c.strokeWidth()*q,a,!0)))c[this.isNew?"attr":"animate"]({d:a,opacity:f})},renderMark:function(a,f,q){var d=this.axis,c=d.chart.renderer,z=this.type,p=d.tickSize(z?z+"Tick":"tick"),n=this.mark,b=!n,l=a.x;a=a.y;p&&(d.opposite&&(p[0]=-p[0]),b&&(this.mark=n=c.path().addClass("highcharts-"+(z?z+"-":"")+"tick").add(d.axisGroup)),n[b?"attr":"animate"]({d:this.getMarkPath(l, +a,p[0],n.strokeWidth()*q,d.horiz,c),opacity:f}))},renderLabel:function(a,u,q,d){var c=this.axis,z=c.horiz,p=c.options,n=this.label,b=p.labels,l=b.step,c=c.tickmarkOffset,h=!0,E=a.x;a=a.y;n&&k(E)&&(n.xy=a=this.getLabelPosition(E,a,n,z,b,c,d,l),this.isFirst&&!this.isLast&&!f(p.showFirstLabel,1)||this.isLast&&!this.isFirst&&!f(p.showLastLabel,1)?h=!1:!z||b.step||b.rotation||u||0===q||this.handleOverflow(a),l&&d%l&&(h=!1),h&&k(a.y)?(a.opacity=q,n[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1): +(n.attr("y",-9999),this.isNewLabel=!0))},render:function(k,u,q){var d=this.axis,c=d.horiz,z=this.getPosition(c,this.pos,d.tickmarkOffset,u),p=z.x,n=z.y,d=c&&p===d.pos+d.len||!c&&n===d.pos?-1:1;q=f(q,1);this.isActive=!0;this.renderGridLine(u,q,d);this.renderMark(z,q,d);this.renderLabel(z,u,q,k);this.isNew=!1;a.fireEvent(this,"afterRender")},destroy:function(){H(this,this.axis)}}})(K);var da=function(a){var F=a.addEvent,G=a.animObject,H=a.arrayMax,r=a.arrayMin,k=a.correctFloat,f=a.defaultOptions,u= +a.defined,y=a.deg2rad,v=a.destroyObjectProperties,q=a.each,d=a.extend,c=a.fireEvent,z=a.format,p=a.getMagnitude,n=a.grep,b=a.inArray,l=a.isArray,h=a.isNumber,E=a.isString,B=a.merge,t=a.normalizeTickInterval,I=a.objectEach,w=a.pick,m=a.removeEvent,D=a.splat,e=a.syncTimeout,x=a.Tick,J=function(){this.init.apply(this,arguments)};a.extend(J.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,x:0},maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",minPadding:.01,startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle"},type:"linear"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return a.numberFormat(this.total, +-1)}}},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,e){var g=e.isX,A=this;A.chart=a;A.horiz=a.inverted&&!A.isZAxis?!g:g;A.isXAxis=g;A.coll=A.coll||(g?"xAxis":"yAxis");c(this,"init",{userOptions:e});A.opposite=e.opposite;A.side=e.side||(A.horiz?A.opposite?0: +2:A.opposite?1:3);A.setOptions(e);var C=this.options,m=C.type;A.labelFormatter=C.labels.formatter||A.defaultLabelFormatter;A.userOptions=e;A.minPixelPadding=0;A.reversed=C.reversed;A.visible=!1!==C.visible;A.zoomEnabled=!1!==C.zoomEnabled;A.hasNames="category"===m||!0===C.categories;A.categories=C.categories||A.hasNames;A.names||(A.names=[],A.names.keys={});A.plotLinesAndBandsGroups={};A.isLog="logarithmic"===m;A.isDatetimeAxis="datetime"===m;A.positiveValuesOnly=A.isLog&&!A.allowNegativeLog;A.isLinked= +u(C.linkedTo);A.ticks={};A.labelEdge=[];A.minorTicks={};A.plotLinesAndBands=[];A.alternateBands={};A.len=0;A.minRange=A.userMinRange=C.minRange||C.maxZoom;A.range=C.range;A.offset=C.offset||0;A.stacks={};A.oldStacks={};A.stacksTouched=0;A.max=null;A.min=null;A.crosshair=w(C.crosshair,D(a.options.tooltip.crosshairs)[g?0:1],!1);e=A.options.events;-1===b(A,a.axes)&&(g?a.axes.splice(a.xAxis.length,0,A):a.axes.push(A),a[A.coll].push(A));A.series=A.series||[];a.inverted&&!A.isZAxis&&g&&void 0===A.reversed&& +(A.reversed=!0);I(e,function(a,g){F(A,g,a)});A.lin2log=C.linearToLogConverter||A.lin2log;A.isLog&&(A.val2lin=A.log2lin,A.lin2val=A.lin2log);c(this,"afterInit")},setOptions:function(a){this.options=B(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],B(f[this.coll],a));c(this,"afterSetOptions",{userOptions:a})},defaultLabelFormatter:function(){var g=this.axis, +e=this.value,b=g.chart.time,A=g.categories,m=this.dateTimeLabelFormat,c=f.lang,h=c.numericSymbols,c=c.numericSymbolMagnitude||1E3,l=h&&h.length,x,d=g.options.labels.format,g=g.isLog?Math.abs(e):g.tickInterval;if(d)x=z(d,this,b);else if(A)x=e;else if(m)x=b.dateFormat(m,e);else if(l&&1E3<=g)for(;l--&&void 0===x;)b=Math.pow(c,l+1),g>=b&&0===10*e%b&&null!==h[l]&&0!==e&&(x=a.numberFormat(e/b,-1)+h[l]);void 0===x&&(x=1E4<=Math.abs(e)?a.numberFormat(e,-1):a.numberFormat(e,-1,void 0,""));return x},getSeriesExtremes:function(){var a= +this,e=a.chart;c(this,"getSeriesExtremes",null,function(){a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();q(a.series,function(g){if(g.visible||!e.options.chart.ignoreHiddenSeries){var b=g.options,C=b.threshold,c;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=C&&(C=null);if(a.isXAxis)b=g.xData,b.length&&(g=r(b),c=H(b),h(g)||g instanceof Date||(b=n(b,h),g=r(b),c=H(b)),b.length&&(a.dataMin=Math.min(w(a.dataMin,b[0],g),g),a.dataMax= +Math.max(w(a.dataMax,b[0],c),c)));else if(g.getExtremes(),c=g.dataMax,g=g.dataMin,u(g)&&u(c)&&(a.dataMin=Math.min(w(a.dataMin,g),g),a.dataMax=Math.max(w(a.dataMax,c),c)),u(C)&&(a.threshold=C),!b.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})});c(this,"afterGetSeriesExtremes")},translate:function(a,e,b,A,c,m){var g=this.linkedParent||this,C=1,l=0,x=A?g.oldTransA:g.transA;A=A?g.oldMin:g.min;var d=g.minPixelPadding;c=(g.isOrdinal||g.isBroken||g.isLog&&c)&&g.lin2val;x||(x=g.transA);b&&(C*= +-1,l=g.len);g.reversed&&(C*=-1,l-=C*(g.sector||g.len));e?(a=(a*C+l-d)/x+A,c&&(a=g.lin2val(a))):(c&&(a=g.val2lin(a)),a=h(A)?C*(a-A)*x+l+C*d+(h(m)?x*m:0):void 0);return a},toPixels:function(a,e){return this.translate(a,!1,!this.horiz,null,!0)+(e?0:this.pos)},toValue:function(a,e){return this.translate(a-(e?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,e,b,A,c){var g=this.chart,C=this.left,m=this.top,l,x,d=b&&g.oldChartHeight||g.chartHeight,D=b&&g.oldChartWidth||g.chartWidth,n;l=this.transB; +var t=function(a,g,e){if(ae)A?a=Math.min(Math.max(g,a),e):n=!0;return a};c=w(c,this.translate(a,null,null,b));c=Math.min(Math.max(-1E5,c),1E5);a=b=Math.round(c+l);l=x=Math.round(d-c-l);h(c)?this.horiz?(l=m,x=d-this.bottom,a=b=t(a,C,C+this.width)):(a=C,b=D-this.right,l=x=t(l,m,m+this.height)):(n=!0,A=!1);return n&&!A?null:g.renderer.crispLine(["M",a,l,"L",b,x],e||1)},getLinearTickPositions:function(a,e,b){var g,c=k(Math.floor(e/a)*a);b=k(Math.ceil(b/a)*a);var C=[],m;k(c+a)===c&&(m=20);if(this.single)return[e]; +for(e=c;e<=b;){C.push(e);e=k(e+a,m);if(e===g)break;g=e}return C},getMinorTickInterval:function(){var a=this.options;return!0===a.minorTicks?w(a.minorTickInterval,"auto"):!1===a.minorTicks?null:a.minorTickInterval},getMinorTickPositions:function(){var a=this,e=a.options,b=a.tickPositions,A=a.minorTickInterval,c=[],m=a.pointRangePadding||0,h=a.min-m,m=a.max+m,l=m-h;if(l&&l/A=this.minRange,D=this.minRange,A=(D-b+e)/2,A=[e-A,w(a.min,e-A)],c&&(A[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),e=H(A),b=[e+D,w(a.max,e+D)],c&&(b[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),b=r(b),b-e=f?(J=f,n=0):e.dataMax<=f&&(v=f,D=0)),e.min=w(r,J,e.dataMin),e.max=w(y,v,e.dataMax));m&&(e.positiveValuesOnly&&!g&&0>=Math.min(e.min,w(e.dataMin,e.min))&&a.error(10,1),e.min=k(e.log2lin(e.min),15),e.max=k(e.log2lin(e.max),15));e.range&&u(e.max)&&(e.userMin=e.min=r=Math.max(e.dataMin,e.minFromRange()),e.userMax=y=e.max,e.range=null);c(e,"foundExtremes");e.beforePadding&&e.beforePadding();e.adjustForMinRange();!(B||e.axisPointRange|| +e.usePercentage||d)&&u(e.min)&&u(e.max)&&(b=e.max-e.min)&&(!u(r)&&n&&(e.min-=b*n),!u(y)&&D&&(e.max+=b*D));h(A.softMin)&&!h(e.userMin)&&(e.min=Math.min(e.min,A.softMin));h(A.softMax)&&!h(e.userMax)&&(e.max=Math.max(e.max,A.softMax));h(A.floor)&&(e.min=Math.max(e.min,A.floor));h(A.ceiling)&&(e.max=Math.min(e.max,A.ceiling));z&&u(e.dataMin)&&(f=f||0,!u(r)&&e.min=f?e.min=f:!u(y)&&e.max>f&&e.dataMax<=f&&(e.max=f));e.tickInterval=e.min===e.max||void 0===e.min||void 0===e.max?1:d&&!E&&I=== +e.linkedParent.options.tickPixelInterval?E=e.linkedParent.tickInterval:w(E,this.tickAmount?(e.max-e.min)/Math.max(this.tickAmount-1,1):void 0,B?1:(e.max-e.min)*I/Math.max(e.len,I));x&&!g&&q(e.series,function(a){a.processData(e.min!==e.oldMin||e.max!==e.oldMax)});e.setAxisTranslation(!0);e.beforeSetTickPositions&&e.beforeSetTickPositions();e.postProcessTickInterval&&(e.tickInterval=e.postProcessTickInterval(e.tickInterval));e.pointRange&&!E&&(e.tickInterval=Math.max(e.pointRange,e.tickInterval));g= +w(A.minTickInterval,e.isDatetimeAxis&&e.closestPointRange);!E&&e.tickIntervale.tickInterval&&1E3e.max)),!!this.tickAmount));this.tickAmount||(e.tickInterval=e.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,e,b=a.tickPositions;e=this.getMinorTickInterval();var A=a.tickPositioner,m=a.startOnTick,h=a.endOnTick;this.tickmarkOffset= +this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===e&&this.tickInterval?this.tickInterval/5:e;this.single=this.min===this.max&&u(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==a.allowDecimals);this.tickPositions=e=b&&b.slice();!e&&(e=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog? +this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),e.length>this.len&&(e=[e[0],e.pop()],e[0]===e[1]&&(e.length=1)),this.tickPositions=e,A&&(A=A.apply(this,[this.min,this.max])))&&(this.tickPositions=e=A);this.paddedTicks=e.slice(0);this.trimTicks(e,m,h);this.isLinked||(this.single&&2>e.length&&(this.min-=.5,this.max+=.5),b||A||this.adjustTickAmount());c(this,"afterSetTickPositions")},trimTicks:function(a,e,b){var g=a[0],c= +a[a.length-1],m=this.minPointOffset||0;if(!this.isLinked){if(e&&-Infinity!==g)this.min=g;else for(;this.min-m>a[0];)a.shift();if(b)this.max=c;else for(;this.max+me&&(this.finalTickAmt=e,e=5);this.tickAmount=e},adjustTickAmount:function(){var a=this.tickInterval,e=this.tickPositions,b=this.tickAmount,c=this.finalTickAmt,m=e&&e.length,h=w(this.threshold,this.softThreshold? +0:null);if(this.hasData()){if(mb&&(this.tickInterval*=2,this.setTickPositions());if(u(c)){for(a=b=e.length;a--;)(3===c&&1===a%2||2>=c&&0c&&(a=c)),u(b)&&(ec&&(e=c))),this.displayBtn=void 0!==a||void 0!==e,this.setExtremes(a, +e,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var e=this.chart,b=this.options,c=b.offsets||[0,0,0,0],m=this.horiz,h=this.width=Math.round(a.relativeLength(w(b.width,e.plotWidth-c[3]+c[1]),e.plotWidth)),l=this.height=Math.round(a.relativeLength(w(b.height,e.plotHeight-c[0]+c[2]),e.plotHeight)),x=this.top=Math.round(a.relativeLength(w(b.top,e.plotTop+c[0]),e.plotHeight,e.plotTop)),b=this.left=Math.round(a.relativeLength(w(b.left,e.plotLeft+c[3]),e.plotWidth,e.plotLeft));this.bottom= +e.chartHeight-l-x;this.right=e.chartWidth-h-b;this.len=Math.max(m?h:l,0);this.pos=m?b:x},getExtremes:function(){var a=this.isLog;return{min:a?k(this.lin2log(this.min)):this.min,max:a?k(this.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var e=this.isLog,g=e?this.lin2log(this.min):this.min,e=e?this.lin2log(this.max):this.max;null===a||-Infinity===a?a=g:Infinity===a?a=e:g>a?a=g:ea?"right":195a?"left":"center"},tickSize:function(a){var e=this.options,g=e[a+"Length"],b=w(e[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(b&&g)return"inside"===e[a+"Position"]&&(g=-g),[g,b]},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a= +this.options.labels,e=this.horiz,b=this.tickInterval,c=b,m=this.len/(((this.categories?1:0)+this.max-this.min)/b),h,l=a.rotation,x=this.labelMetrics(),d,D=Number.MAX_VALUE,n,t=function(a){a/=m||1;a=1=a)d=t(Math.abs(x.h/Math.sin(y*a))),e=d+Math.abs(a/360),e(b.step||0)&&!b.rotation&&(this.staggerLines||1)*this.len/c||!e&&(b.style&&parseInt(b.style.width,10)||m&&m-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,e=a.renderer,b=this.tickPositions,c=this.ticks,m=this.options.labels,h=this.horiz,l=this.getSlotWidth(),x=Math.max(1,Math.round(l-2*(m.padding|| +5))),d={},D=this.labelMetrics(),n=m.style&&m.style.textOverflow,t,w,I=0,B;E(m.rotation)||(d.rotation=m.rotation||0);q(b,function(a){(a=c[a])&&a.label&&a.label.textPxLength>I&&(I=a.label.textPxLength)});this.maxLabelLength=I;if(this.autoRotation)I>x&&I>D.h?d.rotation=this.labelRotation:this.labelRotation=0;else if(l&&(t=x,!n))for(w="clip",x=b.length;!h&&x--;)if(B=b[x],B=c[B].label)B.styles&&"ellipsis"===B.styles.textOverflow?B.css({textOverflow:"clip"}):B.textPxLength>l&&B.css({width:l+"px"}),B.getBBox().height> +this.len/b.length-(D.h-D.f)&&(B.specificTextOverflow="ellipsis");d.rotation&&(t=I>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight,n||(w="ellipsis"));if(this.labelAlign=m.align||this.autoLabelAlign(this.labelRotation))d.align=this.labelAlign;q(b,function(a){var e=(a=c[a])&&a.label,b={};e&&(e.attr(d),!t||m.style&&m.style.width||!(t=this.min&&a<=this.max)g[a]||(g[a]=new x(this,a)),c&&g[a].isNew&&g[a].render(e,!0,.1),g[a].render(e)},render:function(){var b=this,m=b.chart,l=b.options,A=b.isLog,d=b.isLinked,D=b.tickPositions,n=b.axisTitle,t=b.ticks,w=b.minorTicks,E=b.alternateBands,B=l.stackLabels,f=l.alternateGridColor,p=b.tickmarkOffset,z=b.axisLine,J=b.showAxis,k=G(m.renderer.globalAnimation), +u,v;b.labelEdge.length=0;b.overlap=!1;q([t,w,E],function(a){I(a,function(a){a.isActive=!1})});if(b.hasData()||d)b.minorTickInterval&&!b.categories&&q(b.getMinorTickPositions(),function(a){b.renderMinorTick(a)}),D.length&&(q(D,function(a,e){b.renderTick(a,e)}),p&&(0===b.min||b.single)&&(t[-1]||(t[-1]=new x(b,-1,null,!0)),t[-1].render(-1))),f&&q(D,function(e,g){v=void 0!==D[g+1]?D[g+1]+p:b.max-p;0===g%2&&eu&&(!v||b<=y)&&void 0!==b&&c.push(b),b>y&&(l=!0),b=n;else u=this.lin2log(u), +y=this.lin2log(y),a=v?this.getMinorTickInterval():f.tickInterval,a=k("auto"===a?null:a,this._minorAutoInterval,f.tickPixelInterval/(v?5:1)*(y-u)/((v?d/this.tickPositions.length:d)||1)),a=r(a,null,G(a)),c=H(this.getLinearTickPositions(a,u,y),this.log2lin),v||(this._minorAutoInterval=a/5);v||(this.tickInterval=a);return c};F.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};F.prototype.lin2log=function(a){return Math.pow(10,a)}})(K);(function(a,F){var G=a.arrayMax,H=a.arrayMin,r=a.defined, +k=a.destroyObjectProperties,f=a.each,u=a.erase,y=a.merge,v=a.pick;a.PlotLineOrBand=function(a,d){this.axis=a;d&&(this.options=d,this.id=d.id)};a.PlotLineOrBand.prototype={render:function(){var f=this,d=f.axis,c=d.horiz,z=f.options,p=z.label,n=f.label,b=z.to,l=z.from,h=z.value,E=r(l)&&r(b),B=r(h),t=f.svgElem,I=!t,w=[],m=v(z.zIndex,0),D=z.events,w={"class":"highcharts-plot-"+(E?"band ":"line ")+(z.className||"")},e={},x=d.chart.renderer,J=E?"bands":"lines",g;d.isLog&&(l=d.log2lin(l),b=d.log2lin(b), +h=d.log2lin(h));e.zIndex=m;J+="-"+m;(g=d.plotLinesAndBandsGroups[J])||(d.plotLinesAndBandsGroups[J]=g=x.g("plot-"+J).attr(e).add());I&&(f.svgElem=t=x.path().attr(w).add(g));if(B)w=d.getPlotLinePath(h,t.strokeWidth());else if(E)w=d.getPlotBandPath(l,b,z);else return;I&&w&&w.length?(t.attr({d:w}),D&&a.objectEach(D,function(a,e){t.on(e,function(a){D[e].apply(f,[a])})})):t&&(w?(t.show(),t.animate({d:w})):(t.hide(),n&&(f.label=n=n.destroy())));p&&r(p.text)&&w&&w.length&&0this.max&&d>this.max;if(f&&c)for(a&&(l=f.toString()===c.toString(),b=0),a=0;a +D-l?D:D-l);else if(x)b[a]=Math.max(h,g+l+m>c?g:g+l);else return!1},w=function(a,c,m,g){var e;gc-n?e=!1:b[a]=gc-m/2?c-m-2:g-m/2;return e},m=function(a){var e=E;E=B;B=e;h=a},D=function(){!1!==I.apply(0,E)?!1!==w.apply(0,B)||h||(m(!0),D()):h?b.x=b.y=0:(m(!0),D())};(d.inverted||1D&&(l=!1);a=(d.series&&d.series.yAxis&&d.series.yAxis.pos)+(d.plotY||0);a-=n.plotTop;p.push({target:d.isHeader?n.plotHeight+E:a,rank:d.isHeader?1:0,size:t.tt.getBBox().height+1,point:d,x:D,tt:m})}});this.cleanSplit();a.distribute(p,n.plotHeight+E);F(p,function(a){var b=a.point,c=b.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:l||b.isHeader?a.x:b.plotX+n.plotLeft+u(h.distance,16),y:a.pos+n.plotTop,anchorX:b.isHeader? +b.plotX+n.plotLeft:b.plotX+c.xAxis.pos,anchorY:b.isHeader?a.pos+n.plotTop-15:b.plotY+c.yAxis.pos})})},updatePosition:function(a){var c=this.chart,d=this.getLabel(),d=(this.options.positioner||this.getPosition).call(this,d.width,d.height,a);this.move(Math.round(d.x),Math.round(d.y||0),a.plotX+c.plotLeft,a.plotY+c.plotTop)},getDateFormat:function(a,c,f,p){var d=this.chart.time,b=d.dateFormat("%m-%d %H:%M:%S.%L",c),l,h,E={millisecond:15,second:12,minute:9,hour:6,day:3},B="millisecond";for(h in q){if(a=== +q.week&&+d.dateFormat("%w",c)===f&&"00:00:00.000"===b.substr(6)){h="week";break}if(q[h]>a){h=B;break}if(E[h]&&b.substr(E[h])!=="01-01 00:00:00.000".substr(E[h]))break;"week"!==h&&(B=h)}h&&(l=p[h]);return l},getXDateFormat:function(a,c,f){c=c.dateTimeLabelFormats;var d=f&&f.closestPointRange;return(d?this.getDateFormat(d,a.x,f.options.startOfWeek,c):c.day)||c.year},tooltipFooterHeaderFormatter:function(a,c){c=c?"footer":"header";var d=a.series,f=d.tooltipOptions,n=f.xDateFormat,b=d.xAxis,l=b&&"datetime"=== +b.options.type&&r(a.key),h=f[c+"Format"];l&&!n&&(n=this.getXDateFormat(a,f,b));l&&n&&F(a.point&&a.point.tooltipDateKeys||["key"],function(a){h=h.replace("{point."+a+"}","{point."+a+":"+n+"}")});return H(h,{point:a,series:d},this.chart.time)},bodyFormatter:function(a){return k(a,function(a){var c=a.series.tooltipOptions;return(c[(a.point.formatPrefix||"point")+"Formatter"]||a.point.tooltipFormatter).call(a.point,c[(a.point.formatPrefix||"point")+"Format"])})}}})(K);(function(a){var F=a.addEvent,G= +a.attr,H=a.charts,r=a.css,k=a.defined,f=a.each,u=a.extend,y=a.find,v=a.fireEvent,q=a.isNumber,d=a.isObject,c=a.offset,z=a.pick,p=a.splat,n=a.Tooltip;a.Pointer=function(a,c){this.init(a,c)};a.Pointer.prototype={init:function(a,c){this.options=c;this.chart=a;this.runChartClick=c.chart.events&&!!c.chart.events.click;this.pinchDown=[];this.lastValidTouch={};n&&(a.tooltip=new n(a,c.tooltip),this.followTouchMove=z(c.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart, +c=b.options.chart,d=c.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(d=z(c.pinchType,d));this.zoomX=a=/x/.test(d);this.zoomY=d=/y/.test(d);this.zoomHor=a&&!b||d&&b;this.zoomVert=d&&!b||a&&b;this.hasZoom=a||d},normalize:function(a,l){var b;b=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;l||(this.chartPosition=l=c(this.chart.container));return u(a,{chartX:Math.round(b.pageX-l.left),chartY:Math.round(b.pageY-l.top)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};f(this.chart.axes, +function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})});return b},findNearestKDPoint:function(a,c,h){var b;f(a,function(a){var l=!(a.noSharedTooltip&&c)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(h,l);if((l=d(a,!0))&&!(l=!d(b,!0)))var l=b.distX-a.distX,n=b.dist-a.dist,f=(a.series.group&&a.series.group.zIndex)-(b.series.group&&b.series.group.zIndex),l=0<(0!==l&&c?l:0!==n?n:0!==f?f:b.series.index>a.series.index?-1:1);l&&(b=a)});return b}, +getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,c){var b=a.series,l=b.xAxis,b=b.yAxis,d=z(a.clientX,a.plotX),n=a.shapeArgs;if(l&&b)return c?{chartX:l.len+l.pos-d,chartY:b.len+b.pos-a.plotY}:{chartX:d+l.pos,chartY:a.plotY+b.pos};if(n&&n.x&&n.y)return{chartX:n.x,chartY:n.y}},getHoverData:function(b,c,h,n,B,t,p){var l,m=[],D=p&&p.isBoosting;n=!(!n||!b);p=c&&!c.stickyTracking?[c]:a.grep(h,function(a){return a.visible&& +!(!B&&a.directTouch)&&z(a.options.enableMouseTracking,!0)&&a.stickyTracking});c=(l=n?b:this.findNearestKDPoint(p,B,t))&&l.series;l&&(B&&!c.noSharedTooltip?(p=a.grep(h,function(a){return a.visible&&!(!B&&a.directTouch)&&z(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),f(p,function(a){var e=y(a.points,function(a){return a.x===l.x&&!a.isNull});d(e)&&(D&&(e=a.getPoint(e)),m.push(e))})):m.push(l));return{hoverPoint:l,hoverSeries:c,hoverPoints:m}},runPointActions:function(b,c){var h=this.chart, +l=h.tooltip&&h.tooltip.options.enabled?h.tooltip:void 0,d=l?l.shared:!1,n=c||h.hoverPoint,p=n&&n.series||h.hoverSeries,p=this.getHoverData(n,p,h.series,!!c||p&&p.directTouch&&this.isDirectTouch,d,b,{isBoosting:h.isBoosting}),w,n=p.hoverPoint;w=p.hoverPoints;c=(p=p.hoverSeries)&&p.tooltipOptions.followPointer;d=d&&p&&!p.noSharedTooltip;if(n&&(n!==h.hoverPoint||l&&l.isHidden)){f(h.hoverPoints||[],function(b){-1===a.inArray(b,w)&&b.setState()});f(w||[],function(a){a.setState("hover")});if(h.hoverSeries!== +p)p.onMouseOver();h.hoverPoint&&h.hoverPoint.firePointEvent("mouseOut");if(!n.series)return;n.firePointEvent("mouseOver");h.hoverPoints=w;h.hoverPoint=n;l&&l.refresh(d?w:n,b)}else c&&l&&!l.isHidden&&(n=l.getAnchor([{}],b),l.updatePosition({plotX:n[0],plotY:n[1]}));this.unDocMouseMove||(this.unDocMouseMove=F(h.container.ownerDocument,"mousemove",function(b){var c=H[a.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(b)}));f(h.axes,function(c){var m=z(c.crosshair.snap,!0),e=m?a.find(w,function(a){return a.series[c.coll]=== +c}):void 0;e||!m?c.drawCrosshair(b,e):c.hideCrosshair()})},reset:function(a,c){var b=this.chart,l=b.hoverSeries,d=b.hoverPoint,n=b.hoverPoints,I=b.tooltip,w=I&&I.shared?n:d;a&&w&&f(p(w),function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)});if(a)I&&w&&(I.refresh(w),d&&(d.setState(d.state,!0),f(b.axes,function(a){a.crosshair&&a.drawCrosshair(null,d)})));else{if(d)d.onMouseOut();n&&f(n,function(a){a.setState()});if(l)l.onMouseOut();I&&I.hide(c);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()); +f(b.axes,function(a){a.hideCrosshair()});this.hoverX=b.hoverPoints=b.hoverPoint=null}},scaleGroups:function(a,c){var b=this.chart,l;f(b.series,function(h){l=a||h.getPlotBox();h.xAxis&&h.xAxis.zoomEnabled&&h.group&&(h.group.attr(l),h.markerGroup&&(h.markerGroup.attr(l),h.markerGroup.clip(c?b.clipRect:null)),h.dataLabelsGroup&&h.dataLabelsGroup.attr(l))});b.clipRect.attr(c||b.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX; +b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,c=b.options.chart,d=a.chartX,n=a.chartY,f=this.zoomHor,p=this.zoomVert,w=b.plotLeft,m=b.plotTop,D=b.plotWidth,e=b.plotHeight,x,J=this.selectionMarker,g=this.mouseDownX,C=this.mouseDownY,k=c.panKey&&a[c.panKey+"Key"];J&&J.touch||(dw+D&&(d=w+D),nm+e&&(n=m+e),this.hasDragged=Math.sqrt(Math.pow(g-d,2)+Math.pow(C-n,2)),10D.max&&(f=D.max-t,P=!0);P?(J-=.8*(J-z[b][0]),e||(C-=.8*(C-z[b][1])),k()):z[b]= +[J,C];m||(c[b]=I-B,c[E]=t);c=m?1/w:w;d[E]=t;d[b]=f;q[m?a?"scaleY":"scaleX":"scale"+l]=w;q["translate"+l]=c*B+(J-c*x)},pinch:function(a){var u=this,v=u.chart,q=u.pinchDown,d=a.touches,c=d.length,z=u.lastValidTouch,p=u.hasZoom,n=u.selectionMarker,b={},l=1===c&&(u.inClass(a.target,"highcharts-tracker")&&v.runTrackerClick||u.runChartClick),h={};1b-6&&nm?this.maxItemWidth:a.itemWidth;h&&this.itemX-c+b>m&&(this.itemX=c,this.itemY+=n+this.lastLineHeight+f,this.lastLineHeight=0);this.lastItemY=n+this.itemY+f;this.lastLineHeight=Math.max(d,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];h?this.itemX+=b:(this.itemY+=n+d+f,this.lastLineHeight= +d);this.offsetWidth=w||Math.max((h?this.itemX-c-(a.checkbox?0:p):b)+c,this.offsetWidth)},getAllItems:function(){var a=[];k(this.chart.series,function(b){var c=b&&b.options;b&&q(c.showInLegend,r(c.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===c.legendType?b.data:b)))});f(this,"afterGetAllItems",{allItems:a});return a},getAlignment:function(){var a=this.options;return a.floating?"":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)},adjustMargins:function(a,b){var c=this.chart, +d=this.options,f=this.getAlignment();f&&k([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(h,l){h.test(f)&&!r(a[l])&&(c[y[l]]=Math.max(c[y[l]],c.legend[(l+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][l]*d[l%2?"x":"y"]+q(d.margin,12)+b[l]+(0===l&&void 0!==c.options.title.margin?c.titleOffset+c.options.title.margin:0)))})},render:function(){var a=this.chart,b=a.renderer,d=this.group,h,f,p,t,I=this.box,w=this.options,m=this.padding;this.itemX=m;this.itemY=this.initialItemY;this.lastItemY= +this.offsetWidth=0;d||(this.group=d=b.g("legend").attr({zIndex:7}).add(),this.contentGroup=b.g().attr({zIndex:1}).add(d),this.scrollGroup=b.g().add(this.contentGroup));this.renderTitle();h=this.getAllItems();c(h,function(a,e){return(a.options&&a.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)});w.reversed&&h.reverse();this.allItems=h;this.display=f=!!h.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;k(h,this.renderItem,this);k(h,this.layoutItem,this); +p=(w.width||this.offsetWidth)+m;t=this.lastItemY+this.lastLineHeight+this.titleHeight;t=this.handleOverflow(t);t+=m;I||(this.box=I=b.rect().addClass("highcharts-legend-box").attr({r:w.borderRadius}).add(d),I.isNew=!0);0c&&!1!==m.enabled?(this.clipHeight=p=Math.max(c-20-this.titleHeight-t,0),this.currentPage=q(this.currentPage,1),this.fullHeight=a,k(C,function(a,e){var b=a._legendItemPos[1],c=Math.round(a.legendItem.getBBox().height),m=J.length;if(!m||b-J[m-1]>p&&(g||b)!==J[m-1])J.push(g||b),m++;a.pageIx=m-1;g&& +(C[e-1].pageIx=m-1);e===C.length-1&&b+c-J[m-1]>p&&(J.push(b),a.pageIx=m);b!==g&&(g=b)}),w||(w=b.clipRect=d.clipRect(0,t,9999,0),b.contentGroup.clip(w)),z(p),x||(this.nav=x=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,e,e).on("click",function(){b.scroll(-1,D)}).add(x),this.pager=d.text("",15,10).addClass("highcharts-legend-navigation").add(x),this.down=d.symbol("triangle-down",0,0,e,e).on("click",function(){b.scroll(1,D)}).add(x)),b.scroll(0),a=c):x&&(z(),this.nav=x.destroy(), +this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,b){var c=this.pages,h=c.length;a=this.currentPage+a;var f=this.clipHeight,n=this.pager,p=this.padding;a>h&&(a=h);0b&&(f=typeof d[0],"string"===f?c.name=d[0]:"number"===f&&(c.x=d[0]),l++);h=p.value;)p=c[++f];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=p&&p.color&&!this.options.color?p.color:this.nonZonedColor;return p},destroy:function(){var a=this.series.chart,c=a.hoverPoints,f;a.pointCount--;c&&(this.setState(),r(c,this),c.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)q(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this); +for(f in this)this[f]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],c,f=6;f--;)c=a[f],this[c]&&(this[c]=this[c].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 c=this.series,d=c.tooltipOptions,p=v(d.valueDecimals,""), +n=d.valuePrefix||"",b=d.valueSuffix||"";G(c.pointArrayMap||["y"],function(c){c="{point."+c;if(n||b)a=a.replace(RegExp(c+"}","g"),n+c+"}"+b);a=a.replace(RegExp(c+"}","g"),c+":,."+p+"f}")});return f(a,{point:this,series:this.series},c.chart.time)},firePointEvent:function(a,c,f){var d=this,n=this.series.options;(n.point.events[a]||d.options&&d.options.events&&d.options.events[a])&&this.importEvents();"click"===a&&n.allowPointSelect&&(f=function(a){d.select&&d.select(null,a.ctrlKey||a.metaKey||a.shiftKey)}); +k(this,a,c,f)},visible:!0}})(K);(function(a){var F=a.addEvent,G=a.animObject,H=a.arrayMax,r=a.arrayMin,k=a.correctFloat,f=a.defaultOptions,u=a.defined,y=a.each,v=a.erase,q=a.extend,d=a.fireEvent,c=a.grep,z=a.isArray,p=a.isNumber,n=a.isString,b=a.merge,l=a.objectEach,h=a.pick,E=a.removeEvent,B=a.splat,t=a.SVGElement,I=a.syncTimeout,w=a.win;a.Series=a.seriesType("line",null,{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{enabledThreshold:2,radius:4,states:{normal:{animation:!0}, +hover:{animation:{duration:50},enabled:!0,radiusPlus:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10}},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,b){var e=this,c,m=a.series,g;e.chart=a;e.options=b=e.setOptions(b);e.linkedSeries=[];e.bindAxes();q(e,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected});c=b.events;l(c,function(a,b){F(e,b,a)});if(c&&c.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;e.getColor();e.getSymbol();y(e.parallelArrays,function(a){e[a+"Data"]=[]}); +e.setData(b.data,!1);e.isCartesian&&(a.hasCartesianSeries=!0);m.length&&(g=m[m.length-1]);e._i=h(g&&g._i,-1)+1;a.orderSeries(this.insert(m));d(this,"afterInit")},insert:function(a){var b=this.options.index,e;if(p(b)){for(e=a.length;e--;)if(b>=h(a[e].options.index,a[e]._i)){a.splice(e+1,0,this);break}-1===e&&a.unshift(this);e+=1}else a.push(this);return h(e,a.length-1)},bindAxes:function(){var b=this,c=b.options,e=b.chart,d;y(b.axisTypes||[],function(m){y(e[m],function(a){d=a.options;if(c[m]===d.index|| +void 0!==c[m]&&c[m]===d.id||void 0===c[m]&&0===d.index)b.insert(a.series),b[m]=a,a.isDirty=!0});b[m]||b.optionalAxis===m||a.error(18,!0)})},updateParallelArrays:function(a,b){var e=a.series,c=arguments,m=p(b)?function(c){var g="y"===c&&e.toYData?e.toYData(a):a[c];e[c+"Data"][b]=g}:function(a){Array.prototype[b].apply(e[a+"Data"],Array.prototype.slice.call(c,2))};y(e.parallelArrays,m)},autoIncrement:function(){var a=this.options,b=this.xIncrement,e,c=a.pointIntervalUnit,d=this.chart.time,b=h(b,a.pointStart, +0);this.pointInterval=e=h(this.pointInterval,a.pointInterval,1);c&&(a=new d.Date(b),"day"===c?d.set("Date",a,d.get("Date",a)+e):"month"===c?d.set("Month",a,d.get("Month",a)+e):"year"===c&&d.set("FullYear",a,d.get("FullYear",a)+e),e=a.getTime()-b);this.xIncrement=b+e;return b},setOptions:function(a){var c=this.chart,e=c.options,m=e.plotOptions,l=(c.userOptions||{}).plotOptions||{},g=m[this.type];this.userOptions=a;c=b(g,m.series,a);this.tooltipOptions=b(f.tooltip,f.plotOptions.series&&f.plotOptions.series.tooltip, +f.plotOptions[this.type].tooltip,e.tooltip.userOptions,m.series&&m.series.tooltip,m[this.type].tooltip,a.tooltip);this.stickyTracking=h(a.stickyTracking,l[this.type]&&l[this.type].stickyTracking,l.series&&l.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:c.stickyTracking);null===g.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0, +className:"highcharts-negative"});a.length&&u(a[a.length-1].value)&&a.push({});d(this,"afterSetOptions",{options:c});return c},getName:function(){return this.name||"Series "+(this.index+1)},getCyclic:function(a,b,e){var c,m=this.chart,g=this.userOptions,d=a+"Index",f=a+"Counter",l=e?e.length:h(m.options.chart[a+"Count"],m[a+"Count"]);b||(c=h(g[d],g["_"+d]),u(c)||(m.series.length||(m[f]=0),g["_"+d]=c=m[f]%l,m[f]+=1),e&&(b=e[c]));void 0!==c&&(this[d]=c);this[a]=b},getColor:function(){this.getCyclic("color")}, +getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,updateData:function(b){var c=this.options,e=this.points,m=[],d,g,h,f=this.requireSorting;y(b,function(b){var g;g=a.defined(b)&&this.pointClass.prototype.optionsToObject.call({series:this},b).x;p(g)&&(g=a.inArray(g,this.xData,h),-1===g?m.push(b):b!==c.data[g]?(e[g].update(b,!1,null,!1),e[g].touched=!0,f&&(h=g)):e[g]&&(e[g].touched=!0),d=!0)},this); +if(d)for(b=e.length;b--;)g=e[b],g.touched||g.remove(!1),g.touched=!1;else if(b.length===e.length)y(b,function(a,b){e[b].update&&a!==c.data[b]&&e[b].update(a,!1,null,!1)});else return!1;y(m,function(a){this.addPoint(a,!1)},this);return!0},setData:function(b,c,e,d){var m=this,g=m.points,f=g&&g.length||0,x,l=m.options,D=m.chart,t=null,w=m.xAxis,k=l.turboThreshold,I=this.xData,B=this.yData,E=(x=m.pointArrayMap)&&x.length,q;b=b||[];x=b.length;c=h(c,!0);!1!==d&&x&&f&&!m.cropped&&!m.hasGroupedData&&m.visible&& +(q=this.updateData(b));if(!q){m.xIncrement=null;m.colorCounter=0;y(this.parallelArrays,function(a){m[a+"Data"].length=0});if(k&&x>k){for(e=0;null===t&&el||this.forceCrop))if(c[m-1]B)c=[],e=[];else if(c[0]B)d=this.cropData(this.xData,this.yData,I,B),c=d.xData,e=d.yData,d=d.start,g=!0;for(l=c.length||1;--l;)m=p?n(c[l])-n(c[l-1]):c[l]-c[l-1],0m&&k&&(a.error(15),k=!1);this.cropped=g;this.cropStart=d;this.processedXData=c;this.processedYData=e;this.closestPointRange= +h},cropData:function(a,b,e,c,d){var g=a.length,m=0,f=g,x;d=h(d,this.cropShoulder,1);for(x=0;x=e){m=Math.max(0,x-d);break}for(e=x;ec){f=e+d;break}return{xData:a.slice(m,f),yData:b.slice(m,f),start:m,end:f}},generatePoints:function(){var a=this.options,b=a.data,e=this.data,c,d=this.processedXData,g=this.processedYData,h=this.pointClass,f=d.length,l=this.cropStart||0,n,t=this.hasGroupedData,a=a.keys,w,p=[],k;e||t||(e=[],e.length=b.length,e=this.data=e);a&&t&&(this.options.keys= +!1);for(k=0;k=d&&(e[w-n]||l)<=h,f&&l)if(f=t.length)for(;f--;)"number"===typeof t[f]&&(m[g++]=t[f]);else m[g++]=t;this.dataMin=r(m);this.dataMax=H(m)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,e=this.xAxis,c= +e.categories,f=this.yAxis,g=this.points,l=g.length,n=!!this.modifyValue,t=a.pointPlacement,w="between"===t||p(t),I=a.threshold,B=a.startFromThreshold?I:0,E,q,z,v,r=Number.MAX_VALUE;"between"===t&&(t=.5);p(t)&&(t*=h(a.pointRange||e.pointRange));for(a=0;a=G&&(y.isNull=!0);y.plotX=E=k(Math.min(Math.max(-1E5,e.translate(F,0,0,0,1,t,"flags"===this.type)),1E5)); +b&&this.visible&&!y.isNull&&H&&H[F]&&(v=this.getStackIndicator(v,F,this.index),Q=H[F],G=Q.points[v.key],q=G[0],G=G[1],q===B&&v.key===H[F].base&&(q=h(p(I)&&I,f.min)),f.positiveValuesOnly&&0>=q&&(q=null),y.total=y.stackTotal=Q.total,y.percentage=Q.total&&y.y/Q.total*100,y.stackY=G,Q.setOffset(this.pointXOffset||0,this.barW||0));y.yBottom=u(q)?Math.min(Math.max(-1E5,f.translate(q,0,1,0,1)),1E5):null;n&&(G=this.modifyValue(G,y));y.plotY=q="number"===typeof G&&Infinity!==G?Math.min(Math.max(-1E5,f.translate(G, +0,1,0,1)),1E5):void 0;y.isInside=void 0!==q&&0<=q&&q<=f.len&&0<=E&&E<=e.len;y.clientX=w?k(e.translate(F,0,0,0,1,t)):E;y.negative=y.y<(I||0);y.category=c&&void 0!==c[y.x]?c[y.x]:y.x;y.isNull||(void 0!==z&&(r=Math.min(r,Math.abs(E-z))),z=E);y.zone=this.zones.length&&y.getZone()}this.closestPointRangePx=r;d(this,"afterTranslate")},getValidPoints:function(a,b){var e=this.chart;return c(a||this.points||[],function(a){return b&&!e.isInsidePlot(a.plotX,a.plotY,e.inverted)?!1:!a.isNull})},setClip:function(a){var b= +this.chart,e=this.options,c=b.renderer,m=b.inverted,g=this.clipBox,d=g||b.clipBox,h=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,d.height,e.xAxis,e.yAxis].join(),f=b[h],l=b[h+"m"];f||(a&&(d.width=0,m&&(d.x=b.plotSizeX),b[h+"m"]=l=c.clipRect(m?b.plotSizeX+99:-99,m?-b.plotLeft:-b.plotTop,99,m?b.chartWidth:b.chartHeight)),b[h]=f=c.clipRect(d),f.count={length:0});a&&!f.count[this.index]&&(f.count[this.index]=!0,f.count.length+=1);!1!==e.clip&&(this.group.clip(a||g?f:b.clipRect),this.markerGroup.clip(l), +this.sharedClipKey=h);a||(f.count[this.index]&&(delete f.count[this.index],--f.count.length),0===f.count.length&&h&&b[h]&&(g||(b[h]=b[h].destroy()),b[h+"m"]&&(b[h+"m"]=b[h+"m"].destroy())))},animate:function(a){var b=this.chart,e=G(this.options.animation),c;a?this.setClip(e):(c=this.sharedClipKey,(a=b[c])&&a.animate({width:b.plotSizeX,x:0},e),b[c+"m"]&&b[c+"m"].animate({width:b.plotSizeX+99,x:0},e),this.animate=null)},afterAnimate:function(){this.setClip();d(this,"afterAnimate");this.finishedAnimating= +!0},drawPoints:function(){var a=this.points,b=this.chart,e,c,d,g,f=this.options.marker,l,t,n,w=this[this.specialGroup]||this.markerGroup,p,k=h(f.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=f.enabledThreshold*f.radius);if(!1!==f.enabled||this._hasPointMarkers)for(e=0;ek.max;a.resetZones&&0===g&&(g=void 0)}),this.clips=f)},invertGroups:function(a){function b(){y(["group","markerGroup"],function(b){e[b]&&(c.renderer.isVML&&e[b].attr({width:e.yAxis.len,height:e.xAxis.len}),e[b].width=e.yAxis.len,e[b].height=e.xAxis.len,e[b].invert(a))})}var e=this,c=e.chart,d;e.xAxis&&(d=F(c,"resize",b),F(e,"destroy",d),b(a),e.invertGroups=b)},plotGroup:function(a,b,e,c,d){var g=this[a],m=!g;m&&(this[a]=g=this.chart.renderer.g().attr({zIndex:c||.1}).add(d));g.addClass("highcharts-"+ +b+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(u(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(g.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0);g.attr({visibility:e})[m?"attr":"animate"](this.getPlotBox());return g},getPlotBox:function(){var a=this.chart,b=this.xAxis,e=this.yAxis;a.inverted&&(b=e,e=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:e?e.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a= +this,b=a.chart,e,c=a.options,h=!!a.animate&&b.renderer.isSVG&&G(c.animation).duration,g=a.visible?"inherit":"hidden",f=c.zIndex,l=a.hasRendered,t=b.seriesGroup,n=b.inverted;e=a.plotGroup("group","series",g,f,t);a.markerGroup=a.plotGroup("markerGroup","markers",g,f,t);h&&a.animate(!0);e.inverted=a.isCartesian?n:!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(n); +!1===c.clip||a.sharedClipKey||l||e.clip(b.clipRect);h&&a.animate();l||(a.animationTimeout=I(function(){a.afterAnimate()},h));a.isDirty=!1;a.hasRendered=!0;d(a,"afterRender")},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,e=this.group,c=this.xAxis,d=this.yAxis;e&&(a.inverted&&e.attr({width:a.plotWidth,height:a.plotHeight}),e.animate({translateX:h(c&&c.left,a.plotLeft),translateY:h(d&&d.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:["clientX", +"plotY"],searchPoint:function(a,b){var e=this.xAxis,c=this.yAxis,d=this.chart.inverted;return this.searchKDTree({clientX:d?e.len-a.chartY+e.pos:a.chartX-e.pos,plotY:d?c.len-a.chartX+c.pos:a.chartY-c.pos},b)},buildKDTree:function(){function a(e,c,g){var d,m;if(m=e&&e.length)return d=b.kdAxisArray[c%g],e.sort(function(a,e){return a[d]-e[d]}),m=Math.floor(m/2),{point:e[m],left:a(e.slice(0,m),c+1,g),right:a(e.slice(m+1),c+1,g)}}this.buildingKdTree=!0;var b=this,e=-1t?"left":"right";n=0>t?"right":"left";b[x]&&(x=e(a,b[x],h+1,f),w=x[m]k;)p--;this.updateParallelArrays(t,"splice",p,0,0);this.updateParallelArrays(t,p);g&&t.name&&(g[k]=t.name);l.splice(p,0,a);n&&(this.data.splice(p,0,null),this.processData());"point"===e.legendType&&this.generatePoints();d&&(m[0]&&m[0].remove?m[0].remove(!1):(m.shift(),this.updateParallelArrays(t,"shift"),l.shift()));this.isDirtyData=this.isDirty=!0;c&&h.redraw(f)},removePoint:function(a,c,d){var m=this,e=m.data,f=e[a],h=m.points,g=m.chart,l=function(){h&&h.length===e.length&& +h.splice(a,1);e.splice(a,1);m.options.data.splice(a,1);m.updateParallelArrays(f||{series:m},"splice",a,1);f&&f.destroy();m.isDirty=!0;m.isDirtyData=!0;c&&g.redraw()};B(d,g);c=b(c,!0);f?f.firePointEvent("remove",null,l):l()},remove:function(a,c,d){function m(){e.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();b(a,!0)&&f.redraw(c)}var e=this,f=e.chart;!1!==d?v(e,"remove",null,m):m()},update:function(c,d){var m=this,h=m.chart,e=m.userOptions,l=m.oldType||m.type,t=c.type||e.type||h.options.chart.type, +g=E[l].prototype,n,w=["group","markerGroup","dataLabelsGroup"],k=["navigatorSeries","baseSeries"],B=m.finishedAnimating&&{animation:!1},I=["data","name","turboThreshold"],z=a.keys(c),u=0a&&v>f?(v=Math.max(a,f),d=2*f-v):vr&&d>f?(d=Math.max(r,f),v=2*f-d):d=Math.abs(d)&&.5a.closestPointRange*a.xAxis.transA,k=a.borderWidth=f(c.borderWidth,k?0:1),p=a.yAxis,n=c.threshold,b=a.translatedThreshold=p.getThreshold(n),l=f(c.minPointLength,5),h=a.getColumnMetrics(),E=h.width,B=a.barW=Math.max(E,1+2*k),t=a.pointXOffset=h.offset;d.inverted&&(b-=.5);c.pointPadding&&(B=Math.ceil(B));u.prototype.translate.apply(a);G(a.points,function(c){var h=f(c.yBottom,b),m=999+Math.abs(h), +m=Math.min(Math.max(-m,c.plotY),p.len+m),k=c.plotX+t,e=B,x=Math.min(m,h),q,g=Math.max(m,h)-x;l&&Math.abs(g)l?h-l:b-(q?l:0));c.barX=k;c.pointWidth=E;c.tooltipPos=d.inverted?[p.len+p.pos-d.plotLeft-m,a.xAxis.len-k-e/2,g]:[k+e/2,m+p.pos-d.plotTop,g];c.shapeType="rect";c.shapeArgs=a.crispCol.apply(a,c.isNull?[k,b,e,0]:[k,x,e,g])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle, +drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},drawPoints:function(){var a=this,d=this.chart,c=a.options,f=d.renderer,p=c.animationLimit||250,n;G(a.points,function(b){var l=b.graphic,h=l&&d.pointCountd;++d)c=v[d],a=2>d||2===d&&/%$/.test(c),v[d]=r(c,[y,f,q,v[2]][d])+(a?u:0);v[3]>v[2]&&(v[3]=v[2]);return v},getStartAndEndRadians:function(a,f){a=G(a)?a:0;f=G(f)&&f>a&&360>f-a?f:a+360;return{start:F*(a+-90),end:F*(f+-90)}}}})(K);(function(a){var F=a.addEvent,G=a.CenteredSeriesMixin,H=a.defined,r=a.each,k=a.extend,f=G.getStartAndEndRadians,u=a.inArray,y=a.noop,v=a.pick,q=a.Point,d=a.Series,c=a.seriesType,z=a.setAnimation;c("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}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var c=this,b=c.points,d=c.startAngleRad;a||(r(b,function(a){var b=a.graphic, +f=a.shapeArgs;b&&(b.attr({r:a.startR||c.center[3]/2,start:d,end:d}),b.animate({r:f.r,start:f.start,end:f.end},c.options.animation))}),c.animate=null)},updateTotals:function(){var a,c=0,b=this.points,d=b.length,f,k=this.options.ignoreHiddenPoint;for(a=0;a1.5*Math.PI?t-=2*Math.PI:t<-Math.PI/2&&(t+=2*Math.PI);g.slicedTranslation={translateX:Math.round(Math.cos(t)*d),translateY:Math.round(Math.sin(t)*d)};p=Math.cos(t)*a[2]/2;D=Math.sin(t)*a[2]/2;g.tooltipPos=[a[0]+.7*p,a[1]+.7*D];g.half=t<-Math.PI/ +2||t>Math.PI/2?1:0;g.angle=t;k=Math.min(h,g.labelDistance/5);g.labelPos=[a[0]+p+Math.cos(t)*g.labelDistance,a[1]+D+Math.sin(t)*g.labelDistance,a[0]+p+Math.cos(t)*k,a[1]+D+Math.sin(t)*k,a[0]+p,a[1]+D,0>g.labelDistance?"center":g.half?"right":"left",t]}},drawGraph:null,drawPoints:function(){var a=this,c=a.chart.renderer,b,d,f;r(a.points,function(h){d=h.graphic;h.isNull?d&&(h.graphic=d.destroy()):(f=h.shapeArgs,b=h.getTranslate(),d?d.setRadialReference(a.center).animate(k(f,b)):(h.graphic=d=c[h.shapeType](f).setRadialReference(a.center).attr(b).add(a.group), +h.visible||d.attr({visibility:"hidden"})),d.addClass(h.getClassName()))})},searchPoint:y,sortByAngle:function(a,c){a.sort(function(a,d){return void 0!==a.angle&&(d.angle-a.angle)*c})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:G.getCenter,getSymbol:y},{init:function(){q.prototype.init.apply(this,arguments);var a=this,c;a.name=v(a.name,"Slice");c=function(b){a.slice("select"===b.type)};F(a,"select",c);F(a,"unselect",c);return a},isValid:function(){return a.isNumber(this.y,!0)&&0<= +this.y},setVisible:function(a,c){var b=this,d=b.series,f=d.chart,n=d.options.ignoreHiddenPoint;c=v(c,n);a!==b.visible&&(b.visible=b.options.visible=a=void 0===a?!b.visible:a,d.options.data[u(b,d.data)]=b.options,r(["graphic","dataLabel","connector","shadowGroup"],function(c){if(b[c])b[c][a?"show":"hide"](!0)}),b.legendItem&&f.legend.colorizeItem(b,a),a||"hover"!==b.state||b.setState(""),n&&(d.isDirty=!0),c&&f.redraw())},slice:function(a,c,b){var d=this.series;z(b,d.chart);v(c,!0);this.sliced=this.options.sliced= +H(a)?a:!this.sliced;d.options.data[u(this,d.data)]=this.options;this.graphic.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(a){var c=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(c.x,c.y,c.r+a,c.r+a,{innerR:this.shapeArgs.r-1,start:c.start,end:c.end})}})})(K);(function(a){var F=a.addEvent,G=a.arrayMax,H=a.defined,r=a.each,k=a.extend,f=a.format,u=a.map,y=a.merge, +v=a.noop,q=a.pick,d=a.relativeLength,c=a.Series,z=a.seriesTypes,p=a.some,n=a.stableSort;a.distribute=function(b,c,d){function f(a,b){return a.target-b.target}var h,l=!0,k=b,w=[],m;m=0;var D=k.reducedLen||c;for(h=b.length;h--;)m+=b[h].size;if(m>D){n(b,function(a,b){return(b.rank||0)-(a.rank||0)});for(m=h=0;m<=D;)m+=b[h].size,h++;w=b.splice(h-1,b.length)}n(b,f);for(b=u(b,function(a){return{size:a.size,targets:[a.target],align:q(a.align,.5)}});l;){for(h=b.length;h--;)l=b[h],m=(Math.min.apply(0,l.targets)+ +Math.max.apply(0,l.targets))/2,l.pos=Math.min(Math.max(0,m-l.size*l.align),c-l.size);h=b.length;for(l=!1;h--;)0b[h].pos&&(b[h-1].size+=b[h].size,b[h-1].targets=b[h-1].targets.concat(b[h].targets),b[h-1].align=.5,b[h-1].pos+b[h-1].size>c&&(b[h-1].pos=c-b[h-1].size),b.splice(h,1),l=!0)}k.push.apply(k,w);h=0;p(b,function(e){var b=0;if(p(e.targets,function(){k[h].pos=e.pos+b;if(Math.abs(k[h].pos-k[h].target)>d)return r(k.slice(0,h+1),function(a){delete a.pos}),k.reducedLen= +(k.reducedLen||c)-.1*c,k.reducedLen>.1*c&&a.distribute(k,c,d),!0;b+=k[h].size;h++}))return!0});n(k,f)};c.prototype.drawDataLabels=function(){function b(a,e){var b=e.filter;return b?(e=b.operator,a=a[b.property],b=b.value,"\x3e"===e&&a>b||"\x3c"===e&&a=b||"\x3c\x3d"===e&&a<=b||"\x3d\x3d"===e&&a==b||"\x3d\x3d\x3d"===e&&a===b?!0:!1):!0}var c=this,d=c.chart,k=c.options,n=k.dataLabels,t=c.points,p,w,m=c.hasRendered||0,D,e,x=q(n.defer,!!k.animation),z=d.renderer;if(n.enabled||c._hasPointLabels)c.dlProcessOptions&& +c.dlProcessOptions(n),e=c.plotGroup("dataLabelsGroup","data-labels",x&&!m?"hidden":"visible",n.zIndex||6),x&&(e.attr({opacity:+m}),m||F(c,"afterAnimate",function(){c.visible&&e.show(!0);e[k.animation?"animate":"attr"]({opacity:1},{duration:200})})),w=n,r(t,function(g){var h,m=g.dataLabel,l,t,k=g.connector,x=!m,B;p=g.dlOptions||g.options&&g.options.dataLabels;(h=q(p&&p.enabled,w.enabled)&&!g.isNull)&&(h=!0===b(g,p||n));h&&(n=y(w,p),l=g.getLabelConfig(),B=n[g.formatPrefix+"Format"]||n.format,D=H(B)? +f(B,l,d.time):(n[g.formatPrefix+"Formatter"]||n.formatter).call(l,n),l=n.rotation,t={r:n.borderRadius||0,rotation:l,padding:n.padding,zIndex:1},a.objectEach(t,function(a,e){void 0===a&&delete t[e]}));!m||h&&H(D)?h&&H(D)&&(m?t.text=D:(m=g.dataLabel=l?z.text(D,0,-9999).addClass("highcharts-data-label"):z.label(D,0,-9999,n.shape,null,null,n.useHTML,null,"data-label"),m.addClass(" highcharts-data-label-color-"+g.colorIndex+" "+(n.className||"")+(n.useHTML?"highcharts-tracker":""))),m.attr(t),m.added|| +m.add(e),c.alignDataLabel(g,m,n,null,x)):(g.dataLabel=m=m.destroy(),k&&(g.connector=k.destroy()))});a.fireEvent(this,"afterDrawDataLabels")};c.prototype.alignDataLabel=function(a,c,d,f,n){var b=this.chart,h=b.inverted,l=q(a.dlBox&&a.dlBox.centerX,a.plotX,-9999),m=q(a.plotY,-9999),p=c.getBBox(),e,x=d.rotation,B=d.align,g=this.visible&&(a.series.forceDL||b.isInsidePlot(l,Math.round(m),h)||f&&b.isInsidePlot(l,h?f.x+1:f.y+f.height-1,h)),C="justify"===q(d.overflow,"justify");if(g&&(e=b.renderer.fontMetrics(void 0, +c).b,f=k({x:h?this.yAxis.len-m:l,y:Math.round(h?this.xAxis.len-l:m),width:0,height:0},f),k(d,{width:p.width,height:p.height}),x?(C=!1,l=b.renderer.rotCorr(e,x),l={x:f.x+d.x+f.width/2+l.x,y:f.y+d.y+{top:0,middle:.5,bottom:1}[d.verticalAlign]*f.height},c[n?"attr":"animate"](l).attr({align:B}),m=(x+720)%360,m=180m,"left"===B?l.y-=m?p.height:0:"center"===B?(l.x-=p.width/2,l.y-=p.height/2):"right"===B&&(l.x-=p.width,l.y-=m?0:p.height),c.placed=!0,c.alignAttr=l):(c.align(d,null,f),l=c.alignAttr), +C?a.isLabelJustified=this.justifyDataLabel(c,d,l,p,f,n):q(d.crop,!0)&&(g=b.isInsidePlot(l.x,l.y)&&b.isInsidePlot(l.x+p.width,l.y+p.height)),d.shape&&!x))c[n?"attr":"animate"]({anchorX:h?b.plotWidth-a.plotY:a.plotX,anchorY:h?b.plotHeight-a.plotX:a.plotY});g||(c.attr({y:-9999}),c.placed=!1)};c.prototype.justifyDataLabel=function(a,c,d,f,n,t){var b=this.chart,h=c.align,m=c.verticalAlign,l,e,k=a.box?0:a.padding||0;l=d.x+k;0>l&&("right"===h?c.align="left":c.x=-l,e=!0);l=d.x+f.width-k;l>b.plotWidth&&("left"=== +h?c.align="right":c.x=b.plotWidth-l,e=!0);l=d.y+k;0>l&&("bottom"===m?c.verticalAlign="top":c.y=-l,e=!0);l=d.y+f.height-k;l>b.plotHeight&&("top"===m?c.verticalAlign="bottom":c.y=b.plotHeight-l,e=!0);e&&(a.placed=!t,a.align(c,null,n));return e};z.pie&&(z.pie.prototype.drawDataLabels=function(){var b=this,d=b.data,f,n=b.chart,k=b.options.dataLabels,t=q(k.connectorPadding,10),p=q(k.connectorWidth,1),w=n.plotWidth,m=n.plotHeight,D=Math.round(n.chartWidth/3),e,x=b.center,z=x[2]/2,g=x[1],C,u,A,v,y=[[],[]], +F,M,O,N,R=[0,0,0,0];b.visible&&(k.enabled||b._hasPointLabels)&&(r(d,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),c.prototype.drawDataLabels.apply(b),r(d,function(a){a.dataLabel&&a.visible&&(y[a.half].push(a),a.dataLabel._pos=null,a.dataLabel.getBBox().width>D&&(a.dataLabel.css({width:.7*D}),a.dataLabel.shortened=!0))}),r(y,function(e,c){var d,h,l=e.length,p=[],D;if(l)for(b.sortByAngle(e, +c-.5),0f.bottom-2?d:M,c,f),C._attr={visibility:O,align:A[6]},C._pos={x:F+k.x+({left:t,right:-t}[A[6]]||0),y:M+k.y-10},A.x=F,A.y=M,q(k.crop,!0)&&(u=C.getBBox().width,d=null,F-uw-t&&0===c&&(d=Math.round(F+u-w+t),R[1]=Math.max(d,R[1])),0>M-v/2?R[0]=Math.max(Math.round(-M+v/2),R[0]): +M+v/2>m&&(R[2]=Math.max(Math.round(M+v/2-m),R[2])),C.sideOverflow=d)}),0===G(R)||this.verifyDataLabelOverflow(R))&&(this.placeDataLabels(),p&&r(this.points,function(a){var c;e=a.connector;if((C=a.dataLabel)&&C._pos&&a.visible&&0q(this.translatedThreshold,h.yAxis.len)),p=q(f.inside,!!this.options.stacking);l&&(n=y(l),0>n.y&&(n.height+=n.y,n.y=0),l=n.y+n.height-h.yAxis.len,0a+c||f+kb+d||n+mthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,f;d&&u(d,function(a){a.setState()});u("xy"===b?[1,0]:[1],function(e){e=c[e?"xAxis":"yAxis"][0];var b=e.horiz, +d=a[b?"chartX":"chartY"],b=b?"mouseDownX":"mouseDownY",g=c[b],h=(e.pointRange||0)/2,m=e.reversed&&!c.inverted||!e.reversed&&c.inverted?-1:1,l=e.getExtremes(),n=e.toValue(g-d,!0)+h*m,m=e.toValue(g+e.len-d,!0)-h*m,k=m=f(q.minWidth,0)&&this.chartHeight>=f(q.minHeight,0)}).call(this)&&k.push(a._id)};F.prototype.currentOptions=function(f){function v(d,c,f,p){var n;a.objectEach(d,function(a,d){if(!p&&-1l.length||void 0===f)return a.call(this,d,f,n,b);D=l.length;for(p=0;pn;l[p]5*h||e){if(l[p]>v){for(z=a.call(this,d,l[c],l[p],b);z.length&&z[0]<=v;)z.shift();z.length&&(v=z[z.length-1]);x=x.concat(z)}c=p+1}if(e)break}a=z.info;if(r&&a.unitRange<= +q.hour){p=x.length-1;for(c=1;cn?C-1:C;for(u=void 0;r--;)c=p[r],n=Math.abs(u-c),u&&n<.8*g&&(null===m||n<.8*m)?(w[x[r]]&&!w[x[r+1]]?(n=r+1,u=c):n=r,x.splice(n,1)):u=c}return x});u(G.prototype,{beforeSetTickPositions:function(){var a, +d=[],p=!1,n,b=this.getExtremes(),l=b.min,h=b.max,q,B=this.isXAxis&&!!this.options.breaks,b=this.options.ordinal,t=Number.MAX_VALUE,r=this.chart.options.chart.ignoreHiddenSeries;n="highcharts-navigator-xaxis"===this.options.className;!this.options.overscroll||this.max!==this.dataMax||this.chart.mouseIsDown&&!n||this.eventArgs&&(!this.eventArgs||"navigator"===this.eventArgs.trigger)||(this.max+=this.options.overscroll,!n&&k(this.userMin)&&(this.min+=this.options.overscroll));if(b||B){f(this.series, +function(b,c){if(!(r&&!1===b.visible||!1===b.takeOrdinalPosition&&!B)&&(d=d.concat(b.processedXData),a=d.length,d.sort(function(a,b){return a-b}),t=Math.min(t,v(b.closestPointRange,t)),a))for(c=a-1;c--;)d[c]===d[c+1]&&d.splice(c,1)});a=d.length;if(2n||h-d[d.length-1]>n)&&(p=!0)}else this.options.overscroll&&(2===a?t=d[1]-d[0]:1===a?(t=this.options.overscroll,d=[d[0],d[0]+t]):t=this.overscrollPointsRange); +p?(this.options.overscroll&&(this.overscrollPointsRange=t,d=d.concat(this.getOverscrollPositions())),this.ordinalPositions=d,n=this.ordinal2lin(Math.max(l,d[0]),!0),q=Math.max(this.ordinal2lin(Math.min(h,d[d.length-1]),!0),1),this.ordinalSlope=h=(h-l)/(q-n),this.ordinalOffset=l-n*h):(this.overscrollPointsRange=v(this.closestPointRange,this.overscrollPointsRange),this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0)}this.isOrdinal=b&&p;this.groupIntervalFactor=null},val2lin:function(a, +d){var c=this.ordinalPositions;if(c){var f=c.length,b,l;for(b=f;b--;)if(c[b]===a){l=b;break}for(b=f-1;b--;)if(a>c[b]||0===b){a=(a-c[b])/(c[b+1]-c[b]);l=b+a;break}d=d?l:this.ordinalSlope*(l||0)+this.ordinalOffset}else d=a;return d},lin2val:function(a,d){var c=this.ordinalPositions;if(c){var f=this.ordinalSlope,b=this.ordinalOffset,l=c.length-1,h;if(d)0>a?a=c[0]:a>l?a=c[l]:(l=Math.floor(a),h=a-l);else for(;l--;)if(d=f*l+b,a>=d){f=f*(l+1)+b;h=(a-d)/(f-d);break}return void 0!==h&&void 0!==c[l]?c[l]+(h? +h*(c[l+1]-c[l]):0):a}return a},getExtendedPositions:function(){var a=this,d=a.chart,k=a.series[0].currentDataGrouping,n=a.ordinalIndex,b=k?k.count+k.unitName:"raw",l=a.options.overscroll,h=a.getExtremes(),q,B;n||(n=a.ordinalIndex={});n[b]||(q={series:[],chart:d,getExtremes:function(){return{min:h.dataMin,max:h.dataMax+l}},options:{ordinal:!0},val2lin:G.prototype.val2lin,ordinal2lin:G.prototype.ordinal2lin},f(a.series,function(b){B={xAxis:q,xData:b.xData.slice(),chart:d,destroyGroupedData:y};B.xData= +B.xData.concat(a.getOverscrollPositions());B.options={dataGrouping:k?{enabled:!0,forced:!0,approximation:"open",units:[[k.unitName,[k.count]]]}:{enabled:!1}};b.processData.apply(B);q.series.push(B)}),a.beforeSetTickPositions.apply(q),n[b]=q.ordinalPositions);return n[b]},getOverscrollPositions:function(){var c=this.options.overscroll,d=this.overscrollPointsRange,f=[],n=this.dataMax;if(a.defined(d))for(f.push(n);n<=this.dataMax+c;)n+=d,f.push(n);return f},getGroupIntervalFactor:function(a,d,f){var c; +f=f.processedXData;var b=f.length,l=[];c=this.groupIntervalFactor;if(!c){for(c=0;ch?(w=D,x=c.ordinalPositions?c:D):(w=c.ordinalPositions?c:D,x=D),D=x.ordinalPositions,B>D[D.length-1]&&D.push(B),this.fixedRange= +v-t,h=c.toFixedRange(null,null,m.apply(w,[e.apply(w,[t,!0])+h,!0]),m.apply(x,[e.apply(x,[v,!0])+h,!0])),h.min>=Math.min(q.dataMin,t)&&h.max<=Math.max(B,v)+k&&c.setExtremes(h.min,h.max,!0,!1,{trigger:"pan"}),this.mouseDownX=b,r(this.container,{cursor:"move"})):l=!0}else l=!0;l&&(k&&(c.max=c.dataMax+k),a.apply(this,Array.prototype.slice.call(arguments,1)))})})(K);(function(a){function F(){return Array.prototype.slice.call(arguments,1)}function G(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis, +r(this.pointArrayMap,["y"]))}var H=a.addEvent,r=a.pick,k=a.wrap,f=a.each,u=a.extend,y=a.isArray,v=a.fireEvent,q=a.Axis,d=a.Series;u(q.prototype,{isInBreak:function(a,d){var c=a.repeat||Infinity,f=a.from,b=a.to-a.from;d=d>=f?(d-f)%c:c-(f-d)%c;return a.inclusive?d<=b:d=c)break; +else if(a.isInBreak(b,c)){d-=c-b.from;break}return d},a.lin2val=function(c){var d,b;for(b=0;b=c);b++)d.top;)w-=k;for(;wb.to||l>b.from&&qb.from&&qb.from&&q>b.to&&qc&&(c=d);k--;)f[k+1].x-f[k].x>c&&(d=(f[k].x+f[k+1].x)/2,f.splice(k+1,0,{isNull:!0,x:d}),this.options.stacking&&(d=b.stacks[this.stackKey][d]=new a.StackItem(b,b.options.stackLabels, +!1,d,this.stack),d.total=0));return this.getGraphPath(f)};k(a.seriesTypes.column.prototype,"drawPoints",G);k(a.Series.prototype,"drawPoints",G)})(K);(function(a){var F=a.addEvent,G=a.arrayMax,H=a.arrayMin,r=a.Axis,k=a.defaultPlotOptions,f=a.defined,u=a.each,y=a.extend,v=a.format,q=a.isNumber,d=a.merge,c=a.pick,z=a.Point,p=a.Series,n=a.Tooltip,b=a.wrap,l=p.prototype,h=l.processData,E=l.generatePoints,B={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"]}},t={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}},I=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",[1]],["month",[1,3,6]],["year",null]],w=a.approximations={sum:function(a){var b=a.length,c;if(!b&&a.hasNulls)c=null;else if(b)for(c= +0;b--;)c+=a[b];return c},average:function(a){var b=a.length;a=w.sum(a);q(a)&&b&&(a/=b);return a},averages:function(){var a=[];u(arguments,function(b){a.push(w.average(b))});return void 0===a[0]?void 0:a},open:function(a){return a.length?a[0]:a.hasNulls?null:void 0},high:function(a){return a.length?G(a):a.hasNulls?null:void 0},low:function(a){return a.length?H(a):a.hasNulls?null:void 0},close:function(a){return a.length?a[a.length-1]:a.hasNulls?null:void 0},ohlc:function(a,b,c,d){a=w.open(a);b=w.high(b); +c=w.low(c);d=w.close(d);if(q(a)||q(b)||q(c)||q(d))return[a,b,c,d]},range:function(a,b){a=w.low(a);b=w.high(b);if(q(a)||q(b))return[a,b];if(null===a&&null===b)return null}};l.groupData=function(a,b,c,d){var e=this.data,f=this.options.data,h=[],m=[],k=[],l=a.length,n,x,p=!!b,r=[];d="function"===typeof d?d:w[d]||t[this.type]&&w[t[this.type].approximation]||w[B.approximation];var v=this.pointArrayMap,D=v&&v.length,z=0;x=0;var E,y;D?u(v,function(){r.push([])}):r.push([]);E=D||1;for(y=0;y<=l&&!(a[y]>=c[0]);y++); +for(y;y<=l;y++){for(;void 0!==c[z+1]&&a[y]>=c[z+1]||y===l;){n=c[z];this.dataGroupInfo={start:x,length:r[0].length};x=d.apply(this,r);void 0!==x&&(h.push(n),m.push(x),k.push(this.dataGroupInfo));x=y;for(n=0;nthis.chart.plotSizeX/d||b&& +g.forced)&&(f=!0);return f?d:0};r.prototype.setDataGrouping=function(a,b){var e;b=c(b,!0);a||(a={forced:!1,units:null});if(this instanceof r)for(e=this.series.length;e--;)this.series[e].update({dataGrouping:a},!1);else u(this.chart.options.series,function(b){b.dataGrouping=a},!1);this.ordinalSlope=null;b&&this.chart.redraw()}})(K);(function(a){var F=a.each,G=a.Point,H=a.seriesType,r=a.seriesTypes;H("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan class\x3d"highcharts-color-{point.colorIndex}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'}, +threshold:null,stickyTracking:!0},{directTouch:!1,pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"close",translate:function(){var a=this,f=a.yAxis,u=!!a.modifyValue,y=["plotOpen","plotHigh","plotLow","plotClose","yBottom"];r.column.prototype.translate.apply(a);F(a.points,function(k){F([k.open,k.high,k.low,k.close,k.low],function(q,d){null!==q&&(u&&(q=a.modifyValue(q)),k[y[d]]=f.toPixels(q,!0))});k.tooltipPos[1]=k.plotHigh+f.pos-a.chart.plotTop})}, +drawPoints:function(){var a=this,f=a.chart;F(a.points,function(k){var r,v,q,d,c=k.graphic,u,p=!c;void 0!==k.plotY&&(c||(k.graphic=c=f.renderer.path().add(a.group)),v=c.strokeWidth()%2/2,u=Math.round(k.plotX)-v,q=Math.round(k.shapeArgs.width/2),d=["M",u,Math.round(k.yBottom),"L",u,Math.round(k.plotHigh)],null!==k.open&&(r=Math.round(k.plotOpen)+v,d.push("M",u,r,"L",u-q,r)),null!==k.close&&(r=Math.round(k.plotClose)+v,d.push("M",u,r,"L",u+q,r)),c[p?"attr":"animate"]({d:d}).addClass(k.getClassName(), +!0))})},animate:null},{getClassName:function(){return G.prototype.getClassName.call(this)+(this.openy)););F(u,function(a,c){var d;a.plotX+=h;if(void 0===a.plotY||n)0<=a.plotX&&a.plotX<=b.len?n?(a.plotY=b.translate(a.x,0,1,0,1),a.plotX=G(a.y)?l.translate(a.y,0,0,0,1):0): +a.plotY=f.chartHeight-b.bottom-(b.opposite?b.height:0)+b.offset-l.top:a.shapeArgs={};(q=u[c-1])&&q.plotX===a.plotX&&(void 0===q.stackIndex&&(q.stackIndex=0),d=q.stackIndex+1);a.stackIndex=d});this.onSeries=d}}}(K);(function(a,F){function G(a){y[a+"pin"]=function(f,d,c,k,p){var n=p&&p.anchorX;p=p&&p.anchorY;"circle"===a&&k>c&&(f-=Math.round((k-c)/2),c=k);f=y[a](f,d,c,k);n&&p&&(f.push("M","circle"===a?f[1]-f[4]:f[1]+f[4]/2,d>p?d:d+k,"L",n,p),f=f.concat(y.circle(n-1,p-1,2,2)));return f}}var H=a.addEvent, +r=a.each,k=a.noop,f=a.seriesType,u=a.TrackerMixin,y=a.SVGRenderer.prototype.symbols;f("flags","column",{pointRange:0,allowOverlapX:!1,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}\x3cbr/\x3e"},threshold:null,y:-30},{sorted:!1,noSharedTooltip:!0,allowDG:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],forceCrop:!0,init:a.Series.prototype.init,translate:F.translate,getPlotBox:F.getPlotBox,drawPoints:function(){var f=this.points,k=this.chart,d=k.renderer, +c,u,p=k.inverted,n=this.options,b=n.y,l,h,E,B,t,y,w=this.yAxis,m={},D=[];for(h=f.length;h--;)E=f[h],y=(p?E.plotY:E.plotX)>this.xAxis.len,c=E.plotX,B=E.stackIndex,l=E.options.shape||n.shape,u=E.plotY,void 0!==u&&(u=E.plotY+b-(void 0!==B&&B*n.stackDistance)),E.anchorX=B?void 0:E.plotX,t=B?void 0:E.plotY,B=E.graphic,void 0!==u&&0<=c&&!y?(B||(B=E.graphic=d.label("",null,null,l,null,null,n.useHTML).attr({align:"flag"===l?"left":"center",width:n.width,height:n.height,"text-align":n.textAlign}).addClass("highcharts-point").add(this.markerGroup), +E.graphic.div&&(E.graphic.div.point=E),B.isNew=!0),0=l?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===c.showFull&&(0>=a&&1<=b?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var c=a.chart.pointer.normalize(b),d=a.options.vertical?"chartY":"chartX",f=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][d]||(c=a.cursorToScrollbarPosition(c)[d],d=a[d],d=c-d,a.hasDragged=!0,a.updatePosition(f[0]+d,f[1]+d),a.hasDragged&&v(a,"changed",{from:a.from,to:a.to, +trigger:"scrollbar",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&v(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;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var c=r(a.to-a.from)*a.options.step;a.updatePosition(r(a.from- +c),r(a.to-c));v(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.buttonToMaxClick=function(b){var c=(a.to-a.from)*a.options.step;a.updatePosition(a.from+c,a.to+c);v(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.trackClick=function(b){var c=a.chart.pointer.normalize(b),d=a.to-a.from,f=a.y+a.scrollbarTop,h=a.x+a.scrollbarLeft;a.options.vertical&&c.chartY>f||!a.options.vertical&&c.chartX>h?a.updatePosition(a.from+d,a.to+d):a.updatePosition(a.from-d,a.to-d); +v(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=r(b-a),a=0);this.from=a;this.to=b},update:function(a){this.destroy();this.init(this.chart.renderer,c(!0,this.options,a),this.chart)},addEvents:function(){var a= +this.options.inverted?[1,0]:[0,1],b=this.scrollbarButtons,c=this.scrollbarGroup.element,d=this.mouseDownHandler,f=this.mouseMoveHandler,k=this.mouseUpHandler,a=[[b[a[0]].element,"click",this.buttonToMinClick],[b[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[c,"mousedown",d],[c.ownerDocument,"mousemove",f],[c.ownerDocument,"mouseup",k]];q&&a.push([c,"touchstart",d],[c.ownerDocument,"touchmove",f],[c.ownerDocument,"touchend",k]);y(a,function(a){G.apply(null, +a)});this._events=a},removeEvents:function(){y(this._events,function(a){p.apply(null,a)});this._events.length=0},destroy:function(){var a=this.chart.scroller;this.removeEvents();y(["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))}};n(H.prototype,"init",function(a){var b=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 F(b.chart.renderer,b.options.scrollbar,b.chart),G(b.scrollbar,"changed",function(a){var c=Math.min(z(b.options.min,b.min),b.min,b.dataMin),d=Math.max(z(b.options.max,b.max),b.max,b.dataMax)-c,f;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(f=c+d*this.to,c+=d*this.from):(f=c+d*(1-this.from),c+=d*(1-this.to));b.setExtremes(c,f,!0,!1,a)}))});n(H.prototype,"render",function(a){var b=Math.min(z(this.options.min, +this.min),this.min,z(this.dataMin,this.min)),c=Math.max(z(this.options.max,this.max),this.max,z(this.dataMax,this.max)),d=this.scrollbar,h=this.titleOffset||0;a.apply(this,Array.prototype.slice.call(arguments,1));if(d){this.horiz?(d.position(this.left,this.top+this.height+2+this.chart.scrollbarsOffsets[1]+(this.opposite?0:h+this.axisTitleMargin+this.offset),this.width,this.height),h=1):(d.position(this.left+this.width+2+this.chart.scrollbarsOffsets[0]+(this.opposite?h+this.axisTitleMargin+this.offset: +0),this.top,this.width,this.height),h=0);if(!this.opposite&&!this.horiz||this.opposite&&this.horiz)this.chart.scrollbarsOffsets[h]+=this.scrollbar.size+this.scrollbar.options.margin;isNaN(b)||isNaN(c)||!f(this.min)||!f(this.max)?d.setRange(0,0):(h=(this.min-b)/(c-b),b=(this.max-b)/(c-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?d.setRange(h,b):d.setRange(1-b,1-h))}});n(H.prototype,"getOffset",function(a){var b=this.horiz?2:1,c=this.scrollbar;a.apply(this,Array.prototype.slice.call(arguments, +1));c&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[b]+=c.size+c.options.margin)});n(H.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy());a.apply(this,Array.prototype.slice.call(arguments,1))});a.Scrollbar=F})(K);(function(a){function F(a){this.init(a)}var G=a.addEvent,H=a.Axis,r=a.Chart,k=a.defaultOptions,f=a.defined,u=a.destroyObjectProperties,y=a.each,v=a.erase,q=a.error,d=a.extend,c=a.grep,z=a.hasTouch,p=a.isArray,n=a.isNumber,b=a.isObject,l= +a.merge,h=a.pick,E=a.removeEvent,B=a.Scrollbar,t=a.Series,I=a.seriesTypes,w=a.wrap,m=[].concat(a.defaultDataGroupingUnits),D=function(a){var b=c(arguments,n);if(b.length)return Math[a].apply(0,b)};m[4]=["day",[1,2,3,4]];m[5]=["week",[1,2,3]];d(k,{navigator:{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0},series:{type:void 0===I.areaspline?"line":"areaspline",compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2, +smoothed:!0,units:m},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,threshold:null},xAxis:{overscroll:0,className:"highcharts-navigator-xaxis",tickLength:0,tickPixelInterval:200,labels:{align:"left",x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}); +a.Renderer.prototype.symbols["navigator-handle"]=function(a,b,c,d,f){a=f.width/2;b=Math.round(a/3)+.5;f=f.height;return["M",-a-1,.5,"L",a,.5,"L",a,f+.5,"L",-a-1,f+.5,"L",-a-1,.5,"M",-b,4,"L",-b,f-3,"M",b-1,4,"L",b-1,f-3]};F.prototype={drawHandle:function(a,b,c,d){var e=this.navigatorOptions.handles.height;this.handles[b][d](c?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(a,10)+.5-e)}:{translateX:Math.round(this.left+parseInt(a,10)),translateY:Math.round(this.top+ +this.height/2-e/2-1)})},drawOutline:function(a,b,c,d){var e=this.navigatorOptions.maskInside,f=this.outline.strokeWidth(),g=f/2,f=f%2/2,h=this.outlineHeight,k=this.scrollbarHeight,m=this.size,l=this.left-k,n=this.top;c?(l-=g,c=n+b+f,b=n+a+f,a=["M",l+h,n-k-f,"L",l+h,c,"L",l,c,"L",l,b,"L",l+h,b,"L",l+h,n+m+k].concat(e?["M",l+h,c-g,"L",l+h,b+g]:[])):(a+=l+k-f,b+=l+k-f,n+=g,a=["M",l,n,"L",a,n,"L",a,n+h,"L",b,n+h,"L",b,n,"L",l+m+2*k,n].concat(e?["M",a-g,n,"L",b+g,n]:[]));this.outline[d]({d:a})},drawMasks:function(a, +b,c,d){var e=this.left,f=this.top,g=this.height,h,k,l,m;c?(l=[e,e,e],m=[f,f+a,f+b],k=[g,g,g],h=[a,b-a,this.size-b]):(l=[e,e+a,e+b],m=[f,f,f],k=[a,b-a,this.size-b],h=[g,g,g]);y(this.shades,function(a,b){a[d]({x:l[b],y:m[b],width:k[b],height:h[b]})})},renderElements:function(){var a=this,b=a.navigatorOptions,c=b.maskInside,d=a.chart,f=d.renderer,h;a.navigatorGroup=h=f.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();y([!c,c,!c],function(b,c){a.shades[c]=f.rect().addClass("highcharts-navigator-mask"+ +(1===c?"-inside":"-outside")).add(h)});a.outline=f.path().addClass("highcharts-navigator-outline").add(h);b.handles.enabled&&y([0,1],function(c){b.handles.inverted=d.inverted;a.handles[c]=f.symbol(b.handles.symbols[c],-b.handles.width/2-1,0,b.handles.width,b.handles.height,b.handles);a.handles[c].attr({zIndex:7-c}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][c]).add(h)})},update:function(a){y(this.series||[],function(a){a.baseSeries&&delete a.baseSeries.navigatorSeries}); +this.destroy();l(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(b,c,d,g){var e=this.chart,k,l,m=this.scrollbarHeight,p,x=this.xAxis;k=x.fake?e.xAxis[0]:x;var t=this.navigatorEnabled,q,w=this.rendered;l=e.inverted;var r,u=e.xAxis[0].minRange,v=e.xAxis[0].options.maxRange;if(!this.hasDragged||f(d)){if(!n(b)||!n(c))if(w)d=0,g=h(x.width,k.width);else return;this.left=h(x.left,e.plotLeft+m+(l?e.plotWidth:0));this.size=q=p=h(x.len,(l?e.plotHeight:e.plotWidth)-2*m); +e=l?m:p+2*m;d=h(d,x.toPixels(b,!0));g=h(g,x.toPixels(c,!0));n(d)&&Infinity!==Math.abs(d)||(d=0,g=e);b=x.toValue(d,!0);c=x.toValue(g,!0);r=Math.abs(a.correctFloat(c-b));rv&&(this.grabbedLeft?d=x.toPixels(c-v,!0):this.grabbedRight&&(g=x.toPixels(b+v,!0)));this.zoomedMax=Math.min(Math.max(d,g,0),q);this.zoomedMin=Math.min(Math.max(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,g),0),q);this.range=this.zoomedMax- +this.zoomedMin;q=Math.round(this.zoomedMax);d=Math.round(this.zoomedMin);t&&(this.navigatorGroup.attr({visibility:"visible"}),w=w&&!this.hasDragged?"animate":"attr",this.drawMasks(d,q,l,w),this.drawOutline(d,q,l,w),this.navigatorOptions.handles.enabled&&(this.drawHandle(d,0,l,w),this.drawHandle(q,1,l,w)));this.scrollbar&&(l?(l=this.top-m,k=this.left-m+(t||!k.opposite?0:(k.titleOffset||0)+k.axisTitleMargin),m=p+2*m):(l=this.top+(t?this.height:-m),k=this.left-m),this.scrollbar.position(k,l,e,m),this.scrollbar.setRange(this.zoomedMin/ +p,this.zoomedMax/p));this.rendered=!0}},addMouseEvents:function(){var a=this,b=a.chart,c=b.container,d=[],f,h;a.mouseMoveHandler=f=function(b){a.onMouseMove(b)};a.mouseUpHandler=h=function(b){a.onMouseUp(b)};d=a.getPartsEvents("mousedown");d.push(G(c,"mousemove",f),G(c.ownerDocument,"mouseup",h));z&&(d.push(G(c,"touchmove",f),G(c.ownerDocument,"touchend",h)),d.concat(a.getPartsEvents("touchstart")));a.eventsToUnbind=d;a.series&&a.series[0]&&d.push(G(a.series[0].xAxis,"foundExtremes",function(){b.navigator.modifyNavigatorAxisExtremes()}))}, +getPartsEvents:function(a){var b=this,c=[];y(["shades","handles"],function(e){y(b[e],function(d,f){c.push(G(d.element,a,function(a){b[e+"Mousedown"](a,f)}))})});return c},shadesMousedown:function(a,b){a=this.chart.pointer.normalize(a);var c=this.chart,e=this.xAxis,d=this.zoomedMin,h=this.left,k=this.size,l=this.range,m=a.chartX,n,p;c.inverted&&(m=a.chartY,h=this.top);1===b?(this.grabbedCenter=m,this.fixedWidth=l,this.dragOffset=m-d):(a=m-h-l/2,0===b?a=Math.max(0,a):2===b&&a+l>=k&&(a=k-l,e.reversed? +(a-=l,p=this.getUnionExtremes().dataMin):n=this.getUnionExtremes().dataMax),a!==d&&(this.fixedWidth=l,b=e.toFixedRange(a,a+l,p,n),f(b.min)&&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],e=a.inverted&&!c.reversed||!a.inverted&&c.reversed;0===b?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=e?c.min:c.max):(this.grabbedRight=!0, +this.otherHandlePos=this.zoomedMin,this.fixedExtreme=e?c.max:c.min);a.fixedRange=null},onMouseMove:function(a){var b=this,c=b.chart,e=b.left,d=b.navigatorSize,f=b.range,h=b.dragOffset,k=c.inverted;a.touches&&0===a.touches[0].pageX||(a=c.pointer.normalize(a),c=a.chartX,k&&(e=b.top,c=a.chartY),b.grabbedLeft?(b.hasDragged=!0,b.render(0,0,c-e,b.otherHandlePos)):b.grabbedRight?(b.hasDragged=!0,b.render(0,0,b.otherHandlePos,c-e)):b.grabbedCenter&&(b.hasDragged=!0,cd+h-f&&(c=d+h-f),b.render(0,0, +c-h,c-h+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,e=c&&c.reversed,d=this.scrollbar,h,k,l=a.DOMEvent||a;(!this.hasDragged||d&&d.hasDragged)&&"scrollbar"!==a.trigger||(d=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?h=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(k=this.fixedExtreme),this.zoomedMax===this.size&&(k=e?d.dataMin:d.dataMax),0=== +this.zoomedMin&&(h=e?d.dataMax:d.dataMin),c=c.toFixedRange(this.zoomedMin,this.zoomedMax,h,k),f(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&&(y(this.eventsToUnbind, +function(a){a()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()},removeBaseSeriesEvents:function(){var a=this.baseSeries||[];this.navigatorEnabled&&a[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&y(a,function(a){E(a,"updatedData",this.updatedDataHandler)},this),a[0].xAxis&&E(a[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))},init:function(a){var b=a.options,c=b.navigator,e=c.enabled,d=b.scrollbar,f=d.enabled,b=e?c.height:0,k=f?d.height:0;this.handles=[];this.shades=[];this.chart= +a;this.setBaseSeries();this.height=b;this.scrollbarHeight=k;this.scrollbarEnabled=f;this.navigatorEnabled=e;this.navigatorOptions=c;this.scrollbarOptions=d;this.outlineHeight=b+k;this.opposite=h(c.opposite,!e&&a.inverted);var m=this,d=m.baseSeries,f=a.xAxis.length,n=a.yAxis.length,p=d&&d[0]&&d[0].xAxis||a.xAxis[0]||{options:{}};a.extraMargin={type:m.opposite?"plotTop":"marginBottom",value:(e||!a.inverted?m.outlineHeight:0)+c.margin};a.inverted&&(a.extraMargin.type=m.opposite?"marginRight":"plotLeft"); +a.isDirtyBox=!0;m.navigatorEnabled?(m.xAxis=new H(a,l({breaks:p.options.breaks,ordinal:p.options.ordinal},c.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",isX:!0,type:"datetime",index:f,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},a.inverted?{offsets:[k,0,-k,0],width:b}:{offsets:[0,-k,0,k],height:b})),m.yAxis=new H(a,l(c.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:n,zoomEnabled:!1},a.inverted?{width:b}:{height:b})),d||c.series.data? +m.updateNavigatorSeries(!1):0===a.series.length&&(m.unbindRedraw=G(a,"beforeRedraw",function(){0a.inArray(c,h)?(c&&(E(c,"updatedData",e.updatedDataHandler),delete c.navigatorSeries),b.destroy(),!1):!0});h&&h.length&&y(h,function(a){var b= +a.navigatorSeries,g=d({color:a.color},p(t)?k.navigator.series:t);b&&!1===e.navigatorOptions.adaptToUpdatedData||(w.name="Navigator "+h.length,m=a.options||{},q=m.navigatorOptions||{},n=l(m,w,g,q),g=q.data||g.data,e.hasNavigatorData=e.hasNavigatorData||!!g,n.data=g||m.data&&m.data.slice(0),b&&b.options?b.update(n,c):(a.navigatorSeries=f.initSeries(n),a.navigatorSeries.baseSeries=a,x.push(a.navigatorSeries)))});if(t.data&&(!h||!h.length)||p(t))e.hasNavigatorData=!1,t=a.splat(t),y(t,function(a,b){w.name= +"Navigator "+(x.length+1);n=l(k.navigator.series,{color:f.series[b]&&!f.series[b].options.isInternal&&f.series[b].color||f.options.colors[b]||f.options.colors[0]},w,a);n.data=a.data;n.data&&(e.hasNavigatorData=!0,x.push(f.initSeries(n)))});b&&this.addBaseSeriesEvents()},addBaseSeriesEvents:function(){var a=this,b=a.baseSeries||[];b[0]&&b[0].xAxis&&G(b[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes);y(b,function(b){G(b,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0, +!1)});G(b,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)});!1!==this.navigatorOptions.adaptToUpdatedData&&b.xAxis&&G(b,"updatedData",this.updatedDataHandler);G(b,"remove",function(){this.navigatorSeries&&(v(a.series,this.navigatorSeries),f(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)})},this)},modifyNavigatorAxisExtremes:function(){var a=this.xAxis,b;a.getExtremes&&(!(b=this.getUnionExtremes(!0))||b.dataMin===a.min&&b.dataMax=== +a.max||(a.min=b.dataMin,a.max=b.dataMax))},modifyBaseAxisExtremes:function(){var a=this.chart.navigator,b=this.getExtremes(),c=b.dataMin,d=b.dataMax,b=b.max-b.min,f=a.stickToMin,k=a.stickToMax,m=h(this.options.overscroll,0),l,p,t=a.series&&a.series[0],q=!!this.setExtremes;this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger||(f&&(p=c,l=p+b),k&&(l=d+m,f||(p=Math.max(l-b,t&&t.xData?t.xData[0]:-Number.MAX_VALUE))),q&&(f||k)&&n(p)&&(this.min=this.userMin=p,this.max=this.userMax=l));a.stickToMin= +a.stickToMax=null},updatedDataHandler:function(){var a=this.chart.navigator,b=this.navigatorSeries;a.stickToMax=a.xAxis.reversed?0===Math.round(a.zoomedMin):Math.round(a.zoomedMax)>=Math.round(a.size);a.stickToMin=n(this.xAxis.min)&&this.xAxis.min<=this.xData[0]&&(!this.chart.fixedRange||!a.stickToMax);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},addChartEvents:function(){G(this.chart,"redraw",function(){var a=this.navigator,b=a&&(a.baseSeries&& +a.baseSeries[0]&&a.baseSeries[0].xAxis||a.scrollbar&&this.xAxis[0]);b&&a.render(b.min,b.max)})},destroy:function(){this.removeEvents();this.xAxis&&(v(this.chart.xAxis,this.xAxis),v(this.chart.axes,this.xAxis));this.yAxis&&(v(this.chart.yAxis,this.yAxis),v(this.chart.axes,this.yAxis));y(this.series||[],function(a){a.destroy&&a.destroy()});y("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);y([this.handles],function(a){u(a)},this)}};a.Navigator=F;w(H.prototype,"zoom",function(a,b,c){var e=this.chart,d=e.options,h=d.chart.zoomType,k=d.chart.pinchType,m=d.navigator,d=d.rangeSelector,l;this.isXAxis&&(m&&m.enabled||d&&d.enabled)&&("x"===h||"x"===k?e.resetZoomButton="blocked":"y"===h?l=!1:"xy"!==h&&"xy"!==k||!this.options.range||(e=this.previousZoom,f(b)?this.previousZoom=[this.min,this.max]:e&&(b=e[0],c=e[1],delete this.previousZoom)));return void 0!== +l?l:a.call(this,b,c)});G(r,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new F(this)});G(r,"afterSetChartSize",function(){var a=this.legend,b=this.navigator,c,d,f,k;b&&(d=a&&a.options,f=b.xAxis,k=b.yAxis,c=b.scrollbarHeight,this.inverted?(b.left=b.opposite?this.chartWidth-c-b.height:this.spacing[3]+c,b.top=this.plotTop+c):(b.left=this.plotLeft+c,b.top=b.navigatorOptions.top||this.chartHeight-b.height-c-this.spacing[2]-(this.rangeSelector&& +this.extraBottomMargin?this.rangeSelector.getHeight():0)-(d&&"bottom"===d.verticalAlign&&d.enabled&&!d.floating?a.legendHeight+h(d.margin,10):0)),f&&k&&(this.inverted?f.options.left=k.options.left=b.left:f.options.top=k.options.top=b.top,f.setAxisSize(),k.setAxisSize()))});w(t.prototype,"addPoint",function(a,c,d,f,h){var e=this.options.turboThreshold;e&&this.xData.length>e&&b(c,!0)&&this.chart.navigator&&q(20,!0);a.call(this,c,d,f,h)});G(r,"afterAddSeries",function(){this.navigator&&this.navigator.setBaseSeries(null, +!1)});G(t,"afterUpdate",function(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)});r.prototype.callbacks.push(function(a){var b=a.navigator;b&&a.xAxis[0]&&(a=a.xAxis[0].getExtremes(),b.render(a.min,a.max))})})(K);(function(a){function F(a){this.init(a)}var G=a.addEvent,H=a.Axis,r=a.Chart,k=a.css,f=a.createElement,u=a.defaultOptions,y=a.defined,v=a.destroyObjectProperties,q=a.discardElement,d=a.each,c=a.extend,z=a.fireEvent,p=a.isNumber,n=a.merge,b=a.pick, +l=a.pInt,h=a.splat,E=a.wrap;c(u,{rangeSelector:{verticalAlign:"top",buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputPosition:{align:"right",x:0,y:0},buttonPosition:{align:"left",x:0,y:0}}});u.lang=n(u.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});F.prototype={clickButton:function(a,c){var f=this,k=f.chart,m=f.buttonOptions[a],l=k.xAxis[0],e=k.scroller&&k.scroller.getUnionExtremes()||l||{},n=e.dataMin,t=e.dataMax, +g,q=l&&Math.round(Math.min(l.max,b(t,l.max))),r=m.type,u,e=m._range,v,B,y,z=m.dataGrouping;if(null!==n&&null!==t){k.fixedRange=e;z&&(this.forcedDataGrouping=!0,H.prototype.setDataGrouping.call(l||{chart:this.chart},z,!1));if("month"===r||"year"===r)l?(r={range:m,max:q,chart:k,dataMin:n,dataMax:t},g=l.minFromRange.call(r),p(r.newMax)&&(q=r.newMax)):e=m;else if(e)g=Math.max(q-e,n),q=Math.min(g+e,t);else if("ytd"===r)if(l)void 0===t&&(n=Number.MAX_VALUE,t=Number.MIN_VALUE,d(k.series,function(a){a=a.xData; +n=Math.min(a[0],n);t=Math.max(a[a.length-1],t)}),c=!1),q=f.getYTDExtremes(t,n,k.time.useUTC),g=v=q.min,q=q.max;else{G(k,"beforeRender",function(){f.clickButton(a)});return}else"all"===r&&l&&(g=n,q=t);g+=m._offsetMin;q+=m._offsetMax;f.setSelected(a);l?l.setExtremes(g,q,b(c,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:m}):(u=h(k.options.xAxis)[0],y=u.range,u.range=e,B=u.min,u.min=v,G(k,"load",function(){u.range=y;u.min=B}))}},setSelected:function(a){this.selected=this.options.selected= +a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,f=c.buttons||[].concat(b.defaultButtons),h=c.selected,k=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&z(a,"blur");c&&c.blur&&z(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=f;this.unMouseDown=G(a.container, +"mousedown",k);this.unResize=G(a,"resize",k);d(f,b.computeButtonRange);void 0!==h&&f[h]&&this.clickButton(h,!1);G(a,"load",function(){a.xAxis&&a.xAxis[0]&&G(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,b=a.xAxis[0],c=Math.round(b.max-b.min),f=!b.hasVisibleSeries,h=a.scroller&&a.scroller.getUnionExtremes()||b,k= +h.dataMin,e=h.dataMax,a=this.getYTDExtremes(e,k,a.time.useUTC),l=a.min,n=a.max,g=this.selected,q=p(g),r=this.options.allButtonsEnabled,u=this.buttons;d(this.buttonOptions,function(a,d){var h=a._range,m=a.type,p=a.count||1,t=u[d],w=0;a=a._offsetMax-a._offsetMin;d=d===g;var x=h>e-k,v=h=864E5*{month:28,year:365}[m]*p-a&&c-36E5<=864E5*{month:31,year:366}[m]*p+a?h=!0:"ytd"===m?(h=n-l+a===c,A=!d):"all"===m&&(h=b.max-b.min>=e-k,B=!d&&q&&h); +m=!r&&(x||v||B||f);p=d&&h||h&&!q&&!A;m?w=3:p&&(q=!0,w=2);t.state!==w&&t.setState(w)})},computeButtonRange:function(a){var c=a.type,d=a.count||1,f={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(f[c])a._range=f[c]*d;else if("month"===c||"year"===c)a._range=864E5*{month:30,year:365}[c]*d;a._offsetMin=b(a.offsetMin,0);a._offsetMax=b(a.offsetMax,0);a._range+=a._offsetMax-a._offsetMin},setInputValue:function(a,b){var c=this.chart.options.rangeSelector,d=this.chart.time,f=this[a+ +"Input"];y(b)&&(f.previousValue=f.HCTime,f.HCTime=b);f.value=d.dateFormat(c.inputEditDateFormat||"%Y-%m-%d",f.HCTime);this[a+"DateBox"].attr({text:d.dateFormat(c.inputDateFormat||"%b %e, %Y",f.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"];k(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){k(this[a+"Input"],{border:0,width:"1px",height:"1px"});this.setInputValue(a)}, +drawInput:function(a){function b(){var a=q.value,b=(k.inputDateParser||Date.parse)(a),e=d.xAxis[0],f=d.scroller&&d.scroller.xAxis?d.scroller.xAxis:e,g=f.dataMin,f=f.dataMax;b!==q.previousValue&&(q.previousValue=b,p(b)||(b=a.split("-"),b=Date.UTC(l(b[0]),l(b[1])-1,l(b[2]))),p(b)&&(d.time.useUTC||(b+=6E4*(new Date).getTimezoneOffset()),n?b>c.maxInput.HCTime?b=void 0:bf&&(b=f),void 0!==b&&e.setExtremes(n?b:e.min,n?e.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))} +var c=this,d=c.chart,h=d.renderer,k=d.options.rangeSelector,e=c.div,n="min"===a,q,g,r=this.inputGroup;this[a+"Label"]=g=h.label(u.lang[n?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(r);r.offset+=g.width+5;this[a+"DateBox"]=h=h.label("",r.offset).addClass("highcharts-range-input").attr({padding:2,width:k.inputBoxWidth||90,height:k.inputBoxHeight||17,stroke:k.inputBoxBorderColor||"#cccccc","stroke-width":1,"text-align":"center"}).on("click", +function(){c.showInput(a);c[a+"Input"].focus()}).add(r);r.offset+=h.width+(n?10:0);this[a+"Input"]=q=f("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:d.plotTop+"px"},e);q.onfocus=function(){c.showInput(a)};q.onblur=function(){c.hideInput(a)};q.onchange=b;q.onkeypress=function(a){13===a.keyCode&&b()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a="top"===b.verticalAlign?a.plotTop-a.axisOffset[0]:0;return{buttonTop:a+b.buttonPosition.y,inputTop:a+b.inputPosition.y- +10}},getYTDExtremes:function(a,b,c){var d=this.chart.time,f=new d.Date(a),h=d.get("FullYear",f);c=c?d.Date.UTC(h,0,1):+new d.Date(h,0,1);b=Math.max(b||0,c);f=f.getTime();return{max:Math.min(a||f,f),min:b}},render:function(a,c){var h=this,k=h.chart,l=k.renderer,n=k.container,e=k.options,p=e.exporting&&!1!==e.exporting.enabled&&e.navigation&&e.navigation.buttonOptions,q=u.lang,g=h.div,t=e.rangeSelector,e=t.floating,r=h.buttons,g=h.inputGroup,v=t.buttonTheme,y=t.buttonPosition,z=t.inputPosition,B=t.inputEnabled, +E=v&&v.states,F=k.plotLeft,G,H=h.buttonGroup,K;K=h.rendered;var Y=h.options.verticalAlign,Z=k.legend,aa=Z&&Z.options,ba=y.y,Q=z.y,ca=K||!1,W=0,S=0,T;if(!1!==t.enabled){K||(h.group=K=l.g("range-selector-group").attr({zIndex:7}).add(),h.buttonGroup=H=l.g("range-selector-buttons").add(K),h.zoomText=l.text(q.rangeSelectorZoom,b(F+y.x,F),15).css(t.labelStyle).add(H),G=b(F+y.x,F)+h.zoomText.getBBox().width+5,d(h.buttonOptions,function(a,c){r[c]=l.button(a.text,G,0,function(){var b=a.events&&a.events.click, +e;b&&(e=b.call(a));!1!==e&&h.clickButton(c);h.isActive=!0},v,E&&E.hover,E&&E.select,E&&E.disabled).attr({"text-align":"center"}).add(H);G+=r[c].width+b(t.buttonSpacing,5)}),!1!==B&&(h.div=g=f("div",null,{position:"relative",height:0,zIndex:1}),n.parentNode.insertBefore(g,n),h.inputGroup=g=l.g("input-group").add(K),g.offset=0,h.drawInput("min"),h.drawInput("max")));F=k.plotLeft-k.spacing[3];h.updateButtonStates();p&&this.titleCollision(k)&&"top"===Y&&"right"===y.align&&y.y+H.getBBox().height-12<(p.y|| +0)+p.height&&(W=-40);"left"===y.align?T=y.x-k.spacing[3]:"right"===y.align&&(T=y.x+W-k.spacing[1]);H.align({y:y.y,width:H.getBBox().width,align:y.align,x:T},!0,k.spacingBox);h.group.placed=ca;h.buttonGroup.placed=ca;!1!==B&&(W=p&&this.titleCollision(k)&&"top"===Y&&"right"===z.align&&z.y-g.getBBox().height-12<(p.y||0)+p.height+k.spacing[0]?-40:0,"left"===z.align?T=F:"right"===z.align&&(T=-Math.max(k.axisOffset[1],-W)),g.align({y:z.y,width:g.getBBox().width,align:z.align,x:z.x+T-2},!0,k.spacingBox), +n=g.alignAttr.translateX+g.alignOptions.x-W+g.getBBox().x+2,p=g.alignOptions.width,q=H.alignAttr.translateX+H.getBBox().x,T=H.getBBox().width+20,(z.align===y.align||q+T>n&&n+p>q&&ba=-W?0:-W),translateY:g.alignAttr.translateY+H.getBBox().height+10}),h.setInputValue("min",a),h.setInputValue("max",c),h.inputGroup.placed=ca);h.group.align({verticalAlign:Y},!0,k.spacingBox);a=h.group.getBBox().height+20;c=h.group.alignAttr.translateY; +"bottom"===Y&&(Z=aa&&"bottom"===aa.verticalAlign&&aa.enabled&&!aa.floating?Z.legendHeight+b(aa.margin,10):0,a=a+Z-20,S=c-a-(e?0:t.y)-10);if("top"===Y)e&&(S=0),k.titleOffset&&(S=k.titleOffset+k.options.title.margin),S+=k.margin[0]-k.spacing[0]||0;else if("middle"===Y)if(Q===ba)S=0>Q?c+void 0:c;else if(Q||ba)S=0>Q||0>ba?S-Math.min(Q,ba):c-a+NaN;h.group.translate(t.x,t.y+Math.floor(S));!1!==B&&(h.minInput.style.marginTop=h.group.translateY+"px",h.maxInput.style.marginTop=h.group.translateY+"px");h.rendered= +!0}},getHeight:function(){var a=this.options,b=this.group,c=a.y,d=a.buttonPosition.y,a=a.inputPosition.y,b=b?b.getBBox(!0).height+13+c:0,c=Math.min(a,d);if(0>a&&0>d||0d&&(f?a=c-h:c=a+h);p(a)&&p(c)||(a=c=void 0);return{min:a,max:c}};H.prototype.minFromRange=function(){var a= +this.range,c={month:"Month",year:"FullYear"}[a.type],d,f=this.max,h,k,e=function(a,b){var e=new Date(a),d=e["get"+c]();e["set"+c](d+b);d===e["get"+c]()&&e.setDate(0);return e.getTime()-a};p(a)?(d=f-a,k=a):(d=f+e(f,-a.count),this.chart&&(this.chart.fixedRange=f-d));h=b(this.dataMin,Number.MIN_VALUE);p(d)||(d=h);d<=h&&(d=h,void 0===k&&(k=e(d,a.count)),this.newMax=Math.min(d+k,this.dataMax));p(f)||(d=void 0);return d};G(r,"afterGetContainer",function(){this.options.rangeSelector.enabled&&(this.rangeSelector= +new F(this))});E(r.prototype,"render",function(a,b,c){var f=this.axes,h=this.rangeSelector;h&&(d(f,function(a){a.updateNames();a.setScale()}),this.getAxisMargins(),h.render(),f=h.options.verticalAlign,h.options.floating||("bottom"===f?this.extraBottomMargin=!0:"middle"!==f&&(this.extraTopMargin=!0)));a.call(this,b,c)});G(r,"update",function(a){var b=a.options;a=this.rangeSelector;this.extraTopMargin=this.extraBottomMargin=!1;this.isDirtyBox=!0;a&&(a.render(),b=b.rangeSelector&&b.rangeSelector.verticalAlign|| +a.options&&a.options.verticalAlign,a.options.floating||("bottom"===b?this.extraBottomMargin=!0:"middle"!==b&&(this.extraTopMargin=!0)))});E(r.prototype,"redraw",function(a,b,c){var d=this.rangeSelector;d&&!d.options.floating&&(d.render(),d=d.options.verticalAlign,"bottom"===d?this.extraBottomMargin=!0:"middle"!==d&&(this.extraTopMargin=!0));a.call(this,b,c)});r.prototype.adjustPlotArea=function(){var a=this.rangeSelector;this.rangeSelector&&(a=a.getHeight(),this.extraTopMargin&&(this.plotTop+=a), +this.extraBottomMargin&&(this.marginBottom+=a))};r.prototype.callbacks.push(function(a){function b(){c=a.xAxis[0].getExtremes();p(c.min)&&d.render(c.min,c.max)}var c,d=a.rangeSelector,f,h;d&&(h=G(a.xAxis[0],"afterSetExtremes",function(a){d.render(a.min,a.max)}),f=G(a,"redraw",b),b());G(a,"destroy",function(){d&&(f(),h())})});a.RangeSelector=F})(K);(function(a){var F=a.addEvent,G=a.arrayMax,H=a.arrayMin,r=a.Axis,k=a.Chart,f=a.defined,u=a.each,y=a.format,v=a.grep,q=a.inArray,d=a.isNumber,c=a.isString, +z=a.map,p=a.merge,n=a.pick,b=a.Point,l=a.Series,h=a.splat,E=a.SVGRenderer,B=a.wrap,t=l.prototype,I=t.init,w=t.processData,m=b.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(b,e,d){var f=c(b)||b.nodeName,g=arguments[f?1:0],l=g.series,m=a.getOptions(),q,r=n(g.navigator&&g.navigator.enabled,m.navigator.enabled,!0),t=r?{startOnTick:!1,endOnTick:!1}:null,u={marker:{enabled:!1,radius:2}},v={shadow:!1,borderWidth:0};g.xAxis=z(h(g.xAxis||{}),function(a,b){return p({minPadding:0,maxPadding:0, +overscroll:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0},m.xAxis,m.xAxis&&m.xAxis[b],a,{type:"datetime",categories:null},t)});g.yAxis=z(h(g.yAxis||{}),function(a,b){q=n(a.opposite,!0);return p({labels:{y:-2},opposite:q,showLastLabel:!(!a.categories&&"category"!==a.type),title:{text:null}},m.yAxis,m.yAxis&&m.yAxis[b],a)});g.series=null;g=p({chart:{panning:!0,pinchType:"x"},navigator:{enabled:r},scrollbar:{enabled:n(m.scrollbar.enabled,!0)},rangeSelector:{enabled:n(m.rangeSelector.enabled, +!0)},title:{text:null},tooltip:{split:n(m.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1},plotOptions:{line:u,spline:u,area:u,areaspline:u,arearange:u,areasplinerange:u,column:v,columnrange:v,candlestick:v,ohlc:v}},g,{isStock:!0});g.series=l;return f?new k(b,g,d):new k(g,e)};B(r.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&&(d.x=0),void 0===d.align&&(d.align="right"),b[c]=this,"right"):a.apply(this,[].slice.call(arguments,1))});F(r,"destroy",function(){var a=this.chart,b=this.options&&this.options.top+","+this.options.height;b&&a._labelPanes&&a._labelPanes[b]===this&&delete a._labelPanes[b]});B(r.prototype,"getPlotLinePath",function(b,e,h,k,g,l){var m=this,p=this.isLinked&&!this.series?this.linkedParent.series:this.series,r=m.chart,t=r.renderer,v=m.left,w=m.top,x,y,D,B,C=[],E=[],F,G;if("xAxis"!==m.coll&&"yAxis"!== +m.coll)return b.apply(this,[].slice.call(arguments,1));E=function(a){var b="xAxis"===a?"yAxis":"xAxis";a=m.options[b];return d(a)?[r[b][a]]:c(a)?[r.get(a)]:z(p,function(a){return a[b]})}(m.coll);u(m.isXAxis?r.yAxis:r.xAxis,function(a){if(f(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=f(a.options[b])?r[b][a.options[b]]:r[b][0];m===b&&E.push(a)}});F=E.length?[]:[m.isXAxis?r.yAxis[0]:r.xAxis[0]];u(E,function(b){-1!==q(b,F)||a.find(F,function(a){return a.pos=== +b.pos&&a.len&&b.len})||F.push(b)});G=n(l,m.translate(e,null,null,k));d(G)&&(m.horiz?u(F,function(a){var b;y=a.pos;B=y+a.len;x=D=Math.round(G+m.transB);if(xv+m.width)g?x=D=Math.min(Math.max(v,x),v+m.width):b=!0;b||C.push("M",x,y,"L",D,B)}):u(F,function(a){var b;x=a.pos;D=x+a.len;y=B=Math.round(w+m.height-G);if(yw+m.height)g?y=B=Math.min(Math.max(w,y),m.top+m.height):b=!0;b||C.push("M",x,y,"L",D,B)}));return 0this.max?"hidden":"visible"});g=l.getBBox();if(h){if(q&&!b||!q&&b)k=l.y-g.height}else k=l.y-g.height/2;h?(b=c-g.x,c=c+this.width-g.x):(b="left"===this.labelAlign?c:0,c="right"=== +this.labelAlign?c+this.width:d.chartWidth);l.translateX=c&&(t=-(l.translateX+g.width-c));l.attr({x:a+t,y:k,anchorX:h?a:this.opposite?0:d.chartWidth,anchorY:h?this.opposite?d.chartHeight:0:k+g.height/2})}});t.init=function(){I.apply(this,arguments);this.setCompare(this.options.compare)};t.setCompare=function(a){this.modifyValue="value"===a||"percent"===a?function(b,c){var e=this.compareValue;if(void 0!==b&&void 0!==e)return b="value"===a?b-e:b/e*100-(100=== +this.options.compareBase?0:100),c&&(c.change=b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};t.processData=function(){var a,b=-1,c,f,g=!0===this.options.compareStart?0:1,h,k;w.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,f=this.processedYData,h=f.length,this.pointArrayMap&&(b=q("close",this.pointArrayMap),-1===b&&(b=q(this.pointValKey||"y",this.pointArrayMap))),a=0;a=this.xAxis.min&& +0!==k){this.compareValue=k;break}};B(t,"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=H(b),this.dataMax=G(b))});r.prototype.setCompare=function(a,b){this.isXAxis||(u(this.series,function(b){b.setCompare(a)}),n(b,!0)&&this.chart.redraw())};b.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0c?this:a,a=(c.max-c.min)*c.transA,c.pixelPadding=c.len-a,c.minPixelPadding= +c.pixelPadding/2,a=c.fixTo)){a=a[1]-c.toValue(a[0],!0);a*=c.transA;if(Math.abs(a)>c.minPixelPadding||c.min===c.dataMin&&c.max===c.dataMax)a=0;c.minPixelPadding-=a}});h(f,"render",function(){this.fixTo=null})})(w);(function(a){var h=a.addEvent,f=a.Axis,l=a.Chart,c=a.color,p,n=a.each,u=a.extend,t=a.isNumber,g=a.Legend,b=a.LegendSymbolMixin,d=a.noop,k=a.merge,q=a.pick;a.ColorAxis||(p=a.ColorAxis=function(){this.init.apply(this,arguments)},u(p.prototype,f.prototype),u(p.prototype,{defaultColorAxisOptions:{lineWidth:0, +minPadding:0,maxPadding:0,gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01},labels:{overflow:"justify",rotation:0},minColor:"#e6ebf5",maxColor:"#003399",tickLength:5,showInLegend:!0},keepProps:["legendGroup","legendItemHeight","legendItemWidth","legendItem","legendSymbol"].concat(f.prototype.keepProps),init:function(a,b){var e="vertical"!==a.options.legend.layout,r;this.coll="colorAxis";r=k(this.defaultColorAxisOptions,{side:e?2:1, +reversed:!e},b,{opposite:!e,showEmpty:!1,title:null,visible:a.options.legend.enabled});f.prototype.init.call(this,a,r);b.dataClasses&&this.initDataClasses(b);this.initStops();this.horiz=e;this.zoomEnabled=!1;this.defaultLegendLength=200},initDataClasses:function(a){var b,e=0,r=this.chart.options.chart.colorCount,v=this.options,d=a.dataClasses.length;this.dataClasses=b=[];this.legendItems=[];n(a.dataClasses,function(a,m){a=k(a);b.push(a);"category"===v.dataClassColor?(a.colorIndex=e,e++,e===r&&(e= +0)):a.color=c(v.minColor).tweenTo(c(v.maxColor),2>d?.5:m/(d-1))})},setTickPositions:function(){if(!this.dataClasses)return f.prototype.setTickPositions.call(this)},initStops:function(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];n(this.stops,function(a){a.color=c(a[1])})},setOptions:function(a){f.prototype.setOptions.call(this,a);this.options.crosshair=this.options.marker},setAxisSize:function(){var a=this.legendSymbol,b=this.chart,e=b.options.legend||{},x, +v;a?(this.left=e=a.attr("x"),this.top=x=a.attr("y"),this.width=v=a.attr("width"),this.height=a=a.attr("height"),this.right=b.chartWidth-e-v,this.bottom=b.chartHeight-x-a,this.len=this.horiz?v:a,this.pos=this.horiz?e:x):this.len=(this.horiz?e.symbolWidth:e.symbolHeight)||this.defaultLegendLength},normalizedValue:function(a){this.isLog&&(a=this.val2lin(a));return 1-(this.max-a)/(this.max-this.min||1)},toColor:function(a,b){var e=this.stops,m,r,d=this.dataClasses,k,c;if(d)for(c=d.length;c--;){if(k=d[c], +m=k.from,e=k.to,(void 0===m||a>=m)&&(void 0===e||a<=e)){b&&(b.dataClass=c,b.colorIndex=k.colorIndex);break}}else{a=this.normalizedValue(a);for(c=e.length;c--&&!(a>e[c][0]););m=e[c]||e[c+1];e=e[c+1]||m;a=1-(e[0]-a)/(e[0]-m[0]||1);r=m.color.tweenTo(e.color,a)}return r},getOffset:function(){var a=this.legendGroup,b=this.chart.axisOffset[this.side];a&&(this.axisParent=a,f.prototype.getOffset.call(this),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]= +b)},setLegendColor:function(){var a,b=this.reversed;a=b?1:0;b=b?0:1;a=this.horiz?[a,0,b,0]:[0,b,0,a];this.legendColor={linearGradient:{x1:a[0],y1:a[1],x2:a[2],y2:a[3]},stops:this.stops}},drawLegendSymbol:function(a,b){var e=a.padding,m=a.options,d=this.horiz,k=q(m.symbolWidth,d?this.defaultLegendLength:12),r=q(m.symbolHeight,d?12:this.defaultLegendLength),c=q(m.labelPadding,d?16:30),m=q(m.itemDistance,10);this.setLegendColor();b.legendSymbol=this.chart.renderer.rect(0,a.baseline-11,k,r).attr({zIndex:1}).add(b.legendGroup); +this.legendItemWidth=k+e+(d?m:c);this.legendItemHeight=r+e+(d?c:0)},setState:function(a){n(this.series,function(b){b.setState(a)})},visible:!0,setVisible:d,getSeriesExtremes:function(){var a=this.series,b=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;b--;)void 0!==a[b].valueMin&&(this.dataMin=Math.min(this.dataMin,a[b].valueMin),this.dataMax=Math.max(this.dataMax,a[b].valueMax))},drawCrosshair:function(a,b){var e=b&&b.plotX,d=b&&b.plotY,k,m=this.pos,c=this.len;b&&(k=this.toPixels(b[b.series.colorKey]), +km+c&&(k=m+c+2),b.plotX=k,b.plotY=this.len-k,f.prototype.drawCrosshair.call(this,a,b),b.plotX=e,b.plotY=d,this.cross&&!this.cross.addedToColorAxis&&this.legendGroup&&(this.cross.addClass("highcharts-coloraxis-marker").add(this.legendGroup),this.cross.addedToColorAxis=!0))},getPlotLinePath:function(a,b,e,d,k){return t(k)?this.horiz?["M",k-4,this.top-6,"L",k+4,this.top-6,k,this.top,"Z"]:["M",this.left,k,"L",this.left-6,k+6,this.left-6,k-6,"Z"]:f.prototype.getPlotLinePath.call(this,a,b,e, +d)},update:function(a,b){var e=this.chart,d=e.legend;n(this.series,function(a){a.isDirtyData=!0});a.dataClasses&&d.allItems&&(n(d.allItems,function(a){a.isDataClass&&a.legendGroup&&a.legendGroup.destroy()}),e.isDirtyLegend=!0);e.options[this.coll]=k(this.userOptions,a);f.prototype.update.call(this,a,b);this.legendItem&&(this.setLegendColor(),d.colorizeItem(this,!0))},remove:function(){this.legendItem&&this.chart.legend.destroyItem(this);f.prototype.remove.call(this)},getDataClassLegendSymbols:function(){var k= +this,c=this.chart,e=this.legendItems,x=c.options.legend,g=x.valueDecimals,q=x.valueSuffix||"",p;e.length||n(this.dataClasses,function(m,x){var r=!0,v=m.from,f=m.to;p="";void 0===v?p="\x3c ":void 0===f&&(p="\x3e ");void 0!==v&&(p+=a.numberFormat(v,g)+q);void 0!==v&&void 0!==f&&(p+=" - ");void 0!==f&&(p+=a.numberFormat(f,g)+q);e.push(u({chart:c,name:p,options:{},drawLegendSymbol:b.drawRectangle,visible:!0,setState:d,isDataClass:!0,setVisible:function(){r=this.visible=!r;n(k.series,function(a){n(a.points, +function(a){a.dataClass===x&&a.setVisible(r)})});c.legend.colorizeItem(this,r)}},m))});return e},name:""}),n(["fill","stroke"],function(b){a.Fx.prototype[b+"Setter"]=function(){this.elem.attr(b,c(this.start).tweenTo(c(this.end),this.pos),null,!0)}}),h(l,"afterGetAxes",function(){var a=this.options.colorAxis;this.colorAxis=[];a&&new p(this,a)}),h(g,"afterGetAllItems",function(b){var d=[],e=this.chart.colorAxis[0];e&&e.options&&(e.options.showInLegend&&(e.options.dataClasses?d=e.getDataClassLegendSymbols(): +d.push(e)),n(e.series,function(e){a.erase(b.allItems,e)}));for(;d.length;)b.allItems.unshift(d.pop())}),h(g,"afterColorizeItem",function(a){a.visible&&a.item.legendColor&&a.item.legendSymbol.attr({fill:a.item.legendColor})}),h(g,"afterUpdate",function(a,b,e){this.chart.colorAxis[0]&&this.chart.colorAxis[0].update({},e)}))})(w);(function(a){var h=a.defined,f=a.each,l=a.noop;a.colorPointMixin={isValid:function(){return null!==this.value&&Infinity!==this.value&&-Infinity!==this.value},setVisible:function(a){var c= +this,n=a?"show":"hide";f(["graphic","dataLabel"],function(a){if(c[a])c[a][n]()})},setState:function(c){a.Point.prototype.setState.call(this,c);this.graphic&&this.graphic.attr({zIndex:"hover"===c?1:0})}};a.colorSeriesMixin={pointArrayMap:["value"],axisTypes:["xAxis","yAxis","colorAxis"],optionalAxis:"colorAxis",trackerGroups:["group","markerGroup","dataLabelsGroup"],getSymbol:l,parallelArrays:["x","y","value"],colorKey:"value",translateColors:function(){var a=this,p=this.options.nullColor,n=this.colorAxis, +l=this.colorKey;f(this.data,function(c){var g=c[l];if(g=c.options.color||(c.isNull?p:n&&void 0!==g?n.toColor(g,c):c.color||a.color))c.color=g})},colorAttribs:function(a){var c={};h(a.color)&&(c[this.colorProp||"fill"]=a.color);return c}}})(w);(function(a){function h(a){a&&(a.preventDefault&&a.preventDefault(),a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)}function f(a){this.init(a)}var l=a.addEvent,c=a.Chart,p=a.doc,n=a.each,u=a.extend,t=a.merge,g=a.pick;f.prototype.init=function(a){this.chart= +a;a.mapNavButtons=[]};f.prototype.update=function(b){var d=this.chart,k=d.options.mapNavigation,c,r=function(a){this.handler.call(d,a);h(a)},m=d.mapNavButtons;b&&(k=d.options.mapNavigation=t(d.options.mapNavigation,b));for(;m.length;)m.pop().destroy();g(k.enableButtons,k.enabled)&&!d.renderer.forExport&&a.objectEach(k.buttons,function(a,b){c=t(k.buttonOptions,a);a=d.renderer.button(c.text,0,0,r,void 0,void 0,void 0,0,"zoomIn"===b?"topbutton":"bottombutton").addClass("highcharts-map-navigation").attr({width:c.width, +height:c.height,title:d.options.lang[b],padding:c.padding,zIndex:5}).add();a.handler=c.onclick;a.align(u(c,{width:a.width,height:2*a.height}),null,c.alignTo);l(a.element,"dblclick",h);m.push(a)});this.updateEvents(k)};f.prototype.updateEvents=function(a){var b=this.chart;g(a.enableDoubleClickZoom,a.enabled)||a.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||l(b.container,"dblclick",function(a){b.pointer.onContainerDblClick(a)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()); +g(a.enableMouseWheelZoom,a.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||l(b.container,void 0===p.onmousewheel?"DOMMouseScroll":"mousewheel",function(a){b.pointer.onContainerMouseWheel(a);h(a);return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())};u(c.prototype,{fitToBox:function(a,d){n([["x","width"],["y","height"]],function(b){var c=b[0];b=b[1];a[c]+a[b]>d[c]+d[b]&&(a[b]>d[b]?(a[b]=d[b],a[c]=d[c]):a[c]=d[c]+d[b]-a[b]);a[b]>d[b]&&(a[b]=d[b]);a[c]=b.dataMax-b.dataMin&&d.y<=e.dataMin&&d.height>=e.dataMax-e.dataMin;q&&(b.fixTo=[q-b.pos,c]);r&&(e.fixTo=[r-e.pos,k]);void 0===a||v?(b.setExtremes(void 0, +void 0,!1),e.setExtremes(void 0,void 0,!1)):(b.setExtremes(d.x,d.x+d.width,!1),e.setExtremes(d.y,d.y+d.height,!1));this.redraw()}});l(c,"beforeRender",function(){this.mapNavigation=new f(this);this.mapNavigation.update()})})(w);(function(a){var h=a.extend,f=a.pick,l=a.Pointer;a=a.wrap;h(l.prototype,{onContainerDblClick:function(a){var c=this.chart;a=this.normalize(a);c.options.mapNavigation.enableDoubleClickZoomTo?c.pointer.inClass(a.target,"highcharts-tracker")&&c.hoverPoint&&c.hoverPoint.zoomTo(): +c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop)&&c.mapZoom(.5,c.xAxis[0].toValue(a.chartX),c.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)},onContainerMouseWheel:function(a){var c=this.chart,f;a=this.normalize(a);f=a.detail||-(a.wheelDelta/120);c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop)&&c.mapZoom(Math.pow(c.options.mapNavigation.mouseWheelSensitivity,f),c.xAxis[0].toValue(a.chartX),c.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)}});a(l.prototype,"zoomOption",function(a){var c= +this.chart.options.mapNavigation;f(c.enableTouchZoom,c.enabled)&&(this.chart.options.chart.pinchType="xy");a.apply(this,[].slice.call(arguments,1))});a(l.prototype,"pinchTranslate",function(a,f,l,h,t,g,b){a.call(this,f,l,h,t,g,b);"map"===this.chart.options.chart.type&&this.hasZoom&&(a=h.scaleX>h.scaleY,this.pinchTranslateDirection(!a,f,l,h,t,g,b,a?h.scaleX:h.scaleY))})})(w);(function(a){var h=a.colorPointMixin,f=a.each,l=a.extend,c=a.isNumber,p=a.map,n=a.merge,u=a.noop,t=a.pick,g=a.isArray,b=a.Point, +d=a.Series,k=a.seriesType,q=a.seriesTypes,r=a.splat,m=void 0!==a.doc.documentElement.style.vectorEffect;k("map","scatter",{allAreas:!0,animation:!1,marker:null,stickyTracking:!1,joinBy:"hc-key",dataLabels:{formatter:function(){return this.point.value},inside:!0,verticalAlign:"middle",crop:!1,overflow:!1,padding:0},turboThreshold:0,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}\x3cbr/\x3e"},states:{normal:{animation:!0},hover:{halo:null,brightness:.2}}},n(a.colorSeriesMixin,{type:"map", +getExtremesFromAll:!0,useMapGeometry:!0,forceDL:!0,searchPoint:u,directTouch:!0,preserveAspectRatio:!0,pointArrayMap:["value"],getBox:function(e){var b=Number.MAX_VALUE,d=-b,k=b,g=-b,m=b,r=b,q=this.xAxis,y=this.yAxis,l;f(e||[],function(e){if(e.path){"string"===typeof e.path&&(e.path=a.splitPath(e.path));var v=e.path||[],f=v.length,q=!1,x=-b,y=b,h=-b,p=b,n=e.properties;if(!e._foundBox){for(;f--;)c(v[f])&&(q?(x=Math.max(x,v[f]),y=Math.min(y,v[f])):(h=Math.max(h,v[f]),p=Math.min(p,v[f])),q=!q);e._midX= +y+(x-y)*t(e.middleX,n&&n["hc-middle-x"],.5);e._midY=p+(h-p)*t(e.middleY,n&&n["hc-middle-y"],.5);e._maxX=x;e._minX=y;e._maxY=h;e._minY=p;e.labelrank=t(e.labelrank,(x-y)*(h-p));e._foundBox=!0}d=Math.max(d,e._maxX);k=Math.min(k,e._minX);g=Math.max(g,e._maxY);m=Math.min(m,e._minY);r=Math.min(e._maxX-e._minX,e._maxY-e._minY,r);l=!0}});l&&(this.minY=Math.min(m,t(this.minY,b)),this.maxY=Math.max(g,t(this.maxY,-b)),this.minX=Math.min(k,t(this.minX,b)),this.maxX=Math.max(d,t(this.maxX,-b)),q&&void 0===q.options.minRange&& +(q.minRange=Math.min(5*r,(this.maxX-this.minX)/5,q.minRange||b)),y&&void 0===y.options.minRange&&(y.minRange=Math.min(5*r,(this.maxY-this.minY)/5,y.minRange||b)))},getExtremes:function(){d.prototype.getExtremes.call(this,this.valueData);this.chart.hasRendered&&this.isDirtyData&&this.getBox(this.options.data);this.valueMin=this.dataMin;this.valueMax=this.dataMax;this.dataMin=this.minY;this.dataMax=this.maxY},translatePath:function(a){var e=!1,b=this.xAxis,d=this.yAxis,k=b.min,g=b.transA,b=b.minPixelPadding, +m=d.min,r=d.transA,d=d.minPixelPadding,f,q=[];if(a)for(f=a.length;f--;)c(a[f])?(q[f]=e?(a[f]-k)*g+b:(a[f]-m)*r+d,e=!e):q[f]=a[f];return q},setData:function(e,b,k,m){var v=this.options,q=this.chart.options.chart,x=q&&q.map,l=v.mapData,h=v.joinBy,t=null===h,B=v.keys||this.pointArrayMap,z=[],u={},A=this.chart.mapTransforms;!l&&x&&(l="string"===typeof x?a.maps[x]:x);t&&(h="_i");h=this.joinBy=r(h);h[1]||(h[1]=h[0]);e&&f(e,function(b,d){var k=0;if(c(b))e[d]={value:b};else if(g(b)){e[d]={};!v.keys&&b.length> +B.length&&"string"===typeof b[0]&&(e[d]["hc-key"]=b[0],++k);for(var m=0;mr&&.99h&&(h=r=1,l=Math.round(l),p=Math.round(p)), +z=this.transformGroup,k.renderer.globalAnimation?(t=z.attr("translateX"),u=z.attr("translateY"),w=z.attr("scaleX"),H=z.attr("scaleY"),z.attr({animator:0}).animate({animator:1},{step:function(a,b){z.attr({translateX:t+(l-t)*b.pos,translateY:u+(p-u)*b.pos,scaleX:w+(r-w)*b.pos,scaleY:H+(h-H)*b.pos})}})):z.attr({translateX:l,translateY:p,scaleX:r,scaleY:h}));m||a.group.element.setAttribute("stroke-width",a.options[a.pointAttrToOptions&&a.pointAttrToOptions["stroke-width"]||"borderWidth"]/(r||1));this.drawMapDataLabels()}, +drawMapDataLabels:function(){d.prototype.drawDataLabels.call(this);this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)},render:function(){var a=this,b=d.prototype.render;a.chart.renderer.isVML&&3E3=this.minPxSize/2?(g.marker=a.extend(g.marker,{radius:m,width:2*m,height:2*m}),g.dlBox={x:g.plotX-m,y:g.plotY-m,width:2*m,height:2*m}):g.shapeArgs=g.plotY=g.dlBox=void 0},alignDataLabel:d.column.prototype.alignDataLabel,buildKDTree:n,applyZones:n},{haloPath:function(a){return g.prototype.haloPath.call(this, +0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});l.prototype.beforePadding=function(){var a=this,b=this.len,d=this.chart,g=0,e=b,l=this.isXAxis,n=l?"xData":"yData",w=this.min,C={},I=Math.min(d.plotWidth,d.plotHeight),E=Number.MAX_VALUE,F=-Number.MAX_VALUE,y=this.max-w,D=b/y,G=[];c(this.series,function(b){var e=b.options;!b.bubblePadding||!b.visible&&d.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,G.push(b),l&&(c(["minSize","maxSize"],function(a){var b=e[a],d=/%$/.test(b), +b=t(b);C[a]=d?I*b/100:b}),b.minPxSize=C.minSize,b.maxPxSize=Math.max(C.maxSize,C.minSize),b=b.zData,b.length&&(E=u(e.zMin,Math.min(E,Math.max(f(b),!1===e.displayNegative?e.zThreshold:-Number.MAX_VALUE))),F=u(e.zMax,Math.max(F,h(b))))))});c(G,function(b){var d=b[n],c=d.length,k;l&&b.getRadii(E,F,b.minPxSize,b.maxPxSize);if(0e,g=b[d][1]>e,c!==g&&m<(b[d][0]-b[a][0])*(e-b[a][1])/(b[d][1]-b[a][1])+b[a][0]&&(f=!f);return f}var f=a.Chart,l=a.each,c=a.extend,p=a.format,n=a.merge,u=a.win,t=a.wrap;f.prototype.transformFromLatLon=function(c,b){if(void 0=== +u.proj4)return a.error(21),{x:0,y:null};c=u.proj4(b.crs,[c.lon,c.lat]);var d=b.cosAngle||b.rotation&&Math.cos(b.rotation),k=b.sinAngle||b.rotation&&Math.sin(b.rotation);c=b.rotation?[c[0]*d+c[1]*k,-c[0]*k+c[1]*d]:c;return{x:((c[0]-(b.xoffset||0))*(b.scale||1)+(b.xpan||0))*(b.jsonres||1)+(b.jsonmarginX||0),y:(((b.yoffset||0)-c[1])*(b.scale||1)+(b.ypan||0))*(b.jsonres||1)-(b.jsonmarginY||0)}};f.prototype.transformToLatLon=function(c,b){if(void 0===u.proj4)a.error(21);else{c={x:((c.x-(b.jsonmarginX|| +0))/(b.jsonres||1)-(b.xpan||0))/(b.scale||1)+(b.xoffset||0),y:((-c.y-(b.jsonmarginY||0))/(b.jsonres||1)+(b.ypan||0))/(b.scale||1)+(b.yoffset||0)};var d=b.cosAngle||b.rotation&&Math.cos(b.rotation),k=b.sinAngle||b.rotation&&Math.sin(b.rotation);b=u.proj4(b.crs,"WGS84",b.rotation?{x:c.x*d+c.y*-k,y:c.x*k+c.y*d}:c);return{lat:b.y,lon:b.x}}};f.prototype.fromPointToLatLon=function(c){var b=this.mapTransforms,d;if(b){for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&h({x:c.x,y:-c.y},b[d].hitZone.coordinates[0]))return this.transformToLatLon(c, +b[d]);return this.transformToLatLon(c,b["default"])}a.error(22)};f.prototype.fromLatLonToPoint=function(c){var b=this.mapTransforms,d,k;if(!b)return a.error(22),{x:0,y:null};for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&(k=this.transformFromLatLon(c,b[d]),h({x:k.x,y:-k.y},b[d].hitZone.coordinates[0])))return k;return this.transformFromLatLon(c,b["default"])};a.geojson=function(a,b,d){var k=[],f=[],g=function(a){var b,d=a.length;f.push("M");for(b=0;b + /* BEGIN <%= dep_css %> */ + +<%= contents %> + /* END <%= dep_css %>*/ +<% } %> \ No newline at end of file diff --git a/lib/tasks/high_charts.rake b/lib/tasks/high_charts.rake index 898b673..5b35fda 100644 --- a/lib/tasks/high_charts.rake +++ b/lib/tasks/high_charts.rake @@ -11,7 +11,7 @@ end namespace :highcharts do desc "Update highcharts.js from latest Builds on Highcharts codebase: http://code.highcharts.com/" - task :update => [:core, :stock, :map] + task :update => [:core, :stock, :map, :css] task :core do say "Grabbing Core from Highcharts codebase..." do sh "mkdir -p lib/daru/view/adapters/js/highcharts_js/modules/" @@ -53,8 +53,10 @@ namespace :highcharts do sh "mkdir -p lib/daru/view/adapters/js/highcharts_js/stock/modules/" sh "mkdir -p lib/daru/view/adapters/js/highcharts_js/stock/adapters/" + sh "mkdir -p lib/daru/view/adapters/js/highcharts_js/js/" sh "curl -# http://code.highcharts.com/stock/highstock.js -L --compressed -o lib/daru/view/adapters/js/highcharts_js/highstock.js" + sh "curl -# http://code.highcharts.com/stock/js/highstock.js -L --compressed -o lib/daru/view/adapters/js/highcharts_js/js/highstock.js" sh "curl -# http://code.highcharts.com/stock/highcharts-more.js -L --compressed -o lib/daru/view/adapters/js/highcharts_js/stock/highcharts-more.js" sh "curl -# http://code.highcharts.com/stock/modules/exporting.js -L --compressed -o lib/daru/view/adapters/js/highcharts_js/stock/modules/exporting.js" sh "curl -# http://code.highcharts.com/stock/modules/funnel.js -L --compressed -o lib/daru/view/adapters/js/highcharts_js/stock/modules/funnel.js" @@ -111,7 +113,15 @@ namespace :highcharts do sh "curl -# http://code.highcharts.com/maps/modules/map.js -L --compressed -o lib/daru/view/adapters/js/highcharts_js/map.js" sh "curl -# http://code.highcharts.com/mapdata/countries/in/custom/in-all-andaman-and-nicobar.js -L --compressed -o lib/daru/view/adapters/js/highcharts_js/mapdata/countries/in/custom/in-all-andaman-and-nicobar.js" + sh "curl -# http://code.highcharts.com/maps/js/modules/map.js -L --compressed -o lib/daru/view/adapters/js/highcharts_js/js/map.js" end end + task :css do + say "Grabbing CSS of HighCharts from Upstream..." do + sh "mkdir -p lib/daru/view/adapters/css/highcharts_css/" + + sh "curl -# http://code.highcharts.com/css/highcharts.css -L --compressed -o lib/daru/view/adapters/css/highcharts_css/highcharts.css" + end + end end diff --git a/spec/adapters/highcharts/display_spec.rb b/spec/adapters/highcharts/display_spec.rb index b8446ab..a118e74 100644 --- a/spec/adapters/highcharts/display_spec.rb +++ b/spec/adapters/highcharts/display_spec.rb @@ -5,11 +5,13 @@ describe "#init_script" do it "generates valid initial script" do js = LazyHighCharts.init_script - expect(js).to match(/BEGIN highstock.js/i) + expect(js).to match(/BEGIN js\/highstock.js/i) expect(js).to match(/Highstock JS/i) - expect(js).to match(/END highstock.js/i) expect(js).to match(/BEGIN map.js/i) expect(js).to match(/END map.js/i) + expect(js).to match(/END js\/highstock.js/i) + expect(js).to match(/BEGIN highcharts.css/i) + expect(js).to match(/END highcharts.css/i) expect(js).to match(/BEGIN modules\/exporting.js/i) expect(js).to match(/END modules\/exporting.js/i) expect(js).to match(/BEGIN highcharts-3d.js/i) @@ -35,6 +37,8 @@ chart: { type: 'bar' }, + css: ['.highcharts-color-1 {fill: #90ed7d;stroke: #90ed7d;}', + '.highcharts-background {fill: #efefef;stroke: #a4edba;stroke-width: 2px;}'], title: { text: 'Bar chart' }, @@ -90,6 +94,9 @@ before(:each) do @opts = { chart_class: 'stock', + css: [ + '.highcharts-background {fill: #efefef;stroke: #a4edba;stroke-width: 2px;}' + ], chart: { type: 'arearange' }, @@ -203,6 +210,18 @@ @placeholder) ).to match(/END mapdata\/custom\/europe.js/) end + it "should return style tag if css option is given" do + expect(@chart.chart.to_html(@placeholder)).to match(/style/) + expect(@hc.chart.to_html(@placeholder)).to match(/style/) + end + it "should set css correctly" do + expect(@chart.chart.to_html( + @placeholder) + ).to match(/#placeholder .highcharts-background {fill/) + expect(@hc.chart.to_html( + @placeholder) + ).to match(/#placeholder .highcharts-color-1 {/) + end it "should take a block setting attributes" do expect(@chart.chart.options[:rangeSelector][:selected]).to eq(1) expect(@chart.chart.to_html(@placeholder)).to match(/rangeSelector/) @@ -302,6 +321,11 @@ @placeholder) ).to match(/window\.chart_placeholder\s+=\s+new\s+Highcharts.Chart/) end + it "should set css correctly" do + expect(@hc.chart.to_html_iruby( + @placeholder) + ).to match(/#placeholder .highcharts-background {fill/) + end end describe "#extract_chart_class" do @@ -324,6 +348,16 @@ end end + describe "#high_chart_css" do + it "return the correct css of the chart" do + # cannot check another value of css in array as `css` option + # got deleted as we check the first value + expect(@hc.chart.high_chart_css( + @placeholder) + ).to match(/#placeholder .highcharts-background {fill/) + end + end + describe "#chart_hash_must_be_present" do it "should check the presence of chart hash in options" do @hc.chart.chart_hash_must_be_present diff --git a/spec/adapters/highcharts/iruby_notebook_spec.rb b/spec/adapters/highcharts/iruby_notebook_spec.rb index 7958b6d..4319dbf 100644 --- a/spec/adapters/highcharts/iruby_notebook_spec.rb +++ b/spec/adapters/highcharts/iruby_notebook_spec.rb @@ -17,4 +17,11 @@ /console.log\(\"Finish loading highchartsjs\"\)/i) end end + describe "#generate_init_code_css" do + it "generates valid initial css" do + js = LazyHighCharts.generate_init_code_css(["highcharts.css"]) + expect(js).to match(/BEGIN highcharts.css/i) + expect(js).to match(/END highcharts.css/i) + end + end end diff --git a/spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb b/spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb new file mode 100644 index 0000000..d5be7db --- /dev/null +++ b/spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb @@ -0,0 +1,2439 @@ +{ + "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", + "(0g?this:a,a=(g.max-g.min)*g.transA,g.pixelPadding=g.len-a,g.minPixelPadding=\n", + "g.pixelPadding/2,a=g.fixTo)){a=a[1]-g.toValue(a[0],!0);a*=g.transA;if(Math.abs(a)>g.minPixelPadding||g.min===g.dataMin&&g.max===g.dataMax)a=0;g.minPixelPadding-=a}});l(h,\"render\",function(){this.fixTo=null})})(x);(function(a){var l=a.addEvent,h=a.Axis,k=a.Chart,f=a.color,q,g=a.each,u=a.extend,t=a.isNumber,e=a.Legend,b=a.LegendSymbolMixin,d=a.noop,n=a.merge,r=a.pick;a.ColorAxis||(q=a.ColorAxis=function(){this.init.apply(this,arguments)},u(q.prototype,h.prototype),u(q.prototype,{defaultColorAxisOptions:{lineWidth:0,\n", + "minPadding:0,maxPadding:0,gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:\"#999999\"},labels:{overflow:\"justify\",rotation:0},minColor:\"#e6ebf5\",maxColor:\"#003399\",tickLength:5,showInLegend:!0},keepProps:[\"legendGroup\",\"legendItemHeight\",\"legendItemWidth\",\"legendItem\",\"legendSymbol\"].concat(h.prototype.keepProps),init:function(a,b){var c=\"vertical\"!==a.options.legend.layout,m;this.coll=\"colorAxis\";m=n(this.defaultColorAxisOptions,\n", + "{side:c?2:1,reversed:!c},b,{opposite:!c,showEmpty:!1,title:null,visible:a.options.legend.enabled});h.prototype.init.call(this,a,m);b.dataClasses&&this.initDataClasses(b);this.initStops();this.horiz=c;this.zoomEnabled=!1;this.defaultLegendLength=200},initDataClasses:function(a){var b=this.chart,c,m=0,d=b.options.chart.colorCount,e=this.options,y=a.dataClasses.length;this.dataClasses=c=[];this.legendItems=[];g(a.dataClasses,function(a,p){a=n(a);c.push(a);a.color||(\"category\"===e.dataClassColor?(p=b.options.colors,\n", + "d=p.length,a.color=p[m],a.colorIndex=m,m++,m===d&&(m=0)):a.color=f(e.minColor).tweenTo(f(e.maxColor),2>y?.5:p/(y-1)))})},setTickPositions:function(){if(!this.dataClasses)return h.prototype.setTickPositions.call(this)},initStops:function(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];g(this.stops,function(a){a.color=f(a[1])})},setOptions:function(a){h.prototype.setOptions.call(this,a);this.options.crosshair=this.options.marker},setAxisSize:function(){var a=this.legendSymbol,\n", + "b=this.chart,c=b.options.legend||{},p,d;a?(this.left=c=a.attr(\"x\"),this.top=p=a.attr(\"y\"),this.width=d=a.attr(\"width\"),this.height=a=a.attr(\"height\"),this.right=b.chartWidth-c-d,this.bottom=b.chartHeight-p-a,this.len=this.horiz?d:a,this.pos=this.horiz?c:p):this.len=(this.horiz?c.symbolWidth:c.symbolHeight)||this.defaultLegendLength},normalizedValue:function(a){this.isLog&&(a=this.val2lin(a));return 1-(this.max-a)/(this.max-this.min||1)},toColor:function(a,b){var c=this.stops,p,m,v=this.dataClasses,\n", + "d,e;if(v)for(e=v.length;e--;){if(d=v[e],p=d.from,c=d.to,(void 0===p||a>=p)&&(void 0===c||a<=c)){m=d.color;b&&(b.dataClass=e,b.colorIndex=d.colorIndex);break}}else{a=this.normalizedValue(a);for(e=c.length;e--&&!(a>c[e][0]););p=c[e]||c[e+1];c=c[e+1]||p;a=1-(c[0]-a)/(c[0]-p[0]||1);m=p.color.tweenTo(c.color,a)}return m},getOffset:function(){var a=this.legendGroup,b=this.chart.axisOffset[this.side];a&&(this.axisParent=a,h.prototype.getOffset.call(this),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=\n", + "this.width),this.chart.axisOffset[this.side]=b)},setLegendColor:function(){var a,b=this.reversed;a=b?1:0;b=b?0:1;a=this.horiz?[a,0,b,0]:[0,b,0,a];this.legendColor={linearGradient:{x1:a[0],y1:a[1],x2:a[2],y2:a[3]},stops:this.stops}},drawLegendSymbol:function(a,b){var c=a.padding,p=a.options,d=this.horiz,m=r(p.symbolWidth,d?this.defaultLegendLength:12),v=r(p.symbolHeight,d?12:this.defaultLegendLength),e=r(p.labelPadding,d?16:30),p=r(p.itemDistance,10);this.setLegendColor();b.legendSymbol=this.chart.renderer.rect(0,\n", + "a.baseline-11,m,v).attr({zIndex:1}).add(b.legendGroup);this.legendItemWidth=m+c+(d?p:e);this.legendItemHeight=v+c+(d?e:0)},setState:function(a){g(this.series,function(b){b.setState(a)})},visible:!0,setVisible:d,getSeriesExtremes:function(){var a=this.series,b=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;b--;)void 0!==a[b].valueMin&&(this.dataMin=Math.min(this.dataMin,a[b].valueMin),this.dataMax=Math.max(this.dataMax,a[b].valueMax))},drawCrosshair:function(a,b){var c=b&&b.plotX,p=b&&b.plotY,\n", + "d,e=this.pos,m=this.len;b&&(d=this.toPixels(b[b.series.colorKey]),de+m&&(d=e+m+2),b.plotX=d,b.plotY=this.len-d,h.prototype.drawCrosshair.call(this,a,b),b.plotX=c,b.plotY=p,this.cross&&!this.cross.addedToColorAxis&&this.legendGroup&&(this.cross.addClass(\"highcharts-coloraxis-marker\").add(this.legendGroup),this.cross.addedToColorAxis=!0,this.cross.attr({fill:this.crosshair.color})))},getPlotLinePath:function(a,b,c,d,e){return t(e)?this.horiz?[\"M\",e-4,this.top-6,\"L\",e+4,this.top-6,e,this.top,\n", + "\"Z\"]:[\"M\",this.left,e,\"L\",this.left-6,e+6,this.left-6,e-6,\"Z\"]:h.prototype.getPlotLinePath.call(this,a,b,c,d)},update:function(a,b){var c=this.chart,d=c.legend;g(this.series,function(a){a.isDirtyData=!0});a.dataClasses&&d.allItems&&(g(d.allItems,function(a){a.isDataClass&&a.legendGroup&&a.legendGroup.destroy()}),c.isDirtyLegend=!0);c.options[this.coll]=n(this.userOptions,a);h.prototype.update.call(this,a,b);this.legendItem&&(this.setLegendColor(),d.colorizeItem(this,!0))},remove:function(){this.legendItem&&\n", + "this.chart.legend.destroyItem(this);h.prototype.remove.call(this)},getDataClassLegendSymbols:function(){var e=this,v=this.chart,c=this.legendItems,p=v.options.legend,n=p.valueDecimals,r=p.valueSuffix||\"\",y;c.length||g(this.dataClasses,function(p,m){var w=!0,f=p.from,q=p.to;y=\"\";void 0===f?y=\"\\x3c \":void 0===q&&(y=\"\\x3e \");void 0!==f&&(y+=a.numberFormat(f,n)+r);void 0!==f&&void 0!==q&&(y+=\" - \");void 0!==q&&(y+=a.numberFormat(q,n)+r);c.push(u({chart:v,name:y,options:{},drawLegendSymbol:b.drawRectangle,\n", + "visible:!0,setState:d,isDataClass:!0,setVisible:function(){w=this.visible=!w;g(e.series,function(a){g(a.points,function(a){a.dataClass===m&&a.setVisible(w)})});v.legend.colorizeItem(this,w)}},p))});return c},name:\"\"}),g([\"fill\",\"stroke\"],function(b){a.Fx.prototype[b+\"Setter\"]=function(){this.elem.attr(b,f(this.start).tweenTo(f(this.end),this.pos),null,!0)}}),l(k,\"afterGetAxes\",function(){var a=this.options.colorAxis;this.colorAxis=[];a&&new q(this,a)}),l(e,\"afterGetAllItems\",function(b){var d=[],\n", + "c=this.chart.colorAxis[0];c&&c.options&&(c.options.showInLegend&&(c.options.dataClasses?d=c.getDataClassLegendSymbols():d.push(c)),g(c.series,function(c){a.erase(b.allItems,c)}));for(;d.length;)b.allItems.unshift(d.pop())}),l(e,\"afterColorizeItem\",function(a){a.visible&&a.item.legendColor&&a.item.legendSymbol.attr({fill:a.item.legendColor})}),l(e,\"afterUpdate\",function(a,b,c){this.chart.colorAxis[0]&&this.chart.colorAxis[0].update({},c)}))})(x);(function(a){var l=a.defined,h=a.each,k=a.noop,f=a.seriesTypes;\n", + "a.colorPointMixin={isValid:function(){return null!==this.value&&Infinity!==this.value&&-Infinity!==this.value},setVisible:function(a){var f=this,q=a?\"show\":\"hide\";h([\"graphic\",\"dataLabel\"],function(a){if(f[a])f[a][q]()})},setState:function(f){a.Point.prototype.setState.call(this,f);this.graphic&&this.graphic.attr({zIndex:\"hover\"===f?1:0})}};a.colorSeriesMixin={pointArrayMap:[\"value\"],axisTypes:[\"xAxis\",\"yAxis\",\"colorAxis\"],optionalAxis:\"colorAxis\",trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"],\n", + "getSymbol:k,parallelArrays:[\"x\",\"y\",\"value\"],colorKey:\"value\",pointAttribs:f.column.prototype.pointAttribs,translateColors:function(){var a=this,f=this.options.nullColor,k=this.colorAxis,l=this.colorKey;h(this.data,function(e){var b=e[l];if(b=e.options.color||(e.isNull?f:k&&void 0!==b?k.toColor(b,e):e.color||a.color))e.color=b})},colorAttribs:function(a){var f={};l(a.color)&&(f[this.colorProp||\"fill\"]=a.color);return f}}})(x);(function(a){function l(a){a&&(a.preventDefault&&a.preventDefault(),a.stopPropagation&&\n", + "a.stopPropagation(),a.cancelBubble=!0)}function h(a){this.init(a)}var k=a.addEvent,f=a.Chart,q=a.doc,g=a.each,u=a.extend,t=a.merge,e=a.pick;h.prototype.init=function(a){this.chart=a;a.mapNavButtons=[]};h.prototype.update=function(b){var d=this.chart,n=d.options.mapNavigation,f,m,v,c,p,w=function(a){this.handler.call(d,a);l(a)},q=d.mapNavButtons;b&&(n=d.options.mapNavigation=t(d.options.mapNavigation,b));for(;q.length;)q.pop().destroy();e(n.enableButtons,n.enabled)&&!d.renderer.forExport&&a.objectEach(n.buttons,\n", + "function(a,b){f=t(n.buttonOptions,a);m=f.theme;m.style=t(f.theme.style,f.style);c=(v=m.states)&&v.hover;p=v&&v.select;a=d.renderer.button(f.text,0,0,w,m,c,p,0,\"zoomIn\"===b?\"topbutton\":\"bottombutton\").addClass(\"highcharts-map-navigation\").attr({width:f.width,height:f.height,title:d.options.lang[b],padding:f.padding,zIndex:5}).add();a.handler=f.onclick;a.align(u(f,{width:a.width,height:2*a.height}),null,f.alignTo);k(a.element,\"dblclick\",l);q.push(a)});this.updateEvents(n)};h.prototype.updateEvents=\n", + "function(a){var b=this.chart;e(a.enableDoubleClickZoom,a.enabled)||a.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||k(b.container,\"dblclick\",function(a){b.pointer.onContainerDblClick(a)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick());e(a.enableMouseWheelZoom,a.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||k(b.container,void 0===q.onmousewheel?\"DOMMouseScroll\":\"mousewheel\",function(a){b.pointer.onContainerMouseWheel(a);l(a);return!1}):this.unbindMouseWheel&&\n", + "(this.unbindMouseWheel=this.unbindMouseWheel())};u(f.prototype,{fitToBox:function(a,d){g([[\"x\",\"width\"],[\"y\",\"height\"]],function(b){var e=b[0];b=b[1];a[e]+a[b]>d[e]+d[b]&&(a[b]>d[b]?(a[b]=d[b],a[e]=d[e]):a[e]=d[e]+d[b]-a[b]);a[b]>d[b]&&(a[b]=d[b]);a[e]=b.dataMax-b.dataMin&&p.y<=c.dataMin&&p.height>=c.dataMax-c.dataMin;q&&(b.fixTo=[q-b.pos,d]);m&&(c.fixTo=[m-c.pos,f]);void 0===a||w?(b.setExtremes(void 0,void 0,!1),c.setExtremes(void 0,void 0,!1)):(b.setExtremes(p.x,p.x+p.width,!1),c.setExtremes(p.y,p.y+p.height,!1));this.redraw()}});k(f,\"beforeRender\",function(){this.mapNavigation=new h(this);this.mapNavigation.update()})})(x);(function(a){var l=\n", + "a.extend,h=a.pick,k=a.Pointer;a=a.wrap;l(k.prototype,{onContainerDblClick:function(a){var f=this.chart;a=this.normalize(a);f.options.mapNavigation.enableDoubleClickZoomTo?f.pointer.inClass(a.target,\"highcharts-tracker\")&&f.hoverPoint&&f.hoverPoint.zoomTo():f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop)&&f.mapZoom(.5,f.xAxis[0].toValue(a.chartX),f.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)},onContainerMouseWheel:function(a){var f=this.chart,g;a=this.normalize(a);g=a.detail||-(a.wheelDelta/\n", + "120);f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop)&&f.mapZoom(Math.pow(f.options.mapNavigation.mouseWheelSensitivity,g),f.xAxis[0].toValue(a.chartX),f.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)}});a(k.prototype,\"zoomOption\",function(a){var f=this.chart.options.mapNavigation;h(f.enableTouchZoom,f.enabled)&&(this.chart.options.chart.pinchType=\"xy\");a.apply(this,[].slice.call(arguments,1))});a(k.prototype,\"pinchTranslate\",function(a,h,g,k,l,e,b){a.call(this,h,g,k,l,e,b);\"map\"===this.chart.options.chart.type&&\n", + "this.hasZoom&&(a=k.scaleX>k.scaleY,this.pinchTranslateDirection(!a,h,g,k,l,e,b,a?k.scaleX:k.scaleY))})})(x);(function(a){var l=a.colorPointMixin,h=a.each,k=a.extend,f=a.isNumber,q=a.map,g=a.merge,u=a.noop,t=a.pick,e=a.isArray,b=a.Point,d=a.Series,n=a.seriesType,r=a.seriesTypes,m=a.splat,v=void 0!==a.doc.documentElement.style.vectorEffect;n(\"map\",\"scatter\",{allAreas:!0,animation:!1,nullColor:\"#f7f7f7\",borderColor:\"#cccccc\",borderWidth:1,marker:null,stickyTracking:!1,joinBy:\"hc-key\",dataLabels:{formatter:function(){return this.point.value},\n", + "inside:!0,verticalAlign:\"middle\",crop:!1,overflow:!1,padding:0},turboThreshold:0,tooltip:{followPointer:!0,pointFormat:\"{point.name}: {point.value}\\x3cbr/\\x3e\"},states:{normal:{animation:!0},hover:{halo:null,brightness:.2},select:{color:\"#cccccc\"}}},g(a.colorSeriesMixin,{type:\"map\",getExtremesFromAll:!0,useMapGeometry:!0,forceDL:!0,searchPoint:u,directTouch:!0,preserveAspectRatio:!0,pointArrayMap:[\"value\"],getBox:function(c){var b=Number.MAX_VALUE,d=-b,e=b,m=-b,v=b,n=b,g=this.xAxis,k=this.yAxis,q;\n", + "h(c||[],function(c){if(c.path){\"string\"===typeof c.path&&(c.path=a.splitPath(c.path));var p=c.path||[],w=p.length,g=!1,h=-b,k=b,y=-b,r=b,A=c.properties;if(!c._foundBox){for(;w--;)f(p[w])&&(g?(h=Math.max(h,p[w]),k=Math.min(k,p[w])):(y=Math.max(y,p[w]),r=Math.min(r,p[w])),g=!g);c._midX=k+(h-k)*t(c.middleX,A&&A[\"hc-middle-x\"],.5);c._midY=r+(y-r)*t(c.middleY,A&&A[\"hc-middle-y\"],.5);c._maxX=h;c._minX=k;c._maxY=y;c._minY=r;c.labelrank=t(c.labelrank,(h-k)*(y-r));c._foundBox=!0}d=Math.max(d,c._maxX);e=Math.min(e,\n", + "c._minX);m=Math.max(m,c._maxY);v=Math.min(v,c._minY);n=Math.min(c._maxX-c._minX,c._maxY-c._minY,n);q=!0}});q&&(this.minY=Math.min(v,t(this.minY,b)),this.maxY=Math.max(m,t(this.maxY,-b)),this.minX=Math.min(e,t(this.minX,b)),this.maxX=Math.max(d,t(this.maxX,-b)),g&&void 0===g.options.minRange&&(g.minRange=Math.min(5*n,(this.maxX-this.minX)/5,g.minRange||b)),k&&void 0===k.options.minRange&&(k.minRange=Math.min(5*n,(this.maxY-this.minY)/5,k.minRange||b)))},getExtremes:function(){d.prototype.getExtremes.call(this,\n", + "this.valueData);this.chart.hasRendered&&this.isDirtyData&&this.getBox(this.options.data);this.valueMin=this.dataMin;this.valueMax=this.dataMax;this.dataMin=this.minY;this.dataMax=this.maxY},translatePath:function(a){var c=!1,b=this.xAxis,d=this.yAxis,e=b.min,m=b.transA,b=b.minPixelPadding,v=d.min,n=d.transA,d=d.minPixelPadding,g,h=[];if(a)for(g=a.length;g--;)f(a[g])?(h[g]=c?(a[g]-e)*m+b:(a[g]-v)*n+d,c=!c):h[g]=a[g];return h},setData:function(c,b,v,n){var p=this.options,w=this.chart.options.chart,\n", + "k=w&&w.map,r=p.mapData,l=p.joinBy,t=null===l,B=p.keys||this.pointArrayMap,u=[],x={},z=this.chart.mapTransforms;!r&&k&&(r=\"string\"===typeof k?a.maps[k]:k);t&&(l=\"_i\");l=this.joinBy=m(l);l[1]||(l[1]=l[0]);c&&h(c,function(b,d){var m=0;if(f(b))c[d]={value:b};else if(e(b)){c[d]={};!p.keys&&b.length>B.length&&\"string\"===typeof b[0]&&(c[d][\"hc-key\"]=b[0],++m);for(var v=0;vg&&.99n&&(n=g=1,k=Math.round(k),l=Math.round(l)),t=this.transformGroup,m.renderer.globalAnimation?(u=t.attr(\"translateX\"),z=t.attr(\"translateY\"),x=t.attr(\"scaleX\"),G=t.attr(\"scaleY\"),\n", + "t.attr({animator:0}).animate({animator:1},{step:function(a,b){t.attr({translateX:u+(k-u)*b.pos,translateY:z+(l-z)*b.pos,scaleX:x+(g-x)*b.pos,scaleY:G+(n-G)*b.pos})}})):t.attr({translateX:k,translateY:l,scaleX:g,scaleY:n}));v||a.group.element.setAttribute(\"stroke-width\",a.options[a.pointAttrToOptions&&a.pointAttrToOptions[\"stroke-width\"]||\"borderWidth\"]/(g||1));this.drawMapDataLabels()},drawMapDataLabels:function(){d.prototype.drawDataLabels.call(this);this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)},\n", + "render:function(){var a=this,b=d.prototype.render;a.chart.renderer.isVML&&3E3=this.minPxSize/2?(c.marker=a.extend(c.marker,{radius:e,width:2*e,height:2*e}),c.dlBox={x:c.plotX-e,y:c.plotY-e,width:2*e,height:2*e}):c.shapeArgs=c.plotY=c.dlBox=void 0},alignDataLabel:r.column.prototype.alignDataLabel,buildKDTree:u,applyZones:u},{haloPath:function(a){return b.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});k.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,d=0,f=b,n=this.isXAxis,\n", + "k=n?\"xData\":\"yData\",r=this.min,u={},x=Math.min(c.plotWidth,c.plotHeight),A=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-r,C=b/E,F=[];q(this.series,function(b){var d=b.options;!b.bubblePadding||!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),n&&(q([\"minSize\",\"maxSize\"],function(a){var b=d[a],c=/%$/.test(b),b=e(b);u[a]=c?x*b/100:b}),b.minPxSize=u.minSize,b.maxPxSize=Math.max(u.maxSize,u.minSize),b=b.zData,b.length&&(A=t(d.zMin,Math.min(A,Math.max(h(b),!1===d.displayNegative?\n", + "d.zThreshold:-Number.MAX_VALUE))),D=t(d.zMax,Math.max(D,l(b))))))});q(F,function(b){var c=b[k],e=c.length,m;n&&b.getRadii(A,D,b.minPxSize,b.maxPxSize);if(0c,f=b[d][1]>c,e!==f&&h<(b[d][0]-b[a][0])*(c-b[a][1])/(b[d][1]-b[a][1])+b[a][0]&&(g=!g);return g}var h=a.Chart,k=a.each,f=a.extend,q=a.format,g=a.merge,u=a.win,t=a.wrap;h.prototype.transformFromLatLon=function(e,b){if(void 0===u.proj4)return a.error(21),{x:0,y:null};e=u.proj4(b.crs,[e.lon,e.lat]);var d=b.cosAngle||b.rotation&&Math.cos(b.rotation),f=b.sinAngle||b.rotation&&Math.sin(b.rotation);\n", + "e=b.rotation?[e[0]*d+e[1]*f,-e[0]*f+e[1]*d]:e;return{x:((e[0]-(b.xoffset||0))*(b.scale||1)+(b.xpan||0))*(b.jsonres||1)+(b.jsonmarginX||0),y:(((b.yoffset||0)-e[1])*(b.scale||1)+(b.ypan||0))*(b.jsonres||1)-(b.jsonmarginY||0)}};h.prototype.transformToLatLon=function(e,b){if(void 0===u.proj4)a.error(21);else{e={x:((e.x-(b.jsonmarginX||0))/(b.jsonres||1)-(b.xpan||0))/(b.scale||1)+(b.xoffset||0),y:((-e.y-(b.jsonmarginY||0))/(b.jsonres||1)+(b.ypan||0))/(b.scale||1)+(b.yoffset||0)};var d=b.cosAngle||b.rotation&&\n", + "Math.cos(b.rotation),f=b.sinAngle||b.rotation&&Math.sin(b.rotation);b=u.proj4(b.crs,\"WGS84\",b.rotation?{x:e.x*d+e.y*-f,y:e.x*f+e.y*d}:e);return{lat:b.y,lon:b.x}}};h.prototype.fromPointToLatLon=function(e){var b=this.mapTransforms,d;if(b){for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&l({x:e.x,y:-e.y},b[d].hitZone.coordinates[0]))return this.transformToLatLon(e,b[d]);return this.transformToLatLon(e,b[\"default\"])}a.error(22)};h.prototype.fromLatLonToPoint=function(e){var b=this.mapTransforms,d,f;\n", + "if(!b)return a.error(22),{x:0,y:null};for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&(f=this.transformFromLatLon(e,b[d]),l({x:f.x,y:-f.y},b[d].hitZone.coordinates[0])))return f;return this.transformFromLatLon(e,b[\"default\"])};a.geojson=function(a,b,d){var e=[],g=[],h=function(a){var b,d=a.length;g.push(\"M\");for(b=0;bc.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(0g?this:a,a=(g.max-g.min)*g.transA,g.pixelPadding=g.len-a,g.minPixelPadding=\\ng.pixelPadding/2,a=g.fixTo)){a=a[1]-g.toValue(a[0],!0);a*=g.transA;if(Math.abs(a)>g.minPixelPadding||g.min===g.dataMin&&g.max===g.dataMax)a=0;g.minPixelPadding-=a}});l(h,\\\"render\\\",function(){this.fixTo=null})})(x);(function(a){var l=a.addEvent,h=a.Axis,k=a.Chart,f=a.color,q,g=a.each,u=a.extend,t=a.isNumber,e=a.Legend,b=a.LegendSymbolMixin,d=a.noop,n=a.merge,r=a.pick;a.ColorAxis||(q=a.ColorAxis=function(){this.init.apply(this,arguments)},u(q.prototype,h.prototype),u(q.prototype,{defaultColorAxisOptions:{lineWidth:0,\\nminPadding:0,maxPadding:0,gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:\\\"#999999\\\"},labels:{overflow:\\\"justify\\\",rotation:0},minColor:\\\"#e6ebf5\\\",maxColor:\\\"#003399\\\",tickLength:5,showInLegend:!0},keepProps:[\\\"legendGroup\\\",\\\"legendItemHeight\\\",\\\"legendItemWidth\\\",\\\"legendItem\\\",\\\"legendSymbol\\\"].concat(h.prototype.keepProps),init:function(a,b){var c=\\\"vertical\\\"!==a.options.legend.layout,m;this.coll=\\\"colorAxis\\\";m=n(this.defaultColorAxisOptions,\\n{side:c?2:1,reversed:!c},b,{opposite:!c,showEmpty:!1,title:null,visible:a.options.legend.enabled});h.prototype.init.call(this,a,m);b.dataClasses&&this.initDataClasses(b);this.initStops();this.horiz=c;this.zoomEnabled=!1;this.defaultLegendLength=200},initDataClasses:function(a){var b=this.chart,c,m=0,d=b.options.chart.colorCount,e=this.options,y=a.dataClasses.length;this.dataClasses=c=[];this.legendItems=[];g(a.dataClasses,function(a,p){a=n(a);c.push(a);a.color||(\\\"category\\\"===e.dataClassColor?(p=b.options.colors,\\nd=p.length,a.color=p[m],a.colorIndex=m,m++,m===d&&(m=0)):a.color=f(e.minColor).tweenTo(f(e.maxColor),2>y?.5:p/(y-1)))})},setTickPositions:function(){if(!this.dataClasses)return h.prototype.setTickPositions.call(this)},initStops:function(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];g(this.stops,function(a){a.color=f(a[1])})},setOptions:function(a){h.prototype.setOptions.call(this,a);this.options.crosshair=this.options.marker},setAxisSize:function(){var a=this.legendSymbol,\\nb=this.chart,c=b.options.legend||{},p,d;a?(this.left=c=a.attr(\\\"x\\\"),this.top=p=a.attr(\\\"y\\\"),this.width=d=a.attr(\\\"width\\\"),this.height=a=a.attr(\\\"height\\\"),this.right=b.chartWidth-c-d,this.bottom=b.chartHeight-p-a,this.len=this.horiz?d:a,this.pos=this.horiz?c:p):this.len=(this.horiz?c.symbolWidth:c.symbolHeight)||this.defaultLegendLength},normalizedValue:function(a){this.isLog&&(a=this.val2lin(a));return 1-(this.max-a)/(this.max-this.min||1)},toColor:function(a,b){var c=this.stops,p,m,v=this.dataClasses,\\nd,e;if(v)for(e=v.length;e--;){if(d=v[e],p=d.from,c=d.to,(void 0===p||a>=p)&&(void 0===c||a<=c)){m=d.color;b&&(b.dataClass=e,b.colorIndex=d.colorIndex);break}}else{a=this.normalizedValue(a);for(e=c.length;e--&&!(a>c[e][0]););p=c[e]||c[e+1];c=c[e+1]||p;a=1-(c[0]-a)/(c[0]-p[0]||1);m=p.color.tweenTo(c.color,a)}return m},getOffset:function(){var a=this.legendGroup,b=this.chart.axisOffset[this.side];a&&(this.axisParent=a,h.prototype.getOffset.call(this),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=\\nthis.width),this.chart.axisOffset[this.side]=b)},setLegendColor:function(){var a,b=this.reversed;a=b?1:0;b=b?0:1;a=this.horiz?[a,0,b,0]:[0,b,0,a];this.legendColor={linearGradient:{x1:a[0],y1:a[1],x2:a[2],y2:a[3]},stops:this.stops}},drawLegendSymbol:function(a,b){var c=a.padding,p=a.options,d=this.horiz,m=r(p.symbolWidth,d?this.defaultLegendLength:12),v=r(p.symbolHeight,d?12:this.defaultLegendLength),e=r(p.labelPadding,d?16:30),p=r(p.itemDistance,10);this.setLegendColor();b.legendSymbol=this.chart.renderer.rect(0,\\na.baseline-11,m,v).attr({zIndex:1}).add(b.legendGroup);this.legendItemWidth=m+c+(d?p:e);this.legendItemHeight=v+c+(d?e:0)},setState:function(a){g(this.series,function(b){b.setState(a)})},visible:!0,setVisible:d,getSeriesExtremes:function(){var a=this.series,b=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;b--;)void 0!==a[b].valueMin&&(this.dataMin=Math.min(this.dataMin,a[b].valueMin),this.dataMax=Math.max(this.dataMax,a[b].valueMax))},drawCrosshair:function(a,b){var c=b&&b.plotX,p=b&&b.plotY,\\nd,e=this.pos,m=this.len;b&&(d=this.toPixels(b[b.series.colorKey]),de+m&&(d=e+m+2),b.plotX=d,b.plotY=this.len-d,h.prototype.drawCrosshair.call(this,a,b),b.plotX=c,b.plotY=p,this.cross&&!this.cross.addedToColorAxis&&this.legendGroup&&(this.cross.addClass(\\\"highcharts-coloraxis-marker\\\").add(this.legendGroup),this.cross.addedToColorAxis=!0,this.cross.attr({fill:this.crosshair.color})))},getPlotLinePath:function(a,b,c,d,e){return t(e)?this.horiz?[\\\"M\\\",e-4,this.top-6,\\\"L\\\",e+4,this.top-6,e,this.top,\\n\\\"Z\\\"]:[\\\"M\\\",this.left,e,\\\"L\\\",this.left-6,e+6,this.left-6,e-6,\\\"Z\\\"]:h.prototype.getPlotLinePath.call(this,a,b,c,d)},update:function(a,b){var c=this.chart,d=c.legend;g(this.series,function(a){a.isDirtyData=!0});a.dataClasses&&d.allItems&&(g(d.allItems,function(a){a.isDataClass&&a.legendGroup&&a.legendGroup.destroy()}),c.isDirtyLegend=!0);c.options[this.coll]=n(this.userOptions,a);h.prototype.update.call(this,a,b);this.legendItem&&(this.setLegendColor(),d.colorizeItem(this,!0))},remove:function(){this.legendItem&&\\nthis.chart.legend.destroyItem(this);h.prototype.remove.call(this)},getDataClassLegendSymbols:function(){var e=this,v=this.chart,c=this.legendItems,p=v.options.legend,n=p.valueDecimals,r=p.valueSuffix||\\\"\\\",y;c.length||g(this.dataClasses,function(p,m){var w=!0,f=p.from,q=p.to;y=\\\"\\\";void 0===f?y=\\\"\\\\x3c \\\":void 0===q&&(y=\\\"\\\\x3e \\\");void 0!==f&&(y+=a.numberFormat(f,n)+r);void 0!==f&&void 0!==q&&(y+=\\\" - \\\");void 0!==q&&(y+=a.numberFormat(q,n)+r);c.push(u({chart:v,name:y,options:{},drawLegendSymbol:b.drawRectangle,\\nvisible:!0,setState:d,isDataClass:!0,setVisible:function(){w=this.visible=!w;g(e.series,function(a){g(a.points,function(a){a.dataClass===m&&a.setVisible(w)})});v.legend.colorizeItem(this,w)}},p))});return c},name:\\\"\\\"}),g([\\\"fill\\\",\\\"stroke\\\"],function(b){a.Fx.prototype[b+\\\"Setter\\\"]=function(){this.elem.attr(b,f(this.start).tweenTo(f(this.end),this.pos),null,!0)}}),l(k,\\\"afterGetAxes\\\",function(){var a=this.options.colorAxis;this.colorAxis=[];a&&new q(this,a)}),l(e,\\\"afterGetAllItems\\\",function(b){var d=[],\\nc=this.chart.colorAxis[0];c&&c.options&&(c.options.showInLegend&&(c.options.dataClasses?d=c.getDataClassLegendSymbols():d.push(c)),g(c.series,function(c){a.erase(b.allItems,c)}));for(;d.length;)b.allItems.unshift(d.pop())}),l(e,\\\"afterColorizeItem\\\",function(a){a.visible&&a.item.legendColor&&a.item.legendSymbol.attr({fill:a.item.legendColor})}),l(e,\\\"afterUpdate\\\",function(a,b,c){this.chart.colorAxis[0]&&this.chart.colorAxis[0].update({},c)}))})(x);(function(a){var l=a.defined,h=a.each,k=a.noop,f=a.seriesTypes;\\na.colorPointMixin={isValid:function(){return null!==this.value&&Infinity!==this.value&&-Infinity!==this.value},setVisible:function(a){var f=this,q=a?\\\"show\\\":\\\"hide\\\";h([\\\"graphic\\\",\\\"dataLabel\\\"],function(a){if(f[a])f[a][q]()})},setState:function(f){a.Point.prototype.setState.call(this,f);this.graphic&&this.graphic.attr({zIndex:\\\"hover\\\"===f?1:0})}};a.colorSeriesMixin={pointArrayMap:[\\\"value\\\"],axisTypes:[\\\"xAxis\\\",\\\"yAxis\\\",\\\"colorAxis\\\"],optionalAxis:\\\"colorAxis\\\",trackerGroups:[\\\"group\\\",\\\"markerGroup\\\",\\\"dataLabelsGroup\\\"],\\ngetSymbol:k,parallelArrays:[\\\"x\\\",\\\"y\\\",\\\"value\\\"],colorKey:\\\"value\\\",pointAttribs:f.column.prototype.pointAttribs,translateColors:function(){var a=this,f=this.options.nullColor,k=this.colorAxis,l=this.colorKey;h(this.data,function(e){var b=e[l];if(b=e.options.color||(e.isNull?f:k&&void 0!==b?k.toColor(b,e):e.color||a.color))e.color=b})},colorAttribs:function(a){var f={};l(a.color)&&(f[this.colorProp||\\\"fill\\\"]=a.color);return f}}})(x);(function(a){function l(a){a&&(a.preventDefault&&a.preventDefault(),a.stopPropagation&&\\na.stopPropagation(),a.cancelBubble=!0)}function h(a){this.init(a)}var k=a.addEvent,f=a.Chart,q=a.doc,g=a.each,u=a.extend,t=a.merge,e=a.pick;h.prototype.init=function(a){this.chart=a;a.mapNavButtons=[]};h.prototype.update=function(b){var d=this.chart,n=d.options.mapNavigation,f,m,v,c,p,w=function(a){this.handler.call(d,a);l(a)},q=d.mapNavButtons;b&&(n=d.options.mapNavigation=t(d.options.mapNavigation,b));for(;q.length;)q.pop().destroy();e(n.enableButtons,n.enabled)&&!d.renderer.forExport&&a.objectEach(n.buttons,\\nfunction(a,b){f=t(n.buttonOptions,a);m=f.theme;m.style=t(f.theme.style,f.style);c=(v=m.states)&&v.hover;p=v&&v.select;a=d.renderer.button(f.text,0,0,w,m,c,p,0,\\\"zoomIn\\\"===b?\\\"topbutton\\\":\\\"bottombutton\\\").addClass(\\\"highcharts-map-navigation\\\").attr({width:f.width,height:f.height,title:d.options.lang[b],padding:f.padding,zIndex:5}).add();a.handler=f.onclick;a.align(u(f,{width:a.width,height:2*a.height}),null,f.alignTo);k(a.element,\\\"dblclick\\\",l);q.push(a)});this.updateEvents(n)};h.prototype.updateEvents=\\nfunction(a){var b=this.chart;e(a.enableDoubleClickZoom,a.enabled)||a.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||k(b.container,\\\"dblclick\\\",function(a){b.pointer.onContainerDblClick(a)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick());e(a.enableMouseWheelZoom,a.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||k(b.container,void 0===q.onmousewheel?\\\"DOMMouseScroll\\\":\\\"mousewheel\\\",function(a){b.pointer.onContainerMouseWheel(a);l(a);return!1}):this.unbindMouseWheel&&\\n(this.unbindMouseWheel=this.unbindMouseWheel())};u(f.prototype,{fitToBox:function(a,d){g([[\\\"x\\\",\\\"width\\\"],[\\\"y\\\",\\\"height\\\"]],function(b){var e=b[0];b=b[1];a[e]+a[b]>d[e]+d[b]&&(a[b]>d[b]?(a[b]=d[b],a[e]=d[e]):a[e]=d[e]+d[b]-a[b]);a[b]>d[b]&&(a[b]=d[b]);a[e]=b.dataMax-b.dataMin&&p.y<=c.dataMin&&p.height>=c.dataMax-c.dataMin;q&&(b.fixTo=[q-b.pos,d]);m&&(c.fixTo=[m-c.pos,f]);void 0===a||w?(b.setExtremes(void 0,void 0,!1),c.setExtremes(void 0,void 0,!1)):(b.setExtremes(p.x,p.x+p.width,!1),c.setExtremes(p.y,p.y+p.height,!1));this.redraw()}});k(f,\\\"beforeRender\\\",function(){this.mapNavigation=new h(this);this.mapNavigation.update()})})(x);(function(a){var l=\\na.extend,h=a.pick,k=a.Pointer;a=a.wrap;l(k.prototype,{onContainerDblClick:function(a){var f=this.chart;a=this.normalize(a);f.options.mapNavigation.enableDoubleClickZoomTo?f.pointer.inClass(a.target,\\\"highcharts-tracker\\\")&&f.hoverPoint&&f.hoverPoint.zoomTo():f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop)&&f.mapZoom(.5,f.xAxis[0].toValue(a.chartX),f.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)},onContainerMouseWheel:function(a){var f=this.chart,g;a=this.normalize(a);g=a.detail||-(a.wheelDelta/\\n120);f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop)&&f.mapZoom(Math.pow(f.options.mapNavigation.mouseWheelSensitivity,g),f.xAxis[0].toValue(a.chartX),f.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)}});a(k.prototype,\\\"zoomOption\\\",function(a){var f=this.chart.options.mapNavigation;h(f.enableTouchZoom,f.enabled)&&(this.chart.options.chart.pinchType=\\\"xy\\\");a.apply(this,[].slice.call(arguments,1))});a(k.prototype,\\\"pinchTranslate\\\",function(a,h,g,k,l,e,b){a.call(this,h,g,k,l,e,b);\\\"map\\\"===this.chart.options.chart.type&&\\nthis.hasZoom&&(a=k.scaleX>k.scaleY,this.pinchTranslateDirection(!a,h,g,k,l,e,b,a?k.scaleX:k.scaleY))})})(x);(function(a){var l=a.colorPointMixin,h=a.each,k=a.extend,f=a.isNumber,q=a.map,g=a.merge,u=a.noop,t=a.pick,e=a.isArray,b=a.Point,d=a.Series,n=a.seriesType,r=a.seriesTypes,m=a.splat,v=void 0!==a.doc.documentElement.style.vectorEffect;n(\\\"map\\\",\\\"scatter\\\",{allAreas:!0,animation:!1,nullColor:\\\"#f7f7f7\\\",borderColor:\\\"#cccccc\\\",borderWidth:1,marker:null,stickyTracking:!1,joinBy:\\\"hc-key\\\",dataLabels:{formatter:function(){return this.point.value},\\ninside:!0,verticalAlign:\\\"middle\\\",crop:!1,overflow:!1,padding:0},turboThreshold:0,tooltip:{followPointer:!0,pointFormat:\\\"{point.name}: {point.value}\\\\x3cbr/\\\\x3e\\\"},states:{normal:{animation:!0},hover:{halo:null,brightness:.2},select:{color:\\\"#cccccc\\\"}}},g(a.colorSeriesMixin,{type:\\\"map\\\",getExtremesFromAll:!0,useMapGeometry:!0,forceDL:!0,searchPoint:u,directTouch:!0,preserveAspectRatio:!0,pointArrayMap:[\\\"value\\\"],getBox:function(c){var b=Number.MAX_VALUE,d=-b,e=b,m=-b,v=b,n=b,g=this.xAxis,k=this.yAxis,q;\\nh(c||[],function(c){if(c.path){\\\"string\\\"===typeof c.path&&(c.path=a.splitPath(c.path));var p=c.path||[],w=p.length,g=!1,h=-b,k=b,y=-b,r=b,A=c.properties;if(!c._foundBox){for(;w--;)f(p[w])&&(g?(h=Math.max(h,p[w]),k=Math.min(k,p[w])):(y=Math.max(y,p[w]),r=Math.min(r,p[w])),g=!g);c._midX=k+(h-k)*t(c.middleX,A&&A[\\\"hc-middle-x\\\"],.5);c._midY=r+(y-r)*t(c.middleY,A&&A[\\\"hc-middle-y\\\"],.5);c._maxX=h;c._minX=k;c._maxY=y;c._minY=r;c.labelrank=t(c.labelrank,(h-k)*(y-r));c._foundBox=!0}d=Math.max(d,c._maxX);e=Math.min(e,\\nc._minX);m=Math.max(m,c._maxY);v=Math.min(v,c._minY);n=Math.min(c._maxX-c._minX,c._maxY-c._minY,n);q=!0}});q&&(this.minY=Math.min(v,t(this.minY,b)),this.maxY=Math.max(m,t(this.maxY,-b)),this.minX=Math.min(e,t(this.minX,b)),this.maxX=Math.max(d,t(this.maxX,-b)),g&&void 0===g.options.minRange&&(g.minRange=Math.min(5*n,(this.maxX-this.minX)/5,g.minRange||b)),k&&void 0===k.options.minRange&&(k.minRange=Math.min(5*n,(this.maxY-this.minY)/5,k.minRange||b)))},getExtremes:function(){d.prototype.getExtremes.call(this,\\nthis.valueData);this.chart.hasRendered&&this.isDirtyData&&this.getBox(this.options.data);this.valueMin=this.dataMin;this.valueMax=this.dataMax;this.dataMin=this.minY;this.dataMax=this.maxY},translatePath:function(a){var c=!1,b=this.xAxis,d=this.yAxis,e=b.min,m=b.transA,b=b.minPixelPadding,v=d.min,n=d.transA,d=d.minPixelPadding,g,h=[];if(a)for(g=a.length;g--;)f(a[g])?(h[g]=c?(a[g]-e)*m+b:(a[g]-v)*n+d,c=!c):h[g]=a[g];return h},setData:function(c,b,v,n){var p=this.options,w=this.chart.options.chart,\\nk=w&&w.map,r=p.mapData,l=p.joinBy,t=null===l,B=p.keys||this.pointArrayMap,u=[],x={},z=this.chart.mapTransforms;!r&&k&&(r=\\\"string\\\"===typeof k?a.maps[k]:k);t&&(l=\\\"_i\\\");l=this.joinBy=m(l);l[1]||(l[1]=l[0]);c&&h(c,function(b,d){var m=0;if(f(b))c[d]={value:b};else if(e(b)){c[d]={};!p.keys&&b.length>B.length&&\\\"string\\\"===typeof b[0]&&(c[d][\\\"hc-key\\\"]=b[0],++m);for(var v=0;vg&&.99n&&(n=g=1,k=Math.round(k),l=Math.round(l)),t=this.transformGroup,m.renderer.globalAnimation?(u=t.attr(\\\"translateX\\\"),z=t.attr(\\\"translateY\\\"),x=t.attr(\\\"scaleX\\\"),G=t.attr(\\\"scaleY\\\"),\\nt.attr({animator:0}).animate({animator:1},{step:function(a,b){t.attr({translateX:u+(k-u)*b.pos,translateY:z+(l-z)*b.pos,scaleX:x+(g-x)*b.pos,scaleY:G+(n-G)*b.pos})}})):t.attr({translateX:k,translateY:l,scaleX:g,scaleY:n}));v||a.group.element.setAttribute(\\\"stroke-width\\\",a.options[a.pointAttrToOptions&&a.pointAttrToOptions[\\\"stroke-width\\\"]||\\\"borderWidth\\\"]/(g||1));this.drawMapDataLabels()},drawMapDataLabels:function(){d.prototype.drawDataLabels.call(this);this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)},\\nrender:function(){var a=this,b=d.prototype.render;a.chart.renderer.isVML&&3E3=this.minPxSize/2?(c.marker=a.extend(c.marker,{radius:e,width:2*e,height:2*e}),c.dlBox={x:c.plotX-e,y:c.plotY-e,width:2*e,height:2*e}):c.shapeArgs=c.plotY=c.dlBox=void 0},alignDataLabel:r.column.prototype.alignDataLabel,buildKDTree:u,applyZones:u},{haloPath:function(a){return b.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});k.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,d=0,f=b,n=this.isXAxis,\\nk=n?\\\"xData\\\":\\\"yData\\\",r=this.min,u={},x=Math.min(c.plotWidth,c.plotHeight),A=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-r,C=b/E,F=[];q(this.series,function(b){var d=b.options;!b.bubblePadding||!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),n&&(q([\\\"minSize\\\",\\\"maxSize\\\"],function(a){var b=d[a],c=/%$/.test(b),b=e(b);u[a]=c?x*b/100:b}),b.minPxSize=u.minSize,b.maxPxSize=Math.max(u.maxSize,u.minSize),b=b.zData,b.length&&(A=t(d.zMin,Math.min(A,Math.max(h(b),!1===d.displayNegative?\\nd.zThreshold:-Number.MAX_VALUE))),D=t(d.zMax,Math.max(D,l(b))))))});q(F,function(b){var c=b[k],e=c.length,m;n&&b.getRadii(A,D,b.minPxSize,b.maxPxSize);if(0c,f=b[d][1]>c,e!==f&&h<(b[d][0]-b[a][0])*(c-b[a][1])/(b[d][1]-b[a][1])+b[a][0]&&(g=!g);return g}var h=a.Chart,k=a.each,f=a.extend,q=a.format,g=a.merge,u=a.win,t=a.wrap;h.prototype.transformFromLatLon=function(e,b){if(void 0===u.proj4)return a.error(21),{x:0,y:null};e=u.proj4(b.crs,[e.lon,e.lat]);var d=b.cosAngle||b.rotation&&Math.cos(b.rotation),f=b.sinAngle||b.rotation&&Math.sin(b.rotation);\\ne=b.rotation?[e[0]*d+e[1]*f,-e[0]*f+e[1]*d]:e;return{x:((e[0]-(b.xoffset||0))*(b.scale||1)+(b.xpan||0))*(b.jsonres||1)+(b.jsonmarginX||0),y:(((b.yoffset||0)-e[1])*(b.scale||1)+(b.ypan||0))*(b.jsonres||1)-(b.jsonmarginY||0)}};h.prototype.transformToLatLon=function(e,b){if(void 0===u.proj4)a.error(21);else{e={x:((e.x-(b.jsonmarginX||0))/(b.jsonres||1)-(b.xpan||0))/(b.scale||1)+(b.xoffset||0),y:((-e.y-(b.jsonmarginY||0))/(b.jsonres||1)+(b.ypan||0))/(b.scale||1)+(b.yoffset||0)};var d=b.cosAngle||b.rotation&&\\nMath.cos(b.rotation),f=b.sinAngle||b.rotation&&Math.sin(b.rotation);b=u.proj4(b.crs,\\\"WGS84\\\",b.rotation?{x:e.x*d+e.y*-f,y:e.x*f+e.y*d}:e);return{lat:b.y,lon:b.x}}};h.prototype.fromPointToLatLon=function(e){var b=this.mapTransforms,d;if(b){for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&l({x:e.x,y:-e.y},b[d].hitZone.coordinates[0]))return this.transformToLatLon(e,b[d]);return this.transformToLatLon(e,b[\\\"default\\\"])}a.error(22)};h.prototype.fromLatLonToPoint=function(e){var b=this.mapTransforms,d,f;\\nif(!b)return a.error(22),{x:0,y:null};for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&(f=this.transformFromLatLon(e,b[d]),l({x:f.x,y:-f.y},b[d].hitZone.coordinates[0])))return f;return this.transformFromLatLon(e,b[\\\"default\\\"])};a.geojson=function(a,b,d){var e=[],g=[],h=function(a){var b,d=a.length;g.push(\\\"M\\\");for(b=0;bc.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#wmktjlfucrv .highcharts-color-0 {fill: #7cb5ec;stroke: #7cb5ec;}#wmktjlfucrv .highcharts-axis.highcharts-color-0 .highcharts-axis-line {stroke: #7cb5ec;}#wmktjlfucrv .highcharts-color-1 {fill: #90ed7d;stroke: #90ed7d;}#wmktjlfucrv .highcharts-axis.highcharts-color-1 .highcharts-axis-line {stroke: #90ed7d;}#wmktjlfucrv .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-contextbutton{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": 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: '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": 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: '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": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + "\n", + "
" + ], + "text/plain": [ + "\" \\n\\n
\"" + ] + }, + "execution_count": 11, + "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": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + "\n", + "
" + ], + "text/plain": [ + "\" \\n\\n
\"" + ] + }, + "execution_count": 12, + "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": 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: '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": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + "\n", + "
" + ], + "text/plain": [ + "\" \\n\\n
\"" + ] + }, + "execution_count": 14, + "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": 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-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": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + "\n", + "
" + ], + "text/plain": [ + "\" \\n\\n
\"" + ] + }, + "execution_count": 16, + "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": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + "\n", + "
" + ], + "text/plain": [ + "\" \\n\\n
\"" + ] + }, + "execution_count": 17, + "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": 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-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": 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-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": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + "\n", + "
" + ], + "text/plain": [ + "\" \\n\\n
\"" + ] + }, + "execution_count": 20, + "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": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + "\n", + "
" + ], + "text/plain": [ + "\" \\n\\n
\"" + ] + }, + "execution_count": 21, + "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": 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 +} From 10322c092591a9a13cde47c788c1c60dbb73b44a Mon Sep 17 00:00:00 2001 From: Prakriti-nith Date: Wed, 23 May 2018 16:57:06 +0530 Subject: [PATCH 02/11] Resolved errors --- spec/adapters/highcharts_spec.rb | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/spec/adapters/highcharts_spec.rb b/spec/adapters/highcharts_spec.rb index 88220ca..8d7cee0 100644 --- a/spec/adapters/highcharts_spec.rb +++ b/spec/adapters/highcharts_spec.rb @@ -230,9 +230,9 @@ describe "#init_script" do it "generates valid initial script" do js = @chart_bar.init_script - expect(js).to match(/BEGIN highstock.js/i) + expect(js).to match(/BEGIN js\/highstock.js/i) expect(js).to match(/Highstock JS/i) - expect(js).to match(/END highstock.js/i) + expect(js).to match(/END js\/highstock.js/i) expect(js).to match(/BEGIN modules\/exporting.js/i) expect(js).to match(/END modules\/exporting.js/i) expect(js).to match(/BEGIN highcharts-3d.js/i) @@ -348,8 +348,8 @@ html = @chart_line.adapter.generate_html(@chart_line.chart) expect(html).to match(/html/) expect(html).to match(/Chart/) - expect(html).to match(/BEGIN highstock.js/i) - expect(html).to match(/END highstock.js/i) + expect(html).to match(/BEGIN js\/highstock.js/i) + expect(html).to match(/END js\/highstock.js/i) expect(html).to match(/BEGIN modules\/exporting.js/i) expect(html).to match(/END modules\/exporting.js/i) expect(html).to match(/BEGIN highcharts-3d.js/i) @@ -366,8 +366,8 @@ html = @chart_bar.adapter.generate_html(@chart_bar.chart) expect(html).to match(/html/) expect(html).to match(/Chart/) - expect(html).to match(/BEGIN highstock.js/i) - expect(html).to match(/END highstock.js/i) + expect(html).to match(/BEGIN js\/highstock.js/i) + expect(html).to match(/END js\/highstock.js/i) expect(html).to match(/BEGIN modules\/exporting.js/i) expect(html).to match(/END modules\/exporting.js/i) expect(html).to match(/BEGIN highcharts-3d.js/i) @@ -386,8 +386,8 @@ html = @chart_column.adapter.generate_html(@chart_column.chart) expect(html).to match(/html/) expect(html).to match(/Chart/) - expect(html).to match(/BEGIN highstock.js/i) - expect(html).to match(/END highstock.js/i) + expect(html).to match(/BEGIN js\/highstock.js/i) + expect(html).to match(/END js\/highstock.js/i) expect(html).to match(/BEGIN modules\/exporting.js/i) expect(html).to match(/END modules\/exporting.js/i) expect(html).to match(/BEGIN highcharts-3d.js/i) @@ -409,8 +409,8 @@ html = File.read(path) expect(html).to match(/html/) expect(html).to match(/Chart/) - expect(html).to match(/BEGIN highstock.js/i) - expect(html).to match(/END highstock.js/i) + expect(html).to match(/BEGIN js\/highstock.js/i) + expect(html).to match(/END js\/highstock.js/i) expect(html).to match(/script/) expect(html).to match(/Highcharts.Chart\(options\)/) expect(html).to match(/\"chart\": { \"type\": \"line\"/) @@ -422,8 +422,8 @@ html = File.read(path) expect(html).to match(/html/) expect(html).to match(/Chart/) - expect(html).to match(/BEGIN highstock.js/i) - expect(html).to match(/END highstock.js/i) + expect(html).to match(/BEGIN js\/highstock.js/i) + expect(html).to match(/END js\/highstock.js/i) expect(html).to match(/script/) expect(html).to match(/Highcharts.Chart\(options\)/) expect(html).to match(/\"chart\": { \"type\": \"bar\"/) @@ -438,8 +438,8 @@ html = File.read(path) expect(html).to match(/html/) expect(html).to match(/Chart/) - expect(html).to match(/BEGIN highstock.js/i) - expect(html).to match(/END highstock.js/i) + expect(html).to match(/BEGIN js\/highstock.js/i) + expect(html).to match(/END js\/highstock.js/i) expect(html).to match(/script/) expect(html).to match(/Highcharts.Chart\(options\)/) expect(html).to match(/\"chart\": { \"type\": \"column\"/) From 604402d42c380893582e49f057f1e48f9952736b Mon Sep 17 00:00:00 2001 From: Prakriti-nith Date: Fri, 25 May 2018 14:04:56 +0530 Subject: [PATCH 03/11] Added a test --- .../templates/highcharts/init.inline.css.erb | 2 +- spec/adapters/highcharts/display_spec.rb | 5 + .../HighCharts - Custom styling in CSS.ipynb | 291 +++++++----------- 3 files changed, 120 insertions(+), 178 deletions(-) diff --git a/lib/daru/view/templates/highcharts/init.inline.css.erb b/lib/daru/view/templates/highcharts/init.inline.css.erb index 2f0a2eb..6dd7b5d 100644 --- a/lib/daru/view/templates/highcharts/init.inline.css.erb +++ b/lib/daru/view/templates/highcharts/init.inline.css.erb @@ -6,4 +6,4 @@ dependent_css.each{ |dep_css| <%= contents %> /* END <%= dep_css %>*/ -<% } %> \ No newline at end of file +<% } %> diff --git a/spec/adapters/highcharts/display_spec.rb b/spec/adapters/highcharts/display_spec.rb index a118e74..41cefc8 100644 --- a/spec/adapters/highcharts/display_spec.rb +++ b/spec/adapters/highcharts/display_spec.rb @@ -356,6 +356,11 @@ @placeholder) ).to match(/#placeholder .highcharts-background {fill/) end + it "return the correct css of the chart" do + expect(@hc.chart.high_chart_css( + @placeholder) + ).to match(/#placeholder .highcharts-color-1 {/) + end end describe "#chart_hash_must_be_present" do diff --git a/spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb b/spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb index d5be7db..d8891de 100644 --- a/spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb +++ b/spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb @@ -890,20 +890,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -967,20 +967,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1031,20 +1031,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -1094,10 +1094,10 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, @@ -1237,20 +1237,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, @@ -1304,20 +1304,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 8, @@ -1325,69 +1325,6 @@ "output_type": "execute_result" } ], - "source": [ - "opts = {\n", - " chart: {\n", - " type: 'line'\n", - " },\n", - " css: ['.highcharts-contextbutton{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": 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", @@ -1428,29 +1365,29 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 10, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -1541,29 +1478,29 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 11, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -1617,29 +1554,29 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 12, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -1680,16 +1617,16 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 13, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -1782,29 +1719,29 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 14, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -1857,29 +1794,29 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 15, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -1950,29 +1887,29 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 16, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -2044,29 +1981,29 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 17, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -2127,29 +2064,29 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 18, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -2195,29 +2132,29 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 19, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -2267,29 +2204,29 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 20, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -2335,29 +2272,29 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 21, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } From 4ccd61d879b1aa271602df0b313efdc9c22102d8 Mon Sep 17 00:00:00 2001 From: Prakriti-nith Date: Sat, 26 May 2018 18:18:03 +0530 Subject: [PATCH 04/11] Added more examples --- lib/daru/view/adapters/highcharts/display.rb | 11 +- .../highcharts/layout_helper_iruby.rb | 8 - .../HighCharts - Custom styling in CSS.ipynb | 358 +++++++++--------- 3 files changed, 193 insertions(+), 184 deletions(-) diff --git a/lib/daru/view/adapters/highcharts/display.rb b/lib/daru/view/adapters/highcharts/display.rb index 33e4392..8e16d2d 100644 --- a/lib/daru/view/adapters/highcharts/display.rb +++ b/lib/daru/view/adapters/highcharts/display.rb @@ -14,14 +14,15 @@ def self.init_script( # # Note: Don't reorder the dependent_js elements. It must be loaded in # the same sequence. Otherwise some of the JS overlap and doesn't work. - js = '' - js << "\n" + css = '' + css << "\n" + js = '' js << "\n" - js + css + js end class HighChart diff --git a/lib/daru/view/adapters/highcharts/layout_helper_iruby.rb b/lib/daru/view/adapters/highcharts/layout_helper_iruby.rb index 1fa6072..e8c1982 100644 --- a/lib/daru/view/adapters/highcharts/layout_helper_iruby.rb +++ b/lib/daru/view/adapters/highcharts/layout_helper_iruby.rb @@ -8,14 +8,6 @@ def high_chart_iruby(chart_class, placeholder, object, &block) ).concat(content_tag('div', '', object.html_options)) end - def high_map(placeholder, object, &block) - object.html_options[:id] = placeholder - object.options[:chart][:renderTo] = placeholder - build_html_output( - 'Map', placeholder, object, &block - ).concat(content_tag('div', '', object.html_options)) - end - private def build_html_output_iruby(type, placeholder, object, &block) diff --git a/spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb b/spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb index d8891de..7eb03d3 100644 --- a/spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb +++ b/spec/dummy_iruby/HighCharts - Custom styling in CSS.ipynb @@ -563,80 +563,6 @@ "\n", " /* END highstock.js*/\n", "\n", - " /* BEGIN map.js */\n", - "\n", - "/*\n", - " Highmaps JS v6.1.0 (2018-04-13)\n", - " Highmaps as a plugin for Highcharts or Highstock.\n", - "\n", - " (c) 2011-2017 Torstein Honsi\n", - "\n", - " License: www.highcharts.com/license\n", - "*/\n", - "(function(x){\"object\"===typeof module&&module.exports?module.exports=x:x(Highcharts)})(function(x){(function(a){var l=a.addEvent,h=a.Axis,k=a.each,f=a.pick;l(h,\"getSeriesExtremes\",function(){var a=[];this.isXAxis&&(k(this.series,function(q,f){q.useMapGeometry&&(a[f]=q.xData,q.xData=[])}),this.seriesXData=a)});l(h,\"afterGetSeriesExtremes\",function(){var a=this.seriesXData,g,h,t;this.isXAxis&&(g=f(this.dataMin,Number.MAX_VALUE),h=f(this.dataMax,-Number.MAX_VALUE),k(this.series,function(e,b){e.useMapGeometry&&\n", - "(g=Math.min(g,f(e.minX,g)),h=Math.max(h,f(e.maxX,h)),e.xData=a[b],t=!0)}),t&&(this.dataMin=g,this.dataMax=h),delete this.seriesXData)});l(h,\"afterSetAxisTranslation\",function(){var a=this.chart,g;g=a.plotWidth/a.plotHeight;var a=a.xAxis[0],f;\"yAxis\"===this.coll&&void 0!==a.transA&&k(this.series,function(a){a.preserveAspectRatio&&(f=!0)});if(f&&(this.transA=a.transA=Math.min(this.transA,a.transA),g/=(a.max-a.min)/(this.max-this.min),g=1>g?this:a,a=(g.max-g.min)*g.transA,g.pixelPadding=g.len-a,g.minPixelPadding=\n", - "g.pixelPadding/2,a=g.fixTo)){a=a[1]-g.toValue(a[0],!0);a*=g.transA;if(Math.abs(a)>g.minPixelPadding||g.min===g.dataMin&&g.max===g.dataMax)a=0;g.minPixelPadding-=a}});l(h,\"render\",function(){this.fixTo=null})})(x);(function(a){var l=a.addEvent,h=a.Axis,k=a.Chart,f=a.color,q,g=a.each,u=a.extend,t=a.isNumber,e=a.Legend,b=a.LegendSymbolMixin,d=a.noop,n=a.merge,r=a.pick;a.ColorAxis||(q=a.ColorAxis=function(){this.init.apply(this,arguments)},u(q.prototype,h.prototype),u(q.prototype,{defaultColorAxisOptions:{lineWidth:0,\n", - "minPadding:0,maxPadding:0,gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:\"#999999\"},labels:{overflow:\"justify\",rotation:0},minColor:\"#e6ebf5\",maxColor:\"#003399\",tickLength:5,showInLegend:!0},keepProps:[\"legendGroup\",\"legendItemHeight\",\"legendItemWidth\",\"legendItem\",\"legendSymbol\"].concat(h.prototype.keepProps),init:function(a,b){var c=\"vertical\"!==a.options.legend.layout,m;this.coll=\"colorAxis\";m=n(this.defaultColorAxisOptions,\n", - "{side:c?2:1,reversed:!c},b,{opposite:!c,showEmpty:!1,title:null,visible:a.options.legend.enabled});h.prototype.init.call(this,a,m);b.dataClasses&&this.initDataClasses(b);this.initStops();this.horiz=c;this.zoomEnabled=!1;this.defaultLegendLength=200},initDataClasses:function(a){var b=this.chart,c,m=0,d=b.options.chart.colorCount,e=this.options,y=a.dataClasses.length;this.dataClasses=c=[];this.legendItems=[];g(a.dataClasses,function(a,p){a=n(a);c.push(a);a.color||(\"category\"===e.dataClassColor?(p=b.options.colors,\n", - "d=p.length,a.color=p[m],a.colorIndex=m,m++,m===d&&(m=0)):a.color=f(e.minColor).tweenTo(f(e.maxColor),2>y?.5:p/(y-1)))})},setTickPositions:function(){if(!this.dataClasses)return h.prototype.setTickPositions.call(this)},initStops:function(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];g(this.stops,function(a){a.color=f(a[1])})},setOptions:function(a){h.prototype.setOptions.call(this,a);this.options.crosshair=this.options.marker},setAxisSize:function(){var a=this.legendSymbol,\n", - "b=this.chart,c=b.options.legend||{},p,d;a?(this.left=c=a.attr(\"x\"),this.top=p=a.attr(\"y\"),this.width=d=a.attr(\"width\"),this.height=a=a.attr(\"height\"),this.right=b.chartWidth-c-d,this.bottom=b.chartHeight-p-a,this.len=this.horiz?d:a,this.pos=this.horiz?c:p):this.len=(this.horiz?c.symbolWidth:c.symbolHeight)||this.defaultLegendLength},normalizedValue:function(a){this.isLog&&(a=this.val2lin(a));return 1-(this.max-a)/(this.max-this.min||1)},toColor:function(a,b){var c=this.stops,p,m,v=this.dataClasses,\n", - "d,e;if(v)for(e=v.length;e--;){if(d=v[e],p=d.from,c=d.to,(void 0===p||a>=p)&&(void 0===c||a<=c)){m=d.color;b&&(b.dataClass=e,b.colorIndex=d.colorIndex);break}}else{a=this.normalizedValue(a);for(e=c.length;e--&&!(a>c[e][0]););p=c[e]||c[e+1];c=c[e+1]||p;a=1-(c[0]-a)/(c[0]-p[0]||1);m=p.color.tweenTo(c.color,a)}return m},getOffset:function(){var a=this.legendGroup,b=this.chart.axisOffset[this.side];a&&(this.axisParent=a,h.prototype.getOffset.call(this),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=\n", - "this.width),this.chart.axisOffset[this.side]=b)},setLegendColor:function(){var a,b=this.reversed;a=b?1:0;b=b?0:1;a=this.horiz?[a,0,b,0]:[0,b,0,a];this.legendColor={linearGradient:{x1:a[0],y1:a[1],x2:a[2],y2:a[3]},stops:this.stops}},drawLegendSymbol:function(a,b){var c=a.padding,p=a.options,d=this.horiz,m=r(p.symbolWidth,d?this.defaultLegendLength:12),v=r(p.symbolHeight,d?12:this.defaultLegendLength),e=r(p.labelPadding,d?16:30),p=r(p.itemDistance,10);this.setLegendColor();b.legendSymbol=this.chart.renderer.rect(0,\n", - "a.baseline-11,m,v).attr({zIndex:1}).add(b.legendGroup);this.legendItemWidth=m+c+(d?p:e);this.legendItemHeight=v+c+(d?e:0)},setState:function(a){g(this.series,function(b){b.setState(a)})},visible:!0,setVisible:d,getSeriesExtremes:function(){var a=this.series,b=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;b--;)void 0!==a[b].valueMin&&(this.dataMin=Math.min(this.dataMin,a[b].valueMin),this.dataMax=Math.max(this.dataMax,a[b].valueMax))},drawCrosshair:function(a,b){var c=b&&b.plotX,p=b&&b.plotY,\n", - "d,e=this.pos,m=this.len;b&&(d=this.toPixels(b[b.series.colorKey]),de+m&&(d=e+m+2),b.plotX=d,b.plotY=this.len-d,h.prototype.drawCrosshair.call(this,a,b),b.plotX=c,b.plotY=p,this.cross&&!this.cross.addedToColorAxis&&this.legendGroup&&(this.cross.addClass(\"highcharts-coloraxis-marker\").add(this.legendGroup),this.cross.addedToColorAxis=!0,this.cross.attr({fill:this.crosshair.color})))},getPlotLinePath:function(a,b,c,d,e){return t(e)?this.horiz?[\"M\",e-4,this.top-6,\"L\",e+4,this.top-6,e,this.top,\n", - "\"Z\"]:[\"M\",this.left,e,\"L\",this.left-6,e+6,this.left-6,e-6,\"Z\"]:h.prototype.getPlotLinePath.call(this,a,b,c,d)},update:function(a,b){var c=this.chart,d=c.legend;g(this.series,function(a){a.isDirtyData=!0});a.dataClasses&&d.allItems&&(g(d.allItems,function(a){a.isDataClass&&a.legendGroup&&a.legendGroup.destroy()}),c.isDirtyLegend=!0);c.options[this.coll]=n(this.userOptions,a);h.prototype.update.call(this,a,b);this.legendItem&&(this.setLegendColor(),d.colorizeItem(this,!0))},remove:function(){this.legendItem&&\n", - "this.chart.legend.destroyItem(this);h.prototype.remove.call(this)},getDataClassLegendSymbols:function(){var e=this,v=this.chart,c=this.legendItems,p=v.options.legend,n=p.valueDecimals,r=p.valueSuffix||\"\",y;c.length||g(this.dataClasses,function(p,m){var w=!0,f=p.from,q=p.to;y=\"\";void 0===f?y=\"\\x3c \":void 0===q&&(y=\"\\x3e \");void 0!==f&&(y+=a.numberFormat(f,n)+r);void 0!==f&&void 0!==q&&(y+=\" - \");void 0!==q&&(y+=a.numberFormat(q,n)+r);c.push(u({chart:v,name:y,options:{},drawLegendSymbol:b.drawRectangle,\n", - "visible:!0,setState:d,isDataClass:!0,setVisible:function(){w=this.visible=!w;g(e.series,function(a){g(a.points,function(a){a.dataClass===m&&a.setVisible(w)})});v.legend.colorizeItem(this,w)}},p))});return c},name:\"\"}),g([\"fill\",\"stroke\"],function(b){a.Fx.prototype[b+\"Setter\"]=function(){this.elem.attr(b,f(this.start).tweenTo(f(this.end),this.pos),null,!0)}}),l(k,\"afterGetAxes\",function(){var a=this.options.colorAxis;this.colorAxis=[];a&&new q(this,a)}),l(e,\"afterGetAllItems\",function(b){var d=[],\n", - "c=this.chart.colorAxis[0];c&&c.options&&(c.options.showInLegend&&(c.options.dataClasses?d=c.getDataClassLegendSymbols():d.push(c)),g(c.series,function(c){a.erase(b.allItems,c)}));for(;d.length;)b.allItems.unshift(d.pop())}),l(e,\"afterColorizeItem\",function(a){a.visible&&a.item.legendColor&&a.item.legendSymbol.attr({fill:a.item.legendColor})}),l(e,\"afterUpdate\",function(a,b,c){this.chart.colorAxis[0]&&this.chart.colorAxis[0].update({},c)}))})(x);(function(a){var l=a.defined,h=a.each,k=a.noop,f=a.seriesTypes;\n", - "a.colorPointMixin={isValid:function(){return null!==this.value&&Infinity!==this.value&&-Infinity!==this.value},setVisible:function(a){var f=this,q=a?\"show\":\"hide\";h([\"graphic\",\"dataLabel\"],function(a){if(f[a])f[a][q]()})},setState:function(f){a.Point.prototype.setState.call(this,f);this.graphic&&this.graphic.attr({zIndex:\"hover\"===f?1:0})}};a.colorSeriesMixin={pointArrayMap:[\"value\"],axisTypes:[\"xAxis\",\"yAxis\",\"colorAxis\"],optionalAxis:\"colorAxis\",trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"],\n", - "getSymbol:k,parallelArrays:[\"x\",\"y\",\"value\"],colorKey:\"value\",pointAttribs:f.column.prototype.pointAttribs,translateColors:function(){var a=this,f=this.options.nullColor,k=this.colorAxis,l=this.colorKey;h(this.data,function(e){var b=e[l];if(b=e.options.color||(e.isNull?f:k&&void 0!==b?k.toColor(b,e):e.color||a.color))e.color=b})},colorAttribs:function(a){var f={};l(a.color)&&(f[this.colorProp||\"fill\"]=a.color);return f}}})(x);(function(a){function l(a){a&&(a.preventDefault&&a.preventDefault(),a.stopPropagation&&\n", - "a.stopPropagation(),a.cancelBubble=!0)}function h(a){this.init(a)}var k=a.addEvent,f=a.Chart,q=a.doc,g=a.each,u=a.extend,t=a.merge,e=a.pick;h.prototype.init=function(a){this.chart=a;a.mapNavButtons=[]};h.prototype.update=function(b){var d=this.chart,n=d.options.mapNavigation,f,m,v,c,p,w=function(a){this.handler.call(d,a);l(a)},q=d.mapNavButtons;b&&(n=d.options.mapNavigation=t(d.options.mapNavigation,b));for(;q.length;)q.pop().destroy();e(n.enableButtons,n.enabled)&&!d.renderer.forExport&&a.objectEach(n.buttons,\n", - "function(a,b){f=t(n.buttonOptions,a);m=f.theme;m.style=t(f.theme.style,f.style);c=(v=m.states)&&v.hover;p=v&&v.select;a=d.renderer.button(f.text,0,0,w,m,c,p,0,\"zoomIn\"===b?\"topbutton\":\"bottombutton\").addClass(\"highcharts-map-navigation\").attr({width:f.width,height:f.height,title:d.options.lang[b],padding:f.padding,zIndex:5}).add();a.handler=f.onclick;a.align(u(f,{width:a.width,height:2*a.height}),null,f.alignTo);k(a.element,\"dblclick\",l);q.push(a)});this.updateEvents(n)};h.prototype.updateEvents=\n", - "function(a){var b=this.chart;e(a.enableDoubleClickZoom,a.enabled)||a.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||k(b.container,\"dblclick\",function(a){b.pointer.onContainerDblClick(a)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick());e(a.enableMouseWheelZoom,a.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||k(b.container,void 0===q.onmousewheel?\"DOMMouseScroll\":\"mousewheel\",function(a){b.pointer.onContainerMouseWheel(a);l(a);return!1}):this.unbindMouseWheel&&\n", - "(this.unbindMouseWheel=this.unbindMouseWheel())};u(f.prototype,{fitToBox:function(a,d){g([[\"x\",\"width\"],[\"y\",\"height\"]],function(b){var e=b[0];b=b[1];a[e]+a[b]>d[e]+d[b]&&(a[b]>d[b]?(a[b]=d[b],a[e]=d[e]):a[e]=d[e]+d[b]-a[b]);a[b]>d[b]&&(a[b]=d[b]);a[e]=b.dataMax-b.dataMin&&p.y<=c.dataMin&&p.height>=c.dataMax-c.dataMin;q&&(b.fixTo=[q-b.pos,d]);m&&(c.fixTo=[m-c.pos,f]);void 0===a||w?(b.setExtremes(void 0,void 0,!1),c.setExtremes(void 0,void 0,!1)):(b.setExtremes(p.x,p.x+p.width,!1),c.setExtremes(p.y,p.y+p.height,!1));this.redraw()}});k(f,\"beforeRender\",function(){this.mapNavigation=new h(this);this.mapNavigation.update()})})(x);(function(a){var l=\n", - "a.extend,h=a.pick,k=a.Pointer;a=a.wrap;l(k.prototype,{onContainerDblClick:function(a){var f=this.chart;a=this.normalize(a);f.options.mapNavigation.enableDoubleClickZoomTo?f.pointer.inClass(a.target,\"highcharts-tracker\")&&f.hoverPoint&&f.hoverPoint.zoomTo():f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop)&&f.mapZoom(.5,f.xAxis[0].toValue(a.chartX),f.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)},onContainerMouseWheel:function(a){var f=this.chart,g;a=this.normalize(a);g=a.detail||-(a.wheelDelta/\n", - "120);f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop)&&f.mapZoom(Math.pow(f.options.mapNavigation.mouseWheelSensitivity,g),f.xAxis[0].toValue(a.chartX),f.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)}});a(k.prototype,\"zoomOption\",function(a){var f=this.chart.options.mapNavigation;h(f.enableTouchZoom,f.enabled)&&(this.chart.options.chart.pinchType=\"xy\");a.apply(this,[].slice.call(arguments,1))});a(k.prototype,\"pinchTranslate\",function(a,h,g,k,l,e,b){a.call(this,h,g,k,l,e,b);\"map\"===this.chart.options.chart.type&&\n", - "this.hasZoom&&(a=k.scaleX>k.scaleY,this.pinchTranslateDirection(!a,h,g,k,l,e,b,a?k.scaleX:k.scaleY))})})(x);(function(a){var l=a.colorPointMixin,h=a.each,k=a.extend,f=a.isNumber,q=a.map,g=a.merge,u=a.noop,t=a.pick,e=a.isArray,b=a.Point,d=a.Series,n=a.seriesType,r=a.seriesTypes,m=a.splat,v=void 0!==a.doc.documentElement.style.vectorEffect;n(\"map\",\"scatter\",{allAreas:!0,animation:!1,nullColor:\"#f7f7f7\",borderColor:\"#cccccc\",borderWidth:1,marker:null,stickyTracking:!1,joinBy:\"hc-key\",dataLabels:{formatter:function(){return this.point.value},\n", - "inside:!0,verticalAlign:\"middle\",crop:!1,overflow:!1,padding:0},turboThreshold:0,tooltip:{followPointer:!0,pointFormat:\"{point.name}: {point.value}\\x3cbr/\\x3e\"},states:{normal:{animation:!0},hover:{halo:null,brightness:.2},select:{color:\"#cccccc\"}}},g(a.colorSeriesMixin,{type:\"map\",getExtremesFromAll:!0,useMapGeometry:!0,forceDL:!0,searchPoint:u,directTouch:!0,preserveAspectRatio:!0,pointArrayMap:[\"value\"],getBox:function(c){var b=Number.MAX_VALUE,d=-b,e=b,m=-b,v=b,n=b,g=this.xAxis,k=this.yAxis,q;\n", - "h(c||[],function(c){if(c.path){\"string\"===typeof c.path&&(c.path=a.splitPath(c.path));var p=c.path||[],w=p.length,g=!1,h=-b,k=b,y=-b,r=b,A=c.properties;if(!c._foundBox){for(;w--;)f(p[w])&&(g?(h=Math.max(h,p[w]),k=Math.min(k,p[w])):(y=Math.max(y,p[w]),r=Math.min(r,p[w])),g=!g);c._midX=k+(h-k)*t(c.middleX,A&&A[\"hc-middle-x\"],.5);c._midY=r+(y-r)*t(c.middleY,A&&A[\"hc-middle-y\"],.5);c._maxX=h;c._minX=k;c._maxY=y;c._minY=r;c.labelrank=t(c.labelrank,(h-k)*(y-r));c._foundBox=!0}d=Math.max(d,c._maxX);e=Math.min(e,\n", - "c._minX);m=Math.max(m,c._maxY);v=Math.min(v,c._minY);n=Math.min(c._maxX-c._minX,c._maxY-c._minY,n);q=!0}});q&&(this.minY=Math.min(v,t(this.minY,b)),this.maxY=Math.max(m,t(this.maxY,-b)),this.minX=Math.min(e,t(this.minX,b)),this.maxX=Math.max(d,t(this.maxX,-b)),g&&void 0===g.options.minRange&&(g.minRange=Math.min(5*n,(this.maxX-this.minX)/5,g.minRange||b)),k&&void 0===k.options.minRange&&(k.minRange=Math.min(5*n,(this.maxY-this.minY)/5,k.minRange||b)))},getExtremes:function(){d.prototype.getExtremes.call(this,\n", - "this.valueData);this.chart.hasRendered&&this.isDirtyData&&this.getBox(this.options.data);this.valueMin=this.dataMin;this.valueMax=this.dataMax;this.dataMin=this.minY;this.dataMax=this.maxY},translatePath:function(a){var c=!1,b=this.xAxis,d=this.yAxis,e=b.min,m=b.transA,b=b.minPixelPadding,v=d.min,n=d.transA,d=d.minPixelPadding,g,h=[];if(a)for(g=a.length;g--;)f(a[g])?(h[g]=c?(a[g]-e)*m+b:(a[g]-v)*n+d,c=!c):h[g]=a[g];return h},setData:function(c,b,v,n){var p=this.options,w=this.chart.options.chart,\n", - "k=w&&w.map,r=p.mapData,l=p.joinBy,t=null===l,B=p.keys||this.pointArrayMap,u=[],x={},z=this.chart.mapTransforms;!r&&k&&(r=\"string\"===typeof k?a.maps[k]:k);t&&(l=\"_i\");l=this.joinBy=m(l);l[1]||(l[1]=l[0]);c&&h(c,function(b,d){var m=0;if(f(b))c[d]={value:b};else if(e(b)){c[d]={};!p.keys&&b.length>B.length&&\"string\"===typeof b[0]&&(c[d][\"hc-key\"]=b[0],++m);for(var v=0;vg&&.99n&&(n=g=1,k=Math.round(k),l=Math.round(l)),t=this.transformGroup,m.renderer.globalAnimation?(u=t.attr(\"translateX\"),z=t.attr(\"translateY\"),x=t.attr(\"scaleX\"),G=t.attr(\"scaleY\"),\n", - "t.attr({animator:0}).animate({animator:1},{step:function(a,b){t.attr({translateX:u+(k-u)*b.pos,translateY:z+(l-z)*b.pos,scaleX:x+(g-x)*b.pos,scaleY:G+(n-G)*b.pos})}})):t.attr({translateX:k,translateY:l,scaleX:g,scaleY:n}));v||a.group.element.setAttribute(\"stroke-width\",a.options[a.pointAttrToOptions&&a.pointAttrToOptions[\"stroke-width\"]||\"borderWidth\"]/(g||1));this.drawMapDataLabels()},drawMapDataLabels:function(){d.prototype.drawDataLabels.call(this);this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)},\n", - "render:function(){var a=this,b=d.prototype.render;a.chart.renderer.isVML&&3E3=this.minPxSize/2?(c.marker=a.extend(c.marker,{radius:e,width:2*e,height:2*e}),c.dlBox={x:c.plotX-e,y:c.plotY-e,width:2*e,height:2*e}):c.shapeArgs=c.plotY=c.dlBox=void 0},alignDataLabel:r.column.prototype.alignDataLabel,buildKDTree:u,applyZones:u},{haloPath:function(a){return b.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});k.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,d=0,f=b,n=this.isXAxis,\n", - "k=n?\"xData\":\"yData\",r=this.min,u={},x=Math.min(c.plotWidth,c.plotHeight),A=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-r,C=b/E,F=[];q(this.series,function(b){var d=b.options;!b.bubblePadding||!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),n&&(q([\"minSize\",\"maxSize\"],function(a){var b=d[a],c=/%$/.test(b),b=e(b);u[a]=c?x*b/100:b}),b.minPxSize=u.minSize,b.maxPxSize=Math.max(u.maxSize,u.minSize),b=b.zData,b.length&&(A=t(d.zMin,Math.min(A,Math.max(h(b),!1===d.displayNegative?\n", - "d.zThreshold:-Number.MAX_VALUE))),D=t(d.zMax,Math.max(D,l(b))))))});q(F,function(b){var c=b[k],e=c.length,m;n&&b.getRadii(A,D,b.minPxSize,b.maxPxSize);if(0c,f=b[d][1]>c,e!==f&&h<(b[d][0]-b[a][0])*(c-b[a][1])/(b[d][1]-b[a][1])+b[a][0]&&(g=!g);return g}var h=a.Chart,k=a.each,f=a.extend,q=a.format,g=a.merge,u=a.win,t=a.wrap;h.prototype.transformFromLatLon=function(e,b){if(void 0===u.proj4)return a.error(21),{x:0,y:null};e=u.proj4(b.crs,[e.lon,e.lat]);var d=b.cosAngle||b.rotation&&Math.cos(b.rotation),f=b.sinAngle||b.rotation&&Math.sin(b.rotation);\n", - "e=b.rotation?[e[0]*d+e[1]*f,-e[0]*f+e[1]*d]:e;return{x:((e[0]-(b.xoffset||0))*(b.scale||1)+(b.xpan||0))*(b.jsonres||1)+(b.jsonmarginX||0),y:(((b.yoffset||0)-e[1])*(b.scale||1)+(b.ypan||0))*(b.jsonres||1)-(b.jsonmarginY||0)}};h.prototype.transformToLatLon=function(e,b){if(void 0===u.proj4)a.error(21);else{e={x:((e.x-(b.jsonmarginX||0))/(b.jsonres||1)-(b.xpan||0))/(b.scale||1)+(b.xoffset||0),y:((-e.y-(b.jsonmarginY||0))/(b.jsonres||1)+(b.ypan||0))/(b.scale||1)+(b.yoffset||0)};var d=b.cosAngle||b.rotation&&\n", - "Math.cos(b.rotation),f=b.sinAngle||b.rotation&&Math.sin(b.rotation);b=u.proj4(b.crs,\"WGS84\",b.rotation?{x:e.x*d+e.y*-f,y:e.x*f+e.y*d}:e);return{lat:b.y,lon:b.x}}};h.prototype.fromPointToLatLon=function(e){var b=this.mapTransforms,d;if(b){for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&l({x:e.x,y:-e.y},b[d].hitZone.coordinates[0]))return this.transformToLatLon(e,b[d]);return this.transformToLatLon(e,b[\"default\"])}a.error(22)};h.prototype.fromLatLonToPoint=function(e){var b=this.mapTransforms,d,f;\n", - "if(!b)return a.error(22),{x:0,y:null};for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&(f=this.transformFromLatLon(e,b[d]),l({x:f.x,y:-f.y},b[d].hitZone.coordinates[0])))return f;return this.transformFromLatLon(e,b[\"default\"])};a.geojson=function(a,b,d){var e=[],g=[],h=function(a){var b,d=a.length;g.push(\"M\");for(b=0;bparseInt(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(0g?this:a,a=(g.max-g.min)*g.transA,g.pixelPadding=g.len-a,g.minPixelPadding=\\ng.pixelPadding/2,a=g.fixTo)){a=a[1]-g.toValue(a[0],!0);a*=g.transA;if(Math.abs(a)>g.minPixelPadding||g.min===g.dataMin&&g.max===g.dataMax)a=0;g.minPixelPadding-=a}});l(h,\\\"render\\\",function(){this.fixTo=null})})(x);(function(a){var l=a.addEvent,h=a.Axis,k=a.Chart,f=a.color,q,g=a.each,u=a.extend,t=a.isNumber,e=a.Legend,b=a.LegendSymbolMixin,d=a.noop,n=a.merge,r=a.pick;a.ColorAxis||(q=a.ColorAxis=function(){this.init.apply(this,arguments)},u(q.prototype,h.prototype),u(q.prototype,{defaultColorAxisOptions:{lineWidth:0,\\nminPadding:0,maxPadding:0,gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:\\\"#999999\\\"},labels:{overflow:\\\"justify\\\",rotation:0},minColor:\\\"#e6ebf5\\\",maxColor:\\\"#003399\\\",tickLength:5,showInLegend:!0},keepProps:[\\\"legendGroup\\\",\\\"legendItemHeight\\\",\\\"legendItemWidth\\\",\\\"legendItem\\\",\\\"legendSymbol\\\"].concat(h.prototype.keepProps),init:function(a,b){var c=\\\"vertical\\\"!==a.options.legend.layout,m;this.coll=\\\"colorAxis\\\";m=n(this.defaultColorAxisOptions,\\n{side:c?2:1,reversed:!c},b,{opposite:!c,showEmpty:!1,title:null,visible:a.options.legend.enabled});h.prototype.init.call(this,a,m);b.dataClasses&&this.initDataClasses(b);this.initStops();this.horiz=c;this.zoomEnabled=!1;this.defaultLegendLength=200},initDataClasses:function(a){var b=this.chart,c,m=0,d=b.options.chart.colorCount,e=this.options,y=a.dataClasses.length;this.dataClasses=c=[];this.legendItems=[];g(a.dataClasses,function(a,p){a=n(a);c.push(a);a.color||(\\\"category\\\"===e.dataClassColor?(p=b.options.colors,\\nd=p.length,a.color=p[m],a.colorIndex=m,m++,m===d&&(m=0)):a.color=f(e.minColor).tweenTo(f(e.maxColor),2>y?.5:p/(y-1)))})},setTickPositions:function(){if(!this.dataClasses)return h.prototype.setTickPositions.call(this)},initStops:function(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];g(this.stops,function(a){a.color=f(a[1])})},setOptions:function(a){h.prototype.setOptions.call(this,a);this.options.crosshair=this.options.marker},setAxisSize:function(){var a=this.legendSymbol,\\nb=this.chart,c=b.options.legend||{},p,d;a?(this.left=c=a.attr(\\\"x\\\"),this.top=p=a.attr(\\\"y\\\"),this.width=d=a.attr(\\\"width\\\"),this.height=a=a.attr(\\\"height\\\"),this.right=b.chartWidth-c-d,this.bottom=b.chartHeight-p-a,this.len=this.horiz?d:a,this.pos=this.horiz?c:p):this.len=(this.horiz?c.symbolWidth:c.symbolHeight)||this.defaultLegendLength},normalizedValue:function(a){this.isLog&&(a=this.val2lin(a));return 1-(this.max-a)/(this.max-this.min||1)},toColor:function(a,b){var c=this.stops,p,m,v=this.dataClasses,\\nd,e;if(v)for(e=v.length;e--;){if(d=v[e],p=d.from,c=d.to,(void 0===p||a>=p)&&(void 0===c||a<=c)){m=d.color;b&&(b.dataClass=e,b.colorIndex=d.colorIndex);break}}else{a=this.normalizedValue(a);for(e=c.length;e--&&!(a>c[e][0]););p=c[e]||c[e+1];c=c[e+1]||p;a=1-(c[0]-a)/(c[0]-p[0]||1);m=p.color.tweenTo(c.color,a)}return m},getOffset:function(){var a=this.legendGroup,b=this.chart.axisOffset[this.side];a&&(this.axisParent=a,h.prototype.getOffset.call(this),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=\\nthis.width),this.chart.axisOffset[this.side]=b)},setLegendColor:function(){var a,b=this.reversed;a=b?1:0;b=b?0:1;a=this.horiz?[a,0,b,0]:[0,b,0,a];this.legendColor={linearGradient:{x1:a[0],y1:a[1],x2:a[2],y2:a[3]},stops:this.stops}},drawLegendSymbol:function(a,b){var c=a.padding,p=a.options,d=this.horiz,m=r(p.symbolWidth,d?this.defaultLegendLength:12),v=r(p.symbolHeight,d?12:this.defaultLegendLength),e=r(p.labelPadding,d?16:30),p=r(p.itemDistance,10);this.setLegendColor();b.legendSymbol=this.chart.renderer.rect(0,\\na.baseline-11,m,v).attr({zIndex:1}).add(b.legendGroup);this.legendItemWidth=m+c+(d?p:e);this.legendItemHeight=v+c+(d?e:0)},setState:function(a){g(this.series,function(b){b.setState(a)})},visible:!0,setVisible:d,getSeriesExtremes:function(){var a=this.series,b=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;b--;)void 0!==a[b].valueMin&&(this.dataMin=Math.min(this.dataMin,a[b].valueMin),this.dataMax=Math.max(this.dataMax,a[b].valueMax))},drawCrosshair:function(a,b){var c=b&&b.plotX,p=b&&b.plotY,\\nd,e=this.pos,m=this.len;b&&(d=this.toPixels(b[b.series.colorKey]),de+m&&(d=e+m+2),b.plotX=d,b.plotY=this.len-d,h.prototype.drawCrosshair.call(this,a,b),b.plotX=c,b.plotY=p,this.cross&&!this.cross.addedToColorAxis&&this.legendGroup&&(this.cross.addClass(\\\"highcharts-coloraxis-marker\\\").add(this.legendGroup),this.cross.addedToColorAxis=!0,this.cross.attr({fill:this.crosshair.color})))},getPlotLinePath:function(a,b,c,d,e){return t(e)?this.horiz?[\\\"M\\\",e-4,this.top-6,\\\"L\\\",e+4,this.top-6,e,this.top,\\n\\\"Z\\\"]:[\\\"M\\\",this.left,e,\\\"L\\\",this.left-6,e+6,this.left-6,e-6,\\\"Z\\\"]:h.prototype.getPlotLinePath.call(this,a,b,c,d)},update:function(a,b){var c=this.chart,d=c.legend;g(this.series,function(a){a.isDirtyData=!0});a.dataClasses&&d.allItems&&(g(d.allItems,function(a){a.isDataClass&&a.legendGroup&&a.legendGroup.destroy()}),c.isDirtyLegend=!0);c.options[this.coll]=n(this.userOptions,a);h.prototype.update.call(this,a,b);this.legendItem&&(this.setLegendColor(),d.colorizeItem(this,!0))},remove:function(){this.legendItem&&\\nthis.chart.legend.destroyItem(this);h.prototype.remove.call(this)},getDataClassLegendSymbols:function(){var e=this,v=this.chart,c=this.legendItems,p=v.options.legend,n=p.valueDecimals,r=p.valueSuffix||\\\"\\\",y;c.length||g(this.dataClasses,function(p,m){var w=!0,f=p.from,q=p.to;y=\\\"\\\";void 0===f?y=\\\"\\\\x3c \\\":void 0===q&&(y=\\\"\\\\x3e \\\");void 0!==f&&(y+=a.numberFormat(f,n)+r);void 0!==f&&void 0!==q&&(y+=\\\" - \\\");void 0!==q&&(y+=a.numberFormat(q,n)+r);c.push(u({chart:v,name:y,options:{},drawLegendSymbol:b.drawRectangle,\\nvisible:!0,setState:d,isDataClass:!0,setVisible:function(){w=this.visible=!w;g(e.series,function(a){g(a.points,function(a){a.dataClass===m&&a.setVisible(w)})});v.legend.colorizeItem(this,w)}},p))});return c},name:\\\"\\\"}),g([\\\"fill\\\",\\\"stroke\\\"],function(b){a.Fx.prototype[b+\\\"Setter\\\"]=function(){this.elem.attr(b,f(this.start).tweenTo(f(this.end),this.pos),null,!0)}}),l(k,\\\"afterGetAxes\\\",function(){var a=this.options.colorAxis;this.colorAxis=[];a&&new q(this,a)}),l(e,\\\"afterGetAllItems\\\",function(b){var d=[],\\nc=this.chart.colorAxis[0];c&&c.options&&(c.options.showInLegend&&(c.options.dataClasses?d=c.getDataClassLegendSymbols():d.push(c)),g(c.series,function(c){a.erase(b.allItems,c)}));for(;d.length;)b.allItems.unshift(d.pop())}),l(e,\\\"afterColorizeItem\\\",function(a){a.visible&&a.item.legendColor&&a.item.legendSymbol.attr({fill:a.item.legendColor})}),l(e,\\\"afterUpdate\\\",function(a,b,c){this.chart.colorAxis[0]&&this.chart.colorAxis[0].update({},c)}))})(x);(function(a){var l=a.defined,h=a.each,k=a.noop,f=a.seriesTypes;\\na.colorPointMixin={isValid:function(){return null!==this.value&&Infinity!==this.value&&-Infinity!==this.value},setVisible:function(a){var f=this,q=a?\\\"show\\\":\\\"hide\\\";h([\\\"graphic\\\",\\\"dataLabel\\\"],function(a){if(f[a])f[a][q]()})},setState:function(f){a.Point.prototype.setState.call(this,f);this.graphic&&this.graphic.attr({zIndex:\\\"hover\\\"===f?1:0})}};a.colorSeriesMixin={pointArrayMap:[\\\"value\\\"],axisTypes:[\\\"xAxis\\\",\\\"yAxis\\\",\\\"colorAxis\\\"],optionalAxis:\\\"colorAxis\\\",trackerGroups:[\\\"group\\\",\\\"markerGroup\\\",\\\"dataLabelsGroup\\\"],\\ngetSymbol:k,parallelArrays:[\\\"x\\\",\\\"y\\\",\\\"value\\\"],colorKey:\\\"value\\\",pointAttribs:f.column.prototype.pointAttribs,translateColors:function(){var a=this,f=this.options.nullColor,k=this.colorAxis,l=this.colorKey;h(this.data,function(e){var b=e[l];if(b=e.options.color||(e.isNull?f:k&&void 0!==b?k.toColor(b,e):e.color||a.color))e.color=b})},colorAttribs:function(a){var f={};l(a.color)&&(f[this.colorProp||\\\"fill\\\"]=a.color);return f}}})(x);(function(a){function l(a){a&&(a.preventDefault&&a.preventDefault(),a.stopPropagation&&\\na.stopPropagation(),a.cancelBubble=!0)}function h(a){this.init(a)}var k=a.addEvent,f=a.Chart,q=a.doc,g=a.each,u=a.extend,t=a.merge,e=a.pick;h.prototype.init=function(a){this.chart=a;a.mapNavButtons=[]};h.prototype.update=function(b){var d=this.chart,n=d.options.mapNavigation,f,m,v,c,p,w=function(a){this.handler.call(d,a);l(a)},q=d.mapNavButtons;b&&(n=d.options.mapNavigation=t(d.options.mapNavigation,b));for(;q.length;)q.pop().destroy();e(n.enableButtons,n.enabled)&&!d.renderer.forExport&&a.objectEach(n.buttons,\\nfunction(a,b){f=t(n.buttonOptions,a);m=f.theme;m.style=t(f.theme.style,f.style);c=(v=m.states)&&v.hover;p=v&&v.select;a=d.renderer.button(f.text,0,0,w,m,c,p,0,\\\"zoomIn\\\"===b?\\\"topbutton\\\":\\\"bottombutton\\\").addClass(\\\"highcharts-map-navigation\\\").attr({width:f.width,height:f.height,title:d.options.lang[b],padding:f.padding,zIndex:5}).add();a.handler=f.onclick;a.align(u(f,{width:a.width,height:2*a.height}),null,f.alignTo);k(a.element,\\\"dblclick\\\",l);q.push(a)});this.updateEvents(n)};h.prototype.updateEvents=\\nfunction(a){var b=this.chart;e(a.enableDoubleClickZoom,a.enabled)||a.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||k(b.container,\\\"dblclick\\\",function(a){b.pointer.onContainerDblClick(a)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick());e(a.enableMouseWheelZoom,a.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||k(b.container,void 0===q.onmousewheel?\\\"DOMMouseScroll\\\":\\\"mousewheel\\\",function(a){b.pointer.onContainerMouseWheel(a);l(a);return!1}):this.unbindMouseWheel&&\\n(this.unbindMouseWheel=this.unbindMouseWheel())};u(f.prototype,{fitToBox:function(a,d){g([[\\\"x\\\",\\\"width\\\"],[\\\"y\\\",\\\"height\\\"]],function(b){var e=b[0];b=b[1];a[e]+a[b]>d[e]+d[b]&&(a[b]>d[b]?(a[b]=d[b],a[e]=d[e]):a[e]=d[e]+d[b]-a[b]);a[b]>d[b]&&(a[b]=d[b]);a[e]=b.dataMax-b.dataMin&&p.y<=c.dataMin&&p.height>=c.dataMax-c.dataMin;q&&(b.fixTo=[q-b.pos,d]);m&&(c.fixTo=[m-c.pos,f]);void 0===a||w?(b.setExtremes(void 0,void 0,!1),c.setExtremes(void 0,void 0,!1)):(b.setExtremes(p.x,p.x+p.width,!1),c.setExtremes(p.y,p.y+p.height,!1));this.redraw()}});k(f,\\\"beforeRender\\\",function(){this.mapNavigation=new h(this);this.mapNavigation.update()})})(x);(function(a){var l=\\na.extend,h=a.pick,k=a.Pointer;a=a.wrap;l(k.prototype,{onContainerDblClick:function(a){var f=this.chart;a=this.normalize(a);f.options.mapNavigation.enableDoubleClickZoomTo?f.pointer.inClass(a.target,\\\"highcharts-tracker\\\")&&f.hoverPoint&&f.hoverPoint.zoomTo():f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop)&&f.mapZoom(.5,f.xAxis[0].toValue(a.chartX),f.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)},onContainerMouseWheel:function(a){var f=this.chart,g;a=this.normalize(a);g=a.detail||-(a.wheelDelta/\\n120);f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop)&&f.mapZoom(Math.pow(f.options.mapNavigation.mouseWheelSensitivity,g),f.xAxis[0].toValue(a.chartX),f.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)}});a(k.prototype,\\\"zoomOption\\\",function(a){var f=this.chart.options.mapNavigation;h(f.enableTouchZoom,f.enabled)&&(this.chart.options.chart.pinchType=\\\"xy\\\");a.apply(this,[].slice.call(arguments,1))});a(k.prototype,\\\"pinchTranslate\\\",function(a,h,g,k,l,e,b){a.call(this,h,g,k,l,e,b);\\\"map\\\"===this.chart.options.chart.type&&\\nthis.hasZoom&&(a=k.scaleX>k.scaleY,this.pinchTranslateDirection(!a,h,g,k,l,e,b,a?k.scaleX:k.scaleY))})})(x);(function(a){var l=a.colorPointMixin,h=a.each,k=a.extend,f=a.isNumber,q=a.map,g=a.merge,u=a.noop,t=a.pick,e=a.isArray,b=a.Point,d=a.Series,n=a.seriesType,r=a.seriesTypes,m=a.splat,v=void 0!==a.doc.documentElement.style.vectorEffect;n(\\\"map\\\",\\\"scatter\\\",{allAreas:!0,animation:!1,nullColor:\\\"#f7f7f7\\\",borderColor:\\\"#cccccc\\\",borderWidth:1,marker:null,stickyTracking:!1,joinBy:\\\"hc-key\\\",dataLabels:{formatter:function(){return this.point.value},\\ninside:!0,verticalAlign:\\\"middle\\\",crop:!1,overflow:!1,padding:0},turboThreshold:0,tooltip:{followPointer:!0,pointFormat:\\\"{point.name}: {point.value}\\\\x3cbr/\\\\x3e\\\"},states:{normal:{animation:!0},hover:{halo:null,brightness:.2},select:{color:\\\"#cccccc\\\"}}},g(a.colorSeriesMixin,{type:\\\"map\\\",getExtremesFromAll:!0,useMapGeometry:!0,forceDL:!0,searchPoint:u,directTouch:!0,preserveAspectRatio:!0,pointArrayMap:[\\\"value\\\"],getBox:function(c){var b=Number.MAX_VALUE,d=-b,e=b,m=-b,v=b,n=b,g=this.xAxis,k=this.yAxis,q;\\nh(c||[],function(c){if(c.path){\\\"string\\\"===typeof c.path&&(c.path=a.splitPath(c.path));var p=c.path||[],w=p.length,g=!1,h=-b,k=b,y=-b,r=b,A=c.properties;if(!c._foundBox){for(;w--;)f(p[w])&&(g?(h=Math.max(h,p[w]),k=Math.min(k,p[w])):(y=Math.max(y,p[w]),r=Math.min(r,p[w])),g=!g);c._midX=k+(h-k)*t(c.middleX,A&&A[\\\"hc-middle-x\\\"],.5);c._midY=r+(y-r)*t(c.middleY,A&&A[\\\"hc-middle-y\\\"],.5);c._maxX=h;c._minX=k;c._maxY=y;c._minY=r;c.labelrank=t(c.labelrank,(h-k)*(y-r));c._foundBox=!0}d=Math.max(d,c._maxX);e=Math.min(e,\\nc._minX);m=Math.max(m,c._maxY);v=Math.min(v,c._minY);n=Math.min(c._maxX-c._minX,c._maxY-c._minY,n);q=!0}});q&&(this.minY=Math.min(v,t(this.minY,b)),this.maxY=Math.max(m,t(this.maxY,-b)),this.minX=Math.min(e,t(this.minX,b)),this.maxX=Math.max(d,t(this.maxX,-b)),g&&void 0===g.options.minRange&&(g.minRange=Math.min(5*n,(this.maxX-this.minX)/5,g.minRange||b)),k&&void 0===k.options.minRange&&(k.minRange=Math.min(5*n,(this.maxY-this.minY)/5,k.minRange||b)))},getExtremes:function(){d.prototype.getExtremes.call(this,\\nthis.valueData);this.chart.hasRendered&&this.isDirtyData&&this.getBox(this.options.data);this.valueMin=this.dataMin;this.valueMax=this.dataMax;this.dataMin=this.minY;this.dataMax=this.maxY},translatePath:function(a){var c=!1,b=this.xAxis,d=this.yAxis,e=b.min,m=b.transA,b=b.minPixelPadding,v=d.min,n=d.transA,d=d.minPixelPadding,g,h=[];if(a)for(g=a.length;g--;)f(a[g])?(h[g]=c?(a[g]-e)*m+b:(a[g]-v)*n+d,c=!c):h[g]=a[g];return h},setData:function(c,b,v,n){var p=this.options,w=this.chart.options.chart,\\nk=w&&w.map,r=p.mapData,l=p.joinBy,t=null===l,B=p.keys||this.pointArrayMap,u=[],x={},z=this.chart.mapTransforms;!r&&k&&(r=\\\"string\\\"===typeof k?a.maps[k]:k);t&&(l=\\\"_i\\\");l=this.joinBy=m(l);l[1]||(l[1]=l[0]);c&&h(c,function(b,d){var m=0;if(f(b))c[d]={value:b};else if(e(b)){c[d]={};!p.keys&&b.length>B.length&&\\\"string\\\"===typeof b[0]&&(c[d][\\\"hc-key\\\"]=b[0],++m);for(var v=0;vg&&.99n&&(n=g=1,k=Math.round(k),l=Math.round(l)),t=this.transformGroup,m.renderer.globalAnimation?(u=t.attr(\\\"translateX\\\"),z=t.attr(\\\"translateY\\\"),x=t.attr(\\\"scaleX\\\"),G=t.attr(\\\"scaleY\\\"),\\nt.attr({animator:0}).animate({animator:1},{step:function(a,b){t.attr({translateX:u+(k-u)*b.pos,translateY:z+(l-z)*b.pos,scaleX:x+(g-x)*b.pos,scaleY:G+(n-G)*b.pos})}})):t.attr({translateX:k,translateY:l,scaleX:g,scaleY:n}));v||a.group.element.setAttribute(\\\"stroke-width\\\",a.options[a.pointAttrToOptions&&a.pointAttrToOptions[\\\"stroke-width\\\"]||\\\"borderWidth\\\"]/(g||1));this.drawMapDataLabels()},drawMapDataLabels:function(){d.prototype.drawDataLabels.call(this);this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)},\\nrender:function(){var a=this,b=d.prototype.render;a.chart.renderer.isVML&&3E3=this.minPxSize/2?(c.marker=a.extend(c.marker,{radius:e,width:2*e,height:2*e}),c.dlBox={x:c.plotX-e,y:c.plotY-e,width:2*e,height:2*e}):c.shapeArgs=c.plotY=c.dlBox=void 0},alignDataLabel:r.column.prototype.alignDataLabel,buildKDTree:u,applyZones:u},{haloPath:function(a){return b.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});k.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,d=0,f=b,n=this.isXAxis,\\nk=n?\\\"xData\\\":\\\"yData\\\",r=this.min,u={},x=Math.min(c.plotWidth,c.plotHeight),A=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-r,C=b/E,F=[];q(this.series,function(b){var d=b.options;!b.bubblePadding||!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),n&&(q([\\\"minSize\\\",\\\"maxSize\\\"],function(a){var b=d[a],c=/%$/.test(b),b=e(b);u[a]=c?x*b/100:b}),b.minPxSize=u.minSize,b.maxPxSize=Math.max(u.maxSize,u.minSize),b=b.zData,b.length&&(A=t(d.zMin,Math.min(A,Math.max(h(b),!1===d.displayNegative?\\nd.zThreshold:-Number.MAX_VALUE))),D=t(d.zMax,Math.max(D,l(b))))))});q(F,function(b){var c=b[k],e=c.length,m;n&&b.getRadii(A,D,b.minPxSize,b.maxPxSize);if(0c,f=b[d][1]>c,e!==f&&h<(b[d][0]-b[a][0])*(c-b[a][1])/(b[d][1]-b[a][1])+b[a][0]&&(g=!g);return g}var h=a.Chart,k=a.each,f=a.extend,q=a.format,g=a.merge,u=a.win,t=a.wrap;h.prototype.transformFromLatLon=function(e,b){if(void 0===u.proj4)return a.error(21),{x:0,y:null};e=u.proj4(b.crs,[e.lon,e.lat]);var d=b.cosAngle||b.rotation&&Math.cos(b.rotation),f=b.sinAngle||b.rotation&&Math.sin(b.rotation);\\ne=b.rotation?[e[0]*d+e[1]*f,-e[0]*f+e[1]*d]:e;return{x:((e[0]-(b.xoffset||0))*(b.scale||1)+(b.xpan||0))*(b.jsonres||1)+(b.jsonmarginX||0),y:(((b.yoffset||0)-e[1])*(b.scale||1)+(b.ypan||0))*(b.jsonres||1)-(b.jsonmarginY||0)}};h.prototype.transformToLatLon=function(e,b){if(void 0===u.proj4)a.error(21);else{e={x:((e.x-(b.jsonmarginX||0))/(b.jsonres||1)-(b.xpan||0))/(b.scale||1)+(b.xoffset||0),y:((-e.y-(b.jsonmarginY||0))/(b.jsonres||1)+(b.ypan||0))/(b.scale||1)+(b.yoffset||0)};var d=b.cosAngle||b.rotation&&\\nMath.cos(b.rotation),f=b.sinAngle||b.rotation&&Math.sin(b.rotation);b=u.proj4(b.crs,\\\"WGS84\\\",b.rotation?{x:e.x*d+e.y*-f,y:e.x*f+e.y*d}:e);return{lat:b.y,lon:b.x}}};h.prototype.fromPointToLatLon=function(e){var b=this.mapTransforms,d;if(b){for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&l({x:e.x,y:-e.y},b[d].hitZone.coordinates[0]))return this.transformToLatLon(e,b[d]);return this.transformToLatLon(e,b[\\\"default\\\"])}a.error(22)};h.prototype.fromLatLonToPoint=function(e){var b=this.mapTransforms,d,f;\\nif(!b)return a.error(22),{x:0,y:null};for(d in b)if(b.hasOwnProperty(d)&&b[d].hitZone&&(f=this.transformFromLatLon(e,b[d]),l({x:f.x,y:-f.y},b[d].hitZone.coordinates[0])))return f;return this.transformFromLatLon(e,b[\\\"default\\\"])};a.geojson=function(a,b,d){var e=[],g=[],h=function(a){var b,d=a.length;g.push(\\\"M\\\");for(b=0;bc.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;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#wojfuvxzhdi .highcharts-color-0 {fill: #7cb5ec;stroke: #7cb5ec;}#wojfuvxzhdi .highcharts-axis.highcharts-color-0 .highcharts-axis-line {stroke: #7cb5ec;}#wojfuvxzhdi .highcharts-color-1 {fill: #90ed7d;stroke: #90ed7d;}#wojfuvxzhdi .highcharts-axis.highcharts-color-1 .highcharts-axis-line {stroke: #90ed7d;}#wojfuvxzhdi .highcharts-yaxis .highcharts-axis-line {stroke-width: 2px;} \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -967,20 +887,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1031,20 +951,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -1094,10 +1014,10 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, @@ -1237,20 +1157,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, @@ -1304,20 +1224,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 8, @@ -1371,20 +1291,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 9, @@ -1484,20 +1404,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 10, @@ -1560,20 +1480,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 11, @@ -1623,10 +1543,10 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 12, @@ -1725,20 +1645,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 13, @@ -1800,20 +1720,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 14, @@ -1893,20 +1813,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 15, @@ -1987,20 +1907,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 16, @@ -2070,20 +1990,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 17, @@ -2138,20 +2058,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 18, @@ -2210,20 +2130,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 19, @@ -2278,20 +2198,20 @@ { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 20, @@ -2350,6 +2270,102 @@ "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, From 6c742b674b0a8f7cf6e3895972559041cecdf196 Mon Sep 17 00:00:00 2001 From: Prakriti-nith Date: Sun, 27 May 2018 01:58:18 +0530 Subject: [PATCH 05/11] Separate method init_css --- lib/daru/view.rb | 5 +++- lib/daru/view/adapters/highcharts.rb | 5 +++- lib/daru/view/adapters/highcharts/display.rb | 27 +++++++++++++++----- spec/adapters/highcharts/display_spec.rb | 7 +++++ spec/view_spec.rb | 21 ++++++++++++++- 5 files changed, 55 insertions(+), 10 deletions(-) diff --git a/lib/daru/view.rb b/lib/daru/view.rb index a1992f4..02bec5a 100644 --- a/lib/daru/view.rb +++ b/lib/daru/view.rb @@ -112,7 +112,10 @@ def dependent_script(lib=:nyaplot) when :nyaplot Nyaplot.init_script when :highcharts - LazyHighCharts.init_script + init_code = '' + init_code << LazyHighCharts.init_css + init_code << LazyHighCharts.init_script + init_code when :googlecharts GoogleVisualr.init_script when :datatables diff --git a/lib/daru/view/adapters/highcharts.rb b/lib/daru/view/adapters/highcharts.rb index ce017d0..7af7adc 100644 --- a/lib/daru/view/adapters/highcharts.rb +++ b/lib/daru/view/adapters/highcharts.rb @@ -57,7 +57,10 @@ def init(data=[], options={}) end def init_script - LazyHighCharts.init_script + init_code = '' + init_code << LazyHighCharts.init_css + init_code << LazyHighCharts.init_script + init_code end def generate_body(plot) diff --git a/lib/daru/view/adapters/highcharts/display.rb b/lib/daru/view/adapters/highcharts/display.rb index 8e16d2d..b29f280 100644 --- a/lib/daru/view/adapters/highcharts/display.rb +++ b/lib/daru/view/adapters/highcharts/display.rb @@ -3,9 +3,12 @@ require 'daru/view/constants' module LazyHighCharts + # Loads the dependent javascript required + # + # @param [Array] dependent js files required + # @return [String] js code of the dependent files def self.init_script( - dependent_js=HIGHCHARTS_DEPENDENCIES, - dependent_css=['highcharts.css'] + dependent_js=HIGHCHARTS_DEPENDENCIES ) # Highstock is based on Highcharts, meaning it has all the core # functionality of Highcharts, plus some additional features. So @@ -14,15 +17,25 @@ def self.init_script( # # Note: Don't reorder the dependent_js elements. It must be loaded in # the same sequence. Otherwise some of the JS overlap and doesn't work. - css = '' - css << "\n" js = '' js << "\n" - css + js + js + end + + # Loads the dependent css required in styled mode + # + # @param [Array] dependent css files required + # @return [String] CSS code of the dependent file(s) + def self.init_css( + dependent_css=['highcharts.css'] + ) + css = '' + css << "\n" + css end class HighChart diff --git a/spec/adapters/highcharts/display_spec.rb b/spec/adapters/highcharts/display_spec.rb index 41cefc8..c47fa45 100644 --- a/spec/adapters/highcharts/display_spec.rb +++ b/spec/adapters/highcharts/display_spec.rb @@ -28,6 +28,13 @@ /console.log\(\"Finish loading highchartsjs\"\)/i) end end + describe "#init_css" do + it "generates valid initial css" do + css = LazyHighCharts.init_css + expect(css).to match(/BEGIN highcharts.css/i) + expect(css).to match(/END highcharts.css/i) + end + end end describe LazyHighCharts::HighChart do diff --git a/spec/view_spec.rb b/spec/view_spec.rb index 8205dc2..30486c5 100644 --- a/spec/view_spec.rb +++ b/spec/view_spec.rb @@ -44,4 +44,23 @@ end end -end \ No newline at end of file + context "#dependent_script" do + it "should generate valid dependent script of highcharts" do + script = Daru::View.dependent_script(:highcharts) + expect(script).to match(/BEGIN highcharts.css/i) + expect(script).to match(/END highcharts.css/i) + expect(script).to match(/BEGIN js\/highstock.js/i) + expect(script).to match(/Highstock JS/i) + expect(script).to match(/END js\/highstock.js/i) + expect(script).to match(/BEGIN highcharts-more.js/i) + expect(script).to match(/END highcharts-more.js/i) + expect(script).to match(/BEGIN modules\/exporting.js/i) + expect(script).to match(/END modules\/exporting.js/i) + expect(script).to match(/BEGIN highcharts-3d.js/i) + expect(script).to match(/END highcharts-3d.js/i) + expect(script).to match(/BEGIN modules\/data.js/i) + expect(script).to match(/END modules\/data.js/i) + end + end + +end From 843183bdc610b102bd412ce47b987a2fbae00a20 Mon Sep 17 00:00:00 2001 From: Prakriti-nith Date: Wed, 30 May 2018 02:05:37 +0530 Subject: [PATCH 06/11] Improved documentation --- lib/daru/view/adapters/highcharts/display.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/daru/view/adapters/highcharts/display.rb b/lib/daru/view/adapters/highcharts/display.rb index b29f280..b950c7f 100644 --- a/lib/daru/view/adapters/highcharts/display.rb +++ b/lib/daru/view/adapters/highcharts/display.rb @@ -85,7 +85,9 @@ def to_html_iruby(placeholder=random_canvas_id) script end - # return [String] css code of the chart + # @param placeholder [String] ID of the div in which highchart has to + # rendered + # @return [String] css code of the chart def high_chart_css(placeholder) # contains the css provided by the user as a String array css_data = options[:css].nil? ? '' : option.delete(:css) From 3048dfa6610806e19dc888f13c5c711ba57254de Mon Sep 17 00:00:00 2001 From: Prakriti-nith Date: Sun, 17 Jun 2018 01:30:10 +0530 Subject: [PATCH 07/11] Updated CSS examples in (data, opts) formats and checked all examples --- lib/daru/view/adapters/highcharts/display.rb | 4 +- .../adapters/highcharts/iruby_notebook.rb | 2 +- .../highcharts/layout_helper_iruby.rb | 8 + lib/daru/view/constants.rb | 14 +- spec/adapters/highcharts/display_spec.rb | 6 +- .../dummy_iruby/HighCharts - Area chart.ipynb | 56 +- spec/dummy_iruby/HighCharts - Bar Chart.ipynb | 24 +- .../HighCharts - Custom styling in CSS.ipynb | 2591 ++++++++++------- .../HighCharts - column charts.ipynb | 64 +- spec/dummy_iruby/HighCharts- Pie charts.ipynb | 40 +- ...s - Countries with data as DataFrame.ipynb | 80 +- spec/dummy_iruby/HighMaps - Dynamic.ipynb | 16 +- spec/dummy_iruby/HighMaps | General.ipynb | 40 +- .../dummy_iruby/HighMaps | Series Types.ipynb | 40 +- .../Highcharts - Combinations .ipynb | 24 +- .../Highcharts - Daynamic charts.ipynb | 16 +- ...s - More Chart Types (Using modules).ipynb | 187 +- .../Highcharts - line graphs.ipynb | 60 +- .../Highcharts - line graphs2.ipynb | 30 +- .../Highcharts - scatter -bubble charts.ipynb | 24 +- ...eries method and highcharts examples.ipynb | 58 +- .../dummy_iruby/Highstock - Chart types.ipynb | 96 +- spec/dummy_iruby/Highstock - General.ipynb | 56 +- .../Highstock - Various features.ipynb | 32 +- ...generated from daru) as data source.ipynb | 8 +- spec/view_spec.rb | 2 - 26 files changed, 2012 insertions(+), 1566 deletions(-) diff --git a/lib/daru/view/adapters/highcharts/display.rb b/lib/daru/view/adapters/highcharts/display.rb index b950c7f..19855e0 100644 --- a/lib/daru/view/adapters/highcharts/display.rb +++ b/lib/daru/view/adapters/highcharts/display.rb @@ -8,7 +8,7 @@ module LazyHighCharts # @param [Array] dependent js files required # @return [String] js code of the dependent files def self.init_script( - dependent_js=HIGHCHARTS_DEPENDENCIES + dependent_js=HIGHCHARTS_DEPENDENCIES_WEB ) # Highstock is based on Highcharts, meaning it has all the core # functionality of Highcharts, plus some additional features. So @@ -29,7 +29,7 @@ def self.init_script( # @param [Array] dependent css files required # @return [String] CSS code of the dependent file(s) def self.init_css( - dependent_css=['highcharts.css'] + dependent_css=HIGHCHARTS_DEPENDENCIES_CSS ) css = '' css << "\n \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -873,9 +932,7 @@ " yAxis: 1\n", "}]\n", "\n", - "column = Daru::View::Plot.new\n", - "column.chart.options = opts;\n", - "column.chart.series_data = series_dt\n", + "column = Daru::View::Plot.new(series_dt, opts)\n", "column.show_in_iruby" ] }, @@ -884,23 +941,40 @@ "execution_count": 4, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -933,13 +1007,9 @@ " }\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", + "data = Daru::Vector.new([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", - "line = Daru::View::Plot.new\n", - "line.chart.options = opts;\n", - "line.chart.series_data = series_dt\n", + "line = Daru::View::Plot.new(data, opts)\n", "line.show_in_iruby" ] }, @@ -948,23 +1018,40 @@ "execution_count": 5, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -996,13 +1083,9 @@ " }\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", + "data = Daru::Vector.new([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", - "line = Daru::View::Plot.new\n", - "line.chart.options = opts;\n", - "line.chart.series_data = series_dt\n", + "line = Daru::View::Plot.new(data, opts)\n", "line.show_in_iruby" ] }, @@ -1011,33 +1094,50 @@ "execution_count": 6, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, @@ -1053,99 +1153,98 @@ " rangeSelector: {\n", " selected: 1\n", " },\n", + " chart: {\n", + " type: 'candlestick'\n", + " },\n", "\n", " title: {\n", " text: 'AAPL Stock Price'\n", + " },\n", + " plotOptions: {\n", + " series: {\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", "\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", + " 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", + "\n", + "candle_stick = Daru::View::Plot.new(data, opts)\n", "candle_stick.show_in_iruby" ] }, @@ -1154,23 +1253,40 @@ "execution_count": 7, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, @@ -1183,6 +1299,9 @@ " title: {\n", " text: 'Pie point CSS'\n", " },\n", + " chart: {\n", + " type: 'pie'\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", @@ -1190,29 +1309,27 @@ " '.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", + " plotOptions: {\n", + " series: {\n", + " allowPointSelect: true,\n", + " keys: ['name', 'y', 'selected', 'sliced'],\n", + " showInLegend: true\n", + " }\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", + " \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", + "pie = Daru::View::Plot.new(data, opts)\n", "pie.show_in_iruby" ] }, @@ -1221,23 +1338,40 @@ "execution_count": 8, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 8, @@ -1273,13 +1407,9 @@ " }\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", + "data = Daru::Vector.new([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", - "line = Daru::View::Plot.new\n", - "line.chart.options = opts;\n", - "line.chart.series_data = series_dt\n", + "line = Daru::View::Plot.new(data, opts)\n", "line.show_in_iruby" ] }, @@ -1288,23 +1418,109 @@ "execution_count": 9, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + " /* BEGIN highcharts-more.js */\n", + "\n", + "/*\n", + " Highcharts JS v5.0.12 (2017-05-24)\n", + "\n", + " (c) 2009-2016 Torstein Honsi\n", + "\n", + " License: www.highcharts.com/license\n", + "*/\n", + "(function(v){\"object\"===typeof module&&module.exports?module.exports=v:v(Highcharts)})(function(v){(function(a){function r(a,b){this.init(a,b)}var t=a.CenteredSeriesMixin,w=a.each,p=a.extend,m=a.merge,f=a.splat;p(r.prototype,{coll:\"pane\",init:function(a,b){this.chart=b;this.background=[];b.pane.push(this);this.setOptions(a)},setOptions:function(a){this.options=m(this.defaultOptions,this.chart.angular?{background:{}}:void 0,a)},render:function(){var a=this.options,b=this.options.background,d=this.chart.renderer;\n", + "this.group||(this.group=d.g(\"pane-group\").attr({zIndex:a.zIndex||0}).add());this.updateCenter();if(b)for(b=f(b),a=Math.max(b.length,this.background.length||0),d=0;dc.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", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n /* BEGIN highcharts-more.js */\\n\\n/*\\n Highcharts JS v5.0.12 (2017-05-24)\\n\\n (c) 2009-2016 Torstein Honsi\\n\\n License: www.highcharts.com/license\\n*/\\n(function(v){\\\"object\\\"===typeof module&&module.exports?module.exports=v:v(Highcharts)})(function(v){(function(a){function r(a,b){this.init(a,b)}var t=a.CenteredSeriesMixin,w=a.each,p=a.extend,m=a.merge,f=a.splat;p(r.prototype,{coll:\\\"pane\\\",init:function(a,b){this.chart=b;this.background=[];b.pane.push(this);this.setOptions(a)},setOptions:function(a){this.options=m(this.defaultOptions,this.chart.angular?{background:{}}:void 0,a)},render:function(){var a=this.options,b=this.options.background,d=this.chart.renderer;\\nthis.group||(this.group=d.g(\\\"pane-group\\\").attr({zIndex:a.zIndex||0}).add());this.updateCenter();if(b)for(b=f(b),a=Math.max(b.length,this.background.length||0),d=0;dc.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\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 9, @@ -1317,6 +1533,7 @@ " chart: {\n", " type: 'gauge'\n", " },\n", + " modules: ['highcharts-more'],\n", " \n", " css: ['.outer-pane {fill: #EFEFEF;}',\n", " '.middle-pane {stroke-width: 1px;stroke: #AAA;}',\n", @@ -1379,20 +1596,20 @@ " to: 200,\n", " className: 'red-band'\n", " }]\n", + " },\n", + " plotOptions: {\n", + " series: {\n", + " tooltip: {\n", + " valueSuffix: ' km/h'\n", + " },\n", + " name: 'speed'\n", + " }\n", " }\n", "}\n", "\n", - "series_dt = [{\n", - " name: 'Speed',\n", - " data: [80],\n", - " tooltip: {\n", - " valueSuffix: ' km/h'\n", - " }\n", - "}]\n", + "data = Daru::Vector.new([80])\n", "\n", - "gauge = Daru::View::Plot.new\n", - "gauge.chart.options = opts;\n", - "gauge.chart.series_data = series_dt\n", + "gauge = Daru::View::Plot.new(data, opts)\n", "gauge.show_in_iruby" ] }, @@ -1401,23 +1618,40 @@ "execution_count": 10, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 10, @@ -1445,8 +1679,7 @@ " }\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", + "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", @@ -1464,11 +1697,15 @@ " [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", + "df = Daru::DataFrame.new(\n", + " {\n", + " Data1: data.map {|row| row[0]},\n", + " Data2: data.map {|row| row[1]}\n", + " }\n", + " )\n", + "\n", + "scatter = Daru::View::Plot.new(df, opts)\n", "scatter.show_in_iruby" ] }, @@ -1477,23 +1714,40 @@ "execution_count": 11, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 11, @@ -1506,32 +1760,33 @@ " title: {\n", " text: 'Pie point CSS'\n", " },\n", + " chart: {\n", + " type: 'pie'\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", + " plotOptions: {\n", + " series: {\n", + " allowPointSelect: true,\n", + " keys: ['name', 'y', 'selected', 'sliced'],\n", + " showInLegend: true\n", + " }\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", + "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", + "pie = Daru::View::Plot.new(data, opts)\n", "pie.show_in_iruby" ] }, @@ -1540,13 +1795,30 @@ "execution_count": 12, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 12, @@ -1631,9 +1903,7 @@ " showInLegend: true\n", "}]\n", "\n", - "pie = Daru::View::Plot.new\n", - "pie.chart.options = opts;\n", - "pie.chart.series_data = series_dt\n", + "pie = Daru::View::Plot.new(series_dt, opts)\n", "pie.show_in_iruby" ] }, @@ -1642,23 +1912,40 @@ "execution_count": 13, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 13, @@ -1685,8 +1972,7 @@ " }\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", + "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", @@ -1704,11 +1990,15 @@ " [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", + "df = Daru::DataFrame.new(\n", + " {\n", + " Data1: data.map {|row| row[0]},\n", + " Data2: data.map {|row| row[1]}\n", + " }\n", + " )\n", + "\n", + "scatter = Daru::View::Plot.new(df, opts)\n", "scatter.show_in_iruby" ] }, @@ -1717,23 +2007,40 @@ "execution_count": 14, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 14, @@ -1752,56 +2059,60 @@ " css: ['.highcharts-navigator-handle{fill: #90ed7d;stroke: #90ed7d;}'],\n", " title: {\n", " text: 'AAPL Stock Price'\n", + " },\n", + " plotOptions: {\n", + " series: {\n", + " marker: {\n", + " enabled: true,\n", + " radius: 3\n", + " },\n", + " shadow: true,\n", + " tooltip: {\n", + " valueDecimals: 2\n", + " }\n", + " }\n", " }\n", " }\n", "\n", - " series_dt = [\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", + "\n", + " df = Daru::DataFrame.new(\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", + " data1: data.map {|row| row[0]},\n", + " data2: data.map {|row| row[1]}\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 = Daru::View::Plot.new(df, opts)\n", "line_series_shadow_markers.show_in_iruby" ] }, @@ -1810,23 +2121,40 @@ "execution_count": 15, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 15, @@ -1846,56 +2174,60 @@ " '.highcharts-navigator-outline{stroke: #90ed7d;}'],\n", " title: {\n", " text: 'AAPL Stock Price'\n", + " },\n", + " plotOptions: {\n", + " series: {\n", + " marker: {\n", + " enabled: true,\n", + " radius: 3\n", + " },\n", + " shadow: true,\n", + " tooltip: {\n", + " valueDecimals: 2\n", + " }\n", + " }\n", " }\n", " }\n", "\n", - " series_dt = [\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", + "\n", + " df = Daru::DataFrame.new(\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", + " data1: data.map {|row| row[0]},\n", + " data2: data.map {|row| row[1]}\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 = Daru::View::Plot.new(df, opts)\n", "line_series_shadow_markers.show_in_iruby" ] }, @@ -1904,23 +2236,40 @@ "execution_count": 16, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 16, @@ -1976,9 +2325,7 @@ " }\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 = Daru::View::Plot.new(series_dt, opts)\n", "area_neg.show_in_iruby" ] }, @@ -1987,23 +2334,40 @@ "execution_count": 17, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 17, @@ -2040,13 +2404,9 @@ " }\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", + "data = Daru::Vector.new([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", - "line = Daru::View::Plot.new\n", - "line.chart.options = opts;\n", - "line.chart.series_data = series_dt\n", + "line = Daru::View::Plot.new(data, opts)\n", "line.show_in_iruby" ] }, @@ -2055,23 +2415,40 @@ "execution_count": 18, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 18, @@ -2112,13 +2489,9 @@ " }\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", + "data = Daru::Vector.new([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", - "line = Daru::View::Plot.new\n", - "line.chart.options = opts;\n", - "line.chart.series_data = series_dt\n", + "line = Daru::View::Plot.new(data, opts)\n", "line.show_in_iruby" ] }, @@ -2127,23 +2500,40 @@ "execution_count": 19, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 19, @@ -2180,13 +2570,9 @@ " }\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", + "data = Daru::Vector.new([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", - "line = Daru::View::Plot.new\n", - "line.chart.options = opts;\n", - "line.chart.series_data = series_dt\n", + "line = Daru::View::Plot.new(data, opts)\n", "line.show_in_iruby" ] }, @@ -2195,23 +2581,40 @@ "execution_count": 20, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 20, @@ -2264,9 +2667,7 @@ " 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 = Daru::View::Plot.new(series_dt, opts)\n", "area_spline.show_in_iruby" ] }, @@ -2275,23 +2676,40 @@ "execution_count": 21, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 21, @@ -2326,23 +2744,40 @@ "execution_count": 22, "metadata": {}, "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "\n", + "var event = document.createEvent(\"HTMLEvents\");\n", + "event.initEvent(\"load_highcharts\", false, false);\n", + "window.dispatchEvent(event);\n", + "console.log(\"Finish loading highchartsjs\");\n" + ], + "text/plain": [ + "\"\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "text/html": [ - " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 22, diff --git a/spec/dummy_iruby/HighCharts - column charts.ipynb b/spec/dummy_iruby/HighCharts - column charts.ipynb index 0ba0ff1..a169076 100644 --- a/spec/dummy_iruby/HighCharts - column charts.ipynb +++ b/spec/dummy_iruby/HighCharts - column charts.ipynb @@ -872,17 +872,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -995,17 +995,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1075,17 +1075,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -1190,21 +1190,21 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, @@ -1303,17 +1303,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, @@ -1395,17 +1395,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 8, @@ -1521,17 +1521,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 9, @@ -1828,17 +1828,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 10, diff --git a/spec/dummy_iruby/HighCharts- Pie charts.ipynb b/spec/dummy_iruby/HighCharts- Pie charts.ipynb index 31e4dfd..1c77f49 100644 --- a/spec/dummy_iruby/HighCharts- Pie charts.ipynb +++ b/spec/dummy_iruby/HighCharts- Pie charts.ipynb @@ -872,17 +872,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -980,17 +980,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1095,17 +1095,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, @@ -1201,17 +1201,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, @@ -1378,17 +1378,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 8, diff --git a/spec/dummy_iruby/HighMaps - Countries with data as DataFrame.ipynb b/spec/dummy_iruby/HighMaps - Countries with data as DataFrame.ipynb index c36207a..0a4a5a0 100644 --- a/spec/dummy_iruby/HighMaps - Countries with data as DataFrame.ipynb +++ b/spec/dummy_iruby/HighMaps - Countries with data as DataFrame.ipynb @@ -878,17 +878,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -967,17 +967,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1057,17 +1057,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -1201,17 +1201,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, @@ -1327,17 +1327,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, @@ -1429,17 +1429,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 8, @@ -1518,17 +1518,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 9, @@ -1621,17 +1621,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 10, @@ -1727,17 +1727,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 11, @@ -1852,17 +1852,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 12, diff --git a/spec/dummy_iruby/HighMaps - Dynamic.ipynb b/spec/dummy_iruby/HighMaps - Dynamic.ipynb index f44c5de..fa9965f 100644 --- a/spec/dummy_iruby/HighMaps - Dynamic.ipynb +++ b/spec/dummy_iruby/HighMaps - Dynamic.ipynb @@ -878,17 +878,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -2315,17 +2315,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, diff --git a/spec/dummy_iruby/HighMaps | General.ipynb b/spec/dummy_iruby/HighMaps | General.ipynb index f03c893..d89bc82 100644 --- a/spec/dummy_iruby/HighMaps | General.ipynb +++ b/spec/dummy_iruby/HighMaps | General.ipynb @@ -878,21 +878,21 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -980,17 +980,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1047,17 +1047,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -2088,7 +2088,7 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, @@ -2225,17 +2225,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, diff --git a/spec/dummy_iruby/HighMaps | Series Types.ipynb b/spec/dummy_iruby/HighMaps | Series Types.ipynb index a7a89a2..0f688fb 100644 --- a/spec/dummy_iruby/HighMaps | Series Types.ipynb +++ b/spec/dummy_iruby/HighMaps | Series Types.ipynb @@ -878,17 +878,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -2062,17 +2062,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -2541,17 +2541,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -3174,17 +3174,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, @@ -3323,17 +3323,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, diff --git a/spec/dummy_iruby/Highcharts - Combinations .ipynb b/spec/dummy_iruby/Highcharts - Combinations .ipynb index 6a0a7f3..1cdba6f 100644 --- a/spec/dummy_iruby/Highcharts - Combinations .ipynb +++ b/spec/dummy_iruby/Highcharts - Combinations .ipynb @@ -872,17 +872,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -1002,17 +1002,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1162,17 +1162,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, diff --git a/spec/dummy_iruby/Highcharts - Daynamic charts.ipynb b/spec/dummy_iruby/Highcharts - Daynamic charts.ipynb index 83e7133..5dd3061 100644 --- a/spec/dummy_iruby/Highcharts - Daynamic charts.ipynb +++ b/spec/dummy_iruby/Highcharts - Daynamic charts.ipynb @@ -881,7 +881,7 @@ " y = Math.random();\n", " series.addPoint([x, y], true, true);\n", " }, 1000);\n", - " } },\"renderTo\": \"kamvyqxebcl\" },\"title\": { \"text\": \"Live random data\" },\"xAxis\": { \"type\": \"datetime\",\"tickPixelInterval\": 150 },\"yAxis\": { \"title\": { \"text\": \"Value\" },\"plotLines\": [ { \"value\": 0,\"width\": 1,\"color\": \"#808080\" } ] },\"tooltip\": { \"formatter\": function () {\n", + " } },\"renderTo\": \"vwjikptdfnz\" },\"title\": { \"text\": \"Live random data\" },\"xAxis\": { \"type\": \"datetime\",\"tickPixelInterval\": 150 },\"yAxis\": { \"title\": { \"text\": \"Value\" },\"plotLines\": [ { \"value\": 0,\"width\": 1,\"color\": \"#808080\" } ] },\"tooltip\": { \"formatter\": function () {\n", " return '' + this.series.name + '
' +\n", " Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '
' +\n", " Highcharts.numberFormat(this.y, 2);\n", @@ -900,15 +900,15 @@ " return data;\n", " }()) }] };\n", " \n", - " window.chart_kamvyqxebcl = new Highcharts.Chart(options);\n", + " window.chart_vwjikptdfnz = new Highcharts.Chart(options);\n", "\n", " });\n", " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -1029,21 +1029,21 @@ " // Add it\n", " series.addPoint([x, y]);\n", "\n", - " } },\"renderTo\": \"xytmlpfrovn\" },\"title\": { \"text\": \"User supplied data\" },\"subtitle\": { \"text\": \"Click the plot area to add a point. Click a point to remove it.\" },\"xAxis\": { \"gridLineWidth\": 1,\"minPadding\": 0.2,\"maxPadding\": 0.2,\"maxZoom\": 60 },\"yAxis\": { \"title\": { \"text\": \"Value\" },\"minPadding\": 0.2,\"maxPadding\": 0.2,\"maxZoom\": 60,\"plotLines\": [ { \"value\": 0,\"width\": 1,\"color\": \"#808080\" } ] },\"legend\": { \"enabled\": false },\"exporting\": { \"enabled\": false },\"plotOptions\": { \"series\": { \"lineWidth\": 1,\"point\": { \"events\": { \"click\": function () {\n", + " } },\"renderTo\": \"zgwtlrcohdu\" },\"title\": { \"text\": \"User supplied data\" },\"subtitle\": { \"text\": \"Click the plot area to add a point. Click a point to remove it.\" },\"xAxis\": { \"gridLineWidth\": 1,\"minPadding\": 0.2,\"maxPadding\": 0.2,\"maxZoom\": 60 },\"yAxis\": { \"title\": { \"text\": \"Value\" },\"minPadding\": 0.2,\"maxPadding\": 0.2,\"maxZoom\": 60,\"plotLines\": [ { \"value\": 0,\"width\": 1,\"color\": \"#808080\" } ] },\"legend\": { \"enabled\": false },\"exporting\": { \"enabled\": false },\"plotOptions\": { \"series\": { \"lineWidth\": 1,\"point\": { \"events\": { \"click\": function () {\n", " if (this.series.data.length > 1) {\n", " this.remove();\n", " }\n", " } } } } },\"series\": [{ \"data\": [ [ 20,20 ],[ 80,80 ] ] }] };\n", " \n", - " window.chart_xytmlpfrovn = new Highcharts.Chart(options);\n", + " window.chart_zgwtlrcohdu = new Highcharts.Chart(options);\n", "\n", " });\n", " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, diff --git a/spec/dummy_iruby/Highcharts - More Chart Types (Using modules).ipynb b/spec/dummy_iruby/Highcharts - More Chart Types (Using modules).ipynb index 35986d4..2937597 100644 --- a/spec/dummy_iruby/Highcharts - More Chart Types (Using modules).ipynb +++ b/spec/dummy_iruby/Highcharts - More Chart Types (Using modules).ipynb @@ -894,17 +894,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -1037,17 +1037,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1149,17 +1149,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -1234,17 +1234,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, @@ -1333,17 +1333,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, @@ -1438,74 +1438,69 @@ " /* BEGIN highcharts-more.js */\n", "\n", "/*\n", - " Highcharts JS v6.1.0 (2018-04-13)\n", + " Highcharts JS v5.0.12 (2017-05-24)\n", "\n", " (c) 2009-2016 Torstein Honsi\n", "\n", " License: www.highcharts.com/license\n", "*/\n", - "(function(w){\"object\"===typeof module&&module.exports?module.exports=w:w(Highcharts)})(function(w){(function(b){function r(b,a){this.init(b,a)}var v=b.CenteredSeriesMixin,u=b.each,n=b.extend,q=b.merge,g=b.splat;n(r.prototype,{coll:\"pane\",init:function(b,a){this.chart=a;this.background=[];a.pane.push(this);this.setOptions(b)},setOptions:function(b){this.options=q(this.defaultOptions,this.chart.angular?{background:{}}:void 0,b)},render:function(){var b=this.options,a=this.options.background,c=this.chart.renderer;\n", - "this.group||(this.group=c.g(\"pane-group\").attr({zIndex:b.zIndex||0}).add());this.updateCenter();if(a)for(a=g(a),b=Math.max(a.length,this.background.length||0),c=0;cd.len*d.tickInterval/\n", - "(d.max-d.min)&&(k=0),p=m>k&&m<180-k?\"left\":m>180+k&&m<360-k?\"right\":\"center\"):p=\"center\",e.attr({align:p})),c.pos.x=h.x+f.x,c.pos.y=h.y+b)}),k(h,\"getMarkPath\",function(a,c,d,e,f,b,h){var k=this.axis;k.isRadial?(a=k.getPosition(this.pos,k.center[2]/2+e),c=[\"M\",c,d,\"L\",a.x,a.y]):c=a.call(this,c,d,e,f,b,h);return c}))})(w);(function(b){var r=b.each,v=b.pick,u=b.defined,n=b.seriesType,q=b.seriesTypes,g=b.Series.prototype,l=b.Point.prototype;n(\"arearange\",\"area\",{lineWidth:1,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'},\n", - "trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0}},{pointArrayMap:[\"low\",\"high\"],dataLabelCollections:[\"dataLabel\",\"dataLabelUpper\"],toYData:function(a){return[a.low,a.high]},pointValKey:\"low\",deferTranslatePolar:!0,highToXY:function(a){var c=this.chart,d=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=d.x-c.plotLeft;a.plotHigh=d.y-c.plotTop;a.plotLowX=a.plotX},translate:function(){var a=this,c=a.yAxis,d=!!a.modifyValue;q.area.prototype.translate.apply(a);\n", - "r(a.points,function(b){var f=b.low,e=b.high,k=b.plotY;null===e||null===f?(b.isNull=!0,b.plotY=null):(b.plotLow=k,b.plotHigh=c.translate(d?a.modifyValue(e,b):e,0,1,0,1),d&&(b.yBottom=b.plotHigh))});this.chart.polar&&r(this.points,function(c){a.highToXY(c);c.tooltipPos=[(c.plotHighX+c.plotLowX)/2,(c.plotHigh+c.plotLow)/2]})},getGraphPath:function(a){var c=[],d=[],b,f=q.area.prototype.getGraphPath,e,p,t;t=this.options;var h=this.chart.polar&&!1!==t.connectEnds,m=t.connectNulls,x=t.step;a=a||this.points;\n", - "for(b=a.length;b--;)e=a[b],e.isNull||h||m||a[b+1]&&!a[b+1].isNull||d.push({plotX:e.plotX,plotY:e.plotY,doCurve:!1}),p={polarPlotY:e.polarPlotY,rectPlotX:e.rectPlotX,yBottom:e.yBottom,plotX:v(e.plotHighX,e.plotX),plotY:e.plotHigh,isNull:e.isNull},d.push(p),c.push(p),e.isNull||h||m||a[b-1]&&!a[b-1].isNull||d.push({plotX:e.plotX,plotY:e.plotY,doCurve:!1});a=f.call(this,a);x&&(!0===x&&(x=\"left\"),t.step={left:\"right\",center:\"center\",right:\"left\"}[x]);c=f.call(this,c);d=f.call(this,d);t.step=x;t=[].concat(a,\n", - "c);this.chart.polar||\"M\"!==d[0]||(d[0]=\"L\");this.graphPath=t;this.areaPath=a.concat(d);t.isArea=!0;t.xMap=a.xMap;this.areaPath.xMap=a.xMap;return t},drawDataLabels:function(){var a=this.data,c=a.length,d,b=[],f=this.options.dataLabels,e=f.align,p=f.verticalAlign,t=f.inside,h,m,x=this.chart.inverted;if(f.enabled||this._hasPointLabels){for(d=c;d--;)if(h=a[d])m=t?h.plotHighh.plotLow,h.y=h.high,h._plotY=h.plotY,h.plotY=h.plotHigh,b[d]=h.dataLabel,h.dataLabel=h.dataLabelUpper,h.below=\n", - "m,x?e||(f.align=m?\"right\":\"left\"):p||(f.verticalAlign=m?\"top\":\"bottom\"),f.x=f.xHigh,f.y=f.yHigh;g.drawDataLabels&&g.drawDataLabels.apply(this,arguments);for(d=c;d--;)if(h=a[d])m=t?h.plotHighh.plotLow,h.dataLabelUpper=h.dataLabel,h.dataLabel=b[d],h.y=h.low,h.plotY=h._plotY,h.below=!m,x?e||(f.align=m?\"left\":\"right\"):p||(f.verticalAlign=m?\"bottom\":\"top\"),f.x=f.xLow,f.y=f.yLow;g.drawDataLabels&&g.drawDataLabels.apply(this,arguments)}f.align=e;f.verticalAlign=p},alignDataLabel:function(){q.column.prototype.alignDataLabel.apply(this,\n", - "arguments)},drawPoints:function(){var a=this.points.length,c,d;g.drawPoints.apply(this,arguments);for(d=0;dy&&(y*=-1,g-=y);p?(f=k.barX+b,k.shapeType=\"path\",k.shapeArgs={d:a.polarArc(g+y,g,f,f+k.pointWidth)}):(m.height=y,m.y=g,k.tooltipPos=e.inverted?[c.len+c.pos-e.plotLeft-g-y/2,d.len+d.pos-e.plotTop-m.x-m.width/2,y]:[d.left-e.plotLeft+m.x+m.width/2,c.pos-e.plotTop+g+y/2,y])})},directTouch:!0,trackerGroups:[\"group\",\n", - "\"dataLabelsGroup\"],drawGraph:n,getSymbol:n,crispCol:l.crispCol,drawPoints:l.drawPoints,drawTracker:l.drawTracker,getColumnMetrics:l.getColumnMetrics,pointAttribs:l.pointAttribs,animate:function(){return l.animate.apply(this,arguments)},polarArc:function(){return l.polarArc.apply(this,arguments)},translate3dPoints:function(){return l.translate3dPoints.apply(this,arguments)},translate3dShapes:function(){return l.translate3dShapes.apply(this,arguments)}},{setState:l.pointClass.prototype.setState})})(w);\n", - "(function(b){var r=b.each,v=b.isNumber,u=b.merge,n=b.pick,q=b.pInt,g=b.Series,l=b.seriesType,a=b.TrackerMixin;l(\"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:\"\"},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:b.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],translate:function(){var a=this.yAxis,d=this.options,b=a.center;\n", - "this.generatePoints();r(this.points,function(c){var e=u(d.dial,c.dial),f=q(n(e.radius,80))*b[2]/200,k=q(n(e.baseLength,70))*f/100,h=q(n(e.rearLength,10))*f/100,m=e.baseWidth||3,x=e.topWidth||1,g=d.overshoot,l=a.startAngleRad+a.translate(c.y,null,null,null,!0);v(g)?(g=g/180*Math.PI,l=Math.max(a.startAngleRad-g,Math.min(a.endAngleRad+g,l))):!1===d.wrap&&(l=Math.max(a.startAngleRad,Math.min(a.endAngleRad,l)));l=180*l/Math.PI;c.shapeType=\"path\";c.shapeArgs={d:e.path||[\"M\",-h,-m/2,\"L\",k,-m/2,f,-x/2,f,\n", - "x/2,k,m/2,-h,m/2,\"z\"],translateX:b[0],translateY:b[1],rotation:l};c.plotX=b[0];c.plotY=b[1]})},drawPoints:function(){var a=this,d=a.yAxis.center,b=a.pivot,f=a.options,e=f.pivot,p=a.chart.renderer;r(a.points,function(c){var d=c.graphic,b=c.shapeArgs,e=b.d,k=u(f.dial,c.dial);d?(d.animate(b),b.d=e):(c.graphic=p[c.shapeType](b).attr({rotation:b.rotation,zIndex:1}).addClass(\"highcharts-dial\").add(a.group),c.graphic.attr({stroke:k.borderColor||\"none\",\"stroke-width\":k.borderWidth||0,fill:k.backgroundColor||\n", - "\"#000000\"}))});b?b.animate({translateX:d[0],translateY:d[1]}):(a.pivot=p.circle(0,0,n(e.radius,5)).attr({zIndex:2}).addClass(\"highcharts-pivot\").translate(d[0],d[1]).add(a.group),a.pivot.attr({\"stroke-width\":e.borderWidth||0,stroke:e.borderColor||\"#cccccc\",fill:e.backgroundColor||\"#000000\"}))},animate:function(a){var c=this;a||(r(c.points,function(a){var d=a.graphic;d&&(d.attr({rotation:180*c.yAxis.startAngleRad/Math.PI}),d.animate({rotation:a.shapeArgs.rotation},c.options.animation))}),c.animate=\n", - "null)},render:function(){this.group=this.plotGroup(\"group\",\"series\",this.visible?\"visible\":\"hidden\",this.options.zIndex,this.chart.seriesGroup);g.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,d){g.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();n(d,!0)&&this.chart.redraw()},drawTracker:a&&a.drawTrackerPoint},{setState:function(a){this.state=a}})})(w);(function(b){var r=b.each,v=b.noop,u=b.pick,n=b.seriesType,q=b.seriesTypes;n(\"boxplot\",\n", - "\"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,medianWidth:2,whiskerWidth:2},{pointArrayMap:[\"low\",\"q1\",\"median\",\"q3\",\"high\"],toYData:function(b){return[b.low,b.q1,b.median,\n", - "b.q3,b.high]},pointValKey:\"high\",pointAttribs:function(){return{}},drawDataLabels:v,translate:function(){var b=this.yAxis,l=this.pointArrayMap;q.column.prototype.translate.apply(this);r(this.points,function(a){r(l,function(c){null!==a[c]&&(a[c+\"Plot\"]=b.translate(a[c],0,1,0,1))})})},drawPoints:function(){var b=this,l=b.options,a=b.chart.renderer,c,d,k,f,e,p,t=0,h,m,x,q,n=!1!==b.doQuartiles,v,A=b.options.whiskerLength;r(b.points,function(g){var r=g.graphic,y=r?\"animate\":\"attr\",B=g.shapeArgs,w={},D=\n", - "{},J={},K={},C=g.color||b.color;void 0!==g.plotY&&(h=B.width,m=Math.floor(B.x),x=m+h,q=Math.round(h/2),c=Math.floor(n?g.q1Plot:g.lowPlot),d=Math.floor(n?g.q3Plot:g.lowPlot),k=Math.floor(g.highPlot),f=Math.floor(g.lowPlot),r||(g.graphic=r=a.g(\"point\").add(b.group),g.stem=a.path().addClass(\"highcharts-boxplot-stem\").add(r),A&&(g.whiskers=a.path().addClass(\"highcharts-boxplot-whisker\").add(r)),n&&(g.box=a.path(void 0).addClass(\"highcharts-boxplot-box\").add(r)),g.medianShape=a.path(void 0).addClass(\"highcharts-boxplot-median\").add(r)),\n", - "D.stroke=g.stemColor||l.stemColor||C,D[\"stroke-width\"]=u(g.stemWidth,l.stemWidth,l.lineWidth),D.dashstyle=g.stemDashStyle||l.stemDashStyle,g.stem.attr(D),A&&(J.stroke=g.whiskerColor||l.whiskerColor||C,J[\"stroke-width\"]=u(g.whiskerWidth,l.whiskerWidth,l.lineWidth),g.whiskers.attr(J)),n&&(w.fill=g.fillColor||l.fillColor||C,w.stroke=l.lineColor||C,w[\"stroke-width\"]=l.lineWidth||0,g.box.attr(w)),K.stroke=g.medianColor||l.medianColor||C,K[\"stroke-width\"]=u(g.medianWidth,l.medianWidth,l.lineWidth),g.medianShape.attr(K),\n", - "p=g.stem.strokeWidth()%2/2,t=m+q+p,g.stem[y]({d:[\"M\",t,d,\"L\",t,k,\"M\",t,c,\"L\",t,f]}),n&&(p=g.box.strokeWidth()%2/2,c=Math.floor(c)+p,d=Math.floor(d)+p,m+=p,x+=p,g.box[y]({d:[\"M\",m,d,\"L\",m,c,\"L\",x,c,\"L\",x,d,\"L\",m,d,\"z\"]})),A&&(p=g.whiskers.strokeWidth()%2/2,k+=p,f+=p,v=/%$/.test(A)?q*parseFloat(A)/100:A/2,g.whiskers[y]({d:[\"M\",t-v,k,\"L\",t+v,k,\"M\",t-v,f,\"L\",t+v,f]})),e=Math.round(g.medianPlot),p=g.medianShape.strokeWidth()%2/2,e+=p,g.medianShape[y]({d:[\"M\",m,e,\"L\",x,e]}))})},setStackedPoints:v})})(w);\n", - "(function(b){var r=b.each,v=b.noop,u=b.seriesType,n=b.seriesTypes;u(\"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'},whiskerWidth:null},{type:\"errorbar\",pointArrayMap:[\"low\",\"high\"],toYData:function(b){return[b.low,b.high]},pointValKey:\"high\",doQuartiles:!1,drawDataLabels:n.arearange?function(){var b=\n", - "this.pointValKey;n.arearange.prototype.drawDataLabels.call(this);r(this.data,function(g){g.y=g[b]})}:v,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||n.column.prototype.getColumnMetrics.call(this)}})})(w);(function(b){var r=b.correctFloat,v=b.isNumber,u=b.pick,n=b.Point,q=b.Series,g=b.seriesType,l=b.seriesTypes;g(\"waterfall\",\"column\",{dataLabels:{inside:!0},lineWidth:1,lineColor:\"#333333\",dashStyle:\"dot\",borderColor:\"#333333\",states:{hover:{lineWidthPlus:0}}},\n", - "{pointValKey:\"y\",showLine:!0,translate:function(){var a=this.options,c=this.yAxis,b,k,f,e,p,t,h,m,g,n,q=u(a.minPointLength,5),v=q/2,w=a.threshold,F=a.stacking,z;l.column.prototype.translate.apply(this);m=g=w;k=this.points;b=0;for(a=k.length;be.height&&(e.y+=e.height,e.height*=-1),f.plotY=e.y=Math.round(e.y)-this.borderWidth%2/2,e.height=Math.max(Math.round(e.height),.001),f.yBottom=\n", - "e.y+e.height,e.height<=q&&!f.isNull?(e.height=q,e.y-=v,f.plotY=e.y,f.minPointLengthOffset=0>f.y?-v:v):f.minPointLengthOffset=0,e=f.plotY+(f.negative?e.height:0),this.chart.inverted?f.tooltipPos[0]=c.len-e:f.tooltipPos[1]=e},processData:function(a){var c=this.yData,b=this.options.data,k,f=c.length,e,p,t,h,m,g;p=e=t=h=this.options.threshold||0;for(g=0;ga[h-1].y&&!f||0=this.minPxSize/2?(d.marker=b.extend(d.marker,{radius:f,width:2*f,height:2*f}),d.dlBox={x:d.plotX-f,y:d.plotY-f,width:2*f,height:2*f}):d.shapeArgs=d.plotY=d.dlBox=void 0},alignDataLabel:e.column.prototype.alignDataLabel,buildKDTree:l,applyZones:l},{haloPath:function(a){return d.prototype.haloPath.call(this,\n", - "0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});u.prototype.beforePadding=function(){var b=this,d=this.len,e=this.chart,f=0,k=d,l=this.isXAxis,n=l?\"xData\":\"yData\",u=this.min,w={},F=Math.min(e.plotWidth,e.plotHeight),z=Number.MAX_VALUE,G=-Number.MAX_VALUE,H=this.max-u,E=d/H,I=[];q(this.series,function(d){var f=d.options;!d.bubblePadding||!d.visible&&e.options.chart.ignoreHiddenSeries||(b.allowZoomOutside=!0,I.push(d),l&&(q([\"minSize\",\"maxSize\"],function(a){var b=f[a],d=/%$/.test(b),\n", - "b=c(b);w[a]=d?F*b/100:b}),d.minPxSize=w.minSize,d.maxPxSize=Math.max(w.maxSize,w.minSize),d=d.zData,d.length&&(z=a(f.zMin,Math.min(z,Math.max(v(d),!1===f.displayNegative?f.zThreshold:-Number.MAX_VALUE))),G=a(f.zMax,Math.max(G,r(d))))))});q(I,function(a){var c=a[n],d=c.length,e;l&&a.getRadii(z,G,a.minPxSize,a.maxPxSize);if(0c?a.length-1+c:0;c=0>d-1?a.length-(1+e):d-1;e=d+1>a.length-1?e:d+1;g=a[c];e=a[e];l=g.plotX;g=g.plotY;h=e.plotX;m=e.plotY;e=a[d].plotX;d=a[d].plotY;l=(1.5*e+l)/2.5;g=(1.5*d+g)/2.5;h=(1.5*e+h)/2.5;n=(1.5*d+m)/2.5;m=Math.sqrt(Math.pow(l-e,2)+Math.pow(g-d,2));q=Math.sqrt(Math.pow(h-e,2)+Math.pow(n-d,2));l=Math.atan2(g-d,l-e);n=Math.PI/2+(l+Math.atan2(n-d,h-e))/2;Math.abs(l-n)>Math.PI/2&&(n-=Math.PI);l=e+Math.cos(n)*m;g=d+Math.sin(n)*m;h=e+Math.cos(Math.PI+n)*q;n=d+Math.sin(Math.PI+\n", - "n)*q;e={rightContX:h,rightContY:n,leftContX:l,leftContY:g,plotX:e,plotY:d};b&&(e.prevPointCont=this.getConnectors(a,c,!1,k));return e},q(g,\"buildKDTree\",function(a){this.chart.polar&&(this.kdByAngle?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy=\"xy\");a.apply(this)}),g.toXY=function(a){var c,b=this.chart,k=a.plotX;c=a.plotY;a.rectPlotX=k;a.rectPlotY=c;c=this.xAxis.postTranslate(a.plotX,this.yAxis.len-c);a.plotX=a.polarPlotX=c.x-b.plotLeft;a.plotY=a.polarPlotY=c.y-b.plotTop;\n", - "this.kdByAngle?(b=(k/Math.PI*180+this.xAxis.pane.options.startAngle)%360,0>b&&(b+=360),a.clientX=b):a.clientX=a.plotX},n.spline&&(q(n.spline.prototype,\"getPointSpline\",function(a,c,b,k){this.chart.polar?k?(a=this.getConnectors(c,k,!0,this.connectEnds),a=[\"C\",a.prevPointCont.rightContX,a.prevPointCont.rightContY,a.leftContX,a.leftContY,a.plotX,a.plotY]):a=[\"M\",b.plotX,b.plotY]:a=a.call(this,c,b,k);return a}),n.areasplinerange&&(n.areasplinerange.prototype.getPointSpline=n.spline.prototype.getPointSpline)),\n", - "b.addEvent(u,\"afterTranslate\",function(){var a=this.chart,c,d;if(a.polar){this.kdByAngle=a.tooltip&&a.tooltip.shared;if(!this.preventPostTranslate)for(c=this.points,d=c.length;d--;)this.toXY(c[d]);this.hasClipCircleSetter||(this.hasClipCircleSetter=!!b.addEvent(this,\"afterRender\",function(){var c;a.polar&&(c=this.yAxis.center,this.group.clip(a.renderer.clipCircle(c[0],c[1],c[2]/2)),this.setClip=b.noop)}))}}),q(g,\"getGraphPath\",function(a,c){var b=this,g,f,e;if(this.chart.polar){c=c||this.points;for(g=\n", - "0;gc.center[1]}),q(n,\"alignDataLabel\",function(a,b,d,k,f,e){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===k.align&&(k.align=20a?\"left\":200a?\"right\":\"center\"),null===k.verticalAlign&&(k.verticalAlign=45>a||315a?\"top\":\"middle\"),g.alignDataLabel.call(this,b,d,k,f,e)):a.call(this,b,\n", - "d,k,f,e)})),q(l,\"getCoordinates\",function(a,b){var c=this.chart,g={xAxis:[],yAxis:[]};c.polar?r(c.axes,function(a){var d=a.isXAxis,f=a.center,k=b.chartX-f[0]-c.plotLeft,f=b.chartY-f[1]-c.plotTop;g[d?\"xAxis\":\"yAxis\"].push({axis:a,value:a.translate(d?Math.PI-Math.atan2(k,f):Math.sqrt(Math.pow(k,2)+Math.pow(f,2)),!0)})}):g=a.call(this,b);return g}),b.SVGRenderer.prototype.clipCircle=function(a,c,d){var g=b.uniqueKey(),f=this.createElement(\"clipPath\").attr({id:g}).add(this.defs);a=this.circle(a,c,d).add(f);\n", - "a.id=g;a.clipPath=f;return a},b.addEvent(b.Chart,\"getAxes\",function(){this.pane||(this.pane=[]);r(b.splat(this.options.pane),function(a){new b.Pane(a,this)},this)}),b.addEvent(b.Chart,\"afterDrawChartBox\",function(){r(this.pane,function(a){a.render()})}),q(b.Chart.prototype,\"get\",function(a,c){return b.find(this.pane,function(a){return a.options.id===c})||a.call(this,c)}))})(w)});\n", + "(function(v){\"object\"===typeof module&&module.exports?module.exports=v:v(Highcharts)})(function(v){(function(a){function r(a,b){this.init(a,b)}var t=a.CenteredSeriesMixin,w=a.each,p=a.extend,m=a.merge,f=a.splat;p(r.prototype,{coll:\"pane\",init:function(a,b){this.chart=b;this.background=[];b.pane.push(this);this.setOptions(a)},setOptions:function(a){this.options=m(this.defaultOptions,this.chart.angular?{background:{}}:void 0,a)},render:function(){var a=this.options,b=this.options.background,d=this.chart.renderer;\n", + "this.group||(this.group=d.g(\"pane-group\").attr({zIndex:a.zIndex||0}).add());this.updateCenter();if(b)for(b=f(b),a=Math.max(b.length,this.background.length||0),d=0;dc.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", @@ -1516,7 +1511,7 @@ "console.log(\"Finish loading highchartsjs\");\n" ], "text/plain": [ - "\"\\n /* BEGIN highcharts-more.js */\\n\\n/*\\n Highcharts JS v6.1.0 (2018-04-13)\\n\\n (c) 2009-2016 Torstein Honsi\\n\\n License: www.highcharts.com/license\\n*/\\n(function(w){\\\"object\\\"===typeof module&&module.exports?module.exports=w:w(Highcharts)})(function(w){(function(b){function r(b,a){this.init(b,a)}var v=b.CenteredSeriesMixin,u=b.each,n=b.extend,q=b.merge,g=b.splat;n(r.prototype,{coll:\\\"pane\\\",init:function(b,a){this.chart=a;this.background=[];a.pane.push(this);this.setOptions(b)},setOptions:function(b){this.options=q(this.defaultOptions,this.chart.angular?{background:{}}:void 0,b)},render:function(){var b=this.options,a=this.options.background,c=this.chart.renderer;\\nthis.group||(this.group=c.g(\\\"pane-group\\\").attr({zIndex:b.zIndex||0}).add());this.updateCenter();if(a)for(a=g(a),b=Math.max(a.length,this.background.length||0),c=0;cd.len*d.tickInterval/\\n(d.max-d.min)&&(k=0),p=m>k&&m<180-k?\\\"left\\\":m>180+k&&m<360-k?\\\"right\\\":\\\"center\\\"):p=\\\"center\\\",e.attr({align:p})),c.pos.x=h.x+f.x,c.pos.y=h.y+b)}),k(h,\\\"getMarkPath\\\",function(a,c,d,e,f,b,h){var k=this.axis;k.isRadial?(a=k.getPosition(this.pos,k.center[2]/2+e),c=[\\\"M\\\",c,d,\\\"L\\\",a.x,a.y]):c=a.call(this,c,d,e,f,b,h);return c}))})(w);(function(b){var r=b.each,v=b.pick,u=b.defined,n=b.seriesType,q=b.seriesTypes,g=b.Series.prototype,l=b.Point.prototype;n(\\\"arearange\\\",\\\"area\\\",{lineWidth:1,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'},\\ntrackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0}},{pointArrayMap:[\\\"low\\\",\\\"high\\\"],dataLabelCollections:[\\\"dataLabel\\\",\\\"dataLabelUpper\\\"],toYData:function(a){return[a.low,a.high]},pointValKey:\\\"low\\\",deferTranslatePolar:!0,highToXY:function(a){var c=this.chart,d=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=d.x-c.plotLeft;a.plotHigh=d.y-c.plotTop;a.plotLowX=a.plotX},translate:function(){var a=this,c=a.yAxis,d=!!a.modifyValue;q.area.prototype.translate.apply(a);\\nr(a.points,function(b){var f=b.low,e=b.high,k=b.plotY;null===e||null===f?(b.isNull=!0,b.plotY=null):(b.plotLow=k,b.plotHigh=c.translate(d?a.modifyValue(e,b):e,0,1,0,1),d&&(b.yBottom=b.plotHigh))});this.chart.polar&&r(this.points,function(c){a.highToXY(c);c.tooltipPos=[(c.plotHighX+c.plotLowX)/2,(c.plotHigh+c.plotLow)/2]})},getGraphPath:function(a){var c=[],d=[],b,f=q.area.prototype.getGraphPath,e,p,t;t=this.options;var h=this.chart.polar&&!1!==t.connectEnds,m=t.connectNulls,x=t.step;a=a||this.points;\\nfor(b=a.length;b--;)e=a[b],e.isNull||h||m||a[b+1]&&!a[b+1].isNull||d.push({plotX:e.plotX,plotY:e.plotY,doCurve:!1}),p={polarPlotY:e.polarPlotY,rectPlotX:e.rectPlotX,yBottom:e.yBottom,plotX:v(e.plotHighX,e.plotX),plotY:e.plotHigh,isNull:e.isNull},d.push(p),c.push(p),e.isNull||h||m||a[b-1]&&!a[b-1].isNull||d.push({plotX:e.plotX,plotY:e.plotY,doCurve:!1});a=f.call(this,a);x&&(!0===x&&(x=\\\"left\\\"),t.step={left:\\\"right\\\",center:\\\"center\\\",right:\\\"left\\\"}[x]);c=f.call(this,c);d=f.call(this,d);t.step=x;t=[].concat(a,\\nc);this.chart.polar||\\\"M\\\"!==d[0]||(d[0]=\\\"L\\\");this.graphPath=t;this.areaPath=a.concat(d);t.isArea=!0;t.xMap=a.xMap;this.areaPath.xMap=a.xMap;return t},drawDataLabels:function(){var a=this.data,c=a.length,d,b=[],f=this.options.dataLabels,e=f.align,p=f.verticalAlign,t=f.inside,h,m,x=this.chart.inverted;if(f.enabled||this._hasPointLabels){for(d=c;d--;)if(h=a[d])m=t?h.plotHighh.plotLow,h.y=h.high,h._plotY=h.plotY,h.plotY=h.plotHigh,b[d]=h.dataLabel,h.dataLabel=h.dataLabelUpper,h.below=\\nm,x?e||(f.align=m?\\\"right\\\":\\\"left\\\"):p||(f.verticalAlign=m?\\\"top\\\":\\\"bottom\\\"),f.x=f.xHigh,f.y=f.yHigh;g.drawDataLabels&&g.drawDataLabels.apply(this,arguments);for(d=c;d--;)if(h=a[d])m=t?h.plotHighh.plotLow,h.dataLabelUpper=h.dataLabel,h.dataLabel=b[d],h.y=h.low,h.plotY=h._plotY,h.below=!m,x?e||(f.align=m?\\\"left\\\":\\\"right\\\"):p||(f.verticalAlign=m?\\\"bottom\\\":\\\"top\\\"),f.x=f.xLow,f.y=f.yLow;g.drawDataLabels&&g.drawDataLabels.apply(this,arguments)}f.align=e;f.verticalAlign=p},alignDataLabel:function(){q.column.prototype.alignDataLabel.apply(this,\\narguments)},drawPoints:function(){var a=this.points.length,c,d;g.drawPoints.apply(this,arguments);for(d=0;dy&&(y*=-1,g-=y);p?(f=k.barX+b,k.shapeType=\\\"path\\\",k.shapeArgs={d:a.polarArc(g+y,g,f,f+k.pointWidth)}):(m.height=y,m.y=g,k.tooltipPos=e.inverted?[c.len+c.pos-e.plotLeft-g-y/2,d.len+d.pos-e.plotTop-m.x-m.width/2,y]:[d.left-e.plotLeft+m.x+m.width/2,c.pos-e.plotTop+g+y/2,y])})},directTouch:!0,trackerGroups:[\\\"group\\\",\\n\\\"dataLabelsGroup\\\"],drawGraph:n,getSymbol:n,crispCol:l.crispCol,drawPoints:l.drawPoints,drawTracker:l.drawTracker,getColumnMetrics:l.getColumnMetrics,pointAttribs:l.pointAttribs,animate:function(){return l.animate.apply(this,arguments)},polarArc:function(){return l.polarArc.apply(this,arguments)},translate3dPoints:function(){return l.translate3dPoints.apply(this,arguments)},translate3dShapes:function(){return l.translate3dShapes.apply(this,arguments)}},{setState:l.pointClass.prototype.setState})})(w);\\n(function(b){var r=b.each,v=b.isNumber,u=b.merge,n=b.pick,q=b.pInt,g=b.Series,l=b.seriesType,a=b.TrackerMixin;l(\\\"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:\\\"\\\"},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:b.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,trackerGroups:[\\\"group\\\",\\\"dataLabelsGroup\\\"],translate:function(){var a=this.yAxis,d=this.options,b=a.center;\\nthis.generatePoints();r(this.points,function(c){var e=u(d.dial,c.dial),f=q(n(e.radius,80))*b[2]/200,k=q(n(e.baseLength,70))*f/100,h=q(n(e.rearLength,10))*f/100,m=e.baseWidth||3,x=e.topWidth||1,g=d.overshoot,l=a.startAngleRad+a.translate(c.y,null,null,null,!0);v(g)?(g=g/180*Math.PI,l=Math.max(a.startAngleRad-g,Math.min(a.endAngleRad+g,l))):!1===d.wrap&&(l=Math.max(a.startAngleRad,Math.min(a.endAngleRad,l)));l=180*l/Math.PI;c.shapeType=\\\"path\\\";c.shapeArgs={d:e.path||[\\\"M\\\",-h,-m/2,\\\"L\\\",k,-m/2,f,-x/2,f,\\nx/2,k,m/2,-h,m/2,\\\"z\\\"],translateX:b[0],translateY:b[1],rotation:l};c.plotX=b[0];c.plotY=b[1]})},drawPoints:function(){var a=this,d=a.yAxis.center,b=a.pivot,f=a.options,e=f.pivot,p=a.chart.renderer;r(a.points,function(c){var d=c.graphic,b=c.shapeArgs,e=b.d,k=u(f.dial,c.dial);d?(d.animate(b),b.d=e):(c.graphic=p[c.shapeType](b).attr({rotation:b.rotation,zIndex:1}).addClass(\\\"highcharts-dial\\\").add(a.group),c.graphic.attr({stroke:k.borderColor||\\\"none\\\",\\\"stroke-width\\\":k.borderWidth||0,fill:k.backgroundColor||\\n\\\"#000000\\\"}))});b?b.animate({translateX:d[0],translateY:d[1]}):(a.pivot=p.circle(0,0,n(e.radius,5)).attr({zIndex:2}).addClass(\\\"highcharts-pivot\\\").translate(d[0],d[1]).add(a.group),a.pivot.attr({\\\"stroke-width\\\":e.borderWidth||0,stroke:e.borderColor||\\\"#cccccc\\\",fill:e.backgroundColor||\\\"#000000\\\"}))},animate:function(a){var c=this;a||(r(c.points,function(a){var d=a.graphic;d&&(d.attr({rotation:180*c.yAxis.startAngleRad/Math.PI}),d.animate({rotation:a.shapeArgs.rotation},c.options.animation))}),c.animate=\\nnull)},render:function(){this.group=this.plotGroup(\\\"group\\\",\\\"series\\\",this.visible?\\\"visible\\\":\\\"hidden\\\",this.options.zIndex,this.chart.seriesGroup);g.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,d){g.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();n(d,!0)&&this.chart.redraw()},drawTracker:a&&a.drawTrackerPoint},{setState:function(a){this.state=a}})})(w);(function(b){var r=b.each,v=b.noop,u=b.pick,n=b.seriesType,q=b.seriesTypes;n(\\\"boxplot\\\",\\n\\\"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,medianWidth:2,whiskerWidth:2},{pointArrayMap:[\\\"low\\\",\\\"q1\\\",\\\"median\\\",\\\"q3\\\",\\\"high\\\"],toYData:function(b){return[b.low,b.q1,b.median,\\nb.q3,b.high]},pointValKey:\\\"high\\\",pointAttribs:function(){return{}},drawDataLabels:v,translate:function(){var b=this.yAxis,l=this.pointArrayMap;q.column.prototype.translate.apply(this);r(this.points,function(a){r(l,function(c){null!==a[c]&&(a[c+\\\"Plot\\\"]=b.translate(a[c],0,1,0,1))})})},drawPoints:function(){var b=this,l=b.options,a=b.chart.renderer,c,d,k,f,e,p,t=0,h,m,x,q,n=!1!==b.doQuartiles,v,A=b.options.whiskerLength;r(b.points,function(g){var r=g.graphic,y=r?\\\"animate\\\":\\\"attr\\\",B=g.shapeArgs,w={},D=\\n{},J={},K={},C=g.color||b.color;void 0!==g.plotY&&(h=B.width,m=Math.floor(B.x),x=m+h,q=Math.round(h/2),c=Math.floor(n?g.q1Plot:g.lowPlot),d=Math.floor(n?g.q3Plot:g.lowPlot),k=Math.floor(g.highPlot),f=Math.floor(g.lowPlot),r||(g.graphic=r=a.g(\\\"point\\\").add(b.group),g.stem=a.path().addClass(\\\"highcharts-boxplot-stem\\\").add(r),A&&(g.whiskers=a.path().addClass(\\\"highcharts-boxplot-whisker\\\").add(r)),n&&(g.box=a.path(void 0).addClass(\\\"highcharts-boxplot-box\\\").add(r)),g.medianShape=a.path(void 0).addClass(\\\"highcharts-boxplot-median\\\").add(r)),\\nD.stroke=g.stemColor||l.stemColor||C,D[\\\"stroke-width\\\"]=u(g.stemWidth,l.stemWidth,l.lineWidth),D.dashstyle=g.stemDashStyle||l.stemDashStyle,g.stem.attr(D),A&&(J.stroke=g.whiskerColor||l.whiskerColor||C,J[\\\"stroke-width\\\"]=u(g.whiskerWidth,l.whiskerWidth,l.lineWidth),g.whiskers.attr(J)),n&&(w.fill=g.fillColor||l.fillColor||C,w.stroke=l.lineColor||C,w[\\\"stroke-width\\\"]=l.lineWidth||0,g.box.attr(w)),K.stroke=g.medianColor||l.medianColor||C,K[\\\"stroke-width\\\"]=u(g.medianWidth,l.medianWidth,l.lineWidth),g.medianShape.attr(K),\\np=g.stem.strokeWidth()%2/2,t=m+q+p,g.stem[y]({d:[\\\"M\\\",t,d,\\\"L\\\",t,k,\\\"M\\\",t,c,\\\"L\\\",t,f]}),n&&(p=g.box.strokeWidth()%2/2,c=Math.floor(c)+p,d=Math.floor(d)+p,m+=p,x+=p,g.box[y]({d:[\\\"M\\\",m,d,\\\"L\\\",m,c,\\\"L\\\",x,c,\\\"L\\\",x,d,\\\"L\\\",m,d,\\\"z\\\"]})),A&&(p=g.whiskers.strokeWidth()%2/2,k+=p,f+=p,v=/%$/.test(A)?q*parseFloat(A)/100:A/2,g.whiskers[y]({d:[\\\"M\\\",t-v,k,\\\"L\\\",t+v,k,\\\"M\\\",t-v,f,\\\"L\\\",t+v,f]})),e=Math.round(g.medianPlot),p=g.medianShape.strokeWidth()%2/2,e+=p,g.medianShape[y]({d:[\\\"M\\\",m,e,\\\"L\\\",x,e]}))})},setStackedPoints:v})})(w);\\n(function(b){var r=b.each,v=b.noop,u=b.seriesType,n=b.seriesTypes;u(\\\"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'},whiskerWidth:null},{type:\\\"errorbar\\\",pointArrayMap:[\\\"low\\\",\\\"high\\\"],toYData:function(b){return[b.low,b.high]},pointValKey:\\\"high\\\",doQuartiles:!1,drawDataLabels:n.arearange?function(){var b=\\nthis.pointValKey;n.arearange.prototype.drawDataLabels.call(this);r(this.data,function(g){g.y=g[b]})}:v,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||n.column.prototype.getColumnMetrics.call(this)}})})(w);(function(b){var r=b.correctFloat,v=b.isNumber,u=b.pick,n=b.Point,q=b.Series,g=b.seriesType,l=b.seriesTypes;g(\\\"waterfall\\\",\\\"column\\\",{dataLabels:{inside:!0},lineWidth:1,lineColor:\\\"#333333\\\",dashStyle:\\\"dot\\\",borderColor:\\\"#333333\\\",states:{hover:{lineWidthPlus:0}}},\\n{pointValKey:\\\"y\\\",showLine:!0,translate:function(){var a=this.options,c=this.yAxis,b,k,f,e,p,t,h,m,g,n,q=u(a.minPointLength,5),v=q/2,w=a.threshold,F=a.stacking,z;l.column.prototype.translate.apply(this);m=g=w;k=this.points;b=0;for(a=k.length;be.height&&(e.y+=e.height,e.height*=-1),f.plotY=e.y=Math.round(e.y)-this.borderWidth%2/2,e.height=Math.max(Math.round(e.height),.001),f.yBottom=\\ne.y+e.height,e.height<=q&&!f.isNull?(e.height=q,e.y-=v,f.plotY=e.y,f.minPointLengthOffset=0>f.y?-v:v):f.minPointLengthOffset=0,e=f.plotY+(f.negative?e.height:0),this.chart.inverted?f.tooltipPos[0]=c.len-e:f.tooltipPos[1]=e},processData:function(a){var c=this.yData,b=this.options.data,k,f=c.length,e,p,t,h,m,g;p=e=t=h=this.options.threshold||0;for(g=0;ga[h-1].y&&!f||0=this.minPxSize/2?(d.marker=b.extend(d.marker,{radius:f,width:2*f,height:2*f}),d.dlBox={x:d.plotX-f,y:d.plotY-f,width:2*f,height:2*f}):d.shapeArgs=d.plotY=d.dlBox=void 0},alignDataLabel:e.column.prototype.alignDataLabel,buildKDTree:l,applyZones:l},{haloPath:function(a){return d.prototype.haloPath.call(this,\\n0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});u.prototype.beforePadding=function(){var b=this,d=this.len,e=this.chart,f=0,k=d,l=this.isXAxis,n=l?\\\"xData\\\":\\\"yData\\\",u=this.min,w={},F=Math.min(e.plotWidth,e.plotHeight),z=Number.MAX_VALUE,G=-Number.MAX_VALUE,H=this.max-u,E=d/H,I=[];q(this.series,function(d){var f=d.options;!d.bubblePadding||!d.visible&&e.options.chart.ignoreHiddenSeries||(b.allowZoomOutside=!0,I.push(d),l&&(q([\\\"minSize\\\",\\\"maxSize\\\"],function(a){var b=f[a],d=/%$/.test(b),\\nb=c(b);w[a]=d?F*b/100:b}),d.minPxSize=w.minSize,d.maxPxSize=Math.max(w.maxSize,w.minSize),d=d.zData,d.length&&(z=a(f.zMin,Math.min(z,Math.max(v(d),!1===f.displayNegative?f.zThreshold:-Number.MAX_VALUE))),G=a(f.zMax,Math.max(G,r(d))))))});q(I,function(a){var c=a[n],d=c.length,e;l&&a.getRadii(z,G,a.minPxSize,a.maxPxSize);if(0c?a.length-1+c:0;c=0>d-1?a.length-(1+e):d-1;e=d+1>a.length-1?e:d+1;g=a[c];e=a[e];l=g.plotX;g=g.plotY;h=e.plotX;m=e.plotY;e=a[d].plotX;d=a[d].plotY;l=(1.5*e+l)/2.5;g=(1.5*d+g)/2.5;h=(1.5*e+h)/2.5;n=(1.5*d+m)/2.5;m=Math.sqrt(Math.pow(l-e,2)+Math.pow(g-d,2));q=Math.sqrt(Math.pow(h-e,2)+Math.pow(n-d,2));l=Math.atan2(g-d,l-e);n=Math.PI/2+(l+Math.atan2(n-d,h-e))/2;Math.abs(l-n)>Math.PI/2&&(n-=Math.PI);l=e+Math.cos(n)*m;g=d+Math.sin(n)*m;h=e+Math.cos(Math.PI+n)*q;n=d+Math.sin(Math.PI+\\nn)*q;e={rightContX:h,rightContY:n,leftContX:l,leftContY:g,plotX:e,plotY:d};b&&(e.prevPointCont=this.getConnectors(a,c,!1,k));return e},q(g,\\\"buildKDTree\\\",function(a){this.chart.polar&&(this.kdByAngle?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy=\\\"xy\\\");a.apply(this)}),g.toXY=function(a){var c,b=this.chart,k=a.plotX;c=a.plotY;a.rectPlotX=k;a.rectPlotY=c;c=this.xAxis.postTranslate(a.plotX,this.yAxis.len-c);a.plotX=a.polarPlotX=c.x-b.plotLeft;a.plotY=a.polarPlotY=c.y-b.plotTop;\\nthis.kdByAngle?(b=(k/Math.PI*180+this.xAxis.pane.options.startAngle)%360,0>b&&(b+=360),a.clientX=b):a.clientX=a.plotX},n.spline&&(q(n.spline.prototype,\\\"getPointSpline\\\",function(a,c,b,k){this.chart.polar?k?(a=this.getConnectors(c,k,!0,this.connectEnds),a=[\\\"C\\\",a.prevPointCont.rightContX,a.prevPointCont.rightContY,a.leftContX,a.leftContY,a.plotX,a.plotY]):a=[\\\"M\\\",b.plotX,b.plotY]:a=a.call(this,c,b,k);return a}),n.areasplinerange&&(n.areasplinerange.prototype.getPointSpline=n.spline.prototype.getPointSpline)),\\nb.addEvent(u,\\\"afterTranslate\\\",function(){var a=this.chart,c,d;if(a.polar){this.kdByAngle=a.tooltip&&a.tooltip.shared;if(!this.preventPostTranslate)for(c=this.points,d=c.length;d--;)this.toXY(c[d]);this.hasClipCircleSetter||(this.hasClipCircleSetter=!!b.addEvent(this,\\\"afterRender\\\",function(){var c;a.polar&&(c=this.yAxis.center,this.group.clip(a.renderer.clipCircle(c[0],c[1],c[2]/2)),this.setClip=b.noop)}))}}),q(g,\\\"getGraphPath\\\",function(a,c){var b=this,g,f,e;if(this.chart.polar){c=c||this.points;for(g=\\n0;gc.center[1]}),q(n,\\\"alignDataLabel\\\",function(a,b,d,k,f,e){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===k.align&&(k.align=20a?\\\"left\\\":200a?\\\"right\\\":\\\"center\\\"),null===k.verticalAlign&&(k.verticalAlign=45>a||315a?\\\"top\\\":\\\"middle\\\"),g.alignDataLabel.call(this,b,d,k,f,e)):a.call(this,b,\\nd,k,f,e)})),q(l,\\\"getCoordinates\\\",function(a,b){var c=this.chart,g={xAxis:[],yAxis:[]};c.polar?r(c.axes,function(a){var d=a.isXAxis,f=a.center,k=b.chartX-f[0]-c.plotLeft,f=b.chartY-f[1]-c.plotTop;g[d?\\\"xAxis\\\":\\\"yAxis\\\"].push({axis:a,value:a.translate(d?Math.PI-Math.atan2(k,f):Math.sqrt(Math.pow(k,2)+Math.pow(f,2)),!0)})}):g=a.call(this,b);return g}),b.SVGRenderer.prototype.clipCircle=function(a,c,d){var g=b.uniqueKey(),f=this.createElement(\\\"clipPath\\\").attr({id:g}).add(this.defs);a=this.circle(a,c,d).add(f);\\na.id=g;a.clipPath=f;return a},b.addEvent(b.Chart,\\\"getAxes\\\",function(){this.pane||(this.pane=[]);r(b.splat(this.options.pane),function(a){new b.Pane(a,this)},this)}),b.addEvent(b.Chart,\\\"afterDrawChartBox\\\",function(){r(this.pane,function(a){a.render()})}),q(b.Chart.prototype,\\\"get\\\",function(a,c){return b.find(this.pane,function(a){return a.options.id===c})||a.call(this,c)}))})(w)});\\n\\n /* END highcharts-more.js*/\\n\\n\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" + "\"\\n /* BEGIN highcharts-more.js */\\n\\n/*\\n Highcharts JS v5.0.12 (2017-05-24)\\n\\n (c) 2009-2016 Torstein Honsi\\n\\n License: www.highcharts.com/license\\n*/\\n(function(v){\\\"object\\\"===typeof module&&module.exports?module.exports=v:v(Highcharts)})(function(v){(function(a){function r(a,b){this.init(a,b)}var t=a.CenteredSeriesMixin,w=a.each,p=a.extend,m=a.merge,f=a.splat;p(r.prototype,{coll:\\\"pane\\\",init:function(a,b){this.chart=b;this.background=[];b.pane.push(this);this.setOptions(a)},setOptions:function(a){this.options=m(this.defaultOptions,this.chart.angular?{background:{}}:void 0,a)},render:function(){var a=this.options,b=this.options.background,d=this.chart.renderer;\\nthis.group||(this.group=d.g(\\\"pane-group\\\").attr({zIndex:a.zIndex||0}).add());this.updateCenter();if(b)for(b=f(b),a=Math.max(b.length,this.background.length||0),d=0;dc.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\\nvar event = document.createEvent(\\\"HTMLEvents\\\");\\nevent.initEvent(\\\"load_highcharts\\\", false, false);\\nwindow.dispatchEvent(event);\\nconsole.log(\\\"Finish loading highchartsjs\\\");\\n\"" ] }, "metadata": {}, @@ -1528,17 +1523,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 8, @@ -1645,17 +1640,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 9, @@ -2100,17 +2095,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 10, diff --git a/spec/dummy_iruby/Highcharts - line graphs.ipynb b/spec/dummy_iruby/Highcharts - line graphs.ipynb index f1da4f9..b3aee5e 100644 --- a/spec/dummy_iruby/Highcharts - line graphs.ipynb +++ b/spec/dummy_iruby/Highcharts - line graphs.ipynb @@ -852,7 +852,7 @@ { "data": { "text/plain": [ - "#nil, :name=>nil, :data=>[]}], @options={:title=>{:text=>nil}, :legend=>{:layout=>\"vertical\", :style=>{}}, :xAxis=>{}, :yAxis=>{:title=>{:text=>nil}, :labels=>{}}, :tooltip=>{:enabled=>true}, :credits=>{:enabled=>false}, :plotOptions=>{:areaspline=>{}}, :chart=>{:defaultSeriesType=>\"line\", :renderTo=>nil}, :subtitle=>{}}, @html_options={}, @placeholder=\"hrtvwopsxji\">>" + "#nil, :name=>nil, :data=>[]}], @options={:title=>{:text=>nil}, :legend=>{:layout=>\"vertical\", :style=>{}}, :xAxis=>{}, :yAxis=>{:title=>{:text=>nil}, :labels=>{}}, :tooltip=>{:enabled=>true}, :credits=>{:enabled=>false}, :plotOptions=>{:areaspline=>{}}, :chart=>{:defaultSeriesType=>\"line\", :renderTo=>nil}, :subtitle=>{}}, @html_options={}, @placeholder=\"jugbvlcxewo\">>" ] }, "execution_count": 3, @@ -956,17 +956,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -986,7 +986,7 @@ { "data": { "text/plain": [ - "#nil, :name=>nil, :data=>[]}], @options={:title=>{:text=>nil}, :legend=>{:layout=>\"vertical\", :style=>{}}, :xAxis=>{}, :yAxis=>{:title=>{:text=>nil}, :labels=>{}}, :tooltip=>{:enabled=>true}, :credits=>{:enabled=>false}, :plotOptions=>{:areaspline=>{}}, :chart=>{:defaultSeriesType=>\"line\", :renderTo=>nil}, :subtitle=>{}}, @html_options={}, @placeholder=\"aycqwtizhvk\">>" + "#nil, :name=>nil, :data=>[]}], @options={:title=>{:text=>nil}, :legend=>{:layout=>\"vertical\", :style=>{}}, :xAxis=>{}, :yAxis=>{:title=>{:text=>nil}, :labels=>{}}, :tooltip=>{:enabled=>true}, :credits=>{:enabled=>false}, :plotOptions=>{:areaspline=>{}}, :chart=>{:defaultSeriesType=>\"line\", :renderTo=>nil}, :subtitle=>{}}, @html_options={}, @placeholder=\"ijoudfarnse\">>" ] }, "execution_count": 6, @@ -1083,17 +1083,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 8, @@ -1133,21 +1133,21 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 9, @@ -1244,21 +1244,21 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 10, @@ -1302,19 +1302,19 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 11, @@ -1422,17 +1422,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 12, @@ -1602,17 +1602,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 13, diff --git a/spec/dummy_iruby/Highcharts - line graphs2.ipynb b/spec/dummy_iruby/Highcharts - line graphs2.ipynb index ac932d8..689f074 100644 --- a/spec/dummy_iruby/Highcharts - line graphs2.ipynb +++ b/spec/dummy_iruby/Highcharts - line graphs2.ipynb @@ -852,7 +852,7 @@ { "data": { "text/plain": [ - "#nil, :name=>nil, :data=>[]}], @options={:title=>{:text=>nil}, :legend=>{:layout=>\"vertical\", :style=>{}}, :xAxis=>{}, :yAxis=>{:title=>{:text=>nil}, :labels=>{}}, :tooltip=>{:enabled=>true}, :credits=>{:enabled=>false}, :plotOptions=>{:areaspline=>{}}, :chart=>{:defaultSeriesType=>\"line\", :renderTo=>nil}, :subtitle=>{}}, @html_options={}, @placeholder=\"bmoznrtqefw\">>" + "#nil, :name=>nil, :data=>[]}], @options={:title=>{:text=>nil}, :legend=>{:layout=>\"vertical\", :style=>{}}, :xAxis=>{}, :yAxis=>{:title=>{:text=>nil}, :labels=>{}}, :tooltip=>{:enabled=>true}, :credits=>{:enabled=>false}, :plotOptions=>{:areaspline=>{}}, :chart=>{:defaultSeriesType=>\"line\", :renderTo=>nil}, :subtitle=>{}}, @html_options={}, @placeholder=\"ouelzcgakis\">>" ] }, "execution_count": 3, @@ -920,17 +920,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -988,17 +988,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -1052,7 +1052,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -1078,21 +1078,21 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, - "execution_count": 8, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } diff --git a/spec/dummy_iruby/Highcharts - scatter -bubble charts.ipynb b/spec/dummy_iruby/Highcharts - scatter -bubble charts.ipynb index 949d156..ab3b4b3 100644 --- a/spec/dummy_iruby/Highcharts - scatter -bubble charts.ipynb +++ b/spec/dummy_iruby/Highcharts - scatter -bubble charts.ipynb @@ -872,17 +872,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -1169,17 +1169,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1340,17 +1340,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, diff --git a/spec/dummy_iruby/Highcharts | add_series method and highcharts examples.ipynb b/spec/dummy_iruby/Highcharts | add_series method and highcharts examples.ipynb index cea137c..7fe559e 100644 --- a/spec/dummy_iruby/Highcharts | add_series method and highcharts examples.ipynb +++ b/spec/dummy_iruby/Highcharts | add_series method and highcharts examples.ipynb @@ -924,7 +924,7 @@ { "data": { "text/plain": [ - "#{:type=>\"spline\", :inverted=>true}, :title=>{:text=>\"Atmosphere Temperature by Altitude\"}, :subtitle=>{:text=>\"According to the Standard Atmosphere Model\"}, :xAxis=>{:reversed=>false, :title=>{:enabled=>true, :text=>\"Altitude\"}, :labels=>{:formatter=>\"function () {\\n return this.value + 'km';\\n }\"}, :maxPadding=>0.05, :showLastLabel=>true}, :yAxis=>{:title=>{:text=>\"Temperature\"}, :labels=>{:formatter=>\"function () {\\n return this.value + '°';\\n }\"}, :lineWidth=>2}, :legend=>{:enabled=>false}, :tooltip=>{:headerFormat=>\"{series.name}
\", :pointFormat=>\"{point.x} km: {point.y}°C\"}, :plotOptions=>{:spline=>{:marker=>{:enable=>false}}}}, @adapter=Daru::View::Adapter::HighchartsAdapter, @chart=#nil, :name=>nil, :data=>[[0, 15], [10, -50], [20, -56.5], [30, -46.5], [40, -22.1], [50, -2.5], [60, -27.7], [70, -55.7], [80, -76.5]]}], @options={:chart=>{:type=>\"spline\", :inverted=>true}, :title=>{:text=>\"Atmosphere Temperature by Altitude\"}, :subtitle=>{:text=>\"According to the Standard Atmosphere Model\"}, :xAxis=>{:reversed=>false, :title=>{:enabled=>true, :text=>\"Altitude\"}, :labels=>{:formatter=>\"function () {\\n return this.value + 'km';\\n }\"}, :maxPadding=>0.05, :showLastLabel=>true}, :yAxis=>{:title=>{:text=>\"Temperature\"}, :labels=>{:formatter=>\"function () {\\n return this.value + '°';\\n }\"}, :lineWidth=>2}, :legend=>{:enabled=>false}, :tooltip=>{:headerFormat=>\"{series.name}
\", :pointFormat=>\"{point.x} km: {point.y}°C\"}, :plotOptions=>{:spline=>{:marker=>{:enable=>false}}}}, @html_options={}, @placeholder=\"lsdmugoqitr\">>" + "#{:type=>\"spline\", :inverted=>true}, :title=>{:text=>\"Atmosphere Temperature by Altitude\"}, :subtitle=>{:text=>\"According to the Standard Atmosphere Model\"}, :xAxis=>{:reversed=>false, :title=>{:enabled=>true, :text=>\"Altitude\"}, :labels=>{:formatter=>\"function () {\\n return this.value + 'km';\\n }\"}, :maxPadding=>0.05, :showLastLabel=>true}, :yAxis=>{:title=>{:text=>\"Temperature\"}, :labels=>{:formatter=>\"function () {\\n return this.value + '°';\\n }\"}, :lineWidth=>2}, :legend=>{:enabled=>false}, :tooltip=>{:headerFormat=>\"{series.name}
\", :pointFormat=>\"{point.x} km: {point.y}°C\"}, :plotOptions=>{:spline=>{:marker=>{:enable=>false}}}}, @adapter=Daru::View::Adapter::HighchartsAdapter, @chart=#nil, :name=>nil, :data=>[[0, 15], [10, -50], [20, -56.5], [30, -46.5], [40, -22.1], [50, -2.5], [60, -27.7], [70, -55.7], [80, -76.5]]}], @options={:chart=>{:type=>\"spline\", :inverted=>true}, :title=>{:text=>\"Atmosphere Temperature by Altitude\"}, :subtitle=>{:text=>\"According to the Standard Atmosphere Model\"}, :xAxis=>{:reversed=>false, :title=>{:enabled=>true, :text=>\"Altitude\"}, :labels=>{:formatter=>\"function () {\\n return this.value + 'km';\\n }\"}, :maxPadding=>0.05, :showLastLabel=>true}, :yAxis=>{:title=>{:text=>\"Temperature\"}, :labels=>{:formatter=>\"function () {\\n return this.value + '°';\\n }\"}, :lineWidth=>2}, :legend=>{:enabled=>false}, :tooltip=>{:headerFormat=>\"{series.name}
\", :pointFormat=>\"{point.x} km: {point.y}°C\"}, :plotOptions=>{:spline=>{:marker=>{:enable=>false}}}}, @html_options={}, @placeholder=\"frvnwgolxtc\">>" ] }, "execution_count": 4, @@ -964,21 +964,21 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -1012,22 +1012,22 @@ " var onload = window.onload;\n", " window.onload = function(){\n", " if (typeof onload == \"function\") onload();\n", - " var options = { \"chart\": { \"type\": \"spline\",\"inverted\": true,\"renderTo\": \"anjwvrucgpo\" },\"title\": { \"text\": \"Atmosphere Temperature by Altitude\" },\"subtitle\": { \"text\": \"According to the Standard Atmosphere Model\" },\"xAxis\": { \"reversed\": false,\"title\": { \"enabled\": true,\"text\": \"Altitude\" },\"labels\": { \"formatter\": function () {\n", + " var options = { \"chart\": { \"type\": \"spline\",\"inverted\": true,\"renderTo\": \"ztqrbmiagkd\" },\"title\": { \"text\": \"Atmosphere Temperature by Altitude\" },\"subtitle\": { \"text\": \"According to the Standard Atmosphere Model\" },\"xAxis\": { \"reversed\": false,\"title\": { \"enabled\": true,\"text\": \"Altitude\" },\"labels\": { \"formatter\": function () {\n", " return this.value + 'km';\n", " } },\"maxPadding\": 0.05,\"showLastLabel\": true },\"yAxis\": { \"title\": { \"text\": \"Temperature\" },\"labels\": { \"formatter\": function () {\n", " return this.value + '°';\n", " } },\"lineWidth\": 2 },\"legend\": { \"enabled\": false },\"tooltip\": { \"headerFormat\": \"{series.name}
\",\"pointFormat\": \"{point.x} km: {point.y}°C\" },\"plotOptions\": { \"spline\": { \"marker\": { \"enable\": false } } },\"series\": [{ \"type\": null,\"name\": null,\"data\": [ [ 0,15 ],[ 10,-50 ],[ 20,-56.5 ],[ 30,-46.5 ],[ 40,-22.1 ],[ 50,-2.5 ],[ 60,-27.7 ],[ 70,-55.7 ],[ 80,-76.5 ] ] },{ \"data\": [ [ 10,15 ],[ 20,-50 ],[ 30,-56.5 ],[ 40,-46.5 ],[ 50,-22.1 ],[ 55,-2.5 ],[ 65,-27.7 ],[ 80,-55.7 ],[ 90,-76.5 ] ],\"name\": null }] };\n", " \n", - " window.chart_anjwvrucgpo = new Highcharts.Chart(options);\n", + " window.chart_ztqrbmiagkd = new Highcharts.Chart(options);\n", "\n", " };\n", " })()\n", " \n", "\n", - "
" + "
" ], "text/plain": [ - "#nil, :name=>nil, :data=>[[0, 15], [10, -50], [20, -56.5], [30, -46.5], [40, -22.1], [50, -2.5], [60, -27.7], [70, -55.7], [80, -76.5]]}, {:data=>[[10, 15], [20, -50], [30, -56.5], [40, -46.5], [50, -22.1], [55, -2.5], [65, -27.7], [80, -55.7], [90, -76.5]], :name=>nil}], @options={:chart=>{:type=>\"spline\", :inverted=>true, :renderTo=>\"anjwvrucgpo\"}, :title=>{:text=>\"Atmosphere Temperature by Altitude\"}, :subtitle=>{:text=>\"According to the Standard Atmosphere Model\"}, :xAxis=>{:reversed=>false, :title=>{:enabled=>true, :text=>\"Altitude\"}, :labels=>{:formatter=>\"function () {\\n return this.value + 'km';\\n }\"}, :maxPadding=>0.05, :showLastLabel=>true}, :yAxis=>{:title=>{:text=>\"Temperature\"}, :labels=>{:formatter=>\"function () {\\n return this.value + '°';\\n }\"}, :lineWidth=>2}, :legend=>{:enabled=>false}, :tooltip=>{:headerFormat=>\"{series.name}
\", :pointFormat=>\"{point.x} km: {point.y}°C\"}, :plotOptions=>{:spline=>{:marker=>{:enable=>false}}}}, @html_options={:id=>\"anjwvrucgpo\"}, @placeholder=\"lsdmugoqitr\", @tag_builder=#>>" + "#nil, :name=>nil, :data=>[[0, 15], [10, -50], [20, -56.5], [30, -46.5], [40, -22.1], [50, -2.5], [60, -27.7], [70, -55.7], [80, -76.5]]}, {:data=>[[10, 15], [20, -50], [30, -56.5], [40, -46.5], [50, -22.1], [55, -2.5], [65, -27.7], [80, -55.7], [90, -76.5]], :name=>nil}], @options={:chart=>{:type=>\"spline\", :inverted=>true, :renderTo=>\"ztqrbmiagkd\"}, :title=>{:text=>\"Atmosphere Temperature by Altitude\"}, :subtitle=>{:text=>\"According to the Standard Atmosphere Model\"}, :xAxis=>{:reversed=>false, :title=>{:enabled=>true, :text=>\"Altitude\"}, :labels=>{:formatter=>\"function () {\\n return this.value + 'km';\\n }\"}, :maxPadding=>0.05, :showLastLabel=>true}, :yAxis=>{:title=>{:text=>\"Temperature\"}, :labels=>{:formatter=>\"function () {\\n return this.value + '°';\\n }\"}, :lineWidth=>2}, :legend=>{:enabled=>false}, :tooltip=>{:headerFormat=>\"{series.name}
\", :pointFormat=>\"{point.x} km: {point.y}°C\"}, :plotOptions=>{:spline=>{:marker=>{:enable=>false}}}}, @html_options={:id=>\"ztqrbmiagkd\"}, @placeholder=\"frvnwgolxtc\", @tag_builder=#>>" ] }, "execution_count": 6, @@ -1070,21 +1070,21 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, @@ -1217,21 +1217,21 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 12, @@ -1251,7 +1251,7 @@ { "data": { "text/plain": [ - "{:chart=>{:type=>\"spline\", :inverted=>true, :renderTo=>\"ukzbfehrsom\"}, :title=>{:text=>\"Atmosphere Temperature by Altitude\"}, :subtitle=>{:text=>\"According to the Standard Atmosphere Model\"}, :xAxis=>{:reversed=>false, :title=>{:enabled=>true, :text=>\"Altitude\"}, :labels=>{:formatter=>\"function () {\\n return this.value + 'km';\\n }\"}, :maxPadding=>0.05, :showLastLabel=>true}, :yAxis=>{:title=>{:text=>\"Temperature\"}, :labels=>{:formatter=>\"function () {\\n return this.value + '°';\\n }\"}, :lineWidth=>2}, :legend=>{:enabled=>false}, :tooltip=>{:headerFormat=>\"{series.name}
\", :pointFormat=>\"{point.x} km: {point.y}°C\"}, :plotOptions=>{:spline=>{:marker=>{:enable=>false}}}}" + "{:chart=>{:type=>\"spline\", :inverted=>true, :renderTo=>\"lcxpegivtjk\"}, :title=>{:text=>\"Atmosphere Temperature by Altitude\"}, :subtitle=>{:text=>\"According to the Standard Atmosphere Model\"}, :xAxis=>{:reversed=>false, :title=>{:enabled=>true, :text=>\"Altitude\"}, :labels=>{:formatter=>\"function () {\\n return this.value + 'km';\\n }\"}, :maxPadding=>0.05, :showLastLabel=>true}, :yAxis=>{:title=>{:text=>\"Temperature\"}, :labels=>{:formatter=>\"function () {\\n return this.value + '°';\\n }\"}, :lineWidth=>2}, :legend=>{:enabled=>false}, :tooltip=>{:headerFormat=>\"{series.name}
\", :pointFormat=>\"{point.x} km: {point.y}°C\"}, :plotOptions=>{:spline=>{:marker=>{:enable=>false}}}}" ] }, "execution_count": 13, @@ -1292,7 +1292,7 @@ { "data": { "text/plain": [ - "\"\\n \\n\\n
\"" + "\"\\n \\n\\n
\"" ] }, "execution_count": 15, @@ -1332,21 +1332,21 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 16, @@ -1366,7 +1366,7 @@ { "data": { "text/plain": [ - "\"lsdmugoqitr\"" + "\"frvnwgolxtc\"" ] }, "execution_count": 17, @@ -1387,7 +1387,7 @@ { "data": { "text/plain": [ - "{:id=>\"lirytpvcqzs\"}" + "{:id=>\"lyrgcjwdota\"}" ] }, "execution_count": 18, @@ -1448,21 +1448,21 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 20, diff --git a/spec/dummy_iruby/Highstock - Chart types.ipynb b/spec/dummy_iruby/Highstock - Chart types.ipynb index ff7ee00..e98b30c 100644 --- a/spec/dummy_iruby/Highstock - Chart types.ipynb +++ b/spec/dummy_iruby/Highstock - Chart types.ipynb @@ -872,17 +872,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -986,17 +986,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1095,17 +1095,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -1205,7 +1205,7 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, @@ -1341,7 +1341,7 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, @@ -1546,17 +1546,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 8, @@ -1661,17 +1661,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 9, @@ -1775,7 +1775,7 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 10, @@ -1934,7 +1934,7 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 11, @@ -2093,7 +2093,7 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 12, @@ -2252,17 +2252,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 13, @@ -2368,17 +2368,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 14, diff --git a/spec/dummy_iruby/Highstock - General.ipynb b/spec/dummy_iruby/Highstock - General.ipynb index 21ba1cd..5136460 100644 --- a/spec/dummy_iruby/Highstock - General.ipynb +++ b/spec/dummy_iruby/Highstock - General.ipynb @@ -872,17 +872,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -974,17 +974,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1202,17 +1202,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -1318,17 +1318,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, @@ -1452,7 +1452,7 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 7, @@ -1609,7 +1609,7 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 8, @@ -1783,7 +1783,7 @@ " y = Math.round(Math.random() * 100);\n", " series.addPoint([x, y], true, true);\n", " }, 1000);\n", - " } },\"renderTo\": \"ckynisjobap\" },\"rangeSelector\": { \"buttons\": [ { \"count\": 1,\"type\": \"minute\",\"text\": \"1M\" },{ \"count\": 5,\"type\": \"minute\",\"text\": \"5M\" },{ \"type\": \"all\",\"text\": \"All\" } ],\"inputEnabled\": false,\"selected\": 0 },\"title\": { \"text\": \"Live random data\" },\"exporting\": { \"enabled\": false },\"series\": [{ \"name\": \"Random data\",\"data\": (function () {\n", + " } },\"renderTo\": \"otvexbkcizy\" },\"rangeSelector\": { \"buttons\": [ { \"count\": 1,\"type\": \"minute\",\"text\": \"1M\" },{ \"count\": 5,\"type\": \"minute\",\"text\": \"5M\" },{ \"type\": \"all\",\"text\": \"All\" } ],\"inputEnabled\": false,\"selected\": 0 },\"title\": { \"text\": \"Live random data\" },\"exporting\": { \"enabled\": false },\"series\": [{ \"name\": \"Random data\",\"data\": (function () {\n", " // generate an array of random data\n", " var data = [],\n", " time = (new Date()).getTime(),\n", @@ -1798,15 +1798,15 @@ " return data;\n", " }()) }] };\n", " \n", - " window.chart_ckynisjobap = new Highcharts.StockChart(options);\n", + " window.chart_otvexbkcizy = new Highcharts.StockChart(options);\n", "\n", " });\n", " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 9, diff --git a/spec/dummy_iruby/Highstock - Various features.ipynb b/spec/dummy_iruby/Highstock - Various features.ipynb index 4b07daf..9eda469 100644 --- a/spec/dummy_iruby/Highstock - Various features.ipynb +++ b/spec/dummy_iruby/Highstock - Various features.ipynb @@ -872,7 +872,7 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 3, @@ -1015,17 +1015,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 4, @@ -1129,17 +1129,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 5, @@ -1235,17 +1235,17 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\" \\n\\n
\"" + "\" \\n\\n
\"" ] }, "execution_count": 6, diff --git a/spec/dummy_iruby/highcharts - Use HTML table (generated from daru) as data source.ipynb b/spec/dummy_iruby/highcharts - Use HTML table (generated from daru) as data source.ipynb index 967c215..645e1a6 100644 --- a/spec/dummy_iruby/highcharts - Use HTML table (generated from daru) as data source.ipynb +++ b/spec/dummy_iruby/highcharts - Use HTML table (generated from daru) as data source.ipynb @@ -1150,20 +1150,20 @@ " \n", "\n", - "
" + "
" ], "text/plain": [ - "\"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
abc
one11111
two21222
three31333
four41444
five51555
\\n\\n
\"" + "\"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
abc
one11111
two21222
three31333
four41444
five51555
\\n\\n
\"" ] }, "execution_count": 6, diff --git a/spec/view_spec.rb b/spec/view_spec.rb index 30486c5..7772b65 100644 --- a/spec/view_spec.rb +++ b/spec/view_spec.rb @@ -52,8 +52,6 @@ expect(script).to match(/BEGIN js\/highstock.js/i) expect(script).to match(/Highstock JS/i) expect(script).to match(/END js\/highstock.js/i) - expect(script).to match(/BEGIN highcharts-more.js/i) - expect(script).to match(/END highcharts-more.js/i) expect(script).to match(/BEGIN modules\/exporting.js/i) expect(script).to match(/END modules\/exporting.js/i) expect(script).to match(/BEGIN highcharts-3d.js/i) From 0dcf84e473104575b6bb3a0d0fab8af247616cee Mon Sep 17 00:00:00 2001 From: Prakriti-nith Date: Sun, 17 Jun 2018 02:16:13 +0530 Subject: [PATCH 08/11] Corrected line length --- lib/daru/view/adapters/highcharts/iruby_notebook.rb | 8 ++++++-- spec/adapters/highcharts/display_spec.rb | 6 ++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/daru/view/adapters/highcharts/iruby_notebook.rb b/lib/daru/view/adapters/highcharts/iruby_notebook.rb index 062019e..d458206 100644 --- a/lib/daru/view/adapters/highcharts/iruby_notebook.rb +++ b/lib/daru/view/adapters/highcharts/iruby_notebook.rb @@ -4,14 +4,18 @@ module LazyHighCharts # generate initializing code def self.generate_init_code(dependent_js) js_dir = File.expand_path('../js/highcharts_js', __dir__) - path = File.expand_path('../../templates/highcharts/init.inline.js.erb', __dir__) + path = File.expand_path( + '../../templates/highcharts/init.inline.js.erb', __dir__ + ) template = File.read(path) ERB.new(template).result(binding) end def self.generate_init_code_css(dependent_css) css_dir = File.expand_path('../css/highcharts_css', __dir__) - path = File.expand_path('../../templates/highcharts/init.inline.css.erb', __dir__) + path = File.expand_path( + '../../templates/highcharts/init.inline.css.erb', __dir__ + ) template = File.read(path) ERB.new(template).result(binding) end diff --git a/spec/adapters/highcharts/display_spec.rb b/spec/adapters/highcharts/display_spec.rb index 96656d7..50b7f9c 100644 --- a/spec/adapters/highcharts/display_spec.rb +++ b/spec/adapters/highcharts/display_spec.rb @@ -43,7 +43,8 @@ type: 'bar' }, css: ['.highcharts-color-1 {fill: #90ed7d;stroke: #90ed7d;}', - '.highcharts-background {fill: #efefef;stroke: #a4edba;stroke-width: 2px;}'], + '.highcharts-background {fill: #efefef;stroke: #a4edba;'\ + 'stroke-width: 2px;}'], title: { text: 'Bar chart' }, @@ -100,7 +101,8 @@ @opts = { chart_class: 'stock', css: [ - '.highcharts-background {fill: #efefef;stroke: #a4edba;stroke-width: 2px;}' + '.highcharts-background {fill: #efefef;stroke: #a4edba;'\ + 'stroke-width: 2px;}' ], chart: { type: 'arearange' From bcdc049e7aba7e2a0a1b5e33522d6132ae3412b1 Mon Sep 17 00:00:00 2001 From: Prakriti-nith Date: Sat, 23 Jun 2018 04:27:00 +0530 Subject: [PATCH 09/11] Fix a typo --- lib/daru/view/adapters/highcharts/display.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/daru/view/adapters/highcharts/display.rb b/lib/daru/view/adapters/highcharts/display.rb index 19855e0..ecfe643 100644 --- a/lib/daru/view/adapters/highcharts/display.rb +++ b/lib/daru/view/adapters/highcharts/display.rb @@ -90,7 +90,7 @@ def to_html_iruby(placeholder=random_canvas_id) # @return [String] css code of the chart def high_chart_css(placeholder) # contains the css provided by the user as a String array - css_data = options[:css].nil? ? '' : option.delete(:css) + css_data = options[:css].nil? ? '' : options.delete(:css) script = '' if css_data != '' script << '' + css_script << "\n" end - script + css_script end # Loads the dependent mapdata and dependent modules of the chart diff --git a/spec/adapters/highcharts/display_spec.rb b/spec/adapters/highcharts/display_spec.rb index 50b7f9c..147cc06 100644 --- a/spec/adapters/highcharts/display_spec.rb +++ b/spec/adapters/highcharts/display_spec.rb @@ -33,6 +33,24 @@ expect(css).to match(/END highcharts.css/i) end end + + describe "#init_code" do + it "generates valid initial css and js" do + code = LazyHighCharts.init_code + expect(code).to match(/BEGIN highcharts.css/i) + expect(code).to match(/END highcharts.css/i) + expect(code).to match(/BEGIN js\/highstock.js/i) + expect(code).to match(/BEGIN js\/map.js/i) + expect(code).to match(/END js\/map.js/i) + expect(code).to match(/END js\/highstock.js/i) + expect(code).to match(/BEGIN modules\/exporting.js/i) + expect(code).to match(/END modules\/exporting.js/i) + expect(code).to match(/BEGIN highcharts-3d.js/i) + expect(code).to match(/END highcharts-3d.js/i) + expect(code).to match(/BEGIN modules\/data.js/i) + expect(code).to match(/END modules\/data.js/i) + end + end end describe LazyHighCharts::HighChart do From 4dd8a7569ba6f9a03f5c381bf0ff9a59a0b84c19 Mon Sep 17 00:00:00 2001 From: Prakriti-nith Date: Mon, 2 Jul 2018 01:31:19 +0530 Subject: [PATCH 11/11] Change init_code to init_script --- lib/daru/view.rb | 2 +- lib/daru/view/adapters/highcharts.rb | 2 +- lib/daru/view/adapters/highcharts/display.rb | 8 ++++---- spec/adapters/highcharts/display_spec.rb | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/daru/view.rb b/lib/daru/view.rb index ee4574b..a1992f4 100644 --- a/lib/daru/view.rb +++ b/lib/daru/view.rb @@ -112,7 +112,7 @@ def dependent_script(lib=:nyaplot) when :nyaplot Nyaplot.init_script when :highcharts - LazyHighCharts.init_code + LazyHighCharts.init_script when :googlecharts GoogleVisualr.init_script when :datatables diff --git a/lib/daru/view/adapters/highcharts.rb b/lib/daru/view/adapters/highcharts.rb index 96cf793..ce017d0 100644 --- a/lib/daru/view/adapters/highcharts.rb +++ b/lib/daru/view/adapters/highcharts.rb @@ -57,7 +57,7 @@ def init(data=[], options={}) end def init_script - LazyHighCharts.init_code + LazyHighCharts.init_script end def generate_body(plot) diff --git a/lib/daru/view/adapters/highcharts/display.rb b/lib/daru/view/adapters/highcharts/display.rb index e9df9e9..7dd528a 100644 --- a/lib/daru/view/adapters/highcharts/display.rb +++ b/lib/daru/view/adapters/highcharts/display.rb @@ -7,7 +7,7 @@ module LazyHighCharts # # @param [Array] dependent js files required # @return [String] js code of the dependent files - def self.init_script( + def self.init_javascript( dependent_js=HIGHCHARTS_DEPENDENCIES_WEB ) # Highstock is based on Highcharts, meaning it has all the core @@ -41,10 +41,10 @@ def self.init_css( # Loads the dependent code required in styled mode # # @return [String] code of the dependent css and js file(s) - def self.init_code + def self.init_script init_code = '' init_code << init_css - init_code << init_script + init_code << init_javascript init_code end @@ -125,7 +125,7 @@ def load_dependencies(type) if type == 'iruby' LazyHighCharts.init_iruby(dep_js) unless dep_js.nil? elsif type == 'web_frameworks' - dep_js.nil? ? '' : LazyHighCharts.init_script(dep_js) + dep_js.nil? ? '' : LazyHighCharts.init_javascript(dep_js) end end diff --git a/spec/adapters/highcharts/display_spec.rb b/spec/adapters/highcharts/display_spec.rb index 147cc06..a66d5cf 100644 --- a/spec/adapters/highcharts/display_spec.rb +++ b/spec/adapters/highcharts/display_spec.rb @@ -2,9 +2,9 @@ describe LazyHighCharts do before { Daru::View.plotting_library = :highcharts } - describe "#init_script" do + describe "#init_javascript" do it "generates valid initial script" do - js = LazyHighCharts.init_script + js = LazyHighCharts.init_javascript expect(js).to match(/BEGIN js\/highstock.js/i) expect(js).to match(/Highstock JS/i) expect(js).to match(/BEGIN js\/map.js/i) @@ -34,9 +34,9 @@ end end - describe "#init_code" do + describe "#init_script" do it "generates valid initial css and js" do - code = LazyHighCharts.init_code + code = LazyHighCharts.init_script expect(code).to match(/BEGIN highcharts.css/i) expect(code).to match(/END highcharts.css/i) expect(code).to match(/BEGIN js\/highstock.js/i)