@xcpcio/board-app 0.46.3 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/404.html +1 -1
  2. package/dist/assets/Board-8cb099e8.js +1 -0
  3. package/dist/assets/DataSourceInput.vue_vue_type_script_setup_true_lang-669bf7c0.js +1 -0
  4. package/dist/assets/{TheInput.vue_vue_type_script_setup_true_lang-51ad90e9.js → TheInput.vue_vue_type_script_setup_true_lang-ce96e373.js} +1 -1
  5. package/dist/assets/_...all_-729d96d7.js +6 -0
  6. package/dist/assets/_...all_-c60acc8c.css +1 -0
  7. package/dist/assets/_...all_-f3d30859.js +1 -0
  8. package/dist/assets/{_name_-c9a7b268.js → _name_-fa12f56d.js} +1 -1
  9. package/dist/assets/{about-6219edda.js → about-6e5a2f3e.js} +1 -1
  10. package/dist/assets/board-6c9ef349.js +1 -0
  11. package/dist/assets/{board-layout-b08cf01a.js → board-layout-1ad47386.js} +1 -1
  12. package/dist/assets/{headless-4d4f2337.js → headless-cbd40573.js} +1 -1
  13. package/dist/assets/{home-5f98843d.js → home-eb990606.js} +1 -1
  14. package/dist/assets/index-241beb5a.css +1 -0
  15. package/dist/assets/index-42e1a002.js +1 -0
  16. package/dist/assets/{index-ea1c658f.css → index-53dc9c92.css} +2 -2
  17. package/dist/assets/index-5e6a6648.js +1 -0
  18. package/dist/assets/{index-a771ea05.js → index-d70fb8f0.js} +78 -78
  19. package/dist/assets/index-fd9c106b.js +1 -0
  20. package/dist/assets/{index-layout-692a69df.js → index-layout-7a27b184.js} +1 -1
  21. package/dist/assets/pagination-fe331a94.js +3 -0
  22. package/dist/assets/{query-5fd73b94.js → query-ce1fd4de.js} +1 -1
  23. package/dist/assets/test-544e70d8.js +1 -0
  24. package/dist/assets/{user-62a1879b.js → user-449d45cf.js} +1 -1
  25. package/dist/assets/{virtual_pwa-register-10abc341.js → virtual_pwa-register-c3a257bf.js} +1 -1
  26. package/dist/index.html +1 -1
  27. package/dist/sw.js +1 -1
  28. package/package.json +3 -3
  29. package/src/auto-imports.d.ts +9 -0
  30. package/src/components/NavBar.vue +10 -1
  31. package/src/components/rating/Rating.vue +82 -0
  32. package/src/components/rating/RatingBadge.vue +32 -0
  33. package/src/components/rating/RatingIndexUI.vue +173 -0
  34. package/src/components/rating/RatingInfoModal.vue +112 -0
  35. package/src/components/rating/RatingTable.vue +270 -0
  36. package/src/components/rating/RatingUserUI.vue +74 -0
  37. package/src/components/rating/rating.less +68 -0
  38. package/src/components.d.ts +6 -0
  39. package/src/composables/constant.ts +6 -0
  40. package/src/composables/rating.ts +217 -0
  41. package/src/pages/rating/[...all].vue +13 -0
  42. package/src/pages/rating/index.vue +86 -0
  43. package/vite.config.ts +8 -5
  44. package/dist/assets/Board-6ef1c1b9.js +0 -3
  45. package/dist/assets/DataSourceInput.vue_vue_type_script_setup_true_lang-3f783706.js +0 -1
  46. package/dist/assets/_...all_-5d9480a0.js +0 -1
  47. package/dist/assets/board-33bc86ab.js +0 -1
  48. package/dist/assets/index-168068d2.js +0 -1
  49. package/dist/assets/index-3c0f7a79.js +0 -1
  50. package/dist/assets/test-4379792f.js +0 -1
@@ -0,0 +1,3 @@
1
+ var Kt=Object.defineProperty;var Zt=(lt,at,ct)=>at in lt?Kt(lt,at,{enumerable:!0,configurable:!0,writable:!0,value:ct}):lt[at]=ct;var zt=(lt,at,ct)=>(Zt(lt,typeof at!="symbol"?at+"":at,ct),ct);import{g as Ut,h as Vt,aZ as Jt,A as Qt,o as Tt,c as At,d as vt,G as Ht,Y as Yt,t as Lt,D as Ot,a_ as It,O as Dt,F as Bt,s as Rt,k as Gt,T as Xt,W as te,a$ as ee,a5 as ie,b0 as se,j as wt}from"./index-d70fb8f0.js";const oe={class:"relative bg-white dark:bg-gray-800 sm:p-4","rounded-sm":"","shadow-sm":""},ne={class:"mb-4 border-b rounded-t pb-4 sm:mb-4 dark:border-gray-600",flex:"","items-center":"","justify-between":""},re={"text-gray-900":"","dark:text-white":"","text-xl":"","font-sans":"","font-semibold":"",italic:""},ae=vt("svg",{class:"h-5 w-5",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},[vt("path",{"fill-rule":"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1),he=vt("span",{"sr-only":""}," Close modal ",-1),le=[ae,he],Ye=Ut({__name:"Modal",props:{isHidden:{type:Boolean},title:null,width:null,mt:null},emits:["update:isHidden"],setup(lt,{emit:at}){const ct=lt,z=Vt({get(){return ct.isHidden},set(K){at("update:isHidden",K)}});function F(){z.value=!0}const{Escape:N}=Jt();return Qt(N,K=>{K&&F()}),(K,et)=>(Tt(),At("div",{class:Ot(["md:inset-0 w-[100%] h-[100%]",[ct.mt??"md:mt-32 sm:mt-16"]]),fixed:"","z-9997":"","of-x-hidden":"",flex:"","justify-center":"","items-start":""},[vt("div",{class:"w-[100%] h-[100%]",fixed:"","left-0":"","top-0":"","z-9998":"",style:Ht({backgroundColor:"rgba(0, 0, 0, 0.5)"}),onClick:F},null,4),vt("div",{class:Ot(["relative p-4",[ct.width??"w-[78%]"]]),"z-9999":""},[vt("div",oe,[vt("div",ne,[Yt(K.$slots,"header",{},()=>[vt("h3",re,Lt(ct.title),1)]),vt("button",{type:"button",class:"hover:bg-gray-200 hover:text-gray-900 dark:hover:bg-gray-600 dark:hover:text-white","bg-transparent":"","ml-auto":"","p-1.5":"","text-sm":"","text-gray-400":"","items-center":"","inline-flex":"","rounded-lg":"",onClick:F},le)]),Yt(K.$slots,"default")])],2)],2))}}),Mt={openOptions(lt){lt.$refs.input.focus(),lt.showMenu=!0,lt.mousedownState=!1},blurInput(lt){lt.mousedownState||(lt.searchText="",lt.closeOptions()),lt.$emit("blur")},closeOptions(lt){lt.$refs.input.blur(),lt.showMenu=!1},prevItem(lt){const at=lt.pointer-1,ct=lt.$el.offsetHeight*at;at>=0&&(lt.pointer=at),lt.$refs.menu.scrollTop=ct},nextItem(lt){const at=lt.pointer+1,ct=lt.$el.offsetHeight*at;at<=lt.filteredOptions.length-1&&(lt.pointer=at);const z=lt.$refs.menu.offsetHeight,F=Math.ceil((lt.$refs.menu.scrollTop+lt.$el.offsetHeight)/z),N=Math.ceil(ct/z);F!==N&&(lt.$refs.menu.scrollTop=(N-1)*lt.$refs.menu.offsetHeight)},enterItem(lt){const at=lt.filteredOptions[lt.pointer],ct=at.disabled;at&&!ct&&lt.selectItem(at)},pointerSet(lt,at){lt.pointer=at},pointerAdjust(lt){lt.pointer>=lt.filteredOptions.length-1&&(lt.pointer=lt.filteredOptions.length?lt.filteredOptions.length-1:0)},mousedownItem(lt){lt.mousedownState=!0}};function ce(lt){return new RegExp(lt.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i")}const qt={props:{id:{default:null},name:{type:String,default:""},isError:{type:Boolean,default:!1},customAttr:{type:Function,default:()=>""},isDisabled:{type:Boolean,default:!1},placeholder:{type:String,default:""},filterPredicate:{type:Function,default:(lt,at)=>lt.match(ce(at))}}},$t=(lt,at)=>{const ct=lt.__vccOpts||lt;for(const[z,F]of at)ct[z]=F;return ct},de={name:"ModelSelect",mixins:[qt],emits:["blur","searchchange","update:modelValue"],props:{modelValue:{type:[String,Number,Object,Boolean]},customAttr:{type:Function,default:()=>""},options:{type:Array}},data(){return{showMenu:!1,searchText:"",mousedownState:!1,pointer:-1}},watch:{value(lt){this.pointer=this.filteredOptions.findIndex(at=>at.value===this.optionValue(lt))},filteredOptions(){this.pointerAdjust()},searchText(){this.$emit("searchchange",this.searchText)}},computed:{searchTextCustomAttr(){return this.selectedOption&&this.selectedOption.value?this.customAttr(this.selectedOption):""},inputText(){if(this.searchText)return"";{let lt=this.placeholder;return this.selectedOption&&(lt=this.selectedOption.text),lt}},customAttrs(){try{if(Array.isArray(this.options))return this.options.map(lt=>this.customAttr(lt))}catch{}return[]},textClass(){return!this.selectedOption&&this.placeholder?"default":""},menuClass(){return{visible:this.showMenu,hidden:!this.showMenu}},menuStyle(){return{display:this.showMenu?"block":"none"}},filteredOptions(){return this.searchText?this.options.filter(lt=>{try{return this.filterPredicate(lt.text,this.searchText)}catch{return!0}}):this.options},selectedOption(){return this.options.find(lt=>lt.value===this.optionValue(this.modelValue))}},methods:{deleteTextOrItem(){!this.searchText&&this.modelValue&&(this.selectItem({}),this.openOptions())},openOptions(){Mt.openOptions(this)},blurInput(){Mt.blurInput(this)},closeOptions(){Mt.closeOptions(this)},prevItem(){Mt.prevItem(this)},nextItem(){Mt.nextItem(this)},enterItem(){Mt.enterItem(this)},pointerSet(lt){Mt.pointerSet(this,lt)},pointerAdjust(){Mt.pointerAdjust(this)},mousedownItem(){Mt.mousedownItem(this)},selectItem(lt){this.searchText="",this.closeOptions(),typeof this.modelValue=="object"&&this.modelValue?this.$emit("update:modelValue",lt):(this.$emit("update:modelValue",lt.value),lt.value!==void 0&&lt.value===lt.text&&(this.searchText=lt.value))},optionValue(lt){return typeof lt=="object"&&lt!==null?lt.value:lt}}},pe=vt("i",{class:"dropdown icon"},null,-1),ue=["disabled","tabindex","id","name","value"],ge=["data-vss-custom-attr"],fe=["data-vss-custom-attr","onClick","onMouseenter"];function me(lt,at,ct,z,F,N){return Tt(),At("div",{class:Ot(["ui fluid search selection dropdown",{"active visible":F.showMenu,error:lt.isError,disabled:lt.isDisabled}]),onClick:at[11]||(at[11]=(...K)=>N.openOptions&&N.openOptions(...K)),onFocus:at[12]||(at[12]=(...K)=>N.openOptions&&N.openOptions(...K))},[pe,vt("input",{class:"search",autocomplete:"off",disabled:lt.isDisabled,tabindex:lt.isDisabled?-1:0,id:lt.id,name:lt.name,value:F.searchText,onInput:at[0]||(at[0]=K=>F.searchText=K.target.value),ref:"input",onFocus:at[1]||(at[1]=It((...K)=>N.openOptions&&N.openOptions(...K),["prevent"])),onKeyup:[at[2]||(at[2]=Dt((...K)=>N.closeOptions&&N.closeOptions(...K),["esc"])),at[7]||(at[7]=Dt(It((...K)=>N.enterItem&&N.enterItem(...K),["prevent"]),["enter"]))],onBlur:at[3]||(at[3]=(...K)=>N.blurInput&&N.blurInput(...K)),onKeydown:[at[4]||(at[4]=Dt((...K)=>N.prevItem&&N.prevItem(...K),["up"])),at[5]||(at[5]=Dt((...K)=>N.nextItem&&N.nextItem(...K),["down"])),at[6]||(at[6]=Dt(It(()=>{},["prevent"]),["enter"])),at[8]||(at[8]=Dt((...K)=>N.deleteTextOrItem&&N.deleteTextOrItem(...K),["delete"]))]},null,40,ue),vt("div",{class:Ot(["text",N.textClass]),"data-vss-custom-attr":N.searchTextCustomAttr},Lt(N.inputText),11,ge),vt("div",{class:Ot(["menu",N.menuClass]),ref:"menu",onMousedown:at[10]||(at[10]=It(()=>{},["prevent"])),style:Ht(N.menuStyle),tabindex:"-1"},[(Tt(!0),At(Bt,null,Rt(N.filteredOptions,(K,et)=>(Tt(),At("div",{key:et,class:Ot(["item",{selected:K.selected||F.pointer===et,disabled:K.disabled}]),"data-vss-custom-attr":N.customAttrs[et]?N.customAttrs[et]:"",onClick:It(tt=>N.selectItem(K),["stop"]),onMousedown:at[9]||(at[9]=(...tt)=>N.mousedownItem&&N.mousedownItem(...tt)),onMouseenter:tt=>N.pointerSet(et)},Lt(K.text),43,fe))),128))],38)],34)}const Fe=$t(de,[["render",me]]),xe={name:"MultiSelect",mixins:[qt],emits:["blur","searchchange","select"],props:{customAttr:{type:Function,default:()=>""},options:{type:Array},selectedOptions:{type:Array},cleanSearch:{type:Boolean,default:!0},hideSelectedOptions:{type:Boolean,default:!1}},data(){return{showMenu:!1,searchText:"",mousedownState:!1,pointer:-1}},watch:{selectedOptions(){this.pointer=-1},filteredOptions(){this.pointerAdjust()},searchText(){this.$emit("searchchange",this.searchText)}},computed:{inputText(){return this.searchText?"":this.placeholder},textClass(){return this.placeholder?"default":""},inputWidth(){return{width:(this.searchText.length+1)*8+20+"px"}},menuClass(){return{visible:this.showMenu,hidden:!this.showMenu}},menuStyle(){return{display:this.showMenu?"block":"none"}},nonSelectOptions(){return this.options.filter(lt=>this.selectedOptions.findIndex(at=>at.value===lt.value)===-1)},filteredOptions(){return this.searchText?this.nonSelectOptions.filter(lt=>{try{return this.cleanSearch?this.filterPredicate(this.accentsTidy(lt.text),this.searchText):this.filterPredicate(lt.text,this.searchText)}catch{return!0}}):this.nonSelectOptions}},methods:{deleteTextOrLastItem(){!this.searchText&&this.selectedOptions.length>0&&this.deleteItem(this.selectedOptions[this.selectedOptions.length-1])},openOptions(){Mt.openOptions(this)},blurInput(){Mt.blurInput(this)},closeOptions(){Mt.closeOptions(this)},prevItem(){Mt.prevItem(this),this.openOptions()},nextItem(){Mt.nextItem(this),this.openOptions()},enterItem(){Mt.enterItem(this)},pointerSet(lt){Mt.pointerSet(this,lt)},pointerAdjust(){Mt.pointerAdjust(this)},mousedownItem(){Mt.mousedownItem(this)},selectItem(lt){const at=this.selectedOptions.concat(lt),ct=at.filter((z,F)=>at.indexOf(z)===F);this.closeOptions(),this.searchText="",this.$emit("select",ct,lt,"insert")},deleteItem(lt){const at=this.selectedOptions.filter(ct=>ct.value!==lt.value);this.$emit("select",at,lt,"delete")},accentsTidy(lt){let at=lt.toString().toLowerCase();return at=at.replace(new RegExp("[àáâãäå]","g"),"a"),at=at.replace(new RegExp("æ","g"),"ae"),at=at.replace(new RegExp("ç","g"),"c"),at=at.replace(new RegExp("[èéêë]","g"),"e"),at=at.replace(new RegExp("[ìíîï]","g"),"i"),at=at.replace(new RegExp("ñ","g"),"n"),at=at.replace(new RegExp("[òóôõö]","g"),"o"),at=at.replace(new RegExp("œ","g"),"oe"),at=at.replace(new RegExp("[ùúûü]","g"),"u"),at=at.replace(new RegExp("[ýÿ]","g"),"y"),at}}},ye=vt("i",{class:"dropdown icon"},null,-1),ve=["data-vss-custom-attr"],ke=["onClick"],Se=["disabled","tabindex","id","name"],Ce=["data-vss-custom-attr","onClick","onMouseenter"];function we(lt,at,ct,z,F,N){return Tt(),At("div",{class:Ot(["ui fluid search dropdown selection multiple",{"active visible":F.showMenu,error:lt.isError,disabled:lt.isDisabled}]),onClick:at[11]||(at[11]=(...K)=>N.openOptions&&N.openOptions(...K)),onFocus:at[12]||(at[12]=(...K)=>N.openOptions&&N.openOptions(...K))},[ye,ct.hideSelectedOptions?Gt("",!0):(Tt(!0),At(Bt,{key:0},Rt(ct.selectedOptions,(K,et)=>(Tt(),At("a",{key:et,class:"ui label transition visible",style:{display:"inline-block !important"},"data-vss-custom-attr":ct.customAttr(K)},[Xt(Lt(K.text),1),vt("i",{class:"delete icon",onClick:tt=>N.deleteItem(K)},null,8,ke)],8,ve))),128)),te(vt("input",{class:"search",autocomplete:"off",disabled:lt.isDisabled,tabindex:lt.isDisabled?-1:0,id:lt.id,name:lt.name,"onUpdate:modelValue":at[0]||(at[0]=K=>F.searchText=K),ref:"input",style:Ht(N.inputWidth),onFocus:at[1]||(at[1]=It((...K)=>N.openOptions&&N.openOptions(...K),["prevent"])),onKeyup:[at[2]||(at[2]=Dt((...K)=>N.closeOptions&&N.closeOptions(...K),["esc"])),at[7]||(at[7]=Dt(It((...K)=>N.enterItem&&N.enterItem(...K),["prevent"]),["enter"]))],onBlur:at[3]||(at[3]=(...K)=>N.blurInput&&N.blurInput(...K)),onKeydown:[at[4]||(at[4]=Dt((...K)=>N.prevItem&&N.prevItem(...K),["up"])),at[5]||(at[5]=Dt((...K)=>N.nextItem&&N.nextItem(...K),["down"])),at[6]||(at[6]=Dt(It(()=>{},["prevent"]),["enter"])),at[8]||(at[8]=Dt((...K)=>N.deleteTextOrLastItem&&N.deleteTextOrLastItem(...K),["delete"]))]},null,44,Se),[[ee,F.searchText]]),vt("div",{class:Ot(["text",N.textClass])},Lt(N.inputText),3),vt("div",{class:Ot(["menu",N.menuClass]),ref:"menu",onMousedown:at[10]||(at[10]=It(()=>{},["prevent"])),style:Ht(N.menuStyle),tabindex:"-1"},[(Tt(!0),At(Bt,null,Rt(N.filteredOptions,(K,et)=>(Tt(),At("div",{key:et,class:Ot(["item",{selected:K.selected||F.pointer===et,disabled:K.disabled}]),"data-vss-custom-attr":ct.customAttr(K),onClick:It(tt=>N.selectItem(K),["stop"]),onMousedown:at[9]||(at[9]=(...tt)=>N.mousedownItem&&N.mousedownItem(...tt)),onMouseenter:tt=>N.pointerSet(et)},Lt(K.text),43,Ce))),128))],38)],34)}const Ue=$t(xe,[["render",we]]);var _t={exports:{}},Wt={exports:{}},Ft;function Me(){return Ft||(Ft=1,function(lt){(function(at,ct){lt.exports?(ct.default=ct,lt.exports=at.document?ct(at):ct):(at.Highcharts&&at.Highcharts.error(16,!0),at.Highcharts=ct(at))})(typeof window<"u"?window:ie,function(at){function ct(F,N,K,et){F.hasOwnProperty(N)||(F[N]=et.apply(null,K),typeof CustomEvent=="function"&&at.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:N,module:F[N]}})))}var z={};return ct(z,"Core/Globals.js",[],function(){var F;return function(N){N.SVG_NS="http://www.w3.org/2000/svg",N.product="Highcharts",N.version="11.1.0",N.win=typeof at<"u"?at:{},N.doc=N.win.document,N.svg=N.doc&&N.doc.createElementNS&&!!N.doc.createElementNS(N.SVG_NS,"svg").createSVGRect,N.userAgent=N.win.navigator&&N.win.navigator.userAgent||"",N.isChrome=N.userAgent.indexOf("Chrome")!==-1,N.isFirefox=N.userAgent.indexOf("Firefox")!==-1,N.isMS=/(edge|msie|trident)/i.test(N.userAgent)&&!N.win.opera,N.isSafari=!N.isChrome&&N.userAgent.indexOf("Safari")!==-1,N.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(N.userAgent),N.isWebKit=N.userAgent.indexOf("AppleWebKit")!==-1,N.deg2rad=2*Math.PI/360,N.hasBidiBug=N.isFirefox&&4>parseInt(N.userAgent.split("Firefox/")[1],10),N.hasTouch=!!N.win.TouchEvent,N.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],N.noop=function(){},N.supportsPassiveEvents=function(){let K=!1;if(!N.isMS){const et=Object.defineProperty({},"passive",{get:function(){K=!0}});N.win.addEventListener&&N.win.removeEventListener&&(N.win.addEventListener("testPassive",N.noop,et),N.win.removeEventListener("testPassive",N.noop,et))}return K}(),N.charts=[],N.dateFormats={},N.seriesTypes={},N.symbolSizes={},N.chartCount=0}(F||(F={})),F}),ct(z,"Core/Utilities.js",[z["Core/Globals.js"]],function(F){function N(t,i,h,u){const A=i?"Highcharts error":"Highcharts warning";t===32&&(t=`${A}: Deprecated member`);const r=U(t);let T=r?`${A} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(typeof u<"u"){let G="";r&&(T+="?"),b(u,function(q,Q){G+=`
2
+ - ${Q}: ${q}`,r&&(T+=encodeURI(Q)+"="+encodeURI(q))}),T+=G}k(F,"displayError",{chart:h,code:t,message:T,params:u},function(){if(i)throw Error(T);p.console&&N.messages.indexOf(T)===-1&&console.warn(T)}),N.messages.push(T)}function K(t,i){return parseInt(t,i||10)}function et(t){return typeof t=="string"}function tt(t){return t=Object.prototype.toString.call(t),t==="[object Array]"||t==="[object Array Iterator]"}function it(t,i){return!!t&&typeof t=="object"&&(!i||!tt(t))}function st(t){return it(t)&&typeof t.nodeType=="number"}function H(t){const i=t&&t.constructor;return!(!it(t,!0)||st(t)||!i||!i.name||i.name==="Object")}function U(t){return typeof t=="number"&&!isNaN(t)&&1/0>t&&-1/0<t}function X(t){return typeof t<"u"&&t!==null}function S(t,i,h){const u=et(i)&&!X(h);let A;const r=(T,G)=>{X(T)?t.setAttribute(G,T):u?(A=t.getAttribute(G))||G!=="class"||(A=t.getAttribute(G+"Name")):t.removeAttribute(G)};return et(i)?r(h,i):b(i,r),A}function w(t){return tt(t)?t:[t]}function L(t,i){let h;t||(t={});for(h in i)t[h]=i[h];return t}function E(){const t=arguments,i=t.length;for(let h=0;h<i;h++){const u=t[h];if(typeof u<"u"&&u!==null)return u}}function d(t,i){F.isMS&&!F.svg&&i&&X(i.opacity)&&(i.filter=`alpha(opacity=${100*i.opacity})`),L(t.style,i)}function x(t){return Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function y(t,i){return 1e14<t?t:parseFloat(t.toPrecision(i||14))}function m(t,i,h){let u;return i==="width"?(i=Math.min(t.offsetWidth,t.scrollWidth),h=t.getBoundingClientRect&&t.getBoundingClientRect().width,h<i&&h>=i-1&&(i=Math.floor(h)),Math.max(0,i-(m(t,"padding-left",!0)||0)-(m(t,"padding-right",!0)||0))):i==="height"?Math.max(0,Math.min(t.offsetHeight,t.scrollHeight)-(m(t,"padding-top",!0)||0)-(m(t,"padding-bottom",!0)||0)):((t=p.getComputedStyle(t,void 0))&&(u=t.getPropertyValue(i),E(h,i!=="opacity")&&(u=K(u))),u)}function b(t,i,h){for(const u in t)Object.hasOwnProperty.call(t,u)&&i.call(h||t[u],t[u],u,t)}function v(t,i,h){function u(T,G){const q=t.removeEventListener;q&&q.call(t,T,G,!1)}function A(T){let G,q;t.nodeName&&(i?(G={},G[i]=!0):G=T,b(G,function(Q,D){if(T[D])for(q=T[D].length;q--;)u(D,T[D][q].fn)}))}var r=typeof t=="function"&&t.prototype||t;if(Object.hasOwnProperty.call(r,"hcEvents")){const T=r.hcEvents;i?(r=T[i]||[],h?(T[i]=r.filter(function(G){return h!==G.fn}),u(i,h)):(A(T),T[i]=[])):(A(T),delete r.hcEvents)}}function k(t,i,h,u){if(h=h||{},a.createEvent&&(t.dispatchEvent||t.fireEvent&&t!==F)){var A=a.createEvent("Events");A.initEvent(i,!0,!0),h=L(A,h),t.dispatchEvent?t.dispatchEvent(h):t.fireEvent(i,h)}else if(t.hcEvents){h.target||L(h,{preventDefault:function(){h.defaultPrevented=!0},target:t,type:i}),A=[];let r=t,T=!1;for(;r.hcEvents;)Object.hasOwnProperty.call(r,"hcEvents")&&r.hcEvents[i]&&(A.length&&(T=!0),A.unshift.apply(A,r.hcEvents[i])),r=Object.getPrototypeOf(r);T&&A.sort((G,q)=>G.order-q.order),A.forEach(G=>{G.fn.call(t,h)===!1&&h.preventDefault()})}u&&!h.defaultPrevented&&u.call(t,h)}const{charts:n,doc:a,win:p}=F;(N||(N={})).messages=[],Math.easeInOutSine=function(t){return-.5*(Math.cos(Math.PI*t)-1)};var l=Array.prototype.find?function(t,i){return t.find(i)}:function(t,i){let h;const u=t.length;for(h=0;h<u;h++)if(i(t[h],h))return t[h]};b({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(t,i){F[i]=function(h){return N(32,!1,void 0,{[`Highcharts.${i}`]:`use Array.${t}`}),Array.prototype[t].apply(h,[].slice.call(arguments,1))}});let c;const e=function(){const t=Math.random().toString(36).substring(2,9)+"-";let i=0;return function(){return"highcharts-"+(c?"":t)+i++}}();return p.jQuery&&(p.jQuery.fn.highcharts=function(){const t=[].slice.call(arguments);if(this[0])return t[0]?(new F[et(t[0])?t.shift():"Chart"](this[0],t[0],t[1]),this):n[S(this[0],"data-highcharts-chart")]}),l={addEvent:function(t,i,h,u={}){var A=typeof t=="function"&&t.prototype||t;Object.hasOwnProperty.call(A,"hcEvents")||(A.hcEvents={}),A=A.hcEvents,F.Point&&t instanceof F.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);const r=t.addEventListener;return r&&r.call(t,i,h,F.supportsPassiveEvents?{passive:u.passive===void 0?i.indexOf("touch")!==-1:u.passive,capture:!1}:!1),A[i]||(A[i]=[]),A[i].push({fn:h,order:typeof u.order=="number"?u.order:1/0}),A[i].sort((T,G)=>T.order-G.order),function(){v(t,i,h)}},arrayMax:function(t){let i=t.length,h=t[0];for(;i--;)t[i]>h&&(h=t[i]);return h},arrayMin:function(t){let i=t.length,h=t[0];for(;i--;)t[i]<h&&(h=t[i]);return h},attr:S,clamp:function(t,i,h){return t>i?t<h?t:h:i},clearTimeout:function(t){X(t)&&clearTimeout(t)},correctFloat:y,createElement:function(t,i,h,u,A){return t=a.createElement(t),i&&L(t,i),A&&d(t,{padding:"0",border:"none",margin:"0"}),h&&d(t,h),u&&u.appendChild(t),t},css:d,defined:X,destroyObjectProperties:function(t,i){b(t,function(h,u){h&&h!==i&&h.destroy&&h.destroy(),delete t[u]})},diffObjects:function(t,i,h,u){function A(T,G,q,Q){const D=h?G:T;b(T,function(s,M){if(!Q&&u&&-1<u.indexOf(M)&&G[M]){s=w(s),q[M]=[];for(let j=0;j<Math.max(s.length,G[M].length);j++)G[M][j]&&(s[j]===void 0?q[M][j]=G[M][j]:(q[M][j]={},A(s[j],G[M][j],q[M][j],Q+1)))}else it(s,!0)&&!s.nodeType?(q[M]=tt(s)?[]:{},A(s,G[M]||{},q[M],Q+1),Object.keys(q[M]).length!==0||M==="colorAxis"&&Q===0||delete q[M]):(T[M]!==G[M]||M in T&&!(M in G))&&(q[M]=D[M])})}const r={};return A(t,i,r,0),r},discardElement:function(t){t&&t.parentElement&&t.parentElement.removeChild(t)},erase:function(t,i){let h=t.length;for(;h--;)if(t[h]===i){t.splice(h,1);break}},error:N,extend:L,extendClass:function(t,i){const h=function(){};return h.prototype=new t,L(h.prototype,i),h},find:l,fireEvent:k,getClosestDistance:function(t,i){const h=!i;let u,A,r;return t.forEach(T=>{if(1<T.length)for(r=T.length-1;0<r;r--)A=T[r]-T[r-1],0>A&&!h?(i==null||i(),i=void 0):A&&(typeof u>"u"||A<u)&&(u=A)}),u},getMagnitude:x,getNestedProperty:function(t,i){for(t=t.split(".");t.length&&X(i);){const h=t.shift();if(typeof h>"u"||h==="__proto__")return;if(h==="this"){let u;return it(i)&&(u=i["@this"]),u??i}if(i=i[h],!X(i)||typeof i=="function"||typeof i.nodeType=="number"||i===p)return}return i},getStyle:m,inArray:function(t,i,h){return N(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),i.indexOf(t,h)},insertItem:function(t,i){const h=t.options.index,u=i.length;let A;for(A=t.options.isInternal?u:0;A<u+1;A++)if(!i[A]||U(h)&&h<E(i[A].options.index,i[A]._i)||i[A].options.isInternal){i.splice(A,0,t);break}return A},isArray:tt,isClass:H,isDOMElement:st,isFunction:function(t){return typeof t=="function"},isNumber:U,isObject:it,isString:et,keys:function(t){return N(32,!1,void 0,{"Highcharts.keys":"use Object.keys"}),Object.keys(t)},merge:function(){let t,i=arguments,h={};const u=function(r,T){return typeof r!="object"&&(r={}),b(T,function(G,q){q!=="__proto__"&&q!=="constructor"&&(!it(G,!0)||H(G)||st(G)?r[q]=T[q]:r[q]=u(r[q]||{},G))}),r};i[0]===!0&&(h=i[1],i=Array.prototype.slice.call(i,2));const A=i.length;for(t=0;t<A;t++)h=u(h,i[t]);return h},normalizeTickInterval:function(t,i,h,u,A){let r=t;h=E(h,x(t));const T=t/h;for(i||(i=A?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],u===!1&&(h===1?i=i.filter(function(G){return G%1===0}):.1>=h&&(i=[1/h]))),u=0;u<i.length&&(r=i[u],!(A&&r*h>=t||!A&&T<=(i[u]+(i[u+1]||i[u]))/2));u++);return r=y(r*h,-Math.round(Math.log(.001)/Math.LN10))},objectEach:b,offset:function(t){const i=a.documentElement;return t=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0},{top:t.top+(p.pageYOffset||i.scrollTop)-(i.clientTop||0),left:t.left+(p.pageXOffset||i.scrollLeft)-(i.clientLeft||0),width:t.width,height:t.height}},pad:function(t,i,h){return Array((i||2)+1-String(t).replace("-","").length).join(h||"0")+t},pick:E,pInt:K,pushUnique:function(t,i){return 0>t.indexOf(i)&&!!t.push(i)},relativeLength:function(t,i,h){return/%$/.test(t)?i*parseFloat(t)/100+(h||0):parseFloat(t)},removeEvent:v,splat:w,stableSort:function(t,i){const h=t.length;let u,A;for(A=0;A<h;A++)t[A].safeI=A;for(t.sort(function(r,T){return u=i(r,T),u===0?r.safeI-T.safeI:u}),A=0;A<h;A++)delete t[A].safeI},syncTimeout:function(t,i,h){return 0<i?setTimeout(t,i,h):(t.call(0,h),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:e,useSerialIds:function(t){return c=E(t,c)},wrap:function(t,i,h){const u=t[i];t[i]=function(){const A=arguments,r=this;return h.apply(this,[function(){return u.apply(r,arguments.length?arguments:A)}].concat([].slice.call(arguments)))}}},l}),ct(z,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),ct(z,"Core/Color/Color.js",[z["Core/Globals.js"],z["Core/Utilities.js"]],function(F,N){const{isNumber:K,merge:et,pInt:tt}=N;class it{static parse(H){return H?new it(H):it.None}constructor(H){this.rgba=[NaN,NaN,NaN,NaN],this.input=H;const U=F.Color;if(U&&U!==it)return new U(H);this.init(H)}init(H){let U,X;if(typeof H=="object"&&typeof H.stops<"u")this.stops=H.stops.map(L=>new it(L[1]));else if(typeof H=="string"){if(this.input=H=it.names[H.toLowerCase()]||H,H.charAt(0)==="#"){var S=H.length,w=parseInt(H.substr(1),16);S===7?U=[(w&16711680)>>16,(w&65280)>>8,w&255,1]:S===4&&(U=[(w&3840)>>4|(w&3840)>>8,(w&240)>>4|w&240,(w&15)<<4|w&15,1])}if(!U)for(w=it.parsers.length;w--&&!U;)X=it.parsers[w],(S=X.regex.exec(H))&&(U=X.parse(S))}U&&(this.rgba=U)}get(H){const U=this.input,X=this.rgba;if(typeof U=="object"&&typeof this.stops<"u"){const S=et(U);return S.stops=[].slice.call(S.stops),this.stops.forEach((w,L)=>{S.stops[L]=[S.stops[L][0],w.get(H)]}),S}return X&&K(X[0])?H==="rgb"||!H&&X[3]===1?"rgb("+X[0]+","+X[1]+","+X[2]+")":H==="a"?`${X[3]}`:"rgba("+X.join(",")+")":U}brighten(H){const U=this.rgba;if(this.stops)this.stops.forEach(function(X){X.brighten(H)});else if(K(H)&&H!==0)for(let X=0;3>X;X++)U[X]+=tt(255*H),0>U[X]&&(U[X]=0),255<U[X]&&(U[X]=255);return this}setOpacity(H){return this.rgba[3]=H,this}tweenTo(H,U){const X=this.rgba,S=H.rgba;return!K(X[0])||!K(S[0])?H.input||"none":(H=S[3]!==1||X[3]!==1,(H?"rgba(":"rgb(")+Math.round(S[0]+(X[0]-S[0])*(1-U))+","+Math.round(S[1]+(X[1]-S[1])*(1-U))+","+Math.round(S[2]+(X[2]-S[2])*(1-U))+(H?","+(S[3]+(X[3]-S[3])*(1-U)):"")+")")}}return it.names={white:"#ffffff",black:"#000000"},it.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(st){return[tt(st[1]),tt(st[2]),tt(st[3]),parseFloat(st[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(st){return[tt(st[1]),tt(st[2]),tt(st[3]),1]}}],it.None=new it(""),it}),ct(z,"Core/Color/Palettes.js",[],function(){return{colors:"#2caffe #544fc5 #00e272 #fe6a35 #6b8abc #d568fb #2ee0ca #fa4b42 #feb56a #91e8e1".split(" ")}}),ct(z,"Core/Time.js",[z["Core/Globals.js"],z["Core/Utilities.js"]],function(F,N){const{win:K}=F,{defined:et,error:tt,extend:it,isObject:st,merge:H,objectEach:U,pad:X,pick:S,splat:w,timeUnits:L}=N,E=F.isSafari&&K.Intl&&K.Intl.DateTimeFormat.prototype.formatRange,d=F.isSafari&&K.Intl&&!K.Intl.DateTimeFormat.prototype.formatRange;class x{constructor(m){this.options={},this.variableTimezone=this.useUTC=!1,this.Date=K.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(m)}get(m,b){if(this.variableTimezone||this.timezoneOffset){const v=b.getTime(),k=v-this.getTimezoneOffset(b);return b.setTime(k),m=b["getUTC"+m](),b.setTime(v),m}return this.useUTC?b["getUTC"+m]():b["get"+m]()}set(m,b,v){if(this.variableTimezone||this.timezoneOffset){if(m==="Milliseconds"||m==="Seconds"||m==="Minutes"&&this.getTimezoneOffset(b)%36e5===0)return b["setUTC"+m](v);var k=this.getTimezoneOffset(b);return k=b.getTime()-k,b.setTime(k),b["setUTC"+m](v),m=this.getTimezoneOffset(b),k=b.getTime()+m,b.setTime(k)}return this.useUTC||E&&m==="FullYear"?b["setUTC"+m](v):b["set"+m](v)}update(m={}){const b=S(m.useUTC,!0);this.options=m=H(!0,this.options,m),this.Date=m.Date||K.Date||Date,this.timezoneOffset=(this.useUTC=b)&&m.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=b&&!(!m.getTimezoneOffset&&!m.timezone)}makeTime(m,b,v,k,n,a){let p,l,c;return this.useUTC?(p=this.Date.UTC.apply(0,arguments),l=this.getTimezoneOffset(p),p+=l,c=this.getTimezoneOffset(p),l!==c?p+=c-l:l-36e5!==this.getTimezoneOffset(p-36e5)||d||(p-=36e5)):p=new this.Date(m,b,S(v,1),S(k,0),S(n,0),S(a,0)).getTime(),p}timezoneOffsetFunction(){const m=this,b=this.options,v=b.getTimezoneOffset,k=b.moment||K.moment;if(!this.useUTC)return function(n){return 6e4*new Date(n.toString()).getTimezoneOffset()};if(b.timezone){if(k)return function(n){return 6e4*-k.tz(n,b.timezone).utcOffset()};tt(25)}return this.useUTC&&v?function(n){return 6e4*v(n.valueOf())}:function(){return 6e4*(m.timezoneOffset||0)}}dateFormat(m,b,v){if(!et(b)||isNaN(b))return F.defaultOptions.lang&&F.defaultOptions.lang.invalidDate||"";m=S(m,"%Y-%m-%d %H:%M:%S");const k=this;var n=new this.Date(b);const a=this.get("Hours",n),p=this.get("Day",n),l=this.get("Date",n),c=this.get("Month",n),e=this.get("FullYear",n),t=F.defaultOptions.lang,i=t&&t.weekdays,h=t&&t.shortWeekdays;return n=it({a:h?h[p]:i[p].substr(0,3),A:i[p],d:X(l),e:X(l,2," "),w:p,b:t.shortMonths[c],B:t.months[c],m:X(c+1),o:c+1,y:e.toString().substr(2,2),Y:e,H:X(a),k:a,I:X(a%12||12),l:a%12||12,M:X(this.get("Minutes",n)),p:12>a?"AM":"PM",P:12>a?"am":"pm",S:X(n.getSeconds()),L:X(Math.floor(b%1e3),3)},F.dateFormats),U(n,function(u,A){for(;m.indexOf("%"+A)!==-1;)m=m.replace("%"+A,typeof u=="function"?u.call(k,b):u)}),v?m.substr(0,1).toUpperCase()+m.substr(1):m}resolveDTLFormat(m){return st(m,!0)?m:(m=w(m),{main:m[0],from:m[1],to:m[2]})}getTimeTicks(m,b,v,k){const n=this,a=[],p={};var l=new n.Date(b);const c=m.unitRange,e=m.count||1;let t;if(k=S(k,1),et(b)){if(n.set("Milliseconds",l,c>=L.second?0:e*Math.floor(n.get("Milliseconds",l)/e)),c>=L.second&&n.set("Seconds",l,c>=L.minute?0:e*Math.floor(n.get("Seconds",l)/e)),c>=L.minute&&n.set("Minutes",l,c>=L.hour?0:e*Math.floor(n.get("Minutes",l)/e)),c>=L.hour&&n.set("Hours",l,c>=L.day?0:e*Math.floor(n.get("Hours",l)/e)),c>=L.day&&n.set("Date",l,c>=L.month?1:Math.max(1,e*Math.floor(n.get("Date",l)/e))),c>=L.month){n.set("Month",l,c>=L.year?0:e*Math.floor(n.get("Month",l)/e));var i=n.get("FullYear",l)}c>=L.year&&n.set("FullYear",l,i-i%e),c===L.week&&(i=n.get("Day",l),n.set("Date",l,n.get("Date",l)-i+k+(i<k?-7:0))),i=n.get("FullYear",l),k=n.get("Month",l);const h=n.get("Date",l),u=n.get("Hours",l);for(b=l.getTime(),!n.variableTimezone&&n.useUTC||!et(v)||(t=v-b>4*L.month||n.getTimezoneOffset(b)!==n.getTimezoneOffset(v)),b=l.getTime(),l=1;b<v;)a.push(b),b=c===L.year?n.makeTime(i+l*e,0):c===L.month?n.makeTime(i,k+l*e):!t||c!==L.day&&c!==L.week?t&&c===L.hour&&1<e?n.makeTime(i,k,h,u+l*e):b+c*e:n.makeTime(i,k,h+l*e*(c===L.day?1:7)),l++;a.push(b),c<=L.hour&&1e4>a.length&&a.forEach(function(A){A%18e5===0&&n.dateFormat("%H%M%S%L",A)==="000000000"&&(p[A]="day")})}return a.info=it(m,{higherRanks:p,totalRange:c*e}),a}getDateFormat(m,b,v,k){const n=this.dateFormat("%m-%d %H:%M:%S.%L",b),a={millisecond:15,second:12,minute:9,hour:6,day:3};let p,l="millisecond";for(p in L){if(m===L.week&&+this.dateFormat("%w",b)===v&&n.substr(6)==="00:00:00.000"){p="week";break}if(L[p]>m){p=l;break}if(a[p]&&n.substr(a[p])!=="01-01 00:00:00.000".substr(a[p]))break;p!=="week"&&(l=p)}return this.resolveDTLFormat(k[p]).main}}return x}),ct(z,"Core/Defaults.js",[z["Core/Chart/ChartDefaults.js"],z["Core/Color/Color.js"],z["Core/Globals.js"],z["Core/Color/Palettes.js"],z["Core/Time.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt,it){const{isTouchDevice:st,svg:H}=K,{merge:U}=it,X={colors:et.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:F,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:H,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:st?25:10,headerFormat:'<span style="font-size: 0.8em">{point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};X.chart.styledMode=!1;const S=new tt(X.time);return F={defaultOptions:X,defaultTime:S,getOptions:function(){return X},setOptions:function(w){return U(!0,X,w),(w.time||w.global)&&(K.time?K.time.update(U(X.global,X.time,w.global,w.time)):K.time=S),X}},F}),ct(z,"Core/Animation/Fx.js",[z["Core/Color/Color.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(F,N,K){const{parse:et}=F,{win:tt}=N,{isNumber:it,objectEach:st}=K;class H{constructor(X,S,w){this.pos=NaN,this.options=S,this.elem=X,this.prop=w}dSetter(){var X=this.paths;const S=X&&X[0];X=X&&X[1];const w=this.now||0;let L=[];if(w!==1&&S&&X)if(S.length===X.length&&1>w)for(let E=0;E<X.length;E++){const d=S[E],x=X[E],y=[];for(let m=0;m<x.length;m++){const b=d[m],v=x[m];it(b)&&it(v)&&(x[0]!=="A"||m!==4&&m!==5)?y[m]=b+w*(v-b):y[m]=v}L.push(y)}else L=X;else L=this.toD||[];this.elem.attr("d",L,void 0,!0)}update(){const X=this.elem,S=this.prop,w=this.now,L=this.options.step;this[S+"Setter"]?this[S+"Setter"]():X.attr?X.element&&X.attr(S,w,null,!0):X.style[S]=w+this.unit,L&&L.call(X,w,this)}run(X,S,w){const L=this,E=L.options,d=function(m){return d.stopped?!1:L.step(m)},x=tt.requestAnimationFrame||function(m){setTimeout(m,13)},y=function(){for(let m=0;m<H.timers.length;m++)H.timers[m]()||H.timers.splice(m--,1);H.timers.length&&x(y)};X!==S||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=X,this.end=S,this.unit=w,this.now=this.start,this.pos=0,d.elem=this.elem,d.prop=this.prop,d()&&H.timers.push(d)===1&&x(y)):(delete E.curAnim[this.prop],E.complete&&Object.keys(E.curAnim).length===0&&E.complete.call(this.elem))}step(X){const S=+new Date,w=this.options,L=this.elem,E=w.complete,d=w.duration,x=w.curAnim;let y;return L.attr&&!L.element?X=!1:X||S>=d+this.startTime?(this.now=this.end,this.pos=1,this.update(),y=x[this.prop]=!0,st(x,function(m){m!==!0&&(y=!1)}),y&&E&&E.call(L),X=!1):(this.pos=w.easing((S-this.startTime)/d),this.now=this.start+(this.end-this.start)*this.pos,this.update(),X=!0),X}initPath(X,S,w){function L(n,a){for(;n.length<v;){var p=n[0];const l=a[v-n.length];l&&p[0]==="M"&&(n[0]=l[0]==="C"?["C",p[1],p[2],p[1],p[2],p[1],p[2]]:["L",p[1],p[2]]),n.unshift(p),y&&(p=n.pop(),n.push(n[n.length-1],p))}}function E(n,a){for(;n.length<v;)if(a=n[Math.floor(n.length/m)-1].slice(),a[0]==="C"&&(a[1]=a[5],a[2]=a[6]),y){const p=n[Math.floor(n.length/m)].slice();n.splice(n.length/2,0,a,p)}else n.push(a)}const d=X.startX,x=X.endX;w=w.slice();const y=X.isArea,m=y?2:1;let b,v,k;if(S=S&&S.slice(),!S)return[w,w];if(d&&x&&x.length){for(X=0;X<d.length;X++)if(d[X]===x[0]){b=X;break}else if(d[0]===x[x.length-d.length+X]){b=X,k=!0;break}else if(d[d.length-1]===x[x.length-d.length+X]){b=d.length-X;break}typeof b>"u"&&(S=[])}return S.length&&it(b)&&(v=w.length+b*m,k?(L(S,w),E(w,S)):(L(w,S),E(S,w))),[S,w]}fillSetter(){H.prototype.strokeSetter.apply(this,arguments)}strokeSetter(){this.elem.attr(this.prop,et(this.start).tweenTo(et(this.end),this.pos),void 0,!0)}}return H.timers=[],H}),ct(z,"Core/Animation/AnimationUtilities.js",[z["Core/Animation/Fx.js"],z["Core/Utilities.js"]],function(F,N){function K(L){return U(L)?X({duration:500,defer:0},L):{duration:L?500:0,defer:0}}function et(L,E){let d=F.timers.length;for(;d--;)F.timers[d].elem!==L||E&&E!==F.timers[d].prop||(F.timers[d].stopped=!0)}const{defined:tt,getStyle:it,isArray:st,isNumber:H,isObject:U,merge:X,objectEach:S,pick:w}=N;return{animate:function(L,E,d){let x,y="",m,b,v;U(d)||(v=arguments,d={duration:v[2],easing:v[3],complete:v[4]}),H(d.duration)||(d.duration=400),d.easing=typeof d.easing=="function"?d.easing:Math[d.easing]||Math.easeInOutSine,d.curAnim=X(E),S(E,function(k,n){et(L,n),b=new F(L,d,n),m=void 0,n==="d"&&st(E.d)?(b.paths=b.initPath(L,L.pathArray,E.d),b.toD=E.d,x=0,m=1):L.attr?x=L.attr(n):(x=parseFloat(it(L,n))||0,n!=="opacity"&&(y="px")),m||(m=k),typeof m=="string"&&m.match("px")&&(m=m.replace(/px/g,"")),b.run(x,m,y)})},animObject:K,getDeferredAnimation:function(L,E,d){const x=K(E);let y=0,m=0;return(d?[d]:L.series).forEach(b=>{b=K(b.options.animation),y=E&&tt(E.defer)?x.defer:Math.max(y,b.duration+b.defer),m=Math.min(x.duration,b.duration)}),L.renderer.forExport&&(y=0),{defer:Math.max(0,y-m),duration:Math.min(y,m)}},setAnimation:function(L,E){E.renderer.globalAnimation=w(L,E.options.chart.animation,!0)},stop:et}}),ct(z,"Core/Renderer/HTML/AST.js",[z["Core/Globals.js"],z["Core/Utilities.js"]],function(F,N){const{SVG_NS:K,win:et}=F,{attr:tt,createElement:it,css:st,error:H,isFunction:U,isString:X,objectEach:S,splat:w}=N;({trustedTypes:N}=et);const L=N&&U(N.createPolicy)&&N.createPolicy("highcharts",{createHTML:y=>y});N=L?L.createHTML(""):"";try{var E=!!new DOMParser().parseFromString(N,"text/html")}catch{E=!1}const d=E;class x{static filterUserAttributes(m){return S(m,(b,v)=>{let k=!0;x.allowedAttributes.indexOf(v)===-1&&(k=!1),["background","dynsrc","href","lowsrc","src"].indexOf(v)!==-1&&(k=X(b)&&x.allowedReferences.some(n=>b.indexOf(n)===0)),k||(H(33,!1,void 0,{"Invalid attribute in config":`${v}`}),delete m[v]),X(b)&&m[v]&&(m[v]=b.replace(/</g,"&lt;"))}),m}static parseStyle(m){return m.split(";").reduce((b,v)=>{v=v.split(":").map(n=>n.trim());const k=v.shift();return k&&v.length&&(b[k.replace(/-([a-z])/g,n=>n[1].toUpperCase())]=v.join(":")),b},{})}static setElementHTML(m,b){m.innerHTML=x.emptyHTML,b&&new x(b).addToDOM(m)}constructor(m){this.nodes=typeof m=="string"?this.parseMarkup(m):m}addToDOM(m){function b(v,k){let n;return w(v).forEach(function(a){var p=a.tagName;const l=a.textContent?F.doc.createTextNode(a.textContent):void 0,c=x.bypassHTMLFiltering;let e;if(p)if(p==="#text")e=l;else if(x.allowedTags.indexOf(p)!==-1||c){p=F.doc.createElementNS(p==="svg"?K:k.namespaceURI||K,p);const t=a.attributes||{};S(a,function(i,h){h!=="tagName"&&h!=="attributes"&&h!=="children"&&h!=="style"&&h!=="textContent"&&(t[h]=i)}),tt(p,c?t:x.filterUserAttributes(t)),a.style&&st(p,a.style),l&&p.appendChild(l),b(a.children||[],p),e=p}else H(33,!1,void 0,{"Invalid tagName in config":p});e&&k.appendChild(e),n=e}),n}return b(this.nodes,m)}parseMarkup(m){const b=[];if(m=m.trim().replace(/ style=(["'])/g," data-style=$1"),d)m=new DOMParser().parseFromString(L?L.createHTML(m):m,"text/html");else{const k=it("div");k.innerHTML=m,m={body:k}}const v=(k,n)=>{var a=k.nodeName.toLowerCase();const p={tagName:a};if(a==="#text"&&(p.textContent=k.textContent||""),a=k.attributes){const l={};[].forEach.call(a,c=>{c.name==="data-style"?p.style=x.parseStyle(c.value):l[c.name]=c.value}),p.attributes=l}if(k.childNodes.length){const l=[];[].forEach.call(k.childNodes,c=>{v(c,l)}),l.length&&(p.children=l)}n.push(p)};return[].forEach.call(m.body.childNodes,k=>v(k,b)),b}}return x.allowedAttributes="alt aria-controls aria-describedby aria-expanded aria-haspopup aria-hidden aria-label aria-labelledby aria-live aria-pressed aria-readonly aria-roledescription aria-selected class clip-path color colspan cx cy d dx dy disabled fill flood-color flood-opacity height href id in markerHeight markerWidth offset opacity orient padding paddingLeft paddingRight patternUnits r refX refY role scope slope src startOffset stdDeviation stroke stroke-linecap stroke-width style tableValues result rowspan summary target tabindex text-align text-anchor textAnchor textLength title type valign width x x1 x2 xlink:href y y1 y2 zIndex".split(" "),x.allowedReferences="https:// http:// mailto: / ../ ./ #".split(" "),x.allowedTags="a abbr b br button caption circle clipPath code dd defs div dl dt em feComponentTransfer feDropShadow feFuncA feFuncB feFuncG feFuncR feGaussianBlur feOffset feMerge feMergeNode filter h1 h2 h3 h4 h5 h6 hr i img li linearGradient marker ol p path pattern pre rect small span stop strong style sub sup svg table text textPath thead title tbody tspan td th tr u ul #text".split(" "),x.emptyHTML=N,x.bypassHTMLFiltering=!1,x}),ct(z,"Core/Templating.js",[z["Core/Defaults.js"],z["Core/Utilities.js"]],function(F,N){function K(d="",x,y){const m=/\{([a-zA-Z0-9:\.,;\-\/<>%_@"'= #\(\)]+)\}/g,b=/\(([a-zA-Z0-9:\.,;\-\/<>%_@"'= ]+)\)/g,v=[],k=/f$/,n=/\.([0-9])/,a=tt.lang,p=y&&y.time||it,l=y&&y.numberFormatter||et,c=(r="")=>{let T;return r==="true"?!0:r==="false"?!1:(T=Number(r)).toString()===r?T:H(r,x)};let e,t,i=0,h;for(;(e=m.exec(d))!==null;){const r=b.exec(e[1]);r&&(e=r,h=!0),t&&t.isBlock||(t={ctx:x,expression:e[1],find:e[0],isBlock:e[1].charAt(0)==="#",start:e.index,startInner:e.index+e[0].length,length:e[0].length});var u=e[1].split(" ")[0].replace("#","");if(E[u]&&(t.isBlock&&u===t.fn&&i++,t.fn||(t.fn=u)),u=e[1]==="else",t.isBlock&&t.fn&&(e[1]===`/${t.fn}`||u))if(i)u||i--;else{var A=t.startInner;A=d.substr(A,e.index-A),t.body===void 0?(t.body=A,t.startInner=e.index+e[0].length):t.elseBody=A,t.find+=A+e[0],u||(v.push(t),t=void 0)}else t.isBlock||v.push(t);if(r&&(t==null||!t.isBlock))break}return v.forEach(r=>{const{body:T,elseBody:G,expression:q,fn:Q}=r;var D;if(Q){var s=[r],M=q.split(" ");for(D=E[Q].length;D--;)s.unshift(c(M[D+1]));D=E[Q].apply(x,s),r.isBlock&&typeof D=="boolean"&&(D=K(D?T:G,x))}else s=q.split(":"),D=c(s.shift()||""),s.length&&typeof D=="number"&&(s=s.join(":"),k.test(s)?(M=parseInt((s.match(n)||["","-1"])[1],10),D!==null&&(D=l(D,M,a.decimalPoint,-1<s.indexOf(",")?a.thousandsSep:""))):D=p.dateFormat(s,D));d=d.replace(r.find,w(D,""))}),h?K(d,x,y):d}function et(d,x,y,m){d=+d||0,x=+x;const b=tt.lang;var v=(d.toString().split(".")[1]||"").split("e")[0].length;const k=d.toString().split("e"),n=x;if(x===-1)x=Math.min(v,20);else if(!X(x))x=2;else if(x&&k[1]&&0>k[1]){var a=x+ +k[1];0<=a?(k[0]=(+k[0]).toExponential(a).split("e")[0],x=a):(k[0]=k[0].split(".")[0]||0,d=20>x?(k[0]*Math.pow(10,k[1])).toFixed(x):0,k[1]=0)}a=(Math.abs(k[1]?k[0]:d)+Math.pow(10,-Math.max(x,v)-1)).toFixed(x),v=String(L(a));const p=3<v.length?v.length%3:0;return y=w(y,b.decimalPoint),m=w(m,b.thousandsSep),d=(0>d?"-":"")+(p?v.substr(0,p)+m:""),d=0>+k[1]&&!n?"0":d+v.substr(p).replace(/(\d{3})(?=\d)/g,"$1"+m),x&&(d+=y+a.slice(-x)),k[1]&&+d!=0&&(d+="e"+k[1]),d}const{defaultOptions:tt,defaultTime:it}=F,{extend:st,getNestedProperty:H,isArray:U,isNumber:X,isObject:S,pick:w,pInt:L}=N,E={add:(d,x)=>d+x,divide:(d,x)=>x!==0?d/x:"",eq:(d,x)=>d==x,each:function(d){const x=arguments[arguments.length-1];return U(d)?d.map((y,m)=>K(x.body,st(S(y)?y:{"@this":y},{"@index":m,"@first":m===0,"@last":m===d.length-1}))).join(""):!1},ge:(d,x)=>d>=x,gt:(d,x)=>d>x,if:d=>!!d,le:(d,x)=>d<=x,lt:(d,x)=>d<x,multiply:(d,x)=>d*x,ne:(d,x)=>d!=x,subtract:(d,x)=>d-x,unless:d=>!d};return{dateFormat:function(d,x,y){return it.dateFormat(d,x,y)},format:K,helpers:E,numberFormat:et}}),ct(z,"Core/Renderer/RendererUtilities.js",[z["Core/Utilities.js"]],function(F){const{clamp:N,pick:K,stableSort:et}=F;var tt;return function(it){function st(H,U,X){const S=H;var w=S.reducedLen||U,L=(b,v)=>(v.rank||0)-(b.rank||0);const E=(b,v)=>b.target-v.target;let d,x=!0,y=[],m=0;for(d=H.length;d--;)m+=H[d].size;if(m>w){for(et(H,L),m=d=0;m<=w;)m+=H[d].size,d++;y=H.splice(d-1,H.length)}for(et(H,E),H=H.map(b=>({size:b.size,targets:[b.target],align:K(b.align,.5)}));x;){for(d=H.length;d--;)w=H[d],L=(Math.min.apply(0,w.targets)+Math.max.apply(0,w.targets))/2,w.pos=N(L-w.size*w.align,0,U-w.size);for(d=H.length,x=!1;d--;)0<d&&H[d-1].pos+H[d-1].size>H[d].pos&&(H[d-1].size+=H[d].size,H[d-1].targets=H[d-1].targets.concat(H[d].targets),H[d-1].align=.5,H[d-1].pos+H[d-1].size>U&&(H[d-1].pos=U-H[d-1].size),H.splice(d,1),x=!0)}return S.push.apply(S,y),d=0,H.some(b=>{let v=0;return(b.targets||[]).some(()=>(S[d].pos=b.pos+v,typeof X<"u"&&Math.abs(S[d].pos-S[d].target)>X?(S.slice(0,d+1).forEach(k=>delete k.pos),S.reducedLen=(S.reducedLen||U)-.1*U,S.reducedLen>.1*U&&st(S,U,X),!0):(v+=S[d].size,d++,!1)))}),et(S,E),S}it.distribute=st}(tt||(tt={})),tt}),ct(z,"Core/Renderer/SVG/SVGElement.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Color/Color.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(F,N,K,et){const{animate:tt,animObject:it,stop:st}=F,{deg2rad:H,doc:U,svg:X,SVG_NS:S,win:w}=K,{addEvent:L,attr:E,createElement:d,css:x,defined:y,erase:m,extend:b,fireEvent:v,isArray:k,isFunction:n,isObject:a,isString:p,merge:l,objectEach:c,pick:e,pInt:t,syncTimeout:i,uniqueKey:h}=et;class u{constructor(){this.element=void 0,this.onEvents={},this.opacity=1,this.renderer=void 0,this.SVG_NS=S}_defaultGetter(r){return r=e(this[r+"Value"],this[r],this.element?this.element.getAttribute(r):null,0),/^[\-0-9\.]+$/.test(r)&&(r=parseFloat(r)),r}_defaultSetter(r,T,G){G.setAttribute(T,r)}add(r){const T=this.renderer,G=this.element;let q;return r&&(this.parentGroup=r),typeof this.textStr<"u"&&this.element.nodeName==="text"&&T.buildText(this),this.added=!0,(!r||r.handleZ||this.zIndex)&&(q=this.zIndexSetter()),q||(r?r.element:T.box).appendChild(G),this.onAdd&&this.onAdd(),this}addClass(r,T){const G=T?"":this.attr("class")||"";return r=(r||"").split(/ /g).reduce(function(q,Q){return G.indexOf(Q)===-1&&q.push(Q),q},G?[G]:[]).join(" "),r!==G&&this.attr("class",r),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(r,T,G){const q={};var Q=this.renderer,D=Q.alignedObjects,s;let M,j;r?(this.alignOptions=r,this.alignByTranslate=T,(!G||p(G))&&(this.alignTo=s=G||"renderer",m(D,this),D.push(this),G=void 0)):(r=this.alignOptions,T=this.alignByTranslate,s=this.alignTo),G=e(G,Q[s],s==="scrollablePlotBox"?Q.plotBox:void 0,Q),s=r.align;const O=r.verticalAlign;return Q=(G.x||0)+(r.x||0),D=(G.y||0)+(r.y||0),s==="right"?M=1:s==="center"&&(M=2),M&&(Q+=(G.width-(r.width||0))/M),q[T?"translateX":"x"]=Math.round(Q),O==="bottom"?j=1:O==="middle"&&(j=2),j&&(D+=(G.height-(r.height||0))/j),q[T?"translateY":"y"]=Math.round(D),this[this.placed?"animate":"attr"](q),this.placed=!0,this.alignAttr=q,this}alignSetter(r){const T={left:"start",center:"middle",right:"end"};T[r]&&(this.alignValue=r,this.element.setAttribute("text-anchor",T[r]))}animate(r,T,G){const q=it(e(T,this.renderer.globalAnimation,!0));return T=q.defer,U.hidden&&(q.duration=0),q.duration!==0?(G&&(q.complete=G),i(()=>{this.element&&tt(this,r,q)},T)):(this.attr(r,void 0,G||q.complete),c(r,function(Q,D){q.step&&q.step.call(this,Q,{prop:D,pos:1,elem:this})},this)),this}applyTextOutline(r){const T=this.element;r.indexOf("contrast")!==-1&&(r=r.replace(/contrast/g,this.renderer.getContrast(T.style.fill)));var G=r.split(" ");if(r=G[G.length-1],(G=G[0])&&G!=="none"&&K.svg){this.fakeTS=!0,G=G.replace(/(^[\d\.]+)(.*?)$/g,function(D,s,M){return 2*Number(s)+M}),this.removeTextOutline();const q=U.createElementNS(S,"tspan");E(q,{class:"highcharts-text-outline",fill:r,stroke:r,"stroke-width":G,"stroke-linejoin":"round"}),r=T.querySelector("textPath")||T,[].forEach.call(r.childNodes,D=>{const s=D.cloneNode(!0);s.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(M=>s.removeAttribute(M)),q.appendChild(s)});let Q=0;[].forEach.call(r.querySelectorAll("text tspan"),D=>{Q+=Number(D.getAttribute("dy"))}),G=U.createElementNS(S,"tspan"),G.textContent="​",E(G,{x:Number(T.getAttribute("x")),dy:-Q}),q.appendChild(G),r.insertBefore(q,r.firstChild)}}attr(r,T,G,q){const Q=this.element,D=u.symbolCustomAttribs;let s,M,j=this,O,Y;return typeof r=="string"&&typeof T<"u"&&(s=r,r={},r[s]=T),typeof r=="string"?j=(this[r+"Getter"]||this._defaultGetter).call(this,r,Q):(c(r,function(o,g){O=!1,q||st(this,g),this.symbolName&&D.indexOf(g)!==-1&&(M||(this.symbolAttr(r),M=!0),O=!0),!this.rotation||g!=="x"&&g!=="y"||(this.doTransform=!0),O||(Y=this[g+"Setter"]||this._defaultSetter,Y.call(this,o,g,Q))},this),this.afterSetters()),G&&G.call(this),j}clip(r){return this.attr("clip-path",r?"url("+this.renderer.url+"#"+r.id+")":"none")}crisp(r,T){T=T||r.strokeWidth||0;const G=Math.round(T)%2/2;return r.x=Math.floor(r.x||this.x||0)+G,r.y=Math.floor(r.y||this.y||0)+G,r.width=Math.floor((r.width||this.width||0)-2*G),r.height=Math.floor((r.height||this.height||0)-2*G),y(r.strokeWidth)&&(r.strokeWidth=T),r}complexColor(r,T,G){const q=this.renderer;let Q,D,s,M,j,O,Y,o,g,f,B=[],R;v(this.renderer,"complexColor",{args:arguments},function(){if(r.radialGradient?D="radialGradient":r.linearGradient&&(D="linearGradient"),D){if(s=r[D],j=q.gradients,O=r.stops,g=G.radialReference,k(s)&&(r[D]=s={x1:s[0],y1:s[1],x2:s[2],y2:s[3],gradientUnits:"userSpaceOnUse"}),D==="radialGradient"&&g&&!y(s.gradientUnits)&&(M=s,s=l(s,q.getRadialAttr(g,M),{gradientUnits:"userSpaceOnUse"})),c(s,function(I,_){_!=="id"&&B.push(_,I)}),c(O,function(I){B.push(I)}),B=B.join(","),j[B])f=j[B].attr("id");else{s.id=f=h();const I=j[B]=q.createElement(D).attr(s).add(q.defs);I.radAttr=M,I.stops=[],O.forEach(function(_){_[1].indexOf("rgba")===0?(Q=N.parse(_[1]),Y=Q.get("rgb"),o=Q.get("a")):(Y=_[1],o=1),_=q.createElement("stop").attr({offset:_[0],"stop-color":Y,"stop-opacity":o}).add(I),I.stops.push(_)})}R="url("+q.url+"#"+f+")",G.setAttribute(T,R),G.gradient=B,r.toString=function(){return R}}})}css(r){const T=this.styles,G={},q=this.element;let Q,D=!T;if(T&&c(r,function(s,M){T&&T[M]!==s&&(G[M]=s,D=!0)}),D){T&&(r=b(T,G)),r.width===null||r.width==="auto"?delete this.textWidth:q.nodeName.toLowerCase()==="text"&&r.width&&(Q=this.textWidth=t(r.width)),this.styles=r,Q&&!X&&this.renderer.forExport&&delete r.width;const s=l(r);q.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(M=>s&&delete s[M]),s.color&&(s.fill=s.color)),x(q,s)}return this.added&&(this.element.nodeName==="text"&&this.renderer.buildText(this),r.textOutline&&this.applyTextOutline(r.textOutline)),this}dashstyleSetter(r){let T=this["stroke-width"];if(T==="inherit"&&(T=1),r=r&&r.toLowerCase()){const G=r.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(",");for(r=G.length;r--;)G[r]=""+t(G[r])*e(T,NaN);r=G.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",r)}}destroy(){const r=this;var T=r.element||{};const G=r.renderer;var q=T.ownerSVGElement;let Q=T.nodeName==="SPAN"&&r.parentGroup||void 0;if(T.onclick=T.onmouseout=T.onmouseover=T.onmousemove=T.point=null,st(r),r.clipPath&&q){const D=r.clipPath;[].forEach.call(q.querySelectorAll("[clip-path],[CLIP-PATH]"),function(s){-1<s.getAttribute("clip-path").indexOf(D.element.id)&&s.removeAttribute("clip-path")}),r.clipPath=D.destroy()}if(r.stops){for(q=0;q<r.stops.length;q++)r.stops[q].destroy();r.stops.length=0,r.stops=void 0}for(r.safeRemoveChild(T);Q&&Q.div&&Q.div.childNodes.length===0;)T=Q.parentGroup,r.safeRemoveChild(Q.div),delete Q.div,Q=T;r.alignTo&&m(G.alignedObjects,r),c(r,function(D,s){r[s]&&r[s].parentGroup===r&&r[s].destroy&&r[s].destroy(),delete r[s]})}dSetter(r,T,G){k(r)&&(typeof r[0]=="string"&&(r=this.renderer.pathToSegments(r)),this.pathArray=r,r=r.reduce((q,Q,D)=>Q&&Q.join?(D?q+" ":"")+Q.join(" "):(Q||"").toString(),"")),/(NaN| {2}|^$)/.test(r)&&(r="M 0 0"),this[T]!==r&&(G.setAttribute(T,r),this[T]=r)}fadeOut(r){const T=this;T.animate({opacity:0},{duration:e(r,150),complete:function(){T.hide()}})}fillSetter(r,T,G){typeof r=="string"?G.setAttribute(T,r):r&&this.complexColor(r,T,G)}getBBox(r,T){const{alignValue:G,element:q,renderer:Q,styles:D,textStr:s}=this,{cache:M,cacheKeys:j}=Q;var O=q.namespaceURI===this.SVG_NS;T=e(T,this.rotation,0);var Y=Q.styledMode?q&&u.prototype.getStyle.call(q,"font-size"):D&&D.fontSize;let o,g;if(y(s)&&(g=s.toString(),g.indexOf("<")===-1&&(g=g.replace(/[0-9]/g,"0")),g+=["",Q.rootFontSize,Y,T,this.textWidth,G,D&&D.textOverflow,D&&D.fontWeight].join()),g&&!r&&(o=M[g]),!o){if(O||Q.forExport){try{var f=this.fakeTS&&function(Z){const J=q.querySelector(".highcharts-text-outline");J&&x(J,{display:Z})};n(f)&&f("none"),o=q.getBBox?b({},q.getBBox()):{width:q.offsetWidth,height:q.offsetHeight,x:0,y:0},n(f)&&f("")}catch{}(!o||0>o.width)&&(o={x:0,y:0,width:0,height:0})}else o=this.htmlGetBBox();if(f=o.width,r=o.height,O&&(o.height=r={"11px,17":14,"13px,20":16}[`${Y||""},${Math.round(r)}`]||r),T){O=Number(q.getAttribute("y")||0)-o.y,Y={right:1,center:.5}[G||0]||0;var B=T*H,R=(T-90)*H,I=f*Math.cos(B);T=f*Math.sin(B);var _=Math.cos(R);B=Math.sin(R),f=o.x+Y*(f-I)+O*_,R=f+I,_=R-r*_,I=_-I,O=o.y+O-Y*T+O*B,Y=O+T,r=Y-r*B,T=r-T,o.x=Math.min(f,R,_,I),o.y=Math.min(O,Y,r,T),o.width=Math.max(f,R,_,I)-o.x,o.height=Math.max(O,Y,r,T)-o.y}}if(g&&(s===""||0<o.height)){for(;250<j.length;)delete M[j.shift()];M[g]||j.push(g),M[g]=o}return o}getStyle(r){return w.getComputedStyle(this.element||this,"").getPropertyValue(r)}hasClass(r){return(""+this.attr("class")).split(" ").indexOf(r)!==-1}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}init(r,T){this.element=T==="span"?d(T):U.createElementNS(this.SVG_NS,T),this.renderer=r,v(this,"afterInit")}on(r,T){const{onEvents:G}=this;return G[r]&&G[r](),G[r]=L(this.element,r,T),this}opacitySetter(r,T,G){this.opacity=r=Number(Number(r).toFixed(3)),G.setAttribute(T,r)}removeClass(r){return this.attr("class",(""+this.attr("class")).replace(p(r)?new RegExp(`(^| )${r}( |$)`):r," ").replace(/ +/g," ").trim())}removeTextOutline(){const r=this.element.querySelector("tspan.highcharts-text-outline");r&&this.safeRemoveChild(r)}safeRemoveChild(r){const T=r.parentNode;T&&T.removeChild(r)}setRadialReference(r){const T=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=r,T&&T.radAttr&&T.animate(this.renderer.getRadialAttr(r,T.radAttr)),this}setTextPath(r,T){T=l(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},T);const G=this.renderer.url,q=this.text||this,Q=q.textPath,{attributes:D,enabled:s}=T;return r=r||Q&&Q.path,Q&&Q.undo(),r&&s?(T=L(q,"afterModifyTree",M=>{if(r&&s){let O=r.attr("id");O||r.attr("id",O=h());var j={x:0,y:0};y(D.dx)&&(j.dx=D.dx,delete D.dx),y(D.dy)&&(j.dy=D.dy,delete D.dy),q.attr(j),this.attr({transform:""}),this.box&&(this.box=this.box.destroy()),j=M.nodes.slice(0),M.nodes.length=0,M.nodes[0]={tagName:"textPath",attributes:b(D,{"text-anchor":D.textAnchor,href:`${G}#${O}`}),children:j}}}),q.textPath={path:r,undo:T}):(q.attr({dx:0,dy:0}),delete q.textPath),this.added&&(q.textCache="",this.renderer.buildText(q)),this}shadow(r){var T;const{renderer:G}=this,q=l(((T=this.parentGroup)===null||T===void 0?void 0:T.rotation)===90?{offsetX:-1,offsetY:-1}:{},a(r)?r:{});return T=G.shadowDefinition(q),this.attr({filter:r?`url(${G.url}#${T})`:"none"})}show(r=!0){return this.attr({visibility:r?"inherit":"visible"})}"stroke-widthSetter"(r,T,G){this[T]=r,G.setAttribute(T,r)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;const r=this.getStyle("stroke-width");let T=0,G;return r.indexOf("px")===r.length-2?T=t(r):r!==""&&(G=U.createElementNS(S,"rect"),E(G,{width:r,"stroke-width":0}),this.element.parentNode.appendChild(G),T=G.getBBox().width,G.parentNode.removeChild(G)),T}symbolAttr(r){const T=this;u.symbolCustomAttribs.forEach(function(G){T[G]=e(r[G],T[G])}),T.attr({d:T.renderer.symbols[T.symbolName](T.x,T.y,T.width,T.height,T)})}textSetter(r){r!==this.textStr&&(delete this.textPxLength,this.textStr=r,this.added&&this.renderer.buildText(this))}titleSetter(r){const T=this.element,G=T.getElementsByTagName("title")[0]||U.createElementNS(this.SVG_NS,"title");T.insertBefore?T.insertBefore(G,T.firstChild):T.appendChild(G),G.textContent=String(e(r,"")).replace(/<[^>]*>/g,"").replace(/&lt;/g,"<").replace(/&gt;/g,">")}toFront(){const r=this.element;return r.parentNode.appendChild(r),this}translate(r,T){return this.attr({translateX:r,translateY:T})}updateTransform(){const{element:r,matrix:T,rotation:G=0,scaleX:q,scaleY:Q,translateX:D=0,translateY:s=0}=this,M=["translate("+D+","+s+")"];y(T)&&M.push("matrix("+T.join(",")+")"),G&&M.push("rotate("+G+" "+e(this.rotationOriginX,r.getAttribute("x"),0)+" "+e(this.rotationOriginY,r.getAttribute("y")||0)+")"),(y(q)||y(Q))&&M.push("scale("+e(q,1)+" "+e(Q,1)+")"),M.length&&!(this.text||this).textPath&&r.setAttribute("transform",M.join(" "))}visibilitySetter(r,T,G){r==="inherit"?G.removeAttribute(T):this[T]!==r&&G.setAttribute(T,r),this[T]=r}xGetter(r){return this.element.nodeName==="circle"&&(r==="x"?r="cx":r==="y"&&(r="cy")),this._defaultGetter(r)}zIndexSetter(r,T){var G=this.renderer,q=this.parentGroup;const Q=(q||G).element||G.box,D=this.element;G=Q===G.box;let s=!1,M;var j=this.added;let O;if(y(r)?(D.setAttribute("data-z-index",r),r=+r,this[T]===r&&(j=!1)):y(this[T])&&D.removeAttribute("data-z-index"),this[T]=r,j){for((r=this.zIndex)&&q&&(q.handleZ=!0),T=Q.childNodes,O=T.length-1;0<=O&&!s;O--)q=T[O],j=q.getAttribute("data-z-index"),M=!y(j),q!==D&&(0>r&&M&&!G&&!O?(Q.insertBefore(D,T[O]),s=!0):(t(j)<=r||M&&(!y(r)||0<=r))&&(Q.insertBefore(D,T[O+1]),s=!0));s||(Q.insertBefore(D,T[G?3:0]),s=!0)}return s}}return u.symbolCustomAttribs="anchorX anchorY clockwise end height innerR r start width x y".split(" "),u.prototype.strokeSetter=u.prototype.fillSetter,u.prototype.yGetter=u.prototype.xGetter,u.prototype.matrixSetter=u.prototype.rotationOriginXSetter=u.prototype.rotationOriginYSetter=u.prototype.rotationSetter=u.prototype.scaleXSetter=u.prototype.scaleYSetter=u.prototype.translateXSetter=u.prototype.translateYSetter=u.prototype.verticalAlignSetter=function(A,r){this[r]=A,this.doTransform=!0},u}),ct(z,"Core/Renderer/RendererRegistry.js",[z["Core/Globals.js"]],function(F){var N;return function(K){K.rendererTypes={};let et;K.getRendererType=function(tt=et){return K.rendererTypes[tt]||K.rendererTypes[et]},K.registerRendererType=function(tt,it,st){K.rendererTypes[tt]=it,(!et||st)&&(et=tt,F.Renderer=it)}}(N||(N={})),N}),ct(z,"Core/Renderer/SVG/SVGLabel.js",[z["Core/Renderer/SVG/SVGElement.js"],z["Core/Utilities.js"]],function(F,N){const{defined:K,extend:et,isNumber:tt,merge:it,pick:st,removeEvent:H}=N;class U extends F{constructor(S,w,L,E,d,x,y,m,b,v){super(),this.paddingRightSetter=this.paddingLeftSetter=this.paddingSetter,this.init(S,"g"),this.textStr=w,this.x=L,this.y=E,this.anchorX=x,this.anchorY=y,this.baseline=b,this.className=v,this.addClass(v==="button"?"highcharts-no-tooltip":"highcharts-label"),v&&this.addClass("highcharts-"+v),this.text=S.text(void 0,0,0,m).attr({zIndex:1});let k;typeof d=="string"&&((k=/^url\((.*?)\)$/.test(d))||this.renderer.symbols[d])&&(this.symbolKey=d),this.bBox=U.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=S.styledMode||k,this.deferredAttr={},this.alignFactor=0}alignSetter(S){S={left:0,center:.5,right:1}[S],S!==this.alignFactor&&(this.alignFactor=S,this.bBox&&tt(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(S,w){this.anchorX=S,this.boxAttr(w,Math.round(S)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(S,w){this.anchorY=S,this.boxAttr(w,S-this.ySetting)}boxAttr(S,w){this.box?this.box.attr(S,w):this.deferredAttr[S]=w}css(S){if(S){const w={};S=it(S),U.textProps.forEach(L=>{typeof S[L]<"u"&&(w[L]=S[L],delete S[L])}),this.text.css(w),"fontSize"in w||"fontWeight"in w?this.updateTextPadding():("width"in w||"textOverflow"in w)&&this.updateBoxSize()}return F.prototype.css.call(this,S)}destroy(){H(this.element,"mouseenter"),H(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),F.prototype.destroy.call(this)}fillSetter(S,w){S&&(this.needsBox=!0),this.fill=S,this.boxAttr(w,S)}getBBox(){this.textStr&&this.bBox.width===0&&this.bBox.height===0&&this.updateBoxSize();const S=this.padding,w=st(this.paddingLeft,S);return{width:this.width,height:this.height,x:this.bBox.x-w,y:this.bBox.y-S}}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(S){this.heightSetting=S}onAdd(){this.text.add(this),this.attr({text:st(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&K(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(S,w){tt(S)?S!==this[w]&&(this[w]=S,this.updateTextPadding()):this[w]=void 0}rSetter(S,w){this.boxAttr(w,S)}strokeSetter(S,w){this.stroke=S,this.boxAttr(w,S)}"stroke-widthSetter"(S,w){S&&(this.needsBox=!0),this["stroke-width"]=S,this.boxAttr(w,S)}"text-alignSetter"(S){this.textAlign=S}textSetter(S){typeof S<"u"&&this.text.attr({text:S}),this.updateTextPadding()}updateBoxSize(){var S=this.text;const w={},L=this.padding,E=this.bBox=tt(this.widthSetting)&&tt(this.heightSetting)&&!this.textAlign||!K(S.textStr)?U.emptyBBox:S.getBBox();this.width=this.getPaddedWidth(),this.height=(this.heightSetting||E.height||0)+2*L;const d=this.renderer.fontMetrics(S);this.baselineOffset=L+Math.min((this.text.firstLineMetrics||d).b,E.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-d.h)/2),this.needsBox&&!S.textPath&&(this.box||(S=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect(),S.addClass((this.className==="button"?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),S.add(this)),S=this.getCrispAdjust(),w.x=S,w.y=(this.baseline?-this.baselineOffset:0)+S,w.width=Math.round(this.width),w.height=Math.round(this.height),this.box.attr(et(w,this.deferredAttr)),this.deferredAttr={})}updateTextPadding(){const S=this.text;if(!S.textPath){this.updateBoxSize();const w=this.baseline?0:this.baselineOffset;let L=st(this.paddingLeft,this.padding);K(this.widthSetting)&&this.bBox&&(this.textAlign==="center"||this.textAlign==="right")&&(L+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(L!==S.x||w!==S.y)&&(S.attr("x",L),S.hasBoxWidthChanged&&(this.bBox=S.getBBox(!0)),typeof w<"u"&&S.attr("y",w)),S.x=L,S.y=w}}widthSetter(S){this.widthSetting=tt(S)?S:void 0}getPaddedWidth(){var S=this.padding;const w=st(this.paddingLeft,S);return S=st(this.paddingRight,S),(this.widthSetting||this.bBox.width||0)+w+S}xSetter(S){this.x=S,this.alignFactor&&(S-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(S),this.attr("translateX",this.xSetting)}ySetter(S){this.ySetting=this.y=Math.round(S),this.attr("translateY",this.ySetting)}}return U.emptyBBox={width:0,height:0,x:0,y:0},U.textProps="color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow whiteSpace width".split(" "),U}),ct(z,"Core/Renderer/SVG/Symbols.js",[z["Core/Utilities.js"]],function(F){function N(H,U,X,S,w){const L=[];if(w){const E=w.start||0,d=st(w.r,X);X=st(w.r,S||X),S=(w.end||0)-.001;const x=w.innerR,y=st(w.open,.001>Math.abs((w.end||0)-E-2*Math.PI)),m=Math.cos(E),b=Math.sin(E),v=Math.cos(S),k=Math.sin(S),n=st(w.longArc,.001>S-E-Math.PI?0:1);let a=["A",d,X,0,n,st(w.clockwise,1),H+d*v,U+X*k];a.params={start:E,end:S,cx:H,cy:U},L.push(["M",H+d*m,U+X*b],a),tt(x)&&(a=["A",x,x,0,n,tt(w.clockwise)?1-w.clockwise:0,H+x*m,U+x*b],a.params={start:S,end:E,cx:H,cy:U},L.push(y?["M",H+x*v,U+x*k]:["L",H+x*v,U+x*k],a)),y||L.push(["Z"])}return L}function K(H,U,X,S,w){return w&&w.r?et(H,U,X,S,w):[["M",H,U],["L",H+X,U],["L",H+X,U+S],["L",H,U+S],["Z"]]}function et(H,U,X,S,w){return w=(w==null?void 0:w.r)||0,[["M",H+w,U],["L",H+X-w,U],["A",w,w,0,0,1,H+X,U+w],["L",H+X,U+S-w],["A",w,w,0,0,1,H+X-w,U+S],["L",H+w,U+S],["A",w,w,0,0,1,H,U+S-w],["L",H,U+w],["A",w,w,0,0,1,H+w,U],["Z"]]}const{defined:tt,isNumber:it,pick:st}=F;return{arc:N,callout:function(H,U,X,S,w){const L=Math.min(w&&w.r||0,X,S),E=L+6,d=w&&w.anchorX;w=w&&w.anchorY||0;const x=et(H,U,X,S,{r:L});return it(d)&&(H+d>=X?w>U+E&&w<U+S-E?x.splice(3,1,["L",H+X,w-6],["L",H+X+6,w],["L",H+X,w+6],["L",H+X,U+S-L]):x.splice(3,1,["L",H+X,S/2],["L",d,w],["L",H+X,S/2],["L",H+X,U+S-L]):0>=H+d?w>U+E&&w<U+S-E?x.splice(7,1,["L",H,w+6],["L",H-6,w],["L",H,w-6],["L",H,U+L]):x.splice(7,1,["L",H,S/2],["L",d,w],["L",H,S/2],["L",H,U+L]):w&&w>S&&d>H+E&&d<H+X-E?x.splice(5,1,["L",d+6,U+S],["L",d,U+S+6],["L",d-6,U+S],["L",H+L,U+S]):w&&0>w&&d>H+E&&d<H+X-E&&x.splice(1,1,["L",d-6,U],["L",d,U-6],["L",d+6,U],["L",X-L,U])),x},circle:function(H,U,X,S){return N(H+X/2,U+S/2,X/2,S/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(H,U,X,S){return[["M",H+X/2,U],["L",H+X,U+S/2],["L",H+X/2,U+S],["L",H,U+S/2],["Z"]]},rect:K,roundedRect:et,square:K,triangle:function(H,U,X,S){return[["M",H+X/2,U],["L",H+X,U+S],["L",H,U+S],["Z"]]},"triangle-down":function(H,U,X,S){return[["M",H,U],["L",H+X,U],["L",H+X/2,U+S],["Z"]]}}}),ct(z,"Core/Renderer/SVG/TextBuilder.js",[z["Core/Renderer/HTML/AST.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(F,N,K){const{doc:et,SVG_NS:tt,win:it}=N,{attr:st,extend:H,fireEvent:U,isString:X,objectEach:S,pick:w}=K;class L{constructor(d){const x=d.styles;this.renderer=d.renderer,this.svgElement=d,this.width=d.textWidth,this.textLineHeight=x&&x.lineHeight,this.textOutline=x&&x.textOutline,this.ellipsis=!(!x||x.textOverflow!=="ellipsis"),this.noWrap=!(!x||x.whiteSpace!=="nowrap")}buildSVG(){const d=this.svgElement,x=d.element;var y=d.renderer,m=w(d.textStr,"").toString();const b=m.indexOf("<")!==-1,v=x.childNodes;y=!d.added&&y.box;const k=/<br.*?>/g;var n=[m,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,d.getStyle("font-size"),this.width].join();if(n!==d.textCache){for(d.textCache=n,delete d.actualWidth,n=v.length;n--;)x.removeChild(v[n]);b||this.ellipsis||this.width||d.textPath||m.indexOf(" ")!==-1&&(!this.noWrap||k.test(m))?m!==""&&(y&&y.appendChild(x),m=new F(m),this.modifyTree(m.nodes),m.addToDOM(x),this.modifyDOM(),this.ellipsis&&(x.textContent||"").indexOf("…")!==-1&&d.attr("title",this.unescapeEntities(d.textStr||"",["&lt;","&gt;"])),y&&y.removeChild(x)):x.appendChild(et.createTextNode(this.unescapeEntities(m))),X(this.textOutline)&&d.applyTextOutline&&d.applyTextOutline(this.textOutline)}}modifyDOM(){const d=this.svgElement,x=st(d.element,"x");d.firstLineMetrics=void 0;let y;for(;(y=d.element.firstChild)&&/^[\s\u200B]*$/.test(y.textContent||" ");)d.element.removeChild(y);[].forEach.call(d.element.querySelectorAll("tspan.highcharts-br"),(k,n)=>{k.nextSibling&&k.previousSibling&&(n===0&&k.previousSibling.nodeType===1&&(d.firstLineMetrics=d.renderer.fontMetrics(k.previousSibling)),st(k,{dy:this.getLineHeight(k.nextSibling),x}))});const m=this.width||0;if(m){var b=(k,n)=>{var a=k.textContent||"";const p=a.replace(/([^\^])-/g,"$1- ").split(" ");var l=!this.noWrap&&(1<p.length||1<d.element.childNodes.length);const c=this.getLineHeight(n);let e=0,t=d.actualWidth;if(this.ellipsis)a&&this.truncate(k,a,void 0,0,Math.max(0,m-.8*c),(i,h)=>i.substring(0,h)+"…");else if(l){for(a=[],l=[];n.firstChild&&n.firstChild!==k;)l.push(n.firstChild),n.removeChild(n.firstChild);for(;p.length;)p.length&&!this.noWrap&&0<e&&(a.push(k.textContent||""),k.textContent=p.join(" ").replace(/- /g,"-")),this.truncate(k,void 0,p,e===0&&t||0,m,(i,h)=>p.slice(0,h).join(" ").replace(/- /g,"-")),t=d.actualWidth,e++;l.forEach(i=>{n.insertBefore(i,k)}),a.forEach(i=>{n.insertBefore(et.createTextNode(i),k),i=et.createElementNS(tt,"tspan"),i.textContent="​",st(i,{dy:c,x}),n.insertBefore(i,k)})}},v=k=>{[].slice.call(k.childNodes).forEach(n=>{n.nodeType===it.Node.TEXT_NODE?b(n,k):(n.className.baseVal.indexOf("highcharts-br")!==-1&&(d.actualWidth=0),v(n))})};v(d.element)}}getLineHeight(d){return d=d.nodeType===it.Node.TEXT_NODE?d.parentElement:d,this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(d||this.svgElement.element).h}modifyTree(d){const x=(y,m)=>{const{attributes:b={},children:v,style:k={},tagName:n}=y,a=this.renderer.styledMode;n==="b"||n==="strong"?a?b.class="highcharts-strong":k.fontWeight="bold":(n==="i"||n==="em")&&(a?b.class="highcharts-emphasized":k.fontStyle="italic"),k&&k.color&&(k.fill=k.color),n==="br"?(b.class="highcharts-br",y.textContent="​",(m=d[m+1])&&m.textContent&&(m.textContent=m.textContent.replace(/^ +/gm,""))):n==="a"&&v&&v.some(p=>p.tagName==="#text")&&(y.children=[{children:v,tagName:"tspan"}]),n!=="#text"&&n!=="a"&&(y.tagName="tspan"),H(y,{attributes:b,style:k}),v&&v.filter(p=>p.tagName!=="#text").forEach(x)};d.forEach(x),U(this.svgElement,"afterModifyTree",{nodes:d})}truncate(d,x,y,m,b,v){const k=this.svgElement,{rotation:n}=k,a=[];let p=y?1:0,l=(x||y||"").length,c=l,e,t;const i=function(h,u){if(h=u||h,(u=d.parentNode)&&typeof a[h]>"u"&&u.getSubStringLength)try{a[h]=m+u.getSubStringLength(0,y?h+1:h)}catch{}return a[h]};if(k.rotation=0,t=i(d.textContent.length),m+t>b){for(;p<=l;)c=Math.ceil((p+l)/2),y&&(e=v(y,c)),t=i(c,e&&e.length-1),p===l?p=l+1:t>b?l=c-1:p=c;l===0?d.textContent="":x&&l===x.length-1||(d.textContent=e||v(x||y,c))}y&&y.splice(0,c),k.actualWidth=t,k.rotation=n}unescapeEntities(d,x){return S(this.renderer.escapes,function(y,m){x&&x.indexOf(y)!==-1||(d=d.toString().replace(new RegExp(y,"g"),m))}),d}}return L}),ct(z,"Core/Renderer/SVG/SVGRenderer.js",[z["Core/Renderer/HTML/AST.js"],z["Core/Color/Color.js"],z["Core/Globals.js"],z["Core/Renderer/RendererRegistry.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Renderer/SVG/SVGLabel.js"],z["Core/Renderer/SVG/Symbols.js"],z["Core/Renderer/SVG/TextBuilder.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt,it,st,H,U){const{charts:X,deg2rad:S,doc:w,isFirefox:L,isMS:E,isWebKit:d,noop:x,SVG_NS:y,symbolSizes:m,win:b}=K,{addEvent:v,attr:k,createElement:n,css:a,defined:p,destroyObjectProperties:l,extend:c,isArray:e,isNumber:t,isObject:i,isString:h,merge:u,pick:A,pInt:r,uniqueKey:T}=U;let G;class q{constructor(D,s,M,j,O,Y,o){this.width=this.url=this.style=this.imgCount=this.height=this.gradients=this.globalAnimation=this.defs=this.chartIndex=this.cacheKeys=this.cache=this.boxWrapper=this.box=this.alignedObjects=void 0,this.init(D,s,M,j,O,Y,o)}init(D,s,M,j,O,Y,o){const g=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),f=g.element;o||g.css(this.getStyle(j)),D.appendChild(f),k(D,"dir","ltr"),D.innerHTML.indexOf("xmlns")===-1&&k(f,"xmlns",this.SVG_NS),this.box=f,this.boxWrapper=g,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(w.createTextNode("Created with Highcharts 11.1.0")),this.defs=this.createElement("defs").add(),this.allowHTML=Y,this.forExport=O,this.styledMode=o,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=g.getStyle("font-size"),this.setSize(s,M,!1);let B;L&&D.getBoundingClientRect&&(s=function(){a(D,{left:0,top:0}),B=D.getBoundingClientRect(),a(D,{left:Math.ceil(B.left)-B.left+"px",top:Math.ceil(B.top)-B.top+"px"})},s(),this.unSubPixelFix=v(b,"resize",s))}definition(D){return new F([D]).addToDOM(this.defs.element)}getReferenceURL(){if((L||d)&&w.getElementsByTagName("base").length){if(!p(G)){var D=T();D=new F([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:D},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${D})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(w.body),a(D,{position:"fixed",top:0,left:0,zIndex:9e5});const s=w.elementFromPoint(6,6);G=(s&&s.id)==="hitme",w.body.removeChild(D)}if(G)return b.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20")}return""}getStyle(D){return this.style=c({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},D)}setStyle(D){this.boxWrapper.css(this.getStyle(D))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){const D=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),l(this.gradients||{}),this.gradients=null,this.defs=D.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null}createElement(D){const s=new this.Element;return s.init(this,D),s}getRadialAttr(D,s){return{cx:D[0]-D[2]/2+(s.cx||0)*D[2],cy:D[1]-D[2]/2+(s.cy||0)*D[2],r:(s.r||0)*D[2]}}shadowDefinition(D){const s=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(D).map(j=>D[j])].join("-").replace(/[^a-z0-9\-]/g,""),M=u({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},D);return this.defs.element.querySelector(`#${s}`)||this.definition({tagName:"filter",attributes:{id:s},children:[{tagName:"feDropShadow",attributes:{dx:M.offsetX,dy:M.offsetY,"flood-color":M.color,"flood-opacity":Math.min(5*M.opacity,1),stdDeviation:M.width/2}}]}),s}buildText(D){new H(D).buildSVG()}getContrast(D){return D=N.parse(D).rgba.map(s=>(s/=255,.03928>=s?s/12.92:Math.pow((s+.055)/1.055,2.4))),D=.2126*D[0]+.7152*D[1]+.0722*D[2],1.05/(D+.05)>(D+.05)/.05?"#FFFFFF":"#000000"}button(D,s,M,j,O={},Y,o,g,f,B){const R=this.label(D,s,M,f,void 0,void 0,B,void 0,"button"),I=this.styledMode;D=O.states||{};let _=0;O=u(O),delete O.states;const Z=u({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},O.style);delete O.style;let J=F.filterUserAttributes(O);R.attr(u({padding:8,r:2},J));let ot,ht,P;return I||(J=u({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},J),Y=u(J,{fill:"#e6e6e6"},F.filterUserAttributes(Y||D.hover||{})),ot=Y.style,delete Y.style,o=u(J,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},F.filterUserAttributes(o||D.select||{})),ht=o.style,delete o.style,g=u(J,{style:{color:"#cccccc"}},F.filterUserAttributes(g||D.disabled||{})),P=g.style,delete g.style),v(R.element,E?"mouseover":"mouseenter",function(){_!==3&&R.setState(1)}),v(R.element,E?"mouseout":"mouseleave",function(){_!==3&&R.setState(_)}),R.setState=function(C){C!==1&&(R.state=_=C),R.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][C||0]),I||(R.attr([J,Y,o,g][C||0]),C=[Z,ot,ht,P][C||0],i(C)&&R.css(C))},I||(R.attr(J).css(c({cursor:"default"},Z)),B&&R.text.css({pointerEvents:"none"})),R.on("touchstart",C=>C.stopPropagation()).on("click",function(C){_!==3&&j.call(R,C)})}crispLine(D,s,M="round"){const j=D[0],O=D[1];return p(j[1])&&j[1]===O[1]&&(j[1]=O[1]=Math[M](j[1])-s%2/2),p(j[2])&&j[2]===O[2]&&(j[2]=O[2]=Math[M](j[2])+s%2/2),D}path(D){const s=this.styledMode?{}:{fill:"none"};return e(D)?s.d=D:i(D)&&c(s,D),this.createElement("path").attr(s)}circle(D,s,M){return D=i(D)?D:typeof D>"u"?{}:{x:D,y:s,r:M},s=this.createElement("circle"),s.xSetter=s.ySetter=function(j,O,Y){Y.setAttribute("c"+O,j)},s.attr(D)}arc(D,s,M,j,O,Y){return i(D)?(j=D,s=j.y,M=j.r,D=j.x):j={innerR:j,start:O,end:Y},D=this.symbol("arc",D,s,M,M,j),D.r=M,D}rect(D,s,M,j,O,Y){D=i(D)?D:typeof D>"u"?{}:{x:D,y:s,r:O,width:Math.max(M||0,0),height:Math.max(j||0,0)};const o=this.createElement("rect");return this.styledMode||(typeof Y<"u"&&(D["stroke-width"]=Y,c(D,o.crisp(D))),D.fill="none"),o.rSetter=function(g,f,B){o.r=g,k(B,{rx:g,ry:g})},o.rGetter=function(){return o.r||0},o.attr(D)}roundedRect(D){return this.symbol("roundedRect").attr(D)}setSize(D,s,M){this.width=D,this.height=s,this.boxWrapper.animate({width:D,height:s},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:A(M,!0)?void 0:0}),this.alignElements()}g(D){const s=this.createElement("g");return D?s.attr({class:"highcharts-"+D}):s}image(D,s,M,j,O,Y){const o={preserveAspectRatio:"none"};t(s)&&(o.x=s),t(M)&&(o.y=M),t(j)&&(o.width=j),t(O)&&(o.height=O);const g=this.createElement("image").attr(o);return s=function(f){g.attr({href:D}),Y.call(g,f)},Y?(g.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}),M=new b.Image,v(M,"load",s),M.src=D,M.complete&&s({})):g.attr({href:D}),g}symbol(D,s,M,j,O,Y){const o=this,g=/^url\((.*?)\)$/,f=g.test(D),B=!f&&(this.symbols[D]?D:"circle"),R=B&&this.symbols[B];let I,_,Z,J;if(R)typeof s=="number"&&(_=R.call(this.symbols,Math.round(s||0),Math.round(M||0),j||0,O||0,Y)),I=this.path(_),o.styledMode||I.attr("fill","none"),c(I,{symbolName:B||void 0,x:s,y:M,width:j,height:O}),Y&&c(I,Y);else if(f){Z=D.match(g)[1];const ot=I=this.image(Z);ot.imgwidth=A(Y&&Y.width,m[Z]&&m[Z].width),ot.imgheight=A(Y&&Y.height,m[Z]&&m[Z].height),J=ht=>ht.attr({width:ht.width,height:ht.height}),["width","height"].forEach(function(ht){ot[ht+"Setter"]=function(P,C){this[C]=P;const{alignByTranslate:V,element:W,width:$,height:rt,imgwidth:nt,imgheight:ut}=this;if(P=this["img"+C],p(P)){let gt=1;Y&&Y.backgroundSize==="within"&&$&&rt?(gt=Math.min($/nt,rt/ut),k(W,{width:Math.round(nt*gt),height:Math.round(ut*gt)})):W&&W.setAttribute(C,P),V||this.translate((($||0)-nt*gt)/2,((rt||0)-ut*gt)/2)}}}),p(s)&&ot.attr({x:s,y:M}),ot.isImg=!0,p(ot.imgwidth)&&p(ot.imgheight)?J(ot):(ot.attr({width:0,height:0}),n("img",{onload:function(){const ht=X[o.chartIndex];this.width===0&&(a(this,{position:"absolute",top:"-999em"}),w.body.appendChild(this)),m[Z]={width:this.width,height:this.height},ot.imgwidth=this.width,ot.imgheight=this.height,ot.element&&J(ot),this.parentNode&&this.parentNode.removeChild(this),o.imgCount--,!o.imgCount&&ht&&!ht.hasLoaded&&ht.onload()},src:Z}),this.imgCount++)}return I}clipRect(D,s,M,j){const O=T()+"-",Y=this.createElement("clipPath").attr({id:O}).add(this.defs);return D=this.rect(D,s,M,j,0).add(Y),D.id=O,D.clipPath=Y,D.count=0,D}text(D,s,M,j){const O={};return j&&(this.allowHTML||!this.forExport)?this.html(D,s,M):(O.x=Math.round(s||0),M&&(O.y=Math.round(M)),p(D)&&(O.text=D),D=this.createElement("text").attr(O),(!j||this.forExport&&!this.allowHTML)&&(D.xSetter=function(Y,o,g){const f=g.getElementsByTagName("tspan"),B=g.getAttribute(o);for(let R=0,I;R<f.length;R++)I=f[R],I.getAttribute(o)===B&&I.setAttribute(o,Y);g.setAttribute(o,Y)}),D)}fontMetrics(D){D=r(tt.prototype.getStyle.call(D,"font-size")||0);const s=24>D?D+3:Math.round(1.2*D);return{h:s,b:Math.round(.8*s),f:D}}rotCorr(D,s,M){let j=D;return s&&M&&(j=Math.max(j*Math.cos(s*S),4)),{x:-D/3*Math.sin(s*S),y:j}}pathToSegments(D){const s=[],M=[],j={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2};for(let O=0;O<D.length;O++)h(M[0])&&t(D[O])&&M.length===j[M[0].toUpperCase()]&&D.splice(O,0,M[0].replace("M","L").replace("m","l")),typeof D[O]=="string"&&(M.length&&s.push(M.slice(0)),M.length=0),M.push(D[O]);return s.push(M.slice(0)),s}label(D,s,M,j,O,Y,o,g,f){return new it(this,D,s,M,j,O,Y,o,g,f)}alignElements(){this.alignedObjects.forEach(D=>D.align())}}return c(q.prototype,{Element:tt,SVG_NS:y,escapes:{"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},symbols:st,draw:x}),et.registerRendererType("svg",q,!0),q}),ct(z,"Core/Renderer/HTML/HTMLElement.js",[z["Core/Globals.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Utilities.js"]],function(F,N,K){const{isFirefox:et,isMS:tt,isWebKit:it,win:st}=F,{css:H,defined:U,extend:X,pick:S,pInt:w}=K,L=[];class E extends N{static compose(x){if(K.pushUnique(L,x)){const y=E.prototype,m=x.prototype;m.getSpanCorrection=y.getSpanCorrection,m.htmlCss=y.htmlCss,m.htmlGetBBox=y.htmlGetBBox,m.htmlUpdateTransform=y.htmlUpdateTransform,m.setSpanRotation=y.setSpanRotation}return x}getSpanCorrection(x,y,m){this.xCorr=-x*m,this.yCorr=-y}htmlCss(x){const y=this.element.tagName==="SPAN"&&x&&"width"in x,m=S(y&&x.width,void 0);let b;return y&&(delete x.width,this.textWidth=m,b=!0),x&&x.textOverflow==="ellipsis"&&(x.whiteSpace="nowrap",x.overflow="hidden"),this.styles=X(this.styles,x),H(this.element,x),b&&this.htmlUpdateTransform(),this}htmlGetBBox(){const x=this.element;return{x:x.offsetLeft,y:x.offsetTop,width:x.offsetWidth,height:x.offsetHeight}}htmlUpdateTransform(){if(this.added){var x=this.renderer,y=this.element,m=this.x||0,b=this.y||0,v=this.textAlign||"left",k={left:0,center:.5,right:1}[v],n=this.styles,a=n&&n.whiteSpace;if(H(y,{marginLeft:this.translateX||0,marginTop:this.translateY||0}),y.tagName==="SPAN"){n=this.rotation;const l=this.textWidth&&w(this.textWidth),c=[n,v,y.innerHTML,this.textWidth,this.textAlign].join();let e=!1;if(l!==this.oldTextWidth){if(this.textPxLength)var p=this.textPxLength;else H(y,{width:"",whiteSpace:a||"nowrap"}),p=y.offsetWidth;(l>this.oldTextWidth||p>l)&&(/[ \-]/.test(y.textContent||y.innerText)||y.style.textOverflow==="ellipsis")&&(H(y,{width:p>l||n?l+"px":"auto",display:"block",whiteSpace:a||"normal"}),this.oldTextWidth=l,e=!0)}this.hasBoxWidthChanged=e,c!==this.cTT&&(x=x.fontMetrics(y).b,!U(n)||n===(this.oldRotation||0)&&v===this.oldAlign||this.setSpanRotation(n,k,x),this.getSpanCorrection(!U(n)&&this.textPxLength||y.offsetWidth,x,k,n,v)),H(y,{left:m+(this.xCorr||0)+"px",top:b+(this.yCorr||0)+"px"}),this.cTT=c,this.oldRotation=n,this.oldAlign=v}}else this.alignOnAdd=!0}setSpanRotation(x,y,m){const b={},v=tt&&!/Edge/.test(st.navigator.userAgent)?"-ms-transform":it?"-webkit-transform":et?"MozTransform":st.opera?"-o-transform":void 0;v&&(b[v]=b.transform="rotate("+x+"deg)",b[v+(et?"Origin":"-origin")]=b.transformOrigin=100*y+"% "+m+"px",H(this.element,b))}}return E}),ct(z,"Core/Renderer/HTML/HTMLRenderer.js",[z["Core/Renderer/HTML/AST.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Renderer/SVG/SVGRenderer.js"],z["Core/Utilities.js"]],function(F,N,K,et){const{attr:tt,createElement:it,extend:st,pick:H}=et,U=[];class X extends K{static compose(w){return et.pushUnique(U,w)&&(w.prototype.html=X.prototype.html),w}html(w,L,E){const d=this.createElement("span"),x=d.element,y=d.renderer,m=function(b,v){["opacity","visibility"].forEach(function(k){b[k+"Setter"]=function(n,a,p){const l=b.div?b.div.style:v;N.prototype[k+"Setter"].call(this,n,a,p),l&&(l[a]=n)}}),b.addedSetters=!0};return d.textSetter=function(b){b!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,F.setElementHTML(this.element,H(b,"")),this.textStr=b,d.doTransform=!0)},m(d,d.element.style),d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(b,v){v==="align"?d.alignValue=d.textAlign=b:d[v]=b,d.doTransform=!0},d.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)},d.attr({text:w,x:Math.round(L),y:Math.round(E)}).css({position:"absolute"}),y.styledMode||d.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize}),x.style.whiteSpace="nowrap",d.css=d.htmlCss,d.add=function(b){const v=y.box.parentNode,k=[];let n;if(this.parentGroup=b){if(n=b.div,!n){for(;b;)k.push(b),b=b.parentGroup;k.reverse().forEach(function(a){function p(t,i){a[i]=t,i==="translateX"?e.left=t+"px":e.top=t+"px",a.doTransform=!0}const l=tt(a.element,"class"),c=a.styles||{};n=a.div=a.div||it("div",l?{className:l}:void 0,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,visibility:a.visibility},n||v);const e=n.style;st(a,{classSetter:function(t){return function(i){this.element.setAttribute("class",i),t.className=i}}(n),css:function(t){return d.css.call(a,t),["cursor","pointerEvents"].forEach(i=>{t[i]&&(e[i]=t[i])}),a},on:function(){return k[0].div&&d.on.apply({element:k[0].div,onEvents:a.onEvents},arguments),a},translateXSetter:p,translateYSetter:p}),a.addedSetters||m(a),a.css(c)})}}else n=v;return n.appendChild(x),d.added=!0,d.alignOnAdd&&d.htmlUpdateTransform(),d},d}}return X}),ct(z,"Core/Axis/AxisDefaults.js",[],function(){var F;return function(N){N.defaultXAxisOptions={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotation:void 0,autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,opposite:!1,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",rotation:0,useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},N.defaultYAxisOptions={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){const{numberFormatter:K}=this.axis.chart;return K(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},N.defaultLeftAxisOptions={title:{rotation:270}},N.defaultRightAxisOptions={title:{rotation:90}},N.defaultBottomAxisOptions={labels:{autoRotation:[-45]},margin:15,title:{rotation:0}},N.defaultTopAxisOptions={labels:{autoRotation:[-45]},margin:15,title:{rotation:0}}}(F||(F={})),F}),ct(z,"Core/Foundation.js",[z["Core/Utilities.js"]],function(F){const{addEvent:N,isFunction:K,objectEach:et,removeEvent:tt}=F;var it;return function(st){st.registerEventOptions=function(H,U){H.eventOptions=H.eventOptions||{},et(U.events,function(X,S){H.eventOptions[S]!==X&&(H.eventOptions[S]&&(tt(H,S,H.eventOptions[S]),delete H.eventOptions[S]),K(X)&&(H.eventOptions[S]=X,N(H,S,X,{order:0})))})}}(it||(it={})),it}),ct(z,"Core/Axis/Tick.js",[z["Core/Templating.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(F,N,K){const{deg2rad:et}=N,{clamp:tt,correctFloat:it,defined:st,destroyObjectProperties:H,extend:U,fireEvent:X,isNumber:S,merge:w,objectEach:L,pick:E}=K;class d{constructor(y,m,b,v,k){this.isNewLabel=this.isNew=!0,this.axis=y,this.pos=m,this.type=b||"",this.parameters=k||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,X(this,"init"),b||v||this.addLabel()}addLabel(){const y=this,m=y.axis;var b=m.options;const v=m.chart;var k=m.categories;const n=m.logarithmic,a=m.names,p=y.pos,l=E(y.options&&y.options.labels,b.labels);var c=m.tickPositions;const e=p===c[0],t=p===c[c.length-1],i=(!l.step||l.step===1)&&m.tickInterval===1;c=c.info;let h=y.label,u,A,r;k=this.parameters.category||(k?E(k[p],a[p],p):p),n&&S(k)&&(k=it(n.lin2log(k))),m.dateTime&&(c?(A=v.time.resolveDTLFormat(b.dateTimeLabelFormats[!b.grid&&c.higherRanks[p]||c.unitName]),u=A.main):S(k)&&(u=m.dateTime.getXDateFormat(k,b.dateTimeLabelFormats||{}))),y.isFirst=e,y.isLast=t;const T={axis:m,chart:v,dateTimeLabelFormat:u,isFirst:e,isLast:t,pos:p,tick:y,tickPositionInfo:c,value:k};X(this,"labelFormat",T);const G=Q=>l.formatter?l.formatter.call(Q,Q):l.format?(Q.text=m.defaultLabelFormatter.call(Q,Q),F.format(l.format,Q,v)):m.defaultLabelFormatter.call(Q,Q);b=G.call(T,T);const q=A&&A.list;y.shortenLabel=q?function(){for(r=0;r<q.length;r++)if(U(T,{dateTimeLabelFormat:q[r]}),h.attr({text:G.call(T,T)}),h.getBBox().width<m.getSlotWidth(y)-2*l.padding)return;h.attr({text:""})}:void 0,i&&m._addedPlotLB&&y.moveLabel(b,l),st(h)||y.movedLabel?h&&h.textStr!==b&&!i&&(!h.textWidth||l.style.width||h.styles.width||h.css({width:null}),h.attr({text:b}),h.textPxLength=h.getBBox().width):(y.label=h=y.createLabel({x:0,y:0},b,l),y.rotation=0)}createLabel(y,m,b){const v=this.axis,k=v.chart;return(y=st(m)&&b.enabled?k.renderer.text(m,y.x,y.y,b.useHTML).add(v.labelGroup):null)&&(k.styledMode||y.css(w(b.style)),y.textPxLength=y.getBBox().width),y}destroy(){H(this,this.axis)}getPosition(y,m,b,v){const k=this.axis,n=k.chart,a=v&&n.oldChartHeight||n.chartHeight;return y={x:y?it(k.translate(m+b,void 0,void 0,v)+k.transB):k.left+k.offset+(k.opposite?(v&&n.oldChartWidth||n.chartWidth)-k.right-k.left:0),y:y?a-k.bottom+k.offset-(k.opposite?k.height:0):it(a-k.translate(m+b,void 0,void 0,v)-k.transB)},y.y=tt(y.y,-1e5,1e5),X(this,"afterGetPosition",{pos:y}),y}getLabelPosition(y,m,b,v,k,n,a,p){const l=this.axis,c=l.transA,e=l.isLinked&&l.linkedParent?l.linkedParent.reversed:l.reversed,t=l.staggerLines,i=l.tickRotCorr||{x:0,y:0},h=v||l.reserveSpaceDefault?0:-l.labelOffset*(l.labelAlign==="center"?.5:1),u=k.distance,A={};return b=l.side===0?b.rotation?-u:-b.getBBox().height:l.side===2?i.y+u:Math.cos(b.rotation*et)*(i.y-b.getBBox(!1,0).height/2),st(k.y)&&(b=l.side===0&&l.horiz?k.y+b:k.y),y=y+E(k.x,[0,1,0,-1][l.side]*u)+h+i.x-(n&&v?n*c*(e?-1:1):0),m=m+b-(n&&!v?n*c*(e?1:-1):0),t&&(v=a/(p||1)%t,l.opposite&&(v=t-v-1),m+=l.labelOffset/t*v),A.x=y,A.y=Math.round(m),X(this,"afterGetLabelPosition",{pos:A,tickmarkOffset:n,index:a}),A}getLabelSize(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0}getMarkPath(y,m,b,v,k,n){return n.crispLine([["M",y,m],["L",y+(k?0:-b),m+(k?b:0)]],v)}handleOverflow(y){const m=this.axis,b=m.options.labels,v=y.x;var k=m.chart.chartWidth,n=m.chart.spacing;const a=E(m.labelLeft,Math.min(m.pos,n[3]));n=E(m.labelRight,Math.max(m.isRadial?0:m.pos+m.len,k-n[1]));const p=this.label,l=this.rotation,c={left:0,center:.5,right:1}[m.labelAlign||p.attr("align")],e=p.getBBox().width,t=m.getSlotWidth(this),i={};let h=t,u=1,A;l||b.overflow!=="justify"?0>l&&v-c*e<a?A=Math.round(v/Math.cos(l*et)-a):0<l&&v+c*e>n&&(A=Math.round((k-v)/Math.cos(l*et))):(k=v+(1-c)*e,v-c*e<a?h=y.x+h*(1-c)-a:k>n&&(h=n-y.x+h*c,u=-1),h=Math.min(t,h),h<t&&m.labelAlign==="center"&&(y.x+=u*(t-h-c*(t-Math.min(e,h)))),(e>h||m.autoRotation&&(p.styles||{}).width)&&(A=h)),A&&(this.shortenLabel?this.shortenLabel():(i.width=Math.floor(A)+"px",(b.style||{}).textOverflow||(i.textOverflow="ellipsis"),p.css(i)))}moveLabel(y,m){const b=this;var v=b.label;const k=b.axis;let n=!1;v&&v.textStr===y?(b.movedLabel=v,n=!0,delete b.label):L(k.ticks,function(a){n||a.isNew||a===b||!a.label||a.label.textStr!==y||(b.movedLabel=a.label,n=!0,a.labelPos=b.movedLabel.xy,delete a.label)}),n||!b.labelPos&&!v||(v=b.labelPos||v.xy,b.movedLabel=b.createLabel(v,y,m),b.movedLabel&&b.movedLabel.attr({opacity:0}))}render(y,m,b){var v=this.axis,k=v.horiz,n=this.pos,a=E(this.tickmarkOffset,v.tickmarkOffset);n=this.getPosition(k,n,a,m),a=n.x;const p=n.y;v=k&&a===v.pos+v.len||!k&&p===v.pos?-1:1,k=E(b,this.label&&this.label.newOpacity,1),b=E(b,1),this.isActive=!0,this.renderGridLine(m,b,v),this.renderMark(n,b,v),this.renderLabel(n,m,k,y),this.isNew=!1,X(this,"afterRender")}renderGridLine(y,m,b){const v=this.axis,k=v.options,n={},a=this.pos,p=this.type,l=E(this.tickmarkOffset,v.tickmarkOffset),c=v.chart.renderer;let e=this.gridLine,t=k.gridLineWidth,i=k.gridLineColor,h=k.gridLineDashStyle;this.type==="minor"&&(t=k.minorGridLineWidth,i=k.minorGridLineColor,h=k.minorGridLineDashStyle),e||(v.chart.styledMode||(n.stroke=i,n["stroke-width"]=t||0,n.dashstyle=h),p||(n.zIndex=1),y&&(m=0),this.gridLine=e=c.path().attr(n).addClass("highcharts-"+(p?p+"-":"")+"grid-line").add(v.gridGroup)),e&&(b=v.getPlotLinePath({value:a+l,lineWidth:e.strokeWidth()*b,force:"pass",old:y,acrossPanes:!1}))&&e[y||this.isNew?"attr":"animate"]({d:b,opacity:m})}renderMark(y,m,b){const v=this.axis;var k=v.options;const n=v.chart.renderer,a=this.type,p=v.tickSize(a?a+"Tick":"tick"),l=y.x;y=y.y;const c=E(k[a!=="minor"?"tickWidth":"minorTickWidth"],!a&&v.isXAxis?1:0);k=k[a!=="minor"?"tickColor":"minorTickColor"];let e=this.mark;const t=!e;p&&(v.opposite&&(p[0]=-p[0]),e||(this.mark=e=n.path().addClass("highcharts-"+(a?a+"-":"")+"tick").add(v.axisGroup),v.chart.styledMode||e.attr({stroke:k,"stroke-width":c})),e[t?"attr":"animate"]({d:this.getMarkPath(l,y,p[0],e.strokeWidth()*b,v.horiz,n),opacity:m}))}renderLabel(y,m,b,v){var k=this.axis;const n=k.horiz,a=k.options,p=this.label,l=a.labels,c=l.step;k=E(this.tickmarkOffset,k.tickmarkOffset);const e=y.x;y=y.y;let t=!0;p&&S(e)&&(p.xy=y=this.getLabelPosition(e,y,p,n,l,k,v,c),this.isFirst&&!this.isLast&&!a.showFirstLabel||this.isLast&&!this.isFirst&&!a.showLastLabel?t=!1:!n||l.step||l.rotation||m||b===0||this.handleOverflow(y),c&&v%c&&(t=!1),t&&S(y.y)?(y.opacity=b,p[this.isNewLabel?"attr":"animate"](y).show(!0),this.isNewLabel=!1):(p.hide(),this.isNewLabel=!0))}replaceMovedLabel(){const y=this.label,m=this.axis;y&&!this.isNew&&(y.animate({opacity:0},void 0,y.destroy),delete this.label),m.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}return d}),ct(z,"Core/Axis/Axis.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Axis/AxisDefaults.js"],z["Core/Color/Color.js"],z["Core/Defaults.js"],z["Core/Foundation.js"],z["Core/Globals.js"],z["Core/Axis/Tick.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt,it,st,H){const{animObject:U}=F,{defaultOptions:X}=et,{registerEventOptions:S}=tt,{deg2rad:w}=it,{arrayMax:L,arrayMin:E,clamp:d,correctFloat:x,defined:y,destroyObjectProperties:m,erase:b,error:v,extend:k,fireEvent:n,getClosestDistance:a,insertItem:p,isArray:l,isNumber:c,isString:e,merge:t,normalizeTickInterval:i,objectEach:h,pick:u,relativeLength:A,removeEvent:r,splat:T,syncTimeout:G}=H,q=(D,s)=>i(s,void 0,void 0,u(D.options.allowDecimals,.5>s||D.tickAmount!==void 0),!!D.tickAmount);class Q{constructor(s,M,j){this.zoomEnabled=this.width=this.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=this.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=this.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.index=this.height=this.hasVisibleSeries=this.hasNames=this.eventOptions=this.coll=this.closestPointRange=this.chart=this.bottom=this.alternateBands=void 0,this.init(s,M,j)}init(s,M,j=this.coll){const O=j==="xAxis";this.chart=s,this.horiz=this.isZAxis||(s.inverted?!O:O),this.isXAxis=O,this.coll=j,n(this,"init",{userOptions:M}),this.opposite=u(M.opposite,this.opposite),this.side=u(M.side,this.side,this.horiz?this.opposite?0:2:this.opposite?1:3),this.setOptions(M),j=this.options;const Y=j.labels,o=j.type;this.userOptions=M,this.minPixelPadding=0,this.reversed=u(j.reversed,this.reversed),this.visible=j.visible,this.zoomEnabled=j.zoomEnabled,this.hasNames=o==="category"||j.categories===!0,this.categories=j.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=y(j.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=j.minRange||j.maxZoom,this.range=j.range,this.offset=j.offset||0,this.min=this.max=null,M=u(j.crosshair,T(s.options.tooltip.crosshairs)[O?0:1]),this.crosshair=M===!0?{}:M,s.axes.indexOf(this)===-1&&(O?s.axes.splice(s.xAxis.length,0,this):s.axes.push(this),p(this,s[this.coll])),s.orderItems(this.coll),this.series=this.series||[],s.inverted&&!this.isZAxis&&O&&typeof this.reversed>"u"&&(this.reversed=!0),this.labelRotation=c(Y.rotation)?Y.rotation:void 0,S(this,j),n(this,"afterInit")}setOptions(s){this.options=t(N.defaultXAxisOptions,this.coll==="yAxis"&&N.defaultYAxisOptions,[N.defaultTopAxisOptions,N.defaultRightAxisOptions,N.defaultBottomAxisOptions,N.defaultLeftAxisOptions][this.side],t(X[this.coll],s)),n(this,"afterSetOptions",{userOptions:s})}defaultLabelFormatter(s){var M=this.axis;({numberFormatter:s}=this.chart);const j=c(this.value)?this.value:NaN,O=M.chart.time,Y=this.dateTimeLabelFormat;var o=X.lang;const g=o.numericSymbols;o=o.numericSymbolMagnitude||1e3;const f=M.logarithmic?Math.abs(j):M.tickInterval;let B=g&&g.length,R;if(M.categories)R=`${this.value}`;else if(Y)R=O.dateFormat(Y,j);else if(B&&1e3<=f)for(;B--&&typeof R>"u";)M=Math.pow(o,B+1),f>=M&&10*j%M===0&&g[B]!==null&&j!==0&&(R=s(j/M,-1)+g[B]);return typeof R>"u"&&(R=1e4<=Math.abs(j)?s(j,-1):s(j,-1,void 0,"")),R}getSeriesExtremes(){const s=this,M=s.chart;let j;n(this,"getSeriesExtremes",null,function(){s.hasVisibleSeries=!1,s.dataMin=s.dataMax=s.threshold=null,s.softThreshold=!s.isXAxis,s.series.forEach(function(O){if(O.visible||!M.options.chart.ignoreHiddenSeries){var Y=O.options;let o=Y.threshold,g,f;s.hasVisibleSeries=!0,s.positiveValuesOnly&&0>=o&&(o=null),s.isXAxis?(Y=O.xData)&&Y.length&&(Y=s.logarithmic?Y.filter(B=>0<B):Y,j=O.getXExtremes(Y),g=j.min,f=j.max,c(g)||g instanceof Date||(Y=Y.filter(c),j=O.getXExtremes(Y),g=j.min,f=j.max),Y.length&&(s.dataMin=Math.min(u(s.dataMin,g),g),s.dataMax=Math.max(u(s.dataMax,f),f))):(O=O.applyExtremes(),c(O.dataMin)&&(g=O.dataMin,s.dataMin=Math.min(u(s.dataMin,g),g)),c(O.dataMax)&&(f=O.dataMax,s.dataMax=Math.max(u(s.dataMax,f),f)),y(o)&&(s.threshold=o),(!Y.softThreshold||s.positiveValuesOnly)&&(s.softThreshold=!1))}})}),n(this,"afterGetSeriesExtremes")}translate(s,M,j,O,Y,o){const g=this.linkedParent||this,f=O&&g.old?g.old.min:g.min;if(!c(f))return NaN;const B=g.minPixelPadding;Y=(g.isOrdinal||g.brokenAxis&&g.brokenAxis.hasBreaks||g.logarithmic&&Y)&&g.lin2val;let R=1,I=0;return O=O&&g.old?g.old.transA:g.transA,O||(O=g.transA),j&&(R*=-1,I=g.len),g.reversed&&(R*=-1,I-=R*(g.sector||g.len)),M?(o=(s*R+I-B)/O+f,Y&&(o=g.lin2val(o))):(Y&&(s=g.val2lin(s)),s=R*(s-f)*O,o=(g.isRadial?s:x(s))+I+R*B+(c(o)?O*o:0)),o}toPixels(s,M){return this.translate(s,!1,!this.horiz,void 0,!0)+(M?0:this.pos)}toValue(s,M){return this.translate(s-(M?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(s){function M(W,$,rt){return J!=="pass"&&(W<$||W>rt)&&(J?W=d(W,$,rt):V=!0),W}const j=this,O=j.chart,Y=j.left,o=j.top,g=s.old,f=s.value,B=s.lineWidth,R=g&&O.oldChartHeight||O.chartHeight,I=g&&O.oldChartWidth||O.chartWidth,_=j.transB;let Z=s.translatedValue,J=s.force,ot,ht,P,C,V;return s={value:f,lineWidth:B,old:g,force:J,acrossPanes:s.acrossPanes,translatedValue:Z},n(this,"getPlotLinePath",s,function(W){Z=u(Z,j.translate(f,void 0,void 0,g)),Z=d(Z,-1e5,1e5),ot=P=Math.round(Z+_),ht=C=Math.round(R-Z-_),c(Z)?j.horiz?(ht=o,C=R-j.bottom,ot=P=M(ot,Y,Y+j.width)):(ot=Y,P=I-j.right,ht=C=M(ht,o,o+j.height)):(V=!0,J=!1),W.path=V&&!J?null:O.renderer.crispLine([["M",ot,ht],["L",P,C]],B||1)}),s.path}getLinearTickPositions(s,M,j){const O=x(Math.floor(M/s)*s);j=x(Math.ceil(j/s)*s);const Y=[];let o,g;if(x(O+s)===O&&(g=20),this.single)return[M];for(M=O;M<=j&&(Y.push(M),M=x(M+s,g),M!==o);)o=M;return Y}getMinorTickInterval(){const s=this.options;return s.minorTicks===!0?u(s.minorTickInterval,"auto"):s.minorTicks===!1?null:s.minorTickInterval}getMinorTickPositions(){var s=this.options;const M=this.tickPositions,j=this.minorTickInterval;var O=this.pointRangePadding||0;const Y=this.min-O;O=this.max+O;const o=O-Y;let g=[];if(o&&o/j<this.len/3){const f=this.logarithmic;if(f)this.paddedTicks.forEach(function(B,R,I){R&&g.push.apply(g,f.getLogTickPositions(j,I[R-1],I[R],!0))});else if(this.dateTime&&this.getMinorTickInterval()==="auto")g=g.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(j),Y,O,s.startOfWeek));else for(s=Y+(M[0]-Y)%j;s<=O&&s!==g[0];s+=j)g.push(s)}return g.length!==0&&this.trimTicks(g),g}adjustForMinRange(){const s=this.options,M=this.logarithmic;let j=this.min;var O=this.max;let Y,o;if(this.isXAxis&&typeof this.minRange>"u"&&!M)if(y(s.min)||y(s.max)||y(s.floor)||y(s.ceiling))this.minRange=null;else{var g=a(this.series.map(f=>{var B;return(f.xIncrement?(B=f.xData)===null||B===void 0?void 0:B.slice(0,2):f.xData)||[]}))||0;this.minRange=Math.min(5*g,this.dataMax-this.dataMin)}O-j<this.minRange&&(g=this.dataMax-this.dataMin>=this.minRange,o=this.minRange,O=(o-O+j)/2,Y=[j-O,u(s.min,j-O)],g&&(Y[2]=M?M.log2lin(this.dataMin):this.dataMin),j=L(Y),O=[j+o,u(s.max,j+o)],g&&(O[2]=M?M.log2lin(this.dataMax):this.dataMax),O=E(O),O-j<o&&(Y[0]=O-o,Y[1]=u(s.min,O-o),j=L(Y))),this.min=j,this.max=O}getClosest(){let s,M;if(this.categories)M=1;else{const j=[];this.series.forEach(function(O){var Y;const o=O.closestPointRange,g=O.visible||!O.chart.options.chart.ignoreHiddenSeries;((Y=O.xData)===null||Y===void 0?void 0:Y.length)===1?j.push(O.xData[0]):!O.noSharedTooltip&&y(o)&&g&&(M=y(M)?Math.min(M,o):o)}),j.length&&(j.sort((O,Y)=>O-Y),s=a([j]))}return s&&M?Math.min(s,M):s||M}nameToX(s){const M=l(this.options.categories),j=M?this.categories:this.names;let O=s.options.x,Y;return s.series.requireSorting=!1,y(O)||(O=this.options.uniqueNames&&j?M?j.indexOf(s.name):u(j.keys[s.name],-1):s.series.autoIncrement()),O===-1?!M&&j&&(Y=j.length):Y=O,typeof Y<"u"?(this.names[Y]=s.name,this.names.keys[s.name]=Y):s.x&&(Y=s.x),Y}updateNames(){const s=this,M=this.names;0<M.length&&(Object.keys(M.keys).forEach(function(j){delete M.keys[j]}),M.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(function(j){j.xIncrement=null,(!j.points||j.isDirtyData)&&(s.max=Math.max(s.max,j.xData.length-1),j.processData(),j.generatePoints()),j.data.forEach(function(O,Y){let o;O&&O.options&&typeof O.name<"u"&&(o=s.nameToX(O),typeof o<"u"&&o!==O.x&&(O.x=o,j.xData[Y]=o))})}))}setAxisTranslation(){const s=this,M=s.max-s.min;var j=s.linkedParent;const O=!!s.categories,Y=s.isXAxis;let o=s.axisPointRange||0,g,f=0,B=0,R=s.transA;(Y||O||o)&&(g=s.getClosest(),j?(f=j.minPointOffset,B=j.pointRangePadding):s.series.forEach(function(I){const _=O?1:Y?u(I.options.pointRange,g,0):s.axisPointRange||0,Z=I.options.pointPlacement;o=Math.max(o,_),(!s.single||O)&&(I=I.is("xrange")?!Y:Y,f=Math.max(f,I&&e(Z)?0:_/2),B=Math.max(B,I&&Z==="on"?0:_))}),j=s.ordinal&&s.ordinal.slope&&g?s.ordinal.slope/g:1,s.minPointOffset=f*=j,s.pointRangePadding=B*=j,s.pointRange=Math.min(o,s.single&&O?1:M),Y&&g&&(s.closestPointRange=g)),s.translationSlope=s.transA=R=s.staticScale||s.len/(M+B||1),s.transB=s.horiz?s.left:s.bottom,s.minPixelPadding=R*f,n(this,"afterSetAxisTranslation")}minFromRange(){return this.max-this.range}setTickInterval(s){var M=this.chart;const j=this.logarithmic,O=this.options,Y=this.isXAxis,o=this.isLinked,g=O.tickPixelInterval,f=this.categories,B=this.softThreshold;let R=O.maxPadding,I=O.minPadding,_=c(O.tickInterval)&&0<=O.tickInterval?O.tickInterval:void 0,Z=c(this.threshold)?this.threshold:null,J,ot,ht;if(this.dateTime||f||o||this.getTickAmount(),ot=u(this.userMin,O.min),ht=u(this.userMax,O.max),o){this.linkedParent=M[this.coll][O.linkedTo];var P=this.linkedParent.getExtremes();this.min=u(P.min,P.dataMin),this.max=u(P.max,P.dataMax),O.type!==this.linkedParent.options.type&&v(11,1,M)}else B&&y(Z)&&(this.dataMin>=Z?(P=Z,I=0):this.dataMax<=Z&&(J=Z,R=0)),this.min=u(ot,P,this.dataMin),this.max=u(ht,J,this.dataMax);if(j&&(this.positiveValuesOnly&&!s&&0>=Math.min(this.min,u(this.dataMin,this.min))&&v(10,1,M),this.min=x(j.log2lin(this.min),16),this.max=x(j.log2lin(this.max),16)),this.range&&y(this.max)&&(this.userMin=this.min=ot=Math.max(this.dataMin,this.minFromRange()),this.userMax=ht=this.max,this.range=null),n(this,"foundExtremes"),this.beforePadding&&this.beforePadding(),this.adjustForMinRange(),!c(this.userMin)&&c(O.softMin)&&O.softMin<this.min&&(this.min=ot=O.softMin),!c(this.userMax)&&c(O.softMax)&&O.softMax>this.max&&(this.max=ht=O.softMax),!(f||this.axisPointRange||this.stacking&&this.stacking.usePercentage||o)&&y(this.min)&&y(this.max)&&(M=this.max-this.min)&&(!y(ot)&&I&&(this.min-=M*I),!y(ht)&&R&&(this.max+=M*R)),!c(this.userMin)&&c(O.floor)&&(this.min=Math.max(this.min,O.floor)),!c(this.userMax)&&c(O.ceiling)&&(this.max=Math.min(this.max,O.ceiling)),B&&y(this.dataMin)&&(Z=Z||0,!y(ot)&&this.min<Z&&this.dataMin>=Z?this.min=this.options.minRange?Math.min(Z,this.max-this.minRange):Z:!y(ht)&&this.max>Z&&this.dataMax<=Z&&(this.max=this.options.minRange?Math.max(Z,this.min+this.minRange):Z)),c(this.min)&&c(this.max)&&!this.chart.polar&&this.min>this.max&&(y(this.options.min)?this.max=this.min:y(this.options.max)&&(this.min=this.max)),this.tickInterval=this.min===this.max||typeof this.min>"u"||typeof this.max>"u"?1:o&&this.linkedParent&&!_&&g===this.linkedParent.options.tickPixelInterval?_=this.linkedParent.tickInterval:u(_,this.tickAmount?(this.max-this.min)/Math.max(this.tickAmount-1,1):void 0,f?1:(this.max-this.min)*g/Math.max(this.len,g)),Y&&!s){const C=this.min!==(this.old&&this.old.min)||this.max!==(this.old&&this.old.max);this.series.forEach(function(V){V.forceCrop=V.forceCropping&&V.forceCropping(),V.processData(C)}),n(this,"postProcessData",{hasExtremesChanged:C})}this.setAxisTranslation(),n(this,"initialAxisTranslation"),this.pointRange&&!_&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval)),s=u(O.minTickInterval,this.dateTime&&!this.series.some(C=>C.noSharedTooltip)?this.closestPointRange:0),!_&&this.tickInterval<s&&(this.tickInterval=s),this.dateTime||this.logarithmic||_||(this.tickInterval=q(this,this.tickInterval)),this.tickAmount||(this.tickInterval=this.unsquish()),this.setTickPositions()}setTickPositions(){var s=this.options;const M=s.tickPositions,j=s.tickPositioner;var O=this.getMinorTickInterval(),Y=this.hasVerticalPanning(),o=this.coll==="colorAxis";const g=(o||!Y)&&s.startOnTick;Y=(o||!Y)&&s.endOnTick,o=[];let f;if(this.tickmarkOffset=this.categories&&s.tickmarkPlacement==="between"&&this.tickInterval===1?.5:0,this.minorTickInterval=O==="auto"&&this.tickInterval?this.tickInterval/s.minorTicksPerMajor:O,this.single=this.min===this.max&&y(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||s.allowDecimals!==!1),M)o=M.slice();else if(c(this.min)&&c(this.max)){if(this.ordinal&&this.ordinal.positions||!((this.max-this.min)/this.tickInterval>Math.max(2*this.len,200)))if(this.dateTime)o=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,s.units),this.min,this.max,s.startOfWeek,this.ordinal&&this.ordinal.positions,this.closestPointRange,!0);else if(this.logarithmic)o=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else for(O=s=this.tickInterval;O<=2*s&&(o=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&o.length>this.tickAmount);)this.tickInterval=q(this,O*=1.1);else o=[this.min,this.max],v(19,!1,this.chart);o.length>this.len&&(o=[o[0],o[o.length-1]],o[0]===o[1]&&(o.length=1)),j&&(this.tickPositions=o,(f=j.apply(this,[this.min,this.max]))&&(o=f))}this.tickPositions=o,this.paddedTicks=o.slice(0),this.trimTicks(o,g,Y),!this.isLinked&&c(this.min)&&c(this.max)&&(this.single&&2>o.length&&!this.categories&&!this.series.some(B=>B.is("heatmap")&&B.options.pointPlacement==="between")&&(this.min-=.5,this.max+=.5),M||f||this.adjustTickAmount()),n(this,"afterSetTickPositions")}trimTicks(s,M,j){const O=s[0],Y=s[s.length-1],o=!this.isOrdinal&&this.minPointOffset||0;if(n(this,"trimTicks"),!this.isLinked){if(M&&O!==-1/0)this.min=O;else for(;this.min-o>s[0];)s.shift();if(j)this.max=Y;else for(;this.max+o<s[s.length-1];)s.pop();s.length===0&&y(O)&&!this.options.tickPositions&&s.push((Y+O)/2)}}alignToOthers(){const s=this,M=[this],j=s.options,O=this.coll==="yAxis"&&this.chart.options.chart.alignThresholds,Y=[];let o;if(s.thresholdAlignment=void 0,(this.chart.options.chart.alignTicks!==!1&&j.alignTicks||O)&&j.startOnTick!==!1&&j.endOnTick!==!1&&!s.logarithmic){const g=B=>{const{horiz:R,options:I}=B;return[R?I.left:I.top,I.width,I.height,I.pane].join()},f=g(this);this.chart[this.coll].forEach(function(B){const{series:R}=B;R.length&&R.some(I=>I.visible)&&B!==s&&g(B)===f&&(o=!0,M.push(B))})}if(o&&O){M.forEach(f=>{f=f.getThresholdAlignment(s),c(f)&&Y.push(f)});const g=1<Y.length?Y.reduce((f,B)=>f+B,0)/Y.length:void 0;M.forEach(f=>{f.thresholdAlignment=g})}return o}getThresholdAlignment(s){if((!c(this.dataMin)||this!==s&&this.series.some(M=>M.isDirty||M.isDirtyData))&&this.getSeriesExtremes(),c(this.threshold))return s=d((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1),this.options.reversed&&(s=1-s),s}getTickAmount(){const s=this.options,M=s.tickPixelInterval;let j=s.tickAmount;!y(s.tickInterval)&&!j&&this.len<M&&!this.isRadial&&!this.logarithmic&&s.startOnTick&&s.endOnTick&&(j=2),!j&&this.alignToOthers()&&(j=Math.ceil(this.len/M)+1),4>j&&(this.finalTickAmt=j,j=5),this.tickAmount=j}adjustTickAmount(){const s=this,{finalTickAmt:M,max:j,min:O,options:Y,tickPositions:o,tickAmount:g,thresholdAlignment:f}=s,B=o&&o.length;var R=u(s.threshold,s.softThreshold?0:null),I=s.tickInterval;let _;if(c(f)&&(_=.5>f?Math.ceil(f*(g-1)):Math.floor(f*(g-1)),Y.reversed&&(_=g-1-_)),s.hasData()&&c(O)&&c(j)){const Z=()=>{s.transA*=(B-1)/(g-1),s.min=Y.startOnTick?o[0]:Math.min(O,o[0]),s.max=Y.endOnTick?o[o.length-1]:Math.max(j,o[o.length-1])};if(c(_)&&c(s.threshold)){for(;o[_]!==R||o.length!==g||o[0]>O||o[o.length-1]<j;){for(o.length=0,o.push(s.threshold);o.length<g;)o[_]===void 0||o[_]>s.threshold?o.unshift(x(o[0]-I)):o.push(x(o[o.length-1]+I));if(I>8*s.tickInterval)break;I*=2}Z()}else if(B<g){for(;o.length<g;)o.length%2||O===R?o.push(x(o[o.length-1]+I)):o.unshift(x(o[0]-I));Z()}if(y(M)){for(I=R=o.length;I--;)(M===3&&I%2===1||2>=M&&0<I&&I<R-1)&&o.splice(I,1);s.finalTickAmt=void 0}}}setScale(){let s=!1,M=!1;this.series.forEach(function(O){s=s||O.isDirtyData||O.isDirty,M=M||O.xAxis&&O.xAxis.isDirty||!1}),this.setAxisSize();const j=this.len!==(this.old&&this.old.len);j||s||M||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(this.stacking&&(this.stacking.resetStacks(),this.stacking.buildStacks()),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),this.isDirty||(this.isDirty=j||this.min!==(this.old&&this.old.min)||this.max!==(this.old&&this.old.max))):this.stacking&&this.stacking.cleanStacks(),s&&this.panningState&&(this.panningState.isDirty=!0),n(this,"afterSetScale")}setExtremes(s,M,j,O,Y){const o=this,g=o.chart;j=u(j,!0),o.series.forEach(function(f){delete f.kdTree}),Y=k(Y,{min:s,max:M}),n(o,"setExtremes",Y,function(){o.userMin=s,o.userMax=M,o.eventArgs=Y,j&&g.redraw(O)})}zoom(s,M){const j=this,O=this.dataMin,Y=this.dataMax,o=this.options,g=Math.min(O,u(o.min,O)),f=Math.max(Y,u(o.max,Y));return s={newMin:s,newMax:M},n(this,"zoom",s,function(B){let R=B.newMin,I=B.newMax;(R!==j.min||I!==j.max)&&(j.allowZoomOutside||(y(O)&&(R<g&&(R=g),R>f&&(R=f)),y(Y)&&(I<g&&(I=g),I>f&&(I=f))),j.displayBtn=typeof R<"u"||typeof I<"u",j.setExtremes(R,I,!1,void 0,{trigger:"zoom"})),B.zoomed=!0}),s.zoomed}setAxisSize(){const s=this.chart;var M=this.options;const j=M.offsets||[0,0,0,0],O=this.horiz,Y=this.width=Math.round(A(u(M.width,s.plotWidth-j[3]+j[1]),s.plotWidth)),o=this.height=Math.round(A(u(M.height,s.plotHeight-j[0]+j[2]),s.plotHeight)),g=this.top=Math.round(A(u(M.top,s.plotTop+j[0]),s.plotHeight,s.plotTop));M=this.left=Math.round(A(u(M.left,s.plotLeft+j[3]),s.plotWidth,s.plotLeft)),this.bottom=s.chartHeight-o-g,this.right=s.chartWidth-Y-M,this.len=Math.max(O?Y:o,0),this.pos=O?M:g}getExtremes(){const s=this.logarithmic;return{min:s?x(s.lin2log(this.min)):this.min,max:s?x(s.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(s){var M=this.logarithmic;const j=M?M.lin2log(this.min):this.min;return M=M?M.lin2log(this.max):this.max,s===null||s===-1/0?s=j:s===1/0?s=M:j>s?s=j:M<s&&(s=M),this.translate(s,0,1,0,1)}autoLabelAlign(s){const M=(u(s,0)-90*this.side+720)%360;return s={align:"center"},n(this,"autoLabelAlign",s,function(j){15<M&&165>M?j.align="right":195<M&&345>M&&(j.align="left")}),s.align}tickSize(s){const M=this.options,j=u(M[s==="tick"?"tickWidth":"minorTickWidth"],s==="tick"&&this.isXAxis&&!this.categories?1:0);let O=M[s==="tick"?"tickLength":"minorTickLength"],Y;return j&&O&&(M[s+"Position"]==="inside"&&(O=-O),Y=[O,j]),s={tickSize:Y},n(this,"afterTickSize",s),s.tickSize}labelMetrics(){const s=this.chart.renderer;var M=this.ticks;return M=M[Object.keys(M)[0]]||{},this.chart.renderer.fontMetrics(M.label||M.movedLabel||s.box)}unsquish(){const s=this.options.labels;var M=this.horiz;const j=this.tickInterval,O=this.len/(((this.categories?1:0)+this.max-this.min)/j),Y=s.rotation,o=.75*this.labelMetrics().h,g=Math.max(this.max-this.min,0),f=function(Z){let J=Z/(O||1);return J=1<J?Math.ceil(J):1,J*j>g&&Z!==1/0&&O!==1/0&&g&&(J=Math.ceil(g/j)),x(J*j)};let B=j,R,I=Number.MAX_VALUE,_;if(M){if(s.staggerLines||(c(Y)?_=[Y]:O<s.autoRotationLimit&&(_=s.autoRotation)),_){let Z;for(const J of _)(J===Y||J&&-90<=J&&90>=J)&&(M=f(Math.abs(o/Math.sin(w*J))),Z=M+Math.abs(J/360),Z<I&&(I=Z,R=J,B=M))}}else B=f(o);return this.autoRotation=_,this.labelRotation=u(R,c(Y)?Y:0),s.step?j:B}getSlotWidth(s){const M=this.chart,j=this.horiz,O=this.options.labels,Y=Math.max(this.tickPositions.length-(this.categories?0:1),1),o=M.margin[3];if(s&&c(s.slotWidth))return s.slotWidth;if(j&&2>O.step)return O.rotation?0:(this.staggerLines||1)*this.len/Y;if(!j){if(s=O.style.width,s!==void 0)return parseInt(String(s),10);if(o)return o-M.spacing[3]}return .33*M.chartWidth}renderUnsquish(){const s=this.chart,M=s.renderer,j=this.tickPositions,O=this.ticks,Y=this.options.labels,o=Y.style,g=this.horiz,f=this.getSlotWidth();var B=Math.max(1,Math.round(f-2*Y.padding));const R={},I=this.labelMetrics(),_=o.textOverflow;let Z,J,ot=0;if(e(Y.rotation)||(R.rotation=Y.rotation||0),j.forEach(function(P){P=O[P],P.movedLabel&&P.replaceMovedLabel(),P&&P.label&&P.label.textPxLength>ot&&(ot=P.label.textPxLength)}),this.maxLabelLength=ot,this.autoRotation)ot>B&&ot>I.h?R.rotation=this.labelRotation:this.labelRotation=0;else if(f&&(Z=B,!_))for(J="clip",B=j.length;!g&&B--;){var ht=j[B];(ht=O[ht].label)&&(ht.styles&&ht.styles.textOverflow==="ellipsis"?ht.css({textOverflow:"clip"}):ht.textPxLength>f&&ht.css({width:f+"px"}),ht.getBBox().height>this.len/j.length-(I.h-I.f)&&(ht.specificTextOverflow="ellipsis"))}R.rotation&&(Z=ot>.5*s.chartHeight?.33*s.chartHeight:ot,_||(J="ellipsis")),(this.labelAlign=Y.align||this.autoLabelAlign(this.labelRotation))&&(R.align=this.labelAlign),j.forEach(function(P){const C=(P=O[P])&&P.label,V=o.width,W={};C&&(C.attr(R),P.shortenLabel?P.shortenLabel():Z&&!V&&o.whiteSpace!=="nowrap"&&(Z<C.textPxLength||C.element.tagName==="SPAN")?(W.width=Z+"px",_||(W.textOverflow=C.specificTextOverflow||J),C.css(W)):C.styles&&C.styles.width&&!W.width&&!V&&C.css({width:null}),delete C.specificTextOverflow,P.rotation=R.rotation)},this),this.tickRotCorr=M.rotCorr(I.b,this.labelRotation||0,this.side!==0)}hasData(){return this.series.some(function(s){return s.hasData()})||this.options.showEmpty&&y(this.min)&&y(this.max)}addTitle(s){const M=this.chart.renderer,j=this.horiz,O=this.opposite,Y=this.options.title,o=this.chart.styledMode;let g;this.axisTitle||((g=Y.textAlign)||(g=(j?{low:"left",middle:"center",high:"right"}:{low:O?"right":"left",middle:"center",high:O?"left":"right"})[Y.align]),this.axisTitle=M.text(Y.text||"",0,0,Y.useHTML).attr({zIndex:7,rotation:Y.rotation,align:g}).addClass("highcharts-axis-title"),o||this.axisTitle.css(t(Y.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),o||Y.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[s?"show":"hide"](s)}generateTick(s){const M=this.ticks;M[s]?M[s].addLabel():M[s]=new st(this,s)}getOffset(){const s=this,{chart:M,horiz:j,options:O,side:Y,ticks:o,tickPositions:g,coll:f,axisParent:B}=s,R=M.renderer,I=M.inverted&&!s.isZAxis?[1,0,3,2][Y]:Y;var _=s.hasData();const Z=O.title;var J=O.labels;const ot=c(O.crossing);var ht=M.axisOffset;const P=M.clipOffset,C=[-1,1,1,-1][Y],V=O.className;let W,$=0,rt;var nt=0;let ut=0;if(s.showAxis=W=_||O.showEmpty,s.staggerLines=s.horiz&&J.staggerLines||void 0,!s.axisGroup){const gt=(dt,pt,xt)=>R.g(dt).attr({zIndex:xt}).addClass(`highcharts-${f.toLowerCase()}${pt} `+(this.isRadial?`highcharts-radial-axis${pt} `:"")+(V||"")).add(B);s.gridGroup=gt("grid","-grid",O.gridZIndex),s.axisGroup=gt("axis","",O.zIndex),s.labelGroup=gt("axis-labels","-labels",J.zIndex)}_||s.isLinked?(g.forEach(function(gt){s.generateTick(gt)}),s.renderUnsquish(),s.reserveSpaceDefault=Y===0||Y===2||{1:"left",3:"right"}[Y]===s.labelAlign,u(J.reserveSpace,ot?!1:null,s.labelAlign==="center"?!0:null,s.reserveSpaceDefault)&&g.forEach(function(gt){ut=Math.max(o[gt].getLabelSize(),ut)}),s.staggerLines&&(ut*=s.staggerLines),s.labelOffset=ut*(s.opposite?-1:1)):h(o,function(gt,dt){gt.destroy(),delete o[dt]}),Z&&Z.text&&Z.enabled!==!1&&(s.addTitle(W),W&&!ot&&Z.reserveSpace!==!1&&(s.titleOffset=$=s.axisTitle.getBBox()[j?"height":"width"],rt=Z.offset,nt=y(rt)?0:u(Z.margin,j?5:10))),s.renderLine(),s.offset=C*u(O.offset,ht[Y]?ht[Y]+(O.margin||0):0),s.tickRotCorr=s.tickRotCorr||{x:0,y:0},_=Y===0?-s.labelMetrics().h:Y===2?s.tickRotCorr.y:0,nt=Math.abs(ut)+nt,ut&&(nt=nt-_+C*(j?u(J.y,s.tickRotCorr.y+C*J.distance):u(J.x,C*J.distance))),s.axisTitleMargin=u(rt,nt),s.getMaxLabelDimensions&&(s.maxLabelDimensions=s.getMaxLabelDimensions(o,g)),f!=="colorAxis"&&(J=this.tickSize("tick"),ht[Y]=Math.max(ht[Y],(s.axisTitleMargin||0)+$+C*s.offset,nt,g&&g.length&&J?J[0]+C*s.offset:0),ht=!s.axisLine||O.offset?0:2*Math.floor(s.axisLine.strokeWidth()/2),P[I]=Math.max(P[I],ht)),n(this,"afterGetOffset")}getLinePath(s){const M=this.chart,j=this.opposite;var O=this.offset;const Y=this.horiz,o=this.left+(j?this.width:0)+O;return O=M.chartHeight-this.bottom-(j?this.height:0)+O,j&&(s*=-1),M.renderer.crispLine([["M",Y?this.left:o,Y?O:this.top],["L",Y?M.chartWidth-this.right:o,Y?O:M.chartHeight-this.bottom]],s)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(s){var M=this.horiz,j=this.left;const O=this.top;var Y=this.len;const o=this.options.title,g=M?j:O,f=this.opposite,B=this.offset,R=o.x,I=o.y,_=this.chart.renderer.fontMetrics(s);return s=s?Math.max(s.getBBox(!1,0).height-_.h-1,0):0,Y={low:g+(M?0:Y),middle:g+Y/2,high:g+(M?Y:0)}[o.align],j=(M?O+this.height:j)+(M?1:-1)*(f?-1:1)*(this.axisTitleMargin||0)+[-s,s,_.f,-s][this.side],M={x:M?Y+R:j+(f?this.width:0)+B+R,y:M?j+I-(f?this.height:0)+B:Y+I},n(this,"afterGetTitlePosition",{titlePosition:M}),M}renderMinorTick(s,M){const j=this.minorTicks;j[s]||(j[s]=new st(this,s,"minor")),M&&j[s].isNew&&j[s].render(null,!0),j[s].render(null,!1,1)}renderTick(s,M,j){const O=this.ticks;(!this.isLinked||s>=this.min&&s<=this.max||this.grid&&this.grid.isColumn)&&(O[s]||(O[s]=new st(this,s)),j&&O[s].isNew&&O[s].render(M,!0,-1),O[s].render(M))}render(){const s=this,M=s.chart,j=s.logarithmic,O=s.options,Y=s.isLinked,o=s.tickPositions,g=s.axisTitle,f=s.ticks,B=s.minorTicks,R=s.alternateBands,I=O.stackLabels,_=O.alternateGridColor;var Z=O.crossing;const J=s.tickmarkOffset,ot=s.axisLine,ht=s.showAxis,P=U(M.renderer.globalAnimation);let C,V;if(s.labelEdge.length=0,s.overlap=!1,[f,B,R].forEach(function(W){h(W,function($){$.isActive=!1})}),c(Z)){const W=this.isXAxis?M.yAxis[0]:M.xAxis[0],$=[1,-1,-1,1][this.side];W&&(Z=W.toPixels(Z,!0),s.horiz&&(Z=W.len-Z),s.offset=$*Z)}if(s.hasData()||Y){const W=s.chart.hasRendered&&s.old&&c(s.old.min);s.minorTickInterval&&!s.categories&&s.getMinorTickPositions().forEach(function($){s.renderMinorTick($,W)}),o.length&&(o.forEach(function($,rt){s.renderTick($,rt,W)}),J&&(s.min===0||s.single)&&(f[-1]||(f[-1]=new st(s,-1,null,!0)),f[-1].render(-1))),_&&o.forEach(function($,rt){V=typeof o[rt+1]<"u"?o[rt+1]+J:s.max-J,rt%2===0&&$<s.max&&V<=s.max+(M.polar?-J:J)&&(R[$]||(R[$]=new it.PlotLineOrBand(s)),C=$+J,R[$].options={from:j?j.lin2log(C):C,to:j?j.lin2log(V):V,color:_,className:"highcharts-alternate-grid"},R[$].render(),R[$].isActive=!0)}),s._addedPlotLB||(s._addedPlotLB=!0,(O.plotLines||[]).concat(O.plotBands||[]).forEach(function($){s.addPlotBandOrLine($)}))}[f,B,R].forEach(function(W){const $=[],rt=P.duration;h(W,function(nt,ut){nt.isActive||(nt.render(ut,!1,0),nt.isActive=!1,$.push(ut))}),G(function(){let nt=$.length;for(;nt--;)W[$[nt]]&&!W[$[nt]].isActive&&(W[$[nt]].destroy(),delete W[$[nt]])},W!==R&&M.hasRendered&&rt?rt:0)}),ot&&(ot[ot.isPlaced?"animate":"attr"]({d:this.getLinePath(ot.strokeWidth())}),ot.isPlaced=!0,ot[ht?"show":"hide"](ht)),g&&ht&&(g[g.isNew?"attr":"animate"](s.getTitlePosition(g)),g.isNew=!1),I&&I.enabled&&s.stacking&&s.stacking.renderStackTotals(),s.old={len:s.len,max:s.max,min:s.min,transA:s.transA,userMax:s.userMax,userMin:s.userMin},s.isDirty=!1,n(this,"afterRender")}redraw(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(s){s.render()})),this.series.forEach(function(s){s.isDirty=!0})}getKeepProps(){return this.keepProps||Q.keepProps}destroy(s){const M=this,j=M.plotLinesAndBands,O=this.eventOptions;if(n(this,"destroy",{keepEvents:s}),s||r(M),[M.ticks,M.minorTicks,M.alternateBands].forEach(function(Y){m(Y)}),j)for(s=j.length;s--;)j[s].destroy();"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar".split(" ").forEach(function(Y){M[Y]&&(M[Y]=M[Y].destroy())});for(const Y in M.plotLinesAndBandsGroups)M.plotLinesAndBandsGroups[Y]=M.plotLinesAndBandsGroups[Y].destroy();h(M,function(Y,o){M.getKeepProps().indexOf(o)===-1&&delete M[o]}),this.eventOptions=O}drawCrosshair(s,M){const j=this.crosshair;var O=u(j&&j.snap,!0);const Y=this.chart;let o,g=this.cross;if(n(this,"drawCrosshair",{e:s,point:M}),s||(s=this.cross&&this.cross.e),j&&(y(M)||!O)!==!1){if(O?y(M)&&(o=u(this.coll!=="colorAxis"?M.crosshairPos:null,this.isXAxis?M.plotX:this.len-M.plotY)):o=s&&(this.horiz?s.chartX-this.pos:this.len-s.chartY+this.pos),y(o)){var f={value:M&&(this.isXAxis?M.x:u(M.stackY,M.y)),translatedValue:o};Y.polar&&k(f,{isCrosshair:!0,chartX:s&&s.chartX,chartY:s&&s.chartY,point:M}),f=this.getPlotLinePath(f)||null}if(!y(f)){this.hideCrosshair();return}O=this.categories&&!this.isRadial,g||(this.cross=g=Y.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(O?"category ":"thin ")+(j.className||"")).attr({zIndex:u(j.zIndex,2)}).add(),Y.styledMode||(g.attr({stroke:j.color||(O?K.parse("#ccd3ff").setOpacity(.25).get():"#cccccc"),"stroke-width":u(j.width,1)}).css({"pointer-events":"none"}),j.dashStyle&&g.attr({dashstyle:j.dashStyle}))),g.show().attr({d:f}),O&&!j.width&&g.attr({"stroke-width":this.transA}),this.cross.e=s}else this.hideCrosshair();n(this,"afterDrawCrosshair",{e:s,point:M})}hideCrosshair(){this.cross&&this.cross.hide(),n(this,"afterHideCrosshair")}hasVerticalPanning(){const s=this.chart.options.chart.panning;return!!(s&&s.enabled&&/y/.test(s.type))}update(s,M){const j=this.chart;s=t(this.userOptions,s),this.destroy(!0),this.init(j,s),j.isDirtyBox=!0,u(M,!0)&&j.redraw()}remove(s){const M=this.chart,j=this.coll,O=this.series;let Y=O.length;for(;Y--;)O[Y]&&O[Y].remove(!1);b(M.axes,this),b(M[j]||[],this),M.orderItems(j),this.destroy(),M.isDirtyBox=!0,u(s,!0)&&M.redraw()}setTitle(s,M){this.update({title:s},M)}setCategories(s,M){this.update({categories:s},M)}}return Q.defaultOptions=N.defaultXAxisOptions,Q.keepProps="coll extKey hcEvents names series userMax userMin".split(" "),Q}),ct(z,"Core/Axis/DateTimeAxis.js",[z["Core/Utilities.js"]],function(F){const{addEvent:N,getMagnitude:K,normalizeTickInterval:et,timeUnits:tt}=F;var it;return function(st){function H(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function U(w){w.userOptions.type!=="datetime"?this.dateTime=void 0:this.dateTime||(this.dateTime=new S(this))}const X=[];st.compose=function(w){return F.pushUnique(X,w)&&(w.keepProps.push("dateTime"),w.prototype.getTimeTicks=H,N(w,"init",U)),w};class S{constructor(L){this.axis=L}normalizeTimeTickInterval(L,E){const d=E||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]];E=d[d.length-1];let x=tt[E[0]],y=E[1],m;for(m=0;m<d.length&&(E=d[m],x=tt[E[0]],y=E[1],!(d[m+1]&&L<=(x*y[y.length-1]+tt[d[m+1][0]])/2));m++);return x===tt.year&&L<5*x&&(y=[1,2,5]),L=et(L/x,y,E[0]==="year"?Math.max(K(L/x),1):1),{unitRange:x,count:L,unitName:E[0]}}getXDateFormat(L,E){const{axis:d}=this,x=d.chart.time;return d.closestPointRange?x.getDateFormat(d.closestPointRange,L,d.options.startOfWeek,E)||x.resolveDTLFormat(E.year).main:x.resolveDTLFormat(E.day).main}}st.Additions=S}(it||(it={})),it}),ct(z,"Core/Axis/LogarithmicAxis.js",[z["Core/Utilities.js"]],function(F){const{addEvent:N,normalizeTickInterval:K,pick:et}=F;var tt;return function(it){function st(S){let w=this.logarithmic;S.userOptions.type!=="logarithmic"?this.logarithmic=void 0:w||(this.logarithmic=new X(this))}function H(){const S=this.logarithmic;S&&(this.lin2val=function(w){return S.lin2log(w)},this.val2lin=function(w){return S.log2lin(w)})}const U=[];it.compose=function(S){return F.pushUnique(U,S)&&(S.keepProps.push("logarithmic"),N(S,"init",st),N(S,"afterInit",H)),S};class X{constructor(w){this.axis=w}getLogTickPositions(w,L,E,d){const x=this.axis;var y=x.len,m=x.options;let b=[];if(d||(this.minorAutoInterval=void 0),.5<=w)w=Math.round(w),b=x.getLinearTickPositions(w,L,E);else if(.08<=w){m=Math.floor(L);let v,k,n,a,p;for(y=.3<w?[1,2,4]:.15<w?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];m<E+1&&!p;m++)for(k=y.length,v=0;v<k&&!p;v++)n=this.log2lin(this.lin2log(m)*y[v]),n>L&&(!d||a<=E)&&typeof a<"u"&&b.push(a),a>E&&(p=!0),a=n}else L=this.lin2log(L),E=this.lin2log(E),w=d?x.getMinorTickInterval():m.tickInterval,w=et(w==="auto"?null:w,this.minorAutoInterval,m.tickPixelInterval/(d?5:1)*(E-L)/((d?y/x.tickPositions.length:y)||1)),w=K(w),b=x.getLinearTickPositions(w,L,E).map(this.log2lin),d||(this.minorAutoInterval=w/5);return d||(x.tickInterval=w),b}lin2log(w){return Math.pow(10,w)}log2lin(w){return Math.log(w)/Math.LN10}}it.Additions=X}(tt||(tt={})),tt}),ct(z,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[z["Core/Utilities.js"]],function(F){const{erase:N,extend:K,isNumber:et}=F;var tt;return function(it){function st(x){return this.addPlotBandOrLine(x,"plotBands")}function H(x,y){const m=this.userOptions;let b=new d(this,x);if(this.visible&&(b=b.render()),b){if(this._addedPlotLB||(this._addedPlotLB=!0,(m.plotLines||[]).concat(m.plotBands||[]).forEach(v=>{this.addPlotBandOrLine(v)})),y){const v=m[y]||[];v.push(x),m[y]=v}this.plotLinesAndBands.push(b)}return b}function U(x){return this.addPlotBandOrLine(x,"plotLines")}function X(x,y,m=this.options){const b=this.getPlotLinePath({value:y,force:!0,acrossPanes:m.acrossPanes}),v=[],k=this.horiz;y=!et(this.min)||!et(this.max)||x<this.min&&y<this.min||x>this.max&&y>this.max,x=this.getPlotLinePath({value:x,force:!0,acrossPanes:m.acrossPanes}),m=1;let n;if(x&&b)for(y&&(n=x.toString()===b.toString(),m=0),y=0;y<x.length;y+=2){const a=x[y],p=x[y+1],l=b[y],c=b[y+1];a[0]!=="M"&&a[0]!=="L"||p[0]!=="M"&&p[0]!=="L"||l[0]!=="M"&&l[0]!=="L"||c[0]!=="M"&&c[0]!=="L"||(k&&l[1]===a[1]?(l[1]+=m,c[1]+=m):k||l[2]!==a[2]||(l[2]+=m,c[2]+=m),v.push(["M",a[1],a[2]],["L",p[1],p[2]],["L",c[1],c[2]],["L",l[1],l[2]],["Z"])),v.isFlat=n}return v}function S(x){this.removePlotBandOrLine(x)}function w(x){const y=this.plotLinesAndBands,m=this.options,b=this.userOptions;if(y){let v=y.length;for(;v--;)y[v].id===x&&y[v].destroy();[m.plotLines||[],b.plotLines||[],m.plotBands||[],b.plotBands||[]].forEach(function(k){for(v=k.length;v--;)(k[v]||{}).id===x&&N(k,k[v])})}}function L(x){this.removePlotBandOrLine(x)}const E=[];let d;it.compose=function(x,y){return d||(d=x),F.pushUnique(E,y)&&K(y.prototype,{addPlotBand:st,addPlotLine:U,addPlotBandOrLine:H,getPlotBandPath:X,removePlotBand:S,removePlotLine:L,removePlotBandOrLine:w}),y}}(tt||(tt={})),tt}),ct(z,"Core/Axis/PlotLineOrBand/PlotLineOrBand.js",[z["Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js"],z["Core/Utilities.js"]],function(F,N){const{arrayMax:K,arrayMin:et,defined:tt,destroyObjectProperties:it,erase:st,fireEvent:H,merge:U,objectEach:X,pick:S}=N;class w{static compose(E){return F.compose(w,E)}constructor(E,d){this.axis=E,d&&(this.options=d,this.id=d.id)}render(){H(this,"render");const E=this,d=E.axis,x=d.horiz;var y=d.logarithmic;const m=E.options,b=m.color,v=S(m.zIndex,0),k=m.events,n={},a=d.chart.renderer;let p=m.label,l=E.label,c=m.to,e=m.from,t=m.value,i=E.svgElem;var h=[];const u=tt(e)&&tt(c);h=tt(t);const A=!i,r={class:"highcharts-plot-"+(u?"band ":"line ")+(m.className||"")};let T=u?"bands":"lines";if(y&&(e=y.log2lin(e),c=y.log2lin(c),t=y.log2lin(t)),d.chart.styledMode||(h?(r.stroke=b||"#999999",r["stroke-width"]=S(m.width,1),m.dashStyle&&(r.dashstyle=m.dashStyle)):u&&(r.fill=b||"#e6e9ff",m.borderWidth&&(r.stroke=m.borderColor,r["stroke-width"]=m.borderWidth))),n.zIndex=v,T+="-"+v,(y=d.plotLinesAndBandsGroups[T])||(d.plotLinesAndBandsGroups[T]=y=a.g("plot-"+T).attr(n).add()),A&&(E.svgElem=i=a.path().attr(r).add(y)),h)h=d.getPlotLinePath({value:t,lineWidth:i.strokeWidth(),acrossPanes:m.acrossPanes});else if(u)h=d.getPlotBandPath(e,c,m);else return;return!E.eventsAdded&&k&&(X(k,function(G,q){i.on(q,function(Q){k[q].apply(E,[Q])})}),E.eventsAdded=!0),(A||!i.d)&&h&&h.length?i.attr({d:h}):i&&(h?(i.show(),i.animate({d:h})):i.d&&(i.hide(),l&&(E.label=l=l.destroy()))),p&&(tt(p.text)||tt(p.formatter))&&h&&h.length&&0<d.width&&0<d.height&&!h.isFlat?(p=U({align:x&&u&&"center",x:x?!u&&4:10,verticalAlign:!x&&u&&"middle",y:x?u?16:10:u?6:-4,rotation:x&&!u&&90},p),this.renderLabel(p,h,u,v)):l&&l.hide(),E}renderLabel(E,d,x,y){const m=this.axis;var b=m.chart.renderer;let v=this.label;v||(this.label=v=b.text(this.getLabelText(E),0,0,E.useHTML).attr({align:E.textAlign||E.align,rotation:E.rotation,class:"highcharts-plot-"+(x?"band":"line")+"-label "+(E.className||""),zIndex:y}).add(),m.chart.styledMode||v.css(U({fontSize:"0.8em",textOverflow:"ellipsis"},E.style))),y=d.xBounds||[d[0][1],d[1][1],x?d[2][1]:d[0][1]],d=d.yBounds||[d[0][2],d[1][2],x?d[2][2]:d[0][2]],x=et(y),b=et(d),v.align(E,!1,{x,y:b,width:K(y)-x,height:K(d)-b}),v.alignValue&&v.alignValue!=="left"||(E=E.clip?m.width:m.chart.chartWidth,v.css({width:(v.rotation===90?m.height-(v.alignAttr.y-m.top):E-(v.alignAttr.x-m.left))+"px"})),v.show(!0)}getLabelText(E){return tt(E.formatter)?E.formatter.call(this):E.text}destroy(){st(this.axis.plotLinesAndBands,this),delete this.axis,it(this)}}return w}),ct(z,"Core/Tooltip.js",[z["Core/Templating.js"],z["Core/Globals.js"],z["Core/Renderer/RendererUtilities.js"],z["Core/Renderer/RendererRegistry.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt){const{format:it}=F,{doc:st,isSafari:H}=N,{distribute:U}=K,{addEvent:X,clamp:S,css:w,discardElement:L,extend:E,fireEvent:d,isArray:x,isNumber:y,isString:m,merge:b,pick:v,splat:k,syncTimeout:n}=tt;class a{constructor(l,c){this.allowShared=!0,this.container=void 0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=l,this.init(l,c)}bodyFormatter(l){return l.map(function(c){const e=c.series.tooltipOptions;return(e[(c.point.formatPrefix||"point")+"Formatter"]||c.point.tooltipFormatter).call(c.point,e[(c.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(l){this.chart.series.forEach(function(c){const e=c&&c.tt;e&&(!e.isActive||l?c.tt=e.destroy():e.isActive=!1)})}defaultFormatter(l){const c=this.points||k(this);let e;return e=[l.tooltipFooterHeaderFormatter(c[0])],e=e.concat(l.bodyFormatter(c)),e.push(l.tooltipFooterHeaderFormatter(c[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),L(this.container)),tt.clearTimeout(this.hideTimer),tt.clearTimeout(this.tooltipTimeout)}getAnchor(l,c){var e=this.chart;const t=e.pointer,i=e.inverted,h=e.plotTop;if(e=e.plotLeft,l=k(l),l[0].series&&l[0].series.yAxis&&!l[0].series.yAxis.options.reversedStacks&&(l=l.slice().reverse()),this.followPointer&&c)typeof c.chartX>"u"&&(c=t.normalize(c)),l=[c.chartX-e,c.chartY-h];else if(l[0].tooltipPos)l=l[0].tooltipPos;else{let u=0,A=0;l.forEach(function(r){(r=r.pos(!0))&&(u+=r[0],A+=r[1])}),u/=l.length,A/=l.length,this.shared&&1<l.length&&c&&(i?u=c.chartX:A=c.chartY),l=[u-e,A-h]}return l.map(Math.round)}getClassName(l,c,e){const t=l.series,i=t.options;return[this.options.className,"highcharts-label",e&&"highcharts-tooltip-header",c?"highcharts-tooltip-box":"highcharts-tooltip",!e&&"highcharts-color-"+v(l.colorIndex,t.colorIndex),i&&i.className].filter(m).join(" ")}getLabel(){const l=this,c=this.chart.styledMode,e=this.options,t=this.split&&this.allowShared,i=e.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none");let h,u=this.chart.renderer;if(this.label){var A=!this.label.hasClass("highcharts-label");(!t&&A||t&&!A)&&this.destroy()}if(!this.label){if(this.outside){A=this.chart.options.chart.style;const r=et.getRendererType();this.container=h=N.doc.createElement("div"),h.className="highcharts-tooltip-container",w(h,{position:"absolute",top:"1px",pointerEvents:i,zIndex:Math.max(this.options.style.zIndex||0,(A&&A.zIndex||0)+3)}),N.doc.body.appendChild(h),this.renderer=u=new r(h,0,0,A,void 0,void 0,u.styledMode)}if(t?this.label=u.g("tooltip"):(this.label=u.label("",0,0,e.shape,void 0,void 0,e.useHTML,void 0,"tooltip").attr({padding:e.padding,r:e.borderRadius}),c||this.label.attr({fill:e.backgroundColor,"stroke-width":e.borderWidth||0}).css(e.style).css({pointerEvents:i})),l.outside){const r=this.label,{xSetter:T,ySetter:G}=r;r.xSetter=function(q){T.call(r,l.distance),h.style.left=q+"px"},r.ySetter=function(q){G.call(r,l.distance),h.style.top=q+"px"}}this.label.attr({zIndex:8}).shadow(e.shadow).add()}return this.label}getPlayingField(){const{body:l,documentElement:c}=st,{chart:e,distance:t,outside:i}=this;return{width:i?Math.max(l.scrollWidth,c.scrollWidth,l.offsetWidth,c.offsetWidth,c.clientWidth)-2*t:e.chartWidth,height:i?Math.max(l.scrollHeight,c.scrollHeight,l.offsetHeight,c.offsetHeight,c.clientHeight):e.chartHeight}}getPosition(l,c,e){const t=this.chart,i=this.distance,h={},u=t.inverted&&e.h||0,A=this.outside;var r=this.getPlayingField();const T=r.width,G=r.height,q=t.pointer.getChartPosition();r=g=>{const f=g==="x";return[g,f?T:G,f?l:c].concat(A?[f?l*q.scaleX:c*q.scaleY,f?q.left-i+(e.plotX+t.plotLeft)*q.scaleX:q.top-i+(e.plotY+t.plotTop)*q.scaleY,0,f?T:G]:[f?l:c,f?e.plotX+t.plotLeft:e.plotY+t.plotTop,f?t.plotLeft:t.plotTop,f?t.plotLeft+t.plotWidth:t.plotTop+t.plotHeight])};let Q=r("y"),D=r("x"),s;r=!!e.negative,!t.polar&&t.hoverSeries&&t.hoverSeries.yAxis&&t.hoverSeries.yAxis.reversed&&(r=!r);const M=!this.followPointer&&v(e.ttBelow,!t.inverted===r),j=function(g,f,B,R,I,_,Z){const J=A?g==="y"?i*q.scaleY:i*q.scaleX:i,ot=(B-R)/2,ht=R<I-i,P=I+i+R<f,C=I-J-B+ot;if(I=I+J-ot,M&&P)h[g]=I;else if(!M&&ht)h[g]=C;else if(ht)h[g]=Math.min(Z-R,0>C-u?C:C-u);else if(P)h[g]=Math.max(_,I+u+B>f?I:I+u);else return!1},O=function(g,f,B,R,I){let _;return I<i||I>f-i?_=!1:h[g]=I<B/2?1:I>f-R/2?f-R-2:I-B/2,_},Y=function(g){const f=Q;Q=D,D=f,s=g},o=function(){j.apply(0,Q)!==!1?O.apply(0,D)!==!1||s||(Y(!0),o()):s?h.x=h.y=0:(Y(!0),o())};return(t.inverted||1<this.len)&&Y(),o(),h}hide(l){const c=this;tt.clearTimeout(this.hideTimer),l=v(l,this.options.hideDelay),this.isHidden||(this.hideTimer=n(function(){c.getLabel().fadeOut(l&&void 0),c.isHidden=!0},l))}init(l,c){this.chart=l,this.options=c,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=c.split&&!l.inverted&&!l.polar,this.shared=c.shared||this.split,this.outside=v(c.outside,!(!l.scrollablePixelsX&&!l.scrollablePixelsY))}shouldStickOnContact(l){return!(this.followPointer||!this.options.stickOnContact||l&&!this.chart.pointer.inClass(l.target,"highcharts-tooltip"))}move(l,c,e,t){const i=this,h=i.now,u=i.options.animation!==!1&&!i.isHidden&&(1<Math.abs(l-h.x)||1<Math.abs(c-h.y)),A=i.followPointer||1<i.len;E(h,{x:u?(2*h.x+l)/3:l,y:u?(h.y+c)/2:c,anchorX:A?void 0:u?(2*h.anchorX+e)/3:e,anchorY:A?void 0:u?(h.anchorY+t)/2:t}),i.getLabel().attr(h),i.drawTracker(),u&&(tt.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){i&&i.move(l,c,e,t)},32))}refresh(l,c){const e=this.chart,t=this.options,i=e.pointer,h=k(l),u=h[0],A=[];var r=t.format,T=t.formatter||this.defaultFormatter;const G=this.shared,q=e.styledMode;let Q={};if(t.enabled&&u.series){tt.clearTimeout(this.hideTimer),this.allowShared=!(!x(l)&&l.series&&l.series.noSharedTooltip),this.followPointer=!this.split&&u.series.tooltipOptions.followPointer,l=this.getAnchor(l,c);var D=l[0],s=l[1];if(G&&this.allowShared?(i.applyInactiveState(h),h.forEach(function(M){M.setState("hover"),A.push(M.getLabelConfig())}),Q=u.getLabelConfig(),Q.points=A):Q=u.getLabelConfig(),this.len=A.length,r=m(r)?it(r,Q,e):T.call(Q,this),T=u.series,this.distance=v(T.tooltipOptions.distance,16),r===!1)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(r,h);else{let M=D,j=s;if(c&&i.isDirectTouch&&(M=c.chartX-e.plotLeft,j=c.chartY-e.plotTop),e.polar||T.options.clip===!1||h.some(O=>i.isDirectTouch||O.series.shouldShowTooltip(M,j)))c=this.getLabel(),t.style.width&&!q||c.css({width:(this.outside?this.getPlayingField():e.spacingBox).width+"px"}),c.attr({text:r&&r.join?r.join(""):r}),c.addClass(this.getClassName(u),!0),q||c.attr({stroke:t.borderColor||u.color||T.color||"#666666"}),this.updatePosition({plotX:D,plotY:s,negative:u.negative,ttBelow:u.ttBelow,h:l[2]||0});else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}d(this,"refresh")}}renderSplit(l,c){function e(W,$,rt,nt,ut=!0){return rt?($=B?0:J,W=S(W-nt/2,o.left,o.right-nt-(t.outside?R:0))):($-=_,W=ut?W-nt-j:W+j,W=S(W,ut?W:o.left,o.right)),{x:W,y:$}}const t=this,{chart:i,chart:{chartWidth:h,chartHeight:u,plotHeight:A,plotLeft:r,plotTop:T,pointer:G,scrollablePixelsY:q=0,scrollablePixelsX:Q,scrollingContainer:{scrollLeft:D,scrollTop:s}={scrollLeft:0,scrollTop:0},styledMode:M},distance:j,options:O,options:{positioner:Y}}=t,o=t.outside&&typeof Q!="number"?st.documentElement.getBoundingClientRect():{left:D,right:D+h,top:s,bottom:s+u},g=t.getLabel(),f=this.renderer||i.renderer,B=!(!i.xAxis[0]||!i.xAxis[0].opposite),{left:R,top:I}=G.getChartPosition();let _=T+s,Z=0,J=A-q;m(l)&&(l=[!1,l]),l=l.slice(0,c.length+1).reduce(function(W,$,rt){if($!==!1&&$!==""){rt=c[rt-1]||{isHeader:!0,plotX:c[0].plotX,plotY:A,series:{}};const xt=rt.isHeader;var nt=xt?t:rt.series,ut;{var gt=rt;$=$.toString();var dt=nt.tt;const{isHeader:yt,series:Ct}=gt;dt||(dt={padding:O.padding,r:O.borderRadius},M||(dt.fill=O.backgroundColor,dt["stroke-width"]=(ut=O.borderWidth)!==null&&ut!==void 0?ut:1),dt=f.label("",0,0,O[yt?"headerShape":"shape"],void 0,void 0,O.useHTML).addClass(t.getClassName(gt,!0,yt)).attr(dt).add(g)),dt.isActive=!0,dt.attr({text:$}),M||dt.css(O.style).attr({stroke:O.borderColor||gt.color||Ct.color||"#333333"}),ut=dt}ut=nt.tt=ut,gt=ut.getBBox(),nt=gt.width+ut.strokeWidth(),xt&&(Z=gt.height,J+=Z,B&&(_-=Z));{const{isHeader:yt,plotX:Ct=0,plotY:kt=0,series:bt}=rt;if(yt){$=r+Ct;var pt=T+A/2}else{const{xAxis:Et,yAxis:St}=bt;$=Et.pos+S(Ct,-j,Et.len+j),bt.shouldShowTooltip(0,St.pos-T+kt,{ignoreX:!0})&&(pt=St.pos+kt)}$=S($,o.left-j,o.right+j),pt={anchorX:$,anchorY:pt}}const{anchorX:ft,anchorY:mt}=pt;typeof mt=="number"?(pt=gt.height+1,gt=Y?Y.call(t,nt,pt,rt):e(ft,mt,xt,nt),W.push({align:Y?0:void 0,anchorX:ft,anchorY:mt,boxWidth:nt,point:rt,rank:v(gt.rank,xt?1:0),size:pt,target:gt.y,tt:ut,x:gt.x})):ut.isActive=!1}return W},[]),!Y&&l.some(W=>{var{outside:$}=t;return $=($?R:0)+W.anchorX,$<o.left&&$+W.boxWidth<o.right?!0:$<R-o.left+W.boxWidth&&o.right-$>$})&&(l=l.map(W=>{const{x:$,y:rt}=e(W.anchorX,W.anchorY,W.point.isHeader,W.boxWidth,!1);return E(W,{target:rt,x:$})})),t.cleanSplit(),U(l,J);var ot=R,ht=R;l.forEach(function(W){const{x:$,boxWidth:rt,isHeader:nt}=W;nt||(t.outside&&R+$<ot&&(ot=R+$),!nt&&t.outside&&ot+rt>ht&&(ht=R+$))}),l.forEach(function(W){const{x:$,anchorX:rt,anchorY:nt,pos:ut,point:{isHeader:gt}}=W,dt={visibility:typeof ut>"u"?"hidden":"inherit",x:$,y:(ut||0)+_,anchorX:rt,anchorY:nt};if(t.outside&&$<rt){const pt=R-ot;0<pt&&(gt||(dt.x=$+pt,dt.anchorX=rt+pt),gt&&(dt.x=(ht-ot)/2,dt.anchorX=rt+pt))}W.tt.attr(dt)});const{container:P,outside:C,renderer:V}=t;if(C&&P&&V){const{width:W,height:$,x:rt,y:nt}=g.getBBox();V.setSize(W+rt,$+nt,!1),P.style.left=ot+"px",P.style.top=I+"px"}H&&g.attr({opacity:g.opacity===1?.999:1})}drawTracker(){if(this.shouldStickOnContact()){var l=this.chart,c=this.label,e=this.shared?l.hoverPoints:l.hoverPoint;if(c&&e){var t={x:0,y:0,width:0,height:0};e=this.getAnchor(e);var i=c.getBBox();e[0]+=l.plotLeft-c.translateX,e[1]+=l.plotTop-c.translateY,t.x=Math.min(0,e[0]),t.y=Math.min(0,e[1]),t.width=0>e[0]?Math.max(Math.abs(e[0]),i.width-e[0]):Math.max(Math.abs(e[0]),i.width),t.height=0>e[1]?Math.max(Math.abs(e[1]),i.height-Math.abs(e[1])):Math.max(Math.abs(e[1]),i.height),this.tracker?this.tracker.attr(t):(this.tracker=c.renderer.rect(t).addClass("highcharts-tracker").add(c),l.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}}else this.tracker&&(this.tracker=this.tracker.destroy())}styledModeFormat(l){return l.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(l,c){const e=l.series,t=e.tooltipOptions;var i=e.xAxis;const h=i&&i.dateTime;i={isFooter:c,labelConfig:l};let u=t.xDateFormat,A=t[c?"footerFormat":"headerFormat"];return d(this,"headerFormatter",i,function(r){h&&!u&&y(l.key)&&(u=h.getXDateFormat(l.key,t.dateTimeLabelFormats)),h&&u&&(l.point&&l.point.tooltipDateKeys||["key"]).forEach(function(T){A=A.replace("{point."+T+"}","{point."+T+":"+u+"}")}),e.chart.styledMode&&(A=this.styledModeFormat(A)),r.text=it(A,{point:l,series:e},this.chart)}),i.text}update(l){this.destroy(),this.init(this.chart,b(!0,this.options,l))}updatePosition(l){const{chart:c,distance:e,options:t}=this;var i=c.pointer;const h=this.getLabel(),{left:u,top:A,scaleX:r,scaleY:T}=i.getChartPosition();i=(t.positioner||this.getPosition).call(this,h.width,h.height,l);let G=(l.plotX||0)+c.plotLeft;l=(l.plotY||0)+c.plotTop;let q;this.outside&&(t.positioner&&(i.x+=u-e,i.y+=A-e),q=(t.borderWidth||0)+2*e,this.renderer.setSize(h.width+q,h.height+q,!1),(r!==1||T!==1)&&(w(this.container,{transform:`scale(${r}, ${T})`}),G*=r,l*=T),G+=u-i.x,l+=A-i.y),this.move(Math.round(i.x),Math.round(i.y||0),G,l)}}return function(p){const l=[];p.compose=function(c){tt.pushUnique(l,c)&&X(c,"afterInit",function(){const e=this.chart;e.options.tooltip&&(e.tooltip=new p(e,e.options.tooltip))})}}(a||(a={})),a}),ct(z,"Core/Series/Point.js",[z["Core/Renderer/HTML/AST.js"],z["Core/Animation/AnimationUtilities.js"],z["Core/Defaults.js"],z["Core/Templating.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt){const{animObject:it}=N,{defaultOptions:st}=K,{format:H}=et,{addEvent:U,defined:X,erase:S,extend:w,fireEvent:L,getNestedProperty:E,isArray:d,isFunction:x,isNumber:y,isObject:m,merge:b,objectEach:v,pick:k,syncTimeout:n,removeEvent:a,uniqueKey:p}=tt;class l{constructor(){this.category=void 0,this.destroyed=!1,this.formatPrefix="point",this.id=void 0,this.isNull=!1,this.percentage=this.options=this.name=void 0,this.selected=!1,this.total=this.shapeArgs=this.series=void 0,this.visible=!0,this.x=void 0}animateBeforeDestroy(){const e=this,t={x:e.startXPos,opacity:0},i=e.getGraphicalProps();i.singular.forEach(function(h){e[h]=e[h].animate(h==="dataLabel"?{x:e[h].startXPos,y:e[h].startYPos,opacity:0}:t)}),i.plural.forEach(function(h){e[h].forEach(function(u){u.element&&u.animate(w({x:e.startXPos},u.startYPos?{x:u.startXPos,y:u.startYPos}:{}))})})}applyOptions(e,t){const i=this.series,h=i.options.pointValKey||i.pointValKey;return e=l.prototype.optionsToObject.call(this,e),w(this,e),this.options=this.options?w(this.options,e):e,e.group&&delete this.group,e.dataLabels&&delete this.dataLabels,h&&(this.y=l.prototype.getNestedProperty.call(this,h)),this.formatPrefix=(this.isNull=this.isValid&&!this.isValid())?"null":"point",this.selected&&(this.state="select"),"name"in this&&typeof t>"u"&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),typeof this.x>"u"&&i?this.x=typeof t>"u"?i.autoIncrement():t:y(e.x)&&i.options.relativeXValue&&(this.x=i.autoIncrement(e.x)),this}destroy(){if(!this.destroyed){const t=this;var e=t.series;const i=e.chart;e=e.options.dataSorting;const h=i.hoverPoints,u=it(t.series.chart.renderer.globalAnimation),A=()=>{(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(a(t),t.destroyElements());for(const r in t)delete t[r]};t.legendItem&&i.legend.destroyItem(t),h&&(t.setState(),S(h,t),h.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),e&&e.enabled?(this.animateBeforeDestroy(),n(A,u.duration)):A(),i.pointCount--}this.destroyed=!0}destroyElements(e){const t=this;e=t.getGraphicalProps(e),e.singular.forEach(function(i){t[i]=t[i].destroy()}),e.plural.forEach(function(i){t[i].forEach(function(h){h&&h.element&&h.destroy()}),delete t[i]})}firePointEvent(e,t,i){const h=this,u=this.series.options;(u.point.events[e]||h.options&&h.options.events&&h.options.events[e])&&h.importEvents(),e==="click"&&u.allowPointSelect&&(i=function(A){h.select&&h.select(null,A.ctrlKey||A.metaKey||A.shiftKey)}),L(h,e,t,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(typeof this.colorIndex<"u"?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(e){const t=this,i=[],h={singular:[],plural:[]};let u,A;for(e=e||{graphic:1,dataLabel:1},e.graphic&&i.push("graphic"),e.dataLabel&&i.push("dataLabel","dataLabelPath","dataLabelUpper","connector"),A=i.length;A--;)u=i[A],t[u]&&h.singular.push(u);return["graphic","dataLabel","connector"].forEach(function(r){const T=r+"s";e[r]&&t[T]&&h.plural.push(T)}),h}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(e){if(e)return e.indexOf("custom.")===0?E(e,this.options):this[e]}getZone(){var e=this.series;const t=e.zones;e=e.zoneAxis||"y";let i,h=0;for(i=t[h];this[e]>=i.value;)i=t[++h];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=i&&i.color&&!this.options.color?i.color:this.nonZonedColor,i}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}init(e,t,i){return this.series=e,this.applyOptions(t,i),this.id=X(this.id)?this.id:p(),this.resolveColor(),e.chart.pointCount++,L(this,"afterInit"),this}isValid(){return this.x!==null&&y(this.y)}optionsToObject(e){var t=this.series;const i=t.options.keys,h=i||t.pointArrayMap||["y"],u=h.length;let A={},r=0,T=0;if(y(e)||e===null)A[h[0]]=e;else if(d(e))for(!i&&e.length>u&&(t=typeof e[0],t==="string"?A.name=e[0]:t==="number"&&(A.x=e[0]),r++);T<u;)i&&typeof e[r]>"u"||(0<h[T].indexOf(".")?l.prototype.setNestedProperty(A,e[r],h[T]):A[h[T]]=e[r]),r++,T++;else typeof e=="object"&&(A=e,e.dataLabels&&(t._hasPointLabels=!0),e.marker&&(t._hasPointMarkers=!0));return A}pos(e,t=this.plotY){if(!this.destroyed){const{plotX:i,series:h}=this,{chart:u,xAxis:A,yAxis:r}=h;let T=0,G=0;if(y(i)&&y(t))return e&&(T=A?A.pos:u.plotLeft,G=r?r.pos:u.plotTop),u.inverted&&A&&r?[r.len-t+G,A.len-i+T]:[i+T,t+G]}}resolveColor(){const e=this.series;var t=e.chart.styledMode;let i;var h=e.chart.options.chart.colorCount;delete this.nonZonedColor,e.options.colorByPoint?(t||(h=e.options.colors||e.chart.options.colors,i=h[e.colorCounter],h=h.length),t=e.colorCounter,e.colorCounter++,e.colorCounter===h&&(e.colorCounter=0)):(t||(i=e.color),t=e.colorIndex),this.colorIndex=k(this.options.colorIndex,t),this.color=k(this.options.color,i)}setNestedProperty(e,t,i){return i.split(".").reduce(function(h,u,A,r){return h[u]=r.length-1===A?t:m(h[u],!0)?h[u]:{},h[u]},e),e}shouldDraw(){return!this.isNull}tooltipFormatter(e){const t=this.series,i=t.tooltipOptions,h=k(i.valueDecimals,""),u=i.valuePrefix||"",A=i.valueSuffix||"";return t.chart.styledMode&&(e=t.chart.tooltip.styledModeFormat(e)),(t.pointArrayMap||["y"]).forEach(function(r){r="{point."+r,(u||A)&&(e=e.replace(RegExp(r+"}","g"),u+r+"}"+A)),e=e.replace(RegExp(r+"}","g"),r+":,."+h+"f}")}),H(e,{point:this,series:this.series},t.chart)}update(e,t,i,h){function u(){A.applyOptions(e);var D=T&&A.hasMockGraphic;D=A.y===null?!D:D,T&&D&&(A.graphic=T.destroy(),delete A.hasMockGraphic),m(e,!0)&&(T&&T.element&&e&&e.marker&&typeof e.marker.symbol<"u"&&(A.graphic=T.destroy()),e&&e.dataLabels&&A.dataLabel&&(A.dataLabel=A.dataLabel.destroy()),A.connector&&(A.connector=A.connector.destroy())),Q=A.index,r.updateParallelArrays(A,Q),q.data[Q]=m(q.data[Q],!0)||m(e,!0)?A.options:k(e,q.data[Q]),r.isDirty=r.isDirtyData=!0,!r.fixedBox&&r.hasCartesianSeries&&(G.isDirtyBox=!0),q.legendType==="point"&&(G.isDirtyLegend=!0),t&&G.redraw(i)}const A=this,r=A.series,T=A.graphic,G=r.chart,q=r.options;let Q;t=k(t,!0),h===!1?u():A.firePointEvent("update",{options:e},u)}remove(e,t){this.series.removePoint(this.series.data.indexOf(this),e,t)}select(e,t){const i=this,h=i.series,u=h.chart;this.selectedStaging=e=k(e,!i.selected),i.firePointEvent(e?"select":"unselect",{accumulate:t},function(){i.selected=i.options.selected=e,h.options.data[h.data.indexOf(i)]=i.options,i.setState(e&&"select"),t||u.getSelectedPoints().forEach(function(A){const r=A.series;A.selected&&A!==i&&(A.selected=A.options.selected=!1,r.options.data[r.data.indexOf(A)]=A.options,A.setState(u.hoverPoints&&r.options.inactiveOtherPoints?"inactive":""),A.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(e){const t=this.series.chart,i=t.pointer;e=e?i.normalize(e):i.getChartCoordinatesFromPoint(this,t.inverted),i.runPointActions(e,this)}onMouseOut(){const e=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(e.hoverPoints||[]).forEach(function(t){t.setState()}),e.hoverPoints=e.hoverPoint=null}importEvents(){if(!this.hasImportedEvents){const e=this,t=b(e.series.options.point,e.options).events;e.events=t,v(t,function(i,h){x(i)&&U(e,h,i)}),this.hasImportedEvents=!0}}setState(e,t){const i=this.series;var h=this.state,u=i.options.states[e||"normal"]||{},A=st.plotOptions[i.type].marker&&i.options.marker;const r=A&&A.enabled===!1,T=A&&A.states&&A.states[e||"normal"]||{},G=T.enabled===!1,q=this.marker||{},Q=i.chart,D=A&&i.markerAttribs;let s=i.halo;var M;let j;var O=i.stateMarkerGraphic;if(e=e||"",!(e===this.state&&!t||this.selected&&e!=="select"||u.enabled===!1||e&&(G||r&&T.enabled===!1)||e&&q.states&&q.states[e]&&q.states[e].enabled===!1)){if(this.state=e,D&&(M=i.markerAttribs(this,e)),this.graphic&&!this.hasMockGraphic){if(h&&this.graphic.removeClass("highcharts-point-"+h),e&&this.graphic.addClass("highcharts-point-"+e),!Q.styledMode){h=i.pointAttribs(this,e),j=k(Q.options.chart.animation,u.animation);const Y=h.opacity;i.options.inactiveOtherPoints&&y(Y)&&((this.dataLabels||[]).forEach(function(o){o&&!o.hasClass("highcharts-data-label-hidden")&&o.animate({opacity:Y},j)}),this.connector&&this.connector.animate({opacity:Y},j)),this.graphic.animate(h,j)}M&&this.graphic.animate(M,k(Q.options.chart.animation,T.animation,A.animation)),O&&O.hide()}else e&&T&&(A=q.symbol||i.symbol,O&&O.currentSymbol!==A&&(O=O.destroy()),M&&(O?O[t?"animate":"attr"]({x:M.x,y:M.y}):A&&(i.stateMarkerGraphic=O=Q.renderer.symbol(A,M.x,M.y,M.width,M.height).add(i.markerGroup),O.currentSymbol=A)),!Q.styledMode&&O&&this.state!=="inactive"&&O.attr(i.pointAttribs(this,e))),O&&(O[e&&this.isInside?"show":"hide"](),O.element.point=this,O.addClass(this.getClassName(),!0));u=u.halo,M=(O=this.graphic||O)&&O.visibility||"inherit",u&&u.size&&O&&M!=="hidden"&&!this.isCluster?(s||(i.halo=s=Q.renderer.path().add(O.parentGroup)),s.show()[t?"animate":"attr"]({d:this.haloPath(u.size)}),s.attr({class:"highcharts-halo highcharts-color-"+k(this.colorIndex,i.colorIndex)+(this.className?" "+this.className:""),visibility:M,zIndex:-1}),s.point=this,Q.styledMode||s.attr(w({fill:this.color||i.color,"fill-opacity":u.opacity},F.filterUserAttributes(u.attributes||{})))):s&&s.point&&s.point.haloPath&&s.animate({d:s.point.haloPath(0)},null,s.hide),L(this,"afterSetState",{state:e})}}haloPath(e){const t=this.pos();return t?this.series.chart.renderer.symbols.circle(Math.floor(t[0])-e,t[1]-e,2*e,2*e):[]}}return l}),ct(z,"Core/Pointer.js",[z["Core/Color/Color.js"],z["Core/Globals.js"],z["Core/Utilities.js"]],function(F,N,K){const{parse:et}=F,{charts:tt,noop:it}=N,{addEvent:st,attr:H,css:U,defined:X,extend:S,find:w,fireEvent:L,isNumber:E,isObject:d,objectEach:x,offset:y,pick:m,splat:b}=K;class v{constructor(n,a){this.lastValidTouch={},this.pinchDown=[],this.runChartClick=!1,this.eventsToUnbind=[],this.chart=n,this.hasDragged=!1,this.options=a,this.init(n,a)}applyInactiveState(n){let a=[],p;(n||[]).forEach(function(l){p=l.series,a.push(p),p.linkedParent&&a.push(p.linkedParent),p.linkedSeries&&(a=a.concat(p.linkedSeries)),p.navigatorSeries&&a.push(p.navigatorSeries)}),this.chart.series.forEach(function(l){a.indexOf(l)===-1?l.setState("inactive",!0):l.options.inactiveOtherPoints&&l.setAllPointsToState("inactive")})}destroy(){const n=this;this.eventsToUnbind.forEach(a=>a()),this.eventsToUnbind=[],N.chartCount||(v.unbindDocumentMouseUp&&(v.unbindDocumentMouseUp=v.unbindDocumentMouseUp()),v.unbindDocumentTouchEnd&&(v.unbindDocumentTouchEnd=v.unbindDocumentTouchEnd())),clearInterval(n.tooltipTimeout),x(n,function(a,p){n[p]=void 0})}getSelectionMarkerAttrs(n,a){const p={args:{chartX:n,chartY:a},attrs:{},shapeType:"rect"};return L(this,"getSelectionMarkerAttrs",p,l=>{const{chart:c,mouseDownX:e=0,mouseDownY:t=0,zoomHor:i,zoomVert:h}=this;l=l.attrs;let u;l.x=c.plotLeft,l.y=c.plotTop,l.width=i?1:c.plotWidth,l.height=h?1:c.plotHeight,i&&(u=n-e,l.width=Math.abs(u),l.x=(0<u?0:u)+e),h&&(u=a-t,l.height=Math.abs(u),l.y=(0<u?0:u)+t)}),p}drag(n){const a=this.chart,p=a.options.chart;var l=a.plotLeft;const c=a.plotTop,e=a.plotWidth,t=a.plotHeight,i=this.mouseDownX||0,h=this.mouseDownY||0,u=d(p.panning)?p.panning&&p.panning.enabled:p.panning,A=p.panKey&&n[p.panKey+"Key"];let r=n.chartX,T=n.chartY,G=this.selectionMarker;if((!G||!G.touch)&&(r<l?r=l:r>l+e&&(r=l+e),T<c?T=c:T>c+t&&(T=c+t),this.hasDragged=Math.sqrt(Math.pow(i-r,2)+Math.pow(h-T,2)),10<this.hasDragged)){l=a.isInsidePlot(i-l,h-c,{visiblePlotOnly:!0});const{shapeType:q,attrs:Q}=this.getSelectionMarkerAttrs(r,T);!a.hasCartesianSeries&&!a.mapView||!this.zoomX&&!this.zoomY||!l||A||G||(this.selectionMarker=G=a.renderer[q](),G.attr({class:"highcharts-selection-marker",zIndex:7}).add(),a.styledMode||G.attr({fill:p.selectionMarkerFill||et("#334eff").setOpacity(.25).get()})),G&&G.attr(Q),l&&!G&&u&&a.pan(n,p.panning)}}dragStart(n){const a=this.chart;a.mouseIsDown=n.type,a.cancelClick=!1,a.mouseDownX=this.mouseDownX=n.chartX,a.mouseDownY=this.mouseDownY=n.chartY}getSelectionBox(n){const a={args:{marker:n},result:{}};return L(this,"getSelectionBox",a,p=>{p.result={x:n.attr?+n.attr("x"):n.x,y:n.attr?+n.attr("y"):n.y,width:n.attr?n.attr("width"):n.width,height:n.attr?n.attr("height"):n.height}}),a.result}drop(n){const a=this,p=this.chart,l=this.hasPinched;if(this.selectionMarker){const{x:c,y:e,width:t,height:i}=this.getSelectionBox(this.selectionMarker),h={originalEvent:n,xAxis:[],yAxis:[],x:c,y:e,width:t,height:i};let u=!!p.mapView;(this.hasDragged||l)&&(p.axes.forEach(function(A){if(A.zoomEnabled&&X(A.min)&&(l||a[{xAxis:"zoomX",yAxis:"zoomY"}[A.coll]])&&E(c)&&E(e)&&E(t)&&E(i)){var r=A.horiz;const T=n.type==="touchend"?A.minPixelPadding:0,G=A.toValue((r?c:e)+T);r=A.toValue((r?c+t:e+i)-T),h[A.coll].push({axis:A,min:Math.min(G,r),max:Math.max(G,r)}),u=!0}}),u&&L(p,"selection",h,function(A){p.zoom(S(A,l?{animation:!1}:null))})),E(p.index)&&(this.selectionMarker=this.selectionMarker.destroy()),l&&this.scaleGroups()}p&&E(p.index)&&(U(p.container,{cursor:p._cursor}),p.cancelClick=10<this.hasDragged,p.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])}findNearestKDPoint(n,a,p){let l;return n.forEach(function(c){var e=!(c.noSharedTooltip&&a)&&0>c.options.findNearestPointBy.indexOf("y");if(c=c.searchPoint(p,e),(e=d(c,!0)&&c.series)&&!(e=!d(l,!0))){{e=l.distX-c.distX;const t=l.dist-c.dist,i=(c.series.group&&c.series.group.zIndex)-(l.series.group&&l.series.group.zIndex);e=e!==0&&a?e:t!==0?t:i!==0?i:l.series.index>c.series.index?-1:1}e=0<e}e&&(l=c)}),l}getChartCoordinatesFromPoint(n,a){var p=n.series;const l=p.xAxis;p=p.yAxis;const c=n.shapeArgs;if(l&&p){let e=m(n.clientX,n.plotX),t=n.plotY||0;return n.isNode&&c&&E(c.x)&&E(c.y)&&(e=c.x,t=c.y),a?{chartX:p.len+p.pos-t,chartY:l.len+l.pos-e}:{chartX:e+l.pos,chartY:t+p.pos}}if(c&&c.x&&c.y)return{chartX:c.x,chartY:c.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;var{container:n}=this.chart;const a=y(n);this.chartPosition={left:a.left,top:a.top,scaleX:1,scaleY:1};const p=n.offsetWidth;return n=n.offsetHeight,2<p&&2<n&&(this.chartPosition.scaleX=a.width/p,this.chartPosition.scaleY=a.height/n),this.chartPosition}getCoordinates(n){const a={xAxis:[],yAxis:[]};return this.chart.axes.forEach(function(p){a[p.isXAxis?"xAxis":"yAxis"].push({axis:p,value:p.toValue(n[p.horiz?"chartX":"chartY"])})}),a}getHoverData(n,a,p,l,c,e){const t=[];l=!(!l||!n);const i=function(r){return r.visible&&!(!c&&r.directTouch)&&m(r.options.enableMouseTracking,!0)};let h,u={chartX:e?e.chartX:void 0,chartY:e?e.chartY:void 0,shared:c};L(this,"beforeGetHoverData",u),h=a&&!a.stickyTracking?[a]:p.filter(r=>r.stickyTracking&&(u.filter||i)(r));const A=l||!e?n:this.findNearestKDPoint(h,c,e);return a=A&&A.series,A&&(c&&!a.noSharedTooltip?(h=p.filter(function(r){return u.filter?u.filter(r):i(r)&&!r.noSharedTooltip}),h.forEach(function(r){let T=w(r.points,function(G){return G.x===A.x&&!G.isNull});d(T)&&(r.boosted&&r.boost&&(T=r.boost.getPoint(T)),t.push(T))})):t.push(A)),u={hoverPoint:A},L(this,"afterGetHoverData",u),{hoverPoint:u.hoverPoint,hoverSeries:a,hoverPoints:t}}getPointFromEvent(n){n=n.target;let a;for(;n&&!a;)a=n.point,n=n.parentNode;return a}onTrackerMouseOut(n){n=n.relatedTarget;const a=this.chart.hoverSeries;this.isDirectTouch=!1,!a||!n||a.stickyTracking||this.inClass(n,"highcharts-tooltip")||this.inClass(n,"highcharts-series-"+a.index)&&this.inClass(n,"highcharts-tracker")||a.onMouseOut()}inClass(n,a){let p;for(;n;){if(p=H(n,"class")){if(p.indexOf(a)!==-1)return!0;if(p.indexOf("highcharts-container")!==-1)return!1}n=n.parentElement}}init(n,a){this.options=a,this.chart=n,this.runChartClick=!(!a.chart.events||!a.chart.events.click),this.pinchDown=[],this.lastValidTouch={},this.setDOMEvents(),L(this,"afterInit")}normalize(n,a){var p=n.touches,l=p?p.length?p.item(0):m(p.changedTouches,n.changedTouches)[0]:n;return a||(a=this.getChartPosition()),p=l.pageX-a.left,l=l.pageY-a.top,p/=a.scaleX,l/=a.scaleY,S(n,{chartX:Math.round(p),chartY:Math.round(l)})}onContainerClick(n){const a=this.chart,p=a.hoverPoint;n=this.normalize(n);const l=a.plotLeft,c=a.plotTop;a.cancelClick||(p&&this.inClass(n.target,"highcharts-tracker")?(L(p.series,"click",S(n,{point:p})),a.hoverPoint&&p.firePointEvent("click",n)):(S(n,this.getCoordinates(n)),a.isInsidePlot(n.chartX-l,n.chartY-c,{visiblePlotOnly:!0})&&L(a,"click",n)))}onContainerMouseDown(n){const a=((n.buttons||n.button)&1)===1;n=this.normalize(n),N.isFirefox&&n.button!==0&&this.onContainerMouseMove(n),(typeof n.button>"u"||a)&&(this.zoomOption(n),a&&n.preventDefault&&n.preventDefault(),this.dragStart(n))}onContainerMouseLeave(n){const a=tt[m(v.hoverChartIndex,-1)];n=this.normalize(n),a&&n.relatedTarget&&!this.inClass(n.relatedTarget,"highcharts-tooltip")&&(a.pointer.reset(),a.pointer.chartPosition=void 0)}onContainerMouseEnter(n){delete this.chartPosition}onContainerMouseMove(n){const a=this.chart,p=a.tooltip;n=this.normalize(n),this.setHoverChartIndex(),(a.mouseIsDown==="mousedown"||this.touchSelect(n))&&this.drag(n),a.openMenu||!this.inClass(n.target,"highcharts-tracker")&&!a.isInsidePlot(n.chartX-a.plotLeft,n.chartY-a.plotTop,{visiblePlotOnly:!0})||p&&p.shouldStickOnContact(n)||(this.inClass(n.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(n))}onDocumentTouchEnd(n){const a=tt[m(v.hoverChartIndex,-1)];a&&a.pointer.drop(n)}onContainerTouchMove(n){this.touchSelect(n)?this.onContainerMouseMove(n):this.touch(n)}onContainerTouchStart(n){this.touchSelect(n)?this.onContainerMouseDown(n):(this.zoomOption(n),this.touch(n,!0))}onDocumentMouseMove(n){const a=this.chart,p=a.tooltip,l=this.chartPosition;n=this.normalize(n,l),!l||a.isInsidePlot(n.chartX-a.plotLeft,n.chartY-a.plotTop,{visiblePlotOnly:!0})||p&&p.shouldStickOnContact(n)||this.inClass(n.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(n){const a=tt[m(v.hoverChartIndex,-1)];a&&a.pointer.drop(n)}pinch(n){const a=this,p=a.chart,l=a.pinchDown,c=n.touches||[],e=c.length,t=a.lastValidTouch,i=a.hasZoom,h={},u=e===1&&(a.inClass(n.target,"highcharts-tracker")&&p.runTrackerClick||a.runChartClick),A={};var r=a.chart.tooltip;r=e===1&&m(r&&r.options.followTouchMove,!0);let T=a.selectionMarker;1<e?a.initiated=!0:r&&(a.initiated=!1),i&&a.initiated&&!u&&n.cancelable!==!1&&n.preventDefault(),[].map.call(c,function(G){return a.normalize(G)}),n.type==="touchstart"?([].forEach.call(c,function(G,q){l[q]={chartX:G.chartX,chartY:G.chartY}}),t.x=[l[0].chartX,l[1]&&l[1].chartX],t.y=[l[0].chartY,l[1]&&l[1].chartY],p.axes.forEach(function(G){if(G.zoomEnabled){const q=p.bounds[G.horiz?"h":"v"],Q=G.minPixelPadding,D=G.toPixels(Math.min(m(G.options.min,G.dataMin),G.dataMin)),s=G.toPixels(Math.max(m(G.options.max,G.dataMax),G.dataMax)),M=Math.max(D,s);q.min=Math.min(G.pos,Math.min(D,s)-Q),q.max=Math.max(G.pos+G.len,M+Q)}}),a.res=!0):r?this.runPointActions(a.normalize(n)):l.length&&(L(p,"touchpan",{originalEvent:n},()=>{T||(a.selectionMarker=T=S({destroy:it,touch:!0},p.plotBox)),a.pinchTranslate(l,c,h,T,A,t),a.hasPinched=i,a.scaleGroups(h,A)}),a.res&&(a.res=!1,this.reset(!1,0)))}pinchTranslate(n,a,p,l,c,e){this.zoomHor&&this.pinchTranslateDirection(!0,n,a,p,l,c,e),this.zoomVert&&this.pinchTranslateDirection(!1,n,a,p,l,c,e)}pinchTranslateDirection(n,a,p,l,c,e,t,i){const h=this.chart,u=n?"x":"y",A=n?"X":"Y",r="chart"+A,T=n?"width":"height",G=h["plot"+(n?"Left":"Top")],q=h.inverted,Q=h.bounds[n?"h":"v"],D=a.length===1,s=a[0][r],M=!D&&a[1][r];a=function(){typeof g=="number"&&20<Math.abs(s-M)&&(Y=i||Math.abs(o-g)/Math.abs(s-M)),O=(G-o)/Y+s,j=h["plot"+(n?"Width":"Height")]/Y};let j,O,Y=i||1,o=p[0][r],g=!D&&p[1][r],f;a(),p=O,p<Q.min?(p=Q.min,f=!0):p+j>Q.max&&(p=Q.max-j,f=!0),f?(o-=.8*(o-t[u][0]),typeof g=="number"&&(g-=.8*(g-t[u][1])),a()):t[u]=[o,g],q||(e[u]=O-G,e[T]=j),e=q?1/Y:Y,c[T]=j,c[u]=p,l[q?n?"scaleY":"scaleX":"scale"+A]=Y,l["translate"+A]=e*G+(o-e*s)}reset(n,a){const p=this.chart,l=p.hoverSeries,c=p.hoverPoint,e=p.hoverPoints,t=p.tooltip,i=t&&t.shared?e:c;n&&i&&b(i).forEach(function(h){h.series.isCartesian&&typeof h.plotX>"u"&&(n=!1)}),n?t&&i&&b(i).length&&(t.refresh(i),t.shared&&e?e.forEach(function(h){h.setState(h.state,!0),h.series.isCartesian&&(h.series.xAxis.crosshair&&h.series.xAxis.drawCrosshair(null,h),h.series.yAxis.crosshair&&h.series.yAxis.drawCrosshair(null,h))}):c&&(c.setState(c.state,!0),p.axes.forEach(function(h){h.crosshair&&c.series[h.coll]===h&&h.drawCrosshair(null,c)}))):(c&&c.onMouseOut(),e&&e.forEach(function(h){h.setState()}),l&&l.onMouseOut(),t&&t.hide(a),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),p.axes.forEach(function(h){h.hideCrosshair()}),this.hoverX=p.hoverPoints=p.hoverPoint=null)}runPointActions(n,a,p){const l=this.chart,c=l.tooltip&&l.tooltip.options.enabled?l.tooltip:void 0,e=c?c.shared:!1;let t=a||l.hoverPoint,i=t&&t.series||l.hoverSeries;a=this.getHoverData(t,i,l.series,(!n||n.type!=="touchmove")&&(!!a||i&&i.directTouch&&this.isDirectTouch),e,n),t=a.hoverPoint,i=a.hoverSeries;const h=a.hoverPoints;a=i&&i.tooltipOptions.followPointer&&!i.tooltipOptions.split;const u=e&&i&&!i.noSharedTooltip;if(t&&(p||t!==l.hoverPoint||c&&c.isHidden)){if((l.hoverPoints||[]).forEach(function(A){h.indexOf(A)===-1&&A.setState()}),l.hoverSeries!==i&&i.onMouseOver(),this.applyInactiveState(h),(h||[]).forEach(function(A){A.setState("hover")}),l.hoverPoint&&l.hoverPoint.firePointEvent("mouseOut"),!t.series)return;l.hoverPoints=h,l.hoverPoint=t,t.firePointEvent("mouseOver",void 0,()=>{c&&t&&c.refresh(u?h:t,n)})}else a&&c&&!c.isHidden&&(p=c.getAnchor([{}],n),l.isInsidePlot(p[0],p[1],{visiblePlotOnly:!0})&&c.updatePosition({plotX:p[0],plotY:p[1]}));this.unDocMouseMove||(this.unDocMouseMove=st(l.container.ownerDocument,"mousemove",function(A){const r=tt[v.hoverChartIndex];r&&r.pointer.onDocumentMouseMove(A)}),this.eventsToUnbind.push(this.unDocMouseMove)),l.axes.forEach(function(A){const r=m((A.crosshair||{}).snap,!0);let T;r&&((T=l.hoverPoint)&&T.series[A.coll]===A||(T=w(h,G=>G.series&&G.series[A.coll]===A))),T||!r?A.drawCrosshair(n,T):A.hideCrosshair()})}scaleGroups(n,a){const p=this.chart;p.series.forEach(function(l){const c=n||l.getPlotBox();l.group&&(l.xAxis&&l.xAxis.zoomEnabled||p.mapView)&&(l.group.attr(c),l.markerGroup&&(l.markerGroup.attr(c),l.markerGroup.clip(a?p.clipRect:null)),l.dataLabelsGroup&&l.dataLabelsGroup.attr(c))}),p.clipRect.attr(a||p.clipBox)}setDOMEvents(){const n=this.chart.container,a=n.ownerDocument;n.onmousedown=this.onContainerMouseDown.bind(this),n.onmousemove=this.onContainerMouseMove.bind(this),n.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(st(n,"mouseenter",this.onContainerMouseEnter.bind(this))),this.eventsToUnbind.push(st(n,"mouseleave",this.onContainerMouseLeave.bind(this))),v.unbindDocumentMouseUp||(v.unbindDocumentMouseUp=st(a,"mouseup",this.onDocumentMouseUp.bind(this)));let p=this.chart.renderTo.parentElement;for(;p&&p.tagName!=="BODY";)this.eventsToUnbind.push(st(p,"scroll",()=>{delete this.chartPosition})),p=p.parentElement;N.hasTouch&&(this.eventsToUnbind.push(st(n,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1})),this.eventsToUnbind.push(st(n,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),v.unbindDocumentTouchEnd||(v.unbindDocumentTouchEnd=st(a,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})))}setHoverChartIndex(){const n=this.chart,a=N.charts[m(v.hoverChartIndex,-1)];a&&a!==n&&a.pointer.onContainerMouseLeave({relatedTarget:n.container}),a&&a.mouseIsDown||(v.hoverChartIndex=n.index)}touch(n,a){const p=this.chart;let l;this.setHoverChartIndex(),n.touches.length===1?(n=this.normalize(n),p.isInsidePlot(n.chartX-p.plotLeft,n.chartY-p.plotTop,{visiblePlotOnly:!0})&&!p.openMenu?(a&&this.runPointActions(n),n.type==="touchmove"&&(a=this.pinchDown,l=a[0]?4<=Math.sqrt(Math.pow(a[0].chartX-n.chartX,2)+Math.pow(a[0].chartY-n.chartY,2)):!1),m(l,!0)&&this.pinch(n)):a&&this.reset()):n.touches.length===2&&this.pinch(n)}touchSelect(n){return!(!this.chart.zooming.singleTouch||!n.touches||n.touches.length!==1)}zoomOption(n){const a=this.chart,p=a.inverted;var l=a.zooming.type||"";/touch/.test(n.type)&&(l=m(a.zooming.pinchType,l)),this.zoomX=n=/x/.test(l),this.zoomY=l=/y/.test(l),this.zoomHor=n&&!p||l&&p,this.zoomVert=l&&!p||n&&p,this.hasZoom=n||l}}return function(k){const n=[],a=[];k.compose=function(p){K.pushUnique(a,p)&&st(p,"beforeRender",function(){this.pointer=new k(this,this.options)})},k.dissolve=function(){for(let p=0,l=n.length;p<l;++p)n[p]();n.length=0}}(v||(v={})),v}),ct(z,"Core/Legend/Legend.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Templating.js"],z["Core/Globals.js"],z["Core/Series/Point.js"],z["Core/Renderer/RendererUtilities.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt,it){const{animObject:st,setAnimation:H}=F,{format:U}=N,{marginNames:X}=K,{distribute:S}=tt,{addEvent:w,createElement:L,css:E,defined:d,discardElement:x,find:y,fireEvent:m,isNumber:b,merge:v,pick:k,relativeLength:n,stableSort:a,syncTimeout:p}=it;class l{constructor(e,t){this.allItems=[],this.contentGroup=this.box=void 0,this.display=!1,this.group=void 0,this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=this.itemX=this.itemMarginTop=this.itemMarginBottom=this.itemHeight=this.initialItemY=0,this.options=void 0,this.padding=0,this.pages=[],this.proximate=!1,this.scrollGroup=void 0,this.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0,this.chart=e,this.init(e,t)}init(e,t){this.chart=e,this.setOptions(t),t.enabled&&(this.render(),w(this.chart,"endResize",function(){this.legend.positionCheckboxes()}),w(this.chart,"render",()=>{this.proximate&&(this.proximatePositions(),this.positionItems())}))}setOptions(e){const t=k(e.padding,8);this.options=e,this.chart.styledMode||(this.itemStyle=e.itemStyle,this.itemHiddenStyle=v(this.itemStyle,e.itemHiddenStyle)),this.itemMarginTop=e.itemMarginTop,this.itemMarginBottom=e.itemMarginBottom,this.padding=t,this.initialItemY=t-5,this.symbolWidth=k(e.symbolWidth,16),this.pages=[],this.proximate=e.layout==="proximate"&&!this.chart.inverted,this.baseline=void 0}update(e,t){const i=this.chart;this.setOptions(v(!0,this.options,e)),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,k(t,!0)&&i.redraw(),m(this,"afterUpdate")}colorizeItem(e,t){const{group:i,label:h,line:u,symbol:A}=e.legendItem||{};if(i&&i[t?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){const{itemHiddenStyle:r}=this,T=r.color,G=t&&e.color||T,q=e.options&&e.options.marker;let Q={fill:G};h==null||h.css(v(t?this.itemStyle:r)),u==null||u.attr({stroke:G}),A&&(q&&A.isMarker&&(Q=e.pointAttribs(),t||(Q.stroke=Q.fill=T)),A.attr(Q))}m(this,"afterColorizeItem",{item:e,visible:t})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(e){const{group:t,x:i=0,y:h=0}=e.legendItem||{};var u=this.options,A=u.symbolPadding;const r=!u.rtl;u=e.checkbox,t&&t.element&&(A={translateX:r?i:this.legendWidth-i-2*A-4,translateY:h},t[d(t.translateY)?"animate":"attr"](A,void 0,()=>{m(this,"afterPositionItem",{item:e})})),u&&(u.x=i,u.y=h)}destroyItem(e){const t=e.checkbox,i=e.legendItem||{};for(const h of["group","label","line","symbol"])i[h]&&(i[h]=i[h].destroy());t&&x(t),e.legendItem=void 0}destroy(){for(const e of this.getAllItems())this.destroyItem(e);for(const e of"clipRect up down pager nav box title group".split(" "))this[e]&&(this[e]=this[e].destroy());this.display=null}positionCheckboxes(){const e=this.group&&this.group.alignAttr,t=this.clipHeight||this.legendHeight,i=this.titleHeight;let h;e&&(h=e.translateY,this.allItems.forEach(function(u){const A=u.checkbox;let r;A&&(r=h+i+A.y+(this.scrollOffset||0)+3,E(A,{left:e.translateX+u.checkboxOffset+A.x-20+"px",top:r+"px",display:this.proximate||r>h-6&&r<h+t-6?"":"none"}))},this))}renderTitle(){var e=this.options;const t=this.padding,i=e.title;let h=0;i.text&&(this.title||(this.title=this.chart.renderer.label(i.text,t-3,t-4,void 0,void 0,void 0,e.useHTML,void 0,"legend-title").attr({zIndex:1}),this.chart.styledMode||this.title.css(i.style),this.title.add(this.group)),i.width||this.title.css({width:this.maxLegendWidth+"px"}),e=this.title.getBBox(),h=e.height,this.offsetWidth=e.width,this.contentGroup.attr({translateY:h})),this.titleHeight=h}setText(e){const t=this.options;e.legendItem.label.attr({text:t.labelFormat?U(t.labelFormat,e,this.chart):t.labelFormatter.call(e)})}renderItem(e){const t=e.legendItem=e.legendItem||{};var i=this.chart,h=i.renderer;const u=this.options,A=this.symbolWidth,r=u.symbolPadding||0,T=this.itemStyle,G=this.itemHiddenStyle,q=u.layout==="horizontal"?k(u.itemDistance,20):0,Q=!u.rtl,D=!e.series,s=!D&&e.series.drawLegendSymbol?e.series:e;var M=s.options;const j=this.createCheckboxForItem&&M&&M.showCheckbox,O=u.useHTML,Y=e.options.className;let o=t.label;M=A+r+q+(j?20:0),o||(t.group=h.g("legend-item").addClass("highcharts-"+s.type+"-series highcharts-color-"+e.colorIndex+(Y?" "+Y:"")+(D?" highcharts-series-"+e.index:"")).attr({zIndex:1}).add(this.scrollGroup),t.label=o=h.text("",Q?A+r:-r,this.baseline||0,O),i.styledMode||o.css(v(e.visible?T:G)),o.attr({align:Q?"left":"right",zIndex:2}).add(t.group),this.baseline||(this.fontMetrics=h.fontMetrics(o),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,o.attr("y",this.baseline),this.symbolHeight=k(u.symbolHeight,this.fontMetrics.f),u.squareSymbol&&(this.symbolWidth=k(u.symbolWidth,Math.max(this.symbolHeight,16)),M=this.symbolWidth+r+q+(j?20:0),Q&&o.attr("x",this.symbolWidth+r))),s.drawLegendSymbol(this,e),this.setItemEvents&&this.setItemEvents(e,o,O)),j&&!e.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(e),this.colorizeItem(e,e.visible),!i.styledMode&&T.width||o.css({width:(u.itemWidth||this.widthOption||i.spacingBox.width)-M+"px"}),this.setText(e),i=o.getBBox(),h=this.fontMetrics&&this.fontMetrics.h||0,e.itemWidth=e.checkboxOffset=u.itemWidth||t.labelWidth||i.width+M,this.maxItemWidth=Math.max(this.maxItemWidth,e.itemWidth),this.totalItemWidth+=e.itemWidth,this.itemHeight=e.itemHeight=Math.round(t.labelHeight||(i.height>1.5*h?i.height:h))}layoutItem(e){var t=this.options;const i=this.padding,h=t.layout==="horizontal",u=e.itemHeight,A=this.itemMarginBottom,r=this.itemMarginTop,T=h?k(t.itemDistance,20):0,G=this.maxLegendWidth;t=t.alignColumns&&this.totalItemWidth>G?this.maxItemWidth:e.itemWidth;const q=e.legendItem||{};h&&this.itemX-i+t>G&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=r+this.lastLineHeight+A),this.lastLineHeight=0),this.lastItemY=r+this.itemY+A,this.lastLineHeight=Math.max(u,this.lastLineHeight),q.x=this.itemX,q.y=this.itemY,h?this.itemX+=t:(this.itemY+=r+u+A,this.lastLineHeight=u),this.offsetWidth=this.widthOption||Math.max((h?this.itemX-i-(e.checkbox?0:T):t)+i,this.offsetWidth)}getAllItems(){let e=[];return this.chart.series.forEach(function(t){const i=t&&t.options;t&&k(i.showInLegend,d(i.linkedTo)?!1:void 0,!0)&&(e=e.concat((t.legendItem||{}).labels||(i.legendType==="point"?t.data:t)))}),m(this,"afterGetAllItems",{allItems:e}),e}getAlignment(){const e=this.options;return this.proximate?e.align.charAt(0)+"tv":e.floating?"":e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0)}adjustMargins(e,t){const i=this.chart,h=this.options,u=this.getAlignment();u&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(A,r){A.test(u)&&!d(e[r])&&(i[X[r]]=Math.max(i[X[r]],i.legend[(r+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][r]*h[r%2?"x":"y"]+k(h.margin,12)+t[r]+(i.titleOffset[r]||0)))})}proximatePositions(){const e=this.chart,t=[],i=this.options.align==="left";this.allItems.forEach(function(u){var A,r=i;let T;u.yAxis&&(u.xAxis.options.reversed&&(r=!r),u.points&&(A=y(r?u.points:u.points.slice(0).reverse(),function(G){return b(G.plotY)})),r=this.itemMarginTop+u.legendItem.label.getBBox().height+this.itemMarginBottom,T=u.yAxis.top-e.plotTop,u.visible?(A=A?A.plotY:u.yAxis.height,A+=T-.3*r):A=T+u.yAxis.height,t.push({target:A,size:r,item:u}))},this);let h;for(const u of S(t,e.plotHeight))h=u.item.legendItem||{},b(u.pos)&&(h.y=e.plotTop-e.spacing[0]+u.pos)}render(){const e=this.chart,t=e.renderer,i=this.options,h=this.padding;var u=this.getAllItems();let A,r=this.group,T=this.box;this.itemX=h,this.itemY=this.initialItemY,this.lastItemY=this.offsetWidth=0,this.widthOption=n(i.width,e.spacingBox.width-h);var G=e.spacingBox.width-2*h-i.x;-1<["rm","lm"].indexOf(this.getAlignment().substring(0,2))&&(G/=2),this.maxLegendWidth=this.widthOption||G,r||(this.group=r=t.g("legend").addClass(i.className||"").attr({zIndex:7}).add(),this.contentGroup=t.g().attr({zIndex:1}).add(r),this.scrollGroup=t.g().add(this.contentGroup)),this.renderTitle(),a(u,(q,Q)=>(q.options&&q.options.legendIndex||0)-(Q.options&&Q.options.legendIndex||0)),i.reversed&&u.reverse(),this.allItems=u,this.display=G=!!u.length,this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0,u.forEach(this.renderItem,this),u.forEach(this.layoutItem,this),u=(this.widthOption||this.offsetWidth)+h,A=this.lastItemY+this.lastLineHeight+this.titleHeight,A=this.handleOverflow(A),A+=h,T||(this.box=T=t.rect().addClass("highcharts-legend-box").attr({r:i.borderRadius}).add(r)),e.styledMode||T.attr({stroke:i.borderColor,"stroke-width":i.borderWidth||0,fill:i.backgroundColor||"none"}).shadow(i.shadow),0<u&&0<A&&T[T.placed?"animate":"attr"](T.crisp.call({},{x:0,y:0,width:u,height:A},T.strokeWidth())),r[G?"show":"hide"](),e.styledMode&&r.getStyle("display")==="none"&&(u=A=0),this.legendWidth=u,this.legendHeight=A,G&&this.align(),this.proximate||this.positionItems(),m(this,"afterRender")}align(e=this.chart.spacingBox){const t=this.chart,i=this.options;let h=e.y;/(lth|ct|rth)/.test(this.getAlignment())&&0<t.titleOffset[0]?h+=t.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&0<t.titleOffset[2]&&(h-=t.titleOffset[2]),h!==e.y&&(e=v(e,{y:h})),t.hasRendered||(this.group.placed=!1),this.group.align(v(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,e)}handleOverflow(e){const t=this,i=this.chart,h=i.renderer,u=this.options;var A=u.y;const r=u.verticalAlign==="top",T=this.padding,G=u.maxHeight,q=u.navigation,Q=k(q.animation,!0),D=q.arrowSize||12,s=this.pages,M=this.allItems,j=function(R){typeof R=="number"?B.attr({height:R}):B&&(t.clipRect=B.destroy(),t.contentGroup.clip()),t.contentGroup.div&&(t.contentGroup.div.style.clip=R?"rect("+T+"px,9999px,"+(T+R)+"px,0)":"auto")},O=function(R){return t[R]=h.circle(0,0,1.3*D).translate(D/2,D/2).add(f),i.styledMode||t[R].attr("fill","rgba(0,0,0,0.0001)"),t[R]};let Y,o,g;A=i.spacingBox.height+(r?-A:A)-T;let f=this.nav,B=this.clipRect;return u.layout!=="horizontal"||u.verticalAlign==="middle"||u.floating||(A/=2),G&&(A=Math.min(A,G)),s.length=0,e&&0<A&&e>A&&q.enabled!==!1?(this.clipHeight=Y=Math.max(A-20-this.titleHeight-T,0),this.currentPage=k(this.currentPage,1),this.fullHeight=e,M.forEach((R,I)=>{g=R.legendItem||{},R=g.y||0;const _=Math.round(g.label.getBBox().height);let Z=s.length;(!Z||R-s[Z-1]>Y&&(o||R)!==s[Z-1])&&(s.push(o||R),Z++),g.pageIx=Z-1,o&&((M[I-1].legendItem||{}).pageIx=Z-1),I===M.length-1&&R+_-s[Z-1]>Y&&R>s[Z-1]&&(s.push(R),g.pageIx=Z),R!==o&&(o=R)}),B||(B=t.clipRect=h.clipRect(0,T-2,9999,0),t.contentGroup.clip(B)),j(Y),f||(this.nav=f=h.g().attr({zIndex:1}).add(this.group),this.up=h.symbol("triangle",0,0,D,D).add(f),O("upTracker").on("click",function(){t.scroll(-1,Q)}),this.pager=h.text("",15,10).addClass("highcharts-legend-navigation"),!i.styledMode&&q.style&&this.pager.css(q.style),this.pager.add(f),this.down=h.symbol("triangle-down",0,0,D,D).add(f),O("downTracker").on("click",function(){t.scroll(1,Q)})),t.scroll(0),e=A):f&&(j(),this.nav=f.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),e}scroll(e,t){const i=this.chart,h=this.pages,u=h.length,A=this.clipHeight,r=this.options.navigation,T=this.pager,G=this.padding;let q=this.currentPage+e;q>u&&(q=u),0<q&&(typeof t<"u"&&H(t,i),this.nav.attr({translateX:G,translateY:A+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(Q){Q.attr({class:q===1?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),T.attr({text:q+"/"+u}),[this.down,this.downTracker].forEach(function(Q){Q.attr({x:18+this.pager.getBBox().width,class:q===u?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),i.styledMode||(this.up.attr({fill:q===1?r.inactiveColor:r.activeColor}),this.upTracker.css({cursor:q===1?"default":"pointer"}),this.down.attr({fill:q===u?r.inactiveColor:r.activeColor}),this.downTracker.css({cursor:q===u?"default":"pointer"})),this.scrollOffset=-h[q-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=q,this.positionCheckboxes(),e=st(k(t,i.renderer.globalAnimation,!0)),p(()=>{m(this,"afterScroll",{currentPage:q})},e.duration))}setItemEvents(e,t,i){const h=this,u=e.legendItem||{},A=h.chart.renderer.boxWrapper,r=e instanceof et,T="highcharts-legend-"+(r?"point":"series")+"-active",G=h.chart.styledMode;i=i?[t,u.symbol]:[u.group];const q=Q=>{h.allItems.forEach(D=>{e!==D&&[D].concat(D.linkedSeries||[]).forEach(s=>{s.setState(Q,!r)})})};for(const Q of i)Q&&Q.on("mouseover",function(){e.visible&&q("inactive"),e.setState("hover"),e.visible&&A.addClass(T),G||t.css(h.options.itemHoverStyle)}).on("mouseout",function(){h.chart.styledMode||t.css(v(e.visible?h.itemStyle:h.itemHiddenStyle)),q(""),A.removeClass(T),e.setState()}).on("click",function(D){const s=function(){e.setVisible&&e.setVisible(),q(e.visible?"inactive":"")};A.removeClass(T),D={browserEvent:D},e.firePointEvent?e.firePointEvent("legendItemClick",D,s):m(e,"legendItemClick",D,s)})}createCheckboxForItem(e){e.checkbox=L("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:e.selected,defaultChecked:e.selected},this.options.itemCheckboxStyle,this.chart.container),w(e.checkbox,"click",function(t){m(e.series||e,"checkboxClick",{checked:t.target.checked,item:e},function(){e.select()})})}}return function(c){const e=[];c.compose=function(t){it.pushUnique(e,t)&&w(t,"beforeMargins",function(){this.legend=new c(this,this.options.legend)})}}(l||(l={})),l}),ct(z,"Core/Legend/LegendSymbol.js",[z["Core/Utilities.js"]],function(F){const{extend:N,merge:K,pick:et}=F;var tt;return function(it){it.lineMarker=function(st,H){H=this.legendItem=this.legendItem||{};var U=this.options;const X=st.symbolWidth,S=st.symbolHeight,w=S/2,L=this.chart.renderer,E=H.group;st=st.baseline-Math.round(.3*st.fontMetrics.b);let d={},x=U.marker,y=0;this.chart.styledMode||(d={"stroke-width":Math.min(U.lineWidth||0,24)},U.dashStyle?d.dashstyle=U.dashStyle:U.linecap!=="square"&&(d["stroke-linecap"]="round")),H.line=L.path().addClass("highcharts-graph").attr(d).add(E),d["stroke-linecap"]&&(y=Math.min(H.line.strokeWidth(),X)/2),X&&H.line.attr({d:[["M",y,st],["L",X-y,st]]}),x&&x.enabled!==!1&&X&&(U=Math.min(et(x.radius,w),w),this.symbol.indexOf("url")===0&&(x=K(x,{width:S,height:S}),U=0),H.symbol=H=L.symbol(this.symbol,X/2-U,st-U,2*U,2*U,N({context:"legend"},x)).addClass("highcharts-point").add(E),H.isMarker=!0)},it.rectangle=function(st,H){H=H.legendItem||{};const U=st.symbolHeight,X=st.options.squareSymbol;H.symbol=this.chart.renderer.rect(X?(st.symbolWidth-U)/2:0,st.baseline-U+1,X?U:st.symbolWidth,U,et(st.options.symbolRadius,U/2)).addClass("highcharts-point").attr({zIndex:3}).add(H.group)}}(tt||(tt={})),tt}),ct(z,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:1,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){const{numberFormatter:F}=this.series.chart;return typeof this.y!="number"?"":F(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),ct(z,"Core/Series/SeriesRegistry.js",[z["Core/Globals.js"],z["Core/Defaults.js"],z["Core/Series/Point.js"],z["Core/Utilities.js"]],function(F,N,K,et){const{defaultOptions:tt}=N,{extendClass:it,merge:st}=et;var H;return function(U){function X(S,w){const L=tt.plotOptions||{},E=w.defaultOptions,d=w.prototype;d.type=S,d.pointClass||(d.pointClass=K),E&&(L[S]=E),U.seriesTypes[S]=w}U.seriesTypes=F.seriesTypes,U.registerSeriesType=X,U.seriesType=function(S,w,L,E,d){const x=tt.plotOptions||{};return w=w||"",x[S]=st(x[w],L),X(S,it(U.seriesTypes[w]||function(){},E)),U.seriesTypes[S].prototype.type=S,d&&(U.seriesTypes[S].prototype.pointClass=it(K,d)),U.seriesTypes[S]}}(H||(H={})),H}),ct(z,"Core/Series/Series.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Defaults.js"],z["Core/Foundation.js"],z["Core/Globals.js"],z["Core/Legend/LegendSymbol.js"],z["Core/Series/Point.js"],z["Core/Series/SeriesDefaults.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt,it,st,H,U,X){const{animObject:S,setAnimation:w}=F,{defaultOptions:L}=N,{registerEventOptions:E}=K,{hasTouch:d,svg:x,win:y}=et,{seriesTypes:m}=H,{arrayMax:b,arrayMin:v,clamp:k,correctFloat:n,defined:a,diffObjects:p,erase:l,error:c,extend:e,find:t,fireEvent:i,getClosestDistance:h,getNestedProperty:u,insertItem:A,isArray:r,isNumber:T,isString:G,merge:q,objectEach:Q,pick:D,removeEvent:s,splat:M,syncTimeout:j}=X;class O{constructor(){this.zones=this.yAxis=this.xAxis=this.userOptions=this.tooltipOptions=this.processedYData=this.processedXData=this.points=this.options=this.linkedSeries=this.index=this.eventsToUnbind=this.eventOptions=this.data=this.chart=this._i=void 0}init(o,g){i(this,"init",{options:g});const f=this,B=o.series;this.eventsToUnbind=[],f.chart=o,f.options=f.setOptions(g),g=f.options,f.linkedSeries=[],f.bindAxes(),e(f,{name:g.name,state:"",visible:g.visible!==!1,selected:g.selected===!0}),E(this,g);const R=g.events;(R&&R.click||g.point&&g.point.events&&g.point.events.click||g.allowPointSelect)&&(o.runTrackerClick=!0),f.getColor(),f.getSymbol(),f.parallelArrays.forEach(function(_){f[_+"Data"]||(f[_+"Data"]=[])}),f.isCartesian&&(o.hasCartesianSeries=!0);let I;B.length&&(I=B[B.length-1]),f._i=D(I&&I._i,-1)+1,f.opacity=f.options.opacity,o.orderItems("series",A(this,B)),g.dataSorting&&g.dataSorting.enabled?f.setDataSortingOptions():f.points||f.data||f.setData(g.data,!1),i(this,"afterInit")}is(o){return m[o]&&this instanceof m[o]}bindAxes(){const o=this,g=o.options,f=o.chart;let B;i(this,"bindAxes",null,function(){(o.axisTypes||[]).forEach(function(R){f[R].forEach(function(I){B=I.options,(D(g[R],0)===I.index||typeof g[R]<"u"&&g[R]===B.id)&&(A(o,I.series),o[R]=I,I.isDirty=!0)}),o[R]||o.optionalAxis===R||c(18,!0,f)})}),i(this,"afterBindAxes")}updateParallelArrays(o,g,f){const B=o.series,R=T(g)?function(I){const _=I==="y"&&B.toYData?B.toYData(o):o[I];B[I+"Data"][g]=_}:function(I){Array.prototype[g].apply(B[I+"Data"],f)};B.parallelArrays.forEach(R)}hasData(){return this.visible&&typeof this.dataMax<"u"&&typeof this.dataMin<"u"||this.visible&&this.yData&&0<this.yData.length}autoIncrement(o){var g=this.options;const f=g.pointIntervalUnit,B=g.relativeXValue,R=this.chart.time;let I=this.xIncrement,_;return I=D(I,g.pointStart,0),this.pointInterval=_=D(this.pointInterval,g.pointInterval,1),B&&T(o)&&(_*=o),f&&(g=new R.Date(I),f==="day"?R.set("Date",g,R.get("Date",g)+_):f==="month"?R.set("Month",g,R.get("Month",g)+_):f==="year"&&R.set("FullYear",g,R.get("FullYear",g)+_),_=g.getTime()-I),B&&T(o)?I+_:(this.xIncrement=I+_,I)}setDataSortingOptions(){const o=this.options;e(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),a(o.pointRange)||(o.pointRange=1)}setOptions(o){var g,f;const B=this.chart;var R=B.options.plotOptions,I=B.userOptions||{};const _=q(o);o=B.styledMode;const Z={plotOptions:R,userOptions:_};i(this,"setOptions",Z);const J=Z.plotOptions[this.type];I=I.plotOptions||{};const ot=I.series||{},ht=L.plotOptions[this.type]||{},P=I[this.type]||{};return this.userOptions=Z.userOptions,R=q(J,R.series,P,_),this.tooltipOptions=q(L.tooltip,(g=L.plotOptions.series)===null||g===void 0?void 0:g.tooltip,ht==null?void 0:ht.tooltip,B.userOptions.tooltip,(f=I.series)===null||f===void 0?void 0:f.tooltip,P.tooltip,_.tooltip),this.stickyTracking=D(_.stickyTracking,P.stickyTracking,ot.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:R.stickyTracking),J.marker===null&&delete R.marker,this.zoneAxis=R.zoneAxis,f=this.zones=(R.zones||[]).slice(),!R.negativeColor&&!R.negativeFillColor||R.zones||(g={value:R[this.zoneAxis+"Threshold"]||R.threshold||0,className:"highcharts-negative"},o||(g.color=R.negativeColor,g.fillColor=R.negativeFillColor),f.push(g)),f.length&&a(f[f.length-1].value)&&f.push(o?{}:{color:this.color,fillColor:this.fillColor}),i(this,"afterSetOptions",{options:R}),R}getName(){return D(this.options.name,"Series "+(this.index+1))}getCyclic(o,g,f){const B=this.chart,R=`${o}Index`,I=`${o}Counter`,_=(f==null?void 0:f.length)||B.options.chart.colorCount;if(!g){var Z=D(o==="color"?this.options.colorIndex:void 0,this[R]);a(Z)||(B.series.length||(B[I]=0),Z=B[I]%_,B[I]+=1),f&&(g=f[Z])}typeof Z<"u"&&(this[R]=Z),this[o]=g}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||L.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)}findPointIndex(o,g){const f=o.id,B=o.x,R=this.points;var I=this.options.dataSorting,_;let Z,J;if(f)I=this.chart.get(f),I instanceof it&&(_=I);else if((this.linkedParent||this.enabledDataSorting||this.options.relativeXValue)&&(_=ot=>!ot.touched&&ot.index===o.index,I&&I.matchByName?_=ot=>!ot.touched&&ot.name===o.name:this.options.relativeXValue&&(_=ot=>!ot.touched&&ot.options.x===o.x),_=t(R,_),!_))return;return _&&(J=_&&_.index,typeof J<"u"&&(Z=!0)),typeof J>"u"&&T(B)&&(J=this.xData.indexOf(B,g)),J!==-1&&typeof J<"u"&&this.cropped&&(J=J>=this.cropStart?J-this.cropStart:J),!Z&&T(J)&&R[J]&&R[J].touched&&(J=void 0),J}updateData(o,g){const f=this.options,B=f.dataSorting,R=this.points,I=[],_=this.requireSorting,Z=o.length===R.length;let J,ot,ht,P=!0;if(this.xIncrement=null,o.forEach(function(C,V){var W=a(C)&&this.pointClass.prototype.optionsToObject.call({series:this},C)||{};const $=W.x;W.id||T($)?(W=this.findPointIndex(W,ht),W===-1||typeof W>"u"?I.push(C):R[W]&&C!==f.data[W]?(R[W].update(C,!1,null,!1),R[W].touched=!0,_&&(ht=W+1)):R[W]&&(R[W].touched=!0),(!Z||V!==W||B&&B.enabled||this.hasDerivedData)&&(J=!0)):I.push(C)},this),J)for(o=R.length;o--;)(ot=R[o])&&!ot.touched&&ot.remove&&ot.remove(!1,g);else!Z||B&&B.enabled?P=!1:(o.forEach(function(C,V){C===R[V].y||R[V].destroyed||R[V].update(C,!1,null,!1)}),I.length=0);return R.forEach(function(C){C&&(C.touched=!1)}),P?(I.forEach(function(C){this.addPoint(C,!1,null,null,!1)},this),this.xIncrement===null&&this.xData&&this.xData.length&&(this.xIncrement=b(this.xData),this.autoIncrement()),!0):!1}setData(o,g=!0,f,B){var R;const I=this,_=I.points,Z=_&&_.length||0,J=I.options,ot=I.chart,ht=J.dataSorting,P=I.xAxis,C=J.turboThreshold,V=this.xData,W=this.yData;var $=I.pointArrayMap;$=$&&$.length;const rt=J.keys;let nt,ut=0,gt=1,dt=null;if(!ot.options.chart.allowMutatingData){J.data&&delete I.options.data,I.userOptions.data&&delete I.userOptions.data;var pt=q(!0,o)}if(o=pt||o||[],pt=o.length,ht&&ht.enabled&&(o=this.sortData(o)),ot.options.chart.allowMutatingData&&B!==!1&&pt&&Z&&!I.cropped&&!I.hasGroupedData&&I.visible&&!I.boosted&&(nt=this.updateData(o,f)),!nt){if(I.xIncrement=null,I.colorCounter=0,this.parallelArrays.forEach(function(xt){I[xt+"Data"].length=0}),C&&pt>C)if(dt=I.getFirstValidPoint(o),T(dt))for(f=0;f<pt;f++)V[f]=this.autoIncrement(),W[f]=o[f];else if(r(dt))if($)if(dt.length===$)for(f=0;f<pt;f++)V[f]=this.autoIncrement(),W[f]=o[f];else for(f=0;f<pt;f++)B=o[f],V[f]=B[0],W[f]=B.slice(1,$+1);else if(rt&&(ut=rt.indexOf("x"),gt=rt.indexOf("y"),ut=0<=ut?ut:0,gt=0<=gt?gt:1),dt.length===1&&(gt=0),ut===gt)for(f=0;f<pt;f++)V[f]=this.autoIncrement(),W[f]=o[f][gt];else for(f=0;f<pt;f++)B=o[f],V[f]=B[ut],W[f]=B[gt];else c(12,!1,ot);else for(f=0;f<pt;f++)B={series:I},I.pointClass.prototype.applyOptions.apply(B,[o[f]]),I.updateParallelArrays(B,f);for(W&&G(W[0])&&c(14,!0,ot),I.data=[],I.options.data=I.userOptions.data=o,f=Z;f--;)(R=_[f])===null||R===void 0||R.destroy();P&&(P.minRange=P.userMinRange),I.isDirty=ot.isDirtyBox=!0,I.isDirtyData=!!_,f=!1}J.legendType==="point"&&(this.processData(),this.generatePoints()),g&&ot.redraw(f)}sortData(o){const g=this,f=g.options.dataSorting.sortKey||"y",B=function(R,I){return a(I)&&R.pointClass.prototype.optionsToObject.call({series:R},I)||{}};return o.forEach(function(R,I){o[I]=B(g,R),o[I].index=I},this),o.concat().sort((R,I)=>(R=u(f,R),I=u(f,I),I<R?-1:I>R?1:0)).forEach(function(R,I){R.x=I},this),g.linkedSeries&&g.linkedSeries.forEach(function(R){const I=R.options,_=I.data;I.dataSorting&&I.dataSorting.enabled||!_||(_.forEach(function(Z,J){_[J]=B(R,Z),o[J]&&(_[J].x=o[J].x,_[J].index=J)}),R.setData(_,!1))}),o}getProcessedData(o){const g=this;var f=g.xAxis,B=g.options;const R=B.cropThreshold,I=o||g.getExtremesFromAll||B.getExtremesFromAll,_=f==null?void 0:f.logarithmic,Z=g.isCartesian;let J=0,ot;o=g.xData,B=g.yData;let ht=!1;const P=o.length;if(f){var C=f.getExtremes();ot=C.min,C=C.max,ht=!(!f.categories||f.names.length)}if(Z&&g.sorted&&!I&&(!R||P>R||g.forceCrop)){if(o[P-1]<ot||o[0]>C)o=[],B=[];else if(g.yData&&(o[0]<ot||o[P-1]>C)){var V=this.cropData(g.xData,g.yData,ot,C);o=V.xData,B=V.yData,J=V.start,V=!0}}return f=h([_?o.map(_.log2lin):o],()=>g.requireSorting&&!ht&&c(15,!1,g.chart)),{xData:o,yData:B,cropped:V,cropStart:J,closestPointRange:f}}processData(o){const g=this.xAxis;if(this.isCartesian&&!this.isDirty&&!g.isDirty&&!this.yAxis.isDirty&&!o)return!1;o=this.getProcessedData(),this.cropped=o.cropped,this.cropStart=o.cropStart,this.processedXData=o.xData,this.processedYData=o.yData,this.closestPointRange=this.basePointRange=o.closestPointRange,i(this,"afterProcessData")}cropData(o,g,f,B,R){const I=o.length;let _,Z=0,J=I;for(R=D(R,this.cropShoulder),_=0;_<I;_++)if(o[_]>=f){Z=Math.max(0,_-R);break}for(f=_;f<I;f++)if(o[f]>B){J=f+R;break}return{xData:o.slice(Z,J),yData:g.slice(Z,J),start:Z,end:J}}generatePoints(){var o=this.options;const g=this.processedData||o.data,f=this.processedXData,B=this.processedYData,R=this.pointClass,I=f.length,_=this.cropStart||0,Z=this.hasGroupedData,J=o.keys,ot=[];o=o.dataGrouping&&o.dataGrouping.groupAll?_:0;let ht,P,C,V=this.data;if(!V&&!Z){var W=[];W.length=g.length,V=this.data=W}for(J&&Z&&(this.options.keys=!1),C=0;C<I;C++)W=_+C,Z?(P=new R().init(this,[f[C]].concat(M(B[C]))),P.dataGroup=this.groupMap[o+C],P.dataGroup.options&&(P.options=P.dataGroup.options,e(P,P.dataGroup.options),delete P.dataLabels)):(P=V[W])||typeof g[W]>"u"||(V[W]=P=new R().init(this,g[W],f[C])),P&&(P.index=Z?o+C:W,ot[C]=P);if(this.options.keys=J,V&&(I!==(ht=V.length)||Z))for(C=0;C<ht;C++)C!==_||Z||(C+=I),V[C]&&(V[C].destroyElements(),V[C].plotX=void 0);this.data=V,this.points=ot,i(this,"afterGeneratePoints")}getXExtremes(o){return{min:v(o),max:b(o)}}getExtremes(o,g){const f=this.xAxis;var B=this.yAxis;const R=this.processedXData||this.xData,I=[],_=this.requireSorting?this.cropShoulder:0;B=B?B.positiveValuesOnly:!1;let Z,J=0,ot=0,ht=0;o=o||this.stackedYData||this.processedYData||[];const P=o.length;if(f){var C=f.getExtremes();J=C.min,ot=C.max}for(Z=0;Z<P;Z++){var V=R[Z];C=o[Z];var W=(T(C)||r(C))&&(C.length||0<C||!B);if(V=g||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!f||(R[Z+_]||V)>=J&&(R[Z-_]||V)<=ot,W&&V)if(W=C.length)for(;W--;)T(C[W])&&(I[ht++]=C[W]);else I[ht++]=C}return o={activeYData:I,dataMin:v(I),dataMax:b(I)},i(this,"afterGetExtremes",{dataExtremes:o}),o}applyExtremes(){const o=this.getExtremes();return this.dataMin=o.dataMin,this.dataMax=o.dataMax,o}getFirstValidPoint(o){const g=o.length;let f=0,B=null;for(;B===null&&f<g;)B=o[f],f++;return B}translate(){var o;this.processedXData||this.processData(),this.generatePoints();var g=this.options;const f=g.stacking,B=this.xAxis,R=B.categories,I=this.enabledDataSorting,_=this.yAxis,Z=this.points,J=Z.length,ot=this.pointPlacementToXValue(),ht=!!ot,P=g.threshold;g=g.startFromThreshold?P:0;let C,V,W,$,rt=Number.MAX_VALUE;for(C=0;C<J;C++){const nt=Z[C],ut=nt.x;let gt,dt,pt=nt.y,xt=nt.low;const ft=f&&((o=_.stacking)===null||o===void 0?void 0:o.stacks[(this.negStacks&&pt<(g?0:P)?"-":"")+this.stackKey]);V=B.translate(ut,!1,!1,!1,!0,ot),nt.plotX=T(V)?n(k(V,-1e5,1e5)):void 0,f&&this.visible&&ft&&ft[ut]&&($=this.getStackIndicator($,ut,this.index),!nt.isNull&&$.key&&(gt=ft[ut],dt=gt.points[$.key]),gt&&r(dt)&&(xt=dt[0],pt=dt[1],xt===g&&$.key===ft[ut].base&&(xt=D(T(P)?P:_.min)),_.positiveValuesOnly&&a(xt)&&0>=xt&&(xt=void 0),nt.total=nt.stackTotal=D(gt.total),nt.percentage=a(nt.y)&&gt.total?nt.y/gt.total*100:void 0,nt.stackY=pt,this.irregularWidths||gt.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis))),nt.yBottom=a(xt)?k(_.translate(xt,!1,!0,!1,!0),-1e5,1e5):void 0,this.dataModify&&(pt=this.dataModify.modifyValue(pt,C));let mt;T(pt)&&nt.plotX!==void 0&&(mt=_.translate(pt,!1,!0,!1,!0),mt=T(mt)?k(mt,-1e5,1e5):void 0),nt.plotY=mt,nt.isInside=this.isPointInside(nt),nt.clientX=ht?n(B.translate(ut,!1,!1,!1,!0,ot)):V,nt.negative=(nt.y||0)<(P||0),nt.category=D(R&&R[nt.x],nt.x),nt.isNull||nt.visible===!1||(typeof W<"u"&&(rt=Math.min(rt,Math.abs(V-W))),W=V),nt.zone=this.zones.length?nt.getZone():void 0,!nt.graphic&&this.group&&I&&(nt.isNew=!0)}this.closestPointRangePx=rt,i(this,"afterTranslate")}getValidPoints(o,g,f){const B=this.chart;return(o||this.points||[]).filter(function(R){const{plotX:I,plotY:_}=R;return!f&&(R.isNull||!T(_))||g&&!B.isInsidePlot(I,_,{inverted:B.inverted})?!1:R.visible!==!1})}getClipBox(){const{chart:o,xAxis:g,yAxis:f}=this,B=q(o.clipBox);return g&&g.len!==o.plotSizeX&&(B.width=g.len),f&&f.len!==o.plotSizeY&&(B.height=f.len),B}getSharedClipKey(){return this.sharedClipKey=(this.options.xAxis||0)+","+(this.options.yAxis||0)}setClip(){const{chart:o,group:g,markerGroup:f}=this,B=o.sharedClips,R=o.renderer,I=this.getClipBox(),_=this.getSharedClipKey();let Z=B[_];Z?Z.animate(I):B[_]=Z=R.clipRect(I),g&&g.clip(this.options.clip===!1?void 0:Z),f&&f.clip()}animate(o){const{chart:g,group:f,markerGroup:B}=this,R=g.inverted;var I=S(this.options.animation),_=[this.getSharedClipKey(),I.duration,I.easing,I.defer].join();let Z=g.sharedClips[_],J=g.sharedClips[_+"m"];if(o&&f)I=this.getClipBox(),Z?Z.attr("height",I.height):(I.width=0,R&&(I.x=g.plotHeight),Z=g.renderer.clipRect(I),g.sharedClips[_]=Z,J=g.renderer.clipRect({x:-99,y:-99,width:R?g.plotWidth+199:99,height:R?99:g.plotHeight+199}),g.sharedClips[_+"m"]=J),f.clip(Z),B&&B.clip(J);else if(Z&&!Z.hasClass("highcharts-animating")){_=this.getClipBox();const ot=I.step;B&&B.element.childNodes.length&&(I.step=function(ht,P){ot&&ot.apply(P,arguments),P.prop==="width"&&J&&J.element&&J.attr(R?"height":"width",ht+99)}),Z.addClass("highcharts-animating").animate(_,I)}}afterAnimate(){this.setClip(),Q(this.chart.sharedClips,(o,g,f)=>{o&&!this.chart.container.querySelector(`[clip-path="url(#${o.id})"]`)&&(o.destroy(),delete f[g])}),this.finishedAnimating=!0,i(this,"afterAnimate")}drawPoints(o=this.points){const g=this.chart,f=g.styledMode,{colorAxis:B,options:R}=this,I=R.marker,_=this[this.specialGroup||"markerGroup"],Z=this.xAxis,J=D(I.enabled,!Z||Z.isRadial?!0:null,this.closestPointRangePx>=I.enabledThreshold*I.radius);let ot,ht,P,C,V,W;if(I.enabled!==!1||this._hasPointMarkers)for(ot=0;ot<o.length;ot++){ht=o[ot],C=(P=ht.graphic)?"animate":"attr";var $=ht.marker||{};if(V=!!ht.marker,(J&&typeof $.enabled>"u"||$.enabled)&&!ht.isNull&&ht.visible!==!1){const rt=D($.symbol,this.symbol,"rect");W=this.markerAttribs(ht,ht.selected&&"select"),this.enabledDataSorting&&(ht.startXPos=Z.reversed?-(W.width||0):Z.width);const nt=ht.isInside!==!1;!P&&nt&&(0<(W.width||0)||ht.hasImage)&&(ht.graphic=P=g.renderer.symbol(rt,W.x,W.y,W.width,W.height,V?$:I).add(_),this.enabledDataSorting&&g.hasRendered&&(P.attr({x:ht.startXPos}),C="animate")),P&&C==="animate"&&P[nt?"show":"hide"](nt).animate(W),P&&($=this.pointAttribs(ht,f||!ht.selected?void 0:"select"),f?B&&P.css({fill:$.fill}):P[C]($)),P&&P.addClass(ht.getClassName(),!0)}else P&&(ht.graphic=P.destroy())}}markerAttribs(o,g){const f=this.options;var B=f.marker;const R=o.marker||{},I=R.symbol||B.symbol,_={};let Z=D(R.radius,B&&B.radius);return g&&(B=B.states[g],g=R.states&&R.states[g],Z=D(g&&g.radius,B&&B.radius,Z&&Z+(B&&B.radiusPlus||0))),o.hasImage=I&&I.indexOf("url")===0,o.hasImage&&(Z=0),o=o.pos(),T(Z)&&o&&(_.x=o[0]-Z,_.y=o[1]-Z,f.crisp&&(_.x=Math.floor(_.x))),Z&&(_.width=_.height=2*Z),_}pointAttribs(o,g){var f=this.options.marker,B=o&&o.options;const R=B&&B.marker||{};var I=B&&B.color,_=o&&o.color;const Z=o&&o.zone&&o.zone.color;let J=this.color;return o=D(R.lineWidth,f.lineWidth),B=1,J=I||Z||_||J,I=R.fillColor||f.fillColor||J,_=R.lineColor||f.lineColor||J,g=g||"normal",f=f.states[g]||{},g=R.states&&R.states[g]||{},o=D(g.lineWidth,f.lineWidth,o+D(g.lineWidthPlus,f.lineWidthPlus,0)),I=g.fillColor||f.fillColor||I,_=g.lineColor||f.lineColor||_,B=D(g.opacity,f.opacity,B),{stroke:_,"stroke-width":o,fill:I,opacity:B}}destroy(o){const g=this,f=g.chart,B=/AppleWebKit\/533/.test(y.navigator.userAgent),R=g.data||[];let I,_,Z,J;for(i(g,"destroy",{keepEventsForUpdate:o}),this.removeEvents(o),(g.axisTypes||[]).forEach(function(ot){(J=g[ot])&&J.series&&(l(J.series,g),J.isDirty=J.forceRedraw=!0)}),g.legendItem&&g.chart.legend.destroyItem(g),_=R.length;_--;)(Z=R[_])&&Z.destroy&&Z.destroy();g.clips&&g.clips.forEach(ot=>ot.destroy()),X.clearTimeout(g.animationTimeout),Q(g,function(ot,ht){ot instanceof U&&!ot.survive&&(I=B&&ht==="group"?"hide":"destroy",ot[I]())}),f.hoverSeries===g&&(f.hoverSeries=void 0),l(f.series,g),f.orderItems("series"),Q(g,function(ot,ht){o&&ht==="hcEvents"||delete g[ht]})}applyZones(){const o=this,g=this.chart,f=g.renderer,B=this.zones,R=this.clips||[],I=this.graph,_=this.area,Z=Math.max(g.plotWidth,g.plotHeight),J=this[(this.zoneAxis||"y")+"Axis"],ot=g.inverted;let ht,P,C,V,W,$,rt,nt,ut,gt,dt,pt=!1;B.length&&(I||_)&&J&&typeof J.min<"u"?(W=J.reversed,$=J.horiz,I&&!this.showLine&&I.hide(),_&&_.hide(),V=J.getExtremes(),B.forEach(function(xt,ft){ht=W?$?g.plotWidth:0:$?0:J.toPixels(V.min)||0,ht=k(D(P,ht),0,Z),P=k(Math.round(J.toPixels(D(xt.value,V.max),!0)||0),0,Z),pt&&(ht=P=J.toPixels(V.max)),rt=Math.abs(ht-P),nt=Math.min(ht,P),ut=Math.max(ht,P),J.isXAxis?(C={x:ot?ut:nt,y:0,width:rt,height:Z},$||(C.x=g.plotHeight-C.x)):(C={x:0,y:ot?ut:nt,width:Z,height:rt},$&&(C.y=g.plotWidth-C.y)),R[ft]?R[ft].animate(C):R[ft]=f.clipRect(C),gt=o["zone-area-"+ft],dt=o["zone-graph-"+ft],I&&dt&&dt.clip(R[ft]),_&&gt&&gt.clip(R[ft]),pt=xt.value>V.max,o.resetZones&&P===0&&(P=void 0)}),this.clips=R):o.visible&&(I&&I.show(),_&&_.show())}plotGroup(o,g,f,B,R){let I=this[o];const _=!I;return f={visibility:f,zIndex:B||.1},typeof this.opacity>"u"||this.chart.styledMode||this.state==="inactive"||(f.opacity=this.opacity),_&&(this[o]=I=this.chart.renderer.g().add(R)),I.addClass("highcharts-"+g+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(a(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(I.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),I.attr(f)[_?"attr":"animate"](this.getPlotBox(g)),I}getPlotBox(o){let g=this.xAxis,f=this.yAxis;const B=this.chart;return o=B.inverted&&!B.polar&&g&&this.invertible!==!1&&o==="series",B.inverted&&(g=f,f=this.xAxis),{translateX:g?g.left:B.plotLeft,translateY:f?f.top:B.plotTop,rotation:o?90:0,rotationOriginX:o?(g.len-f.len)/2:0,rotationOriginY:o?(g.len+f.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(o){o||s(this),this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(g){g()}),this.eventsToUnbind.length=0)}render(){const o=this;var g=o.chart;const f=o.options,B=S(f.animation),R=o.visible?"inherit":"hidden",I=f.zIndex,_=o.hasRendered;g=g.seriesGroup;let Z=o.finishedAnimating?0:B.duration;i(this,"render"),o.plotGroup("group","series",R,I,g),o.markerGroup=o.plotGroup("markerGroup","markers",R,I,g),f.clip!==!1&&o.setClip(),o.animate&&Z&&o.animate(!0),o.drawGraph&&(o.drawGraph(),o.applyZones()),o.visible&&o.drawPoints(),o.drawDataLabels&&o.drawDataLabels(),o.redrawPoints&&o.redrawPoints(),o.drawTracker&&f.enableMouseTracking&&o.drawTracker(),o.animate&&Z&&o.animate(),_||(Z&&B.defer&&(Z+=B.defer),o.animationTimeout=j(function(){o.afterAnimate()},Z||0)),o.isDirty=!1,o.hasRendered=!0,i(o,"afterRender")}redraw(){const o=this.isDirty||this.isDirtyData;this.translate(),this.render(),o&&delete this.kdTree}searchPoint(o,g){const f=this.xAxis,B=this.yAxis,R=this.chart.inverted;return this.searchKDTree({clientX:R?f.len-o.chartY+f.pos:o.chartX-f.pos,plotY:R?B.len-o.chartX+B.pos:o.chartY-B.pos},g,o)}buildKDTree(o){function g(R,I,_){var Z=R&&R.length;let J;if(Z)return J=f.kdAxisArray[I%_],R.sort(function(ot,ht){return ot[J]-ht[J]}),Z=Math.floor(Z/2),{point:R[Z],left:g(R.slice(0,Z),I+1,_),right:g(R.slice(Z+1),I+1,_)}}this.buildingKdTree=!0;const f=this,B=-1<f.options.findNearestPointBy.indexOf("y")?2:1;delete f.kdTree,j(function(){f.kdTree=g(f.getValidPoints(null,!f.directTouch),B,B),f.buildingKdTree=!1},f.options.kdNow||o&&o.type==="touchstart"?0:1)}searchKDTree(o,g,f){function B(J,ot,ht,P){const C=ot.point;var V=R.kdAxisArray[ht%P];let W=C;var $=a(J[I])&&a(C[I])?Math.pow(J[I]-C[I],2):null,rt=a(J[_])&&a(C[_])?Math.pow(J[_]-C[_],2):null;return rt=($||0)+(rt||0),C.dist=a(rt)?Math.sqrt(rt):Number.MAX_VALUE,C.distX=a($)?Math.sqrt($):Number.MAX_VALUE,V=J[V]-C[V],rt=0>V?"left":"right",$=0>V?"right":"left",ot[rt]&&(rt=B(J,ot[rt],ht+1,P),W=rt[Z]<W[Z]?rt:C),ot[$]&&Math.sqrt(V*V)<W[Z]&&(J=B(J,ot[$],ht+1,P),W=J[Z]<W[Z]?J:W),W}const R=this,I=this.kdAxisArray[0],_=this.kdAxisArray[1],Z=g?"distX":"dist";if(g=-1<R.options.findNearestPointBy.indexOf("y")?2:1,this.kdTree||this.buildingKdTree||this.buildKDTree(f),this.kdTree)return B(o,this.kdTree,g,g)}pointPlacementToXValue(){const{options:{pointPlacement:o,pointRange:g},xAxis:f}=this;let B=o;return B==="between"&&(B=f.reversed?-.5:.5),T(B)?B*(g||f.pointRange):0}isPointInside(o){const{chart:g,xAxis:f,yAxis:B}=this;return typeof o.plotY<"u"&&typeof o.plotX<"u"&&0<=o.plotY&&o.plotY<=(B?B.len:g.plotHeight)&&0<=o.plotX&&o.plotX<=(f?f.len:g.plotWidth)}drawTracker(){const o=this,g=o.options,f=g.trackByArea,B=[].concat(f?o.areaPath:o.graphPath),R=o.chart,I=R.pointer,_=R.renderer,Z=R.options.tooltip.snap,J=o.tracker,ot=function(P){g.enableMouseTracking&&R.hoverSeries!==o&&o.onMouseOver()},ht="rgba(192,192,192,"+(x?1e-4:.002)+")";J?J.attr({d:B}):o.graph&&(o.tracker=_.path(B).attr({visibility:o.visible?"inherit":"hidden",zIndex:2}).addClass(f?"highcharts-tracker-area":"highcharts-tracker-line").add(o.group),R.styledMode||o.tracker.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:ht,fill:f?ht:"none","stroke-width":o.graph.strokeWidth()+(f?0:2*Z)}),[o.tracker,o.markerGroup,o.dataLabelsGroup].forEach(function(P){P&&(P.addClass("highcharts-tracker").on("mouseover",ot).on("mouseout",function(C){I.onTrackerMouseOut(C)}),g.cursor&&!R.styledMode&&P.css({cursor:g.cursor}),d)&&P.on("touchstart",ot)})),i(this,"afterDrawTracker")}addPoint(o,g,f,B,R){const I=this.options,_=this.data,Z=this.chart;var J=this.xAxis;J=J&&J.hasNames&&J.names;const ot=I.data,ht=this.xData;let P,C;g=D(g,!0);const V={series:this};this.pointClass.prototype.applyOptions.apply(V,[o]);const W=V.x;if(C=ht.length,this.requireSorting&&W<ht[C-1])for(P=!0;C&&ht[C-1]>W;)C--;this.updateParallelArrays(V,"splice",[C,0,0]),this.updateParallelArrays(V,C),J&&V.name&&(J[W]=V.name),ot.splice(C,0,o),(P||this.processedData)&&(this.data.splice(C,0,null),this.processData()),I.legendType==="point"&&this.generatePoints(),f&&(_[0]&&_[0].remove?_[0].remove(!1):(_.shift(),this.updateParallelArrays(V,"shift"),ot.shift())),R!==!1&&i(this,"addPoint",{point:V}),this.isDirtyData=this.isDirty=!0,g&&Z.redraw(B)}removePoint(o,g,f){const B=this,R=B.data,I=R[o],_=B.points,Z=B.chart,J=function(){_&&_.length===R.length&&_.splice(o,1),R.splice(o,1),B.options.data.splice(o,1),B.updateParallelArrays(I||{series:B},"splice",[o,1]),I&&I.destroy(),B.isDirty=!0,B.isDirtyData=!0,g&&Z.redraw()};w(f,Z),g=D(g,!0),I?I.firePointEvent("remove",null,J):J()}remove(o,g,f,B){function R(){I.destroy(B),_.isDirtyLegend=_.isDirtyBox=!0,_.linkSeries(B),D(o,!0)&&_.redraw(g)}const I=this,_=I.chart;f!==!1?i(I,"remove",null,R):R()}update(o,g){o=p(o,this.userOptions),i(this,"update",{options:o});const f=this,B=f.chart;var R=f.userOptions;const I=f.initialType||f.type;var _=B.options.plotOptions;const Z=m[I].prototype;var J=f.finishedAnimating&&{animation:!1};const ot={};let ht,P=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],C=o.type||R.type||B.options.chart.type;const V=!(this.hasDerivedData||C&&C!==this.type||typeof o.pointStart<"u"||typeof o.pointInterval<"u"||typeof o.relativeXValue<"u"||o.joinBy||o.mapData||f.hasOptionChanged("dataGrouping")||f.hasOptionChanged("pointStart")||f.hasOptionChanged("pointInterval")||f.hasOptionChanged("pointIntervalUnit")||f.hasOptionChanged("keys"));if(C=C||I,V&&(P.push("data","isDirtyData","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","_hasPointLabels","clips","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX"),o.visible!==!1&&P.push("area","graph"),f.parallelArrays.forEach(function(W){P.push(W+"Data")}),o.data&&(o.dataSorting&&e(f.options.dataSorting,o.dataSorting),this.setData(o.data,!1))),o=q(R,J,{index:typeof R.index>"u"?f.index:R.index,pointStart:D(_&&_.series&&_.series.pointStart,R.pointStart,f.xData[0])},!V&&{data:f.options.data},o),V&&o.data&&(o.data=f.options.data),P=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(P),P.forEach(function(W){P[W]=f[W],delete f[W]}),_=!1,m[C]){if(_=C!==f.type,f.remove(!1,!1,!1,!0),_)if(Object.setPrototypeOf)Object.setPrototypeOf(f,m[C].prototype);else{J=Object.hasOwnProperty.call(f,"hcEvents")&&f.hcEvents;for(ht in Z)f[ht]=void 0;e(f,m[C].prototype),J?f.hcEvents=J:delete f.hcEvents}}else c(17,!0,B,{missingModuleFor:C});if(P.forEach(function(W){f[W]=P[W]}),f.init(B,o),V&&this.points){if(o=f.options,o.visible===!1)ot.graphic=1,ot.dataLabel=1;else if(!f._hasPointLabels){const{marker:W,dataLabels:$}=o;R=R.marker||{},!W||W.enabled!==!1&&R.symbol===W.symbol&&R.height===W.height&&R.width===W.width||(ot.graphic=1),$&&$.enabled===!1&&(ot.dataLabel=1)}for(const W of this.points)W&&W.series&&(W.resolveColor(),Object.keys(ot).length&&W.destroyElements(ot),o.showInLegend===!1&&W.legendItem&&B.legend.destroyItem(W))}f.initialType=I,B.linkSeries(),_&&f.linkedSeries.length&&(f.isDirtyData=!0),i(this,"afterUpdate"),D(g,!0)&&B.redraw(V?void 0:!1)}setName(o){this.name=this.options.name=this.userOptions.name=o,this.chart.isDirtyLegend=!0}hasOptionChanged(o){const g=this.options[o],f=this.chart.options.plotOptions,B=this.userOptions[o];return B?g!==B:g!==D(f&&f[this.type]&&f[this.type][o],f&&f.series&&f.series[o],g)}onMouseOver(){const o=this.chart,g=o.hoverSeries;o.pointer.setHoverChartIndex(),g&&g!==this&&g.onMouseOut(),this.options.events.mouseOver&&i(this,"mouseOver"),this.setState("hover"),o.hoverSeries=this}onMouseOut(){const o=this.options,g=this.chart,f=g.tooltip,B=g.hoverPoint;g.hoverSeries=null,B&&B.onMouseOut(),this&&o.events.mouseOut&&i(this,"mouseOut"),!f||this.stickyTracking||f.shared&&!this.noSharedTooltip||f.hide(),g.series.forEach(function(R){R.setState("",!0)})}setState(o,g){const f=this;var B=f.options;const R=f.graph,I=B.inactiveOtherPoints,_=B.states,Z=D(_[o||"normal"]&&_[o||"normal"].animation,f.chart.options.chart.animation);let J=B.lineWidth,ot=0,ht=B.opacity;if(o=o||"",f.state!==o&&([f.group,f.markerGroup,f.dataLabelsGroup].forEach(function(P){P&&(f.state&&P.removeClass("highcharts-series-"+f.state),o&&P.addClass("highcharts-series-"+o))}),f.state=o,!f.chart.styledMode)){if(_[o]&&_[o].enabled===!1)return;if(o&&(J=_[o].lineWidth||J+(_[o].lineWidthPlus||0),ht=D(_[o].opacity,ht)),R&&!R.dashstyle&&T(J))for(B={"stroke-width":J},R.animate(B,Z);f["zone-graph-"+ot];)f["zone-graph-"+ot].animate(B,Z),ot+=1;I||[f.group,f.markerGroup,f.dataLabelsGroup,f.labelBySeries].forEach(function(P){P&&P.animate({opacity:ht},Z)})}g&&I&&f.points&&f.setAllPointsToState(o||void 0)}setAllPointsToState(o){this.points.forEach(function(g){g.setState&&g.setState(o)})}setVisible(o,g){const f=this,B=f.chart,R=B.options.chart.ignoreHiddenSeries,I=f.visible,_=(f.visible=o=f.options.visible=f.userOptions.visible=typeof o>"u"?!I:o)?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(function(Z){f[Z]&&f[Z][_]()}),(B.hoverSeries===f||(B.hoverPoint&&B.hoverPoint.series)===f)&&f.onMouseOut(),f.legendItem&&B.legend.colorizeItem(f,o),f.isDirty=!0,f.options.stacking&&B.series.forEach(function(Z){Z.options.stacking&&Z.visible&&(Z.isDirty=!0)}),f.linkedSeries.forEach(function(Z){Z.setVisible(o,!1)}),R&&(B.isDirtyBox=!0),i(f,_),g!==!1&&B.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(o){this.selected=o=this.options.selected=typeof o>"u"?!this.selected:o,this.checkbox&&(this.checkbox.checked=o),i(this,o?"select":"unselect")}shouldShowTooltip(o,g,f={}){return f.series=this,f.visiblePlotOnly=!0,this.chart.isInsidePlot(o,g,f)}drawLegendSymbol(o,g){var f;(f=tt[this.options.legendSymbol||"rectangle"])===null||f===void 0||f.call(this,o,g)}}return O.defaultOptions=st,O.types=H.seriesTypes,O.registerType=H.registerSeriesType,e(O.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,cropShoulder:1,directTouch:!1,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:it,requireSorting:!0,sorted:!0}),H.series=O,O}),ct(z,"Core/Chart/Chart.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Axis/Axis.js"],z["Core/Defaults.js"],z["Core/Templating.js"],z["Core/Foundation.js"],z["Core/Globals.js"],z["Core/Renderer/RendererRegistry.js"],z["Core/Series/Series.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Renderer/SVG/SVGRenderer.js"],z["Core/Time.js"],z["Core/Utilities.js"],z["Core/Renderer/HTML/AST.js"]],function(F,N,K,et,tt,it,st,H,U,X,S,w,L){const{animate:E,animObject:d,setAnimation:x}=F,{defaultOptions:y,defaultTime:m}=K,{numberFormat:b}=et,{registerEventOptions:v}=tt,{charts:k,doc:n,marginNames:a,svg:p,win:l}=it,{seriesTypes:c}=U,{addEvent:e,attr:t,createElement:i,css:h,defined:u,diffObjects:A,discardElement:r,erase:T,error:G,extend:q,find:Q,fireEvent:D,getStyle:s,isArray:M,isNumber:j,isObject:O,isString:Y,merge:o,objectEach:g,pick:f,pInt:B,relativeLength:R,removeEvent:I,splat:_,syncTimeout:Z,uniqueKey:J}=w;class ot{static chart(P,C,V){return new ot(P,C,V)}constructor(P,C,V){this.series=this.renderTo=this.renderer=this.pointer=this.pointCount=this.plotWidth=this.plotTop=this.plotLeft=this.plotHeight=this.plotBox=this.options=this.numberFormatter=this.margin=this.labelCollectors=this.isResizing=this.index=this.eventOptions=this.container=this.colorCounter=this.clipBox=this.chartWidth=this.chartHeight=this.bounds=this.axisOffset=this.axes=void 0,this.sharedClips={},this.zooming=this.yAxis=this.xAxis=this.userOptions=this.titleOffset=this.time=this.symbolCounter=this.spacingBox=this.spacing=void 0,this.getArgs(P,C,V)}getArgs(P,C,V){Y(P)||P.nodeName?(this.renderTo=P,this.init(C,V)):this.init(P,C)}setZoomOptions(){const P=this.options.chart,C=P.zooming;this.zooming=Object.assign(Object.assign({},C),{type:f(P.zoomType,C.type),key:f(P.zoomKey,C.key),pinchType:f(P.pinchType,C.pinchType),singleTouch:f(P.zoomBySingleTouch,C.singleTouch,!1),resetButton:o(C.resetButton,P.resetZoomButton)})}init(P,C){D(this,"init",{args:arguments},function(){const V=o(y,P),W=V.chart;this.userOptions=q({},P),this.margin=[],this.spacing=[],this.bounds={h:{},v:{}},this.labelCollectors=[],this.callback=C,this.isResizing=0,this.options=V,this.axes=[],this.series=[],this.time=P.time&&Object.keys(P.time).length?new S(P.time):it.time,this.numberFormatter=W.numberFormatter||b,this.styledMode=W.styledMode,this.hasCartesianSeries=W.showAxes,this.index=k.length,k.push(this),it.chartCount++,v(this,W),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),D(this,"afterInit"),this.firstRender()})}initSeries(P){var C=this.options.chart;C=P.type||C.type;const V=c[C];return V||G(17,!0,this,{missingModuleFor:C}),C=new V,typeof C.init=="function"&&C.init(this,P),C}setSeriesData(){this.getSeriesOrderByLinks().forEach(function(P){P.points||P.data||!P.enabledDataSorting||P.setData(P.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(P,C){return P.linkedSeries.length||C.linkedSeries.length?C.linkedSeries.length-P.linkedSeries.length:0})}orderItems(P,C=0){const V=this[P],W=this.options[P]=_(this.options[P]).slice();if(P=this.userOptions[P]=this.userOptions[P]?_(this.userOptions[P]).slice():[],this.hasRendered&&(W.splice(C),P.splice(C)),V)for(let $=C,rt=V.length;$<rt;++$)(C=V[$])&&(C.index=$,C instanceof H&&(C.name=C.getName()),C.options.isInternal||(W[$]=C.options,P[$]=C.userOptions))}isInsidePlot(P,C,V={}){const{inverted:W,plotBox:$,plotLeft:rt,plotTop:nt,scrollablePlotBox:ut}=this;var gt=0;let dt=0;V.visiblePlotOnly&&this.scrollingContainer&&({scrollLeft:gt,scrollTop:dt}=this.scrollingContainer);const pt=V.series,xt=V.visiblePlotOnly&&ut||$;var ft=V.inverted?C:P;if(C=V.inverted?P:C,P={x:ft,y:C,isInsidePlot:!0,options:V},!V.ignoreX){const mt=pt&&(W&&!this.polar?pt.yAxis:pt.xAxis)||{pos:rt,len:1/0};ft=V.paneCoordinates?mt.pos+ft:rt+ft,ft>=Math.max(gt+rt,mt.pos)&&ft<=Math.min(gt+rt+xt.width,mt.pos+mt.len)||(P.isInsidePlot=!1)}return!V.ignoreY&&P.isInsidePlot&&(gt=!W&&V.axis&&!V.axis.isXAxis&&V.axis||pt&&(W?pt.xAxis:pt.yAxis)||{pos:nt,len:1/0},V=V.paneCoordinates?gt.pos+C:nt+C,V>=Math.max(dt+nt,gt.pos)&&V<=Math.min(dt+nt+xt.height,gt.pos+gt.len)||(P.isInsidePlot=!1)),D(this,"afterIsInsidePlot",P),P.isInsidePlot}redraw(P){D(this,"beforeRedraw");const C=this.hasCartesianSeries?this.axes:this.colorAxis||[],V=this.series,W=this.pointer,$=this.legend,rt=this.userOptions.legend,nt=this.renderer,ut=nt.isHidden(),gt=[];let dt,pt,xt=this.isDirtyBox,ft=this.isDirtyLegend,mt;for(nt.rootFontSize=nt.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),x(this.hasRendered?P:!1,this),ut&&this.temporaryDisplay(),this.layOutTitles(!1),P=V.length;P--;)if(mt=V[P],(mt.options.stacking||mt.options.centerInCategory)&&(pt=!0,mt.isDirty)){dt=!0;break}if(dt)for(P=V.length;P--;)mt=V[P],mt.options.stacking&&(mt.isDirty=!0);V.forEach(function(yt){yt.isDirty&&(yt.options.legendType==="point"?(typeof yt.updateTotals=="function"&&yt.updateTotals(),ft=!0):rt&&(rt.labelFormatter||rt.labelFormat)&&(ft=!0)),yt.isDirtyData&&D(yt,"updatedData")}),ft&&$&&$.options.enabled&&($.render(),this.isDirtyLegend=!1),pt&&this.getStacks(),C.forEach(function(yt){yt.updateNames(),yt.setScale()}),this.getMargins(),C.forEach(function(yt){yt.isDirty&&(xt=!0)}),C.forEach(function(yt){const Ct=yt.min+","+yt.max;yt.extKey!==Ct&&(yt.extKey=Ct,gt.push(function(){D(yt,"afterSetExtremes",q(yt.eventArgs,yt.getExtremes())),delete yt.eventArgs})),(xt||pt)&&yt.redraw()}),xt&&this.drawChartBox(),D(this,"predraw"),V.forEach(function(yt){(xt||yt.isDirty)&&yt.visible&&yt.redraw(),yt.isDirtyData=!1}),W&&W.reset(!0),nt.draw(),D(this,"redraw"),D(this,"render"),ut&&this.temporaryDisplay(!0),gt.forEach(function(yt){yt.call()})}get(P){function C($){return $.id===P||$.options&&$.options.id===P}const V=this.series;let W=Q(this.axes,C)||Q(this.series,C);for(let $=0;!W&&$<V.length;$++)W=Q(V[$].points||[],C);return W}getAxes(){const P=this.options;D(this,"getAxes");for(const C of["xAxis","yAxis"]){const V=P[C]=_(P[C]||{});for(const W of V)new N(this,W,C)}D(this,"afterGetAxes")}getSelectedPoints(){return this.series.reduce((P,C)=>(C.getPointsCollection().forEach(V=>{f(V.selectedStaging,V.selected)&&P.push(V)}),P),[])}getSelectedSeries(){return this.series.filter(function(P){return P.selected})}setTitle(P,C,V){this.applyDescription("title",P),this.applyDescription("subtitle",C),this.applyDescription("caption",void 0),this.layOutTitles(V)}applyDescription(P,C){const V=this,W=this.options[P]=o(this.options[P],C);let $=this[P];$&&C&&(this[P]=$=$.destroy()),W&&!$&&($=this.renderer.text(W.text,0,0,W.useHTML).attr({align:W.align,class:"highcharts-"+P,zIndex:W.zIndex||4}).add(),$.update=function(rt,nt){V.applyDescription(P,rt),V.layOutTitles(nt)},this.styledMode||$.css(q(P==="title"?{fontSize:this.options.isStock?"1em":"1.2em"}:{},W.style)),this[P]=$)}layOutTitles(P=!0){const C=[0,0,0],V=this.renderer,W=this.spacingBox;["title","subtitle","caption"].forEach(function(rt){const nt=this[rt],ut=this.options[rt],gt=ut.verticalAlign||"top";if(rt=rt==="title"?gt==="top"?-3:0:gt==="top"?C[0]+2:0,nt){nt.css({width:(ut.width||W.width+(ut.widthAdjust||0))+"px"});const dt=V.fontMetrics(nt).b,pt=Math.round(nt.getBBox(ut.useHTML).height);nt.align(q({y:gt==="bottom"?dt:rt+dt,height:pt},ut),!1,"spacingBox"),ut.floating||(gt==="top"?C[0]=Math.ceil(C[0]+pt):gt==="bottom"&&(C[2]=Math.ceil(C[2]+pt)))}},this),C[0]&&(this.options.title.verticalAlign||"top")==="top"&&(C[0]+=this.options.title.margin),C[2]&&this.options.caption.verticalAlign==="bottom"&&(C[2]+=this.options.caption.margin);const $=!this.titleOffset||this.titleOffset.join(",")!==C.join(",");this.titleOffset=C,D(this,"afterLayOutTitles"),!this.isDirtyBox&&$&&(this.isDirtyBox=this.isDirtyLegend=$,this.hasRendered&&P&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:s(this.renderTo,"width",!0)||0,height:s(this.renderTo,"height",!0)||0}}getChartSize(){var P=this.options.chart;const C=P.width;P=P.height;const V=this.getContainerBox();this.chartWidth=Math.max(0,C||V.width||600),this.chartHeight=Math.max(0,R(P,this.chartWidth)||(1<V.height?V.height:400)),this.containerBox=V}temporaryDisplay(P){let C=this.renderTo;if(P)for(;C&&C.style;)C.hcOrigStyle&&(h(C,C.hcOrigStyle),delete C.hcOrigStyle),C.hcOrigDetached&&(n.body.removeChild(C),C.hcOrigDetached=!1),C=C.parentNode;else for(;C&&C.style&&(n.body.contains(C)||C.parentNode||(C.hcOrigDetached=!0,n.body.appendChild(C)),(s(C,"display",!1)==="none"||C.hcOricDetached)&&(C.hcOrigStyle={display:C.style.display,height:C.style.height,overflow:C.style.overflow},P={display:"block",overflow:"hidden"},C!==this.renderTo&&(P.height=0),h(C,P),C.offsetWidth||C.style.setProperty("display","block","important")),C=C.parentNode,C!==n.body););}setClassName(P){this.container.className="highcharts-container "+(P||"")}getContainer(){const P=this.options,C=P.chart;var V=J();let W,$=this.renderTo;$||(this.renderTo=$=C.renderTo),Y($)&&(this.renderTo=$=n.getElementById($)),$||G(13,!0,this);var rt=B(t($,"data-highcharts-chart"));j(rt)&&k[rt]&&k[rt].hasRendered&&k[rt].destroy(),t($,"data-highcharts-chart",this.index),$.innerHTML=L.emptyHTML,C.skipClone||$.offsetWidth||this.temporaryDisplay(),this.getChartSize(),rt=this.chartWidth;const nt=this.chartHeight;if(h($,{overflow:"hidden"}),this.styledMode||(W=q({position:"relative",overflow:"hidden",width:rt+"px",height:nt+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},C.style||{})),this.container=V=i("div",{id:V},W,$),this._cursor=V.style.cursor,this.renderer=new(C.renderer||!p?st.getRendererType(C.renderer):X)(V,rt,nt,void 0,C.forExport,P.exporting&&P.exporting.allowHTML,this.styledMode),this.containerBox=this.getContainerBox(),x(void 0,this),this.setClassName(C.className),this.styledMode)for(const ut in P.defs)this.renderer.definition(P.defs[ut]);else this.renderer.setStyle(C.style);this.renderer.chartIndex=this.index,D(this,"afterGetContainer")}getMargins(P){const{spacing:C,margin:V,titleOffset:W}=this;this.resetMargins(),W[0]&&!u(V[0])&&(this.plotTop=Math.max(this.plotTop,W[0]+C[0])),W[2]&&!u(V[2])&&(this.marginBottom=Math.max(this.marginBottom,W[2]+C[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(V,C),D(this,"getMargins"),P||this.getAxisMargins()}getAxisMargins(){const P=this,C=P.axisOffset=[0,0,0,0],V=P.colorAxis,W=P.margin,$=function(rt){rt.forEach(function(nt){nt.visible&&nt.getOffset()})};P.hasCartesianSeries?$(P.axes):V&&V.length&&$(V),a.forEach(function(rt,nt){u(W[nt])||(P[rt]+=C[nt])}),P.setChartSize()}getOptions(){return A(this.userOptions,y)}reflow(P){const C=this;var V=C.options.chart;V=u(V.width)&&u(V.height);const W=C.containerBox,$=C.getContainerBox();delete C.pointer.chartPosition,!V&&!C.isPrinting&&W&&$.width&&(($.width!==W.width||$.height!==W.height)&&(w.clearTimeout(C.reflowTimeout),C.reflowTimeout=Z(function(){C.container&&C.setSize(void 0,void 0,!1)},P?100:0)),C.containerBox=$)}setReflow(){const P=this;var C=V=>{var W;!((W=P.options)===null||W===void 0)&&W.chart.reflow&&P.hasLoaded&&P.reflow(V)};typeof ResizeObserver=="function"?new ResizeObserver(C).observe(P.renderTo):(C=e(l,"resize",C),e(this,"destroy",C))}setSize(P,C,V){const W=this,$=W.renderer;W.isResizing+=1,x(V,W),V=$.globalAnimation,W.oldChartHeight=W.chartHeight,W.oldChartWidth=W.chartWidth,typeof P<"u"&&(W.options.chart.width=P),typeof C<"u"&&(W.options.chart.height=C),W.getChartSize(),W.styledMode||(V?E:h)(W.container,{width:W.chartWidth+"px",height:W.chartHeight+"px"},V),W.setChartSize(!0),$.setSize(W.chartWidth,W.chartHeight,V),W.axes.forEach(function(rt){rt.isDirty=!0,rt.setScale()}),W.isDirtyLegend=!0,W.isDirtyBox=!0,W.layOutTitles(),W.getMargins(),W.redraw(V),W.oldChartHeight=null,D(W,"resize"),Z(function(){W&&D(W,"endResize",null,function(){--W.isResizing})},d(V).duration)}setChartSize(P){var C=this.inverted;const V=this.renderer;var W=this.chartWidth,$=this.chartHeight;const rt=this.options.chart,nt=this.spacing,ut=this.clipOffset;let gt,dt,pt,xt;this.plotLeft=gt=Math.round(this.plotLeft),this.plotTop=dt=Math.round(this.plotTop),this.plotWidth=pt=Math.max(0,Math.round(W-gt-this.marginRight)),this.plotHeight=xt=Math.max(0,Math.round($-dt-this.marginBottom)),this.plotSizeX=C?xt:pt,this.plotSizeY=C?pt:xt,this.plotBorderWidth=rt.plotBorderWidth||0,this.spacingBox=V.spacingBox={x:nt[3],y:nt[0],width:W-nt[3]-nt[1],height:$-nt[0]-nt[2]},this.plotBox=V.plotBox={x:gt,y:dt,width:pt,height:xt},C=2*Math.floor(this.plotBorderWidth/2),W=Math.ceil(Math.max(C,ut[3])/2),$=Math.ceil(Math.max(C,ut[0])/2),this.clipBox={x:W,y:$,width:Math.floor(this.plotSizeX-Math.max(C,ut[1])/2-W),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(C,ut[2])/2-$))},P||(this.axes.forEach(function(ft){ft.setAxisSize(),ft.setAxisTranslation()}),V.alignElements()),D(this,"afterSetChartSize",{skipAxes:P})}resetMargins(){D(this,"resetMargins");const P=this,C=P.options.chart;["margin","spacing"].forEach(function(V){const W=C[V],$=O(W)?W:[W,W,W,W];["Top","Right","Bottom","Left"].forEach(function(rt,nt){P[V][nt]=f(C[V+rt],$[nt])})}),a.forEach(function(V,W){P[V]=f(P.margin[W],P.spacing[W])}),P.axisOffset=[0,0,0,0],P.clipOffset=[0,0,0,0]}drawChartBox(){const P=this.options.chart,C=this.renderer,V=this.chartWidth,W=this.chartHeight,$=this.styledMode,rt=this.plotBGImage;var nt=P.backgroundColor;const ut=P.plotBackgroundColor,gt=P.plotBackgroundImage,dt=this.plotLeft,pt=this.plotTop,xt=this.plotWidth,ft=this.plotHeight,mt=this.plotBox,yt=this.clipRect,Ct=this.clipBox;let kt=this.chartBackground,bt=this.plotBackground,Et=this.plotBorder,St,jt,Pt="animate";kt||(this.chartBackground=kt=C.rect().addClass("highcharts-background").add(),Pt="attr"),$?St=jt=kt.strokeWidth():(St=P.borderWidth||0,jt=St+(P.shadow?8:0),nt={fill:nt||"none"},(St||kt["stroke-width"])&&(nt.stroke=P.borderColor,nt["stroke-width"]=St),kt.attr(nt).shadow(P.shadow)),kt[Pt]({x:jt/2,y:jt/2,width:V-jt-St%2,height:W-jt-St%2,r:P.borderRadius}),Pt="animate",bt||(Pt="attr",this.plotBackground=bt=C.rect().addClass("highcharts-plot-background").add()),bt[Pt](mt),$||(bt.attr({fill:ut||"none"}).shadow(P.plotShadow),gt&&(rt?(gt!==rt.attr("href")&&rt.attr("href",gt),rt.animate(mt)):this.plotBGImage=C.image(gt,dt,pt,xt,ft).add())),yt?yt.animate({width:Ct.width,height:Ct.height}):this.clipRect=C.clipRect(Ct),Pt="animate",Et||(Pt="attr",this.plotBorder=Et=C.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),$||Et.attr({stroke:P.plotBorderColor,"stroke-width":P.plotBorderWidth||0,fill:"none"}),Et[Pt](Et.crisp({x:dt,y:pt,width:xt,height:ft},-Et.strokeWidth())),this.isDirtyBox=!1,D(this,"afterDrawChartBox")}propFromSeries(){const P=this,C=P.options.chart,V=P.options.series;let W,$,rt;["inverted","angular","polar"].forEach(function(nt){for($=c[C.type],rt=C[nt]||$&&$.prototype[nt],W=V&&V.length;!rt&&W--;)($=c[V[W].type])&&$.prototype[nt]&&(rt=!0);P[nt]=rt})}linkSeries(P){const C=this,V=C.series;V.forEach(function(W){W.linkedSeries.length=0}),V.forEach(function(W){let $=W.options.linkedTo;Y($)&&($=$===":previous"?C.series[W.index-1]:C.get($))&&$.linkedParent!==W&&($.linkedSeries.push(W),W.linkedParent=$,$.enabledDataSorting&&W.setDataSortingOptions(),W.visible=f(W.options.visible,$.options.visible,W.visible))}),D(this,"afterLinkSeries",{isUpdating:P})}renderSeries(){this.series.forEach(function(P){P.translate(),P.render()})}render(){const P=this.axes,C=this.colorAxis,V=this.renderer,W=function(dt){dt.forEach(function(pt){pt.visible&&pt.render()})};let $=0;this.setTitle(),D(this,"beforeMargins"),this.getStacks&&this.getStacks(),this.getMargins(!0),this.setChartSize();const rt=this.plotWidth;P.some(function(dt){if(dt.horiz&&dt.visible&&dt.options.labels.enabled&&dt.series.length)return $=21,!0});const nt=this.plotHeight=Math.max(this.plotHeight-$,0);P.forEach(function(dt){dt.setScale()}),this.getAxisMargins();const ut=1.1<rt/this.plotWidth,gt=1.05<nt/this.plotHeight;(ut||gt)&&(P.forEach(function(dt){(dt.horiz&&ut||!dt.horiz&&gt)&&dt.setTickInterval(!0)}),this.getMargins()),this.drawChartBox(),this.hasCartesianSeries?W(P):C&&C.length&&W(C),this.seriesGroup||(this.seriesGroup=V.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(P){const C=this,V=o(!0,this.options.credits,P);V.enabled&&!this.credits&&(this.credits=this.renderer.text(V.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){V.href&&(l.location.href=V.href)}).attr({align:V.position.align,zIndex:8}),C.styledMode||this.credits.css(V.style),this.credits.add().align(V.position),this.credits.update=function(W){C.credits=C.credits.destroy(),C.addCredits(W)})}destroy(){const P=this,C=P.axes,V=P.series,W=P.container,$=W&&W.parentNode;let rt;for(D(P,"destroy"),P.renderer.forExport?T(k,P):k[P.index]=void 0,it.chartCount--,P.renderTo.removeAttribute("data-highcharts-chart"),I(P),rt=C.length;rt--;)C[rt]=C[rt].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),rt=V.length;rt--;)V[rt]=V[rt].destroy();"title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer".split(" ").forEach(function(nt){const ut=P[nt];ut&&ut.destroy&&(P[nt]=ut.destroy())}),W&&(W.innerHTML=L.emptyHTML,I(W),$&&r(W)),g(P,function(nt,ut){delete P[ut]})}firstRender(){const P=this,C=P.options;P.getContainer(),P.resetMargins(),P.setChartSize(),P.propFromSeries(),P.getAxes();const V=M(C.series)?C.series:[];C.series=[],V.forEach(function(W){P.initSeries(W)}),P.linkSeries(),P.setSeriesData(),D(P,"beforeRender"),P.render(),P.pointer.getChartPosition(),!P.renderer.imgCount&&!P.hasLoaded&&P.onload(),P.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(P){P&&typeof this.index<"u"&&P.apply(this,[this])},this),D(this,"load"),D(this,"render"),u(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){const{options:P,title:C}=this;P&&!this.accessibility&&(this.renderer.boxWrapper.attr({role:"img","aria-label":(C&&C.element.textContent||"").replace(/</g,"&lt;")}),P.accessibility&&P.accessibility.enabled===!1||G('Highcharts warning: Consider including the "accessibility.js" module to make your chart more usable for people with disabilities. Set the "accessibility.enabled" option to false to remove this warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.',!1,this))}addSeries(P,C,V){const W=this;let $;return P&&(C=f(C,!0),D(W,"addSeries",{options:P},function(){$=W.initSeries(P),W.isDirtyLegend=!0,W.linkSeries(),$.enabledDataSorting&&$.setData(P.data,!1),D(W,"afterAddSeries",{series:$}),C&&W.redraw(V)})),$}addAxis(P,C,V,W){return this.createAxis(C?"xAxis":"yAxis",{axis:P,redraw:V,animation:W})}addColorAxis(P,C,V){return this.createAxis("colorAxis",{axis:P,redraw:C,animation:V})}createAxis(P,C){return P=new N(this,C.axis,P),f(C.redraw,!0)&&this.redraw(C.animation),P}showLoading(P){const C=this,V=C.options,W=V.loading,$=function(){rt&&h(rt,{left:C.plotLeft+"px",top:C.plotTop+"px",width:C.plotWidth+"px",height:C.plotHeight+"px"})};let rt=C.loadingDiv,nt=C.loadingSpan;rt||(C.loadingDiv=rt=i("div",{className:"highcharts-loading highcharts-loading-hidden"},null,C.container)),nt||(C.loadingSpan=nt=i("span",{className:"highcharts-loading-inner"},null,rt),e(C,"redraw",$)),rt.className="highcharts-loading",L.setElementHTML(nt,f(P,V.lang.loading,"")),C.styledMode||(h(rt,q(W.style,{zIndex:10})),h(nt,W.labelStyle),C.loadingShown||(h(rt,{opacity:0,display:""}),E(rt,{opacity:W.style.opacity||.5},{duration:W.showDuration||0}))),C.loadingShown=!0,$()}hideLoading(){const P=this.options,C=this.loadingDiv;C&&(C.className="highcharts-loading highcharts-loading-hidden",this.styledMode||E(C,{opacity:0},{duration:P.loading.hideDuration||100,complete:function(){h(C,{display:"none"})}})),this.loadingShown=!1}update(P,C,V,W){const $=this,rt={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle",caption:"setCaption"},nt=P.isResponsiveOptions,ut=[];let gt,dt;D($,"update",{options:P}),nt||$.setResponsive(!1,!0),P=A(P,$.options),$.userOptions=o($.userOptions,P);var pt=P.chart;if(pt){if(o(!0,$.options.chart,pt),this.setZoomOptions(),"className"in pt&&$.setClassName(pt.className),"inverted"in pt||"polar"in pt||"type"in pt){$.propFromSeries();var xt=!0}"alignTicks"in pt&&(xt=!0),"events"in pt&&v(this,pt),g(pt,function(ft,mt){$.propsRequireUpdateSeries.indexOf("chart."+mt)!==-1&&(gt=!0),$.propsRequireDirtyBox.indexOf(mt)!==-1&&($.isDirtyBox=!0),$.propsRequireReflow.indexOf(mt)!==-1&&(nt?$.isDirtyBox=!0:dt=!0)}),!$.styledMode&&pt.style&&$.renderer.setStyle($.options.chart.style||{})}!$.styledMode&&P.colors&&(this.options.colors=P.colors),P.time&&(this.time===m&&(this.time=new S(P.time)),o(!0,$.options.time,P.time)),g(P,function(ft,mt){$[mt]&&typeof $[mt].update=="function"?$[mt].update(ft,!1):typeof $[rt[mt]]=="function"?$[rt[mt]](ft):mt!=="colors"&&$.collectionsWithUpdate.indexOf(mt)===-1&&o(!0,$.options[mt],P[mt]),mt!=="chart"&&$.propsRequireUpdateSeries.indexOf(mt)!==-1&&(gt=!0)}),this.collectionsWithUpdate.forEach(function(ft){P[ft]&&(_(P[ft]).forEach(function(mt,yt){const Ct=u(mt.id);let kt;Ct&&(kt=$.get(mt.id)),!kt&&$[ft]&&(kt=$[ft][f(mt.index,yt)])&&(Ct&&u(kt.options.id)||kt.options.isInternal)&&(kt=void 0),kt&&kt.coll===ft&&(kt.update(mt,!1),V&&(kt.touched=!0)),!kt&&V&&$.collectionsWithInit[ft]&&($.collectionsWithInit[ft][0].apply($,[mt].concat($.collectionsWithInit[ft][1]||[]).concat([!1])).touched=!0)}),V&&$[ft].forEach(function(mt){mt.touched||mt.options.isInternal?delete mt.touched:ut.push(mt)}))}),ut.forEach(function(ft){ft.chart&&ft.remove&&ft.remove(!1)}),xt&&$.axes.forEach(function(ft){ft.update({},!1)}),gt&&$.getSeriesOrderByLinks().forEach(function(ft){ft.chart&&ft.update({},!1)},this),xt=pt&&pt.width,pt=pt&&(Y(pt.height)?R(pt.height,xt||$.chartWidth):pt.height),dt||j(xt)&&xt!==$.chartWidth||j(pt)&&pt!==$.chartHeight?$.setSize(xt,pt,W):f(C,!0)&&$.redraw(W),D($,"afterUpdate",{options:P,redraw:C,animation:W})}setSubtitle(P,C){this.applyDescription("subtitle",P),this.layOutTitles(C)}setCaption(P,C){this.applyDescription("caption",P),this.layOutTitles(C)}showResetZoom(){function P(){C.zoomOut()}const C=this,V=y.lang,W=C.zooming.resetButton,$=W.theme,rt=W.relativeTo==="chart"||W.relativeTo==="spacingBox"?null:"scrollablePlotBox";D(this,"beforeShowResetZoom",null,function(){C.resetZoomButton=C.renderer.button(V.resetZoom,null,null,P,$).attr({align:W.position.align,title:V.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(W.position,!1,rt)}),D(this,"afterShowResetZoom")}zoomOut(){D(this,"selection",{resetSelection:!0},this.zoom)}zoom(P){const C=this,V=C.pointer;let W=!1,$;!P||P.resetSelection?(C.axes.forEach(function(nt){$=nt.zoom()}),V.initiated=!1):P.xAxis.concat(P.yAxis).forEach(function(nt){const ut=nt.axis;(V[ut.isXAxis?"zoomX":"zoomY"]&&u(V.mouseDownX)&&u(V.mouseDownY)&&C.isInsidePlot(V.mouseDownX-C.plotLeft,V.mouseDownY-C.plotTop,{axis:ut})||!u(C.inverted?V.mouseDownX:V.mouseDownY))&&($=ut.zoom(nt.min,nt.max),ut.displayBtn&&(W=!0))});const rt=C.resetZoomButton;W&&!rt?C.showResetZoom():!W&&O(rt)&&(C.resetZoomButton=rt.destroy()),$&&C.redraw(f(C.options.chart.animation,P&&P.animation,100>C.pointCount))}pan(P,C){const V=this,W=V.hoverPoints;C=typeof C=="object"?C:{enabled:C,type:"x"};const $=V.options.chart;$&&$.panning&&($.panning=C);const rt=C.type;let nt;D(this,"pan",{originalEvent:P},function(){W&&W.forEach(function(dt){dt.setState()});let ut=V.xAxis;rt==="xy"?ut=ut.concat(V.yAxis):rt==="y"&&(ut=V.yAxis);const gt={};ut.forEach(function(dt){if(dt.options.panningEnabled&&!dt.options.isInternal){var pt=dt.horiz,xt=P[pt?"chartX":"chartY"];pt=pt?"mouseDownX":"mouseDownY";var ft=V[pt],mt=dt.minPointOffset||0,yt=dt.reversed&&!V.inverted||!dt.reversed&&V.inverted?-1:1,Ct=dt.getExtremes(),kt=dt.toValue(ft-xt,!0)+mt*yt,bt=dt.toValue(ft+dt.len-xt,!0)-(mt*yt||dt.isXAxis&&dt.pointRangePadding||0),Et=bt<kt;yt=dt.hasVerticalPanning(),ft=Et?bt:kt,kt=Et?kt:bt;var St=dt.panningState;!yt||dt.isXAxis||St&&!St.isDirty||dt.series.forEach(function(jt){var Pt=jt.getProcessedData(!0);Pt=jt.getExtremes(Pt.yData,!0),St||(St={startMin:Number.MAX_VALUE,startMax:-Number.MAX_VALUE}),j(Pt.dataMin)&&j(Pt.dataMax)&&(St.startMin=Math.min(f(jt.options.threshold,1/0),Pt.dataMin,St.startMin),St.startMax=Math.max(f(jt.options.threshold,-1/0),Pt.dataMax,St.startMax))}),yt=Math.min(f(St&&St.startMin,Ct.dataMin),mt?Ct.min:dt.toValue(dt.toPixels(Ct.min)-dt.minPixelPadding)),bt=Math.max(f(St&&St.startMax,Ct.dataMax),mt?Ct.max:dt.toValue(dt.toPixels(Ct.max)+dt.minPixelPadding)),dt.panningState=St,dt.isOrdinal||(mt=yt-ft,0<mt&&(kt+=mt,ft=yt),mt=kt-bt,0<mt&&(kt=bt,ft-=mt),dt.series.length&&ft!==Ct.min&&kt!==Ct.max&&ft>=yt&&kt<=bt&&(dt.setExtremes(ft,kt,!1,!1,{trigger:"pan"}),!V.resetZoomButton&&ft!==yt&&kt!==bt&&rt.match("y")&&(V.showResetZoom(),dt.displayBtn=!1),nt=!0),gt[pt]=xt)}}),g(gt,(dt,pt)=>{V[pt]=dt}),nt&&V.redraw(!1),h(V.container,{cursor:"move"})})}}return q(ot.prototype,{callbacks:[],collectionsWithInit:{xAxis:[ot.prototype.addAxis,[!0]],yAxis:[ot.prototype.addAxis,[!1]],series:[ot.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),propsRequireReflow:"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft".split(" "),propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip".split(" ")}),ot}),ct(z,"Extensions/ScrollablePlotArea.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Axis/Axis.js"],z["Core/Chart/Chart.js"],z["Core/Series/Series.js"],z["Core/Renderer/RendererRegistry.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt,it){const{stop:st}=F,{addEvent:H,createElement:U,defined:X,merge:S,pick:w}=it;H(K,"afterSetChartSize",function(L){var E=this.options.chart.scrollablePlotArea,d=E&&E.minWidth;E=E&&E.minHeight;let x;this.renderer.forExport||(d?(this.scrollablePixelsX=d=Math.max(0,d-this.chartWidth))&&(this.scrollablePlotBox=this.renderer.scrollablePlotBox=S(this.plotBox),this.plotBox.width=this.plotWidth+=d,this.inverted?this.clipBox.height+=d:this.clipBox.width+=d,x={1:{name:"right",value:d}}):E&&(this.scrollablePixelsY=d=Math.max(0,E-this.chartHeight),X(d)&&(this.scrollablePlotBox=this.renderer.scrollablePlotBox=S(this.plotBox),this.plotBox.height=this.plotHeight+=d,this.inverted?this.clipBox.width+=d:this.clipBox.height+=d,x={2:{name:"bottom",value:d}})),x&&!L.skipAxes&&this.axes.forEach(function(y){x[y.side]?y.getPlotLinePath=function(){let m=x[y.side].name,b=this[m],v;return this[m]=b-x[y.side].value,v=N.prototype.getPlotLinePath.apply(this,arguments),this[m]=b,v}:(y.setAxisSize(),y.setAxisTranslation())}))}),H(K,"render",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()}),K.prototype.setUpScrolling=function(){const L={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};this.scrollablePixelsX&&(L.overflowX="auto"),this.scrollablePixelsY&&(L.overflowY="auto"),this.scrollingParent=U("div",{className:"highcharts-scrolling-parent"},{position:"relative"},this.renderTo),this.scrollingContainer=U("div",{className:"highcharts-scrolling"},L,this.scrollingParent);let E;H(this.scrollingContainer,"scroll",()=>{this.pointer&&(delete this.pointer.chartPosition,this.hoverPoint&&(E=this.hoverPoint),this.pointer.runPointActions(void 0,E,!0))}),this.innerContainer=U("div",{className:"highcharts-inner-container"},null,this.scrollingContainer),this.innerContainer.appendChild(this.container),this.setUpScrolling=null},K.prototype.moveFixedElements=function(){let L=this.container,E=this.fixedRenderer,d=".highcharts-breadcrumbs-group .highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-drillup-button .highcharts-scrollbar .highcharts-subtitle .highcharts-title".split(" "),x;this.scrollablePixelsX&&!this.inverted?x=".highcharts-yaxis":this.scrollablePixelsX&&this.inverted||this.scrollablePixelsY&&!this.inverted?x=".highcharts-xaxis":this.scrollablePixelsY&&this.inverted&&(x=".highcharts-yaxis"),x&&d.push(`${x}:not(.highcharts-radial-axis)`,`${x}-labels:not(.highcharts-radial-axis-labels)`),d.forEach(function(y){[].forEach.call(L.querySelectorAll(y),function(m){(m.namespaceURI===E.SVG_NS?E.box:E.box.parentNode).appendChild(m),m.style.pointerEvents="auto"})})},K.prototype.applyFixed=function(){var L=!this.fixedDiv,E=this.options.chart,d=E.scrollablePlotArea,x=tt.getRendererType();L?(this.fixedDiv=U("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(E.style&&E.style.zIndex||0)+2,top:0},null,!0),this.scrollingContainer&&this.scrollingContainer.parentNode.insertBefore(this.fixedDiv,this.scrollingContainer),this.renderTo.style.overflow="visible",this.fixedRenderer=E=new x(this.fixedDiv,this.chartWidth,this.chartHeight,this.options.chart.style),this.scrollableMask=E.path().attr({fill:this.options.chart.backgroundColor||"#fff","fill-opacity":w(d.opacity,.85),zIndex:-1}).addClass("highcharts-scrollable-mask").add(),H(this,"afterShowResetZoom",this.moveFixedElements),H(this,"afterApplyDrilldown",this.moveFixedElements),H(this,"afterLayOutTitles",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight),(this.scrollableDirty||L)&&(this.scrollableDirty=!1,this.moveFixedElements()),E=this.chartWidth+(this.scrollablePixelsX||0),x=this.chartHeight+(this.scrollablePixelsY||0),st(this.container),this.container.style.width=E+"px",this.container.style.height=x+"px",this.renderer.boxWrapper.attr({width:E,height:x,viewBox:[0,0,E,x].join(" ")}),this.chartBackground.attr({width:E,height:x}),this.scrollingContainer.style.height=this.chartHeight+"px",L&&(d.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*d.scrollPositionX),d.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*d.scrollPositionY)),x=this.axisOffset,L=this.plotTop-x[0]-1,d=this.plotLeft-x[3]-1,E=this.plotTop+this.plotHeight+x[2]+1,x=this.plotLeft+this.plotWidth+x[1]+1;let y=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),m=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);L=this.scrollablePixelsX?[["M",0,L],["L",this.plotLeft-1,L],["L",this.plotLeft-1,E],["L",0,E],["Z"],["M",y,L],["L",this.chartWidth,L],["L",this.chartWidth,E],["L",y,E],["Z"]]:this.scrollablePixelsY?[["M",d,0],["L",d,this.plotTop-1],["L",x,this.plotTop-1],["L",x,0],["Z"],["M",d,m],["L",d,this.chartHeight],["L",x,this.chartHeight],["L",x,m],["Z"]]:[["M",0,0]],this.redrawTrigger!=="adjustHeight"&&this.scrollableMask.attr({d:L})},H(N,"afterInit",function(){this.chart.scrollableDirty=!0}),H(et,"show",function(){this.chart.scrollableDirty=!0})}),ct(z,"Core/Axis/Stacking/StackItem.js",[z["Core/Templating.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(F,N,K){const{format:et}=F,{series:tt}=N,{destroyObjectProperties:it,fireEvent:st,isNumber:H,pick:U}=K;class X{constructor(w,L,E,d,x){const y=w.chart.inverted,m=w.reversed;this.axis=w,w=this.isNegative=!!E!=!!m,this.options=L=L||{},this.x=d,this.cumulative=this.total=null,this.points={},this.hasValidPoints=!1,this.stack=x,this.rightCliff=this.leftCliff=0,this.alignOptions={align:L.align||(y?w?"left":"right":"center"),verticalAlign:L.verticalAlign||(y?"middle":w?"bottom":"top"),y:L.y,x:L.x},this.textAlign=L.textAlign||(y?w?"right":"left":"center")}destroy(){it(this,this.axis)}render(w){const L=this.axis.chart,E=this.options;var d=E.format;d=d?et(d,this,L):E.formatter.call(this),this.label?this.label.attr({text:d,visibility:"hidden"}):(this.label=L.renderer.label(d,null,void 0,E.shape,void 0,void 0,E.useHTML,!1,"stack-labels"),d={r:E.borderRadius||0,text:d,padding:U(E.padding,5),visibility:"hidden"},L.styledMode||(d.fill=E.backgroundColor,d.stroke=E.borderColor,d["stroke-width"]=E.borderWidth,this.label.css(E.style||{})),this.label.attr(d),this.label.added||this.label.add(w)),this.label.labelrank=L.plotSizeY,st(this,"afterRender")}setOffset(w,L,E,d,x,y){const{alignOptions:m,axis:b,label:v,options:k,textAlign:n}=this,a=b.chart;E=this.getStackBox({xOffset:w,width:L,boxBottom:E,boxTop:d,defaultX:x,xAxis:y});var{verticalAlign:p}=m;if(v&&E){d=v.getBBox(),x=v.padding,y=U(k.overflow,"justify")==="justify",m.x=k.x||0,m.y=k.y||0;const{x:l,y:c}=this.adjustStackPosition({labelBox:d,verticalAlign:p,textAlign:n});E.x-=l,E.y-=c,v.align(m,!1,E),(p=a.isInsidePlot(v.alignAttr.x+m.x+l,v.alignAttr.y+m.y+c))||(y=!1),y&&tt.prototype.justifyDataLabel.call(b,v,m,v.alignAttr,d,E),v.attr({x:v.alignAttr.x,y:v.alignAttr.y,rotation:k.rotation,rotationOriginX:d.width/2,rotationOriginY:d.height/2}),U(!y&&k.crop,!0)&&(p=H(v.x)&&H(v.y)&&a.isInsidePlot(v.x-x+v.width,v.y)&&a.isInsidePlot(v.x+x,v.y)),v[p?"show":"hide"]()}st(this,"afterSetOffset",{xOffset:w,width:L})}adjustStackPosition({labelBox:w,verticalAlign:L,textAlign:E}){const d={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:w.width/2+w.width/2*d[E],y:w.height/2*d[L]}}getStackBox(w){var L=this.axis;const E=L.chart,{boxTop:d,defaultX:x,xOffset:y,width:m,boxBottom:b}=w;var v=L.stacking.usePercentage?100:U(d,this.total,0);v=L.toPixels(v),w=w.xAxis||E.xAxis[0];const k=U(x,w.translate(this.x))+y;L=L.toPixels(b||H(L.min)&&L.logarithmic&&L.logarithmic.lin2log(L.min)||0),L=Math.abs(v-L);const n=this.isNegative;return E.inverted?{x:(n?v:v-L)-E.plotLeft,y:w.height-k-m,width:L,height:m}:{x:k+w.transB-E.plotLeft,y:(n?v-L:v)-E.plotTop,width:m,height:L}}}return X}),ct(z,"Core/Axis/Stacking/StackingAxis.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Axis/Axis.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Axis/Stacking/StackItem.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt){function it(){const e=this,t=e.inverted;e.yAxis.forEach(i=>{i.stacking&&i.stacking.stacks&&i.hasVisibleSeries&&(i.stacking.oldStacks=i.stacking.stacks)}),e.series.forEach(i=>{const h=i.xAxis&&i.xAxis.options||{};!i.options.stacking||i.visible!==!0&&e.options.chart.ignoreHiddenSeries!==!1||(i.stackKey=[i.type,p(i.options.stack,""),t?h.top:h.left,t?h.height:h.width].join())})}function st(){const e=this.stacking;if(e){var t=e.stacks;a(t,function(i,h){b(i),t[h]=null}),e&&e.stackTotalGroup&&e.stackTotalGroup.destroy()}}function H(){this.coll!=="yAxis"||this.stacking||(this.stacking=new l(this))}function U(e,t,i,h){return!m(e)||e.x!==t||h&&e.stackKey!==h?e={x:t,index:0,key:h,stackKey:h}:e.index++,e.key=[i,t,e.index].join(),e}function X(){const e=this,t=e.stackKey,i=e.yAxis.stacking.stacks,h=e.processedXData,u=e[e.options.stacking+"Stacker"];let A;u&&[t,"-"+t].forEach(r=>{let T=h.length,G;for(;T--;){var q=h[T];A=e.getStackIndicator(A,q,e.index,r),(G=(q=i[r]&&i[r][q])&&q.points[A.key])&&u.call(e,G,q,T)}})}function S(e,t,i){t=t.total?100/t.total:0,e[0]=y(e[0]*t),e[1]=y(e[1]*t),this.stackedYData[i]=e[1]}function w(){const e=this.yAxis.stacking;this.options.centerInCategory&&(this.is("column")||this.is("columnrange"))&&!this.options.stacking&&1<this.chart.series.length?d.setStackedPoints.call(this,"group"):e&&a(e.stacks,(t,i)=>{i.slice(-5)==="group"&&(a(t,h=>h.destroy()),delete e.stacks[i])})}function L(e){var t=this.chart;const i=e||this.options.stacking;if(i&&(this.visible===!0||t.options.chart.ignoreHiddenSeries===!1)){var h=this.processedXData,u=this.processedYData,A=[],r=u.length,T=this.options,G=T.threshold,q=p(T.startFromThreshold&&G,0);T=T.stack,e=e?`${this.type},${i}`:this.stackKey;var Q="-"+e,D=this.negStacks;t=i==="group"?t.yAxis[0]:this.yAxis;var s=t.stacking.stacks,M=t.stacking.oldStacks,j,O;for(t.stacking.stacksTouched+=1,O=0;O<r;O++){var Y=h[O],o=u[O],g=this.getStackIndicator(g,Y,this.index),f=g.key,B=(j=D&&o<(q?0:G))?Q:e;s[B]||(s[B]={}),s[B][Y]||(M[B]&&M[B][Y]?(s[B][Y]=M[B][Y],s[B][Y].total=null):s[B][Y]=new et(t,t.options.stackLabels,!!j,Y,T)),B=s[B][Y],o!==null?(B.points[f]=B.points[this.index]=[p(B.cumulative,q)],m(B.cumulative)||(B.base=f),B.touched=t.stacking.stacksTouched,0<g.index&&this.singleStacks===!1&&(B.points[f][0]=B.points[this.index+","+Y+",0"][0])):B.points[f]=B.points[this.index]=null,i==="percent"?(j=j?e:Q,D&&s[j]&&s[j][Y]?(j=s[j][Y],B.total=j.total=Math.max(j.total,B.total)+Math.abs(o)||0):B.total=y(B.total+(Math.abs(o)||0))):i==="group"?(k(o)&&(o=o[0]),o!==null&&(B.total=(B.total||0)+1)):B.total=y(B.total+(o||0)),B.cumulative=i==="group"?(B.total||1)-1:y(p(B.cumulative,q)+(o||0)),o!==null&&(B.points[f].push(B.cumulative),A[O]=B.cumulative,B.hasValidPoints=!0)}i==="percent"&&(t.stacking.usePercentage=!0),i!=="group"&&(this.stackedYData=A),t.stacking.oldStacks={}}}const{getDeferredAnimation:E}=F,{series:{prototype:d}}=K,{addEvent:x,correctFloat:y,defined:m,destroyObjectProperties:b,fireEvent:v,isArray:k,isNumber:n,objectEach:a,pick:p}=tt;class l{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){const t=this.axis,i=t.series,h=t.options.reversedStacks,u=i.length;let A,r;for(this.usePercentage=!1,r=u;r--;)A=i[h?r:u-r-1],A.setStackedPoints(),A.setGroupedPoints();for(r=0;r<u;r++)i[r].modifyStacks();v(t,"afterBuildStacks")}cleanStacks(){let t;this.oldStacks&&(t=this.stacks=this.oldStacks),a(t,function(i){a(i,function(h){h.cumulative=h.total})})}resetStacks(){a(this.stacks,t=>{a(t,(i,h)=>{n(i.touched)&&i.touched<this.stacksTouched?(i.destroy(),delete t[h]):(i.total=null,i.cumulative=null)})})}renderStackTotals(){var t=this.axis;const i=t.chart,h=i.renderer,u=this.stacks;t=E(i,t.options.stackLabels&&t.options.stackLabels.animation||!1);const A=this.stackTotalGroup=this.stackTotalGroup||h.g("stack-labels").attr({zIndex:6,opacity:0}).add();A.translate(i.plotLeft,i.plotTop),a(u,function(r){a(r,function(T){T.render(A)})}),A.animate({opacity:1},t)}}var c;return function(e){const t=[];e.compose=function(i,h,u){tt.pushUnique(t,i)&&(x(i,"init",H),x(i,"destroy",st)),tt.pushUnique(t,h)&&(h.prototype.getStacks=it),tt.pushUnique(t,u)&&(i=u.prototype,i.getStackIndicator=U,i.modifyStacks=X,i.percentStacker=S,i.setGroupedPoints=w,i.setStackedPoints=L)}}(c||(c={})),c}),ct(z,"Series/Line/LineSeries.js",[z["Core/Series/Series.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(F,N,K){const{defined:et,merge:tt}=K;class it extends F{constructor(){super(...arguments),this.points=this.options=this.data=void 0}drawGraph(){const H=this,U=this.options,X=(this.gappedPath||this.getGraphPath).call(this),S=this.chart.styledMode;let w=[["graph","highcharts-graph"]];S||w[0].push(U.lineColor||this.color||"#cccccc",U.dashStyle),w=H.getZonesGraphs(w),w.forEach(function(L,E){var d=L[0];let x=H[d];const y=x?"animate":"attr";x?(x.endX=H.preventGraphAnimation?null:X.xMap,x.animate({d:X})):X.length&&(H[d]=x=H.chart.renderer.path(X).addClass(L[1]).attr({zIndex:1}).add(H.group)),x&&!S&&(d={stroke:L[2],"stroke-width":U.lineWidth||0,fill:H.fillGraph&&H.color||"none"},L[3]?d.dashstyle=L[3]:U.linecap!=="square"&&(d["stroke-linecap"]=d["stroke-linejoin"]="round"),x[y](d).shadow(2>E&&U.shadow)),x&&(x.startX=X.xMap,x.isArea=X.isArea)})}getGraphPath(H,U,X){const S=this,w=S.options,L=[],E=[];let d,x=w.step;H=H||S.points;const y=H.reversed;return y&&H.reverse(),(x={right:1,center:2}[x]||x&&3)&&y&&(x=4-x),H=this.getValidPoints(H,!1,!(w.connectNulls&&!U&&!X)),H.forEach(function(m,b){const v=m.plotX,k=m.plotY,n=H[b-1],a=m.isNull||typeof k!="number";(m.leftCliff||n&&n.rightCliff)&&!X&&(d=!0),a&&!et(U)&&0<b?d=!w.connectNulls:a&&!U?d=!0:(b===0||d?b=[["M",m.plotX,m.plotY]]:S.getPointSpline?b=[S.getPointSpline(H,m,b)]:x?(b=x===1?[["L",n.plotX,k]]:x===2?[["L",(n.plotX+v)/2,n.plotY],["L",(n.plotX+v)/2,k]]:[["L",v,n.plotY]],b.push(["L",v,k])):b=[["L",v,k]],E.push(m.x),x&&(E.push(m.x),x===2&&E.push(m.x)),L.push.apply(L,b),d=!1)}),L.xMap=E,S.graphPath=L}getZonesGraphs(H){return this.zones.forEach(function(U,X){X=["zone-graph-"+X,"highcharts-graph highcharts-zone-graph-"+X+" "+(U.className||"")],this.chart.styledMode||X.push(U.color||this.color,U.dashStyle||this.options.dashStyle),H.push(X)},this),H}}return it.defaultOptions=tt(F.defaultOptions,{legendSymbol:"lineMarker"}),N.registerSeriesType("line",it),it}),ct(z,"Series/Area/AreaSeries.js",[z["Core/Color/Color.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(F,N,K){const{seriesTypes:{line:et}}=N,{extend:tt,merge:it,objectEach:st,pick:H}=K;class U extends et{constructor(){super(...arguments),this.points=this.options=this.data=void 0}drawGraph(){this.areaPath=[],super.drawGraph.apply(this);const S=this,w=this.areaPath,L=this.options,E=[["area","highcharts-area",this.color,L.fillColor]];this.zones.forEach(function(d,x){E.push(["zone-area-"+x,"highcharts-area highcharts-zone-area-"+x+" "+d.className,d.color||S.color,d.fillColor||L.fillColor])}),E.forEach(function(d){const x=d[0],y={};let m=S[x];const b=m?"animate":"attr";m?(m.endX=S.preventGraphAnimation?null:w.xMap,m.animate({d:w})):(y.zIndex=0,m=S[x]=S.chart.renderer.path(w).addClass(d[1]).add(S.group),m.isArea=!0),S.chart.styledMode||(d[3]?y.fill=d[3]:(y.fill=d[2],y["fill-opacity"]=H(L.fillOpacity,.75))),m[b](y),m.startX=w.xMap,m.shiftUnit=L.step?2:1})}getGraphPath(S){var w=et.prototype.getGraphPath,L=this.options;const E=L.stacking,d=this.yAxis,x=[],y=[],m=this.index,b=d.stacking.stacks[this.stackKey],v=L.threshold,k=Math.round(d.getThreshold(L.threshold));L=H(L.connectNulls,E==="percent");var n=function(c,e,t){var i=S[c];c=E&&b[i.x].points[m];const h=i[t+"Null"]||0;t=i[t+"Cliff"]||0;let u,A;i=!0,t||h?(u=(h?c[0]:c[1])+t,A=c[0]+t,i=!!h):!E&&S[e]&&S[e].isNull&&(u=A=v),typeof u<"u"&&(y.push({plotX:a,plotY:u===null?k:d.getThreshold(u),isNull:i,isCliff:!0}),x.push({plotX:a,plotY:A===null?k:d.getThreshold(A),doCurve:!1}))};let a;S=S||this.points,E&&(S=this.getStackPoints(S));for(let c=0,e=S.length;c<e;++c){E||(S[c].leftCliff=S[c].rightCliff=S[c].leftNull=S[c].rightNull=void 0);var p=S[c].isNull;a=H(S[c].rectPlotX,S[c].plotX);var l=E?H(S[c].yBottom,k):k;(!p||L)&&(L||n(c,c-1,"left"),p&&!E&&L||(y.push(S[c]),x.push({x:c,plotX:a,plotY:l})),L||n(c,c+1,"right"))}return n=w.call(this,y,!0,!0),x.reversed=!0,p=w.call(this,x,!0,!0),(l=p[0])&&l[0]==="M"&&(p[0]=["L",l[1],l[2]]),p=n.concat(p),p.length&&p.push(["Z"]),w=w.call(this,y,!1,L),p.xMap=n.xMap,this.areaPath=p,w}getStackPoints(S){const w=this,L=[],E=[],d=this.xAxis,x=this.yAxis,y=x.stacking.stacks[this.stackKey],m={},b=x.series,v=b.length,k=x.options.reversedStacks?1:-1,n=b.indexOf(w);if(S=S||this.points,this.options.stacking){for(let p=0;p<S.length;p++)S[p].leftNull=S[p].rightNull=void 0,m[S[p].x]=S[p];st(y,function(p,l){p.total!==null&&E.push(l)}),E.sort(function(p,l){return p-l});const a=b.map(p=>p.visible);E.forEach(function(p,l){let c=0,e,t;if(m[p]&&!m[p].isNull)L.push(m[p]),[-1,1].forEach(function(i){const h=i===1?"rightNull":"leftNull",u=y[E[l+i]];let A=0;if(u){let r=n;for(;0<=r&&r<v;){const T=b[r].index;e=u.points[T],e||(T===w.index?m[p][h]=!0:a[r]&&(t=y[p].points[T])&&(A-=t[1]-t[0])),r+=k}}m[p][i===1?"rightCliff":"leftCliff"]=A});else{let i=n;for(;0<=i&&i<v;){if(e=y[p].points[b[i].index]){c=e[1];break}i+=k}c=H(c,0),c=x.translate(c,0,1,0,1),L.push({isNull:!0,plotX:d.translate(p,0,0,0,1),x:p,plotY:c,yBottom:c})}})}return L}}return U.defaultOptions=it(et.defaultOptions,{threshold:0,legendSymbol:"rectangle"}),tt(U.prototype,{singleStacks:!1}),N.registerSeriesType("area",U),U}),ct(z,"Series/Spline/SplineSeries.js",[z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(F,N){const{line:K}=F.seriesTypes,{merge:et,pick:tt}=N;class it extends K{constructor(){super(...arguments),this.points=this.options=this.data=void 0}getPointSpline(H,U,X){const S=U.plotX||0,w=U.plotY||0,L=H[X-1];X=H[X+1];let E,d,x;if(L&&!L.isNull&&L.doCurve!==!1&&!U.isCliff&&X&&!X.isNull&&X.doCurve!==!1&&!U.isCliff){H=L.plotY||0;var y=X.plotX||0;X=X.plotY||0;let m=0;E=(1.5*S+(L.plotX||0))/2.5,d=(1.5*w+H)/2.5,y=(1.5*S+y)/2.5,x=(1.5*w+X)/2.5,y!==E&&(m=(x-d)*(y-S)/(y-E)+w-x),d+=m,x+=m,d>H&&d>w?(d=Math.max(H,w),x=2*w-d):d<H&&d<w&&(d=Math.min(H,w),x=2*w-d),x>X&&x>w?(x=Math.max(X,w),d=2*w-x):x<X&&x<w&&(x=Math.min(X,w),d=2*w-x),U.rightContX=y,U.rightContY=x}return U=["C",tt(L.rightContX,L.plotX,0),tt(L.rightContY,L.plotY,0),tt(E,S,0),tt(d,w,0),S,w],L.rightContX=L.rightContY=void 0,U}}return it.defaultOptions=et(K.defaultOptions),F.registerSeriesType("spline",it),it}),ct(z,"Series/AreaSpline/AreaSplineSeries.js",[z["Series/Spline/SplineSeries.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(F,N,K){const{area:et,area:{prototype:tt}}=N.seriesTypes,{extend:it,merge:st}=K;class H extends F{constructor(){super(...arguments),this.options=this.points=this.data=void 0}}return H.defaultOptions=st(F.defaultOptions,et.defaultOptions),it(H.prototype,{getGraphPath:tt.getGraphPath,getStackPoints:tt.getStackPoints,drawGraph:tt.drawGraph}),N.registerSeriesType("areaspline",H),H}),ct(z,"Series/Column/ColumnSeriesDefaults.js",[],function(){return{borderRadius:3,centerInCategory:!1,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:"#cccccc",borderColor:"#000000"}},dataLabels:{align:void 0,verticalAlign:void 0,y:void 0},startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"#ffffff"}}),ct(z,"Series/Column/ColumnSeries.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Color/Color.js"],z["Series/Column/ColumnSeriesDefaults.js"],z["Core/Globals.js"],z["Core/Series/Series.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt,it,st){const{animObject:H}=F,{parse:U}=N,{hasTouch:X,noop:S}=et,{clamp:w,defined:L,extend:E,fireEvent:d,isArray:x,isNumber:y,merge:m,pick:b,objectEach:v}=st;class k extends tt{constructor(){super(...arguments),this.points=this.options=this.group=this.data=this.borderWidth=void 0}animate(a){const p=this,l=this.yAxis,c=l.pos,e=p.options,t=this.chart.inverted,i={},h=t?"translateX":"translateY";let u;a?(i.scaleY=.001,a=w(l.toPixels(e.threshold),c,c+l.len),t?i.translateX=a-l.len:i.translateY=a,p.clipBox&&p.setClip(),p.group.attr(i)):(u=Number(p.group.attr(h)),p.group.animate({scaleY:1},E(H(p.options.animation),{step:function(A,r){p.group&&(i[h]=u+r.pos*(c-u),p.group.attr(i))}})))}init(a,p){super.init.apply(this,arguments);const l=this;a=l.chart,a.hasRendered&&a.series.forEach(function(c){c.type===l.type&&(c.isDirty=!0)})}getColumnMetrics(){const a=this;var p=a.options;const l=a.xAxis,c=a.yAxis;var e=l.options.reversedStacks;e=l.reversed&&!e||!l.reversed&&e;const t={};let i,h=0;p.grouping===!1?h=1:a.chart.series.forEach(function(T){const G=T.yAxis,q=T.options;let Q;T.type!==a.type||!T.visible&&a.chart.options.chart.ignoreHiddenSeries||c.len!==G.len||c.pos!==G.pos||(q.stacking&&q.stacking!=="group"?(i=T.stackKey,typeof t[i]>"u"&&(t[i]=h++),Q=t[i]):q.grouping!==!1&&(Q=h++),T.columnIndex=Q)});const u=Math.min(Math.abs(l.transA)*(l.ordinal&&l.ordinal.slope||p.pointRange||l.closestPointRange||l.tickInterval||1),l.len),A=u*p.groupPadding,r=(u-2*A)/(h||1);return p=Math.min(p.maxPointWidth||l.len,b(p.pointWidth,r*(1-2*p.pointPadding))),a.columnMetrics={width:p,offset:(r-p)/2+(A+((a.columnIndex||0)+(e?1:0))*r-u/2)*(e?-1:1),paddedWidth:r,columnCount:h},a.columnMetrics}crispCol(a,p,l,c){var e=this.borderWidth,t=-(e%2?.5:0);return e=e%2?.5:1,this.options.crisp&&(l=Math.round(a+l)+t,a=Math.round(a)+t,l-=a),c=Math.round(p+c)+e,t=.5>=Math.abs(p)&&.5<c,p=Math.round(p)+e,c-=p,t&&c&&(--p,c+=1),{x:a,y:p,width:l,height:c}}adjustForMissingColumns(a,p,l,c){const e=this.options.stacking;if(!l.isNull&&1<c.columnCount){const t=this.yAxis.options.reversedStacks;let i=0,h=t?0:-c.columnCount;v(this.yAxis.stacking&&this.yAxis.stacking.stacks,u=>{if(typeof l.x=="number"){const A=u[l.x.toString()];A&&(u=A.points[this.index],e?(u&&(i=h),A.hasValidPoints&&(t?h++:h--)):x(u)&&(u=Object.keys(A.points).filter(r=>!r.match(",")&&A.points[r]&&1<A.points[r].length).map(parseFloat).sort((r,T)=>T-r),i=u.indexOf(this.index),h=u.length))}}),a=(l.plotX||0)+((h-1)*c.paddedWidth+p)/2-p-i*c.paddedWidth}return a}translate(){const a=this,p=a.chart,l=a.options;var c=a.dense=2>a.closestPointRange*a.xAxis.transA;c=a.borderWidth=b(l.borderWidth,c?0:1);const e=a.xAxis,t=a.yAxis,i=l.threshold,h=b(l.minPointLength,5),u=a.getColumnMetrics(),A=u.width,r=a.pointXOffset=u.offset,T=a.dataMin,G=a.dataMax;let q=a.barW=Math.max(A,1+2*c),Q=a.translatedThreshold=t.getThreshold(i);p.inverted&&(Q-=.5),l.pointPadding&&(q=Math.ceil(q)),tt.prototype.translate.apply(a),a.points.forEach(function(D){const s=b(D.yBottom,Q);var M=999+Math.abs(s),j=D.plotX||0;M=w(D.plotY,-M,t.len+M);let O=Math.min(M,s),Y=Math.max(M,s)-O,o=A,g=j+r,f=q;h&&Math.abs(Y)<h&&(Y=h,j=!t.reversed&&!D.negative||t.reversed&&D.negative,y(i)&&y(G)&&D.y===i&&G<=i&&(t.min||0)<i&&(T!==G||(t.max||0)<=i)&&(j=!j,D.negative=!D.negative),O=Math.abs(O-Q)>h?s-h:Q-(j?h:0)),L(D.options.pointWidth)&&(o=f=Math.ceil(D.options.pointWidth),g-=Math.round((o-A)/2)),l.centerInCategory&&(g=a.adjustForMissingColumns(g,o,D,u)),D.barX=g,D.pointWidth=o,D.tooltipPos=p.inverted?[w(t.len+t.pos-p.plotLeft-M,t.pos-p.plotLeft,t.len+t.pos-p.plotLeft),e.len+e.pos-p.plotTop-g-f/2,Y]:[e.left-p.plotLeft+g+f/2,w(M+t.pos-p.plotTop,t.pos-p.plotTop,t.len+t.pos-p.plotTop),Y],D.shapeType=a.pointClass.prototype.shapeType||"roundedRect",D.shapeArgs=a.crispCol(g,D.isNull?Q:O,f,D.isNull?0:Y)}),d(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(a,p){const l=this.options;var c=this.pointAttrToOptions||{},e=c.stroke||"borderColor";const t=c["stroke-width"]||"borderWidth";let i,h=a&&a.color||this.color,u=a&&a[e]||l[e]||h;c=a&&a.options.dashStyle||l.dashStyle;let A=a&&a[t]||l[t]||this[t]||0,r=b(a&&a.opacity,l.opacity,1);return a&&this.zones.length&&(i=a.getZone(),h=a.options.color||i&&(i.color||a.nonZonedColor)||this.color,i&&(u=i.borderColor||u,c=i.dashStyle||c,A=i.borderWidth||A)),p&&a&&(a=m(l.states[p],a.options.states&&a.options.states[p]||{}),p=a.brightness,h=a.color||typeof p<"u"&&U(h).brighten(a.brightness).get()||h,u=a[e]||u,A=a[t]||A,c=a.dashStyle||c,r=b(a.opacity,r)),e={fill:h,stroke:u,"stroke-width":A,opacity:r},c&&(e.dashstyle=c),e}drawPoints(a=this.points){const p=this,l=this.chart,c=p.options,e=l.renderer,t=c.animationLimit||250;let i;a.forEach(function(h){let u=h.graphic,A=!!u,r=u&&l.pointCount<t?"animate":"attr";y(h.plotY)&&h.y!==null?(i=h.shapeArgs,u&&h.hasNewShapeType()&&(u=u.destroy()),p.enabledDataSorting&&(h.startXPos=p.xAxis.reversed?-(i&&i.width||0):p.xAxis.width),u||(h.graphic=u=e[h.shapeType](i).add(h.group||p.group))&&p.enabledDataSorting&&l.hasRendered&&l.pointCount<t&&(u.attr({x:h.startXPos}),A=!0,r="animate"),u&&A&&u[r](m(i)),l.styledMode||u[r](p.pointAttribs(h,h.selected&&"select")).shadow(h.allowShadow!==!1&&c.shadow),u&&(u.addClass(h.getClassName(),!0),u.attr({visibility:h.visible?"inherit":"hidden"}))):u&&(h.graphic=u.destroy())})}drawTracker(a=this.points){const p=this,l=p.chart,c=l.pointer,e=function(i){const h=c.getPointFromEvent(i);typeof h<"u"&&p.options.enableMouseTracking&&(c.isDirectTouch=!0,h.onMouseOver(i))};let t;a.forEach(function(i){t=x(i.dataLabels)?i.dataLabels:i.dataLabel?[i.dataLabel]:[],i.graphic&&(i.graphic.element.point=i),t.forEach(function(h){h.div?h.div.point=i:h.element.point=i})}),p._hasTracking||(p.trackerGroups.forEach(function(i){p[i]&&(p[i].addClass("highcharts-tracker").on("mouseover",e).on("mouseout",function(h){c.onTrackerMouseOut(h)}),X&&p[i].on("touchstart",e),!l.styledMode&&p.options.cursor&&p[i].css({cursor:p.options.cursor}))}),p._hasTracking=!0),d(this,"afterDrawTracker")}remove(){const a=this,p=a.chart;p.hasRendered&&p.series.forEach(function(l){l.type===a.type&&(l.isDirty=!0)}),tt.prototype.remove.apply(a,arguments)}}return k.defaultOptions=m(tt.defaultOptions,K),E(k.prototype,{cropShoulder:0,directTouch:!0,getSymbol:S,negStacks:!0,trackerGroups:["group","dataLabelsGroup"]}),it.registerSeriesType("column",k),k}),ct(z,"Core/Series/DataLabel.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Templating.js"],z["Core/Utilities.js"]],function(F,N,K){const{getDeferredAnimation:et}=F,{format:tt}=N,{defined:it,extend:st,fireEvent:H,isArray:U,isString:X,merge:S,objectEach:w,pick:L,splat:E}=K;var d;return function(x){function y(c,e,t,i,h){const u=this.chart;var A=this.isCartesian&&u.inverted;const r=this.enabledDataSorting;var T=c.plotX,G=c.plotY;const q=t.rotation;var Q=t.align;G=it(T)&&it(G)&&u.isInsidePlot(T,Math.round(G),{inverted:A,paneCoordinates:!0,series:this});let D=L(t.overflow,r?"none":"justify")==="justify";if(A=this.visible&&c.visible!==!1&&it(T)&&(c.series.forceDL||r&&!D||G||L(t.inside,!!this.options.stacking)&&i&&u.isInsidePlot(T,A?i.x+1:i.y+i.height-1,{inverted:A,paneCoordinates:!0,series:this})),T=c.pos(),A&&T){q&&e.attr({align:Q}),Q=e.getBBox(!0);var s=[0,0],M=u.renderer.fontMetrics(e).b;if(i=st({x:T[0],y:Math.round(T[1]),width:0,height:0},i),st(t,{width:Q.width,height:Q.height}),q?(D=!1,s=u.renderer.rotCorr(M,q),M={x:i.x+(t.x||0)+i.width/2+s.x,y:i.y+(t.y||0)+{top:0,middle:.5,bottom:1}[t.verticalAlign]*i.height},s=[Q.x-Number(e.attr("x")),Q.y-Number(e.attr("y"))],r&&this.xAxis&&!D&&this.setDataLabelStartPos(c,e,h,G,M),e[h?"attr":"animate"](M)):(r&&this.xAxis&&!D&&this.setDataLabelStartPos(c,e,h,G,i),e.align(t,void 0,i),M=e.alignAttr),D&&0<=i.height)this.justifyDataLabel(e,t,M,Q,i,h);else if(L(t.crop,!0)){let{x:j,y:O}=M;j+=s[0],O+=s[1],A=u.isInsidePlot(j,O,{paneCoordinates:!0,series:this})&&u.isInsidePlot(j+Q.width,O+Q.height,{paneCoordinates:!0,series:this})}t.shape&&!q&&e[h?"attr":"animate"]({anchorX:T[0],anchorY:T[1]})}h&&r&&(e.placed=!1),A||r&&!D?e.show():(e.hide(),e.placed=!1)}function m(c,e){var t=e.filter;return t?(e=t.operator,c=c[t.property],t=t.value,e===">"&&c>t||e==="<"&&c<t||e===">="&&c>=t||e==="<="&&c<=t||e==="=="&&c==t||e==="==="&&c===t):!0}function b(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function v(c){const e=this.hasRendered||0,t=this.initDataLabelsGroup().attr({opacity:+e});return!e&&t&&(this.visible&&t.show(),this.options.animation?t.animate({opacity:1},c):t.attr({opacity:1})),t}function k(c=this.points){var e,t;const i=this,h=i.chart,u=i.options,A=h.renderer,{backgroundColor:r,plotBackgroundColor:T}=h.options.chart,G=h.options.plotOptions,q=A.getContrast(X(T)&&T||X(r)&&r||"#000000");let Q=u.dataLabels,D,s;var M=E(Q)[0];const j=M.animation;M=M.defer?et(h,j,i):{defer:0,duration:0},Q=a(a((e=G==null?void 0:G.series)===null||e===void 0?void 0:e.dataLabels,(t=G==null?void 0:G[i.type])===null||t===void 0?void 0:t.dataLabels),Q),H(this,"drawDataLabels"),(U(Q)||Q.enabled||i._hasPointLabels)&&(s=this.initDataLabels(M),c.forEach(O=>{var Y;const o=O.dataLabels||[];for(D=E(a(Q,O.dlOptions||((Y=O.options)===null||Y===void 0?void 0:Y.dataLabels))),D.forEach((g,f)=>{var B,R=g.enabled&&(!O.isNull||O.dataLabelOnNull)&&m(O,g);const I=O.connectors?O.connectors[f]:O.connector,_=g.style||{};let Z={},J=o[f],ot=!J;const ht=L(g.distance,O.labelDistance);if(R){var P=L(g[O.formatPrefix+"Format"],g.format),C=O.getLabelConfig();if(C=it(P)?tt(P,C,h):(g[O.formatPrefix+"Formatter"]||g.formatter).call(C,g),P=g.rotation,h.styledMode||(_.color=L(g.color,_.color,X(i.color)?i.color:void 0,"#000000"),_.color==="contrast"?(O.contrastColor=A.getContrast(O.color||i.color),_.color=!it(ht)&&g.inside||0>(ht||0)||u.stacking?O.contrastColor:q):delete O.contrastColor,u.cursor&&(_.cursor=u.cursor)),Z={r:g.borderRadius||0,rotation:P,padding:g.padding,zIndex:1},!h.styledMode){const{backgroundColor:V,borderColor:W}=g;Z.fill=V==="auto"?O.color:V,Z.stroke=W==="auto"?O.color:W,Z["stroke-width"]=g.borderWidth}w(Z,(V,W)=>{typeof V>"u"&&delete Z[W]})}!J||R&&it(C)&&!!J.div==!!g.useHTML&&(J.rotation&&g.rotation||J.rotation===g.rotation)||(J=void 0,ot=!0,I&&O.connector&&(O.connector=O.connector.destroy(),O.connectors&&(O.connectors.length===1?delete O.connectors:delete O.connectors[f]))),R&&it(C)&&(J?Z.text=C:(J=P?A.text(C,0,0,g.useHTML).addClass("highcharts-data-label"):A.label(C,0,0,g.shape,void 0,void 0,g.useHTML,void 0,"data-label"))&&J.addClass(" highcharts-data-label-color-"+O.colorIndex+" "+(g.className||"")+(g.useHTML?" highcharts-tracker":"")),J&&(J.options=g,J.attr(Z),h.styledMode||J.css(_).shadow(g.shadow),(R=g[O.formatPrefix+"TextPath"]||g.textPath)&&!g.useHTML&&(J.setTextPath(((B=O.getDataLabelPath)===null||B===void 0?void 0:B.call(O,J))||O.graphic,R),O.dataLabelPath&&!R.enabled&&(O.dataLabelPath=O.dataLabelPath.destroy())),J.added||J.add(s),i.alignDataLabel(O,J,g,void 0,ot),J.isActive=!0,o[f]&&o[f]!==J&&o[f].destroy(),o[f]=J))}),Y=o.length;Y--;)o[Y].isActive?o[Y].isActive=!1:(o[Y].destroy(),o.splice(Y,1));O.dataLabel=o[0],O.dataLabels=o})),H(this,"afterDrawDataLabels")}function n(c,e,t,i,h,u){const A=this.chart,r=e.align,T=e.verticalAlign,G=c.box?0:c.padding||0;let{x:q=0,y:Q=0}=e,D,s;return D=(t.x||0)+G,0>D&&(r==="right"&&0<=q?(e.align="left",e.inside=!0):q-=D,s=!0),D=(t.x||0)+i.width-G,D>A.plotWidth&&(r==="left"&&0>=q?(e.align="right",e.inside=!0):q+=A.plotWidth-D,s=!0),D=t.y+G,0>D&&(T==="bottom"&&0<=Q?(e.verticalAlign="top",e.inside=!0):Q-=D,s=!0),D=(t.y||0)+i.height-G,D>A.plotHeight&&(T==="top"&&0>=Q?(e.verticalAlign="bottom",e.inside=!0):Q+=A.plotHeight-D,s=!0),s&&(e.x=q,e.y=Q,c.placed=!u,c.align(e,void 0,h)),s}function a(c,e){let t=[],i;if(U(c)&&!U(e))t=c.map(function(h){return S(h,e)});else if(U(e)&&!U(c))t=e.map(function(h){return S(c,h)});else if(!U(c)&&!U(e))t=S(c,e);else if(U(c)&&U(e))for(i=Math.max(c.length,e.length);i--;)t[i]=S(c[i],e[i]);return t}function p(c,e,t,i,h){const u=this.chart,A=u.inverted,r=this.xAxis,T=r.reversed,G=A?e.height/2:e.width/2;c=(c=c.pointWidth)?c/2:0,e.startXPos=A?h.x:T?-G-c:r.width-G+c,e.startYPos=A?T?this.yAxis.height-G+c:-G-c:h.y,i?e.visibility==="hidden"&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),u.hasRendered&&(t&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}const l=[];x.compose=function(c){K.pushUnique(l,c)&&(c=c.prototype,c.initDataLabelsGroup=b,c.initDataLabels=v,c.alignDataLabel=y,c.drawDataLabels=k,c.justifyDataLabel=n,c.setDataLabelStartPos=p)}}(d||(d={})),d}),ct(z,"Series/Column/ColumnDataLabel.js",[z["Core/Series/DataLabel.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(F,N,K){const{series:et}=N,{merge:tt,pick:it}=K;var st;return function(H){function U(S,w,L,E,d){let x=this.chart.inverted;var y=S.series;let m=(y.xAxis?y.xAxis.len:this.chart.plotSizeX)||0;y=(y.yAxis?y.yAxis.len:this.chart.plotSizeY)||0;var b=S.dlBox||S.shapeArgs;let v=it(S.below,S.plotY>it(this.translatedThreshold,y)),k=it(L.inside,!!this.options.stacking);b&&(E=tt(b),0>E.y&&(E.height+=E.y,E.y=0),b=E.y+E.height-y,0<b&&b<E.height&&(E.height-=b),x&&(E={x:y-E.y-E.height,y:m-E.x-E.width,width:E.height,height:E.width}),k||(x?(E.x+=v?0:E.width,E.width=0):(E.y+=v?E.height:0,E.height=0))),L.align=it(L.align,!x||k?"center":v?"right":"left"),L.verticalAlign=it(L.verticalAlign,x||k?"middle":v?"top":"bottom"),et.prototype.alignDataLabel.call(this,S,w,L,E,d),L.inside&&S.contrastColor&&w.css({color:S.contrastColor})}const X=[];H.compose=function(S){F.compose(et),K.pushUnique(X,S)&&(S.prototype.alignDataLabel=U)}}(st||(st={})),st}),ct(z,"Series/Bar/BarSeries.js",[z["Series/Column/ColumnSeries.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(F,N,K){const{extend:et,merge:tt}=K;class it extends F{constructor(){super(...arguments),this.points=this.options=this.data=void 0}}return it.defaultOptions=tt(F.defaultOptions,{}),et(it.prototype,{inverted:!0}),N.registerSeriesType("bar",it),it}),ct(z,"Series/Scatter/ScatterSeriesDefaults.js",[],function(){return{lineWidth:0,findNearestPointBy:"xy",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">●</span> <span style="font-size: 0.8em"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}}}),ct(z,"Series/Scatter/ScatterSeries.js",[z["Series/Scatter/ScatterSeriesDefaults.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(F,N,K){const{column:et,line:tt}=N.seriesTypes,{addEvent:it,extend:st,merge:H}=K;class U extends tt{constructor(){super(...arguments),this.points=this.options=this.data=void 0}applyJitter(){const S=this,w=this.options.jitter,L=this.points.length;w&&this.points.forEach(function(E,d){["x","y"].forEach(function(x,y){let m="plot"+x.toUpperCase(),b,v;if(w[x]&&!E.isNull){var k=S[x+"Axis"];v=w[x]*k.transA,k&&!k.isLog&&(b=Math.max(0,E[m]-v),k=Math.min(k.len,E[m]+v),y=1e4*Math.sin(d+y*L),y-=Math.floor(y),E[m]=b+(k-b)*y,x==="x"&&(E.clientX=E.plotX))}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return U.defaultOptions=H(tt.defaultOptions,F),st(U.prototype,{drawTracker:et.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1}),it(U,"afterTranslate",function(){this.applyJitter()}),N.registerSeriesType("scatter",U),U}),ct(z,"Series/CenteredUtilities.js",[z["Core/Globals.js"],z["Core/Series/Series.js"],z["Core/Utilities.js"]],function(F,N,K){const{deg2rad:et}=F,{fireEvent:tt,isNumber:it,pick:st,relativeLength:H}=K;var U;return function(X){X.getCenter=function(){var S=this.options,w=this.chart;const L=2*(S.slicedOffset||0),E=w.plotWidth-2*L,d=w.plotHeight-2*L;var x=S.center;const y=Math.min(E,d),m=S.thickness;var b=S.size;let v=S.innerSize||0;for(typeof b=="string"&&(b=parseFloat(b)),typeof v=="string"&&(v=parseFloat(v)),S=[st(x[0],"50%"),st(x[1],"50%"),st(b&&0>b?void 0:S.size,"100%"),st(v&&0>v?void 0:S.innerSize||0,"0%")],!w.angular||this instanceof N||(S[3]=0),x=0;4>x;++x)b=S[x],w=2>x||x===2&&/%$/.test(b),S[x]=H(b,[E,d,y,S[2]][x])+(w?L:0);return S[3]>S[2]&&(S[3]=S[2]),it(m)&&2*m<S[2]&&0<m&&(S[3]=S[2]-2*m),tt(this,"afterGetCenter",{positions:S}),S},X.getStartAndEndRadians=function(S,w){return S=it(S)?S:0,w=it(w)&&w>S&&360>w-S?w:S+360,{start:et*(S+-90),end:et*(w+-90)}}}(U||(U={})),U}),ct(z,"Series/Pie/PiePoint.js",[z["Core/Animation/AnimationUtilities.js"],z["Core/Series/Point.js"],z["Core/Utilities.js"]],function(F,N,K){const{setAnimation:et}=F,{addEvent:tt,defined:it,extend:st,isNumber:H,pick:U,relativeLength:X}=K;class S extends N{constructor(){super(...arguments),this.series=this.options=this.labelDistance=void 0}getConnectorPath(){const L=this.labelPosition,E=this.series.options.dataLabels,d=this.connectorShapes;let x=E.connectorShape;return d[x]&&(x=d[x]),x.call(this,{x:L.computed.x,y:L.computed.y,alignment:L.alignment},L.connectorPosition,E)}getTranslate(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}}haloPath(L){const E=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(E.x,E.y,E.r+L,E.r+L,{innerR:E.r-1,start:E.start,end:E.end,borderRadius:E.borderRadius})}init(){super.init.apply(this,arguments),this.name=U(this.name,"Slice");const L=E=>{this.slice(E.type==="select")};return tt(this,"select",L),tt(this,"unselect",L),this}isValid(){return H(this.y)&&0<=this.y}setVisible(L,E){const d=this.series,x=d.chart,y=d.options.ignoreHiddenPoint;E=U(E,y),L!==this.visible&&(this.visible=this.options.visible=L=typeof L>"u"?!this.visible:L,d.options.data[d.data.indexOf(this)]=this.options,["graphic","dataLabel","connector"].forEach(m=>{this[m]&&this[m][L?"show":"hide"](L)}),this.legendItem&&x.legend.colorizeItem(this,L),L||this.state!=="hover"||this.setState(""),y&&(d.isDirty=!0),E&&x.redraw())}slice(L,E,d){const x=this.series;et(d,x.chart),U(E,!0),this.sliced=this.options.sliced=it(L)?L:!this.sliced,x.options.data[x.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return st(S.prototype,{connectorShapes:{fixedOffset:function(w,L,E){const d=L.breakAt;return L=L.touchingSliceAt,[["M",w.x,w.y],E.softConnector?["C",w.x+(w.alignment==="left"?-5:5),w.y,2*d.x-L.x,2*d.y-L.y,d.x,d.y]:["L",d.x,d.y],["L",L.x,L.y]]},straight:function(w,L){return L=L.touchingSliceAt,[["M",w.x,w.y],["L",L.x,L.y]]},crookedLine:function(w,L,E){const{breakAt:d,touchingSliceAt:x}=L;({series:L}=this);const[y,m,b]=L.center,v=b/2,k=L.chart.plotWidth,n=L.chart.plotLeft;L=w.alignment==="left";const{x:a,y:p}=w;return E.crookDistance?(w=X(E.crookDistance,1),w=L?y+v+(k+n-y-v)*(1-w):n+(y-v)*w):w=y+(m-p)*Math.tan((this.angle||0)-Math.PI/2),E=[["M",a,p]],(L?w<=a&&w>=d.x:w>=a&&w<=d.x)&&E.push(["L",w,p]),E.push(["L",d.x,d.y],["L",x.x,x.y]),E}}}),S}),ct(z,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),ct(z,"Series/Pie/PieSeries.js",[z["Series/CenteredUtilities.js"],z["Series/Column/ColumnSeries.js"],z["Core/Globals.js"],z["Series/Pie/PiePoint.js"],z["Series/Pie/PieSeriesDefaults.js"],z["Core/Series/Series.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Renderer/SVG/Symbols.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt,it,st,H,U){const{getStartAndEndRadians:X}=F;({noop:K}=K);const{clamp:S,extend:w,fireEvent:L,merge:E,pick:d,relativeLength:x}=U;class y extends it{constructor(){super(...arguments),this.points=this.options=this.maxLabelDistance=this.data=this.center=void 0}animate(b){const v=this,k=v.points,n=v.startAngleRad;b||k.forEach(function(a){const p=a.graphic,l=a.shapeArgs;p&&l&&(p.attr({r:d(a.startR,v.center&&v.center[3]/2),start:n,end:n}),p.animate({r:l.r,start:l.start,end:l.end},v.options.animation))})}drawEmpty(){const b=this.startAngleRad,v=this.endAngleRad,k=this.options;let n,a;this.total===0&&this.center?(n=this.center[0],a=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(n,a,this.center[1]/2,0,b,v).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:H.arc(n,a,this.center[2]/2,0,{start:b,end:v,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":k.borderWidth,fill:k.fillColor||"none",stroke:k.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){const b=this.chart.renderer;this.points.forEach(function(v){v.graphic&&v.hasNewShapeType()&&(v.graphic=v.graphic.destroy()),v.graphic||(v.graphic=b[v.shapeType](v.shapeArgs).add(v.series.group),v.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(b,v,k){const n=this.center,a=this.radii?this.radii[k.index]||0:n[2]/2;return b=Math.asin(S((b-n[1])/(a+k.labelDistance),-1,1)),n[0]+(v?-1:1)*Math.cos(b)*(a+k.labelDistance)+(0<k.labelDistance?(v?-1:1)*this.options.dataLabels.padding:0)}hasData(){return!!this.processedXData.length}redrawPoints(){const b=this,v=b.chart;let k,n,a,p;this.drawEmpty(),b.group&&!v.styledMode&&b.group.shadow(b.options.shadow),b.points.forEach(function(l){const c={};n=l.graphic,!l.isNull&&n?(p=l.shapeArgs,k=l.getTranslate(),v.styledMode||(a=b.pointAttribs(l,l.selected&&"select")),l.delayedRendering?(n.setRadialReference(b.center).attr(p).attr(k),v.styledMode||n.attr(a).attr({"stroke-linejoin":"round"}),l.delayedRendering=!1):(n.setRadialReference(b.center),v.styledMode||E(!0,c,a),E(!0,c,p,k),n.animate(c)),n.attr({visibility:l.visible?"inherit":"hidden"}),n.addClass(l.getClassName(),!0)):n&&(l.graphic=n.destroy())})}sortByAngle(b,v){b.sort(function(k,n){return typeof k.angle<"u"&&(n.angle-k.angle)*v})}translate(b){L(this,"translate"),this.generatePoints();var v=this.options;const k=v.slicedOffset,n=k+(v.borderWidth||0);var a=X(v.startAngle,v.endAngle);const p=this.startAngleRad=a.start;a=(this.endAngleRad=a.end)-p;const l=this.points,c=v.dataLabels.distance;v=v.ignoreHiddenPoint;const e=l.length;let t,i,h,u=0;for(b||(this.center=b=this.getCenter()),i=0;i<e;i++){h=l[i];var A=p+u*a;!h.isValid()||v&&!h.visible||(u+=h.percentage/100);var r=p+u*a,T={x:b[0],y:b[1],r:b[2]/2,innerR:b[3]/2,start:Math.round(1e3*A)/1e3,end:Math.round(1e3*r)/1e3};h.shapeType="arc",h.shapeArgs=T,h.labelDistance=d(h.options.dataLabels&&h.options.dataLabels.distance,c),h.labelDistance=x(h.labelDistance,T.r),this.maxLabelDistance=Math.max(this.maxLabelDistance||0,h.labelDistance),r=(r+A)/2,r>1.5*Math.PI?r-=2*Math.PI:r<-Math.PI/2&&(r+=2*Math.PI),h.slicedTranslation={translateX:Math.round(Math.cos(r)*k),translateY:Math.round(Math.sin(r)*k)},T=Math.cos(r)*b[2]/2,t=Math.sin(r)*b[2]/2,h.tooltipPos=[b[0]+.7*T,b[1]+.7*t],h.half=r<-Math.PI/2||r>Math.PI/2?1:0,h.angle=r,A=Math.min(n,h.labelDistance/5),h.labelPosition={natural:{x:b[0]+T+Math.cos(r)*h.labelDistance,y:b[1]+t+Math.sin(r)*h.labelDistance},computed:{},alignment:0>h.labelDistance?"center":h.half?"right":"left",connectorPosition:{breakAt:{x:b[0]+T+Math.cos(r)*A,y:b[1]+t+Math.sin(r)*A},touchingSliceAt:{x:b[0]+T,y:b[1]+t}}}}L(this,"afterTranslate")}updateTotals(){const b=this.points,v=b.length,k=this.options.ignoreHiddenPoint;let n,a,p=0;for(n=0;n<v;n++)a=b[n],!a.isValid()||k&&!a.visible||(p+=a.y);for(this.total=p,n=0;n<v;n++)a=b[n],a.percentage=0<p&&(a.visible||!k)?a.y/p*100:0,a.total=p}}return y.defaultOptions=E(it.defaultOptions,tt),w(y.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:N.prototype.drawTracker,getCenter:F.getCenter,getSymbol:K,isCartesian:!1,noSharedTooltip:!0,pointAttribs:N.prototype.pointAttribs,pointClass:et,requireSorting:!1,searchPoint:K,trackerGroups:["group","dataLabelsGroup"]}),st.registerSeriesType("pie",y),y}),ct(z,"Series/Pie/PieDataLabel.js",[z["Core/Series/DataLabel.js"],z["Core/Globals.js"],z["Core/Renderer/RendererUtilities.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt){const{noop:it}=N,{distribute:st}=K,{series:H}=et,{arrayMax:U,clamp:X,defined:S,merge:w,pick:L,relativeLength:E}=tt;var d;return function(x){function y(){const n=this,a=n.data,p=n.chart,l=n.options.dataLabels||{},c=l.connectorPadding,e=p.plotWidth,t=p.plotHeight,i=p.plotLeft,h=Math.round(p.chartWidth/3),u=n.center,A=u[2]/2,r=u[1],T=[[],[]],G=[0,0,0,0],q=n.dataLabelPositioners;let Q,D,s,M,j,O,Y,o,g,f,B,R;n.visible&&(l.enabled||n._hasPointLabels)&&(a.forEach(function(I){I.dataLabel&&I.visible&&I.dataLabel.shortened&&(I.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),I.dataLabel.shortened=!1)}),H.prototype.drawDataLabels.apply(n),a.forEach(function(I){I.dataLabel&&(I.visible?(T[I.half].push(I),I.dataLabel._pos=null,!S(l.style.width)&&!S(I.options.dataLabels&&I.options.dataLabels.style&&I.options.dataLabels.style.width)&&I.dataLabel.getBBox().width>h&&(I.dataLabel.css({width:Math.round(.7*h)+"px"}),I.dataLabel.shortened=!0)):(I.dataLabel=I.dataLabel.destroy(),I.dataLabels&&I.dataLabels.length===1&&delete I.dataLabels))}),T.forEach((I,_)=>{const Z=I.length,J=[];let ot,ht=0;if(Z){if(n.sortByAngle(I,_-.5),0<n.maxLabelDistance){var P=Math.max(0,r-A-n.maxLabelDistance);ot=Math.min(r+A+n.maxLabelDistance,p.plotHeight),I.forEach(function(C){0<C.labelDistance&&C.dataLabel&&(C.top=Math.max(0,r-A-C.labelDistance),C.bottom=Math.min(r+A+C.labelDistance,p.plotHeight),ht=C.dataLabel.getBBox().height||21,C.distributeBox={target:C.labelPosition.natural.y-C.top+ht/2,size:ht,rank:C.y},J.push(C.distributeBox))}),P=ot+ht-P,st(J,P,P/5)}for(B=0;B<Z;B++){if(Q=I[B],O=Q.labelPosition,M=Q.dataLabel,f=Q.visible===!1?"hidden":"inherit",g=P=O.natural.y,J&&S(Q.distributeBox)&&(typeof Q.distributeBox.pos>"u"?f="hidden":(Y=Q.distributeBox.size,g=q.radialDistributionY(Q))),delete Q.positionIndex,l.justify)o=q.justify(Q,A,u);else switch(l.alignTo){case"connectors":o=q.alignToConnectors(I,_,e,i);break;case"plotEdges":o=q.alignToPlotEdges(M,_,e,i);break;default:o=q.radialDistributionX(n,Q,g,P)}M._attr={visibility:f,align:O.alignment},R=Q.options.dataLabels||{},M._pos={x:o+L(R.x,l.x)+({left:c,right:-c}[O.alignment]||0),y:g+L(R.y,l.y)-M.getBBox().height/2},O&&(O.computed.x=o,O.computed.y=g),L(l.crop,!0)&&(j=M.getBBox().width,P=null,o-j<c&&_===1?(P=Math.round(j-o+c),G[3]=Math.max(P,G[3])):o+j>e-c&&_===0&&(P=Math.round(o+j-e+c),G[1]=Math.max(P,G[1])),0>g-Y/2?G[0]=Math.max(Math.round(-g+Y/2),G[0]):g+Y/2>t&&(G[2]=Math.max(Math.round(g+Y/2-t),G[2])),M.sideOverflow=P)}}}),U(G)===0||this.verifyDataLabelOverflow(G))&&(this.placeDataLabels(),this.points.forEach(function(I){if(R=w(l,I.options.dataLabels),D=L(R.connectorWidth,1)){let _;s=I.connector,(M=I.dataLabel)&&M._pos&&I.visible&&0<I.labelDistance?(f=M._attr.visibility,(_=!s)&&(I.connector=s=p.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+I.colorIndex+(I.className?" "+I.className:"")).add(n.dataLabelsGroup),p.styledMode||s.attr({"stroke-width":D,stroke:R.connectorColor||I.color||"#666666"})),s[_?"attr":"animate"]({d:I.getConnectorPath()}),s.attr("visibility",f)):s&&(I.connector=s.destroy())}}))}function m(){this.points.forEach(function(n){let a=n.dataLabel,p;a&&n.visible&&((p=a._pos)?(a.sideOverflow&&(a._attr.width=Math.max(a.getBBox().width-a.sideOverflow,0),a.css({width:a._attr.width+"px",textOverflow:(this.options.dataLabels.style||{}).textOverflow||"ellipsis"}),a.shortened=!0),a.attr(a._attr),a[a.moved?"animate":"attr"](p),a.moved=!0):a&&a.attr({y:-9999})),delete n.distributeBox},this)}function b(n){let a=this.center,p=this.options,l=p.center,c=p.minSize||80,e,t=p.size!==null;return t||(l[0]!==null?e=Math.max(a[2]-Math.max(n[1],n[3]),c):(e=Math.max(a[2]-n[1]-n[3],c),a[0]+=(n[3]-n[1])/2),l[1]!==null?e=X(e,c,a[2]-Math.max(n[0],n[2])):(e=X(e,c,a[2]-n[0]-n[2]),a[1]+=(n[0]-n[2])/2),e<a[2]?(a[2]=e,a[3]=Math.min(p.thickness?Math.max(0,e-2*p.thickness):Math.max(0,E(p.innerSize||0,e)),e),this.translate(a),this.drawDataLabels&&this.drawDataLabels()):t=!0),t}const v=[],k={radialDistributionY:function(n){return n.top+n.distributeBox.pos},radialDistributionX:function(n,a,p,l){return n.getX(p<a.top+2||p>a.bottom-2?l:p,a.half,a)},justify:function(n,a,p){return p[0]+(n.half?-1:1)*(a+n.labelDistance)},alignToPlotEdges:function(n,a,p,l){return n=n.getBBox().width,a?n+l:p-n-l},alignToConnectors:function(n,a,p,l){let c=0,e;return n.forEach(function(t){e=t.dataLabel.getBBox().width,e>c&&(c=e)}),a?c+l:p-c-l}};x.compose=function(n){F.compose(H),tt.pushUnique(v,n)&&(n=n.prototype,n.dataLabelPositioners=k,n.alignDataLabel=it,n.drawDataLabels=y,n.placeDataLabels=m,n.verifyDataLabelOverflow=b)}}(d||(d={})),d}),ct(z,"Extensions/OverlappingDataLabels.js",[z["Core/Chart/Chart.js"],z["Core/Utilities.js"]],function(F,N){function K(X,S){let w,L=!1;return X&&(w=X.newOpacity,X.oldOpacity!==w&&(X.alignAttr&&X.placed?(X[w?"removeClass":"addClass"]("highcharts-data-label-hidden"),L=!0,X.alignAttr.opacity=w,X[X.isOld?"animate":"attr"](X.alignAttr,null,function(){S.styledMode||X.css({pointerEvents:w?"auto":"none"})}),tt(S,"afterHideOverlappingLabel")):X.attr({opacity:w})),X.isOld=!0),L}const{addEvent:et,fireEvent:tt,isArray:it,isNumber:st,objectEach:H,pick:U}=N;et(F,"render",function(){let X=this,S=[];(this.labelCollectors||[]).forEach(function(w){S=S.concat(w())}),(this.yAxis||[]).forEach(function(w){w.stacking&&w.options.stackLabels&&!w.options.stackLabels.allowOverlap&&H(w.stacking.stacks,function(L){H(L,function(E){E.label&&S.push(E.label)})})}),(this.series||[]).forEach(function(w){var L=w.options.dataLabels;w.visible&&(L.enabled!==!1||w._hasPointLabels)&&(L=E=>E.forEach(d=>{d.visible&&(it(d.dataLabels)?d.dataLabels:d.dataLabel?[d.dataLabel]:[]).forEach(function(x){const y=x.options;x.labelrank=U(y.labelrank,d.labelrank,d.shapeArgs&&d.shapeArgs.height),y.allowOverlap?(x.oldOpacity=x.opacity,x.newOpacity=1,K(x,X)):S.push(x)})}),L(w.nodes||[]),L(w.points))}),this.hideOverlappingLabels(S)}),F.prototype.hideOverlappingLabels=function(X){let S=this,w=X.length,L=S.renderer;var E;let d,x,y,m,b=!1;var v=function(k){let n,a;var p;let l=k.box?0:k.padding||0,c=p=0,e,t;if(k&&(!k.alignAttr||k.placed))return n=k.alignAttr||{x:k.attr("x"),y:k.attr("y")},a=k.parentGroup,k.width||(p=k.getBBox(),k.width=p.width,k.height=p.height,p=L.fontMetrics(k.element).h),e=k.width-2*l,(t={left:"0",center:"0.5",right:"1"}[k.alignValue])?c=+t*e:st(k.x)&&Math.round(k.x)!==k.translateX&&(c=k.x-k.translateX),{x:n.x+(a.translateX||0)+l-(c||0),y:n.y+(a.translateY||0)+l-p,width:k.width-2*l,height:k.height-2*l}};for(d=0;d<w;d++)(E=X[d])&&(E.oldOpacity=E.opacity,E.newOpacity=1,E.absoluteBox=v(E));for(X.sort(function(k,n){return(n.labelrank||0)-(k.labelrank||0)}),d=0;d<w;d++)for(y=(v=X[d])&&v.absoluteBox,E=d+1;E<w;++E)m=(x=X[E])&&x.absoluteBox,!y||!m||v===x||v.newOpacity===0||x.newOpacity===0||v.visibility==="hidden"||x.visibility==="hidden"||m.x>=y.x+y.width||m.x+m.width<=y.x||m.y>=y.y+y.height||m.y+m.height<=y.y||((v.labelrank<x.labelrank?v:x).newOpacity=0);X.forEach(function(k){K(k,S)&&(b=!0)}),b&&tt(S,"afterHideAllOverlappingLabels")}}),ct(z,"Extensions/BorderRadius.js",[z["Core/Defaults.js"],z["Core/Series/Series.js"],z["Core/Series/SeriesRegistry.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Renderer/SVG/SVGRenderer.js"],z["Core/Utilities.js"]],function(F,N,K,et,tt,it){const{defaultOptions:st}=F;({seriesTypes:F}=K);const{addEvent:H,extend:U,isObject:X,merge:S,relativeLength:w}=it,L={radius:0,scope:"stack",where:void 0},E=(d,x)=>(X(d)||(d={radius:d||0}),S(L,x,d));if(et.symbolCustomAttribs.indexOf("borderRadius")===-1){et.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY");const d=tt.prototype.symbols.arc;tt.prototype.symbols.arc=function(y,m,b,v,k={}){y=d(y,m,b,v,k);const{innerR:n=0,r:a=b,start:p=0,end:l=0}=k;if(k.open||!k.borderRadius)return y;for(b=l-p,m=Math.sin(b/2),k=Math.max(Math.min(w(k.borderRadius||0,a-n),(a-n)/2,a*m/(1+m)),0),b=Math.min(k,b/Math.PI*2*n),m=y.length-1;m--;){let A,r,T;v=y;var c=m,e=1<m?b:k,t=v[c],i=v[c+1];if(i[0]==="Z"&&(i=v[0]),t[0]!=="M"&&t[0]!=="L"||i[0]!=="A"?t[0]!=="A"||i[0]!=="M"&&i[0]!=="L"||(T=i,r=t):(T=t,r=i,A=!0),T&&r&&r.params){t=r[1];var h=r[5];i=r.params;const{start:G,end:q,cx:Q,cy:D}=i;var u=h?t-e:t+e;const s=u?Math.asin(e/u):0;h=h?s:-s,u*=Math.cos(s),A?(i.start=G+h,T[1]=Q+u*Math.cos(G),T[2]=D+u*Math.sin(G),v.splice(c+1,0,["A",e,e,0,0,1,Q+t*Math.cos(i.start),D+t*Math.sin(i.start)])):(i.end=q-h,r[6]=Q+t*Math.cos(i.end),r[7]=D+t*Math.sin(i.end),v.splice(c+1,0,["A",e,e,0,0,1,Q+u*Math.cos(q),D+u*Math.sin(q)])),r[4]=Math.abs(i.end-i.start)<Math.PI?0:1}}return y};const x=tt.prototype.symbols.roundedRect;tt.prototype.symbols.roundedRect=function(y,m,b,v,k={}){const n=x(y,m,b,v,k),{r:a=0,brBoxHeight:p=v,brBoxY:l=m}=k;var c=m-l,e=l+p-(m+v);k=-.1<c-a?0:a;const t=-.1<e-a?0:a;var i=Math.max(k&&c,0);const h=Math.max(t&&e,0);e=[y+k,m],c=[y+b-k,m];const u=[y+b,m+k],A=[y+b,m+v-t],r=[y+b-t,m+v],T=[y+t,m+v],G=[y,m+v-t],q=[y,m+k];if(i){const Q=Math.sqrt(Math.pow(k,2)-Math.pow(k-i,2));e[0]-=Q,c[0]+=Q,u[1]=q[1]=m+k-i}return v<k-i&&(i=Math.sqrt(Math.pow(k,2)-Math.pow(k-i-v,2)),u[0]=A[0]=y+b-k+i,r[0]=Math.min(u[0],r[0]),T[0]=Math.max(A[0],T[0]),G[0]=q[0]=y+k-i,u[1]=q[1]=m+v),h&&(i=Math.sqrt(Math.pow(t,2)-Math.pow(t-h,2)),r[0]+=i,T[0]-=i,A[1]=G[1]=m+v-t+h),v<t-h&&(v=Math.sqrt(Math.pow(t,2)-Math.pow(t-h-v,2)),u[0]=A[0]=y+b-t+v,c[0]=Math.min(u[0],c[0]),e[0]=Math.max(A[0],e[0]),G[0]=q[0]=y+t-v,A[1]=G[1]=m),n.length=0,n.push(["M",...e],["L",...c],["A",k,k,0,0,1,...u],["L",...A],["A",t,t,0,0,1,...r],["L",...T],["A",t,t,0,0,1,...G],["L",...q],["A",k,k,0,0,1,...e],["Z"]),n},H(F.pie,"afterTranslate",function(){const y=E(this.options.borderRadius);for(const m of this.points){const b=m.shapeArgs;b&&(b.borderRadius=w(y.radius,(b.r||0)-(b.innerR||0)))}}),H(N,"afterColumnTranslate",function(){var y,m;if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){const{options:n,yAxis:a}=this,p=n.stacking==="percent";var b=(m=(y=st.plotOptions)===null||y===void 0?void 0:y[this.type])===null||m===void 0?void 0:m.borderRadius;y=E(n.borderRadius,X(b)?b:{}),m=a.options.reversed;for(const l of this.points)if({shapeArgs:b}=l,l.shapeType==="roundedRect"&&b){const{width:c=0,height:e=0,y:t=0}=b;var v=t,k=e;y.scope==="stack"&&l.stackTotal&&(v=a.translate(p?100:l.stackTotal,!1,!0,!1,!0),k=a.translate(n.threshold||0,!1,!0,!1,!0),k=this.crispCol(0,Math.min(v,k),0,Math.abs(v-k)),v=k.y,k=k.height);const i=(l.negative?-1:1)*(m?-1:1)===-1;let h=y.where;!h&&this.is("waterfall")&&Math.abs((l.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(h="all"),h||(h="end");const u=Math.min(w(y.radius,c),c/2,h==="all"?e/2:1/0)||0;h==="end"&&(i&&(v-=u),k+=u),U(b,{brBoxHeight:k,brBoxY:v,r:u})}}},{order:9})}return N={optionsToObject:E},N}),ct(z,"Core/Responsive.js",[z["Core/Utilities.js"]],function(F){const{diffObjects:N,extend:K,find:et,merge:tt,pick:it,uniqueKey:st}=F;var H;return function(U){function X(L,E){const d=L.condition;(d.callback||function(){return this.chartWidth<=it(d.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=it(d.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=it(d.minWidth,0)&&this.chartHeight>=it(d.minHeight,0)}).call(this)&&E.push(L._id)}function S(L,E){const d=this.options.responsive;var x=this.currentResponsive;let y=[];!E&&d&&d.rules&&d.rules.forEach(m=>{typeof m._id>"u"&&(m._id=st()),this.matchResponsiveRule(m,y)},this),E=tt(...y.map(m=>et((d||{}).rules||[],b=>b._id===m)).map(m=>m&&m.chartOptions)),E.isResponsiveOptions=!0,y=y.toString()||void 0,y!==(x&&x.ruleIds)&&(x&&this.update(x.undoOptions,L,!0),y?(x=N(E,this.options,!0,this.collectionsWithUpdate),x.isResponsiveOptions=!0,this.currentResponsive={ruleIds:y,mergedOptions:E,undoOptions:x},this.update(E,L,!0)):this.currentResponsive=void 0)}const w=[];U.compose=function(L){return F.pushUnique(w,L)&&K(L.prototype,{matchResponsiveRule:X,setResponsive:S}),L}}(H||(H={})),H}),ct(z,"masters/highcharts.src.js",[z["Core/Globals.js"],z["Core/Utilities.js"],z["Core/Defaults.js"],z["Core/Animation/Fx.js"],z["Core/Animation/AnimationUtilities.js"],z["Core/Renderer/HTML/AST.js"],z["Core/Templating.js"],z["Core/Renderer/RendererUtilities.js"],z["Core/Renderer/SVG/SVGElement.js"],z["Core/Renderer/SVG/SVGRenderer.js"],z["Core/Renderer/HTML/HTMLElement.js"],z["Core/Renderer/HTML/HTMLRenderer.js"],z["Core/Axis/Axis.js"],z["Core/Axis/DateTimeAxis.js"],z["Core/Axis/LogarithmicAxis.js"],z["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],z["Core/Axis/Tick.js"],z["Core/Tooltip.js"],z["Core/Series/Point.js"],z["Core/Pointer.js"],z["Core/Legend/Legend.js"],z["Core/Chart/Chart.js"],z["Core/Axis/Stacking/StackingAxis.js"],z["Core/Axis/Stacking/StackItem.js"],z["Core/Series/Series.js"],z["Core/Series/SeriesRegistry.js"],z["Series/Column/ColumnSeries.js"],z["Series/Column/ColumnDataLabel.js"],z["Series/Pie/PieSeries.js"],z["Series/Pie/PieDataLabel.js"],z["Core/Series/DataLabel.js"],z["Core/Responsive.js"],z["Core/Color/Color.js"],z["Core/Time.js"]],function(F,N,K,et,tt,it,st,H,U,X,S,w,L,E,d,x,y,m,b,v,k,n,a,p,l,c,e,t,i,h,u,A,r,T){return F.animate=tt.animate,F.animObject=tt.animObject,F.getDeferredAnimation=tt.getDeferredAnimation,F.setAnimation=tt.setAnimation,F.stop=tt.stop,F.timers=et.timers,F.AST=it,F.Axis=L,F.Chart=n,F.chart=n.chart,F.Fx=et,F.Legend=k,F.PlotLineOrBand=x,F.Point=b,F.Pointer=v,F.Series=l,F.StackItem=p,F.SVGElement=U,F.SVGRenderer=X,F.Templating=st,F.Tick=y,F.Time=T,F.Tooltip=m,F.Color=r,F.color=r.parse,w.compose(X),S.compose(U),v.compose(n),k.compose(n),F.defaultOptions=K.defaultOptions,F.getOptions=K.getOptions,F.time=K.defaultTime,F.setOptions=K.setOptions,F.dateFormat=st.dateFormat,F.format=st.format,F.numberFormat=st.numberFormat,F.addEvent=N.addEvent,F.arrayMax=N.arrayMax,F.arrayMin=N.arrayMin,F.attr=N.attr,F.clearTimeout=N.clearTimeout,F.correctFloat=N.correctFloat,F.createElement=N.createElement,F.css=N.css,F.defined=N.defined,F.destroyObjectProperties=N.destroyObjectProperties,F.discardElement=N.discardElement,F.distribute=H.distribute,F.erase=N.erase,F.error=N.error,F.extend=N.extend,F.extendClass=N.extendClass,F.find=N.find,F.fireEvent=N.fireEvent,F.getMagnitude=N.getMagnitude,F.getStyle=N.getStyle,F.inArray=N.inArray,F.isArray=N.isArray,F.isClass=N.isClass,F.isDOMElement=N.isDOMElement,F.isFunction=N.isFunction,F.isNumber=N.isNumber,F.isObject=N.isObject,F.isString=N.isString,F.keys=N.keys,F.merge=N.merge,F.normalizeTickInterval=N.normalizeTickInterval,F.objectEach=N.objectEach,F.offset=N.offset,F.pad=N.pad,F.pick=N.pick,F.pInt=N.pInt,F.relativeLength=N.relativeLength,F.removeEvent=N.removeEvent,F.seriesType=c.seriesType,F.splat=N.splat,F.stableSort=N.stableSort,F.syncTimeout=N.syncTimeout,F.timeUnits=N.timeUnits,F.uniqueKey=N.uniqueKey,F.useSerialIds=N.useSerialIds,F.wrap=N.wrap,t.compose(e),u.compose(l),E.compose(L),d.compose(L),h.compose(i),x.compose(L),A.compose(n),a.compose(L,n,l),m.compose(v),F}),z["masters/highcharts.src.js"]._modules=z,z["masters/highcharts.src.js"]})}(Wt)),Wt.exports}(function(lt,at){(function(ct,z){lt.exports=z(Me(),se)})(window,function(ct,z){return N=[function(et,tt){et.exports=ct},function(et,tt){et.exports=z},function(et,st,it){it.r(st),it.d(st,"Chart",function(){return m}),it.d(st,"default",function(){return b});var st=it(0),H=it.n(st);function U(v,k){return function n(a,p,l){function c(e,t){!H.a.isObject(e,!l)||H.a.isClass(e)||H.a.isDOMElement(e)?a[t]=p[t]:a[t]=n(a[t]||H.a.isArray(e)?[]:{},e,l)}return H.a.isArray(p)?p.forEach(c):H.a.objectEach(p,c),a}({},v,k)}var X=it(1);function S(v){return(S=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k})(v)}function w(v){return function(k){if(Array.isArray(k))return L(k)}(v)||function(k){if(typeof Symbol<"u"&&k[Symbol.iterator]!=null||k["@@iterator"]!=null)return Array.from(k)}(v)||function(k,n){var a;if(k)return typeof k=="string"?L(k,n):(a=(a=Object.prototype.toString.call(k).slice(8,-1))==="Object"&&k.constructor?k.constructor.name:a)==="Map"||a==="Set"?Array.from(k):a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?L(k,n):void 0}(v)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
3
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function L(v,k){(k==null||k>v.length)&&(k=v.length);for(var n=0,a=new Array(k);n<k;n++)a[n]=v[n];return a}function E(v,k){var n,a=Object.keys(v);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(v),k&&(n=n.filter(function(p){return Object.getOwnPropertyDescriptor(v,p).enumerable})),a.push.apply(a,n)),a}function d(v){for(var k=1;k<arguments.length;k++){var n=arguments[k]!=null?arguments[k]:{};k%2?E(Object(n),!0).forEach(function(a){var p,l;p=v,l=n[a=a],(a=function(c){return c=function(e,t){if(S(e)!=="object"||e===null)return e;var i=e[Symbol.toPrimitive];if(i===void 0)return(t==="string"?String:Number)(e);if(i=i.call(e,t||"default"),S(i)!=="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}(c,"string"),S(c)==="symbol"?c:String(c)}(a))in p?Object.defineProperty(p,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):p[a]=l}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(n)):E(Object(n)).forEach(function(a){Object.defineProperty(v,a,Object.getOwnPropertyDescriptor(n,a))})}return v}var x={template:'<div ref="chart"></div>',props:{constructorType:{type:String,default:"chart"},options:{type:Object,required:!0},callback:Function,updateArgs:{type:Array,default:function(){return[!0,!0]}},highcharts:{type:Object},deepCopyOnUpdate:{type:Boolean,default:!0}}},y=function(v,k){return k.split(".")[0]<3?d(d({},x),{},{render:function(n){return n("div",{ref:"chart"})},beforeDestroy:function(){this.chart&&this.chart.destroy()},watch:{options:{handler:function(n){var a;(a=this.chart).update.apply(a,[U(n,this.deepCopyOnUpdate)].concat(w(this.updateArgs)))},deep:!0}},mounted:function(){var n=this.highcharts||v;this.options&&n[this.constructorType]?this.chart=n[this.constructorType](this.$refs.chart,U(this.options,!0),this.callback||null):this.options?console.warn("'".concat(this.constructorType,"' constructor-type is incorrect. Sometimes this error is caused by the fact, that the corresponding module wasn't imported.")):console.warn('The "options" parameter was not passed.')}}):d(d({},x),{},{render:function(){return Object(X.h)("div",{ref:"chartContainer"})},setup:function(n){var a=Object(X.ref)(null),p=Object(X.shallowRef)({});return Object(X.onMounted)(function(){var l=n.highcharts||v;n.options&&l[n.constructorType]?p.value=l[n.constructorType](a.value,U(n.options,!0),n.callback||null):n.options?console.warn("'".concat(n.constructorType,"' constructor-type is incorrect. Sometimes this error is caused by the fact, that the corresponding module wasn't imported.")):console.warn('The "options" parameter was not passed.')}),Object(X.watch)(function(){return n.options},function(l,c){var e;(e=p.value).update.apply(e,[U(l,n.deepCopyOnUpdate)].concat(w(n.updateArgs)))},{deep:!0}),Object(X.onBeforeUnmount)(function(){p.value&&p.value.destroy()}),{chart:p,chartContainer:a,props:n}}})},m=y(H.a,X.version||it.n(X).a.version);function b(v){var k=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};v.component(k.tagName||"highcharts",y(k.highcharts||H.a,v.version))}}],K={},F.m=N,F.c=K,F.d=function(et,tt,it){F.o(et,tt)||Object.defineProperty(et,tt,{enumerable:!0,get:it})},F.r=function(et){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(et,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(et,"__esModule",{value:!0})},F.t=function(et,tt){if(1&tt&&(et=F(et)),8&tt||4&tt&&typeof et=="object"&&et&&et.__esModule)return et;var it=Object.create(null);if(F.r(it),Object.defineProperty(it,"default",{enumerable:!0,value:et}),2&tt&&typeof et!="string")for(var st in et)F.d(it,st,(function(H){return et[H]}).bind(null,st));return it},F.n=function(et){var tt=et&&et.__esModule?function(){return et.default}:function(){return et};return F.d(tt,"a",tt),tt},F.o=function(et,tt){return Object.prototype.hasOwnProperty.call(et,tt)},F.p="",F(F.s=2);function F(et){var tt;return(K[et]||(tt=K[et]={i:et,l:!1,exports:{}},N[et].call(tt.exports,tt,tt.exports,F),tt.l=!0,tt)).exports}var N,K})})(_t);var Ve=_t.exports;const be={class:"flex flex-col items-start justify-between p-4 md:flex-row md:items-center space-y-3 md:space-y-0","aria-label":"Table navigation"},Te={class:"text-sm font-normal text-gray-500 dark:text-gray-400"},Ae={class:"font-semibold text-gray-900 dark:text-white"},Pe={class:"font-semibold text-gray-900 dark:text-white"},Oe={class:"inline-flex items-stretch font-mono -space-x-px"},Le=vt("span",{class:"sr-only"},"Previous",-1),Ee=vt("svg",{class:"h-5 w-5","aria-hidden":"true",fill:"currentColor",viewbox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},[vt("path",{"fill-rule":"evenodd",d:"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z","clip-rule":"evenodd"})],-1),De=[Le,Ee],je={key:0},Ie=["onClick"],Be={"aria-current":"page",class:"z-10 flex items-center justify-center border border-primary-300 bg-primary-50 px-3 py-2 text-sm leading-tight text-primary-600 dark:border-gray-700 dark:bg-gray-700 hover:bg-primary-100 dark:text-white hover:text-primary-700",hover:"cursor-pointer"},Re=["onClick"],ze={key:1},Ne=vt("span",{class:"sr-only"},"Next",-1),He=vt("svg",{class:"h-5 w-5","aria-hidden":"true",fill:"currentColor",viewbox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},[vt("path",{"fill-rule":"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z","clip-rule":"evenodd"})],-1),We=[Ne,He],Nt="flex items-center justify-center px-3 py-2 text-sm text-gray-500 bg-white border border-gray-300 hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white leading-tight",qe=Ut({__name:"TablePagination",props:{pagination:null},emits:["update:pagination"],setup(lt,{emit:at}){const ct=lt,z=Vt({get(){return ct.pagination},set(F){at("update:pagination",F)}});return(F,N)=>(Tt(),At("nav",be,[vt("span",Te,[Xt(" Showing "),vt("span",Ae,Lt(wt(z).currentLeft)+"-"+Lt(Math.max(0,wt(z).currentRight-1)),1),Xt(" of "),vt("span",Pe,Lt(wt(z).totalSize),1)]),vt("ul",Oe,[vt("li",null,[vt("a",{class:"ml-0 h-full flex items-center justify-center border border-gray-300 rounded-l-lg bg-white px-3 py-1.5 text-gray-500 dark:border-gray-700 dark:bg-gray-800 hover:bg-gray-100 dark:text-gray-400 hover:text-gray-700 dark:hover:bg-gray-700 dark:hover:text-white",hover:"cursor-pointer",onClick:N[0]||(N[0]=K=>wt(z).onPageChange({diff:-1}))},De)]),wt(z).currentPage!==0?(Tt(),At("li",je,[vt("a",{class:Ot(Nt),hover:"cursor-pointer",onClick:N[1]||(N[1]=K=>wt(z).onPageChange({to:0}))}," 1 ")])):Gt("",!0),(Tt(!0),At(Bt,null,Rt(wt(z).leftDecrPage,K=>(Tt(),At("li",{key:K},[vt("a",{class:Ot(Nt),hover:"cursor-pointer",onClick:et=>wt(z).onPageChange({to:K})},Lt(K+1),9,Ie)]))),128)),vt("li",null,[vt("a",Be,Lt(wt(z).currentPage+1),1)]),(Tt(!0),At(Bt,null,Rt(wt(z).rightIncrPage,K=>(Tt(),At("li",{key:K},[vt("a",{hover:"cursor-pointer",class:Ot(Nt),onClick:et=>wt(z).onPageChange({to:K})},Lt(K+1),9,Re)]))),128)),wt(z).currentPage!==wt(z).totalPage-1&&wt(z).totalPage>1?(Tt(),At("li",ze,[vt("a",{hover:"cursor-pointer",class:Ot(Nt),onClick:N[2]||(N[2]=K=>wt(z).onPageChange({to:wt(z).totalPage-1}))},Lt(wt(z).totalPage),1)])):Gt("",!0),vt("li",null,[vt("a",{class:"h-full flex items-center justify-center border border-gray-300 rounded-r-lg bg-white px-3 py-1.5 leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 hover:bg-gray-100 dark:text-gray-400 hover:text-gray-700 dark:hover:bg-gray-700 dark:hover:text-white",hover:"cursor-pointer",onClick:N[3]||(N[3]=K=>wt(z).onPageChange({diff:1}))},We)])])]))}});class $e{constructor(){zt(this,"totalSize");zt(this,"currentPage");zt(this,"pageSize");this.totalSize=0,this.currentPage=0,this.pageSize=16}get totalPage(){return Math.floor((this.totalSize+this.pageSize-1)/this.pageSize)}get currentLeft(){return this.currentPage*this.pageSize}get currentRight(){return Math.min(this.totalSize,(this.currentPage+1)*this.pageSize)}get leftDecrPage(){const at=[];let ct=1,z=this.currentPage-ct;for(;z>0;)at.push(z),ct=ct<<1,z-=ct;return at.reverse()}get rightIncrPage(){const at=[];let ct=1,z=this.currentPage+ct;for(;z+1<this.totalPage;)at.push(z),ct=ct<<1,z+=ct;return at}onPageChange(at){const ct=this.totalPage;let z=this.currentPage;if((at==null?void 0:at.to)!==void 0&&(z=at.to),(at==null?void 0:at.diff)!==void 0){const F=at.diff;z=z+F}z<0||z>=ct||(this.currentPage=z)}}export{$e as P,Ye as _,qe as a,Ue as g,Ve as h,Fe as y};