var Smarthouse;(function(n,t){typeof module=="object"&&module.exports?module.exports=n.document?t(n):t:n.Highcharts=t(n)})(typeof window!="undefined"?window:this,function(n){function ai(t,i){var r="Highcharts error #"+t+": www.highcharts.com/errors/"+t;if(i)throw new Error(r);n.console&&console.log(r)}function ue(n,t,i){this.options=t;this.elem=n;this.prop=i}function h(){var t,n=arguments,r,i={},u=function(n,t){var r,i;typeof n!="object"&&(n={});for(i in t)t.hasOwnProperty(i)&&(r=t[i],n[i]=r&&typeof r=="object"&&Object.prototype.toString.call(r)!=="[object Array]"&&i!=="renderTo"&&typeof r.nodeType!="number"?u(n[i]||{},r):t[i]);return n};for(n[0]===!0&&(i=n[1],n=Array.prototype.slice.call(n,2)),r=n.length,t=0;t<r;t++)i=u(i,n[t]);return i}function y(n,t){return parseInt(n,t||10)}function rr(n){return typeof n=="string"}function bt(n){return n&&typeof n=="object"}function vr(n){return Object.prototype.toString.call(n)==="[object Array]"}function gi(n,t){for(var i=n.length;i--;)if(n[i]===t){n.splice(i,1);break}}function r(n){return n!==f&&n!==null}function at(n,t,i){var u,f;if(rr(t))r(i)?n.setAttribute(t,i):n&&n.getAttribute&&(f=n.getAttribute(t));else if(r(t)&&bt(t))for(u in t)n.setAttribute(u,t[u]);return f}function yi(n){return vr(n)?n:[n]}function su(n,t,i){if(t)return setTimeout(n,t,i);n.call(0,i)}function k(n,t){sr&&!ni&&t&&t.opacity!==f&&(t.filter="alpha(opacity="+t.opacity*100+")");o(n.style,t)}function kt(n,t,i,r,u){var f=a.createElement(n);return t&&o(f,t),u&&k(f,{padding:0,border:"none",margin:0}),i&&k(f,i),r&&r.appendChild(f),f}function ui(n,t){var i=function(){};return i.prototype=new n,o(i.prototype,t),i}function kr(n,t,i){return new Array((t||2)+1-String(n).length).join(i||0)+n}function fo(n,t){return/%$/.test(n)?t*parseFloat(n)/100:parseFloat(n)}function du(n){return(wu&&wu(n)||kf||0)*6e4}function rs(n,t){var r=it.lang,i;return/f$/.test(n)?(i=n.match(/\.([0-9])/),i=i?i[1]:-1,t!==null&&(t=s.numberFormat(t,i,r.decimalPoint,n.indexOf(",")>-1?r.thousandsSep:""))):t=ri(n,t),t}function yr(n,t){for(var c="{",r=!1,o,u,s,f,l,e=[],i,h;(h=n.indexOf(c))!==-1;){if(o=n.slice(0,h),r){for(u=o.split(":"),s=u.shift().split("."),l=s.length,i=t,f=0;f<l;f++)i=i[s[f]];u.length&&(i=rs(u.join(":"),i));e.push(i)}else e.push(o);n=n.slice(h+1);r=!r;c=r?"}":"{"}return e.push(n),e.join("")}function fe(n){return ct.pow(10,ot(ct.log(n)/ct.LN10))}function ee(n,i,r,u,f){var s,e,o=n;for(r=t(r,1),s=n/r,i||(i=[1,2,2.5,5,10],u===!1&&(r===1?i=[1,2,5,10]:r<=.1&&(i=[1/r]))),e=0;e<i.length;e++)if(o=i[e],f&&o*r>=n||!f&&s<=(i[e]+(i[e+1]||i[e]))/2)break;return o*r}function af(n,t){for(var u=n.length,r,i=0;i<u;i++)n[i].safeI=i;for(n.sort(function(n,i){return r=t(n,i),r===0?n.safeI-i.safeI:r}),i=0;i<u;i++)delete n[i].safeI}function pr(n){for(var t=n.length,i=n[0];t--;)n[t]<i&&(i=n[t]);return i}function ur(n){for(var t=n.length,i=n[0];t--;)n[t]>i&&(i=n[t]);return i}function dr(n,t){var i;for(i in n)n[i]&&n[i]!==t&&n[i].destroy&&n[i].destroy(),delete n[i]}function uu(n){sf||(sf=kt(ru));n&&sf.appendChild(n);sf.innerHTML=""}function ii(n,t){return parseFloat(n.toPrecision(t||14))}function hu(n,i){i.renderer.globalAnimation=t(n,i.animation)}function gu(n){return bt(n)?h(n):{duration:n?500:0}}function eo(){var f=it.global,u=f.useUTC,r=u?"getUTC":"get",i=u?"setUTC":"set";wt=f.Date||n.Date;kf=u&&f.timezoneOffset;wu=u&&f.getTimezoneOffset;cf=function(n,i,r,f,e,o){var s;return u?wt.UTC.apply(0,arguments)+du(s):new wt(n,i,t(r,1),t(f,0),t(e,0),t(o,0)).getTime()};df=r+"Minutes";gf=r+"Hours";ne=r+"Day";eu=r+"Date";bu=r+"Month";ku=r+"FullYear";to=i+"Milliseconds";io=i+"Seconds";ro=i+"Minutes";uo=i+"Hours";lf=i+"Date";te=i+"Month";ie=i+"FullYear"}function us(n){return it=h(!0,it,n),eo(),it}function fs(){return it}function pi(n){if(!(this instanceof pi))return new pi(n);this.init(n)}function vt(){}function es(n,t){var r=a.getElementsByTagName("head")[0],i=a.createElement("script");i.type="text/javascript";i.src=n;i.onload=t;r.appendChild(i)}function lu(n,t,i,r){this.axis=n;this.pos=t;this.type=i||"";this.isNew=!0;i||r||this.addLabel()}function co(n,i,r,u,f){var e=n.chart.inverted;this.axis=n;this.isNegative=r;this.options=i;this.x=u;this.total=null;this.points={};this.stack=f;this.leftCliff=0;this.rightCliff=0;this.alignOptions={align:i.align||(e?r?"left":"right":"center"),verticalAlign:i.verticalAlign||(e?"middle":r?"bottom":"top"),y:t(i.y,e?4:r?14:-6),x:t(i.x,e?r?-6:6:0)};this.textAlign=i.textAlign||(e?r?"right":"left":"center")}function ye(n){var r=n.options,t=r.navigator,u=t.enabled,i=r.scrollbar,f=i.enabled,e=u?t.height:0,o=f?i.height:0;this.handles=[];this.scrollbarButtons=[];this.elementsToDestroy=[];this.chart=n;this.setBaseSeries();this.height=e;this.scrollbarHeight=o;this.scrollbarEnabled=f;this.navigatorEnabled=u;this.navigatorOptions=t;this.scrollbarOptions=i;this.outlineHeight=e+o;this.init()}function pe(n){this.init(n)}var f,a=n.document,ct=Math,e=ct.round,ot=ct.floor,tr=ct.ceil,u=ct.max,c=ct.min,rt=ct.abs,pt=ct.cos,gt=ct.sin,bi=ct.PI,ei=bi/180,or=n.navigator&&n.navigator.userAgent||"",we=n.opera,sr=/(msie|trident|edge)/i.test(or)&&!we,ef=a&&a.documentMode===8,of=!sr&&/AppleWebKit/.test(or),tu=/Firefox/.test(or),yu=/(Mobile|Android|Windows Phone)/.test(or),wr="http://www.w3.org/2000/svg",ni=a&&a.createElementNS&&!!a.createElementNS(wr,"svg").createSVGRect,go=tu&&parseInt(or.split("Firefox/")[1],10)<4,oi=a&&!ni&&!sr&&!!a.createElement("canvas").getContext,iu,fu,be={},bf=0,sf,it,ri,ns,d,si=function(){},lt=[],pu=0,ke="Highstock",de="4.2.5",ru="div",ki="absolute",ge="relative",hr="hidden",ht="highcharts-",cr="visible",b="px",yt="none",st="M",tt="L",ts=/^[0-9]+$/,ti="",di="hover",lr="select",hf=["plotTop","marginRight","marginBottom","plotLeft"],no,is="stroke-width",wt,cf,kf,wu,df,gf,ne,eu,bu,ku,to,io,ro,uo,lf,te,ie,p={},s,ar,vi,hi,i,ir,re,ci,v,ft,g,ou,br,o,l,t,ut,et,cu,li,nf,fr,oo,oe,so,w,vf,fi,gr,tf,au,wi,ho,nr,nt,lo,ce,le,rf,ao,yf,vo,ae,yo,pf,vu,ve,bo,uf,wf,ko,ff;if(s=n.Highcharts?ai(16,!0):{win:n},s.seriesTypes=p,ar=[],ue.prototype={dSetter:function(){var r=this.paths[0],u=this.paths[1],t=[],f=this.now,n=r.length,i;if(f===1)t=this.toD;else if(n===u.length&&f<1)while(n--)i=parseFloat(r[n]),t[n]=isNaN(i)?r[n]:f*parseFloat(u[n]-i)+i;else t=u;this.elem.attr("d",t)},update:function(){var n=this.elem,t=this.prop,i=this.now,r=this.options.step;this[t+"Setter"]?this[t+"Setter"]():n.attr?n.element&&n.attr(t,i):n.style[t]=i+this.unit;r&&r.call(n,i,this)},run:function(n,t,i){var f=this,r=function(n){return r.stopped?!1:f.step(n)},u;this.startTime=+new wt;this.start=n;this.end=t;this.unit=i;this.now=this.start;this.pos=0;r.elem=this.elem;r()&&ar.push(r)===1&&(r.timerId=setInterval(function(){for(u=0;u<ar.length;u++)ar[u]()||ar.splice(u--,1);ar.length||clearInterval(r.timerId)},13))},step:function(n){var e=+new wt,t,r,i=this.options,u=this.elem,o=i.complete,s=i.duration,f=i.curAnim,h;if(u.attr&&!u.element)t=!1;else if(n||e>=s+this.startTime){this.now=this.end;this.pos=1;this.update();f[this.prop]=!0;r=!0;for(h in f)f[h]!==!0&&(r=!1);r&&o&&o.call(u);t=!1}else this.pos=i.easing((e-this.startTime)/s),this.now=this.start+(this.end-this.start)*this.pos,this.update(),t=!0;return t},initPath:function(n,t,i){t=t||"";var c=n.shift,s=t.indexOf("C")>-1,u=s?7:3,l,o,f,e=t.split(" "),r=[].concat(i),a=n.isArea,h=a?2:1,v=function(n){for(f=n.length;f--;)(n[f]===st||n[f]===tt)&&n.splice(f+1,0,n[f+1],n[f+2],n[f+1],n[f+2])};if(s&&(v(e),v(r)),c<=r.length/u&&e.length===r.length)while(c--)r=r.slice(0,u).concat(r),a&&(r=r.concat(r.slice(r.length-u)));if(n.shift=0,e.length)for(l=r.length;e.length<l;)o=e.slice().splice(e.length/h-u,u*h),s&&(o[u-6]=o[u-2],o[u-5]=o[u-1]),[].splice.apply(e,[e.length/h,0].concat(o));return[e,r]}},o=s.extend=function(n,t){var i;n||(n={});for(i in t)n[i]=t[i];return n},l=s.isNumber=function(n){return typeof n=="number"&&!isNaN(n)},t=s.pick=function(){for(var i=arguments,t,r=i.length,n=0;n<r;n++)if(t=i[n],t!==f&&t!==null)return t},ut=s.wrap=function(n,t,i){var r=n[t];n[t]=function(){var n=Array.prototype.slice.call(arguments);return n.unshift(r),i.apply(this,n)}},ri=function(n,i,r){if(!l(i))return it.lang.invalidDate||"";n=t(n,"%Y-%m-%d %H:%M:%S");var u=new wt(i-du(i)),f,h=u[gf](),c=u[ne](),p=u[eu](),y=u[bu](),w=u[ku](),a=it.lang,b=a.weekdays,k=a.shortWeekdays,v=o({a:k?k[c]:b[c].substr(0,3),A:b[c],d:kr(p),e:kr(p,2," "),w:c,b:a.shortMonths[y],B:a.months[y],m:kr(y+1),y:w.toString().substr(2,2),Y:w,H:kr(h),k:h,I:kr(h%12||12),l:h%12||12,M:kr(u[df]()),p:h<12?"AM":"PM",P:h<12?"am":"pm",S:kr(u.getSeconds()),L:kr(e(i%1e3),3)},s.dateFormats);for(f in v)while(n.indexOf("%"+f)!==-1)n=n.replace("%"+f,typeof v[f]=="function"?v[f](i):v[f]);return r?n.substr(0,1).toUpperCase()+n.substr(1):n},d={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},s.numberFormat=function(n,i,r,u){n=+n||0;i=+i;var s=it.lang,h=(n.toString().split(".")[1]||"").length,c,f,o,a=Math.abs(n),e;return i===-1?i=Math.min(h,20):l(i)||(i=2),f=String(y(a.toFixed(i))),o=f.length>3?f.length%3:0,r=t(r,s.decimalPoint),u=t(u,s.thousandsSep),e=n<0?"-":"",e+=o?f.substr(0,o)+u:"",e+=f.substr(o).replace(/(\d{3})(?=\d)/g,"$1"+u),i&&(c=Math.abs(a-f+Math.pow(10,-Math.max(i,h)-1)),e+=r+c.toFixed(i).slice(2)),e},Math.easeInOutSine=function(n){return-.5*(Math.cos(Math.PI*n)-1)},vi=function(t,i){var r;return i==="width"?Math.min(t.offsetWidth,t.scrollWidth)-vi(t,"padding-left")-vi(t,"padding-right"):i==="height"?Math.min(t.offsetHeight,t.scrollHeight)-vi(t,"padding-top")-vi(t,"padding-bottom"):(r=n.getComputedStyle(t,undefined),r&&y(r.getPropertyValue(i)))},hi=function(n,t){return t.indexOf?t.indexOf(n):[].indexOf.call(t,n)},ir=function(n,t){return[].filter.call(n,t)},ci=function(n,t){for(var r=[],i=0,u=n.length;i<u;i++)r[i]=t.call(n[i],n[i],i,n);return r},re=function(t){var i=a.documentElement,r=t.getBoundingClientRect();return{top:r.top+(n.pageYOffset||i.scrollTop)-(i.clientTop||0),left:r.left+(n.pageXOffset||i.scrollLeft)-(i.clientLeft||0)}},br=function(n){for(var t=ar.length;t--;)ar[t].elem===n&&(ar[t].stopped=!0)},i=function(n,t){return Array.prototype.forEach.call(n,t)},v=function(t,i,r){function f(i){i.target=i.srcElement||n;r.call(t,i)}var u=t.hcEvents=t.hcEvents||{};t.addEventListener?t.addEventListener(i,r,!1):t.attachEvent&&(t.hcEventsIE||(t.hcEventsIE={}),t.hcEventsIE[r.toString()]=f,t.attachEvent("on"+i,f));u[i]||(u[i]=[]);u[i].push(r)},ft=function(n,t,i){function e(t,i){n.removeEventListener?n.removeEventListener(t,i,!1):n.attachEvent&&(i=n.hcEventsIE[i.toString()],n.detachEvent("on"+t,i))}function o(){var u,f,i;if(n.nodeName){t?(u={},u[t]=!0):u=r;for(i in u)if(r[i])for(f=r[i].length;f--;)e(i,r[i][f])}}var u,r=n.hcEvents,f;r&&(t?(u=r[t]||[],i?(f=hi(i,u),f>-1&&(u.splice(f,1),r[t]=u),e(t,i)):(o(),r[t]=[])):(o(),n.hcEvents={}))},g=function(n,t,i,r){var u,s=n.hcEvents,e,h,f,c;if(i=i||{},a.createEvent&&(n.dispatchEvent||n.fireEvent))u=a.createEvent("Events"),u.initEvent(t,!0,!0),u.target=n,o(u,i),n.dispatchEvent?n.dispatchEvent(u):n.fireEvent(t,u);else if(s)for(e=s[t]||[],h=e.length,i.preventDefault||(i.preventDefault=function(){i.defaultPrevented=!0}),i.target=n,i.type||(i.type=t),f=0;f<h;f++)c=e[f],c.call(n,i)===!1&&i.preventDefault();r&&!i.defaultPrevented&&r(i)},ou=function(n,t,i){var e,s="",r,f,o,u;bt(i)||(o=arguments,i={duration:o[2],easing:o[3],complete:o[4]});l(i.duration)||(i.duration=400);i.easing=typeof i.easing=="function"?i.easing:Math[i.easing]||Math.easeInOutSine;i.curAnim=h(t);for(u in t)f=new ue(n,i,u),r=null,u==="d"?(f.paths=f.initPath(n,n.d,t.d),f.toD=t.d,e=0,r=1):n.attr?e=n.attr(u):(e=parseFloat(vi(n,u))||0,u!=="opacity"&&(s="px")),r||(r=t[u]),r.match&&r.match("px")&&(r=r.replace(/px/g,"")),f.run(e,r,s)},n.jQuery&&(n.jQuery.fn.highcharts=function(){var n=[].slice.call(arguments);if(this[0])return n[0]?(new s[rr(n[0])?n.shift():"Chart"](this[0],n[0],n[1]),this):lt[at(this[0],"data-highcharts-chart")]}),a&&!a.defaultView&&(vi=function(n,t){var i,r={width:"clientWidth",height:"clientHeight"}[t];return n.style[t]?y(n.style[t]):(t==="opacity"&&(t="filter"),r)?(n.style.zoom=1,Math.max(n[r]-2*vi(n,"padding"),0)):(i=n.currentStyle[t.replace(/\-(\w)/g,function(n,t){return t.toUpperCase()})],t==="filter"&&(i=i.replace(/alpha\(opacity=([0-9]+)\)/,function(n,t){return t/100})),i===""?1:y(i))}),Array.prototype.forEach||(i=function(n,t){for(var i=0,r=n.length;i<r;i++)if(t.call(n[i],n[i],i,n)===!1)return i}),Array.prototype.indexOf||(hi=function(n,t){var r,i=0;if(t)for(r=t.length;i<r;i++)if(t[i]===n)return i;return-1}),Array.prototype.filter||(ir=function(n,t){for(var r=[],i=0,u=n.length;i<u;i++)t(n[i],i)&&r.push(n[i]);return r}),s.Fx=ue,s.inArray=hi,s.each=i,s.grep=ir,s.offset=re,s.map=ci,s.addEvent=v,s.removeEvent=ft,s.fireEvent=g,s.animate=ou,s.animObject=gu,s.stop=br,it={colors:["#7cb5ec","#434348","#90ed7d","#f7a35c","#8085e9","#f15c80","#e4d354","#2b908f","#f45b5b","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{useUTC:!0,canvasToolsURL:"http://code.highcharts.com/modules/canvas-tools.js",VMLRadialGradientURL:"http://code.highcharts.com/stock/4.2.5/gfx/vml-radial-gradient.png"},chart:{borderColor:"#4572A7",borderRadius:0,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],backgroundColor:"#FFFFFF",plotBorderColor:"#C0C0C0",resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}}},title:{text:"Chart title",align:"center",margin:15,style:{color:"#333333",fontSize:"18px"},widthAdjust:-44},subtitle:{text:"",align:"center",style:{color:"#555555"},widthAdjust:-44},plotOptions:{line:{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1e3},events:{},lineWidth:2,marker:{lineWidth:0,radius:4,lineColor:"#FFFFFF",states:{hover:{enabled:!0,lineWidthPlus:1,radiusPlus:2},select:{fillColor:"#FFFFFF",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return this.y===null?"":s.numberFormat(this.y,-1)},style:{color:"contrast",fontSize:"11px",fontWeight:"bold",textShadow:"0 0 6px contrast, 0 0 3px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1e3}},labels:{style:{position:ki,color:"#3E576F"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#909090",borderRadius:0,navigation:{activeColor:"#274b6d",inactiveColor:"#CCC"},shadow:!1,itemStyle:{color:"#333333",fontSize:"12px",fontWeight:"bold"},itemHoverStyle:{color:"#000"},itemHiddenStyle:{color:"#CCC"},itemCheckboxStyle:{position:ki,width:"13px",height:"13px"},symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:ge,top:"45%"},style:{position:ki,backgroundColor:"white",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:ni,backgroundColor:"rgba(249, 249, 249, .85)",borderWidth:1,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:"",headerFormat:'<span style="font-size: 10px">{point.key}<\/span><br/>',pointFormat:'<span style="color:{point.color}">●<\/span> {series.name}: <b>{point.y}<\/b><br/>',shadow:!0,snap:yu?25:10,style:{color:"#333333",cursor:"default",fontSize:"12px",padding:"8px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090",fontSize:"9px"}}},et=it.plotOptions,cu=et.line,eo(),pi.prototype={parsers:[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(n){return[y(n[1]),y(n[2]),y(n[3]),parseFloat(n[4],10)]}},{regex:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,parse:function(n){return[y(n[1],16),y(n[2],16),y(n[3],16),1]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(n){return[y(n[1]),y(n[2]),y(n[3]),1]}}],init:function(n){var t,i,r,u;if(this.input=n,n&&n.stops)this.stops=ci(n.stops,function(n){return new pi(n[1])});else for(r=this.parsers.length;r--&&!i;)u=this.parsers[r],t=u.regex.exec(n),t&&(i=u.parse(t));this.rgba=i||[]},get:function(n){var u=this.input,t=this.rgba,r;return this.stops?(r=h(u),r.stops=[].concat(r.stops),i(this.stops,function(t,i){r.stops[i]=[r.stops[i][0],t.get(n)]})):r=t&&l(t[0])?n!=="rgb"&&(n||t[3]!==1)?n==="a"?t[3]:"rgba("+t.join(",")+")":"rgb("+t[0]+","+t[1]+","+t[2]+")":u,r},brighten:function(n){var t,r=this.rgba;if(this.stops)i(this.stops,function(t){t.brighten(n)});else if(l(n)&&n!==0)for(t=0;t<3;t++)r[t]+=y(n*255),r[t]<0&&(r[t]=0),r[t]>255&&(r[t]=255);return this},setOpacity:function(n){return this.rgba[3]=n,this}},vt.prototype={opacity:1,textProps:["direction","fontSize","fontWeight","fontFamily","fontStyle","color","lineHeight","width","textDecoration","textOverflow","textShadow"],init:function(n,t){var i=this;i.element=t==="span"?kt(t):a.createElementNS(wr,t);i.renderer=n},animate:function(n,i,r){var u=t(i,this.renderer.globalAnimation,!0);return br(this),u?(r&&(u.complete=r),ou(this,n,u)):this.attr(n,null,r),this},colorGradient:function(n,t,u){var s=this.renderer,y,o,f,p,a,l,v,w,b,k,c,d,e=[],g;if(n.linearGradient?o="linearGradient":n.radialGradient&&(o="radialGradient"),o){f=n[o];a=s.gradients;v=n.stops;k=u.radialReference;vr(f)&&(n[o]=f={x1:f[0],y1:f[1],x2:f[2],y2:f[3],gradientUnits:"userSpaceOnUse"});o==="radialGradient"&&k&&!r(f.gradientUnits)&&(p=f,f=h(f,s.getRadialAttr(k,p),{gradientUnits:"userSpaceOnUse"}));for(c in f)c!=="id"&&e.push(c,f[c]);for(c in v)e.push(v[c]);e=e.join(",");a[e]?d=a[e].attr("id"):(f.id=d=ht+bf++,a[e]=l=s.createElement(o).attr(f).add(s.defs),l.radAttr=p,l.stops=[],i(v,function(n){var t;n[1].indexOf("rgba")===0?(y=pi(n[1]),w=y.get("rgb"),b=y.get("a")):(w=n[1],b=1);t=s.createElement("stop").attr({offset:n[0],"stop-color":w,"stop-opacity":b}).add(l);l.stops.push(t)}));g="url("+s.url+"#"+d+")";u.setAttribute(t,g);u.gradient=e;n.toString=function(){return g}}},applyTextShadow:function(n){var t=this.element,e,s=n.indexOf("contrast")!==-1,r={},o=this.renderer.forExport,h=o||t.style.textShadow!==f&&!sr;s&&(r.textShadow=n=n.replace(/contrast/g,this.renderer.getContrast(t.style.fill)));(of||o)&&(r.textRendering="geometricPrecision");h?this.css(r):(this.fakeTS=!0,this.ySetter=this.xSetter,e=[].slice.call(t.getElementsByTagName("tspan")),i(n.split(/\s?,\s?/g),function(n){var o=t.firstChild,f,r;n=n.split(" ");f=n[n.length-1];r=n[n.length-2];r&&i(e,function(n,i){var e;i===0&&(n.setAttribute("x",t.getAttribute("x")),i=t.getAttribute("y"),n.setAttribute("y",i||0),i===null&&t.setAttribute("y",0));e=n.cloneNode(1);at(e,{"class":ht+"text-shadow",fill:f,stroke:f,"stroke-opacity":1/u(y(r),3),"stroke-width":r,"stroke-linejoin":"round"});t.insertBefore(e,o)})}))},attr:function(n,t,i){var r,u,s=this.element,h,c=this,e,o;if(typeof n=="string"&&t!==f&&(r=n,n={},n[r]=t),typeof n=="string")c=(this[n+"Getter"]||this._defaultGetter).call(this,n,s);else{for(r in n)u=n[r],e=!1,this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(r)&&(h||(this.symbolAttr(n),h=!0),e=!0),this.rotation&&(r==="x"||r==="y")&&(this.doTransform=!0),e||(o=this[r+"Setter"]||this._defaultSetter,o.call(this,u,r,s),this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(r)&&this.updateShadows(r,u,o));this.doTransform&&(this.updateTransform(),this.doTransform=!1)}return i&&i(),c},updateShadows:function(n,t,i){for(var r=this.shadows,u=r.length;u--;)i.call(r[u],n==="height"?Math.max(t-(r[u].cutHeight||0),0):n==="d"?this.d:t,n,r[u])},addClass:function(n){var t=this.element,i=at(t,"class")||"";return i.indexOf(n)===-1&&at(t,"class",i+" "+n),this},symbolAttr:function(n){var r=this;i(["x","y","r","start","end","width","height","innerR","anchorX","anchorY"],function(i){r[i]=t(n[i],r[i])});r.attr({d:r.renderer.symbols[r.symbolName](r.x,r.y,r.width,r.height,r)})},clip:function(n){return this.attr("clip-path",n?"url("+this.renderer.url+"#"+n.id+")":yt)},crisp:function(n){var t=this,i,u={},r,f=t.strokeWidth||0;r=e(f)%2/2;n.x=ot(n.x||t.x||0)+r;n.y=ot(n.y||t.y||0)+r;n.width=ot((n.width||t.width||0)-2*r);n.height=ot((n.height||t.height||0)-2*r);n.strokeWidth=f;for(i in n)t[i]!==n[i]&&(t[i]=u[i]=n[i]);return u},css:function(n){var t=this,r=t.styles,f={},e=t.element,u,i,s="",h,c=!r;if(n&&n.color&&(n.fill=n.color),r)for(i in n)n[i]!==r[i]&&(f[i]=n[i],c=!0);if(c){if(u=t.textWidth=n&&n.width&&e.nodeName.toLowerCase()==="text"&&y(n.width)||t.textWidth,r&&(n=o(r,f)),t.styles=n,u&&(oi||!ni&&t.renderer.forExport)&&delete n.width,sr&&!ni)k(t.element,n);else{h=function(n,t){return"-"+t.toLowerCase()};for(i in n)s+=i.replace(/([A-Z])/g,h)+":"+n[i]+";";at(e,"style",s)}u&&t.added&&t.renderer.buildText(t)}return t},on:function(n,t){var r=this,i=r.element;return fu&&n==="click"?(i.ontouchstart=function(n){r.touchEventFired=wt.now();n.preventDefault();t.call(i,n)},i.onclick=function(n){(or.indexOf("Android")===-1||wt.now()-(r.touchEventFired||0)>1100)&&t.call(i,n)}):i["on"+n]=t,this},setRadialReference:function(n){var t=this.renderer.gradients[this.element.gradient];return this.element.radialReference=n,t&&t.radAttr&&t.animate(this.renderer.getRadialAttr(n,t.radAttr)),this},translate:function(n,t){return this.attr({translateX:n,translateY:t})},invert:function(){var n=this;return n.inverted=!0,n.updateTransform(),n},updateTransform:function(){var n=this,f=n.translateX||0,e=n.translateY||0,o=n.scaleX,s=n.scaleY,h=n.inverted,c=n.rotation,u=n.element,i;h&&(f+=n.attr("width"),e+=n.attr("height"));i=["translate("+f+","+e+")"];h?i.push("rotate(90) scale(-1,1)"):c&&i.push("rotate("+c+" "+(u.getAttribute("x")||0)+" "+(u.getAttribute("y")||0)+")");(r(o)||r(s))&&i.push("scale("+t(o,1)+" "+t(s,1)+")");i.length&&u.setAttribute("transform",i.join(" "))},toFront:function(){var n=this.element;return n.parentNode.appendChild(n),this},align:function(n,i,r){var u,f,s,h,o={},c,l=this.renderer,a=l.alignedObjects;return n?(this.alignOptions=n,this.alignByTranslate=i,(!r||rr(r))&&(this.alignTo=c=r||"renderer",gi(a,this),a.push(this),r=null)):(n=this.alignOptions,i=this.alignByTranslate,c=this.alignTo),r=t(r,l[c],l),u=n.align,f=n.verticalAlign,s=(r.x||0)+(n.x||0),h=(r.y||0)+(n.y||0),(u==="right"||u==="center")&&(s+=(r.width-(n.width||0))/{right:1,center:2}[u]),o[i?"translateX":"x"]=e(s),(f==="bottom"||f==="middle")&&(h+=(r.height-(n.height||0))/({bottom:1,middle:2}[f]||1)),o[i?"translateY":"y"]=e(h),this[this.placed?"animate":"attr"](o),this.placed=!0,this.alignAttr=o,this},getBBox:function(n,r){var h=this,u,y=h.renderer,d,c,p,l,s=h.element,w=h.styles,a=h.textStr,g,b=s.style,v,k=y.cache,nt=y.cacheKeys,e;if(p=t(r,h.rotation),l=p*ei,a!==f&&(e=["",p||0,w&&w.fontSize,s.style.width].join(","),e=a===""||ts.test(a)?"num:"+a.toString().length+e:a+e),e&&!n&&(u=k[e]),!u){if(s.namespaceURI===wr||y.forExport){try{v=this.fakeTS&&function(n){i(s.querySelectorAll("."+ht+"text-shadow"),function(t){t.style.display=n})};tu&&b.textShadow?(g=b.textShadow,b.textShadow=""):v&&v(yt);u=s.getBBox?o({},s.getBBox()):{width:s.offsetWidth,height:s.offsetHeight};g?b.textShadow=g:v&&v("")}catch(tt){}(!u||u.width<0)&&(u={width:0,height:0})}else u=h.htmlGetBBox();if(y.isSVG&&(d=u.width,c=u.height,sr&&w&&w.fontSize==="11px"&&c.toPrecision(3)==="16.9"&&(u.height=c=14),p&&(u.width=rt(c*gt(l))+rt(d*pt(l)),u.height=rt(c*pt(l))+rt(d*gt(l)))),e){while(nt.length>250)delete k[nt.shift()];k[e]||nt.push(e);k[e]=u}}return u},show:function(n){return this.attr({visibility:n?"inherit":cr})},hide:function(){return this.attr({visibility:hr})},fadeOut:function(n){var t=this;t.animate({opacity:0},{duration:n||150,complete:function(){t.attr({y:-9999})}})},add:function(n){var t=this.renderer,r=this.element,i;return n&&(this.parentGroup=n),this.parentInverted=n&&n.inverted,this.textStr!==undefined&&t.buildText(this),this.added=!0,(!n||n.handleZ||this.zIndex)&&(i=this.zIndexSetter()),i||(n?n.element:t.box).appendChild(r),this.onAdd&&this.onAdd(),this},safeRemoveChild:function(n){var t=n.parentNode;t&&t.removeChild(n)},destroy:function(){var n=this,t=n.element||{},f=n.shadows,r=n.renderer.isSVG&&t.nodeName==="SPAN"&&n.parentGroup,e,o,u;if(t.onclick=t.onmouseout=t.onmouseover=t.onmousemove=t.point=null,br(n),n.clipPath&&(n.clipPath=n.clipPath.destroy()),n.stops){for(u=0;u<n.stops.length;u++)n.stops[u]=n.stops[u].destroy();n.stops=null}for(n.safeRemoveChild(t),f&&i(f,function(t){n.safeRemoveChild(t)});r&&r.div&&r.div.childNodes.length===0;)e=r.parentGroup,n.safeRemoveChild(r.div),delete r.div,r=e;n.alignTo&&gi(n.renderer.alignedObjects,n);for(o in n)delete n[o];return null},shadow:function(n,i,r){var c=[],e,f,h=this.element,o,s,l,a;if(n){for(s=t(n.width,3),l=(n.opacity||.15)/s,a=this.parentInverted?"(-1,-1)":"("+t(n.offsetX,1)+", "+t(n.offsetY,1)+")",e=1;e<=s;e++)f=h.cloneNode(0),o=s*2+1-2*e,at(f,{isShadow:"true",stroke:n.color||"black","stroke-opacity":l*e,"stroke-width":o,transform:"translate"+a,fill:yt}),r&&(at(f,"height",u(at(f,"height")-o,0)),f.cutHeight=o),i?i.element.appendChild(f):h.parentNode.insertBefore(f,h),c.push(f);this.shadows=c}return this},xGetter:function(n){return this.element.nodeName==="circle"&&(n={x:"cx",y:"cy"}[n]||n),this._defaultGetter(n)},_defaultGetter:function(n){var i=t(this[n],this.element?this.element.getAttribute(n):null,0);return/^[\-0-9\.]+$/.test(i)&&(i=parseFloat(i)),i},dSetter:function(n,t,i){n&&n.join&&(n=n.join(" "));/(NaN| {2}|^$)/.test(n)&&(n="M 0 0");i.setAttribute(t,n);this[t]=n},dashstyleSetter:function(n){var t,i=this["stroke-width"];if(i==="inherit"&&(i=1),n=n&&n.toLowerCase(),n){for(n=n.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(","),t=n.length;t--;)n[t]=y(n[t])*i;n=n.join(",").replace(/NaN/g,"none");this.element.setAttribute("stroke-dasharray",n)}},alignSetter:function(n){this.element.setAttribute("text-anchor",{left:"start",center:"middle",right:"end"}[n])},opacitySetter:function(n,t,i){this[t]=n;i.setAttribute(t,n)},titleSetter:function(n){var i=this.element.getElementsByTagName("title")[0];i||(i=a.createElementNS(wr,"title"),this.element.appendChild(i));i.firstChild&&i.removeChild(i.firstChild);i.appendChild(a.createTextNode(String(t(n),"").replace(/<[^>]*>/g,"")))},textSetter:function(n){n!==this.textStr&&(delete this.bBox,this.textStr=n,this.added&&this.renderer.buildText(this))},fillSetter:function(n,t,i){typeof n=="string"?i.setAttribute(t,n):n&&this.colorGradient(n,t,i)},visibilitySetter:function(n,t,i){n==="inherit"?i.removeAttribute(t):i.setAttribute(t,n)},zIndexSetter:function(n,t){var l=this.renderer,o=this.parentGroup,v=o||l,s=v.element||l.box,h,i,c,u=this.element,f,a=this.added,e;if(r(n)&&(u.zIndex=n,n=+n,this[t]===n&&(a=!1),this[t]=n),a){for(n=this.zIndex,n&&o&&(o.handleZ=!0),h=s.childNodes,e=0;e<h.length&&!f;e++)i=h[e],c=i.zIndex,i!==u&&(y(c)>n||!r(n)&&r(c))&&(s.insertBefore(u,i),f=!0);f||s.appendChild(u)}return f},_defaultSetter:function(n,t,i){i.setAttribute(t,n)}},vt.prototype.yGetter=vt.prototype.xGetter,vt.prototype.translateXSetter=vt.prototype.translateYSetter=vt.prototype.rotationSetter=vt.prototype.verticalAlignSetter=vt.prototype.scaleXSetter=vt.prototype.scaleYSetter=function(n,t){this[t]=n;this.doTransform=!0},vt.prototype["stroke-widthSetter"]=vt.prototype.strokeSetter=function(n,t,i){this[t]=n;this.stroke&&this["stroke-width"]?(this.strokeWidth=this["stroke-width"],vt.prototype.fillSetter.call(this,this.stroke,"stroke",i),i.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):t==="stroke-width"&&n===0&&this.hasStroke&&(i.removeAttribute("stroke"),this.hasStroke=!1)},li=function(){this.init.apply(this,arguments)},li.prototype={Element:vt,init:function(t,i,r,u,f,e){var o=this,c,h,y,l,s;c=o.createElement("svg").attr({version:"1.1"}).css(this.getStyle(u));h=c.element;t.appendChild(h);t.innerHTML.indexOf("xmlns")===-1&&at(h,"xmlns",wr);o.isSVG=!0;o.box=h;o.boxWrapper=c;o.alignedObjects=[];o.url=(tu||of)&&a.getElementsByTagName("base").length?n.location.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";y=this.createElement("desc").add();y.element.appendChild(a.createTextNode("Created with "+ke+" "+de));o.defs=this.createElement("defs").add();o.allowHTML=e;o.forExport=f;o.gradients={};o.cache={};o.cacheKeys=[];o.imgCount=0;o.setSize(i,r,!1);tu&&t.getBoundingClientRect&&(o.subPixelFix=l=function(){k(t,{left:0,top:0});s=t.getBoundingClientRect();k(t,{left:tr(s.left)-s.left+b,top:tr(s.top)-s.top+b})},l(),v(n,"resize",l))},getStyle:function(n){return this.style=o({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},n),this.style},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var t=this,i=t.defs;return t.box=null,t.boxWrapper=t.boxWrapper.destroy(),dr(t.gradients||{}),t.gradients=null,i&&(t.defs=i.destroy()),t.subPixelFix&&ft(n,"resize",t.subPixelFix),t.alignedObjects=null,null},createElement:function(n){var t=new this.Element;return t.init(this,n),t},draw:function(){},getRadialAttr:function(n,t){return{cx:n[0]-n[2]/2+t.cx*n[2],cy:n[1]-n[2]/2+t.cy*n[2],r:t.r*n[2]}},buildText:function(n){for(var u=n.element,e=this,d=e.forExport,o=t(n.textStr,"").toString(),g=o.indexOf("<")!==-1,s,nt=u.childNodes,l,v,h,p=at(u,"x"),r=n.styles,f=n.textWidth,tt=r&&r.lineHeight,w=r&&r.textShadow,b=r&&r.textOverflow==="ellipsis",it=nt.length,c=f&&!n.added&&this.box,rt=function(n){return tt?y(tt):e.fontMetrics(/(px|em)$/.test(n&&n.style.fontSize)?n.style.fontSize:r&&r.fontSize||e.style.fontSize||12,n).h},ut=function(n){return n.replace(/&lt;/g,"<").replace(/&gt;/g,">")};it--;)u.removeChild(nt[it]);g||w||b||o.indexOf(" ")!==-1?(l=/<.*style="([^"]+)".*>/,v=/<.*href="(http[^"]+)".*>/,c&&c.appendChild(u),s=g?o.replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">').replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"<\/span>").split(/<br.*?>/g):[o],s=ir(s,function(n){return n!==""}),i(s,function(t,o){var s,c=0;t=t.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,"<\/span>|||");s=t.split("|||");i(s,function(t){var tt,i,it;if((t!==""||s.length===1)&&(tt={},i=a.createElementNS(wr,"tspan"),l.test(t)&&(it=t.match(l)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),at(i,"style",it)),v.test(t)&&!d&&(at(i,"onclick",'location.href="'+t.match(v)[1]+'"'),k(i,{cursor:"pointer"})),t=ut(t.replace(/<(.|\n)*?>/g,"")||" "),t!==" ")){if(i.appendChild(a.createTextNode(t)),c?tt.dx=0:o&&p!==null&&(tt.x=p),at(i,tt),u.appendChild(i),!c&&o&&(!ni&&d&&k(i,{display:"block"}),at(i,"dy",rt(i))),f){for(var y=t.replace(/([^\^])-/g,"$1- ").split(" "),st=s.length>1||o||y.length>1&&r.whiteSpace!=="nowrap",w,g,ft=[],ht=rt(i),ct=1,lt=n.rotation,nt=t,et=nt.length,ot;(st||b)&&(y.length||ft.length);)n.rotation=0,ot=n.getBBox(!0),g=ot.width,!ni&&e.forExport&&(g=e.measureSpanWidth(i.firstChild.data,n.styles)),w=g>f,h===undefined&&(h=w),b&&h?(et/=2,nt===""||!w&&et<.5?y=[]:(nt=t.substring(0,nt.length+(w?-1:1)*tr(et)),y=[nt+(f>3?"…":"")],i.removeChild(i.firstChild))):w&&y.length!==1?(i.removeChild(i.firstChild),ft.unshift(y.pop())):(y=ft,ft=[],y.length&&(ct++,i=a.createElementNS(wr,"tspan"),at(i,{dy:ht,x:p}),it&&at(i,"style",it),u.appendChild(i)),g>f&&(f=g)),y.length&&i.appendChild(a.createTextNode(y.join(" ").replace(/- /g,"-")));n.rotation=lt}c++}})}),h&&n.attr("title",n.textStr),c&&c.removeChild(u),w&&n.applyTextShadow&&n.applyTextShadow(w)):u.appendChild(a.createTextNode(ut(o)))},getContrast:function(n){return n=pi(n).rgba,n[0]+n[1]+n[2]>384?"#000000":"#FFFFFF"},button:function(n,t,i,r,u,f,e,s,c){var l=this.label(n,t,i,c,null,null,null,null,"button"),a=0,k,d,y,p,w,g,b={x1:0,y1:0,x2:0,y2:1};return u=h({"stroke-width":1,stroke:"#CCCCCC",fill:{linearGradient:b,stops:[[0,"#FEFEFE"],[1,"#F6F6F6"]]},r:2,padding:5,style:{color:"black"}},u),y=u.style,delete u.style,f=h(u,{stroke:"#68A",fill:{linearGradient:b,stops:[[0,"#FFF"],[1,"#ACF"]]}},f),p=f.style,delete f.style,e=h(u,{stroke:"#68A",fill:{linearGradient:b,stops:[[0,"#9BD"],[1,"#CDF"]]}},e),w=e.style,delete e.style,s=h(u,{style:{color:"#CCC"}},s),g=s.style,delete s.style,v(l.element,sr?"mouseover":"mouseenter",function(){a!==3&&l.attr(f).css(p)}),v(l.element,sr?"mouseout":"mouseleave",function(){a!==3&&(k=[u,f,e][a],d=[y,p,w][a],l.attr(k).css(d))}),l.setState=function(n){l.state=a=n;n?n===2?l.attr(e).css(w):n===3&&l.attr(s).css(g):l.attr(u).css(y)},l.on("click",function(n){a!==3&&r.call(l,n)}).attr(u).css(o({cursor:"default"},y))},crispLine:function(n,t){return n[1]===n[4]&&(n[1]=n[4]=e(n[1])-t%2/2),n[2]===n[5]&&(n[2]=n[5]=e(n[2])+t%2/2),n},path:function(n){var t={fill:yt};return vr(n)?t.d=n:bt(n)&&o(t,n),this.createElement("path").attr(t)},circle:function(n,t,i){var u=bt(n)?n:{x:n,y:t,r:i},r=this.createElement("circle");return r.xSetter=r.ySetter=function(n,t,i){i.setAttribute("c"+t,n)},r.attr(u)},arc:function(n,t,i,r,u,f){var e;return bt(n)&&(t=n.y,i=n.r,r=n.innerR,u=n.start,f=n.end,n=n.x),e=this.symbol("arc",n||0,t||0,i||0,i||0,{innerR:r||0,start:u||0,end:f||0}),e.r=i,e},rect:function(n,t,i,r,e,o){e=bt(n)?n.r:e;var s=this.createElement("rect"),h=bt(n)?n:n===f?{}:{x:n,y:t,width:u(i,0),height:u(r,0)};return o!==f&&(s.strokeWidth=o,h=s.crisp(h)),e&&(h.r=e),s.rSetter=function(n,t,i){at(i,{rx:n,ry:n})},s.attr(h)},setSize:function(n,i,r){var u=this,f=u.alignedObjects,e=f.length;for(u.width=n,u.height=i,u.boxWrapper[t(r,!0)?"animate":"attr"]({width:n,height:i});e--;)f[e].align()},g:function(n){var t=this.createElement("g");return r(n)?t.attr({"class":ht+n}):t},image:function(n,t,i,r,u){var e={preserveAspectRatio:yt},f;return arguments.length>1&&o(e,{x:t,y:i,width:r,height:u}),f=this.createElement("image").attr(e),f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",n):f.element.setAttribute("hc-svg-href",n),f},symbol:function(n,t,i,r,u,f){var c=this,s,y=this.symbols[n],p=y&&y(e(t),e(i),r,u,f),w=/^url\((.*?)\)$/,h,l,v;return p?(s=this.path(p),o(s,{symbolName:n,x:t,y:i,width:r,height:u}),f&&o(s,f)):w.test(n)&&(v=function(n,t){n.element&&(n.attr({width:t[0],height:t[1]}),n.alignByTranslate||n.translate(e((r-t[0])/2),e((u-t[1])/2)))},h=n.match(w)[1],l=be[h]||f&&f.width&&f.height&&[f.width,f.height],s=this.image(h).attr({x:t,y:i}),s.isImg=!0,l?v(s,l):(s.attr({width:0,height:0}),kt("img",{onload:function(){this.width===0&&(k(this,{position:ki,top:"-999em"}),a.body.appendChild(this));v(s,be[h]=[this.width,this.height]);this.parentNode&&this.parentNode.removeChild(this);c.imgCount--;!c.imgCount&&lt[c.chartIndex].onload&&lt[c.chartIndex].onload()},src:h}),this.imgCount++)),s},symbols:{circle:function(n,t,i,r){var u=.166*i;return[st,n+i/2,t,"C",n+i+u,t,n+i+u,t+r,n+i/2,t+r,"C",n-u,t+r,n-u,t,n+i/2,t,"Z"]},square:function(n,t,i,r){return[st,n,t,tt,n+i,t,n+i,t+r,n,t+r,"Z"]},triangle:function(n,t,i,r){return[st,n+i/2,t,tt,n+i,t+r,n,t+r,"Z"]},"triangle-down":function(n,t,i,r){return[st,n,t,tt,n+i,t,n+i/2,t+r,"Z"]},diamond:function(n,t,i,r){return[st,n+i/2,t,tt,n+i,t+r/2,n+i/2,t+r,n,t+r/2,"Z"]},arc:function(n,t,i,r,u){var o=u.start,f=u.r||i||r,s=u.end-.001,e=u.innerR,h=u.open,c=pt(o),l=gt(o),a=pt(s),v=gt(s),y=u.end-o<bi?0:1;return[st,n+f*c,t+f*l,"A",f,f,0,y,1,n+f*a,t+f*v,h?st:tt,n+e*a,t+e*v,"A",e,e,0,y,0,n+e*c,t+e*l,h?"":"Z"]},callout:function(n,t,i,r,u){var a=6,s=6,f=c(u&&u.r||0,i,r),h=f+s,e=u&&u.anchorX,o=u&&u.anchorY,l;return l=["M",n+f,t,"L",n+i-f,t,"C",n+i,t,n+i,t,n+i,t+f,"L",n+i,t+r-f,"C",n+i,t+r,n+i,t+r,n+i-f,t+r,"L",n+f,t+r,"C",n,t+r,n,t+r,n,t+r-f,"L",n,t+f,"C",n,t,n,t,n+f,t],e&&e>i&&o>t+h&&o<t+r-h?l.splice(13,3,"L",n+i,o-s,n+i+a,o,n+i,o+s,n+i,t+r-f):e&&e<0&&o>t+h&&o<t+r-h?l.splice(33,3,"L",n,o+s,n-a,o,n,o-s,n,t+f):o&&o>r&&e>n+h&&e<n+i-h?l.splice(23,3,"L",e+s,t+r,e,t+r+a,e-s,t+r,n+f,t+r):o&&o<0&&e>n+h&&e<n+i-h&&l.splice(3,3,"L",e-s,t,e,t-a,e+s,t,i-f,t),l}},clipRect:function(n,t,i,r){var u,f=ht+bf++,e=this.createElement("clipPath").attr({id:f}).add(this.defs);return u=this.rect(n,t,i,r,0).add(e),u.id=f,u.clipPath=e,u.count=0,u},text:function(n,t,i,r){var u=this,o=oi||!ni&&u.forExport,f,e={};return r&&(u.allowHTML||!u.forExport)?u.html(n,t,i):(e.x=Math.round(t||0),i&&(e.y=Math.round(i)),(n||n===0)&&(e.text=n),f=u.createElement("text").attr(e),o&&f.css({position:ki}),r||(f.xSetter=function(n,t,i){for(var f=i.getElementsByTagName("tspan"),u,e=i.getAttribute(t),r=0;r<f.length;r++)u=f[r],u.getAttribute(t)===e&&u.setAttribute(t,n);i.setAttribute(t,n)}),f)},fontMetrics:function(t,i){var r,f,u;return t=t||this.style.fontSize,!t&&i&&n.getComputedStyle&&(i=i.element||i,u=n.getComputedStyle(i,""),t=u&&u.fontSize),t=/px/.test(t)?y(t):/em/.test(t)?parseFloat(t)*12:12,r=t<24?t+3:e(t*1.2),f=e(r*.8),{h:r,b:f,f:t}},rotCorr:function(n,t,i){var r=n;return t&&i&&(r=u(r*pt(t*ei),4)),{x:-n/3*gt(t*ei),y:r}},label:function(n,t,u,s,c,l,a,v,y){var g=this,p=g.g(y),w=g.text("",0,0,a).attr({zIndex:1}),b,k,ut=0,d=3,et=0,nt,ht,ot,ct,st=0,it={},lt,at,pt,rt,tt,wt;return pt=function(){var n,t,i=w.element.style;k=(nt===undefined||ht===undefined||p.styles.textAlign)&&r(w.textStr)&&w.getBBox();p.width=(nt||k.width||0)+2*d+et;p.height=(ht||k.height||0)+2*d;lt=d+g.fontMetrics(i&&i.fontSize,w).b;at&&(b||(n=st,t=(v?-lt:0)+st,p.box=b=s?g.symbol(s,n,t,p.width,p.height,it):g.rect(n,t,p.width,p.height,0,it[is]),b.isImg||b.attr("fill",yt),b.add(p)),b.isImg||b.attr(o({width:e(p.width),height:e(p.height)},it)),it=null)},rt=function(){var u=p.styles,i=u&&u.textAlign,t=et+d,n;n=v?0:lt;r(nt)&&k&&(i==="center"||i==="right")&&(t+={center:.5,right:1}[i]*(nt-k.width));(t!==w.x||n!==w.y)&&(w.attr("x",t),n!==f&&w.attr("y",n));w.x=t;w.y=n},tt=function(n,t){b?b.attr(n,t):it[n]=t},p.onAdd=function(){w.add(p);p.attr({text:n||n===0?n:"",x:t,y:u});b&&r(c)&&p.attr({anchorX:c,anchorY:l})},p.widthSetter=function(n){nt=n},p.heightSetter=function(n){ht=n},p.paddingSetter=function(n){r(n)&&n!==d&&(d=p.padding=n,rt())},p.paddingLeftSetter=function(n){r(n)&&n!==et&&(et=n,rt())},p.alignSetter=function(n){n={left:0,center:.5,right:1}[n];n!==ut&&(ut=n,k&&p.attr({x:ot}))},p.textSetter=function(n){n!==f&&w.textSetter(n);pt();rt()},p["stroke-widthSetter"]=function(n,t){n&&(at=!0);st=n%2/2;tt(t,n)},p.strokeSetter=p.fillSetter=p.rSetter=function(n,t){t==="fill"&&n&&(at=!0);tt(t,n)},p.anchorXSetter=function(n,t){c=n;tt(t,e(n)-st-ot)},p.anchorYSetter=function(n,t){l=n;tt(t,n-ct)},p.xSetter=function(n){p.x=n;ut&&(n-=ut*((nt||k.width)+2*d));ot=e(n);p.attr("translateX",ot)},p.ySetter=function(n){ct=p.y=e(n);p.attr("translateY",ct)},wt=p.css,o(p,{css:function(n){if(n){var t={};n=h(n);i(p.textProps,function(i){n[i]!==f&&(t[i]=n[i],delete n[i])});w.css(t)}return wt.call(p,n)},getBBox:function(){return{width:k.width+2*d,height:k.height+2*d,x:k.x-d,y:k.y-d}},shadow:function(n){return b&&b.shadow(n),p},destroy:function(){ft(p.element,"mouseenter");ft(p.element,"mouseleave");w&&(w=w.destroy());b&&(b=b.destroy());vt.prototype.destroy.call(p);p=g=pt=rt=tt=null}})}},iu=li,o(vt.prototype,{htmlCss:function(n){var t=this,r=t.element,i=n&&r.tagName==="SPAN"&&n.width;return i&&(delete n.width,t.textWidth=i,t.updateTransform()),n&&n.textOverflow==="ellipsis"&&(n.whiteSpace="nowrap",n.overflow="hidden"),t.styles=o(t.styles,n),k(t.element,n),t},htmlGetBBox:function(){var t=this,n=t.element;return n.nodeName==="text"&&(n.style.position=ki),{x:n.offsetLeft,y:n.offsetTop,width:n.offsetWidth,height:n.offsetHeight}},htmlUpdateTransform:function(){if(!this.added){this.alignOnAdd=!0;return}var n=this,s=n.renderer,t=n.element,h=n.translateX||0,c=n.translateY||0,d=n.x||0,g=n.y||0,e=n.textAlign||"left",l={left:0,center:.5,right:1}[e],a=n.shadows,v=n.styles;if(k(t,{marginLeft:h,marginTop:c}),a&&i(a,function(n){k(n,{marginLeft:h+1,marginTop:c+1})}),n.inverted&&i(t.childNodes,function(n){s.invertChild(n,t)}),t.tagName==="SPAN"){var u=n.rotation,f,o=y(n.textWidth),p=v&&v.whiteSpace,w=[u,e,t.innerHTML,n.textWidth,n.textAlign].join(",");w!==n.cTT&&(f=s.fontMetrics(t.style.fontSize).b,r(u)&&n.setSpanRotation(u,l,f),t.offsetWidth>o&&/[ \-]/.test(t.textContent||t.innerText)?(k(t,{width:o+b,display:"block",whiteSpace:p||"normal"}),n.hasTextWidth=!0):n.hasTextWidth&&(k(t,{width:"",display:"",whiteSpace:p||"nowrap"}),n.hasTextWidth=!1),n.getSpanCorrection(n.hasTextWidth?o:t.offsetWidth,f,l,u,e));k(t,{left:d+(n.xCorr||0)+b,top:g+(n.yCorr||0)+b});of&&(f=t.offsetHeight);n.cTT=w}},setSpanRotation:function(n,t,i){var r={},u=sr?"-ms-transform":of?"-webkit-transform":tu?"MozTransform":we?"-o-transform":"";r[u]=r.transform="rotate("+n+"deg)";r[u+(tu?"Origin":"-origin")]=r.transformOrigin=t*100+"% "+i+"px";k(this.element,r)},getSpanCorrection:function(n,t,i){this.xCorr=-n*i;this.yCorr=-t}}),o(li.prototype,{html:function(n,t,r){var u=this.createElement("span"),f=u.element,s=u.renderer,h=s.isSVG,c=function(n,t){i(["opacity","visibility"],function(i){ut(n,i+"Setter",function(n,i,r,u){n.call(this,i,r,u);t[r]=i})})};return u.textSetter=function(n){n!==f.innerHTML&&delete this.bBox;f.innerHTML=this.textStr=n;u.htmlUpdateTransform()},h&&c(u,u.element.style),u.xSetter=u.ySetter=u.alignSetter=u.rotationSetter=function(n,t){t==="align"&&(t="textAlign");u[t]=n;u.htmlUpdateTransform()},u.attr({text:n,x:e(t),y:e(r)}).css({position:ki,fontFamily:this.style.fontFamily,fontSize:this.style.fontSize}),f.style.whiteSpace="nowrap",u.css=u.htmlCss,h&&(u.add=function(n){var t,e=s.box.parentNode,r,h=[];if(this.parentGroup=n,n){if(t=n.div,!t){for(r=n;r;)h.push(r),r=r.parentGroup;i(h.reverse(),function(n){var i,r=at(n.element,"class");r&&(r={className:r});t=n.div=n.div||kt(ru,r,{position:ki,left:(n.translateX||0)+b,top:(n.translateY||0)+b,opacity:n.opacity},t||e);i=t.style;o(n,{translateXSetter:function(t,r){i.left=t+b;n[r]=t;n.doTransform=!0},translateYSetter:function(t,r){i.top=t+b;n[r]=t;n.doTransform=!0}});c(n,i)})}}else t=e;return t.appendChild(f),u.added=!0,u.alignOnAdd&&u.htmlUpdateTransform(),u}),u}}),ni||oi||(fr={init:function(n,t){var f=this,i=["<",t,' filled="f" stroked="f"'],r=["position: ",ki,";"],u=t===ru;(t==="shape"||u)&&r.push("left:0;top:0;width:1px;height:1px;");r.push("visibility: ",u?hr:cr);i.push(' style="',r.join(""),'"/>');t&&(i=u||t==="span"||t==="img"?i.join(""):n.prepVML(i),f.element=kt(i));f.renderer=n},add:function(n){var t=this,i=t.renderer,r=t.element,f=i.box,e=n&&n.inverted,u=n?n.element||n:f;return n&&(this.parentGroup=n),e&&i.invertChild(r,u),u.appendChild(r),t.added=!0,t.alignOnAdd&&!t.deferUpdateTransform&&t.updateTransform(),t.onAdd&&t.onAdd(),t},updateTransform:vt.prototype.htmlUpdateTransform,setSpanRotation:function(){var n=this.rotation,t=pt(n*ei),i=gt(n*ei);k(this.element,{filter:n?["progid:DXImageTransform.Microsoft.Matrix(M11=",t,", M12=",-i,", M21=",i,", M22=",t,", sizingMethod='auto expand')"].join(""):yt})},getSpanCorrection:function(n,i,r,u,f){var e=u?pt(u*ei):1,o=u?gt(u*ei):0,h=t(this.elemHeight,this.element.offsetHeight),s,c=f&&f!=="left";this.xCorr=e<0&&-n;this.yCorr=o<0&&-h;s=e*o<0;this.xCorr+=o*i*(s?1-r:r);this.yCorr-=e*i*(u?s?r:1-r:1);c&&(this.xCorr-=n*r*(e<0?-1:1),u&&(this.yCorr-=h*r*(o<0?-1:1)),k(this.element,{textAlign:f}))},pathToVML:function(n){for(var t=n.length,i=[];t--;)l(n[t])?i[t]=e(n[t]*10)-5:n[t]==="Z"?i[t]="x":(i[t]=n[t],n.isArc&&(n[t]==="wa"||n[t]==="at")&&(i[t+5]===i[t+7]&&(i[t+7]+=n[t+7]>n[t+5]?1:-1),i[t+6]===i[t+8]&&(i[t+8]+=n[t+8]>n[t+6]?1:-1)));return i.join(" ")||"x"},clip:function(n){var t=this,i,r;return n?(i=n.members,gi(i,t),i.push(t),t.destroyClip=function(){gi(i,t)},r=n.getCSS(t)):(t.destroyClip&&t.destroyClip(),r={clip:ef?"inherit":"rect(auto)"}),t.css(r)},css:vt.prototype.htmlCss,safeRemoveChild:function(n){n.parentNode&&uu(n)},destroy:function(){return this.destroyClip&&this.destroyClip(),vt.prototype.destroy.apply(this)},on:function(t,i){return this.element["on"+t]=function(){var t=n.event;t.target=t.srcElement;i(t)},this},cutOffPath:function(n,t){var i;return n=n.split(/[ ,]/),i=n.length,(i===9||i===11)&&(n[i-4]=n[i-2]=y(n[i-2])-10*t),n.join(" ")},shadow:function(n,i,r){var a=[],f,e=this.element,v=this.renderer,u,p=e.style,s,o=e.path,h,c,l,w;if(o&&typeof o.value!="string"&&(o="x"),c=o,n){for(l=t(n.width,3),w=(n.opacity||.15)/l,f=1;f<=3;f++)h=l*2+1-2*f,r&&(c=this.cutOffPath(o.value,h+.5)),s=['<shape isShadow="true" strokeweight="',h,'" filled="false" path="',c,'" coordsize="10 10" style="',e.style.cssText,'" />'],u=kt(v.prepVML(s),null,{left:y(p.left)+t(n.offsetX,1),top:y(p.top)+t(n.offsetY,1)}),r&&(u.cutOff=h+1),s=['<stroke color="',n.color||"black",'" opacity="',w*f,'"/>'],kt(v.prepVML(s),null,null,u),i?i.element.appendChild(u):e.parentNode.insertBefore(u,e),a.push(u);this.shadows=a}return this},updateShadows:si,setAttr:function(n,t){ef?this.element[n]=t:this.element.setAttribute(n,t)},classSetter:function(n){this.element.className=n},dashstyleSetter:function(n,t,i){var r=i.getElementsByTagName("stroke")[0]||kt(this.renderer.prepVML(["<stroke/>"]),null,null,i);r[t]=n||"solid";this[t]=n},dSetter:function(n,t,i){var r,u=this.shadows;if(n=n||[],this.d=n.join&&n.join(" "),i.path=n=this.pathToVML(n),u)for(r=u.length;r--;)u[r].path=u[r].cutOff?this.cutOffPath(n,u[r].cutOff):n;this.setAttr(t,n)},fillSetter:function(n,t,i){var r=i.nodeName;r==="SPAN"?i.style.color=n:r!=="IMG"&&(i.filled=n!==yt,this.setAttr("fillcolor",this.renderer.color(n,i,t,this)))},"fill-opacitySetter":function(n,t,i){kt(this.renderer.prepVML(["<",t.split("-")[0],' opacity="',n,'"/>']),null,null,i)},opacitySetter:si,rotationSetter:function(n,t,i){var r=i.style;this[t]=r[t]=n;r.left=-e(gt(n*ei)+1)+b;r.top=e(pt(n*ei))+b},strokeSetter:function(n,t,i){this.setAttr("strokecolor",this.renderer.color(n,i,t,this))},"stroke-widthSetter":function(n,t,i){i.stroked=!!n;this[t]=n;l(n)&&(n+=b);this.setAttr("strokeweight",n)},titleSetter:function(n,t){this.setAttr(t,n)},visibilitySetter:function(n,t,r){n==="inherit"&&(n=cr);this.shadows&&i(this.shadows,function(i){i.style[t]=n});r.nodeName==="DIV"&&(n=n===hr?"-999em":0,ef||(r.style[t]=n?cr:hr),t="top");r.style[t]=n},xSetter:function(n,t,i){this[t]=n;t==="x"?t="left":t==="y"&&(t="top");this.updateClipping?(this[t]=n,this.updateClipping()):i.style[t]=n},zIndexSetter:function(n,t,i){i.style[t]=n}},fr["stroke-opacitySetter"]=fr["fill-opacitySetter"],s.VMLElement=fr=ui(vt,fr),fr.prototype.ySetter=fr.prototype.widthSetter=fr.prototype.heightSetter=fr.prototype.xSetter,oo={Element:fr,isIE8:or.indexOf("MSIE 8.0")>-1,init:function(n,t,i,r){var u=this,f,s,e;if(u.alignedObjects=[],f=u.createElement(ru).css(o(this.getStyle(r),{position:"relative"})),s=f.element,n.appendChild(f.element),u.isVML=!0,u.box=s,u.boxWrapper=f,u.gradients={},u.cache={},u.cacheKeys=[],u.imgCount=0,u.setSize(t,i,!1),!a.namespaces.hcv){a.namespaces.add("hcv","urn:schemas-microsoft-com:vml");e="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } ";try{a.createStyleSheet().cssText=e}catch(h){a.styleSheets[0].cssText+=e}}},isHidden:function(){return!this.box.offsetWidth},clipRect:function(n,t,r,u){var s=this.createElement(),f=bt(n);return o(s,{members:[],count:0,left:(f?n.x:n)+1,top:(f?n.y:t)+1,width:(f?n.width:r)-1,height:(f?n.height:u)-1,getCSS:function(n){var h=n.element,c=h.nodeName,a=c==="shape",t=n.inverted,i=this,r=i.top-(a?h.offsetTop:0),u=i.left,f=u+i.width,s=r+i.height,l={clip:"rect("+e(t?u:r)+"px,"+e(t?s:f)+"px,"+e(t?f:s)+"px,"+e(t?r:u)+"px)"};return!t&&ef&&c==="DIV"&&o(l,{width:f+b,height:s+b}),l},updateClipping:function(){i(s.members,function(n){n.element&&n.css(s.getCSS(n))})}})},color:function(n,t,r,u){var dt=this,o,k=/^rgba/,d,c,l=yt,y;if(n&&n.linearGradient?c="gradient":n&&n.radialGradient&&(c="pattern"),c){var s,v,f=n.linearGradient||n.radialGradient,g,nt,tt,rt,ut,ft,et,ot,p="",h=n.stops,w,b,st=[],ht=function(){d=['<fill colors="'+st.join(",")+'" opacity="',ft,'" o:opacity2="',ut,'" type="',c,'" ',p,'focus="100%" method="any" />'];kt(dt.prepVML(d),null,null,t)};if(w=h[0],b=h[h.length-1],w[0]>0&&h.unshift([0,w[1]]),b[0]<1&&h.push([1,b[1]]),i(h,function(n,t){k.test(n[1])?(o=pi(n[1]),s=o.get("rgb"),v=o.get("a")):(s=n[1],v=1);st.push(n[0]*100+"% "+s);t?(ft=v,et=s):(ut=v,ot=s)}),r==="fill")if(c==="gradient")g=f.x1||f[0]||0,nt=f.y1||f[1]||0,tt=f.x2||f[2]||0,rt=f.y2||f[3]||0,p='angle="'+(90-ct.atan((rt-nt)/(tt-g))*180/bi)+'"',ht();else{var lt=f.r,at=lt*2,vt=lt*2,pt=f.cx,wt=f.cy,a=t.radialReference,e,bt=function(){a&&(e=u.getBBox(),pt+=(a[0]-e.x)/e.width-.5,wt+=(a[1]-e.y)/e.height-.5,at*=a[2]/e.width,vt*=a[2]/e.height);p='src="'+it.global.VMLRadialGradientURL+'" size="'+at+","+vt+'" origin="0.5,0.5" position="'+pt+","+wt+'" color2="'+ot+'" ';ht()};u.added?bt():u.onAdd=bt;l=et}else l=s}else k.test(n)&&t.tagName!=="IMG"?(o=pi(n),u[r+"-opacitySetter"](o.get("a"),r,t),l=o.get("rgb")):(y=t.getElementsByTagName(r),y.length&&(y[0].opacity=1,y[0].type="solid"),l=n);return l},prepVML:function(n){var t="display:inline-block;behavior:url(#default#VML);",i=this.isIE8;return n=n.join(""),i?(n=n.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),n=n.indexOf('style="')===-1?n.replace("/>",' style="'+t+'" />'):n.replace('style="','style="'+t)):n=n.replace("<","<hcv:"),n},text:li.prototype.html,path:function(n){var t={coordsize:"10 10"};return vr(n)?t.d=n:bt(n)&&o(t,n),this.createElement("shape").attr(t)},circle:function(n,t,i){var r=this.symbol("circle");return bt(n)&&(i=n.r,t=n.y,n=n.x),r.isCircle=!0,r.r=i,r.attr({x:n,y:t})},g:function(n){var t;return n&&(t={className:ht+n,"class":ht+n}),this.createElement(ru).attr(t)},image:function(n,t,i,r,u){var f=this.createElement("img").attr({src:n});return arguments.length>1&&f.attr({x:t,y:i,width:r,height:u}),f},createElement:function(n){return n==="rect"?this.symbol(n):li.prototype.createElement.call(this,n)},invertChild:function(n,t){var f=this,u=t.style,r=n.tagName==="IMG"&&n.style;k(n,{flip:"x",left:y(u.width)-(r?y(r.top):1),top:y(u.height)-(r?y(r.left):1),rotation:-90});i(n.childNodes,function(t){f.invertChild(t,n)})},symbols:{arc:function(n,t,i,r,u){var s=u.start,h=u.end,e=u.r||i||r,f=u.innerR,c=pt(s),l=gt(s),a=pt(h),v=gt(h),o;return h-s==0?["x"]:(o=["wa",n-e,t-e,n+e,t+e,n+e*c,t+e*l,n+e*a,t+e*v],u.open&&!f&&o.push("e",st,n,t),o.push("at",n-f,t-f,n+f,t+f,n+f*a,t+f*v,n+f*c,t+f*l,"x","e"),o.isArc=!0,o)},circle:function(n,t,i,r,u){return u&&(i=r=2*u.r),u&&u.isCircle&&(n-=i/2,t-=r/2),["wa",n,t,n+i,t+r,n+i,t+r/2,n+i,t+r/2,"e"]},rect:function(n,t,i,u,f){return li.prototype.symbols[!r(f)||!f.r?"square":"callout"].call(0,n,t,i,u,f)}}},s.VMLRenderer=nf=function(){this.init.apply(this,arguments)},nf.prototype=h(li.prototype,oo),iu=nf),li.prototype.measureSpanWidth=function(n,t){var i=a.createElement("span"),r,u=a.createTextNode(n);return i.appendChild(u),k(i,t),this.box.appendChild(i),r=i.offsetWidth,uu(i),r},oi&&(s.CanVGRenderer=oe=function(){wr="http://www.w3.org/1999/xhtml"},oe.prototype.symbols={},so=function(){function t(){for(var i=n.length,t=0;t<i;t++)n[t]();n=[]}var n=[];return{push:function(i,r){n.length===0&&es(r,t);n.push(i)}}}(),iu=oe),lu.prototype={addLabel:function(){var i=this,n=i.axis,l=n.options,a=n.chart,v=n.categories,k=n.names,u=i.pos,s=l.labels,e,o=n.tickPositions,y=u===o[0],p=u===o[o.length-1],w=v?t(v[u],k[u],u):u,f=i.label,c=o.info,b;n.isDatetimeAxis&&c&&(b=l.dateTimeLabelFormats[c.higherRanks[u]||c.unitName]);i.isFirst=y;i.isLast=p;e=n.labelFormatter.call({axis:n,chart:a,isFirst:y,isLast:p,dateTimeLabelFormat:b,value:n.isLog?ii(n.lin2log(w)):w});r(f)?f&&f.attr({text:e}):(i.label=f=r(e)&&s.enabled?a.renderer.text(e,0,0,s.useHTML).css(h(s.style)).add(n.labelGroup):null,i.labelLength=f&&f.getBBox().width,i.rotation=0)},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(n){var i=this.axis,o=n.x,b=i.chart.chartWidth,k=i.chart.spacing,v=t(i.labelLeft,c(i.pos,k[3])),y=t(i.labelRight,u(i.pos+i.len,b-k[1])),p=this.label,h=this.rotation,f={left:0,center:.5,right:1}[i.labelAlign],s=p.getBBox().width,l=i.getSlotWidth(),r=l,tt=f,d=1,g,nt,a,w={};h?h<0&&o-f*s<v?a=e(o/pt(h*ei)-v):h>0&&o+f*s>y&&(a=e((b-o)/pt(h*ei))):(g=o-f*s,nt=o+(1-f)*s,g<v?r=n.x+r*(1-f)-v:nt>y&&(r=y-n.x+r*f,d=-1),r=c(l,r),r<l&&i.labelAlign==="center"&&(n.x+=d*(l-r-tt*(l-c(s,r)))),(s>r||i.autoRotation&&p.styles.width)&&(a=r));a&&(w.width=a,i.options.labels.style.textOverflow||(w.textOverflow="ellipsis"),p.css(w))},getPosition:function(n,t,i,r){var u=this.axis,f=u.chart,e=r&&f.oldChartHeight||f.chartHeight;return{x:n?u.translate(t+i,null,null,r)+u.transB:u.left+u.offset+(u.opposite?(r&&f.oldChartWidth||f.chartWidth)-u.right-u.left:0),y:n?e-u.bottom+u.offset-(u.opposite?u.height:0):e-u.translate(t+i,null,null,r)-u.transB}},getLabelPosition:function(n,t,i,u,f,o,s,h){var c=this.axis,p=c.transA,w=c.reversed,l=c.staggerLines,v=c.tickRotCorr||{x:0,y:0},y=f.y,a;return r(y)||(y=c.side===0?i.rotation?-8:-i.getBBox().height:c.side===2?v.y+8:pt(i.rotation*ei)*(v.y-i.getBBox(!1,0).height/2)),n=n+f.x+v.x-(o&&u?o*p*(w?-1:1):0),t=t+y-(o&&!u?o*p*(w?1:-1):0),l&&(a=s/(h||1)%l,c.opposite&&(a=l-a-1),t+=a*(c.labelOffset/l)),{x:n,y:e(t)}},getMarkPath:function(n,t,i,r,u,f){return f.crispLine([st,n,t,tt,n+(u?0:-i),t+(u?i:0)],r)},render:function(n,i,r){var u=this,e=u.axis,o=e.options,lt=e.chart,g=lt.renderer,h=e.horiz,a=u.type,v=u.label,et=u.pos,p=o.labels,w=u.gridLine,nt=a?a+"Grid":"grid",ot=a?a+"Tick":"tick",b=o[nt+"LineWidth"],at=o[nt+"LineColor"],st=o[nt+"LineDashStyle"],c=e.tickSize(ot),vt=o[ot+"Color"],k,ht=u.mark,tt,it=p.step,y,rt=!0,ut=e.tickmarkOffset,s=u.getPosition(h,et,ut,i),d=s.x,ft=s.y,ct=h&&d===e.pos+e.len||!h&&ft===e.pos?-1:1;r=t(r,1);this.isActive=!0;b&&(k=e.getPlotLinePath(et+ut,b*ct,i,!0),w===f&&(y={stroke:at,"stroke-width":b},st&&(y.dashstyle=st),a||(y.zIndex=1),i&&(y.opacity=0),u.gridLine=w=b?g.path(k).attr(y).add(e.gridGroup):null),!i&&w&&k&&w[u.isNew?"attr":"animate"]({d:k,opacity:r}));c&&(e.opposite&&(c[0]=-c[0]),tt=u.getMarkPath(d,ft,c[0],c[1]*ct,h,g),ht?ht.animate({d:tt,opacity:r}):u.mark=g.path(tt).attr({stroke:vt,"stroke-width":c[1],opacity:r}).add(e.axisGroup));v&&l(d)&&(v.xy=s=u.getLabelPosition(d,ft,v,h,p,ut,n,it),(!u.isFirst||u.isLast||t(o.showFirstLabel,1))&&(!u.isLast||u.isFirst||t(o.showLastLabel,1))?!h||e.isRadial||p.step||p.rotation||i||r===0||u.handleOverflow(s):rt=!1,it&&n%it&&(rt=!1),rt&&l(s.y)?(s.opacity=r,v[u.isNew?"attr":"animate"](s),u.isNew=!1):v.attr("y",-9999))},destroy:function(){dr(this,this.axis)}},s.PlotLineOrBand=function(n,t){this.axis=n;t&&(this.options=t,this.id=t.id)},s.PlotLineOrBand.prototype={render:function(){var u=this,f=u.axis,c=f.horiz,n=u.options,l=n.label,a=u.label,p=n.width,v=n.to,y=n.from,e=r(y)&&r(v),w=n.value,g=n.dashStyle,s=u.svgElem,i=[],nt,tt,b=n.color,it=t(n.zIndex,0),k=n.events,o={},rt=f.chart.renderer,d=f.log2lin;if(f.isLog&&(y=d(y),v=d(v),w=d(w)),p)i=f.getPlotLinePath(w,p),o={stroke:b,"stroke-width":p},g&&(o.dashstyle=g);else if(e)i=f.getPlotBandPath(y,v,n),b&&(o.fill=b),n.borderWidth&&(o.stroke=n.borderColor,o["stroke-width"]=n.borderWidth);else return;if(o.zIndex=it,s)i?(s.show(),s.animate({d:i})):(s.hide(),a&&(u.label=a=a.destroy()));else if(i&&i.length&&(u.svgElem=s=rt.path(i).attr(o).add(),k)){nt=function(n){s.on(n,function(t){k[n].apply(u,[t])})};for(tt in k)nt(tt)}return l&&r(l.text)&&i&&i.length&&f.width>0&&f.height>0&&!i.flat?(l=h({align:c&&e&&"center",x:c?!e&&4:10,verticalAlign:!c&&e&&"middle",y:c?e?16:10:e?6:-4,rotation:c&&!e&&90},l),this.renderLabel(l,i,e,it)):a&&a.hide(),u},renderLabel:function(n,t,i,r){var f=this,u=f.label,l=f.axis.chart.renderer,e,o,s,h,c;u||(e={align:n.textAlign||n.align,rotation:n.rotation},e.zIndex=r,f.label=u=l.text(n.text,0,0,n.useHTML).attr(e).css(n.style).add());o=[t[1],t[4],i?t[6]:t[1]];s=[t[2],t[5],i?t[7]:t[2]];h=pr(o);c=pr(s);u.align(n,!1,{x:h,y:c,width:ur(o)-h,height:ur(s)-c});u.show()},destroy:function(){gi(this.axis.plotLinesAndBands,this);delete this.axis;dr(this)}},no={getPlotBandPath:function(n,t){var i=this.getPlotLinePath(t,null,null,!0),r=this.getPlotLinePath(n,null,null,!0);return r&&i?(r.flat=r.toString()===i.toString(),r.push(i[4],i[5],i[1],i[2])):r=null,r},addPlotBand:function(n){return this.addPlotBandOrLine(n,"plotBands")},addPlotLine:function(n){return this.addPlotBandOrLine(n,"plotLines")},addPlotBandOrLine:function(n,t){var i=new s.PlotLineOrBand(this,n).render(),r=this.userOptions;return i&&(t&&(r[t]=r[t]||[],r[t].push(n)),this.plotLinesAndBands.push(i)),i},removePlotBandOrLine:function(n){for(var r=this.plotLinesAndBands,u=this.options,f=this.userOptions,t=r.length;t--;)r[t].id===n&&r[t].destroy();i([u.plotLines||[],f.plotLines||[],u.plotBands||[],f.plotBands||[]],function(i){for(t=i.length;t--;)i[t].id===n&&gi(i,i[t])})}},w=s.Axis=function(){this.init.apply(this,arguments)},w.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,gridLineColor:"#D8D8D8",labels:{enabled:!0,style:{color:"#606060",cursor:"default",fontSize:"11px"},x:0},lineColor:"#C0D0E0",lineWidth:1,minPadding:.01,maxPadding:.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#707070"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},lineWidth:0,maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return s.numberFormat(this.total,-1)},style:h(et.line.dataLabels.style,{color:"#000000"})}},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(n,i){var o=i.isX,u=this,h,c;u.chart=n;u.horiz=n.inverted?!o:o;u.isXAxis=o;u.coll=o?"xAxis":"yAxis";u.opposite=i.opposite;u.side=i.side||(u.horiz?u.opposite?0:2:u.opposite?1:3);u.setOptions(i);var e=this.options,s=e.type,l=s==="datetime";u.labelFormatter=e.labels.formatter||u.defaultLabelFormatter;u.userOptions=i;u.minPixelPadding=0;u.reversed=e.reversed;u.visible=e.visible!==!1;u.zoomEnabled=e.zoomEnabled!==!1;u.categories=e.categories||s==="category";u.names=u.names||[];u.isLog=s==="logarithmic";u.isDatetimeAxis=l;u.isLinked=r(e.linkedTo);u.ticks={};u.labelEdge=[];u.minorTicks={};u.plotLinesAndBands=[];u.alternateBands={};u.len=0;u.minRange=u.userMinRange=e.minRange||e.maxZoom;u.range=e.range;u.offset=e.offset||0;u.stacks={};u.oldStacks={};u.stacksTouched=0;u.max=null;u.min=null;u.crosshair=t(e.crosshair,yi(n.options.tooltip.crosshairs)[o?0:1],!1);c=u.options.events;hi(u,n.axes)===-1&&(o&&!this.isColorAxis?n.axes.splice(n.xAxis.length,0,u):n.axes.push(u),n[u.coll].push(u));u.series=u.series||[];n.inverted&&o&&u.reversed===f&&(u.reversed=!0);u.removePlotBand=u.removePlotBandOrLine;u.removePlotLine=u.removePlotBandOrLine;for(h in c)v(u,h,c[h]);u.isLog&&(u.val2lin=u.log2lin,u.lin2val=u.lin2log)},setOptions:function(n){this.options=h(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],h(it[this.coll],n))},defaultLabelFormatter:function(){var r=this.axis,n=this.value,l=r.categories,o=this.dateTimeLabelFormat,u=it.lang.numericSymbols,i=u&&u.length,e,t,h=r.options.labels.format,c=r.isLog?n:r.tickInterval;if(h)t=yr(h,this);else if(l)t=n;else if(o)t=ri(o,n);else if(i&&c>=1e3)while(i--&&t===f)e=Math.pow(1e3,i+1),c>=e&&n*10%e==0&&u[i]!==null&&(t=s.numberFormat(n/e,-1)+u[i]);return t===f&&(t=rt(n)>=1e4?s.numberFormat(n,-1):s.numberFormat(n,-1,f,"")),t},getSeriesExtremes:function(){var n=this,f=n.chart;n.hasVisibleSeries=!1;n.dataMin=n.dataMax=n.threshold=null;n.softThreshold=!n.isXAxis;n.buildStacks&&n.buildStacks();i(n.series,function(i){if(i.visible||!f.options.chart.ignoreHiddenSeries){var a=i.options,e,s=a.threshold,o,h;n.hasVisibleSeries=!0;n.isLog&&s<=0&&(s=null);n.isXAxis?(e=i.xData,e.length&&(o=pr(e),l(o)||o instanceof wt||(e=ir(e,function(n){return l(n)}),o=pr(e)),n.dataMin=c(t(n.dataMin,e[0]),o),n.dataMax=u(t(n.dataMax,e[0]),ur(e)))):(i.getExtremes(),h=i.dataMax,o=i.dataMin,r(o)&&r(h)&&(n.dataMin=c(t(n.dataMin,o),o),n.dataMax=u(t(n.dataMax,h),h)),r(s)&&(n.threshold=s),(!a.softThreshold||n.isLog)&&(n.softThreshold=!1))}})},translate:function(n,t,i,r,u,f){var e=this.linkedParent||this,o=1,c=0,s=r?e.oldTransA:e.transA,a=r?e.oldMin:e.min,h,v=e.minPixelPadding,y=(e.isOrdinal||e.isBroken||e.isLog&&u)&&e.lin2val;return s||(s=e.transA),i&&(o*=-1,c=e.len),e.reversed&&(o*=-1,c-=o*(e.sector||e.len)),t?(n=n*o+c,n-=v,h=n/s+a,y&&(h=e.lin2val(h))):(y&&(n=e.val2lin(n)),f==="between"&&(f=.5),h=o*(n-a)*s+c+o*v+(l(f)?s*f*e.pointRange:0)),h},toPixels:function(n,t){return this.translate(n,!1,!this.horiz,null,!0)+(t?0:this.pos)},toValue:function(n,t){return this.translate(n-(t?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(n,i,r,f,o){var s=this,h=s.chart,w=s.left,b=s.top,a,v,y,p,d=r&&h.oldChartHeight||h.chartHeight,it=r&&h.oldChartWidth||h.chartWidth,k,g=s.transB,nt=function(n,t,i){return(n<t||n>i)&&(f?n=c(u(t,n),i):k=!0),n};return o=t(o,s.translate(n,null,null,r)),a=y=e(o+g),v=p=e(d-o-g),l(o)?s.horiz?(v=b,p=d-s.bottom,a=y=nt(a,w,w+s.width)):(a=w,y=it-s.right,v=p=nt(v,b,b+s.height)):k=!0,k&&!f?null:h.renderer.crispLine([st,a,v,tt,y,p],i||1)},getLinearTickPositions:function(n,t,i){var r,u,e=ii(ot(t/n)*n),o=ii(tr(i/n)*n),f=[];if(t===i&&l(t))return[t];for(r=e;r<=o;){if(f.push(r),r=ii(r+n),r===u)break;u=r}return f},getMinorTickPositions:function(){var n=this,u=n.options,f=n.tickPositions,i=n.minorTickInterval,t=[],e,r,h=n.pointRangePadding||0,o=n.min-h,s=n.max+h,c=s-o,l;if(c&&c/i<n.len/3)if(n.isLog)for(l=f.length,r=1;r<l;r++)t=t.concat(n.getLogTickPositions(i,f[r-1],f[r],!0));else if(n.isDatetimeAxis&&u.minorTickInterval==="auto")t=t.concat(n.getTimeTicks(n.normalizeTimeTickInterval(i),o,s,u.startOfWeek));else for(e=o+(f[0]-o)%i;e<=s;e+=i)t.push(e);return t.length!==0&&n.trimTicks(t,u.startOnTick,u.endOnTick),t},adjustForMinRange:function(){var n=this,h=n.options,u=n.min,e=n.max,y,b=n.dataMax-n.dataMin>=n.minRange,a,l,p,v,k,s,w,o;n.isXAxis&&n.minRange===f&&!n.isLog&&(r(h.min)||r(h.max)?n.minRange=null:(i(n.series,function(n){for(v=n.xData,k=n.xIncrement?1:v.length-1,l=k;l>0;l--)p=v[l]-v[l-1],(a===f||p<a)&&(a=p)}),n.minRange=c(a*5,n.dataMax-n.dataMin)));e-u<n.minRange&&(o=n.minRange,y=(o-e+u)/2,s=[u-y,t(h.min,u-y)],b&&(s[2]=n.dataMin),u=ur(s),w=[u+o,t(h.max,u+o)],b&&(w[2]=n.dataMax),e=pr(w),e-u<o&&(s[0]=e-o,s[1]=t(h.min,e-o),u=ur(s)));n.min=u;n.max=e},getClosest:function(){var n;return i(this.series,function(t){var i=t.closestPointRange;!t.noSharedTooltip&&r(i)&&(n=r(n)?c(n,i):i)}),n},setAxisTranslation:function(n){var r=this,y=r.max-r.min,s=r.axisPointRange||0,o,f=0,e=0,h=r.linkedParent,l,p=!!r.categories,a=r.transA,v=r.isXAxis;(v||p||s)&&(h?(f=h.minPointOffset,e=h.pointRangePadding):(o=r.getClosest(),i(r.series,function(n){var i=p?1:v?t(n.options.pointRange,o,0):r.axisPointRange||0,h=n.options.pointPlacement;s=u(s,i);r.single||(f=u(f,rr(h)?0:i/2),e=u(e,h==="on"?0:i))})),l=r.ordinalSlope&&o?r.ordinalSlope/o:1,r.minPointOffset=f=f*l,r.pointRangePadding=e=e*l,r.pointRange=c(s,y),v&&(r.closestPointRange=o));n&&(r.oldTransA=a);r.translationSlope=r.transA=a=r.len/(y+e||1);r.transB=r.horiz?r.left:r.bottom;r.minPixelPadding=a*f},minFromRange:function(){return this.max-this.range},setTickInterval:function(n){var f=this,ot=f.chart,e=f.options,tt=f.isLog,it=f.log2lin,rt=f.isDatetimeAxis,st=f.isXAxis,y=f.isLinked,w=e.maxPadding,b=e.minPadding,p,h,s=e.tickInterval,k,d=e.tickPixelInterval,nt=f.categories,o=f.threshold,ut=f.softThreshold,ft,et,a,v;rt||nt||y||this.getTickAmount();a=t(f.userMin,e.min);v=t(f.userMax,e.max);y?(f.linkedParent=ot[f.coll][e.linkedTo],h=f.linkedParent.getExtremes(),f.min=t(h.min,h.dataMin),f.max=t(h.max,h.dataMax),e.type!==f.linkedParent.options.type&&ai(11,1)):(!ut&&r(o)&&(f.dataMin>=o?(ft=o,b=0):f.dataMax<=o&&(et=o,w=0)),f.min=t(a,ft,f.dataMin),f.max=t(v,et,f.dataMax));tt&&(!n&&c(f.min,t(f.dataMin,f.min))<=0&&ai(10,1),f.min=ii(it(f.min),15),f.max=ii(it(f.max),15));f.range&&r(f.max)&&(f.userMin=f.min=a=u(f.min,f.minFromRange()),f.userMax=v=f.max,f.range=null);g(f,"foundExtremes");f.beforePadding&&f.beforePadding();f.adjustForMinRange();nt||f.axisPointRange||f.usePercentage||y||!r(f.min)||!r(f.max)||(p=f.max-f.min,p&&(!r(a)&&b&&(f.min-=p*b),!r(v)&&w&&(f.max+=p*w)));l(e.floor)&&(f.min=u(f.min,e.floor));l(e.ceiling)&&(f.max=c(f.max,e.ceiling));ut&&r(f.dataMin)&&(o=o||0,!r(a)&&f.min<o&&f.dataMin>=o?f.min=o:!r(v)&&f.max>o&&f.dataMax<=o&&(f.max=o));f.tickInterval=f.min===f.max||f.min===undefined||f.max===undefined?1:y&&!s&&d===f.linkedParent.options.tickPixelInterval?s=f.linkedParent.tickInterval:t(s,this.tickAmount?(f.max-f.min)/u(this.tickAmount-1,1):undefined,nt?1:(f.max-f.min)*d/u(f.len,d));st&&!n&&i(f.series,function(n){n.processData(f.min!==f.oldMin||f.max!==f.oldMax)});f.setAxisTranslation(!0);f.beforeSetTickPositions&&f.beforeSetTickPositions();f.postProcessTickInterval&&(f.tickInterval=f.postProcessTickInterval(f.tickInterval));f.pointRange&&!s&&(f.tickInterval=u(f.pointRange,f.tickInterval));k=t(e.minTickInterval,f.isDatetimeAxis&&f.closestPointRange);!s&&f.tickInterval<k&&(f.tickInterval=k);rt||tt||s||(f.tickInterval=ee(f.tickInterval,null,fe(f.tickInterval),t(e.allowDecimals,!(f.tickInterval>.5&&f.tickInterval<5&&f.max>1e3&&f.max<9999)),!!this.tickAmount));!this.tickAmount&&this.len&&(f.tickInterval=f.unsquish());this.setTickPositions()},setTickPositions:function(){var t=this.options,n,u=t.tickPositions,i=t.tickPositioner,e=t.startOnTick,o=t.endOnTick,f;this.tickmarkOffset=this.categories&&t.tickmarkPlacement==="between"&&this.tickInterval===1?.5:0;this.minorTickInterval=t.minorTickInterval==="auto"&&this.tickInterval?this.tickInterval/5:t.minorTickInterval;this.tickPositions=n=u&&u.slice();n||(n=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),n.length>this.len&&(n=[n[0],n.pop()]),this.tickPositions=n,i&&(i=i.apply(this,[this.min,this.max]),i&&(this.tickPositions=n=i)));this.isLinked||(this.trimTicks(n,e,o),this.min===this.max&&r(this.min)&&!this.tickAmount&&(f=!0,this.min-=.5,this.max+=.5),this.single=f,u||i||this.adjustTickAmount())},trimTicks:function(n,t,i){var u=n[0],f=n[n.length-1],e=this.minPointOffset||0;if(t)this.min=u;else while(this.min-e>n[0])n.shift();if(i)this.max=f;else while(this.max+e<n[n.length-1])n.pop();n.length===0&&r(u)&&n.push((f+u)/2)},alignToOthers:function(){var n={},t,r=this.options;return this.chart.options.chart.alignTicks!==!1&&r.alignTicks!==!1&&i(this.chart[this.coll],function(i){var r=i.options,f=i.horiz,u=[f?r.left:r.top,r.width,r.height,r.pane].join(",");i.series.length&&(n[u]?t=!0:n[u]=1)}),t},getTickAmount:function(){var t=this.options,n=t.tickAmount,i=t.tickPixelInterval;!r(t.tickInterval)&&this.len<i&&!this.isRadial&&!this.isLog&&t.startOnTick&&t.endOnTick&&(n=2);!n&&this.alignToOthers()&&(n=tr(this.len/i)+1);n<4&&(this.finalTickAmt=n,n=5);this.tickAmount=n},adjustTickAmount:function(){var s=this.tickInterval,n=this.tickPositions,i=this.tickAmount,u=this.finalTickAmt,e=n&&n.length,t,o;if(e<i){while(n.length<i)n.push(ii(n[n.length-1]+s));this.transA*=(e-1)/(i-1);this.max=n[n.length-1]}else e>i&&(this.tickInterval*=2,this.setTickPositions());if(r(u)){for(t=o=n.length;t--;)(u===3&&t%2==1||u<=2&&t>0&&t<o-1)&&n.splice(t,1);this.finalTickAmt=f}},setScale:function(){var n=this,r,t;n.oldMin=n.min;n.oldMax=n.max;n.oldAxisLength=n.len;n.setAxisSize();t=n.len!==n.oldAxisLength;i(n.series,function(n){(n.isDirtyData||n.isDirty||n.xAxis.isDirty)&&(r=!0)});t||r||n.isLinked||n.forceRedraw||n.userMin!==n.oldUserMin||n.userMax!==n.oldUserMax||n.alignToOthers()?(n.resetStacks&&n.resetStacks(),n.forceRedraw=!1,n.getSeriesExtremes(),n.setTickInterval(),n.oldUserMin=n.userMin,n.oldUserMax=n.userMax,n.isDirty||(n.isDirty=t||n.min!==n.oldMin||n.max!==n.oldMax)):n.cleanStacks&&n.cleanStacks()},setExtremes:function(n,r,u,f,e){var s=this,h=s.chart;u=t(u,!0);i(s.series,function(n){delete n.kdTree});e=o(e,{min:n,max:r});g(s,"setExtremes",e,function(){s.userMin=n;s.userMax=r;s.eventArgs=e;u&&h.redraw(f)})},zoom:function(n,i){var e=this.dataMin,o=this.dataMax,s=this.options,h=c(e,t(s.min,e)),l=u(o,t(s.max,o));return this.allowZoomOutside||(r(e)&&n<=h&&(n=h),r(o)&&i>=l&&(i=l)),this.displayBtn=n!==f||i!==f,this.setExtremes(n,i,!1,f,{trigger:"zoom"}),!0},setAxisSize:function(){var n=this.chart,i=this.options,s=i.offsetLeft||0,l=i.offsetRight||0,h=this.horiz,e=t(i.width,n.plotWidth-s+l),r=t(i.height,n.plotHeight),f=t(i.top,n.plotTop),o=t(i.left,n.plotLeft+s),c=/%$/;c.test(r)&&(r=Math.round(parseFloat(r)/100*n.plotHeight));c.test(f)&&(f=Math.round(parseFloat(f)/100*n.plotHeight+n.plotTop));this.left=o;this.top=f;this.width=e;this.height=r;this.bottom=n.chartHeight-r-f;this.right=n.chartWidth-e-o;this.len=u(h?e:r,0);this.pos=h?o:f},getExtremes:function(){var n=this,t=n.isLog,i=n.lin2log;return{min:t?ii(i(n.min)):n.min,max:t?ii(i(n.max)):n.max,dataMin:n.dataMin,dataMax:n.dataMax,userMin:n.userMin,userMax:n.userMax}},getThreshold:function(n){var t=this,u=t.isLog,f=t.lin2log,r=u?f(t.min):t.min,i=u?f(t.max):t.max;return n===null?n=i<0?i:r:r>n?n=r:i<n&&(n=i),t.translate(n,0,1,0,1)},autoLabelAlign:function(n){var i=(t(n,0)-this.side*90+720)%360;return i>15&&i<165?"right":i>195&&i<345?"left":"center"},tickSize:function(n){var r=this.options,i=r[n+"Length"],u=t(r[n+"Width"],n==="tick"&&this.isXAxis?1:0);if(u&&i)return r[n+"Position"]==="inside"&&(i=-i),[i,u]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style.fontSize,this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var n=this.options.labels,y=this.horiz,e=this.tickInterval,o=e,h=this.len/(((this.categories?1:0)+this.max-this.min)/e),c,u=n.rotation,l=this.labelMetrics(),s,a=Number.MAX_VALUE,f,v=function(n){var t=n/(h||1);return t=t>1?tr(t):1,t*e};return y?(f=!n.staggerLines&&!n.step&&(r(u)?[u]:h<t(n.autoRotationLimit,80)&&n.autoRotation),f&&i(f,function(n){var t;(n===u||n&&n>=-90&&n<=90)&&(s=v(rt(l.h/gt(ei*n))),t=s+rt(n/360),t<a&&(a=t,c=n,o=s))})):n.step||(o=v(l.h)),this.autoRotation=f,this.labelRotation=t(c,u),o},getSlotWidth:function(){var n=this.chart,t=this.horiz,i=this.options.labels,u=Math.max(this.tickPositions.length-(this.categories?0:1),1),r=n.margin[3];return t&&(i.step||0)<2&&!i.rotation&&(this.staggerLines||1)*n.plotWidth/u||!t&&(r&&r-n.spacing[3]||n.chartWidth*.33)},renderUnsquish:function(){var c=this.chart,d=c.renderer,f=this.tickPositions,l=this.ticks,o=this.options.labels,g=this.horiz,a=this.getSlotWidth(),w=u(1,e(a-2*(o.padding||5))),t={},v=this.labelMetrics(),k=o.style.textOverflow,r,s=0,n,y,p;if(rr(o.rotation)||(t.rotation=o.rotation||0),this.autoRotation)i(f,function(n){n=l[n];n&&n.labelLength>s&&(s=n.labelLength)}),s>w&&s>v.h?t.rotation=this.labelRotation:this.labelRotation=0;else if(a&&(r={width:w+b},!k))for(r.textOverflow="clip",y=f.length;!g&&y--;)p=f[y],n=l[p].label,n&&(n.styles.textOverflow==="ellipsis"?n.css({textOverflow:"clip"}):l[p].labelLength>a&&n.css({width:a+"px"}),n.getBBox().height>this.len/f.length-(v.h-v.f)&&(n.specCss={textOverflow:"ellipsis"}));t.rotation&&(r={width:(s>c.chartHeight*.5?c.chartHeight*.33:c.chartHeight)+b},k||(r.textOverflow="ellipsis"));this.labelAlign=o.align||this.autoLabelAlign(this.labelRotation);this.labelAlign&&(t.align=this.labelAlign);i(f,function(n){var u=l[n],i=u&&u.label;i&&(i.attr(t),r&&i.css(h(r,i.specCss)),delete i.specCss,u.rotation=t.rotation)});this.tickRotCorr=d.rotCorr(v.b,this.labelRotation||0,this.side!==0)},hasData:function(){return this.hasVisibleSeries||r(this.min)&&r(this.max)&&!!this.tickPositions},getOffset:function(){var n=this,a=n.chart,v=a.renderer,o=n.options,k=n.tickPositions,s=n.ticks,y=n.horiz,f=n.side,rt=a.inverted?[1,0,3,2][f]:f,p,d,ut=0,g,ft=0,e=o.title,c=o.labels,h=0,l,et=n.opposite,nt=a.axisOffset,st=a.clipOffset,ct,w=[-1,1,1,-1][f],tt,b,it=n.axisParent,lt,at=this.tickSize("tick");if(p=n.hasData(),n.showAxis=d=p||t(o.showEmpty,!0),n.staggerLines=n.horiz&&c.staggerLines,n.axisGroup||(n.gridGroup=v.g("grid").attr({zIndex:o.gridZIndex||1}).add(it),n.axisGroup=v.g("axis").attr({zIndex:o.zIndex||2}).add(it),n.labelGroup=v.g("axis-labels").attr({zIndex:c.zIndex||7}).addClass(ht+n.coll.toLowerCase()+"-labels").add(it)),p||n.isLinked)i(k,function(t){s[t]?s[t].addLabel():s[t]=new lu(n,t)}),n.renderUnsquish(),c.reserveSpace!==!1&&(f===0||f===2||{1:"left",3:"right"}[f]===n.labelAlign||n.labelAlign==="center")&&i(k,function(n){h=u(s[n].getLabelSize(),h)}),n.staggerLines&&(h*=n.staggerLines,n.labelOffset=h*(n.opposite?-1:1));else for(tt in s)s[tt].destroy(),delete s[tt];e&&e.text&&e.enabled!==!1&&(n.axisTitle||(b=e.textAlign,b||(b=(y?{low:"left",middle:"center",high:"right"}:{low:et?"right":"left",middle:"center",high:et?"left":"right"})[e.align]),n.axisTitle=v.text(e.text,0,0,e.useHTML).attr({zIndex:7,rotation:e.rotation||0,align:b}).addClass(ht+this.coll.toLowerCase()+"-title").css(e.style).add(n.axisGroup),n.axisTitle.isNew=!0),d&&(ut=n.axisTitle.getBBox()[y?"height":"width"],g=e.offset,ft=r(g)?0:t(e.margin,y?5:10)),n.axisTitle[d?"show":"hide"](!0));n.offset=w*t(o.offset,nt[f]);n.tickRotCorr=n.tickRotCorr||{x:0,y:0};lt=f===0?-n.labelMetrics().h:f===2?n.tickRotCorr.y:0;l=Math.abs(h)+ft;h&&(l-=lt,l+=w*(y?t(c.y,n.tickRotCorr.y+w*8):c.x));n.axisTitleMargin=t(g,l);nt[f]=u(nt[f],n.axisTitleMargin+ut+w*n.offset,l,p&&k.length&&at?at[0]:0);ct=o.offset?0:ot(o.lineWidth/2)*2;st[rt]=u(st[rt],ct)},getLinePath:function(n){var t=this.chart,r=this.opposite,u=this.offset,i=this.horiz,f=this.left+(r?this.width:0)+u,e=t.chartHeight-this.bottom-(r?this.height:0)+u;return r&&(n*=-1),t.renderer.crispLine([st,i?this.left:f,i?e:this.top,tt,i?t.chartWidth-this.right:f,i?e:t.chartHeight-this.bottom],n)},getTitlePosition:function(){var n=this.horiz,f=this.left,e=this.top,i=this.len,t=this.options.title,r=n?f:e,u=this.opposite,o=this.offset,s=t.x||0,h=t.y||0,a=y(t.style.fontSize||12),c={low:r+(n?0:i),middle:r+i/2,high:r+(n?i:0)}[t.align],l=(n?e+this.height:f)+(n?1:-1)*(u?-1:1)*this.axisTitleMargin+(this.side===2?a:0);return{x:n?c+s:l+(u?this.width:0)+o+s,y:n?l+h-(u?this.height:0)+o:c+h}},render:function(){var n=this,c=n.chart,b=c.renderer,e=n.options,k=n.isLog,d=n.lin2log,g=n.isLinked,h=n.tickPositions,a=n.axisTitle,t=n.ticks,u=n.minorTicks,r=n.alternateBands,nt=e.stackLabels,tt=e.alternateGridColor,o=n.tickmarkOffset,y=e.lineWidth,p,ut=c.hasRendered,it=ut&&l(n.oldMin),rt=n.showAxis,ft=gu(b.globalAnimation),w,v;n.labelEdge.length=0;n.overlap=!1;i([t,u,r],function(n){var t;for(t in n)n[t].isActive=!1});(n.hasData()||g)&&(n.minorTickInterval&&!n.categories&&i(n.getMinorTickPositions(),function(t){u[t]||(u[t]=new lu(n,t,"minor"));it&&u[t].isNew&&u[t].render(null,!0);u[t].render(null,!1,1)}),h.length&&(i(h,function(i,r){(!g||i>=n.min&&i<=n.max)&&(t[i]||(t[i]=new lu(n,i)),it&&t[i].isNew&&t[i].render(r,!0,.1),t[i].render(r))}),o&&(n.min===0||n.single)&&(t[-1]||(t[-1]=new lu(n,-1,null,!0)),t[-1].render(-1))),tt&&i(h,function(t,i){v=h[i+1]!==f?h[i+1]+o:n.max-o;i%2==0&&t<n.max&&v<=n.max+(c.polar?-o:o)&&(r[t]||(r[t]=new s.PlotLineOrBand(n)),w=t+o,r[t].options={from:k?d(w):w,to:k?d(v):v,color:tt},r[t].render(),r[t].isActive=!0)}),n._addedPlotLB||(i((e.plotLines||[]).concat(e.plotBands||[]),function(t){n.addPlotBandOrLine(t)}),n._addedPlotLB=!0));i([t,u,r],function(n){var t,i,u=[],f=ft.duration,e=function(){for(i=u.length;i--;)n[u[i]]&&!n[u[i]].isActive&&(n[u[i]].destroy(),delete n[u[i]])};for(t in n)n[t].isActive||(n[t].render(t,!1,0),n[t].isActive=!1,u.push(t));su(e,n===r||!c.hasRendered||!f?0:f)});y&&(p=n.getLinePath(y),n.axisLine?n.axisLine.animate({d:p}):n.axisLine=b.path(p).attr({stroke:e.lineColor,"stroke-width":y,zIndex:7}).add(n.axisGroup),n.axisLine[rt?"show":"hide"](!0));a&&rt&&(a[a.isNew?"attr":"animate"](n.getTitlePosition()),a.isNew=!1);nt&&nt.enabled&&n.renderStackTotals();n.isDirty=!1},redraw:function(){this.visible&&(this.render(),i(this.plotLinesAndBands,function(n){n.render()}));i(this.series,function(n){n.isDirty=!0})},destroy:function(n){var t=this,r=t.stacks,u,e=t.plotLinesAndBands,f;n||ft(t);for(u in r)dr(r[u]),r[u]=null;for(i([t.ticks,t.minorTicks,t.alternateBands],function(n){dr(n)}),f=e.length;f--;)e[f].destroy();i(["stackTotalGroup","axisLine","axisTitle","axisGroup","cross","gridGroup","labelGroup"],function(n){t[n]&&(t[n]=t[n].destroy())});this.cross&&this.cross.destroy()},drawCrosshair:function(n,i){var f,u=this.crosshair,e,o,s,h;if(this.crosshair&&(r(i)||!t(u.snap,!0))!==!1){if(t(u.snap,!0)?r(i)&&(e=this.isXAxis?i.plotX:this.len-i.plotY):e=this.horiz?n.chartX-this.pos:this.len-n.chartY+this.pos,f=this.isRadial?this.getPlotLinePath(this.isXAxis?i.x:t(i.stackY,i.y))||null:this.getPlotLinePath(null,null,null,null,e)||null,f===null){this.hideCrosshair();return}s=this.categories&&!this.isRadial;h=t(u.width,s?this.transA:1);this.cross?this.cross.attr({d:f,visibility:"visible","stroke-width":h}):(o={"pointer-events":"none","stroke-width":h,stroke:u.color||(s?"rgba(155,200,255,0.2)":"#C0C0C0"),zIndex:t(u.zIndex,2)},u.dashStyle&&(o.dashstyle=u.dashStyle),this.cross=this.chart.renderer.path(f).attr(o).add())}else this.hideCrosshair()},hideCrosshair:function(){this.cross&&this.cross.hide()}},o(w.prototype,no),w.prototype.getTimeTicks=function(n,u,f,e){var v=[],y,p={},w=it.global.useUTC,l,s=new wt(u-du(u)),h=n.unitRange,c=n.count;if(r(u)){s[to](h>=d.second?0:c*ot(s.getMilliseconds()/c));h>=d.second&&s[io](h>=d.minute?0:c*ot(s.getSeconds()/c));h>=d.minute&&s[ro](h>=d.hour?0:c*ot(s[df]()/c));h>=d.hour&&s[uo](h>=d.day?0:c*ot(s[gf]()/c));h>=d.day&&s[lf](h>=d.month?1:c*ot(s[eu]()/c));h>=d.month&&(s[te](h>=d.year?0:c*ot(s[bu]()/c)),l=s[ku]());h>=d.year&&(l-=l%c,s[ie](l));h===d.week&&s[lf](s[eu]()-s[ne]()+t(e,1));y=1;(kf||wu)&&(s=s.getTime(),s=new wt(s+du(s)));l=s[ku]();for(var a=s.getTime(),b=s[bu](),k=s[eu](),g=!w||!!wu,nt=(d.day+(w?du(s):s.getTimezoneOffset()*6e4))%d.day;a<f;)v.push(a),h===d.year?a=cf(l+y*c,0):h===d.month?a=cf(l,b+y*c):g&&(h===d.day||h===d.week)?a=cf(l,b,k+y*c*(h===d.day?1:7)):a+=h*c,y++;v.push(a);i(ir(v,function(n){return h<=d.hour&&n%d.day===nt}),function(n){p[n]="day"})}return v.info=o(n,{higherRanks:p,totalRange:h*c}),v},w.prototype.normalizeTimeTickInterval=function(n,t){for(var f=t||[["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]],i=f[f.length-1],r=d[i[0]],o=i[1],s,h,e=0;e<f.length;e++)if(i=f[e],r=d[i[0]],o=i[1],f[e+1]&&(h=(r*o[o.length-1]+d[f[e+1][0]])/2,n<=h))break;return r===d.year&&n<5*r&&(o=[1,2,5]),s=ee(n/r,o,i[0]==="year"?u(fe(n/r),1):1),{unitRange:r,count:s,unitName:i[0]}},w.prototype.getLogTickPositions=function(n,i,r,u){var o=this,w=o.options,b=o.len,a=o.lin2log,k=o.log2lin,h=[],d,v,c,l,g,y,s,p;if(u||(o._minorAutoInterval=null),n>=.5)n=e(n),h=o.getLinearTickPositions(n,i,r);else if(n>=.08)for(d=ot(i),v=n>.3?[1,2,4]:n>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],c=d;c<r+1&&!p;c++)for(g=v.length,l=0;l<g&&!p;l++)y=k(a(c)*v[l]),y>i&&(!u||s<=r)&&s!==f&&h.push(s),s>r&&(p=!0),s=y;else{var nt=a(i),tt=a(r),it=w[u?"minorTickInterval":"tickInterval"],rt=it==="auto"?null:it,ut=w.tickPixelInterval/(u?5:1),ft=u?b/o.tickPositions.length:b;n=t(rt,o._minorAutoInterval,(tt-nt)*ut/(ft||1));n=ee(n,null,fe(n));h=ci(o.getLinearTickPositions(n,nt,tt),k);u||(o._minorAutoInterval=n/5)}return u||(o.tickInterval=n),h},w.prototype.log2lin=function(n){return ct.log(n)/ct.LN10},w.prototype.lin2log=function(n){return ct.pow(10,n)},vf=s.Tooltip=function(){this.init.apply(this,arguments)},vf.prototype={init:function(n,t){var r=t.borderWidth,i=t.style,u=y(i.padding);this.chart=n;this.options=t;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.label=n.renderer.label("",0,0,t.shape||"callout",null,null,t.useHTML,null,"tooltip").attr({padding:u,fill:t.backgroundColor,"stroke-width":r,r:t.borderRadius,zIndex:8}).css(i).css({padding:0}).add().attr({y:-9999});oi||this.label.shadow(t.shadow);this.shared=t.shared},destroy:function(){this.label&&(this.label=this.label.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(n,t,i,r){var u=this,e=u.now,s=u.options.animation!==!1&&!u.isHidden&&(rt(n-e.x)>1||rt(t-e.y)>1),h=u.followPointer||u.len>1;o(e,{x:s?(2*e.x+n)/3:n,y:s?(e.y+t)/2:t,anchorX:h?f:s?(2*e.anchorX+i)/3:i,anchorY:h?f:s?(e.anchorY+r)/2:r});u.label.attr(e);s&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){u&&u.move(n,t,i,r)},32))},hide:function(n){var i=this;clearTimeout(this.hideTimer);n=t(n,this.options.hideDelay,500);this.isHidden||(this.hideTimer=su(function(){i.label[n?"fadeOut":"hide"]();i.isHidden=!0},n))},getAnchor:function(n,t){var u,r=this.chart,o=r.inverted,c=r.plotTop,v=r.plotLeft,s=0,h=0,l,a;return n=yi(n),u=n[0].tooltipPos,this.followPointer&&t&&(t.chartX===f&&(t=r.pointer.normalize(t)),u=[t.chartX-r.plotLeft,t.chartY-c]),u||(i(n,function(n){l=n.series.yAxis;a=n.series.xAxis;s+=n.plotX+(!o&&a?a.left-v:0);h+=(n.plotLow?(n.plotLow+n.plotHigh)/2:n.plotY)+(!o&&l?l.top-c:0)}),s/=n.length,h/=n.length,u=[o?r.plotWidth-h:s,this.shared&&!o&&n.length>1&&t?t.chartY-c:o?r.plotHeight-s:h]),ci(u,e)},getPosition:function(n,i,r){var f=this.chart,o=this.distance,e={},s=r.h||0,h,l=["y",f.chartHeight,i,r.plotY+f.plotTop,f.plotTop,f.plotTop+f.plotHeight],a=["x",f.chartWidth,n,r.plotX+f.plotLeft,f.plotLeft,f.plotLeft+f.plotWidth],p=!this.followPointer&&t(r.ttBelow,!f.inverted==!!r.negative),w=function(n,t,i,r,f,h){var v=i<r-o,y=r+o+i<t,l=r-o-i,a=r+o;if(p&&y)e[n]=a;else if(!p&&v)e[n]=l;else if(v)e[n]=c(h-i,l-s<0?l:l-s);else if(y)e[n]=u(f,a+s+i>t?a:a+s);else return!1},b=function(n,t,i,r){var u;return r<o||r>t-o?u=!1:e[n]=r<i/2?1:r>t-i/2?t-i-2:r-i/2,u},v=function(n){var t=l;l=a;a=t;h=n},y=function(){w.apply(0,l)!==!1?b.apply(0,a)!==!1||h||(v(!0),y()):h?e.x=e.y=0:(v(!0),y())};return(f.inverted||this.len>1)&&v(),y(),e},defaultFormatter:function(n){var i=this.points||yi(this),t;return t=[n.tooltipFooterHeaderFormatter(i[0])],t=t.concat(n.bodyFormatter(i)),t.push(n.tooltipFooterHeaderFormatter(i[0],!0)),t.join("")},refresh:function(n,r){var u=this,f=u.chart,e=u.label,p=u.options,c,l,o,s={},h,a=[],b=p.formatter||u.defaultFormatter,w=f.hoverPoints,v,k=u.shared,y;clearTimeout(this.hideTimer);u.followPointer=yi(n)[0].series.tooltipOptions.followPointer;o=u.getAnchor(n,r);c=o[0];l=o[1];!k||n.series&&n.series.noSharedTooltip?s=n.getLabelConfig():(f.hoverPoints=n,w&&i(w,function(n){n.setState()}),i(n,function(n){n.setState(di);a.push(n.getLabelConfig())}),s={x:n[0].category,y:n[0].y},s.points=a,this.len=a.length,n=n[0]);h=b.call(s,u);y=n.series;this.distance=t(y.tooltipOptions.distance,16);h===!1?this.hide():(u.isHidden&&(br(e),e.attr("opacity",1).show()),e.attr({text:h}),v=p.borderColor||n.color||y.color||"#606060",e.attr({stroke:v}),u.updatePosition({plotX:c,plotY:l,negative:n.negative,ttBelow:n.ttBelow,h:o[2]||0}),this.isHidden=!1);g(f,"tooltipRefresh",{text:h,x:c+f.plotLeft,y:l+f.plotTop,borderColor:v})},updatePosition:function(n){var t=this.chart,i=this.label,r=(this.options.positioner||this.getPosition).call(this,i.width,i.height,n);this.move(e(r.x),e(r.y||0),n.plotX+t.plotLeft,n.plotY+t.plotTop)},getXDateFormat:function(n,t,i){var u,f=t.dateTimeLabelFormats,e=i&&i.closestPointRange,r,h="01-01 00:00:00.000",o={millisecond:15,second:12,minute:9,hour:6,day:3},s,c="millisecond";if(e){s=ri("%m-%d %H:%M:%S.%L",n.x);for(r in d){if(e===d.week&&+ri("%w",n.x)===i.options.startOfWeek&&s.substr(6)===h.substr(6)){r="week";break}if(d[r]>e){r=c;break}if(o[r]&&s.substr(o[r])!==h.substr(o[r]))break;r!=="week"&&(c=r)}r&&(u=f[r])}else u=f.day;return u||f.year},tooltipFooterHeaderFormatter:function(n,t){var s=t?"footer":"header",r=n.series,u=r.tooltipOptions,i=u.xDateFormat,f=r.xAxis,o=f&&f.options.type==="datetime"&&l(n.key),e=u[s+"Format"];return o&&!i&&(i=this.getXDateFormat(n,u,f)),o&&i&&(e=e.replace("{point.key}","{point.key:"+i+"}")),yr(e,{point:n,series:r})},bodyFormatter:function(n){return ci(n,function(n){var t=n.series.tooltipOptions;return(t.pointFormatter||n.point.tooltipFormatter).call(n.point,t.pointFormat)})}},fu=a&&a.documentElement.ontouchstart!==f,gr=s.Pointer=function(n,t){this.init(n,t)},gr.prototype={init:function(n,i){var e=i.chart,o=e.events,h=oi?"":e.zoomType,r=n.inverted,u,f;this.options=i;this.chart=n;this.zoomX=u=/x/.test(h);this.zoomY=f=/y/.test(h);this.zoomHor=u&&!r||f&&r;this.zoomVert=f&&!r||u&&r;this.hasZoom=u||f;this.runChartClick=o&&!!o.click;this.pinchDown=[];this.lastValidTouch={};s.Tooltip&&i.tooltip.enabled&&(n.tooltip=new vf(n,i.tooltip),this.followTouchMove=t(i.tooltip.followTouchMove,!0));this.setDOMEvents()},normalize:function(t,i){var s,h,r;return t=t||n.event,t.target||(t.target=t.srcElement),r=t.touches?t.touches.length?t.touches.item(0):t.changedTouches[0]:t,i||(this.chartPosition=i=re(this.chart.container)),r.pageX===f?(s=u(t.x,t.clientX-i.left),h=t.y):(s=r.pageX-i.left,h=r.pageY-i.top),o(t,{chartX:e(s),chartY:e(h)})},getCoordinates:function(n){var t={xAxis:[],yAxis:[]};return i(this.chart.axes,function(i){t[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(n[i.horiz?"chartX":"chartY"])})}),t},runPointActions:function(n){var y=this,h=y.chart,c=h.series,u=h.tooltip,s=u?u.shared:!1,g,p=h.hoverPoint,f=h.hoverSeries,e,w=[Number.MAX_VALUE,Number.MAX_VALUE],b,k,nt,tt,o=[],r=[],d;if(!s&&!f)for(e=0;e<c.length;e++)(c[e].directTouch||!c[e].options.stickyTracking)&&(c=[]);if(nt=f&&(s?f.noSharedTooltip:f.directTouch),nt&&p?r=[p]:(i(c,function(i){k=i.noSharedTooltip&&s;tt=!s&&i.directTouch;i.visible&&!k&&!tt&&t(i.options.enableMouseTracking,!0)&&(d=i.searchPoint(n,!k&&i.kdDimensions===1),d&&o.push(d))}),i(o,function(n){n&&i(["dist","distX"],function(t,i){if(l(n[t])){var u=n[t]<w[i],f=n[t]===w[i]&&n.series.group.zIndex>=r[i].series.group.zIndex;(u||f)&&(w[i]=n[t],r[i]=n)}})})),s)for(e=o.length;e--;)(o[e].clientX!==r[1].clientX||o[e].series.noSharedTooltip)&&o.splice(e,1);if(r[0]&&(r[0]!==this.prevKDPoint||u&&u.isHidden))if(s&&!r[0].series.noSharedTooltip)o.length&&u&&u.refresh(o,n),i(o,function(t){t.onMouseOver(n,t!==(f&&f.directTouch&&p||r[0]))}),this.prevKDPoint=r[1];else{if(u&&u.refresh(r[0],n),!f||!f.directTouch)r[0].onMouseOver(n);this.prevKDPoint=r[0]}else g=f&&f.tooltipOptions.followPointer,u&&g&&!u.isHidden&&(b=u.getAnchor([{}],n),u.updatePosition({plotX:b[0],plotY:b[1]}));y._onDocumentMouseMove||(y._onDocumentMouseMove=function(n){if(lt[fi])lt[fi].pointer.onDocumentMouseMove(n)},v(a,"mousemove",y._onDocumentMouseMove));i(s?o:[t(p,r[1])],function(t){i(h.axes,function(i){t&&t.series[i.coll]!==i||i.drawCrosshair(n,t)})})},reset:function(n,r){var o=this,u=o.chart,c=u.hoverSeries,f=u.hoverPoint,h=u.hoverPoints,e=u.tooltip,s=e&&e.shared?h:f;n&&s&&i(yi(s),function(t){t.series.isCartesian&&t.plotX===undefined&&(n=!1)});n?e&&s&&(e.refresh(s),f&&(f.setState(f.state,!0),i(u.axes,function(n){t(n.crosshair&&n.crosshair.snap,!0)?n.drawCrosshair(null,f):n.hideCrosshair()}))):(f&&f.onMouseOut(),h&&i(h,function(n){n.setState()}),c&&c.onMouseOut(),e&&e.hide(r),o._onDocumentMouseMove&&(ft(a,"mousemove",o._onDocumentMouseMove),o._onDocumentMouseMove=null),i(u.axes,function(n){n.hideCrosshair()}),o.hoverX=u.hoverPoints=u.hoverPoint=null)},scaleGroups:function(n,t){var r=this.chart,u;i(r.series,function(i){u=n||i.getPlotBox();i.xAxis&&i.xAxis.zoomEnabled&&(i.group.attr(u),i.markerGroup&&(i.markerGroup.attr(u),i.markerGroup.clip(t?r.clipRect:null)),i.dataLabelsGroup&&i.dataLabelsGroup.attr(u))});r.clipRect.attr(t||r.clipBox)},dragStart:function(n){var t=this.chart;t.mouseIsDown=n.type;t.cancelClick=!1;t.mouseDownX=this.mouseDownX=n.chartX;t.mouseDownY=this.mouseDownY=n.chartY},drag:function(n){var t=this.chart,s=t.options.chart,u=n.chartX,f=n.chartY,y=this.zoomHor,p=this.zoomVert,e=t.plotLeft,o=t.plotTop,l=t.plotWidth,a=t.plotHeight,v,r,i=this.selectionMarker,h=this.mouseDownX,c=this.mouseDownY,w=s.panKey&&n[s.panKey+"Key"];i&&i.touch||(u<e?u=e:u>e+l&&(u=e+l),f<o?f=o:f>o+a&&(f=o+a),this.hasDragged=Math.sqrt(Math.pow(h-u,2)+Math.pow(c-f,2)),this.hasDragged>10&&(v=t.isInsidePlot(h-e,c-o),t.hasCartesianSeries&&(this.zoomX||this.zoomY)&&v&&!w&&(i||(this.selectionMarker=i=t.renderer.rect(e,o,y?1:l,p?1:a,0).attr({fill:s.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add())),i&&y&&(r=u-h,i.attr({width:rt(r),x:(r>0?0:r)+h})),i&&p&&(r=f-c,i.attr({height:rt(r),y:(r>0?0:r)+c})),v&&!i&&s.panning&&t.pan(n,s.panning)))},drop:function(n){var v=this,f=this.chart,e=this.hasPinched;if(this.selectionMarker){var s={originalEvent:n,xAxis:[],yAxis:[]},t=this.selectionMarker,h=t.attr?t.attr("x"):t.x,l=t.attr?t.attr("y"):t.y,y=t.attr?t.attr("width"):t.width,p=t.attr?t.attr("height"):t.height,a;(this.hasDragged||e)&&(i(f.axes,function(t){if(t.zoomEnabled&&r(t.min)&&(e||v[{xAxis:"zoomX",yAxis:"zoomY"}[t.coll]])){var i=t.horiz,f=n.type==="touchend"?t.minPixelPadding:0,o=t.toValue((i?h:l)+f),w=t.toValue((i?h+y:l+p)-f);s[t.coll].push({axis:t,min:c(o,w),max:u(o,w)});a=!0}}),a&&g(f,"selection",s,function(n){f.zoom(o(n,e?{animation:!1}:null))}));this.selectionMarker=this.selectionMarker.destroy();e&&this.scaleGroups()}f&&(k(f.container,{cursor:f._cursor}),f.cancelClick=this.hasDragged>10,f.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(n){n=this.normalize(n);n.preventDefault&&n.preventDefault();this.dragStart(n)},onDocumentMouseUp:function(n){lt[fi]&&lt[fi].pointer.drop(n)},onDocumentMouseMove:function(n){var t=this.chart,i=this.chartPosition;n=this.normalize(n,i);!i||this.inClass(n.target,"highcharts-tracker")||t.isInsidePlot(n.chartX-t.plotLeft,n.chartY-t.plotTop)||this.reset()},onContainerMouseLeave:function(n){var t=lt[fi];t&&(n.relatedTarget||n.toElement)&&(t.pointer.reset(),t.pointer.chartPosition=null)},onContainerMouseMove:function(n){var t=this.chart;r(fi)&&lt[fi]&&lt[fi].mouseIsDown||(fi=t.index);n=this.normalize(n);n.returnValue=!1;t.mouseIsDown==="mousedown"&&this.drag(n);(this.inClass(n.target,"highcharts-tracker")||t.isInsidePlot(n.chartX-t.plotLeft,n.chartY-t.plotTop))&&!t.openMenu&&this.runPointActions(n)},inClass:function(n,t){for(var i;n;){if(i=at(n,"class"),i){if(i.indexOf(t)!==-1)return!0;if(i.indexOf(ht+"container")!==-1)return!1}n=n.parentNode}},onTrackerMouseOut:function(n){var t=this.chart.hoverSeries,i=n.relatedTarget||n.toElement;!t||!i||t.options.stickyTracking||this.inClass(i,ht+"tooltip")||this.inClass(i,ht+"series-"+t.index)||t.onMouseOut()},onContainerClick:function(n){var t=this.chart,i=t.hoverPoint,r=t.plotLeft,u=t.plotTop;n=this.normalize(n);t.cancelClick||(i&&this.inClass(n.target,ht+"tracker")?(g(i.series,"click",o(n,{point:i})),t.hoverPoint&&i.firePointEvent("click",n)):(o(n,this.getCoordinates(n)),t.isInsidePlot(n.chartX-r,n.chartY-u)&&g(t,"click",n)))},setDOMEvents:function(){var n=this,t=n.chart.container;t.onmousedown=function(t){n.onContainerMouseDown(t)};t.onmousemove=function(t){n.onContainerMouseMove(t)};t.onclick=function(t){n.onContainerClick(t)};v(t,"mouseleave",n.onContainerMouseLeave);pu===1&&v(a,"mouseup",n.onDocumentMouseUp);fu&&(t.ontouchstart=function(t){n.onContainerTouchStart(t)},t.ontouchmove=function(t){n.onContainerTouchMove(t)},pu===1&&v(a,"touchend",n.onDocumentTouchEnd))},destroy:function(){var n;ft(this.chart.container,"mouseleave",this.onContainerMouseLeave);pu||(ft(a,"mouseup",this.onDocumentMouseUp),ft(a,"touchend",this.onDocumentTouchEnd));clearInterval(this.tooltipTimeout);for(n in this)this[n]=null}},o(s.Pointer.prototype,{pinchTranslate:function(n,t,i,r,u,f){(this.zoomHor||this.pinchHor)&&this.pinchTranslateDirection(!0,n,t,i,r,u,f);(this.zoomVert||this.pinchVert)&&this.pinchTranslateDirection(!1,n,t,i,r,u,f)},pinchTranslateDirection:function(n,t,i,r,u,f,e,o){var v=this.chart,l=n?"x":"y",d=n?"X":"Y",y="chart"+d,ft=n?"width":"height",g=v["plot"+(n?"Left":"Top")],a,s,nt,h=o||1,tt=v.inverted,p=v.bounds[n?"h":"v"],w=t.length===1,b=t[0][y],c=i[0][y],et=!w&&t[1][y],k=!w&&i[1][y],it,ut,ot,st=function(){!w&&rt(b-et)>20&&(h=o||rt(c-k)/rt(b-et));nt=(g-c)/h+b;a=v["plot"+(n?"Width":"Height")]/h};st();s=nt;s<p.min?(s=p.min,it=!0):s+a>p.max&&(s=p.max-a,it=!0);it?(c-=.8*(c-e[l][0]),w||(k-=.8*(k-e[l][1])),st()):e[l]=[c,k];tt||(f[l]=nt-g,f[ft]=a);ot=tt?n?"scaleY":"scaleX":"scale"+d;ut=tt?1/h:h;u[ft]=a;u[l]=s;r[ot]=h;r["translate"+d]=ut*g+(c-ut*b)},pinch:function(n){var r=this,e=r.chart,f=r.pinchDown,s=n.touches,h=s.length,l=r.lastValidTouch,a=r.hasZoom,v=r.selectionMarker,y={},w=h===1&&(r.inClass(n.target,ht+"tracker")&&e.runTrackerClick||r.runChartClick),p={};h>1&&(r.initiated=!0);a&&r.initiated&&!w&&n.preventDefault();ci(s,function(n){return r.normalize(n)});n.type==="touchstart"?(i(s,function(n,t){f[t]={chartX:n.chartX,chartY:n.chartY}}),l.x=[f[0].chartX,f[1]&&f[1].chartX],l.y=[f[0].chartY,f[1]&&f[1].chartY],i(e.axes,function(n){if(n.zoomEnabled){var i=e.bounds[n.horiz?"h":"v"],r=n.minPixelPadding,f=n.toPixels(t(n.options.min,n.dataMin)),o=n.toPixels(t(n.options.max,n.dataMax)),s=c(f,o),h=u(f,o);i.min=c(n.pos,s-r);i.max=u(n.pos+n.len,h+r)}}),r.res=!0):f.length&&(v||(r.selectionMarker=v=o({destroy:si,touch:!0},e.plotBox)),r.pinchTranslate(f,s,y,v,p,l),r.hasPinched=a,r.scaleGroups(y,p),!a&&r.followTouchMove&&h===1?this.runPointActions(r.normalize(n)):r.res&&(r.res=!1,this.reset(!1,0)))},touch:function(n,i){var r=this.chart,f,u;fi=r.index;n.touches.length===1?(n=this.normalize(n),r.isInsidePlot(n.chartX-r.plotLeft,n.chartY-r.plotTop)&&!r.openMenu?(i&&this.runPointActions(n),n.type==="touchmove"&&(u=this.pinchDown,f=u[0]?Math.sqrt(Math.pow(u[0].chartX-n.chartX,2)+Math.pow(u[0].chartY-n.chartY,2))>=4:!1),t(f,!0)&&this.pinch(n)):i&&this.reset()):n.touches.length===2&&this.pinch(n)},onContainerTouchStart:function(n){this.touch(n,!0)},onContainerTouchMove:function(n){this.touch(n)},onDocumentTouchEnd:function(n){lt[fi]&&lt[fi].pointer.drop(n)}}),n.PointerEvent||n.MSPointerEvent){var er={},se=!!n.PointerEvent,os=function(){var n,t=[];t.item=function(n){return this[n]};for(n in er)er.hasOwnProperty(n)&&t.push({pageX:er[n].pageX,pageY:er[n].pageY,target:er[n].target});return t},he=function(n,t,i,r){var u;(n.pointerType==="touch"||n.pointerType===n.MSPOINTER_TYPE_TOUCH)&&lt[fi]&&(r(n),u=lt[fi].pointer,u[t]({type:i,target:n.currentTarget,preventDefault:si,touches:os()}))};o(gr.prototype,{onContainerPointerDown:function(n){he(n,"onContainerTouchStart","touchstart",function(n){er[n.pointerId]={pageX:n.pageX,pageY:n.pageY,target:n.currentTarget}})},onContainerPointerMove:function(n){he(n,"onContainerTouchMove","touchmove",function(n){er[n.pointerId]={pageX:n.pageX,pageY:n.pageY};er[n.pointerId].target||(er[n.pointerId].target=n.currentTarget)})},onDocumentPointerUp:function(n){he(n,"onDocumentTouchEnd","touchend",function(n){delete er[n.pointerId]})},batchMSEvents:function(n){n(this.chart.container,se?"pointerdown":"MSPointerDown",this.onContainerPointerDown);n(this.chart.container,se?"pointermove":"MSPointerMove",this.onContainerPointerMove);n(a,se?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}});ut(gr.prototype,"init",function(n,t,i){n.call(this,t,i);this.hasZoom&&k(t.container,{"-ms-touch-action":yt,"touch-action":yt})});ut(gr.prototype,"setDOMEvents",function(n){n.apply(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(v)});ut(gr.prototype,"destroy",function(n){this.batchMSEvents(ft);n.call(this)})}tf=s.Legend=function(n,t){this.init(n,t)};tf.prototype={init:function(n,i){var r=this,f=i.itemStyle,u,e=i.itemMarginTop||0;(this.options=i,i.enabled)&&(r.itemStyle=f,r.itemHiddenStyle=h(f,i.itemHiddenStyle),r.itemMarginTop=e,r.padding=u=t(i.padding,8),r.initialItemX=u,r.initialItemY=u-5,r.maxItemWidth=0,r.chart=n,r.itemHeight=0,r.symbolWidth=t(i.symbolWidth,16),r.pages=[],r.render(),v(r.chart,"endResize",function(){r.positionCheckboxes()}))},colorizeItem:function(n,t){var h=this,y=h.options,c=n.legendItem,l=n.legendLine,r=n.legendSymbol,a=h.itemHiddenStyle.color,v=t?y.itemStyle.color:a,u=t?n.legendColor||n.color||"#CCC":a,i=n.options&&n.options.marker,e={fill:u},o,s;if(c&&c.css({fill:v,color:v}),l&&l.attr({stroke:u}),r){if(i&&r.isMarker){e.stroke=u;i=n.convertAttribs(i);for(o in i)s=i[o],s!==f&&(e[o]=s)}r.attr(e)}},positionItem:function(n){var u=this,f=u.options,s=f.symbolPadding,h=!f.rtl,e=n._legendItemPos,t=e[0],o=e[1],i=n.checkbox,r=n.legendGroup;r&&r.element&&r.translate(h?t:u.legendWidth-t-2*s-4,o);i&&(i.x=t,i.y=o)},destroyItem:function(n){var t=n.checkbox;i(["legendItem","legendLine","legendSymbol","legendGroup"],function(t){n[t]&&(n[t]=n[t].destroy())});t&&uu(n.checkbox)},destroy:function(){var n=this,t=n.group,i=n.box;i&&(n.box=i.destroy());t&&(n.group=t.destroy())},positionCheckboxes:function(n){var r=this.group.alignAttr,t,u=this.clipHeight||this.legendHeight,f=this.titleHeight;r&&(t=r.translateY,i(this.allItems,function(i){var e=i.checkbox,o;e&&(o=t+f+e.y+(n||0)+3,k(e,{left:r.translateX+i.checkboxOffset+e.x-20+b,top:o+b,display:o>t-6&&o<t+u-6?"":yt}))}))},renderTitle:function(){var u=this.options,r=this.padding,n=u.title,t=0,i;n.text&&(this.title||(this.title=this.chart.renderer.label(n.text,r-3,r-4,null,null,null,null,null,"legend-title").attr({zIndex:1}).css(n.style).add(this.group)),i=this.title.getBBox(),t=i.height,this.offsetWidth=i.width,this.contentGroup.attr({translateY:t}));this.titleHeight=t},setText:function(n){var t=this.options;n.legendItem.attr({text:t.labelFormat?yr(t.labelFormat,n):t.labelFormatter.call(n)})},renderItem:function(n){var i=this,k=i.chart,v=k.renderer,r=i.options,s=r.layout==="horizontal",d=i.symbolWidth,y=r.symbolPadding,p=i.itemStyle,g=i.itemHiddenStyle,nt=i.padding,tt=s?t(r.itemDistance,20):0,it=!r.rtl,c,rt=r.width,w=r.itemMarginBottom||0,l=i.itemMarginTop,a=i.initialItemX,b,o,f=n.legendItem,ut=n.series&&n.series.drawLegendSymbol?n.series:n,ft=ut.options,et=i.createCheckboxForItem&&ft&&ft.showCheckbox,ot=r.useHTML;f||(n.legendGroup=v.g("legend-item").attr({zIndex:1}).add(i.scrollGroup),n.legendItem=f=v.text("",it?d+y:-y,i.baseline||0,ot).css(h(n.visible?p:g)).attr({align:it?"left":"right",zIndex:2}).add(n.legendGroup),i.baseline||(i.fontMetrics=v.fontMetrics(p.fontSize,f),i.baseline=i.fontMetrics.f+3+l,f.attr("y",i.baseline)),ut.drawLegendSymbol(i,n),i.setItemEvents&&i.setItemEvents(n,f,ot,p,g),et&&i.createCheckboxForItem(n));i.colorizeItem(n,n.visible);i.setText(n);b=f.getBBox();o=n.checkboxOffset=r.itemWidth||n.legendItemWidth||d+y+b.width+tt+(et?20:0);i.itemHeight=c=e(n.legendItemHeight||b.height);s&&i.itemX-a+o>(rt||k.chartWidth-2*nt-a-r.x)&&(i.itemX=a,i.itemY+=l+i.lastLineHeight+w,i.lastLineHeight=0);i.maxItemWidth=u(i.maxItemWidth,o);i.lastItemY=l+i.itemY+w;i.lastLineHeight=u(c,i.lastLineHeight);n._legendItemPos=[i.itemX,i.itemY];s?i.itemX+=o:(i.itemY+=l+c+w,i.lastLineHeight=c);i.offsetWidth=rt||u((s?i.itemX-a-tt:o)+nt,i.offsetWidth)},getAllItems:function(){var n=[];return i(this.chart.series,function(i){var u=i.options;t(u.showInLegend,r(u.linkedTo)?!1:f,!0)&&(n=n.concat(i.legendItems||(u.legendType==="point"?i.data:i)))}),n},adjustMargins:function(n,f){var o=this.chart,e=this.options,s=e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0);this.display&&!e.floating&&i([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(i,h){i.test(s)&&!r(n[h])&&(o[hf[h]]=u(o[hf[h]],o.legend[(h+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][h]*e[h%2?"x":"y"]+t(e.margin,12)+f[h]))})},render:function(){var n=this,a=n.chart,h=a.renderer,s=n.group,f,c,e,t,r=n.box,u=n.options,v=n.padding,l=u.borderWidth,y=u.backgroundColor;n.itemX=n.initialItemX;n.itemY=n.initialItemY;n.offsetWidth=0;n.lastItemY=0;s||(n.group=s=h.g("legend").attr({zIndex:7}).add(),n.contentGroup=h.g().attr({zIndex:1}).add(s),n.scrollGroup=h.g().add(n.contentGroup));n.renderTitle();f=n.getAllItems();af(f,function(n,t){return(n.options&&n.options.legendIndex||0)-(t.options&&t.options.legendIndex||0)});u.reversed&&f.reverse();n.allItems=f;n.display=c=!!f.length;n.lastLineHeight=0;i(f,function(t){n.renderItem(t)});e=(u.width||n.offsetWidth)+v;t=n.lastItemY+n.lastLineHeight+n.titleHeight;t=n.handleOverflow(t);t+=v;(l||y)&&(r?e>0&&t>0&&(r[r.isNew?"attr":"animate"](r.crisp({width:e,height:t})),r.isNew=!1):(n.box=r=h.rect(0,0,e,t,u.borderRadius,l||0).attr({stroke:u.borderColor,"stroke-width":l||0,fill:y||yt}).add(s).shadow(u.shadow),r.isNew=!0),r[c?"show":"hide"]());n.legendWidth=e;n.legendHeight=t;i(f,function(t){n.positionItem(t)});c&&s.align(o({width:e,height:t},u),!0,"spacingBox");a.isResizing||this.positionCheckboxes()},handleOverflow:function(n){var r=this,k=this.chart,h=k.renderer,l=this.options,d=l.y,rt=l.verticalAlign==="top",s=k.spacingBox.height+(rt?-d:d)-this.padding,g=l.maxHeight,a,v=this.clipRect,y=l.navigation,nt=t(y.animation,!0),p=y.arrowSize||12,f=this.nav,o=this.pages,w=this.padding,b,tt=this.allItems,it=function(n){v.attr({height:n});r.contentGroup.div&&(r.contentGroup.div.style.clip="rect("+w+"px,9999px,"+(w+n)+"px,0)")};return l.layout==="horizontal"&&(s/=2),g&&(s=c(s,g)),o.length=0,n>s&&y.enabled!==!1?(this.clipHeight=a=u(s-20-this.titleHeight-w,0),this.currentPage=t(this.currentPage,1),this.fullHeight=n,i(tt,function(n,t){var i=n._legendItemPos[1],u=e(n.legendItem.getBBox().height),r=o.length;(!r||i-o[r-1]>a&&(b||i)!==o[r-1])&&(o.push(b||i),r++);t===tt.length-1&&i+u-o[r-1]>a&&o.push(i);i!==b&&(b=i)}),v||(v=r.clipRect=h.clipRect(0,w,9999,0),r.contentGroup.clip(v)),it(a),f||(this.nav=f=h.g().attr({zIndex:1}).add(this.group),this.up=h.symbol("triangle",0,0,p,p).on("click",function(){r.scroll(-1,nt)}).add(f),this.pager=h.text("",15,10).css(y.style).add(f),this.down=h.symbol("triangle-down",0,0,p,p).on("click",function(){r.scroll(1,nt)}).add(f)),r.scroll(0),n=s):f&&(it(k.chartHeight),f.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),n},scroll:function(n,t){var e=this.pages,r=e.length,i=this.currentPage+n,c=this.clipHeight,o=this.options.navigation,s=o.activeColor,h=o.inactiveColor,l=this.pager,a=this.padding,u;i>r&&(i=r);i>0&&(t!==f&&hu(t,this.chart),this.nav.attr({translateX:a,translateY:c+this.padding+7+this.titleHeight,visibility:cr}),this.up.attr({fill:i===1?h:s}).css({cursor:i===1?"default":"pointer"}),l.attr({text:i+"/"+r}),this.down.attr({x:18+this.pager.getBBox().width,fill:i===r?h:s}).css({cursor:i===r?"default":"pointer"}),u=-e[i-1]+this.initialItemY,this.scrollGroup.animate({translateY:u}),this.currentPage=i,this.positionCheckboxes(u))}};au=s.LegendSymbolMixin={drawRectangle:function(n,t){var i=n.options.symbolHeight||n.fontMetrics.f;t.legendSymbol=this.chart.renderer.rect(0,n.baseline-i+1,n.symbolWidth,i,n.options.symbolRadius||0).attr({zIndex:3}).add(t.legendGroup)},drawLineMarker:function(n){var t=this.options,r=t.marker,i,o,s=n.symbolWidth,h=this.chart.renderer,c=this.legendGroup,u=n.baseline-e(n.fontMetrics.b*.3),f;t.lineWidth&&(f={"stroke-width":t.lineWidth},t.dashStyle&&(f.dashstyle=t.dashStyle),this.legendLine=h.path([st,0,u,tt,s,u]).attr(f).add(c));r&&r.enabled!==!1&&(i=r.radius,this.legendSymbol=o=h.symbol(this.symbol,s/2-i,u-i,2*i,2*i,r).add(c),o.isMarker=!0)}};(/Trident\/7\.0/.test(or)||tu)&&ut(tf.prototype,"positionItem",function(n,t){var r=this,i=function(){t._legendItemPos&&n.call(r,t)};i();setTimeout(i)});wi=s.Chart=function(){this.getArgs.apply(this,arguments)};s.chart=function(n,t,i){return new wi(n,t,i)};wi.prototype={callbacks:[],getArgs:function(){var n=[].slice.call(arguments);(rr(n[0])||n[0].nodeName)&&(this.renderTo=n.shift());this.init(n[0],n[1])},init:function(n,i){var f,s=n.series,u,e,r,o;if(n.series=null,f=h(it,n),f.series=n.series=s,this.userOptions=n,u=f.chart,this.margin=this.splashArray("margin",u),this.spacing=this.splashArray("spacing",u),e=u.events,this.bounds={h:{},v:{}},this.callback=i,this.isResizing=0,this.options=f,this.axes=[],this.series=[],this.hasCartesianSeries=u.showAxes,r=this,r.index=lt.length,lt.push(r),pu++,u.reflow!==!1&&v(r,"load",function(){r.initReflow()}),e)for(o in e)v(r,o,e[o]);r.xAxis=[];r.yAxis=[];r.animation=oi?!1:t(u.animation,!0);r.pointCount=r.colorCounter=r.symbolCounter=0;r.firstRender()},initSeries:function(n){var u=this,i=u.options.chart,f=n.type||i.type||i.defaultSeriesType,t,r=p[f];return r||ai(17,!0),t=new r,t.init(this,n),t},isInsidePlot:function(n,t,i){var r=i?t:n,u=i?n:t;return r>=0&&r<=this.plotWidth&&u>=0&&u<=this.plotHeight},redraw:function(n){var t=this,e=t.axes,u=t.series,c=t.pointer,l=t.legend,a=t.isDirtyLegend,s,v,y=t.hasCartesianSeries,h=t.isDirtyBox,p=u.length,f=p,r,w=t.renderer,b=w.isHidden(),k=[];for(hu(n,t),b&&t.cloneRenderTo(),t.layOutTitles();f--;)if(r=u[f],r.options.stacking&&(s=!0,r.isDirty)){v=!0;break}if(v)for(f=p;f--;)r=u[f],r.options.stacking&&(r.isDirty=!0);i(u,function(n){n.isDirty&&n.options.legendType==="point"&&(n.updateTotals&&n.updateTotals(),a=!0);n.isDirtyData&&g(n,"updatedData")});a&&l.options.enabled&&(l.render(),t.isDirtyLegend=!1);s&&t.getStacks();y&&(t.isResizing||(t.maxTicks=null,i(e,function(n){n.setScale()})));t.getMargins();y&&(i(e,function(n){n.isDirty&&(h=!0)}),i(e,function(n){var t=n.min+","+n.max;n.extKey!==t&&(n.extKey=t,k.push(function(){g(n,"afterSetExtremes",o(n.eventArgs,n.getExtremes()));delete n.eventArgs}));(h||s)&&n.redraw()}));h&&t.drawChartBox();i(u,function(n){n.isDirty&&n.visible&&(!n.isCartesian||n.xAxis)&&n.redraw()});c&&c.reset(!0);w.draw();g(t,"redraw");b&&t.cloneRenderTo(!0);i(k,function(n){n.call()})},get:function(n){for(var e=this,f=e.axes,i=e.series,r,u,t=0;t<f.length;t++)if(f[t].options.id===n)return f[t];for(t=0;t<i.length;t++)if(i[t].options.id===n)return i[t];for(t=0;t<i.length;t++)for(u=i[t].points||[],r=0;r<u.length;r++)if(u[r].id===n)return u[r];return null},getAxes:function(){var f=this,n=this.options,t=n.xAxis=yi(n.xAxis||{}),r=n.yAxis=yi(n.yAxis||{}),u;i(t,function(n,t){n.index=t;n.isX=!0});i(r,function(n,t){n.index=t});u=t.concat(r);i(u,function(n){new w(f,n)})},getSelectedPoints:function(){var n=[];return i(this.series,function(t){n=n.concat(ir(t.points||[],function(n){return n.selected}))}),n},getSelectedSeries:function(){return ir(this.series,function(n){return n.selected})},setTitle:function(n,t,r){var u=this,f=u.options,e,o;e=f.title=h(f.title,n);o=f.subtitle=h(f.subtitle,t);i([["title",n,e],["subtitle",t,o]],function(n){var i=n[0],r=u[i],f=n[1],t=n[2];r&&f&&(u[i]=r=r.destroy());t&&t.text&&!r&&(u[i]=u.renderer.text(t.text,0,0,t.useHTML).attr({align:t.align,"class":ht+i,zIndex:t.zIndex||4}).css(t.style).add())});u.layOutTitles(r)},layOutTitles:function(n){var r=0,f=this.title,s=this.subtitle,c=this.options,i=c.title,u=c.subtitle,h,l=this.renderer,e=this.spacingBox;f&&(f.css({width:(i.width||e.width+i.widthAdjust)+b}).align(o({y:l.fontMetrics(i.style.fontSize,f).b-3},i),!1,e),i.floating||i.verticalAlign||(r=f.getBBox().height));s&&(s.css({width:(u.width||e.width+u.widthAdjust)+b}).align(o({y:r+(i.margin-13)+l.fontMetrics(u.style.fontSize,f).b},u),!1,e),u.floating||u.verticalAlign||(r=tr(r+s.getBBox().height)));h=this.titleOffset!==r;this.titleOffset=r;!this.isDirtyBox&&h&&(this.isDirtyBox=h,this.hasRendered&&t(n,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var n=this,i=n.options.chart,f=i.width,e=i.height,o=n.renderToClone||n.renderTo;r(f)||(n.containerWidth=vi(o,"width"));r(e)||(n.containerHeight=vi(o,"height"));n.chartWidth=u(0,f||n.containerWidth||600);n.chartHeight=u(0,t(e,n.containerHeight>19?n.containerHeight:400))},cloneRenderTo:function(n){var t=this.renderToClone,i=this.container;n?t&&(this.renderTo.appendChild(i),uu(t),delete this.renderToClone):(i&&i.parentNode===this.renderTo&&this.renderTo.removeChild(i),this.renderToClone=t=this.renderTo.cloneNode(0),k(t,{position:ki,top:"-9999px",display:"block"}),t.style.setProperty&&t.style.setProperty("display","block","important"),a.body.appendChild(t),i&&t.appendChild(i))},getContainer:function(){var n=this,u,h=n.options,i=h.chart,f,e,t=n.renderTo,c="data-highcharts-chart",r,v,p="highcharts-"+bf++;t||(n.renderTo=t=i.renderTo);rr(t)&&(n.renderTo=t=a.getElementById(t));t||ai(13,!0);r=y(at(t,c));l(r)&&lt[r]&&lt[r].hasRendered&&lt[r].destroy();at(t,c,n.index);t.innerHTML="";i.skipClone||t.offsetWidth||n.cloneRenderTo();n.getChartSize();f=n.chartWidth;e=n.chartHeight;n.container=u=kt(ru,{className:ht+"container"+(i.className?" "+i.className:""),id:p},o({position:ge,overflow:hr,width:f+b,height:e+b,textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},i.style),n.renderToClone||t);n._cursor=u.style.cursor;v=s[i.renderer]||iu;n.renderer=new v(u,f,e,i.style,i.forExport,h.exporting&&h.exporting.allowHTML);oi&&n.renderer.create(n,u,f,e);n.renderer.chartIndex=n.index},getMargins:function(n){var t=this,i=t.spacing,f=t.margin,e=t.titleOffset;t.resetMargins();e&&!r(f[0])&&(t.plotTop=u(t.plotTop,e+t.options.title.margin+i[0]));t.legend.adjustMargins(f,i);t.extraBottomMargin&&(t.marginBottom+=t.extraBottomMargin);t.extraTopMargin&&(t.plotTop+=t.extraTopMargin);n||this.getAxisMargins()},getAxisMargins:function(){var n=this,t=n.axisOffset=[0,0,0,0],u=n.margin;n.hasCartesianSeries&&i(n.axes,function(n){n.visible&&n.getOffset()});i(hf,function(i,f){r(u[f])||(n[i]+=t[f])});n.setChartSize()},reflow:function(t){var i=this,f=i.options.chart,e=i.renderTo,r=f.width||vi(e,"width"),u=f.height||vi(e,"height"),o=t?t.target:n;!i.hasUserSize&&!i.isPrinting&&r&&u&&(o===n||o===a)&&((r!==i.containerWidth||u!==i.containerHeight)&&(clearTimeout(i.reflowTimeout),i.reflowTimeout=su(function(){i.container&&(i.setSize(r,u,!1),i.hasUserSize=null)},t?100:0)),i.containerWidth=r,i.containerHeight=u)},initReflow:function(){var t=this,i=function(n){t.reflow(n)};v(n,"resize",i);v(t,"destroy",function(){ft(n,"resize",i)})},setSize:function(n,t,f){var o=this,s,c,l=o.renderer,h;o.isResizing+=1;hu(f,o);o.oldChartHeight=o.chartHeight;o.oldChartWidth=o.chartWidth;r(n)&&(o.chartWidth=s=u(0,e(n)),o.hasUserSize=!!s);r(t)&&(o.chartHeight=c=u(0,e(t)));h=l.globalAnimation;(h?ou:k)(o.container,{width:s+b,height:c+b},h);o.setChartSize(!0);l.setSize(s,c,f);o.maxTicks=null;i(o.axes,function(n){n.isDirty=!0;n.setScale()});i(o.series,function(n){n.isDirty=!0});o.isDirtyLegend=!0;o.isDirtyBox=!0;o.layOutTitles();o.getMargins();o.redraw(f);o.oldChartHeight=null;g(o,"resize");su(function(){o&&g(o,"endResize",null,function(){o.isResizing-=1})},gu(h).duration)},setChartSize:function(n){var t=this,y=t.inverted,p=t.renderer,w=t.chartWidth,b=t.chartHeight,k=t.options.chart,r=t.spacing,o=t.clipOffset,c,l,a,v,s,h,f;t.plotLeft=a=e(t.plotLeft);t.plotTop=v=e(t.plotTop);t.plotWidth=s=u(0,e(w-a-t.marginRight));t.plotHeight=h=u(0,e(b-v-t.marginBottom));t.plotSizeX=y?h:s;t.plotSizeY=y?s:h;t.plotBorderWidth=k.plotBorderWidth||0;t.spacingBox=p.spacingBox={x:r[3],y:r[0],width:w-r[3]-r[1],height:b-r[0]-r[2]};t.plotBox=p.plotBox={x:a,y:v,width:s,height:h};f=2*ot(t.plotBorderWidth/2);c=tr(u(f,o[3])/2);l=tr(u(f,o[0])/2);t.clipBox={x:c,y:l,width:ot(t.plotSizeX-u(f,o[1])/2-c),height:u(0,ot(t.plotSizeY-u(f,o[2])/2-l))};n||i(t.axes,function(n){n.setAxisSize();n.setAxisTranslation()})},resetMargins:function(){var n=this;i(hf,function(i,r){n[i]=t(n.margin[r],n.spacing[r])});n.axisOffset=[0,0,0,0];n.clipOffset=[0,0,0,0]},drawChartBox:function(){var n=this,t=n.options.chart,r=n.renderer,y=n.chartWidth,p=n.chartHeight,a=n.chartBackground,w=n.plotBackground,f=n.plotBorder,b=n.plotBGImage,u=t.borderWidth||0,k=t.backgroundColor,d=t.plotBackgroundColor,g=t.plotBackgroundImage,e=t.plotBorderWidth||0,i,o,s=n.plotLeft,h=n.plotTop,c=n.plotWidth,l=n.plotHeight,nt=n.plotBox,tt=n.clipRect,v=n.clipBox;i=u+(t.shadow?8:0);(u||k)&&(a?a.animate(a.crisp({width:y-i,height:p-i})):(o={fill:k||yt},u&&(o.stroke=t.borderColor,o["stroke-width"]=u),n.chartBackground=r.rect(i/2,i/2,y-i,p-i,t.borderRadius,u).attr(o).addClass(ht+"background").add().shadow(t.shadow)));d&&(w?w.animate(nt):n.plotBackground=r.rect(s,h,c,l,0).attr({fill:d}).add().shadow(t.plotShadow));g&&(b?b.animate(nt):n.plotBGImage=r.image(g,s,h,c,l).add());tt?tt.animate({width:v.width,height:v.height}):n.clipRect=r.clipRect(v);e&&(f?(f.strokeWidth=-e,f.animate(f.crisp({x:s,y:h,width:c,height:l}))):n.plotBorder=r.rect(s,h,c,l,0,-e).attr({stroke:t.plotBorderColor,"stroke-width":e,fill:yt,zIndex:1}).add());n.isDirtyBox=!1},propFromSeries:function(){var t=this,u=t.options.chart,n,f=t.options.series,e,r;i(["inverted","angular","polar"],function(i){for(n=p[u.type||u.defaultSeriesType],r=t[i]||u[i]||n&&n.prototype[i],e=f&&f.length;!r&&e--;)n=p[f[e].type],n&&n.prototype[i]&&(r=!0);t[i]=r})},linkSeries:function(){var n=this,r=n.series;i(r,function(n){n.linkedSeries.length=0});i(r,function(i){var r=i.options.linkedTo;rr(r)&&(r=r===":previous"?n.series[i.index-1]:n.get(r),r&&(r.linkedSeries.push(i),i.linkedParent=r,i.visible=t(i.options.visible,r.options.visible,i.visible)))})},renderSeries:function(){i(this.series,function(n){n.translate();n.render()})},renderLabels:function(){var n=this,t=n.options.labels;t.items&&i(t.items,function(i){var r=o(t.style,i.style),u=y(r.left)+n.plotLeft,f=y(r.top)+n.plotTop+12;delete r.left;delete r.top;n.renderer.text(i.html,u,f).attr({zIndex:2}).css(r).add()})},render:function(){var n=this,t=n.axes,s=n.renderer,f=n.options,e,o,r,u;n.setTitle();n.legend=new tf(n,f.legend);n.getStacks&&n.getStacks();n.getMargins(!0);n.setChartSize();e=n.plotWidth;o=n.plotHeight=n.plotHeight-21;i(t,function(n){n.setScale()});n.getAxisMargins();r=e/n.plotWidth>1.1;u=o/n.plotHeight>1.05;(r||u)&&(n.maxTicks=null,i(t,function(n){(n.horiz&&r||!n.horiz&&u)&&n.setTickInterval(!0)}),n.getMargins());n.drawChartBox();n.hasCartesianSeries&&i(t,function(n){n.visible&&n.render()});n.seriesGroup||(n.seriesGroup=s.g("series-group").attr({zIndex:3}).add());n.renderSeries();n.renderLabels();n.showCredits(f.credits);n.hasRendered=!0},showCredits:function(t){t.enabled&&!this.credits&&(this.credits=this.renderer.text(t.text,0,0).on("click",function(){t.href&&(n.location.href=t.href)}).attr({align:t.position.align,zIndex:8}).css(t.style).add().align(t.position))},destroy:function(){var n=this,u=n.axes,e=n.series,r=n.container,t,o=r&&r.parentNode;for(g(n,"destroy"),lt[n.index]=f,pu--,n.renderTo.removeAttribute("data-highcharts-chart"),ft(n),t=u.length;t--;)u[t]=u[t].destroy();for(t=e.length;t--;)e[t]=e[t].destroy();i(["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","scroller","rangeSelector","legend","resetZoomButton","tooltip","renderer"],function(t){var i=n[t];i&&i.destroy&&(n[t]=i.destroy())});r&&(r.innerHTML="",ft(r),o&&uu(r));for(t in n)delete n[t]},isReadyToRender:function(){var t=this;return!ni&&n==n.top&&a.readyState!=="complete"||oi&&!n.canvg?(oi?so.push(function(){t.firstRender()},t.options.global.canvasToolsURL):a.attachEvent("onreadystatechange",function(){a.detachEvent("onreadystatechange",t.firstRender);a.readyState==="complete"&&t.firstRender()}),!1):!0},firstRender:function(){var n=this,t=n.options;n.isReadyToRender()&&(n.getContainer(),g(n,"init"),n.resetMargins(),n.setChartSize(),n.propFromSeries(),n.getAxes(),i(t.series||[],function(t){n.initSeries(t)}),n.linkSeries(),g(n,"beforeRender"),s.Pointer&&(n.pointer=new gr(n,t)),n.render(),n.renderer.draw(),!n.renderer.imgCount&&n.onload&&n.onload(),n.cloneRenderTo(!0))},onload:function(){var n=this;i([this.callback].concat(this.callbacks),function(t){t&&n.index!==undefined&&t.apply(n,[n])});g(n,"load");this.onload=null},splashArray:function(n,i){var r=i[n],u=bt(r)?r:[r,r,r,r];return[t(i[n+"Top"],u[0]),t(i[n+"Right"],u[1]),t(i[n+"Bottom"],u[2]),t(i[n+"Left"],u[3])]}};ho=s.CenteredSeriesMixin={getCenter:function(){for(var r=this.options,e=this.chart,u=2*(r.slicedOffset||0),o,s=e.plotWidth-2*u,h=e.plotHeight-2*u,l=r.center,n=[t(l[0],"50%"),t(l[1],"50%"),r.size||"100%",r.innerSize||0],a=c(s,h),f,i=0;i<4;++i)f=n[i],o=i<2||i===2&&/%$/.test(f),n[i]=fo(f,[s,h,a,n[2]][i])+(o?u:0);return n[3]>n[2]&&(n[3]=n[2]),n}};nr=function(){};nr.prototype={init:function(n,t,i){var r=this,u;return r.series=n,r.color=n.color,r.applyOptions(t,i),r.pointAttr={},n.options.colorByPoint&&(u=n.options.colors||n.chart.options.colors,r.color=r.color||u[n.colorCounter++],n.colorCounter===u.length&&(n.colorCounter=0)),n.chart.pointCount++,r},applyOptions:function(n,t){var i=this,r=i.series,u=r.options.pointValKey||r.pointValKey;return n=nr.prototype.optionsToObject.call(this,n),o(i,n),i.options=i.options?o(i.options,n):n,u&&(i.y=i[u]),i.isNull=i.x===null||i.y===null,i.x===undefined&&r&&(i.x=t===undefined?r.autoIncrement():t),i},optionsToObject:function(n){var t={},i=this.series,u=i.options.keys,f=u||i.pointArrayMap||["y"],s=f.length,e,r=0,o=0;if(l(n)||n===null)t[f[0]]=n;else if(vr(n))for(!u&&n.length>s&&(e=typeof n[0],e==="string"?t.name=n[0]:e==="number"&&(t.x=n[0]),r++);o<s;)u&&n[r]===undefined||(t[f[o]]=n[r]),r++,o++;else typeof n=="object"&&(t=n,n.dataLabels&&(i._hasPointLabels=!0),n.marker&&(i._hasPointMarkers=!0));return t},destroy:function(){var n=this,u=n.series,t=u.chart,i=t.hoverPoints,r;t.pointCount--;i&&(n.setState(),gi(i,n),i.length||(t.hoverPoints=null));n===t.hoverPoint&&n.onMouseOut();(n.graphic||n.dataLabel)&&(ft(n),n.destroyElements());n.legendItem&&t.legend.destroyItem(n);for(r in n)n[r]=null},destroyElements:function(){for(var t=this,r=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],n,i=6;i--;)n=r[i],t[n]&&(t[n]=t[n].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(n){var u=this.series,r=u.tooltipOptions,o=t(r.valueDecimals,""),f=r.valuePrefix||"",e=r.valueSuffix||"";return i(u.pointArrayMap||["y"],function(t){t="{point."+t;(f||e)&&(n=n.replace(t+"}",f+t+"}"+e));n=n.replace(t+"}",t+":,."+o+"f}")}),yr(n,{point:this,series:this.series})},firePointEvent:function(n,t,i){var r=this,f=this.series,u=f.options;(u.point.events[n]||r.options&&r.options.events&&r.options.events[n])&&this.importEvents();n==="click"&&u.allowPointSelect&&(i=function(n){r.select&&r.select(null,n.ctrlKey||n.metaKey||n.shiftKey)});g(this,n,t,i)},visible:!0};nt=s.Series=function(){};nt.prototype={isCartesian:!0,type:"line",pointClass:nr,sorted:!0,requireSorting:!0,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor",r:"radius"},directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],init:function(n,r){var u=this,s,f,e=n.series,h=function(n,i){return t(n.options.index,n._i)-t(i.options.index,i._i)};u.chart=n;u.options=r=u.setOptions(r);u.linkedSeries=[];u.bindAxes();o(u,{name:r.name,state:ti,pointAttr:{},visible:r.visible!==!1,selected:r.selected===!0});oi&&(r.animation=!1);f=r.events;for(s in f)v(u,s,f[s]);(f&&f.click||r.point&&r.point.events&&r.point.events.click||r.allowPointSelect)&&(n.runTrackerClick=!0);u.getColor();u.getSymbol();i(u.parallelArrays,function(n){u[n+"Data"]=[]});u.setData(r.data,!1);u.isCartesian&&(n.hasCartesianSeries=!0);e.push(u);u._i=e.length-1;af(e,h);this.yAxis&&af(this.yAxis.series,h);i(e,function(n,t){n.index=t;n.name=n.name||"Series "+(t+1)})},bindAxes:function(){var n=this,t=n.options,u=n.chart,r;i(n.axisTypes||[],function(e){i(u[e],function(i){r=i.options;(t[e]===r.index||t[e]!==f&&t[e]===r.id||t[e]===f&&r.index===0)&&(i.series.push(n),n[e]=i,i.isDirty=!0)});n[e]||n.optionalAxis===e||ai(18,!0)})},updateParallelArrays:function(n,t){var r=n.series,u=arguments,f=l(t)?function(i){var u=i==="y"&&r.toYData?r.toYData(n):n[i];r[i+"Data"][t]=u}:function(n){Array.prototype[t].apply(r[n+"Data"],Array.prototype.slice.call(u,2))};i(r.parallelArrays,f)},autoIncrement:function(){var f=this.options,i=this.xIncrement,n,r,u=f.pointIntervalUnit;return i=t(i,f.pointStart,0),this.pointInterval=r=t(this.pointInterval,f.pointInterval,1),u&&(n=new wt(i),u==="day"?n=+n[lf](n[eu]()+r):u==="month"?n=+n[te](n[bu]()+r):u==="year"&&(n=+n[ie](n[ku]()+r)),r=n-i),this.xIncrement=i+r,i},setOptions:function(n){var f=this.chart,c=f.options,e=c.plotOptions,o=f.userOptions||{},u=o.plotOptions||{},s=e[this.type],t,i;return this.userOptions=n,t=h(s,e.series,n),this.tooltipOptions=h(it.tooltip,it.plotOptions[this.type].tooltip,o.tooltip,u.series&&u.series.tooltip,u[this.type]&&u[this.type].tooltip,n.tooltip),s.marker===null&&delete t.marker,this.zoneAxis=t.zoneAxis,i=this.zones=(t.zones||[]).slice(),(t.negativeColor||t.negativeFillColor)&&!t.zones&&i.push({value:t[this.zoneAxis+"Threshold"]||t.threshold||0,color:t.negativeColor,fillColor:t.negativeFillColor}),i.length&&r(i[i.length-1].value)&&i.push({color:this.color,fillColor:this.fillColor}),t},getCyclic:function(n,t,i){var u,f=this.userOptions,e="_"+n+"Index",o=n+"Counter";t||(r(f[e])?u=f[e]:(f[e]=u=this.chart[o]%i.length,this.chart[o]+=1),t=i[u]);this[n]=t},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||et[this.type].color,this.chart.options.colors)},getSymbol:function(){var n=this.options.marker;this.getCyclic("symbol",n.symbol,this.chart.options.symbols);/^url/.test(this.symbol)&&(n.radius=0)},drawLegendSymbol:au.drawLineMarker,setData:function(n,u,e,o){var h=this,v=h.points,g=v&&v.length||0,a,p=h.options,nt=h.chart,w=null,y=h.xAxis,ft=y&&!!y.categories,s,tt=p.turboThreshold,c,d=this.xData,b=this.yData,it=h.pointArrayMap,rt=it&&it.length,k,ut;if(n=n||[],a=n.length,u=t(u,!0),o!==!1&&a&&g===a&&!h.cropped&&!h.hasGroupedData&&h.visible)i(n,function(n,t){v[t].update&&n!==p.data[t]&&v[t].update(n,!1,null,!1)});else{if(h.xIncrement=null,h.colorCounter=0,i(this.parallelArrays,function(n){h[n+"Data"].length=0}),tt&&a>tt){for(s=0;w===null&&s<a;)w=n[s],s++;if(l(w)){for(k=t(p.pointStart,0),ut=t(p.pointInterval,1),s=0;s<a;s++)d[s]=k,b[s]=n[s],k+=ut;h.xIncrement=k}else if(vr(w))if(rt)for(s=0;s<a;s++)c=n[s],d[s]=c[0],b[s]=c.slice(1,rt+1);else for(s=0;s<a;s++)c=n[s],d[s]=c[0],b[s]=c[1];else ai(12)}else for(s=0;s<a;s++)n[s]!==f&&(c={series:h},h.pointClass.prototype.applyOptions.apply(c,[n[s]]),h.updateParallelArrays(c,s),ft&&r(c.name)&&(y.names[c.x]=c.name));for(rr(b[0])&&ai(14,!0),h.data=[],h.options.data=h.userOptions.data=n,s=g;s--;)v[s]&&v[s].destroy&&v[s].destroy();y&&(y.minRange=y.userMinRange);h.isDirty=h.isDirtyData=nt.isDirtyBox=!0;e=!1}p.legendType==="point"&&(this.processData(),this.generatePoints());u&&nt.redraw(e)},processData:function(n){var t=this,i=t.xData,l=t.yData,a=i.length,o,y=0,p,e,s,r=t.xAxis,u,w=t.options,b=w.cropThreshold,g=t.getExtremesFromAll||w.getExtremesFromAll,k=t.isCartesian,v,d=r&&r.val2lin,nt=r&&r.isLog,h,c;if(k&&!t.isDirty&&!r.isDirty&&!t.yAxis.isDirty&&!n)return!1;for(r&&(v=r.getExtremes(),h=v.min,c=v.max),k&&t.sorted&&!g&&(!b||a>b||t.forceCrop)&&(i[a-1]<h||i[0]>c?(i=[],l=[]):(i[0]<h||i[a-1]>c)&&(o=this.cropData(t.xData,t.yData,h,c),i=o.xData,l=o.yData,y=o.start,p=!0)),u=i.length||1;--u;)e=nt?d(i[u])-d(i[u-1]):i[u]-i[u-1],e>0&&(s===f||e<s)?s=e:e<0&&t.requireSorting&&ai(15);t.cropped=p;t.cropStart=y;t.processedXData=i;t.processedYData=l;t.closestPointRange=s},cropData:function(n,i,r,f){for(var c=n.length,s=0,h=c,l=t(this.cropShoulder,1),o,e=0;e<c;e++)if(n[e]>=r){s=u(0,e-l);break}for(o=e;o<c;o++)if(n[o]>f){h=o+l;break}return{xData:n.slice(s,h),yData:i.slice(s,h),start:s,end:h}},generatePoints:function(){var t=this,p=t.options,o=p.data,i=t.data,a,s=t.processedXData,w=t.processedYData,v=t.pointClass,h=s.length,y=t.cropStart||0,r,e=t.hasGroupedData,c,u=[],n,l;for(i||e||(l=[],l.length=o.length,i=t.data=l),n=0;n<h;n++)r=y+n,e?(u[n]=(new v).init(t,[s[n]].concat(yi(w[n]))),u[n].dataGroup=t.groupMap[n]):(i[r]?c=i[r]:o[r]!==f&&(i[r]=c=(new v).init(t,o[r],s[n])),u[n]=c),u[n].index=r;if(i&&(h!==(a=i.length)||e))for(n=0;n<a;n++)n!==y||e||(n+=h),i[n]&&(i[n].destroyElements(),i[n].plotX=f);t.data=i;t.points=u},getExtremes:function(n){var v=this.xAxis,y=this.yAxis,e=this.processedXData,s,u=[],h=0,c=v.getExtremes(),p=c.min,w=c.max,l,a,o,t,i,r;for(n=n||this.stackedYData||this.processedYData||[],s=n.length,i=0;i<s;i++)if(o=e[i],t=n[i],l=t!==null&&t!==f&&(!y.isLog||t.length||t>0),a=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(e[i+1]||o)>=p&&(e[i-1]||o)<=w,l&&a)if(r=t.length,r)while(r--)t[r]!==null&&(u[h++]=t[r]);else u[h++]=t;this.dataMin=pr(u);this.dataMax=ur(u)},translate:function(){this.processedXData||this.processData();this.generatePoints();for(var i=this,y=i.options,et=y.stacking,p=i.xAxis,d=p.categories,o=i.yAxis,ot=i.points,ht=ot.length,ct=!!i.modifyValue,g=y.pointPlacement,lt=g==="between"||l(g),b=y.threshold,st=y.startFromThreshold?b:0,h,k,nt,tt,it=Number.MAX_VALUE,w=0;w<ht;w++){var n=ot[w],v=n.x,e=n.y,s=n.low,ut=et&&o.stacks[(i.negStacks&&e<(st?0:b)?"-":"")+i.stackKey],a,ft;o.isLog&&e!==null&&e<=0&&(n.y=e=null,ai(10));n.plotX=h=ii(c(u(-1e5,p.translate(v,0,0,0,1,g,this.type==="flags")),1e5));et&&i.visible&&!n.isNull&&ut&&ut[v]&&(tt=i.getStackIndicator(tt,v,i.index),a=ut[v],ft=a.points[tt.key],s=ft[0],e=ft[1],s===st&&(s=t(b,o.min)),o.isLog&&s<=0&&(s=null),n.total=n.stackTotal=a.total,n.percentage=a.total&&n.y/a.total*100,n.stackY=e,a.setOffset(i.pointXOffset||0,i.barW||0));n.yBottom=r(s)?o.translate(s,0,1,0,1):null;ct&&(e=i.modifyValue(e,n));n.plotY=k=typeof e=="number"&&e!==Infinity?c(u(-1e5,o.translate(e,0,1,0,1)),1e5):f;n.isInside=k!==f&&k>=0&&k<=o.len&&h>=0&&h<=p.len;n.clientX=lt?p.translate(v,0,0,0,1):h;n.negative=n.y<(b||0);n.category=d&&d[n.x]!==f?d[n.x]:n.x;n.isNull||(nt!==undefined&&(it=c(it,rt(h-nt))),nt=h)}i.closestPointRangePx=it},getValidPoints:function(n,t){var i=this.chart;return ir(n||this.points||[],function(n){return t&&!i.isInsidePlot(n.plotX,n.plotY,i.inverted)?!1:!n.isNull})},setClip:function(n){var t=this.chart,u=this.options,o=t.renderer,s=t.inverted,f=this.clipBox,e=f||t.clipBox,i=this.sharedClipKey||["_sharedClip",n&&n.duration,n&&n.easing,e.height,u.xAxis,u.yAxis].join(","),r=t[i],h=t[i+"m"];r||(n&&(e.width=0,t[i+"m"]=h=o.clipRect(-99,s?-t.plotLeft:-t.plotTop,99,s?t.chartWidth:t.chartHeight)),t[i]=r=o.clipRect(e));n&&(r.count+=1);u.clip!==!1&&(this.group.clip(n||f?r:t.clipRect),this.markerGroup.clip(h),this.sharedClipKey=i);n||(r.count-=1,r.count<=0&&i&&t[i]&&(f||(t[i]=t[i].destroy()),t[i+"m"]&&(t[i+"m"]=t[i+"m"].destroy())))},animate:function(n){var i=this,r=i.chart,f,t=i.options.animation,u;t&&!bt(t)&&(t=et[i.type].animation);n?i.setClip(t):(u=this.sharedClipKey,f=r[u],f&&f.animate({width:r.plotSizeX},t),r[u+"m"]&&r[u+"m"].animate({width:r.plotSizeX+99},t),i.animate=null)},afterAnimate:function(){this.setClip();g(this,"afterAnimate")},drawPoints:function(){var r=this,s,w=r.points,g=r.chart,a,h,v,n,i,y,b,u,nt=r.options,c=nt.marker,tt=r.pointAttr[""],e,k,d,p,it=r.markerGroup,rt=r.xAxis,ut=t(c.enabled,rt.isRadial,r.closestPointRangePx>2*c.radius);if(c.enabled!==!1||r._hasPointMarkers)for(v=w.length;v--;)n=w[v],a=ot(n.plotX),h=n.plotY,u=n.graphic,e=n.marker||{},k=!!n.marker,d=ut&&e.enabled===f||e.enabled,p=n.isInside,d&&l(h)&&n.y!==null?(s=n.pointAttr[n.selected?lr:ti]||tt,i=s.r,y=t(e.symbol,r.symbol),b=y.indexOf("url")===0,u?u[p?"show":"hide"](!0).attr(s).animate(o({x:a-i,y:h-i},u.symbolName?{width:2*i,height:2*i}:{})):p&&(i>0||b)&&(n.graphic=u=g.renderer.symbol(y,a-i,h-i,2*i,2*i,k?e:c).attr(s).add(it))):u&&(n.graphic=u.destroy())},convertAttribs:function(n,i,r,u){var e=this.pointAttrToOptions,f,o,s={};n=n||{};i=i||{};r=r||{};u=u||{};for(f in e)o=e[f],s[f]=t(n[o],i[f],r[f],u[f]);return s},getAttribs:function(){var f=this,l=f.options,n=et[f.type].marker?l.marker:l,c=n.states,u=c[di],a,k=f.color,nt=f.options.negativeColor,ft={stroke:k,fill:k},tt=f.points||[],v,d,y,e,s=[],h,it=f.pointAttrToOptions,p=f.hasPointSpecificOptions,ot=n.lineColor,st=n.fillColor,rt=l.turboThreshold,g=f.zones,ht=f.zoneAxis||"y",w,b,ut;if(l.marker?(u.radius=u.radius||n.radius+u.radiusPlus,u.lineWidth=u.lineWidth||n.lineWidth+u.lineWidthPlus):(u.color=u.color||pi(u.color||k).brighten(u.brightness).get(),u.negativeColor=u.negativeColor||pi(u.negativeColor||nt).brighten(u.brightness).get()),s[ti]=f.convertAttribs(n,ft),i([di,lr],function(n){s[n]=f.convertAttribs(c[n],s[ti])}),f.pointAttr=s,v=tt.length,!rt||v<rt||p)while(v--){if(e=tt[v],n=e.options&&e.options.marker||e.options,n&&n.enabled===!1&&(n.radius=0),w=null,g.length){for(d=0,y=g[d];e[ht]>=y.value;)y=g[++d];e.color=e.fillColor=w=t(y.color,f.color)}if(p=l.colorByPoint||e.color,e.options)for(ut in it)r(n[it[ut]])&&(p=!0);p?(n=n||{},h=[],c=n.states||{},a=c[di]=c[di]||{},l.marker&&(!e.negative||a.fillColor||u.fillColor)||(a[f.pointAttrToOptions.fill]=a.color||!e.options.color&&u[e.negative&&nt?"negativeColor":"color"]||pi(e.color).brighten(a.brightness||u.brightness).get()),b={color:e.color},st||(b.fillColor=e.color),ot||(b.lineColor=e.color),n.hasOwnProperty("color")&&!n.color&&delete n.color,w&&!u.fillColor&&(a.fillColor=w),h[ti]=f.convertAttribs(o(b,n),s[ti]),h[di]=f.convertAttribs(c[di],s[di],h[ti]),h[lr]=f.convertAttribs(c[lr],s[lr],h[ti])):h=s;e.pointAttr=h}},destroy:function(){var n=this,f=n.chart,h=/AppleWebKit\/533/.test(or),o,e,s=n.data||[],u,t,r;for(g(n,"destroy"),ft(n),i(n.axisTypes||[],function(t){r=n[t];r&&(gi(r.series,n),r.isDirty=r.forceRedraw=!0)}),n.legendItem&&n.chart.legend.destroyItem(n),e=s.length;e--;)u=s[e],u&&u.destroy&&u.destroy();n.points=null;clearTimeout(n.animationTimeout);for(t in n)n[t]instanceof vt&&!n[t].survive&&(o=h&&t==="group"?"hide":"destroy",n[t][o]());f.hoverSeries===n&&(f.hoverSeries=null);gi(f.series,n);for(t in n)delete n[t]},getGraphPath:function(n,t,u){var e=this,h=e.options,f=h.step,c,s=[],o;return n=n||e.points,c=n.reversed,c&&n.reverse(),f={right:1,center:2}[f]||f&&3,f&&c&&(f=4-f),!h.connectNulls||t||u||(n=this.getValidPoints(n)),i(n,function(i,c){var v=i.plotX,y=i.plotY,l=n[c-1],a;(i.leftCliff||l&&l.rightCliff)&&!u&&(o=!0);i.isNull&&!r(t)&&c>0?o=!h.connectNulls:i.isNull&&!t?o=!0:(c===0||o?a=[st,i.plotX,i.plotY]:e.getPointSpline?a=e.getPointSpline(n,i,c):f?(a=f===1?[tt,l.plotX,y]:f===2?[tt,(l.plotX+v)/2,l.plotY,tt,(l.plotX+v)/2,y]:[tt,v,l.plotY],a.push(tt,v,y)):a=[tt,v,y],s.push.apply(s,a),o=!1)}),e.graphPath=s,s},drawGraph:function(){var t=this,n=this.options,u=[["graph",n.lineColor||this.color,n.dashStyle]],f=n.lineWidth,o=n.linecap!=="square",r=(this.gappedPath||this.getGraphPath).call(this),e=this.fillGraph&&this.color||yt,s=this.zones;i(s,function(i,r){u.push(["zoneGraph"+r,i.color||t.color,i.dashStyle||n.dashStyle])});i(u,function(i,u){var h=i[0],c=t[h],s;c?c.animate({d:r}):(f||e)&&r.length&&(s={stroke:i[1],"stroke-width":f,fill:e,zIndex:1},i[2]?s.dashstyle=i[2]:o&&(s["stroke-linecap"]=s["stroke-linejoin"]="round"),t[h]=t.chart.renderer.path(r).attr(s).add(t.group).shadow(u<2&&n.shadow))})},applyZones:function(){var g=this,r=this.chart,nt=r.renderer,tt=this.zones,s,h,l=this.clips||[],n,v=this.graph,y=this.area,p=u(r.chartWidth,r.chartHeight),o=this[(this.zoneAxis||"y")+"Axis"],a,it=o.reversed,rt=r.inverted,w=o.horiz,d,b,k,ut=!1;tt.length&&(v||y)&&o.min!==f&&(v&&v.hide(),y&&y.hide(),a=o.getExtremes(),i(tt,function(i,f){s=it?w?r.plotWidth:0:w?0:o.toPixels(a.min);s=c(u(t(h,s),0),p);h=c(u(e(o.toPixels(t(i.value,a.max),!0)),0),p);ut&&(s=h=o.toPixels(a.max));d=Math.abs(s-h);b=c(s,h);k=u(s,h);o.isXAxis?(n={x:rt?k:b,y:0,width:d,height:p},w||(n.x=r.plotHeight-n.x)):(n={x:0,y:rt?k:b,width:p,height:d},w&&(n.y=r.plotWidth-n.y));r.inverted&&nt.isVML&&(n=o.isXAxis?{x:0,y:it?b:k,height:n.width,width:r.chartWidth}:{x:n.y-r.plotLeft-r.spacingBox.x,y:0,width:n.height,height:r.chartHeight});l[f]?l[f].animate(n):(l[f]=nt.clipRect(n),v&&g["zoneGraph"+f].clip(l[f]),y&&g["zoneArea"+f].clip(l[f]));ut=i.value>a.max}),this.clips=l)},invertGroups:function(){function t(){var t={width:n.yAxis.len,height:n.xAxis.len};i(["group","markerGroup"],function(i){n[i]&&n[i].attr(t).invert()})}var n=this,r=n.chart;n.xAxis&&(v(r,"resize",t),v(n,"destroy",function(){ft(r,"resize",t)}),t(),n.invertGroups=t)},plotGroup:function(n,t,i,r,u){var f=this[n],e=!f;return e&&(this[n]=f=this.chart.renderer.g(t).attr({zIndex:r||.1}).add(u),f.addClass("highcharts-series-"+this.index)),f.attr({visibility:i})[e?"attr":"animate"](this.getPlotBox()),f},getPlotBox:function(){var t=this.chart,i=this.xAxis,n=this.yAxis;return t.inverted&&(i=n,n=this.xAxis),{translateX:i?i.left:t.plotLeft,translateY:n?n.top:t.plotTop,scaleX:1,scaleY:1}},render:function(){var n=this,t=n.chart,r,u=n.options,f=!!n.animate&&t.renderer.isSVG&&gu(u.animation).duration,e=n.visible?"inherit":"hidden",o=u.zIndex,s=n.hasRendered,h=t.seriesGroup;r=n.plotGroup("group","series",e,o,h);n.markerGroup=n.plotGroup("markerGroup","markers",e,o,h);f&&n.animate(!0);n.getAttribs();r.inverted=n.isCartesian?t.inverted:!1;n.drawGraph&&(n.drawGraph(),n.applyZones());i(n.points,function(n){n.redraw&&n.redraw()});n.drawDataLabels&&n.drawDataLabels();n.visible&&n.drawPoints();n.drawTracker&&n.options.enableMouseTracking!==!1&&n.drawTracker();t.inverted&&n.invertGroups();u.clip===!1||n.sharedClipKey||s||r.clip(t.clipRect);f&&n.animate();s||(n.animationTimeout=su(function(){n.afterAnimate()},f));n.isDirty=n.isDirtyData=!1;n.hasRendered=!0},redraw:function(){var n=this,i=n.chart,e=n.isDirty||n.isDirtyData,r=n.group,u=n.xAxis,f=n.yAxis;r&&(i.inverted&&r.attr({width:i.plotWidth,height:i.plotHeight}),r.animate({translateX:t(u&&u.left,i.plotLeft),translateY:t(f&&f.top,i.plotTop)}));n.translate();n.render();e&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(n,t){var i=this,r=i.xAxis,u=i.yAxis,f=i.chart.inverted;return this.searchKDTree({clientX:f?r.len-n.chartY+r.pos:n.chartX-r.pos,plotY:f?u.len-n.chartX+u.pos:n.chartY-u.pos},t)},buildKDTree:function(){function t(i,r,u){var e,f,o=i&&i.length;if(o)return e=n.kdAxisArray[r%u],i.sort(function(n,t){return n[e]-t[e]}),f=Math.floor(o/2),{point:i[f],left:t(i.slice(0,f),r+1,u),right:t(i.slice(f+1),r+1,u)}}function r(){n.kdTree=t(n.getValidPoints(null,!n.directTouch),i,i)}var n=this,i=n.kdDimensions;delete n.kdTree;su(r,n.options.kdNow?0:1)},searchKDTree:function(n,t){function s(n,t){var i=r(n[u])&&r(t[u])?Math.pow(n[u]-t[u],2):null,o=r(n[f])&&r(t[f])?Math.pow(n[f]-t[f],2):null,e=(i||0)+(o||0);t.dist=r(e)?Math.sqrt(e):Number.MAX_VALUE;t.distX=r(i)?Math.sqrt(i):Number.MAX_VALUE}function e(n,t,r,u){var c=t.point,p=o.kdAxisArray[r%u],h,l,a,f=c,v,y;return s(n,c),h=n[p]-c[p],l=h<0?"left":"right",a=h<0?"right":"left",t[l]&&(v=e(n,t[l],r+1,u),f=v[i]<f[i]?v:c),t[a]&&Math.sqrt(h*h)<f[i]&&(y=e(n,t[a],r+1,u),f=y[i]<f[i]?y:f),f}var o=this,u=this.kdAxisArray[0],f=this.kdAxisArray[1],i=t?"distX":"dist";return this.kdTree||this.buildKDTree(),this.kdTree?e(n,this.kdTree,this.kdDimensions,this.kdDimensions):void 0}};co.prototype={destroy:function(){dr(this,this.axis)},render:function(n){var t=this.options,i=t.format,r=i?yr(i,this):t.formatter.call(this);this.label?this.label.attr({text:r,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(r,null,null,t.useHTML).css(t.style).attr({align:this.textAlign,rotation:t.rotation,visibility:hr}).add(n)},setOffset:function(n,t){var v=this,i=v.axis,u=i.chart,f=u.inverted,c=i.reversed,l=this.isNegative&&!c||!this.isNegative&&c,r=i.translate(i.usePercentage?100:this.total,0,0,0,1),y=i.translate(0),e=rt(r-y),a=u.xAxis[0].translate(this.x)+n,s=u.plotHeight,p={x:f?l?r:r-e:a,y:f?s-a-t:l?s-r-e:s-r,width:f?e:t,height:f?t:e},o=this.label,h;o&&(o.align(this.alignOptions,null,p),h=o.alignAttr,o[this.options.crop===!1||u.isInsidePlot(h.x,h.y)?"show":"hide"](!0))}};wi.prototype.getStacks=function(){var n=this;i(n.yAxis,function(n){n.stacks&&n.hasVisibleSeries&&(n.oldStacks=n.stacks)});i(n.series,function(i){i.options.stacking&&(i.visible===!0||n.options.chart.ignoreHiddenSeries===!1)&&(i.stackKey=i.type+t(i.options.stack,""))})};w.prototype.buildStacks=function(){var r=this.series,u,f=t(this.options.reversedStacks,!0),i=r.length,n;if(!this.isXAxis){for(this.usePercentage=!1,n=i;n--;)r[f?n:i-n-1].setStackedPoints();for(n=i;n--;)u=r[f?n:i-n-1],u.setStackCliffs&&u.setStackCliffs();if(this.usePercentage)for(n=0;n<i;n++)r[n].setPercentStacks()}};w.prototype.renderStackTotals=function(){var n=this,i=n.chart,o=i.renderer,u=n.stacks,f,r,e,t=n.stackTotalGroup;t||(n.stackTotalGroup=t=o.g("stack-labels").attr({visibility:cr,zIndex:6}).add());t.translate(i.plotLeft,i.plotTop);for(f in u){r=u[f];for(e in r)r[e].render(t)}};w.prototype.resetStacks=function(){var n=this.stacks,t,i;if(!this.isXAxis)for(t in n)for(i in n[t])n[t][i].touched<this.stacksTouched?(n[t][i].destroy(),delete n[t][i]):(n[t][i].total=null,n[t][i].cum=0)};w.prototype.cleanStacks=function(){var n,t,i;if(!this.isXAxis){this.oldStacks&&(n=this.stacks=this.oldStacks);for(t in n)for(i in n[t])n[t][i].cum=n[t][i].total}};nt.prototype.setStackedPoints=function(){if(this.options.stacking&&(this.visible===!0||this.chart.options.chart.ignoreHiddenSeries===!1)){var r=this,ut=r.processedXData,k=r.processedYData,d=[],ft=k.length,l=r.options,g=l.threshold,p=l.startFromThreshold?g:0,et=l.stack,nt=l.stacking,w=r.stackKey,tt="-"+w,it=r.negStacks,o=r.yAxis,e=o.stacks,b=o.oldStacks,a,v,n,h,f,y,c,i,s;for(o.stacksTouched+=1,c=0;c<ft;c++)i=ut[c],s=k[c],a=r.getStackIndicator(a,i,r.index),y=a.key,v=it&&s<(p?0:g),f=v?tt:w,e[f]||(e[f]={}),e[f][i]||(b[f]&&b[f][i]?(e[f][i]=b[f][i],e[f][i].total=null):e[f][i]=new co(o,o.options.stackLabels,v,i,et)),n=e[f][i],s!==null&&(n.points[y]=n.points[r.index]=[t(n.cum,p)],n.touched=o.stacksTouched,a.index>0&&r.singleStacks===!1&&(n.points[y][0]=n.points[r.index+","+i+",0"][0])),nt==="percent"?(h=v?w:tt,it&&e[h]&&e[h][i]?(h=e[h][i],n.total=h.total=u(h.total,n.total)+rt(s)||0):n.total=ii(n.total+(rt(s)||0))):n.total=ii(n.total+(s||0)),n.cum=t(n.cum,p)+(s||0),s!==null&&(n.points[y].push(n.cum),d[c]=n.cum);nt==="percent"&&(o.usePercentage=!0);this.stackedYData=d;o.oldStacks={}}};nt.prototype.setPercentStacks=function(){var n=this,r=n.stackKey,u=n.yAxis.stacks,f=n.processedXData,t;i([r,"-"+r],function(i){for(var o=f.length,s,e,r,h;o--;)s=f[o],t=n.getStackIndicator(t,s,n.index),e=u[i]&&u[i][s],r=e&&e.points[t.key],r&&(h=e.total?100/e.total:0,r[0]=ii(r[0]*h),r[1]=ii(r[1]*h),n.stackedYData[o]=r[1])})};nt.prototype.getStackIndicator=function(n,t,i){return r(n)&&n.x===t?n.index++:n={x:t,index:0},n.key=[i,t,n.index].join(","),n};o(wi.prototype,{addSeries:function(n,i,r){var f,u=this;return n&&(i=t(i,!0),g(u,"addSeries",{options:n},function(){f=u.initSeries(n);u.isDirtyLegend=!0;u.linkSeries();i&&u.redraw(r)})),f},addAxis:function(n,i,r,u){var f=i?"xAxis":"yAxis",e=this.options,o=h(n,{index:this[f].length,isX:i});new w(this,o);e[f]=yi(e[f]||{});e[f].push(o);t(r,!0)&&this.redraw(u)},showLoading:function(n){var t=this,u=t.options,i=t.loadingDiv,r=u.loading,f=function(){i&&k(i,{left:t.plotLeft+b,top:t.plotTop+b,width:t.plotWidth+b,height:t.plotHeight+b})};i||(t.loadingDiv=i=kt(ru,{className:ht+"loading"},o(r.style,{zIndex:10,display:yt}),t.container),t.loadingSpan=kt("span",null,r.labelStyle,i),v(t,"redraw",f));t.loadingSpan.innerHTML=n||u.lang.loading;t.loadingShown||(k(i,{opacity:0,display:""}),ou(i,{opacity:r.style.opacity},{duration:r.showDuration||0}),t.loadingShown=!0);f()},hideLoading:function(){var t=this.options,n=this.loadingDiv;n&&ou(n,{opacity:0},{duration:t.loading.hideDuration||100,complete:function(){k(n,{display:yt})}});this.loadingShown=!1}});o(nr.prototype,{update:function(n,i,r,u){function a(){f.applyOptions(n);f.y===null&&o&&(f.graphic=o.destroy());bt(n)&&!vr(n)&&(f.redraw=function(){o&&o.element&&n&&n.marker&&n.marker.symbol&&(f.graphic=o.destroy());n&&n.dataLabels&&f.dataLabel&&(f.dataLabel=f.dataLabel.destroy());f.redraw=null});s=f.index;e.updateParallelArrays(f,s);l&&f.name&&(l[f.x]=f.name);h.data[s]=bt(h.data[s])&&!vr(h.data[s])?f.options:n;e.isDirty=e.isDirtyData=!0;!e.fixedBox&&e.hasCartesianSeries&&(c.isDirtyBox=!0);h.legendType==="point"&&(c.isDirtyLegend=!0);i&&c.redraw(r)}var f=this,e=f.series,o=f.graphic,s,c=e.chart,h=e.options,l=e.xAxis&&e.xAxis.names;i=t(i,!0);u===!1?a():f.firePointEvent("update",{options:n},a)},remove:function(n,t){this.series.removePoint(hi(this,this.series.data),n,t)}});o(nt.prototype,{addPoint:function(n,r,u,f){var e=this,l=e.options,h=e.data,v=e.graph,y=e.area,p=e.chart,w=e.xAxis&&e.xAxis.names,g=v&&v.shift||0,b=["graph","area"],k=l.data,s,d,a=e.xData,o,c;if(hu(f,p),u){for(o=e.zones.length;o--;)b.push("zoneGraph"+o,"zoneArea"+o);i(b,function(n){e[n]&&(e[n].shift=g+(l.step?2:1))})}if(y&&(y.isArea=!0),r=t(r,!0),s={series:e},e.pointClass.prototype.applyOptions.apply(s,[n]),c=s.x,o=a.length,e.requireSorting&&c<a[o-1])for(d=!0;o&&a[o-1]>c;)o--;e.updateParallelArrays(s,"splice",o,0,0);e.updateParallelArrays(s,o);w&&s.name&&(w[c]=s.name);k.splice(o,0,n);d&&(e.data.splice(o,0,null),e.processData());l.legendType==="point"&&e.generatePoints();u&&(h[0]&&h[0].remove?h[0].remove(!1):(h.shift(),e.updateParallelArrays(s,"shift"),k.shift()));e.isDirty=!0;e.isDirtyData=!0;r&&(e.getAttribs(),p.redraw())},removePoint:function(n,i,r){var u=this,e=u.data,f=e[n],o=u.points,s=u.chart,h=function(){o&&o.length===e.length&&o.splice(n,1);e.splice(n,1);u.options.data.splice(n,1);u.updateParallelArrays(f||{series:u},"splice",n,1);f&&f.destroy();u.isDirty=!0;u.isDirtyData=!0;i&&s.redraw()};hu(r,s);i=t(i,!0);f?f.firePointEvent("remove",null,h):h()},remove:function(n,i){var u=this,r=u.chart;g(u,"remove",null,function(){u.destroy();r.isDirtyLegend=r.isDirtyBox=!0;r.linkSeries();t(n,!0)&&r.redraw(i)})},update:function(n,r){var e=this,s=this.chart,a=this.userOptions,c=this.type,v=p[c].prototype,u=["group","markerGroup","dataLabelsGroup"],l;(n.type&&n.type!==c||n.zIndex!==undefined)&&(u.length=0);i(u,function(n){u[n]=e[n];delete e[n]});n=h(a,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},n);this.remove(!1);for(l in v)this[l]=f;o(this,p[n.type||c].prototype);i(u,function(n){e[n]=u[n]});this.init(s,n);s.linkSeries();t(r,!0)&&s.redraw(!1)}});o(w.prototype,{update:function(n,i){var r=this.chart;n=r.options[this.coll][this.options.index]=h(this.userOptions,n);this.destroy(!0);this._addedPlotLB=this.chart._labelPanes=f;this.init(r,o(n,{events:f}));r.isDirtyBox=!0;t(i,!0)&&r.redraw()},remove:function(n){for(var r=this.chart,u=this.coll,f=this.series,e=f.length;e--;)f[e]&&f[e].remove(!1);gi(r.axes,this);gi(r[u],this);r.options[u].splice(this.options.index,1);i(r[u],function(n,t){n.options.index=t});this.destroy();r.isDirtyBox=!0;t(n,!0)&&r.redraw()},setTitle:function(n,t){this.update({title:n},t)},setCategories:function(n,t){this.update({categories:n},t)}});lo=ui(nt);p.line=lo;et.area=h(cu,{softThreshold:!1,threshold:0});ce=ui(nt,{type:"area",singleStacks:!1,getStackPoints:function(){var p=this,o=[],f=[],w=this.xAxis,e=this.yAxis,u=e.stacks[this.stackKey],r={},s=this.points,h=p.index,l=e.series,a=l.length,v,y=t(e.options.reversedStacks,!0)?1:-1,n,c;if(this.options.stacking){for(n=0;n<s.length;n++)r[s[n].x]=s[n];for(c in u)u[c].total!==null&&f.push(c);f.sort(function(n,t){return n-t});v=ci(l,function(){return this.visible});i(f,function(t,s){var c=0,l,p;if(r[t]&&!r[t].isNull)o.push(r[t]),i([-1,1],function(i){var c=i===1?"rightNull":"leftNull",w=i===1?"rightCliff":"leftCliff",e=0,o=u[f[s+i]];if(o)for(n=h;n>=0&&n<a;)l=o.points[n],l||(n===h?r[t][c]=!0:v[n]&&(p=u[t].points[n],p&&(e-=p[1]-p[0]))),n+=y;r[t][w]=e});else{for(n=h;n>=0&&n<a;){if(l=u[t].points[n],l){c=l[1];break}n+=y}c=e.toPixels(c,!0);o.push({isNull:!0,plotX:w.toPixels(t,!0),plotY:c,yBottom:c})}})}return o},getGraphPath:function(n){var l=nt.prototype.getGraphPath,y,f=this.options,r=f.stacking,e=this.yAxis,p,o,s=[],h=[],d=this.index,i,w,c,g=e.stacks[this.stackKey],it=f.threshold,a=e.getThreshold(f.threshold),v,b,u=f.connectNulls||r==="percent",k=function(t,i,u){var l=n[t],v=r&&g[l.x].points[d],y=l[u+"Null"]||0,p=l[u+"Cliff"]||0,f,o,w=!0;p||y?(f=(y?v[0]:v[1])+p,o=v[0]+p,w=!!y):!r&&n[i]&&n[i].isNull&&(f=o=it);f!==undefined&&(h.push({plotX:c,plotY:f===null?a:e.getThreshold(f),isNull:w}),s.push({plotX:c,plotY:o===null?a:e.getThreshold(o)}))};for(n=n||this.points,r&&(n=this.getStackPoints()),i=0;i<n.length;i++)v=n[i].isNull,c=t(n[i].rectPlotX,n[i].plotX),b=t(n[i].yBottom,a),(!v||u)&&(u||k(i,i-1,"left"),v&&!r&&u||(h.push(n[i]),s.push({x:i,plotX:c,plotY:b})),u||k(i,i+1,"right"));return p=l.call(this,h,!0,!0),s.reversed=!0,o=l.call(this,s,!0,!0),o.length&&(o[0]=tt),w=p.concat(o),y=l.call(this,h,!1,u),this.areaPath=w,y},drawGraph:function(){this.areaPath=[];nt.prototype.drawGraph.apply(this);var n=this,u=this.areaPath,r=this.options,e=this.zones,f=[["area",this.color,r.fillColor]];i(e,function(t,i){f.push(["zoneArea"+i,t.color||n.color,t.fillColor||r.fillColor])});i(f,function(i){var e=i[0],o=n[e],f;o?o.animate({d:u}):(f={fill:i[2]||i[1],zIndex:0},i[2]||(f["fill-opacity"]=t(r.fillOpacity,.75)),n[e]=n.chart.renderer.path(u).attr(f).add(n.group))})},drawLegendSymbol:au.drawRectangle});p.area=ce;et.spline=h(cu);le=ui(nt,{type:"spline",getPointSpline:function(n,i,r){var h=1.5,p=h+1,l=i.plotX,f=i.plotY,s=n[r-1],w=n[r+1],b,o,a,e,d;if(s&&!s.isNull&&w&&!w.isNull){var g=s.plotX,v=s.plotY,nt=w.plotX,y=w.plotY,k=0;b=(h*l+g)/p;o=(h*f+v)/p;a=(h*l+nt)/p;e=(h*f+y)/p;a!==b&&(k=(e-o)*(a-l)/(a-b)+f-e);o+=k;e+=k;o>v&&o>f?(o=u(v,f),e=2*f-o):o<v&&o<f&&(o=c(v,f),e=2*f-o);e>y&&e>f?(e=u(y,f),o=2*f-e):e<y&&e<f&&(e=c(y,f),o=2*f-e);i.rightContX=a;i.rightContY=e}return d=["C",t(s.rightContX,s.plotX),t(s.rightContY,s.plotY),t(b,l),t(o,f),l,f],s.rightContX=s.rightContY=null,d}});p.spline=le;et.areaspline=h(et.area);rf=ce.prototype;ao=ui(le,{type:"areaspline",getStackPoints:rf.getStackPoints,getGraphPath:rf.getGraphPath,setStackCliffs:rf.setStackCliffs,drawGraph:rf.drawGraph,drawLegendSymbol:au.drawRectangle});p.areaspline=ao;et.column=h(cu,{borderColor:"#FFFFFF",borderRadius:0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{brightness:.1,shadow:!1,halo:!1},select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0});yf=ui(nt,{type:"column",pointAttrToOptions:{stroke:"borderColor",fill:"color",r:"borderRadius"},cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){nt.prototype.init.apply(this,arguments);var n=this,t=n.chart;t.hasRendered&&i(t.series,function(t){t.type===n.type&&(t.isDirty=!0)})},getColumnMetrics:function(){var n=this,u=n.options,r=n.xAxis,a=n.yAxis,v=r.reversed,e,s={},o=0;u.grouping===!1?o=1:i(n.chart.series,function(t){var r=t.options,u=t.yAxis,i;t.type===n.type&&t.visible&&a.len===u.len&&a.pos===u.pos&&(r.stacking?(e=t.stackKey,s[e]===f&&(s[e]=o++),i=s[e]):r.grouping!==!1&&(i=o++),t.columnIndex=i)});var h=c(rt(r.transA)*(r.ordinalSlope||u.pointRange||r.closestPointRange||r.tickInterval||1),r.len),y=h*u.groupPadding,w=h-2*y,l=w/o,p=c(u.maxPointWidth||r.len,t(u.pointWidth,l*(1-2*u.pointPadding))),b=(l-p)/2,k=(n.columnIndex||0)+(v?1:0),d=b+(y+k*l-h/2)*(v?-1:1);return n.columnMetrics={width:p,offset:d},n.columnMetrics},crispCol:function(n,t,i,r){var e=this.chart,o=this.borderWidth,s=-(o%2?.5:0),u=o%2?.5:1,h,f,c;return e.inverted&&e.renderer.isVML&&(u+=1),h=Math.round(n+i)+s,n=Math.round(n)+s,i=h-n,f=Math.round(t+r)+u,c=rt(t)<=.5&&f>.5,t=Math.round(t)+u,r=f-t,c&&r&&(t-=1,r+=1),{x:n,y:t,width:i,height:r}},translate:function(){var n=this,e=n.chart,o=n.options,v=n.borderWidth=t(o.borderWidth,n.closestPointRange*n.xAxis.transA<2?0:1),r=n.yAxis,y=o.threshold,s=n.translatedThreshold=r.getThreshold(y),f=t(o.minPointLength,5),l=n.getColumnMetrics(),a=l.width,h=n.barW=u(a,1+2*v),p=n.pointXOffset=l.offset;e.inverted&&(s-=.5);o.pointPadding&&(h=tr(h));nt.prototype.translate.apply(n);i(n.points,function(i){var l=c(t(i.yBottom,s),9e4),k=999+rt(l),v=c(u(-k,i.plotY),r.len+k),y=i.plotX+p,b=h,w=c(v,l),d,o=u(v,l)-w;rt(o)<f&&f&&(o=f,d=!r.reversed&&!i.negative||r.reversed&&i.negative,w=rt(w-s)>f?l-f:s-(d?f:0));i.barX=y;i.pointWidth=a;i.tooltipPos=e.inverted?[r.len+r.pos-e.plotLeft-v,n.xAxis.len-y-b/2,o]:[y+b/2,v+r.pos-e.plotTop,o];i.shapeType="rect";i.shapeArgs=n.crispCol(y,w,b,o)})},getSymbol:si,drawLegendSymbol:au.drawRectangle,drawGraph:si,drawPoints:function(){var n=this,e=this.chart,t=n.options,o=e.renderer,s=t.animationLimit||250,u,f;i(n.points,function(i){var v=i.plotY,c=i.graphic,a;l(v)&&i.y!==null?(u=i.shapeArgs,a=r(n.borderWidth)?{"stroke-width":n.borderWidth}:{},f=i.pointAttr[i.selected?lr:ti]||n.pointAttr[ti],c?(br(c),c.attr(a).attr(f)[e.pointCount<s?"animate":"attr"](h(u))):i.graphic=c=o[i.shapeType](u).attr(a).attr(f).add(i.group||n.group).shadow(t.shadow,null,t.stacking&&!t.borderRadius)):c&&(i.graphic=c.destroy())})},animate:function(n){var t=this,i=this.yAxis,s=t.options,e=this.chart.inverted,r={},f;ni&&(n?(r.scaleY=.001,f=c(i.pos+i.len,u(i.pos,i.toPixels(s.threshold))),e?r.translateX=f-i.len:r.translateY=f,t.group.attr(r)):(r[e?"translateX":"translateY"]=i.pos,t.group.animate(r,o(gu(t.options.animation),{step:function(n,i){t.group.attr({scaleY:u(.001,i.pos)})}})),t.animate=null))},remove:function(){var n=this,t=n.chart;t.hasRendered&&i(t.series,function(t){t.type===n.type&&(t.isDirty=!0)});nt.prototype.remove.apply(n,arguments)}});p.column=yf;et.bar=h(et.column);vo=ui(yf,{type:"bar",inverted:!0});p.bar=vo;et.scatter=h(cu,{lineWidth:0,marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">●<\/span> <span style="font-size: 10px;"> {series.name}<\/span><br/>',pointFormat:"x: <b>{point.x}<\/b><br/>y: <b>{point.y}<\/b><br/>"}});ae=ui(nt,{type:"scatter",sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,kdDimensions:2,drawGraph:function(){this.options.lineWidth&&nt.prototype.drawGraph.call(this)}});p.scatter=ae;et.pie=h(cu,{borderColor:"#FFFFFF",borderWidth:1,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.y===null?undefined:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,states:{hover:{brightness:.1,shadow:!1}},stickyTracking:!1,tooltip:{followPointer:!0}});yo=ui(nr,{init:function(){nr.prototype.init.apply(this,arguments);var n=this,i;return n.name=t(n.name,"Slice"),i=function(t){n.slice(t.type==="select")},v(n,"select",i),v(n,"unselect",i),n},setVisible:function(n,r){var u=this,e=u.series,o=e.chart,s=e.options.ignoreHiddenPoint;r=t(r,s);n!==u.visible&&(u.visible=u.options.visible=n=n===f?!u.visible:n,e.options.data[hi(u,e.data)]=u.options,i(["graphic","dataLabel","connector","shadowGroup"],function(t){u[t]&&u[t][n?"show":"hide"](!0)}),u.legendItem&&o.legend.colorizeItem(u,n),n||u.state!=="hover"||u.setState(""),s&&(e.isDirty=!0),r&&o.redraw())},slice:function(n,i,u){var f=this,e=f.series,s=e.chart,o;hu(u,s);i=t(i,!0);f.sliced=f.options.sliced=n=r(n)?n:!f.sliced;e.options.data[hi(f,e.data)]=f.options;o=n?f.slicedTranslation:{translateX:0,translateY:0};f.graphic.animate(o);f.shadowGroup&&f.shadowGroup.animate(o)},haloPath:function(n){var t=this.shapeArgs,i=this.series.chart;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(i.plotLeft+t.x,i.plotTop+t.y,t.r+n,t.r+n,{innerR:this.shapeArgs.r,start:t.start,end:t.end})}});pf={type:"pie",isCartesian:!1,pointClass:yo,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},animate:function(n){var t=this,u=t.points,r=t.startAngleRad;n||(i(u,function(n){var i=n.graphic,u=n.shapeArgs;i&&(i.attr({r:n.startR||t.center[3]/2,start:r,end:r}),i.animate({r:u.r,start:u.start,end:u.end},t.options.animation))}),t.animate=null)},updateTotals:function(){for(var i=0,r=this.points,u=r.length,t,f=this.options.ignoreHiddenPoint,n=0;n<u;n++)t=r[n],i+=f&&!t.visible?0:t.y;for(this.total=i,n=0;n<u;n++)t=r[n],t.percentage=i>0&&(t.visible||!f)?t.y/i*100:0,t.total=i},generatePoints:function(){nt.prototype.generatePoints.call(this);this.updateTotals()},translate:function(n){this.generatePoints();var u=this,y=0,l=1e3,f=u.options,p=f.slicedOffset,a=p+f.borderWidth,w,b,i,d=f.startAngle||0,k=u.startAngleRad=bi/180*(d-90),tt=u.endAngleRad=bi/180*(t(f.endAngle,d+360)-90),g=tt-k,nt=u.points,s,h,o=f.dataLabels.distance,it=f.ignoreHiddenPoint,v,rt=nt.length,r;for(n||(u.center=n=u.getCenter()),u.getX=function(t,r){return i=ct.asin(c((t-n[1])/(n[2]/2+o),1)),n[0]+(r?-1:1)*pt(i)*(n[2]/2+o)},v=0;v<rt;v++)r=nt[v],w=k+y*g,(!it||r.visible)&&(y+=r.percentage/100),b=k+y*g,r.shapeType="arc",r.shapeArgs={x:n[0],y:n[1],r:n[2]/2,innerR:n[3]/2,start:e(w*l)/l,end:e(b*l)/l},i=(b+w)/2,i>1.5*bi?i-=2*bi:i<-bi/2&&(i+=2*bi),r.slicedTranslation={translateX:e(pt(i)*p),translateY:e(gt(i)*p)},s=pt(i)*n[2]/2,h=gt(i)*n[2]/2,r.tooltipPos=[n[0]+s*.7,n[1]+h*.7],r.half=i<-bi/2||i>bi/2?1:0,r.angle=i,a=c(a,o/2),r.labelPos=[n[0]+s+pt(i)*o,n[1]+h+gt(i)*o,n[0]+s+pt(i)*a,n[1]+h+gt(i)*a,n[0]+s,n[1]+h,o<0?"center":r.half?"right":"left",i]},drawGraph:null,drawPoints:function(){var n=this,l=n.chart,e=l.renderer,u,f,s=n.options.shadow,t,r,h,c;s&&!n.shadowGroup&&(n.shadowGroup=e.g("shadow").add(n.group));i(n.points,function(i){i.y!==null&&(f=i.graphic,h=i.shapeArgs,t=i.shadowGroup,r=i.pointAttr[i.selected?lr:ti],r.stroke||(r.stroke=r.fill),s&&!t&&(t=i.shadowGroup=e.g("shadow").add(n.shadowGroup)),u=i.sliced?i.slicedTranslation:{translateX:0,translateY:0},t&&t.attr(u),f?f.setRadialReference(n.center).attr(r).animate(o(h,u)):(c={"stroke-linejoin":"round"},i.visible||(c.visibility="hidden"),i.graphic=f=e[i.shapeType](h).setRadialReference(n.center).attr(r).attr(c).attr(u).add(n.group).shadow(s,t)))})},searchPoint:si,sortByAngle:function(n,t){n.sort(function(n,i){return n.angle!==undefined&&(i.angle-n.angle)*t})},drawLegendSymbol:au.drawRectangle,getCenter:ho.getCenter,getSymbol:si};pf=ui(nt,pf);p.pie=pf;nt.prototype.drawDataLabels=function(){var u=this,c=u.options,p=c.cursor,n=c.dataLabels,k=u.points,l,a,y=u.hasRendered||0,e,s,w=t(n.defer,!0),b=u.chart.renderer;(n.enabled||u._hasPointLabels)&&(u.dlProcessOptions&&u.dlProcessOptions(n),s=u.plotGroup("dataLabelsGroup","data-labels",w&&!y?"hidden":"visible",n.zIndex||6),w&&(s.attr({opacity:+y}),y||v(u,"afterAnimate",function(){u.visible&&s.show();s[c.animation?"animate":"attr"]({opacity:1},{duration:200})})),a=n,i(k,function(i){var k,v=i.dataLabel,d,y,g,nt,it=i.connector,rt=!0,w,tt={};if(l=i.dlOptions||i.options&&i.options.dataLabels,k=t(l&&l.enabled,a.enabled)&&i.y!==null,v&&!k)i.dataLabel=v.destroy();else if(k){if(n=h(a,l),w=n.style,nt=n.rotation,d=i.getLabelConfig(),e=n.format?yr(n.format,d):n.formatter.call(d,n),w.color=t(n.color,w.color,u.color,"black"),v)r(e)?(v.attr({text:e}),rt=!1):(i.dataLabel=v=v.destroy(),it&&(i.connector=it.destroy()));else if(r(e)){y={fill:n.backgroundColor,stroke:n.borderColor,"stroke-width":n.borderWidth,r:n.borderRadius||0,rotation:nt,padding:n.padding,zIndex:1};w.color==="contrast"&&(tt.color=n.inside||n.distance<0||!!c.stacking?b.getContrast(i.color||u.color):"#000000");p&&(tt.cursor=p);for(g in y)y[g]===f&&delete y[g];v=i.dataLabel=b[nt?"text":"label"](e,0,-9999,n.shape,null,null,n.useHTML).attr(y).css(o(w,tt)).add(s).shadow(n.shadow)}v&&u.alignDataLabel(i,v,n,null,rt)}}))};nt.prototype.alignDataLabel=function(n,i,r,u,f){var c=this.chart,l=c.inverted,a=t(n.plotX,-9999),p=t(n.plotY,-9999),h=i.getBBox(),nt=c.renderer.fontMetrics(r.style.fontSize).b,v=r.rotation,w,b,y=r.align,d,k=this.visible&&(n.series.forceDL||c.isInsidePlot(a,e(p),l)||u&&c.isInsidePlot(a,l?u.x+1:u.y+u.height-1,l)),s,g=t(r.overflow,"justify")==="justify";k&&(u=o({x:l?c.plotWidth-p:a,y:e(l?c.plotHeight-a:p),width:0,height:0},u),o(r,{width:h.width,height:h.height}),v?(g=!1,d=c.renderer.rotCorr(nt,v),s={x:u.x+r.x+u.width/2+d.x,y:u.y+r.y+{top:0,middle:.5,bottom:1}[r.verticalAlign]*u.height},i[f?"attr":"animate"](s).attr({align:y}),w=(v+720)%360,b=w>180&&w<360,y==="left"?s.y-=b?h.height:0:y==="center"?(s.x-=h.width/2,s.y-=h.height/2):y==="right"&&(s.x-=h.width,s.y-=b?0:h.height)):(i.align(r,null,u),s=i.alignAttr),g?this.justifyDataLabel(i,r,s,h,u,f):t(r.crop,!0)&&(k=c.isInsidePlot(s.x,s.y)&&c.isInsidePlot(s.x+h.width,s.y+h.height)),r.shape&&!v&&i.attr({anchorX:n.plotX,anchorY:n.plotY}));k||(br(i),i.attr({y:-9999}),i.placed=!1)};nt.prototype.justifyDataLabel=function(n,t,i,r,u,f){var s=this.chart,c=t.align,l=t.verticalAlign,e,o,h=n.box?0:n.padding||0;e=i.x+h;e<0&&(c==="right"?t.align="left":t.x=-e,o=!0);e=i.x+r.width-h;e>s.plotWidth&&(c==="left"?t.align="right":t.x=s.plotWidth-e,o=!0);e=i.y+h;e<0&&(l==="bottom"?t.verticalAlign="top":t.y=-e,o=!0);e=i.y+r.height-h;e>s.plotHeight&&(l==="top"?t.verticalAlign="bottom":t.y=s.plotHeight-e,o=!0);o&&(n.placed=!f,n.align(t,null,u))};p.pie&&(p.pie.prototype.drawDataLabels=function(){var l=this,oi=l.data,g,at=l.chart,p=l.options.dataLabels,it=t(p.connectorPadding,10),ti=t(p.connectorWidth,1),ii=at.plotWidth,ri=at.plotHeight,d,pt,si=t(p.softConnector,!0),b=p.distance,wt=l.center,ot=wt[2]/2,vt=wt[1],hi=b>0,s,ht,r,k,ui=[[],[]],a,f,ct,bt,ut,n,y=[0,0,0,0],fi=function(n,t){return t.y-n.y},dt,gt,lt,ni,et;if(l.visible&&(p.enabled||l._hasPointLabels)){for(nt.prototype.drawDataLabels.apply(l),i(oi,function(n){n.dataLabel&&n.visible&&(ui[n.half].push(n),n.dataLabel._pos=null)}),ut=2;ut--;){var v=[],ft,kt=[],h=ui[ut],yt,ei,w=h.length,o;if(w){for(l.sortByAngle(h,ut-.5),n=k=0;!k&&h[n];)k=h[n]&&h[n].dataLabel&&(h[n].dataLabel.getBBox().height||21),n++;if(b>0){for(ei=c(vt+ot+b,at.plotHeight),yt=u(0,vt-ot-b);yt<=ei;yt+=k)v.push(yt);if(ft=v.length,w>ft){for(bt=[].concat(h),bt.sort(fi),n=w;n--;)bt[n].rank=n;for(n=w;n--;)h[n].rank>=ft&&h.splice(n,1);w=h.length}for(n=0;n<w;n++){for(g=h[n],r=g.labelPos,dt=9999,lt=0;lt<ft;lt++)gt=rt(v[lt]-r[1]),gt<dt&&(dt=gt,o=lt);if(o<n&&v[n]!==null)o=n;else if(ft<w-n+o&&v[n]!==null)for(o=ft-w+n;v[o]===null;)o++;else while(v[o]===null)o++;kt.push({i:o,y:v[o]});v[o]=null}kt.sort(fi)}for(n=0;n<w;n++)g=h[n],r=g.labelPos,s=g.dataLabel,ct=g.visible===!1?hr:"inherit",et=r[1],b>0?(ni=kt.pop(),o=ni.i,f=ni.y,(et>f&&v[o+1]!==null||et<f&&v[o-1]!==null)&&(f=c(u(0,et),at.plotHeight))):f=et,a=p.justify?wt[0]+(ut?-1:1)*(ot+b):l.getX(f===vt-ot-b||f===vt+ot+b?et:f,ut),s._attr={visibility:ct,align:r[6]},s._pos={x:a+p.x+({left:it,right:-it}[r[6]]||0),y:f+p.y-10},s.connX=a,s.connY=f,this.options.size===null&&(ht=s.width,a-ht<it?y[3]=u(e(ht-a+it),y[3]):a+ht>ii-it&&(y[1]=u(e(a+ht-ii+it),y[1])),f-k/2<0?y[0]=u(e(-f+k/2),y[0]):f+k/2>ri&&(y[2]=u(e(f+k/2-ri),y[2])))}}(ur(y)===0||this.verifyDataLabelOverflow(y))&&(this.placeDataLabels(),hi&&ti&&i(this.points,function(n){d=n.connector;r=n.labelPos;s=n.dataLabel;s&&s._pos&&n.visible?(ct=s._attr.visibility,a=s.connX,f=s.connY,pt=si?[st,a+(r[6]==="left"?5:-5),f,"C",a,f,2*r[2]-r[4],2*r[3]-r[5],r[2],r[3],tt,r[4],r[5]]:[st,a+(r[6]==="left"?5:-5),f,tt,r[2],r[3],tt,r[4],r[5]],d?(d.animate({d:pt}),d.attr("visibility",ct)):n.connector=d=l.chart.renderer.path(pt).attr({"stroke-width":ti,stroke:p.connectorColor||n.color||"#606060",visibility:ct}).add(l.dataLabelsGroup)):d&&(n.connector=d.destroy())}))}},p.pie.prototype.placeDataLabels=function(){i(this.points,function(n){var t=n.dataLabel,i;t&&n.visible&&(i=t._pos,i?(t.attr(t._attr),t[t.moved?"animate":"attr"](i),t.moved=!0):t&&t.attr({y:-9999}))})},p.pie.prototype.alignDataLabel=si,p.pie.prototype.verifyDataLabelOverflow=function(n){var t=this.center,f=this.options,e=f.center,r=f.minSize||80,i=r,o;return e[0]!==null?i=u(t[2]-u(n[1],n[3]),r):(i=u(t[2]-n[1]-n[3],r),t[0]+=(n[3]-n[1])/2),e[1]!==null?i=u(c(i,t[2]-u(n[0],n[2])),r):(i=u(c(i,t[2]-n[0]-n[2]),r),t[1]+=(n[0]-n[2])/2),i<t[2]?(t[2]=i,t[3]=Math.min(fo(f.innerSize||0,i),i),this.translate(t),this.drawDataLabels&&this.drawDataLabels()):o=!0,o});p.column&&(p.column.prototype.alignDataLabel=function(n,i,r,u,f){var e=this.chart.inverted,o=n.series,a=n.dlBox||n.shapeArgs,s=t(n.below,n.plotY>t(this.translatedThreshold,o.yAxis.len)),c=t(r.inside,!!this.options.stacking),l;a&&(u=h(a),u.y<0&&(u.height+=u.y,u.y=0),l=u.y+u.height-o.yAxis.len,l>0&&(u.height-=l),e&&(u={x:o.yAxis.len-u.y-u.height,y:o.xAxis.len-u.x-u.width,width:u.height,height:u.width}),c||(e?(u.x+=s?0:u.width,u.width=0):(u.y+=s?u.height:0,u.height=0)));r.align=t(r.align,!e||c?"center":s?"right":"left");r.verticalAlign=t(r.verticalAlign,e||c?"middle":s?"top":"bottom");nt.prototype.alignDataLabel.call(this,n,i,r,u,f)}),function(n){var i=n.Chart,t=n.each,r=n.pick,u=n.addEvent;i.prototype.callbacks.push(function(n){function i(){var i=[];t(n.series,function(n){var u=n.options.dataLabels,f=n.dataLabelCollections||["dataLabel"];(u.enabled||n._hasPointLabels)&&!u.allowOverlap&&n.visible&&t(f,function(u){t(n.points,function(n){n[u]&&(n[u].labelrank=r(n.labelrank,n.shapeArgs&&n.shapeArgs.height),i.push(n[u]))})})});n.hideOverlappingLabels(i)}i();u(n,"redraw",i)});i.prototype.hideOverlappingLabels=function(n){for(var s=n.length,f,o,i,r,v,h,c,l,a,e,y=function(n,t,i,r,u,f,e,o){return!(u>n+i||u+e<n||f>t+r||f+o<t)},u=0;u<s;u++)f=n[u],f&&(f.oldOpacity=f.opacity,f.newOpacity=1);for(n.sort(function(n,t){return(t.labelrank||0)-(n.labelrank||0)}),u=0;u<s;u++)for(i=n[u],o=u+1;o<s;++o)r=n[o],i&&r&&i.placed&&r.placed&&i.newOpacity!==0&&r.newOpacity!==0&&(h=i.alignAttr,c=r.alignAttr,l=i.parentGroup,a=r.parentGroup,e=2*(i.box?0:i.padding),v=y(h.x+l.translateX,h.y+l.translateY,i.width-e,i.height-e,c.x+a.translateX,c.y+a.translateY,r.width-e,r.height-e),v&&((i.labelrank<r.labelrank?i:r).newOpacity=0));t(n,function(n){var i,t;n&&(t=n.newOpacity,n.oldOpacity!==t&&n.placed&&(t?n.show(!0):i=function(){n.hide()},n.alignAttr.opacity=t,n[n.isOld?"animate":"attr"](n.alignAttr,null,i)),n.isOld=!0)})}}(s);vu=s.TrackerMixin={drawTrackerPoint:function(){var n=this,t=n.chart,e=t.pointer,r=n.options.cursor,o=r&&{cursor:r},u=function(n){for(var r=n.target,i;r&&!i;)i=r.point,r=r.parentNode;if(i!==f&&i!==t.hoverPoint)i.onMouseOver(n)};i(n.points,function(n){n.graphic&&(n.graphic.element.point=n);n.dataLabel&&(n.dataLabel.element.point=n)});n._hasTracking||(i(n.trackerGroups,function(t){if(n[t]&&(n[t].addClass(ht+"tracker").on("mouseover",u).on("mouseout",function(n){e.onTrackerMouseOut(n)}).css(o),fu))n[t].on("touchstart",u)}),n._hasTracking=!0)},drawTrackerGraph:function(){var n=this,e=n.options,u=e.trackByArea,r=[].concat(u?n.areaPath:n.graphPath),o=r.length,f=n.chart,v=f.pointer,y=f.renderer,s=f.options.tooltip.snap,h=n.tracker,c=e.cursor,p=c&&{cursor:c},t,l=function(){f.hoverSeries!==n&&n.onMouseOver()},a="rgba(192,192,192,"+(ni?.0001:.002)+")";if(o&&!u)for(t=o+1;t--;)r[t]===st&&r.splice(t+1,0,r[t+1]-s,r[t+2],tt),(t&&r[t]===st||t===o)&&r.splice(t,0,tt,r[t-2]+s,r[t-1]);h?h.attr({d:r}):(n.tracker=y.path(r).attr({"stroke-linejoin":"round",visibility:n.visible?cr:hr,stroke:a,fill:u?a:yt,"stroke-width":e.lineWidth+(u?0:2*s),zIndex:2}).add(n.group),i([n.tracker,n.markerGroup],function(n){if(n.addClass(ht+"tracker").on("mouseover",l).on("mouseout",function(n){v.onTrackerMouseOut(n)}).css(p),fu)n.on("touchstart",l)}))}};p.column&&(yf.prototype.drawTracker=vu.drawTrackerPoint);p.pie&&(p.pie.prototype.drawTracker=vu.drawTrackerPoint);p.scatter&&(ae.prototype.drawTracker=vu.drawTrackerPoint);o(tf.prototype,{setItemEvents:function(n,t,i,r,u){var f=this;(i?t:n.legendGroup).on("mouseover",function(){n.setState(di);t.css(f.options.itemHoverStyle)}).on("mouseout",function(){t.css(n.visible?r:u);n.setState()}).on("click",function(t){var i="legendItemClick",r=function(){n.setVisible&&n.setVisible()};t={browserEvent:t};n.firePointEvent?n.firePointEvent(i,t,r):g(n,i,t,r)})},createCheckboxForItem:function(n){var t=this;n.checkbox=kt("input",{type:"checkbox",checked:n.selected,defaultChecked:n.selected},t.options.itemCheckboxStyle,t.chart.container);v(n.checkbox,"click",function(t){var i=t.target;g(n.series||n,"checkboxClick",{checked:i.checked,item:n},function(){n.select()})})}});it.legend.itemStyle.cursor="pointer";o(wi.prototype,{showResetZoom:function(){function e(){t.zoomOut()}var t=this,i=it.lang,n=t.options.chart.resetZoomButton,r=n.theme,u=r.states,f=n.relativeTo==="chart"?null:"plotBox";this.resetZoomButton=t.renderer.button(i.resetZoom,null,null,e,r,u&&u.hover).attr({align:n.position.align,title:i.resetZoomTitle}).add().align(n.position,!1,f)},zoomOut:function(){var n=this;g(n,"selection",{resetSelection:!0},function(){n.zoom()})},zoom:function(n){var r=this,f,o=r.pointer,e=!1,u;!n||n.resetSelection?i(r.axes,function(n){f=n.zoom()}):i(n.xAxis.concat(n.yAxis),function(n){var t=n.axis,i=t.isXAxis;(o[i?"zoomX":"zoomY"]||o[i?"pinchX":"pinchY"])&&(f=t.zoom(n.min,n.max),t.displayBtn&&(e=!0))});u=r.resetZoomButton;e&&!u?r.showResetZoom():!e&&bt(u)&&(r.resetZoomButton=u.destroy());f&&r.redraw(t(r.options.chart.animation,n&&n.animation,r.pointCount<100))},pan:function(n,t){var r=this,f=r.hoverPoints,e;f&&i(f,function(n){n.setState()});i(t==="xy"?[1,0]:[1],function(t){var i=r[t?"xAxis":"yAxis"][0],h=i.horiz,f=n[h?"chartX":"chartY"],l=h?"mouseDownX":"mouseDownY",s=r[l],a=(i.pointRange||0)/2,o=i.getExtremes(),v=i.toValue(s-f,!0)+a,y=i.toValue(s+i.len-f,!0)-a,p=s>f;i.series.length&&(p||v>c(o.dataMin,o.min))&&(!p||y<u(o.dataMax,o.max))&&(i.setExtremes(v,y,!1,!1,{trigger:"pan"}),e=!0);r[l]=f});e&&r.redraw(!1);k(r.container,{cursor:"move"})}});o(nr.prototype,{select:function(n,r){var u=this,f=u.series,e=f.chart;n=t(n,!u.selected);u.firePointEvent(n?"select":"unselect",{accumulate:r},function(){u.selected=u.options.selected=n;f.options.data[hi(u,f.data)]=u.options;u.setState(n&&lr);r||i(e.getSelectedPoints(),function(n){n.selected&&n!==u&&(n.selected=n.options.selected=!1,f.options.data[hi(n,f.data)]=n.options,n.setState(ti),n.firePointEvent("unselect"))})})},onMouseOver:function(n,t){var i=this,r=i.series,u=r.chart,f=u.tooltip,e=u.hoverPoint;u.hoverSeries!==r&&r.onMouseOver();e&&e!==i&&e.onMouseOut();i.series&&(i.firePointEvent("mouseOver"),f&&(!f.shared||r.noSharedTooltip)&&f.refresh(i,n),i.setState(di),t||(u.hoverPoint=i))},onMouseOut:function(){var n=this.series.chart,t=n.hoverPoints;this.firePointEvent("mouseOut");t&&hi(this,t)!==-1||(this.setState(),n.hoverPoint=null)},importEvents:function(){if(!this.hasImportedEvents){var n=this,r=h(n.series.options.point,n.options),t=r.events,i;n.events=t;for(i in t)v(n,i,t[i]);this.hasImportedEvents=!0}},setState:function(n,t){var i=this,y=ot(i.plotX),p=i.plotY,f=i.series,w=f.options.states,s=et[f.type].marker&&f.options.marker,d=s&&!s.enabled,c=s&&s.states[n],g=c&&c.enabled===!1,r=f.stateMarkerGraphic,b=i.marker||{},l=f.chart,u,a=f.halo,e,v,k;(n=n||ti,k=i.pointAttr[n]||f.pointAttr[n],n===i.state&&!t||i.selected&&n!==lr||w[n]&&w[n].enabled===!1||n&&(g||d&&c.enabled===!1)||n&&b.states&&b.states[n]&&b.states[n].enabled===!1)||(i.graphic?(u=s&&i.graphic.symbolName&&k.r,i.graphic.attr(h(k,u?{x:y-u,y:p-u,width:2*u,height:2*u}:{})),r&&r.hide()):(n&&c&&(u=c.radius,v=b.symbol||f.symbol,r&&r.currentSymbol!==v&&(r=r.destroy()),r?r[t?"animate":"attr"]({x:y-u,y:p-u}):v&&(f.stateMarkerGraphic=r=l.renderer.symbol(v,y-u,p-u,2*u,2*u).attr(k).add(f.markerGroup),r.currentSymbol=v)),r&&(r[n&&l.isInsidePlot(y,p,l.inverted)?"show":"hide"](),r.element.point=i)),e=w[n]&&w[n].halo,e&&e.size?(a||(f.halo=a=l.renderer.path().add(l.seriesGroup)),a.attr(o({fill:i.color||f.color,"fill-opacity":e.opacity,zIndex:-1},e.attributes))[t?"animate":"attr"]({d:i.haloPath(e.size)})):a&&a.attr({d:[]}),i.state=n)},haloPath:function(n){var t=this.series,i=t.chart,r=t.getPlotBox(),u=i.inverted,f=Math.floor(this.plotX);return i.renderer.symbols.circle(r.translateX+(u?t.yAxis.len-this.plotY:f)-n,r.translateY+(u?t.xAxis.len-f:this.plotY)-n,n*2,n*2)}});o(nt.prototype,{onMouseOver:function(){var n=this,i=n.chart,t=i.hoverSeries;t&&t!==n&&t.onMouseOut();n.options.events.mouseOver&&g(n,"mouseOver");n.setState(di);i.hoverSeries=n},onMouseOut:function(){var n=this,r=n.options,t=n.chart,i=t.tooltip,u=t.hoverPoint;t.hoverSeries=null;u&&u.onMouseOut();n&&r.events.mouseOut&&g(n,"mouseOut");i&&!r.stickyTracking&&(!i.shared||n.noSharedTooltip)&&i.hide();n.setState()},setState:function(n){var t=this,o=t.options,u=t.graph,i=o.states,f=o.lineWidth,e,r=0;if(n=n||ti,t.state!==n){if(t.state=n,i[n]&&i[n].enabled===!1)return;if(n&&(f=i[n].lineWidth||f+(i[n].lineWidthPlus||0)),u&&!u.dashstyle)for(e={"stroke-width":f},u.attr(e);t["zoneGraph"+r];)t["zoneGraph"+r].attr(e),r=r+1}},setVisible:function(n,t){var r=this,u=r.chart,o=r.legendItem,e,s=u.options.chart.ignoreHiddenSeries,h=r.visible;r.visible=n=r.userOptions.visible=n===f?!h:n;e=n?"show":"hide";i(["group","dataLabelsGroup","markerGroup","tracker"],function(n){r[n]&&r[n][e]()});(u.hoverSeries===r||(u.hoverPoint&&u.hoverPoint.series)===r)&&r.onMouseOut();o&&u.legend.colorizeItem(r,n);r.isDirty=!0;r.options.stacking&&i(u.series,function(n){n.options.stacking&&n.visible&&(n.isDirty=!0)});i(r.linkedSeries,function(t){t.setVisible(n,!1)});s&&(u.isDirtyBox=!0);t!==!1&&u.redraw();g(r,e)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(n){var t=this;t.selected=n=n===f?!t.selected:n;t.checkbox&&(t.checkbox.checked=n);g(t,n?"select":"unselect")},drawTracker:vu.drawTrackerGraph});ut(nt.prototype,"init",function(n){var i=this,t;n.apply(this,Array.prototype.slice.call(arguments,1));t=i.xAxis;t&&t.options.ordinal&&v(i,"updatedData",function(){delete t.ordinalIndex})});ut(w.prototype,"getTimeTicks",function(n,t,i,u,e,o,s,h){var v=0,c,y,b={},ht,g,it,rt,l=[],ut=-Number.MAX_VALUE,ft=this.options.tickPixelInterval;if(!this.options.ordinal&&!this.options.breaks||!o||o.length<3||i===f)return n.call(this,t,i,u,e);for(it=o.length,c=0;c<it;c++){if(rt=c&&o[c-1]>u,o[c]<i&&(v=c),c===it-1||o[c+1]-o[c]>s*5||rt){if(o[c]>ut){for(y=n.call(this,t,o[v],o[c],e);y.length&&y[0]<=ut;)y.shift();y.length&&(ut=y[y.length-1]);l=l.concat(y)}v=c+1}if(rt)break}if(g=y.info,h&&g.unitRange<=d.hour){for(c=l.length-1,v=1;v<c;v++)ri("%d",l[v])!==ri("%d",l[v-1])&&(b[l[v]]="day",ht=!0);ht&&(b[l[0]]="day");g.higherRanks=b}if(l.info=g,h&&r(ft)){for(var nt=l.length,a=nt,et,w,ct=[],p,k,st,tt=[];a--;)w=this.translate(l[a]),p&&(tt[a]=p-w),ct[a]=p=w;for(tt.sort(),k=tt[ot(tt.length/2)],k<ft*.6&&(k=null),a=l[nt-1]>u?nt-1:nt,p=undefined;a--;)w=ct[a],st=p-w,p&&st<ft*.8&&(k===null||st<k*.8)?(b[l[a]]&&!b[l[a+1]]?(et=a+1,p=w):et=a,l.splice(et,1)):p=w}return l});o(w.prototype,{beforeSetTickPositions:function(){var t=this,r,n=[],e=!1,o,v=t.getExtremes(),s=v.min,l=v.max,a,y,p,w=t.isXAxis&&!!t.options.breaks,b=t.options.ordinal,h;if(b||w){if(i(t.series,function(t,i){if(t.visible!==!1&&(t.takeOrdinalPosition!==!1||w)&&(n=n.concat(t.processedXData),r=n.length,n.sort(function(n,t){return n-t}),r))for(i=r-1;i--;)n[i]===n[i+1]&&n.splice(i,1)}),r=n.length,r>2){for(o=n[1]-n[0],h=r-1;h--&&!e;)n[h+1]-n[h]!==o&&(e=!0);!t.options.keepOrdinalPadding&&(n[0]-s>o||l-n[n.length-1]>o)&&(e=!0)}e?(t.ordinalPositions=n,a=t.val2lin(u(s,n[0]),!0),y=u(t.val2lin(c(l,n[n.length-1]),!0),1),t.ordinalSlope=p=(l-s)/(y-a),t.ordinalOffset=s-a*p):t.ordinalPositions=t.ordinalSlope=t.ordinalOffset=f}t.isOrdinal=b&&e;t.groupIntervalFactor=null},val2lin:function(n,t){var f=this,r=f.ordinalPositions,e,o,i,s,u;if(r){for(o=r.length,i=o;i--;)if(r[i]===n){u=i;break}for(i=o-1;i--;)if(n>r[i]||i===0){s=(n-r[i])/(r[i+1]-r[i]);u=i+s;break}e=t?u:f.ordinalSlope*(u||0)+f.ordinalOffset}else e=n;return e},lin2val:function(n,t){var o=this,r=o.ordinalPositions,s;if(r){var h=o.ordinalSlope,c=o.ordinalOffset,i=r.length-1,e,l,u;if(t)n<0?n=r[0]:n>i?n=r[i]:(i=ot(n),u=n-i);else while(i--)if(e=h*i+c,n>=e){l=h*(i+1)+c;u=(n-e)/(l-e);break}s=u!==f&&r[i]!==f?r[i]+(u?u*(r[i+1]-r[i]):0):n}else s=n;return s},getExtendedPositions:function(){var n=this,s=n.chart,t=n.series[0].currentDataGrouping,r=n.ordinalIndex,e=t?t.count+t.unitName:"raw",o=n.getExtremes(),u,f;return r||(r=n.ordinalIndex={}),r[e]||(u={series:[],getExtremes:function(){return{min:o.dataMin,max:o.dataMax}},options:{ordinal:!0},val2lin:w.prototype.val2lin},i(n.series,function(n){f={xAxis:u,xData:n.xData,chart:s,destroyGroupedData:si};f.options={dataGrouping:t?{enabled:!0,forced:!0,approximation:"open",units:[[t.unitName,[t.count]]]}:{enabled:!1}};n.processData.apply(f);u.series.push(f)}),n.beforeSetTickPositions.apply(u),r[e]=u.ordinalPositions),r[e]},getGroupIntervalFactor:function(n,t,i){var r,f=i.processedXData,e=f.length,o=[],h,s=this.groupIntervalFactor;if(!s){for(r=0;r<e-1;r++)o[r]=f[r+1]-f[r];o.sort(function(n,t){return n-t});h=o[ot(e/2)];n=u(n,f[0]);t=c(t,f[e-1]);this.groupIntervalFactor=s=e*h/(t-n)}return s},postProcessTickInterval:function(n){var t=this.ordinalSlope;return t?this.options.breaks?this.closestPointRange:n/(t/this.closestPointRange):n}});ut(wi.prototype,"pan",function(n,t){var f=this,r=f.xAxis[0],d=t.chartX,y=!1;if(r.options.ordinal&&r.series.length){var it=f.mouseDownX,h=r.getExtremes(),p=h.dataMax,w=h.min,b=h.max,e,g=f.hoverPoints,ut=r.closestPointRange,ft=r.translationSlope*(r.ordinalSlope||ut),l=(it-d)/ft,o={ordinalPositions:r.getExtendedPositions()},a,v,nt=r.lin2val,tt=r.val2lin,s;o.ordinalPositions?rt(l)>1&&(g&&i(g,function(n){n.setState()}),l<0?(v=o,s=r.ordinalPositions?r:o):(v=r.ordinalPositions?r:o,s=o),a=s.ordinalPositions,p>a[a.length-1]&&a.push(p),f.fixedRange=b-w,e=r.toFixedRange(null,null,nt.apply(v,[tt.apply(v,[w,!0])+l,!0]),nt.apply(s,[tt.apply(s,[b,!0])+l,!0])),e.min>=c(h.dataMin,w)&&e.max<=u(p,b)&&r.setExtremes(e.min,e.max,!0,!1,{trigger:"pan"}),f.mouseDownX=d,k(f.container,{cursor:"move"})):y=!0}else y=!0;y&&n.apply(this,Array.prototype.slice.call(arguments,1))});nt.prototype.gappedPath=function(){var i=this.options.gapSize,n=this.points.slice(),t=n.length-1;if(i&&t>0)while(t--)n[t+1].x-n[t].x>this.closestPointRange*i&&n.splice(t+1,0,{isNull:!0});return this.getGraphPath(n)},function(n){n(s)}(function(n){"use strict";function h(){return Array.prototype.slice.call(arguments,1)}function e(n){n.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,r(this.pointArrayMap,["y"]))}var r=n.pick,t=n.wrap,u=n.each,o=n.extend,f=n.fireEvent,i=n.Axis,s=n.Series;o(i.prototype,{isInBreak:function(n,t){var i=n.repeat||Infinity,r=n.from,f=n.to-n.from,u=t>=r?(t-r)%i:i-(r-t)%i;return n.inclusive?u<=f:u<f&&u!==0},isInAnyBreak:function(n,t){var i=this.options.breaks,u=i&&i.length,f,e,o;if(u){while(u--)this.isInBreak(i[u],n)&&(f=!0,e||(e=r(i[u].showPoints,this.isXAxis?!1:!0)));o=f&&t?f&&!e:f}return o}});t(i.prototype,"setTickPositions",function(n){if(n.apply(this,Array.prototype.slice.call(arguments,1)),this.options.breaks){for(var u=this,i=this.tickPositions,f=this.tickPositions.info,r=[],t=0;t<i.length;t++)u.isInAnyBreak(i[t])||r.push(i[t]);this.tickPositions=r;this.tickPositions.info=f}});t(i.prototype,"init",function(n,t,r){if(r.breaks&&r.breaks.length&&(r.ordinal=!1),n.call(this,t,r),this.options.breaks){var u=this;u.isBroken=!0;this.val2lin=function(n){for(var r=n,t,i=0;i<u.breakArray.length;i++)if(t=u.breakArray[i],t.to<=n)r-=t.len;else if(t.from>=n)break;else if(u.isInBreak(t,n)){r-=n-t.from;break}return r};this.lin2val=function(n){for(var t=n,i,r=0;r<u.breakArray.length;r++)if(i=u.breakArray[r],i.from>=t)break;else i.to<t?t+=i.len:u.isInBreak(i,t)&&(t+=i.len);return t};this.setExtremes=function(n,t,r,u,f){while(this.isInAnyBreak(n))n-=this.closestPointRange;while(this.isInAnyBreak(t))t-=this.closestPointRange;i.prototype.setExtremes.call(this,n,t,r,u,f)};this.setAxisTranslation=function(n){i.prototype.setAxisTranslation.call(this,n);var a=u.options.breaks,c=[],y=[],p=0,v,e,t,o=u.userMin||u.min,s=u.userMax||u.max,r,h,l;for(h in a)t=a[h],e=t.repeat||Infinity,u.isInBreak(t,o)&&(o+=t.to%e-o%e),u.isInBreak(t,s)&&(s-=s%e-t.from%e);for(h in a){for(t=a[h],r=t.from,e=t.repeat||Infinity;r-e>o;)r-=e;while(r<o)r+=e;for(l=r;l<s;l+=e)c.push({value:l,move:"in"}),c.push({value:l+(t.to-t.from),move:"out",size:t.breakSize})}c.sort(function(n,t){return n.value===t.value?(n.move==="in"?0:1)-(t.move==="in"?0:1):n.value-t.value});v=0;r=o;for(h in c)t=c[h],v+=t.move==="in"?1:-1,v===1&&t.move==="in"&&(r=t.value),v===0&&(y.push({from:r,to:t.value,len:t.value-r-(t.size||0)}),p+=t.value-r-(t.size||0));u.breakArray=y;f(u,"afterBreaks");u.transA*=(s-u.min)/(s-o-p);u.min=o;u.max=s}}});t(s.prototype,"generatePoints",function(n){n.apply(this,h(arguments));var i=this,u=i.xAxis,f=i.yAxis,e=i.points,r,t=e.length,s=i.options.connectNulls,o;if(u&&f&&(u.options.breaks||f.options.breaks))while(t--)r=e[t],o=r.y===null&&s===!1,!o&&(u.isInAnyBreak(r.x,!0)||f.isInAnyBreak(r.y,!0))&&(e.splice(t,1),this.data[t]&&this.data[t].destroyElements())});n.Series.prototype.drawBreaks=function(n,t){var s=this,c=s.points,h,e,o,i;u(t,function(t){h=n.breakArray||[];e=n.isXAxis?n.min:r(s.options.threshold,n.min);u(c,function(s){i=r(s["stack"+t.toUpperCase()],s[t]);u(h,function(t){o=!1;e<t.from&&i>t.to||e>t.from&&i<t.from?o="pointBreak":(e<t.from&&i>t.from&&i<t.to||e>t.from&&i>t.to&&i<t.from)&&(o="pointInBreak");o&&f(n,o,{point:s,brk:t})})})})};t(n.seriesTypes.column.prototype,"drawPoints",e);t(n.Series.prototype,"drawPoints",e)});var ss="dataGrouping",dt=nt.prototype,hs=dt.processData,cs=dt.generatePoints,ls=dt.destroy,as={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"]}},po={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}},wo=[["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]],nu={sum:function(n){var t=n.length,i;if(!t&&n.hasNulls)i=null;else if(t)for(i=0;t--;)i+=n[t];return i},average:function(n){var i=n.length,t=nu.sum(n);return l(t)&&i&&(t=t/i),t},open:function(n){return n.length?n[0]:n.hasNulls?null:f},high:function(n){return n.length?ur(n):n.hasNulls?null:f},low:function(n){return n.length?pr(n):n.hasNulls?null:f},close:function(n){return n.length?n[n.length-1]:n.hasNulls?null:f},ohlc:function(n,t,i,r){return n=nu.open(n),t=nu.high(t),i=nu.low(i),r=nu.close(r),l(n)||l(t)||l(i)||l(r)?[n,t,i,r]:void 0},range:function(n,t){return n=nu.low(n),t=nu.high(t),l(n)||l(t)?[n,t]:void 0}};dt.groupData=function(n,t,i,r){for(var o=this,w=o.data,it=o.options.data,b=[],k=[],d=[],h=n.length,g,c,y,rt=!!t,e=[[],[],[],[]],ut=typeof r=="function"?r:nu[r],a=o.pointArrayMap,ft=a&&a.length,nt=0,p,tt,s,v,u=0;u<=h;u++)if(n[u]>=i[0])break;for(u;u<=h;u++){while(i[1]!==f&&n[u]>=i[1]||u===h)if(g=i.shift(),y=ut.apply(0,e),y!==f&&(b.push(g),k.push(y),d.push({start:nt,length:e[0].length})),nt=u,e[0]=[],e[1]=[],e[2]=[],e[3]=[],u===h)break;if(u===h)break;if(a)for(p=o.cropStart+u,tt=w&&w[p]||o.pointClass.prototype.applyOptions.apply({series:o},[it[p]]),s=0;s<ft;s++)v=tt[a[s]],l(v)?e[s].push(v):v===null&&(e[s].hasNulls=!0);else c=rt?t[u]:null,l(c)?e[0].push(c):c===null&&(e[0].hasNulls=!0)}return[b,k,d]};dt.processData=function(){var n=this,a=n.chart,d=n.options,e=d[ss],v=n.allowDG!==!1&&e&&t(e.enabled,a.options._stock),y,p;if(n.forceCrop=v,n.groupPixelWidth=null,n.hasProcessed=!0,p=hs.apply(n,arguments)===!1||!v,!p){n.destroyGroupedData();var f,o=n.processedXData,g=n.processedYData,nt=a.plotSizeX,i=n.xAxis,tt=i.options.ordinal,w=n.groupPixelWidth=i.getGroupPixelWidth&&i.getGroupPixelWidth();if(w){y=!0;n.points=null;var b=i.getExtremes(),s=b.min,h=b.max,it=tt&&i.getGroupIntervalFactor(s,h,n)||1,k=w*(h-s)/nt*it,c=i.getTimeTicks(i.normalizeTimeTickInterval(k,e.units||wo),Math.min(s,o[0]),Math.max(h,o[o.length-1]),i.options.startOfWeek,o,n.closestPointRange),l=dt.groupData.apply(n,[o,g,c,e.approximation]),u=l[0],rt=l[1];if(e.smoothed){for(f=u.length-1,u[f]=Math.min(u[f],h);f--&&f>0;)u[f]+=k/2;u[0]=Math.max(u[0],s)}n.currentDataGrouping=c.info;n.closestPointRange=c.info.totalRange;n.groupMap=l[2];r(u[0])&&u[0]<i.dataMin&&(i.min===i.dataMin&&(i.min=u[0]),i.dataMin=u[0]);n.processedXData=u;n.processedYData=rt}else n.currentDataGrouping=n.groupMap=null;n.hasGroupedData=y}};dt.destroyGroupedData=function(){var n=this.groupedData;i(n||[],function(t,i){t&&(n[i]=t.destroy?t.destroy():null)});this.groupedData=null};dt.generatePoints=function(){cs.apply(this);this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null};ut(vf.prototype,"tooltipFooterHeaderFormatter",function(n,t,i){var y=this,r=t.series,w=r.options,s=r.tooltipOptions,p=w.dataGrouping,u=s.xDateFormat,h,c=r.xAxis,f,a,e,v;return c&&c.options.type==="datetime"&&p&&l(t.key)?(f=r.currentDataGrouping,a=p.dateTimeLabelFormats,f?(e=a[f.unitName],f.count===1?u=e[0]:(u=e[1],h=e[2])):!u&&a&&(u=y.getXDateFormat(t,s,c)),v=ri(u,t.key),h&&(v+=ri(h,t.key+f.totalRange-1)),yr(s[(i?"footer":"header")+"Format"],{point:o(t,{key:v}),series:r})):n.call(y,t,i)});dt.destroy=function(){for(var i=this,n=i.groupedData||[],t=n.length;t--;)n[t]&&n[t].destroy();ls.apply(i)};ut(dt,"setOptions",function(n,t){var f=n.call(this,t),i=this.type,r=this.chart.options.plotOptions,u=et[i].dataGrouping;return po[i]&&(u||(u=h(as,po[i])),f.dataGrouping=h(u,r.series&&r.series.dataGrouping,r[i].dataGrouping,t.dataGrouping)),this.chart.options._stock&&(this.requireSorting=!0),f});ut(w.prototype,"setScale",function(n){n.call(this);i(this.series,function(n){n.hasProcessed=!1})});w.prototype.getGroupPixelWidth=function(){for(var t=this.series,e=t.length,r=0,o=!1,f,i,n=e;n--;)i=t[n].options.dataGrouping,i&&(r=u(r,i.groupPixelWidth));for(n=e;n--;)i=t[n].options.dataGrouping,i&&t[n].hasProcessed&&(f=(t[n].processedXData||t[n].data).length,(t[n].groupPixelWidth||f>this.chart.plotSizeX/r||f&&i.forced)&&(o=!0));return o?r:0};w.prototype.setDataGrouping=function(n,r){var u;if(r=t(r,!0),n||(n={forced:!1,units:null}),this instanceof w)for(u=this.series.length;u--;)this.series[u].update({dataGrouping:n},!1);else i(this.chart.options.series,function(t){t.dataGrouping=n},!1);r&&this.chart.redraw()};et.ohlc=h(et.column,{lineWidth:1,tooltip:{pointFormat:'<span style="color:{point.color}">●<\/span> <b> {series.name}<\/b><br/>Open: {point.open}<br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'},states:{hover:{lineWidth:3}},threshold:null});ve=ui(p.column,{type:"ohlc",pointArrayMap:["open","high","low","close"],toYData:function(n){return[n.open,n.high,n.low,n.close]},pointValKey:"high",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},upColorProp:"stroke",getAttribs:function(){p.column.prototype.getAttribs.apply(this,arguments);var n=this,f=n.options,e=f.states,r=f.upColor||n.color,t=h(n.pointAttr),u=n.upColorProp;t[""][u]=r;t.hover[u]=e.hover.upColor||r;t.select[u]=e.select.upColor||r;i(n.points,function(n){n.open<n.close&&!n.options.color&&(n.pointAttr=t)})},translate:function(){var n=this,t=n.yAxis;p.column.prototype.translate.apply(n);i(n.points,function(n){n.open!==null&&(n.plotOpen=t.translate(n.open,0,1,0,1));n.close!==null&&(n.plotClose=t.translate(n.close,0,1,0,1))})},drawPoints:function(){var r=this,a=r.points,v=r.chart,u,s,h,o,c,t,l,n;i(a,function(i){i.plotY!==f&&(l=i.graphic,u=i.pointAttr[i.selected?"selected":""]||r.pointAttr[ti],o=u["stroke-width"]%2/2,n=e(i.plotX)-o,c=e(i.shapeArgs.width/2),t=["M",n,e(i.yBottom),"L",n,e(i.plotY)],i.open!==null&&(s=e(i.plotOpen)+o,t.push("M",n,s,"L",n-c,s)),i.close!==null&&(h=e(i.plotClose)+o,t.push("M",n,h,"L",n+c,h)),l?l.attr(u).animate({d:t}):i.graphic=v.renderer.path(t).attr(u).add(r.group))})},animate:null});p.ohlc=ve;et.candlestick=h(et.column,{lineColor:"black",lineWidth:1,states:{hover:{lineWidth:2}},tooltip:et.ohlc.tooltip,threshold:null,upColor:"white"});bo=ui(ve,{type:"candlestick",pointAttrToOptions:{fill:"color",stroke:"lineColor","stroke-width":"lineWidth"},upColorProp:"fill",getAttribs:function(){p.ohlc.prototype.getAttribs.apply(this,arguments);var r=this,t=r.options,u=t.states,n=t.upLineColor||t.lineColor,f=u.hover.upLineColor||n,e=u.select.upLineColor||n;i(r.points,function(t){t.open<t.close&&(t.lineColor&&(t.pointAttr=h(t.pointAttr),n=t.lineColor),t.pointAttr[""].stroke=n,t.pointAttr.hover.stroke=f,t.pointAttr.select.stroke=e)})},drawPoints:function(){var u=this,w=u.points,b=u.chart,s,k=u.pointAttr[""],l,a,t,r,y,p,h,n,v,c,o;i(w,function(i){v=i.graphic;i.plotY!==f&&(s=i.pointAttr[i.selected?"selected":""]||k,h=s["stroke-width"]%2/2,n=e(i.plotX)-h,l=i.plotOpen,a=i.plotClose,t=ct.min(l,a),r=ct.max(l,a),o=e(i.shapeArgs.width/2),y=e(t)!==e(i.plotY),p=r!==i.yBottom,t=e(t)+h,r=e(r)+h,c=[],c.push("M",n-o,r,"L",n-o,t,"L",n+o,t,"L",n+o,r,"Z","M",n,t,"L",n,y?e(i.plotY):t,"M",n,r,"L",n,p?e(i.yBottom):r),v?v.attr(s).animate({d:c}):i.graphic=b.renderer.path(c).attr(s).add(u.group).shadow(u.options.shadow))})}});p.candlestick=bo;uf=li.prototype.symbols;et.flags=h(et.column,{fillColor:"white",lineWidth:1,pointRange:0,shape:"flag",stackDistance:12,states:{hover:{lineColor:"black",fillColor:"#FCFFC5"}},style:{fontSize:"11px",fontWeight:"bold",textAlign:"center"},tooltip:{pointFormat:"{point.text}<br/>"},threshold:null,y:-30});p.flags=ui(p.column,{type:"flags",sorted:!1,noSharedTooltip:!0,allowDG:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],forceCrop:!0,init:nt.prototype.init,pointAttrToOptions:{fill:"fillColor",stroke:"color","stroke-width":"lineWidth",r:"radius"},translate:function(){p.column.prototype.translate.apply(this);var a=this,b=a.options,y=a.chart,e=a.points,v=e.length-1,r,o,k=b.onSeries,u=k&&y.get(k),n=b.onKey||"y",nt=u&&u.options.step,h=u&&u.points,s=h&&h.length,c=a.xAxis,d=c.getExtremes(),t,g,l,w;if(u&&u.visible&&s)for(w=u.currentDataGrouping,g=h[s-1].x+(w?w.totalRange:0),e.sort(function(n,t){return n.x-t.x}),n="plot"+n[0].toUpperCase()+n.substr(1);s--&&e[v];)if(r=e[v],t=h[s],t.x<=r.x&&t[n]!==undefined&&(r.x<=g&&(r.plotY=t[n],t.x<r.x&&!nt&&(l=h[s+1],l&&l[n]!==f&&(r.plotY+=(r.x-t.x)/(l.x-t.x)*(l[n]-t[n])))),v--,s++,v<0))break;i(e,function(n,t){var i;n.plotY===f&&(n.x>=d.min&&n.x<=d.max?n.plotY=y.chartHeight-c.bottom-(c.opposite?c.height:0)+c.offset-y.plotTop:n.shapeArgs={});o=e[t-1];o&&o.plotX===n.plotX&&(o.stackIndex===f&&(o.stackIndex=0),i=o.stackIndex+1);n.stackIndex=i})},drawPoints:function(){for(var r=this,c,d=r.pointAttr[""],w=r.points,l=r.chart,g=l.renderer,u,e,i=r.options,nt=i.y,a,n,o,s,y,p,b,k=r.yAxis,v=w.length;v--;)n=w[v],b=n.plotX>r.xAxis.len,u=n.plotX,u>0&&(u-=t(n.lineWidth,i.lineWidth)%2),s=n.stackIndex,a=n.options.shape||i.shape,e=n.plotY,e!==f&&(e=n.plotY+nt-(s!==f&&s*i.stackDistance)),y=s?f:n.plotX,p=s?f:n.plotY,o=n.graphic,e!==f&&u>=0&&!b?(c=n.pointAttr[n.selected?"select":""]||d,o?o.attr({x:u,y:e,r:c.r,anchorX:y,anchorY:p}):o=n.graphic=g.label(n.options.title||i.title||"A",u,e,a,y,p,i.useHTML).css(h(i.style,n.style)).attr(c).attr({align:a==="flag"?"left":"center",width:i.width,height:i.height}).add(r.markerGroup).shadow(i.shadow),n.tooltipPos=l.inverted?[k.len+k.pos-l.plotLeft-e,r.xAxis.len-u]:[u,e]):o&&(n.graphic=o.destroy())},drawTracker:function(){var t=this,n=t.points;vu.drawTrackerPoint.apply(this);i(n,function(t){var r=t.graphic;r&&v(r.element,"mouseover",function(){t.stackIndex>0&&!t.raised&&(t._y=r.y,r.attr({y:t._y-8}),t.raised=!0);i(n,function(n){n!==t&&n.raised&&n.graphic&&(n.graphic.attr({y:n._y}),n.raised=!1)})})})},animate:si,buildKDTree:si,setClip:si});uf.flag=function(n,t,i,r,u){var f=u&&u.anchorX||n,e=u&&u.anchorY||t;return["M",f,e,"L",n,t+r,n,t,n+i,t,n+i,t+r,n,t+r,"Z"]};i(["circle","square"],function(n){uf[n+"pin"]=function(t,i,r,u,f){var o=f&&f.anchorX,s=f&&f.anchorY,h,c;return n==="circle"&&u>r&&(t-=e((u-r)/2),r=u),h=uf[n](t,i,r,u),o&&s&&(c=i>s?i:i+u,h.push("M",o,c,"L",o,s)),h}});iu===s.VMLRenderer&&i(["flag","circlepin","squarepin"],function(n){nf.prototype.symbols[n]=uf[n]});wf=[].concat(wo);ff=function(n){var t=ir(arguments,function(n){return l(n)});if(t.length)return Math[n].apply(0,t)};wf[4]=["day",[1,2,3,4]];wf[5]=["week",[1,2,3]];ko=p.areaspline===f?"line":"areaspline";o(it,{navigator:{handles:{backgroundColor:"#ebe7e8",borderColor:"#b2b1b6"},height:40,margin:25,maskFill:"rgba(128,179,236,0.3)",maskInside:!0,outlineColor:"#b2b1b6",outlineWidth:1,series:{type:ko,color:"#4572A7",compare:null,fillOpacity:.05,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:wf},dataLabels:{enabled:!1,zIndex:2},id:ht+"navigator-series",lineColor:null,lineWidth:1,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{tickWidth:0,lineWidth:0,gridLineColor:"#EEE",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#888"},x:3,y:-4},crosshair:!1},yAxis:{gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickWidth:0}},scrollbar:{height:yu?20:14,barBackgroundColor:"#bfc8d1",barBorderRadius:0,barBorderWidth:1,barBorderColor:"#bfc8d1",buttonArrowColor:"#666",buttonBackgroundColor:"#ebe7e8",buttonBorderColor:"#bbb",buttonBorderRadius:0,buttonBorderWidth:1,minWidth:6,rifleColor:"#666",trackBackgroundColor:"#eeeeee",trackBorderColor:"#eeeeee",trackBorderWidth:1,liveRedraw:ni&&!yu}});ye.prototype={drawHandle:function(n,t){var i=this,h=i.chart,f=h.renderer,e=i.elementsToDestroy,r=i.handles,o=i.navigatorOptions.handles,s={fill:o.backgroundColor,stroke:o.borderColor,"stroke-width":1},u;i.rendered||(r[t]=f.g("navigator-handle-"+["left","right"][t]).css({cursor:"ew-resize"}).attr({zIndex:10-t}).add(),u=f.rect(-4.5,0,9,16,0,1).attr(s).add(r[t]),e.push(u),u=f.path(["M",-1.5,4,"L",-1.5,12,"M",.5,4,"L",.5,12]).attr(s).add(r[t]),e.push(u));r[t][i.rendered?"animate":"attr"]({translateX:i.scrollerLeft+i.scrollbarHeight+parseInt(n,10),translateY:i.top+i.height/2-8})},drawScrollbarButton:function(n){var i=this,s=i.chart,e=s.renderer,o=i.elementsToDestroy,u=i.scrollbarButtons,t=i.scrollbarHeight,r=i.scrollbarOptions,f;i.rendered||(u[n]=e.g().add(i.scrollbarGroup),f=e.rect(-.5,-.5,t+1,t+1,r.buttonBorderRadius,r.buttonBorderWidth).attr({stroke:r.buttonBorderColor,"stroke-width":r.buttonBorderWidth,fill:r.buttonBackgroundColor}).add(u[n]),o.push(f),f=e.path(["M",t/2+(n?-1:1),t/2-3,"L",t/2+(n?-1:1),t/2+3,t/2+(n?2:-2),t/2]).attr({fill:r.buttonArrowColor}).add(u[n]),o.push(f));n&&u[n].attr({translateX:i.scrollerWidth-t})},render:function(n,i,f,o){var s=this,ct=s.chart,k=ct.renderer,a,ft,lt,et,it=s.scrollbarGroup,at=s.navigatorGroup,ni=s.scrollbar,ut=s.xAxis,ti=s.scrollbarTrack,h=s.scrollbarHeight,ii=s.scrollbarEnabled,g=s.navigatorOptions,y=s.scrollbarOptions,kt=y.minWidth,vt=s.height,yt=s.top,ri=s.navigatorEnabled,ui=g.outlineWidth,p=ui/2,v,w,pt,dt,ht,wt=0,fi=s.outlineHeight,oi=y.barBorderRadius,gt,bt=y.barBorderWidth,nt,b=yt+p,ei=s.rendered,d;l(n)&&l(i)&&(!s.hasDragged||r(f))&&((s.navigatorLeft=a=t(ut.left,ct.plotLeft+h),s.navigatorWidth=ft=t(ut.len,ct.plotWidth-2*h),s.scrollerLeft=lt=a-h,s.scrollerWidth=et=et=ft+2*h,f=t(f,ut.translate(n)),o=t(o,ut.translate(i)),l(f)&&rt(f)!==Infinity||(f=0,o=et),ut.translate(o,!0)-ut.translate(f,!0)<ct.xAxis[0].minRange)||(s.zoomedMax=c(u(f,o,0),ft),s.zoomedMin=c(u(s.fixedWidth?s.zoomedMax-s.fixedWidth:c(f,o),0),ft),s.range=s.zoomedMax-s.zoomedMin,w=e(s.zoomedMax),v=e(s.zoomedMin),pt=w-v,ei||(ri&&(s.navigatorGroup=at=k.g("navigator").attr({zIndex:3}).add(),s.leftShade=k.rect().attr({fill:g.maskFill}).add(at),g.maskInside?s.leftShade.css({cursor:"ew-resize"}):s.rightShade=k.rect().attr({fill:g.maskFill}).add(at),s.outline=k.path().attr({"stroke-width":ui,stroke:g.outlineColor}).add(at)),ii&&(s.scrollbarGroup=it=k.g("scrollbar").add(),gt=y.trackBorderWidth,s.scrollbarTrack=ti=k.rect().attr({x:0,y:-gt%2/2,fill:y.trackBackgroundColor,stroke:y.trackBorderColor,"stroke-width":gt,r:y.trackBorderRadius||0,height:h}).add(it),s.scrollbar=ni=k.rect().attr({y:-bt%2/2,height:h,fill:y.barBackgroundColor,stroke:y.barBorderColor,"stroke-width":bt,r:oi}).add(it),s.scrollbarRifles=k.path().attr({stroke:y.rifleColor,"stroke-width":1}).add(it))),d=ei?"animate":"attr",ri&&(s.leftShade[d](g.maskInside?{x:a+v,y:yt,width:w-v,height:vt}:{x:a,y:yt,width:v,height:vt}),s.rightShade&&s.rightShade[d]({x:a+w,y:yt,width:ft-w,height:vt}),s.outline[d]({d:[st,lt,b,tt,a+v-p,b,a+v-p,b+fi,tt,a+w-p,b+fi,tt,a+w-p,b,lt+et,b].concat(g.maskInside?[st,a+v+p,b,tt,a+w-p,b]:[])}),s.drawHandle(v+p,0),s.drawHandle(w+p,1)),ii&&it&&(s.drawScrollbarButton(0),s.drawScrollbarButton(1),it[d]({translateX:lt,translateY:e(b+vt)}),ti[d]({width:et}),dt=h+v,ht=pt-bt,ht<kt&&(wt=(kt-ht)/2,ht=kt,dt-=wt),s.scrollbarPad=wt,ni[d]({x:ot(dt)+bt%2/2,width:ht}),nt=h+v+pt/2-.5,s.scrollbarRifles.attr({visibility:pt>12?cr:hr})[d]({d:[st,nt-3,h/4,tt,nt-3,2*h/3,st,nt,h/4,tt,nt,2*h/3,st,nt+3,h/4,tt,nt+3,2*h/3]})),s.scrollbarPad=wt,s.rendered=!0))},addEvents:function(){var r=this.chart,n=r.container,u=this.mouseDownHandler,f=this.mouseMoveHandler,e=this.mouseUpHandler,t;t=[[n,"mousedown",u],[n,"mousemove",f],[a,"mouseup",e]];fu&&t.push([n,"touchstart",u],[n,"touchmove",f],[a,"touchend",e]);i(t,function(n){v.apply(null,n)});this._events=t;this.series&&v(this.series.xAxis,"foundExtremes",function(){r.scroller.modifyNavigatorAxisExtremes()});v(r,"redraw",function(){var t=this.scroller,n;t&&(n=t.baseSeries.xAxis,n&&t.render(n.min,n.max))})},removeEvents:function(){i(this._events,function(n){ft.apply(null,n)});this._events=f;this.navigatorEnabled&&this.baseSeries&&ft(this.baseSeries,"updatedData",this.updatedDataHandler)},init:function(){var n=this,i=n.chart,e,s,a=n.scrollbarHeight,c=n.navigatorOptions,l=n.height,y=n.top,f,u=n.baseSeries,p,b;n.mouseDownHandler=function(t){t=i.pointer.normalize(t);var u=n.zoomedMin,c=n.zoomedMax,v=n.top,k=n.scrollbarHeight,y=n.scrollerLeft,d=n.scrollerWidth,h=n.navigatorLeft,g=n.navigatorWidth,nt=n.scrollbarPad,o=n.range,r=t.chartX,p=t.chartY,w=i.xAxis[0],tt,b,it=yu?10:7,s,a;p>v&&p<v+l+k&&(a=!n.scrollbarEnabled||p<v+l,a&&ct.abs(r-u-h)<it?(n.grabbedLeft=!0,n.otherHandlePos=c,n.fixedExtreme=w.max,i.fixedRange=null):a&&ct.abs(r-c-h)<it?(n.grabbedRight=!0,n.otherHandlePos=u,n.fixedExtreme=w.min,i.fixedRange=null):r>h+u-nt&&r<h+c+nt?(n.grabbedCenter=r,n.fixedWidth=o,f=r-u):r>y&&r<y+d&&(s=a?r-h-o/2:r<h?u-o*.2:r>y+d-k?u+o*.2:r<h+u?u-o:c,s<0?s=0:s+o>=g&&(s=g-o,tt=n.getUnionExtremes().dataMax),s!==u&&(n.fixedWidth=o,b=e.toFixedRange(s,s+o,null,tt),w.setExtremes(b.min,b.max,!0,!1,{trigger:"navigator"}))))};n.mouseMoveHandler=function(t){var s=n.scrollbarHeight,e=n.navigatorLeft,h=n.navigatorWidth,c=n.scrollerLeft,l=n.scrollerWidth,o=n.range,r,u;t.touches&&t.touches[0].pageX===0||(t=i.pointer.normalize(t),r=t.chartX,r<e?r=e:r>c+l-s&&(r=c+l-s),n.grabbedLeft?(u=!0,n.render(0,0,r-e,n.otherHandlePos)):n.grabbedRight?(u=!0,n.render(0,0,n.otherHandlePos,r-e)):n.grabbedCenter&&(u=!0,r<f?r=f:r>h+f-o&&(r=h+f-o),n.render(0,0,r-f,r-f+o)),u&&n.scrollbarOptions.liveRedraw&&setTimeout(function(){n.mouseUpHandler(t)},0),n.hasDragged=u)};n.mouseUpHandler=function(t){var u,s,o;n.hasDragged&&(n.zoomedMin===n.otherHandlePos?s=n.fixedExtreme:n.zoomedMax===n.otherHandlePos&&(o=n.fixedExtreme),n.zoomedMax===n.navigatorWidth&&(o=n.getUnionExtremes().dataMax),u=e.toFixedRange(n.zoomedMin,n.zoomedMax,s,o),r(u.min)&&i.xAxis[0].setExtremes(u.min,u.max,!0,!1,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:t}));t.type!=="mousemove"&&(n.grabbedLeft=n.grabbedRight=n.grabbedCenter=n.fixedWidth=n.fixedExtreme=n.otherHandlePos=n.hasDragged=f=null)};p=i.xAxis.length;b=i.yAxis.length;i.extraBottomMargin=n.outlineHeight+c.margin;n.navigatorEnabled?(n.xAxis=e=new w(i,h({breaks:u&&u.xAxis.options.breaks,ordinal:u&&u.xAxis.options.ordinal},c.xAxis,{id:"navigator-x-axis",isX:!0,type:"datetime",index:p,height:l,offset:0,offsetLeft:a,offsetRight:-a,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1})),n.yAxis=s=new w(i,h(c.yAxis,{id:"navigator-y-axis",alignTicks:!1,height:l,offset:0,index:b,zoomEnabled:!1})),u||c.series.data?n.addBaseSeries():i.series.length===0&&ut(i,"redraw",function(t,r){i.series.length>0&&!n.series&&(n.setBaseSeries(),i.redraw=t);t.call(i,r)})):n.xAxis=e={translate:function(n,t){var r=i.xAxis[0],f=r.getExtremes(),e=i.plotWidth-2*a,u=ff("min",r.options.min,f.dataMin),o=ff("max",r.options.max,f.dataMax)-u;return t?n*o/e+u:e*(n-u)/o},toFixedRange:w.prototype.toFixedRange};u&&u.xAxis&&this.navigatorOptions.adaptToUpdatedData!==!1&&(v(u,"updatedData",this.updatedDataHandler),v(u.xAxis,"foundExtremes",function(){u.xAxis&&this.chart.scroller.modifyBaseAxisExtremes()}),u.userOptions.events=o(u.userOptions.event,{updatedData:this.updatedDataHandler}));ut(i,"getMargins",function(i){var u=this.legend,r=u.options;i.apply(this,[].slice.call(arguments,1));n.top=y=n.navigatorOptions.top||this.chartHeight-n.height-n.scrollbarHeight-this.spacing[2]-(r.verticalAlign==="bottom"&&r.enabled&&!r.floating?u.legendHeight+t(r.margin,10):0);e&&s&&(e.options.top=s.options.top=y,e.setAxisSize(),s.setAxisSize())});n.addEvents()},getUnionExtremes:function(n){var r=this.chart.xAxis[0],i=this.xAxis,u=i.options,f=r.options,e;return n&&r.dataMin===null||(e={dataMin:t(u&&u.min,ff("min",f.min,r.dataMin,i.dataMin,i.min)),dataMax:t(u&&u.max,ff("max",f.max,r.dataMax,i.dataMax,i.max))}),e},setBaseSeries:function(n){var t=this.chart;n=n||t.options.navigator.baseSeries;this.series&&this.series.remove();this.baseSeries=t.series[n]||typeof n=="string"&&t.get(n)||t.series[0];this.xAxis&&this.addBaseSeries()},addBaseSeries:function(){var i=this.baseSeries,r=i?i.options:{},f=r.data,n,u=this.navigatorOptions.series,t;t=u.data;this.hasNavigatorData=!!t;n=h(r,u,{enableMouseTracking:!1,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",name:"Navigator",showInLegend:!1,stacking:!1,isInternal:!0,visible:!0});n.data=t||f.slice(0);this.series=this.chart.initSeries(n)},modifyNavigatorAxisExtremes:function(){var t=this.xAxis,n;t.getExtremes&&(n=this.getUnionExtremes(!0),n&&(n.dataMin!==t.min||n.dataMax!==t.max)&&(t.min=n.dataMin,t.max=n.dataMax))},modifyBaseAxisExtremes:function(){var h=this.baseSeries,n=h.xAxis,i=n.getExtremes(),c=i.min,a=i.max,v=i.dataMin,y=i.dataMax,e=a-c,f=this.stickToMin,o=this.stickToMax,r,t,s=this.series,p=!!n.setExtremes;f&&(t=v,r=t+e);o&&(r=y,f||(t=u(r-e,s?s.xData[0]:-Number.MAX_VALUE)));p&&(f||o)&&l(t)&&(n.min=n.userMin=t,n.max=n.userMax=r);this.stickToMin=this.stickToMax=null},updatedDataHandler:function(){var n=this.chart.scroller,t=n.baseSeries,i=n.series;n.stickToMin=t.xAxis.min<=t.xData[0];n.stickToMax=n.zoomedMax>=n.navigatorWidth;i&&!n.hasNavigatorData&&(i.options.pointStart=t.xData[0],i.setData(t.options.data,!1),i.graph&&t.graph&&(i.graph.shift=t.graph.shift))},destroy:function(){var n=this;n.removeEvents();i([n.xAxis,n.yAxis,n.leftShade,n.rightShade,n.outline,n.scrollbarTrack,n.scrollbarRifles,n.scrollbarGroup,n.scrollbar],function(n){n&&n.destroy&&n.destroy()});n.xAxis=n.yAxis=n.leftShade=n.rightShade=n.outline=n.scrollbarTrack=n.scrollbarRifles=n.scrollbarGroup=n.scrollbar=null;i([n.scrollbarButtons,n.handles,n.elementsToDestroy],function(n){dr(n)})}};s.Scroller=ye;ut(w.prototype,"zoom",function(n,t,i){var h=this.chart,e=h.options,o=e.chart.zoomType,u,c=e.navigator,l=e.rangeSelector,s;return this.isXAxis&&(c&&c.enabled||l&&l.enabled)&&(o==="x"?h.resetZoomButton="blocked":o==="y"?s=!1:o==="xy"&&(u=this.previousZoom,r(t)?this.previousZoom=[this.min,this.max]:u&&(t=u[0],i=u[1],delete this.previousZoom))),s!==f?s:n.call(this,t,i)});ut(wi.prototype,"init",function(n,t,i){v(this,"beforeRender",function(){var n=this.options;(n.navigator.enabled||n.scrollbar.enabled)&&(this.scroller=new ye(this))});n.call(this,t,i)});ut(nt.prototype,"addPoint",function(n,t,i,r,u){var f=this.options.turboThreshold;f&&this.xData.length>f&&bt(t)&&!vr(t)&&this.chart.scroller&&ai(20,!0);n.call(this,t,i,r,u)});o(it,{rangeSelector:{buttonTheme:{width:28,height:18,fill:"#f7f7f7",padding:2,r:0,"stroke-width":0,style:{color:"#444",cursor:"pointer",fontWeight:"normal"},zIndex:7,states:{hover:{fill:"#e7e7e7"},select:{fill:"#e7f0f9",style:{color:"black",fontWeight:"bold"}}}},height:35,inputPosition:{align:"right"},labelStyle:{color:"#666"}}});it.lang=h(it.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});pe.prototype={clickButton:function(n,r){var h=this,ut=h.selected,a=h.chart,tt=h.buttons,k=h.buttonOptions[n],o=a.xAxis[0],ft=a.scroller&&a.scroller.getUnionExtremes()||o||{},y=ft.dataMin,s=ft.dataMax,d,p=o&&e(c(o.max,t(s,o.max))),g,it=k.type,b,nt=k._range,et,ot,st,ht,rt,ct=k.dataGrouping;if(y!==null&&s!==null&&n!==h.selected){if(a.fixedRange=nt,ct&&(this.forcedDataGrouping=!0,w.prototype.setDataGrouping.call(o||{chart:this.chart},ct,!1)),it==="month"||it==="year")o?(rt={range:k,max:p,dataMin:y,dataMax:s},d=o.minFromRange.call(rt),l(rt.newMax)&&(p=rt.newMax)):nt=k;else if(nt)d=u(p-nt,y),p=c(d+nt,s);else if(it==="ytd")if(o)s===f&&(y=Number.MAX_VALUE,s=Number.MIN_VALUE,i(a.series,function(n){var t=n.xData;y=c(t[0],y);s=u(t[t.length-1],s)}),r=!1),g=new wt(s),ot=g.getFullYear(),d=et=u(y||0,wt.UTC(ot,0,1)),g=g.getTime(),p=c(s||g,g);else{v(a,"beforeRender",function(){h.clickButton(n)});return}else it==="all"&&o&&(d=y,p=s);tt[ut]&&tt[ut].setState(0);tt[n]&&(tt[n].setState(2),h.lastSelected=n);o?(o.setExtremes(d,p,t(r,1),0,{trigger:"rangeSelectorButton",rangeSelectorButton:k}),h.setSelected(n)):(b=a.options.xAxis[0],ht=b.range,b.range=nt,st=b.min,b.min=et,h.setSelected(n),v(a,"load",function(){b.range=ht;b.min=st}))}},setSelected:function(n){this.selected=this.options.selected=n},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(n){var t=this,r=n.options.rangeSelector,u=r.buttons||[].concat(t.defaultButtons),e=r.selected,o=t.blurInputs=function(){var n=t.minInput,i=t.maxInput;n&&n.blur&&g(n,"blur");i&&i.blur&&g(i,"blur")};t.chart=n;t.options=r;t.buttons=[];n.extraTopMargin=r.height;t.buttonOptions=u;v(n.container,"mousedown",o);v(n,"resize",o);i(u,t.computeButtonRange);e!==f&&u[e]&&this.clickButton(e,!1);v(n,"load",function(){v(n.xAxis[0],"setExtremes",function(i){this.max-this.min!==n.fixedRange&&i.trigger!=="rangeSelectorButton"&&i.trigger!=="updatedData"&&t.forcedDataGrouping&&this.setDataGrouping(!1,!1)});v(n.xAxis[0],"afterSetExtremes",function(){t.updateButtonStates(!0)})})},updateButtonStates:function(n){var r=this,f=this.chart,t=f.xAxis[0],c=f.scroller&&f.scroller.getUnionExtremes()||t,s=c.dataMin,h=c.dataMax,o=r.selected,l=r.options.allButtonsEnabled,u=r.buttons;n&&f.fixedRange!==e(t.max-t.min)&&(u[o]&&u[o].setState(0),r.setSelected(null));i(r.buttonOptions,function(n,i){var a=e(t.max-t.min),v=n._range,c=n.type,y=n.count||1,w=v>h-s,b=v<t.minRange,k=n.type==="all"&&t.max-t.min>=h-s&&u[i].state!==2,d=n.type==="ytd"&&ri("%Y",s)===ri("%Y",h),g=f.renderer.forExport&&i===o,p=v===a,nt=!t.hasVisibleSeries;(c==="month"||c==="year")&&a>={month:28,year:365}[c]*864e5*y&&a<={month:31,year:366}[c]*864e5*y&&(p=!0);g||p&&i!==o&&i===r.lastSelected?(r.setSelected(i),u[i].setState(2)):!l&&(w||b||k||d||nt)?u[i].setState(3):u[i].state===3&&u[i].setState(0)})},computeButtonRange:function(n){var t=n.type,i=n.count||1,r={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};r[t]?n._range=r[t]*i:(t==="month"||t==="year")&&(n._range={month:30,year:365}[t]*864e5*i)},setInputValue:function(n,t){var i=this.chart.options.rangeSelector;r(t)&&(this[n+"Input"].HCTime=t);this[n+"Input"].value=ri(i.inputEditDateFormat||"%Y-%m-%d",this[n+"Input"].HCTime);this[n+"DateBox"].attr({text:ri(i.inputDateFormat||"%b %e, %Y",this[n+"Input"].HCTime)})},showInput:function(n){var i=this.inputGroup,t=this[n+"DateBox"];k(this[n+"Input"],{left:i.translateX+t.x+b,top:i.translateY+b,width:t.width-2+b,height:t.height-2+b,border:"2px solid silver"})},hideInput:function(n){k(this[n+"Input"],{border:0,width:"1px",height:"1px"});this.setInputValue(n)},drawInput:function(n){function w(){var s=i.value,n=(r.inputDateParser||wt.parse)(s),o=u.xAxis[0],h=o.dataMin,c=o.dataMax;n!==i.previousValue&&(i.previousValue=n,l(n)||(n=s.split("-"),n=wt.UTC(y(n[0]),y(n[1])-1,y(n[2]))),l(n)&&(it.global.useUTC||(n=n+(new wt).getTimezoneOffset()*6e4),e?n>t.maxInput.HCTime?n=f:n<h&&(n=h):n<t.minInput.HCTime?n=f:n>c&&(n=c),n!==f&&u.xAxis[0].setExtremes(e?n:o.min,e?o.max:n,f,f,{trigger:"rangeSelectorInput"})))}var t=this,u=t.chart,c=u.renderer.style,a=u.renderer,r=u.options.rangeSelector,k=it.lang,d=t.div,e=n==="min",i,v,p,s=this.inputGroup;this[n+"Label"]=v=a.label(k[e?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).attr({padding:2}).css(h(c,r.labelStyle)).add(s);s.offset+=v.width+5;this[n+"DateBox"]=p=a.label("",s.offset).attr({padding:2,width:r.inputBoxWidth||90,height:r.inputBoxHeight||17,stroke:r.inputBoxBorderColor||"silver","stroke-width":1}).css(h({textAlign:"center",color:"#444"},c,r.inputStyle)).on("click",function(){t.showInput(n);t[n+"Input"].focus()}).add(s);s.offset+=p.width+(e?10:0);this[n+"Input"]=i=kt("input",{name:n,className:ht+"range-selector",type:"text"},o({position:ki,border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:c.fontSize,fontFamily:c.fontFamily,left:"-9em",top:u.plotTop+b},r.inputStyle),d);i.onfocus=function(){t.showInput(n)};i.onblur=function(){t.hideInput(n)};i.onchange=w;i.onkeypress=function(n){n.keyCode===13&&w()}},getPosition:function(){var n=this.chart,i=n.options.rangeSelector,r=t((i.buttonPosition||{}).y,n.plotTop-n.axisOffset[0]-i.height);return{buttonTop:r,inputTop:r-10}},render:function(n,u){var f=this,e=f.chart,v=e.renderer,nt=e.container,l=e.options,y=l.exporting&&l.exporting.enabled!==!1&&l.navigation&&l.navigation.buttonOptions,s=l.rangeSelector,p=f.buttons,et=it.lang,tt=f.div,h=f.inputGroup,w=s.buttonTheme,rt=s.buttonPosition||{},b=s.inputEnabled,c=w&&w.states,ut=e.plotLeft,k,d=this.getPosition(),a=f.group,g,ft=f.rendered;ft||(f.group=a=v.g("range-selector-buttons").add(),f.zoomText=v.text(et.rangeSelectorZoom,t(rt.x,ut),15).css(s.labelStyle).add(a),k=t(rt.x,ut)+f.zoomText.getBBox().width+5,i(f.buttonOptions,function(n,i){p[i]=v.button(n.text,k,0,function(){f.clickButton(i);f.isActive=!0},w,c&&c.hover,c&&c.select,c&&c.disabled).css({textAlign:"center"}).add(a);k+=p[i].width+t(s.buttonSpacing,5);f.selected===i&&p[i].setState(2)}),f.updateButtonStates(),b!==!1&&(f.div=tt=kt("div",null,{position:"relative",height:0,zIndex:1}),nt.parentNode.insertBefore(tt,nt),f.inputGroup=h=v.g("input-group").add(),h.offset=0,f.drawInput("min"),f.drawInput("max")));a[ft?"animate":"attr"]({translateY:d.buttonTop});b!==!1&&(h.align(o({y:d.inputTop,width:h.offset,x:y&&d.inputTop<(y.y||0)+y.height-e.spacing[0]?-40:0},s.inputPosition),!0,e.spacingBox),r(b)||(g=a.getBBox(),h[h.translateX<g.x+g.width+10?"hide":"show"]()),f.setInputValue("min",n),f.setInputValue("max",u));f.rendered=!0},destroy:function(){var t=this.minInput,i=this.maxInput,r=this.chart,u=this.blurInputs,n;ft(r.container,"mousedown",u);ft(r,"resize",u);dr(this.buttons);t&&(t.onfocus=t.onblur=t.onchange=null);i&&(i.onfocus=i.onblur=i.onchange=null);for(n in this)this[n]&&n!=="chart"&&(this[n].destroy?this[n].destroy():this[n].nodeType&&uu(this[n])),this[n]=null}};w.prototype.toFixedRange=function(n,i,r,u){var o=this.chart&&this.chart.fixedRange,f=t(r,this.translate(n,!0)),e=t(u,this.translate(i,!0)),s=o&&(e-f)/o;return s>.7&&s<1.3&&(u?f=e-o:e=f+o),l(f)||(f=e=undefined),{min:f,max:e}};w.prototype.minFromRange=function(){var i=this.range,s=i.type,e={month:"Month",year:"FullYear"}[s],n,f=this.max,r,u,o=function(n,t){var i=new wt(n);return i["set"+e](i["get"+e]()+t),i.getTime()-n};return l(i)?(n=this.max-i,u=i):n=f+o(f,-i.count),r=t(this.dataMin,Number.MIN_VALUE),l(n)||(n=r),n<=r&&(n=r,u===undefined&&(u=o(n,i.count)),this.newMax=c(n+u,this.dataMax)),l(f)||(n=undefined),n};ut(wi.prototype,"init",function(n,t,i){v(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new pe(this))});n.call(this,t,i)});s.RangeSelector=pe;wi.prototype.callbacks.push(function(n){function r(){t=n.xAxis[0].getExtremes();l(t.min)&&i.render(t.min,t.max)}function f(n){i.render(n.min,n.max)}function e(){i&&(ft(n,"resize",r),ft(n.xAxis[0],"afterSetExtremes",f))}var t,u=n.scroller,i=n.rangeSelector;u&&(t=n.xAxis[0].getExtremes(),u.render(t.min,t.max));i&&(v(n.xAxis[0],"afterSetExtremes",f),v(n,"resize",r),r());v(n,"destroy",e)});s.StockChart=s.stockChart=function(n,i,r){var o=rr(n)||n.nodeName,u=arguments[o?1:0],c=u.series,s,l=t(u.navigator&&u.navigator.enabled,!0),a=l?{startOnTick:!1,endOnTick:!1}:null,f={marker:{enabled:!1,radius:2}},e={shadow:!1,borderWidth:0};return u.xAxis=ci(yi(u.xAxis||{}),function(n){return h({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0},n,{type:"datetime",categories:null},a)}),u.yAxis=ci(yi(u.yAxis||{}),function(n){return s=t(n.opposite,!0),h({labels:{y:-2},opposite:s,showLastLabel:!1,title:{text:null}},n)}),u.series=null,u=h({chart:{panning:!0,pinchType:"x"},navigator:{enabled:!0},scrollbar:{enabled:!0},rangeSelector:{enabled:!0},title:{text:null,style:{fontSize:"16px"}},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:f,spline:f,area:f,areaspline:f,arearange:f,areasplinerange:f,column:e,columnrange:e,candlestick:e,ohlc:e}},u,{_stock:!0,chart:{inverted:!1}}),u.series=c,o?new wi(n,u,r):new wi(u,i)};ut(gr.prototype,"init",function(n,t,i){var r=i.chart.pinchType||"";n.call(this,t,i);this.pinchX=this.pinchHor=r.indexOf("x")!==-1;this.pinchY=this.pinchVert=r.indexOf("y")!==-1;this.hasZoom=this.hasZoom||this.pinchHor||this.pinchVert});ut(w.prototype,"autoLabelAlign",function(n){var r=this.chart,u=this.options,f=r._labelPanes=r._labelPanes||{},i,t=this.options.labels;return this.chart.options._stock&&this.coll==="yAxis"&&(i=u.top+","+u.height,!f[i]&&t.enabled)?(t.x===15&&(t.x=0),t.align===undefined&&(t.align="right"),f[i]=1,"right"):n.call(this,[].slice.call(arguments,1))});ut(w.prototype,"getPlotLinePath",function(n,f,o,s,h,a){var v=this,ut=this.isLinked&&!this.series?this.linkedParent.series:this.series,y=v.chart,et=y.renderer,g=v.left,nt=v.top,p,w,b,k,tt=[],it=[],ft,d,rt;return v.coll==="colorAxis"?n.apply(this,[].slice.call(arguments,1)):(it=v.isXAxis?r(v.options.yAxis)?[y.yAxis[v.options.yAxis]]:ci(ut,function(n){return n.yAxis}):r(v.options.xAxis)?[y.xAxis[v.options.xAxis]]:ci(ut,function(n){return n.xAxis}),ft=v.isXAxis?y.yAxis:y.xAxis,i(ft,function(n){if(r(n.options.id)?n.options.id.indexOf("navigator")===-1:!0){var t=n.isXAxis?"yAxis":"xAxis",i=r(n.options[t])?y[t][n.options[t]]:y[t][0];v===i&&it.push(n)}}),d=it.length?[]:[v.isXAxis?y.yAxis[0]:y.xAxis[0]],i(it,function(n){hi(n,d)===-1&&d.push(n)}),rt=t(a,v.translate(f,null,null,s)),l(rt)&&(v.horiz?i(d,function(n){var t;w=n.pos;k=w+n.len;p=b=e(rt+v.transB);(p<g||p>g+v.width)&&(h?p=b=c(u(g,p),g+v.width):t=!0);t||tt.push("M",p,w,"L",b,k)}):i(d,function(n){var t;p=n.pos;b=p+n.len;w=k=e(nt+v.height-rt);(w<nt||w>nt+v.height)&&(h?w=k=c(u(nt,w),v.top+v.height):t=!0);t||tt.push("M",p,w,"L",b,k)})),tt.length>0?et.crispPolyLine(tt,o||1):null)});w.prototype.getPlotBandPath=function(n,t){var u=this.getPlotLinePath(t,null,null,!0),r=this.getPlotLinePath(n,null,null,!0),f=[],i;if(r&&u&&r.toString()!==u.toString())for(i=0;i<r.length;i+=6)f.push("M",r[i+1],r[i+2],"L",r[i+4],r[i+5],u[i+4],u[i+5],u[i+1],u[i+2]);else f=null;return f};li.prototype.crispPolyLine=function(n,t){for(var i=0;i<n.length;i=i+6)n[i+1]===n[i+4]&&(n[i+1]=n[i+4]=e(n[i+1])-t%2/2),n[i+2]===n[i+5]&&(n[i+2]=n[i+5]=e(n[i+2])+t%2/2);return n};iu===s.VMLRenderer&&(nf.prototype.crispPolyLine=li.prototype.crispPolyLine);ut(w.prototype,"hideCrosshair",function(n,t){n.call(this,t);this.crossLabel&&(this.crossLabel=this.crossLabel.hide())});ut(w.prototype,"drawCrosshair",function(n,i,u){if(n.call(this,i,u),r(this.crosshair.label)&&this.crosshair.label.enabled){var p=this.chart,f=this.options.crosshair.label,s=this.horiz,v=this.opposite,a=this.left,g=this.top,e=this.crossLabel,h,c,l,w=f.format,b="",y,nt,tt=this.options.tickPosition==="inside",k=this.crosshair.snap!==!1,d;nt=s?"center":v?this.labelAlign==="right"?"right":"left":this.labelAlign==="left"?"left":"center";e||(e=this.crossLabel=p.renderer.label(null,null,null,f.shape||"callout").attr({align:f.align||nt,zIndex:12,fill:f.backgroundColor||this.series[0]&&this.series[0].color||"gray",padding:t(f.padding,8),stroke:f.borderColor||"","stroke-width":f.borderWidth||0,r:t(f.borderRadius,3)}).css(o({color:"white",fontWeight:"normal",fontSize:"11px",textAlign:"center"},f.style)).add());s?(h=k?u.plotX+a:i.chartX,c=g+(v?0:this.height)):(h=v?this.width+a:0,c=k?u.plotY+g:i.chartY);w||f.formatter||(this.isDatetimeAxis&&(b="%b %d, %Y"),w="{value"+(b?":"+b:"")+"}");d=k?u[this.isXAxis?"x":"y"]:this.toValue(s?i.chartX:i.chartY);e.attr({text:w?yr(w,{value:d}):f.formatter.call(this,d),anchorX:s?h:this.opposite?0:p.chartWidth,anchorY:s?this.opposite?p.chartHeight:0:c,x:h,y:c,visibility:cr});l=e.getBBox();s?(tt&&!v||!tt&&v)&&(c=e.y-l.height):c=e.y-l.height/2;y=s?{left:a-l.x,right:a+this.width-l.x}:{left:this.labelAlign==="left"?a:0,right:this.labelAlign==="right"?a+this.width:p.chartWidth};e.translateX<y.left&&(h+=y.left-e.translateX);e.translateX+l.width>=y.right&&(h-=e.translateX+l.width-y.right);e.attr({x:h,y:c,visibility:"visible"})}});var vs=dt.init,ys=dt.processData,ps=nr.prototype.tooltipFormatter;return dt.init=function(){vs.apply(this,arguments);this.setCompare(this.options.compare)},dt.setCompare=function(n){this.modifyValue=n==="value"||n==="percent"?function(t,i){var r=this.compareValue;return t!==f&&(t=n==="value"?t-r:t=100*(t/r)-100,i&&(i.change=t)),t}:null;this.chart.hasRendered&&(this.isDirty=!0)},dt.processData=function(){var n=this,t,u=-1,f,i,e,r;if(ys.apply(this,arguments),n.xAxis&&n.processedYData)for(f=n.processedXData,i=n.processedYData,e=i.length,n.pointArrayMap&&(u=hi(n.pointValKey||"y",n.pointArrayMap)),t=0;t<e;t++)if(r=u>-1?i[t][u]:i[t],l(r)&&f[t]>=n.xAxis.min&&r!==0){n.compareValue=r;break}},ut(dt,"getExtremes",function(n){var t;n.apply(this,[].slice.call(arguments,1));this.modifyValue&&(t=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=pr(t),this.dataMax=ur(t))}),w.prototype.setCompare=function(n,r){this.isXAxis||(i(this.series,function(t){t.setCompare(n)}),t(r,!0)&&this.chart.redraw())},nr.prototype.tooltipFormatter=function(n){var i=this;return n=n.replace("{point.change}",(i.change>0?"+":"")+s.numberFormat(i.change,t(i.series.tooltipOptions.changeDecimals,2))),ps.apply(this,[n])},ut(nt.prototype,"render",function(n){this.chart.options._stock&&this.xAxis&&(!this.clipBox&&this.animate?(this.clipBox=h(this.chart.clipBox),this.clipBox.width=this.xAxis.len,this.clipBox.height=this.yAxis.len):this.chart[this.sharedClipKey]&&(br(this.chart[this.sharedClipKey]),this.chart[this.sharedClipKey].attr({width:this.xAxis.len,height:this.yAxis.len})));n.call(this)}),o(s,{Color:pi,Point:nr,Tick:lu,Renderer:iu,SVGElement:vt,SVGRenderer:li,arrayMin:pr,arrayMax:ur,charts:lt,correctFloat:ii,dateFormat:ri,error:ai,format:yr,pathAnim:ns,getOptions:fs,hasBidiBug:go,isTouchDevice:yu,setOptions:us,addEvent:v,removeEvent:ft,createElement:kt,discardElement:uu,css:k,each:i,map:ci,merge:h,splat:yi,stableSort:af,extendClass:ui,pInt:y,svg:ni,canvas:oi,vml:!ni&&!oi,product:ke,version:de}),s}),function(n){typeof module=="object"&&module.exports?module.exports=n:n(Highcharts)}(function(n){function ut(n,t,i){this.init(n,t,i)}var ht=n.arrayMin,ct=n.arrayMax,r=n.each,b=n.extend,k=n.isNumber,f=n.merge,lt=n.map,i=n.pick,a=n.pInt,p=n.correctFloat,u=n.getOptions().plotOptions,t=n.seriesTypes,s=n.extendClass,nt=n.splat,o=n.wrap,tt=n.Axis,at=n.Tick,d=n.Point,vt=n.Pointer,yt=n.CenteredSeriesMixin,it=n.TrackerMixin,h=n.Series,c=Math,v=c.round,l=c.floor,rt=c.max,pt=n.Color,e=function(){},w,et,ot,st;b(ut.prototype,{init:function(n,t,i){var u=this,e,o=u.defaultOptions;u.chart=t;u.options=n=f(o,t.angular?{background:{}}:undefined,n);e=n.background;e&&r([].concat(nt(e)).reverse(),function(n){var r=n.backgroundColor,t=i.userOptions;n=f(u.defaultBackgroundOptions,n);r&&(n.backgroundColor=r);n.color=n.backgroundColor;i.options.plotBands.unshift(n);t.plotBands=t.plotBands||[];t.plotBands!==i.options.plotBands&&t.plotBands.unshift(n)})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{shape:"circle",borderWidth:1,borderColor:"silver",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#FFF"],[1,"#DDD"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}});var y=tt.prototype,g=at.prototype,wt={getOffset:e,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:e,setCategories:e,setTitle:e},ft={isRadial:!0,defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2},defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(n){var t=this.options=f(this.defaultOptions,this.defaultRadialOptions,n);t.plotBands||(t.plotBands=[])},getOffset:function(){y.getOffset.call(this);this.chart.axisOffset[this.side]=0;this.center=this.pane.center=yt.getCenter.call(this.pane)},getLinePath:function(n,t){var r=this.center;return t=i(t,r[2]/2-this.offset),this.chart.renderer.symbols.arc(this.left+r[0],this.top+r[1],t,t,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0})},setAxisTranslation:function(){y.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){this.autoConnect&&(this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0)},setAxisSize:function(){y.setAxisSize.call(this);this.isRadial&&(this.center=this.pane.center=n.CenteredSeriesMixin.getCenter.call(this.pane),this.isCircular&&(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*i(this.sector,1)/2)},getPosition:function(n,t){return this.postTranslate(this.isCircular?this.translate(n):0,i(this.isCircular?t:this.translate(n),this.center[2]/2)-this.offset)},postTranslate:function(n,t){var i=this.chart,r=this.center;return n=this.startAngleRad+n,{x:i.plotLeft+r[0]+Math.cos(n)*t,y:i.plotTop+r[1]+Math.sin(n)*t}},getPlotBandPath:function(n,t,r){var o=this.center,h=this.startAngleRad,v=o[2]/2,u=[i(r.outerRadius,"100%"),r.innerRadius,i(r.thickness,10)],y=/%$/,f,e,c,l=this.isCircular,s;return this.options.gridLineInterpolation==="polygon"?s=this.getPlotLinePath(n).concat(this.getPlotLinePath(t,!0)):(n=Math.max(n,this.min),t=Math.min(t,this.max),l||(u[0]=this.translate(n),u[1]=this.translate(t)),u=lt(u,function(n){return y.test(n)&&(n=a(n,10)*v/100),n}),r.shape!=="circle"&&l?(f=h+this.translate(n),e=h+this.translate(t)):(f=-Math.PI/2,e=Math.PI*1.5,c=!0),s=this.chart.renderer.symbols.arc(this.left+o[0],this.top+o[1],u[0],u[0],{start:Math.min(f,e),end:Math.max(f,e),innerR:i(u[1],u[0]-u[2]),open:c})),s},getPlotLinePath:function(n,t){var i=this,h=i.center,o=i.chart,c=i.getPosition(n),e,s,u,f;return i.isCircular?f=["M",h[0]+o.plotLeft,h[1]+o.plotTop,"L",c.x,c.y]:i.options.gridLineInterpolation==="circle"?(n=i.translate(n),n&&(f=i.getLinePath(0,n))):(r(o.xAxis,function(n){n.pane===i.pane&&(e=n)}),f=[],n=i.translate(n),u=e.tickPositions,e.autoConnect&&(u=u.concat([u[0]])),t&&(u=[].concat(u).reverse()),r(u,function(t,i){s=e.getPosition(t,n);f.push(i?"L":"M",s.x,s.y)})),f},getTitlePosition:function(){var n=this.center,i=this.chart,t=this.options.title;return{x:i.plotLeft+n[0]+(t.x||0),y:i.plotTop+n[1]-{high:.5,middle:.25,low:0}[t.align]*n[2]+(t.y||0)}}};o(y,"init",function(n,t,r){var d=this,e=t.angular,h=t.polar,o=r.isX,l=e&&o,u,a,v,y,p=t.options,c=r.pane||0,k,s;e?(b(this,l?wt:ft),u=!o,u&&(this.defaultRadialOptions=this.defaultRadialGaugeOptions)):h&&(b(this,ft),u=o,this.defaultRadialOptions=o?this.defaultRadialXOptions:f(this.defaultYAxisOptions,this.defaultRadialYOptions));(e||h)&&(t.inverted=!1,p.chart.zoomType=null);n.call(this,t,r);!l&&(e||h)&&(y=this.options,t.panes||(t.panes=[]),this.pane=k=t.panes[c]=t.panes[c]||new ut(nt(p.pane)[c],t,d),s=k.options,this.startAngleRad=a=(s.startAngle-90)*Math.PI/180,this.endAngleRad=v=(i(s.endAngle,s.startAngle+360)-90)*Math.PI/180,this.offset=y.offset||0,this.isCircular=u,u&&r.max===w&&v-a==2*Math.PI&&(this.autoConnect=!0))});o(y,"autoLabelAlign",function(n){if(!this.isRadial)return n.apply(this,[].slice.call(arguments,1))});o(g,"getPosition",function(n,t,i,r,u){var f=this.axis;return f.getPosition?f.getPosition(i):n.call(this,t,i,r,u)});o(g,"getLabelPosition",function(n,t,r,u,f,e,o,s,h){var c=this.axis,p=e.y,l,a=20,y=e.align,v=(c.translate(this.pos)+c.startAngleRad+Math.PI/2)/Math.PI*180%360;return c.isRadial?(l=c.getPosition(this.pos,c.center[2]/2+i(e.distance,-25)),e.rotation==="auto"?u.attr({rotation:v}):p===null&&(p=c.chart.renderer.fontMetrics(u.styles.fontSize).b-u.getBBox().height/2),y===null&&(c.isCircular?(this.label.getBBox().width>c.len*c.tickInterval/(c.max-c.min)&&(a=0),y=v>a&&v<180-a?"left":v>180+a&&v<360-a?"right":"center"):y="center",u.attr({align:y})),l.x+=e.x,l.y+=p):l=n.call(this,t,r,u,f,e,o,s,h),l});o(g,"getMarkPath",function(n,t,i,r,u,f,e){var o=this.axis,s,h;return o.isRadial?(s=o.getPosition(this.pos,o.center[2]/2+r),h=["M",t,i,"L",s.x,s.y]):h=n.call(this,t,i,r,u,f,e),h});u.arearange=f(u.area,{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'<span style="color:{series.color}">●<\/span> {series.name}: <b>{point.low}<\/b> - <b>{point.high}<\/b><br/>'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},states:{hover:{halo:!1}}});t.arearange=s(t.area,{type:"arearange",pointArrayMap:["low","high"],dataLabelCollections:["dataLabel","dataLabelUpper"],toYData:function(n){return[n.low,n.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(n){var t=this.chart,i=this.xAxis.postTranslate(n.rectPlotX,this.yAxis.len-n.plotHigh);n.plotHighX=i.x-t.plotLeft;n.plotHigh=i.y-t.plotTop},translate:function(){var n=this,i=n.yAxis;t.area.prototype.translate.apply(n);r(n.points,function(n){var r=n.low,t=n.high,u=n.plotY;t===null||r===null?n.isNull=!0:(n.plotLow=u,n.plotHigh=i.translate(t,0,1,0,1))});this.chart.polar&&r(this.points,function(t){n.highToXY(t)})},getGraphPath:function(){for(var t=this.points,l=[],u=[],i=t.length,e=h.prototype.getGraphPath,n,o,a,s,c=this.options,r=c.step,v,f,i=t.length;i--;)n=t[i],n.isNull||t[i+1]&&!t[i+1].isNull||u.push({plotX:n.plotX,plotY:n.plotLow}),o={plotX:n.plotX,plotY:n.plotHigh,isNull:n.isNull},u.push(o),l.push(o),n.isNull||t[i-1]&&!t[i-1].isNull||u.push({plotX:n.plotX,plotY:n.plotLow});return s=e.call(this,t),r&&(r===!0&&(r="left"),c.step={left:"right",center:"center",right:"left"}[r]),v=e.call(this,l),f=e.call(this,u),c.step=r,a=[].concat(s,v),this.chart.polar||f[0]!=="M"||(f[0]="L"),this.areaPath=this.areaPath.concat(s,f),a},drawDataLabels:function(){var f=this.data,s=f.length,i,c=[],u=h.prototype,t=this.options.dataLabels,e=t.align,o=t.verticalAlign,l=t.inside,n,r,a=this.chart.inverted;if(t.enabled||this._hasPointLabels){for(i=s;i--;)n=f[i],n&&(r=l?n.plotHigh<n.plotLow:n.plotHigh>n.plotLow,n.y=n.high,n._plotY=n.plotY,n.plotY=n.plotHigh,c[i]=n.dataLabel,n.dataLabel=n.dataLabelUpper,n.below=r,a?e||(t.align=r?"right":"left"):o||(t.verticalAlign=r?"top":"bottom"),t.x=t.xHigh,t.y=t.yHigh);for(u.drawDataLabels&&u.drawDataLabels.apply(this,arguments),i=s;i--;)n=f[i],n&&(r=l?n.plotHigh<n.plotLow:n.plotHigh>n.plotLow,n.dataLabelUpper=n.dataLabel,n.dataLabel=c[i],n.y=n.low,n.plotY=n._plotY,n.below=!r,a?e||(t.align=r?"left":"right"):o||(t.verticalAlign=r?"bottom":"top"),t.x=t.xLow,t.y=t.yLow);u.drawDataLabels&&u.drawDataLabels.apply(this,arguments)}t.align=e;t.verticalAlign=o},alignDataLabel:function(){t.column.prototype.alignDataLabel.apply(this,arguments)},setStackedPoints:e,getSymbol:e,drawPoints:e});u.areasplinerange=f(u.arearange);t.areasplinerange=s(t.arearange,{type:"areasplinerange",getPointSpline:t.spline.prototype.getPointSpline}),function(){var n=t.column.prototype;u.columnrange=f(u.column,u.arearange,{lineWidth:1,pointRange:null});t.columnrange=s(t.arearange,{type:"columnrange",translate:function(){var t=this,f=t.yAxis,e=t.xAxis,h=e.startAngleRad,o,u=t.chart,c=t.xAxis.isRadial,s;n.translate.apply(t);r(t.points,function(n){var a=n.shapeArgs,y=t.options.minPointLength,v,r,l;n.plotHigh=s=f.translate(n.high,0,1,0,1);n.plotLow=n.plotY;l=s;r=i(n.rectPlotY,n.plotY)-s;Math.abs(r)<y?(v=y-r,r+=v,l-=v/2):r<0&&(r*=-1,l-=r);c?(o=n.barX+h,n.shapeType="path",n.shapeArgs={d:t.polarArc(l+r,l,o,o+n.pointWidth)}):(a.height=r,a.y=l,n.tooltipPos=u.inverted?[f.len+f.pos-u.plotLeft-l-r/2,e.len+e.pos-u.plotTop-a.x-a.width/2,r]:[e.left-u.plotLeft+a.x+a.width/2,f.pos-u.plotTop+l+r/2,r])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:e,crispCol:n.crispCol,pointAttrToOptions:n.pointAttrToOptions,drawPoints:n.drawPoints,drawTracker:n.drawTracker,getColumnMetrics:n.getColumnMetrics,animate:function(){return n.animate.apply(this,arguments)},polarArc:function(){return n.polarArc.apply(this,arguments)}})}();u.gauge=f(u.line,{dataLabels:{enabled:!0,defer:!1,y:15,borderWidth:1,borderColor:"silver",borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1});et=s(d,{setState:function(n){this.state=n}});ot={type:"gauge",pointClass:et,angular:!0,directTouch:!0,drawGraph:e,fixedBox:!0,forceDL:!0,trackerGroups:["group","dataLabelsGroup"],translate:function(){var u=this,n=u.yAxis,e=u.options,t=n.center;u.generatePoints();r(u.points,function(r){var o=f(e.dial,r.dial),h=a(i(o.radius,80))*t[2]/200,l=a(i(o.baseLength,70))*h/100,v=a(i(o.rearLength,10))*h/100,c=o.baseWidth||3,y=o.topWidth||1,s=e.overshoot,u=n.startAngleRad+n.translate(r.y,null,null,null,!0);k(s)?(s=s/180*Math.PI,u=Math.max(n.startAngleRad-s,Math.min(n.endAngleRad+s,u))):e.wrap===!1&&(u=Math.max(n.startAngleRad,Math.min(n.endAngleRad,u)));u=u*180/Math.PI;r.shapeType="path";r.shapeArgs={d:o.path||["M",-v,-c/2,"L",l,-c/2,h,-y/2,h,y/2,l,c/2,-v,c/2,"z"],translateX:t[0],translateY:t[1],rotation:u};r.plotX=t[0];r.plotY=t[1]})},drawPoints:function(){var n=this,t=n.yAxis.center,e=n.pivot,o=n.options,u=o.pivot,s=n.chart.renderer;r(n.points,function(t){var u=t.graphic,i=t.shapeArgs,e=i.d,r=f(o.dial,t.dial);u?(u.animate(i),i.d=e):t.graphic=s[t.shapeType](i).attr({stroke:r.borderColor||"none","stroke-width":r.borderWidth||0,fill:r.backgroundColor||"black",rotation:i.rotation,zIndex:1}).add(n.group)});e?e.animate({translateX:t[0],translateY:t[1]}):n.pivot=s.circle(0,0,i(u.radius,5)).attr({"stroke-width":u.borderWidth||0,stroke:u.borderColor||"silver",fill:u.backgroundColor||"black",zIndex:2}).translate(t[0],t[1]).add(n.group)},animate:function(n){var t=this;n||(r(t.points,function(n){var i=n.graphic;i&&(i.attr({rotation:t.yAxis.startAngleRad*180/Math.PI}),i.animate({rotation:n.shapeArgs.rotation},t.options.animation))}),t.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);h.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(n,t){h.prototype.setData.call(this,n,!1);this.processData();this.generatePoints();i(t,!0)&&this.chart.redraw()},drawTracker:it&&it.drawTrackerPoint};t.gauge=s(t.line,ot);u.boxplot=f(u.column,{fillColor:"#FFFFFF",lineWidth:1,medianWidth:2,states:{hover:{brightness:-.3}},threshold:null,tooltip:{pointFormat:'<span style="color:{point.color}">●<\/span> <b> {series.name}<\/b><br/>Maximum: {point.high}<br/>Upper quartile: {point.q3}<br/>Median: {point.median}<br/>Lower quartile: {point.q1}<br/>Minimum: {point.low}<br/>'},whiskerLength:"50%",whiskerWidth:2});t.boxplot=s(t.column,{type:"boxplot",pointArrayMap:["low","q1","median","q3","high"],toYData:function(n){return[n.low,n.q1,n.median,n.q3,n.high]},pointValKey:"high",pointAttrToOptions:{fill:"fillColor",stroke:"color","stroke-width":"lineWidth"},drawDataLabels:e,translate:function(){var n=this,i=n.yAxis,u=n.pointArrayMap;t.column.prototype.translate.apply(n);r(n.points,function(n){r(u,function(t){n[t]!==null&&(n[t+"Plot"]=i.translate(n[t],0,1,0,1))})})},drawPoints:function(){var e=this,at=e.points,u=e.options,vt=e.chart,b=vt.renderer,rt,h,o,c,a,ut,n,t,s,ft,y,et,ot,k,st,d,ht,f,g,ct,lt,it,nt=e.doQuartiles!==!1,tt,p=e.options.whiskerLength;r(at,function(r){s=r.graphic;lt=r.shapeArgs;y={};k={};d={};it=r.color||e.color;r.plotY!==w&&(rt=r.pointAttr[r.selected?"selected":""],ht=lt.width,f=l(lt.x),g=f+ht,ct=v(ht/2),h=l(nt?r.q1Plot:r.lowPlot),o=l(nt?r.q3Plot:r.lowPlot),c=l(r.highPlot),a=l(r.lowPlot),y.stroke=r.stemColor||u.stemColor||it,y["stroke-width"]=i(r.stemWidth,u.stemWidth,u.lineWidth),y.dashstyle=r.stemDashStyle||u.stemDashStyle,k.stroke=r.whiskerColor||u.whiskerColor||it,k["stroke-width"]=i(r.whiskerWidth,u.whiskerWidth,u.lineWidth),d.stroke=r.medianColor||u.medianColor||it,d["stroke-width"]=i(r.medianWidth,u.medianWidth,u.lineWidth),n=y["stroke-width"]%2/2,t=f+ct+n,ft=["M",t,o,"L",t,c,"M",t,h,"L",t,a],nt&&(n=rt["stroke-width"]%2/2,t=l(t)+n,h=l(h)+n,o=l(o)+n,f+=n,g+=n,et=["M",f,o,"L",f,h,"L",g,h,"L",g,o,"L",f,o,"z"]),p&&(n=k["stroke-width"]%2/2,c=c+n,a=a+n,tt=/%$/.test(p)?ct*parseFloat(p)/100:p/2,ot=["M",t-tt,c,"L",t+tt,c,"M",t-tt,a,"L",t+tt,a]),n=d["stroke-width"]%2/2,ut=v(r.medianPlot)+n,st=["M",f,ut,"L",g,ut],s?(r.stem.animate({d:ft}),p&&r.whiskers.animate({d:ot}),nt&&r.box.animate({d:et}),r.medianShape.animate({d:st})):(r.graphic=s=b.g().add(e.group),r.stem=b.path(ft).attr(y).add(s),p&&(r.whiskers=b.path(ot).attr(k).add(s)),nt&&(r.box=b.path(et).attr(rt).add(s)),r.medianShape=b.path(st).attr(d).add(s)))})},setStackedPoints:e});u.errorbar=f(u.boxplot,{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'<span style="color:{point.color}">●<\/span> {series.name}: <b>{point.low}<\/b> - <b>{point.high}<\/b><br/>'},whiskerWidth:null});t.errorbar=s(t.boxplot,{type:"errorbar",pointArrayMap:["low","high"],toYData:function(n){return[n.low,n.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:t.arearange?t.arearange.prototype.drawDataLabels:e,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||t.column.prototype.getColumnMetrics.call(this)}});u.waterfall=f(u.column,{lineWidth:1,lineColor:"#333",dashStyle:"dot",borderColor:"#333",dataLabels:{inside:!0},states:{hover:{lineWidthPlus:0}}});t.waterfall=s(t.column,{type:"waterfall",upColorProp:"fill",pointValKey:"y",translate:function(){var u=this,l=u.options,f=u.yAxis,k,s,a,r,n,y,d,e,o,c,h,w=i(l.minPointLength,5),g=l.threshold,nt=l.stacking,b;for(t.column.prototype.translate.apply(this),u.minPointLengthOffset=0,o=c=g,a=u.points,s=0,k=a.length;s<k;s++)r=a[s],e=this.processedYData[s],n=r.shapeArgs,y=nt&&f.stacks[(u.negStacks&&e<g?"-":"")+u.stackKey],h=y?y[r.x].points[u.index+","+s]:[0,e],r.isSum?r.y=p(e):r.isIntermediateSum&&(r.y=p(e-c)),d=rt(o,o+r.y)+h[0],n.y=f.translate(d,0,1),r.isSum?(n.y=f.translate(h[1],0,1),n.height=Math.min(f.translate(h[0],0,1),f.len)-n.y+u.minPointLengthOffset):r.isIntermediateSum?(n.y=f.translate(h[1],0,1),n.height=Math.min(f.translate(c,0,1),f.len)-n.y+u.minPointLengthOffset,c=h[1]):(o!==0&&(n.height=e>0?f.translate(o,0,1)-n.y:f.translate(o,0,1)-f.translate(o-e,0,1)),o+=e),n.height<0&&(n.y+=n.height,n.height*=-1),r.plotY=n.y=v(n.y)-u.borderWidth%2/2,n.height=rt(v(n.height),.001),r.yBottom=n.y+n.height,n.height<=w&&(n.height=w,u.minPointLengthOffset+=w),n.y-=u.minPointLengthOffset,b=r.plotY+(r.negative?n.height:0)-u.minPointLengthOffset,u.chart.inverted?r.tooltipPos[0]=f.len-b:r.tooltipPos[1]=b},processData:function(n){for(var i=this,a=i.options,f=i.yData,s=i.options.data,c,v=f.length,y=a.threshold||0,l,e,o,u,r=l=e=o=y,t=0;t<v;t++)u=f[t],c=s&&s[t]?s[t]:{},u==="sum"||c.isSum?f[t]=p(r):u==="intermediateSum"||c.isIntermediateSum?f[t]=p(l):(r+=u,l+=u),e=Math.min(r,e),o=Math.max(r,o);h.prototype.processData.call(this,n);i.dataMin=e;i.dataMax=o},toYData:function(n){return n.isSum?n.x===0?null:"sum":n.isIntermediateSum?n.x===0?null:"intermediateSum":n.y},getAttribs:function(){t.column.prototype.getAttribs.apply(this,arguments);var i=this,s=i.options,h=s.states,u=s.upColor||i.color,c=n.Color(u).brighten(.1).get(),e=f(i.pointAttr),o=i.upColorProp;e[""][o]=u;e.hover[o]=h.hover.upColor||c;e.select[o]=h.select.upColor||u;r(i.points,function(n){n.options.color||(n.y>0?(n.pointAttr=e,n.color=u):n.pointAttr=i.pointAttr)})},getGraphPath:function(){for(var i=this.data,o=i.length,s=this.options.lineWidth+this.borderWidth,f=v(s)%2/2,u=[],n,e,r,t=1;t<o;t++)e=i[t].shapeArgs,n=i[t-1].shapeArgs,r=["M",n.x+n.width,n.y+f,"L",e.x,n.y+f],i[t-1].y<0&&(r[2]+=n.height,r[5]+=n.height),u=u.concat(r);return u},getExtremes:e,drawGraph:h.prototype.drawGraph});u.polygon=f(u.scatter,{marker:{enabled:!1}});t.polygon=s(t.scatter,{type:"polygon",fillGraph:!0,getSegmentPath:function(n){return h.prototype.getSegmentPath.call(this,n).concat("z")},drawGraph:h.prototype.drawGraph,drawLegendSymbol:n.LegendSymbolMixin.drawRectangle});u.bubble=f(u.scatter,{dataLabels:{formatter:function(){return this.point.z},inside:!0,verticalAlign:"middle"},marker:{lineColor:null,lineWidth:1},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"});st=s(d,{haloPath:function(){return d.prototype.haloPath.call(this,this.shapeArgs.r+this.series.options.states.hover.halo.size)},ttBelow:!1});t.bubble=s(t.scatter,{type:"bubble",pointClass:st,pointArrayMap:["y","z"],parallelArrays:["x","y","z"],trackerGroups:["group","dataLabelsGroup"],bubblePadding:!0,zoneAxis:"z",pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor"},applyOpacity:function(n){var t=this.options.marker,r=i(t.fillOpacity,.5);return n=n||t.fillColor||this.color,r!==1&&(n=pt(n).setOpacity(r).get("rgba")),n},convertAttribs:function(){var n=h.prototype.convertAttribs.apply(this,arguments);return n.fill=this.applyOpacity(n.fill),n},getRadii:function(n,t,i,r){for(var f,a=this.zData,v=[],s=this.options,p=s.sizeBy!=="width",h=s.zThreshold,y=t-n,u,o,e=0,l=a.length;e<l;e++)u=a[e],s.sizeByAbsoluteValue&&u!==null&&(u=Math.abs(u-h),t=Math.max(t-h,Math.abs(n-h)),n=0),u===null?o=null:u<n?o=i/2-1:(f=y>0?(u-n)/y:.5,p&&f>=0&&(f=Math.sqrt(f)),o=c.ceil(i+f*(r-i))/2),v.push(o);this.radii=v},animate:function(n){var t=this.options.animation;n||(r(this.points,function(n){var i=n.graphic,r=n.shapeArgs;i&&r&&(i.attr("r",1),i.animate({r:r.r},t))}),this.animate=null)},translate:function(){var r,u=this.data,n,i,f=this.radii;for(t.scatter.prototype.translate.call(this),r=u.length;r--;)n=u[r],i=f?f[r]:0,k(i)&&i>=this.minPxSize/2?(n.shapeType="circle",n.shapeArgs={x:n.plotX,y:n.plotY,r:i},n.dlBox={x:n.plotX-i,y:n.plotY-i,width:2*i,height:2*i}):n.shapeArgs=n.plotY=n.dlBox=w},drawLegendSymbol:function(n,t){var r=this.chart.renderer,i=r.fontMetrics(n.itemStyle.fontSize).f/2;t.legendSymbol=r.circle(i,n.baseline-i,i).attr({zIndex:3}).add(t.legendGroup);t.legendSymbol.isMarker=!0},drawPoints:t.column.prototype.drawPoints,alignDataLabel:t.column.prototype.alignDataLabel,buildKDTree:e,applyZones:e});tt.prototype.beforePadding=function(){var n=this,t=this.len,o=this.chart,f=0,u=t,s=this.isXAxis,d=s?"xData":"yData",h=this.min,l={},g=c.min(o.plotWidth,o.plotHeight),v=Number.MAX_VALUE,y=-Number.MAX_VALUE,p=this.max-h,e=t/p,b=[];r(this.series,function(t){var u=t.options,f;t.bubblePadding&&(t.visible||!o.options.chart.ignoreHiddenSeries)&&(n.allowZoomOutside=!0,b.push(t),s&&(r(["minSize","maxSize"],function(n){var t=u[n],i=/%$/.test(t);t=a(t);l[n]=i?g*t/100:t}),t.minPxSize=l.minSize,t.maxPxSize=l.maxSize,f=t.zData,f.length&&(v=i(u.zMin,c.min(v,c.max(ht(f),u.displayNegative===!1?u.zThreshold:-Number.MAX_VALUE))),y=i(u.zMax,c.max(y,ct(f))))))});r(b,function(t){var r=t[d],i=r.length,o;if(s&&t.getRadii(v,y,t.minPxSize,t.maxPxSize),p>0)while(i--)k(r[i])&&n.dataMin<=r[i]&&r[i]<=n.dataMax&&(o=t.radii[i],f=Math.min((r[i]-h)*e-o,f),u=Math.max((r[i]-h)*e+o,u))});b.length&&p>0&&!this.isLog&&(u-=t,e*=(t+f-u)/t,r([["min","userMin",f],["max","userMax",u]],function(t){i(n.options[t[0]],n[t[1]])===w&&(n[t[0]]+=t[2]/e)}))},function(){function f(n,t){var r=this.chart,u=this.options.animation,e=this.group,f=this.markerGroup,o=this.xAxis.center,s=r.plotLeft,h=r.plotTop,i;r.polar?r.renderer.isSVG&&(u===!0&&(u={}),t?(i={translateX:o[0]+s,translateY:o[1]+h,scaleX:.001,scaleY:.001},e.attr(i),f&&f.attr(i)):(i={translateX:s,translateY:h,scaleX:1,scaleY:1},e.animate(i,u),f&&f.animate(i,u),this.animate=null)):n.call(this,t)}var n=h.prototype,e=vt.prototype,u;n.searchPointByAngle=function(n){var t=this,i=t.chart,u=t.xAxis,r=u.pane.center,f=n.chartX-r[0]-i.plotLeft,e=n.chartY-r[1]-i.plotTop;return this.searchKDTree({clientX:180+Math.atan2(f,e)*(-180/Math.PI)})};o(n,"buildKDTree",function(n){this.chart.polar&&(this.kdByAngle?this.searchPoint=this.searchPointByAngle:this.kdDimensions=2);n.apply(this)});n.toXY=function(n){var i,r=this.chart,u=n.plotX,f=n.plotY,t;n.rectPlotX=u;n.rectPlotY=f;i=this.xAxis.postTranslate(n.plotX,this.yAxis.len-f);n.plotX=n.polarPlotX=i.x-r.plotLeft;n.plotY=n.polarPlotY=i.y-r.plotTop;this.kdByAngle?(t=(u/Math.PI*180+this.xAxis.pane.options.startAngle)%360,t<0&&(t+=360),n.clientX=t):n.clientX=n.plotX};t.spline&&o(t.spline.prototype,"getPointSpline",function(n,t,i,r){var y,h=1.5,p=h+1,u,f,e,s,d,g,nt,tt,c,l,a,v,w,b,k,it,o;return this.chart.polar?(u=i.plotX,f=i.plotY,e=t[r-1],s=t[r+1],this.connectEnds&&(e||(e=t[t.length-2]),s||(s=t[1])),e&&s&&(d=e.plotX,g=e.plotY,nt=s.plotX,tt=s.plotY,c=(h*u+d)/p,l=(h*f+g)/p,a=(h*u+nt)/p,v=(h*f+tt)/p,w=Math.sqrt(Math.pow(c-u,2)+Math.pow(l-f,2)),b=Math.sqrt(Math.pow(a-u,2)+Math.pow(v-f,2)),k=Math.atan2(l-f,c-u),it=Math.atan2(v-f,a-u),o=Math.PI/2+(k+it)/2,Math.abs(k-o)>Math.PI/2&&(o-=Math.PI),c=u+Math.cos(o)*w,l=f+Math.sin(o)*w,a=u+Math.cos(Math.PI+o)*b,v=f+Math.sin(Math.PI+o)*b,i.rightContX=a,i.rightContY=v),r?(y=["C",e.rightContX||e.plotX,e.rightContY||e.plotY,c||u,l||f,u,f],e.rightContX=e.rightContY=null):y=["M",u,f]):y=n.call(this,t,i,r),y});o(n,"translate",function(n){var t=this.chart,i,r;if(n.call(this),t.polar&&(this.kdByAngle=t.tooltip&&t.tooltip.shared,!this.preventPostTranslate))for(i=this.points,r=i.length;r--;)this.toXY(i[r])});o(n,"getGraphPath",function(n,t){var i=this;return this.chart.polar&&(t=t||this.points,this.options.connectEnds!==!1&&t[0]&&t[0].y!==null&&(this.connectEnds=!0,t.splice(t.length,0,t[0])),r(t,function(n){n.polarPlotY===undefined&&i.toXY(n)})),n.apply(this,[].slice.call(arguments,1))});o(n,"animate",f);t.column&&(u=t.column.prototype,u.polarArc=function(n,t,r,u){var e=this.xAxis.center,f=this.yAxis.len;return this.chart.renderer.symbols.arc(e[0],e[1],f-t,null,{start:r,end:u,innerR:f-i(n,f)})},o(u,"animate",f),o(u,"translate",function(n){var i=this.xAxis,e=i.startAngleRad,r,u,t,f;if(this.preventPostTranslate=!0,n.call(this),i.isRadial)for(u=this.points,f=u.length;f--;)t=u[f],r=t.barX+e,t.shapeType="path",t.shapeArgs={d:this.polarArc(t.yBottom,t.plotY,r,r+t.pointWidth)},this.toXY(t),t.tooltipPos=[t.plotX,t.plotY],t.ttBelow=t.plotY>i.center[1]}),o(u,"alignDataLabel",function(t,i,r,u,f,e){if(this.chart.polar){var o=i.rectPlotX/Math.PI*180,s,h;u.align===null&&(s=o>20&&o<160?"left":o>200&&o<340?"right":"center",u.align=s);u.verticalAlign===null&&(h=o<45||o>315?"bottom":o>135&&o<225?"top":"middle",u.verticalAlign=h);n.alignDataLabel.call(this,i,r,u,f,e)}else t.call(this,i,r,u,f,e)}));o(e,"getCoordinates",function(n,t){var i=this.chart,u={xAxis:[],yAxis:[]};return i.polar?r(i.axes,function(n){var r=n.isXAxis,f=n.center,e=t.chartX-f[0]-i.plotLeft,o=t.chartY-f[1]-i.plotTop;u[r?"xAxis":"yAxis"].push({axis:n,value:n.translate(r?Math.PI-Math.atan2(e,o):Math.sqrt(Math.pow(e,2)+Math.pow(o,2)),!0)})}):u=n.call(this,t),u})}()});typeof Highcharts!="undefined"&&function(n){var i=n.getOptions().plotOptions,f=n.merge,e=n.extendClass,t=n.seriesTypes,r=n.each,u;i.bollinger=f(i.arearange,{tooltip:{pointFormat:'<span style="color:{series.color}">●<\/span> {series.name}: <b>{point.low}<\/b> / <b>{point.middle}<\/b> / <b>{point.high}<\/b><br/>'},fillOpacity:.2,middleLineWidth:2});u=e(t.arearange,{type:"bollinger",pointArrayMap:["low","middle","high"],toYData:function(n){return[n.low,n.middle,n.high]},translate:function(){var n=this,i=n.yAxis;t.area.prototype.translate.apply(n);r(n.points,function(n){var r=n.low,u=n.middle,t=n.high,f=n.plotY;t===null||r===null?n.isNull=!0:(n.plotLow=f,n.plotMiddle=i.translate(u,0,1,0,1),n.plotHigh=i.translate(t,0,1,0,1))});this.chart.polar&&r(this.points,function(t){n.highToXY(t)})},drawGraph:function(){var u,f,h,c;t.arearange.prototype.drawGraph.apply(this);for(var e=this.points,o=[],s=e.length,l=n.Series.prototype.getGraphPath,i=this.options,r;s--;)r=e[s],o.push({plotX:r.plotX,plotY:r.plotMiddle,isNull:r.isNull});u=l.call(this,o);f=this.middleGraph;f?f.attr("d",u):(h=i.middleColor||i.lineColor||i.color||this.color,c=i.middleLineWidth||i.lineWidth,this.middleGraph=this.chart.renderer.path(u).attr({stroke:h,"stroke-width":c,zIndex:0}).add(this.group))}});t.bollinger=u}(Highcharts);typeof Highcharts!="undefined"&&function(n){var t=function(n){return typeof n=="number"||n!==null&&typeof n=="object"&&n.constructor===Number},i=n.seriesTypes,u=i.candlestick.prototype,r=n.merge,f=n.each;n.wrap(u,"getAttribs",function(){i.column.prototype.getAttribs.apply(this,arguments);var n=this,s=n.options,u=s.states,h=s.upColor||n.color,c=s.downColor||n.color,e=r(n.pointAttr),o=r(n.pointAttr);e[""].fill=h;e.hover.fill=u.hover.upColor||h;e.select.fill=u.select.upColor||h;o[""].fill=c;o.hover.fill=u.hover.downColor||c;o.select.fill=u.select.downColor||c;f(n.points,function(n){var i=n.trend;!t(i)&&t(n.open)&&t(n.close)&&(n.open>n.close?i=3:n.close==n.open?i=2:n.close>n.open&&(i=1));switch(i){case 3:n.pointAttr=o;break;case 1:n.pointAttr=e}})})}(Highcharts);typeof Highcharts!="undefined"&&function(n){var t=n.Series.prototype;n.wrap(t,"init",function(n,t,i){var r=1,u,f;i.keys&&(i.keys.indexOf("close"),r==-1&&i.keys.indexOf("x"));i.data&&i.data.length>0&&(u=i.data[0][r]);n.call(this,t,i);this.shFirstValue=u;f=this.yAxis.options.compareMode;f&&this.setSHCompare(this.yAxis.options.compareMode)});t.setSHCompare=function(n){var t;switch(n){case"Absolute":this.modifyValue=null;return;case"AbsoluteSameStartpoint":t=function(n,t,i){return n-t+i};break;case"RelativeToStartpoint":if(this==this.chart.series[0])return;if(this.options.type=="strikeline"||this.options.isInlineIndicator)return;t=function(n,t,i){return n/t*i}}this.modifyValue=function(n,i){return n!==undefined&&(n=t(n,this.shFirstValue,this.chart.series[0].shFirstValue),i&&(i.change=n)),n};this.chart.hasRendered&&(this.isDirty=!0)}}(Highcharts);typeof Highcharts!="undefined"&&function(n){var t=n.getOptions().plotOptions,u=n.merge,f=n.extendClass,i=n.seriesTypes,r;t.dummy=u(t.line,{});r=f(i.line,{type:"dummy",processData:function(t){n.Series.prototype.processData.apply(this,[t]);this.closestPointRange=this.options.closestPointRange}});i.dummy=r}(Highcharts);typeof Highcharts!="undefined"&&function(n){var i=n.getOptions().plotOptions,f=n.merge,e=n.extendClass,t=n.seriesTypes,r=n.each,u;i.macd=f(i.column,{tooltip:{pointFormat:'<span style="color:{point.color}">●<\/span> <b> {series.name}<\/b><br/>MACD: {point.macd}<br/>Signal: {point.signal}<br/>Histogram: {point.histogram}<br/>'},borderWidth:0,threshold:0});u=e(t.column,{type:"macd",pointArrayMap:["macd","signal","histogram"],pointValKey:"histogram",toYData:function(n){return[n.macd,n.signal,n.histogram]},translate:function(){var t=this,i=t.yAxis;n.seriesTypes.column.prototype.translate.apply(t);r(t.points,function(n){var t=n.macd,r=n.signal;t===null||r===null?n.isNull=!0:(n.plotMACD=i.translate(t,0,1,0,1),n.plotSignal=i.translate(r,0,1,0,1))});this.chart.polar&&r(this.points,function(n){t.highToXY(n)})},drawGraph:function(){var f,e;t.column.prototype.drawGraph.apply(this);for(var o=this.points,s=[],h=[],c=o.length,l=n.Series.prototype.getGraphPath,u=this.options,i;c--;)i=o[c],s.push({plotX:i.plotX,plotY:i.plotMACD,isNull:i.isNull}),h.push({plotX:i.plotX,plotY:i.plotSignal,isNull:i.isNull});var a=l.call(this,s),v=l.call(this,h),r=this.macdGraphs;r?(r[0].attr("d",a),r[1].attr("d",v)):(f=u.middleColor||u.lineColor||u.color||this.color,e=u.middleLineWidth||u.lineWidth,this.macdGraphs=r=[],r.push(this.chart.renderer.path(a).attr({stroke:f,"stroke-width":e,zIndex:1e3}).add(this.group)),r.push(this.chart.renderer.path(v).attr({stroke:f,"stroke-width":e,zIndex:1e3}).add(this.group)))}});t.macd=u}(Highcharts);typeof Highcharts!="undefined"&&function(n){function i(){var n=this;n.hasData()?n.hideNoData():n.showNoData()}var t=n.Chart.prototype,r=n.getOptions(),u=n.extend;r.noData={enabled:!1,text:"No Data",position:{x:0,y:0,align:"center",verticalAlign:"middle"},attr:{},style:{fontWeight:"bold",fontSize:"12px",color:"#60606a"}};n.Series.prototype.hasData=function(){return this.visible&&this.options.data.length>0};t.showNoData=function(){var n=this,e=n.options,r=e.noData,f,t,i;if(r.enabled&&!n.noDataLabel){for(n.noDataLabel=n.renderer.label(r.text,0,0,null,null,null,r.useHTML,null,"no-data").attr(r.attr).css(r.style).add(),n.noDataLabel.align(u(n.noDataLabel.getBBox(),r.position),!1,"plotBox"),f=n.xAxis.length,t=0;t<f;t++)i=n.xAxis[t].options.visible,i===undefined&&(i=!0),n.xAxis[t].update({visible:!1,oldVisible:i});for(f=n.yAxis.length,t=0;t<f;t++)i=n.yAxis[t].options.visible,i===undefined&&(i=!0),n.yAxis[t].update({visible:!1,oldVisible:i})}};t.hideNoData=function(){var t=this,r,n,i;if(t.noDataLabel){for(t.noDataLabel=t.noDataLabel.destroy(),r=t.xAxis.length,n=0;n<r;n++)i=t.xAxis[n].options.oldVisible||t.xAxis[n].options.visible,t.xAxis[n].update({visible:i});for(r=t.yAxis.length,n=0;n<r;n++)i=t.yAxis[n].options.oldVisible||t.yAxis[n].options.visible,t.yAxis[n].update({visible:i})}};t.hasData=function(){for(var i=this,n=i.series,t=n.length;t--;)if(n[t].hasData()&&!n[t].options.isInternal)return!0;return!1};t.callbacks.push(function(t){n.addEvent(t,"load",i);n.addEvent(t,"redraw",i)})}(Highcharts);typeof Highcharts!="undefined"&&function(n){var t=n.Chart.prototype;n.wrap(t,"drawChartBox",function(n){n.call(this);var t=this.options.chart.plotBorderDashStyle;t&&this.plotBorder&&this.plotBorder.attr({dashstyle:t})})}(Highcharts);typeof Highcharts!="undefined"&&function(n){var t=n.Axis.prototype;n.wrap(t,"render",function(n){n.call(this);var t=this.options.lineDashStyle;t&&this.axisLine&&this.axisLine.attr({dashstyle:t})})}(Highcharts);typeof Highcharts!="undefined"&&function(n){function i(n,t,i,u){var e,f,s,h,c,o;if(u.isValueChanged(t)&&(e=u.getValue(t),e&&(f=u.getValue("quotejsontime"),f?f=parseFloat(f):(s=u.getValue("quotetime"),h=u.getValue("quotedate"),s&&h&&(f=r(h,s,i))),f&&(c=n.options,e=parseFloat(e),n.addPoint([f,parseFloat(e)]),c.afterPushUpdate&&(o=n.data[n.data.length-1],o.x==f))))){var l=n.chart,a=$(l.container).position(),v=o.plotX+l.plotLeft+a.left,y=o.plotY+l.plotTop+a.top;c.afterPushUpdate(n,f,e,o,{left:v,top:y})}}function r(n,t,i){var r=n.split("/"),u=t.split(":"),f=new Date(r[2],r[1]-1,r[0],u[0],u[1],u[2]);return f.getTime()-f.getTimezoneOffset()*6e4-i}var t=n.Series.prototype;n.wrap(t,"init",function(n,t,r){var f=this;if(n.call(this,t,r),r=this.options,r.pushSymbol&&r.id!="highcharts-navigator-series"){var e=Smarthouse.QuoteStream.getClient(),u=r.pushField?r.pushField:"last",o=r.pushTZOffset?r.pushTZOffset:r.currentTimezoneOffset?r.currentTimezoneOffset*1e3:0;this.quoteStreamSubscription=e.createSubscription([r.pushSymbol],["quotedate","quotetime","quotejsontime",u],function(n){return i(f,u,o,n)})}});n.wrap(t,"destroy",function(n){if(this.quoteStreamSubscription){var t=Smarthouse.QuoteStream.getClient();t.stopSubscription(this.quoteStreamSubscription)}n.call(this)})}(Highcharts);typeof Highcharts!="undefined"&&function(n){function t(n,t){n.currentMin=t;r(n,"N"+n.options.id,t)}function i(n,t){n.currentMax=t;r(n,"X"+n.options.id,t)}function r(n,t,i){var r=n.yAxis;r.removePlotLine(t);r.addPlotLine({id:t,value:i,color:n.options.limitColor,width:n.options.limitWidth,dashStyle:n.options.limitDashStyle,zIndex:1})}n.wrap(n.Series.prototype,"addPoint",function(n,r){var u,e,f;n.apply(this,Array.prototype.slice.call(arguments,1));u=this;u.options.showLimit&&u.options.id!="highcharts-navigator-series"&&(e={series:u},u.pointClass.prototype.applyOptions.apply(e,[r]),f=e.y,f<u.currentMin&&t(u,f),f>u.currentMax&&i(u,f))});n.wrap(n.Series.prototype,"setData",function(n){var r,f,e,o,u;if(n.apply(this,Array.prototype.slice.call(arguments,1)),r=this,r.options.showLimit&&r.options.id!="highcharts-navigator-series"){for(o=0;o<r.yData.length;o++)u=r.yData[o],o==0?(f=u,e=u):u>e?e=u:u<f&&(f=u);f!=r.currentMin&&t(r,f);e!=r.currentMax&&i(r,e)}})}(Highcharts);typeof Highcharts!="undefined"&&function(n){var t=n.getOptions().plotOptions,r=n.merge,u=n.extendClass,f=n.seriesTypes,e=n.each,i;t.stochastic=r(t.line,{tooltip:{pointFormat:'<span style="color:{point.color}">●<\/span> <b> {series.name}<\/b><br/>% K: {point.k}<br/>% D: {point.d}<br/>'},states:{hover:{enabled:!1}},dDashStyle:"Dash"});i=u(n.Series,{type:"stochastic",pointArrayMap:["k","d"],pointValKey:"k",toYData:function(n){return[n.k,n.d]},translate:function(){var t=this,i=t.yAxis;n.Series.prototype.translate.apply(t);e(t.points,function(n){var r=n.k,t=n.d,u=n.plotY;r===null||t===null?n.isNull=!0:(n.plotK=u,n.plotD=i.translate(t,0,1,0,1))})},drawPoints:function(){},drawGraph:function(){for(var u=this.points,f=[],e=u.length,o=n.Series.prototype.getGraphPath,t=this.options,r,c,l;e--;)r=u[e],f.push({plotX:r.plotX,plotY:r.plotD,isNull:r.isNull});var s=o.call(this,u),h=o.call(this,f),i=this.stochasticGraphs;if(i)i[0].attr("d",s),i[1].attr("d",h);else{c=t.kColor||t.lineColor||t.color||this.color;l=t.kLineWidth||t.lineWidth;this.stochasticGraphs=i=[];i.push(this.chart.renderer.path(s).attr({stroke:c,"stroke-width":l}).add(this.group));var a=t.dColor||t.lineColor||t.color||this.color,v=t.dLineWidth||t.lineWidth,y=t.dDashStyle;i.push(this.chart.renderer.path(h).attr({stroke:a,"stroke-width":v,dashstyle:y,zIndex:0}).add(this.group))}}});f.stochastic=i}(Highcharts);typeof Highcharts!="undefined"&&function(n){var t=n.getOptions().plotOptions,r=n.merge,u=n.extendClass,f=n.seriesTypes,i;t.strikeline=r(t.line,{lineWidth:2,states:{hover:{enabled:!1}},enableMouseTracking:!1,threshold:null});i=u(n.Series,{type:"strikeline",getExtremes:function(){this.options.data&&this.options.data.length>0&&(this.dataMax=this.dataMin=this.options.data[0][1])},drawPoints:function(){},drawGraph:function(){var n=this.points,e=[],f=n.length,t=this.options,i,r,u;if(n.length!=0){while(f--)i=n[f],e.push({plotX:i.plotX,plotY:i.plotD,isNull:i.isNull});if(r=["M",0,n[0].plotY,"L",this.chart.clipBox.width,n[0].plotY],u=this.strikegraph,u)u.attr("d",r);else{var o=t.lineColor||t.color||this.color,s=t.lineWidth,h=t.dashStyle;this.strikegraph=this.chart.renderer.path(r).attr({stroke:o,"stroke-width":s,dashstyle:h}).add(this.group)}}},animate:null});f.strikeline=i}(Highcharts);typeof Highcharts!="undefined"&&function(n){var t=n.Chart.prototype,u=n.Series.prototype,i,r;n.wrap(t,"init",function(n,t,u){var e=t.shSettings,f,o;e&&(f=e[0],f._isBound===undefined&&(f._isBound=!0,$(f._container).bind("mousemove touchmove touchstart",function(n){return r(f,n)})),t.xAxis[0].events={setExtremes:function(n){i(n,this,f)}},t.plotOptions.series=t.plotOptions.series||{},t.plotOptions.series.pointRange=null,t.plotOptions.series.events={mouseOver:function(){f._activeSeries=this},mouseOut:function(){f._activeSeries=null}},t.yAxis.push({visible:!1}),o=t.yAxis.length-1,t.series.push({data:[],name:"SyncLinkedCharts-Dummy",type:"dummy",showInLegend:!1,allowPointSelect:!1,yAxis:o,closestPointRange:f._closestPointRange}));n.call(this,t,u)});n.wrap(t,"destroy",function(n){var t=this.options.shSettings,i;t&&(i=t[0],$(i._container).unbind("mousemove touchmove touchstart"));n.call(this)});n.wrap(u,"addPoint",function(n,t,i,r,u){var s=this,v=s.closestPointRange,f,h,e,a,o,c,l;if(n.call(this,t,i,r,u),f=s.closestPointRange,f<v&&(h=s.chart.options.shSettings,h)){if(e=h[0],e._closestPointRange<f)return;for(e._closestPointRange=f,a=e._highstockCharts.count,o=0;o<a;o++)c=e._highstockCharts[o],l=c.series[c.series.length-1],l.options.closestPointRange=f,l.closestPointRange=f}});i=function(n,t,i){var f,r,u;if(n.trigger!=="syncExtremes")for(f=i._highstockCharts.length,r=0;r<f;r=r+1)u=i._highstockCharts[r],u!==t&&u.xAxis[0].setExtremes&&u.xAxis[0].setExtremes(n.min,n.max,undefined,!1,{trigger:"syncExtremes"})};r=function(n,t){var y=n._highstockCharts.length,c=n._activeSeries,v,l,u,i,a,h,f,r,o,p,s,e;if(c==null)for(u=0;u<y;u=u+1){for(i=n._highstockCharts[u],h=i.series.length,f=0;f<h;f++)r=i.series[f],r.activePoint!=null&&r.activePoint.setState("");e=i.tooltip;e&&e.hide();i.xAxis[0].hideCrosshair()}else if(v=c.chart.pointer.normalize(t.originalEvent),l=c.searchPoint(v,!0),l)for(u=0;u<y;u=u+1)if(i=n._highstockCharts[u],i!=c.chart){for(a=[],h=i.series.length,f=0;f<h;f++)if(r=i.series[f],r.options.id!="highcharts-navigator-series"){for(o=null,p=r.data.length,s=0;s<p;s=s+1)if(r.data[s].x==l.x){o=r.data[s];break}o?(a.push(o),o.setState("hover"),r.activePoint=o):r.activePoint!=null&&r.activePoint.setState("")}a.length>0?i.tooltip.refresh(a):(e=i.tooltip,e&&e.hide());i.xAxis[0].drawCrosshair(v,l)}}}(Highcharts);typeof Highcharts!="undefined"&&function(n){var t=n.Chart.prototype,i=n.Tooltip.prototype,r=n.Axis.prototype;n.wrap(t,"init",function(n,t,i){var e=t.shSettings,f=Highcharts.getOptions().global,o,r,u,s,h;e&&(o=e[1],r=o.timezoneOffsets,r&&(u=r.length,u==1?(s=-1*r[0][1],f.getTimezoneOffset=function(){return s}):u>1&&(f.getTimezoneOffset=function(n){for(var i,t=u-1;t>=0;t=t-1)if(i=r[t],n>=i[0])return-1*i[1];return 0})));h=$.extend({},Highcharts.getOptions().lang,t.lang);this.globalOptions={global:f,lang:h};n.call(this,t,i)});n.wrap(r,"getTimeTicks",function(n){var i=Highcharts.getOptions(),t;return Highcharts.setOptions(this.chart.globalOptions),t=n.apply(this,Array.prototype.slice.call(arguments,1)),Highcharts.setOptions(i),t});n.wrap(i,"refresh",function(n){var i=Highcharts.getOptions(),t;return Highcharts.setOptions(this.chart.globalOptions),t=n.apply(this,Array.prototype.slice.call(arguments,1)),Highcharts.setOptions(i),t})}(Highcharts);typeof Highcharts!="undefined"&&function(n){var i=function(n){return typeof n=="number"||n!==null&&typeof n=="object"&&n.constructor===Number},u=n.getOptions().plotOptions,r=n.merge,e=n.extendClass,t=n.seriesTypes,o=n.each,f;u.volume=r(u.column,{upColor:"#00cc00",downColor:"#cc0000",borderWidth:0});f=e(t.column,{type:"volume",pointValKey:"volume",init:function(n,i){this.pointArrayMap=i.keys;t.column.prototype.init.apply(this,arguments)},toYData:function(n){return[n.volume]},getAttribs:function(){t.column.prototype.getAttribs.apply(this,arguments);var n=this,s=n.options,u=s.states,h=s.upColor||n.color,c=s.downColor||n.color,f=r(n.pointAttr),e=r(n.pointAttr);f[""].fill=h;f.hover.fill=u.hover.upColor||h;f.select.fill=u.select.upColor||h;e[""].fill=c;e.hover.fill=u.hover.downColor||c;e.select.fill=u.select.downColor||c;o(n.points,function(n){var t=n.trend;!i(t)&&i(n.open)&&i(n.close)&&(n.open>n.close?t=3:n.close==n.open?t=2:n.close>n.open&&(t=1));switch(t){case 3:n.pointAttr=e;break;case 1:n.pointAttr=f}})}});t.volume=f}(Highcharts);typeof Highcharts!="undefined"&&function(n){var t=n.getOptions().plotOptions,u=n.merge,f=n.extendClass,i=n.seriesTypes,e=n.each,o,r;t.highlow=u(t.column,{lineWidth:1,tooltip:{pointFormat:'<span style="color:{point.color}">●<\/span> <b> {series.name}<\/b><br/>High: {point.high}<br/>Low: {point.low}<br/>'},states:{hover:{lineWidth:3}},threshold:null});r=f(i.column,{type:"highlow",pointArrayMap:["open","high","low","close"],toYData:function(n){return[n.open,n.high,n.low,n.close]},pointValKey:"high",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},drawPoints:function(){var n=this,s=n.points,h=n.chart,t,f,c,i,r,u;e(s,function(e){e.plotY!==o&&(r=e.graphic,t=e.pointAttr[e.selected?"selected":""]||n.pointAttr[""],f=t["stroke-width"]%2/2,u=Math.round(e.plotX)-f,c=Math.round(e.shapeArgs.width/2),i=["M",u,Math.round(e.yBottom),"L",u,Math.round(e.plotY)],r?r.attr(t).animate({d:i}):e.graphic=h.renderer.path(i).attr(t).add(n.group))})},animate:null});i.highlow=r}(Highcharts);typeof Highcharts!="undefined"&&function(n){function t(n,t,i,r){var o=t.linkedTo||t.linkedTo==0?t.linkedTo:i,f=$.extend({plotLines:[],visible:!0,showEmpty:!0,alignTicks:!1,endOnTick:!1,startOnTick:!1,parentScaleAxis:o},t),u=n.series[0],e=1;u.keys&&(u.keys.indexOf("close"),e==-1&&u.keys.indexOf("x"));f.linkedTo=undefined;u.data.length>0&&(f.compareValue=u.data[0][e]);f.valueAdjuster=function(n,t){return t.compareValue?n/t.compareValue*100-100+r:n};n.yAxis.push(f);t.visible=!1}var i=n.Axis.prototype,r=n.Chart.prototype;n.wrap(r,"init",function(n,i,r){for(var s=i.yAxis.length,e=!0,f,o,u=0;u<s;u=u+1)if(f=i.yAxis[u],o=f.scaleMode,e||(f.gridLineWidth=0),o)switch(o){case"Absolute":f.visible&&(e=!1);break;case"RelativeBase100Percent":t(i,f,u,100);e=!1;break;case"RelativeBase0Percent":t(i,f,u,0);e=!1}n.call(this,i,r)});n.wrap(i,"setScale",function(n){var t=this.options;if(t.parentScaleAxis!=undefined){var u=this.chart,i=t.valueAdjuster,r=u.yAxis[this.options.parentScaleAxis];this.userMin=i(r.min,this.options);this.userMax=i(r.max,this.options)}n.call(this)})}(Highcharts),function(n){var t;(function(n){n.version="2.2.0";n.copyright="Copyright (c) smarthouse adesso banking solutions GmbH, 2016";var t=function(){function t(n,t){this._config=n;this._container=t;this._highstockCharts=[]}return t.prototype.render=function(){var r=this,t=this._config.themeLoader?this._config.themeLoader:n.getGlobalThemeLoader(),i;t.updateRequest(this._config);i=n.buildConfigurationUrl(this._config);$.getJSON(i,function(n){return r.dataCallback(n,t)})},t.prototype.dataCallback=function(n,t){var i=this;t.runAfterThemeReady(this._config,n,function(){var f,t;if(i.checkForErrors(n)){n.themeData=$.extend({},n.themeData);var r=i.buildHighStockOptions(n),u=i._container.children(),e=u.length;for(t=0;t<e;t++)$(u[t]).highcharts().destroy();for(i._container.empty(),f=r.length,t=0;t<f;t++)$('<div class="chart">').appendTo(i._container).highcharts("StockChart",r[t],function(n){return i._highstockCharts.push(n)})}})},t.prototype.checkForErrors=function(n){return n.dataError?(this._container.html(""),this._config.errorCallback&&this._config.errorCallback(this._container,n.dataError),!1):!0},t.prototype.buildHighStockOptions=function(n){for(var d=this,r=[],g=n.instruments.length,u,o,i,y,s,f,a,v,p,b,k,t=0;t<g;t=t+1){var nt=n.instruments[t],l=nt.data,tt=l.length,e;for(u=1;u<tt;u=u+1)e=l[u][0]-l[u-1][0],e>0&&(this._closestPointRange===undefined||e<this._closestPointRange)&&(this._closestPointRange=e)}if(o={credits:{enabled:!1},rangeSelector:{enabled:!1}},i=$.extend({},n.themeData.globalOptions),n.lang&&(i.lang=$.extend(i.lang,n.lang)),n.dateTimeLabelFormats&&(i.tooltip=$.extend(i.tooltip,{dateTimeLabelFormats:n.dateTimeLabelFormats})),r.push(this.buildMainHighstockOptions(n,i,o)),(this._config.showVolume===undefined||this._config.showVolume)&&n.instruments[0].hasVolume&&r.push(this.buildVolumeHighstockOptions(n,i,o)),n.indicators)for(y=n.indicators.length,s=0,t=0;t<y;t=t+1)(f=n.indicators[t],f.type!="None")&&(this.isSeparateIndicator(f.type)?r.push(this.buildIndicatorHighstockOptions(f,t-s,n.themeData,i,o)):(this.addInlineIndicators(f,s,n.themeData,r[0]),s++));for(a=r[0].series,v=a.length,t=0;t<v;t=t+1)p=a[t],p.zIndex=v-t;i.rangeSelector&&(r[0].rangeSelector=i.rangeSelector);i.credits&&(r[r.length-1].credits=i.credits);var it=i.chart&&i.chart.height?i.chart.height:this._container.height(),w=0,h=0,c=0;return $.each(r,function(){var r,t,n,i;for(w+=this.chart.height,r=this.yAxis.length,t=0;t<r;t=t+1)n=this.yAxis[t],(n.visible||n.visible===undefined)&&(i=n.labels&&n.labels.style&&n.labels.style.fontSize?parseFloat(n.labels.style.fontSize.replace("px","")):12,n.opposite||n.opposite===undefined?c=Math.max(c,i):h=Math.max(h,i))}),b=h>0?h*5:r[0].chart.spacingLeft,k=c>0?c*5:r[0].chart.spacingRight,$.each(r,function(){this.chart.height=it/w*this.chart.height;this.chart.marginLeft=b;this.chart.marginRight=k;this.shSettings=[d,n]}),r},t.prototype.buildMainHighstockOptions=function(n,t,i){for(var s=[],f=n.instruments.length,h,e,o,u,r=0;r<f;r=r+1)h=1e3-r,s.push($.extend({dataGrouping:{enabled:!1},zIndex:h},this._config.instruments[r],n.instruments[r]));for(e=$.extend(!0,{},this.getDefaultHighstockOptions(),t,n.themeData.instrumentOptions,{series:s},i),o=e.series,r=0;r<f;r=r+1)u=o[r],this.isOhlcSeriesType(u.type)&&!u.hasOHLC?u.type="line":u.hasOHLC&&!this.isOhlcSeriesType(u.type)&&(u.pointValKey="close");return f>0&&n.instruments[0].hasPreviousDayClose&&n.instruments[0].data.length>0&&o.push($.extend(!0,{},n.themeData.previousDayLineOptions,{type:"strikeline",dataGrouping:{enabled:!1},data:[[n.instruments[0].data[0][0],n.instruments[0].previousDayClose]],zIndex:1001,yAxis:o[0].yAxis})),e.series.splice(f),e},t.prototype.buildVolumeHighstockOptions=function(n,t,i){var r=n.instruments[0];return $.extend(!0,{},this.getDefaultHighstockOptions(),t,n.themeData.volumeOptions,{series:[{type:"volume",name:"Volume",data:r.data,keys:r.keys,dataGrouping:{enabled:!1}}]},i)},t.prototype.buildIndicatorHighstockOptions=function(n,t,i,r,u){var f;switch(n.type){case"Macd":f="macd";break;case"FastStochastic":case"SlowStochastic":f="stochastic";break;default:f="line"}return $.extend(!0,{},this.getDefaultHighstockOptions(),r,i["indicator"+(t+1)+"Options"],{series:[{type:f,name:n.name,data:n.data,dataGrouping:{enabled:!1},states:{hover:{enabled:!1}}}]},u)},t.prototype.addInlineIndicators=function(n,t,i,r){var u;switch(n.type){case"BollingerBands":u="bollinger";break;default:u="line"}r.series.push($.extend(!0,{name:n.name,isInlineIndicator:!0,type:u,yAxis:r.series[0].yAxis,data:n.data,dataGrouping:{enabled:!1},states:{hover:{enabled:!1}}},i["inlineIndicator"+(t+1)+"Options"]))},t.prototype.isOhlcSeriesType=function(n){switch(n){case"ohlc":case"highlow":case"candlestick":return!0;default:return!1}},t.prototype.isSeparateIndicator=function(n){switch(n){case"SimpleMovingAverage":case"BollingerBands":return!1;default:return!0}},t.prototype.getDefaultHighstockOptions=function(){return{chart:{height:20},navigator:{enabled:!1},scrollbar:{enabled:!1},legend:{enabled:!1},yAxis:[{opposite:!1,compareMode:"RelativeToStartpoint",scaleMode:"Absolute",plotLines:[],labels:{align:"right"}},{compareMode:"RelativeToStartpoint",scaleMode:"Absolute",plotLines:[],labels:{align:"left"}},],xAxis:{type:"datetime",ordinal:!1}}},t}();n.Chart=t})(t=n.Html5Charts||(n.Html5Charts={}))}(Smarthouse||(Smarthouse={})),function(n){var t;(function(n){function i(n){t=n}function r(){return t}var t;n.setGlobalChartDeliveryBaseUrl=i;n.getGlobalChartDeliveryBaseUrl=r})(t=n.Html5Charts||(n.Html5Charts={}))}(Smarthouse||(Smarthouse={}));$.fn.shchart=function(n){new Smarthouse.Html5Charts.Chart(n,this).render()};$(function(){Smarthouse.Html5Charts.initAttributeCharts()}),function(n){var t;(function(n){function t(){$("div[data-shchart-instruments]").each(i)}function i(){var t=$(this),i={baseUrl:t.attr("data-shchart-baseurl"),period:n.ChartPeriod[t.attr("data-shchart-period")],theme:t.attr("data-shchart-theme"),instruments:r(t)};t.shchart(i)}function r(n){for(var i=n.attr("data-shchart-instruments").split(";"),r=[],f=i.length,t=0;t<f;t++)r.push(u(i[t]));return r}function u(n){var t=n.split("!"),i=t[0],r=t[1],u=t.length>2?t[2]:undefined,f=t.length>2?t[2]:undefined;return{name:i,identifier:r,pushSymbol:u,pushField:f}}n.initAttributeCharts=t})(t=n.Html5Charts||(n.Html5Charts={}))}(Smarthouse||(Smarthouse={})),function(n){var t;(function(t){function f(n){var t=n.indicator;switch(t){case i.None:return r(t);case i.SimpleMovingAverage:case i.RSI:case i.Momentum:case i.RateOfChange:return r(t,n.days);case i.BollingerBands:return r(t,n.days,n.factor);case i.MACD:return r(t,n.fastPeriod,n.slowPeriod,n.signalPeriod);case i.SlowStochastic:return r(t,n.rawPeriod,n.kPeriod,n.dPeriod);case i.FastStochastic:return r(t,n.kPeriod,n.dPeriod);default:throw new RangeError("Unknown indicator type");}}function r(n){for(var u=[],f,r,t=1;t<arguments.length;t++)u[t-1]=arguments[t];for(f="",r=0;r<u.length;r++)u[r]?f+=","+u[r]:f="";return i[n]+f}function e(t){var r="",i;return r=!t.period&&t.from&&t.to?"&from="+t.from+"&to="+t.to:"&chartPeriod="+(t.period?u[t.period]:u[u.Intraday]),i=(t.baseUrl||n.Html5Charts.getGlobalChartDeliveryBaseUrl())+"?instruments="+(t.instruments?$.map(t.instruments,function(n){return n.identifier}).join(";"):"")+"&ohlc="+(t.showOhlc===undefined?"auto":t.showOhlc?"true":"false")+"&volume="+(t.showVolume===undefined?"auto":t.showVolume?"true":"false")+"&trend="+(t.showTrend===undefined?"auto":t.showTrend?"true":"false")+"&previousDayClose="+(t.showPreviousDayClose===undefined?"auto":t.showPreviousDayClose?"true":"false")+r+(t.indicators&&t.indicators.length>0?"&indicators="+$.map(t.indicators,function(n){return f(n)}).join(";"):"")+(t.displayTimeZone?"&displayTimeZone="+t.displayTimeZone:""),t.additionalParameters&&$.each(t.additionalParameters,function(n,t){i+="&"+n+"="+encodeURIComponent(t)}),i}var u,i;(function(n){n[n.Intraday=0]="Intraday";n[n.CurrentWeek=1]="CurrentWeek";n[n.OneWeek=2]="OneWeek";n[n.TwoWeeks=3]="TwoWeeks";n[n.CurrentMonth=4]="CurrentMonth";n[n.OneMonth=5]="OneMonth";n[n.ThreeMonths=6]="ThreeMonths";n[n.SixMonths=7]="SixMonths";n[n.CurrentYear=8]="CurrentYear";n[n.OneYear=9]="OneYear";n[n.ThreeYears=10]="ThreeYears";n[n.FiveYears=11]="FiveYears";n[n.SevenYears=12]="SevenYears";n[n.TenYears=13]="TenYears";n[n.FifteenYears=14]="FifteenYears";n[n.TwentyYears=15]="TwentyYears";n[n.Maximum=16]="Maximum"})(t.ChartPeriod||(t.ChartPeriod={}));u=t.ChartPeriod,function(n){n[n.None=0]="None";n[n.SimpleMovingAverage=1]="SimpleMovingAverage";n[n.RSI=2]="RSI";n[n.RateOfChange=3]="RateOfChange";n[n.Momentum=4]="Momentum";n[n.BollingerBands=5]="BollingerBands";n[n.MACD=6]="MACD";n[n.SlowStochastic=7]="SlowStochastic";n[n.FastStochastic=8]="FastStochastic"}(t.IndicatorType||(t.IndicatorType={}));i=t.IndicatorType;t.buildConfigurationUrl=e})(t=n.Html5Charts||(n.Html5Charts={}))}(Smarthouse||(Smarthouse={})),function(n){var t;(function(n){function f(n){t=n}function e(){return t||(t=new i),t}var t,i,r,u;n.setGlobalThemeLoader=f;n.getGlobalThemeLoader=e;i=function(){function n(){this._themes={}}return n.prototype.updateRequest=function(n){n.theme&&(n.additionalParameters||(n.additionalParameters={}),n.additionalParameters.theme=n.theme,this._themes[n.theme]||(this._themes[n.theme]=new r,n.additionalParameters.includeTheme="true"))},n.prototype.runAfterThemeReady=function(n,t,i){if(n.theme){var r=this._themes[n.theme];if(t.themeData)r.themeData=t.themeData,r.loaded=!0,r.executeCallbacks();else if(r.loaded)t.themeData=r.themeData;else{r.callbacks.push(new u(t,i));return}}i()},n}();n.ChartDeliveryThemeLoader=i;r=function(){function n(){this.callbacks=[]}return n.prototype.executeCallbacks=function(){for(var t,n=0;n<this.callbacks.length;n++)t=this.callbacks[n],t.response.themeData=this.themeData,t.callback();this.callbacks=[]},n}();u=function(){function n(n,t){this.response=n;this.callback=t}return n}()})(t=n.Html5Charts||(n.Html5Charts={}))}(Smarthouse||(Smarthouse={}))