var HighchartsAdapter=function(){var a,c,s=document,n=[],o=[];function i(t){function o(t,e,n){t.removeEventListener(e,n,!1)}function h(t,e,n){n=t.HCProxiedMethods[n.toString()],t.detachEvent("on"+e,n)}function r(t,e){var n,i,r,s,a=t.HCEvents;if(t.removeEventListener)n=o;else{if(!t.attachEvent)return;n=h}for(s in e?(i={})[e]=!0:i=a,i)if(a[s])for(r=a[s].length;r--;)n(t,s,a[s][r])}return t.HCExtended||Highcharts.extend(t,{HCExtended:!0,HCEvents:{},bind:function(t,e){var n,i=this,r=this.HCEvents;i.addEventListener?i.addEventListener(t,e,!1):i.attachEvent&&(n=function(t){e.call(i,t)},i.HCProxiedMethods||(i.HCProxiedMethods={}),i.HCProxiedMethods[e.toString()]=n,i.attachEvent("on"+t,n)),void 0===r[t]&&(r[t]=[]),r[t].push(e)},unbind:function(t,e){var n,i;t?(n=this.HCEvents[t]||[],e?(-1<(i=HighchartsAdapter.inArray(e,n))&&(n.splice(i,1),this.HCEvents[t]=n),this.removeEventListener?o(this,t,e):this.attachEvent&&h(this,t,e)):(r(this,t),this.HCEvents[t]=[])):(r(this),this.HCEvents={})},trigger:function(t,e){var n,i,r,s=this.HCEvents[t]||[],a=s.length;for(i=function(){e.defaultPrevented=!0},n=0;n=s.duration+this.startTime){for(i in this.now=this.end,this.pos=this.state=1,this.update(),n=this.options.curAnim[this.prop]=!0,s.curAnim)!0!==s.curAnim[i]&&(n=!1);n&&s.complete&&s.complete.call(this.elem),e=!1}else{var a=r-this.startTime;this.state=a/s.duration,this.pos=s.easing(a,0,1,s.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0}return e}},this.animate=function(t,e,n){var i,r,s,a,o,h="";for(o in t.stopAnimation=!1,"object"==typeof n&&null!==n||(n={duration:(a=arguments)[2],easing:a[3],complete:a[4]}),"number"!=typeof n.duration&&(n.duration=400),n.easing=Math[n.easing]||Math.easeInOutSine,n.curAnim=Highcharts.extend({},e),e)s=new c(t,n,o),r=null,"d"===o?(s.paths=u.init(t,t.d,e.d),s.toD=e.d,i=0,r=1):t.attr?i=t.attr(o):(i=parseFloat(HighchartsAdapter._getStyle(t,o))||0,"opacity"!==o&&(h="px")),r=r||parseFloat(e[o]),s.custom(i,r,h)}},_getStyle:function(t,e){return window.getComputedStyle(t).getPropertyValue(e)},getScript:function(t,e){var n=s.getElementsByTagName("head")[0],i=s.createElement("script");i.type="text/javascript",i.src=t,i.onload=e,n.appendChild(i)},inArray:function(t,e){return e.indexOf?e.indexOf(t):n.indexOf.call(e,t)},adapterRun:function(t,e){return parseInt(HighchartsAdapter._getStyle(t,e),10)},grep:function(t,e){return n.filter.call(t,e)},map:function(t,e){for(var n=[],i=0,r=t.length;i