diff --git a/assets/index.85f11597.js b/assets/index.39e6e614.js similarity index 96% rename from assets/index.85f11597.js rename to assets/index.39e6e614.js index 260d774..09d87b9 100644 --- a/assets/index.85f11597.js +++ b/assets/index.39e6e614.js @@ -126,7 +126,7 @@ hooks.version="2.29.4";setHookCallback(createLocal);hooks.fn=proto;hooks.min=min c1.5-1.3,2.4-3.2,2.4-5.1c0-2.1-0.9-4-2.6-5.3c-0.2-0.1-0.4-0.1-0.5,0.1c-0.1,0.2-0.1,0.4,0.1,0.5c1.5,1.2,2.3,2.9,2.3,4.7 c0,1.8-0.8,3.4-2.1,4.6c-0.2,0.1-0.2,0.4,0,0.5c0.1,0.1,0.2,0.1,0.3,0.1C39,47.4,39.1,47.4,39.2,47.3z`})],-1)),_hoisted_3$6=[_hoisted_2$8];function _sfc_render$b(e,t){return openBlock(),createElementBlock("svg",_hoisted_1$9,_hoisted_3$6)}const IconSensor=_export_sfc(_sfc_main$b,[["render",_sfc_render$b],["__scopeId","data-v-1ca21f0d"]]),_imports_0$1=""+new URL("app-icon-512.a5eb7b3f.png",import.meta.url).href,Header_vue_vue_type_style_index_0_scoped_a4474917_lang="",_sfc_main$a={components:{IconSensor},data(){return{locale:localStorage.getItem("locale")||this.$i18n.locale||"en",store:useStore()}},watch:{locale(e){this.$i18n.locale=e,localStorage.setItem("locale",e)}},computed:{countPoints(){return this.store.sensors.length}}},_withScopeId$5=e=>(pushScopeId("data-v-a4474917"),e=e(),popScopeId(),e),_hoisted_1$8={class:"flexline space-between"},_hoisted_2$7={class:"flexline align-start"},_hoisted_3$5=_withScopeId$5(()=>createBaseVNode("img",{alt:"App logo",src:_imports_0$1},null,-1)),_hoisted_4$4={key:0,class:"sensorscount"},_hoisted_5$4={class:"flexline"},_hoisted_6$4=_withScopeId$5(()=>createBaseVNode("option",{value:"en"},"English",-1)),_hoisted_7$4=_withScopeId$5(()=>createBaseVNode("option",{value:"ru"},"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",-1)),_hoisted_8$4=[_hoisted_6$4,_hoisted_7$4],_hoisted_9$4={id:"about",class:"popover popover-top-right",popover:""},_hoisted_10$3=createStaticVNode('

Web3 \u043E\u0442\u043A\u0440\u044B\u0442\u0430\u044F \u0441\u0435\u0442\u044C \u0434\u0430\u0442\u0447\u0438\u043A\u043E\u0432

\u0414\u043E\u0431\u0440\u043E \u043F\u043E\u0436\u0430\u043B\u043E\u0432\u0430\u0442\u044C \u0432 \u043E\u0442\u043A\u0440\u044B\u0442\u0443\u044E \u0441\u0435\u0442\u044C \u0434\u0430\u0442\u0447\u0438\u043A\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u043F\u043E\u0441\u0442\u0440\u043E\u0435\u043D\u0430 \u043D\u0430 open-source \u043F\u0440\u0438\u043D\u0446\u0438\u043F\u0430\u0445 \u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u044D\u043D\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u0430\u043C\u0438 (\u0441\u043C. the free will of individuals). \u041A\u0430\u0440\u0442\u0430 \u043F\u0440\u0435\u0434\u043B\u0430\u0433\u0430\u0435\u0442 \u0434\u0432\u0430 \u0440\u0430\u0437\u043D\u044B\u0445 \u0443\u0440\u043E\u0432\u043D\u044F \u0434\u0435\u0446\u0435\u043D\u0442\u0440\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438: \u043F\u0440\u044F\u043C\u0430\u044F peer-to-peer \u0441\u0432\u044F\u0437\u044C \u0434\u0430\u0442\u0447\u0438\u043A\u043E\u0432 \u0438 \u0431\u043B\u043E\u043A\u0447\u0435\u0439\u043D \u0434\u043B\u044F \u0441\u0431\u043E\u0440\u0430 \u0438 \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u0438\u0439 \u0441 \u0434\u0430\u0442\u0447\u0438\u043A\u043E\u0432. \u0422\u0443\u0442 \u043C\u043E\u0436\u043D\u043E \u043E\u0437\u043D\u0430\u043A\u043E\u043C\u0438\u0442\u044C\u0441\u044F \u0431\u043E\u043B\u0435\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E \u0441 \u0442\u0435\u0445\u043D\u0438\u0447\u0435\u0441\u043A\u043E\u0439 \u0441\u0442\u043E\u0440\u043E\u043D\u043E\u0439.

\u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0441\u0432\u043E\u0439 \u0434\u0430\u0442\u0447\u0438\u043A \u043D\u0430 \u043A\u0430\u0440\u0442\u0443

\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0441\u043E\u0431\u0440\u0430\u0442\u044C \u0441\u0432\u043E\u0439 \u0434\u0430\u0442\u0447\u0438\u043A, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u043A\u043E\u043C\u043F\u043B\u0435\u043A\u0442\u0443\u044E\u0449\u0438\u0435 \u043D\u0430 \u043E\u0442\u043A\u0440\u044B\u0442\u043E\u043C \u0440\u044B\u043D\u043A\u0435 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u0438\u043A\u0438, \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0434\u0430\u0442\u0447\u0438\u043A \u043D\u0430 \u043A\u0430\u0440\u0442\u0443. \u041C\u044B \u0441 \u0440\u0430\u0434\u043E\u0441\u0442\u044C\u044E \u043F\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043C \u043D\u043E\u0432\u044B\u0445 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0430. \u041F\u0440\u0438\u0441\u043E\u0435\u0434\u0438\u043D\u044F\u0439\u0442\u0435\u0441\u044C!

\u0412\u0438\u0434\u0435\u043E-\u0438\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u044F \u043D\u0430 YouTube

',5),_hoisted_15$2=createStaticVNode('

Web3 public sensors map

Welcome to the decentralized opensource sensors map which operates with the sole intent of serving the free will of individuals, without any beneficiaries. It offers two distinct layers of decentralization at your choise: peer-to-peer connectivity for direct access to sensor data, and the federative concept for accumulating sensor data and displaying measurement history. Click here for further technical details.

Add your sensor on this map

You can assemble your own sensor using components available on the free market. Follow the instructions provided to connect your sensor to the map. We welcome your participation and look forward to expanding our community together. Join us today!

YouTube video guide

',5),_hoisted_20$2=_withScopeId$5(()=>createBaseVNode("hr",null,null,-1)),_hoisted_21$2={class:"navlinks"},_hoisted_22$2={href:"https://github.com/airalab/sensors.robonomics.network",target:"_blank",rel:"noopener"},_hoisted_23$2={class:"popovercontrol",popovertarget:"about"};function _sfc_render$a(e,t,r,n,o,a){const l=resolveComponent("router-link"),c=resolveComponent("IconSensor"),u=resolveComponent("font-awesome-icon");return openBlock(),createElementBlock("header",_hoisted_1$8,[createBaseVNode("div",_hoisted_2$7,[createVNode(l,{to:"/",class:"appicon"},{default:withCtx(()=>[_hoisted_3$5]),_:1}),a.countPoints>0?(openBlock(),createElementBlock("b",_hoisted_4$4,[createVNode(c),createTextVNode(" "+toDisplayString$1(a.countPoints),1)])):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_5$4,[withDirectives(createBaseVNode("select",{"onUpdate:modelValue":t[0]||(t[0]=g=>o.locale=g)},_hoisted_8$4,512),[[vModelSelect,o.locale]]),createBaseVNode("div",_hoisted_9$4,[o.locale==="ru"?(openBlock(),createElementBlock(Fragment,{key:0},[_hoisted_10$3],64)):(openBlock(),createElementBlock(Fragment,{key:1},[_hoisted_15$2],64)),_hoisted_20$2,createBaseVNode("section",_hoisted_21$2,[createBaseVNode("a",_hoisted_22$2,toDisplayString$1(e.$t("links.github")),1),createVNode(l,{to:"/air-measurements"},{default:withCtx(()=>[createTextVNode(toDisplayString$1(e.$t("links.measurement")),1)]),_:1}),createVNode(l,{to:"/privacy-policy"},{default:withCtx(()=>[createTextVNode(toDisplayString$1(e.$t("links.privacy")),1)]),_:1})])]),createBaseVNode("button",_hoisted_23$2,[createVNode(u,{icon:"fa-solid fa-bars"})])])])}const Header=_export_sfc(_sfc_main$a,[["render",_sfc_render$a],["__scopeId","data-v-a4474917"]]),_imports_0=""+new URL("sensors-world-app.8a0828bb.png",import.meta.url).href,InstallPWA_vue_vue_type_style_index_0_scoped_b59a209f_lang="",_sfc_main$9={data(){return{deferredPrompt:null,isSupported:!1,db:null,isInstalled:"loading",isBrowserSupport:!0,browsers:{chrome:!1,safari:!1,firefox:!1,edge:!1,opera:!1}}},methods:{async getDb(){return new Promise((e,t)=>{let r=window.indexedDB.open("SensorsDB",1);r.onerror=n=>{console.log("Error opening db",n),t("Error")},r.onsuccess=n=>{e(n.target.result)},r.onupgradeneeded=n=>{n.target.result.createObjectStore("install",{autoIncrement:!0,keyPath:"id"})}})},async getData(){return new Promise(e=>{let t=this.db.transaction(["install"],"readonly");t.oncomplete=()=>{e(n)};let r=t.objectStore("install"),n=null;r.openCursor().onsuccess=o=>{let a=o.target.result;a&&(n=a.value,a.continue())}})},async addDataToDb(e=!1,t=!1){return new Promise(r=>{let n=this.db.transaction(["install"],"readwrite");n.oncomplete=()=>{r()};let o=n.objectStore("install");o.delete(1),o.add({id:1,removed:e,installed:t})})},async installApp(){if(this.addDataToDb(!1,!0),this.deferredPrompt!==null){this.deferredPrompt.prompt();const{outcome:e}=await this.deferredPrompt.userChoice;e==="accepted"&&(this.deferredPrompt=null,this.isSupported=!1,this.isInstalled="installed")}},removeInstall(){this.addDataToDb(!0,!1),this.isInstalled="removed"},checkBrowser(){let e=navigator.userAgent;this.browsers.chrome=e.indexOf("Chrome")>-1,this.browsers.firefox=e.indexOf("Firefox")>-1,this.browsers.safari=e.indexOf("Safari")>-1,this.browsers.chrome&&this.browsers.safari&&(this.browsers.safari=!1),this.browsers.opera=e.indexOf("OP")>-1,this.browsers.chrome&&this.browsers.opera&&(this.browsers.chrome=!1)}},async created(){this.db=await this.getDb(),this.isInstalled=await this.getData()?await this.getData():null},mounted(){window.addEventListener("beforeinstallprompt",e=>{this.isSupported=!0,this.deferredPrompt=e}),window.matchMedia("(display-mode: standalone)").matches?this.isSupported=!0:this.isSupported=!1,this.checkBrowser(),(this.browsers.safari||this.browsers.firefox||this.browsers.opera)&&(this.isBrowserSupport=!1)}},_withScopeId$4=e=>(pushScopeId("data-v-b59a209f"),e=e(),popScopeId(),e),_hoisted_1$7={key:0,class:"container install-pwa__container"},_hoisted_2$6={class:"install-pwa__content"},_hoisted_3$4=_withScopeId$4(()=>createBaseVNode("img",{src:_imports_0,alt:"sensors-cy-app"},null,-1)),_hoisted_4$3={class:"install-pwa__text"},_hoisted_5$3=_withScopeId$4(()=>createBaseVNode("h3",null,"Available as web application (PWA)",-1));function _sfc_render$9(e,t,r,n,o,a){return!o.isInstalled&&o.isBrowserSupport?(openBlock(),createElementBlock("div",_hoisted_1$7,[createBaseVNode("div",_hoisted_2$6,[_hoisted_3$4,createBaseVNode("div",_hoisted_4$3,[_hoisted_5$3,createBaseVNode("button",{onClick:t[0]||(t[0]=(...l)=>a.installApp&&a.installApp(...l)),class:"install-pwa__btn"},"Install")])]),createBaseVNode("button",{onClick:t[1]||(t[1]=(...l)=>a.removeInstall&&a.removeInstall(...l)),class:"install-pwa__remove"})])):createCommentVNode("",!0)}const InstallPWA=_export_sfc(_sfc_main$9,[["render",_sfc_render$9],["__scopeId","data-v-b59a209f"]]),MessagePopup_vue_vue_type_style_index_0_scoped_c5bfb7c2_lang="";function preloadImages(e,t){let r=0;const n={};function o(){if(r++,r==e.length){const a=[],l=[];for(const c of e)n[c]&&n[c]>0?(console.log(`Bad image ${c}`),l.push(c)):a.push(c);t(a,l)}}for(let a of e){let l=document.createElement("img");l.onload=()=>{n[a]=0,o()},l.onerror=()=>{n[a]||(n[a]=0),n[a]++,n[a]<3?l.src=a:o()},l.src=a}}const _sfc_main$8={props:["data"],data(){return{isImages:!1,images:[],badImages:[],imagesLoaded:!1,state:"neutral"}},computed:{dateMsg:function(){return hooks(this.data.timestamp,"X").format("DD.MM.YYYY HH:mm:ss")},classList(){return{["sensor-popup__header"]:!0,[`sensor-popup__header--${this.state}`]:this.state}}},watch:{data(){this.imagesLoad()}},created(){this.imagesLoad()},methods:{replaceWithBr(e){return e.replace(/\n/g,"
")},imagesLoad(){if(this.data.images&&this.data.images.length>0){this.images=[],this.badImages=[],this.imagesLoaded=!1,this.isImages=!0;const e=this.data.images.map(t=>`https://aira.mypinata.cloud/ipfs/${this.data.ipfs}/${t}`);preloadImages(e,(t,r)=>{t.length>0&&(this.images=t),r.length>0&&(this.badImages=r),this.imagesLoaded=!0})}else this.isImages=!1,this.images=[],this.badImages=[],this.imagesLoaded=!1}}},_hoisted_1$6={class:"container sensor-popup sensors-panel sensors-panel--center-right active popup-js"},_hoisted_2$5={class:"sensor-popup__header-icon"},_hoisted_3$3={class:"sensor-popup__header-wrapper"},_hoisted_4$2={class:"sensor-popup--subtitle"},_hoisted_5$2={ref:"content",class:"sensor-popup--content"},_hoisted_6$3=["innerHTML"],_hoisted_7$3={key:0},_hoisted_8$3=["href"],_hoisted_9$3=["src"],_hoisted_10$2=["href"];function _sfc_render$8(e,t,r,n,o,a){const l=resolveComponent("font-awesome-icon");return openBlock(),createElementBlock("div",_hoisted_1$6,[createBaseVNode("div",{class:normalizeClass(a.classList)},[createBaseVNode("div",_hoisted_2$5,[createVNode(l,{icon:"fa-solid fa-face-meh"})]),createBaseVNode("div",_hoisted_3$3,[createBaseVNode("h2",null,toDisplayString$1(e.$t("details.user"))+" "+toDisplayString$1(r.data.username),1),createBaseVNode("div",_hoisted_4$2,[createBaseVNode("span",null,[createVNode(l,{icon:"fa-solid fa-stopwatch"}),createTextVNode(" "+toDisplayString$1(a.dateMsg),1)])])])],2),createBaseVNode("div",_hoisted_5$2,[createBaseVNode("div",{innerHTML:a.replaceWithBr(r.data.message)},null,8,_hoisted_6$3),o.isImages?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode("h2",null,toDisplayString$1(e.$t("details.photos")),1),o.imagesLoaded?(openBlock(),createElementBlock(Fragment,{key:1},[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.images,(c,u)=>(openBlock(),createElementBlock("div",{key:u},[createBaseVNode("a",{href:c,target:"_blank"},[createBaseVNode("img",{style:{"max-width":"400px"},src:c},null,8,_hoisted_9$3)],8,_hoisted_8$3)]))),128)),createBaseVNode("template",null,[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.badImages,(c,u)=>(openBlock(),createElementBlock("a",{key:u,href:c,target:"_blank"},toDisplayString$1(c),9,_hoisted_10$2))),128))])],64)):(openBlock(),createElementBlock("div",_hoisted_7$3,"..."))],64)):createCommentVNode("",!0)],512),createBaseVNode("a",{class:"popup__close",href:"javascript:;",onClick:t[0]||(t[0]=withModifiers(c=>e.$emit("close"),["stop","prevent"]))},[createVNode(l,{icon:"fa-solid fa-xmark"})])])}const MessagePopup=_export_sfc(_sfc_main$8,[["render",_sfc_render$8],["__scopeId","data-v-c5bfb7c2"]]),Bookmark_vue_vue_type_style_index_0_scoped_81c30ff3_lang="",_sfc_main$7={props:["address","link","geo"],data(){return{IsBookmarked:!1,db:null,bookmarks:[],bookmarkid:null,bookmarkname:"",store:useStore()}},computed:{buttonclasses(){return{button:!0,["button-green"]:this.IsBookmarked}}},methods:{async findbookmark(){return(await IDBgettable(this.store.idbBookmarkDbname,this.store.idbBookmarkVDbver,this.store.idbBookmarkVDbtable)).find(t=>t.address===this.$props.address)},async addbookmark(){await this.findbookmark()?this.bookmarkid&&IDBworkflow(this.store.idbBookmarkDbname,this.store.idbBookmarkVDbver,this.store.idbBookmarkVDbtable,"readwrite",r=>{const n=r.get(this.bookmarkid);n.addEventListener("error",o=>{console.log(o)}),n.addEventListener("success",o=>{const a=o.target.result;a.customName=this.bookmarkname;const l=r.put(a);l.addEventListener("error",c=>{console.log(c)}),l.addEventListener("success",c=>{this.IsBookmarked=!0})})}):IDBworkflow(this.store.idbBookmarkDbname,this.store.idbBookmarkVDbver,this.store.idbBookmarkVDbtable,"readwrite",r=>{r.add({customName:this.bookmarkname,address:this.$props.address,link:this.$props.link,geo:JSON.stringify(this.$props.geo)}),this.IsBookmarked=!0});const t=new BroadcastChannel(this.store.idbWatcherBroadcast);t.postMessage(this.store.idbBookmarkVDbtable),t.close()}},async mounted(){const e=await this.findbookmark();e&&(this.IsBookmarked=!0,this.bookmarkid=e.id,this.bookmarkname=e.customName)}},_hoisted_1$5=["placeholder"],_hoisted_2$4=["disabled","area-label"];function _sfc_render$7(e,t,r,n,o,a){const l=resolveComponent("font-awesome-icon");return openBlock(),createElementBlock("form",{class:"flexline",onSubmit:t[2]||(t[2]=withModifiers((...c)=>a.addbookmark&&a.addbookmark(...c),["prevent"]))},[withDirectives(createBaseVNode("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=c=>o.bookmarkname=c),placeholder:e.$t("sensorpopup.bookmarkplaceholder"),onInput:t[1]||(t[1]=c=>o.IsBookmarked=!1)},null,40,_hoisted_1$5),[[vModelText,o.bookmarkname]]),createBaseVNode("button",{class:normalizeClass(a.buttonclasses),disabled:o.IsBookmarked,"area-label":e.$t("sensorpopup.bookmarkbutton")},[o.IsBookmarked?(openBlock(),createBlock(l,{key:1,icon:"fa-solid fa-check"})):(openBlock(),createBlock(l,{key:0,icon:"fa-solid fa-bookmark"}))],10,_hoisted_2$4)],32)}const Bookmark=_export_sfc(_sfc_main$7,[["render",_sfc_render$7],["__scopeId","data-v-81c30ff3"]]);var highcharts={exports:{}},hasRequiredHighcharts;function requireHighcharts(){return hasRequiredHighcharts||(hasRequiredHighcharts=1,function(e){(function(t,r){e.exports?(r.default=r,e.exports=t&&t.document?r(t):r):(t.Highcharts&&t.Highcharts.error(16,!0),t.Highcharts=r(t))})(typeof window<"u"?window:commonjsGlobal$2,function(t){var r={};function n(o,a,l,c){o.hasOwnProperty(a)||(o[a]=c.apply(null,l),typeof CustomEvent=="function"&&t.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:a,module:o[a]}})))}return n(r,"Core/Globals.js",[],function(){var o,a;return(a=o||(o={})).SVG_NS="http://www.w3.org/2000/svg",a.product="Highcharts",a.version="11.4.3",a.win=t!==void 0?t:{},a.doc=a.win.document,a.svg=a.doc&&a.doc.createElementNS&&!!a.doc.createElementNS(a.SVG_NS,"svg").createSVGRect,a.userAgent=a.win.navigator&&a.win.navigator.userAgent||"",a.isChrome=a.userAgent.indexOf("Chrome")!==-1,a.isFirefox=a.userAgent.indexOf("Firefox")!==-1,a.isMS=/(edge|msie|trident)/i.test(a.userAgent)&&!a.win.opera,a.isSafari=!a.isChrome&&a.userAgent.indexOf("Safari")!==-1,a.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(a.userAgent),a.isWebKit=a.userAgent.indexOf("AppleWebKit")!==-1,a.deg2rad=2*Math.PI/360,a.hasBidiBug=a.isFirefox&&4>parseInt(a.userAgent.split("Firefox/")[1],10),a.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],a.noop=function(){},a.supportsPassiveEvents=function(){let l=!1;if(!a.isMS){let c=Object.defineProperty({},"passive",{get:function(){l=!0}});a.win.addEventListener&&a.win.removeEventListener&&(a.win.addEventListener("testPassive",a.noop,c),a.win.removeEventListener("testPassive",a.noop,c))}return l}(),a.charts=[],a.composed=[],a.dateFormats={},a.seriesTypes={},a.symbolSizes={},a.chartCount=0,o}),n(r,"Core/Utilities.js",[r["Core/Globals.js"]],function(o){let a,{charts:l,doc:c,win:u}=o;function g(te,N,B,ee){let oe=N?"Highcharts error":"Highcharts warning";te===32&&(te=`${oe}: Deprecated member`);let he=D(te),be=he?`${oe} #${te}: www.highcharts.com/errors/${te}/`:te.toString();if(ee!==void 0){let Ce="";he&&(be+="?"),ge(ee,function(Oe,Se){Ce+=` - ${Se}: ${Oe}`,he&&(be+=encodeURI(Se)+"="+encodeURI(Oe))}),be+=Ce}ve(o,"displayError",{chart:B,code:te,message:be,params:ee},function(){if(N)throw Error(be);u.console&&g.messages.indexOf(be)===-1&&console.warn(be)}),g.messages.push(be)}function _(te,N){return parseInt(te,N||10)}function x(te){return typeof te=="string"}function S(te){let N=Object.prototype.toString.call(te);return N==="[object Array]"||N==="[object Array Iterator]"}function O(te,N){return!!te&&typeof te=="object"&&(!N||!S(te))}function E(te){return O(te)&&typeof te.nodeType=="number"}function T(te){let N=te&&te.constructor;return!!(O(te,!0)&&!E(te)&&N&&N.name&&N.name!=="Object")}function D(te){return typeof te=="number"&&!isNaN(te)&&te<1/0&&te>-1/0}function $(te){return te!=null}function I(te,N,B){let ee,oe=x(N)&&!$(B),he=(be,Ce)=>{$(be)?te.setAttribute(Ce,be):oe?(ee=te.getAttribute(Ce))||Ce!=="class"||(ee=te.getAttribute(Ce+"Name")):te.removeAttribute(Ce)};return x(N)?he(B,N):ge(N,he),ee}function H(te){return S(te)?te:[te]}function se(te,N){let B;for(B in te||(te={}),N)te[B]=N[B];return te}function ie(){let te=arguments,N=te.length;for(let B=0;B1e14?te:parseFloat(te.toPrecision(N||14))}(g||(g={})).messages=[],Math.easeInOutSine=function(te){return-.5*(Math.cos(Math.PI*te)-1)};let _e=Array.prototype.find?function(te,N){return te.find(N)}:function(te,N){let B,ee=te.length;for(B=0;BCe.order-Oe.order),oe.forEach(Ce=>{Ce.fn.call(te,B)===!1&&B.preventDefault()})}ee&&!B.defaultPrevented&&ee.call(te,B)}ge({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(te,N){o[N]=function(B){return g(32,!1,void 0,{[`Highcharts.${N}`]:`use Array.${te}`}),Array.prototype[te].apply(B,[].slice.call(arguments,1))}});let pe=function(){let te=Math.random().toString(36).substring(2,9)+"-",N=0;return function(){return"highcharts-"+(a?"":te)+N++}}();return u.jQuery&&(u.jQuery.fn.highcharts=function(){let te=[].slice.call(arguments);if(this[0])return te[0]?(new o[x(te[0])?te.shift():"Chart"](this[0],te[0],te[1]),this):l[I(this[0],"data-highcharts-chart")]}),{addEvent:function(te,N,B,ee={}){let oe=typeof te=="function"&&te.prototype||te;Object.hasOwnProperty.call(oe,"hcEvents")||(oe.hcEvents={});let he=oe.hcEvents;o.Point&&te instanceof o.Point&&te.series&&te.series.chart&&(te.series.chart.runTrackerClick=!0);let be=te.addEventListener;be&&be.call(te,N,B,!!o.supportsPassiveEvents&&{passive:ee.passive===void 0?N.indexOf("touch")!==-1:ee.passive,capture:!1}),he[N]||(he[N]=[]);let Ce={fn:B,order:typeof ee.order=="number"?ee.order:1/0};return he[N].push(Ce),he[N].sort((Oe,Se)=>Oe.order-Se.order),function(){de(te,N,B)}},arrayMax:function(te){let N=te.length,B=te[0];for(;N--;)te[N]>B&&(B=te[N]);return B},arrayMin:function(te){let N=te.length,B=te[0];for(;N--;)te[N]N?te{let ee=N%2/2,oe=B?-1:1;return(Math.round(te*oe-ee)+ee)*oe},css:ne,defined:$,destroyObjectProperties:function(te,N,B){ge(te,function(ee,oe){ee!==N&&ee?.destroy&&ee.destroy(),(ee?.destroy||!B)&&delete te[oe]})},diffObjects:function(te,N,B,ee){let oe={};return function he(be,Ce,Oe,Se){let $e=B?Ce:be;ge(be,function(ke,Re){if(!Se&&ee&&ee.indexOf(Re)>-1&&Ce[Re]){ke=H(ke),Oe[Re]=[];for(let Be=0;Be{if(be.length>1)for(oe=be.length-1;oe>0;oe--)(ee=be[oe]-be[oe-1])<0&&!he?(N?.(),N=void 0):ee&&(B===void 0||ee=be-1&&(be=Math.floor(Ce)),Math.max(0,be-(te(N,"padding-left",!0)||0)-(te(N,"padding-right",!0)||0))}if(B==="height")return Math.max(0,Math.min(N.offsetHeight,N.scrollHeight)-(te(N,"padding-top",!0)||0)-(te(N,"padding-bottom",!0)||0));let he=u.getComputedStyle(N,void 0);return he&&(oe=he.getPropertyValue(B),ie(ee,B!=="opacity")&&(oe=_(oe))),oe},inArray:function(te,N,B){return g(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),N.indexOf(te,B)},insertItem:function(te,N){let B,ee=te.options.index,oe=N.length;for(B=te.options.isInternal?oe:0;B=te))&&(oe||!(Ce<=(N[he]+(N[he+1]||N[he]))/2)));he++);return me(be*B,-Math.round(Math.log(.001)/Math.LN10))},objectEach:ge,offset:function(te){let N=c.documentElement,B=te.parentElement||te.parentNode?te.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:B.top+(u.pageYOffset||N.scrollTop)-(N.clientTop||0),left:B.left+(u.pageXOffset||N.scrollLeft)-(N.clientLeft||0),width:B.width,height:B.height}},pad:function(te,N,B){return Array((N||2)+1-String(te).replace("-","").length).join(B||"0")+te},pick:ie,pInt:_,pushUnique:function(te,N){return 0>te.indexOf(N)&&!!te.push(N)},relativeLength:function(te,N,B){return/%$/.test(te)?N*parseFloat(te)/100+(B||0):parseFloat(te)},removeEvent:de,replaceNested:function(te,...N){let B,ee;do for(ee of(B=te,N))te=te.replace(ee[0],ee[1]);while(te!==B);return te},splat:H,stableSort:function(te,N){let B,ee,oe=te.length;for(ee=0;ee0?setTimeout(te,N,B):(te.call(0,B),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:pe,useSerialIds:function(te){return a=ie(te,a)},wrap:function(te,N,B){let ee=te[N];te[N]=function(){let oe=arguments,he=this;return B.apply(this,[function(){return ee.apply(he,arguments.length?arguments:oe)}].concat([].slice.call(arguments)))}}}}),n(r,"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:{},position:{}},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"}}),n(r,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),n(r,"Core/Time.js",[r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a){let{win:l}=o,{defined:c,error:u,extend:g,isNumber:_,isObject:x,merge:S,objectEach:O,pad:E,pick:T,splat:D,timeUnits:$}=a,I=o.isSafari&&l.Intl&&l.Intl.DateTimeFormat.prototype.formatRange,H=o.isSafari&&l.Intl&&!l.Intl.DateTimeFormat.prototype.formatRange;class se{constructor(ne){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=l.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(ne)}get(ne,le){if(this.variableTimezone||this.timezoneOffset){let me=le.getTime(),_e=me-this.getTimezoneOffset(le);le.setTime(_e);let ge=le["getUTC"+ne]();return le.setTime(me),ge}return this.useUTC?le["getUTC"+ne]():le["get"+ne]()}set(ne,le,me){if(this.variableTimezone||this.timezoneOffset){if(ne==="Milliseconds"||ne==="Seconds"||ne==="Minutes"&&this.getTimezoneOffset(le)%36e5==0)return le["setUTC"+ne](me);let _e=this.getTimezoneOffset(le),ge=le.getTime()-_e;le.setTime(ge),le["setUTC"+ne](me);let de=this.getTimezoneOffset(le);return ge=le.getTime()+de,le.setTime(ge)}return this.useUTC||I&&ne==="FullYear"?le["setUTC"+ne](me):le["set"+ne](me)}update(ne={}){let le=T(ne.useUTC,!0);this.options=ne=S(!0,this.options,ne),this.Date=ne.Date||l.Date||Date,this.useUTC=le,this.timezoneOffset=le&&ne.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=le&&!!(ne.getTimezoneOffset||ne.timezone)}makeTime(ne,le,me,_e,ge,de){let ve,pe,te;return this.useUTC?(ve=this.Date.UTC.apply(0,arguments),pe=this.getTimezoneOffset(ve),ve+=pe,pe!==(te=this.getTimezoneOffset(ve))?ve+=te-pe:pe-36e5!==this.getTimezoneOffset(ve-36e5)||H||(ve-=36e5)):ve=new this.Date(ne,le,T(me,1),T(_e,0),T(ge,0),T(de,0)).getTime(),ve}timezoneOffsetFunction(){let ne=this,le=this.options,me=le.getTimezoneOffset;return this.useUTC?le.timezone?_e=>{try{let ge=`shortOffset,${le.timezone||""}`,[de,ve,pe,te,N=0]=(se.formatCache[ge]=se.formatCache[ge]||Intl.DateTimeFormat("en",{timeZone:le.timezone,timeZoneName:"shortOffset"})).format(_e).split(/(GMT|:)/).map(Number),B=-(36e5*(pe+N/60));if(_(B))return B}catch{u(34)}return 0}:this.useUTC&&me?_e=>6e4*me(_e.valueOf()):()=>6e4*(ne.timezoneOffset||0):_e=>6e4*new Date(_e.toString()).getTimezoneOffset()}dateFormat(ne,le,me){if(!c(le)||isNaN(le))return o.defaultOptions.lang&&o.defaultOptions.lang.invalidDate||"";ne=T(ne,"%Y-%m-%d %H:%M:%S");let _e=this,ge=new this.Date(le),de=this.get("Hours",ge),ve=this.get("Day",ge),pe=this.get("Date",ge),te=this.get("Month",ge),N=this.get("FullYear",ge),B=o.defaultOptions.lang,ee=B&&B.weekdays,oe=B&&B.shortWeekdays;return O(g({a:oe?oe[ve]:ee[ve].substr(0,3),A:ee[ve],d:E(pe),e:E(pe,2," "),w:ve,b:B.shortMonths[te],B:B.months[te],m:E(te+1),o:te+1,y:N.toString().substr(2,2),Y:N,H:E(de),k:de,I:E(de%12||12),l:de%12||12,M:E(this.get("Minutes",ge)),p:de<12?"AM":"PM",P:de<12?"am":"pm",S:E(this.get("Seconds",ge)),L:E(Math.floor(le%1e3),3)},o.dateFormats),function(he,be){for(;ne.indexOf("%"+be)!==-1;)ne=ne.replace("%"+be,typeof he=="function"?he.call(_e,le):he)}),me?ne.substr(0,1).toUpperCase()+ne.substr(1):ne}resolveDTLFormat(ne){return x(ne,!0)?ne:{main:(ne=D(ne))[0],from:ne[1],to:ne[2]}}getTimeTicks(ne,le,me,_e){let ge,de,ve,pe,te=this,N=te.Date,B=[],ee={},oe=new N(le),he=ne.unitRange,be=ne.count||1;if(_e=T(_e,1),c(le)){te.set("Milliseconds",oe,he>=$.second?0:be*Math.floor(te.get("Milliseconds",oe)/be)),he>=$.second&&te.set("Seconds",oe,he>=$.minute?0:be*Math.floor(te.get("Seconds",oe)/be)),he>=$.minute&&te.set("Minutes",oe,he>=$.hour?0:be*Math.floor(te.get("Minutes",oe)/be)),he>=$.hour&&te.set("Hours",oe,he>=$.day?0:be*Math.floor(te.get("Hours",oe)/be)),he>=$.day&&te.set("Date",oe,he>=$.month?1:Math.max(1,be*Math.floor(te.get("Date",oe)/be))),he>=$.month&&(te.set("Month",oe,he>=$.year?0:be*Math.floor(te.get("Month",oe)/be)),de=te.get("FullYear",oe)),he>=$.year&&(de-=de%be,te.set("FullYear",oe,de)),he===$.week&&(pe=te.get("Day",oe),te.set("Date",oe,te.get("Date",oe)-pe+_e+(pe<_e?-7:0))),de=te.get("FullYear",oe);let Ce=te.get("Month",oe),Oe=te.get("Date",oe),Se=te.get("Hours",oe);le=oe.getTime(),(te.variableTimezone||!te.useUTC)&&c(me)&&(ve=me-le>4*$.month||te.getTimezoneOffset(le)!==te.getTimezoneOffset(me));let $e=oe.getTime();for(ge=1;$e1?$e=te.makeTime(de,Ce,Oe,Se+ge*be):$e+=he*be,ge++;B.push($e),he<=$.hour&&B.length<1e4&&B.forEach(function(ke){ke%18e5==0&&te.dateFormat("%H%M%S%L",ke)==="000000000"&&(ee[ke]="day")})}return B.info=g(ne,{higherRanks:ee,totalRange:he*be}),B}getDateFormat(ne,le,me,_e){let ge=this.dateFormat("%m-%d %H:%M:%S.%L",le),de="01-01 00:00:00.000",ve={millisecond:15,second:12,minute:9,hour:6,day:3},pe="millisecond",te=pe;for(pe in $){if(ne===$.week&&+this.dateFormat("%w",le)===me&&ge.substr(6)===de.substr(6)){pe="week";break}if($[pe]>ne){pe=te;break}if(ve[pe]&&ge.substr(ve[pe])!==de.substr(ve[pe]))break;pe!=="week"&&(te=pe)}return this.resolveDTLFormat(_e[pe]).main}}return se.formatCache={},se}),n(r,"Core/Defaults.js",[r["Core/Chart/ChartDefaults.js"],r["Core/Globals.js"],r["Core/Color/Palettes.js"],r["Core/Time.js"],r["Core/Utilities.js"]],function(o,a,l,c,u){let{isTouchDevice:g}=a,{fireEvent:_,merge:x}=u,S={colors:l.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:o,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:{duration:300,easing:E=>Math.sqrt(1-Math.pow(E-1,2))},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:g?25:10,headerFormat:'{point.key}
',pointFormat:'\u25CF {series.name}: {point.y}
',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"}};S.chart.styledMode=!1;let O=new c(S.time);return{defaultOptions:S,defaultTime:O,getOptions:function(){return S},setOptions:function(E){return _(a,"setOptions",{options:E}),x(!0,S,E),(E.time||E.global)&&(a.time?a.time.update(x(S.global,S.time,E.global,E.time)):a.time=O),S}}}),n(r,"Core/Color/Color.js",[r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a){let{isNumber:l,merge:c,pInt:u}=a;class g{static parse(x){return x?new g(x):g.None}constructor(x){let S,O,E,T;this.rgba=[NaN,NaN,NaN,NaN],this.input=x;let D=o.Color;if(D&&D!==g)return new D(x);if(typeof x=="object"&&x.stops!==void 0)this.stops=x.stops.map($=>new g($[1]));else if(typeof x=="string"){if(this.input=x=g.names[x.toLowerCase()]||x,x.charAt(0)==="#"){let $=x.length,I=parseInt(x.substr(1),16);$===7?O=[(16711680&I)>>16,(65280&I)>>8,255&I,1]:$===4&&(O=[(3840&I)>>4|(3840&I)>>8,(240&I)>>4|240&I,(15&I)<<4|15&I,1])}if(!O)for(E=g.parsers.length;E--&&!O;)(S=(T=g.parsers[E]).regex.exec(x))&&(O=T.parse(S))}O&&(this.rgba=O)}get(x){let S=this.input,O=this.rgba;if(typeof S=="object"&&this.stops!==void 0){let E=c(S);return E.stops=[].slice.call(E.stops),this.stops.forEach((T,D)=>{E.stops[D]=[E.stops[D][0],T.get(x)]}),E}return O&&l(O[0])?x!=="rgb"&&(x||O[3]!==1)?x==="a"?`${O[3]}`:"rgba("+O.join(",")+")":"rgb("+O[0]+","+O[1]+","+O[2]+")":S}brighten(x){let S=this.rgba;if(this.stops)this.stops.forEach(function(O){O.brighten(x)});else if(l(x)&&x!==0)for(let O=0;O<3;O++)S[O]+=u(255*x),S[O]<0&&(S[O]=0),S[O]>255&&(S[O]=255);return this}setOpacity(x){return this.rgba[3]=x,this}tweenTo(x,S){let O=this.rgba,E=x.rgba;if(!l(O[0])||!l(E[0]))return x.input||"none";let T=E[3]!==1||O[3]!==1;return(T?"rgba(":"rgb(")+Math.round(E[0]+(O[0]-E[0])*(1-S))+","+Math.round(E[1]+(O[1]-E[1])*(1-S))+","+Math.round(E[2]+(O[2]-E[2])*(1-S))+(T?","+(E[3]+(O[3]-E[3])*(1-S)):"")+")"}}return g.names={white:"#ffffff",black:"#000000"},g.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(_){return[u(_[1]),u(_[2]),u(_[3]),parseFloat(_[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(_){return[u(_[1]),u(_[2]),u(_[3]),1]}}],g.None=new g(""),g}),n(r,"Core/Animation/Fx.js",[r["Core/Color/Color.js"],r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a,l){let{parse:c}=o,{win:u}=a,{isNumber:g,objectEach:_}=l;class x{constructor(O,E,T){this.pos=NaN,this.options=E,this.elem=O,this.prop=T}dSetter(){let O=this.paths,E=O&&O[0],T=O&&O[1],D=this.now||0,$=[];if(D!==1&&E&&T)if(E.length===T.length&&D<1)for(let I=0;I=se+this.startTime?(this.now=this.end,this.pos=1,this.update(),ie[this.prop]=!0,T=!0,_(ie,function(ne){ne!==!0&&(T=!1)}),T&&H&&H.call(I),E=!1):(this.pos=$.easing((D-this.startTime)/se),this.now=this.start+(this.end-this.start)*this.pos,this.update(),E=!0),E}initPath(O,E,T){let D=O.startX,$=O.endX,I=T.slice(),H=O.isArea,se=H?2:1,ie,ne,le,me,_e=E&&E.slice();if(!_e)return[I,I];function ge(ve,pe){for(;ve.length{let me=E(le.options.animation);ie=_($)&&l($.defer)?H.defer:Math.max(ie,me.duration+me.defer),ne=Math.min(H.duration,me.duration)}),D.renderer.forExport&&(ie=0),{defer:Math.max(0,ie-ne),duration:Math.min(ie,ne)}},setAnimation:function(D,$){$.renderer.globalAnimation=O(D,$.options.chart.animation,!0)},stop:T}}),n(r,"Core/Renderer/HTML/AST.js",[r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a){let{SVG_NS:l,win:c}=o,{attr:u,createElement:g,css:_,error:x,isFunction:S,isString:O,objectEach:E,splat:T}=a,{trustedTypes:D}=c,$=D&&S(D.createPolicy)&&D.createPolicy("highcharts",{createHTML:ie=>ie}),I=$?$.createHTML(""):"",H=function(){try{return!!new DOMParser().parseFromString(I,"text/html")}catch{return!1}}();class se{static filterUserAttributes(ne){return E(ne,(le,me)=>{let _e=!0;se.allowedAttributes.indexOf(me)===-1&&(_e=!1),["background","dynsrc","href","lowsrc","src"].indexOf(me)!==-1&&(_e=O(le)&&se.allowedReferences.some(ge=>le.indexOf(ge)===0)),_e||(x(33,!1,void 0,{"Invalid attribute in config":`${me}`}),delete ne[me]),O(le)&&ne[me]&&(ne[me]=le.replace(/{let _e=me.split(":").map(de=>de.trim()),ge=_e.shift();return ge&&_e.length&&(le[ge.replace(/-([a-z])/g,de=>de[1].toUpperCase())]=_e.join(":")),le},{})}static setElementHTML(ne,le){ne.innerHTML=se.emptyHTML,le&&new se(le).addToDOM(ne)}constructor(ne){this.nodes=typeof ne=="string"?this.parseMarkup(ne):ne}addToDOM(ne){return function le(me,_e){let ge;return T(me).forEach(function(de){let ve,pe=de.tagName,te=de.textContent?o.doc.createTextNode(de.textContent):void 0,N=se.bypassHTMLFiltering;if(pe)if(pe==="#text")ve=te;else if(se.allowedTags.indexOf(pe)!==-1||N){let B=pe==="svg"?l:_e.namespaceURI||l,ee=o.doc.createElementNS(B,pe),oe=de.attributes||{};E(de,function(he,be){be!=="tagName"&&be!=="attributes"&&be!=="children"&&be!=="style"&&be!=="textContent"&&(oe[be]=he)}),u(ee,N?oe:se.filterUserAttributes(oe)),de.style&&_(ee,de.style),te&&ee.appendChild(te),le(de.children||[],ee),ve=ee}else x(33,!1,void 0,{"Invalid tagName in config":pe});ve&&_e.appendChild(ve),ge=ve}),ge}(this.nodes,ne)}parseMarkup(ne){let le,me=[];if(ne=ne.trim().replace(/ style=(["'])/g," data-style=$1"),H)le=new DOMParser().parseFromString($?$.createHTML(ne):ne,"text/html");else{let ge=g("div");ge.innerHTML=ne,le={body:ge}}let _e=(ge,de)=>{let ve=ge.nodeName.toLowerCase(),pe={tagName:ve};ve==="#text"&&(pe.textContent=ge.textContent||"");let te=ge.attributes;if(te){let N={};[].forEach.call(te,B=>{B.name==="data-style"?pe.style=se.parseStyle(B.value):N[B.name]=B.value}),pe.attributes=N}if(ge.childNodes.length){let N=[];[].forEach.call(ge.childNodes,B=>{_e(B,N)}),N.length&&(pe.children=N)}de.push(pe)};return[].forEach.call(le.body.childNodes,ge=>_e(ge,me)),me}}return se.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","filterUnits","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"],se.allowedReferences=["https://","http://","mailto:","/","../","./","#"],se.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"],se.emptyHTML=I,se.bypassHTMLFiltering=!1,se}),n(r,"Core/Templating.js",[r["Core/Defaults.js"],r["Core/Utilities.js"]],function(o,a){let{defaultOptions:l,defaultTime:c}=o,{extend:u,getNestedProperty:g,isArray:_,isNumber:x,isObject:S,pick:O,pInt:E}=a,T={add:(I,H)=>I+H,divide:(I,H)=>H!==0?I/H:"",eq:(I,H)=>I==H,each:function(I){let H=arguments[arguments.length-1];return!!_(I)&&I.map((se,ie)=>D(H.body,u(S(se)?se:{"@this":se},{"@index":ie,"@first":ie===0,"@last":ie===I.length-1}))).join("")},ge:(I,H)=>I>=H,gt:(I,H)=>I>H,if:I=>!!I,le:(I,H)=>I<=H,lt:(I,H)=>II*H,ne:(I,H)=>I!=H,subtract:(I,H)=>I-H,unless:I=>!I};function D(I="",H,se){let ie=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,ne=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,le=[],me=/f$/,_e=/\.([0-9])/,ge=l.lang,de=se&&se.time||c,ve=se&&se.numberFormatter||$,pe=(oe="")=>{let he;return oe==="true"||oe!=="false"&&((he=Number(oe)).toString()===oe?he:g(oe,H))},te,N,B=0,ee;for(;(te=ie.exec(I))!==null;){let oe=ne.exec(te[1]);oe&&(te=oe,ee=!0),N&&N.isBlock||(N={ctx:H,expression:te[1],find:te[0],isBlock:te[1].charAt(0)==="#",start:te.index,startInner:te.index+te[0].length,length:te[0].length});let he=te[1].split(" ")[0].replace("#","");T[he]&&(N.isBlock&&he===N.fn&&B++,N.fn||(N.fn=he));let be=te[1]==="else";if(N.isBlock&&N.fn&&(te[1]===`/${N.fn}`||be))if(B)!be&&B--;else{let Ce=N.startInner,Oe=I.substr(Ce,te.index-Ce);N.body===void 0?(N.body=Oe,N.startInner=te.index+te[0].length):N.elseBody=Oe,N.find+=Oe+te[0],be||(le.push(N),N=void 0)}else N.isBlock||le.push(N);if(oe&&!N?.isBlock)break}return le.forEach(oe=>{let he,be,{body:Ce,elseBody:Oe,expression:Se,fn:$e}=oe;if($e){let ke=[oe],Re=Se.split(" ");for(be=T[$e].length;be--;)ke.unshift(pe(Re[be+1]));he=T[$e].apply(H,ke),oe.isBlock&&typeof he=="boolean"&&(he=D(he?Ce:Oe,H,se))}else{let ke=Se.split(":");if(he=pe(ke.shift()||""),ke.length&&typeof he=="number"){let Re=ke.join(":");if(me.test(Re)){let Be=parseInt((Re.match(_e)||["","-1"])[1],10);he!==null&&(he=ve(he,Be,ge.decimalPoint,Re.indexOf(",")>-1?ge.thousandsSep:""))}else he=de.dateFormat(Re,he)}}I=I.replace(oe.find,O(he,""))}),ee?D(I,H,se):I}function $(I,H,se,ie){let ne,le;I=+I||0,H=+H;let me=l.lang,_e=(I.toString().split(".")[1]||"").split("e")[0].length,ge=I.toString().split("e"),de=H;H===-1?H=Math.min(_e,20):x(H)?H&&ge[1]&&ge[1]<0&&((le=H+ +ge[1])>=0?(ge[0]=(+ge[0]).toExponential(le).split("e")[0],H=le):(ge[0]=ge[0].split(".")[0]||0,I=H<20?(ge[0]*Math.pow(10,ge[1])).toFixed(H):0,ge[1]=0)):H=2;let ve=(Math.abs(ge[1]?ge[0]:I)+Math.pow(10,-Math.max(H,_e)-1)).toFixed(H),pe=String(E(ve)),te=pe.length>3?pe.length%3:0;return se=O(se,me.decimalPoint),ie=O(ie,me.thousandsSep),ne=(I<0?"-":"")+(te?pe.substr(0,te)+ie:""),0>+ge[1]&&!de?ne="0":ne+=pe.substr(te).replace(/(\d{3})(?=\d)/g,"$1"+ie),H?ne+=se+ve.slice(-H):+ne==0&&(ne="0"),ge[1]&&+ne!=0&&(ne+="e"+ge[1]),ne}return{dateFormat:function(I,H,se){return c.dateFormat(I,H,se)},format:D,helpers:T,numberFormat:$}}),n(r,"Core/Renderer/RendererRegistry.js",[r["Core/Globals.js"]],function(o){var a,l;let c;return(l=a||(a={})).rendererTypes={},l.getRendererType=function(u=c){return l.rendererTypes[u]||l.rendererTypes[c]},l.registerRendererType=function(u,g,_){l.rendererTypes[u]=g,(!c||_)&&(c=u,o.Renderer=g)},a}),n(r,"Core/Renderer/RendererUtilities.js",[r["Core/Utilities.js"]],function(o){var a;let{clamp:l,pick:c,pushUnique:u,stableSort:g}=o;return(a||(a={})).distribute=function _(x,S,O){let E=x,T=E.reducedLen||S,D=(pe,te)=>pe.target-te.target,$=[],I=x.length,H=[],se=$.push,ie,ne,le,me=!0,_e,ge,de=0,ve;for(ie=I;ie--;)de+=x[ie].size;if(de>T){for(g(x,(pe,te)=>(te.rank||0)-(pe.rank||0)),le=(ve=x[0].rank===x[x.length-1].rank)?I/2:-1,ne=ve?le:I-1;le&&de>T;)_e=x[ie=Math.floor(ne)],u(H,ie)&&(de-=_e.size),ne+=le,ve&&ne>=x.length&&(le/=2,ne=le);H.sort((pe,te)=>te-pe).forEach(pe=>se.apply($,x.splice(pe,1)))}for(g(x,D),x=x.map(pe=>({size:pe.size,targets:[pe.target],align:c(pe.align,.5)}));me;){for(ie=x.length;ie--;)_e=x[ie],ge=(Math.min.apply(0,_e.targets)+Math.max.apply(0,_e.targets))/2,_e.pos=l(ge-_e.size*_e.align,0,S-_e.size);for(ie=x.length,me=!1;ie--;)ie>0&&x[ie-1].pos+x[ie-1].size>x[ie].pos&&(x[ie-1].size+=x[ie].size,x[ie-1].targets=x[ie-1].targets.concat(x[ie].targets),x[ie-1].align=.5,x[ie-1].pos+x[ie-1].size>S&&(x[ie-1].pos=S-x[ie-1].size),x.splice(ie,1),me=!0)}return se.apply(E,$),ie=0,x.some(pe=>{let te=0;return(pe.targets||[]).some(()=>(E[ie].pos=pe.pos+te,O!==void 0&&Math.abs(E[ie].pos-E[ie].target)>O?(E.slice(0,ie+1).forEach(N=>delete N.pos),E.reducedLen=(E.reducedLen||S)-.1*S,E.reducedLen>.1*S&&_(E,S,O),!0):(te+=E[ie].size,ie++,!1)))}),g(E,D),E},a}),n(r,"Core/Renderer/SVG/SVGElement.js",[r["Core/Animation/AnimationUtilities.js"],r["Core/Color/Color.js"],r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a,l,c){let{animate:u,animObject:g,stop:_}=o,{deg2rad:x,doc:S,svg:O,SVG_NS:E,win:T}=l,{addEvent:D,attr:$,createElement:I,crisp:H,css:se,defined:ie,erase:ne,extend:le,fireEvent:me,isArray:_e,isFunction:ge,isObject:de,isString:ve,merge:pe,objectEach:te,pick:N,pInt:B,pushUnique:ee,replaceNested:oe,syncTimeout:he,uniqueKey:be}=c;class Ce{_defaultGetter(Se){let $e=N(this[Se+"Value"],this[Se],this.element?this.element.getAttribute(Se):null,0);return/^[\-0-9\.]+$/.test($e)&&($e=parseFloat($e)),$e}_defaultSetter(Se,$e,ke){ke.setAttribute($e,Se)}add(Se){let $e,ke=this.renderer,Re=this.element;return Se&&(this.parentGroup=Se),this.textStr!==void 0&&this.element.nodeName==="text"&&ke.buildText(this),this.added=!0,(!Se||Se.handleZ||this.zIndex)&&($e=this.zIndexSetter()),$e||(Se?Se.element:ke.box).appendChild(Re),this.onAdd&&this.onAdd(),this}addClass(Se,$e){let ke=$e?"":this.attr("class")||"";return(Se=(Se||"").split(/ /g).reduce(function(Re,Be){return ke.indexOf(Be)===-1&&Re.push(Be),Re},ke?[ke]:[]).join(" "))!==ke&&this.attr("class",Se),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(Se,$e,ke,Re=!0){let Be,Ee,Pe,Ie,Fe={},fe=this.renderer,ae=fe.alignedObjects,ue=!!Se;Se?(this.alignOptions=Se,this.alignByTranslate=$e,this.alignTo=ke):(Se=this.alignOptions||{},$e=this.alignByTranslate,ke=this.alignTo);let xe=!ke||ve(ke)?ke||"renderer":void 0;xe&&(ue&&ee(ae,this),ke=void 0);let Ae=N(ke,fe[xe],fe),De=Se.align,ze=Se.verticalAlign;return Be=(Ae.x||0)+(Se.x||0),Ee=(Ae.y||0)+(Se.y||0),De==="right"?Pe=1:De==="center"&&(Pe=2),Pe&&(Be+=((Ae.width||0)-(Se.width||0))/Pe),Fe[$e?"translateX":"x"]=Math.round(Be),ze==="bottom"?Ie=1:ze==="middle"&&(Ie=2),Ie&&(Ee+=((Ae.height||0)-(Se.height||0))/Ie),Fe[$e?"translateY":"y"]=Math.round(Ee),Re&&(this[this.placed?"animate":"attr"](Fe),this.placed=!0),this.alignAttr=Fe,this}alignSetter(Se){let $e={left:"start",center:"middle",right:"end"};$e[Se]&&(this.alignValue=Se,this.element.setAttribute("text-anchor",$e[Se]))}animate(Se,$e,ke){let Re=g(N($e,this.renderer.globalAnimation,!0)),Be=Re.defer;return S.hidden&&(Re.duration=0),Re.duration!==0?(ke&&(Re.complete=ke),he(()=>{this.element&&u(this,Se,Re)},Be)):(this.attr(Se,void 0,ke||Re.complete),te(Se,function(Ee,Pe){Re.step&&Re.step.call(this,Ee,{prop:Pe,pos:1,elem:this})},this)),this}applyTextOutline(Se){let $e=this.element;Se.indexOf("contrast")!==-1&&(Se=Se.replace(/contrast/g,this.renderer.getContrast($e.style.fill)));let ke=Se.split(" "),Re=ke[ke.length-1],Be=ke[0];if(Be&&Be!=="none"&&l.svg){this.fakeTS=!0,Be=Be.replace(/(^[\d\.]+)(.*?)$/g,function(fe,ae,ue){return 2*Number(ae)+ue}),this.removeTextOutline();let Ee=S.createElementNS(E,"tspan");$(Ee,{class:"highcharts-text-outline",fill:Re,stroke:Re,"stroke-width":Be,"stroke-linejoin":"round"});let Pe=$e.querySelector("textPath")||$e;[].forEach.call(Pe.childNodes,fe=>{let ae=fe.cloneNode(!0);ae.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(ue=>ae.removeAttribute(ue)),Ee.appendChild(ae)});let Ie=0;[].forEach.call(Pe.querySelectorAll("text tspan"),fe=>{Ie+=Number(fe.getAttribute("dy"))});let Fe=S.createElementNS(E,"tspan");Fe.textContent="\u200B",$(Fe,{x:Number($e.getAttribute("x")),dy:-Ie}),Ee.appendChild(Fe),Pe.insertBefore(Ee,Pe.firstChild)}}attr(Se,$e,ke,Re){let{element:Be}=this,Ee=Ce.symbolCustomAttribs,Pe,Ie,Fe=this,fe;return typeof Se=="string"&&$e!==void 0&&(Pe=Se,(Se={})[Pe]=$e),typeof Se=="string"?Fe=(this[Se+"Getter"]||this._defaultGetter).call(this,Se,Be):(te(Se,function(ae,ue){fe=!1,Re||_(this,ue),this.symbolName&&Ee.indexOf(ue)!==-1&&(Ie||(this.symbolAttr(Se),Ie=!0),fe=!0),this.rotation&&(ue==="x"||ue==="y")&&(this.doTransform=!0),fe||(this[ue+"Setter"]||this._defaultSetter).call(this,ae,ue,Be)},this),this.afterSetters()),ke&&ke.call(this),Fe}clip(Se){if(Se&&!Se.clipPath){let $e=be()+"-",ke=this.renderer.createElement("clipPath").attr({id:$e}).add(this.renderer.defs);le(Se,{clipPath:ke,id:$e,count:0}),Se.add(ke)}return this.attr("clip-path",Se?`url(${this.renderer.url}#${Se.id})`:"none")}crisp(Se,$e){$e=Math.round($e||Se.strokeWidth||0);let ke=Se.x||this.x||0,Re=Se.y||this.y||0,Be=(Se.width||this.width||0)+ke,Ee=(Se.height||this.height||0)+Re,Pe=H(ke,$e),Ie=H(Re,$e);return le(Se,{x:Pe,y:Ie,width:H(Be,$e)-Pe,height:H(Ee,$e)-Ie}),ie(Se.strokeWidth)&&(Se.strokeWidth=$e),Se}complexColor(Se,$e,ke){let Re=this.renderer,Be,Ee,Pe,Ie,Fe,fe,ae,ue,xe,Ae,De=[],ze;me(this.renderer,"complexColor",{args:arguments},function(){if(Se.radialGradient?Ee="radialGradient":Se.linearGradient&&(Ee="linearGradient"),Ee){if(Pe=Se[Ee],Fe=Re.gradients,fe=Se.stops,xe=ke.radialReference,_e(Pe)&&(Se[Ee]=Pe={x1:Pe[0],y1:Pe[1],x2:Pe[2],y2:Pe[3],gradientUnits:"userSpaceOnUse"}),Ee==="radialGradient"&&xe&&!ie(Pe.gradientUnits)&&(Ie=Pe,Pe=pe(Pe,Re.getRadialAttr(xe,Ie),{gradientUnits:"userSpaceOnUse"})),te(Pe,function(je,Ke){Ke!=="id"&&De.push(Ke,je)}),te(fe,function(je){De.push(je)}),Fe[De=De.join(",")])Ae=Fe[De].attr("id");else{Pe.id=Ae=be();let je=Fe[De]=Re.createElement(Ee).attr(Pe).add(Re.defs);je.radAttr=Ie,je.stops=[],fe.forEach(function(Ke){Ke[1].indexOf("rgba")===0?(ae=(Be=a.parse(Ke[1])).get("rgb"),ue=Be.get("a")):(ae=Ke[1],ue=1);let Ze=Re.createElement("stop").attr({offset:Ke[0],"stop-color":ae,"stop-opacity":ue}).add(je);je.stops.push(Ze)})}ze="url("+Re.url+"#"+Ae+")",ke.setAttribute($e,ze),ke.gradient=De,Se.toString=function(){return ze}}})}css(Se){let $e=this.styles,ke={},Re=this.element,Be,Ee=!$e;if($e&&te(Se,function(Pe,Ie){$e&&$e[Ie]!==Pe&&(ke[Ie]=Pe,Ee=!0)}),Ee){$e&&(Se=le($e,ke)),Se.width===null||Se.width==="auto"?delete this.textWidth:Re.nodeName.toLowerCase()==="text"&&Se.width&&(Be=this.textWidth=B(Se.width)),le(this.styles,Se),Be&&!O&&this.renderer.forExport&&delete Se.width;let Pe=pe(Se);Re.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(Ie=>Pe&&delete Pe[Ie]),Pe.color&&(Pe.fill=Pe.color)),se(Re,Pe)}return this.added&&(this.element.nodeName==="text"&&this.renderer.buildText(this),Se.textOutline&&this.applyTextOutline(Se.textOutline)),this}dashstyleSetter(Se){let $e,ke=this["stroke-width"];if(ke==="inherit"&&(ke=1),Se=Se&&Se.toLowerCase()){let Re=Se.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($e=Re.length;$e--;)Re[$e]=""+B(Re[$e])*N(ke,NaN);Se=Re.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",Se)}}destroy(){let Se=this,$e=Se.element||{},ke=Se.renderer,Re=$e.ownerSVGElement,Be=$e.nodeName==="SPAN"&&Se.parentGroup||void 0,Ee,Pe;if($e.onclick=$e.onmouseout=$e.onmouseover=$e.onmousemove=$e.point=null,_(Se),Se.clipPath&&Re){let Ie=Se.clipPath;[].forEach.call(Re.querySelectorAll("[clip-path],[CLIP-PATH]"),function(Fe){Fe.getAttribute("clip-path").indexOf(Ie.element.id)>-1&&Fe.removeAttribute("clip-path")}),Se.clipPath=Ie.destroy()}if(Se.connector=Se.connector?.destroy(),Se.stops){for(Pe=0;PeBe&&Be.join?(Ee?Re+" ":"")+Be.join(" "):(Be||"").toString(),"")),/(NaN| {2}|^$)/.test(Se)&&(Se="M 0 0"),this[$e]!==Se&&(ke.setAttribute($e,Se),this[$e]=Se)}fillSetter(Se,$e,ke){typeof Se=="string"?ke.setAttribute($e,Se):Se&&this.complexColor(Se,$e,ke)}hrefSetter(Se,$e,ke){ke.setAttributeNS("http://www.w3.org/1999/xlink",$e,Se)}getBBox(Se,$e){let ke,Re,Be,Ee,{alignValue:Pe,element:Ie,renderer:Fe,styles:fe,textStr:ae}=this,{cache:ue,cacheKeys:xe}=Fe,Ae=Ie.namespaceURI===this.SVG_NS,De=N($e,this.rotation,0),ze=Fe.styledMode?Ie&&Ce.prototype.getStyle.call(Ie,"font-size"):fe.fontSize;if(ie(ae)&&((Ee=ae.toString()).indexOf("<")===-1&&(Ee=Ee.replace(/[0-9]/g,"0")),Ee+=["",Fe.rootFontSize,ze,De,this.textWidth,Pe,fe.textOverflow,fe.fontWeight].join(",")),Ee&&!Se&&(ke=ue[Ee]),!ke){if(Ae||Fe.forExport){try{Be=this.fakeTS&&function(je){let Ke=Ie.querySelector(".highcharts-text-outline");Ke&&se(Ke,{display:je})},ge(Be)&&Be("none"),ke=Ie.getBBox?le({},Ie.getBBox()):{width:Ie.offsetWidth,height:Ie.offsetHeight,x:0,y:0},ge(Be)&&Be("")}catch{}(!ke||ke.width<0)&&(ke={x:0,y:0,width:0,height:0})}else ke=this.htmlGetBBox();Re=ke.height,Ae&&(ke.height=Re={"11px,17":14,"13px,20":16}[`${ze||""},${Math.round(Re)}`]||Re),De&&(ke=this.getRotatedBox(ke,De))}if(Ee&&(ae===""||ke.height>0)){for(;xe.length>250;)delete ue[xe.shift()];ue[Ee]||xe.push(Ee),ue[Ee]=ke}return ke}getRotatedBox(Se,$e){let{x:ke,y:Re,width:Be,height:Ee}=Se,{alignValue:Pe,translateY:Ie,rotationOriginX:Fe=0,rotationOriginY:fe=0}=this,ae={right:1,center:.5}[Pe||0]||0,ue=Number(this.element.getAttribute("y")||0)-(Ie?0:Re),xe=$e*x,Ae=($e-90)*x,De=Math.cos(xe),ze=Math.sin(xe),je=Be*De,Ke=Be*ze,Ze=Math.cos(Ae),Ge=Math.sin(Ae),[[Ne,We],[Ye,Qe]]=[Fe,fe].map(Nt=>[Nt-Nt*De,Nt*ze]),Le=ke+ae*(Be-je)+Ne+Qe+ue*Ze,ye=Le+je,we=ye-Ee*Ze,Ve=we-je,Xe=Re+ue-ae*Ke-We+Ye+ue*Ge,nt=Xe+Ke,lt=nt-Ee*Ge,pt=lt-Ke,_t=Math.min(Le,ye,we,Ve),St=Math.min(Xe,nt,lt,pt),Et=Math.max(Le,ye,we,Ve)-_t,bt=Math.max(Xe,nt,lt,pt)-St;return{x:_t,y:St,width:Et,height:bt}}getStyle(Se){return T.getComputedStyle(this.element||this,"").getPropertyValue(Se)}hasClass(Se){return(""+this.attr("class")).split(" ").indexOf(Se)!==-1}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(Se,$e){this.onEvents={},this.opacity=1,this.SVG_NS=E,this.element=$e==="span"||$e==="body"?I($e):S.createElementNS(this.SVG_NS,$e),this.renderer=Se,this.styles={},me(this,"afterInit")}on(Se,$e){let{onEvents:ke}=this;return ke[Se]&&ke[Se](),ke[Se]=D(this.element,Se,$e),this}opacitySetter(Se,$e,ke){let Re=Number(Number(Se).toFixed(3));this.opacity=Re,ke.setAttribute($e,Re)}reAlign(){this.alignOptions?.width&&this.alignOptions.align!=="left"&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(Se){return this.attr("class",(""+this.attr("class")).replace(ve(Se)?RegExp(`(^| )${Se}( |$)`):Se," ").replace(/ +/g," ").trim())}removeTextOutline(){let Se=this.element.querySelector("tspan.highcharts-text-outline");Se&&this.safeRemoveChild(Se)}safeRemoveChild(Se){let $e=Se.parentNode;$e&&$e.removeChild(Se)}setRadialReference(Se){let $e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=Se,$e&&$e.radAttr&&$e.animate(this.renderer.getRadialAttr(Se,$e.radAttr)),this}setTextPath(Se,$e){$e=pe(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},$e);let ke=this.renderer.url,Re=this.text||this,Be=Re.textPath,{attributes:Ee,enabled:Pe}=$e;if(Se=Se||Be&&Be.path,Be&&Be.undo(),Se&&Pe){let Ie=D(Re,"afterModifyTree",Fe=>{if(Se&&Pe){let fe=Se.attr("id");fe||Se.attr("id",fe=be());let ae={x:0,y:0};ie(Ee.dx)&&(ae.dx=Ee.dx,delete Ee.dx),ie(Ee.dy)&&(ae.dy=Ee.dy,delete Ee.dy),Re.attr(ae),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let ue=Fe.nodes.slice(0);Fe.nodes.length=0,Fe.nodes[0]={tagName:"textPath",attributes:le(Ee,{"text-anchor":Ee.textAnchor,href:`${ke}#${fe}`}),children:ue}}});Re.textPath={path:Se,undo:Ie}}else Re.attr({dx:0,dy:0}),delete Re.textPath;return this.added&&(Re.textCache="",this.renderer.buildText(Re)),this}shadow(Se){let{renderer:$e}=this,ke=pe(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},de(Se)?Se:{}),Re=$e.shadowDefinition(ke);return this.attr({filter:Se?`url(${$e.url}#${Re})`:"none"})}show(Se=!0){return this.attr({visibility:Se?"inherit":"visible"})}"stroke-widthSetter"(Se,$e,ke){this[$e]=Se,ke.setAttribute($e,Se)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let Se=this.getStyle("stroke-width"),$e=0,ke;return/px$/.test(Se)?$e=B(Se):Se!==""&&($(ke=S.createElementNS(E,"rect"),{width:Se,"stroke-width":0}),this.element.parentNode.appendChild(ke),$e=ke.getBBox().width,ke.parentNode.removeChild(ke)),$e}symbolAttr(Se){let $e=this;Ce.symbolCustomAttribs.forEach(function(ke){$e[ke]=N(Se[ke],$e[ke])}),$e.attr({d:$e.renderer.symbols[$e.symbolName]($e.x,$e.y,$e.width,$e.height,$e)})}textSetter(Se){Se!==this.textStr&&(delete this.textPxLength,this.textStr=Se,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(Se){let $e=this.element,ke=$e.getElementsByTagName("title")[0]||S.createElementNS(this.SVG_NS,"title");$e.insertBefore?$e.insertBefore(ke,$e.firstChild):$e.appendChild(ke),ke.textContent=oe(N(Se,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let Se=this.element;return Se.parentNode.appendChild(Se),this}translate(Se,$e){return this.attr({translateX:Se,translateY:$e})}updateTransform(Se="transform"){let{element:$e,matrix:ke,rotation:Re=0,rotationOriginX:Be,rotationOriginY:Ee,scaleX:Pe,scaleY:Ie,translateX:Fe=0,translateY:fe=0}=this,ae=["translate("+Fe+","+fe+")"];ie(ke)&&ae.push("matrix("+ke.join(",")+")"),Re&&(ae.push("rotate("+Re+" "+N(Be,$e.getAttribute("x"),0)+" "+N(Ee,$e.getAttribute("y")||0)+")"),this.text?.element.tagName==="SPAN"&&this.text.attr({rotation:Re,rotationOriginX:(Be||0)-this.padding,rotationOriginY:(Ee||0)-this.padding})),(ie(Pe)||ie(Ie))&&ae.push("scale("+N(Pe,1)+" "+N(Ie,1)+")"),ae.length&&!(this.text||this).textPath&&$e.setAttribute(Se,ae.join(" "))}visibilitySetter(Se,$e,ke){Se==="inherit"?ke.removeAttribute($e):this[$e]!==Se&&ke.setAttribute($e,Se),this[$e]=Se}xGetter(Se){return this.element.nodeName==="circle"&&(Se==="x"?Se="cx":Se==="y"&&(Se="cy")),this._defaultGetter(Se)}zIndexSetter(Se,$e){let ke=this.renderer,Re=this.parentGroup,Be=(Re||ke).element||ke.box,Ee=this.element,Pe=Be===ke.box,Ie,Fe,fe,ae=!1,ue,xe=this.added,Ae;if(ie(Se)?(Ee.setAttribute("data-z-index",Se),Se=+Se,this[$e]===Se&&(xe=!1)):ie(this[$e])&&Ee.removeAttribute("data-z-index"),this[$e]=Se,xe){for((Se=this.zIndex)&&Re&&(Re.handleZ=!0),Ae=(Ie=Be.childNodes).length-1;Ae>=0&&!ae;Ae--)ue=!ie(fe=(Fe=Ie[Ae]).getAttribute("data-z-index")),Fe!==Ee&&(Se<0&&ue&&!Pe&&!Ae?(Be.insertBefore(Ee,Ie[Ae]),ae=!0):(B(fe)<=Se||ue&&(!ie(Se)||Se>=0))&&(Be.insertBefore(Ee,Ie[Ae+1]),ae=!0));ae||(Be.insertBefore(Ee,Ie[Pe?3:0]),ae=!0)}return ae}}return Ce.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],Ce.prototype.strokeSetter=Ce.prototype.fillSetter,Ce.prototype.yGetter=Ce.prototype.xGetter,Ce.prototype.matrixSetter=Ce.prototype.rotationOriginXSetter=Ce.prototype.rotationOriginYSetter=Ce.prototype.rotationSetter=Ce.prototype.scaleXSetter=Ce.prototype.scaleYSetter=Ce.prototype.translateXSetter=Ce.prototype.translateYSetter=Ce.prototype.verticalAlignSetter=function(Oe,Se){this[Se]=Oe,this.doTransform=!0},Ce}),n(r,"Core/Renderer/SVG/SVGLabel.js",[r["Core/Renderer/SVG/SVGElement.js"],r["Core/Utilities.js"]],function(o,a){let{defined:l,extend:c,isNumber:u,merge:g,pick:_,removeEvent:x}=a;class S extends o{constructor(E,T,D,$,I,H,se,ie,ne,le){let me;super(E,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.textStr=T,this.x=D,this.y=$,this.anchorX=H,this.anchorY=se,this.baseline=ne,this.className=le,this.addClass(le==="button"?"highcharts-no-tooltip":"highcharts-label"),le&&this.addClass("highcharts-"+le),this.text=E.text(void 0,0,0,ie).attr({zIndex:1}),typeof I=="string"&&((me=/^url\((.*?)\)$/.test(I))||this.renderer.symbols[I])&&(this.symbolKey=I),this.bBox=S.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=E.styledMode||me,this.deferredAttr={},this.alignFactor=0}alignSetter(E){let T={left:0,center:.5,right:1}[E];T!==this.alignFactor&&(this.alignFactor=T,this.bBox&&u(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(E,T){this.anchorX=E,this.boxAttr(T,Math.round(E)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(E,T){this.anchorY=E,this.boxAttr(T,E-this.ySetting)}boxAttr(E,T){this.box?this.box.attr(E,T):this.deferredAttr[E]=T}css(E){if(E){let T={};E=g(E),S.textProps.forEach(D=>{E[D]!==void 0&&(T[D]=E[D],delete E[D])}),this.text.css(T),"fontSize"in T||"fontWeight"in T?this.updateTextPadding():("width"in T||"textOverflow"in T)&&this.updateBoxSize()}return o.prototype.css.call(this,E)}destroy(){x(this.element,"mouseenter"),x(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),o.prototype.destroy.call(this)}fillSetter(E,T){E&&(this.needsBox=!0),this.fill=E,this.boxAttr(T,E)}getBBox(E,T){this.textStr&&this.bBox.width===0&&this.bBox.height===0&&this.updateBoxSize();let{padding:D,height:$=0,translateX:I=0,translateY:H=0,width:se=0}=this,ie=_(this.paddingLeft,D),ne=T??(this.rotation||0),le={width:se,height:$,x:I+this.bBox.x-ie,y:H+this.bBox.y-D+this.baselineOffset};return ne&&(le=this.getRotatedBox(le,ne)),le}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(E){this.heightSetting=E}onAdd(){this.text.add(this),this.attr({text:_(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&l(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(E,T){u(E)?E!==this[T]&&(this[T]=E,this.updateTextPadding()):this[T]=void 0}rSetter(E,T){this.boxAttr(T,E)}strokeSetter(E,T){this.stroke=E,this.boxAttr(T,E)}"stroke-widthSetter"(E,T){E&&(this.needsBox=!0),this["stroke-width"]=E,this.boxAttr(T,E)}"text-alignSetter"(E){this.textAlign=E}textSetter(E){E!==void 0&&this.text.attr({text:E}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let E,T=this.text,D={},$=this.padding,I=this.bBox=(!u(this.widthSetting)||!u(this.heightSetting)||this.textAlign)&&l(T.textStr)?T.getBBox(void 0,0):S.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||I.height||0)+2*$;let H=this.renderer.fontMetrics(T);if(this.baselineOffset=$+Math.min((this.text.firstLineMetrics||H).b,I.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-H.h)/2),this.needsBox&&!T.textPath){if(!this.box){let se=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();se.addClass((this.className==="button"?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),se.add(this)}E=this.getCrispAdjust(),D.x=E,D.y=(this.baseline?-this.baselineOffset:0)+E,D.width=Math.round(this.width),D.height=Math.round(this.height),this.box.attr(c(D,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let E=this.text;if(!E.textPath){this.updateBoxSize();let T=this.baseline?0:this.baselineOffset,D=_(this.paddingLeft,this.padding);l(this.widthSetting)&&this.bBox&&(this.textAlign==="center"||this.textAlign==="right")&&(D+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(D!==E.x||T!==E.y)&&(E.attr("x",D),E.hasBoxWidthChanged&&(this.bBox=E.getBBox(!0)),T!==void 0&&E.attr("y",T)),E.x=D,E.y=T}}widthSetter(E){this.widthSetting=u(E)?E:void 0}getPaddedWidth(){let E=this.padding,T=_(this.paddingLeft,E),D=_(this.paddingRight,E);return(this.widthSetting||this.bBox.width||0)+T+D}xSetter(E){this.x=E,this.alignFactor&&(E-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(E),this.attr("translateX",this.xSetting)}ySetter(E){this.ySetting=this.y=Math.round(E),this.attr("translateY",this.ySetting)}}return S.emptyBBox={width:0,height:0,x:0,y:0},S.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],S}),n(r,"Core/Renderer/SVG/Symbols.js",[r["Core/Utilities.js"]],function(o){let{defined:a,isNumber:l,pick:c}=o;function u(x,S,O,E,T){let D=[];if(T){let $=T.start||0,I=c(T.r,O),H=c(T.r,E||O),se=2e-4/Math.max(I,1),ie=Math.abs((T.end||0)-$-2*Math.PI)0&&H0)return se;if(x+I>O-$)if(H>S+$&&HS+$&&H0){let ie=HE&&I$&&se.splice(1,1,["L",I-6,S],["L",I,S-6],["L",I+6,S],["L",O-D,S]);return se},circle:function(x,S,O,E){return u(x+O/2,S+E/2,O/2,E/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(x,S,O,E){return[["M",x+O/2,S],["L",x+O,S+E/2],["L",x+O/2,S+E],["L",x,S+E/2],["Z"]]},rect:g,roundedRect:_,square:g,triangle:function(x,S,O,E){return[["M",x+O/2,S],["L",x+O,S+E],["L",x,S+E],["Z"]]},"triangle-down":function(x,S,O,E){return[["M",x,S],["L",x+O,S],["L",x+O/2,S+E],["Z"]]}}}),n(r,"Core/Renderer/SVG/TextBuilder.js",[r["Core/Renderer/HTML/AST.js"],r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a,l){let{doc:c,SVG_NS:u,win:g}=a,{attr:_,extend:x,fireEvent:S,isString:O,objectEach:E,pick:T}=l;return class{constructor(D){let $=D.styles;this.renderer=D.renderer,this.svgElement=D,this.width=D.textWidth,this.textLineHeight=$&&$.lineHeight,this.textOutline=$&&$.textOutline,this.ellipsis=!!($&&$.textOverflow==="ellipsis"),this.noWrap=!!($&&$.whiteSpace==="nowrap")}buildSVG(){let D=this.svgElement,$=D.element,I=D.renderer,H=T(D.textStr,"").toString(),se=H.indexOf("<")!==-1,ie=$.childNodes,ne=!D.added&&I.box,le=[H,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,D.getStyle("font-size"),this.width].join(",");if(le!==D.textCache){D.textCache=le,delete D.actualWidth;for(let me=ie.length;me--;)$.removeChild(ie[me]);if(se||this.ellipsis||this.width||D.textPath||H.indexOf(" ")!==-1&&(!this.noWrap||//g.test(H))){if(H!==""){ne&&ne.appendChild($);let me=new o(H);this.modifyTree(me.nodes),me.addToDOM($),this.modifyDOM(),this.ellipsis&&($.textContent||"").indexOf("\u2026")!==-1&&D.attr("title",this.unescapeEntities(D.textStr||"",["<",">"])),ne&&ne.removeChild($)}}else $.appendChild(c.createTextNode(this.unescapeEntities(H)));O(this.textOutline)&&D.applyTextOutline&&D.applyTextOutline(this.textOutline)}}modifyDOM(){let D,$=this.svgElement,I=_($.element,"x");for($.firstLineMetrics=void 0;(D=$.element.firstChild)&&/^[\s\u200B]*$/.test(D.textContent||" ");)$.element.removeChild(D);[].forEach.call($.element.querySelectorAll("tspan.highcharts-br"),(ne,le)=>{ne.nextSibling&&ne.previousSibling&&(le===0&&ne.previousSibling.nodeType===1&&($.firstLineMetrics=$.renderer.fontMetrics(ne.previousSibling)),_(ne,{dy:this.getLineHeight(ne.nextSibling),x:I}))});let H=this.width||0;if(!H)return;let se=(ne,le)=>{let me=ne.textContent||"",_e=me.replace(/([^\^])-/g,"$1- ").split(" "),ge=!this.noWrap&&(_e.length>1||$.element.childNodes.length>1),de=this.getLineHeight(le),ve=0,pe=$.actualWidth;if(this.ellipsis)me&&this.truncate(ne,me,void 0,0,Math.max(0,H-.8*de),(te,N)=>te.substring(0,N)+"\u2026");else if(ge){let te=[],N=[];for(;le.firstChild&&le.firstChild!==ne;)N.push(le.firstChild),le.removeChild(le.firstChild);for(;_e.length;)_e.length&&!this.noWrap&&ve>0&&(te.push(ne.textContent||""),ne.textContent=_e.join(" ").replace(/- /g,"-")),this.truncate(ne,void 0,_e,ve===0&&pe||0,H,(B,ee)=>_e.slice(0,ee).join(" ").replace(/- /g,"-")),pe=$.actualWidth,ve++;N.forEach(B=>{le.insertBefore(B,ne)}),te.forEach(B=>{le.insertBefore(c.createTextNode(B),ne);let ee=c.createElementNS(u,"tspan");ee.textContent="\u200B",_(ee,{dy:de,x:I}),le.insertBefore(ee,ne)})}},ie=ne=>{[].slice.call(ne.childNodes).forEach(le=>{le.nodeType===g.Node.TEXT_NODE?se(le,ne):(le.className.baseVal.indexOf("highcharts-br")!==-1&&($.actualWidth=0),ie(le))})};ie($.element)}getLineHeight(D){let $=D.nodeType===g.Node.TEXT_NODE?D.parentElement:D;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics($||this.svgElement.element).h}modifyTree(D){let $=(I,H)=>{let{attributes:se={},children:ie,style:ne={},tagName:le}=I,me=this.renderer.styledMode;if(le==="b"||le==="strong"?me?se.class="highcharts-strong":ne.fontWeight="bold":(le==="i"||le==="em")&&(me?se.class="highcharts-emphasized":ne.fontStyle="italic"),ne&&ne.color&&(ne.fill=ne.color),le==="br"){se.class="highcharts-br",I.textContent="\u200B";let _e=D[H+1];_e&&_e.textContent&&(_e.textContent=_e.textContent.replace(/^ +/gm,""))}else le==="a"&&ie&&ie.some(_e=>_e.tagName==="#text")&&(I.children=[{children:ie,tagName:"tspan"}]);le!=="#text"&&le!=="a"&&(I.tagName="tspan"),x(I,{attributes:se,style:ne}),ie&&ie.filter(_e=>_e.tagName!=="#text").forEach($)};D.forEach($),S(this.svgElement,"afterModifyTree",{nodes:D})}truncate(D,$,I,H,se,ie){let ne,le,me=this.svgElement,{rotation:_e}=me,ge=[],de=I?1:0,ve=($||I||"").length,pe=ve,te=function(N,B){let ee=B||N,oe=D.parentNode;if(oe&&ge[ee]===void 0&&oe.getSubStringLength)try{ge[ee]=H+oe.getSubStringLength(0,I?ee+1:ee)}catch{}return ge[ee]};if(me.rotation=0,H+(le=te(D.textContent.length))>se){for(;de<=ve;)pe=Math.ceil((de+ve)/2),I&&(ne=ie(I,pe)),le=te(pe,ne&&ne.length-1),de===ve?de=ve+1:le>se?ve=pe-1:de=pe;ve===0?D.textContent="":$&&ve===$.length-1||(D.textContent=ne||ie($||I,pe))}I&&I.splice(0,pe),me.actualWidth=le,me.rotation=_e}unescapeEntities(D,$){return E(this.renderer.escapes,function(I,H){$&&$.indexOf(I)!==-1||(D=D.toString().replace(RegExp(I,"g"),H))}),D}}}),n(r,"Core/Renderer/SVG/SVGRenderer.js",[r["Core/Renderer/HTML/AST.js"],r["Core/Defaults.js"],r["Core/Color/Color.js"],r["Core/Globals.js"],r["Core/Renderer/RendererRegistry.js"],r["Core/Renderer/SVG/SVGElement.js"],r["Core/Renderer/SVG/SVGLabel.js"],r["Core/Renderer/SVG/Symbols.js"],r["Core/Renderer/SVG/TextBuilder.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x,S,O){let E,{defaultOptions:T}=a,{charts:D,deg2rad:$,doc:I,isFirefox:H,isMS:se,isWebKit:ie,noop:ne,SVG_NS:le,symbolSizes:me,win:_e}=c,{addEvent:ge,attr:de,createElement:ve,crisp:pe,css:te,defined:N,destroyObjectProperties:B,extend:ee,isArray:oe,isNumber:he,isObject:be,isString:Ce,merge:Oe,pick:Se,pInt:$e,replaceNested:ke,uniqueKey:Re}=O;class Be{constructor(Pe,Ie,Fe,fe,ae,ue,xe){let Ae,De,ze=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),je=ze.element;xe||ze.css(this.getStyle(fe||{})),Pe.appendChild(je),de(Pe,"dir","ltr"),Pe.innerHTML.indexOf("xmlns")===-1&&de(je,"xmlns",this.SVG_NS),this.box=je,this.boxWrapper=ze,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(I.createTextNode("Created with Highcharts 11.4.3")),this.defs=this.createElement("defs").add(),this.allowHTML=ue,this.forExport=ae,this.styledMode=xe,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=ze.getStyle("font-size"),this.setSize(Ie,Fe,!1),H&&Pe.getBoundingClientRect&&((Ae=function(){te(Pe,{left:0,top:0}),De=Pe.getBoundingClientRect(),te(Pe,{left:Math.ceil(De.left)-De.left+"px",top:Math.ceil(De.top)-De.top+"px"})})(),this.unSubPixelFix=ge(_e,"resize",Ae))}definition(Pe){return new o([Pe]).addToDOM(this.defs.element)}getReferenceURL(){if((H||ie)&&I.getElementsByTagName("base").length){if(!N(E)){let Pe=Re(),Ie=new o([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:Pe},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${Pe})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(I.body);te(Ie,{position:"fixed",top:0,left:0,zIndex:9e5});let Fe=I.elementFromPoint(6,6);E=(Fe&&Fe.id)==="hitme",I.body.removeChild(Ie)}if(E)return ke(_e.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(Pe){return this.style=ee({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},Pe),this.style}setStyle(Pe){this.boxWrapper.css(this.getStyle(Pe))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let Pe=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),B(this.gradients||{}),this.gradients=null,this.defs=Pe.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(Pe){return new this.Element(this,Pe)}getRadialAttr(Pe,Ie){return{cx:Pe[0]-Pe[2]/2+(Ie.cx||0)*Pe[2],cy:Pe[1]-Pe[2]/2+(Ie.cy||0)*Pe[2],r:(Ie.r||0)*Pe[2]}}shadowDefinition(Pe){let Ie=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(Pe).map(fe=>`${fe}-${Pe[fe]}`)].join("-").toLowerCase().replace(/[^a-z0-9\-]/g,""),Fe=Oe({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},Pe);return this.defs.element.querySelector(`#${Ie}`)||this.definition({tagName:"filter",attributes:{id:Ie,filterUnits:Fe.filterUnits},children:[{tagName:"feDropShadow",attributes:{dx:Fe.offsetX,dy:Fe.offsetY,"flood-color":Fe.color,"flood-opacity":Math.min(5*Fe.opacity,1),stdDeviation:Fe.width/2}}]}),Ie}buildText(Pe){new S(Pe).buildSVG()}getContrast(Pe){let Ie=l.parse(Pe).rgba.map(fe=>{let ae=fe/255;return ae<=.03928?ae/12.92:Math.pow((ae+.055)/1.055,2.4)}),Fe=.2126*Ie[0]+.7152*Ie[1]+.0722*Ie[2];return 1.05/(Fe+.05)>(Fe+.05)/.05?"#FFFFFF":"#000000"}button(Pe,Ie,Fe,fe,ae={},ue,xe,Ae,De,ze){let je=this.label(Pe,Ie,Fe,De,void 0,void 0,ze,void 0,"button"),Ke=this.styledMode,Ze=arguments,Ge=0;ae=Oe(T.global.buttonTheme,ae),Ke&&(delete ae.fill,delete ae.stroke,delete ae["stroke-width"]);let Ne=ae.states||{},We=ae.style||{};delete ae.states,delete ae.style;let Ye=[o.filterUserAttributes(ae)],Qe=[We];return Ke||["hover","select","disabled"].forEach((Le,ye)=>{Ye.push(Oe(Ye[0],o.filterUserAttributes(Ze[ye+5]||Ne[Le]||{}))),Qe.push(Ye[ye+1].style),delete Ye[ye+1].style}),ge(je.element,se?"mouseover":"mouseenter",function(){Ge!==3&&je.setState(1)}),ge(je.element,se?"mouseout":"mouseleave",function(){Ge!==3&&je.setState(Ge)}),je.setState=(Le=0)=>{if(Le!==1&&(je.state=Ge=Le),je.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][Le]),!Ke){je.attr(Ye[Le]);let ye=Qe[Le];be(ye)&&je.css(ye)}},je.attr(Ye[0]),!Ke&&(je.css(ee({cursor:"default"},We)),ze&&je.text.css({pointerEvents:"none"})),je.on("touchstart",Le=>Le.stopPropagation()).on("click",function(Le){Ge!==3&&fe.call(je,Le)})}crispLine(Pe,Ie){let[Fe,fe]=Pe;return N(Fe[1])&&Fe[1]===fe[1]&&(Fe[1]=fe[1]=pe(Fe[1],Ie)),N(Fe[2])&&Fe[2]===fe[2]&&(Fe[2]=fe[2]=pe(Fe[2],Ie)),Pe}path(Pe){let Ie=this.styledMode?{}:{fill:"none"};return oe(Pe)?Ie.d=Pe:be(Pe)&&ee(Ie,Pe),this.createElement("path").attr(Ie)}circle(Pe,Ie,Fe){let fe=be(Pe)?Pe:Pe===void 0?{}:{x:Pe,y:Ie,r:Fe},ae=this.createElement("circle");return ae.xSetter=ae.ySetter=function(ue,xe,Ae){Ae.setAttribute("c"+xe,ue)},ae.attr(fe)}arc(Pe,Ie,Fe,fe,ae,ue){let xe;be(Pe)?(Ie=(xe=Pe).y,Fe=xe.r,fe=xe.innerR,ae=xe.start,ue=xe.end,Pe=xe.x):xe={innerR:fe,start:ae,end:ue};let Ae=this.symbol("arc",Pe,Ie,Fe,Fe,xe);return Ae.r=Fe,Ae}rect(Pe,Ie,Fe,fe,ae,ue){let xe=be(Pe)?Pe:Pe===void 0?{}:{x:Pe,y:Ie,r:ae,width:Math.max(Fe||0,0),height:Math.max(fe||0,0)},Ae=this.createElement("rect");return this.styledMode||(ue!==void 0&&(xe["stroke-width"]=ue,ee(xe,Ae.crisp(xe))),xe.fill="none"),Ae.rSetter=function(De,ze,je){Ae.r=De,de(je,{rx:De,ry:De})},Ae.rGetter=function(){return Ae.r||0},Ae.attr(xe)}roundedRect(Pe){return this.symbol("roundedRect").attr(Pe)}setSize(Pe,Ie,Fe){this.width=Pe,this.height=Ie,this.boxWrapper.animate({width:Pe,height:Ie},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:Se(Fe,!0)?void 0:0}),this.alignElements()}g(Pe){let Ie=this.createElement("g");return Pe?Ie.attr({class:"highcharts-"+Pe}):Ie}image(Pe,Ie,Fe,fe,ae,ue){let xe={preserveAspectRatio:"none"};he(Ie)&&(xe.x=Ie),he(Fe)&&(xe.y=Fe),he(fe)&&(xe.width=fe),he(ae)&&(xe.height=ae);let Ae=this.createElement("image").attr(xe),De=function(ze){Ae.attr({href:Pe}),ue.call(Ae,ze)};if(ue){Ae.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let ze=new _e.Image;ge(ze,"load",De),ze.src=Pe,ze.complete&&De({})}else Ae.attr({href:Pe});return Ae}symbol(Pe,Ie,Fe,fe,ae,ue){let xe,Ae,De,ze,je=this,Ke=/^url\((.*?)\)$/,Ze=Ke.test(Pe),Ge=!Ze&&(this.symbols[Pe]?Pe:"circle"),Ne=Ge&&this.symbols[Ge];if(Ne)typeof Ie=="number"&&(Ae=Ne.call(this.symbols,Ie||0,Fe||0,fe||0,ae||0,ue)),xe=this.path(Ae),je.styledMode||xe.attr("fill","none"),ee(xe,{symbolName:Ge||void 0,x:Ie,y:Fe,width:fe,height:ae}),ue&&ee(xe,ue);else if(Ze){De=Pe.match(Ke)[1];let We=xe=this.image(De);We.imgwidth=Se(ue&&ue.width,me[De]&&me[De].width),We.imgheight=Se(ue&&ue.height,me[De]&&me[De].height),ze=Ye=>Ye.attr({width:Ye.width,height:Ye.height}),["width","height"].forEach(Ye=>{We[`${Ye}Setter`]=function(Qe,Le){this[Le]=Qe;let{alignByTranslate:ye,element:we,width:Ve,height:Xe,imgwidth:nt,imgheight:lt}=this,pt=Le==="width"?nt:lt,_t=1;ue&&ue.backgroundSize==="within"&&Ve&&Xe&&nt&<?(_t=Math.min(Ve/nt,Xe/lt),de(we,{width:Math.round(nt*_t),height:Math.round(lt*_t)})):we&&pt&&we.setAttribute(Le,pt),!ye&&nt&<&&this.translate(((Ve||0)-nt*_t)/2,((Xe||0)-lt*_t)/2)}}),N(Ie)&&We.attr({x:Ie,y:Fe}),We.isImg=!0,N(We.imgwidth)&&N(We.imgheight)?ze(We):(We.attr({width:0,height:0}),ve("img",{onload:function(){let Ye=D[je.chartIndex];this.width===0&&(te(this,{position:"absolute",top:"-999em"}),I.body.appendChild(this)),me[De]={width:this.width,height:this.height},We.imgwidth=this.width,We.imgheight=this.height,We.element&&ze(We),this.parentNode&&this.parentNode.removeChild(this),je.imgCount--,je.imgCount||!Ye||Ye.hasLoaded||Ye.onload()},src:De}),this.imgCount++)}return xe}clipRect(Pe,Ie,Fe,fe){return this.rect(Pe,Ie,Fe,fe,0)}text(Pe,Ie,Fe,fe){let ae={};if(fe&&(this.allowHTML||!this.forExport))return this.html(Pe,Ie,Fe);ae.x=Math.round(Ie||0),Fe&&(ae.y=Math.round(Fe)),N(Pe)&&(ae.text=Pe);let ue=this.createElement("text").attr(ae);return fe&&(!this.forExport||this.allowHTML)||(ue.xSetter=function(xe,Ae,De){let ze=De.getElementsByTagName("tspan"),je=De.getAttribute(Ae);for(let Ke=0,Ze;KePe.align())}}return ee(Be.prototype,{Element:g,SVG_NS:le,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:x,draw:ne}),u.registerRendererType("svg",Be,!0),Be}),n(r,"Core/Renderer/HTML/HTMLElement.js",[r["Core/Renderer/HTML/AST.js"],r["Core/Globals.js"],r["Core/Renderer/SVG/SVGElement.js"],r["Core/Utilities.js"]],function(o,a,l,c){let{composed:u}=a,{attr:g,css:_,createElement:x,defined:S,extend:O,pInt:E,pushUnique:T}=c;function D(se,ie,ne){let le=this.div?.style||ne.style;l.prototype[`${ie}Setter`].call(this,se,ie,ne),le&&(le[ie]=se)}let $=(se,ie)=>{if(!se.div){let ne=g(se.element,"class"),le=se.css,me=x("div",ne?{className:ne}:void 0,{position:"absolute",left:`${se.translateX||0}px`,top:`${se.translateY||0}px`,...se.styles,display:se.display,opacity:se.opacity,visibility:se.visibility},se.parentGroup?.div||ie);se.classSetter=(_e,ge,de)=>{de.setAttribute("class",_e),me.className=_e},se.translateXSetter=se.translateYSetter=(_e,ge)=>{se[ge]=_e,me.style[ge==="translateX"?"left":"top"]=`${_e}px`,se.doTransform=!0},se.opacitySetter=se.visibilitySetter=D,se.css=_e=>(le.call(se,_e),_e.cursor&&(me.style.cursor=_e.cursor),_e.pointerEvents&&(me.style.pointerEvents=_e.pointerEvents),se),se.on=function(){return l.prototype.on.apply({element:me,onEvents:se.onEvents},arguments),se},se.div=me}return se.div};class I extends l{static compose(ie){T(u,this.compose)&&(ie.prototype.html=function(ne,le,me){return new I(this,"span").attr({text:ne,x:Math.round(le),y:Math.round(me)})})}constructor(ie,ne){super(ie,ne),this.css({position:"absolute",...ie.styledMode?{}:{fontFamily:ie.style.fontFamily,fontSize:ie.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(ie,ne,le){this.xCorr=-ie*le,this.yCorr=-ne}css(ie){let ne,{element:le}=this,me=le.tagName==="SPAN"&&ie&&"width"in ie,_e=me&&ie.width;return me&&(delete ie.width,this.textWidth=E(_e)||void 0,ne=!0),ie?.textOverflow==="ellipsis"&&(ie.whiteSpace="nowrap",ie.overflow="hidden"),O(this.styles,ie),_(le,ie),ne&&this.updateTransform(),this}htmlGetBBox(){let{element:ie}=this;return{x:ie.offsetLeft,y:ie.offsetTop,width:ie.offsetWidth,height:ie.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:ie,renderer:ne,rotation:le,rotationOriginX:me,rotationOriginY:_e,styles:ge,textAlign:de="left",textWidth:ve,translateX:pe=0,translateY:te=0,x:N=0,y:B=0}=this,ee=ge.whiteSpace;if(_(ie,{marginLeft:`${pe}px`,marginTop:`${te}px`}),ie.tagName==="SPAN"){let oe=[le,de,ie.innerHTML,ve,this.textAlign].join(","),he=-(this.parentGroup?.padding*1)||0,be,Ce=!1;if(ve!==this.oldTextWidth){let Re=this.textPxLength?this.textPxLength:(_(ie,{width:"",whiteSpace:ee||"nowrap"}),ie.offsetWidth),Be=ve||0;(Be>this.oldTextWidth||Re>Be)&&(/[ \-]/.test(ie.textContent||ie.innerText)||ie.style.textOverflow==="ellipsis")&&(_(ie,{width:Re>Be||le?ve+"px":"auto",display:"block",whiteSpace:ee||"normal"}),this.oldTextWidth=ve,Ce=!0)}this.hasBoxWidthChanged=Ce,oe!==this.cTT&&(be=ne.fontMetrics(ie).b,S(le)&&(le!==(this.oldRotation||0)||de!==this.oldAlign)&&this.setSpanRotation(le,he,he),this.getSpanCorrection(!S(le)&&this.textPxLength||ie.offsetWidth,be,{left:0,center:.5,right:1}[de]));let{xCorr:Oe=0,yCorr:Se=0}=this,$e=(me??N)-Oe-N-he,ke=(_e??B)-Se-B-he;_(ie,{left:`${N+Oe}px`,top:`${B+Se}px`,transformOrigin:`${$e}px ${ke}px`}),this.cTT=oe,this.oldRotation=le,this.oldAlign=de}}setSpanRotation(ie,ne,le){_(this.element,{transform:`rotate(${ie}deg)`,transformOrigin:`${ne}% ${le}px`})}add(ie){let ne,le=this.renderer.box.parentNode,me=[];if(this.parentGroup=ie,ie&&!(ne=ie.div)){let _e=ie;for(;_e;)me.push(_e),_e=_e.parentGroup;for(let ge of me.reverse())ne=$(ge,le)}return(ne||le).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(ie){ie!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,o.setElementHTML(this.element,ie??""),this.textStr=ie,this.doTransform=!0)}alignSetter(ie){this.alignValue=this.textAlign=ie,this.doTransform=!0}xSetter(ie,ne){this[ne]=ie,this.doTransform=!0}}let H=I.prototype;return H.visibilitySetter=H.opacitySetter=D,H.ySetter=H.rotationSetter=H.rotationOriginXSetter=H.rotationOriginYSetter=H.xSetter,I}),n(r,"Core/Axis/AxisDefaults.js",[],function(){var o,a;return(a=o||(o={})).xAxis={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:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",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,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",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"},a.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:l}=this.axis.chart;return l(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},o}),n(r,"Core/Foundation.js",[r["Core/Utilities.js"]],function(o){var a;let{addEvent:l,isFunction:c,objectEach:u,removeEvent:g}=o;return(a||(a={})).registerEventOptions=function(_,x){_.eventOptions=_.eventOptions||{},u(x.events,function(S,O){_.eventOptions[O]!==S&&(_.eventOptions[O]&&(g(_,O,_.eventOptions[O]),delete _.eventOptions[O]),c(S)&&(_.eventOptions[O]=S,l(_,O,S,{order:0})))})},a}),n(r,"Core/Axis/Tick.js",[r["Core/Templating.js"],r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a,l){let{deg2rad:c}=a,{clamp:u,correctFloat:g,defined:_,destroyObjectProperties:x,extend:S,fireEvent:O,isNumber:E,merge:T,objectEach:D,pick:$}=l;return class{constructor(I,H,se,ie,ne){this.isNew=!0,this.isNewLabel=!0,this.axis=I,this.pos=H,this.type=se||"",this.parameters=ne||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,O(this,"init"),se||ie||this.addLabel()}addLabel(){let I=this,H=I.axis,se=H.options,ie=H.chart,ne=H.categories,le=H.logarithmic,me=H.names,_e=I.pos,ge=$(I.options&&I.options.labels,se.labels),de=H.tickPositions,ve=_e===de[0],pe=_e===de[de.length-1],te=(!ge.step||ge.step===1)&&H.tickInterval===1,N=de.info,B=I.label,ee,oe,he,be=this.parameters.category||(ne?$(ne[_e],me[_e],_e):_e);le&&E(be)&&(be=g(le.lin2log(be))),H.dateTime&&(N?ee=(oe=ie.time.resolveDTLFormat(se.dateTimeLabelFormats[!se.grid&&N.higherRanks[_e]||N.unitName])).main:E(be)&&(ee=H.dateTime.getXDateFormat(be,se.dateTimeLabelFormats||{}))),I.isFirst=ve,I.isLast=pe;let Ce={axis:H,chart:ie,dateTimeLabelFormat:ee,isFirst:ve,isLast:pe,pos:_e,tick:I,tickPositionInfo:N,value:be};O(this,"labelFormat",Ce);let Oe=ke=>ge.formatter?ge.formatter.call(ke,ke):ge.format?(ke.text=H.defaultLabelFormatter.call(ke),o.format(ge.format,ke,ie)):H.defaultLabelFormatter.call(ke),Se=Oe.call(Ce,Ce),$e=oe&&oe.list;$e?I.shortenLabel=function(){for(he=0;he<$e.length;he++)if(S(Ce,{dateTimeLabelFormat:$e[he]}),B.attr({text:Oe.call(Ce,Ce)}),B.getBBox().width0&&ie+ve*pe>_e&&(be=Math.round((ne-ie)/Math.cos(de*c))):(oe=ie-ve*pe,he=ie+(1-ve)*pe,oe_e&&(B=_e-I.x+B*ve,ee=-1),(B=Math.min(te,B))B||H.autoRotation&&(ge.styles||{}).width)&&(be=B)),be&&(this.shortenLabel?this.shortenLabel():(N.width=Math.floor(be)+"px",(se.style||{}).textOverflow||(N.textOverflow="ellipsis"),ge.css(N)))}moveLabel(I,H){let se=this,ie=se.label,ne=se.axis,le=!1,me;ie&&ie.textStr===I?(se.movedLabel=ie,le=!0,delete se.label):D(ne.ticks,function(_e){le||_e.isNew||_e===se||!_e.label||_e.label.textStr!==I||(se.movedLabel=_e.label,le=!0,_e.labelPos=se.movedLabel.xy,delete _e.label)}),!le&&(se.labelPos||ie)&&(me=se.labelPos||ie.xy,se.movedLabel=se.createLabel(I,H,me),se.movedLabel&&se.movedLabel.attr({opacity:0}))}render(I,H,se){let ie=this.axis,ne=ie.horiz,le=this.pos,me=$(this.tickmarkOffset,ie.tickmarkOffset),_e=this.getPosition(ne,le,me,H),ge=_e.x,de=_e.y,ve=ie.pos,pe=ve+ie.len,te=ne?ge:de;!ie.chart.polar&&this.isNew&&(g(te)pe)&&(se=0);let N=$(se,this.label&&this.label.newOpacity,1);se=$(se,1),this.isActive=!0,this.renderGridLine(H,se),this.renderMark(_e,se),this.renderLabel(_e,H,N,I),this.isNew=!1,O(this,"afterRender")}renderGridLine(I,H){let se=this.axis,ie=se.options,ne={},le=this.pos,me=this.type,_e=$(this.tickmarkOffset,se.tickmarkOffset),ge=se.chart.renderer,de=this.gridLine,ve,pe=ie.gridLineWidth,te=ie.gridLineColor,N=ie.gridLineDashStyle;this.type==="minor"&&(pe=ie.minorGridLineWidth,te=ie.minorGridLineColor,N=ie.minorGridLineDashStyle),de||(se.chart.styledMode||(ne.stroke=te,ne["stroke-width"]=pe||0,ne.dashstyle=N),me||(ne.zIndex=1),I&&(H=0),this.gridLine=de=ge.path().attr(ne).addClass("highcharts-"+(me?me+"-":"")+"grid-line").add(se.gridGroup)),de&&(ve=se.getPlotLinePath({value:le+_e,lineWidth:de.strokeWidth(),force:"pass",old:I,acrossPanes:!1}))&&de[I||this.isNew?"attr":"animate"]({d:ve,opacity:H})}renderMark(I,H){let se=this.axis,ie=se.options,ne=se.chart.renderer,le=this.type,me=se.tickSize(le?le+"Tick":"tick"),_e=I.x,ge=I.y,de=$(ie[le!=="minor"?"tickWidth":"minorTickWidth"],!le&&se.isXAxis?1:0),ve=ie[le!=="minor"?"tickColor":"minorTickColor"],pe=this.mark,te=!pe;me&&(se.opposite&&(me[0]=-me[0]),pe||(this.mark=pe=ne.path().addClass("highcharts-"+(le?le+"-":"")+"tick").add(se.axisGroup),se.chart.styledMode||pe.attr({stroke:ve,"stroke-width":de})),pe[te?"attr":"animate"]({d:this.getMarkPath(_e,ge,me[0],pe.strokeWidth(),se.horiz,ne),opacity:H}))}renderLabel(I,H,se,ie){let ne=this.axis,le=ne.horiz,me=ne.options,_e=this.label,ge=me.labels,de=ge.step,ve=$(this.tickmarkOffset,ne.tickmarkOffset),pe=I.x,te=I.y,N=!0;_e&&E(pe)&&(_e.xy=I=this.getLabelPosition(pe,te,_e,le,ge,ve,ie,de),(!this.isFirst||this.isLast||me.showFirstLabel)&&(!this.isLast||this.isFirst||me.showLastLabel)?!le||ge.step||ge.rotation||H||se===0||this.handleOverflow(I):N=!1,de&&ie%de&&(N=!1),N&&E(I.y)?(I.opacity=se,_e[this.isNewLabel?"attr":"animate"](I).show(!0),this.isNewLabel=!1):(_e.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let I=this.label,H=this.axis;I&&!this.isNew&&(I.animate({opacity:0},void 0,I.destroy),delete this.label),H.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),n(r,"Core/Axis/Axis.js",[r["Core/Animation/AnimationUtilities.js"],r["Core/Axis/AxisDefaults.js"],r["Core/Color/Color.js"],r["Core/Defaults.js"],r["Core/Foundation.js"],r["Core/Globals.js"],r["Core/Axis/Tick.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x){let{animObject:S}=o,{xAxis:O,yAxis:E}=a,{defaultOptions:T}=c,{registerEventOptions:D}=u,{deg2rad:$}=g,{arrayMax:I,arrayMin:H,clamp:se,correctFloat:ie,defined:ne,destroyObjectProperties:le,erase:me,error:_e,extend:ge,fireEvent:de,getClosestDistance:ve,insertItem:pe,isArray:te,isNumber:N,isString:B,merge:ee,normalizeTickInterval:oe,objectEach:he,pick:be,relativeLength:Ce,removeEvent:Oe,splat:Se,syncTimeout:$e}=x,ke=(Be,Ee)=>oe(Ee,void 0,void 0,be(Be.options.allowDecimals,Ee<.5||Be.tickAmount!==void 0),!!Be.tickAmount);ge(T,{xAxis:O,yAxis:ee(O,E)});class Re{constructor(Ee,Pe,Ie){this.init(Ee,Pe,Ie)}init(Ee,Pe,Ie=this.coll){let Fe=Ie==="xAxis",fe=this.isZAxis||(Ee.inverted?!Fe:Fe);this.chart=Ee,this.horiz=fe,this.isXAxis=Fe,this.coll=Ie,de(this,"init",{userOptions:Pe}),this.opposite=be(Pe.opposite,this.opposite),this.side=be(Pe.side,this.side,fe?this.opposite?0:2:this.opposite?1:3),this.setOptions(Pe);let ae=this.options,ue=ae.labels,xe=ae.type;this.userOptions=Pe,this.minPixelPadding=0,this.reversed=be(ae.reversed,this.reversed),this.visible=ae.visible,this.zoomEnabled=ae.zoomEnabled,this.hasNames=xe==="category"||ae.categories===!0,this.categories=te(ae.categories)&&ae.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=ne(ae.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=ae.minRange||ae.maxZoom,this.range=ae.range,this.offset=ae.offset||0,this.max=void 0,this.min=void 0;let Ae=be(ae.crosshair,Se(Ee.options.tooltip.crosshairs)[Fe?0:1]);this.crosshair=Ae===!0?{}:Ae,Ee.axes.indexOf(this)===-1&&(Fe?Ee.axes.splice(Ee.xAxis.length,0,this):Ee.axes.push(this),pe(this,Ee[this.coll])),Ee.orderItems(this.coll),this.series=this.series||[],Ee.inverted&&!this.isZAxis&&Fe&&!ne(this.reversed)&&(this.reversed=!0),this.labelRotation=N(ue.rotation)?ue.rotation:void 0,D(this,ae),de(this,"afterInit")}setOptions(Ee){let Pe=this.horiz?{labels:{autoRotation:[-45],padding:4},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=ee(Pe,T[this.coll],Ee),de(this,"afterSetOptions",{userOptions:Ee})}defaultLabelFormatter(){let Ee=this.axis,{numberFormatter:Pe}=this.chart,Ie=N(this.value)?this.value:NaN,Fe=Ee.chart.time,fe=Ee.categories,ae=this.dateTimeLabelFormat,ue=T.lang,xe=ue.numericSymbols,Ae=ue.numericSymbolMagnitude||1e3,De=Ee.logarithmic?Math.abs(Ie):Ee.tickInterval,ze=xe&&xe.length,je,Ke;if(fe)Ke=`${this.value}`;else if(ae)Ke=Fe.dateFormat(ae,Ie);else if(ze&&xe&&De>=1e3)for(;ze--&&Ke===void 0;)De>=(je=Math.pow(Ae,ze+1))&&10*Ie%je==0&&xe[ze]!==null&&Ie!==0&&(Ke=Pe(Ie/je,-1)+xe[ze]);return Ke===void 0&&(Ke=Math.abs(Ie)>=1e4?Pe(Ie,-1):Pe(Ie,-1,void 0,"")),Ke}getSeriesExtremes(){let Ee,Pe=this;de(this,"getSeriesExtremes",null,function(){Pe.hasVisibleSeries=!1,Pe.dataMin=Pe.dataMax=Pe.threshold=void 0,Pe.softThreshold=!Pe.isXAxis,Pe.series.forEach(Ie=>{if(Ie.reserveSpace()){let Fe=Ie.options,fe,ae=Fe.threshold,ue,xe;if(Pe.hasVisibleSeries=!0,Pe.positiveValuesOnly&&0>=(ae||0)&&(ae=void 0),Pe.isXAxis)(fe=Ie.xData)&&fe.length&&(fe=Pe.logarithmic?fe.filter(Ae=>Ae>0):fe,ue=(Ee=Ie.getXExtremes(fe)).min,xe=Ee.max,N(ue)||ue instanceof Date||(fe=fe.filter(N),ue=(Ee=Ie.getXExtremes(fe)).min,xe=Ee.max),fe.length&&(Pe.dataMin=Math.min(be(Pe.dataMin,ue),ue),Pe.dataMax=Math.max(be(Pe.dataMax,xe),xe)));else{let Ae=Ie.applyExtremes();N(Ae.dataMin)&&(ue=Ae.dataMin,Pe.dataMin=Math.min(be(Pe.dataMin,ue),ue)),N(Ae.dataMax)&&(xe=Ae.dataMax,Pe.dataMax=Math.max(be(Pe.dataMax,xe),xe)),ne(ae)&&(Pe.threshold=ae),(!Fe.softThreshold||Pe.positiveValuesOnly)&&(Pe.softThreshold=!1)}}})}),de(this,"afterGetSeriesExtremes")}translate(Ee,Pe,Ie,Fe,fe,ae){let ue=this.linkedParent||this,xe=Fe&&ue.old?ue.old.min:ue.min;if(!N(xe))return NaN;let Ae=ue.minPixelPadding,De=(ue.isOrdinal||ue.brokenAxis?.hasBreaks||ue.logarithmic&&fe)&&ue.lin2val,ze=1,je=0,Ke=Fe&&ue.old?ue.old.transA:ue.transA,Ze=0;return Ke||(Ke=ue.transA),Ie&&(ze*=-1,je=ue.len),ue.reversed&&(ze*=-1,je-=ze*(ue.sector||ue.len)),Pe?(Ze=(Ee=Ee*ze+je-Ae)/Ke+xe,De&&(Ze=ue.lin2val(Ze))):(De&&(Ee=ue.val2lin(Ee)),Ze=ze*(Ee-xe)*Ke+je+ze*Ae+(N(ae)?Ke*ae:0),ue.isRadial||(Ze=ie(Ze))),Ze}toPixels(Ee,Pe){return this.translate(Ee,!1,!this.horiz,void 0,!0)+(Pe?0:this.pos)}toValue(Ee,Pe){return this.translate(Ee-(Pe?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(Ee){let Pe=this,Ie=Pe.chart,Fe=Pe.left,fe=Pe.top,ae=Ee.old,ue=Ee.value,xe=Ee.lineWidth,Ae=ae&&Ie.oldChartHeight||Ie.chartHeight,De=ae&&Ie.oldChartWidth||Ie.chartWidth,ze=Pe.transB,je=Ee.translatedValue,Ke=Ee.force,Ze,Ge,Ne,We,Ye;function Qe(ye,we,Ve){return Ke!=="pass"&&(yeVe)&&(Ke?ye=se(ye,we,Ve):Ye=!0),ye}let Le={value:ue,lineWidth:xe,old:ae,force:Ke,acrossPanes:Ee.acrossPanes,translatedValue:je};return de(this,"getPlotLinePath",Le,function(ye){Ze=Ne=(je=se(je=be(je,Pe.translate(ue,void 0,void 0,ae)),-1e5,1e5))+ze,Ge=We=Ae-je-ze,N(je)?Pe.horiz?(Ge=fe,We=Ae-Pe.bottom+(Ie.scrollablePixelsY||0),Ze=Ne=Qe(Ze,Fe,Fe+Pe.width)):(Ze=Fe,Ne=De-Pe.right+(Ie.scrollablePixelsX||0),Ge=We=Qe(Ge,fe,fe+Pe.height)):(Ye=!0,Ke=!1),ye.path=Ye&&!Ke?void 0:Ie.renderer.crispLine([["M",Ze,Ge],["L",Ne,We]],xe||1)}),Le.path}getLinearTickPositions(Ee,Pe,Ie){let Fe,fe,ae,ue=ie(Math.floor(Pe/Ee)*Ee),xe=ie(Math.ceil(Ie/Ee)*Ee),Ae=[];if(ie(ue+Ee)===ue&&(ae=20),this.single)return[Pe];for(Fe=ue;Fe<=xe&&(Ae.push(Fe),(Fe=ie(Fe+Ee,ae))!==fe);)fe=Fe;return Ae}getMinorTickInterval(){let{minorTicks:Ee,minorTickInterval:Pe}=this.options;return Ee===!0?be(Pe,"auto"):Ee!==!1?Pe:void 0}getMinorTickPositions(){let Ee=this.options,Pe=this.tickPositions,Ie=this.minorTickInterval,Fe=this.pointRangePadding||0,fe=(this.min||0)-Fe,ae=(this.max||0)+Fe,ue=ae-fe,xe=[],Ae;if(ue&&ue/Ie(De.xIncrement?De.xData?.slice(0,2):De.xData)||[]))||0),this.dataMax-this.dataMin)),N(Ie)&&N(Fe)&&N(fe)&&Ie-Fe=fe,ae=(fe-Ie+Fe)/2,xe=[Fe-ae,be(Ee.min,Fe-ae)],ue&&(xe[2]=Pe?Pe.log2lin(this.dataMin):this.dataMin),Ae=[(Fe=I(xe))+fe,be(Ee.max,Fe+fe)],ue&&(Ae[2]=Pe?Pe.log2lin(this.dataMax):this.dataMax),(Ie=H(Ae))-FeFe-fe),Ee=ve([Ie]))}return Ee&&Pe?Math.min(Ee,Pe):Ee||Pe}nameToX(Ee){let Pe=te(this.options.categories),Ie=Pe?this.categories:this.names,Fe=Ee.options.x,fe;return Ee.series.requireSorting=!1,ne(Fe)||(Fe=this.options.uniqueNames&&Ie?Pe?Ie.indexOf(Ee.name):be(Ie.keys[Ee.name],-1):Ee.series.autoIncrement()),Fe===-1?!Pe&&Ie&&(fe=Ie.length):fe=Fe,fe!==void 0?(this.names[fe]=Ee.name,this.names.keys[Ee.name]=fe):Ee.x&&(fe=Ee.x),fe}updateNames(){let Ee=this,Pe=this.names;Pe.length>0&&(Object.keys(Pe.keys).forEach(function(Ie){delete Pe.keys[Ie]}),Pe.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(Ie=>{Ie.xIncrement=null,(!Ie.points||Ie.isDirtyData)&&(Ee.max=Math.max(Ee.max,Ie.xData.length-1),Ie.processData(),Ie.generatePoints()),Ie.data.forEach(function(Fe,fe){let ae;Fe?.options&&Fe.name!==void 0&&(ae=Ee.nameToX(Fe))!==void 0&&ae!==Fe.x&&(Fe.x=ae,Ie.xData[fe]=ae)})}))}setAxisTranslation(){let Ee=this,Pe=Ee.max-Ee.min,Ie=Ee.linkedParent,Fe=!!Ee.categories,fe=Ee.isXAxis,ae=Ee.axisPointRange||0,ue,xe=0,Ae=0,De,ze=Ee.transA;(fe||Fe||ae)&&(ue=Ee.getClosest(),Ie?(xe=Ie.minPointOffset,Ae=Ie.pointRangePadding):Ee.series.forEach(function(je){let Ke=Fe?1:fe?be(je.options.pointRange,ue,0):Ee.axisPointRange||0,Ze=je.options.pointPlacement;if(ae=Math.max(ae,Ke),!Ee.single||Fe){let Ge=je.is("xrange")?!fe:fe;xe=Math.max(xe,Ge&&B(Ze)?0:Ke/2),Ae=Math.max(Ae,Ge&&Ze==="on"?0:Ke)}}),De=Ee.ordinal&&Ee.ordinal.slope&&ue?Ee.ordinal.slope/ue:1,Ee.minPointOffset=xe*=De,Ee.pointRangePadding=Ae*=De,Ee.pointRange=Math.min(ae,Ee.single&&Fe?1:Pe),fe&&ue&&(Ee.closestPointRange=ue)),Ee.translationSlope=Ee.transA=ze=Ee.staticScale||Ee.len/(Pe+Ae||1),Ee.transB=Ee.horiz?Ee.left:Ee.bottom,Ee.minPixelPadding=ze*xe,de(this,"afterSetAxisTranslation")}minFromRange(){let{max:Ee,min:Pe}=this;return N(Ee)&&N(Pe)&&Ee-Pe||void 0}setTickInterval(Ee){let{categories:Pe,chart:Ie,dataMax:Fe,dataMin:fe,dateTime:ae,isXAxis:ue,logarithmic:xe,options:Ae,softThreshold:De}=this,ze=N(this.threshold)?this.threshold:void 0,je=this.minRange||0,{ceiling:Ke,floor:Ze,linkedTo:Ge,softMax:Ne,softMin:We}=Ae,Ye=N(Ge)&&Ie[this.coll]?.[Ge],Qe=Ae.tickPixelInterval,Le=Ae.maxPadding,ye=Ae.minPadding,we=0,Ve,Xe=N(Ae.tickInterval)&&Ae.tickInterval>=0?Ae.tickInterval:void 0,nt,lt,pt,_t;if(ae||Pe||Ye||this.getTickAmount(),pt=be(this.userMin,Ae.min),_t=be(this.userMax,Ae.max),Ye?(this.linkedParent=Ye,Ve=Ye.getExtremes(),this.min=be(Ve.min,Ve.dataMin),this.max=be(Ve.max,Ve.dataMax),Ae.type!==Ye.options.type&&_e(11,!0,Ie)):(De&&ne(ze)&&N(Fe)&&N(fe)&&(fe>=ze?(nt=ze,ye=0):Fe<=ze&&(lt=ze,Le=0)),this.min=be(pt,nt,fe),this.max=be(_t,lt,Fe)),N(this.max)&&N(this.min)&&(xe&&(this.positiveValuesOnly&&!Ee&&0>=Math.min(this.min,be(fe,this.min))&&_e(10,!0,Ie),this.min=ie(xe.log2lin(this.min),16),this.max=ie(xe.log2lin(this.max),16)),this.range&&N(fe)&&(this.userMin=this.min=pt=Math.max(fe,this.minFromRange()||0),this.userMax=_t=this.max,this.range=void 0)),de(this,"foundExtremes"),this.adjustForMinRange(),N(this.min)&&N(this.max)){if(!N(this.userMin)&&N(We)&&Wethis.max&&(this.max=_t=Ne),Pe||this.axisPointRange||this.stacking?.usePercentage||Ye||!(we=this.max-this.min)||(!ne(pt)&&ye&&(this.min-=we*ye),ne(_t)||!Le||(this.max+=we*Le)),!N(this.userMin)&&N(Ze)&&(this.min=Math.max(this.min,Ze)),!N(this.userMax)&&N(Ke)&&(this.max=Math.min(this.max,Ke)),De&&N(fe)&&N(Fe)){let Et=ze||0;!ne(pt)&&this.min=Et?this.min=Ae.minRange?Math.min(Et,this.max-je):Et:!ne(_t)&&this.max>Et&&Fe<=Et&&(this.max=Ae.minRange?Math.max(Et,this.min+je):Et)}!Ie.polar&&this.min>this.max&&(ne(Ae.min)?this.max=this.min:ne(Ae.max)&&(this.min=this.max)),we=this.max-this.min}if(this.min!==this.max&&N(this.min)&&N(this.max)?Ye&&!Xe&&Qe===Ye.options.tickPixelInterval?this.tickInterval=Xe=Ye.tickInterval:this.tickInterval=be(Xe,this.tickAmount?we/Math.max(this.tickAmount-1,1):void 0,Pe?1:we*Qe/Math.max(this.len,Qe)):this.tickInterval=1,ue&&!Ee){let Et=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(bt){bt.forceCrop=bt.forceCropping?.(),bt.processData(Et)}),de(this,"postProcessData",{hasExtremesChanged:Et})}this.setAxisTranslation(),de(this,"initialAxisTranslation"),this.pointRange&&!Xe&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let St=be(Ae.minTickInterval,ae&&!this.series.some(Et=>Et.noSharedTooltip)?this.closestPointRange:0);!Xe&&this.tickIntervalMath.max(2*this.len,200))xe=[this.min,this.max],_e(19,!1,this.chart);else if(this.dateTime)xe=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,Ee.units),this.min,this.max,Ee.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)xe=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let De=this.tickInterval,ze=De;for(;ze<=2*De&&(xe=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&xe.length>this.tickAmount);)this.tickInterval=ke(this,ze*=1.1)}xe.length>this.len&&(xe=[xe[0],xe[xe.length-1]])[0]===xe[1]&&(xe.length=1),Ie&&(this.tickPositions=xe,(Ae=Ie.apply(this,[this.min,this.max]))&&(xe=Ae))}this.tickPositions=xe,this.paddedTicks=xe.slice(0),this.trimTicks(xe,ae,ue),!this.isLinked&&N(this.min)&&N(this.max)&&(this.single&&xe.length<2&&!this.categories&&!this.series.some(De=>De.is("heatmap")&&De.options.pointPlacement==="between")&&(this.min-=.5,this.max+=.5),Pe||Ae||this.adjustTickAmount()),de(this,"afterSetTickPositions")}trimTicks(Ee,Pe,Ie){let Fe=Ee[0],fe=Ee[Ee.length-1],ae=!this.isOrdinal&&this.minPointOffset||0;if(de(this,"trimTicks"),!this.isLinked){if(Pe&&Fe!==-1/0)this.min=Fe;else for(;this.min-ae>Ee[0];)Ee.shift();if(Ie)this.max=fe;else for(;this.max+ae{let{horiz:je,options:Ke}=ze;return[je?Ke.left:Ke.top,Ke.width,Ke.height,Ke.pane].join(",")},De=Ae(this);Ie[this.coll].forEach(function(ze){let{series:je}=ze;je.length&&je.some(Ke=>Ke.visible)&&ze!==Pe&&Ae(ze)===De&&(Ee=!0,Fe.push(ze))})}if(Ee&&ue){Fe.forEach(De=>{let ze=De.getThresholdAlignment(Pe);N(ze)&&xe.push(ze)});let Ae=xe.length>1?xe.reduce((De,ze)=>De+=ze,0)/xe.length:void 0;Fe.forEach(De=>{De.thresholdAlignment=Ae})}return Ee}getThresholdAlignment(Ee){if((!N(this.dataMin)||this!==Ee&&this.series.some(Pe=>Pe.isDirty||Pe.isDirtyData))&&this.getSeriesExtremes(),N(this.threshold)){let Pe=se((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(Pe=1-Pe),Pe}}getTickAmount(){let Ee=this.options,Pe=Ee.tickPixelInterval,Ie=Ee.tickAmount;ne(Ee.tickInterval)||Ie||!(this.lenae.push(ie(ae[ae.length-1]+Ke)),Ne=()=>ae.unshift(ie(ae[0]-Ke));if(N(xe)&&(Ze=xe<.5?Math.ceil(xe*(ue-1)):Math.floor(xe*(ue-1)),fe.reversed&&(Ze=ue-1-Ze)),Ee.hasData()&&N(Fe)&&N(Ie)){let We=()=>{Ee.transA*=(Ae-1)/(ue-1),Ee.min=fe.startOnTick?ae[0]:Math.min(Fe,ae[0]),Ee.max=fe.endOnTick?ae[ae.length-1]:Math.max(Ie,ae[ae.length-1])};if(N(Ze)&&N(Ee.threshold)){for(;ae[Ze]!==De||ae.length!==ue||ae[0]>Fe||ae[ae.length-1]Ee.threshold?Ne():Ge();if(Ke>8*Ee.tickInterval)break;Ke*=2}We()}else if(Ae0&&je{Ie=Ie||ae.isDirtyData||ae.isDirty,Fe=Fe||ae.xAxis&&ae.xAxis.isDirty||!1}),this.setAxisSize();let fe=this.len!==(this.old&&this.old.len);fe||Ie||Fe||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(Pe&&Ee==="yAxis"&&Pe.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),Pe&&Ee==="xAxis"&&Pe.buildStacks(),this.isDirty||(this.isDirty=fe||this.min!==this.old?.min||this.max!==this.old?.max)):Pe&&Pe.cleanStacks(),Ie&&delete this.allExtremes,de(this,"afterSetScale")}setExtremes(Ee,Pe,Ie=!0,Fe,fe){this.series.forEach(ae=>{delete ae.kdTree}),de(this,"setExtremes",fe=ge(fe,{min:Ee,max:Pe}),ae=>{this.userMin=ae.min,this.userMax=ae.max,this.eventArgs=ae,Ie&&this.chart.redraw(Fe)})}setAxisSize(){let Ee=this.chart,Pe=this.options,Ie=Pe.offsets||[0,0,0,0],Fe=this.horiz,fe=this.width=Math.round(Ce(be(Pe.width,Ee.plotWidth-Ie[3]+Ie[1]),Ee.plotWidth)),ae=this.height=Math.round(Ce(be(Pe.height,Ee.plotHeight-Ie[0]+Ie[2]),Ee.plotHeight)),ue=this.top=Math.round(Ce(be(Pe.top,Ee.plotTop+Ie[0]),Ee.plotHeight,Ee.plotTop)),xe=this.left=Math.round(Ce(be(Pe.left,Ee.plotLeft+Ie[3]),Ee.plotWidth,Ee.plotLeft));this.bottom=Ee.chartHeight-ae-ue,this.right=Ee.chartWidth-fe-xe,this.len=Math.max(Fe?fe:ae,0),this.pos=Fe?xe:ue}getExtremes(){let Ee=this.logarithmic;return{min:Ee?ie(Ee.lin2log(this.min)):this.min,max:Ee?ie(Ee.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(Ee){let Pe=this.logarithmic,Ie=Pe?Pe.lin2log(this.min):this.min,Fe=Pe?Pe.lin2log(this.max):this.max;return Ee===null||Ee===-1/0?Ee=Ie:Ee===1/0?Ee=Fe:Ie>Ee?Ee=Ie:Fe15&&Pe<165?Fe.align="right":Pe>195&&Pe<345&&(Fe.align="left")}),Ie.align}tickSize(Ee){let Pe=this.options,Ie=be(Pe[Ee==="tick"?"tickWidth":"minorTickWidth"],Ee==="tick"&&this.isXAxis&&!this.categories?1:0),Fe=Pe[Ee==="tick"?"tickLength":"minorTickLength"],fe;Ie&&Fe&&(Pe[Ee+"Position"]==="inside"&&(Fe=-Fe),fe=[Fe,Ie]);let ae={tickSize:fe};return de(this,"afterTickSize",ae),ae.tickSize}labelMetrics(){let Ee=this.chart.renderer,Pe=this.ticks,Ie=Pe[Object.keys(Pe)[0]]||{};return this.chart.renderer.fontMetrics(Ie.label||Ie.movedLabel||Ee.box)}unsquish(){let Ee=this.options.labels,Pe=Ee.padding||0,Ie=this.horiz,Fe=this.tickInterval,fe=this.len/(((this.categories?1:0)+this.max-this.min)/Fe),ae=Ee.rotation,ue=ie(.8*this.labelMetrics().h),xe=Math.max(this.max-this.min,0),Ae=function(Ze){let Ge=(Ze+2*Pe)/(fe||1);return(Ge=Ge>1?Math.ceil(Ge):1)*Fe>xe&&Ze!==1/0&&fe!==1/0&&xe&&(Ge=Math.ceil(xe/Fe)),ie(Ge*Fe)},De=Fe,ze,je=Number.MAX_VALUE,Ke;if(Ie){if(!Ee.staggerLines&&(N(ae)?Ke=[ae]:fe=-90&&Ne<=90)&&(Ge=(Ze=Ae(Math.abs(ue/Math.sin($*Ne))))+Math.abs(Ne/360))Ge&&(Ge=Qe.label.textPxLength)}),this.maxLabelLength=Ge,this.autoRotation)Ge>Ae&&Ge>ze.h?De.rotation=this.labelRotation:this.labelRotation=0;else if(xe&&(Ke=Ae,!je))for(Ze="clip",We=Ie.length;!ue&&We--;)(Ne=Fe[Ie[We]].label)&&(Ne.styles.textOverflow==="ellipsis"?Ne.css({textOverflow:"clip"}):Ne.textPxLength>xe&&Ne.css({width:xe+"px"}),Ne.getBBox().height>this.len/Ie.length-(ze.h-ze.f)&&(Ne.specificTextOverflow="ellipsis"));De.rotation&&(Ke=Ge>.5*Ee.chartHeight?.33*Ee.chartHeight:Ge,je||(Ze="ellipsis")),this.labelAlign=fe.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(De.align=this.labelAlign),Ie.forEach(function(Ye){let Qe=Fe[Ye],Le=Qe&&Qe.label,ye=ae.width,we={};Le&&(Le.attr(De),Qe.shortenLabel?Qe.shortenLabel():Ke&&!ye&&ae.whiteSpace!=="nowrap"&&(Kefe.g(ue).attr({zIndex:Ae}).addClass(`highcharts-${Ie.toLowerCase()}${xe} `+(this.isRadial?`highcharts-radial-axis${xe} `:"")+(Fe.className||"")).add(Ee);this.axisGroup||(this.gridGroup=ae("grid","-grid",Fe.gridZIndex),this.axisGroup=ae("axis","",Fe.zIndex),this.labelGroup=ae("axis-labels","-labels",Fe.labels.zIndex))}getOffset(){let Ee=this,{chart:Pe,horiz:Ie,options:Fe,side:fe,ticks:ae,tickPositions:ue,coll:xe}=Ee,Ae=Pe.inverted&&!Ee.isZAxis?[1,0,3,2][fe]:fe,De=Ee.hasData(),ze=Fe.title,je=Fe.labels,Ke=N(Fe.crossing),Ze=Pe.axisOffset,Ge=Pe.clipOffset,Ne=[-1,1,1,-1][fe],We,Ye=0,Qe,Le=0,ye=0,we,Ve;if(Ee.showAxis=We=De||Fe.showEmpty,Ee.staggerLines=Ee.horiz&&je.staggerLines||void 0,Ee.createGroups(),De||Ee.isLinked?(ue.forEach(function(Xe){Ee.generateTick(Xe)}),Ee.renderUnsquish(),Ee.reserveSpaceDefault=fe===0||fe===2||{1:"left",3:"right"}[fe]===Ee.labelAlign,be(je.reserveSpace,!Ke&&null,Ee.labelAlign==="center"||null,Ee.reserveSpaceDefault)&&ue.forEach(function(Xe){ye=Math.max(ae[Xe].getLabelSize(),ye)}),Ee.staggerLines&&(ye*=Ee.staggerLines),Ee.labelOffset=ye*(Ee.opposite?-1:1)):he(ae,function(Xe,nt){Xe.destroy(),delete ae[nt]}),ze?.text&&ze.enabled!==!1&&(Ee.addTitle(We),We&&!Ke&&ze.reserveSpace!==!1&&(Ee.titleOffset=Ye=Ee.axisTitle.getBBox()[Ie?"height":"width"],Le=ne(Qe=ze.offset)?0:be(ze.margin,Ie?5:10))),Ee.renderLine(),Ee.offset=Ne*be(Fe.offset,Ze[fe]?Ze[fe]+(Fe.margin||0):0),Ee.tickRotCorr=Ee.tickRotCorr||{x:0,y:0},Ve=fe===0?-Ee.labelMetrics().h:fe===2?Ee.tickRotCorr.y:0,we=Math.abs(ye)+Le,ye&&(we-=Ve,we+=Ne*(Ie?be(je.y,Ee.tickRotCorr.y+Ne*je.distance):be(je.x,Ne*je.distance))),Ee.axisTitleMargin=be(Qe,we),Ee.getMaxLabelDimensions&&(Ee.maxLabelDimensions=Ee.getMaxLabelDimensions(ae,ue)),xe!=="colorAxis"&&Ge){let Xe=this.tickSize("tick");Ze[fe]=Math.max(Ze[fe],(Ee.axisTitleMargin||0)+Ye+Ne*Ee.offset,we,ue&&ue.length&&Xe?Xe[0]+Ne*Ee.offset:0);let nt=!Ee.axisLine||Fe.offset?0:Ee.axisLine.strokeWidth()/2;Ge[Ae]=Math.max(Ge[Ae],nt)}de(this,"afterGetOffset")}getLinePath(Ee){let Pe=this.chart,Ie=this.opposite,Fe=this.offset,fe=this.horiz,ae=this.left+(Ie?this.width:0)+Fe,ue=Pe.chartHeight-this.bottom-(Ie?this.height:0)+Fe;return Ie&&(Ee*=-1),Pe.renderer.crispLine([["M",fe?this.left:ae,fe?ue:this.top],["L",fe?Pe.chartWidth-this.right:ae,fe?ue:Pe.chartHeight-this.bottom]],Ee)}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(Ee){let Pe=this.horiz,Ie=this.left,Fe=this.top,fe=this.len,ae=this.options.title,ue=Pe?Ie:Fe,xe=this.opposite,Ae=this.offset,De=ae.x,ze=ae.y,je=this.chart.renderer.fontMetrics(Ee),Ke=Ee?Math.max(Ee.getBBox(!1,0).height-je.h-1,0):0,Ze={low:ue+(Pe?0:fe),middle:ue+fe/2,high:ue+(Pe?fe:0)}[ae.align],Ge=(Pe?Fe+this.height:Ie)+(Pe?1:-1)*(xe?-1:1)*(this.axisTitleMargin||0)+[-Ke,Ke,je.f,-Ke][this.side],Ne={x:Pe?Ze+De:Ge+(xe?this.width:0)+Ae+De,y:Pe?Ge+ze-(xe?this.height:0)+Ae:Ze+ze};return de(this,"afterGetTitlePosition",{titlePosition:Ne}),Ne}renderMinorTick(Ee,Pe){let Ie=this.minorTicks;Ie[Ee]||(Ie[Ee]=new _(this,Ee,"minor")),Pe&&Ie[Ee].isNew&&Ie[Ee].render(null,!0),Ie[Ee].render(null,!1,1)}renderTick(Ee,Pe,Ie){let Fe=this.isLinked,fe=this.ticks;(!Fe||Ee>=this.min&&Ee<=this.max||this.grid&&this.grid.isColumn)&&(fe[Ee]||(fe[Ee]=new _(this,Ee)),Ie&&fe[Ee].isNew&&fe[Ee].render(Pe,!0,-1),fe[Ee].render(Pe))}render(){let Ee,Pe,Ie=this,Fe=Ie.chart,fe=Ie.logarithmic,ae=Fe.renderer,ue=Ie.options,xe=Ie.isLinked,Ae=Ie.tickPositions,De=Ie.axisTitle,ze=Ie.ticks,je=Ie.minorTicks,Ke=Ie.alternateBands,Ze=ue.stackLabels,Ge=ue.alternateGridColor,Ne=ue.crossing,We=Ie.tickmarkOffset,Ye=Ie.axisLine,Qe=Ie.showAxis,Le=S(ae.globalAnimation);if(Ie.labelEdge.length=0,Ie.overlap=!1,[ze,je,Ke].forEach(function(ye){he(ye,function(we){we.isActive=!1})}),N(Ne)){let ye=this.isXAxis?Fe.yAxis[0]:Fe.xAxis[0],we=[1,-1,-1,1][this.side];if(ye){let Ve=ye.toPixels(Ne,!0);Ie.horiz&&(Ve=ye.len-Ve),Ie.offset=we*Ve}}if(Ie.hasData()||xe){let ye=Ie.chart.hasRendered&&Ie.old&&N(Ie.old.min);Ie.minorTickInterval&&!Ie.categories&&Ie.getMinorTickPositions().forEach(function(we){Ie.renderMinorTick(we,ye)}),Ae.length&&(Ae.forEach(function(we,Ve){Ie.renderTick(we,Ve,ye)}),We&&(Ie.min===0||Ie.single)&&(ze[-1]||(ze[-1]=new _(Ie,-1,null,!0)),ze[-1].render(-1))),Ge&&Ae.forEach(function(we,Ve){Pe=Ae[Ve+1]!==void 0?Ae[Ve+1]+We:Ie.max-We,Ve%2==0&&we=.5)E=Math.round(E),ie=I.getLinearTickPositions(E,T,D);else if(E>=.08){let ne,le,me,_e,ge,de,ve,pe=Math.floor(T);for(ne=E>.3?[1,2,4]:E>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],le=pe;leT&&(!$||de<=D)&&de!==void 0&&ie.push(de),de>D&&(ve=!0),de=ge}else{let ne=this.lin2log(T),le=this.lin2log(D),me=$?I.getMinorTickInterval():se.tickInterval,_e=se.tickPixelInterval/($?5:1),ge=$?H/I.tickPositions.length:H;E=c(E=u(me==="auto"?null:me,this.minorAutoInterval,(le-ne)*_e/(ge||1))),ie=I.getLinearTickPositions(E,ne,le).map(this.log2lin),$||(this.minorAutoInterval=E/5)}return $||(I.tickInterval=E),ie}lin2log(E){return Math.pow(10,E)}log2lin(E){return Math.log(E)/Math.LN10}}g.Additions=S}(a||(a={})),a}),n(r,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[r["Core/Utilities.js"]],function(o){var a;let{erase:l,extend:c,isNumber:u}=o;return function(g){let _;function x(I){return this.addPlotBandOrLine(I,"plotBands")}function S(I,H){let se=this.userOptions,ie=new _(this,I);if(this.visible&&(ie=ie.render()),ie){if(this._addedPlotLB||(this._addedPlotLB=!0,(se.plotLines||[]).concat(se.plotBands||[]).forEach(ne=>{this.addPlotBandOrLine(ne)})),H){let ne=se[H]||[];ne.push(I),se[H]=ne}this.plotLinesAndBands.push(ie)}return ie}function O(I){return this.addPlotBandOrLine(I,"plotLines")}function E(I,H,se){se=se||this.options;let ie=this.getPlotLinePath({value:H,force:!0,acrossPanes:se.acrossPanes}),ne=[],le=this.horiz,me=!u(this.min)||!u(this.max)||Ithis.max&&H>this.max,_e=this.getPlotLinePath({value:I,force:!0,acrossPanes:se.acrossPanes}),ge,de=1,ve;if(_e&&ie)for(me&&(ve=_e.toString()===ie.toString(),de=0),ge=0;ge<_e.length;ge+=2){let pe=_e[ge],te=_e[ge+1],N=ie[ge],B=ie[ge+1];(pe[0]==="M"||pe[0]==="L")&&(te[0]==="M"||te[0]==="L")&&(N[0]==="M"||N[0]==="L")&&(B[0]==="M"||B[0]==="L")&&(le&&N[1]===pe[1]?(N[1]+=de,B[1]+=de):le||N[2]!==pe[2]||(N[2]+=de,B[2]+=de),ne.push(["M",pe[1],pe[2]],["L",te[1],te[2]],["L",B[1],B[2]],["L",N[1],N[2]],["Z"])),ne.isFlat=ve}return ne}function T(I){this.removePlotBandOrLine(I)}function D(I){let H=this.plotLinesAndBands,se=this.options,ie=this.userOptions;if(H){let ne=H.length;for(;ne--;)H[ne].id===I&&H[ne].destroy();[se.plotLines||[],ie.plotLines||[],se.plotBands||[],ie.plotBands||[]].forEach(function(le){for(ne=le.length;ne--;)(le[ne]||{}).id===I&&l(le,le[ne])})}}function $(I){this.removePlotBandOrLine(I)}g.compose=function(I,H){let se=H.prototype;return se.addPlotBand||(_=I,c(se,{addPlotBand:x,addPlotLine:O,addPlotBandOrLine:S,getPlotBandPath:E,removePlotBand:T,removePlotLine:$,removePlotBandOrLine:D})),H}}(a||(a={})),a}),n(r,"Core/Axis/PlotLineOrBand/PlotLineOrBand.js",[r["Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js"],r["Core/Utilities.js"]],function(o,a){let{arrayMax:l,arrayMin:c,defined:u,destroyObjectProperties:g,erase:_,fireEvent:x,merge:S,objectEach:O,pick:E}=a;class T{static compose($){return o.compose(T,$)}constructor($,I){this.axis=$,this.options=I,this.id=I.id}render(){x(this,"render");let{axis:$,options:I}=this,{horiz:H,logarithmic:se}=$,{color:ie,events:ne,zIndex:le=0}=I,me={},_e=$.chart.renderer,ge=I.to,de=I.from,ve=I.value,pe=I.borderWidth,te=I.label,{label:N,svgElem:B}=this,ee=[],oe,he=u(de)&&u(ge),be=u(ve),Ce=!B,Oe={class:"highcharts-plot-"+(he?"band ":"line ")+(I.className||"")},Se=he?"bands":"lines";if(!$.chart.styledMode&&(be?(Oe.stroke=ie||"#999999",Oe["stroke-width"]=E(I.width,1),I.dashStyle&&(Oe.dashstyle=I.dashStyle)):he&&(Oe.fill=ie||"#e6e9ff",pe&&(Oe.stroke=I.borderColor,Oe["stroke-width"]=pe))),me.zIndex=le,Se+="-"+le,(oe=$.plotLinesAndBandsGroups[Se])||($.plotLinesAndBandsGroups[Se]=oe=_e.g("plot-"+Se).attr(me).add()),B||(this.svgElem=B=_e.path().attr(Oe).add(oe)),u(ve))ee=$.getPlotLinePath({value:se?.log2lin(ve)??ve,lineWidth:B.strokeWidth(),acrossPanes:I.acrossPanes});else{if(!(u(de)&&u(ge)))return;ee=$.getPlotBandPath(se?.log2lin(de)??de,se?.log2lin(ge)??ge,I)}return!this.eventsAdded&&ne&&(O(ne,($e,ke)=>{B?.on(ke,Re=>{ne[ke].apply(this,[Re])})}),this.eventsAdded=!0),(Ce||!B.d)&&ee?.length?B.attr({d:ee}):B&&(ee?(B.show(),B.animate({d:ee})):B.d&&(B.hide(),N&&(this.label=N=N.destroy()))),te&&(u(te.text)||u(te.formatter))&&ee?.length&&$.width>0&&$.height>0&&!ee.isFlat?(te=S({align:H&&he?"center":void 0,x:H?!he&&4:10,verticalAlign:!H&&he?"middle":void 0,y:H?he?16:10:he?6:-4,rotation:H&&!he?90:0},te),this.renderLabel(te,ee,he,le)):N&&N.hide(),this}renderLabel($,I,H,se){let ie=this.axis,ne=ie.chart.renderer,le=this.label;le||(this.label=le=ne.text(this.getLabelText($),0,0,$.useHTML).attr({align:$.textAlign||$.align,rotation:$.rotation,class:"highcharts-plot-"+(H?"band":"line")+"-label "+($.className||""),zIndex:se}),ie.chart.styledMode||le.css(S({fontSize:"0.8em",textOverflow:"ellipsis"},$.style)),le.add());let me=I.xBounds||[I[0][1],I[1][1],H?I[2][1]:I[0][1]],_e=I.yBounds||[I[0][2],I[1][2],H?I[2][2]:I[0][2]],ge=c(me),de=c(_e);if(le.align($,!1,{x:ge,y:de,width:l(me)-ge,height:l(_e)-de}),!le.alignValue||le.alignValue==="left"){let ve=$.clip?ie.width:ie.chart.chartWidth;le.css({width:(le.rotation===90?ie.height-(le.alignAttr.y-ie.top):ve-(le.alignAttr.x-ie.left))+"px"})}le.show(!0)}getLabelText($){return u($.formatter)?$.formatter.call(this):$.text}destroy(){_(this.axis.plotLinesAndBands,this),delete this.axis,g(this)}}return T}),n(r,"Core/Tooltip.js",[r["Core/Animation/AnimationUtilities.js"],r["Core/Templating.js"],r["Core/Globals.js"],r["Core/Renderer/RendererUtilities.js"],r["Core/Renderer/RendererRegistry.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g){var _;let{animObject:x}=o,{format:S}=a,{composed:O,doc:E,isSafari:T}=l,{distribute:D}=c,{addEvent:$,clamp:I,css:H,discardElement:se,extend:ie,fireEvent:ne,isArray:le,isNumber:me,isString:_e,merge:ge,pick:de,pushUnique:ve,splat:pe,syncTimeout:te}=g;class N{constructor(ee,oe,he){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=ee,this.init(ee,oe),this.pointer=he}bodyFormatter(ee){return ee.map(function(oe){let he=oe.series.tooltipOptions;return(he[(oe.point.formatPrefix||"point")+"Formatter"]||oe.point.tooltipFormatter).call(oe.point,he[(oe.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(ee){this.chart.series.forEach(function(oe){let he=oe&&oe.tt;he&&(!he.isActive||ee?oe.tt=he.destroy():he.isActive=!1)})}defaultFormatter(ee){let oe,he=this.points||pe(this);return(oe=(oe=[ee.tooltipFooterHeaderFormatter(he[0])]).concat(ee.bodyFormatter(he))).push(ee.tooltipFooterHeaderFormatter(he[0],!0)),oe}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(),se(this.container)),g.clearTimeout(this.hideTimer)}getAnchor(ee,oe){let he,{chart:be,pointer:Ce}=this,Oe=be.inverted,Se=be.plotTop,$e=be.plotLeft;if((ee=pe(ee))[0].series&&ee[0].series.yAxis&&!ee[0].series.yAxis.options.reversedStacks&&(ee=ee.slice().reverse()),this.followPointer&&oe)oe.chartX===void 0&&(oe=Ce.normalize(oe)),he=[oe.chartX-$e,oe.chartY-Se];else if(ee[0].tooltipPos)he=ee[0].tooltipPos;else{let ke=0,Re=0;ee.forEach(function(Be){let Ee=Be.pos(!0);Ee&&(ke+=Ee[0],Re+=Ee[1])}),ke/=ee.length,Re/=ee.length,this.shared&&ee.length>1&&oe&&(Oe?ke=oe.chartX:Re=oe.chartY),he=[ke-$e,Re-Se]}return he.map(Math.round)}getClassName(ee,oe,he){let be=this.options,Ce=ee.series,Oe=Ce.options;return[be.className,"highcharts-label",he&&"highcharts-tooltip-header",oe?"highcharts-tooltip-box":"highcharts-tooltip",!he&&"highcharts-color-"+de(ee.colorIndex,Ce.colorIndex),Oe&&Oe.className].filter(_e).join(" ")}getLabel(){let ee=this,oe=this.chart.styledMode,he=this.options,be=this.split&&this.allowShared,Ce=this.container,Oe=this.chart.renderer;if(this.label){let Se=!this.label.hasClass("highcharts-label");(!be&&Se||be&&!Se)&&this.destroy()}if(!this.label){if(this.outside){let Se=this.chart.options.chart.style,$e=u.getRendererType();this.container=Ce=l.doc.createElement("div"),Ce.className="highcharts-tooltip-container",H(Ce,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(Se&&Se.zIndex||0)+3)}),this.renderer=Oe=new $e(Ce,0,0,Se,void 0,void 0,Oe.styledMode)}if(be?this.label=Oe.g("tooltip"):(this.label=Oe.label("",0,0,he.shape,void 0,void 0,he.useHTML,void 0,"tooltip").attr({padding:he.padding,r:he.borderRadius}),oe||this.label.attr({fill:he.backgroundColor,"stroke-width":he.borderWidth||0}).css(he.style).css({pointerEvents:he.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),ee.outside){let Se=this.label;[Se.xSetter,Se.ySetter].forEach(($e,ke)=>{Se[ke?"ySetter":"xSetter"]=Re=>{$e.call(Se,ee.distance),Se[ke?"y":"x"]=Re,Ce&&(Ce.style[ke?"top":"left"]=`${Re}px`)}})}this.label.attr({zIndex:8}).shadow(he.shadow).add()}return Ce&&!Ce.parentElement&&l.doc.body.appendChild(Ce),this.label}getPlayingField(){let{body:ee,documentElement:oe}=E,{chart:he,distance:be,outside:Ce}=this;return{width:Ce?Math.max(ee.scrollWidth,oe.scrollWidth,ee.offsetWidth,oe.offsetWidth,oe.clientWidth)-2*be:he.chartWidth,height:Ce?Math.max(ee.scrollHeight,oe.scrollHeight,ee.offsetHeight,oe.offsetHeight,oe.clientHeight):he.chartHeight}}getPosition(ee,oe,he){let{distance:be,chart:Ce,outside:Oe,pointer:Se}=this,{inverted:$e,plotLeft:ke,plotTop:Re,polar:Be}=Ce,{plotX:Ee=0,plotY:Pe=0}=he,Ie={},Fe=$e&&he.h||0,{height:fe,width:ae}=this.getPlayingField(),ue=Se.getChartPosition(),xe=Le=>Le*ue.scaleX,Ae=Le=>Le*ue.scaleY,De=Le=>{let ye=Le==="x";return[Le,ye?ae:fe,ye?ee:oe].concat(Oe?[ye?xe(ee):Ae(oe),ye?ue.left-be+xe(Ee+ke):ue.top-be+Ae(Pe+Re),0,ye?ae:fe]:[ye?ee:oe,ye?Ee+ke:Pe+Re,ye?ke:Re,ye?ke+Ce.plotWidth:Re+Ce.plotHeight])},ze=De("y"),je=De("x"),Ke,Ze=!!he.negative;!Be&&Ce.hoverSeries?.yAxis?.reversed&&(Ze=!Ze);let Ge=!this.followPointer&&de(he.ttBelow,!Be&&!$e===Ze),Ne=function(Le,ye,we,Ve,Xe,nt,lt){let pt=Oe?Le==="y"?Ae(be):xe(be):be,_t=(we-Ve)/2,St=Veye?Nt:Nt+Fe)}},We=function(Le,ye,we,Ve,Xe){if(Xeye-be)return!1;Xeye-Ve/2?Ie[Le]=ye-Ve-2:Ie[Le]=Xe-we/2},Ye=function(Le){[ze,je]=[je,ze],Ke=Le},Qe=()=>{Ne.apply(0,ze)!==!1?We.apply(0,je)!==!1||Ke||(Ye(!0),Qe()):Ke?Ie.x=Ie.y=0:(Ye(!0),Qe())};return($e&&!Be||this.len>1)&&Ye(),Qe(),Ie}hide(ee){let oe=this;g.clearTimeout(this.hideTimer),ee=de(ee,this.options.hideDelay),this.isHidden||(this.hideTimer=te(function(){let he=oe.getLabel();oe.getLabel().animate({opacity:0},{duration:ee&&150,complete:()=>{he.hide(),oe.container&&oe.container.remove()}}),oe.isHidden=!0},ee))}init(ee,oe){this.chart=ee,this.options=oe,this.crosshairs=[],this.isHidden=!0,this.split=oe.split&&!ee.inverted&&!ee.polar,this.shared=oe.shared||this.split,this.outside=de(oe.outside,!!(ee.scrollablePixelsX||ee.scrollablePixelsY))}shouldStickOnContact(ee){return!!(!this.followPointer&&this.options.stickOnContact&&(!ee||this.pointer.inClass(ee.target,"highcharts-tooltip")))}move(ee,oe,he,be){let Ce=this,Oe=x(!Ce.isHidden&&Ce.options.animation),Se=Ce.followPointer||(Ce.len||0)>1,$e={x:ee,y:oe};Se||($e.anchorX=he,$e.anchorY=be),Oe.step=()=>Ce.drawTracker(),Ce.getLabel().animate($e,Oe)}refresh(ee,oe){let{chart:he,options:be,pointer:Ce,shared:Oe}=this,Se=pe(ee),$e=Se[0],ke=[],Re=be.format,Be=be.formatter||this.defaultFormatter,Ee=he.styledMode,Pe={};if(!be.enabled||!$e.series)return;g.clearTimeout(this.hideTimer),this.allowShared=!(!le(ee)&&ee.series&&ee.series.noSharedTooltip),this.followPointer=!this.split&&$e.series.tooltipOptions.followPointer;let Ie=this.getAnchor(ee,oe),Fe=Ie[0],fe=Ie[1];Oe&&this.allowShared?(Ce.applyInactiveState(Se),Se.forEach(function(xe){xe.setState("hover"),ke.push(xe.getLabelConfig())}),(Pe=$e.getLabelConfig()).points=ke):Pe=$e.getLabelConfig(),this.len=ke.length;let ae=_e(Re)?S(Re,Pe,he):Be.call(Pe,this),ue=$e.series;if(this.distance=de(ue.tooltipOptions.distance,16),ae===!1)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(ae,Se);else{let xe=Fe,Ae=fe;if(oe&&Ce.isDirectTouch&&(xe=oe.chartX-he.plotLeft,Ae=oe.chartY-he.plotTop),he.polar||ue.options.clip===!1||Se.some(De=>Ce.isDirectTouch||De.series.shouldShowTooltip(xe,Ae))){let De=this.getLabel();(!be.style.width||Ee)&&De.css({width:(this.outside?this.getPlayingField():he.spacingBox).width+"px"}),De.attr({text:ae&&ae.join?ae.join(""):ae}),De.addClass(this.getClassName($e),!0),Ee||De.attr({stroke:be.borderColor||$e.color||ue.color||"#666666"}),this.updatePosition({plotX:Fe,plotY:fe,negative:$e.negative,ttBelow:$e.ttBelow,h:Ie[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}ne(this,"refresh")}renderSplit(ee,oe){let he=this,{chart:be,chart:{chartWidth:Ce,chartHeight:Oe,plotHeight:Se,plotLeft:$e,plotTop:ke,scrollablePixelsY:Re=0,scrollablePixelsX:Be,styledMode:Ee},distance:Pe,options:Ie,options:{positioner:Fe},pointer:fe}=he,{scrollLeft:ae=0,scrollTop:ue=0}=be.scrollablePlotArea?.scrollingContainer||{},xe=he.outside&&typeof Be!="number"?E.documentElement.getBoundingClientRect():{left:ae,right:ae+Ce,top:ue,bottom:ue+Oe},Ae=he.getLabel(),De=this.renderer||be.renderer,ze=!!(be.xAxis[0]&&be.xAxis[0].opposite),{left:je,top:Ke}=fe.getChartPosition(),Ze=ke+ue,Ge=0,Ne=Se-Re;function We(Ve,Xe,nt,lt,pt=!0){let _t,St;return nt?(_t=ze?0:Ne,St=I(Ve-lt/2,xe.left,xe.right-lt-(he.outside?je:0))):(_t=Xe-Ze,St=I(St=pt?Ve-lt-Pe:Ve+Pe,pt?St:xe.left,xe.right)),{x:St,y:_t}}_e(ee)&&(ee=[!1,ee]);let Ye=ee.slice(0,oe.length+1).reduce(function(Ve,Xe,nt){if(Xe!==!1&&Xe!==""){let lt=oe[nt-1]||{isHeader:!0,plotX:oe[0].plotX,plotY:Se,series:{}},pt=lt.isHeader,_t=pt?he:lt.series,St=_t.tt=function(qt,Xt,mr){let nr=qt,{isHeader:ur,series:Mr}=Xt;if(!nr){let Pr={padding:Ie.padding,r:Ie.borderRadius};Ee||(Pr.fill=Ie.backgroundColor,Pr["stroke-width"]=Ie.borderWidth??1),nr=De.label("",0,0,Ie[ur?"headerShape":"shape"],void 0,void 0,Ie.useHTML).addClass(he.getClassName(Xt,!0,ur)).attr(Pr).add(Ae)}return nr.isActive=!0,nr.attr({text:mr}),Ee||nr.css(Ie.style).attr({stroke:Ie.borderColor||Xt.color||Mr.color||"#333333"}),nr}(_t.tt,lt,Xe.toString()),Et=St.getBBox(),bt=Et.width+St.strokeWidth();pt&&(Ge=Et.height,Ne+=Ge,ze&&(Ze-=Ge));let{anchorX:Nt,anchorY:Ft}=function(qt){let Xt,mr,{isHeader:nr,plotX:ur=0,plotY:Mr=0,series:Pr}=qt;if(nr)Xt=Math.max($e+ur,$e),mr=ke+Se/2;else{let{xAxis:fr,yAxis:hr}=Pr;Xt=fr.pos+I(ur,-Pe,fr.len+Pe),Pr.shouldShowTooltip(0,hr.pos-ke+Mr,{ignoreX:!0})&&(mr=hr.pos+Mr)}return{anchorX:Xt=I(Xt,xe.left-Pe,xe.right+Pe),anchorY:mr}}(lt);if(typeof Ft=="number"){let qt=Et.height+1,Xt=Fe?Fe.call(he,bt,qt,lt):We(Nt,Ft,pt,bt);Ve.push({align:Fe?0:void 0,anchorX:Nt,anchorY:Ft,boxWidth:bt,point:lt,rank:de(Xt.rank,pt?1:0),size:qt,target:Xt.y,tt:St,x:Xt.x})}else St.isActive=!1}return Ve},[]);!Fe&&Ye.some(Ve=>{let{outside:Xe}=he,nt=(Xe?je:0)+Ve.anchorX;return ntnt})&&(Ye=Ye.map(Ve=>{let{x:Xe,y:nt}=We(Ve.anchorX,Ve.anchorY,Ve.point.isHeader,Ve.boxWidth,!1);return ie(Ve,{target:nt,x:Xe})})),he.cleanSplit(),D(Ye,Ne);let Qe={left:je,right:je};Ye.forEach(function(Ve){let{x:Xe,boxWidth:nt,isHeader:lt}=Ve;!lt&&(he.outside&&je+XeQe.right&&(Qe.right=je+Xe))}),Ye.forEach(function(Ve){let{x:Xe,anchorX:nt,anchorY:lt,pos:pt,point:{isHeader:_t}}=Ve,St={visibility:pt===void 0?"hidden":"inherit",x:Xe,y:(pt||0)+Ze,anchorX:nt,anchorY:lt};if(he.outside&&Xe0&&(_t||(St.x=Xe+Et,St.anchorX=nt+Et),_t&&(St.x=(Qe.right-Qe.left)/2,St.anchorX=nt+Et))}Ve.tt.attr(St)});let{container:Le,outside:ye,renderer:we}=he;if(ye&&Le&&we){let{width:Ve,height:Xe,x:nt,y:lt}=Ae.getBBox();we.setSize(Ve+nt,Xe+lt,!1),Le.style.left=Qe.left+"px",Le.style.top=Ke+"px"}T&&Ae.attr({opacity:Ae.opacity===1?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let ee=this.chart,oe=this.label,he=this.shared?ee.hoverPoints:ee.hoverPoint;if(!oe||!he)return;let be={x:0,y:0,width:0,height:0},Ce=this.getAnchor(he),Oe=oe.getBBox();Ce[0]+=ee.plotLeft-(oe.translateX||0),Ce[1]+=ee.plotTop-(oe.translateY||0),be.x=Math.min(0,Ce[0]),be.y=Math.min(0,Ce[1]),be.width=Ce[0]<0?Math.max(Math.abs(Ce[0]),Oe.width-Ce[0]):Math.max(Math.abs(Ce[0]),Oe.width),be.height=Ce[1]<0?Math.max(Math.abs(Ce[1]),Oe.height-Math.abs(Ce[1])):Math.max(Math.abs(Ce[1]),Oe.height),this.tracker?this.tracker.attr(be):(this.tracker=oe.renderer.rect(be).addClass("highcharts-tracker").add(oe),ee.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(ee){return ee.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(ee,oe){let he=ee.series,be=he.tooltipOptions,Ce=he.xAxis,Oe=Ce&&Ce.dateTime,Se={isFooter:oe,labelConfig:ee},$e=be.xDateFormat,ke=be[oe?"footerFormat":"headerFormat"];return ne(this,"headerFormatter",Se,function(Re){Oe&&!$e&&me(ee.key)&&($e=Oe.getXDateFormat(ee.key,be.dateTimeLabelFormats)),Oe&&$e&&(ee.point&&ee.point.tooltipDateKeys||["key"]).forEach(function(Be){ke=ke.replace("{point."+Be+"}","{point."+Be+":"+$e+"}")}),he.chart.styledMode&&(ke=this.styledModeFormat(ke)),Re.text=S(ke,{point:ee,series:he},this.chart)}),Se.text}update(ee){this.destroy(),this.init(this.chart,ge(!0,this.options,ee))}updatePosition(ee){let{chart:oe,container:he,distance:be,options:Ce,pointer:Oe,renderer:Se}=this,{height:$e=0,width:ke=0}=this.getLabel(),{left:Re,top:Be,scaleX:Ee,scaleY:Pe}=Oe.getChartPosition(),Ie=(Ce.positioner||this.getPosition).call(this,ke,$e,ee),Fe=(ee.plotX||0)+oe.plotLeft,fe=(ee.plotY||0)+oe.plotTop,ae;Se&&he&&(Ce.positioner&&(Ie.x+=Re-be,Ie.y+=Be-be),ae=(Ce.borderWidth||0)+2*be+2,Se.setSize(ke+ae,$e+ae,!1),(Ee!==1||Pe!==1)&&(H(he,{transform:`scale(${Ee}, ${Pe})`}),Fe*=Ee,fe*=Pe),Fe+=Re-Ie.x,fe+=Be-Ie.y),this.move(Math.round(Ie.x),Math.round(Ie.y||0),Fe,fe)}}return(_=N||(N={})).compose=function(B){ve(O,"Core.Tooltip")&&$(B,"afterInit",function(){let ee=this.chart;ee.options.tooltip&&(ee.tooltip=new _(ee,ee.options.tooltip,this))})},N}),n(r,"Core/Series/Point.js",[r["Core/Renderer/HTML/AST.js"],r["Core/Animation/AnimationUtilities.js"],r["Core/Defaults.js"],r["Core/Templating.js"],r["Core/Utilities.js"]],function(o,a,l,c,u){let{animObject:g}=a,{defaultOptions:_}=l,{format:x}=c,{addEvent:S,crisp:O,erase:E,extend:T,fireEvent:D,getNestedProperty:$,isArray:I,isFunction:H,isNumber:se,isObject:ie,merge:ne,pick:le,syncTimeout:me,removeEvent:_e,uniqueKey:ge}=u;class de{animateBeforeDestroy(){let pe=this,te={x:pe.startXPos,opacity:0},N=pe.getGraphicalProps();N.singular.forEach(function(B){pe[B]=pe[B].animate(B==="dataLabel"?{x:pe[B].startXPos,y:pe[B].startYPos,opacity:0}:te)}),N.plural.forEach(function(B){pe[B].forEach(function(ee){ee.element&&ee.animate(T({x:pe.startXPos},ee.startYPos?{x:ee.startXPos,y:ee.startYPos}:{}))})})}applyOptions(pe,te){let N=this.series,B=N.options.pointValKey||N.pointValKey;return T(this,pe=de.prototype.optionsToObject.call(this,pe)),this.options=this.options?T(this.options,pe):pe,pe.group&&delete this.group,pe.dataLabels&&delete this.dataLabels,B&&(this.y=de.prototype.getNestedProperty.call(this,B)),this.selected&&(this.state="select"),"name"in this&&te===void 0&&N.xAxis&&N.xAxis.hasNames&&(this.x=N.xAxis.nameToX(this)),this.x===void 0&&N?te===void 0?this.x=N.autoIncrement():this.x=te:se(pe.x)&&N.options.relativeXValue&&(this.x=N.autoIncrement(pe.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let pe=this,te=pe.series,N=te.chart,B=te.options.dataSorting,ee=N.hoverPoints,oe=g(pe.series.chart.renderer.globalAnimation),he=()=>{for(let be in(pe.graphic||pe.graphics||pe.dataLabel||pe.dataLabels)&&(_e(pe),pe.destroyElements()),pe)delete pe[be]};pe.legendItem&&N.legend.destroyItem(pe),ee&&(pe.setState(),E(ee,pe),ee.length||(N.hoverPoints=null)),pe===N.hoverPoint&&pe.onMouseOut(),B&&B.enabled?(this.animateBeforeDestroy(),me(he,oe.duration)):he(),N.pointCount--}this.destroyed=!0}destroyElements(pe){let te=this,N=te.getGraphicalProps(pe);N.singular.forEach(function(B){te[B]=te[B].destroy()}),N.plural.forEach(function(B){te[B].forEach(function(ee){ee&&ee.element&&ee.destroy()}),delete te[B]})}firePointEvent(pe,te,N){let B=this,ee=this.series.options;B.manageEvent(pe),pe==="click"&&ee.allowPointSelect&&(N=function(oe){!B.destroyed&&B.select&&B.select(null,oe.ctrlKey||oe.metaKey||oe.shiftKey)}),D(B,pe,te,N)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(this.colorIndex!==void 0?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(pe){let te,N,B=this,ee=[],oe={singular:[],plural:[]};for((pe=pe||{graphic:1,dataLabel:1}).graphic&&ee.push("graphic","connector"),pe.dataLabel&&ee.push("dataLabel","dataLabelPath","dataLabelUpper"),N=ee.length;N--;)B[te=ee[N]]&&oe.singular.push(te);return["graphic","dataLabel"].forEach(function(he){let be=he+"s";pe[he]&&B[be]&&oe.plural.push(be)}),oe}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(pe){return pe?pe.indexOf("custom.")===0?$(pe,this.options):this[pe]:void 0}getZone(){let pe=this.series,te=pe.zones,N=pe.zoneAxis||"y",B,ee=0;for(B=te[0];this[N]>=B.value;)B=te[++ee];return this.nonZonedColor||(this.nonZonedColor=this.color),B&&B.color&&!this.options.color?this.color=B.color:this.color=this.nonZonedColor,B}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(pe,te,N){this.formatPrefix="point",this.visible=!0,this.series=pe,this.applyOptions(te,N),this.id??(this.id=ge()),this.resolveColor(),pe.chart.pointCount++,D(this,"afterInit")}isValid(){return(se(this.x)||this.x instanceof Date)&&se(this.y)}optionsToObject(pe){let te=this.series,N=te.options.keys,B=N||te.pointArrayMap||["y"],ee=B.length,oe={},he,be=0,Ce=0;if(se(pe)||pe===null)oe[B[0]]=pe;else if(I(pe))for(!N&&pe.length>ee&&((he=typeof pe[0])=="string"?oe.name=pe[0]:he==="number"&&(oe.x=pe[0]),be++);Ce0?de.prototype.setNestedProperty(oe,pe[be],B[Ce]):oe[B[Ce]]=pe[be]),be++,Ce++;else typeof pe=="object"&&(oe=pe,pe.dataLabels&&(te.hasDataLabels=()=>!0),pe.marker&&(te._hasPointMarkers=!0));return oe}pos(pe,te=this.plotY){if(!this.destroyed){let{plotX:N,series:B}=this,{chart:ee,xAxis:oe,yAxis:he}=B,be=0,Ce=0;if(se(N)&&se(te))return pe&&(be=oe?oe.pos:ee.plotLeft,Ce=he?he.pos:ee.plotTop),ee.inverted&&oe&&he?[he.len-te+Ce,oe.len-N+be]:[N+be,te+Ce]}}resolveColor(){let pe=this.series,te=pe.chart.options.chart,N=pe.chart.styledMode,B,ee,oe=te.colorCount,he;delete this.nonZonedColor,pe.options.colorByPoint?(N||(B=(ee=pe.options.colors||pe.chart.options.colors)[pe.colorCounter],oe=ee.length),he=pe.colorCounter,pe.colorCounter++,pe.colorCounter===oe&&(pe.colorCounter=0)):(N||(B=pe.color),he=pe.colorIndex),this.colorIndex=le(this.options.colorIndex,he),this.color=le(this.options.color,B)}setNestedProperty(pe,te,N){return N.split(".").reduce(function(B,ee,oe,he){let be=he.length-1===oe;return B[ee]=be?te:ie(B[ee],!0)?B[ee]:{},B[ee]},pe),pe}shouldDraw(){return!this.isNull}tooltipFormatter(pe){let te=this.series,N=te.tooltipOptions,B=le(N.valueDecimals,""),ee=N.valuePrefix||"",oe=N.valueSuffix||"";return te.chart.styledMode&&(pe=te.chart.tooltip.styledModeFormat(pe)),(te.pointArrayMap||["y"]).forEach(function(he){he="{point."+he,(ee||oe)&&(pe=pe.replace(RegExp(he+"}","g"),ee+he+"}"+oe)),pe=pe.replace(RegExp(he+"}","g"),he+":,."+B+"f}")}),x(pe,{point:this,series:this.series},te.chart)}update(pe,te,N,B){let ee,oe=this,he=oe.series,be=oe.graphic,Ce=he.chart,Oe=he.options;function Se(){oe.applyOptions(pe);let $e=be&&oe.hasMockGraphic,ke=oe.y===null?!$e:$e;be&&ke&&(oe.graphic=be.destroy(),delete oe.hasMockGraphic),ie(pe,!0)&&(be&&be.element&&pe&&pe.marker&&pe.marker.symbol!==void 0&&(oe.graphic=be.destroy()),pe?.dataLabels&&oe.dataLabel&&(oe.dataLabel=oe.dataLabel.destroy())),ee=oe.index,he.updateParallelArrays(oe,ee),Oe.data[ee]=ie(Oe.data[ee],!0)||ie(pe,!0)?oe.options:le(pe,Oe.data[ee]),he.isDirty=he.isDirtyData=!0,!he.fixedBox&&he.hasCartesianSeries&&(Ce.isDirtyBox=!0),Oe.legendType==="point"&&(Ce.isDirtyLegend=!0),te&&Ce.redraw(N)}te=le(te,!0),B===!1?Se():oe.firePointEvent("update",{options:pe},Se)}remove(pe,te){this.series.removePoint(this.series.data.indexOf(this),pe,te)}select(pe,te){let N=this,B=N.series,ee=B.chart;pe=le(pe,!N.selected),this.selectedStaging=pe,N.firePointEvent(pe?"select":"unselect",{accumulate:te},function(){N.selected=N.options.selected=pe,B.options.data[B.data.indexOf(N)]=N.options,N.setState(pe&&"select"),te||ee.getSelectedPoints().forEach(function(oe){let he=oe.series;oe.selected&&oe!==N&&(oe.selected=oe.options.selected=!1,he.options.data[he.data.indexOf(oe)]=oe.options,oe.setState(ee.hoverPoints&&he.options.inactiveOtherPoints?"inactive":""),oe.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(pe){let{inverted:te,pointer:N}=this.series.chart;N&&(pe=pe?N.normalize(pe):N.getChartCoordinatesFromPoint(this,te),N.runPointActions(pe,this))}onMouseOut(){let pe=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(pe.hoverPoints||[]).forEach(function(te){te.setState()}),pe.hoverPoints=pe.hoverPoint=null}manageEvent(pe){let te=ne(this.series.options.point,this.options),N=te.events?.[pe];H(N)&&(!this.hcEvents?.[pe]||this.hcEvents?.[pe]?.map(B=>B.fn).indexOf(N)===-1)?(S(this,pe,N),this.hasImportedEvents=!0):this.hasImportedEvents&&!N&&this.hcEvents?.[pe]&&(_e(this,pe),delete this.hcEvents[pe],Object.keys(this.hcEvents)||(this.hasImportedEvents=!1))}setState(pe,te){let N=this.series,B=this.state,ee=N.options.states[pe||"normal"]||{},oe=_.plotOptions[N.type].marker&&N.options.marker,he=oe&&oe.enabled===!1,be=oe&&oe.states&&oe.states[pe||"normal"]||{},Ce=be.enabled===!1,Oe=this.marker||{},Se=N.chart,$e=oe&&N.markerAttribs,ke=N.halo,Re,Be,Ee,Pe=N.stateMarkerGraphic,Ie;if((pe=pe||"")===this.state&&!te||this.selected&&pe!=="select"||ee.enabled===!1||pe&&(Ce||he&&be.enabled===!1)||pe&&Oe.states&&Oe.states[pe]&&Oe.states[pe].enabled===!1)return;if(this.state=pe,$e&&(Re=N.markerAttribs(this,pe)),this.graphic&&!this.hasMockGraphic){if(B&&this.graphic.removeClass("highcharts-point-"+B),pe&&this.graphic.addClass("highcharts-point-"+pe),!Se.styledMode){Be=N.pointAttribs(this,pe),Ee=le(Se.options.chart.animation,ee.animation);let ue=Be.opacity;N.options.inactiveOtherPoints&&se(ue)&&(this.dataLabels||[]).forEach(function(xe){xe&&!xe.hasClass("highcharts-data-label-hidden")&&(xe.animate({opacity:ue},Ee),xe.connector&&xe.connector.animate({opacity:ue},Ee))}),this.graphic.animate(Be,Ee)}Re&&this.graphic.animate(Re,le(Se.options.chart.animation,be.animation,oe.animation)),Pe&&Pe.hide()}else pe&&be&&(Ie=Oe.symbol||N.symbol,Pe&&Pe.currentSymbol!==Ie&&(Pe=Pe.destroy()),Re&&(Pe?Pe[te?"animate":"attr"]({x:Re.x,y:Re.y}):Ie&&(N.stateMarkerGraphic=Pe=Se.renderer.symbol(Ie,Re.x,Re.y,Re.width,Re.height).add(N.markerGroup),Pe.currentSymbol=Ie)),!Se.styledMode&&Pe&&this.state!=="inactive"&&Pe.attr(N.pointAttribs(this,pe))),Pe&&(Pe[pe&&this.isInside?"show":"hide"](),Pe.element.point=this,Pe.addClass(this.getClassName(),!0));let Fe=ee.halo,fe=this.graphic||Pe,ae=fe&&fe.visibility||"inherit";Fe&&Fe.size&&fe&&ae!=="hidden"&&!this.isCluster?(ke||(N.halo=ke=Se.renderer.path().add(fe.parentGroup)),ke.show()[te?"animate":"attr"]({d:this.haloPath(Fe.size)}),ke.attr({class:"highcharts-halo highcharts-color-"+le(this.colorIndex,N.colorIndex)+(this.className?" "+this.className:""),visibility:ae,zIndex:-1}),ke.point=this,Se.styledMode||ke.attr(T({fill:this.color||N.color,"fill-opacity":Fe.opacity},o.filterUserAttributes(Fe.attributes||{})))):ke?.point?.haloPath&&!ke.point.destroyed&&ke.animate({d:ke.point.haloPath(0)},null,ke.hide),D(this,"afterSetState",{state:pe})}haloPath(pe){let te=this.pos();return te?this.series.chart.renderer.symbols.circle(O(te[0],1)-pe,te[1]-pe,2*pe,2*pe):[]}}return de}),n(r,"Core/Pointer.js",[r["Core/Color/Color.js"],r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a,l){var c;let{parse:u}=o,{charts:g,composed:_,isTouchDevice:x}=a,{addEvent:S,attr:O,css:E,extend:T,find:D,fireEvent:$,isNumber:I,isObject:H,objectEach:se,offset:ie,pick:ne,pushUnique:le,splat:me}=l;class _e{applyInactiveState(de){let ve=[],pe;(de||[]).forEach(function(te){pe=te.series,ve.push(pe),pe.linkedParent&&ve.push(pe.linkedParent),pe.linkedSeries&&(ve=ve.concat(pe.linkedSeries)),pe.navigatorSeries&&ve.push(pe.navigatorSeries)}),this.chart.series.forEach(function(te){ve.indexOf(te)===-1?te.setState("inactive",!0):te.options.inactiveOtherPoints&&te.setAllPointsToState("inactive")})}destroy(){let de=this;this.eventsToUnbind.forEach(ve=>ve()),this.eventsToUnbind=[],!a.chartCount&&(_e.unbindDocumentMouseUp&&(_e.unbindDocumentMouseUp=_e.unbindDocumentMouseUp()),_e.unbindDocumentTouchEnd&&(_e.unbindDocumentTouchEnd=_e.unbindDocumentTouchEnd())),clearInterval(de.tooltipTimeout),se(de,function(ve,pe){de[pe]=void 0})}getSelectionMarkerAttrs(de,ve){let pe={args:{chartX:de,chartY:ve},attrs:{},shapeType:"rect"};return $(this,"getSelectionMarkerAttrs",pe,te=>{let N,{chart:B,zoomHor:ee,zoomVert:oe}=this,{mouseDownX:he=0,mouseDownY:be=0}=B,Ce=te.attrs;Ce.x=B.plotLeft,Ce.y=B.plotTop,Ce.width=ee?1:B.plotWidth,Ce.height=oe?1:B.plotHeight,ee&&(N=de-he,Ce.width=Math.max(1,Math.abs(N)),Ce.x=(N>0?0:N)+he),oe&&(N=ve-be,Ce.height=Math.max(1,Math.abs(N)),Ce.y=(N>0?0:N)+be)}),pe}drag(de){let{chart:ve}=this,{mouseDownX:pe=0,mouseDownY:te=0}=ve,{panning:N,panKey:B,selectionMarkerFill:ee}=ve.options.chart,oe=ve.plotLeft,he=ve.plotTop,be=ve.plotWidth,Ce=ve.plotHeight,Oe=H(N)?N.enabled:N,Se=B&&de[`${B}Key`],$e=de.chartX,ke=de.chartY,Re,Be=this.selectionMarker;if((!Be||!Be.touch)&&($eoe+be&&($e=oe+be),kehe+Ce&&(ke=he+Ce),this.hasDragged=Math.sqrt(Math.pow(pe-$e,2)+Math.pow(te-ke,2)),this.hasDragged>10)){Re=ve.isInsidePlot(pe-oe,te-he,{visiblePlotOnly:!0});let{shapeType:Ee,attrs:Pe}=this.getSelectionMarkerAttrs($e,ke);(ve.hasCartesianSeries||ve.mapView)&&this.hasZoom&&Re&&!Se&&!Be&&(this.selectionMarker=Be=ve.renderer[Ee](),Be.attr({class:"highcharts-selection-marker",zIndex:7}).add(),ve.styledMode||Be.attr({fill:ee||u("#334eff").setOpacity(.25).get()})),Be&&Be.attr(Pe),Re&&!Be&&Oe&&ve.pan(de,N)}}dragStart(de){let ve=this.chart;ve.mouseIsDown=de.type,ve.cancelClick=!1,ve.mouseDownX=de.chartX,ve.mouseDownY=de.chartY}getSelectionBox(de){let ve={args:{marker:de},result:de.getBBox()};return $(this,"getSelectionBox",ve),ve.result}drop(de){let ve,{chart:pe,selectionMarker:te}=this;for(let N of pe.axes)N.isPanning&&(N.isPanning=!1,(N.options.startOnTick||N.options.endOnTick||N.series.some(B=>B.boosted))&&(N.forceRedraw=!0,N.setExtremes(N.userMin,N.userMax,!1),ve=!0));if(ve&&pe.redraw(),te&&de){if(this.hasDragged){let N=this.getSelectionBox(te);pe.transform({axes:pe.axes.filter(B=>B.zoomEnabled&&(B.coll==="xAxis"&&this.zoomX||B.coll==="yAxis"&&this.zoomY)),selection:{originalEvent:de,xAxis:[],yAxis:[],...N},from:N})}I(pe.index)&&(this.selectionMarker=te.destroy())}pe&&I(pe.index)&&(E(pe.container,{cursor:pe._cursor}),pe.cancelClick=this.hasDragged>10,pe.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(de,ve,pe){let te;return de.forEach(function(N){let B=!(N.noSharedTooltip&&ve)&&0>N.options.findNearestPointBy.indexOf("y"),ee=N.searchPoint(pe,B);H(ee,!0)&&ee.series&&(!H(te,!0)||function(oe,he){let be=oe.distX-he.distX,Ce=oe.dist-he.dist,Oe=he.series.group?.zIndex-oe.series.group?.zIndex;return be!==0&&ve?be:Ce!==0?Ce:Oe!==0?Oe:oe.series.index>he.series.index?-1:1}(te,ee)>0)&&(te=ee)}),te}getChartCoordinatesFromPoint(de,ve){let{xAxis:pe,yAxis:te}=de.series,N=de.shapeArgs;if(pe&&te){let B=de.clientX??de.plotX??0,ee=de.plotY||0;return de.isNode&&N&&I(N.x)&&I(N.y)&&(B=N.x,ee=N.y),ve?{chartX:te.len+te.pos-ee,chartY:pe.len+pe.pos-B}:{chartX:B+pe.pos,chartY:ee+te.pos}}if(N&&N.x&&N.y)return{chartX:N.x,chartY:N.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:de}=this.chart,ve=ie(de);this.chartPosition={left:ve.left,top:ve.top,scaleX:1,scaleY:1};let{offsetHeight:pe,offsetWidth:te}=de;return te>2&&pe>2&&(this.chartPosition.scaleX=ve.width/te,this.chartPosition.scaleY=ve.height/pe),this.chartPosition}getCoordinates(de){let ve={xAxis:[],yAxis:[]};for(let pe of this.chart.axes)ve[pe.isXAxis?"xAxis":"yAxis"].push({axis:pe,value:pe.toValue(de[pe.horiz?"chartX":"chartY"])});return ve}getHoverData(de,ve,pe,te,N,B){let ee=[],oe=function(Se){return Se.visible&&!(!N&&Se.directTouch)&&ne(Se.options.enableMouseTracking,!0)},he=ve,be,Ce={chartX:B?B.chartX:void 0,chartY:B?B.chartY:void 0,shared:N};$(this,"beforeGetHoverData",Ce),be=he&&!he.stickyTracking?[he]:pe.filter(Se=>Se.stickyTracking&&(Ce.filter||oe)(Se));let Oe=te&&de||!B?de:this.findNearestKDPoint(be,N,B);return he=Oe&&Oe.series,Oe&&(N&&!he.noSharedTooltip?(be=pe.filter(function(Se){return Ce.filter?Ce.filter(Se):oe(Se)&&!Se.noSharedTooltip})).forEach(function(Se){let $e=D(Se.points,function(ke){return ke.x===Oe.x&&!ke.isNull});H($e)&&(Se.boosted&&Se.boost&&($e=Se.boost.getPoint($e)),ee.push($e))}):ee.push(Oe)),$(this,"afterGetHoverData",Ce={hoverPoint:Oe}),{hoverPoint:Ce.hoverPoint,hoverSeries:he,hoverPoints:ee}}getPointFromEvent(de){let ve=de.target,pe;for(;ve&&!pe;)pe=ve.point,ve=ve.parentNode;return pe}onTrackerMouseOut(de){let ve=this.chart,pe=de.relatedTarget,te=ve.hoverSeries;this.isDirectTouch=!1,!te||!pe||te.stickyTracking||this.inClass(pe,"highcharts-tooltip")||this.inClass(pe,"highcharts-series-"+te.index)&&this.inClass(pe,"highcharts-tracker")||te.onMouseOut()}inClass(de,ve){let pe=de,te;for(;pe;){if(te=O(pe,"class")){if(te.indexOf(ve)!==-1)return!0;if(te.indexOf("highcharts-container")!==-1)return!1}pe=pe.parentElement}}constructor(de,ve){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=ve,this.chart=de,this.runChartClick=!!ve.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),$(this,"afterInit")}normalize(de,ve){let pe=de.touches,te=pe?pe.length?pe.item(0):ne(pe.changedTouches,de.changedTouches)[0]:de;ve||(ve=this.getChartPosition());let N=te.pageX-ve.left,B=te.pageY-ve.top;return T(de,{chartX:Math.round(N/=ve.scaleX),chartY:Math.round(B/=ve.scaleY)})}onContainerClick(de){let ve=this.chart,pe=ve.hoverPoint,te=this.normalize(de),N=ve.plotLeft,B=ve.plotTop;!ve.cancelClick&&(pe&&this.inClass(te.target,"highcharts-tracker")?($(pe.series,"click",T(te,{point:pe})),ve.hoverPoint&&pe.firePointEvent("click",te)):(T(te,this.getCoordinates(te)),ve.isInsidePlot(te.chartX-N,te.chartY-B,{visiblePlotOnly:!0})&&$(ve,"click",te)))}onContainerMouseDown(de){let ve=(1&(de.buttons||de.button))==1;de=this.normalize(de),a.isFirefox&&de.button!==0&&this.onContainerMouseMove(de),(de.button===void 0||ve)&&(this.zoomOption(de),ve&&de.preventDefault?.(),this.dragStart(de))}onContainerMouseLeave(de){let{pointer:ve}=g[ne(_e.hoverChartIndex,-1)]||{};de=this.normalize(de),this.onContainerMouseMove(de),ve&&de.relatedTarget&&!this.inClass(de.relatedTarget,"highcharts-tooltip")&&(ve.reset(),ve.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(de){let ve=this.chart,pe=ve.tooltip,te=this.normalize(de);this.setHoverChartIndex(de),(ve.mouseIsDown==="mousedown"||this.touchSelect(te))&&this.drag(te),!ve.openMenu&&(this.inClass(te.target,"highcharts-tracker")||ve.isInsidePlot(te.chartX-ve.plotLeft,te.chartY-ve.plotTop,{visiblePlotOnly:!0}))&&!(pe&&pe.shouldStickOnContact(te))&&(this.inClass(te.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(te))}onDocumentTouchEnd(de){this.onDocumentMouseUp(de)}onContainerTouchMove(de){this.touchSelect(de)?this.onContainerMouseMove(de):this.touch(de)}onContainerTouchStart(de){this.touchSelect(de)?this.onContainerMouseDown(de):(this.zoomOption(de),this.touch(de,!0))}onDocumentMouseMove(de){let ve=this.chart,pe=ve.tooltip,te=this.chartPosition,N=this.normalize(de,te);!te||ve.isInsidePlot(N.chartX-ve.plotLeft,N.chartY-ve.plotTop,{visiblePlotOnly:!0})||pe&&pe.shouldStickOnContact(N)||this.inClass(N.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(de){g[ne(_e.hoverChartIndex,-1)]?.pointer?.drop(de)}pinch(de){let ve=this,{chart:pe,hasZoom:te,lastTouches:N}=ve,B=[].map.call(de.touches||[],Ce=>ve.normalize(Ce)),ee=B.length,oe=ee===1&&(ve.inClass(de.target,"highcharts-tracker")&&pe.runTrackerClick||ve.runChartClick),he=pe.tooltip,be=ee===1&&ne(he?.options.followTouchMove,!0);ee>1?ve.initiated=!0:be&&(ve.initiated=!1),te&&ve.initiated&&!oe&&de.cancelable!==!1&&de.preventDefault(),de.type==="touchstart"?(ve.pinchDown=B,ve.res=!0):be?this.runPointActions(ve.normalize(de)):N&&($(pe,"touchpan",{originalEvent:de,touches:B},()=>{let Ce=Oe=>{let Se=Oe[0],$e=Oe[1]||Se;return{x:Se.chartX,y:Se.chartY,width:$e.chartX-Se.chartX,height:$e.chartY-Se.chartY}};pe.transform({axes:pe.axes.filter(Oe=>Oe.zoomEnabled&&(this.zoomHor&&Oe.horiz||this.zoomVert&&!Oe.horiz)),to:Ce(B),from:Ce(N),trigger:de.type})}),ve.res&&(ve.res=!1,this.reset(!1,0))),ve.lastTouches=B}reset(de,ve){let pe=this.chart,te=pe.hoverSeries,N=pe.hoverPoint,B=pe.hoverPoints,ee=pe.tooltip,oe=ee&&ee.shared?B:N;de&&oe&&me(oe).forEach(function(he){he.series.isCartesian&&he.plotX===void 0&&(de=!1)}),de?ee&&oe&&me(oe).length&&(ee.refresh(oe),ee.shared&&B?B.forEach(function(he){he.setState(he.state,!0),he.series.isCartesian&&(he.series.xAxis.crosshair&&he.series.xAxis.drawCrosshair(null,he),he.series.yAxis.crosshair&&he.series.yAxis.drawCrosshair(null,he))}):N&&(N.setState(N.state,!0),pe.axes.forEach(function(he){he.crosshair&&N.series[he.coll]===he&&he.drawCrosshair(null,N)}))):(N&&N.onMouseOut(),B&&B.forEach(function(he){he.setState()}),te&&te.onMouseOut(),ee&&ee.hide(ve),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),pe.axes.forEach(function(he){he.hideCrosshair()}),pe.hoverPoints=pe.hoverPoint=void 0)}runPointActions(de,ve,pe){let te=this.chart,N=te.series,B=te.tooltip&&te.tooltip.options.enabled?te.tooltip:void 0,ee=!!B&&B.shared,oe=ve||te.hoverPoint,he=oe&&oe.series||te.hoverSeries,be=(!de||de.type!=="touchmove")&&(!!ve||he&&he.directTouch&&this.isDirectTouch),Ce=this.getHoverData(oe,he,N,be,ee,de);oe=Ce.hoverPoint,he=Ce.hoverSeries;let Oe=Ce.hoverPoints,Se=he&&he.tooltipOptions.followPointer&&!he.tooltipOptions.split,$e=ee&&he&&!he.noSharedTooltip;if(oe&&(pe||oe!==te.hoverPoint||B&&B.isHidden)){if((te.hoverPoints||[]).forEach(function(ke){Oe.indexOf(ke)===-1&&ke.setState()}),te.hoverSeries!==he&&he.onMouseOver(),this.applyInactiveState(Oe),(Oe||[]).forEach(function(ke){ke.setState("hover")}),te.hoverPoint&&te.hoverPoint.firePointEvent("mouseOut"),!oe.series)return;te.hoverPoints=Oe,te.hoverPoint=oe,oe.firePointEvent("mouseOver",void 0,()=>{B&&oe&&B.refresh($e?Oe:oe,de)})}else if(Se&&B&&!B.isHidden){let ke=B.getAnchor([{}],de);te.isInsidePlot(ke[0],ke[1],{visiblePlotOnly:!0})&&B.updatePosition({plotX:ke[0],plotY:ke[1]})}this.unDocMouseMove||(this.unDocMouseMove=S(te.container.ownerDocument,"mousemove",ke=>g[_e.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(ke)),this.eventsToUnbind.push(this.unDocMouseMove)),te.axes.forEach(function(ke){let Re,Be=ne((ke.crosshair||{}).snap,!0);!Be||(Re=te.hoverPoint)&&Re.series[ke.coll]===ke||(Re=D(Oe,Ee=>Ee.series&&Ee.series[ke.coll]===ke)),Re||!Be?ke.drawCrosshair(de,Re):ke.hideCrosshair()})}setDOMEvents(){let de=this.chart.container,ve=de.ownerDocument;de.onmousedown=this.onContainerMouseDown.bind(this),de.onmousemove=this.onContainerMouseMove.bind(this),de.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(S(de,"mouseenter",this.onContainerMouseEnter.bind(this)),S(de,"mouseleave",this.onContainerMouseLeave.bind(this))),_e.unbindDocumentMouseUp||(_e.unbindDocumentMouseUp=S(ve,"mouseup",this.onDocumentMouseUp.bind(this)));let pe=this.chart.renderTo.parentElement;for(;pe&&pe.tagName!=="BODY";)this.eventsToUnbind.push(S(pe,"scroll",()=>{delete this.chartPosition})),pe=pe.parentElement;this.eventsToUnbind.push(S(de,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),S(de,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),_e.unbindDocumentTouchEnd||(_e.unbindDocumentTouchEnd=S(ve,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),S(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!x)return;let de=this.pointerCaptureEventsToUnbind,ve=this.chart,pe=ve.container,te=ne(ve.options.tooltip?.followTouchMove,!0)&&ve.series.some(N=>N.options.findNearestPointBy.indexOf("y")>-1);!this.hasPointerCapture&&te?(de.push(S(pe,"pointerdown",N=>{N.target?.hasPointerCapture(N.pointerId)&&N.target?.releasePointerCapture(N.pointerId)}),S(pe,"pointermove",N=>{ve.pointer?.getPointFromEvent(N)?.onMouseOver(N)})),ve.styledMode||E(pe,{"touch-action":"none"}),pe.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!te&&(de.forEach(N=>N()),de.length=0,ve.styledMode||E(pe,{"touch-action":ne(ve.options.chart.style?.["touch-action"],"manipulation")}),pe.className=pe.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(de){let ve=this.chart,pe=a.charts[ne(_e.hoverChartIndex,-1)];pe&&pe!==ve&&pe.pointer?.onContainerMouseLeave(de||{relatedTarget:ve.container}),pe&&pe.mouseIsDown||(_e.hoverChartIndex=ve.index)}touch(de,ve){let pe,{chart:te,pinchDown:N=[]}=this;this.setHoverChartIndex(),de.touches.length===1?(de=this.normalize(de),te.isInsidePlot(de.chartX-te.plotLeft,de.chartY-te.plotTop,{visiblePlotOnly:!0})&&!te.openMenu?(ve&&this.runPointActions(de),de.type==="touchmove"&&(pe=!!N[0]&&Math.pow(N[0].chartX-de.chartX,2)+Math.pow(N[0].chartY-de.chartY,2)>=16),ne(pe,!0)&&this.pinch(de)):ve&&this.reset()):de.touches.length===2&&this.pinch(de)}touchSelect(de){return!!(this.chart.zooming.singleTouch&&de.touches&&de.touches.length===1)}zoomOption(de){let ve=this.chart,pe=ve.inverted,te=ve.zooming.type||"",N,B;/touch/.test(de.type)&&(te=ne(ve.zooming.pinchType,te)),this.zoomX=N=/x/.test(te),this.zoomY=B=/y/.test(te),this.zoomHor=N&&!pe||B&&pe,this.zoomVert=B&&!pe||N&&pe,this.hasZoom=N||B}}return(c=_e||(_e={})).compose=function(ge){le(_,"Core.Pointer")&&S(ge,"beforeRender",function(){this.pointer=new c(this,this.options)})},_e}),n(r,"Core/Legend/Legend.js",[r["Core/Animation/AnimationUtilities.js"],r["Core/Templating.js"],r["Core/Globals.js"],r["Core/Series/Point.js"],r["Core/Renderer/RendererUtilities.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g){var _;let{animObject:x,setAnimation:S}=o,{format:O}=a,{composed:E,marginNames:T}=l,{distribute:D}=u,{addEvent:$,createElement:I,css:H,defined:se,discardElement:ie,find:ne,fireEvent:le,isNumber:me,merge:_e,pick:ge,pushUnique:de,relativeLength:ve,stableSort:pe,syncTimeout:te}=g;class N{constructor(ee,oe){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=ee,this.setOptions(oe),oe.enabled&&(this.render(),$(this.chart,"endResize",function(){this.legend.positionCheckboxes()})),$(this.chart,"render",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(ee){let oe=ge(ee.padding,8);this.options=ee,this.chart.styledMode||(this.itemStyle=ee.itemStyle,this.itemHiddenStyle=_e(this.itemStyle,ee.itemHiddenStyle)),this.itemMarginTop=ee.itemMarginTop,this.itemMarginBottom=ee.itemMarginBottom,this.padding=oe,this.initialItemY=oe-5,this.symbolWidth=ge(ee.symbolWidth,16),this.pages=[],this.proximate=ee.layout==="proximate"&&!this.chart.inverted,this.baseline=void 0}update(ee,oe){let he=this.chart;this.setOptions(_e(!0,this.options,ee)),this.destroy(),he.isDirtyLegend=he.isDirtyBox=!0,ge(oe,!0)&&he.redraw(),le(this,"afterUpdate",{redraw:oe})}colorizeItem(ee,oe){let{area:he,group:be,label:Ce,line:Oe,symbol:Se}=ee.legendItem||{};if(be?.[oe?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:$e={}}=this,ke=$e.color,{fillColor:Re,fillOpacity:Be,lineColor:Ee,marker:Pe}=ee.options,Ie=Fe=>(!oe&&(Fe.fill&&(Fe.fill=ke),Fe.stroke&&(Fe.stroke=ke)),Fe);Ce?.css(_e(oe?this.itemStyle:$e)),Oe?.attr(Ie({stroke:Ee||ee.color})),Se&&Se.attr(Ie(Pe&&Se.isMarker?ee.pointAttribs():{fill:ee.color})),he?.attr(Ie({fill:Re||ee.color,"fill-opacity":Re?1:Be??.75}))}le(this,"afterColorizeItem",{item:ee,visible:oe})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(ee){let{group:oe,x:he=0,y:be=0}=ee.legendItem||{},Ce=this.options,Oe=Ce.symbolPadding,Se=!Ce.rtl,$e=ee.checkbox;if(oe&&oe.element){let ke={translateX:Se?he:this.legendWidth-he-2*Oe-4,translateY:be};oe[se(oe.translateY)?"animate":"attr"](ke,void 0,()=>{le(this,"afterPositionItem",{item:ee})})}$e&&($e.x=he,$e.y=be)}destroyItem(ee){let oe=ee.checkbox,he=ee.legendItem||{};for(let be of["group","label","line","symbol"])he[be]&&(he[be]=he[be].destroy());oe&&ie(oe),ee.legendItem=void 0}destroy(){for(let ee of this.getAllItems())this.destroyItem(ee);for(let ee of["clipRect","up","down","pager","nav","box","title","group"])this[ee]&&(this[ee]=this[ee].destroy());this.display=null}positionCheckboxes(){let ee,oe=this.group&&this.group.alignAttr,he=this.clipHeight||this.legendHeight,be=this.titleHeight;oe&&(ee=oe.translateY,this.allItems.forEach(function(Ce){let Oe,Se=Ce.checkbox;Se&&(Oe=ee+be+Se.y+(this.scrollOffset||0)+3,H(Se,{left:oe.translateX+Ce.checkboxOffset+Se.x-20+"px",top:Oe+"px",display:this.proximate||Oe>ee-6&&Oe1.5*ze?De.height:ze))}layoutItem(ee){let oe=this.options,he=this.padding,be=oe.layout==="horizontal",Ce=ee.itemHeight,Oe=this.itemMarginBottom,Se=this.itemMarginTop,$e=be?ge(oe.itemDistance,20):0,ke=this.maxLegendWidth,Re=oe.alignColumns&&this.totalItemWidth>ke?this.maxItemWidth:ee.itemWidth,Be=ee.legendItem||{};be&&this.itemX-he+Re>ke&&(this.itemX=he,this.lastLineHeight&&(this.itemY+=Se+this.lastLineHeight+Oe),this.lastLineHeight=0),this.lastItemY=Se+this.itemY+Oe,this.lastLineHeight=Math.max(Ce,this.lastLineHeight),Be.x=this.itemX,Be.y=this.itemY,be?this.itemX+=Re:(this.itemY+=Se+Ce+Oe,this.lastLineHeight=Ce),this.offsetWidth=this.widthOption||Math.max((be?this.itemX-he-(ee.checkbox?0:$e):Re)+he,this.offsetWidth)}getAllItems(){let ee=[];return this.chart.series.forEach(function(oe){let he=oe&&oe.options;oe&&ge(he.showInLegend,!se(he.linkedTo)&&void 0,!0)&&(ee=ee.concat((oe.legendItem||{}).labels||(he.legendType==="point"?oe.data:oe)))}),le(this,"afterGetAllItems",{allItems:ee}),ee}getAlignment(){let ee=this.options;return this.proximate?ee.align.charAt(0)+"tv":ee.floating?"":ee.align.charAt(0)+ee.verticalAlign.charAt(0)+ee.layout.charAt(0)}adjustMargins(ee,oe){let he=this.chart,be=this.options,Ce=this.getAlignment();Ce&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(Oe,Se){Oe.test(Ce)&&!se(ee[Se])&&(he[T[Se]]=Math.max(he[T[Se]],he.legend[(Se+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][Se]*be[Se%2?"x":"y"]+ge(be.margin,12)+oe[Se]+(he.titleOffset[Se]||0)))})}proximatePositions(){let ee,oe=this.chart,he=[],be=this.options.align==="left";for(let Ce of(this.allItems.forEach(function(Oe){let Se,$e,ke=be,Re,Be;Oe.yAxis&&(Oe.xAxis.options.reversed&&(ke=!ke),Oe.points&&(Se=ne(ke?Oe.points:Oe.points.slice(0).reverse(),function(Ee){return me(Ee.plotY)})),$e=this.itemMarginTop+Oe.legendItem.label.getBBox().height+this.itemMarginBottom,Be=Oe.yAxis.top-oe.plotTop,Re=Oe.visible?(Se?Se.plotY:Oe.yAxis.height)+(Be-.3*$e):Be+Oe.yAxis.height,he.push({target:Re,size:$e,item:Oe}))},this),D(he,oe.plotHeight)))ee=Ce.item.legendItem||{},me(Ce.pos)&&(ee.y=oe.plotTop-oe.spacing[0]+Ce.pos)}render(){let ee=this.chart,oe=ee.renderer,he=this.options,be=this.padding,Ce=this.getAllItems(),Oe,Se,$e,ke=this.group,Re,Be=this.box;this.itemX=be,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=ve(he.width,ee.spacingBox.width-be),Re=ee.spacingBox.width-2*be-he.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(Re/=2),this.maxLegendWidth=this.widthOption||Re,ke||(this.group=ke=oe.g("legend").addClass(he.className||"").attr({zIndex:7}).add(),this.contentGroup=oe.g().attr({zIndex:1}).add(ke),this.scrollGroup=oe.g().add(this.contentGroup)),this.renderTitle(),pe(Ce,(Ee,Pe)=>(Ee.options&&Ee.options.legendIndex||0)-(Pe.options&&Pe.options.legendIndex||0)),he.reversed&&Ce.reverse(),this.allItems=Ce,this.display=Oe=!!Ce.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,Ce.forEach(this.renderItem,this),Ce.forEach(this.layoutItem,this),Se=(this.widthOption||this.offsetWidth)+be,$e=this.lastItemY+this.lastLineHeight+this.titleHeight,$e=this.handleOverflow($e)+be,Be||(this.box=Be=oe.rect().addClass("highcharts-legend-box").attr({r:he.borderRadius}).add(ke)),ee.styledMode||Be.attr({stroke:he.borderColor,"stroke-width":he.borderWidth||0,fill:he.backgroundColor||"none"}).shadow(he.shadow),Se>0&&$e>0&&Be[Be.placed?"animate":"attr"](Be.crisp.call({},{x:0,y:0,width:Se,height:$e},Be.strokeWidth())),ke[Oe?"show":"hide"](),ee.styledMode&&ke.getStyle("display")==="none"&&(Se=$e=0),this.legendWidth=Se,this.legendHeight=$e,Oe&&this.align(),this.proximate||this.positionItems(),le(this,"afterRender")}align(ee=this.chart.spacingBox){let oe=this.chart,he=this.options,be=ee.y;/(lth|ct|rth)/.test(this.getAlignment())&&oe.titleOffset[0]>0?be+=oe.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&oe.titleOffset[2]>0&&(be-=oe.titleOffset[2]),be!==ee.y&&(ee=_e(ee,{y:be})),oe.hasRendered||(this.group.placed=!1),this.group.align(_e(he,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":he.verticalAlign}),!0,ee)}handleOverflow(ee){let oe=this,he=this.chart,be=he.renderer,Ce=this.options,Oe=Ce.y,Se=Ce.verticalAlign==="top",$e=this.padding,ke=Ce.maxHeight,Re=Ce.navigation,Be=ge(Re.animation,!0),Ee=Re.arrowSize||12,Pe=this.pages,Ie=this.allItems,Fe=function(je){typeof je=="number"?ze.attr({height:je}):ze&&(oe.clipRect=ze.destroy(),oe.contentGroup.clip()),oe.contentGroup.div&&(oe.contentGroup.div.style.clip=je?"rect("+$e+"px,9999px,"+($e+je)+"px,0)":"auto")},fe=function(je){return oe[je]=be.circle(0,0,1.3*Ee).translate(Ee/2,Ee/2).add(De),he.styledMode||oe[je].attr("fill","rgba(0,0,0,0.0001)"),oe[je]},ae,ue,xe,Ae=he.spacingBox.height+(Se?-Oe:Oe)-$e,De=this.nav,ze=this.clipRect;return Ce.layout!=="horizontal"||Ce.verticalAlign==="middle"||Ce.floating||(Ae/=2),ke&&(Ae=Math.min(Ae,ke)),Pe.length=0,ee&&Ae>0&&ee>Ae&&Re.enabled!==!1?(this.clipHeight=ae=Math.max(Ae-20-this.titleHeight-$e,0),this.currentPage=ge(this.currentPage,1),this.fullHeight=ee,Ie.forEach((je,Ke)=>{let Ze=(xe=je.legendItem||{}).y||0,Ge=Math.round(xe.label.getBBox().height),Ne=Pe.length;(!Ne||Ze-Pe[Ne-1]>ae&&(ue||Ze)!==Pe[Ne-1])&&(Pe.push(ue||Ze),Ne++),xe.pageIx=Ne-1,ue&&((Ie[Ke-1].legendItem||{}).pageIx=Ne-1),Ke===Ie.length-1&&Ze+Ge-Pe[Ne-1]>ae&&Ze>Pe[Ne-1]&&(Pe.push(Ze),xe.pageIx=Ne),Ze!==ue&&(ue=Ze)}),ze||(ze=oe.clipRect=be.clipRect(0,$e-2,9999,0),oe.contentGroup.clip(ze)),Fe(ae),De||(this.nav=De=be.g().attr({zIndex:1}).add(this.group),this.up=be.symbol("triangle",0,0,Ee,Ee).add(De),fe("upTracker").on("click",function(){oe.scroll(-1,Be)}),this.pager=be.text("",15,10).addClass("highcharts-legend-navigation"),!he.styledMode&&Re.style&&this.pager.css(Re.style),this.pager.add(De),this.down=be.symbol("triangle-down",0,0,Ee,Ee).add(De),fe("downTracker").on("click",function(){oe.scroll(1,Be)})),oe.scroll(0),ee=Ae):De&&(Fe(),this.nav=De.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),ee}scroll(ee,oe){let he=this.chart,be=this.pages,Ce=be.length,Oe=this.clipHeight,Se=this.options.navigation,$e=this.pager,ke=this.padding,Re=this.currentPage+ee;Re>Ce&&(Re=Ce),Re>0&&(oe!==void 0&&S(oe,he),this.nav.attr({translateX:ke,translateY:Oe+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(Be){Be.attr({class:Re===1?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),$e.attr({text:Re+"/"+Ce}),[this.down,this.downTracker].forEach(function(Be){Be.attr({x:18+this.pager.getBBox().width,class:Re===Ce?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),he.styledMode||(this.up.attr({fill:Re===1?Se.inactiveColor:Se.activeColor}),this.upTracker.css({cursor:Re===1?"default":"pointer"}),this.down.attr({fill:Re===Ce?Se.inactiveColor:Se.activeColor}),this.downTracker.css({cursor:Re===Ce?"default":"pointer"})),this.scrollOffset=-be[Re-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=Re,this.positionCheckboxes(),te(()=>{le(this,"afterScroll",{currentPage:Re})},x(ge(oe,he.renderer.globalAnimation,!0)).duration))}setItemEvents(ee,oe,he){let be=this,Ce=ee.legendItem||{},Oe=be.chart.renderer.boxWrapper,Se=ee instanceof c,$e="highcharts-legend-"+(Se?"point":"series")+"-active",ke=be.chart.styledMode,Re=he?[oe,Ce.symbol]:[Ce.group],Be=Ee=>{be.allItems.forEach(Pe=>{ee!==Pe&&[Pe].concat(Pe.linkedSeries||[]).forEach(Ie=>{Ie.setState(Ee,!Se)})})};for(let Ee of Re)Ee&&Ee.on("mouseover",function(){ee.visible&&Be("inactive"),ee.setState("hover"),ee.visible&&Oe.addClass($e),ke||oe.css(be.options.itemHoverStyle)}).on("mouseout",function(){be.chart.styledMode||oe.css(_e(ee.visible?be.itemStyle:be.itemHiddenStyle)),Be(""),Oe.removeClass($e),ee.setState()}).on("click",function(Pe){let Ie="legendItemClick",Fe=function(){ee.setVisible&&ee.setVisible(),Be(ee.visible?"inactive":"")};Oe.removeClass($e),Pe={browserEvent:Pe},ee.firePointEvent?ee.firePointEvent(Ie,Pe,Fe):le(ee,Ie,Pe,Fe)})}createCheckboxForItem(ee){ee.checkbox=I("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:ee.selected,defaultChecked:ee.selected},this.options.itemCheckboxStyle,this.chart.container),$(ee.checkbox,"click",function(oe){let he=oe.target;le(ee.series||ee,"checkboxClick",{checked:he.checked,item:ee},function(){ee.select()})})}}return(_=N||(N={})).compose=function(B){de(E,"Core.Legend")&&$(B,"beforeMargins",function(){this.legend=new _(this,this.options.legend)})},N}),n(r,"Core/Legend/LegendSymbol.js",[r["Core/Utilities.js"]],function(o){var a;let{extend:l,merge:c,pick:u}=o;return function(g){function _(x,S,O){let E=this.legendItem=this.legendItem||{},{chart:T,options:D}=this,{baseline:$=0,symbolWidth:I,symbolHeight:H}=x,se=this.symbol||"circle",ie=H/2,ne=T.renderer,le=E.group,me=$-Math.round(H*(O?.4:.3)),_e={},ge,de=D.marker,ve=0;if(T.styledMode||(_e["stroke-width"]=Math.min(D.lineWidth||0,24),D.dashStyle?_e.dashstyle=D.dashStyle:D.linecap==="square"||(_e["stroke-linecap"]="round")),E.line=ne.path().addClass("highcharts-graph").attr(_e).add(le),O&&(E.area=ne.path().addClass("highcharts-area").add(le)),_e["stroke-linecap"]&&(ve=Math.min(E.line.strokeWidth(),I)/2),I){let pe=[["M",ve,me],["L",I-ve,me]];E.line.attr({d:pe}),E.area?.attr({d:[...pe,["L",I-ve,$],["L",ve,$]]})}if(de&&de.enabled!==!1&&I){let pe=Math.min(u(de.radius,ie),ie);se.indexOf("url")===0&&(de=c(de,{width:H,height:H}),pe=0),E.symbol=ge=ne.symbol(se,I/2-pe,me-pe,2*pe,2*pe,l({context:"legend"},de)).addClass("highcharts-point").add(le),ge.isMarker=!0}}g.areaMarker=function(x,S){_.call(this,x,S,!0)},g.lineMarker=_,g.rectangle=function(x,S){let O=S.legendItem||{},E=x.options,T=x.symbolHeight,D=E.squareSymbol,$=D?T:x.symbolWidth;O.symbol=this.chart.renderer.rect(D?(x.symbolWidth-T)/2:0,x.baseline-T+1,$,T,u(x.options.symbolRadius,T/2)).addClass("highcharts-point").attr({zIndex:3}).add(O.group)}}(a||(a={})),a}),n(r,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:2,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(){let{numberFormatter:o}=this.series.chart;return typeof this.y!="number"?"":o(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"}}),n(r,"Core/Series/SeriesRegistry.js",[r["Core/Globals.js"],r["Core/Defaults.js"],r["Core/Series/Point.js"],r["Core/Utilities.js"]],function(o,a,l,c){var u;let{defaultOptions:g}=a,{extend:_,extendClass:x,merge:S}=c;return function(O){function E(T,D){let $=g.plotOptions||{},I=D.defaultOptions,H=D.prototype;return H.type=T,H.pointClass||(H.pointClass=l),!O.seriesTypes[T]&&(I&&($[T]=I),O.seriesTypes[T]=D,!0)}O.seriesTypes=o.seriesTypes,O.registerSeriesType=E,O.seriesType=function(T,D,$,I,H){let se=g.plotOptions||{};if(D=D||"",se[T]=S(se[D],$),delete O.seriesTypes[T],E(T,x(O.seriesTypes[D]||function(){},I)),O.seriesTypes[T].prototype.type=T,H){class ie extends l{}_(ie.prototype,H),O.seriesTypes[T].prototype.pointClass=ie}return O.seriesTypes[T]}}(u||(u={})),u}),n(r,"Core/Series/Series.js",[r["Core/Animation/AnimationUtilities.js"],r["Core/Defaults.js"],r["Core/Foundation.js"],r["Core/Globals.js"],r["Core/Legend/LegendSymbol.js"],r["Core/Series/Point.js"],r["Core/Series/SeriesDefaults.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Renderer/SVG/SVGElement.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x,S,O){let{animObject:E,setAnimation:T}=o,{defaultOptions:D}=a,{registerEventOptions:$}=l,{svg:I,win:H}=c,{seriesTypes:se}=x,{arrayMax:ie,arrayMin:ne,clamp:le,correctFloat:me,crisp:_e,defined:ge,destroyObjectProperties:de,diffObjects:ve,erase:pe,error:te,extend:N,find:B,fireEvent:ee,getClosestDistance:oe,getNestedProperty:he,insertItem:be,isArray:Ce,isNumber:Oe,isString:Se,merge:$e,objectEach:ke,pick:Re,removeEvent:Be,splat:Ee,syncTimeout:Pe}=O;class Ie{constructor(){this.zoneAxis="y"}init(fe,ae){let ue;ee(this,"init",{options:ae});let xe=this,Ae=fe.series;this.eventsToUnbind=[],xe.chart=fe,xe.options=xe.setOptions(ae);let De=xe.options,ze=De.visible!==!1;xe.linkedSeries=[],xe.bindAxes(),N(xe,{name:De.name,state:"",visible:ze,selected:De.selected===!0}),$(this,De);let je=De.events;(je&&je.click||De.point&&De.point.events&&De.point.events.click||De.allowPointSelect)&&(fe.runTrackerClick=!0),xe.getColor(),xe.getSymbol(),xe.parallelArrays.forEach(function(Ke){xe[Ke+"Data"]||(xe[Ke+"Data"]=[])}),xe.isCartesian&&(fe.hasCartesianSeries=!0),Ae.length&&(ue=Ae[Ae.length-1]),xe._i=Re(ue&&ue._i,-1)+1,xe.opacity=xe.options.opacity,fe.orderItems("series",be(this,Ae)),De.dataSorting&&De.dataSorting.enabled?xe.setDataSortingOptions():xe.points||xe.data||xe.setData(De.data,!1),ee(this,"afterInit")}is(fe){return se[fe]&&this instanceof se[fe]}bindAxes(){let fe,ae=this,ue=ae.options,xe=ae.chart;ee(this,"bindAxes",null,function(){(ae.axisTypes||[]).forEach(function(Ae){(xe[Ae]||[]).forEach(function(De){fe=De.options,(Re(ue[Ae],0)===De.index||ue[Ae]!==void 0&&ue[Ae]===fe.id)&&(be(ae,De.series),ae[Ae]=De,De.isDirty=!0)}),ae[Ae]||ae.optionalAxis===Ae||te(18,!0,xe)})}),ee(this,"afterBindAxes")}updateParallelArrays(fe,ae,ue){let xe=fe.series,Ae=Oe(ae)?function(De){let ze=De==="y"&&xe.toYData?xe.toYData(fe):fe[De];xe[De+"Data"][ae]=ze}:function(De){Array.prototype[ae].apply(xe[De+"Data"],ue)};xe.parallelArrays.forEach(Ae)}hasData(){return this.visible&&this.dataMax!==void 0&&this.dataMin!==void 0||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(fe,ae){let ue=fe.marker,xe=ae.marker||{};return ue&&(xe.enabled&&!ue.enabled||xe.symbol!==ue.symbol||xe.height!==ue.height||xe.width!==ue.width)}autoIncrement(fe){let ae=this.options,ue=ae.pointIntervalUnit,xe=ae.relativeXValue,Ae=this.chart.time,De=this.xIncrement,ze,je;return De=Re(De,ae.pointStart,0),this.pointInterval=je=Re(this.pointInterval,ae.pointInterval,1),xe&&Oe(fe)&&(je*=fe),ue&&(ze=new Ae.Date(De),ue==="day"?Ae.set("Date",ze,Ae.get("Date",ze)+je):ue==="month"?Ae.set("Month",ze,Ae.get("Month",ze)+je):ue==="year"&&Ae.set("FullYear",ze,Ae.get("FullYear",ze)+je),je=ze.getTime()-De),xe&&Oe(fe)?De+je:(this.xIncrement=De+je,De)}setDataSortingOptions(){let fe=this.options;N(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),ge(fe.pointRange)||(fe.pointRange=1)}setOptions(fe){let ae,ue=this.chart,xe=ue.options.plotOptions,Ae=ue.userOptions||{},De=$e(fe),ze=ue.styledMode,je={plotOptions:xe,userOptions:De};ee(this,"setOptions",je);let Ke=je.plotOptions[this.type],Ze=Ae.plotOptions||{},Ge=Ze.series||{},Ne=D.plotOptions[this.type]||{},We=Ze[this.type]||{};this.userOptions=je.userOptions;let Ye=$e(Ke,xe.series,We,De);this.tooltipOptions=$e(D.tooltip,D.plotOptions.series?.tooltip,Ne?.tooltip,ue.userOptions.tooltip,Ze.series?.tooltip,We.tooltip,De.tooltip),this.stickyTracking=Re(De.stickyTracking,We.stickyTracking,Ge.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||Ye.stickyTracking),Ke.marker===null&&delete Ye.marker,this.zoneAxis=Ye.zoneAxis||"y";let Qe=this.zones=(Ye.zones||[]).map(Le=>({...Le}));return(Ye.negativeColor||Ye.negativeFillColor)&&!Ye.zones&&(ae={value:Ye[this.zoneAxis+"Threshold"]||Ye.threshold||0,className:"highcharts-negative"},ze||(ae.color=Ye.negativeColor,ae.fillColor=Ye.negativeFillColor),Qe.push(ae)),Qe.length&&ge(Qe[Qe.length-1].value)&&Qe.push(ze?{}:{color:this.color,fillColor:this.fillColor}),ee(this,"afterSetOptions",{options:Ye}),Ye}getName(){return Re(this.options.name,"Series "+(this.index+1))}getCyclic(fe,ae,ue){let xe,Ae,De=this.chart,ze=`${fe}Index`,je=`${fe}Counter`,Ke=ue?.length||De.options.chart.colorCount;!ae&&(ge(Ae=Re(fe==="color"?this.options.colorIndex:void 0,this[ze]))?xe=Ae:(De.series.length||(De[je]=0),xe=De[je]%Ke,De[je]+=1),ue&&(ae=ue[xe])),xe!==void 0&&(this[ze]=xe),this[fe]=ae}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||D.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let fe=this.options.marker;this.getCyclic("symbol",fe.symbol,this.chart.options.symbols)}findPointIndex(fe,ae){let ue,xe,Ae,De=fe.id,ze=fe.x,je=this.points,Ke=this.options.dataSorting;if(De){let Ze=this.chart.get(De);Ze instanceof g&&(ue=Ze)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let Ze=Ge=>!Ge.touched&&Ge.index===fe.index;if(Ke&&Ke.matchByName?Ze=Ge=>!Ge.touched&&Ge.name===fe.name:this.options.relativeXValue&&(Ze=Ge=>!Ge.touched&&Ge.options.x===fe.x),!(ue=B(je,Ze)))return}return ue&&(Ae=ue&&ue.index)!==void 0&&(xe=!0),Ae===void 0&&Oe(ze)&&(Ae=this.xData.indexOf(ze,ae)),Ae!==-1&&Ae!==void 0&&this.cropped&&(Ae=Ae>=this.cropStart?Ae-this.cropStart:Ae),!xe&&Oe(Ae)&&je[Ae]&&je[Ae].touched&&(Ae=void 0),Ae}updateData(fe,ae){let ue=this.options,xe=ue.dataSorting,Ae=this.points,De=[],ze=this.requireSorting,je=fe.length===Ae.length,Ke,Ze,Ge,Ne,We=!0;if(this.xIncrement=null,fe.forEach(function(Ye,Qe){let Le,ye=ge(Ye)&&this.pointClass.prototype.optionsToObject.call({series:this},Ye)||{},we=ye.x;ye.id||Oe(we)?((Le=this.findPointIndex(ye,Ne))===-1||Le===void 0?De.push(Ye):Ae[Le]&&Ye!==ue.data[Le]?(Ae[Le].update(Ye,!1,null,!1),Ae[Le].touched=!0,ze&&(Ne=Le+1)):Ae[Le]&&(Ae[Le].touched=!0),(!je||Qe!==Le||xe&&xe.enabled||this.hasDerivedData)&&(Ke=!0)):De.push(Ye)},this),Ke)for(Ze=Ae.length;Ze--;)(Ge=Ae[Ze])&&!Ge.touched&&Ge.remove&&Ge.remove(!1,ae);else!je||xe&&xe.enabled?We=!1:(fe.forEach(function(Ye,Qe){Ye===Ae[Qe].y||Ae[Qe].destroyed||Ae[Qe].update(Ye,!1,null,!1)}),De.length=0);return Ae.forEach(function(Ye){Ye&&(Ye.touched=!1)}),!!We&&(De.forEach(function(Ye){this.addPoint(Ye,!1,null,null,!1)},this),this.xIncrement===null&&this.xData&&this.xData.length&&(this.xIncrement=ie(this.xData),this.autoIncrement()),!0)}setData(fe,ae=!0,ue,xe){let Ae=this,De=Ae.points,ze=De&&De.length||0,je=Ae.options,Ke=Ae.chart,Ze=je.dataSorting,Ge=Ae.xAxis,Ne=je.turboThreshold,We=this.xData,Ye=this.yData,Qe=Ae.pointArrayMap,Le=Qe&&Qe.length,ye=je.keys,we,Ve,Xe,nt=0,lt=1,pt=null,_t;Ke.options.chart.allowMutatingData||(je.data&&delete Ae.options.data,Ae.userOptions.data&&delete Ae.userOptions.data,_t=$e(!0,fe));let St=(fe=_t||fe||[]).length;if(Ze&&Ze.enabled&&(fe=this.sortData(fe)),Ke.options.chart.allowMutatingData&&xe!==!1&&St&&ze&&!Ae.cropped&&!Ae.hasGroupedData&&Ae.visible&&!Ae.boosted&&(Xe=this.updateData(fe,ue)),!Xe){if(Ae.xIncrement=null,Ae.colorCounter=0,this.parallelArrays.forEach(function(Et){Ae[Et+"Data"].length=0}),Ne&&St>Ne)if(Oe(pt=Ae.getFirstValidPoint(fe)))for(we=0;we=0?nt:0,lt=lt>=0?lt:1),pt.length===1&&(lt=0),nt===lt)for(we=0;we{let ze=he(ue,Ae),je=he(ue,De);return jeze?1:0}).forEach(function(Ae,De){Ae.x=De},this),ae.linkedSeries&&ae.linkedSeries.forEach(function(Ae){let De=Ae.options,ze=De.data;De.dataSorting&&De.dataSorting.enabled||!ze||(ze.forEach(function(je,Ke){ze[Ke]=xe(Ae,je),fe[Ke]&&(ze[Ke].x=fe[Ke].x,ze[Ke].index=Ke)}),Ae.setData(ze,!1))}),fe}getProcessedData(fe){let ae=this,ue=ae.xAxis,xe=ae.options.cropThreshold,Ae=ue?.logarithmic,De=ae.isCartesian,ze,je,Ke=0,Ze,Ge,Ne,We=ae.xData,Ye=ae.yData,Qe=!1,Le=We.length;ue&&(Ge=(Ze=ue.getExtremes()).min,Ne=Ze.max,Qe=!!(ue.categories&&!ue.names.length)),De&&ae.sorted&&!fe&&(!xe||Le>xe||ae.forceCrop)&&(We[Le-1]Ne?(We=[],Ye=[]):ae.yData&&(We[0]Ne)&&(We=(ze=this.cropData(ae.xData,ae.yData,Ge,Ne)).xData,Ye=ze.yData,Ke=ze.start,je=!0));let ye=oe([Ae?We.map(Ae.log2lin):We],()=>ae.requireSorting&&!Qe&&te(15,!1,ae.chart));return{xData:We,yData:Ye,cropped:je,cropStart:Ke,closestPointRange:ye}}processData(fe){let ae=this.xAxis;if(this.isCartesian&&!this.isDirty&&!ae.isDirty&&!this.yAxis.isDirty&&!fe)return!1;let ue=this.getProcessedData();this.cropped=ue.cropped,this.cropStart=ue.cropStart,this.processedXData=ue.xData,this.processedYData=ue.yData,this.closestPointRange=this.basePointRange=ue.closestPointRange,ee(this,"afterProcessData")}cropData(fe,ae,ue,xe){let Ae=fe.length,De,ze,je=0,Ke=Ae;for(De=0;De=ue){je=Math.max(0,De-1);break}for(ze=De;zexe){Ke=ze+1;break}return{xData:fe.slice(je,Ke),yData:ae.slice(je,Ke),start:je,end:Ke}}generatePoints(){let fe=this.options,ae=this.processedData||fe.data,ue=this.processedXData,xe=this.processedYData,Ae=this.pointClass,De=ue.length,ze=this.cropStart||0,je=this.hasGroupedData,Ke=fe.keys,Ze=[],Ge=fe.dataGrouping&&fe.dataGrouping.groupAll?ze:0,Ne,We,Ye,Qe,Le=this.data;if(!Le&&!je){let ye=[];ye.length=ae.length,Le=this.data=ye}for(Ke&&je&&(this.options.keys=!1),Qe=0;Qe0:Qe.length)||!ze),We=ae||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!ue||(lt[Le+De]||Ye)>=we&&(lt[Le-De]||Ye)<=Ve,Ne&&We)if(ye=Qe.length)for(;ye--;)Oe(Qe[ye])&&(Ae[Xe++]=Qe[ye]);else Ae[Xe++]=Qe;let pt={activeYData:Ae,dataMin:ne(Ae),dataMax:ie(Ae)};return ee(this,"afterGetExtremes",{dataExtremes:pt}),pt}applyExtremes(){let fe=this.getExtremes();return this.dataMin=fe.dataMin,this.dataMax=fe.dataMax,fe}getFirstValidPoint(fe){let ae=fe.length,ue=0,xe=null;for(;xe===null&&ue1)&&(De.step=function(Ne,We){Ge&&Ge.apply(We,arguments),We.prop==="width"&&Ke?.element&&Ke.attr(Ae?"height":"width",Ne+99)}),je.addClass("highcharts-animating").animate(Ze,De)}}afterAnimate(){this.setClip(),ke(this.chart.sharedClips,(fe,ae,ue)=>{fe&&!this.chart.container.querySelector(`[clip-path="url(#${fe.id})"]`)&&(fe.destroy(),delete ue[ae])}),this.finishedAnimating=!0,ee(this,"afterAnimate")}drawPoints(fe=this.points){let ae,ue,xe,Ae,De,ze,je,Ke=this.chart,Ze=Ke.styledMode,{colorAxis:Ge,options:Ne}=this,We=Ne.marker,Ye=this[this.specialGroup||"markerGroup"],Qe=this.xAxis,Le=Re(We.enabled,!Qe||!!Qe.isRadial||null,this.closestPointRangePx>=We.enabledThreshold*We.radius);if(We.enabled!==!1||this._hasPointMarkers)for(ae=0;ae0||ue.hasImage)&&(ue.graphic=xe=Ke.renderer.symbol(ye,je.x,je.y,je.width,je.height,ze?De:We).add(Ye),this.enabledDataSorting&&Ke.hasRendered&&(xe.attr({x:ue.startXPos}),Ae="animate")),xe&&Ae==="animate"&&xe[we?"show":"hide"](we).animate(je),xe){let Ve=this.pointAttribs(ue,Ze||!ue.selected?void 0:"select");Ze?Ge&&xe.css({fill:Ve.fill}):xe[Ae](Ve)}xe&&xe.addClass(ue.getClassName(),!0)}else xe&&(ue.graphic=xe.destroy())}markerAttribs(fe,ae){let ue=this.options,xe=ue.marker,Ae=fe.marker||{},De=Ae.symbol||xe.symbol,ze={},je,Ke,Ze=Re(Ae.radius,xe&&xe.radius);ae&&(je=xe.states[ae],Ze=Re((Ke=Ae.states&&Ae.states[ae])&&Ke.radius,je&&je.radius,Ze&&Ze+(je&&je.radiusPlus||0))),fe.hasImage=De&&De.indexOf("url")===0,fe.hasImage&&(Ze=0);let Ge=fe.pos();return Oe(Ze)&&Ge&&(ue.crisp&&(Ge[0]=_e(Ge[0],fe.hasImage?0:De==="rect"?xe?.lineWidth||0:1)),ze.x=Ge[0]-Ze,ze.y=Ge[1]-Ze),Ze&&(ze.width=ze.height=2*Ze),ze}pointAttribs(fe,ae){let ue=this.options.marker,xe=fe&&fe.options,Ae=xe&&xe.marker||{},De=xe&&xe.color,ze=fe&&fe.color,je=fe&&fe.zone&&fe.zone.color,Ke,Ze,Ge=this.color,Ne,We,Ye=Re(Ae.lineWidth,ue.lineWidth),Qe=1;return Ge=De||je||ze||Ge,Ne=Ae.fillColor||ue.fillColor||Ge,We=Ae.lineColor||ue.lineColor||Ge,ae=ae||"normal",Ke=ue.states[ae]||{},Ye=Re((Ze=Ae.states&&Ae.states[ae]||{}).lineWidth,Ke.lineWidth,Ye+Re(Ze.lineWidthPlus,Ke.lineWidthPlus,0)),Ne=Ze.fillColor||Ke.fillColor||Ne,{stroke:We=Ze.lineColor||Ke.lineColor||We,"stroke-width":Ye,fill:Ne,opacity:Qe=Re(Ze.opacity,Ke.opacity,Qe)}}destroy(fe){let ae,ue,xe,Ae=this,De=Ae.chart,ze=/AppleWebKit\/533/.test(H.navigator.userAgent),je=Ae.data||[];for(ee(Ae,"destroy",{keepEventsForUpdate:fe}),this.removeEvents(fe),(Ae.axisTypes||[]).forEach(function(Ke){(xe=Ae[Ke])&&xe.series&&(pe(xe.series,Ae),xe.isDirty=xe.forceRedraw=!0)}),Ae.legendItem&&Ae.chart.legend.destroyItem(Ae),ae=je.length;ae--;)(ue=je[ae])&&ue.destroy&&ue.destroy();for(let Ke of Ae.zones)de(Ke,void 0,!0);O.clearTimeout(Ae.animationTimeout),ke(Ae,function(Ke,Ze){Ke instanceof S&&!Ke.survive&&Ke[ze&&Ze==="group"?"hide":"destroy"]()}),De.hoverSeries===Ae&&(De.hoverSeries=void 0),pe(De.series,Ae),De.orderItems("series"),ke(Ae,function(Ke,Ze){fe&&Ze==="hcEvents"||delete Ae[Ze]})}applyZones(){let{area:fe,chart:ae,graph:ue,zones:xe,points:Ae,xAxis:De,yAxis:ze,zoneAxis:je}=this,{inverted:Ke,renderer:Ze}=ae,Ge=this[`${je}Axis`],{isXAxis:Ne,len:We=0}=Ge||{},Ye=(ue?.strokeWidth()||0)/2+1,Qe=(Le,ye=0,we=0)=>{Ke&&(we=We-we);let{translated:Ve=0,lineClip:Xe}=Le,nt=we-Ve;Xe?.push(["L",ye,Math.abs(nt){Xe.forEach((nt,lt)=>{(nt[0]==="M"||nt[0]==="L")&&(Xe[lt]=[nt[0],Ne?We-nt[1]:nt[1],Ne?nt[2]:We-nt[2]])})};if(xe.forEach(Xe=>{Xe.lineClip=[],Xe.translated=le(Ge.toPixels(Re(Xe.value,Le),!0)||0,0,We)}),ue&&!this.showLine&&ue.hide(),fe&&fe.hide(),je==="y"&&Ae.length{let nt=Xe.lineClip||[],lt=Math.round(Xe.translated||0);De.reversed&&nt.reverse();let{clip:pt,simpleClip:_t}=Xe,St=0,Et=0,bt=De.len,Nt=ze.len;Ne?(St=lt,bt=Ve):(Et=lt,Nt=Ve);let Ft=[["M",St,Et],["L",bt,Et],["L",bt,Nt],["L",St,Nt],["Z"]],qt=[Ft[0],...nt,Ft[1],Ft[2],...we,Ft[3],Ft[4]];we=nt.reverse(),Ve=lt,Ke&&(ye(qt),fe&&ye(Ft)),pt?(pt.animate({d:qt}),_t?.animate({d:Ft})):(pt=Xe.clip=Ze.path(qt),fe&&(_t=Xe.simpleClip=Ze.path(Ft))),ue&&Xe.graph?.clip(pt),fe&&Xe.area?.clip(_t)})}else this.visible&&(ue&&ue.show(),fe&&fe.show())}plotGroup(fe,ae,ue,xe,Ae){let De=this[fe],ze=!De,je={visibility:ue,zIndex:xe||.1};return ge(this.opacity)&&!this.chart.styledMode&&this.state!=="inactive"&&(je.opacity=this.opacity),De||(this[fe]=De=this.chart.renderer.g().add(Ae)),De.addClass("highcharts-"+ae+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(ge(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(De.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),De.attr(je)[ze?"attr":"animate"](this.getPlotBox(ae)),De}getPlotBox(fe){let ae=this.xAxis,ue=this.yAxis,xe=this.chart,Ae=xe.inverted&&!xe.polar&&ae&&this.invertible&&fe==="series";return xe.inverted&&(ae=ue,ue=this.xAxis),{translateX:ae?ae.left:xe.plotLeft,translateY:ue?ue.top:xe.plotTop,rotation:Ae?90:0,rotationOriginX:Ae?(ae.len-ue.len)/2:0,rotationOriginY:Ae?(ae.len+ue.len)/2:0,scaleX:Ae?-1:1,scaleY:1}}removeEvents(fe){let{eventsToUnbind:ae}=this;fe||Be(this),ae.length&&(ae.forEach(ue=>{ue()}),ae.length=0)}render(){let fe=this,{chart:ae,options:ue,hasRendered:xe}=fe,Ae=E(ue.animation),De=fe.visible?"inherit":"hidden",ze=ue.zIndex,je=ae.seriesGroup,Ke=fe.finishedAnimating?0:Ae.duration;ee(this,"render"),fe.plotGroup("group","series",De,ze,je),fe.markerGroup=fe.plotGroup("markerGroup","markers",De,ze,je),ue.clip!==!1&&fe.setClip(),Ke&&fe.animate?.(!0),fe.drawGraph&&(fe.drawGraph(),fe.applyZones()),fe.visible&&fe.drawPoints(),fe.drawDataLabels?.(),fe.redrawPoints?.(),ue.enableMouseTracking&&fe.drawTracker?.(),Ke&&fe.animate?.(),xe||(Ke&&Ae.defer&&(Ke+=Ae.defer),fe.animationTimeout=Pe(()=>{fe.afterAnimate()},Ke||0)),fe.isDirty=!1,fe.hasRendered=!0,ee(fe,"afterRender")}redraw(){let fe=this.isDirty||this.isDirtyData;this.translate(),this.render(),fe&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(fe,ae){let{xAxis:ue,yAxis:xe}=this,Ae=this.chart.inverted;return this.searchKDTree({clientX:Ae?ue.len-fe.chartY+ue.pos:fe.chartX-ue.pos,plotY:Ae?xe.len-fe.chartX+xe.pos:fe.chartY-xe.pos},ae,fe)}buildKDTree(fe){this.buildingKdTree=!0;let ae=this,ue=ae.options.findNearestPointBy.indexOf("y")>-1?2:1;delete ae.kdTree,Pe(function(){ae.kdTree=function xe(Ae,De,ze){let je,Ke,Ze=Ae?.length;if(Ze)return je=ae.kdAxisArray[De%ze],Ae.sort((Ge,Ne)=>(Ge[je]||0)-(Ne[je]||0)),{point:Ae[Ke=Math.floor(Ze/2)],left:xe(Ae.slice(0,Ke),De+1,ze),right:xe(Ae.slice(Ke+1),De+1,ze)}}(ae.getValidPoints(void 0,!ae.directTouch),ue,ue),ae.buildingKdTree=!1},ae.options.kdNow||fe?.type==="touchstart"?0:1)}searchKDTree(fe,ae,ue){let xe=this,[Ae,De]=this.kdAxisArray,ze=ae?"distX":"dist",je=(xe.options.findNearestPointBy||"").indexOf("y")>-1?2:1,Ke=!!xe.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(ue),this.kdTree)return function Ze(Ge,Ne,We,Ye){let Qe=Ne.point,Le=xe.kdAxisArray[We%Ye],ye,we,Ve=Qe;(function(pt,_t){let St=pt[Ae],Et=_t[Ae],bt=ge(St)&&ge(Et)?St-Et:null,Nt=pt[De],Ft=_t[De],qt=ge(Nt)&&ge(Ft)?Nt-Ft:0,Xt=Ke&&_t.marker?.radius||0;_t.dist=Math.sqrt((bt&&bt*bt||0)+qt*qt)-Xt,_t.distX=ge(bt)?Math.abs(bt)-Xt:Number.MAX_VALUE})(Ge,Qe);let Xe=(Ge[Le]||0)-(Qe[Le]||0)+(Ke&&Qe.marker?.radius||0),nt=Xe<0?"left":"right",lt=Xe<0?"right":"left";return Ne[nt]&&(Ve=(ye=Ze(Ge,Ne[nt],We+1,Ye))[ze]=0&&De<=(xe?xe.len:ae.plotHeight)&&Ae>=0&&Ae<=(ue?ue.len:ae.plotWidth)}drawTracker(){let fe=this,ae=fe.options,ue=ae.trackByArea,xe=[].concat((ue?fe.areaPath:fe.graphPath)||[]),Ae=fe.chart,De=Ae.pointer,ze=Ae.renderer,je=Ae.options.tooltip?.snap||0,Ke=()=>{ae.enableMouseTracking&&Ae.hoverSeries!==fe&&fe.onMouseOver()},Ze="rgba(192,192,192,"+(I?1e-4:.002)+")",Ge=fe.tracker;Ge?Ge.attr({d:xe}):fe.graph&&(fe.tracker=Ge=ze.path(xe).attr({visibility:fe.visible?"inherit":"hidden",zIndex:2}).addClass(ue?"highcharts-tracker-area":"highcharts-tracker-line").add(fe.group),Ae.styledMode||Ge.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:Ze,fill:ue?Ze:"none","stroke-width":fe.graph.strokeWidth()+(ue?0:2*je)}),[fe.tracker,fe.markerGroup,fe.dataLabelsGroup].forEach(Ne=>{Ne&&(Ne.addClass("highcharts-tracker").on("mouseover",Ke).on("mouseout",We=>{De?.onTrackerMouseOut(We)}),ae.cursor&&!Ae.styledMode&&Ne.css({cursor:ae.cursor}),Ne.on("touchstart",Ke))})),ee(this,"afterDrawTracker")}addPoint(fe,ae,ue,xe,Ae){let De,ze,je=this.options,Ke=this.data,Ze=this.chart,Ge=this.xAxis,Ne=Ge&&Ge.hasNames&&Ge.names,We=je.data,Ye=this.xData;ae=Re(ae,!0);let Qe={series:this};this.pointClass.prototype.applyOptions.apply(Qe,[fe]);let Le=Qe.x;if(ze=Ye.length,this.requireSorting&&LeLe;)ze--;this.updateParallelArrays(Qe,"splice",[ze,0,0]),this.updateParallelArrays(Qe,ze),Ne&&Qe.name&&(Ne[Le]=Qe.name),We.splice(ze,0,fe),(De||this.processedData)&&(this.data.splice(ze,0,null),this.processData()),je.legendType==="point"&&this.generatePoints(),ue&&(Ke[0]&&Ke[0].remove?Ke[0].remove(!1):(Ke.shift(),this.updateParallelArrays(Qe,"shift"),We.shift())),Ae!==!1&&ee(this,"addPoint",{point:Qe}),this.isDirty=!0,this.isDirtyData=!0,ae&&Ze.redraw(xe)}removePoint(fe,ae,ue){let xe=this,Ae=xe.data,De=Ae[fe],ze=xe.points,je=xe.chart,Ke=function(){ze&&ze.length===Ae.length&&ze.splice(fe,1),Ae.splice(fe,1),xe.options.data.splice(fe,1),xe.updateParallelArrays(De||{series:xe},"splice",[fe,1]),De&&De.destroy(),xe.isDirty=!0,xe.isDirtyData=!0,ae&&je.redraw()};T(ue,je),ae=Re(ae,!0),De?De.firePointEvent("remove",null,Ke):Ke()}remove(fe,ae,ue,xe){let Ae=this,De=Ae.chart;function ze(){Ae.destroy(xe),De.isDirtyLegend=De.isDirtyBox=!0,De.linkSeries(xe),Re(fe,!0)&&De.redraw(ae)}ue!==!1?ee(Ae,"remove",null,ze):ze()}update(fe,ae){ee(this,"update",{options:fe=ve(fe,this.userOptions)});let ue=this,xe=ue.chart,Ae=ue.userOptions,De=ue.initialType||ue.type,ze=xe.options.plotOptions,je=se[De].prototype,Ke=ue.finishedAnimating&&{animation:!1},Ze={},Ge,Ne,We=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],Ye=fe.type||Ae.type||xe.options.chart.type,Qe=!(this.hasDerivedData||Ye&&Ye!==this.type||fe.pointStart!==void 0||fe.pointInterval!==void 0||fe.relativeXValue!==void 0||fe.joinBy||fe.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some(ye=>ue.hasOptionChanged(ye)));Ye=Ye||De,Qe&&(We.push("data","isDirtyData","isDirtyCanvas","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"),fe.visible!==!1&&We.push("area","graph"),ue.parallelArrays.forEach(function(ye){We.push(ye+"Data")}),fe.data&&(fe.dataSorting&&N(ue.options.dataSorting,fe.dataSorting),this.setData(fe.data,!1))),fe=$e(Ae,{index:Ae.index===void 0?ue.index:Ae.index,pointStart:ze?.series?.pointStart??Ae.pointStart??ue.xData?.[0]},!Qe&&{data:ue.options.data},fe,Ke),Qe&&fe.data&&(fe.data=ue.options.data),(We=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(We)).forEach(function(ye){We[ye]=ue[ye],delete ue[ye]});let Le=!1;if(se[Ye]){if(Le=Ye!==ue.type,ue.remove(!1,!1,!1,!0),Le)if(xe.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(ue,se[Ye].prototype);else{let ye=Object.hasOwnProperty.call(ue,"hcEvents")&&ue.hcEvents;for(Ne in je)ue[Ne]=void 0;N(ue,se[Ye].prototype),ye?ue.hcEvents=ye:delete ue.hcEvents}}else te(17,!0,xe,{missingModuleFor:Ye});if(We.forEach(function(ye){ue[ye]=We[ye]}),ue.init(xe,fe),Qe&&this.points)for(let ye of((Ge=ue.options).visible===!1?(Ze.graphic=1,Ze.dataLabel=1):(this.hasMarkerChanged(Ge,Ae)&&(Ze.graphic=1),ue.hasDataLabels?.()||(Ze.dataLabel=1)),this.points))ye&&ye.series&&(ye.resolveColor(),Object.keys(Ze).length&&ye.destroyElements(Ze),Ge.showInLegend===!1&&ye.legendItem&&xe.legend.destroyItem(ye));ue.initialType=De,xe.linkSeries(),xe.setSortedData(),Le&&ue.linkedSeries.length&&(ue.isDirtyData=!0),ee(this,"afterUpdate"),Re(ae,!0)&&xe.redraw(!!Qe&&void 0)}setName(fe){this.name=this.options.name=this.userOptions.name=fe,this.chart.isDirtyLegend=!0}hasOptionChanged(fe){let ae=this.chart,ue=this.options[fe],xe=ae.options.plotOptions,Ae=this.userOptions[fe],De=Re(xe?.[this.type]?.[fe],xe?.series?.[fe]);return Ae&&!ge(De)?ue!==Ae:ue!==Re(De,ue)}onMouseOver(){let fe=this.chart,ae=fe.hoverSeries;fe.pointer?.setHoverChartIndex(),ae&&ae!==this&&ae.onMouseOut(),this.options.events.mouseOver&&ee(this,"mouseOver"),this.setState("hover"),fe.hoverSeries=this}onMouseOut(){let fe=this.options,ae=this.chart,ue=ae.tooltip,xe=ae.hoverPoint;ae.hoverSeries=null,xe&&xe.onMouseOut(),this&&fe.events.mouseOut&&ee(this,"mouseOut"),ue&&!this.stickyTracking&&(!ue.shared||this.noSharedTooltip)&&ue.hide(),ae.series.forEach(function(Ae){Ae.setState("",!0)})}setState(fe,ae){let ue=this,xe=ue.options,Ae=ue.graph,De=xe.inactiveOtherPoints,ze=xe.states,je=Re(ze[fe||"normal"]&&ze[fe||"normal"].animation,ue.chart.options.chart.animation),Ke=xe.lineWidth,Ze=xe.opacity;if(fe=fe||"",ue.state!==fe&&([ue.group,ue.markerGroup,ue.dataLabelsGroup].forEach(function(Ge){Ge&&(ue.state&&Ge.removeClass("highcharts-series-"+ue.state),fe&&Ge.addClass("highcharts-series-"+fe))}),ue.state=fe,!ue.chart.styledMode)){if(ze[fe]&&ze[fe].enabled===!1)return;if(fe&&(Ke=ze[fe].lineWidth||Ke+(ze[fe].lineWidthPlus||0),Ze=Re(ze[fe].opacity,Ze)),Ae&&!Ae.dashstyle&&Oe(Ke))for(let Ge of[Ae,...this.zones.map(Ne=>Ne.graph)])Ge?.animate({"stroke-width":Ke},je);De||[ue.group,ue.markerGroup,ue.dataLabelsGroup,ue.labelBySeries].forEach(function(Ge){Ge&&Ge.animate({opacity:Ze},je)})}ae&&De&&ue.points&&ue.setAllPointsToState(fe||void 0)}setAllPointsToState(fe){this.points.forEach(function(ae){ae.setState&&ae.setState(fe)})}setVisible(fe,ae){let ue=this,xe=ue.chart,Ae=xe.options.chart.ignoreHiddenSeries,De=ue.visible;ue.visible=fe=ue.options.visible=ue.userOptions.visible=fe===void 0?!De:fe;let ze=fe?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(je=>{ue[je]?.[ze]()}),(xe.hoverSeries===ue||xe.hoverPoint?.series===ue)&&ue.onMouseOut(),ue.legendItem&&xe.legend.colorizeItem(ue,fe),ue.isDirty=!0,ue.options.stacking&&xe.series.forEach(je=>{je.options.stacking&&je.visible&&(je.isDirty=!0)}),ue.linkedSeries.forEach(je=>{je.setVisible(fe,!1)}),Ae&&(xe.isDirtyBox=!0),ee(ue,ze),ae!==!1&&xe.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(fe){this.selected=fe=this.options.selected=fe===void 0?!this.selected:fe,this.checkbox&&(this.checkbox.checked=fe),ee(this,fe?"select":"unselect")}shouldShowTooltip(fe,ae,ue={}){return ue.series=this,ue.visiblePlotOnly=!0,this.chart.isInsidePlot(fe,ae,ue)}drawLegendSymbol(fe,ae){u[this.options.legendSymbol||"rectangle"]?.call(this,fe,ae)}}return Ie.defaultOptions=_,Ie.types=x.seriesTypes,Ie.registerType=x.registerSeriesType,N(Ie.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:g,requireSorting:!0,sorted:!0}),x.series=Ie,Ie}),n(r,"Core/Chart/Chart.js",[r["Core/Animation/AnimationUtilities.js"],r["Core/Axis/Axis.js"],r["Core/Defaults.js"],r["Core/Templating.js"],r["Core/Foundation.js"],r["Core/Globals.js"],r["Core/Renderer/RendererRegistry.js"],r["Core/Series/Series.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Renderer/SVG/SVGRenderer.js"],r["Core/Time.js"],r["Core/Utilities.js"],r["Core/Renderer/HTML/AST.js"],r["Core/Axis/Tick.js"]],function(o,a,l,c,u,g,_,x,S,O,E,T,D,$){let{animate:I,animObject:H,setAnimation:se}=o,{defaultOptions:ie,defaultTime:ne}=l,{numberFormat:le}=c,{registerEventOptions:me}=u,{charts:_e,doc:ge,marginNames:de,svg:ve,win:pe}=g,{seriesTypes:te}=S,{addEvent:N,attr:B,createElement:ee,css:oe,defined:he,diffObjects:be,discardElement:Ce,erase:Oe,error:Se,extend:$e,find:ke,fireEvent:Re,getStyle:Be,isArray:Ee,isNumber:Pe,isObject:Ie,isString:Fe,merge:fe,objectEach:ae,pick:ue,pInt:xe,relativeLength:Ae,removeEvent:De,splat:ze,syncTimeout:je,uniqueKey:Ke}=T;class Ze{static chart(Ne,We,Ye){return new Ze(Ne,We,Ye)}constructor(Ne,We,Ye){this.sharedClips={};let Qe=[...arguments];(Fe(Ne)||Ne.nodeName)&&(this.renderTo=Qe.shift()),this.init(Qe[0],Qe[1])}setZoomOptions(){let Ne=this.options.chart,We=Ne.zooming;this.zooming={...We,type:ue(Ne.zoomType,We.type),key:ue(Ne.zoomKey,We.key),pinchType:ue(Ne.pinchType,We.pinchType),singleTouch:ue(Ne.zoomBySingleTouch,We.singleTouch,!1),resetButton:fe(We.resetButton,Ne.resetZoomButton)}}init(Ne,We){Re(this,"init",{args:arguments},function(){let Ye=fe(ie,Ne),Qe=Ye.chart;this.userOptions=$e({},Ne),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=We,this.isResizing=0,this.options=Ye,this.axes=[],this.series=[],this.time=Ne.time&&Object.keys(Ne.time).length?new E(Ne.time):g.time,this.numberFormatter=Qe.numberFormatter||le,this.styledMode=Qe.styledMode,this.hasCartesianSeries=Qe.showAxes,this.index=_e.length,_e.push(this),g.chartCount++,me(this,Qe),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),Re(this,"afterInit"),this.firstRender()})}initSeries(Ne){let We=this.options.chart,Ye=Ne.type||We.type,Qe=te[Ye];Qe||Se(17,!0,this,{missingModuleFor:Ye});let Le=new Qe;return typeof Le.init=="function"&&Le.init(this,Ne),Le}setSortedData(){this.getSeriesOrderByLinks().forEach(function(Ne){Ne.points||Ne.data||!Ne.enabledDataSorting||Ne.setData(Ne.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(Ne,We){return Ne.linkedSeries.length||We.linkedSeries.length?We.linkedSeries.length-Ne.linkedSeries.length:0})}orderItems(Ne,We=0){let Ye=this[Ne],Qe=this.options[Ne]=ze(this.options[Ne]).slice(),Le=this.userOptions[Ne]=this.userOptions[Ne]?ze(this.userOptions[Ne]).slice():[];if(this.hasRendered&&(Qe.splice(We),Le.splice(We)),Ye)for(let ye=We,we=Ye.length;ye=Math.max(Xe+ye,bt.pos)&&Nt<=Math.min(Xe+ye+pt.width,bt.pos+bt.len)||(Et.isInsidePlot=!1)}if(!Ye.ignoreY&&Et.isInsidePlot){let bt=!Qe&&Ye.axis&&!Ye.axis.isXAxis&&Ye.axis||lt&&(Qe?lt.xAxis:lt.yAxis)||{pos:we,len:1/0},Nt=Ye.paneCoordinates?bt.pos+St:we+St;Nt>=Math.max(nt+we,bt.pos)&&Nt<=Math.min(nt+we+pt.height,bt.pos+bt.len)||(Et.isInsidePlot=!1)}return Re(this,"afterIsInsidePlot",Et),Et.isInsidePlot}redraw(Ne){Re(this,"beforeRedraw");let We=this.hasCartesianSeries?this.axes:this.colorAxis||[],Ye=this.series,Qe=this.pointer,Le=this.legend,ye=this.userOptions.legend,we=this.renderer,Ve=we.isHidden(),Xe=[],nt,lt,pt,_t=this.isDirtyBox,St=this.isDirtyLegend,Et;for(we.rootFontSize=we.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),se(!!this.hasRendered&&Ne,this),Ve&&this.temporaryDisplay(),this.layOutTitles(!1),pt=Ye.length;pt--;)if(((Et=Ye[pt]).options.stacking||Et.options.centerInCategory)&&(lt=!0,Et.isDirty)){nt=!0;break}if(nt)for(pt=Ye.length;pt--;)(Et=Ye[pt]).options.stacking&&(Et.isDirty=!0);Ye.forEach(function(bt){bt.isDirty&&(bt.options.legendType==="point"?(typeof bt.updateTotals=="function"&&bt.updateTotals(),St=!0):ye&&(ye.labelFormatter||ye.labelFormat)&&(St=!0)),bt.isDirtyData&&Re(bt,"updatedData")}),St&&Le&&Le.options.enabled&&(Le.render(),this.isDirtyLegend=!1),lt&&this.getStacks(),We.forEach(function(bt){bt.updateNames(),bt.setScale()}),this.getMargins(),We.forEach(function(bt){bt.isDirty&&(_t=!0)}),We.forEach(function(bt){let Nt=bt.min+","+bt.max;bt.extKey!==Nt&&(bt.extKey=Nt,Xe.push(function(){Re(bt,"afterSetExtremes",$e(bt.eventArgs,bt.getExtremes())),delete bt.eventArgs})),(_t||lt)&&bt.redraw()}),_t&&this.drawChartBox(),Re(this,"predraw"),Ye.forEach(function(bt){(_t||bt.isDirty)&&bt.visible&&bt.redraw(),bt.isDirtyData=!1}),Qe&&Qe.reset(!0),we.draw(),Re(this,"redraw"),Re(this,"render"),Ve&&this.temporaryDisplay(!0),Xe.forEach(function(bt){bt.call()})}get(Ne){let We=this.series;function Ye(Le){return Le.id===Ne||Le.options&&Le.options.id===Ne}let Qe=ke(this.axes,Ye)||ke(this.series,Ye);for(let Le=0;!Qe&&Le(We.getPointsCollection().forEach(Ye=>{ue(Ye.selectedStaging,Ye.selected)&&Ne.push(Ye)}),Ne),[])}getSelectedSeries(){return this.series.filter(function(Ne){return Ne.selected})}setTitle(Ne,We,Ye){this.applyDescription("title",Ne),this.applyDescription("subtitle",We),this.applyDescription("caption",void 0),this.layOutTitles(Ye)}applyDescription(Ne,We){let Ye=this,Qe=this.options[Ne]=fe(this.options[Ne],We),Le=this[Ne];Le&&We&&(this[Ne]=Le=Le.destroy()),Qe&&!Le&&((Le=this.renderer.text(Qe.text,0,0,Qe.useHTML).attr({align:Qe.align,class:"highcharts-"+Ne,zIndex:Qe.zIndex||4}).add()).update=function(ye,we){Ye.applyDescription(Ne,ye),Ye.layOutTitles(we)},this.styledMode||Le.css($e(Ne==="title"?{fontSize:this.options.isStock?"1em":"1.2em"}:{},Qe.style)),this[Ne]=Le)}layOutTitles(Ne=!0){let We=[0,0,0],Ye=this.renderer,Qe=this.spacingBox;["title","subtitle","caption"].forEach(function(ye){let we=this[ye],Ve=this.options[ye],Xe=Ve.verticalAlign||"top",nt=ye==="title"?Xe==="top"?-3:0:Xe==="top"?We[0]+2:0;if(we){we.css({width:(Ve.width||Qe.width+(Ve.widthAdjust||0))+"px"});let lt=Ye.fontMetrics(we).b,pt=Math.round(we.getBBox(Ve.useHTML).height);we.align($e({y:Xe==="bottom"?lt:nt+lt,height:pt},Ve),!1,"spacingBox"),Ve.floating||(Xe==="top"?We[0]=Math.ceil(We[0]+pt):Xe==="bottom"&&(We[2]=Math.ceil(We[2]+pt)))}},this),We[0]&&(this.options.title.verticalAlign||"top")==="top"&&(We[0]+=this.options.title.margin),We[2]&&this.options.caption.verticalAlign==="bottom"&&(We[2]+=this.options.caption.margin);let Le=!this.titleOffset||this.titleOffset.join(",")!==We.join(",");this.titleOffset=We,Re(this,"afterLayOutTitles"),!this.isDirtyBox&&Le&&(this.isDirtyBox=this.isDirtyLegend=Le,this.hasRendered&&Ne&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:Be(this.renderTo,"width",!0)||0,height:Be(this.renderTo,"height",!0)||0}}getChartSize(){let Ne=this.options.chart,We=Ne.width,Ye=Ne.height,Qe=this.getContainerBox();this.chartWidth=Math.max(0,We||Qe.width||600),this.chartHeight=Math.max(0,Ae(Ye,this.chartWidth)||(Qe.height>1?Qe.height:400)),this.containerBox=Qe}temporaryDisplay(Ne){let We=this.renderTo,Ye;if(Ne)for(;We&&We.style;)We.hcOrigStyle&&(oe(We,We.hcOrigStyle),delete We.hcOrigStyle),We.hcOrigDetached&&(ge.body.removeChild(We),We.hcOrigDetached=!1),We=We.parentNode;else for(;We&&We.style&&(ge.body.contains(We)||We.parentNode||(We.hcOrigDetached=!0,ge.body.appendChild(We)),(Be(We,"display",!1)==="none"||We.hcOricDetached)&&(We.hcOrigStyle={display:We.style.display,height:We.style.height,overflow:We.style.overflow},Ye={display:"block",overflow:"hidden"},We!==this.renderTo&&(Ye.height=0),oe(We,Ye),We.offsetWidth||We.style.setProperty("display","block","important")),(We=We.parentNode)!==ge.body););}setClassName(Ne){this.container.className="highcharts-container "+(Ne||"")}getContainer(){let Ne=this.options,We=Ne.chart,Ye="data-highcharts-chart",Qe=Ke(),Le,ye=this.renderTo;ye||(this.renderTo=ye=We.renderTo),Fe(ye)&&(this.renderTo=ye=ge.getElementById(ye)),ye||Se(13,!0,this);let we=xe(B(ye,Ye));Pe(we)&&_e[we]&&_e[we].hasRendered&&_e[we].destroy(),B(ye,Ye,this.index),ye.innerHTML=D.emptyHTML,We.skipClone||ye.offsetWidth||this.temporaryDisplay(),this.getChartSize();let Ve=this.chartHeight,Xe=this.chartWidth;oe(ye,{overflow:"hidden"}),this.styledMode||(Le=$e({position:"relative",overflow:"hidden",width:Xe+"px",height:Ve+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},We.style||{}));let nt=ee("div",{id:Qe},Le,ye);this.container=nt,this.getChartSize(),Xe===this.chartWidth||(Xe=this.chartWidth,this.styledMode||oe(nt,{width:ue(We.style?.width,Xe+"px")})),this.containerBox=this.getContainerBox(),this._cursor=nt.style.cursor;let lt=We.renderer||!ve?_.getRendererType(We.renderer):O;if(this.renderer=new lt(nt,Xe,Ve,void 0,We.forExport,Ne.exporting&&Ne.exporting.allowHTML,this.styledMode),se(void 0,this),this.setClassName(We.className),this.styledMode)for(let pt in Ne.defs)this.renderer.definition(Ne.defs[pt]);else this.renderer.setStyle(We.style);this.renderer.chartIndex=this.index,Re(this,"afterGetContainer")}getMargins(Ne){let{spacing:We,margin:Ye,titleOffset:Qe}=this;this.resetMargins(),Qe[0]&&!he(Ye[0])&&(this.plotTop=Math.max(this.plotTop,Qe[0]+We[0])),Qe[2]&&!he(Ye[2])&&(this.marginBottom=Math.max(this.marginBottom,Qe[2]+We[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(Ye,We),Re(this,"getMargins"),Ne||this.getAxisMargins()}getAxisMargins(){let Ne=this,We=Ne.axisOffset=[0,0,0,0],Ye=Ne.colorAxis,Qe=Ne.margin,Le=function(ye){ye.forEach(function(we){we.visible&&we.getOffset()})};Ne.hasCartesianSeries?Le(Ne.axes):Ye&&Ye.length&&Le(Ye),de.forEach(function(ye,we){he(Qe[we])||(Ne[ye]+=We[we])}),Ne.setChartSize()}getOptions(){return be(this.userOptions,ie)}reflow(Ne){let We=this,Ye=We.containerBox,Qe=We.getContainerBox();delete We.pointer?.chartPosition,!We.isPrinting&&!We.isResizing&&Ye&&Qe.width&&((Qe.width!==Ye.width||Qe.height!==Ye.height)&&(T.clearTimeout(We.reflowTimeout),We.reflowTimeout=je(function(){We.container&&We.setSize(void 0,void 0,!1)},Ne?100:0)),We.containerBox=Qe)}setReflow(){let Ne=this,We=Ye=>{Ne.options?.chart.reflow&&Ne.hasLoaded&&Ne.reflow(Ye)};if(typeof ResizeObserver=="function")new ResizeObserver(We).observe(Ne.renderTo);else{let Ye=N(pe,"resize",We);N(this,"destroy",Ye)}}setSize(Ne,We,Ye){let Qe=this,Le=Qe.renderer;Qe.isResizing+=1,se(Ye,Qe);let ye=Le.globalAnimation;Qe.oldChartHeight=Qe.chartHeight,Qe.oldChartWidth=Qe.chartWidth,Ne!==void 0&&(Qe.options.chart.width=Ne),We!==void 0&&(Qe.options.chart.height=We),Qe.getChartSize();let{chartWidth:we,chartHeight:Ve,scrollablePixelsX:Xe=0,scrollablePixelsY:nt=0}=Qe;(Qe.isDirtyBox||we!==Qe.oldChartWidth||Ve!==Qe.oldChartHeight)&&(Qe.styledMode||(ye?I:oe)(Qe.container,{width:`${we+Xe}px`,height:`${Ve+nt}px`},ye),Qe.setChartSize(!0),Le.setSize(we,Ve,ye),Qe.axes.forEach(function(lt){lt.isDirty=!0,lt.setScale()}),Qe.isDirtyLegend=!0,Qe.isDirtyBox=!0,Qe.layOutTitles(),Qe.getMargins(),Qe.redraw(ye),Qe.oldChartHeight=void 0,Re(Qe,"resize"),setTimeout(()=>{Qe&&Re(Qe,"endResize")},H(ye).duration)),Qe.isResizing-=1}setChartSize(Ne){let We,Ye,Qe,Le,{chartHeight:ye,chartWidth:we,inverted:Ve,spacing:Xe,renderer:nt}=this,lt=this.clipOffset,pt=Math[Ve?"floor":"round"];this.plotLeft=We=Math.round(this.plotLeft),this.plotTop=Ye=Math.round(this.plotTop),this.plotWidth=Qe=Math.max(0,Math.round(we-We-this.marginRight)),this.plotHeight=Le=Math.max(0,Math.round(ye-Ye-this.marginBottom)),this.plotSizeX=Ve?Le:Qe,this.plotSizeY=Ve?Qe:Le,this.spacingBox=nt.spacingBox={x:Xe[3],y:Xe[0],width:we-Xe[3]-Xe[1],height:ye-Xe[0]-Xe[2]},this.plotBox=nt.plotBox={x:We,y:Ye,width:Qe,height:Le},lt&&(this.clipBox={x:pt(lt[3]),y:pt(lt[0]),width:pt(this.plotSizeX-lt[1]-lt[3]),height:pt(this.plotSizeY-lt[0]-lt[2])}),Ne||(this.axes.forEach(function(_t){_t.setAxisSize(),_t.setAxisTranslation()}),nt.alignElements()),Re(this,"afterSetChartSize",{skipAxes:Ne})}resetMargins(){Re(this,"resetMargins");let Ne=this,We=Ne.options.chart,Ye=We.plotBorderWidth||0,Qe=Ye/2;["margin","spacing"].forEach(function(Le){let ye=We[Le],we=Ie(ye)?ye:[ye,ye,ye,ye];["Top","Right","Bottom","Left"].forEach(function(Ve,Xe){Ne[Le][Xe]=ue(We[Le+Ve],we[Xe])})}),de.forEach(function(Le,ye){Ne[Le]=ue(Ne.margin[ye],Ne.spacing[ye])}),Ne.axisOffset=[0,0,0,0],Ne.clipOffset=[Qe,Qe,Qe,Qe],Ne.plotBorderWidth=Ye}drawChartBox(){let Ne=this.options.chart,We=this.renderer,Ye=this.chartWidth,Qe=this.chartHeight,Le=this.styledMode,ye=this.plotBGImage,we=Ne.backgroundColor,Ve=Ne.plotBackgroundColor,Xe=Ne.plotBackgroundImage,nt=this.plotLeft,lt=this.plotTop,pt=this.plotWidth,_t=this.plotHeight,St=this.plotBox,Et=this.clipRect,bt=this.clipBox,Nt=this.chartBackground,Ft=this.plotBackground,qt=this.plotBorder,Xt,mr,nr,ur="animate";Nt||(this.chartBackground=Nt=We.rect().addClass("highcharts-background").add(),ur="attr"),Le?Xt=mr=Nt.strokeWidth():(mr=(Xt=Ne.borderWidth||0)+(Ne.shadow?8:0),nr={fill:we||"none"},(Xt||Nt["stroke-width"])&&(nr.stroke=Ne.borderColor,nr["stroke-width"]=Xt),Nt.attr(nr).shadow(Ne.shadow)),Nt[ur]({x:mr/2,y:mr/2,width:Ye-mr-Xt%2,height:Qe-mr-Xt%2,r:Ne.borderRadius}),ur="animate",Ft||(ur="attr",this.plotBackground=Ft=We.rect().addClass("highcharts-plot-background").add()),Ft[ur](St),!Le&&(Ft.attr({fill:Ve||"none"}).shadow(Ne.plotShadow),Xe&&(ye?(Xe!==ye.attr("href")&&ye.attr("href",Xe),ye.animate(St)):this.plotBGImage=We.image(Xe,nt,lt,pt,_t).add())),Et?Et.animate({width:bt.width,height:bt.height}):this.clipRect=We.clipRect(bt),ur="animate",qt||(ur="attr",this.plotBorder=qt=We.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),Le||qt.attr({stroke:Ne.plotBorderColor,"stroke-width":Ne.plotBorderWidth||0,fill:"none"}),qt[ur](qt.crisp({x:nt,y:lt,width:pt,height:_t},-qt.strokeWidth())),this.isDirtyBox=!1,Re(this,"afterDrawChartBox")}propFromSeries(){let Ne,We,Ye,Qe=this,Le=Qe.options.chart,ye=Qe.options.series;["inverted","angular","polar"].forEach(function(we){for(We=te[Le.type],Ye=Le[we]||We&&We.prototype[we],Ne=ye&&ye.length;!Ye&&Ne--;)(We=te[ye[Ne].type])&&We.prototype[we]&&(Ye=!0);Qe[we]=Ye})}linkSeries(Ne){let We=this,Ye=We.series;Ye.forEach(function(Qe){Qe.linkedSeries.length=0}),Ye.forEach(function(Qe){let{linkedTo:Le}=Qe.options;if(Fe(Le)){let ye;(ye=Le===":previous"?We.series[Qe.index-1]:We.get(Le))&&ye.linkedParent!==Qe&&(ye.linkedSeries.push(Qe),Qe.linkedParent=ye,ye.enabledDataSorting&&Qe.setDataSortingOptions(),Qe.visible=ue(Qe.options.visible,ye.options.visible,Qe.visible))}}),Re(this,"afterLinkSeries",{isUpdating:Ne})}renderSeries(){this.series.forEach(function(Ne){Ne.translate(),Ne.render()})}render(){let Ne=this.axes,We=this.colorAxis,Ye=this.renderer,Qe=this.options.chart.axisLayoutRuns||2,Le=nt=>{nt.forEach(lt=>{lt.visible&<.render()})},ye=0,we=!0,Ve,Xe=0;for(let nt of(this.setTitle(),Re(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),Ne)){let{options:lt}=nt,{labels:pt}=lt;if(this.hasCartesianSeries&&nt.horiz&&nt.visible&&pt.enabled&&nt.series.length&&nt.coll!=="colorAxis"&&!this.polar){ye=lt.tickLength,nt.createGroups();let _t=new $(nt,0,"",!0),St=_t.createLabel("x",pt);if(_t.destroy(),St&&ue(pt.reserveSpace,!Pe(lt.crossing))&&(ye=St.getBBox().height+pt.distance+Math.max(lt.offset||0,0)),ye){St?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-ye,0);(we||Ve||Qe>1)&&Xe(Xe?1:1.1),Ve=lt/this.plotHeight>(Xe?1:1.05),Xe++}this.drawChartBox(),this.hasCartesianSeries?Le(Ne):We&&We.length&&Le(We),this.seriesGroup||(this.seriesGroup=Ye.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(Ne){let We=this,Ye=fe(!0,this.options.credits,Ne);Ye.enabled&&!this.credits&&(this.credits=this.renderer.text(Ye.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){Ye.href&&(pe.location.href=Ye.href)}).attr({align:Ye.position.align,zIndex:8}),We.styledMode||this.credits.css(Ye.style),this.credits.add().align(Ye.position),this.credits.update=function(Qe){We.credits=We.credits.destroy(),We.addCredits(Qe)})}destroy(){let Ne,We=this,Ye=We.axes,Qe=We.series,Le=We.container,ye=Le&&Le.parentNode;for(Re(We,"destroy"),We.renderer.forExport?Oe(_e,We):_e[We.index]=void 0,g.chartCount--,We.renderTo.removeAttribute("data-highcharts-chart"),De(We),Ne=Ye.length;Ne--;)Ye[Ne]=Ye[Ne].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),Ne=Qe.length;Ne--;)Qe[Ne]=Qe[Ne].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(we){let Ve=We[we];Ve&&Ve.destroy&&(We[we]=Ve.destroy())}),Le&&(Le.innerHTML=D.emptyHTML,De(Le),ye&&Ce(Le)),ae(We,function(we,Ve){delete We[Ve]})}firstRender(){let Ne=this,We=Ne.options;Ne.getContainer(),Ne.resetMargins(),Ne.setChartSize(),Ne.propFromSeries(),Ne.getAxes();let Ye=Ee(We.series)?We.series:[];We.series=[],Ye.forEach(function(Qe){Ne.initSeries(Qe)}),Ne.linkSeries(),Ne.setSortedData(),Re(Ne,"beforeRender"),Ne.render(),Ne.pointer?.getChartPosition(),Ne.renderer.imgCount||Ne.hasLoaded||Ne.onload(),Ne.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(Ne){Ne&&this.index!==void 0&&Ne.apply(this,[this])},this),Re(this,"load"),Re(this,"render"),he(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:Ne,title:We}=this;!Ne||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(We&&We.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"}))}pan(Ne,We){let Ye=this,Qe=typeof We=="object"?We:{enabled:We,type:"x"},Le=Qe.type,ye=Le&&Ye[{x:"xAxis",xy:"axes",y:"yAxis"}[Le]].filter(Ve=>Ve.options.panningEnabled&&!Ve.options.isInternal),we=Ye.options.chart;we?.panning&&(we.panning=Qe),Re(this,"pan",{originalEvent:Ne},()=>{Ye.transform({axes:ye,event:Ne,to:{x:Ne.chartX-(Ye.mouseDownX||0),y:Ne.chartY-(Ye.mouseDownY||0)},trigger:"pan"}),oe(Ye.container,{cursor:"move"})})}transform(Ne){let{axes:We=this.axes,event:Ye,from:Qe={},reset:Le,selection:ye,to:we={},trigger:Ve}=Ne,{inverted:Xe}=this,nt=!1,lt;for(let pt of(this.hoverPoints?.forEach(_t=>_t.setState()),We)){let{horiz:_t,len:St,minPointOffset:Et=0,options:bt,reversed:Nt}=pt,Ft=_t?"width":"height",qt=_t?"x":"y",Xt=ue(we[Ft],pt.len),mr=ue(Qe[Ft],pt.len),nr=10>Math.abs(Xt)?1:Xt/mr,ur=(Qe[qt]||0)+mr/2-pt.pos,Mr=ur-((we[qt]??pt.pos)+Xt/2-pt.pos)/nr,Pr=Nt&&!Xe||!Nt&&Xe?-1:1;if(!Le&&(ur<0||ur>pt.len))continue;let fr=pt.toValue(Mr,!0)+(ye?0:Et*Pr),hr=pt.toValue(Mr+St/nr,!0)-(ye?0:Et*Pr||0),Ir=pt.allExtremes;if(fr>hr&&([fr,hr]=[hr,fr]),nr===1&&!Le&&pt.coll==="yAxis"&&!Ir){for(let ci of pt.series){let nn=ci.getExtremes(ci.getProcessedData(!0).yData,!0);Ir??(Ir={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),Pe(nn.dataMin)&&Pe(nn.dataMax)&&(Ir.dataMin=Math.min(nn.dataMin,Ir.dataMin),Ir.dataMax=Math.max(nn.dataMax,Ir.dataMax))}pt.allExtremes=Ir}let{dataMin:Bi,dataMax:li,min:Mn,max:Sr}=$e(pt.getExtremes(),Ir||{}),Lt=Bi??bt.min,On=li??bt.max,Ur=hr-fr,Dn=pt.categories?0:Math.min(Ur,On-Lt),tn=Lt-Dn*(he(bt.min)?0:bt.minPadding),rn=On+Dn*(he(bt.max)?0:bt.maxPadding),Nn=pt.allowZoomOutside||nr===1||Ve!=="zoom"&&nr>1,$r=Math.min(bt.min??tn,tn,Nn?Mn:tn),qr=Math.max(bt.max??rn,rn,Nn?Sr:rn);(!pt.isOrdinal||nr!==1||Le)&&(fr<$r&&(fr=$r,nr>=1&&(hr=fr+Ur)),hr>qr&&(hr=qr,nr>=1&&(fr=hr-Ur)),(Le||pt.series.length&&(fr!==Mn||hr!==Sr)&&fr>=$r&&hr<=qr)&&(ye?ye[pt.coll].push({axis:pt,min:fr,max:hr}):(pt.isPanning=Ve!=="zoom",pt.setExtremes(Le?void 0:fr,Le?void 0:hr,!1,!1,{move:Mr,trigger:Ve,scale:nr}),!Le&&(fr>$r||hr{delete Ne.selection,Ne.trigger="zoom",this.transform(Ne)}):(lt&&!this.resetZoomButton?this.showResetZoom():!lt&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()),this.redraw(Ve==="zoom"&&(this.options.chart.animation??this.pointCount<100)))),nt}}return $e(Ze.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Ze.prototype.addAxis,[!0]],yAxis:[Ze.prototype.addAxis,[!1]],series:[Ze.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),Ze}),n(r,"Extensions/ScrollablePlotArea.js",[r["Core/Animation/AnimationUtilities.js"],r["Core/Globals.js"],r["Core/Renderer/RendererRegistry.js"],r["Core/Utilities.js"]],function(o,a,l,c){let{stop:u}=o,{composed:g}=a,{addEvent:_,createElement:x,css:S,defined:O,merge:E,pushUnique:T}=c;function D(){let H=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!H&&(this.scrollablePlotArea=H=new I(this)),H?.applyFixed()}function $(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class I{static compose(se,ie,ne){T(g,this.compose)&&(_(se,"afterInit",$),_(ie,"afterSetChartSize",le=>this.afterSetSize(le.target,le)),_(ie,"render",D),_(ne,"show",$))}static afterSetSize(se,ie){let ne,le,me,{minWidth:_e,minHeight:ge}=se.options.chart.scrollablePlotArea||{},{clipBox:de,plotBox:ve,inverted:pe,renderer:te}=se;if(!te.forExport&&(_e?(se.scrollablePixelsX=ne=Math.max(0,_e-se.chartWidth),ne&&(se.scrollablePlotBox=E(se.plotBox),ve.width=se.plotWidth+=ne,de[pe?"height":"width"]+=ne,me=!0)):ge&&(se.scrollablePixelsY=le=Math.max(0,ge-se.chartHeight),O(le)&&(se.scrollablePlotBox=E(se.plotBox),ve.height=se.plotHeight+=le,de[pe?"width":"height"]+=le,me=!1)),O(me)&&!ie.skipAxes))for(let N of se.axes)N.horiz===me&&(N.setAxisSize(),N.setAxisTranslation())}constructor(se){let ie,ne=se.options.chart,le=l.getRendererType(),me=ne.scrollablePlotArea||{},_e=this.moveFixedElements.bind(this),ge={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};se.scrollablePixelsX&&(ge.overflowX="auto"),se.scrollablePixelsY&&(ge.overflowY="auto"),this.chart=se;let de=this.parentDiv=x("div",{className:"highcharts-scrolling-parent"},{position:"relative"},se.renderTo),ve=this.scrollingContainer=x("div",{className:"highcharts-scrolling"},ge,de),pe=this.innerContainer=x("div",{className:"highcharts-inner-container"},void 0,ve),te=this.fixedDiv=x("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(ne.style?.zIndex||0)+2,top:0},void 0,!0),N=this.fixedRenderer=new le(te,se.chartWidth,se.chartHeight,ne.style);this.mask=N.path().attr({fill:ne.backgroundColor||"#fff","fill-opacity":me.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),ve.parentNode.insertBefore(te,ve),S(se.renderTo,{overflow:"visible"}),_(se,"afterShowResetZoom",_e),_(se,"afterApplyDrilldown",_e),_(se,"afterLayOutTitles",_e),_(ve,"scroll",()=>{let{pointer:B,hoverPoint:ee}=se;B&&(delete B.chartPosition,ee&&(ie=ee),B.runPointActions(void 0,ie,!0))}),pe.appendChild(se.container)}applyFixed(){let{chart:se,fixedRenderer:ie,isDirty:ne,scrollingContainer:le}=this,{axisOffset:me,chartWidth:_e,chartHeight:ge,container:de,plotHeight:ve,plotLeft:pe,plotTop:te,plotWidth:N,scrollablePixelsX:B=0,scrollablePixelsY:ee=0}=se,{scrollPositionX:oe=0,scrollPositionY:he=0}=se.options.chart.scrollablePlotArea||{},be=_e+B,Ce=ge+ee;ie.setSize(_e,ge),(ne??!0)&&(this.isDirty=!1,this.moveFixedElements()),u(se.container),S(de,{width:`${be}px`,height:`${Ce}px`}),se.renderer.boxWrapper.attr({width:be,height:Ce,viewBox:[0,0,be,Ce].join(" ")}),se.chartBackground?.attr({width:be,height:Ce}),S(le,{width:`${_e}px`,height:`${ge}px`}),O(ne)||(le.scrollLeft=B*oe,le.scrollTop=ee*he);let Oe=te-me[0]-1,Se=pe-me[3]-1,$e=te+ve+me[2]+1,ke=pe+N+me[1]+1,Re=pe+N-B,Be=te+ve-ee,Ee=[["M",0,0]];B?Ee=[["M",0,Oe],["L",pe-1,Oe],["L",pe-1,$e],["L",0,$e],["Z"],["M",Re,Oe],["L",_e,Oe],["L",_e,$e],["L",Re,$e],["Z"]]:ee&&(Ee=[["M",Se,0],["L",Se,te-1],["L",ke,te-1],["L",ke,0],["Z"],["M",Se,Be],["L",Se,ge],["L",ke,ge],["L",ke,Be],["Z"]]),se.redrawTrigger!=="adjustHeight"&&this.mask.attr({d:Ee})}moveFixedElements(){let se,{container:ie,inverted:ne,scrollablePixelsX:le,scrollablePixelsY:me}=this.chart,_e=this.fixedRenderer,ge=I.fixedSelectors;for(let de of(le&&!ne?se=".highcharts-yaxis":le&&ne||me&&!ne?se=".highcharts-xaxis":me&&ne&&(se=".highcharts-yaxis"),se&&ge.push(`${se}:not(.highcharts-radial-axis)`,`${se}-labels:not(.highcharts-radial-axis-labels)`),ge))[].forEach.call(ie.querySelectorAll(de),ve=>{(ve.namespaceURI===_e.SVG_NS?_e.box:_e.box.parentNode).appendChild(ve),ve.style.pointerEvents="auto"})}}return I.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"],I}),n(r,"Core/Axis/Stacking/StackItem.js",[r["Core/Templating.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l){let{format:c}=o,{series:u}=a,{destroyObjectProperties:g,fireEvent:_,isNumber:x,pick:S}=l;return class{constructor(O,E,T,D,$){let I=O.chart.inverted,H=O.reversed;this.axis=O;let se=this.isNegative=!!T!=!!H;this.options=E=E||{},this.x=D,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=$,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:E.align||(I?se?"left":"right":"center"),verticalAlign:E.verticalAlign||(I?"middle":se?"bottom":"top"),y:E.y,x:E.x},this.textAlign=E.textAlign||(I?se?"right":"left":"center")}destroy(){g(this,this.axis)}render(O){let E=this.axis.chart,T=this.options,D=T.format,$=D?c(D,this,E):T.formatter.call(this);if(this.label)this.label.attr({text:$,visibility:"hidden"});else{this.label=E.renderer.label($,null,void 0,T.shape,void 0,void 0,T.useHTML,!1,"stack-labels");let I={r:T.borderRadius||0,text:$,padding:S(T.padding,5),visibility:"hidden"};E.styledMode||(I.fill=T.backgroundColor,I.stroke=T.borderColor,I["stroke-width"]=T.borderWidth,this.label.css(T.style||{})),this.label.attr(I),this.label.added||this.label.add(O)}this.label.labelrank=E.plotSizeY,_(this,"afterRender")}setOffset(O,E,T,D,$,I){let{alignOptions:H,axis:se,label:ie,options:ne,textAlign:le}=this,me=se.chart,_e=this.getStackBox({xOffset:O,width:E,boxBottom:T,boxTop:D,defaultX:$,xAxis:I}),{verticalAlign:ge}=H;if(ie&&_e){let de=ie.getBBox(void 0,0),ve=ie.padding,pe=S(ne.overflow,"justify")==="justify",te;H.x=ne.x||0,H.y=ne.y||0;let{x:N,y:B}=this.adjustStackPosition({labelBox:de,verticalAlign:ge,textAlign:le});_e.x-=N,_e.y-=B,ie.align(H,!1,_e),(te=me.isInsidePlot(ie.alignAttr.x+H.x+N,ie.alignAttr.y+H.y+B))||(pe=!1),pe&&u.prototype.justifyDataLabel.call(se,ie,H,ie.alignAttr,de,_e),ie.attr({x:ie.alignAttr.x,y:ie.alignAttr.y,rotation:ne.rotation,rotationOriginX:de.width*{left:0,center:.5,right:1}[ne.textAlign||"center"],rotationOriginY:de.height/2}),S(!pe&&ne.crop,!0)&&(te=x(ie.x)&&x(ie.y)&&me.isInsidePlot(ie.x-ve+(ie.width||0),ie.y)&&me.isInsidePlot(ie.x+ve,ie.y)),ie[te?"show":"hide"]()}_(this,"afterSetOffset",{xOffset:O,width:E})}adjustStackPosition({labelBox:O,verticalAlign:E,textAlign:T}){let D={bottom:0,middle:1,top:2,right:1,center:0,left:-1},$=D[E],I=D[T];return{x:O.width/2+O.width/2*I,y:O.height/2*$}}getStackBox(O){let E=this.axis,T=E.chart,{boxTop:D,defaultX:$,xOffset:I,width:H,boxBottom:se}=O,ie=E.stacking.usePercentage?100:S(D,this.total,0),ne=E.toPixels(ie),le=O.xAxis||T.xAxis[0],me=S($,le.translate(this.x))+I,_e=Math.abs(ne-E.toPixels(se||x(E.min)&&E.logarithmic&&E.logarithmic.lin2log(E.min)||0)),ge=T.inverted,de=this.isNegative;return ge?{x:(de?ne:ne-_e)-T.plotLeft,y:le.height-me-H,width:_e,height:H}:{x:me+le.transB-T.plotLeft,y:(de?ne-_e:ne)-T.plotTop,width:H,height:_e}}}}),n(r,"Core/Axis/Stacking/StackingAxis.js",[r["Core/Animation/AnimationUtilities.js"],r["Core/Axis/Axis.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Axis/Stacking/StackItem.js"],r["Core/Utilities.js"]],function(o,a,l,c,u){var g;let{getDeferredAnimation:_}=o,{series:{prototype:x}}=l,{addEvent:S,correctFloat:O,defined:E,destroyObjectProperties:T,fireEvent:D,isArray:$,isNumber:I,objectEach:H,pick:se}=u;function ie(){let te=this.inverted;this.axes.forEach(N=>{N.stacking&&N.stacking.stacks&&N.hasVisibleSeries&&(N.stacking.oldStacks=N.stacking.stacks)}),this.series.forEach(N=>{let B=N.xAxis&&N.xAxis.options||{};N.options.stacking&&N.reserveSpace()&&(N.stackKey=[N.type,se(N.options.stack,""),te?B.top:B.left,te?B.height:B.width].join(","))})}function ne(){let te=this.stacking;if(te){let N=te.stacks;H(N,(B,ee)=>{T(B),delete N[ee]}),te.stackTotalGroup?.destroy()}}function le(){this.stacking||(this.stacking=new pe(this))}function me(te,N,B,ee){return!E(te)||te.x!==N||ee&&te.stackKey!==ee?te={x:N,index:0,key:ee,stackKey:ee}:te.index++,te.key=[B,N,te.index].join(","),te}function _e(){let te,N=this,B=N.yAxis,ee=N.stackKey||"",oe=B.stacking.stacks,he=N.processedXData,be=N.options.stacking,Ce=N[be+"Stacker"];Ce&&[ee,"-"+ee].forEach(Oe=>{let Se=he.length,$e,ke,Re;for(;Se--;)$e=he[Se],te=N.getStackIndicator(te,$e,N.index,Oe),ke=oe[Oe]?.[$e],(Re=ke?.points[te.key||""])&&Ce.call(N,Re,ke,Se)})}function ge(te,N,B){let ee=N.total?100/N.total:0;te[0]=O(te[0]*ee),te[1]=O(te[1]*ee),this.stackedYData[B]=te[1]}function de(te){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?x.setStackedPoints.call(this,te,"group"):te.stacking.resetStacks())}function ve(te,N){let B,ee,oe,he,be,Ce,Oe,Se,$e,ke=N||this.options.stacking;if(!ke||!this.reserveSpace()||({group:"xAxis"}[ke]||"yAxis")!==te.coll)return;let Re=this.processedXData,Be=this.processedYData,Ee=[],Pe=Be.length,Ie=this.options,Fe=Ie.threshold||0,fe=Ie.startFromThreshold?Fe:0,ae=Ie.stack,ue=N?`${this.type},${ke}`:this.stackKey||"",xe="-"+ue,Ae=this.negStacks,De=te.stacking,ze=De.stacks,je=De.oldStacks;for(De.stacksTouched+=1,Oe=0;Oe0&&this.singleStacks===!1&&(oe.points[Ce][0]=oe.points[this.index+","+Se+",0"][0])):(delete oe.points[Ce],delete oe.points[this.index]);let Ke=oe.total||0;ke==="percent"?(he=ee?ue:xe,Ke=Ae&&ze[he]?.[Se]?(he=ze[he][Se]).total=Math.max(he.total||0,Ke)+Math.abs($e)||0:O(Ke+(Math.abs($e)||0))):ke==="group"?($($e)&&($e=$e[0]),$e!==null&&Ke++):Ke=O(Ke+($e||0)),ke==="group"?oe.cumulative=(Ke||1)-1:oe.cumulative=O(se(oe.cumulative,fe)+($e||0)),oe.total=Ke,$e!==null&&(oe.points[Ce].push(oe.cumulative),Ee[Oe]=oe.cumulative,oe.hasValidPoints=!0)}ke==="percent"&&(De.usePercentage=!0),ke!=="group"&&(this.stackedYData=Ee),De.oldStacks={}}class pe{constructor(N){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=N}buildStacks(){let N,B,ee=this.axis,oe=ee.series,he=ee.coll==="xAxis",be=ee.options.reversedStacks,Ce=oe.length;for(this.resetStacks(),this.usePercentage=!1,B=Ce;B--;)N=oe[be?B:Ce-B-1],he&&N.setGroupedPoints(ee),N.setStackedPoints(ee);if(!he)for(B=0;B{H(N,B=>{B.cumulative=B.total})}))}resetStacks(){H(this.stacks,N=>{H(N,(B,ee)=>{I(B.touched)&&B.touched{H(Ce,Oe=>{Oe.render(be)})}),be.animate({opacity:1},he)}}return(g||(g={})).compose=function(te,N,B){let ee=N.prototype,oe=B.prototype;ee.getStacks||(S(te,"init",le),S(te,"destroy",ne),ee.getStacks=ie,oe.getStackIndicator=me,oe.modifyStacks=_e,oe.percentStacker=ge,oe.setGroupedPoints=de,oe.setStackedPoints=ve)},g}),n(r,"Series/Line/LineSeries.js",[r["Core/Series/Series.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l){let{defined:c,merge:u,isObject:g}=l;class _ extends o{drawGraph(){let S=this.options,O=(this.gappedPath||this.getGraphPath).call(this),E=this.chart.styledMode;[this,...this.zones].forEach((T,D)=>{let $,I=T.graph,H=I?"animate":"attr",se=T.dashStyle||S.dashStyle;I?(I.endX=this.preventGraphAnimation?null:O.xMap,I.animate({d:O})):O.length&&(T.graph=I=this.chart.renderer.path(O).addClass("highcharts-graph"+(D?` highcharts-zone-graph-${D-1} `:" ")+(D&&T.className||"")).attr({zIndex:1}).add(this.group)),I&&!E&&($={stroke:!D&&S.lineColor||T.color||this.color||"#cccccc","stroke-width":S.lineWidth||0,fill:this.fillGraph&&this.color||"none"},se?$.dashstyle=se:S.linecap!=="square"&&($["stroke-linecap"]=$["stroke-linejoin"]="round"),I[H]($).shadow(D<2&&S.shadow&&u({filterUnits:"userSpaceOnUse"},g(S.shadow)?S.shadow:{}))),I&&(I.startX=O.xMap,I.isArea=O.isArea)})}getGraphPath(S,O,E){let T=this,D=T.options,$=[],I=[],H,se=D.step,ie=(S=S||T.points).reversed;return ie&&S.reverse(),(se={right:1,center:2}[se]||se&&3)&&ie&&(se=4-se),(S=this.getValidPoints(S,!1,!(D.connectNulls&&!O&&!E))).forEach(function(ne,le){let me,_e=ne.plotX,ge=ne.plotY,de=S[le-1],ve=ne.isNull||typeof ge!="number";(ne.leftCliff||de&&de.rightCliff)&&!E&&(H=!0),ve&&!c(O)&&le>0?H=!D.connectNulls:ve&&!O?H=!0:(le===0||H?me=[["M",ne.plotX,ne.plotY]]:T.getPointSpline?me=[T.getPointSpline(S,ne,le)]:se?(me=se===1?[["L",de.plotX,ge]]:se===2?[["L",(de.plotX+_e)/2,de.plotY],["L",(de.plotX+_e)/2,ge]]:[["L",_e,de.plotY]]).push(["L",_e,ge]):me=[["L",_e,ge]],I.push(ne.x),se&&(I.push(ne.x),se===2&&I.push(ne.x)),$.push.apply($,me),H=!1)}),$.xMap=I,T.graphPath=$,$}}return _.defaultOptions=u(o.defaultOptions,{legendSymbol:"lineMarker"}),a.registerSeriesType("line",_),_}),n(r,"Series/Area/AreaSeriesDefaults.js",[],function(){return{threshold:0,legendSymbol:"areaMarker"}}),n(r,"Series/Area/AreaSeries.js",[r["Series/Area/AreaSeriesDefaults.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l){let{seriesTypes:{line:c}}=a,{extend:u,merge:g,objectEach:_,pick:x}=l;class S extends c{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:E,options:T}=this;[this,...this.zones].forEach((D,$)=>{let I={},H=D.fillColor||T.fillColor,se=D.area,ie=se?"animate":"attr";se?(se.endX=this.preventGraphAnimation?null:E.xMap,se.animate({d:E})):(I.zIndex=0,(se=D.area=this.chart.renderer.path(E).addClass("highcharts-area"+($?` highcharts-zone-area-${$-1} `:" ")+($&&D.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(I.fill=H||D.color||this.color,I["fill-opacity"]=H?1:T.fillOpacity??.75,se.css({pointerEvents:this.stickyTracking?"none":"auto"})),se[ie](I),se.startX=E.xMap,se.shiftUnit=T.step?2:1})}getGraphPath(E){let T,D,$,I=c.prototype.getGraphPath,H=this.options,se=H.stacking,ie=this.yAxis,ne=[],le=[],me=this.index,_e=ie.stacking.stacks[this.stackKey],ge=H.threshold,de=Math.round(ie.getThreshold(H.threshold)),ve=x(H.connectNulls,se==="percent"),pe=function(he,be,Ce){let Oe=E[he],Se=se&&_e[Oe.x].points[me],$e=Oe[Ce+"Null"]||0,ke=Oe[Ce+"Cliff"]||0,Re,Be,Ee=!0;ke||$e?(Re=($e?Se[0]:Se[1])+ke,Be=Se[0]+ke,Ee=!!$e):!se&&E[be]&&E[be].isNull&&(Re=Be=ge),Re!==void 0&&(le.push({plotX:T,plotY:Re===null?de:ie.getThreshold(Re),isNull:Ee,isCliff:!0}),ne.push({plotX:T,plotY:Be===null?de:ie.getThreshold(Be),doCurve:!1}))};E=E||this.points,se&&(E=this.getStackPoints(E));for(let he=0,be=E.length;hede.visible);$.forEach(function(de,ve){let pe=0,te,N;if(ie[de]&&!ie[de].isNull)D.push(ie[de]),[-1,1].forEach(function(B){let ee=B===1?"rightNull":"leftNull",oe=se[$[ve+B]],he=0;if(oe){let be=_e;for(;be>=0&&be=0&&B_e&&T>H?(T=Math.max(_e,H),$=2*H-T):T<_e&&Tde&&$>H?($=Math.max(de,H),T=2*H-$):$1){let te=this.xAxis.series.filter(oe=>oe.visible).map(oe=>oe.index),N=0,B=0;le(this.xAxis.stacking?.stacks,oe=>{if(typeof ve.x=="number"){let he=oe[ve.x.toString()];if(he&&H(he.points[this.index])){let be=Object.keys(he.points).filter(Ce=>!Ce.match(",")&&he.points[Ce]&&he.points[Ce].length>1).map(parseFloat).filter(Ce=>te.indexOf(Ce)!==-1).sort((Ce,Oe)=>Oe-Ce);N=be.indexOf(this.index),B=be.length}}}),N=this.xAxis.reversed?B-1-N:N;let ee=(B-1)*pe.paddedWidth+de;ge=(ve.plotX||0)+ee/2-de-N*pe.paddedWidth}return ge}translate(){let ge=this,de=ge.chart,ve=ge.options,pe=ge.dense=ge.closestPointRange*ge.xAxis.transA<2,te=ge.borderWidth=ne(ve.borderWidth,pe?0:1),N=ge.xAxis,B=ge.yAxis,ee=ve.threshold,oe=ne(ve.minPointLength,5),he=ge.getColumnMetrics(),be=he.width,Ce=ge.pointXOffset=he.offset,Oe=ge.dataMin,Se=ge.dataMax,$e=ge.translatedThreshold=B.getThreshold(ee),ke=ge.barW=Math.max(be,1+2*te);ve.pointPadding&&(ke=Math.ceil(ke)),u.prototype.translate.apply(ge),ge.points.forEach(function(Re){let Be=ne(Re.yBottom,$e),Ee=999+Math.abs(Be),Pe=Re.plotX||0,Ie=E(Re.plotY,-Ee,B.len+Ee),Fe,fe=Math.min(Ie,Be),ae=Math.max(Ie,Be)-fe,ue=be,xe=Pe+Ce,Ae=ke;oe&&Math.abs(ae)oe?Be-oe:$e-(Fe?oe:0)),D(Re.options.pointWidth)&&(xe-=Math.round(((ue=Ae=Math.ceil(Re.options.pointWidth))-be)/2)),ve.centerInCategory&&!ve.stacking&&(xe=ge.adjustForMissingColumns(xe,ue,Re,he)),Re.barX=xe,Re.pointWidth=ue,Re.tooltipPos=de.inverted?[E(B.len+B.pos-de.plotLeft-Ie,B.pos-de.plotLeft,B.len+B.pos-de.plotLeft),N.len+N.pos-de.plotTop-xe-Ae/2,ae]:[N.left-de.plotLeft+xe+Ae/2,E(Ie+B.pos-de.plotTop,B.pos-de.plotTop,B.len+B.pos-de.plotTop),ae],Re.shapeType=ge.pointClass.prototype.shapeType||"roundedRect",Re.shapeArgs=ge.crispCol(xe,Re.isNull?$e:fe,Ae,Re.isNull?0:ae)}),I(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(ge,de){let ve=this.options,pe=this.pointAttrToOptions||{},te=pe.stroke||"borderColor",N=pe["stroke-width"]||"borderWidth",B,ee,oe,he=ge&&ge.color||this.color,be=ge&&ge[te]||ve[te]||he,Ce=ge&&ge.options.dashStyle||ve.dashStyle,Oe=ge&&ge[N]||ve[N]||this[N]||0,Se=ne(ge&&ge.opacity,ve.opacity,1);ge&&this.zones.length&&(ee=ge.getZone(),he=ge.options.color||ee&&(ee.color||ge.nonZonedColor)||this.color,ee&&(be=ee.borderColor||be,Ce=ee.dashStyle||Ce,Oe=ee.borderWidth||Oe)),de&&ge&&(oe=(B=ie(ve.states[de],ge.options.states&&ge.options.states[de]||{})).brightness,he=B.color||oe!==void 0&&S(he).brighten(B.brightness).get()||he,be=B[te]||be,Oe=B[N]||Oe,Ce=B.dashStyle||Ce,Se=ne(B.opacity,Se));let $e={fill:he,stroke:be,"stroke-width":Oe,opacity:Se};return Ce&&($e.dashstyle=Ce),$e}drawPoints(ge=this.points){let de,ve=this,pe=this.chart,te=ve.options,N=pe.renderer,B=te.animationLimit||250;ge.forEach(function(ee){let oe=ee.plotY,he=ee.graphic,be=!!he,Ce=he&&pe.pointCountte?.enabled)}function ne(te,N,B,ee,oe){let{chart:he,enabledDataSorting:be}=this,Ce=this.isCartesian&&he.inverted,Oe=te.plotX,Se=te.plotY,$e=B.rotation||0,ke=_(Oe)&&_(Se)&&he.isInsidePlot(Oe,Math.round(Se),{inverted:Ce,paneCoordinates:!0,series:this}),Re=$e===0&&$(B.overflow,be?"none":"justify")==="justify",Be=this.visible&&te.visible!==!1&&_(Oe)&&(te.series.forceDL||be&&!Re||ke||$(B.inside,!!this.options.stacking)&&ee&&he.isInsidePlot(Oe,Ce?ee.x+1:ee.y+ee.height-1,{inverted:Ce,paneCoordinates:!0,series:this})),Ee=te.pos();if(Be&&Ee){var Pe;let Ie=N.getBBox(),Fe=N.getBBox(void 0,0),fe={right:1,center:.5}[B.align||0]||0,ae={bottom:1,middle:.5}[B.verticalAlign||0]||0;if(ee=x({x:Ee[0],y:Math.round(Ee[1]),width:0,height:0},ee||{}),B.alignTo==="plotEdges"&&this.isCartesian&&(ee[Ce?"x":"y"]=0,ee[Ce?"width":"height"]=this.yAxis?.len||0),x(B,{width:Ie.width,height:Ie.height}),Pe=ee,be&&this.xAxis&&!Re&&this.setDataLabelStartPos(te,N,oe,ke,Pe),N.align(T(B,{width:Fe.width,height:Fe.height}),!1,ee,!1),N.alignAttr.x+=fe*(Fe.width-Ie.width),N.alignAttr.y+=ae*(Fe.height-Ie.height),N[N.placed?"animate":"attr"]({x:N.alignAttr.x+(Ie.width-Fe.width)/2,y:N.alignAttr.y+(Ie.height-Fe.height)/2,rotationOriginX:(N.width||0)/2,rotationOriginY:(N.height||0)/2}),Re&&ee.height>=0)this.justifyDataLabel(N,B,N.alignAttr,Ie,ee,oe);else if($(B.crop,!0)){let{x:ue,y:xe}=N.alignAttr;Be=he.isInsidePlot(ue,xe,{paneCoordinates:!0,series:this})&&he.isInsidePlot(ue+Ie.width-1,xe+Ie.height-1,{paneCoordinates:!0,series:this})}B.shape&&!$e&&N[oe?"attr":"animate"]({anchorX:Ee[0],anchorY:Ee[1]})}oe&&be&&(N.placed=!1),Be||be&&!Re?(N.show(),N.placed=!0):(N.hide(),N.placed=!1)}function le(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function me(te){let N=this.hasRendered||0,B=this.initDataLabelsGroup().attr({opacity:+N});return!N&&B&&(this.visible&&B.show(),this.options.animation?B.animate({opacity:1},te):B.attr({opacity:1})),B}function _e(te){let N;te=te||this.points;let B=this,ee=B.chart,oe=B.options,he=ee.renderer,{backgroundColor:be,plotBackgroundColor:Ce}=ee.options.chart,Oe=he.getContrast(E(Ce)&&Ce||E(be)&&be||"#000000"),Se=ve(B),{animation:$e,defer:ke}=Se[0],Re=ke?u(ee,$e,B):{defer:0,duration:0};S(this,"drawDataLabels"),B.hasDataLabels?.()&&(N=this.initDataLabels(Re),te.forEach(Be=>{let Ee=Be.dataLabels||[];H(de(Se,Be.dlOptions||Be.options?.dataLabels)).forEach((Ie,Fe)=>{let fe=Ie.enabled&&(Be.visible||Be.dataLabelOnHidden)&&(!Be.isNull||Be.dataLabelOnNull)&&function(Ye,Qe){let Le=Qe.filter;if(Le){let ye=Le.operator,we=Ye[Le.property],Ve=Le.value;return ye===">"&&we>Ve||ye==="<"&&we="&&we>=Ve||ye==="<="&&we<=Ve||ye==="=="&&we==Ve||ye==="==="&&we===Ve||ye==="!="&&we!=Ve||ye==="!=="&&we!==Ve}return!0}(Be,Ie),{backgroundColor:ae,borderColor:ue,distance:xe,style:Ae={}}=Ie,De,ze,je,Ke,Ze={},Ge=Ee[Fe],Ne=!Ge,We;if(fe&&(ze=$(Ie[Be.formatPrefix+"Format"],Ie.format),De=Be.getLabelConfig(),je=_(ze)?g(ze,De,ee):(Ie[Be.formatPrefix+"Formatter"]||Ie.formatter).call(De,Ie),Ke=Ie.rotation,!ee.styledMode&&(Ae.color=$(Ie.color,Ae.color,E(B.color)?B.color:void 0,"#000000"),Ae.color==="contrast"?(ae!=="none"&&(We=ae),Be.contrastColor=he.getContrast(We!=="auto"&&We||Be.color||B.color),Ae.color=We||!_(xe)&&Ie.inside||0>I(xe||0)||oe.stacking?Be.contrastColor:Oe):delete Be.contrastColor,oe.cursor&&(Ae.cursor=oe.cursor)),Ze={r:Ie.borderRadius||0,rotation:Ke,padding:Ie.padding,zIndex:1},ee.styledMode||(Ze.fill=ae==="auto"?Be.color:ae,Ze.stroke=ue==="auto"?Be.color:ue,Ze["stroke-width"]=Ie.borderWidth),D(Ze,(Ye,Qe)=>{Ye===void 0&&delete Ze[Qe]})),!Ge||fe&&_(je)&&!!Ge.div==!!Ie.useHTML&&(Ge.rotation&&Ie.rotation||Ge.rotation===Ie.rotation)||(Ge=void 0,Ne=!0),fe&&_(je)&&(Ge?Ze.text=je:(Ge=he.label(je,0,0,Ie.shape,void 0,void 0,Ie.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+Be.colorIndex+" "+(Ie.className||"")+(Ie.useHTML?" highcharts-tracker":"")),Ge)){Ge.options=Ie,Ge.attr(Ze),ee.styledMode||Ge.css(Ae).shadow(Ie.shadow);let Ye=Ie[Be.formatPrefix+"TextPath"]||Ie.textPath;Ye&&!Ie.useHTML&&(Ge.setTextPath(Be.getDataLabelPath?.(Ge)||Be.graphic,Ye),Be.dataLabelPath&&!Ye.enabled&&(Be.dataLabelPath=Be.dataLabelPath.destroy())),Ge.added||Ge.add(N),B.alignDataLabel(Be,Ge,Ie,void 0,Ne),Ge.isActive=!0,Ee[Fe]&&Ee[Fe]!==Ge&&Ee[Fe].destroy(),Ee[Fe]=Ge}});let Pe=Ee.length;for(;Pe--;)Ee[Pe]&&Ee[Pe].isActive?Ee[Pe].isActive=!1:(Ee[Pe]?.destroy(),Ee.splice(Pe,1));Be.dataLabel=Ee[0],Be.dataLabels=Ee})),S(this,"afterDrawDataLabels")}function ge(te,N,B,ee,oe,he){let be=this.chart,Ce=N.align,Oe=N.verticalAlign,Se=te.box?0:te.padding||0,$e=be.inverted?this.yAxis:this.xAxis,ke=$e?$e.left-be.plotLeft:0,Re=be.inverted?this.xAxis:this.yAxis,Be=Re?Re.top-be.plotTop:0,{x:Ee=0,y:Pe=0}=N,Ie,Fe;return(Ie=(B.x||0)+Se+ke)<0&&(Ce==="right"&&Ee>=0?(N.align="left",N.inside=!0):Ee-=Ie,Fe=!0),(Ie=(B.x||0)+ee.width-Se+ke)>be.plotWidth&&(Ce==="left"&&Ee<=0?(N.align="right",N.inside=!0):Ee+=be.plotWidth-Ie,Fe=!0),(Ie=B.y+Se+Be)<0&&(Oe==="bottom"&&Pe>=0?(N.verticalAlign="top",N.inside=!0):Pe-=Ie,Fe=!0),(Ie=(B.y||0)+ee.height-Se+Be)>be.plotHeight&&(Oe==="top"&&Pe<=0?(N.verticalAlign="bottom",N.inside=!0):Pe+=be.plotHeight-Ie,Fe=!0),Fe&&(N.x=Ee,N.y=Pe,te.placed=!he,te.align(N,void 0,oe)),Fe}function de(te,N){let B=[],ee;if(O(te)&&!O(N))B=te.map(function(oe){return T(oe,N)});else if(O(N)&&!O(te))B=N.map(function(oe){return T(te,oe)});else if(O(te)||O(N)){if(O(te)&&O(N))for(ee=Math.max(te.length,N.length);ee--;)B[ee]=T(te[ee],N[ee])}else B=T(te,N);return B}function ve(te){let N=te.chart.options.plotOptions;return H(de(de(N?.series?.dataLabels,N?.[te.type]?.dataLabels),te.options.dataLabels))}function pe(te,N,B,ee,oe){let he=this.chart,be=he.inverted,Ce=this.xAxis,Oe=Ce.reversed,Se=((be?N.height:N.width)||0)/2,$e=te.pointWidth,ke=$e?$e/2:0;N.startXPos=be?oe.x:Oe?-Se-ke:Ce.width-Se+ke,N.startYPos=be?Oe?this.yAxis.height-Se+ke:-Se-ke:oe.y,ee?N.visibility==="hidden"&&(N.show(),N.attr({opacity:0}).animate({opacity:1})):N.attr({opacity:1}).animate({opacity:0},void 0,N.hide),he.hasRendered&&(B&&N.attr({x:N.startXPos,y:N.startYPos}),N.placed=!0)}se.compose=function(te){let N=te.prototype;N.initDataLabels||(N.initDataLabels=me,N.initDataLabelsGroup=le,N.alignDataLabel=ne,N.drawDataLabels=_e,N.justifyDataLabel=ge,N.setDataLabelStartPos=pe,N.hasDataLabels=ie)}}(c||(c={})),c}),n(r,"Series/Column/ColumnDataLabel.js",[r["Core/Series/DataLabel.js"],r["Core/Globals.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l,c){var u;let{composed:g}=a,{series:_}=l,{merge:x,pick:S,pushUnique:O}=c;return function(E){function T(D,$,I,H,se){let ie=this.chart.inverted,ne=D.series,le=(ne.xAxis?ne.xAxis.len:this.chart.plotSizeX)||0,me=(ne.yAxis?ne.yAxis.len:this.chart.plotSizeY)||0,_e=D.dlBox||D.shapeArgs,ge=S(D.below,D.plotY>S(this.translatedThreshold,me)),de=S(I.inside,!!this.options.stacking);if(_e){if(H=x(_e),!(I.overflow==="allow"&&I.crop===!1)){H.y<0&&(H.height+=H.y,H.y=0);let ve=H.y+H.height-me;ve>0&&ve\u25CF {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}}),n(r,"Series/Scatter/ScatterSeries.js",[r["Series/Scatter/ScatterSeriesDefaults.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l){let{column:c,line:u}=a.seriesTypes,{addEvent:g,extend:_,merge:x}=l;class S extends u{applyJitter(){let E=this,T=this.options.jitter,D=this.points.length;T&&this.points.forEach(function($,I){["x","y"].forEach(function(H,se){if(T[H]&&!$.isNull){let ie=`plot${H.toUpperCase()}`,ne=E[`${H}Axis`],le=T[H]*ne.transA;if(ne&&!ne.logarithmic){let me=Math.max(0,($[ie]||0)-le),_e=Math.min(ne.len,($[ie]||0)+le);$[ie]=me+(_e-me)*function(ge){let de=1e4*Math.sin(ge);return de-Math.floor(de)}(I+se*D),H==="x"&&($.clientX=$.plotX)}}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return S.defaultOptions=x(u.defaultOptions,o),_(S.prototype,{drawTracker:c.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),g(S,"afterTranslate",function(){this.applyJitter()}),a.registerSeriesType("scatter",S),S}),n(r,"Series/CenteredUtilities.js",[r["Core/Globals.js"],r["Core/Series/Series.js"],r["Core/Utilities.js"]],function(o,a,l){var c,u;let{deg2rad:g}=o,{fireEvent:_,isNumber:x,pick:S,relativeLength:O}=l;return(u=c||(c={})).getCenter=function(){let E=this.options,T=this.chart,D=2*(E.slicedOffset||0),$=T.plotWidth-2*D,I=T.plotHeight-2*D,H=E.center,se=Math.min($,I),ie=E.thickness,ne,le=E.size,me=E.innerSize||0,_e,ge;typeof le=="string"&&(le=parseFloat(le)),typeof me=="string"&&(me=parseFloat(me));let de=[S(H[0],"50%"),S(H[1],"50%"),S(le&&le<0?void 0:E.size,"100%"),S(me&&me<0?void 0:E.innerSize||0,"0%")];for(!T.angular||this instanceof a||(de[3]=0),_e=0;_e<4;++_e)ge=de[_e],ne=_e<2||_e===2&&/%$/.test(ge),de[_e]=O(ge,[$,I,se,de[2]][_e])+(ne?D:0);return de[3]>de[2]&&(de[3]=de[2]),x(ie)&&2*ie0&&(de[3]=de[2]-2*ie),_(this,"afterGetCenter",{positions:de}),de},u.getStartAndEndRadians=function(E,T){let D=x(E)?E:0,$=x(T)&&T>D&&T-D<360?T:D+360;return{start:g*(D+-90),end:g*($+-90)}},c}),n(r,"Series/Pie/PiePoint.js",[r["Core/Animation/AnimationUtilities.js"],r["Core/Series/Point.js"],r["Core/Utilities.js"]],function(o,a,l){let{setAnimation:c}=o,{addEvent:u,defined:g,extend:_,isNumber:x,pick:S,relativeLength:O}=l;class E extends a{getConnectorPath(D){let $=D.dataLabelPosition,I=D.options||{},H=I.connectorShape,se=this.connectorShapes[H]||H;return $&&se.call(this,{...$.computed,alignment:$.alignment},$.connectorPosition,I)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(D){let $=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc($.x,$.y,$.r+D,$.r+D,{innerR:$.r-1,start:$.start,end:$.end,borderRadius:$.borderRadius})}constructor(D,$,I){super(D,$,I),this.half=0,this.name??(this.name="Slice");let H=se=>{this.slice(se.type==="select")};u(this,"select",H),u(this,"unselect",H)}isValid(){return x(this.y)&&this.y>=0}setVisible(D,$=!0){D!==this.visible&&this.update({visible:D??!this.visible},$,void 0,!1)}slice(D,$,I){let H=this.series;c(I,H.chart),$=S($,!0),this.sliced=this.options.sliced=D=g(D)?D:!this.sliced,H.options.data[H.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return _(E.prototype,{connectorShapes:{fixedOffset:function(T,D,$){let I=D.breakAt,H=D.touchingSliceAt,se=$.softConnector?["C",T.x+(T.alignment==="left"?-5:5),T.y,2*I.x-H.x,2*I.y-H.y,I.x,I.y]:["L",I.x,I.y];return[["M",T.x,T.y],se,["L",H.x,H.y]]},straight:function(T,D){let $=D.touchingSliceAt;return[["M",T.x,T.y],["L",$.x,$.y]]},crookedLine:function(T,D,$){let{breakAt:I,touchingSliceAt:H}=D,{series:se}=this,[ie,ne,le]=se.center,me=le/2,{plotLeft:_e,plotWidth:ge}=se.chart,de=T.alignment==="left",{x:ve,y:pe}=T,te=I.x;if($.crookDistance){let B=O($.crookDistance,1);te=de?ie+me+(ge+_e-ie-me)*(1-B):_e+(ie-me)*B}else te=ie+(ne-pe)*Math.tan((this.angle||0)-Math.PI/2);let N=[["M",ve,pe]];return(de?te<=ve&&te>=I.x:te>=ve&&te<=I.x)&&N.push(["L",te,pe]),N.push(["L",I.x,I.y],["L",H.x,H.y]),N}}}),E}),n(r,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{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}}}}),n(r,"Series/Pie/PieSeries.js",[r["Series/CenteredUtilities.js"],r["Series/Column/ColumnSeries.js"],r["Core/Globals.js"],r["Series/Pie/PiePoint.js"],r["Series/Pie/PieSeriesDefaults.js"],r["Core/Series/Series.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Renderer/SVG/Symbols.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x,S){let{getStartAndEndRadians:O}=o,{noop:E}=l,{clamp:T,extend:D,fireEvent:$,merge:I,pick:H}=S;class se extends g{animate(ne){let le=this,me=le.points,_e=le.startAngleRad;ne||me.forEach(function(ge){let de=ge.graphic,ve=ge.shapeArgs;de&&ve&&(de.attr({r:H(ge.startR,le.center&&le.center[3]/2),start:_e,end:_e}),de.animate({r:ve.r,start:ve.start,end:ve.end},le.options.animation))})}drawEmpty(){let ne,le,me=this.startAngleRad,_e=this.endAngleRad,ge=this.options;this.total===0&&this.center?(ne=this.center[0],le=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(ne,le,this.center[1]/2,0,me,_e).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:x.arc(ne,le,this.center[2]/2,0,{start:me,end:_e,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":ge.borderWidth,fill:ge.fillColor||"none",stroke:ge.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let ne=this.chart.renderer;this.points.forEach(function(le){le.graphic&&le.hasNewShapeType()&&(le.graphic=le.graphic.destroy()),le.graphic||(le.graphic=ne[le.shapeType](le.shapeArgs).add(le.series.group),le.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(ne,le,me,_e){let ge=this.center,de=this.radii?this.radii[me.index]||0:ge[2]/2,ve=_e.dataLabelPosition,pe=ve?.distance||0,te=Math.asin(T((ne-ge[1])/(de+pe),-1,1));return ge[0]+Math.cos(te)*(de+pe)*(le?-1:1)+(pe>0?(le?-1:1)*(_e.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let ne,le,me,_e,ge=this,de=ge.chart;this.drawEmpty(),ge.group&&!de.styledMode&&ge.group.shadow(ge.options.shadow),ge.points.forEach(function(ve){let pe={};le=ve.graphic,!ve.isNull&&le?(_e=ve.shapeArgs,ne=ve.getTranslate(),de.styledMode||(me=ge.pointAttribs(ve,ve.selected&&"select")),ve.delayedRendering?(le.setRadialReference(ge.center).attr(_e).attr(ne),de.styledMode||le.attr(me).attr({"stroke-linejoin":"round"}),ve.delayedRendering=!1):(le.setRadialReference(ge.center),de.styledMode||I(!0,pe,me),I(!0,pe,_e,ne),le.animate(pe)),le.attr({visibility:ve.visible?"inherit":"hidden"}),le.addClass(ve.getClassName(),!0)):le&&(ve.graphic=le.destroy())})}sortByAngle(ne,le){ne.sort(function(me,_e){return me.angle!==void 0&&(_e.angle-me.angle)*le})}translate(ne){$(this,"translate"),this.generatePoints();let le=this.options,me=le.slicedOffset,_e=O(le.startAngle,le.endAngle),ge=this.startAngleRad=_e.start,de=(this.endAngleRad=_e.end)-ge,ve=this.points,pe=le.ignoreHiddenPoint,te=ve.length,N,B,ee,oe,he,be,Ce,Oe=0;for(ne||(this.center=ne=this.getCenter()),be=0;be1.5*Math.PI?ee-=2*Math.PI:ee<-Math.PI/2&&(ee+=2*Math.PI),Ce.slicedTranslation={translateX:Math.round(Math.cos(ee)*me),translateY:Math.round(Math.sin(ee)*me)},oe=Math.cos(ee)*ne[2]/2,he=Math.sin(ee)*ne[2]/2,Ce.tooltipPos=[ne[0]+.7*oe,ne[1]+.7*he],Ce.half=ee<-Math.PI/2||ee>Math.PI/2?1:0,Ce.angle=ee}$(this,"afterTranslate")}updateTotals(){let ne=this.points,le=ne.length,me=this.options.ignoreHiddenPoint,_e,ge,de=0;for(_e=0;_e0&&(ge.visible||!me)?ge.y/de*100:0,ge.total=de}}return se.defaultOptions=I(g.defaultOptions,u),D(se.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:a.prototype.drawTracker,getCenter:o.getCenter,getSymbol:E,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:a.prototype.pointAttribs,pointClass:c,requireSorting:!1,searchPoint:E,trackerGroups:["group","dataLabelsGroup"]}),_.registerSeriesType("pie",se),se}),n(r,"Series/Pie/PieDataLabel.js",[r["Core/Series/DataLabel.js"],r["Core/Globals.js"],r["Core/Renderer/RendererUtilities.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l,c,u){var g;let{composed:_,noop:x}=a,{distribute:S}=l,{series:O}=c,{arrayMax:E,clamp:T,defined:D,pick:$,pushUnique:I,relativeLength:H}=u;return function(se){let ie={radialDistributionY:function(ge,de){return(de.dataLabelPosition?.top||0)+ge.distributeBox.pos},radialDistributionX:function(ge,de,ve,pe,te){let N=te.dataLabelPosition;return ge.getX(ve<(N?.top||0)+2||ve>(N?.bottom||0)-2?pe:ve,de.half,de,te)},justify:function(ge,de,ve,pe){return pe[0]+(ge.half?-1:1)*(ve+(de.dataLabelPosition?.distance||0))},alignToPlotEdges:function(ge,de,ve,pe){let te=ge.getBBox().width;return de?te+pe:ve-te-pe},alignToConnectors:function(ge,de,ve,pe){let te=0,N;return ge.forEach(function(B){(N=B.dataLabel.getBBox().width)>te&&(te=N)}),de?te+pe:ve-te-pe}};function ne(ge,de){let{center:ve,options:pe}=this,te=ve[2]/2,N=ge.angle||0,B=Math.cos(N),ee=Math.sin(N),oe=ve[0]+B*te,he=ve[1]+ee*te,be=Math.min((pe.slicedOffset||0)+(pe.borderWidth||0),de/5);return{natural:{x:oe+B*de,y:he+ee*de},computed:{},alignment:de<0?"center":ge.half?"right":"left",connectorPosition:{breakAt:{x:oe+B*be,y:he+ee*be},touchingSliceAt:{x:oe,y:he}},distance:de}}function le(){let ge=this,de=ge.points,ve=ge.chart,pe=ve.plotWidth,te=ve.plotHeight,N=ve.plotLeft,B=Math.round(ve.chartWidth/3),ee=ge.center,oe=ee[2]/2,he=ee[1],be=[[],[]],Ce=[0,0,0,0],Oe=ge.dataLabelPositioners,Se,$e,ke,Re=0;ge.visible&&ge.hasDataLabels?.()&&(de.forEach(Be=>{(Be.dataLabels||[]).forEach(Ee=>{Ee.shortened&&(Ee.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),Ee.shortened=!1)})}),O.prototype.drawDataLabels.apply(ge),de.forEach(Be=>{(Be.dataLabels||[]).forEach((Ee,Pe)=>{let Ie=ee[2]/2,Fe=Ee.options,fe=H(Fe?.distance||0,Ie);Pe===0&&be[Be.half].push(Be),!D(Fe?.style?.width)&&Ee.getBBox().width>B&&(Ee.css({width:Math.round(.7*B)+"px"}),Ee.shortened=!0),Ee.dataLabelPosition=this.getDataLabelPosition(Be,fe),Re=Math.max(Re,fe)})}),be.forEach((Be,Ee)=>{let Pe=Be.length,Ie=[],Fe,fe,ae=0,ue;Pe&&(ge.sortByAngle(Be,Ee-.5),Re>0&&(Fe=Math.max(0,he-oe-Re),fe=Math.min(he+oe+Re,ve.plotHeight),Be.forEach(xe=>{(xe.dataLabels||[]).forEach(Ae=>{let De=Ae.dataLabelPosition;De&&De.distance>0&&(De.top=Math.max(0,he-oe-De.distance),De.bottom=Math.min(he+oe+De.distance,ve.plotHeight),ae=Ae.getBBox().height||21,xe.distributeBox={target:(Ae.dataLabelPosition?.natural.y||0)-De.top+ae/2,size:ae,rank:xe.y},Ie.push(xe.distributeBox))})}),S(Ie,ue=fe+ae-Fe,ue/5)),Be.forEach(xe=>{(xe.dataLabels||[]).forEach(Ae=>{let De=Ae.options||{},ze=xe.distributeBox,je=Ae.dataLabelPosition,Ke=je?.natural.y||0,Ze=De.connectorPadding||0,Ge=0,Ne=Ke,We="inherit";if(je){if(Ie&&D(ze)&&je.distance>0&&(ze.pos===void 0?We="hidden":(ke=ze.size,Ne=Oe.radialDistributionY(xe,Ae))),De.justify)Ge=Oe.justify(xe,Ae,oe,ee);else switch(De.alignTo){case"connectors":Ge=Oe.alignToConnectors(Be,Ee,pe,N);break;case"plotEdges":Ge=Oe.alignToPlotEdges(Ae,Ee,pe,N);break;default:Ge=Oe.radialDistributionX(ge,xe,Ne,Ke,Ae)}if(je.attribs={visibility:We,align:je.alignment},je.posAttribs={x:Ge+(De.x||0)+({left:Ze,right:-Ze}[je.alignment]||0),y:Ne+(De.y||0)-Ae.getBBox().height/2},je.computed.x=Ge,je.computed.y=Ne,$(De.crop,!0)){let Ye;Ge-($e=Ae.getBBox().width)pe-Ze&&Ee===0&&(Ye=Math.round(Ge+$e-pe+Ze),Ce[1]=Math.max(Ye,Ce[1])),Ne-ke/2<0?Ce[0]=Math.max(Math.round(-Ne+ke/2),Ce[0]):Ne+ke/2>te&&(Ce[2]=Math.max(Math.round(Ne+ke/2-te),Ce[2])),je.sideOverflow=Ye}}})}))}),(E(Ce)===0||this.verifyDataLabelOverflow(Ce))&&(this.placeDataLabels(),this.points.forEach(Be=>{(Be.dataLabels||[]).forEach(Ee=>{let{connectorColor:Pe,connectorWidth:Ie=1}=Ee.options||{},Fe=Ee.dataLabelPosition;if(Ie){let fe;Se=Ee.connector,Fe&&Fe.distance>0?(fe=!Se,Se||(Ee.connector=Se=ve.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+Be.colorIndex+(Be.className?" "+Be.className:"")).add(ge.dataLabelsGroup)),ve.styledMode||Se.attr({"stroke-width":Ie,stroke:Pe||Be.color||"#666666"}),Se[fe?"attr":"animate"]({d:Be.getConnectorPath(Ee)}),Se.attr({visibility:Fe.attribs?.visibility})):Se&&(Ee.connector=Se.destroy())}})})))}function me(){this.points.forEach(ge=>{(ge.dataLabels||[]).forEach(de=>{let ve=de.dataLabelPosition;ve?(ve.sideOverflow&&(de.css({width:Math.max(de.getBBox().width-ve.sideOverflow,0)+"px",textOverflow:(de.options?.style||{}).textOverflow||"ellipsis"}),de.shortened=!0),de.attr(ve.attribs),de[de.moved?"animate":"attr"](ve.posAttribs),de.moved=!0):de&&de.attr({y:-9999})}),delete ge.distributeBox},this)}function _e(ge){let de=this.center,ve=this.options,pe=ve.center,te=ve.minSize||80,N=te,B=ve.size!==null;return!B&&(pe[0]!==null?N=Math.max(de[2]-Math.max(ge[1],ge[3]),te):(N=Math.max(de[2]-ge[1]-ge[3],te),de[0]+=(ge[3]-ge[1])/2),pe[1]!==null?N=T(N,te,de[2]-Math.max(ge[0],ge[2])):(N=T(N,te,de[2]-ge[0]-ge[2]),de[1]+=(ge[0]-ge[2])/2),N!(ne.x>=ie.x+ie.width||ne.x+ne.width<=ie.x||ne.y>=ie.y+ie.height||ne.y+ne.height<=ie.y),T,D,$,I,H,se=!1;for(let ie=0;ie(ne.labelrank||0)-(ie.labelrank||0));for(let ie=0;ie{c(T,D=>{D.label&&O.push(D.label)})});for(let E of S.series||[])if(E.visible&&E.hasDataLabels?.()){let T=D=>{for(let $ of D)$.visible&&($.dataLabels||[]).forEach(I=>{let H=I.options||{};I.labelrank=u(H.labelrank,$.labelrank,$.shapeArgs?.height),H.allowOverlap??Number(H.distance)>0?(I.oldOpacity=I.opacity,I.newOpacity=1,_(I,S)):O.push(I)})};T(E.nodes||[]),T(E.points)}this.hideOverlappingLabels(O)}return{compose:function(S){let O=S.prototype;O.hideOverlappingLabels||(O.hideOverlappingLabels=g,a(S,"render",x))}}}),n(r,"Extensions/BorderRadius.js",[r["Core/Defaults.js"],r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a,l){let{defaultOptions:c}=o,{noop:u}=a,{addEvent:g,extend:_,isObject:x,merge:S,relativeLength:O}=l,E={radius:0,scope:"stack",where:void 0},T=u,D=u;function $(ne,le,me,_e,ge={}){let de=T(ne,le,me,_e,ge),{innerR:ve=0,r:pe=me,start:te=0,end:N=0}=ge;if(ge.open||!ge.borderRadius)return de;let B=N-te,ee=Math.sin(B/2),oe=Math.max(Math.min(O(ge.borderRadius||0,pe-ve),(pe-ve)/2,pe*ee/(1+ee)),0),he=Math.min(oe,B/Math.PI*2*ve),be=de.length-1;for(;be--;)(function(Ce,Oe,Se){let $e,ke,Re,Be=Ce[Oe],Ee=Ce[Oe+1];if(Ee[0]==="Z"&&(Ee=Ce[0]),(Be[0]==="M"||Be[0]==="L")&&Ee[0]==="A"?($e=Be,ke=Ee,Re=!0):Be[0]==="A"&&(Ee[0]==="M"||Ee[0]==="L")&&($e=Ee,ke=Be),$e&&ke&&ke.params){let Pe=ke[1],Ie=ke[5],Fe=ke.params,{start:fe,end:ae,cx:ue,cy:xe}=Fe,Ae=Ie?Pe-Se:Pe+Se,De=Ae?Math.asin(Se/Ae):0,ze=Ie?De:-De,je=Math.cos(De)*Ae;Re?(Fe.start=fe+ze,$e[1]=ue+je*Math.cos(fe),$e[2]=xe+je*Math.sin(fe),Ce.splice(Oe+1,0,["A",Se,Se,0,0,1,ue+Pe*Math.cos(Fe.start),xe+Pe*Math.sin(Fe.start)])):(Fe.end=ae-ze,ke[6]=ue+Pe*Math.cos(Fe.end),ke[7]=xe+Pe*Math.sin(Fe.end),Ce.splice(Oe+1,0,["A",Se,Se,0,0,1,ue+je*Math.cos(ae),xe+je*Math.sin(ae)])),ke[4]=Math.abs(Fe.end-Fe.start)1?he:oe);return de}function I(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:ne,yAxis:le}=this,me=ne.stacking==="percent",_e=c.plotOptions?.[this.type]?.borderRadius,ge=H(ne.borderRadius,x(_e)?_e:{}),de=le.options.reversed;for(let ve of this.points){let{shapeArgs:pe}=ve;if(ve.shapeType==="roundedRect"&&pe){let{width:te=0,height:N=0,y:B=0}=pe,ee=B,oe=N;if(ge.scope==="stack"&&ve.stackTotal){let Oe=le.translate(me?100:ve.stackTotal,!1,!0,!1,!0),Se=le.translate(ne.threshold||0,!1,!0,!1,!0),$e=this.crispCol(0,Math.min(Oe,Se),0,Math.abs(Oe-Se));ee=$e.y,oe=$e.height}let he=(ve.negative?-1:1)*(de?-1:1)==-1,be=ge.where;!be&&this.is("waterfall")&&Math.abs((ve.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(be="all"),be||(be="end");let Ce=Math.min(O(ge.radius,te),te/2,be==="all"?N/2:1/0)||0;be==="end"&&(he&&(ee-=Ce),oe+=Ce),_(pe,{brBoxHeight:oe,brBoxY:ee,r:Ce})}}}}function H(ne,le){return x(ne)||(ne={radius:ne||0}),S(E,le,ne)}function se(){let ne=H(this.options.borderRadius);for(let le of this.points){let me=le.shapeArgs;me&&(me.borderRadius=O(ne.radius,(me.r||0)-(me.innerR||0)))}}function ie(ne,le,me,_e,ge={}){let de=D(ne,le,me,_e,ge),{r:ve=0,brBoxHeight:pe=_e,brBoxY:te=le}=ge,N=le-te,B=te+pe-(le+_e),ee=N-ve>-.1?0:ve,oe=B-ve>-.1?0:ve,he=Math.max(ee&&N,0),be=Math.max(oe&&B,0),Ce=[ne+ee,le],Oe=[ne+me-ee,le],Se=[ne+me,le+ee],$e=[ne+me,le+_e-oe],ke=[ne+me-oe,le+_e],Re=[ne+oe,le+_e],Be=[ne,le+_e-oe],Ee=[ne,le+ee],Pe=(Ie,Fe)=>Math.sqrt(Math.pow(Ie,2)-Math.pow(Fe,2));if(he){let Ie=Pe(ee,ee-he);Ce[0]-=Ie,Oe[0]+=Ie,Se[1]=Ee[1]=le+ee-he}if(_e=_($.minWidth,0)&&this.chartHeight>=_($.minHeight,0)}).call(this)&&D.push(T._id)}function E(T,D){let $=this.options.responsive,I=this.currentResponsive,H=[],se;!D&&$&&$.rules&&$.rules.forEach(le=>{le._id===void 0&&(le._id=x()),this.matchResponsiveRule(le,H)},this);let ie=g(...H.map(le=>u(($||{}).rules||[],me=>me._id===le)).map(le=>le&&le.chartOptions));ie.isResponsiveOptions=!0,H=H.toString()||void 0;let ne=I&&I.ruleIds;H!==ne&&(I&&this.update(I.undoOptions,T,!0),H?((se=l(ie,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:H,mergedOptions:ie,undoOptions:se},this.update(ie,T,!0)):this.currentResponsive=void 0)}S.compose=function(T){let D=T.prototype;return D.matchResponsiveRule||c(D,{matchResponsiveRule:O,setResponsive:E}),T}}(a||(a={})),a}),n(r,"masters/highcharts.src.js",[r["Core/Globals.js"],r["Core/Utilities.js"],r["Core/Defaults.js"],r["Core/Animation/Fx.js"],r["Core/Animation/AnimationUtilities.js"],r["Core/Renderer/HTML/AST.js"],r["Core/Templating.js"],r["Core/Renderer/RendererRegistry.js"],r["Core/Renderer/RendererUtilities.js"],r["Core/Renderer/SVG/SVGElement.js"],r["Core/Renderer/SVG/SVGRenderer.js"],r["Core/Renderer/HTML/HTMLElement.js"],r["Core/Axis/Axis.js"],r["Core/Axis/DateTimeAxis.js"],r["Core/Axis/LogarithmicAxis.js"],r["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],r["Core/Axis/Tick.js"],r["Core/Tooltip.js"],r["Core/Series/Point.js"],r["Core/Pointer.js"],r["Core/Legend/Legend.js"],r["Core/Legend/LegendSymbol.js"],r["Core/Chart/Chart.js"],r["Extensions/ScrollablePlotArea.js"],r["Core/Axis/Stacking/StackingAxis.js"],r["Core/Axis/Stacking/StackItem.js"],r["Core/Series/Series.js"],r["Core/Series/SeriesRegistry.js"],r["Series/Column/ColumnDataLabel.js"],r["Series/Pie/PieDataLabel.js"],r["Core/Series/DataLabel.js"],r["Extensions/OverlappingDataLabels.js"],r["Extensions/BorderRadius.js"],r["Core/Responsive.js"],r["Core/Color/Color.js"],r["Core/Time.js"]],function(o,a,l,c,u,g,_,x,S,O,E,T,D,$,I,H,se,ie,ne,le,me,_e,ge,de,ve,pe,te,N,B,ee,oe,he,be,Ce,Oe,Se){return o.AST=g,o.Axis=D,o.Chart=ge,o.Color=Oe,o.DataLabel=oe,o.Fx=c,o.HTMLElement=T,o.Legend=me,o.LegendSymbol=_e,o.OverlappingDataLabels=o.OverlappingDataLabels||he,o.PlotLineOrBand=H,o.Point=ne,o.Pointer=le,o.RendererRegistry=x,o.Series=te,o.SeriesRegistry=N,o.StackItem=pe,o.SVGElement=O,o.SVGRenderer=E,o.Templating=_,o.Tick=se,o.Time=Se,o.Tooltip=ie,o.animate=u.animate,o.animObject=u.animObject,o.chart=ge.chart,o.color=Oe.parse,o.dateFormat=_.dateFormat,o.defaultOptions=l.defaultOptions,o.distribute=S.distribute,o.format=_.format,o.getDeferredAnimation=u.getDeferredAnimation,o.getOptions=l.getOptions,o.numberFormat=_.numberFormat,o.seriesType=N.seriesType,o.setAnimation=u.setAnimation,o.setOptions=l.setOptions,o.stop=u.stop,o.time=l.defaultTime,o.timers=c.timers,be.compose(o.Series,o.SVGElement,o.SVGRenderer),B.compose(o.Series.types.column),oe.compose(o.Series),$.compose(o.Axis),T.compose(o.SVGRenderer),me.compose(o.Chart),I.compose(o.Axis),he.compose(o.Chart),ee.compose(o.Series.types.pie),H.compose(o.Axis),le.compose(o.Chart),Ce.compose(o.Chart),de.compose(o.Axis,o.Chart,o.Series),ve.compose(o.Axis,o.Chart,o.Series),ie.compose(o.Pointer),a.extend(o,a),o}),r["masters/highcharts.src.js"]._modules=r,r["masters/highcharts.src.js"]})}(highcharts)),highcharts.exports}var highchartsExports=requireHighcharts(),highchartsVue_min={exports:{}};const require$$1=getAugmentedNamespace(vue_runtime_esmBundler);(function(e,t){(function(r,n){e.exports=n(requireHighcharts(),require$$1)})(self,(r,n)=>(()=>{var o={879:u=>{u.exports=r},744:u=>{u.exports=n}},a={};function l(u){var g=a[u];if(g!==void 0)return g.exports;var _=a[u]={exports:{}};return o[u](_,_.exports,l),_.exports}l.n=u=>{var g=u&&u.__esModule?()=>u.default:()=>u;return l.d(g,{a:g}),g},l.d=(u,g)=>{for(var _ in g)l.o(g,_)&&!l.o(u,_)&&Object.defineProperty(u,_,{enumerable:!0,get:g[_]})},l.o=(u,g)=>Object.prototype.hasOwnProperty.call(u,g),l.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var c={};return(()=>{l.r(c),l.d(c,{Chart:()=>T,default:()=>D});var u=l(879),g=l.n(u),_=function $(I,H){var se=g().isArray(I)?[]:{};function ie(ne,le){!g().isObject(ne,!H)||g().isClass(ne)||g().isDOMElement(ne)?se[le]=ne:se[le]=$(ne,H)}return g().isArray(I)?I.forEach(function(ne,le){return ie(ne,le)}):g().objectEach(I,ie),se},x=l(744);function S($){return function(I){if(Array.isArray(I))return O(I)}($)||function(I){if(typeof Symbol<"u"&&I[Symbol.iterator]!=null||I["@@iterator"]!=null)return Array.from(I)}($)||function(I,H){if(!!I){if(typeof I=="string")return O(I,H);var se=Object.prototype.toString.call(I).slice(8,-1);if(se==="Object"&&I.constructor&&(se=I.constructor.name),se==="Map"||se==="Set")return Array.from(I);if(se==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(se))return O(I,H)}}($)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function O($,I){(I==null||I>$.length)&&(I=$.length);for(var H=0,se=new Array(I);H1&&arguments[1]!==void 0?arguments[1]:{};$.component(I.tagName||"highcharts",E(I.highcharts||g()))}})(),c})())})(highchartsVue_min);var stock={exports:{}};(function(e){(function(t){e.exports?(t.default=t,e.exports=t):t(typeof Highcharts<"u"?Highcharts:void 0)})(function(t){var r=t?t._modules:{};function n(o,a,l,c){o.hasOwnProperty(a)||(o[a]=c.apply(null,l),typeof CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:a,module:o[a]}})))}n(r,"Series/DataModifyComposition.js",[r["Core/Axis/Axis.js"],r["Core/Series/Point.js"],r["Core/Series/Series.js"],r["Core/Utilities.js"]],function(o,a,l,c){var u;let{tooltipFormatter:g}=a.prototype,{addEvent:_,arrayMax:x,arrayMin:S,correctFloat:O,defined:E,isArray:T,isNumber:D,isString:$,pick:I}=c;return function(H){function se(te,N,B){!this.isXAxis&&(this.series.forEach(function(ee){te==="compare"&&typeof N!="boolean"?ee.setCompare(N,!1):te!=="cumulative"||$(N)||ee.setCumulative(N,!1)}),I(B,!0)&&this.chart.redraw())}function ie(te){let N=this,{numberFormatter:B}=N.series.chart,ee=function(oe){te=te.replace("{point."+oe+"}",(N[oe]>0&&oe==="change"?"+":"")+B(N[oe],I(N.series.tooltipOptions.changeDecimals,2)))};return E(N.change)&&ee("change"),E(N.cumulativeSum)&&ee("cumulativeSum"),g.apply(this,[te])}function ne(){let te,N=this.options.compare;(N==="percent"||N==="value"||this.options.cumulative)&&(te=new pe(this),N==="percent"||N==="value"?te.initCompare(N):te.initCumulative()),this.dataModify=te}function le(te){let N=te.dataExtremes,B=N.activeYData;if(this.dataModify&&N){let ee;this.options.compare?ee=[this.dataModify.modifyValue(N.dataMin),this.dataModify.modifyValue(N.dataMax)]:this.options.cumulative&&T(B)&&B.length>=2&&(ee=pe.getCumulativeExtremes(B)),ee&&(N.dataMin=S(ee),N.dataMax=x(ee))}}function me(te,N){this.options.compare=this.userOptions.compare=te,this.update({},I(N,!0)),this.dataModify&&(te==="value"||te==="percent")?this.dataModify.initCompare(te):this.points.forEach(B=>{delete B.change})}function _e(){if(this.xAxis&&this.processedYData&&this.dataModify){let te=this.processedXData,N=this.processedYData,B=N.length,ee=this.options.compareStart===!0?0:1,oe=-1,he;for(this.pointArrayMap&&(oe=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),he=0;he-1?N[he][oe]:N[he];if(D(be)&&be!==0&&te[he+ee]>=(this.xAxis.min||0)){this.dataModify.compareValue=be;break}}}}function ge(te,N){this.setModifier("compare",te,N)}function de(te,N){te=I(te,!1),this.options.cumulative=this.userOptions.cumulative=te,this.update({},I(N,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(B=>{delete B.cumulativeSum})}function ve(te,N){this.setModifier("cumulative",te,N)}H.compose=function(te,N,B){let ee=N.prototype,oe=B.prototype,he=te.prototype;return he.setCompare||(he.setCompare=me,he.setCumulative=de,_(te,"afterInit",ne),_(te,"afterGetExtremes",le),_(te,"afterProcessData",_e)),ee.setCompare||(ee.setCompare=ge,ee.setModifier=se,ee.setCumulative=ve,oe.tooltipFormatter=ie),te};class pe{constructor(N){this.series=N}modifyValue(){return 0}static getCumulativeExtremes(N){let B=1/0,ee=-1/0;return N.reduce((oe,he)=>{let be=oe+he;return B=Math.min(B,be,oe),ee=Math.max(ee,be,oe),be}),[B,ee]}initCompare(N){this.modifyValue=function(B,ee){B===null&&(B=0);let oe=this.compareValue;if(B!==void 0&&oe!==void 0){if(N==="value"?B-=oe:B=B/oe*100-(this.series.options.compareBase===100?0:100),ee!==void 0){let he=this.series.points[ee];he&&(he.change=B)}return B}return 0}}initCumulative(){this.modifyValue=function(N,B){if(N===null&&(N=0),N!==void 0&&B!==void 0){let ee=B>0?this.series.points[B-1]:null;ee&&ee.cumulativeSum&&(N=O(ee.cumulativeSum+N));let oe=this.series.points[B],he=oe.series.options.cumulativeStart,be=oe.x<=this.series.xAxis.max&&oe.x>=this.series.xAxis.min;return oe&&(!he||be?oe.cumulativeSum=N:oe.cumulativeSum=void 0),N}return 0}}}H.Additions=pe}(u||(u={})),u}),n(r,"Stock/Navigator/ChartNavigatorComposition.js",[r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a){let l,{isTouchDevice:c}=o,{addEvent:u,merge:g,pick:_}=a,x=[];function S(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function O(){let H,se,ie,ne=this.legend,le=this.navigator;if(le){H=ne&&ne.options,se=le.xAxis,ie=le.yAxis;let{scrollbarHeight:me,scrollButtonSize:_e}=le;this.inverted?(le.left=le.opposite?this.chartWidth-me-le.height:this.spacing[3]+me,le.top=this.plotTop+_e):(le.left=_(se.left,this.plotLeft+_e),le.top=le.navigatorOptions.top||this.chartHeight-le.height-me-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(H&&H.verticalAlign==="bottom"&&H.layout!=="proximate"&&H.enabled&&!H.floating?ne.legendHeight+_(H.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),se&&ie&&(this.inverted?se.options.left=ie.options.left=le.left:se.options.top=ie.options.top=le.top,se.setAxisSize(),ie.setAxisSize())}}function E(H){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new l(this),_(H.redraw,!0)&&this.redraw(H.animation))}function T(){let H=this.options;(H.navigator.enabled||H.scrollbar.enabled)&&(this.scroller=this.navigator=new l(this))}function D(){let H=this.options,se=H.navigator,ie=H.rangeSelector;if((se&&se.enabled||ie&&ie.enabled)&&(!c&&this.zooming.type==="x"||c&&this.zooming.pinchType==="x"))return!1}function $(H){let se=H.navigator;if(se&&H.xAxis[0]){let ie=H.xAxis[0].getExtremes();se.render(ie.min,ie.max)}}function I(H){let se=H.options.navigator||{},ie=H.options.scrollbar||{};!this.navigator&&!this.scroller&&(se.enabled||ie.enabled)&&(g(!0,this.options.navigator,se),g(!0,this.options.scrollbar,ie),delete H.options.navigator,delete H.options.scrollbar)}return{compose:function(H,se){if(a.pushUnique(x,H)){let ie=H.prototype;l=se,ie.callbacks.push($),u(H,"afterAddSeries",S),u(H,"afterSetChartSize",O),u(H,"afterUpdate",E),u(H,"beforeRender",T),u(H,"beforeShowResetZoom",D),u(H,"update",I)}}}}),n(r,"Core/Axis/NavigatorAxisComposition.js",[r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a){let{isTouchDevice:l}=o,{addEvent:c,correctFloat:u,defined:g,isNumber:_,pick:x}=a;function S(){this.navigatorAxis||(this.navigatorAxis=new E(this))}function O(T){let D,$=this.chart,I=$.options,H=I.navigator,se=this.navigatorAxis,ie=$.zooming.pinchType,ne=I.rangeSelector,le=$.zooming.type;if(this.isXAxis&&(H?.enabled||ne?.enabled)){if(le==="y"&&T.trigger==="zoom")D=!1;else if((T.trigger==="zoom"&&le==="xy"||l&&ie==="xy")&&this.options.range){let me=se.previousZoom;g(T.min)?se.previousZoom=[this.min,this.max]:me&&(T.min=me[0],T.max=me[1],se.previousZoom=void 0)}}D!==void 0&&T.preventDefault()}class E{static compose(D){D.keepProps.includes("navigatorAxis")||(D.keepProps.push("navigatorAxis"),c(D,"init",S),c(D,"setExtremes",O))}constructor(D){this.axis=D}destroy(){this.axis=void 0}toFixedRange(D,$,I,H){let se=this.axis,ie=(se.pointRange||0)/2,ne=x(I,se.translate(D,!0,!se.horiz)),le=x(H,se.translate($,!0,!se.horiz));return g(I)||(ne=u(ne+ie)),g(H)||(le=u(le-ie)),_(ne)&&_(le)||(ne=le=void 0),{min:ne,max:le}}}return E}),n(r,"Stock/Navigator/NavigatorDefaults.js",[r["Core/Color/Color.js"],r["Core/Series/SeriesRegistry.js"]],function(o,a){let{parse:l}=o,{seriesTypes:c}=a;return{height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:l("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:c.areaspline===void 0?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["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,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),n(r,"Stock/Navigator/NavigatorSymbols.js",[r["Core/Renderer/SVG/Symbols.js"],r["Core/Utilities.js"]],function(o,a){let{relativeLength:l}=a;return{"navigator-handle":function(c,u,g,_,x={}){let S=x.width?x.width/2:g,O=l(x.borderRadius||0,Math.min(2*S,_));return[["M",-1.5,(_=x.height||_)/2-3.5],["L",-1.5,_/2+4.5],["M",.5,_/2-3.5],["L",.5,_/2+4.5],...o.rect(-S-1,.5,2*S+1,_,{r:O})]}}}),n(r,"Stock/Utilities/StockUtilities.js",[r["Core/Utilities.js"]],function(o){let{defined:a}=o;return{setFixedRange:function(l){let c=this.xAxis[0];a(c.dataMax)&&a(c.dataMin)&&l?this.fixedRange=Math.min(l,c.dataMax-c.dataMin):this.fixedRange=l}}}),n(r,"Stock/Navigator/NavigatorComposition.js",[r["Core/Defaults.js"],r["Core/Globals.js"],r["Core/Axis/NavigatorAxisComposition.js"],r["Stock/Navigator/NavigatorDefaults.js"],r["Stock/Navigator/NavigatorSymbols.js"],r["Core/Renderer/RendererRegistry.js"],r["Stock/Utilities/StockUtilities.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x){let{setOptions:S}=o,{composed:O}=a,{getRendererType:E}=g,{setFixedRange:T}=_,{addEvent:D,extend:$,pushUnique:I}=x;function H(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(se,ie,ne){l.compose(ie),I(O,"Navigator")&&(se.prototype.setFixedRange=T,$(E().prototype.symbols,u),D(ne,"afterUpdate",H),S({navigator:c}))}}}),n(r,"Core/Axis/ScrollbarAxis.js",[r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a){var l;let{composed:c}=o,{addEvent:u,defined:g,pick:_,pushUnique:x}=a;return function(S){let O;function E(I){let H=_(I.options&&I.options.min,I.min),se=_(I.options&&I.options.max,I.max);return{axisMin:H,axisMax:se,scrollMin:g(I.dataMin)?Math.min(H,I.min,I.dataMin,_(I.threshold,1/0)):H,scrollMax:g(I.dataMax)?Math.max(se,I.max,I.dataMax,_(I.threshold,-1/0)):se}}function T(){let I=this.scrollbar,H=I&&!I.options.opposite,se=this.horiz?2:H?3:1;I&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[se]+=I.size+(I.options.margin||0))}function D(){let I=this;I.options&&I.options.scrollbar&&I.options.scrollbar.enabled&&(I.options.scrollbar.vertical=!I.horiz,I.options.startOnTick=I.options.endOnTick=!1,I.scrollbar=new O(I.chart.renderer,I.options.scrollbar,I.chart),u(I.scrollbar,"changed",function(H){let se,ie,{axisMin:ne,axisMax:le,scrollMin:me,scrollMax:_e}=E(I),ge=_e-me;if(g(ne)&&g(le))if(I.horiz&&!I.reversed||!I.horiz&&I.reversed?(se=me+ge*this.to,ie=me+ge*this.from):(se=me+ge*(1-this.from),ie=me+ge*(1-this.to)),this.shouldUpdateExtremes(H.DOMType)){let de=H.DOMType!=="mousemove"&&H.DOMType!=="touchmove"&&void 0;I.setExtremes(ie,se,!0,de,H)}else this.setRange(this.from,this.to)}))}function $(){let I,H,se,{scrollMin:ie,scrollMax:ne}=E(this),le=this.scrollbar,me=this.axisTitleMargin+(this.titleOffset||0),_e=this.chart.scrollbarsOffsets,ge=this.options.margin||0;if(le&&_e){if(this.horiz)this.opposite||(_e[1]+=me),le.position(this.left,this.top+this.height+2+_e[1]-(this.opposite?ge:0),this.width,this.height),this.opposite||(_e[1]+=ge),I=1;else{let de;this.opposite&&(_e[0]+=me),de=le.options.opposite?this.left+this.width+2+_e[0]-(this.opposite?0:ge):this.opposite?0:ge,le.position(de,this.top,this.width,this.height),this.opposite&&(_e[0]+=ge),I=0}_e[I]+=le.size+(le.options.margin||0),isNaN(ie)||isNaN(ne)||!g(this.min)||!g(this.max)||this.min===this.max?le.setRange(0,1):(H=(this.min-ie)/(ne-ie),se=(this.max-ie)/(ne-ie),this.horiz&&!this.reversed||!this.horiz&&this.reversed?le.setRange(H,se):le.setRange(1-se,1-H))}}S.compose=function(I,H){x(c,"Axis.Scrollbar")&&(O=H,u(I,"afterGetOffset",T),u(I,"afterInit",D),u(I,"afterRender",$))}}(l||(l={})),l}),n(r,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),n(r,"Stock/Scrollbar/Scrollbar.js",[r["Core/Defaults.js"],r["Core/Globals.js"],r["Core/Axis/ScrollbarAxis.js"],r["Stock/Scrollbar/ScrollbarDefaults.js"],r["Core/Utilities.js"]],function(o,a,l,c,u){let{defaultOptions:g}=o,{addEvent:_,correctFloat:x,crisp:S,defined:O,destroyObjectProperties:E,fireEvent:T,merge:D,pick:$,removeEvent:I}=u;class H{static compose(ie){l.compose(ie,H)}static swapXY(ie,ne){return ne&&ie.forEach(le=>{let me,_e=le.length;for(let ge=0;ge<_e;ge+=2)typeof(me=le[ge+1])=="number"&&(le[ge+1]=le[ge+2],le[ge+2]=me)}),ie}constructor(ie,ne,le){this._events=[],this.chartX=0,this.chartY=0,this.from=0,this.scrollbarButtons=[],this.scrollbarLeft=0,this.scrollbarStrokeWidth=1,this.scrollbarTop=0,this.size=0,this.to=0,this.trackBorderWidth=1,this.x=0,this.y=0,this.init(ie,ne,le)}addEvents(){let ie=this.options.inverted?[1,0]:[0,1],ne=this.scrollbarButtons,le=this.scrollbarGroup.element,me=this.track.element,_e=this.mouseDownHandler.bind(this),ge=this.mouseMoveHandler.bind(this),de=this.mouseUpHandler.bind(this),ve=[[ne[ie[0]].element,"click",this.buttonToMinClick.bind(this)],[ne[ie[1]].element,"click",this.buttonToMaxClick.bind(this)],[me,"click",this.trackClick.bind(this)],[le,"mousedown",_e],[le.ownerDocument,"mousemove",ge],[le.ownerDocument,"mouseup",de],[le,"touchstart",_e],[le.ownerDocument,"touchmove",ge],[le.ownerDocument,"touchend",de]];ve.forEach(function(pe){_.apply(null,pe)}),this._events=ve}buttonToMaxClick(ie){let ne=(this.to-this.from)*$(this.options.step,.2);this.updatePosition(this.from+ne,this.to+ne),T(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:ie})}buttonToMinClick(ie){let ne=x(this.to-this.from)*$(this.options.step,.2);this.updatePosition(x(this.from-ne),x(this.to-ne)),T(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:ie})}cursorToScrollbarPosition(ie){let ne=this.options,le=ne.minWidth>this.calculatedWidth?ne.minWidth:0;return{chartX:(ie.chartX-this.x-this.xOffset)/(this.barWidth-le),chartY:(ie.chartY-this.y-this.yOffset)/(this.barWidth-le)}}destroy(){let ie=this,ne=ie.chart.scroller;ie.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(le){ie[le]&&ie[le].destroy&&(ie[le]=ie[le].destroy())}),ne&&ie===ne.scrollbar&&(ne.scrollbar=null,E(ne.scrollbarButtons))}drawScrollbarButton(ie){let ne=this.renderer,le=this.scrollbarButtons,me=this.options,_e=this.size,ge=ne.g().add(this.group);if(le.push(ge),me.buttonsEnabled){let de=ne.rect().addClass("highcharts-scrollbar-button").add(ge);this.chart.styledMode||de.attr({stroke:me.buttonBorderColor,"stroke-width":me.buttonBorderWidth,fill:me.buttonBackgroundColor}),de.attr(de.crisp({x:-.5,y:-.5,width:_e,height:_e,r:me.buttonBorderRadius},de.strokeWidth()));let ve=ne.path(H.swapXY([["M",_e/2+(ie?-1:1),_e/2-3],["L",_e/2+(ie?-1:1),_e/2+3],["L",_e/2+(ie?2:-2),_e/2]],me.vertical)).addClass("highcharts-scrollbar-arrow").add(le[ie]);this.chart.styledMode||ve.attr({fill:me.buttonArrowColor})}}init(ie,ne,le){this.scrollbarButtons=[],this.renderer=ie,this.userOptions=ne,this.options=D(c,g.scrollbar,ne),this.options.margin=$(this.options.margin,10),this.chart=le,this.size=$(this.options.size,this.options.height),ne.enabled&&(this.render(),this.addEvents())}mouseDownHandler(ie){let ne=this.chart.pointer?.normalize(ie)||ie,le=this.cursorToScrollbarPosition(ne);this.chartX=le.chartX,this.chartY=le.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(ie){let ne,le=this.chart.pointer?.normalize(ie)||ie,me=this.options.vertical?"chartY":"chartX",_e=this.initPositions||[];this.grabbedCenter&&(!ie.touches||ie.touches[0][me]!==0)&&(ne=this.cursorToScrollbarPosition(le)[me]-this[me],this.hasDragged=!0,this.updatePosition(_e[0]+ne,_e[1]+ne),this.hasDragged&&T(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:ie.type,DOMEvent:ie}))}mouseUpHandler(ie){this.hasDragged&&T(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:ie.type,DOMEvent:ie}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(ie,ne,le,me){let{buttonsEnabled:_e,margin:ge=0,vertical:de}=this.options,ve=this.rendered?"animate":"attr",pe=me,te=0;this.group.show(),this.x=ie,this.y=ne+this.trackBorderWidth,this.width=le,this.height=me,this.xOffset=pe,this.yOffset=te,de?(this.width=this.yOffset=le=te=this.size,this.xOffset=pe=0,this.yOffset=te=_e?this.size:0,this.barWidth=me-(_e?2*le:0),this.x=ie+=ge):(this.height=me=this.size,this.xOffset=pe=_e?this.size:0,this.barWidth=le-(_e?2*me:0),this.y=this.y+ge),this.group[ve]({translateX:ie,translateY:this.y}),this.track[ve]({width:le,height:me}),this.scrollbarButtons[1][ve]({translateX:de?0:le-pe,translateY:de?me-te:0})}removeEvents(){this._events.forEach(function(ie){I.apply(null,ie)}),this._events.length=0}render(){let ie=this.renderer,ne=this.options,le=this.size,me=this.chart.styledMode,_e=ie.g("scrollbar").attr({zIndex:ne.zIndex}).hide().add();this.group=_e,this.track=ie.rect().addClass("highcharts-scrollbar-track").attr({r:ne.trackBorderRadius||0,height:le,width:le}).add(_e),me||this.track.attr({fill:ne.trackBackgroundColor,stroke:ne.trackBorderColor,"stroke-width":ne.trackBorderWidth});let ge=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-S(0,ge),y:-S(0,ge)}),this.scrollbarGroup=ie.g().add(_e),this.scrollbar=ie.rect().addClass("highcharts-scrollbar-thumb").attr({height:le-ge,width:le-ge,r:ne.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=ie.path(H.swapXY([["M",-3,le/4],["L",-3,2*le/3],["M",0,le/4],["L",0,2*le/3],["M",3,le/4],["L",3,2*le/3]],ne.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),me||(this.scrollbar.attr({fill:ne.barBackgroundColor,stroke:ne.barBorderColor,"stroke-width":ne.barBorderWidth}),this.scrollbarRifles.attr({stroke:ne.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-S(0,this.scrollbarStrokeWidth),-S(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(ie,ne){let le,me,_e=this.options,ge=_e.vertical,de=_e.minWidth,ve=this.barWidth,pe=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!O(ve))return;let te=ve*Math.min(ne,1);le=Math.ceil(ve*(ie=Math.max(ie,0))),this.calculatedWidth=me=x(te-le),me=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(ie){return $(this.options.liveRedraw,a.svg&&!a.isTouchDevice&&!this.chart.boosted)||ie==="mouseup"||ie==="touchend"||!O(ie)}trackClick(ie){let ne=this.chart.pointer?.normalize(ie)||ie,le=this.to-this.from,me=this.y+this.scrollbarTop,_e=this.x+this.scrollbarLeft;this.options.vertical&&ne.chartY>me||!this.options.vertical&&ne.chartX>_e?this.updatePosition(this.from+le,this.to+le):this.updatePosition(this.from-le,this.to-le),T(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:ie})}update(ie){this.destroy(),this.init(this.chart.renderer,D(!0,this.options,ie),this.chart)}updatePosition(ie,ne){ne>1&&(ie=x(1-x(ne-ie)),ne=1),ie<0&&(ne=x(ne-ie),ie=0),this.from=ie,this.to=ne}}return H.defaultOptions=c,g.scrollbar=D(!0,H.defaultOptions,g.scrollbar),H}),n(r,"Stock/Navigator/Navigator.js",[r["Core/Axis/Axis.js"],r["Stock/Navigator/ChartNavigatorComposition.js"],r["Core/Defaults.js"],r["Core/Globals.js"],r["Core/Axis/NavigatorAxisComposition.js"],r["Stock/Navigator/NavigatorComposition.js"],r["Stock/Scrollbar/Scrollbar.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x){let{defaultOptions:S}=l,{isTouchDevice:O}=c,{addEvent:E,clamp:T,correctFloat:D,defined:$,destroyObjectProperties:I,erase:H,extend:se,find:ie,fireEvent:ne,isArray:le,isNumber:me,merge:_e,pick:ge,removeEvent:de,splat:ve}=x;function pe(N,...B){let ee=[].filter.call(B,me);if(ee.length)return Math[N].apply(0,ee)}class te{static compose(B,ee,oe){a.compose(B,te),g.compose(B,ee,oe)}constructor(B){this.scrollbarHeight=0,this.init(B)}drawHandle(B,ee,oe,he){let be=this.navigatorOptions.handles.height;this.handles[ee][he](oe?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(B,10)+.5-be)}:{translateX:Math.round(this.left+parseInt(B,10)),translateY:Math.round(this.top+this.height/2-be/2-1)})}drawOutline(B,ee,oe,he){let be=this.navigatorOptions.maskInside,Ce=this.outline.strokeWidth(),Oe=Ce/2,Se=Ce%2/2,$e=this.scrollButtonSize,ke=this.size,Re=this.top,Be=this.height,Ee=Re-Oe,Pe=Re+Be,Ie=this.left,Fe,fe;oe?(Fe=Re+ee+Se,ee=Re+B+Se,fe=[["M",Ie+Be,Re-$e-Se],["L",Ie+Be,Fe],["L",Ie,Fe],["M",Ie,ee],["L",Ie+Be,ee],["L",Ie+Be,Re+ke+$e]],be&&fe.push(["M",Ie+Be,Fe-Oe],["L",Ie+Be,ee+Oe])):(Ie-=$e,B+=Ie+$e-Se,ee+=Ie+$e-Se,fe=[["M",Ie,Ee],["L",B,Ee],["L",B,Pe],["M",ee,Pe],["L",ee,Ee],["L",Ie+ke+2*$e,Re+Oe]],be&&fe.push(["M",B-Oe,Ee],["L",ee+Oe,Ee])),this.outline[he]({d:fe})}drawMasks(B,ee,oe,he){let be,Ce,Oe,Se,$e=this.left,ke=this.top,Re=this.height;oe?(Oe=[$e,$e,$e],Se=[ke,ke+B,ke+ee],Ce=[Re,Re,Re],be=[B,ee-B,this.size-ee]):(Oe=[$e,$e+B,$e+ee],Se=[ke,ke,ke],Ce=[B,ee-B,this.size-ee],be=[Re,Re,Re]),this.shades.forEach((Be,Ee)=>{Be[he]({x:Oe[Ee],y:Se[Ee],width:Ce[Ee],height:be[Ee]})})}renderElements(){let B=this,ee=B.navigatorOptions,oe=ee.maskInside,he=B.chart,be=he.inverted,Ce=he.renderer,Oe={cursor:be?"ns-resize":"ew-resize"},Se=B.navigatorGroup=Ce.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!oe,oe,!oe].forEach(($e,ke)=>{let Re=Ce.rect().addClass("highcharts-navigator-mask"+(ke===1?"-inside":"-outside")).add(Se);he.styledMode||(Re.attr({fill:$e?ee.maskFill:"rgba(0,0,0,0)"}),ke===1&&Re.css(Oe)),B.shades[ke]=Re}),B.outline=Ce.path().addClass("highcharts-navigator-outline").add(Se),he.styledMode||B.outline.attr({"stroke-width":ee.outlineWidth,stroke:ee.outlineColor}),ee.handles&&ee.handles.enabled){let $e=ee.handles,{height:ke,width:Re}=$e;[0,1].forEach(Be=>{B.handles[Be]=Ce.symbol($e.symbols[Be],-Re/2-1,0,Re,ke,$e),he.inverted&&B.handles[Be].attr({rotation:90,rotationOriginX:Math.floor(-Re/2),rotationOriginY:(ke+Re)/2}),B.handles[Be].attr({zIndex:7-Be}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][Be]).add(Se),he.styledMode||B.handles[Be].attr({fill:$e.backgroundColor,stroke:$e.borderColor,"stroke-width":$e.lineWidth}).css(Oe)})}}update(B){(this.series||[]).forEach(ee=>{ee.baseSeries&&delete ee.baseSeries.navigatorSeries}),this.destroy(),_e(!0,this.chart.options.navigator,B),this.init(this.chart)}render(B,ee,oe,he){let be=this.chart,Ce=this.xAxis,Oe=Ce.pointRange||0,Se=Ce.navigatorAxis.fake?be.xAxis[0]:Ce,$e=this.navigatorEnabled,ke=this.rendered,Re=be.inverted,Be=be.xAxis[0].minRange,Ee=be.xAxis[0].options.maxRange,Pe=this.scrollButtonSize,Ie,Fe,fe,ae=this.scrollbarHeight,ue,xe;if(this.hasDragged&&!$(oe))return;if(B=D(B-Oe/2),ee=D(ee+Oe/2),!me(B)||!me(ee)){if(!ke)return;oe=0,he=ge(Ce.width,Se.width)}this.left=ge(Ce.left,be.plotLeft+Pe+(Re?be.plotWidth:0));let Ae=this.size=ue=ge(Ce.len,(Re?be.plotHeight:be.plotWidth)-2*Pe);Ie=Re?ae:ue+2*Pe,oe=ge(oe,Ce.toPixels(B,!0)),he=ge(he,Ce.toPixels(ee,!0)),me(oe)&&Math.abs(oe)!==1/0||(oe=0,he=Ie);let De=Ce.toValue(oe,!0),ze=Ce.toValue(he,!0),je=Math.abs(D(ze-De));jeEe&&(this.grabbedLeft?oe=Ce.toPixels(ze-Ee-Oe,!0):this.grabbedRight&&(he=Ce.toPixels(De+Ee+Oe,!0))),this.zoomedMax=T(Math.max(oe,he),0,Ae),this.zoomedMin=T(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(oe,he),0,Ae),this.range=this.zoomedMax-this.zoomedMin,Ae=Math.round(this.zoomedMax);let Ke=Math.round(this.zoomedMin);$e&&(this.navigatorGroup.attr({visibility:"inherit"}),xe=ke&&!this.hasDragged?"animate":"attr",this.drawMasks(Ke,Ae,Re,xe),this.drawOutline(Ke,Ae,Re,xe),this.navigatorOptions.handles.enabled&&(this.drawHandle(Ke,0,Re,xe),this.drawHandle(Ae,1,Re,xe))),this.scrollbar&&(Re?(fe=this.top-Pe,Fe=this.left-ae+($e||!Se.opposite?0:(Se.titleOffset||0)+Se.axisTitleMargin),ae=ue+2*Pe):(fe=this.top+($e?this.height:-ae),Fe=this.left-Pe),this.scrollbar.position(Fe,fe,Ie,ae),this.scrollbar.setRange(this.zoomedMin/(ue||1),this.zoomedMax/(ue||1))),this.rendered=!0,ne(this,"afterRender")}addMouseEvents(){let B=this,ee=B.chart,oe=ee.container,he=[],be,Ce;B.mouseMoveHandler=be=function(Oe){B.onMouseMove(Oe)},B.mouseUpHandler=Ce=function(Oe){B.onMouseUp(Oe)},(he=B.getPartsEvents("mousedown")).push(E(ee.renderTo,"mousemove",be),E(oe.ownerDocument,"mouseup",Ce),E(ee.renderTo,"touchmove",be),E(oe.ownerDocument,"touchend",Ce)),he.concat(B.getPartsEvents("touchstart")),B.eventsToUnbind=he,B.series&&B.series[0]&&he.push(E(B.series[0].xAxis,"foundExtremes",function(){ee.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(B){let ee=this,oe=[];return["shades","handles"].forEach(function(he){ee[he].forEach(function(be,Ce){oe.push(E(be.element,B,function(Oe){ee[he+"Mousedown"](Oe,Ce)}))})}),oe}shadesMousedown(B,ee){B=this.chart.pointer?.normalize(B)||B;let oe=this.chart,he=this.xAxis,be=this.zoomedMin,Ce=this.size,Oe=this.range,Se=this.left,$e=B.chartX,ke,Re,Be,Ee;oe.inverted&&($e=B.chartY,Se=this.top),ee===1?(this.grabbedCenter=$e,this.fixedWidth=Oe,this.dragOffset=$e-be):(Ee=$e-Se-Oe/2,ee===0?Ee=Math.max(0,Ee):ee===2&&Ee+Oe>=Ce&&(Ee=Ce-Oe,this.reversedExtremes?(Ee-=Oe,Re=this.getUnionExtremes().dataMin):ke=this.getUnionExtremes().dataMax),Ee!==be&&(this.fixedWidth=Oe,$((Be=he.navigatorAxis.toFixedRange(Ee,Ee+Oe,Re,ke)).min)&&ne(this,"setRange",{min:Math.min(Be.min,Be.max),max:Math.max(Be.min,Be.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(B,ee){B=this.chart.pointer?.normalize(B)||B;let oe=this.chart,he=oe.xAxis[0],be=this.reversedExtremes;ee===0?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=be?he.min:he.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=be?he.max:he.min),oe.setFixedRange(void 0)}onMouseMove(B){let ee=this,oe=ee.chart,he=ee.navigatorSize,be=ee.range,Ce=ee.dragOffset,Oe=oe.inverted,Se=ee.left,$e;(!B.touches||B.touches[0].pageX!==0)&&($e=(B=oe.pointer?.normalize(B)||B).chartX,Oe&&(Se=ee.top,$e=B.chartY),ee.grabbedLeft?(ee.hasDragged=!0,ee.render(0,0,$e-Se,ee.otherHandlePos)):ee.grabbedRight?(ee.hasDragged=!0,ee.render(0,0,ee.otherHandlePos,$e-Se)):ee.grabbedCenter&&(ee.hasDragged=!0,$ehe+Ce-be&&($e=he+Ce-be),ee.render(0,0,$e-Ce,$e-Ce+be)),ee.hasDragged&&ee.scrollbar&&ge(ee.scrollbar.options.liveRedraw,!O&&!this.chart.boosted)&&(B.DOMType=B.type,setTimeout(function(){ee.onMouseUp(B)},0)))}onMouseUp(B){let ee,oe,he,be,Ce,Oe,Se=this.chart,$e=this.xAxis,ke=this.scrollbar,Re=B.DOMEvent||B,Be=Se.inverted,Ee=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!ke||!ke.hasDragged)||B.trigger==="scrollbar")&&(he=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?be=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(Ce=this.fixedExtreme),this.zoomedMax===this.size&&(Ce=this.reversedExtremes?he.dataMin:he.dataMax),this.zoomedMin===0&&(be=this.reversedExtremes?he.dataMax:he.dataMin),$((Oe=$e.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,be,Ce)).min)&&ne(this,"setRange",{min:Math.min(Oe.min,Oe.max),max:Math.max(Oe.min,Oe.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:Re}})),B.DOMType!=="mousemove"&&B.DOMType!=="touchmove"&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&me(this.zoomedMin)&&me(this.zoomedMax)&&(oe=Math.round(this.zoomedMin),ee=Math.round(this.zoomedMax),this.shades&&this.drawMasks(oe,ee,Be,Ee),this.outline&&this.drawOutline(oe,ee,Be,Ee),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(oe,0,Be,Ee),this.drawHandle(ee,1,Be,Ee)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(B){B()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let B=this.baseSeries||[];this.navigatorEnabled&&B[0]&&(this.navigatorOptions.adaptToUpdatedData!==!1&&B.forEach(function(ee){de(ee,"updatedData",this.updatedDataHandler)},this),B[0].xAxis&&de(B[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(B){let ee=B.options,oe=ee.navigator||{},he=oe.enabled,be=ee.scrollbar||{},Ce=be.enabled,Oe=he&&oe.height||0,Se=Ce&&be.height||0,$e=be.buttonsEnabled&&Se||0;this.handles=[],this.shades=[],this.chart=B,this.setBaseSeries(),this.height=Oe,this.scrollbarHeight=Se,this.scrollButtonSize=$e,this.scrollbarEnabled=Ce,this.navigatorEnabled=he,this.navigatorOptions=oe,this.scrollbarOptions=be,this.opposite=ge(oe.opposite,!!(!he&&B.inverted));let ke=this,Re=ke.baseSeries,Be=B.xAxis.length,Ee=B.yAxis.length,Pe=Re&&Re[0]&&Re[0].xAxis||B.xAxis[0]||{options:{}};if(B.isDirtyBox=!0,ke.navigatorEnabled?(ke.xAxis=new o(B,_e({breaks:Pe.options.breaks,ordinal:Pe.options.ordinal,overscroll:Pe.options.overscroll},oe.xAxis,{type:"datetime",index:Be,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},B.inverted?{offsets:[$e,0,-$e,0],width:Oe}:{offsets:[0,-$e,0,$e],height:Oe}),"xAxis"),ke.yAxis=new o(B,_e(oe.yAxis,{alignTicks:!1,offset:0,index:Ee,isInternal:!0,reversed:ge(oe.yAxis&&oe.yAxis.reversed,B.yAxis[0]&&B.yAxis[0].reversed,!1),zoomEnabled:!1},B.inverted?{width:Oe}:{height:Oe}),"yAxis"),Re||oe.series.data?ke.updateNavigatorSeries(!1):B.series.length===0&&(ke.unbindRedraw=E(B,"beforeRedraw",function(){B.series.length>0&&!ke.series&&(ke.setBaseSeries(),ke.unbindRedraw())})),ke.reversedExtremes=B.inverted&&!ke.xAxis.reversed||!B.inverted&&ke.xAxis.reversed,ke.renderElements(),ke.addMouseEvents()):(ke.xAxis={chart:B,navigatorAxis:{fake:!0},translate:function(Ie,Fe){let fe=B.xAxis[0],ae=fe.getExtremes(),ue=fe.len-2*$e,xe=pe("min",fe.options.min,ae.dataMin),Ae=pe("max",fe.options.max,ae.dataMax)-xe;return Fe?Ie*Ae/ue+xe:ue*(Ie-xe)/Ae},toPixels:function(Ie){return this.translate(Ie)},toValue:function(Ie){return this.translate(Ie,!0)}},ke.xAxis.navigatorAxis.axis=ke.xAxis,ke.xAxis.navigatorAxis.toFixedRange=u.prototype.toFixedRange.bind(ke.xAxis.navigatorAxis)),B.options.scrollbar.enabled){let Ie=_e(B.options.scrollbar,{vertical:B.inverted});!me(Ie.margin)&&ke.navigatorEnabled&&(Ie.margin=B.inverted?-3:3),B.scrollbar=ke.scrollbar=new _(B.renderer,Ie,B),E(ke.scrollbar,"changed",function(Fe){let fe=ke.size,ae=fe*this.to,ue=fe*this.from;ke.hasDragged=ke.scrollbar.hasDragged,ke.render(0,0,ue,ae),this.shouldUpdateExtremes(Fe.DOMType)&&setTimeout(function(){ke.onMouseUp(Fe)})})}ke.addBaseSeriesEvents(),ke.addChartEvents()}getUnionExtremes(B){let ee,oe=this.chart.xAxis[0],he=this.xAxis,be=he.options,Ce=oe.options;return B&&oe.dataMin===null||(ee={dataMin:ge(be&&be.min,pe("min",Ce.min,oe.dataMin,he.dataMin,he.min)),dataMax:ge(be&&be.max,pe("max",Ce.max,oe.dataMax,he.dataMax,he.max))}),ee}setBaseSeries(B,ee){let oe=this.chart,he=this.baseSeries=[];B=B||oe.options&&oe.options.navigator.baseSeries||(oe.series.length?ie(oe.series,be=>!be.options.isInternal).index:0),(oe.series||[]).forEach((be,Ce)=>{!be.options.isInternal&&(be.options.showInNavigator||(Ce===B||be.options.id===B)&&be.options.showInNavigator!==!1)&&he.push(be)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,ee)}updateNavigatorSeries(B,ee){let oe=this,he=oe.chart,be=oe.baseSeries,Ce={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},Oe=oe.series=(oe.series||[]).filter(Be=>{let Ee=Be.baseSeries;return!(0>be.indexOf(Ee))||(Ee&&(de(Ee,"updatedData",oe.updatedDataHandler),delete Ee.navigatorSeries),Be.chart&&Be.destroy(),!1)}),Se,$e,ke=oe.navigatorOptions.series,Re;be&&be.length&&be.forEach(Be=>{let Ee=Be.navigatorSeries,Pe=se({color:Be.color,visible:Be.visible},le(ke)?S.navigator.series:ke);if(Ee&&oe.navigatorOptions.adaptToUpdatedData===!1)return;Ce.name="Navigator "+be.length,Re=(Se=Be.options||{}).navigatorOptions||{},Pe.dataLabels=ve(Pe.dataLabels),($e=_e(Se,Ce,Pe,Re)).pointRange=ge(Pe.pointRange,Re.pointRange,S.plotOptions[$e.type||"line"].pointRange);let Ie=Re.data||Pe.data;oe.hasNavigatorData=oe.hasNavigatorData||!!Ie,$e.data=Ie||Se.data&&Se.data.slice(0),Ee&&Ee.options?Ee.update($e,ee):(Be.navigatorSeries=he.initSeries($e),he.setSortedData(),Be.navigatorSeries.baseSeries=Be,Oe.push(Be.navigatorSeries))}),(ke.data&&!(be&&be.length)||le(ke))&&(oe.hasNavigatorData=!1,(ke=ve(ke)).forEach((Be,Ee)=>{Ce.name="Navigator "+(Oe.length+1),($e=_e(S.navigator.series,{color:he.series[Ee]&&!he.series[Ee].options.isInternal&&he.series[Ee].color||he.options.colors[Ee]||he.options.colors[0]},Ce,Be)).data=Be.data,$e.data&&(oe.hasNavigatorData=!0,Oe.push(he.initSeries($e)))})),B&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let B=this,ee=B.baseSeries||[];ee[0]&&ee[0].xAxis&&ee[0].eventsToUnbind.push(E(ee[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),ee.forEach(oe=>{oe.eventsToUnbind.push(E(oe,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),oe.eventsToUnbind.push(E(oe,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),this.navigatorOptions.adaptToUpdatedData!==!1&&oe.xAxis&&oe.eventsToUnbind.push(E(oe,"updatedData",this.updatedDataHandler)),oe.eventsToUnbind.push(E(oe,"remove",function(){this.navigatorSeries&&(H(B.series,this.navigatorSeries),$(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(B){return this.baseSeries.reduce(function(ee,oe){return Math.min(ee,oe.xData&&oe.xData.length?oe.xData[0]:ee)},B)}modifyNavigatorAxisExtremes(){let B=this.xAxis;if(B.getExtremes!==void 0){let ee=this.getUnionExtremes(!0);ee&&(ee.dataMin!==B.min||ee.dataMax!==B.max)&&(B.min=ee.dataMin,B.max=ee.dataMax)}}modifyBaseAxisExtremes(){let B,ee,oe=this.chart.navigator,he=this.getExtremes(),be=he.min,Ce=he.max,Oe=he.dataMin,Se=he.dataMax,$e=Ce-be,ke=oe.stickToMin,Re=oe.stickToMax,Be=ge(this.ordinal?.convertOverscroll(this.options.overscroll),0),Ee=oe.series&&oe.series[0],Pe=!!this.setExtremes;!(this.eventArgs&&this.eventArgs.trigger==="rangeSelectorButton")&&(ke&&(B=(ee=Oe)+$e),Re&&(B=Se+Be,ke||(ee=Math.max(Oe,B-$e,oe.getBaseSeriesMin(Ee&&Ee.xData?Ee.xData[0]:-Number.MAX_VALUE)))),Pe&&(ke||Re)&&me(ee)&&(this.min=this.userMin=ee,this.max=this.userMax=B)),oe.stickToMin=oe.stickToMax=null}updatedDataHandler(){let B=this.chart.navigator,ee=this.navigatorSeries,oe=B.reversedExtremes?Math.round(B.zoomedMin)===0:Math.round(B.zoomedMax)>=Math.round(B.size);B.stickToMax=ge(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,oe),B.stickToMin=B.shouldStickToMin(this,B),ee&&!B.hasNavigatorData&&(ee.options.pointStart=this.xData[0],ee.setData(this.options.data,!1,null,!1))}shouldStickToMin(B,ee){let oe=ee.getBaseSeriesMin(B.xData[0]),he=B.xAxis,be=he.max,Ce=he.min,Oe=he.options.range;return!!(me(be)&&me(Ce))&&(Oe&&be-oe>0?be-oe{B.destroy&&B.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(B=>{this[B]&&this[B].destroy&&this[B].destroy(),this[B]=null}),[this.handles].forEach(B=>{I(B)})}}return te}),n(r,"Core/Axis/OrdinalAxis.js",[r["Core/Axis/Axis.js"],r["Core/Globals.js"],r["Core/Series/Series.js"],r["Core/Utilities.js"]],function(o,a,l,c){var u;let{addEvent:g,correctFloat:_,css:x,defined:S,error:O,isNumber:E,pick:T,timeUnits:D,isString:$}=c;return function(I){function H(N,B,ee,oe,he=[],be=0,Ce){let Oe={},Se=this.options.tickPixelInterval,$e=this.chart.time,ke=[],Re,Be,Ee,Pe,Ie,Fe=0,fe=[],ae=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!he||he.length<3||B===void 0)return $e.getTimeTicks.apply($e,arguments);let ue=he.length;for(Re=0;Reee,he[Re]5*be||Ie){if(he[Re]>ae){for(Be=$e.getTimeTicks(N,he[Fe],he[Re],oe);Be.length&&Be[0]<=ae;)Be.shift();Be.length&&(ae=Be[Be.length-1]),ke.push(fe.length),fe=fe.concat(Be)}Fe=Re+1}if(Ie)break}if(Be){if(Pe=Be.info,Ce&&Pe.unitRange<=D.hour){for(Fe=1,Re=fe.length-1;FeWe-Ye),(Ze=De[Math.floor(De.length/2)])<.6*Se&&(Ze=null),Ne=fe[xe-1]>ee?xe-1:xe,Ke=void 0;Ne--;)Ge=Math.abs(Ke-(je=Ae[Ne])),Ke&&Ge<.8*Se&&(Ze===null||Ge<.8*Ze)?(Oe[fe[Ne]]&&!Oe[fe[Ne+1]]?(ze=Ne+1,Ke=je):ze=Ne,fe.splice(ze,1)):Ke=je}return fe}function se(N){let B=this.ordinal.positions;if(!B)return N;let ee=B.length-1,oe;return N<0?N=B[0]:N>ee?N=B[ee]:(ee=Math.floor(N),oe=N-ee),oe!==void 0&&B[ee]!==void 0?B[ee]+(oe?oe*(B[ee+1]-B[ee]):0):N}function ie(N){let B=this.ordinal,ee=this.old?this.old.min:this.min,oe=this.old?this.old.transA:this.transA,he=B.getExtendedPositions();if(he&&he.length){let be=_((N-ee)*oe+this.minPixelPadding),Ce=_(B.getIndexOfPoint(be,he)),Oe=_(Ce%1);if(Ce>=0&&Ce<=he.length-1){let Se=he[Math.floor(Ce)],$e=he[Math.ceil(Ce)];return he[Math.floor(Ce)]+Oe*($e-Se)}}return N}function ne(N,B){let ee=I.Additions.findIndexOf(N,B,!0);if(N[ee]===B)return ee;let oe=(B-N[ee])/(N[ee+1]-N[ee]);return ee+oe}function le(){this.ordinal||(this.ordinal=new I.Additions(this))}function me(){let{eventArgs:N,options:B}=this;if(this.isXAxis&&S(B.overscroll)&&B.overscroll!==0&&E(this.max)&&E(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&(N?.trigger!=="pan"||this.isInternal)&&N?.trigger!=="navigator")){let ee=this.ordinal.convertOverscroll(B.overscroll);this.max+=ee,!this.isInternal&&S(this.userMin)&&N?.trigger!=="mousewheel"&&(this.min+=ee)}}function _e(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function ge(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function de(N){let B=this.xAxis[0],ee=B.ordinal.convertOverscroll(B.options.overscroll),oe=N.originalEvent.chartX,he=this.options.chart.panning,be=!1;if(he&&he.type!=="y"&&B.options.ordinal&&B.series.length){let Ce,Oe,Se=this.mouseDownX,$e=B.getExtremes(),ke=$e.dataMin,Re=$e.dataMax,Be=$e.min,Ee=$e.max,Pe=this.hoverPoints,Ie=B.closestPointRange||B.ordinal&&B.ordinal.overscrollPointsRange,Fe=Math.round((Se-oe)/(B.translationSlope*(B.ordinal.slope||Ie))),fe=B.ordinal.getExtendedPositions(),ae={ordinal:{positions:fe,extendedOrdinalPositions:fe}},ue=B.index2val,xe=B.val2lin;if(Be<=ke&&Fe<0||Ee+ee>=Re&&Fe>0)return;ae.ordinal.positions?Math.abs(Fe)>1&&(Pe&&Pe.forEach(function(Ae){Ae.setState()}),Re>(Oe=ae.ordinal.positions)[Oe.length-1]&&Oe.push(Re),this.setFixedRange(Ee-Be),(Ce=B.navigatorAxis.toFixedRange(void 0,void 0,ue.apply(ae,[xe.apply(ae,[Be,!0])+Fe]),ue.apply(ae,[xe.apply(ae,[Ee,!0])+Fe]))).min>=Math.min($e.dataMin,Be)&&Ce.max<=Math.max(Re,Ee)+ee&&B.setExtremes(Ce.min,Ce.max,!0,!1,{trigger:"pan"}),this.mouseDownX=oe,x(this.container,{cursor:"move"})):be=!0}else be=!0;be||he&&/y/.test(he.type)?ee&&(B.max=B.dataMax+ee):N.preventDefault()}function ve(){let N=this.xAxis;N&&N.options.ordinal&&(delete N.ordinal.index,delete N.ordinal.originalOrdinalRange)}function pe(N,B){let ee,oe=this.ordinal,he=oe.positions,be=oe.slope,Ce;if(!he)return N;let Oe=he.length;if(he[0]<=N&&he[Oe-1]>=N)ee=ne(he,N);else{if(!((Ce=oe.getExtendedPositions&&oe.getExtendedPositions())&&Ce.length))return N;let Se=Ce.length;be||(be=(Ce[Se-1]-Ce[0])/Se);let $e=ne(Ce,he[0]);if(N>=Ce[0]&&N<=Ce[Se-1])ee=ne(Ce,N)-$e;else{if(!B)return N;ee=N0&&Ae.options.id!=="highcharts-navigator-series"&&Ae.processedXData.length>1&&(ae=xe!==Ae.processedXData[1]-Ae.processedXData[0]),xe=Ae.processedXData[1]-Ae.processedXData[0],Ae.boosted&&(ue=Ae.boosted),Ae.reserveSpace()&&(Ae.takeOrdinalPosition!==!1||Ce)&&(Se=(Ie=Ie.concat(Ae.processedXData)).length,Ie.sort(function(ze,je){return ze-je}),Fe=Math.min(Fe,T(Ae.closestPointRange,Fe)),Se)){for(De=0;De2){for(ke=Ie[1]-Ie[0],Pe=Se-1;Pe--&&!fe;)Ie[Pe+1]-Ie[Pe]!==ke&&(fe=!0);!B.options.keepOrdinalPadding&&(Ie[0]-he>ke||be-Ie[Ie.length-1]>ke)&&(fe=!0)}else B.options.overscroll&&(Se===2?Fe=Ie[1]-Ie[0]:Se===1?(Fe=B.ordinal.convertOverscroll(B.options.overscroll),Ie=[Ie[0],Ie[0]+Fe]):Fe=ee.overscrollPointsRange);fe||B.forceOrdinal?(B.options.overscroll&&(ee.overscrollPointsRange=Fe,Ie=Ie.concat(ee.getOverscrollPositions())),ee.positions=Ie,Re=B.ordinal2lin(Math.max(he,Ie[0]),!0),Be=Math.max(B.ordinal2lin(Math.min(be,Ie[Ie.length-1]),!0),1),ee.slope=Ee=(be-he)/(Be-Re),ee.offset=he-Re*Ee):(ee.overscrollPointsRange=T(B.closestPointRange,ee.overscrollPointsRange),ee.positions=B.ordinal.slope=ee.offset=void 0)}B.isOrdinal=Oe&&fe,ee.groupIntervalFactor=null}static findIndexOf(B,ee,oe){let he=0,be=B.length-1,Ce;for(;heBe.x>=ke&&Be.x<=Re)};he.series.forEach($e=>{let ke=$e.points?.[0];S(ke?.plotX)&&(ke.plotXpe()),I.splice(ge,1);return}}}function me(){let ge=this.rangeSelector;if(ge){let de=ge.getHeight();this.extraTopMargin&&(this.plotTop+=de),this.extraBottomMargin&&(this.marginBottom+=de)}}function _e(ge){let de=ge.options.rangeSelector,ve=this.extraBottomMargin,pe=this.extraTopMargin,te=this.rangeSelector;if(de&&de.enabled&&!S(te)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=te=new u(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,te){let N=de&&de.verticalAlign||te.options&&te.options.verticalAlign;te.options.floating||(N==="bottom"?this.extraBottomMargin=!0:N==="middle"||(this.extraTopMargin=!0)),(this.extraBottomMargin!==ve||this.extraTopMargin!==pe)&&(this.isDirtyBox=!0)}}return{compose:function(ge,de,ve){if(u=ve,$(_,"RangeSelector")){let pe=de.prototype;ge.prototype.minFromRange=H,x(de,"afterGetContainer",se),x(de,"beforeRender",ie),x(de,"destroy",le),x(de,"getMargins",me),x(de,"redraw",ne),x(de,"update",_e),pe.callbacks.push(ne),O(g,{rangeSelector:l.rangeSelector}),O(g.lang,l.lang)}}}}),n(r,"Stock/RangeSelector/RangeSelector.js",[r["Core/Axis/Axis.js"],r["Core/Defaults.js"],r["Core/Globals.js"],r["Stock/RangeSelector/RangeSelectorComposition.js"],r["Core/Renderer/SVG/SVGElement.js"],r["Core/Utilities.js"],r["Core/Axis/OrdinalAxis.js"]],function(o,a,l,c,u,g,_){let{defaultOptions:x}=a,{addEvent:S,createElement:O,css:E,defined:T,destroyObjectProperties:D,discardElement:$,extend:I,fireEvent:H,isNumber:se,merge:ie,objectEach:ne,pad:le,pick:me,pInt:_e,splat:ge}=g;class de{static compose(pe,te){c.compose(pe,te,de)}constructor(pe){this.buttonOptions=de.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.init(pe)}clickButton(pe,te){let N=this.chart,B=this.buttonOptions[pe],ee=N.xAxis[0],oe=N.scroller&&N.scroller.getUnionExtremes()||ee||{},he=B.type,be=B.dataGrouping,Ce=oe.dataMin,Oe=oe.dataMax,Se,$e=ee&&Math.round(Math.min(ee.max,me(Oe,ee.max))),ke,Re=B._range,Be,Ee,Pe,Ie=!0;if(Ce!==null&&Oe!==null){if(this.setSelected(pe),be&&(this.forcedDataGrouping=!0,o.prototype.setDataGrouping.call(ee||{chart:this.chart},be,!1),this.frozenStates=B.preserveDataGrouping),he==="month"||he==="year")ee?(Ee={range:B,max:$e,chart:N,dataMin:Ce,dataMax:Oe},Se=ee.minFromRange.call(Ee),se(Ee.newMax)&&($e=Ee.newMax),Ie=!1):Re=B;else if(Re)$e=Math.min((Se=Math.max($e-Re,Ce))+Re,Oe),Ie=!1;else if(he==="ytd")if(ee)(Oe===void 0||Ce===void 0)&&(Ce=Number.MAX_VALUE,Oe=Number.MIN_VALUE,N.series.forEach(Fe=>{let fe=Fe.xData;fe&&(Ce=Math.min(fe[0],Ce),Oe=Math.max(fe[fe.length-1],Oe))}),te=!1),Se=Be=(Pe=this.getYTDExtremes(Oe,Ce,N.time.useUTC)).min,$e=Pe.max;else{this.deferredYTDClick=pe;return}else he==="all"&&ee&&(N.navigator&&N.navigator.baseSeries[0]&&(N.navigator.baseSeries[0].xAxis.options.range=void 0),Se=Ce,$e=Oe);if(Ie&&B._offsetMin&&T(Se)&&(Se+=B._offsetMin),B._offsetMax&&T($e)&&($e+=B._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=pe+1),ee)ee.setExtremes(Se,$e,me(te,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:B}),N.setFixedRange(B._range);else{ke=ge(N.options.xAxis)[0];let Fe=S(N,"afterGetAxes",function(){let fe=N.xAxis[0];fe.range=fe.options.range=Re,fe.min=fe.options.min=Be});S(N,"load",function(){let fe=N.xAxis[0];N.setFixedRange(B._range),fe.options.range=ke.range,fe.options.min=ke.min,Fe()})}H(this,"afterBtnClick")}}setSelected(pe){this.selected=this.options.selected=pe}init(pe){let te=this,N=pe.options.rangeSelector,B=N.buttons||te.defaultButtons.slice(),ee=N.selected,oe=function(){let he=te.minInput,be=te.maxInput;he&&he.blur&&H(he,"blur"),be&&be.blur&&H(be,"blur")};te.chart=pe,te.options=N,te.buttons=[],te.buttonOptions=B,this.eventsToUnbind=[],this.eventsToUnbind.push(S(pe.container,"mousedown",oe)),this.eventsToUnbind.push(S(pe,"resize",oe)),B.forEach(te.computeButtonRange),ee!==void 0&&B[ee]&&this.clickButton(ee,!1),this.eventsToUnbind.push(S(pe,"load",function(){pe.xAxis&&pe.xAxis[0]&&S(pe.xAxis[0],"setExtremes",function(he){se(this.max)&&se(this.min)&&this.max-this.min!==pe.fixedRange&&he.trigger!=="rangeSelectorButton"&&he.trigger!=="updatedData"&&te.forcedDataGrouping&&!te.frozenStates&&this.setDataGrouping(!1,!1)})})),this.createElements()}updateButtonStates(){let pe=this,te=this.chart,N=this.dropdown,B=this.dropdownLabel,ee=te.xAxis[0],oe=Math.round(ee.max-ee.min),he=!ee.hasVisibleSeries,be=24*36e5,Ce=te.scroller&&te.scroller.getUnionExtremes()||ee,Oe=Ce.dataMin,Se=Ce.dataMax,$e=pe.getYTDExtremes(Se,Oe,te.time.useUTC),ke=$e.min,Re=$e.max,Be=pe.selected,Ee=pe.options.allButtonsEnabled,Pe=Array(pe.buttonOptions.length).fill(0),Ie=se(Be),Fe=pe.buttons,fe=!1,ae=null;pe.buttonOptions.forEach((ue,xe)=>{let Ae=ue._range,De=ue.type,ze=ue.count||1,je=ue._offsetMax-ue._offsetMin,Ke=xe===Be,Ze=Ae>Se-Oe,Ge=AeAe&&(We=!0)}else(De==="month"||De==="year")&&oe+36e5>={month:28,year:365}[De]*be*ze-je&&oe-36e5<={month:31,year:366}[De]*be*ze+je?We=!0:De==="ytd"?(We=Re-ke+je===oe,Ne=!Ke):De==="all"&&(We=ee.max-ee.min>=Se-Oe);let Ye=!Ee&&!(fe&&De==="all")&&(Ze||Ge||he),Qe=fe&&De==="all"||!Ne&&We||Ke&&pe.frozenStates;Ye?Pe[xe]=3:Qe&&(!Ie||xe===Be)&&(ae=xe)}),ae!==null?(Pe[ae]=2,pe.setSelected(ae)):(pe.setSelected(),B&&(B.setState(0),B.attr({text:(x.lang.rangeSelectorZoom||"")+" \u25BE"})));for(let ue=0;ue6&&(oe.lastIndexOf("-")===oe.length-6||oe.lastIndexOf("+")===oe.length-6))){let he=new Date(B).getTimezoneOffset()/60;B+=he<=0?`+${le(-he)}:00`:`-${le(he)}:00`}}let ee=Date.parse(B);if(!se(ee)){let oe=pe.split("-");ee=Date.UTC(_e(oe[0]),_e(oe[1])-1,_e(oe[2]))}return N&&te&&se(ee)&&(ee+=N.getTimezoneOffset(ee)),ee}drawInput(pe){let{chart:te,div:N,inputGroup:B}=this,ee=this,oe=te.renderer.style||{},he=te.renderer,be=te.options.rangeSelector,Ce=x.lang,Oe=pe==="min";function Se(Pe){let{maxInput:Ie,minInput:Fe}=ee,fe=te.xAxis[0],ae=te.scroller?.getUnionExtremes()||fe,ue=ae.dataMin,xe=ae.dataMax,Ae=te.xAxis[0].getExtremes()[Pe],De=ee.getInputValue(Pe);se(De)&&De!==Ae&&(Oe&&Ie&&se(ue)?De>Number(Ie.getAttribute("data-hc-time"))?De=void 0:Dexe&&(De=xe)),De!==void 0&&fe.setExtremes(Oe?De:fe.min,Oe?fe.max:De,void 0,void 0,{trigger:"rangeSelectorInput"}))}let $e=Ce[Oe?"rangeSelectorFrom":"rangeSelectorTo"]||"",ke=he.label($e,0).addClass("highcharts-range-label").attr({padding:$e?2:0,height:$e?be.inputBoxHeight:0}).add(B),Re=he.label("",0).addClass("highcharts-range-input").attr({padding:2,width:be.inputBoxWidth,height:be.inputBoxHeight,"text-align":"center"}).on("click",function(){ee.showInput(pe),ee[pe+"Input"].focus()});te.styledMode||Re.attr({stroke:be.inputBoxBorderColor,"stroke-width":1}),Re.add(B);let Be=O("input",{name:pe,className:"highcharts-range-selector"},void 0,N);Be.setAttribute("type",function(Pe){if(Pe.indexOf("%L")!==-1)return"text";let Ie=["a","A","d","e","w","b","B","m","o","y","Y"].some(fe=>Pe.indexOf("%"+fe)!==-1),Fe=["H","k","I","l","M","S"].some(fe=>Pe.indexOf("%"+fe)!==-1);return Ie&&Fe?"datetime-local":Ie?"date":Fe?"time":"text"}(be.inputDateFormat||"%e %b %Y")),te.styledMode||(ke.css(ie(oe,be.labelStyle)),Re.css(ie({color:"#333333"},oe,be.inputStyle)),E(Be,I({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:oe.fontSize,fontFamily:oe.fontFamily,top:"-9999em"},be.inputStyle))),Be.onfocus=()=>{ee.showInput(pe)},Be.onblur=()=>{Be===l.doc.activeElement&&Se(pe),ee.hideInput(pe),ee.setInputValue(pe),Be.blur()};let Ee=!1;return Be.onchange=()=>{Ee||(Se(pe),ee.hideInput(pe),Be.blur())},Be.onkeypress=Pe=>{Pe.keyCode===13&&Se(pe)},Be.onkeydown=Pe=>{Ee=!0,(Pe.key==="ArrowUp"||Pe.key==="ArrowDown"||Pe.key==="Tab")&&Se(pe)},Be.onkeyup=()=>{Ee=!1},{dateBox:Re,input:Be,label:ke}}getPosition(){let pe=this.chart,te=pe.options.rangeSelector,N=te.verticalAlign==="top"?pe.plotTop-pe.axisOffset[0]:0;return{buttonTop:N+te.buttonPosition.y,inputTop:N+te.inputPosition.y-10}}getYTDExtremes(pe,te,N){let B=this.chart.time,ee=new B.Date(pe),oe=B.get("FullYear",ee),he=N?B.Date.UTC(oe,0,1):+new B.Date(oe,0,1),be=ee.getTime();return{max:Math.min(pe||be,be),min:Math.max(te,he)}}createElements(){let pe=this.chart,te=pe.renderer,N=pe.container,B=pe.options,ee=B.rangeSelector,oe=ee.inputEnabled,he=me(B.chart.style?.zIndex,0)+1;if(ee.enabled!==!1&&(this.group=te.g("range-selector-group").attr({zIndex:7}).add(),this.div=O("div",void 0,{position:"relative",height:0,zIndex:he}),this.buttonOptions.length&&this.renderButtons(),N.parentNode&&N.parentNode.insertBefore(this.div,N),oe)){this.inputGroup=te.g("input-group").add(this.group);let be=this.drawInput("min");this.minDateBox=be.dateBox,this.minLabel=be.label,this.minInput=be.input;let Ce=this.drawInput("max");this.maxDateBox=Ce.dateBox,this.maxLabel=Ce.label,this.maxInput=Ce.input}}render(pe,te){let N=this.chart,B=N.options.rangeSelector,ee=B.inputEnabled;if(B.enabled!==!1){if(ee){this.setInputValue("min",pe),this.setInputValue("max",te);let oe=N.scroller&&N.scroller.getUnionExtremes()||N.xAxis[0]||{};if(T(oe.dataMin)&&T(oe.dataMax)){let he=N.xAxis[0].minRange||0;this.setInputExtremes("min",oe.dataMin,Math.min(oe.dataMax,this.getInputValue("max"))-he),this.setInputExtremes("max",Math.max(oe.dataMin,this.getInputValue("min"))+he,oe.dataMax)}if(this.inputGroup){let he=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(be=>{if(be){let{width:Ce}=be.getBBox();Ce&&(be.attr({x:he}),he+=Ce+B.inputSpacing)}})}}this.alignElements(),this.updateButtonStates()}}renderButtons(){let{buttons:pe,chart:te,options:N}=this,B=x.lang,ee=te.renderer,oe=ie(N.buttonTheme),he=oe&&oe.states,be=oe.width||28;delete oe.width,delete oe.states,this.buttonGroup=ee.g("range-selector-buttons").add(this.group);let Ce=this.dropdown=O("select",void 0,{position:"absolute",padding:0,border:0,cursor:"pointer",opacity:1e-4},this.div),Oe=te.userOptions.rangeSelector?.buttonTheme;this.dropdownLabel=ee.button("",0,0,()=>{},ie(oe,{"stroke-width":me(oe["stroke-width"],0),width:"auto",paddingLeft:me(N.buttonTheme.paddingLeft,Oe?.padding,8),paddingRight:me(N.buttonTheme.paddingRight,Oe?.padding,8)}),he&&he.hover,he&&he.select,he&&he.disabled).hide().add(this.group),S(Ce,"touchstart",()=>{Ce.style.fontSize="16px"});let Se=l.isMS?"mouseover":"mouseenter",$e=l.isMS?"mouseout":"mouseleave";S(Ce,Se,()=>{H(this.dropdownLabel.element,Se)}),S(Ce,$e,()=>{H(this.dropdownLabel.element,$e)}),S(Ce,"change",()=>{H(this.buttons[Ce.selectedIndex-1].element,"click")}),this.zoomText=ee.label(B.rangeSelectorZoom||"",0).attr({padding:N.buttonTheme.padding,height:N.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(N.labelStyle),oe["stroke-width"]=me(oe["stroke-width"],0)),O("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,Ce),this.buttonOptions.forEach((ke,Re)=>{O("option",{textContent:ke.title||ke.text},void 0,Ce),pe[Re]=ee.button(ke.text,0,0,Be=>{let Ee,Pe=ke.events&&ke.events.click;Pe&&(Ee=Pe.call(ke,Be)),Ee!==!1&&this.clickButton(Re),this.isActive=!0},oe,he&&he.hover,he&&he.select,he&&he.disabled).attr({"text-align":"center",width:be}).add(this.buttonGroup),ke.title&&pe[Re].attr("title",ke.title)})}alignElements(){let{buttonGroup:pe,buttons:te,chart:N,group:B,inputGroup:ee,options:oe,zoomText:he}=this,be=N.options,Ce=be.exporting&&be.exporting.enabled!==!1&&be.navigation&&be.navigation.buttonOptions,{buttonPosition:Oe,inputPosition:Se,verticalAlign:$e}=oe,ke=(Be,Ee)=>Ce&&this.titleCollision(N)&&$e==="top"&&Ee.align==="right"&&Ee.y-Be.getBBox().height-12<(Ce.y||0)+(Ce.height||0)+N.spacing[0]?-40:0,Re=N.plotLeft;if(B&&Oe&&Se){let Be=Oe.x-N.spacing[3];if(pe){if(this.positionButtons(),!this.initialButtonGroupWidth){let Ae=0;he&&(Ae+=he.getBBox().width+5),te.forEach((De,ze)=>{Ae+=De.width||0,ze!==te.length-1&&(Ae+=oe.buttonSpacing)}),this.initialButtonGroupWidth=Ae}Re-=N.spacing[3];let xe=ke(pe,Oe);this.alignButtonGroup(xe),this.buttonGroup?.translateY&&this.dropdownLabel.attr({y:this.buttonGroup.translateY}),B.placed=pe.placed=N.hasLoaded}let Ee=0;ee&&(Ee=ke(ee,Se),Se.align==="left"?Be=Re:Se.align==="right"&&(Be=-Math.max(N.axisOffset[1],-Ee)),ee.align({y:Se.y,width:ee.getBBox().width,align:Se.align,x:Se.x+Be-2},!0,N.spacingBox),ee.placed=N.hasLoaded),this.handleCollision(Ee),B.align({verticalAlign:$e},!0,N.spacingBox);let Pe=B.alignAttr.translateY,Ie=B.getBBox().height+20,Fe=0;if($e==="bottom"){let xe=N.legend&&N.legend.options;Fe=Pe-(Ie=Ie+(xe&&xe.verticalAlign==="bottom"&&xe.enabled&&!xe.floating?N.legend.legendHeight+me(xe.margin,10):0)-20)-(oe.floating?0:oe.y)-(N.titleOffset?N.titleOffset[2]:0)-10}$e==="top"?(oe.floating&&(Fe=0),N.titleOffset&&N.titleOffset[0]&&(Fe=N.titleOffset[0]),Fe+=N.margin[0]-N.spacing[0]||0):$e==="middle"&&(Se.y===Oe.y?Fe=Pe:(Se.y||Oe.y)&&(Se.y<0||Oe.y<0?Fe-=Math.min(Se.y,Oe.y):Fe=Pe-Ie)),B.translate(oe.x,oe.y+Math.floor(Fe));let{minInput:fe,maxInput:ae,dropdown:ue}=this;oe.inputEnabled&&fe&&ae&&(fe.style.marginTop=B.translateY+"px",ae.style.marginTop=B.translateY+"px"),ue&&(ue.style.marginTop=B.translateY+"px")}}alignButtonGroup(pe,te){let{chart:N,options:B,buttonGroup:ee}=this,{buttonPosition:oe}=B,he=N.plotLeft-N.spacing[3],be=oe.x-N.spacing[3];oe.align==="right"?be+=pe-he:oe.align==="center"&&(be-=he/2),ee&&ee.align({y:oe.y,width:me(te,this.initialButtonGroupWidth),align:oe.align,x:be},!0,N.spacingBox)}positionButtons(){let{buttons:pe,chart:te,options:N,zoomText:B}=this,ee=te.hasLoaded?"animate":"attr",{buttonPosition:oe}=N,he=te.plotLeft,be=he;B&&B.visibility!=="hidden"&&(B[ee]({x:me(he+oe.x,he)}),be+=oe.x+B.getBBox().width+5);for(let Ce=0,Oe=this.buttonOptions.length;Ce{let Se=0;return this.buttons.forEach($e=>{let ke=$e.getBBox();ke.width>Se&&(Se=ke.width)}),Se},Ce=Se=>{if(B?.alignOptions&&N){let $e=B.alignAttr.translateX+B.alignOptions.x-pe+B.getBBox().x+2,ke=B.alignOptions.width||0,Re=N.alignAttr.translateX+N.getBBox().x;return Re+Se>$e&&$e+ke>Re&&ee.y{B&&N&&B.attr({translateX:B.alignAttr.translateX+(te.axisOffset[1]>=-pe?0:-pe),translateY:B.alignAttr.translateY+N.getBBox().height+10})};if(N){if(oe==="always"){this.collapseButtons(),Ce(be())&&Oe();return}oe==="never"&&this.expandButtons()}B&&N?he.align===ee.align||Ce(this.initialButtonGroupWidth+20)?oe==="responsive"?(this.collapseButtons(),Ce(be())&&Oe()):Oe():oe==="responsive"&&this.expandButtons():N&&oe==="responsive"&&(this.initialButtonGroupWidth>te.plotWidth?this.collapseButtons():this.expandButtons())}collapseButtons(){let{buttons:pe,zoomText:te}=this;this.isCollapsed!==!0&&(this.isCollapsed=!0,te.hide(),pe.forEach(N=>void N.hide()),this.showDropdown())}expandButtons(){let{buttons:pe,zoomText:te}=this;this.isCollapsed!==!1&&(this.isCollapsed=!1,this.hideDropdown(),te.show(),pe.forEach(N=>void N.show()),this.positionButtons())}showDropdown(){let{buttonGroup:pe,chart:te,dropdownLabel:N,dropdown:B}=this;if(pe&&B){let{translateX:ee=0,translateY:oe=0}=pe,he=te.plotLeft+ee;N.attr({x:he,y:oe}).show(),E(B,{left:he+"px",top:oe+"px",visibility:"inherit"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:pe}=this;pe&&(this.dropdownLabel.hide(),E(pe,{visibility:"hidden",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let pe=this.options,te=this.group,N=pe.inputPosition,B=pe.buttonPosition,ee=pe.y,oe=B.y,he=N.y,be=0;return pe.height?pe.height:(this.alignElements(),be=te?te.getBBox(!0).height+13+ee:0,(he<0&&oe<0||he>0&&oe>0)&&(be+=Math.abs(Math.min(he,oe))),be)}titleCollision(pe){return!(pe.options.title.text||pe.options.subtitle.text)}update(pe,te=!0){let N=this.chart;ie(!0,N.options.rangeSelector,pe),this.destroy(),this.init(N),te&&this.render()}destroy(){let pe=this,te=pe.minInput,N=pe.maxInput;pe.eventsToUnbind&&(pe.eventsToUnbind.forEach(B=>B()),pe.eventsToUnbind=void 0),D(pe.buttons),te&&(te.onfocus=te.onblur=te.onchange=null),N&&(N.onfocus=N.onblur=N.onchange=null),ne(pe,function(B,ee){B&&ee!=="chart"&&(B instanceof u?B.destroy():B instanceof window.HTMLElement&&$(B)),B!==de.prototype[ee]&&(pe[ee]=null)},this)}}return I(de.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),de}),n(r,"Core/Chart/StockChart.js",[r["Core/Chart/Chart.js"],r["Core/Templating.js"],r["Core/Defaults.js"],r["Stock/Navigator/NavigatorDefaults.js"],r["Stock/RangeSelector/RangeSelectorDefaults.js"],r["Stock/Scrollbar/ScrollbarDefaults.js"],r["Stock/Utilities/StockUtilities.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x){let{format:S}=a,{getOptions:O}=l,{setFixedRange:E}=_,{addEvent:T,clamp:D,crisp:$,defined:I,extend:H,find:se,isNumber:ie,isString:ne,merge:le,pick:me,splat:_e}=x;function ge(pe,te,N){return pe==="xAxis"?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:pe==="yAxis"?{labels:{y:-2},opposite:N.opposite??te.opposite??!0,showLastLabel:!!(te.categories||te.type==="category"),title:{text:N.title?.text!=="Values"?N.title?.text:null}}:{}}function de(pe,te){if(pe==="xAxis"){let N=me(te.navigator&&te.navigator.enabled,c.enabled,!0),B={type:"datetime",categories:void 0};return N&&(B.startOnTick=!1,B.endOnTick=!1),B}return{}}class ve extends o{init(te,N){let B=O(),ee=te.xAxis,oe=te.yAxis,he=me(te.navigator&&te.navigator.enabled,c.enabled,!0);te.xAxis=te.yAxis=void 0;let be=le({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:he},scrollbar:{enabled:me(g.enabled,!0)},rangeSelector:{enabled:me(u.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:me(B.tooltip&&B.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},te,{isStock:!0});te.xAxis=ee,te.yAxis=oe,be.xAxis=_e(te.xAxis||{}).map(Ce=>le(ge("xAxis",Ce,B.xAxis),Ce,de("xAxis",te))),be.yAxis=_e(te.yAxis||{}).map(Ce=>le(ge("yAxis",Ce,B.yAxis),Ce)),super.init(be,N)}createAxis(te,N){return N.axis=le(ge(te,N.axis,O()[te]),N.axis,de(te,this.userOptions)),super.createAxis(te,N)}}return T(o,"update",function(pe){let te=pe.options;"scrollbar"in te&&this.navigator&&(le(!0,this.options.scrollbar,te.scrollbar),this.navigator.update({}),delete te.scrollbar)}),function(pe){function te(Oe){if(!this.crosshair||!this.crosshair.label||!this.crosshair.label.enabled||!this.cross||!ie(this.min)||!ie(this.max))return;let Se=this.chart,$e=this.logarithmic,ke=this.crosshair.label,Re=this.horiz,Be=this.opposite,Ee=this.left,Pe=this.top,Ie=this.width,Fe=this.options.tickPosition==="inside",fe=this.crosshair.snap!==!1,ae=Oe.e||this.cross&&this.cross.e,ue=Oe.point,xe=this.crossLabel,Ae,De,ze=ke.format,je="",Ke,Ze=0,Ge=this.min,Ne=this.max;$e&&(Ge=$e.lin2log(this.min),Ne=$e.lin2log(this.max));let We=Re?"center":Be?this.labelAlign==="right"?"right":"left":this.labelAlign==="left"?"left":"center";xe||(xe=this.crossLabel=Se.renderer.label("",0,void 0,ke.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(ue&&ue.series?ue.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:ke.align||We,padding:me(ke.padding,8),r:me(ke.borderRadius,3),zIndex:2}).add(this.labelGroup),Se.styledMode||xe.attr({fill:ke.backgroundColor||ue&&ue.series&&ue.series.color||"#666666",stroke:ke.borderColor||"","stroke-width":ke.borderWidth||0}).css(H({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},ke.style||{}))),Re?(Ae=fe?(ue.plotX||0)+Ee:ae.chartX,De=Pe+(Be?0:this.height)):(Ae=Ee+this.offset+(Be?Ie:0),De=fe?(ue.plotY||0)+Pe:ae.chartY),ze||ke.formatter||(this.dateTime&&(je="%b %d, %Y"),ze="{value"+(je?":"+je:"")+"}");let Ye=fe?this.isXAxis?ue.x:ue.y:this.toValue(Re?ae.chartX:ae.chartY),Qe=ue&&ue.series?ue.series.isPointInside(ue):ie(Ye)&&Ye>Ge&&Ye=Ke.right&&(Ze=-(we+ye.width-Ke.right)),xe.attr({x:Ae+Ze,y:De,anchorX:Re?Ae:this.opposite?0:Se.chartWidth,anchorY:Re?this.opposite?Se.chartHeight:0:De+ye.height/2})}function N(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function B(Oe){let Se=this.chart,$e=this.options,ke=Se._labelPanes=Se._labelPanes||{},Re=$e.labels;if(Se.options.isStock&&this.coll==="yAxis"){let Be=$e.top+","+$e.height;!ke[Be]&&Re.enabled&&(Re.distance===15&&this.side===1&&(Re.distance=0),Re.align===void 0&&(Re.align="right"),ke[Be]=this,Oe.align="right",Oe.preventDefault())}}function ee(){let Oe=this.chart,Se=this.options&&this.options.top+","+this.options.height;Se&&Oe._labelPanes&&Oe._labelPanes[Se]===this&&delete Oe._labelPanes[Se]}function oe(Oe){let Se=this,$e=Se.isLinked&&!Se.series&&Se.linkedParent?Se.linkedParent.series:Se.series,ke=Se.chart,Re=ke.renderer,Be=Se.left,Ee=Se.top,Pe=[],Ie=Oe.translatedValue,Fe=Oe.value,fe=Oe.force,ae,ue,xe,Ae,De=[],ze,je;if(ke.options.isStock&&Oe.acrossPanes!==!1&&Se.coll==="xAxis"||Se.coll==="yAxis"){for(let Ke of(Oe.preventDefault(),De=(Ze=>{let Ge=Ze==="xAxis"?"yAxis":"xAxis",Ne=Se.options[Ge];return ie(Ne)?[ke[Ge][Ne]]:ne(Ne)?[ke.get(Ne)]:$e.map(We=>We[Ge])})(Se.coll),Se.isXAxis?ke.yAxis:ke.xAxis))if(!I(Ke.options.id)||Ke.options.id.indexOf("navigator")===-1){let Ze=Ke.isXAxis?"yAxis":"xAxis";Se===(I(Ke.options[Ze])?ke[Ze][Ke.options[Ze]]:ke[Ze][0])&&De.push(Ke)}for(let Ke of(ze=De.length?[]:[Se.isXAxis?ke.yAxis[0]:ke.xAxis[0]],De))ze.indexOf(Ke)!==-1||se(ze,Ze=>Ze.pos===Ke.pos&&Ze.len===Ke.len)||ze.push(Ke);if(ie(je=me(Ie,Se.translate(Fe||0,void 0,void 0,Oe.old))))if(Se.horiz)for(let Ke of ze){let Ze;Ae=(ue=Ke.pos)+Ke.len,ae=xe=Math.round(je+Se.transB),fe!=="pass"&&(aeBe+Se.width)&&(fe?ae=xe=D(ae,Be,Be+Se.width):Ze=!0),Ze||Pe.push(["M",ae,ue],["L",xe,Ae])}else for(let Ke of ze){let Ze;xe=(ae=Ke.pos)+Ke.len,ue=Ae=Math.round(Ee+Se.height-je),fe!=="pass"&&(ueEe+Se.height)&&(fe?ue=Ae=D(ue,Ee,Ee+Se.height):Ze=!0),Ze||Pe.push(["M",ae,ue],["L",xe,Ae])}Oe.path=Pe.length>0?Re.crispPolyLine(Pe,Oe.lineWidth||1):void 0}}function he(Oe){if(this.chart.options.isStock){let Se;this.is("column")||this.is("columnrange")?Se={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(Se={marker:{enabled:!1,radius:2}}),Se&&(Oe.plotOptions[this.type]=le(Oe.plotOptions[this.type],Se))}}function be(){let Oe=this.chart,Se=this.options.dataGrouping;return this.allowDG!==!1&&Se&&me(Se.enabled,Oe.options.isStock)}function Ce(Oe,Se){for(let $e=0;$e\u25CF {series.name}
High: {point.high}
Low: {point.low}
Close: {point.close}
'},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),n(r,"Series/HLC/HLCSeries.js",[r["Series/HLC/HLCPoint.js"],r["Series/HLC/HLCSeriesDefaults.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l,c){let{column:u}=l.seriesTypes,{crisp:g,extend:_,merge:x}=c;class S extends u{extendStem(E,T,D){let $=E[0],I=E[1];typeof $[2]=="number"&&($[2]=Math.max(D+T,$[2])),typeof I[2]=="number"&&(I[2]=Math.min(D-T,I[2]))}getPointPath(E,T){let D=T.strokeWidth(),$=E.series,I=g(E.plotX||0,D),H=Math.round(E.shapeArgs.width/2),se=[["M",I,Math.round(E.yBottom)],["L",I,Math.round(E.plotHigh)]];if(E.close!==null){let ie=g(E.plotClose,D);se.push(["M",I,ie],["L",I+H,ie]),$.extendStem(se,D/2,ie)}return se}drawSinglePoint(E){let T=E.series,D=T.chart,$,I=E.graphic;E.plotY!==void 0&&(I||(E.graphic=I=D.renderer.path().add(T.group)),D.styledMode||I.attr(T.pointAttribs(E,E.selected&&"select")),$=T.getPointPath(E,I),I[I?"animate":"attr"]({d:$}).addClass(E.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs(E,T){let D=super.pointAttribs.call(this,E,T);return delete D.fill,D}toYData(E){return[E.high,E.low,E.close]}translate(){let E=this,T=E.yAxis,D=this.pointArrayMap&&this.pointArrayMap.slice()||[],$=D.map(I=>`plot${I.charAt(0).toUpperCase()+I.slice(1)}`);$.push("yBottom"),D.push("low"),super.translate.apply(E),E.points.forEach(function(I){D.forEach(function(H,se){let ie=I[H];ie!==null&&(E.dataModify&&(ie=E.dataModify.modifyValue(ie)),I[$[se]]=T.toPixels(ie,!0))}),I.tooltipPos[1]=I.plotHigh+T.pos-E.chart.plotTop})}}return S.defaultOptions=x(u.defaultOptions,a),_(S.prototype,{pointClass:o,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),l.registerSeriesType("hlc",S),S}),n(r,"Series/OHLC/OHLCPoint.js",[r["Core/Series/SeriesRegistry.js"]],function(o){let{seriesTypes:{hlc:a}}=o;class l extends a.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open\u25CF {series.name}
Open: {point.open}
High: {point.high}
Low: {point.low}
Close: {point.close}
'}}}),n(r,"Series/OHLC/OHLCSeries.js",[r["Core/Globals.js"],r["Series/OHLC/OHLCPoint.js"],r["Series/OHLC/OHLCSeriesDefaults.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l,c,u){let{composed:g}=o,{hlc:_}=c.seriesTypes,{addEvent:x,crisp:S,extend:O,merge:E,pushUnique:T}=u;function D(H){let se=H.options,ie=se.dataGrouping;ie&&se.useOhlcData&&se.id!=="highcharts-navigator-series"&&(ie.approximation="ohlc")}function $(H){let se=H.options;se.useOhlcData&&se.id!=="highcharts-navigator-series"&&O(this,{pointValKey:I.prototype.pointValKey,pointArrayMap:I.prototype.pointArrayMap,toYData:I.prototype.toYData})}class I extends _{static compose(se,...ie){T(g,"OHLCSeries")&&(x(se,"afterSetOptions",D),x(se,"init",$))}getPointPath(se,ie){let ne=super.getPointPath(se,ie),le=ie.strokeWidth(),me=S(se.plotX||0,le),_e=Math.round(se.shapeArgs.width/2);if(se.open!==null){let ge=S(se.plotOpen,le);ne.push(["M",me,ge],["L",me-_e,ge]),super.extendStem(ne,le/2,ge)}return ne}pointAttribs(se,ie){let ne=super.pointAttribs.call(this,se,ie),le=this.options;return delete ne.fill,!se.options.color&&le.upColor&&se.openE&&(S-=Math.round((T-E)/2),E=T),$=_[x](S,O,E,T,D),I&&H){let se=I;if(x==="circle")se=S+E/2;else{let ne=$[0],le=$[1];ne[0]==="M"&&le[0]==="L"&&(se=(ne[1]+le[1])/2)}let ie=O>H?O:O+T;$.push(["M",se,ie],["L",I,H]),$=$.concat(_.circle(I-1,H-1,2,2))}return $}}l.compose=function(_){if(c.indexOf(_)===-1){c.push(_);let S=_.prototype.symbols;S.flag=u,g(S,"circle"),g(S,"square")}let x=o.getRendererType();c.indexOf(x)&&c.push(x)}}(a||(a={})),a}),n(r,"Series/OnSeriesComposition.js",[r["Series/Column/ColumnSeries.js"],r["Core/Globals.js"],r["Core/Series/Series.js"],r["Core/Utilities.js"]],function(o,a,l,c){var u;let{composed:g}=a,{prototype:_}=o,{prototype:x}=l,{defined:S,pushUnique:O,stableSort:E}=c;return function(T){function D(I){return x.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,I)}function $(){_.translate.apply(this);let I=this,H=I.options,se=I.chart,ie=I.points,ne=H.onSeries,le=ne&&se.get(ne),me=le&&le.options.step,_e=le&&le.points,ge=se.inverted,de=I.xAxis,ve=I.yAxis,pe=ie.length-1,te,N,B=H.onKey||"y",ee=_e&&_e.length,oe=0,he,be,Ce,Oe,Se;if(le&&le.visible&&ee){for(oe=(le.pointXOffset||0)+(le.barW||0)/2,Oe=le.currentDataGrouping,be=_e[ee-1].x+(Oe?Oe.totalRange:0),E(ie,($e,ke)=>$e.x-ke.x),B="plot"+B[0].toUpperCase()+B.substr(1);ee--&&ie[pe];)if(he=_e[ee],(te=ie[pe]).y=he.y,he.x<=te.x&&he[B]!==void 0){if(te.x<=be&&(te.plotY=he[B],he.xMath.pow(1-fe,3)*$e[ae]+3*(1-fe)*(1-fe)*fe*Re[ae]+3*(1-fe)*fe*fe*Be[ae]+fe*fe*fe*ke[ae],Pe=0,Ie=1,Fe;for(let fe=0;fe<100;fe++){let ae=(Pe+Ie)/2,ue=Ee(ae,0);if(ue===null)break;if(.25>Math.abs(ue-te.plotX)){Fe=ae;break}ue{let Re;$e.plotX+=oe,($e.plotY===void 0||ge)&&($e.plotX>=0&&$e.plotX<=de.len?ge?($e.plotY=de.translate($e.x,0,1,0,1),$e.plotX=S($e.y)?ve.translate($e.y,0,0,0,1):0):$e.plotY=(de.opposite?0:I.yAxis.len)+de.offset:$e.shapeArgs={}),(N=ie[ke-1])&&N.plotX===$e.plotX&&(N.stackIndex===void 0&&(N.stackIndex=0),Re=N.stackIndex+1),$e.stackIndex=Re}),this.onSeries=le}T.compose=function(I){if(O(g,"OnSeries")){let H=I.prototype;H.getPlotBox=D,H.translate=$}return I},T.getPlotBox=D,T.translate=$}(u||(u={})),u}),n(r,"Series/Flags/FlagsSeries.js",[r["Series/Flags/FlagsPoint.js"],r["Series/Flags/FlagsSeriesDefaults.js"],r["Series/Flags/FlagsSymbols.js"],r["Core/Globals.js"],r["Series/OnSeriesComposition.js"],r["Core/Renderer/RendererUtilities.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Renderer/SVG/SVGElement.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x,S){let{noop:O}=c,{distribute:E}=g,{series:T,seriesTypes:{column:D}}=_,{addEvent:$,defined:I,extend:H,isNumber:se,merge:ie,objectEach:ne,wrap:le}=S;class me extends D{animate(ge){ge&&this.setClip()}drawPoints(){let ge,de,ve,pe,te,N,B,ee,oe,he,be,Ce=this.points,Oe=this.chart,Se=Oe.renderer,$e=Oe.inverted,ke=this.options,Re=ke.y,Be=this.yAxis,Ee={},Pe=[],Ie=se(ke.borderRadius)?ke.borderRadius:0;for(pe=Ce.length;pe--;)te=Ce[pe],he=($e?te.plotY:te.plotX)>this.xAxis.len,ge=te.plotX,B=te.stackIndex,ve=te.options.shape||ke.shape,(de=te.plotY)!==void 0&&(de=te.plotY+Re-(B!==void 0&&B*ke.stackDistance)),te.anchorX=B?void 0:te.plotX,ee=B?void 0:te.plotY,be=ve!=="flag",N=te.graphic,de!==void 0&&ge>=0&&!he?(N&&te.hasNewShapeType()&&(N=N.destroy()),N||(N=te.graphic=Se.label("",0,void 0,ve,void 0,void 0,ke.useHTML).addClass("highcharts-point").add(this.markerGroup),te.graphic.div&&(te.graphic.div.point=te),N.isNew=!0),N.attr({align:be?"center":"left",width:ke.width,height:ke.height,"text-align":ke.textAlign,r:Ie}),Oe.styledMode||N.attr(this.pointAttribs(te)).css(ie(ke.style,te.style)).shadow(ke.shadow),ge>0&&(ge-=N.strokeWidth()%2),oe={y:de,anchorY:ee},ke.allowOverlapX&&(oe.x=ge,oe.anchorX=te.anchorX),N.attr({text:te.options.title??ke.title??"A"})[N.isNew?"attr":"animate"](oe),ke.allowOverlapX||(Ee[te.plotX]?Ee[te.plotX].size=Math.max(Ee[te.plotX].size,N.width||0):Ee[te.plotX]={align:be?.5:0,size:N.width||0,target:ge,anchorX:ge}),te.tooltipPos=[ge,de+Be.pos-Oe.plotTop]):N&&(te.graphic=N.destroy());if(!ke.allowOverlapX){let Fe=100;for(let fe of(ne(Ee,function(ae){ae.plotX=ae.anchorX,Pe.push(ae),Fe=Math.max(ae.size,Fe)}),E(Pe,$e?Be.len:this.xAxis.len,Fe),Ce)){let ae=fe.plotX,ue=fe.graphic,xe=ue&&Ee[ae];xe&&ue&&(I(xe.pos)?ue[ue.isNew?"attr":"animate"]({x:xe.pos+(xe.align||0)*xe.size,anchorX:fe.anchorX}).show().isNew=!1:ue.hide().isNew=!0)}}ke.useHTML&&this.markerGroup&&le(this.markerGroup,"on",function(Fe){return x.prototype.on.apply(Fe.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let ge=this.points;for(let de of(super.drawTracker(),ge)){let ve=de.graphic;ve&&(de.unbindMouseOver&&de.unbindMouseOver(),de.unbindMouseOver=$(ve.element,"mouseover",function(){for(let pe of(de.stackIndex>0&&!de.raised&&(de._y=ve.y,ve.attr({y:de._y-8}),de.raised=!0),ge))pe!==de&&pe.raised&&pe.graphic&&(pe.graphic.attr({y:pe._y}),pe.raised=!1)}))}}pointAttribs(ge,de){let ve=this.options,pe=ge&&ge.color||this.color,te=ve.lineColor,N=ge&&ge.lineWidth,B=ge&&ge.fillColor||ve.fillColor;return de&&(B=ve.states[de].fillColor,te=ve.states[de].lineColor,N=ve.states[de].lineWidth),{fill:B||pe,stroke:te||pe,"stroke-width":N||ve.lineWidth||0}}setClip(){T.prototype.setClip.apply(this,arguments),this.options.clip!==!1&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return me.compose=l.compose,me.defaultOptions=ie(D.defaultOptions,a),u.compose(me),H(me.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:o,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:O,init:T.prototype.init}),_.registerSeriesType("flags",me),me}),n(r,"Core/Axis/BrokenAxis.js",[r["Core/Axis/Stacking/StackItem.js"],r["Core/Utilities.js"]],function(o,a){var l;let{addEvent:c,find:u,fireEvent:g,isArray:_,isNumber:x,pick:S}=a;return function(O){function E(){this.brokenAxis!==void 0&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function T(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function D(){let le=this.brokenAxis;if(le?.hasBreaks){let me=this.tickPositions,_e=this.tickPositions.info,ge=[];for(let de=0;deoe.to||ge>oe.from&&deoe.from&&deoe.from&&de>oe.to&&de0){let pe,te;for(this.options.gapUnit!=="value"&&(de*=this.basePointRange),me&&me>de&&me>=this.basePointRange&&(de=me);ve--;)if(te&&te.visible!==!1||(te=_e[ve+1]),pe=_e[ve],te.visible!==!1&&pe.visible!==!1){if(te.x-pe.x>de){let N=(pe.x+te.x)/2;_e.splice(ve+1,0,{isNull:!0,x:N}),ge.stacking&&this.options.stacking&&((ge.stacking.stacks[this.stackKey][N]=new o(ge,ge.options.stackLabels,!1,N,this.stack)).total=0)}te=pe}}return this.getGraphPath(_e)}O.compose=function(le,me){if(!le.keepProps.includes("brokenAxis")){le.keepProps.push("brokenAxis"),c(le,"init",$),c(le,"afterInit",E),c(le,"afterSetTickPositions",D),c(le,"afterSetOptions",T);let _e=me.prototype;_e.drawBreaks=se,_e.gappedPath=ie,c(me,"afterGeneratePoints",I),c(me,"afterRender",H)}return le};class ne{static isInBreak(me,_e){let ge=me.repeat||1/0,de=me.from,ve=me.to-me.from,pe=_e>=de?(_e-de)%ge:ge-(de-_e)%ge;return me.inclusive?pe<=ve:pe=de);pe++)(ve.to=me)break;if(ne.isInBreak(ve,me)){de-=me-ve.from;break}}return de}constructor(me){this.hasBreaks=!1,this.axis=me}findBreakAt(me,_e){return u(_e,function(ge){return ge.frombe;)Oe-=he;for(;Oethis.chart.plotSizeX/$||H&&se.forced)&&(I=!0));return I?$:0}function O(){this.series.forEach(function(T){T.hasProcessed=!1})}function E(T,D){let $;if(D=_(D,!0),T||(T={forced:!1,units:null}),this instanceof l)for($=this.series.length;$--;)this.series[$].update({dataGrouping:T},!1);else this.chart.options.series.forEach(function(I){I.dataGrouping=typeof T=="boolean"?T:g(T,I.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),D&&this.chart.redraw()}return{compose:function(T){l=T;let D=T.prototype;D.applyGrouping||(c(T,"afterSetScale",O),c(T,"postProcessData",x),u(D,{applyGrouping:x,getGroupPixelWidth:S,setDataGrouping:E}))}}}),n(r,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[r["Extensions/DataGrouping/ApproximationRegistry.js"],r["Extensions/DataGrouping/DataGroupingDefaults.js"],r["Core/Axis/DateTimeAxis.js"],r["Core/Defaults.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g){let{series:{prototype:_}}=u,{addEvent:x,defined:S,error:O,extend:E,isNumber:T,merge:D,pick:$}=g,I=_.generatePoints;function H(_e){var ge;let de,ve,pe=this.chart,te=this.options.dataGrouping,N=this.allowDG!==!1&&te&&$(te.enabled,pe.options.isStock),B=this.reserveSpace(),ee=this.currentDataGrouping,oe,he,be=!1;N&&!this.requireSorting&&(this.requireSorting=be=!0);let Ce=!!(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!_e)||!N;if(be&&(this.requireSorting=!1),Ce)return;this.destroyGroupedData();let Oe=te.groupAll?this.xData:this.processedXData,Se=te.groupAll?this.yData:this.processedYData,$e=pe.plotSizeX,ke=this.xAxis,Re=ke.options.ordinal,Be=this.groupPixelWidth;if(Be&&Oe&&Oe.length&&$e){ve=!0,this.isDirty=!0,this.points=null;let Ee=ke.getExtremes(),Pe=Ee.min,Ie=Ee.max,Fe=Re&&ke.ordinal&&ke.ordinal.getGroupIntervalFactor(Pe,Ie,this)||1,fe=Be*(Ie-Pe)/$e*Fe,ae=ke.getTimeTicks(l.Additions.prototype.normalizeTimeTickInterval(fe,te.units||a.units),Math.min(Pe,Oe[0]),Math.max(Ie,Oe[Oe.length-1]),ke.options.startOfWeek,Oe,this.closestPointRange),ue=_.groupData.apply(this,[Oe,Se,ae,te.approximation]),xe=ue.groupedXData,Ae=ue.groupedYData,De=0;for(te&&te.smoothed&&xe.length&&(te.firstAnchor="firstPoint",te.anchor="middle",te.lastAnchor="lastPoint",O(32,!1,pe,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),de=1;de=je[0]){let we;ye++;let Ve=ze.groupMap[0].start,Xe=ze.groupMap[0].length;T(Ve)&&T(Xe)&&(we=Ve+(Xe-1)),je[0]={start:je[0],middle:je[0]+.5*Ge,end:je[0]+Ge,firstPoint:ze.xData[0],lastPoint:we&&ze.xData[we]}[Ye]}if(Ne>0&&Qe&&Ge&&je[Ne]>=Ke-Ge){Le--;let we=ze.groupMap[ze.groupMap.length-1].start;je[Ne]={start:je[Ne],middle:je[Ne]+.5*Ge,end:je[Ne]+Ge,firstPoint:we&&ze.xData[we],lastPoint:ze.xData[ze.xData.length-1]}[Qe]}if(We&&We!=="start"){let we=Ge*{middle:.5,end:1}[We];for(;Le>=ye;)je[Le]+=we,Le--}}(this,xe,Ie),B&&(S((ge=xe)[0])&&T(ke.min)&&T(ke.dataMin)&&ge[0]ke.max&&((!S(ke.options.max)&&T(ke.dataMax)&&ke.max>=ke.dataMax||ke.max===ke.dataMax)&&(ke.max=Math.max(ge[ge.length-1],ke.max)),ke.dataMax=Math.max(ge[ge.length-1],ke.dataMax))),te.groupAll&&(this.allGroupedData=Ae,xe=(he=this.cropData(xe,Ae,ke.min,ke.max)).xData,Ae=he.yData,this.cropStart=he.start),this.processedXData=xe,this.processedYData=Ae}else this.groupMap=null,this.currentDataGrouping=void 0;this.hasGroupedData=ve,this.preventGraphAnimation=(ee&&ee.totalRange)!==(oe&&oe.totalRange)}function se(){this.groupedData&&(this.groupedData.forEach(function(_e,ge){_e&&(this.groupedData[ge]=_e.destroy?_e.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedData)}function ie(){I.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function ne(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function le(_e,ge,de,ve){let pe=this,te=pe.data,N=pe.options&&pe.options.data,B=[],ee=[],oe=[],he=_e.length,be=!!ge,Ce=[],Oe=pe.pointArrayMap,Se=Oe&&Oe.length,$e=["x"].concat(Oe||["y"]),ke=this.options.dataGrouping&&this.options.dataGrouping.groupAll,Re,Be,Ee,Pe=0,Ie=0,Fe=typeof ve=="function"?ve:ve&&o[ve]?o[ve]:o[pe.getDGApproximation&&pe.getDGApproximation()||"average"];if(Se){let ae=Oe.length;for(;ae--;)Ce.push([])}else Ce.push([]);let fe=Se||1;for(let ae=0;ae<=he;ae++)if(!(_e[ae]=de[Pe+1]||ae===he;){Re=de[Pe],pe.dataGroupInfo={start:ke?Ie:pe.cropStart+Ie,length:Ce[0].length,groupStart:Re},Ee=Fe.apply(pe,Ce),pe.pointClass&&!S(pe.dataGroupInfo.options)&&(pe.dataGroupInfo.options=D(pe.pointClass.prototype.optionsToObject.call({series:pe},pe.options.data[pe.cropStart+Ie])),$e.forEach(function(ue){delete pe.dataGroupInfo.options[ue]})),Ee!==void 0&&(B.push(Re),ee.push(Ee),oe.push(pe.dataGroupInfo)),Ie=ae;for(let ue=0;ue{let x=_.axis.getExtremes(),S=x.min,O=x.max,E=c(_.axis.minPointOffset,0);return l(S)&&l(O)&&_.value>=S-E&&_.value<=O+E&&!_.axis.options.isInternal})[0]},getFieldType:function(g,_){let x=u[g],S=typeof _;return a(x)&&(S=x),{string:"text",number:"number",boolean:"checkbox"}[S]}}}),n(r,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[r["Core/Utilities.js"],r["Extensions/Annotations/NavigationBindingsUtilities.js"]],function(o,a){let l,{addEvent:c,isObject:u,pick:g,defined:_,merge:x}=o,{getAssignedAxis:S}=a,O=[],E={enabled:!0,sensitivity:1.1},T=I=>(u(I)||(I={enabled:I??!0}),x(E,I)),D=function(I,H,se,ie,ne,le,me){let _e=g(me.type,I.zooming.type,""),ge=[];_e==="x"?ge=se:_e==="y"?ge=ie:_e==="xy"&&(ge=I.axes);let de=I.transform({axes:ge,to:{x:ne-5,y:le-5,width:10,height:10},from:{x:ne-5*H,y:le-5*H,width:10*H,height:10*H},trigger:"mousewheel"});return de&&(_(l)&&clearTimeout(l),l=setTimeout(()=>{I.pointer?.drop()},400)),de};function $(){let I=T(this.zooming.mouseWheel);I.enabled&&c(this.container,"wheel",H=>{H=this.pointer?.normalize(H)||H;let{pointer:se}=this,ie=se&&!se.inClass(H.target,"highcharts-no-mousewheel");if(this.isInsidePlot(H.chartX-this.plotLeft,H.chartY-this.plotTop)&&ie){let ne=I.sensitivity||1.1,le=H.detail||(H.deltaY||0)/120,me=S(se.getCoordinates(H).xAxis),_e=S(se.getCoordinates(H).yAxis);D(this,Math.pow(ne,le),me?[me.axis]:this.xAxis,_e?[_e.axis]:this.yAxis,H.chartX,H.chartY,I)&&H.preventDefault?.()}})}return{compose:function(I){O.indexOf(I)===-1&&(O.push(I),c(I,"afterGetContainer",$))}}}),n(r,"masters/modules/mouse-wheel-zoom.src.js",[r["Core/Globals.js"],r["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(o,a){return o.MouseWheelZoom=o.MouseWheelZoom||a,o.MouseWheelZoom.compose(o.Chart),o}),n(r,"masters/modules/stock.src.js",[r["Core/Globals.js"],r["Series/DataModifyComposition.js"],r["Stock/Navigator/Navigator.js"],r["Core/Axis/OrdinalAxis.js"],r["Stock/RangeSelector/RangeSelector.js"],r["Stock/Scrollbar/Scrollbar.js"],r["Core/Chart/StockChart.js"],r["Series/OHLC/OHLCSeries.js"],r["Series/Flags/FlagsSeries.js"]],function(o,a,l,c,u,g,_,x,S){return o.Navigator=o.Navigator||l,o.OrdinalAxis=o.OrdinalAxis||c,o.RangeSelector=o.RangeSelector||u,o.Scrollbar=o.Scrollbar||g,o.stockChart=o.stockChart||_.stockChart,o.StockChart=o.StockChart||o.stockChart,o.extend(o.StockChart,_),a.compose(o.Series,o.Axis,o.Point),S.compose(o.Renderer),x.compose(o.Series),o.Navigator.compose(o.Chart,o.Axis,o.Series),o.OrdinalAxis.compose(o.Axis,o.Series,o.Chart),o.RangeSelector.compose(o.Axis,o.Chart),o.Scrollbar.compose(o.Axis),o.StockChart.compose(o.Chart,o.Axis,o.Series,o.SVGRenderer),o})})})(stock);const stockInit=stock.exports,Chart_vue_vue_type_style_index_0_lang="";highchartsExports.seriesTypes.spline.prototype.drawLegendSymbol=function(e,t){this.options.marker.enabled=!0,highchartsExports.LegendSymbol.lineMarker?.call(this,e,t),this.options.marker.enabled=!1};stockInit(highchartsExports);const _sfc_main$6={components:{Chart:highchartsVue_min.exports.Chart},props:["point","log"],data(){return{chartOptions:{},provider:this.$route.params.provider,chartObj:null}},computed:{series(){const e=Object.fromEntries(Object.entries(measurements).map(([r,n])=>[r.toLowerCase(),n])),t=[];for(const r of this.log)if(r.data)for(let n of Object.keys(r.data)){n=n.toLowerCase();const o=t.findIndex(a=>a.name===n);o>=0?t[o].data.push([r.timestamp*1e3,r.data[n]]):t.push({name:n,data:[[r.timestamp*1e3,parseFloat(r.data[n])]],zones:e[n]?.zones,visible:!0})}for(const r of t)r.data.length>config$2.SERIES_MAX_VISIBLE&&(r.visible=!1);return t},startpoint(){if(this.provider==="realtime")return Date.now();{let e=new Date;return e.setHours(0,0,0,0),e}}},watch:{series(e){e.forEach((t,r)=>{this.chartObj.series.findIndex(o=>o.name===t.name)>=0?this.chartObj.series[r].setData(t.data,!1):this.chartObj.addSeries(t)}),this.chartObj.redraw()}},mounted(){const{chart:e}=this.$refs.chart;this.chartObj=e,this.chartOptions={legend:{enabled:!0},rangeSelector:{inputEnabled:!1,buttons:[{type:"all",text:"All",title:"View all"}]},chart:{type:"spline",height:400},title:{text:""},time:{timezone:Intl.DateTimeFormat().resolvedOptions().timeZone},series:this.series,xAxis:{title:!1,type:"datetime",labels:{overflow:"justify",format:"{value: %H:%M }"}},yAxis:{title:!1},tooltip:{valueDecimals:2},plotOptions:{series:{dataGrouping:{enabled:!1}}}}}};function _sfc_render$6(e,t,r,n,o,a){const l=resolveComponent("Chart",!0);return openBlock(),createBlock(l,{"constructor-type":"stockChart",options:o.chartOptions,ref:"chart"},null,8,["options"])}const Chart=_export_sfc(_sfc_main$6,[["render",_sfc_render$6]]),Copy_vue_vue_type_style_index_0_scoped_951f909f_lang="",_sfc_main$5={props:["msg","title","notify"],data(){return{successCopy:!1}},methods:{success(){this.$notify({position:"top right",text:this.notify})},showSuccessesCopy(){this.successCopy=!0,setTimeout(()=>{this.successCopy=!1},2e3)}}},_hoisted_1$4=["title"];function _sfc_render$5(e,t,r,n,o,a){const l=resolveComponent("font-awesome-icon"),c=resolveDirective("clipboard");return withDirectives((openBlock(),createElementBlock("a",{class:"nowrap copy",title:r.title},[renderSlot(e.$slots,"default",{},void 0,!0),o.successCopy?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:0,class:"copy-btn",onClick:t[0]||(t[0]=(...u)=>a.showSuccessesCopy&&a.showSuccessesCopy(...u))})),o.successCopy?(openBlock(),createBlock(l,{key:1,icon:"fa-solid fa-check"})):createCommentVNode("",!0)],8,_hoisted_1$4)),[[c,r.msg,"copy"],[c,a.success,"success"]])}const Copy=_export_sfc(_sfc_main$5,[["render",_sfc_render$5],["__scopeId","data-v-951f909f"]]),SensorPopup_vue_vue_type_style_index_0_scoped_7333a375_lang="",_sfc_main$4={emits:["close"],props:["type","point","startTime"],components:{Chart,Copy,Bookmark},data(){return{select:"",measurement:this.type,isShowPath:!1,store:useStore(),maxDate:hooks().format("YYYY-MM-DD"),provider:this.$route.params.provider,rttime:null,rtdata:[],shared:!1,isLoad:!1}},computed:{start(){return this.startTime?hooks.unix(this.startTime).format("YYYY-MM-DD"):hooks().format("YYYY-MM-DD")},locale(){return localStorage.getItem("locale")||this.$i18n.locale||"en"},address(){return this.point.address},donated_by(){return this.point.donated_by},geo(){return this.point.geo},log(){return this.point?.log},model(){return this.point.model},sender(){return this.point.sender},sensor_id(){return this.point.sensor_id},realtime(){return this.provider==="realtime"},addressformatted(){let e="";return this.address&&(this.address.country&&(e+=this.address.country),this.address.address.length>0&&(e+=", "+this.address.address.join(", "))),e},isLocationRussion(){return this.address.country==="\u0420\u043E\u0441\u0441\u0438\u044F"||this.address.country==="Russia"},measure(){return this.items.find(e=>this.select===e.text)},scale(){return generate$1(measurements[this.type.toLowerCase()].colors,measurements[this.type.toLowerCase()].range)},hasIcon(){return e=>measurements[e.toLowerCase()]&&measurements[e.toLowerCase()].icon},icon:function(){return e=>this.hasIcon(e)?measurements[e.toLowerCase()].icon:"vial"},items(){const e=[];for(const t of Object.keys(this.last.data)){let r=null;measurements[t.toLowerCase()]&&measurements[t.toLowerCase()].colors&&(r=generate$1(measurements[t.toLowerCase()].colors,measurements[t.toLowerCase()].range)),e.push({id:t,title:this.$filters.measurementFormat(this.last.data[t],t),text:this.$filters.measurement(t),state:getState(r,this.last.data[t],measurements[t.toLowerCase()]?measurements[t.toLowerCase()].states:void 0)})}return e},measurementFilter(e){return measurements[e.toLowerCase()]?.label||e},measurementFormat(e,t){return measurements[t.toLowerCase()]?`${toFixed(e)} ${measurements[t.toLowerCase()].unit}`:toFixed(e)},collapse(e){return e?e.slice(0,6)+"..."+e.slice(-4):""},linkSensor:function(){const e=this.$router.resolve({name:"main",params:{provider:getTypeProvider(),type:this.$route.params.type||"pm10",zoom:this.$route.params.zoom||config$2.MAP.zoom,lat:this.geo.lat,lng:this.geo.lng,sensor:this.sensor_id}});return new URL(e.href,window.location.origin).href},link:function(){return sensors[this.sensor_id]?sensors[this.sensor_id].link:""},icon:function(){return sensors[this.sensor_id]?sensors[this.sensor_id].icon:""},last:function(){return this.log[this.log.length-1]},date:function(){return hooks(this.last.timestamp,"X").format("DD.MM.YYYY HH:mm:ss")},startTimestamp:function(){return Number(hooks(this.start+" 00:00:00","YYYY-MM-DD HH:mm:ss").format("X"))},endTimestamp:function(){return Number(hooks(this.start+" 23:59:59","YYYY-MM-DD HH:mm:ss").format("X"))},units(){let e=[];return Object.values(this.log).forEach(t=>{t.data&&Object.keys(t.data).forEach(r=>{e.push(r.toLowerCase())})}),[...new Set(e.flat())]},scales:function(){let e=[];return Object.keys(measurements).forEach(t=>{this.units.some(r=>r===t)&&e.push(measurements[t])}),e}},methods:{shareData(){navigator.share?navigator.share({title:config$2.TITLE,url:this.linkSensor||this.link}):navigator.clipboard.writeText(this.linkSensor).then(()=>{this.shared=!0,setTimeout(()=>{this.shared=!1},5e3)}).catch(e=>{console.log("not coppied",e)})},getHistory(){this.realtime||(this.isLoad=!0,this.$emit("history",{sensor_id:this.sensor_id,start:this.startTimestamp,end:this.endTimestamp}))},updatert(){if(this.realtime){const e=this.log[this.log.length-1].timestamp*1e3;e&&(this.rttime=new Date(e).toLocaleString());const t=this.log[this.log.length-1].data;let r={};t&&(this.rtdata=[],Object.keys(measurements).forEach(n=>{Object.keys(t).forEach(o=>{n===o&&(r={},r.key=o,r.measure=t[o],r.label=measurements[n].label,r.unit=measurements[n].unit,measurements[n].zones.find(a=>r.measurer.measuremeasurements[n].zones[measurements[n].zones.length-2].value&&(r.color=measurements[n].zones[measurements[n].zones.length-1].color),this.rtdata.push(r))})}))}},closesensor(){const e=window.location.href;if(e.includes(this.sensor_id)){const t=e.replace(this.sensor_id,"");window.location.href=t}this.$emit("close")}},watch:{sensor_id(){this.isShowPath=!1},isShowPath(){this.isShowPath?showPath(this.sensor_id):hidePath(this.sensor_id)},start(){this.getHistory()},log(){this.updatert(),this.isLoad=!1}},mounted(){this.updatert()}},_withScopeId$3=e=>(pushScopeId("data-v-7333a375"),e=e(),popScopeId(),e),_hoisted_1$3={class:"popup-js active"},_hoisted_2$3={class:"flexline clipoverflow"},_hoisted_3$2=["src"],_hoisted_4$1={class:"scrollable-y"},_hoisted_5$1={class:"flexline space-between"},_hoisted_6$2={class:"flexline"},_hoisted_7$2=["max"],_hoisted_8$2={key:0,class:"flexline"},_hoisted_9$2=_withScopeId$3(()=>createBaseVNode("div",{class:"rt-title"},"Realtime view mode",-1)),_hoisted_10$1={key:0,class:"rt-time"},_hoisted_11$1={class:"rt-unit"},_hoisted_12$1={key:0},_hoisted_13$1={key:0,class:"infoline flexline"},_hoisted_14$1={class:"infoline-title"},_hoisted_15$1={class:"infoline-info"},_hoisted_16$1={key:1,class:"infoline flexline"},_hoisted_17$1={class:"infoline-title"},_hoisted_18$1={class:"infoline-info"},_hoisted_19$1={key:2,class:"infoline flexline"},_hoisted_20$1={class:"infoline-title"},_hoisted_21$1={class:"infoline-info"},_hoisted_22$1=["href"],_hoisted_23$1={key:3,class:"infoline flexline"},_hoisted_24$1={class:"infoline-title"},_hoisted_25$1={class:"infoline-info"},_hoisted_26$1={key:4,class:"infoline flexline"},_hoisted_27$1={class:"infoline-title"},_hoisted_28$1=_withScopeId$3(()=>createBaseVNode("label",{for:"realtime"},null,-1)),_hoisted_29$1={class:"sensors-switcher-text"},_hoisted_30$1={class:"infoline-info"},_hoisted_31$1={key:1},_hoisted_32$1={class:"scalegrid"},_hoisted_33$1={key:0},_hoisted_34$1={key:1},_hoisted_35$1={class:"textsmall"};function _sfc_render$4(e,t,r,n,o,a){const l=resolveComponent("font-awesome-icon"),c=resolveComponent("Bookmark"),u=resolveComponent("Chart"),g=resolveComponent("Copy");return openBlock(),createElementBlock("div",_hoisted_1$3,[createBaseVNode("section",null,[createBaseVNode("h3",_hoisted_2$3,[a.icon?(openBlock(),createElementBlock("img",{key:0,src:a.icon,class:"icontitle"},null,8,_hoisted_3$2)):(openBlock(),createBlock(l,{key:1,icon:"fa-solid fa-location-dot"})),createTextVNode(" "+toDisplayString$1(a.addressformatted),1)])]),createBaseVNode("div",_hoisted_4$1,[createBaseVNode("section",_hoisted_5$1,[createBaseVNode("div",_hoisted_6$2,[a.realtime?createCommentVNode("",!0):withDirectives((openBlock(),createElementBlock("input",{key:0,type:"date","onUpdate:modelValue":t[0]||(t[0]=_=>a.start=_),max:o.maxDate},null,8,_hoisted_7$2)),[[vModelText,a.start]]),a.sensor_id?(openBlock(),createBlock(c,{key:1,address:a.address?.address&&a.address?.address.join(", "),link:a.sensor_id,geo:a.geo},null,8,["address","link","geo"])):createCommentVNode("",!0)]),createBaseVNode("button",{onClick:t[1]||(t[1]=(..._)=>a.shareData&&a.shareData(..._)),class:"button"},[o.shared?createCommentVNode("",!0):(openBlock(),createBlock(l,{key:0,icon:"fa-solid fa-share-from-square"})),o.shared?(openBlock(),createBlock(l,{key:1,icon:"fa-solid fa-check"})):createCommentVNode("",!0)])]),a.realtime?(openBlock(),createElementBlock("section",_hoisted_8$2,[createBaseVNode("div",null,[_hoisted_9$2,o.rttime?(openBlock(),createElementBlock("div",_hoisted_10$1,toDisplayString$1(o.rttime),1)):createCommentVNode("",!0)]),o.rtdata?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(o.rtdata,_=>(openBlock(),createElementBlock("div",{key:_},[createBaseVNode("div",_hoisted_11$1,toDisplayString$1(_.label),1),createBaseVNode("div",{class:"rt-number",style:normalizeStyle(_.color?"color:"+_.color:"")},toDisplayString$1(_.measure)+" "+toDisplayString$1(_.unit),5)]))),128)):createCommentVNode("",!0)])):createCommentVNode("",!0),createBaseVNode("section",null,[o.isLoad?(openBlock(),createElementBlock("div",_hoisted_12$1,toDisplayString$1(e.$t("isLoad")),1)):(openBlock(),createBlock(u,{key:1,point:r.point,log:a.log},null,8,["point","log"]))]),createBaseVNode("section",null,[createBaseVNode("h3",null,toDisplayString$1(e.$t("sensorpopup.infotitle")),1),a.sensor_id?(openBlock(),createElementBlock("div",_hoisted_13$1,[createBaseVNode("div",_hoisted_14$1,toDisplayString$1(e.$t("sensorpopup.infosensorid"))+":",1),createBaseVNode("div",_hoisted_15$1,[createTextVNode(toDisplayString$1(e.$filters.collapse(a.sensor_id))+" ",1),createVNode(g,{msg:a.sensor_id,title:`Sensor id: ${a.sensor_id}`,notify:e.$t("details.copied")},null,8,["msg","title","notify"])])])):createCommentVNode("",!0),a.geo?(openBlock(),createElementBlock("div",_hoisted_16$1,[createBaseVNode("div",_hoisted_17$1,toDisplayString$1(e.$t("sensorpopup.infosensorgeo"))+":",1),createBaseVNode("div",_hoisted_18$1,toDisplayString$1(a.geo.lat)+", "+toDisplayString$1(a.geo.lng),1)])):createCommentVNode("",!0),a.link?(openBlock(),createElementBlock("div",_hoisted_19$1,[createBaseVNode("div",_hoisted_20$1,toDisplayString$1(e.$t("sensorpopup.infosensorowner"))+":",1),createBaseVNode("div",_hoisted_21$1,[createBaseVNode("a",{href:a.link,rel:"noopener",target:"_blank"},toDisplayString$1(a.link),9,_hoisted_22$1)])])):createCommentVNode("",!0),a.donated_by?(openBlock(),createElementBlock("div",_hoisted_23$1,[createBaseVNode("div",_hoisted_24$1,toDisplayString$1(e.$t("sensorpopup.infosensordonated"))+":",1),createBaseVNode("div",_hoisted_25$1,toDisplayString$1(a.donated_by),1)])):createCommentVNode("",!0),a.model===3?(openBlock(),createElementBlock("div",_hoisted_26$1,[createBaseVNode("div",_hoisted_27$1,[_hoisted_28$1,createBaseVNode("span",_hoisted_29$1,toDisplayString$1(e.$t("details.showpath")),1),createTextVNode(": ")]),createBaseVNode("div",_hoisted_30$1,[withDirectives(createBaseVNode("input",{type:"checkbox",id:"realtime","onUpdate:modelValue":t[2]||(t[2]=_=>o.isShowPath=_)},null,512),[[vModelCheckbox,o.isShowPath]])])])):createCommentVNode("",!0)]),a.units&&a.scales&&a.scales.length>0?(openBlock(),createElementBlock("section",_hoisted_31$1,[createBaseVNode("h3",null,toDisplayString$1(e.$t("scales.title")),1),createBaseVNode("div",_hoisted_32$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(a.scales,_=>(openBlock(),createElementBlock("div",{key:_.label},[_?.zones&&(_.name||_.label)?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode("p",null,[_.name?(openBlock(),createElementBlock("b",_hoisted_33$1,toDisplayString$1(a.locale==="en"?_.name.en:_.name.ru),1)):(openBlock(),createElementBlock("b",_hoisted_34$1,toDisplayString$1(_.label),1)),createTextVNode(" ("+toDisplayString$1(_.unit)+") ",1)]),(openBlock(!0),createElementBlock(Fragment,null,renderList(_.zones,x=>(openBlock(),createElementBlock(Fragment,{key:x.color},[x.color&&x.label?(openBlock(),createElementBlock("div",{key:0,class:"scales-color",style:normalizeStyle(`--color: ${x.color}`)},[createBaseVNode("b",null,toDisplayString$1(a.locale==="en"?x.label.en:x.label.ru),1),createTextVNode(" ("),x.value?(openBlock(),createElementBlock(Fragment,{key:0},[createTextVNode(toDisplayString$1(e.$t("scales.upto"))+" "+toDisplayString$1(x.value),1)],64)):(openBlock(),createElementBlock(Fragment,{key:1},[createTextVNode(toDisplayString$1(e.$t("scales.above")),1)],64)),createTextVNode(") ")],4)):createCommentVNode("",!0)],64))),128))],64)):createCommentVNode("",!0)]))),128))])])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_35$1,[a.isLocationRussion?(openBlock(),createElementBlock(Fragment,{key:0},[createTextVNode(toDisplayString$1(e.$t("notice_with_fz")),1)],64)):(openBlock(),createElementBlock(Fragment,{key:1},[createTextVNode(toDisplayString$1(e.$t("notice_without_fz")),1)],64))])]),createBaseVNode("button",{onClick:t[3]||(t[3]=withModifiers((..._)=>a.closesensor&&a.closesensor(..._),["prevent"])),"aria-label":"Close sensor",class:"close"},[createVNode(l,{icon:"fa-solid fa-xmark"})])])}const SensorPopup=_export_sfc(_sfc_main$4,[["render",_sfc_render$4],["__scopeId","data-v-7333a375"]]);function asUint8Array(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function alloc(e=0){return globalThis.Buffer?.alloc!=null?asUint8Array(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function allocUnsafe$2(e=0){return globalThis.Buffer?.allocUnsafe!=null?asUint8Array(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}const N1$2=Math.pow(2,7),N2$2=Math.pow(2,14),N3$2=Math.pow(2,21),N4$2=Math.pow(2,28),N5$2=Math.pow(2,35),N6$2=Math.pow(2,42),N7$2=Math.pow(2,49),MSB$4=128,REST$4=127;function encodingLength$2(e){if(eNumber.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function encodeUint8Array(e,t,r=0){switch(encodingLength$2(e)){case 8:t[r++]=e&255|MSB$4,e/=128;case 7:t[r++]=e&255|MSB$4,e/=128;case 6:t[r++]=e&255|MSB$4,e/=128;case 5:t[r++]=e&255|MSB$4,e/=128;case 4:t[r++]=e&255|MSB$4,e>>>=7;case 3:t[r++]=e&255|MSB$4,e>>>=7;case 2:t[r++]=e&255|MSB$4,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function encodeUint8ArrayList(e,t,r=0){switch(encodingLength$2(e)){case 8:t.set(r++,e&255|MSB$4),e/=128;case 7:t.set(r++,e&255|MSB$4),e/=128;case 6:t.set(r++,e&255|MSB$4),e/=128;case 5:t.set(r++,e&255|MSB$4),e/=128;case 4:t.set(r++,e&255|MSB$4),e>>>=7;case 3:t.set(r++,e&255|MSB$4),e>>>=7;case 2:t.set(r++,e&255|MSB$4),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function decodeUint8Array(e,t){let r=e[t],n=0;if(n+=r&REST$4,ro+a.length,0));const r=allocUnsafe$2(t);let n=0;for(const o of e)r.set(o,n),n+=o.length;return asUint8Array(r)}function equals$2(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(const n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(isUint8ArrayList(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...t){this.prependAll(t)}prependAll(t){let r=0;for(const n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(isUint8ArrayList(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(t){const r=findBufAndOffset(this.bufs,t);return r.buf[r.index]}set(t,r){const n=findBufAndOffset(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){const{bufs:n,length:o}=this._subList(t,r);return concat$1(n,o)}subarray(t,r){const{bufs:n,length:o}=this._subList(t,r);return n.length===1?n[0]:concat$1(n,o)}sublist(t,r){const{bufs:n,length:o}=this._subList(t,r),a=new Uint8ArrayList;return a.length=o,a.bufs=n,a}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};const n=[];let o=0;for(let a=0;a=u)continue;const g=t>=c&&tc&&r<=u;if(g&&_){if(t===c&&r===u){n.push(l);break}const x=t-c;n.push(l.subarray(x,x+(r-t)));break}if(g){if(t===0){n.push(l);continue}n.push(l.subarray(t-c));continue}if(_){if(r===u){n.push(l);break}n.push(l.subarray(0,r-c));break}n.push(l)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!isUint8ArrayList(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');const n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.length===0)return r>this.length?this.length:r;const o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");const a=256,l=new Int32Array(a);for(let x=0;x=0;S--){const O=this.get(x+S);if(n[S]!==O){_=Math.max(1,S-c[O]);break}}if(_===0)return x}return-1}getInt8(t){const r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){const n=allocUnsafe$2(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){const n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){const o=alloc(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,r,n),this.write(o,t)}getInt32(t,r){const n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){const o=alloc(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,r,n),this.write(o,t)}getBigInt64(t,r){const n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){const o=alloc(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,r,n),this.write(o,t)}getUint8(t){const r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){const n=allocUnsafe$2(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){const n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){const o=alloc(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,r,n),this.write(o,t)}getUint32(t,r){const n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){const o=alloc(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,r,n),this.write(o,t)}getBigUint64(t,r){const n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){const o=alloc(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,r,n),this.write(o,t)}getFloat32(t,r){const n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){const o=alloc(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,r,n),this.write(o,t)}getFloat64(t,r){const n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){const o=alloc(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,r,n),this.write(o,t)}equals(t){if(t==null||!(t instanceof Uint8ArrayList)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;ro+a.byteLength,0)),n.length=r,n}}function isAsyncIterable$a(e){return e[Symbol.asyncIterator]!=null}const defaultEncoder=e=>{const t=encodingLength$2(e),r=allocUnsafe$2(t);return encode$d(e,r),defaultEncoder.bytes=t,r};defaultEncoder.bytes=0;function encode$c(e,t){t=t??{};const r=t.lengthEncoder??defaultEncoder;function*n(o){const a=r(o.byteLength);a instanceof Uint8Array?yield a:yield*a,o instanceof Uint8Array?yield o:yield*o}return isAsyncIterable$a(e)?async function*(){for await(const o of e)yield*n(o)}():function*(){for(const o of e)yield*n(o)}()}encode$c.single=(e,t)=>{t=t??{};const r=t.lengthEncoder??defaultEncoder;return new Uint8ArrayList(r(e.byteLength),e)};function assign$1(e,t){for(const r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function createError(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return assign$1(e,r)}catch{r.message=e.message,r.stack=e.stack;const o=function(){};return o.prototype=Object.create(Object.getPrototypeOf(e)),assign$1(new o,r)}}var errCode=createError;const MAX_LENGTH_LENGTH=8,MAX_DATA_LENGTH=1024*1024*4;var ReadMode;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(ReadMode||(ReadMode={}));const defaultDecoder=e=>{const t=decode$b(e);return defaultDecoder.bytes=encodingLength$2(t),t};defaultDecoder.bytes=0;function decode$a(e,t){const r=new Uint8ArrayList;let n=ReadMode.LENGTH,o=-1;const a=t?.lengthDecoder??defaultDecoder,l=t?.maxLengthLength??MAX_LENGTH_LENGTH,c=t?.maxDataLength??MAX_DATA_LENGTH;function*u(){for(;r.byteLength>0;){if(n===ReadMode.LENGTH)try{if(o=a(r),o<0)throw errCode(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(o>c)throw errCode(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");const g=a.bytes;r.consume(g),t?.onLength!=null&&t.onLength(o),n=ReadMode.DATA}catch(g){if(g instanceof RangeError){if(r.byteLength>l)throw errCode(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw g}if(n===ReadMode.DATA){if(r.byteLength0)throw errCode(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(const g of e)r.append(g),yield*u();if(r.byteLength>0)throw errCode(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}decode$a.fromReader=(e,t)=>{let r=1;const n=async function*(){for(;;)try{const{done:a,value:l}=await e.next(r);if(a===!0)return;l!=null&&(yield l)}catch(a){if(a.code==="ERR_UNDER_READ")return{done:!0,value:null};throw a}finally{r=1}}();return decode$a(n,{...t??{},onLength:a=>{r=a}})};function pDefer(){const e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}class FixedFIFO{constructor(t){Je(this,"buffer");Je(this,"mask");Je(this,"top");Je(this,"btm");Je(this,"next");if(!(t>0)||(t-1&t)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){const t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}}class FIFO{constructor(t={}){Je(this,"size");Je(this,"hwm");Je(this,"head");Je(this,"tail");this.hwm=t.splitLimit??16,this.head=new FixedFIFO(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){const r=this.head;this.head=r.next=new FixedFIFO(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){const r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}}class AbortError$6 extends Error{constructor(r,n){super(r??"The operation was aborted");Je(this,"type");Je(this,"code");this.type="aborted",this.code=n??"ABORT_ERR"}}function pushable(e={}){return _pushable(r=>{const n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},e)}function pushableV(e={}){return _pushable(r=>{let n;const o=[];for(;!r.isEmpty()&&(n=r.shift(),n!=null);){if(n.error!=null)throw n.error;n.done===!1&&o.push(n.value)}return n==null?{done:!0}:{done:n.done===!0,value:o}},e)}function _pushable(e,t){t=t??{};let r=t.onEnd,n=new FIFO,o,a,l,c=pDefer();const u=async()=>{try{return n.isEmpty()?l?{done:!0}:await new Promise((D,$)=>{a=I=>{a=null,n.push(I);try{D(e(n))}catch(H){$(H)}return o}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=pDefer()})}},g=D=>a!=null?a(D):(n.push(D),o),_=D=>(n=new FIFO,a!=null?a({error:D}):(n.push({error:D}),o)),x=D=>{if(l)return o;if(t?.objectMode!==!0&&D?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return g({done:!1,value:D})},S=D=>l?o:(l=!0,D!=null?_(D):g({done:!0})),O=()=>(n=new FIFO,S(),{done:!0}),E=D=>(S(D),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:u,return:O,throw:E,push:x,end:S,get readableLength(){return n.size},onEmpty:async D=>{const $=D?.signal;if($?.throwIfAborted(),n.isEmpty())return;let I,H;$!=null&&(I=new Promise((se,ie)=>{H=()=>{ie(new AbortError$6)},$.addEventListener("abort",H)}));try{await Promise.race([c.promise,I])}finally{H!=null&&$!=null&&$?.removeEventListener("abort",H)}}},r==null)return o;const T=o;return o={[Symbol.asyncIterator](){return this},next(){return T.next()},throw(D){return T.throw(D),r!=null&&(r(D),r=void 0),{done:!0}},return(){return T.return(),r!=null&&(r(),r=void 0),{done:!0}},push:x,end(D){return T.end(D),r!=null&&(r(D),r=void 0),o},get readableLength(){return T.readableLength}},o}class CodeError$2 extends Error{constructor(r,n){super(r);Je(this,"code");this.code=n}}class AbortError$5 extends CodeError$2{constructor(r){super(r,"ABORT_ERR");Je(this,"type");this.type="aborted"}}function byteStream(e){const t=pushable();e.sink(t).catch(a=>{t.end(a)}),e.sink=async a=>{for await(const l of a)t.push(l);t.end()};let r=e.source;e.source[Symbol.iterator]!=null?r=e.source[Symbol.iterator]():e.source[Symbol.asyncIterator]!=null&&(r=e.source[Symbol.asyncIterator]());const n=new Uint8ArrayList;return{read:async(a,l)=>{l?.signal?.throwIfAborted();let c;const u=new Promise((g,_)=>{c=()=>{_(new AbortError$5("Read aborted"))},l?.signal?.addEventListener("abort",c)});try{if(a==null){const{done:_,value:x}=await Promise.race([r.next(),u]);return _===!0?new Uint8ArrayList:x}for(;n.byteLength{l?.signal?.throwIfAborted(),a instanceof Uint8Array?t.push(a):t.push(a.subarray()),await t.onEmpty(l)},unwrap:()=>{const a=e.source;return e.source=async function*(){yield*n,yield*a}(),e}}}class CodeError$1 extends Error{constructor(r,n){super(r);Je(this,"code");this.code=n}}const defaultLengthDecoder=e=>decode$b(e);defaultLengthDecoder.bytes=0;function lpStream(e,t){const r=byteStream(e);return{read:async o=>{let a=-1;const l=new Uint8ArrayList,c=t?.lengthDecoder??defaultLengthDecoder;for(;;){l.append(await r.read(1,o));try{a=c(l)}catch(u){if(u instanceof RangeError)continue;throw u}if(a>-1)break;if(t?.maxLengthLength!=null&&l.byteLength>t.maxLengthLength)throw new CodeError$1("message length length too long","ERR_MSG_LENGTH_TOO_LONG")}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new CodeError$1("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(a,o)},write:async(o,a)=>{await r.write(encode$c.single(o,t),a)},unwrap:()=>r.unwrap()}}function pair(){const e=pDefer();let t=!1;return{sink:async r=>{if(t)throw new Error("already piped");t=!0,e.resolve(r)},source:async function*(){yield*await e.promise}()}}function duplexPair(){const e=pair(),t=pair();return[{source:e.source,sink:t.sink},{source:t.source,sink:e.sink}]}function isAsyncIterable$9(e){return e[Symbol.asyncIterator]!=null}function merge$1(...e){const t=[];for(const r of e)isAsyncIterable$9(r)||t.push(r);return t.length===e.length?function*(){for(const r of t)yield*r}():async function*(){const r=pushable({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(const o of n)r.push(o)})),r.end()}catch(n){r.end(n)}}),yield*r}()}function pipe(e,...t){if(e==null)throw new Error("Empty pipeline");if(isDuplex(e)){const n=e;e=()=>n.source}else if(isIterable(e)||isAsyncIterable$8(e)){const n=e;e=()=>n}const r=[e,...t];if(r.length>1&&isDuplex(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n{let t;for(;e.length>0;)t=e.shift()(t);return t},isAsyncIterable$8=e=>e?.[Symbol.asyncIterator]!=null,isIterable=e=>e?.[Symbol.iterator]!=null,isDuplex=e=>e==null?!1:e.sink!=null&&e.source!=null,duplexPipelineFn=e=>t=>{const r=e.sink(t);if(r?.then!=null){const n=pushable({objectMode:!0});r.then(()=>{n.end()},l=>{n.end(l)});let o;const a=e.source;if(isAsyncIterable$8(a))o=async function*(){yield*a,n.end()};else if(isIterable(a))o=function*(){yield*a,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return merge$1(n,o())}return e.source},NOISE_MSG_MAX_LENGTH_BYTES=65535,NOISE_MSG_MAX_LENGTH_BYTES_WITHOUT_TAG=NOISE_MSG_MAX_LENGTH_BYTES-16,DUMP_SESSION_KEYS=Boolean(globalThis.process?.env?.DUMP_SESSION_KEYS);/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */const u8a$2=e=>e instanceof Uint8Array,u32=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),createView$1=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),isLE$1=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!isLE$1)throw new Error("Non little-endian hardware is not supported");function utf8ToBytes$2(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function toBytes$2(e){if(typeof e=="string"&&(e=utf8ToBytes$2(e)),!u8a$2(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}const isPlainObject$1=e=>Object.prototype.toString.call(e)==="[object Object]"&&e.constructor===Object;function checkOpts(e,t){if(t!==void 0&&(typeof t!="object"||!isPlainObject$1(t)))throw new Error("options must be object or undefined");return Object.assign(e,t)}function ensureBytes$1(e,t){if(!(e instanceof Uint8Array))throw new Error("Uint8Array expected");if(typeof t=="number"&&e.length!==t)throw new Error(`Uint8Array length ${t} expected`)}function equalBytes$1(e,t){if(e.length!==t.length)throw new Error("equalBytes: Different size of Uint8Arrays");let r=!0;for(let n=0;n>o&a),c=Number(r&a),u=n?4:0,g=n?0:4;e.setUint32(t+u,l,n),e.setUint32(t+g,c,n)}function number$3(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function bool(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function bytes$1(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function hash$2(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("hash must be wrapped by utils.wrapConstructor");number$3(e.outputLen),number$3(e.blockLen)}function exists$1(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function output$1(e,t){bytes$1(e);const r=t.outputLen;if(e.lengthe[t++]&255|(e[t++]&255)<<8;class Poly1305{constructor(t){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,t=toBytes$2(t),ensureBytes$1(t,32);const r=u8to16(t,0),n=u8to16(t,2),o=u8to16(t,4),a=u8to16(t,6),l=u8to16(t,8),c=u8to16(t,10),u=u8to16(t,12),g=u8to16(t,14);this.r[0]=r&8191,this.r[1]=(r>>>13|n<<3)&8191,this.r[2]=(n>>>10|o<<6)&7939,this.r[3]=(o>>>7|a<<9)&8191,this.r[4]=(a>>>4|l<<12)&255,this.r[5]=l>>>1&8190,this.r[6]=(l>>>14|c<<2)&8191,this.r[7]=(c>>>11|u<<5)&8065,this.r[8]=(u>>>8|g<<8)&8191,this.r[9]=g>>>5&127;for(let _=0;_<8;_++)this.pad[_]=u8to16(t,16+2*_)}process(t,r,n=!1){const o=n?0:2048,{h:a,r:l}=this,c=l[0],u=l[1],g=l[2],_=l[3],x=l[4],S=l[5],O=l[6],E=l[7],T=l[8],D=l[9],$=u8to16(t,r+0),I=u8to16(t,r+2),H=u8to16(t,r+4),se=u8to16(t,r+6),ie=u8to16(t,r+8),ne=u8to16(t,r+10),le=u8to16(t,r+12),me=u8to16(t,r+14);let _e=a[0]+($&8191),ge=a[1]+(($>>>13|I<<3)&8191),de=a[2]+((I>>>10|H<<6)&8191),ve=a[3]+((H>>>7|se<<9)&8191),pe=a[4]+((se>>>4|ie<<12)&8191),te=a[5]+(ie>>>1&8191),N=a[6]+((ie>>>14|ne<<2)&8191),B=a[7]+((ne>>>11|le<<5)&8191),ee=a[8]+((le>>>8|me<<8)&8191),oe=a[9]+(me>>>5|o),he=0,be=he+_e*c+ge*(5*D)+de*(5*T)+ve*(5*E)+pe*(5*O);he=be>>>13,be&=8191,be+=te*(5*S)+N*(5*x)+B*(5*_)+ee*(5*g)+oe*(5*u),he+=be>>>13,be&=8191;let Ce=he+_e*u+ge*c+de*(5*D)+ve*(5*T)+pe*(5*E);he=Ce>>>13,Ce&=8191,Ce+=te*(5*O)+N*(5*S)+B*(5*x)+ee*(5*_)+oe*(5*g),he+=Ce>>>13,Ce&=8191;let Oe=he+_e*g+ge*u+de*c+ve*(5*D)+pe*(5*T);he=Oe>>>13,Oe&=8191,Oe+=te*(5*E)+N*(5*O)+B*(5*S)+ee*(5*x)+oe*(5*_),he+=Oe>>>13,Oe&=8191;let Se=he+_e*_+ge*g+de*u+ve*c+pe*(5*D);he=Se>>>13,Se&=8191,Se+=te*(5*T)+N*(5*E)+B*(5*O)+ee*(5*S)+oe*(5*x),he+=Se>>>13,Se&=8191;let $e=he+_e*x+ge*_+de*g+ve*u+pe*c;he=$e>>>13,$e&=8191,$e+=te*(5*D)+N*(5*T)+B*(5*E)+ee*(5*O)+oe*(5*S),he+=$e>>>13,$e&=8191;let ke=he+_e*S+ge*x+de*_+ve*g+pe*u;he=ke>>>13,ke&=8191,ke+=te*c+N*(5*D)+B*(5*T)+ee*(5*E)+oe*(5*O),he+=ke>>>13,ke&=8191;let Re=he+_e*O+ge*S+de*x+ve*_+pe*g;he=Re>>>13,Re&=8191,Re+=te*u+N*c+B*(5*D)+ee*(5*T)+oe*(5*E),he+=Re>>>13,Re&=8191;let Be=he+_e*E+ge*O+de*S+ve*x+pe*_;he=Be>>>13,Be&=8191,Be+=te*g+N*u+B*c+ee*(5*D)+oe*(5*T),he+=Be>>>13,Be&=8191;let Ee=he+_e*T+ge*E+de*O+ve*S+pe*x;he=Ee>>>13,Ee&=8191,Ee+=te*_+N*g+B*u+ee*c+oe*(5*D),he+=Ee>>>13,Ee&=8191;let Pe=he+_e*D+ge*T+de*E+ve*O+pe*S;he=Pe>>>13,Pe&=8191,Pe+=te*x+N*_+B*g+ee*u+oe*c,he+=Pe>>>13,Pe&=8191,he=(he<<2)+he|0,he=he+be|0,be=he&8191,he=he>>>13,Ce+=he,a[0]=be,a[1]=Ce,a[2]=Oe,a[3]=Se,a[4]=$e,a[5]=ke,a[6]=Re,a[7]=Be,a[8]=Ee,a[9]=Pe}finalize(){const{h:t,pad:r}=this,n=new Uint16Array(10);let o=t[1]>>>13;t[1]&=8191;for(let c=2;c<10;c++)t[c]+=o,o=t[c]>>>13,t[c]&=8191;t[0]+=o*5,o=t[0]>>>13,t[0]&=8191,t[1]+=o,o=t[1]>>>13,t[1]&=8191,t[2]+=o,n[0]=t[0]+5,o=n[0]>>>13,n[0]&=8191;for(let c=1;c<10;c++)n[c]=t[c]+o,o=n[c]>>>13,n[c]&=8191;n[9]-=1<<13;let a=(o^1)-1;for(let c=0;c<10;c++)n[c]&=a;a=~a;for(let c=0;c<10;c++)t[c]=t[c]&a|n[c];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let l=t[0]+r[0];t[0]=l&65535;for(let c=1;c<8;c++)l=(t[c]+r[c]|0)+(l>>>16)|0,t[c]=l&65535}update(t){assert.exists(this);const{buffer:r,blockLen:n}=this;t=toBytes$2(t);const o=t.length;for(let a=0;a>>0,t[a++]=n[l]>>>8;return t}digest(){const{buffer:t,outputLen:r}=this;this.digestInto(t);const n=t.slice(0,r);return this.destroy(),n}}function wrapConstructorWithKey(e){const t=(n,o)=>e(o).update(toBytes$2(n)).digest(),r=e(new Uint8Array(32));return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}const poly1305=wrapConstructorWithKey(e=>new Poly1305(e)),sigma16=utf8ToBytes$2("expand 16-byte k"),sigma32=utf8ToBytes$2("expand 32-byte k"),sigma16_32=u32(sigma16),sigma32_32=u32(sigma32),isAligned32=e=>!(e.byteOffset%4),salsaBasic=e=>{const{core:t,rounds:r,counterRight:n,counterLen:o,allow128bitKeys:a,extendNonceFn:l,blockLen:c}=checkOpts({rounds:20,counterRight:!1,counterLen:8,allow128bitKeys:!0,blockLen:64},e);assert.number(o),assert.number(r),assert.number(c),assert.bool(n),assert.bool(a);const u=c/4;if(c%4!==0)throw new Error("Salsa/ChaCha: blockLen must be aligned to 4 bytes");return(g,_,x,S,O=0)=>{if(assert.bytes(g),assert.bytes(_),assert.bytes(x),S||(S=new Uint8Array(x.length)),assert.bytes(S),assert.number(O),O<0||O>=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");if(S.length=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");const de=Math.min(c,me-_e);if(de===c&&le&&ne){const ve=_e/4;if(_e%4!==0)throw new Error("Salsa/ChaCha: invalid block position");for(let pe=0;pee<>>32-t;function chachaCore(e,t,r,n,o,a=20){let l=e[0],c=e[1],u=e[2],g=e[3],_=t[0],x=t[1],S=t[2],O=t[3],E=t[4],T=t[5],D=t[6],$=t[7],I=o,H=r[0],se=r[1],ie=r[2],ne=l,le=c,me=u,_e=g,ge=_,de=x,ve=S,pe=O,te=E,N=T,B=D,ee=$,oe=I,he=H,be=se,Ce=ie;for(let Se=0;Se{e.update(t);const r=t.length%16;r&&e.update(ZERO.subarray(r))},computeTag=(e,t,r,n,o)=>{const a=e(t,r,new Uint8Array(32)),l=poly1305.create(a);o&&updatePadded(l,o),updatePadded(l,n);const c=new Uint8Array(16),u=createView$1(c);setBigUint64$1(u,0,BigInt(o?o.length:0),!0),setBigUint64$1(u,8,BigInt(n.length),!0),l.update(c);const g=l.digest();return a.fill(0),g},_poly1305_aead=e=>(t,r,n)=>(ensureBytes$1(t,32),ensureBytes$1(r),{tagLength:16,encrypt:(a,l)=>{const c=a.length,u=c+16;l?ensureBytes$1(l,u):l=new Uint8Array(u),e(t,r,a,l,1);const g=computeTag(e,t,r,l.subarray(0,-16),n);return l.set(g,c),l},decrypt:(a,l)=>{const c=a.length,u=c-16;if(c<16)throw new Error(`encrypted data must be at least ${16} bytes`);l?ensureBytes$1(l,u):l=new Uint8Array(u);const g=a.subarray(0,-16),_=a.subarray(-16),x=computeTag(e,t,r,g,n);if(!equalBytes$1(_,x))throw new Error("invalid tag");return e(t,r,g,l,1),l}}),chacha20poly1305=_poly1305_aead(chacha20);function number$2(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function bytes(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function hash$1(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");number$2(e.outputLen),number$2(e.blockLen)}function exists(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function output(e,t){bytes(e);const r=t.outputLen;if(e.lengthe instanceof Uint8Array,createView=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),rotr=(e,t)=>e<<32-t|e>>>t,isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!isLE)throw new Error("Non little-endian hardware is not supported");function utf8ToBytes$1(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function toBytes$1(e){if(typeof e=="string"&&(e=utf8ToBytes$1(e)),!u8a$1(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function concatBytes$1(...e){const t=new Uint8Array(e.reduce((n,o)=>n+o.length,0));let r=0;return e.forEach(n=>{if(!u8a$1(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}class Hash{clone(){return this._cloneInto()}}function wrapConstructor(e){const t=n=>e().update(toBytes$1(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function randomBytes$1(e=32){if(crypto$3&&typeof crypto$3.getRandomValues=="function")return crypto$3.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function setBigUint64(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);const o=BigInt(32),a=BigInt(4294967295),l=Number(r>>o&a),c=Number(r&a),u=n?4:0,g=n?0:4;e.setUint32(t+u,l,n),e.setUint32(t+g,c,n)}class SHA2 extends Hash{constructor(t,r,n,o){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=createView(this.buffer)}update(t){exists(this);const{view:r,buffer:n,blockLen:o}=this;t=toBytes$1(t);const a=t.length;for(let l=0;lo-l&&(this.process(n,0),l=0);for(let x=l;x_.length)throw new Error("_sha2: outputLen bigger than state");for(let x=0;x>_32n&U32_MASK64)}:{h:Number(e>>_32n&U32_MASK64)|0,l:Number(e&U32_MASK64)|0}}function split(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let o=0;oBigInt(e>>>0)<<_32n|BigInt(t>>>0),shrSH=(e,t,r)=>e>>>r,shrSL=(e,t,r)=>e<<32-r|t>>>r,rotrSH=(e,t,r)=>e>>>r|t<<32-r,rotrSL=(e,t,r)=>e<<32-r|t>>>r,rotrBH=(e,t,r)=>e<<64-r|t>>>r-32,rotrBL=(e,t,r)=>e>>>r-32|t<<64-r,rotr32H=(e,t)=>t,rotr32L=(e,t)=>e,rotlSH=(e,t,r)=>e<>>32-r,rotlSL=(e,t,r)=>t<>>32-r,rotlBH=(e,t,r)=>t<>>64-r,rotlBL=(e,t,r)=>e<>>64-r;function add(e,t,r,n){const o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}const add3L=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),add3H=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,add4L=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),add4H=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0,add5L=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0),add5H=(e,t,r,n,o,a)=>t+r+n+o+a+(e/2**32|0)|0,u64={fromBig,split,toBig,shrSH,shrSL,rotrSH,rotrSL,rotrBH,rotrBL,rotr32H,rotr32L,rotlSH,rotlSL,rotlBH,rotlBL,add,add3L,add3H,add4L,add4H,add5H,add5L},u64$1=u64,[SHA512_Kh,SHA512_Kl]=(()=>u64$1.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))))(),SHA512_W_H=new Uint32Array(80),SHA512_W_L=new Uint32Array(80);class SHA512 extends SHA2{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:r,Bh:n,Bl:o,Ch:a,Cl:l,Dh:c,Dl:u,Eh:g,El:_,Fh:x,Fl:S,Gh:O,Gl:E,Hh:T,Hl:D}=this;return[t,r,n,o,a,l,c,u,g,_,x,S,O,E,T,D]}set(t,r,n,o,a,l,c,u,g,_,x,S,O,E,T,D){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=o|0,this.Ch=a|0,this.Cl=l|0,this.Dh=c|0,this.Dl=u|0,this.Eh=g|0,this.El=_|0,this.Fh=x|0,this.Fl=S|0,this.Gh=O|0,this.Gl=E|0,this.Hh=T|0,this.Hl=D|0}process(t,r){for(let H=0;H<16;H++,r+=4)SHA512_W_H[H]=t.getUint32(r),SHA512_W_L[H]=t.getUint32(r+=4);for(let H=16;H<80;H++){const se=SHA512_W_H[H-15]|0,ie=SHA512_W_L[H-15]|0,ne=u64$1.rotrSH(se,ie,1)^u64$1.rotrSH(se,ie,8)^u64$1.shrSH(se,ie,7),le=u64$1.rotrSL(se,ie,1)^u64$1.rotrSL(se,ie,8)^u64$1.shrSL(se,ie,7),me=SHA512_W_H[H-2]|0,_e=SHA512_W_L[H-2]|0,ge=u64$1.rotrSH(me,_e,19)^u64$1.rotrBH(me,_e,61)^u64$1.shrSH(me,_e,6),de=u64$1.rotrSL(me,_e,19)^u64$1.rotrBL(me,_e,61)^u64$1.shrSL(me,_e,6),ve=u64$1.add4L(le,de,SHA512_W_L[H-7],SHA512_W_L[H-16]),pe=u64$1.add4H(ve,ne,ge,SHA512_W_H[H-7],SHA512_W_H[H-16]);SHA512_W_H[H]=pe|0,SHA512_W_L[H]=ve|0}let{Ah:n,Al:o,Bh:a,Bl:l,Ch:c,Cl:u,Dh:g,Dl:_,Eh:x,El:S,Fh:O,Fl:E,Gh:T,Gl:D,Hh:$,Hl:I}=this;for(let H=0;H<80;H++){const se=u64$1.rotrSH(x,S,14)^u64$1.rotrSH(x,S,18)^u64$1.rotrBH(x,S,41),ie=u64$1.rotrSL(x,S,14)^u64$1.rotrSL(x,S,18)^u64$1.rotrBL(x,S,41),ne=x&O^~x&T,le=S&E^~S&D,me=u64$1.add5L(I,ie,le,SHA512_Kl[H],SHA512_W_L[H]),_e=u64$1.add5H(me,$,se,ne,SHA512_Kh[H],SHA512_W_H[H]),ge=me|0,de=u64$1.rotrSH(n,o,28)^u64$1.rotrBH(n,o,34)^u64$1.rotrBH(n,o,39),ve=u64$1.rotrSL(n,o,28)^u64$1.rotrBL(n,o,34)^u64$1.rotrBL(n,o,39),pe=n&a^n&c^a&c,te=o&l^o&u^l&u;$=T|0,I=D|0,T=O|0,D=E|0,O=x|0,E=S|0,{h:x,l:S}=u64$1.add(g|0,_|0,_e|0,ge|0),g=c|0,_=u|0,c=a|0,u=l|0,a=n|0,l=o|0;const N=u64$1.add3L(ge,ve,te);n=u64$1.add3H(N,_e,de,pe),o=N|0}({h:n,l:o}=u64$1.add(this.Ah|0,this.Al|0,n|0,o|0)),{h:a,l}=u64$1.add(this.Bh|0,this.Bl|0,a|0,l|0),{h:c,l:u}=u64$1.add(this.Ch|0,this.Cl|0,c|0,u|0),{h:g,l:_}=u64$1.add(this.Dh|0,this.Dl|0,g|0,_|0),{h:x,l:S}=u64$1.add(this.Eh|0,this.El|0,x|0,S|0),{h:O,l:E}=u64$1.add(this.Fh|0,this.Fl|0,O|0,E|0),{h:T,l:D}=u64$1.add(this.Gh|0,this.Gl|0,T|0,D|0),{h:$,l:I}=u64$1.add(this.Hh|0,this.Hl|0,$|0,I|0),this.set(n,o,a,l,c,u,g,_,x,S,O,E,T,D,$,I)}roundClean(){SHA512_W_H.fill(0),SHA512_W_L.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const sha512$3=wrapConstructor(()=>new SHA512);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$5=BigInt(0),_1n$7=BigInt(1),_2n$4=BigInt(2),u8a=e=>e instanceof Uint8Array,hexes=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function bytesToHex(e){if(!u8a(e))throw new Error("Uint8Array expected");let t="";for(let r=0;rn+o.length,0));let r=0;return e.forEach(n=>{if(!u8a(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function equalBytes(e,t){if(e.length!==t.length)return!1;for(let r=0;r_0n$5;e>>=_1n$7,t+=1);return t}function bitGet(e,t){return e>>BigInt(t)&_1n$7}const bitSet=(e,t,r)=>e|(r?_1n$7:_0n$5)<(_2n$4<new Uint8Array(e),u8fr=e=>Uint8Array.from(e);function createHmacDrbg(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=u8n(e),o=u8n(e),a=0;const l=()=>{n.fill(1),o.fill(0),a=0},c=(...x)=>r(o,n,...x),u=(x=u8n())=>{o=c(u8fr([0]),x),n=c(),x.length!==0&&(o=c(u8fr([1]),x),n=c())},g=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let x=0;const S=[];for(;x{l(),u(x);let O;for(;!(O=S(g()));)u();return l(),O}}const validatorFns={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function validateObject(e,t,r={}){const n=(o,a,l)=>{const c=validatorFns[a];if(typeof c!="function")throw new Error(`Invalid validator "${a}", expected function`);const u=e[o];if(!(l&&u===void 0)&&!c(u,e))throw new Error(`Invalid param ${String(o)}=${u} (${typeof u}), expected ${a}`)};for(const[o,a]of Object.entries(t))n(o,a,!1);for(const[o,a]of Object.entries(r))n(o,a,!0);return e}const ut=Object.freeze(Object.defineProperty({__proto__:null,bytesToHex,numberToHexUnpadded,hexToNumber,hexToBytes,bytesToNumberBE,bytesToNumberLE,numberToBytesBE,numberToBytesLE,numberToVarBytesBE,ensureBytes,concatBytes,equalBytes,utf8ToBytes,bitLen,bitGet,bitSet,bitMask,createHmacDrbg,validateObject},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$4=BigInt(0),_1n$6=BigInt(1),_2n$3=BigInt(2),_3n$1=BigInt(3),_4n=BigInt(4),_5n$1=BigInt(5),_8n$1=BigInt(8);BigInt(9);BigInt(16);function mod(e,t){const r=e%t;return r>=_0n$4?r:t+r}function pow(e,t,r){if(r<=_0n$4||t<_0n$4)throw new Error("Expected power/modulo > 0");if(r===_1n$6)return _0n$4;let n=_1n$6;for(;t>_0n$4;)t&_1n$6&&(n=n*e%r),e=e*e%r,t>>=_1n$6;return n}function pow2(e,t,r){let n=e;for(;t-- >_0n$4;)n*=n,n%=r;return n}function invert(e,t){if(e===_0n$4||t<=_0n$4)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=mod(e,t),n=t,o=_0n$4,a=_1n$6;for(;r!==_0n$4;){const c=n/r,u=n%r,g=o-a*c;n=r,r=u,o=a,a=g}if(n!==_1n$6)throw new Error("invert: does not exist");return mod(o,t)}function tonelliShanks(e){const t=(e-_1n$6)/_2n$3;let r,n,o;for(r=e-_1n$6,n=0;r%_2n$3===_0n$4;r/=_2n$3,n++);for(o=_2n$3;o(mod(e,t)&_1n$6)===_1n$6,FIELD_FIELDS=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function validateField(e){const t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=FIELD_FIELDS.reduce((n,o)=>(n[o]="function",n),t);return validateObject(e,r)}function FpPow(e,t,r){if(r<_0n$4)throw new Error("Expected power > 0");if(r===_0n$4)return e.ONE;if(r===_1n$6)return t;let n=e.ONE,o=t;for(;r>_0n$4;)r&_1n$6&&(n=e.mul(n,o)),o=e.sqr(o),r>>=_1n$6;return n}function FpInvertBatch(e,t){const r=new Array(t.length),n=t.reduce((a,l,c)=>e.is0(l)?a:(r[c]=a,e.mul(a,l)),e.ONE),o=e.inv(n);return t.reduceRight((a,l,c)=>e.is0(l)?a:(r[c]=e.mul(a,r[c]),e.mul(a,l)),o),r}function nLength(e,t){const r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Field(e,t,r=!1,n={}){if(e<=_0n$4)throw new Error(`Expected Field ORDER > 0, got ${e}`);const{nBitLength:o,nByteLength:a}=nLength(e,t);if(a>2048)throw new Error("Field lengths over 2048 bytes are not supported");const l=FpSqrt(e),c=Object.freeze({ORDER:e,BITS:o,BYTES:a,MASK:bitMask(o),ZERO:_0n$4,ONE:_1n$6,create:u=>mod(u,e),isValid:u=>{if(typeof u!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof u}`);return _0n$4<=u&&uu===_0n$4,isOdd:u=>(u&_1n$6)===_1n$6,neg:u=>mod(-u,e),eql:(u,g)=>u===g,sqr:u=>mod(u*u,e),add:(u,g)=>mod(u+g,e),sub:(u,g)=>mod(u-g,e),mul:(u,g)=>mod(u*g,e),pow:(u,g)=>FpPow(c,u,g),div:(u,g)=>mod(u*invert(g,e),e),sqrN:u=>u*u,addN:(u,g)=>u+g,subN:(u,g)=>u-g,mulN:(u,g)=>u*g,inv:u=>invert(u,e),sqrt:n.sqrt||(u=>l(c,u)),invertBatch:u=>FpInvertBatch(c,u),cmov:(u,g,_)=>_?g:u,toBytes:u=>r?numberToBytesLE(u,a):numberToBytesBE(u,a),fromBytes:u=>{if(u.length!==a)throw new Error(`Fp.fromBytes: expected ${a}, got ${u.length}`);return r?bytesToNumberLE(u):bytesToNumberBE(u)}});return Object.freeze(c)}function FpSqrtEven(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");const r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function getFieldBytesLength(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function getMinHashLength(e){const t=getFieldBytesLength(e);return t+Math.ceil(t/2)}function mapHashToField(e,t,r=!1){const n=e.length,o=getFieldBytesLength(t),a=getMinHashLength(t);if(n<16||n1024)throw new Error(`expected ${a}-1024 bytes of input, got ${n}`);const l=r?bytesToNumberBE(e):bytesToNumberLE(e),c=mod(l,t-_1n$6)+_1n$6;return r?numberToBytesLE(c,o):numberToBytesBE(c,o)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$3=BigInt(0),_1n$5=BigInt(1);function wNAF(e,t){const r=(o,a)=>{const l=a.negate();return o?l:a},n=o=>{const a=Math.ceil(t/o)+1,l=2**(o-1);return{windows:a,windowSize:l}};return{constTimeNegate:r,unsafeLadder(o,a){let l=e.ZERO,c=o;for(;a>_0n$3;)a&_1n$5&&(l=l.add(c)),c=c.double(),a>>=_1n$5;return l},precomputeWindow(o,a){const{windows:l,windowSize:c}=n(a),u=[];let g=o,_=g;for(let x=0;x>=O,D>u&&(D-=S,l+=_1n$5);const $=T,I=T+Math.abs(D)-1,H=E%2!==0,se=D<0;D===0?_=_.add(r(H,a[$])):g=g.add(r(se,a[I]))}return{p:g,f:_}},wNAFCached(o,a,l,c){const u=o._WINDOW_SIZE||1;let g=a.get(o);return g||(g=this.precomputeWindow(o,u),u!==1&&a.set(o,c(g))),this.wNAF(u,g,l)}}}function validateBasic(e){return validateField(e.Fp),validateObject(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...nLength(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$2=BigInt(0),_1n$4=BigInt(1),_2n$2=BigInt(2),_8n=BigInt(8),VERIFY_DEFAULT={zip215:!0};function validateOpts$2(e){const t=validateBasic(e);return validateObject(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function twistedEdwards(e){const t=validateOpts$2(e),{Fp:r,n,prehash:o,hash:a,randomBytes:l,nByteLength:c,h:u}=t,g=_2n$2<{try{return{isValid:!0,value:r.sqrt(oe*r.inv(he))}}catch{return{isValid:!1,value:_0n$2}}}),S=t.adjustScalarBytes||(oe=>oe),O=t.domain||((oe,he,be)=>{if(he.length||be)throw new Error("Contexts/pre-hash are not supported");return oe}),E=oe=>typeof oe=="bigint"&&_0n$2E(oe)&&E(he)&&oeoe===_0n$2||T(oe,g);function $(oe,he){if(T(oe,he))return oe;throw new Error(`Expected valid scalar < ${he}, got ${typeof oe} ${oe}`)}function I(oe){return oe===_0n$2?oe:$(oe,n)}const H=new Map;function se(oe){if(!(oe instanceof ie))throw new Error("ExtendedPoint expected")}class ie{constructor(he,be,Ce,Oe){if(this.ex=he,this.ey=be,this.ez=Ce,this.et=Oe,!D(he))throw new Error("x required");if(!D(be))throw new Error("y required");if(!D(Ce))throw new Error("z required");if(!D(Oe))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(he){if(he instanceof ie)throw new Error("extended point not allowed");const{x:be,y:Ce}=he||{};if(!D(be)||!D(Ce))throw new Error("invalid affine point");return new ie(be,Ce,_1n$4,_(be*Ce))}static normalizeZ(he){const be=r.invertBatch(he.map(Ce=>Ce.ez));return he.map((Ce,Oe)=>Ce.toAffine(be[Oe])).map(ie.fromAffine)}_setWindowSize(he){this._WINDOW_SIZE=he,H.delete(this)}assertValidity(){const{a:he,d:be}=t;if(this.is0())throw new Error("bad point: ZERO");const{ex:Ce,ey:Oe,ez:Se,et:$e}=this,ke=_(Ce*Ce),Re=_(Oe*Oe),Be=_(Se*Se),Ee=_(Be*Be),Pe=_(ke*he),Ie=_(Be*_(Pe+Re)),Fe=_(Ee+_(be*_(ke*Re)));if(Ie!==Fe)throw new Error("bad point: equation left != right (1)");const fe=_(Ce*Oe),ae=_(Se*$e);if(fe!==ae)throw new Error("bad point: equation left != right (2)")}equals(he){se(he);const{ex:be,ey:Ce,ez:Oe}=this,{ex:Se,ey:$e,ez:ke}=he,Re=_(be*ke),Be=_(Se*Oe),Ee=_(Ce*ke),Pe=_($e*Oe);return Re===Be&&Ee===Pe}is0(){return this.equals(ie.ZERO)}negate(){return new ie(_(-this.ex),this.ey,this.ez,_(-this.et))}double(){const{a:he}=t,{ex:be,ey:Ce,ez:Oe}=this,Se=_(be*be),$e=_(Ce*Ce),ke=_(_2n$2*_(Oe*Oe)),Re=_(he*Se),Be=be+Ce,Ee=_(_(Be*Be)-Se-$e),Pe=Re+$e,Ie=Pe-ke,Fe=Re-$e,fe=_(Ee*Ie),ae=_(Pe*Fe),ue=_(Ee*Fe),xe=_(Ie*Pe);return new ie(fe,ae,xe,ue)}add(he){se(he);const{a:be,d:Ce}=t,{ex:Oe,ey:Se,ez:$e,et:ke}=this,{ex:Re,ey:Be,ez:Ee,et:Pe}=he;if(be===BigInt(-1)){const Ge=_((Se-Oe)*(Be+Re)),Ne=_((Se+Oe)*(Be-Re)),We=_(Ne-Ge);if(We===_0n$2)return this.double();const Ye=_($e*_2n$2*Pe),Qe=_(ke*_2n$2*Ee),Le=Qe+Ye,ye=Ne+Ge,we=Qe-Ye,Ve=_(Le*We),Xe=_(ye*we),nt=_(Le*we),lt=_(We*ye);return new ie(Ve,Xe,lt,nt)}const Ie=_(Oe*Re),Fe=_(Se*Be),fe=_(ke*Ce*Pe),ae=_($e*Ee),ue=_((Oe+Se)*(Re+Be)-Ie-Fe),xe=ae-fe,Ae=ae+fe,De=_(Fe-be*Ie),ze=_(ue*xe),je=_(Ae*De),Ke=_(ue*De),Ze=_(xe*Ae);return new ie(ze,je,Ze,Ke)}subtract(he){return this.add(he.negate())}wNAF(he){return me.wNAFCached(this,H,he,ie.normalizeZ)}multiply(he){const{p:be,f:Ce}=this.wNAF($(he,n));return ie.normalizeZ([be,Ce])[0]}multiplyUnsafe(he){let be=I(he);return be===_0n$2?le:this.equals(le)||be===_1n$4?this:this.equals(ne)?this.wNAF(be).p:me.unsafeLadder(this,be)}isSmallOrder(){return this.multiplyUnsafe(u).is0()}isTorsionFree(){return me.unsafeLadder(this,n).is0()}toAffine(he){const{ex:be,ey:Ce,ez:Oe}=this,Se=this.is0();he==null&&(he=Se?_8n:r.inv(Oe));const $e=_(be*he),ke=_(Ce*he),Re=_(Oe*he);if(Se)return{x:_0n$2,y:_1n$4};if(Re!==_1n$4)throw new Error("invZ was invalid");return{x:$e,y:ke}}clearCofactor(){const{h:he}=t;return he===_1n$4?this:this.multiplyUnsafe(he)}static fromHex(he,be=!1){const{d:Ce,a:Oe}=t,Se=r.BYTES;he=ensureBytes("pointHex",he,Se);const $e=he.slice(),ke=he[Se-1];$e[Se-1]=ke&-129;const Re=bytesToNumberLE($e);Re===_0n$2||(be?$(Re,g):$(Re,r.ORDER));const Be=_(Re*Re),Ee=_(Be-_1n$4),Pe=_(Ce*Be-Oe);let{isValid:Ie,value:Fe}=x(Ee,Pe);if(!Ie)throw new Error("Point.fromHex: invalid y coordinate");const fe=(Fe&_1n$4)===_1n$4,ae=(ke&128)!==0;if(!be&&Fe===_0n$2&&ae)throw new Error("Point.fromHex: x=0 and x_0=1");return ae!==fe&&(Fe=_(-Fe)),ie.fromAffine({x:Fe,y:Re})}static fromPrivateKey(he){return de(he).point}toRawBytes(){const{x:he,y:be}=this.toAffine(),Ce=numberToBytesLE(be,r.BYTES);return Ce[Ce.length-1]|=he&_1n$4?128:0,Ce}toHex(){return bytesToHex(this.toRawBytes())}}ie.BASE=new ie(t.Gx,t.Gy,_1n$4,_(t.Gx*t.Gy)),ie.ZERO=new ie(_0n$2,_1n$4,_1n$4,_0n$2);const{BASE:ne,ZERO:le}=ie,me=wNAF(ie,c*8);function _e(oe){return mod(oe,n)}function ge(oe){return _e(bytesToNumberLE(oe))}function de(oe){const he=c;oe=ensureBytes("private key",oe,he);const be=ensureBytes("hashed private key",a(oe),2*he),Ce=S(be.slice(0,he)),Oe=be.slice(he,2*he),Se=ge(Ce),$e=ne.multiply(Se),ke=$e.toRawBytes();return{head:Ce,prefix:Oe,scalar:Se,point:$e,pointBytes:ke}}function ve(oe){return de(oe).pointBytes}function pe(oe=new Uint8Array,...he){const be=concatBytes(...he);return ge(a(O(be,ensureBytes("context",oe),!!o)))}function te(oe,he,be={}){oe=ensureBytes("message",oe),o&&(oe=o(oe));const{prefix:Ce,scalar:Oe,pointBytes:Se}=de(he),$e=pe(be.context,Ce,oe),ke=ne.multiply($e).toRawBytes(),Re=pe(be.context,ke,Se,oe),Be=_e($e+Re*Oe);I(Be);const Ee=concatBytes(ke,numberToBytesLE(Be,r.BYTES));return ensureBytes("result",Ee,c*2)}const N=VERIFY_DEFAULT;function B(oe,he,be,Ce=N){const{context:Oe,zip215:Se}=Ce,$e=r.BYTES;oe=ensureBytes("signature",oe,2*$e),he=ensureBytes("message",he),o&&(he=o(he));const ke=bytesToNumberLE(oe.slice($e,2*$e));let Re,Be,Ee;try{Re=ie.fromHex(be,Se),Be=ie.fromHex(oe.slice(0,$e),Se),Ee=ne.multiplyUnsafe(ke)}catch{return!1}if(!Se&&Re.isSmallOrder())return!1;const Pe=pe(Oe,Be.toRawBytes(),Re.toRawBytes(),he);return Be.add(Re.multiplyUnsafe(Pe)).subtract(Ee).clearCofactor().equals(ie.ZERO)}return ne._setWindowSize(8),{CURVE:t,getPublicKey:ve,sign:te,verify:B,ExtendedPoint:ie,utils:{getExtendedPublicKey:de,randomPrivateKey:()=>l(r.BYTES),precompute(oe=8,he=ie.BASE){return he._setWindowSize(oe),he.multiply(BigInt(3)),he}}}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$1=BigInt(0),_1n$3=BigInt(1);function validateOpts$1(e){return validateObject(e,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...e})}function montgomery(e){const t=validateOpts$1(e),{P:r}=t,n=H=>mod(H,r),o=t.montgomeryBits,a=Math.ceil(o/8),l=t.nByteLength,c=t.adjustScalarBytes||(H=>H),u=t.powPminus2||(H=>pow(H,r-BigInt(2),r));function g(H,se,ie){const ne=n(H*(se-ie));return se=n(se-ne),ie=n(ie+ne),[se,ie]}function _(H){if(typeof H=="bigint"&&_0n$1<=H&&H=_0n$1;N--){const B=ne>>N&_1n$3;ve^=B,pe=g(ve,me,ge),me=pe[0],ge=pe[1],pe=g(ve,_e,de),_e=pe[0],de=pe[1],ve=B;const ee=me+_e,oe=n(ee*ee),he=me-_e,be=n(he*he),Ce=oe-be,Oe=ge+de,Se=ge-de,$e=n(Se*ee),ke=n(Oe*he),Re=$e+ke,Be=$e-ke;ge=n(Re*Re),de=n(le*n(Be*Be)),me=n(oe*be),_e=n(Ce*(oe+n(x*Ce)))}pe=g(ve,me,ge),me=pe[0],ge=pe[1],pe=g(ve,_e,de),_e=pe[0],de=pe[1];const te=u(_e);return n(me*te)}function O(H){return numberToBytesLE(n(H),a)}function E(H){const se=ensureBytes("u coordinate",H,a);return l===a&&(se[l-1]&=127),bytesToNumberLE(se)}function T(H){const se=ensureBytes("scalar",H);if(se.length!==a&&se.length!==l)throw new Error(`Expected ${a} or ${l} bytes, got ${se.length}`);return bytesToNumberLE(c(se))}function D(H,se){const ie=E(se),ne=T(H),le=S(ie,ne);if(le===_0n$1)throw new Error("Invalid private or public key received");return O(le)}const $=O(t.Gu);function I(H){return D(H,$)}return{scalarMult:D,scalarMultBase:I,getSharedSecret:(H,se)=>D(H,se),getPublicKey:H=>I(H),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:$}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ED25519_P=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),ED25519_SQRT_M1=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");BigInt(0);const _1n$2=BigInt(1),_2n$1=BigInt(2),_5n=BigInt(5),_10n=BigInt(10),_20n=BigInt(20),_40n=BigInt(40),_80n=BigInt(80);function ed25519_pow_2_252_3(e){const t=ED25519_P,n=e*e%t*e%t,o=pow2(n,_2n$1,t)*n%t,a=pow2(o,_1n$2,t)*e%t,l=pow2(a,_5n,t)*a%t,c=pow2(l,_10n,t)*l%t,u=pow2(c,_20n,t)*c%t,g=pow2(u,_40n,t)*u%t,_=pow2(g,_80n,t)*g%t,x=pow2(_,_80n,t)*g%t,S=pow2(x,_10n,t)*l%t;return{pow_p_5_8:pow2(S,_2n$1,t)*e%t,b2:n}}function adjustScalarBytes(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function uvRatio(e,t){const r=ED25519_P,n=mod(t*t*t,r),o=mod(n*n*t,r),a=ed25519_pow_2_252_3(e*o).pow_p_5_8;let l=mod(e*n*a,r);const c=mod(t*l*l,r),u=l,g=mod(l*ED25519_SQRT_M1,r),_=c===e,x=c===mod(-e,r),S=c===mod(-e*ED25519_SQRT_M1,r);return _&&(l=u),(x||S)&&(l=g),isNegativeLE(l,r)&&(l=mod(-l,r)),{isValid:_||x,value:l}}const Fp$1=Field(ED25519_P,void 0,!0),ed25519Defaults={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Fp$1,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:sha512$3,randomBytes:randomBytes$1,adjustScalarBytes,uvRatio},ed25519=twistedEdwards(ed25519Defaults);function ed25519_domain(e,t,r){if(t.length>255)throw new Error("Context is too big");return concatBytes$1(utf8ToBytes$1("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}({...ed25519Defaults});({...ed25519Defaults});const x25519=(()=>montgomery({P:ED25519_P,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:e=>{const t=ED25519_P,{pow_p_5_8:r,b2:n}=ed25519_pow_2_252_3(e);return mod(pow2(r,BigInt(3),t)*n,t)},adjustScalarBytes,randomBytes:randomBytes$1}))(),ELL2_C1=(Fp$1.ORDER+BigInt(3))/BigInt(8);Fp$1.pow(_2n$1,ELL2_C1);Fp$1.sqrt(Fp$1.neg(Fp$1.ONE));(Fp$1.ORDER-BigInt(5))/BigInt(8);BigInt(486662);FpSqrtEven(Fp$1,Fp$1.neg(BigInt(486664)));BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235");BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578");BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838");BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class HMAC extends Hash{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,hash$1(t);const n=toBytes$1(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const o=this.blockLen,a=new Uint8Array(o);a.set(n.length>o?t.create().update(n).digest():n);for(let l=0;lnew HMAC(e,t).update(r).digest();hmac$1.create=(e,t)=>new HMAC(e,t);function extract(e,t,r){return hash$1(e),r===void 0&&(r=new Uint8Array(e.outputLen)),hmac$1(e,toBytes$1(r),toBytes$1(t))}const HKDF_COUNTER=new Uint8Array([0]),EMPTY_BUFFER=new Uint8Array;function expand(e,t,r,n=32){if(hash$1(e),number$2(n),n>255*e.outputLen)throw new Error("Length should be <= 255*HashLen");const o=Math.ceil(n/e.outputLen);r===void 0&&(r=EMPTY_BUFFER);const a=new Uint8Array(o*e.outputLen),l=hmac$1.create(e,t),c=l._cloneInto(),u=new Uint8Array(l.outputLen);for(let g=0;ge&t^~e&r,Maj=(e,t,r)=>e&t^e&r^t&r,SHA256_K=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),IV=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),SHA256_W=new Uint32Array(64);class SHA256 extends SHA2{constructor(){super(64,32,8,!1),this.A=IV[0]|0,this.B=IV[1]|0,this.C=IV[2]|0,this.D=IV[3]|0,this.E=IV[4]|0,this.F=IV[5]|0,this.G=IV[6]|0,this.H=IV[7]|0}get(){const{A:t,B:r,C:n,D:o,E:a,F:l,G:c,H:u}=this;return[t,r,n,o,a,l,c,u]}set(t,r,n,o,a,l,c,u){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=a|0,this.F=l|0,this.G=c|0,this.H=u|0}process(t,r){for(let x=0;x<16;x++,r+=4)SHA256_W[x]=t.getUint32(r,!1);for(let x=16;x<64;x++){const S=SHA256_W[x-15],O=SHA256_W[x-2],E=rotr(S,7)^rotr(S,18)^S>>>3,T=rotr(O,17)^rotr(O,19)^O>>>10;SHA256_W[x]=T+SHA256_W[x-7]+E+SHA256_W[x-16]|0}let{A:n,B:o,C:a,D:l,E:c,F:u,G:g,H:_}=this;for(let x=0;x<64;x++){const S=rotr(c,6)^rotr(c,11)^rotr(c,25),O=_+S+Chi(c,u,g)+SHA256_K[x]+SHA256_W[x]|0,T=(rotr(n,2)^rotr(n,13)^rotr(n,22))+Maj(n,o,a)|0;_=g,g=u,u=c,c=l+O|0,l=a,a=o,o=n,n=O+T|0}n=n+this.A|0,o=o+this.B|0,a=a+this.C|0,l=l+this.D|0,c=c+this.E|0,u=u+this.F|0,g=g+this.G|0,_=_+this.H|0,this.set(n,o,a,l,c,u,g,_)}roundClean(){SHA256_W.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const sha256$3=wrapConstructor(()=>new SHA256),pureJsCrypto={hashSHA256(e){return sha256$3(e)},getHKDF(e,t){const r=extract(sha256$3,t,e),o=expand(sha256$3,r,void 0,96),a=o.subarray(0,32),l=o.subarray(32,64),c=o.subarray(64,96);return[a,l,c]},generateX25519KeyPair(){const e=x25519.utils.randomPrivateKey();return{publicKey:x25519.getPublicKey(e),privateKey:e}},generateX25519KeyPairFromSeed(e){return{publicKey:x25519.getPublicKey(e),privateKey:e}},generateX25519SharedKey(e,t){return x25519.getSharedSecret(e,t)},chaCha20Poly1305Encrypt(e,t,r,n){return chacha20poly1305(n,t,r).encrypt(e)},chaCha20Poly1305Decrypt(e,t,r,n,o){return chacha20poly1305(n,t,r).decrypt(e,o)}},allocUnsafe$1=e=>globalThis.Buffer?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e),uint16BEEncode=e=>{const t=allocUnsafe$1(2);return new DataView(t.buffer,t.byteOffset,t.byteLength).setUint16(0,e,!1),t};uint16BEEncode.bytes=2;const uint16BEDecode=e=>{if(e.length<2)throw RangeError("Could not decode int16BE");return e instanceof Uint8Array?new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(0,!1):e.getUint16(0)};uint16BEDecode.bytes=2;function encode0(e){return concat$1([e.ne,e.ciphertext],e.ne.length+e.ciphertext.length)}function encode1(e){return concat$1([e.ne,e.ns,e.ciphertext],e.ne.length+e.ns.length+e.ciphertext.length)}function encode2(e){return concat$1([e.ns,e.ciphertext],e.ns.length+e.ciphertext.length)}function decode0(e){if(e.length<32)throw new Error("Cannot decode stage 0 MessageBuffer: length less than 32 bytes.");return{ne:e.subarray(0,32),ciphertext:e.subarray(32,e.length),ns:new Uint8Array(0)}}function decode1(e){if(e.length<80)throw new Error("Cannot decode stage 1 MessageBuffer: length less than 80 bytes.");return{ne:e.subarray(0,32),ns:e.subarray(32,80),ciphertext:e.subarray(80,e.length)}}function decode2(e){if(e.length<48)throw new Error("Cannot decode stage 2 MessageBuffer: length less than 48 bytes.");return{ne:new Uint8Array(0),ns:e.subarray(0,48),ciphertext:e.subarray(48,e.length)}}const CHACHA_TAG_LENGTH=16;function encryptStream(e,t){return async function*(r){for await(const n of r)for(let o=0;on.length&&(a=n.length);const l=e.encrypt(n.subarray(o,a),e.session);t?.encryptedPackets.increment(),yield uint16BEEncode(l.byteLength),yield l}}}function decryptStream(e,t){return async function*(r){for await(const n of r)for(let o=0;on.length&&(a=n.length),a-CHACHA_TAG_LENGTH0;)c.push(g%a),g=g/a|0}for(o=0;e[o]===0&&o=0;--o)n+=t[c[o]]}if(r){var _=new RegExp(".{1,"+r+"}","g");n=n.match(_).join(`\r +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function O($,I){(I==null||I>$.length)&&(I=$.length);for(var H=0,se=new Array(I);H1&&arguments[1]!==void 0?arguments[1]:{};$.component(I.tagName||"highcharts",E(I.highcharts||g()))}})(),c})())})(highchartsVue_min);var stock={exports:{}};(function(e){(function(t){e.exports?(t.default=t,e.exports=t):t(typeof Highcharts<"u"?Highcharts:void 0)})(function(t){var r=t?t._modules:{};function n(o,a,l,c){o.hasOwnProperty(a)||(o[a]=c.apply(null,l),typeof CustomEvent=="function"&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:a,module:o[a]}})))}n(r,"Series/DataModifyComposition.js",[r["Core/Axis/Axis.js"],r["Core/Series/Point.js"],r["Core/Series/Series.js"],r["Core/Utilities.js"]],function(o,a,l,c){var u;let{tooltipFormatter:g}=a.prototype,{addEvent:_,arrayMax:x,arrayMin:S,correctFloat:O,defined:E,isArray:T,isNumber:D,isString:$,pick:I}=c;return function(H){function se(te,N,B){!this.isXAxis&&(this.series.forEach(function(ee){te==="compare"&&typeof N!="boolean"?ee.setCompare(N,!1):te!=="cumulative"||$(N)||ee.setCumulative(N,!1)}),I(B,!0)&&this.chart.redraw())}function ie(te){let N=this,{numberFormatter:B}=N.series.chart,ee=function(oe){te=te.replace("{point."+oe+"}",(N[oe]>0&&oe==="change"?"+":"")+B(N[oe],I(N.series.tooltipOptions.changeDecimals,2)))};return E(N.change)&&ee("change"),E(N.cumulativeSum)&&ee("cumulativeSum"),g.apply(this,[te])}function ne(){let te,N=this.options.compare;(N==="percent"||N==="value"||this.options.cumulative)&&(te=new pe(this),N==="percent"||N==="value"?te.initCompare(N):te.initCumulative()),this.dataModify=te}function le(te){let N=te.dataExtremes,B=N.activeYData;if(this.dataModify&&N){let ee;this.options.compare?ee=[this.dataModify.modifyValue(N.dataMin),this.dataModify.modifyValue(N.dataMax)]:this.options.cumulative&&T(B)&&B.length>=2&&(ee=pe.getCumulativeExtremes(B)),ee&&(N.dataMin=S(ee),N.dataMax=x(ee))}}function me(te,N){this.options.compare=this.userOptions.compare=te,this.update({},I(N,!0)),this.dataModify&&(te==="value"||te==="percent")?this.dataModify.initCompare(te):this.points.forEach(B=>{delete B.change})}function _e(){if(this.xAxis&&this.processedYData&&this.dataModify){let te=this.processedXData,N=this.processedYData,B=N.length,ee=this.options.compareStart===!0?0:1,oe=-1,he;for(this.pointArrayMap&&(oe=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),he=0;he-1?N[he][oe]:N[he];if(D(be)&&be!==0&&te[he+ee]>=(this.xAxis.min||0)){this.dataModify.compareValue=be;break}}}}function ge(te,N){this.setModifier("compare",te,N)}function de(te,N){te=I(te,!1),this.options.cumulative=this.userOptions.cumulative=te,this.update({},I(N,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(B=>{delete B.cumulativeSum})}function ve(te,N){this.setModifier("cumulative",te,N)}H.compose=function(te,N,B){let ee=N.prototype,oe=B.prototype,he=te.prototype;return he.setCompare||(he.setCompare=me,he.setCumulative=de,_(te,"afterInit",ne),_(te,"afterGetExtremes",le),_(te,"afterProcessData",_e)),ee.setCompare||(ee.setCompare=ge,ee.setModifier=se,ee.setCumulative=ve,oe.tooltipFormatter=ie),te};class pe{constructor(N){this.series=N}modifyValue(){return 0}static getCumulativeExtremes(N){let B=1/0,ee=-1/0;return N.reduce((oe,he)=>{let be=oe+he;return B=Math.min(B,be,oe),ee=Math.max(ee,be,oe),be}),[B,ee]}initCompare(N){this.modifyValue=function(B,ee){B===null&&(B=0);let oe=this.compareValue;if(B!==void 0&&oe!==void 0){if(N==="value"?B-=oe:B=B/oe*100-(this.series.options.compareBase===100?0:100),ee!==void 0){let he=this.series.points[ee];he&&(he.change=B)}return B}return 0}}initCumulative(){this.modifyValue=function(N,B){if(N===null&&(N=0),N!==void 0&&B!==void 0){let ee=B>0?this.series.points[B-1]:null;ee&&ee.cumulativeSum&&(N=O(ee.cumulativeSum+N));let oe=this.series.points[B],he=oe.series.options.cumulativeStart,be=oe.x<=this.series.xAxis.max&&oe.x>=this.series.xAxis.min;return oe&&(!he||be?oe.cumulativeSum=N:oe.cumulativeSum=void 0),N}return 0}}}H.Additions=pe}(u||(u={})),u}),n(r,"Stock/Navigator/ChartNavigatorComposition.js",[r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a){let l,{isTouchDevice:c}=o,{addEvent:u,merge:g,pick:_}=a,x=[];function S(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function O(){let H,se,ie,ne=this.legend,le=this.navigator;if(le){H=ne&&ne.options,se=le.xAxis,ie=le.yAxis;let{scrollbarHeight:me,scrollButtonSize:_e}=le;this.inverted?(le.left=le.opposite?this.chartWidth-me-le.height:this.spacing[3]+me,le.top=this.plotTop+_e):(le.left=_(se.left,this.plotLeft+_e),le.top=le.navigatorOptions.top||this.chartHeight-le.height-me-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(H&&H.verticalAlign==="bottom"&&H.layout!=="proximate"&&H.enabled&&!H.floating?ne.legendHeight+_(H.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),se&&ie&&(this.inverted?se.options.left=ie.options.left=le.left:se.options.top=ie.options.top=le.top,se.setAxisSize(),ie.setAxisSize())}}function E(H){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new l(this),_(H.redraw,!0)&&this.redraw(H.animation))}function T(){let H=this.options;(H.navigator.enabled||H.scrollbar.enabled)&&(this.scroller=this.navigator=new l(this))}function D(){let H=this.options,se=H.navigator,ie=H.rangeSelector;if((se&&se.enabled||ie&&ie.enabled)&&(!c&&this.zooming.type==="x"||c&&this.zooming.pinchType==="x"))return!1}function $(H){let se=H.navigator;if(se&&H.xAxis[0]){let ie=H.xAxis[0].getExtremes();se.render(ie.min,ie.max)}}function I(H){let se=H.options.navigator||{},ie=H.options.scrollbar||{};!this.navigator&&!this.scroller&&(se.enabled||ie.enabled)&&(g(!0,this.options.navigator,se),g(!0,this.options.scrollbar,ie),delete H.options.navigator,delete H.options.scrollbar)}return{compose:function(H,se){if(a.pushUnique(x,H)){let ie=H.prototype;l=se,ie.callbacks.push($),u(H,"afterAddSeries",S),u(H,"afterSetChartSize",O),u(H,"afterUpdate",E),u(H,"beforeRender",T),u(H,"beforeShowResetZoom",D),u(H,"update",I)}}}}),n(r,"Core/Axis/NavigatorAxisComposition.js",[r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a){let{isTouchDevice:l}=o,{addEvent:c,correctFloat:u,defined:g,isNumber:_,pick:x}=a;function S(){this.navigatorAxis||(this.navigatorAxis=new E(this))}function O(T){let D,$=this.chart,I=$.options,H=I.navigator,se=this.navigatorAxis,ie=$.zooming.pinchType,ne=I.rangeSelector,le=$.zooming.type;if(this.isXAxis&&(H?.enabled||ne?.enabled)){if(le==="y"&&T.trigger==="zoom")D=!1;else if((T.trigger==="zoom"&&le==="xy"||l&&ie==="xy")&&this.options.range){let me=se.previousZoom;g(T.min)?se.previousZoom=[this.min,this.max]:me&&(T.min=me[0],T.max=me[1],se.previousZoom=void 0)}}D!==void 0&&T.preventDefault()}class E{static compose(D){D.keepProps.includes("navigatorAxis")||(D.keepProps.push("navigatorAxis"),c(D,"init",S),c(D,"setExtremes",O))}constructor(D){this.axis=D}destroy(){this.axis=void 0}toFixedRange(D,$,I,H){let se=this.axis,ie=(se.pointRange||0)/2,ne=x(I,se.translate(D,!0,!se.horiz)),le=x(H,se.translate($,!0,!se.horiz));return g(I)||(ne=u(ne+ie)),g(H)||(le=u(le-ie)),_(ne)&&_(le)||(ne=le=void 0),{min:ne,max:le}}}return E}),n(r,"Stock/Navigator/NavigatorDefaults.js",[r["Core/Color/Color.js"],r["Core/Series/SeriesRegistry.js"]],function(o,a){let{parse:l}=o,{seriesTypes:c}=a;return{height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:l("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:c.areaspline===void 0?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["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,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),n(r,"Stock/Navigator/NavigatorSymbols.js",[r["Core/Renderer/SVG/Symbols.js"],r["Core/Utilities.js"]],function(o,a){let{relativeLength:l}=a;return{"navigator-handle":function(c,u,g,_,x={}){let S=x.width?x.width/2:g,O=l(x.borderRadius||0,Math.min(2*S,_));return[["M",-1.5,(_=x.height||_)/2-3.5],["L",-1.5,_/2+4.5],["M",.5,_/2-3.5],["L",.5,_/2+4.5],...o.rect(-S-1,.5,2*S+1,_,{r:O})]}}}),n(r,"Stock/Utilities/StockUtilities.js",[r["Core/Utilities.js"]],function(o){let{defined:a}=o;return{setFixedRange:function(l){let c=this.xAxis[0];a(c.dataMax)&&a(c.dataMin)&&l?this.fixedRange=Math.min(l,c.dataMax-c.dataMin):this.fixedRange=l}}}),n(r,"Stock/Navigator/NavigatorComposition.js",[r["Core/Defaults.js"],r["Core/Globals.js"],r["Core/Axis/NavigatorAxisComposition.js"],r["Stock/Navigator/NavigatorDefaults.js"],r["Stock/Navigator/NavigatorSymbols.js"],r["Core/Renderer/RendererRegistry.js"],r["Stock/Utilities/StockUtilities.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x){let{setOptions:S}=o,{composed:O}=a,{getRendererType:E}=g,{setFixedRange:T}=_,{addEvent:D,extend:$,pushUnique:I}=x;function H(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(se,ie,ne){l.compose(ie),I(O,"Navigator")&&(se.prototype.setFixedRange=T,$(E().prototype.symbols,u),D(ne,"afterUpdate",H),S({navigator:c}))}}}),n(r,"Core/Axis/ScrollbarAxis.js",[r["Core/Globals.js"],r["Core/Utilities.js"]],function(o,a){var l;let{composed:c}=o,{addEvent:u,defined:g,pick:_,pushUnique:x}=a;return function(S){let O;function E(I){let H=_(I.options&&I.options.min,I.min),se=_(I.options&&I.options.max,I.max);return{axisMin:H,axisMax:se,scrollMin:g(I.dataMin)?Math.min(H,I.min,I.dataMin,_(I.threshold,1/0)):H,scrollMax:g(I.dataMax)?Math.max(se,I.max,I.dataMax,_(I.threshold,-1/0)):se}}function T(){let I=this.scrollbar,H=I&&!I.options.opposite,se=this.horiz?2:H?3:1;I&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[se]+=I.size+(I.options.margin||0))}function D(){let I=this;I.options&&I.options.scrollbar&&I.options.scrollbar.enabled&&(I.options.scrollbar.vertical=!I.horiz,I.options.startOnTick=I.options.endOnTick=!1,I.scrollbar=new O(I.chart.renderer,I.options.scrollbar,I.chart),u(I.scrollbar,"changed",function(H){let se,ie,{axisMin:ne,axisMax:le,scrollMin:me,scrollMax:_e}=E(I),ge=_e-me;if(g(ne)&&g(le))if(I.horiz&&!I.reversed||!I.horiz&&I.reversed?(se=me+ge*this.to,ie=me+ge*this.from):(se=me+ge*(1-this.from),ie=me+ge*(1-this.to)),this.shouldUpdateExtremes(H.DOMType)){let de=H.DOMType!=="mousemove"&&H.DOMType!=="touchmove"&&void 0;I.setExtremes(ie,se,!0,de,H)}else this.setRange(this.from,this.to)}))}function $(){let I,H,se,{scrollMin:ie,scrollMax:ne}=E(this),le=this.scrollbar,me=this.axisTitleMargin+(this.titleOffset||0),_e=this.chart.scrollbarsOffsets,ge=this.options.margin||0;if(le&&_e){if(this.horiz)this.opposite||(_e[1]+=me),le.position(this.left,this.top+this.height+2+_e[1]-(this.opposite?ge:0),this.width,this.height),this.opposite||(_e[1]+=ge),I=1;else{let de;this.opposite&&(_e[0]+=me),de=le.options.opposite?this.left+this.width+2+_e[0]-(this.opposite?0:ge):this.opposite?0:ge,le.position(de,this.top,this.width,this.height),this.opposite&&(_e[0]+=ge),I=0}_e[I]+=le.size+(le.options.margin||0),isNaN(ie)||isNaN(ne)||!g(this.min)||!g(this.max)||this.min===this.max?le.setRange(0,1):(H=(this.min-ie)/(ne-ie),se=(this.max-ie)/(ne-ie),this.horiz&&!this.reversed||!this.horiz&&this.reversed?le.setRange(H,se):le.setRange(1-se,1-H))}}S.compose=function(I,H){x(c,"Axis.Scrollbar")&&(O=H,u(I,"afterGetOffset",T),u(I,"afterInit",D),u(I,"afterRender",$))}}(l||(l={})),l}),n(r,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),n(r,"Stock/Scrollbar/Scrollbar.js",[r["Core/Defaults.js"],r["Core/Globals.js"],r["Core/Axis/ScrollbarAxis.js"],r["Stock/Scrollbar/ScrollbarDefaults.js"],r["Core/Utilities.js"]],function(o,a,l,c,u){let{defaultOptions:g}=o,{addEvent:_,correctFloat:x,crisp:S,defined:O,destroyObjectProperties:E,fireEvent:T,merge:D,pick:$,removeEvent:I}=u;class H{static compose(ie){l.compose(ie,H)}static swapXY(ie,ne){return ne&&ie.forEach(le=>{let me,_e=le.length;for(let ge=0;ge<_e;ge+=2)typeof(me=le[ge+1])=="number"&&(le[ge+1]=le[ge+2],le[ge+2]=me)}),ie}constructor(ie,ne,le){this._events=[],this.chartX=0,this.chartY=0,this.from=0,this.scrollbarButtons=[],this.scrollbarLeft=0,this.scrollbarStrokeWidth=1,this.scrollbarTop=0,this.size=0,this.to=0,this.trackBorderWidth=1,this.x=0,this.y=0,this.init(ie,ne,le)}addEvents(){let ie=this.options.inverted?[1,0]:[0,1],ne=this.scrollbarButtons,le=this.scrollbarGroup.element,me=this.track.element,_e=this.mouseDownHandler.bind(this),ge=this.mouseMoveHandler.bind(this),de=this.mouseUpHandler.bind(this),ve=[[ne[ie[0]].element,"click",this.buttonToMinClick.bind(this)],[ne[ie[1]].element,"click",this.buttonToMaxClick.bind(this)],[me,"click",this.trackClick.bind(this)],[le,"mousedown",_e],[le.ownerDocument,"mousemove",ge],[le.ownerDocument,"mouseup",de],[le,"touchstart",_e],[le.ownerDocument,"touchmove",ge],[le.ownerDocument,"touchend",de]];ve.forEach(function(pe){_.apply(null,pe)}),this._events=ve}buttonToMaxClick(ie){let ne=(this.to-this.from)*$(this.options.step,.2);this.updatePosition(this.from+ne,this.to+ne),T(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:ie})}buttonToMinClick(ie){let ne=x(this.to-this.from)*$(this.options.step,.2);this.updatePosition(x(this.from-ne),x(this.to-ne)),T(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:ie})}cursorToScrollbarPosition(ie){let ne=this.options,le=ne.minWidth>this.calculatedWidth?ne.minWidth:0;return{chartX:(ie.chartX-this.x-this.xOffset)/(this.barWidth-le),chartY:(ie.chartY-this.y-this.yOffset)/(this.barWidth-le)}}destroy(){let ie=this,ne=ie.chart.scroller;ie.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(le){ie[le]&&ie[le].destroy&&(ie[le]=ie[le].destroy())}),ne&&ie===ne.scrollbar&&(ne.scrollbar=null,E(ne.scrollbarButtons))}drawScrollbarButton(ie){let ne=this.renderer,le=this.scrollbarButtons,me=this.options,_e=this.size,ge=ne.g().add(this.group);if(le.push(ge),me.buttonsEnabled){let de=ne.rect().addClass("highcharts-scrollbar-button").add(ge);this.chart.styledMode||de.attr({stroke:me.buttonBorderColor,"stroke-width":me.buttonBorderWidth,fill:me.buttonBackgroundColor}),de.attr(de.crisp({x:-.5,y:-.5,width:_e,height:_e,r:me.buttonBorderRadius},de.strokeWidth()));let ve=ne.path(H.swapXY([["M",_e/2+(ie?-1:1),_e/2-3],["L",_e/2+(ie?-1:1),_e/2+3],["L",_e/2+(ie?2:-2),_e/2]],me.vertical)).addClass("highcharts-scrollbar-arrow").add(le[ie]);this.chart.styledMode||ve.attr({fill:me.buttonArrowColor})}}init(ie,ne,le){this.scrollbarButtons=[],this.renderer=ie,this.userOptions=ne,this.options=D(c,g.scrollbar,ne),this.options.margin=$(this.options.margin,10),this.chart=le,this.size=$(this.options.size,this.options.height),ne.enabled&&(this.render(),this.addEvents())}mouseDownHandler(ie){let ne=this.chart.pointer?.normalize(ie)||ie,le=this.cursorToScrollbarPosition(ne);this.chartX=le.chartX,this.chartY=le.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(ie){let ne,le=this.chart.pointer?.normalize(ie)||ie,me=this.options.vertical?"chartY":"chartX",_e=this.initPositions||[];this.grabbedCenter&&(!ie.touches||ie.touches[0][me]!==0)&&(ne=this.cursorToScrollbarPosition(le)[me]-this[me],this.hasDragged=!0,this.updatePosition(_e[0]+ne,_e[1]+ne),this.hasDragged&&T(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:ie.type,DOMEvent:ie}))}mouseUpHandler(ie){this.hasDragged&&T(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:ie.type,DOMEvent:ie}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(ie,ne,le,me){let{buttonsEnabled:_e,margin:ge=0,vertical:de}=this.options,ve=this.rendered?"animate":"attr",pe=me,te=0;this.group.show(),this.x=ie,this.y=ne+this.trackBorderWidth,this.width=le,this.height=me,this.xOffset=pe,this.yOffset=te,de?(this.width=this.yOffset=le=te=this.size,this.xOffset=pe=0,this.yOffset=te=_e?this.size:0,this.barWidth=me-(_e?2*le:0),this.x=ie+=ge):(this.height=me=this.size,this.xOffset=pe=_e?this.size:0,this.barWidth=le-(_e?2*me:0),this.y=this.y+ge),this.group[ve]({translateX:ie,translateY:this.y}),this.track[ve]({width:le,height:me}),this.scrollbarButtons[1][ve]({translateX:de?0:le-pe,translateY:de?me-te:0})}removeEvents(){this._events.forEach(function(ie){I.apply(null,ie)}),this._events.length=0}render(){let ie=this.renderer,ne=this.options,le=this.size,me=this.chart.styledMode,_e=ie.g("scrollbar").attr({zIndex:ne.zIndex}).hide().add();this.group=_e,this.track=ie.rect().addClass("highcharts-scrollbar-track").attr({r:ne.trackBorderRadius||0,height:le,width:le}).add(_e),me||this.track.attr({fill:ne.trackBackgroundColor,stroke:ne.trackBorderColor,"stroke-width":ne.trackBorderWidth});let ge=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-S(0,ge),y:-S(0,ge)}),this.scrollbarGroup=ie.g().add(_e),this.scrollbar=ie.rect().addClass("highcharts-scrollbar-thumb").attr({height:le-ge,width:le-ge,r:ne.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=ie.path(H.swapXY([["M",-3,le/4],["L",-3,2*le/3],["M",0,le/4],["L",0,2*le/3],["M",3,le/4],["L",3,2*le/3]],ne.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),me||(this.scrollbar.attr({fill:ne.barBackgroundColor,stroke:ne.barBorderColor,"stroke-width":ne.barBorderWidth}),this.scrollbarRifles.attr({stroke:ne.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-S(0,this.scrollbarStrokeWidth),-S(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(ie,ne){let le,me,_e=this.options,ge=_e.vertical,de=_e.minWidth,ve=this.barWidth,pe=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!O(ve))return;let te=ve*Math.min(ne,1);le=Math.ceil(ve*(ie=Math.max(ie,0))),this.calculatedWidth=me=x(te-le),me=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(ie){return $(this.options.liveRedraw,a.svg&&!a.isTouchDevice&&!this.chart.boosted)||ie==="mouseup"||ie==="touchend"||!O(ie)}trackClick(ie){let ne=this.chart.pointer?.normalize(ie)||ie,le=this.to-this.from,me=this.y+this.scrollbarTop,_e=this.x+this.scrollbarLeft;this.options.vertical&&ne.chartY>me||!this.options.vertical&&ne.chartX>_e?this.updatePosition(this.from+le,this.to+le):this.updatePosition(this.from-le,this.to-le),T(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:ie})}update(ie){this.destroy(),this.init(this.chart.renderer,D(!0,this.options,ie),this.chart)}updatePosition(ie,ne){ne>1&&(ie=x(1-x(ne-ie)),ne=1),ie<0&&(ne=x(ne-ie),ie=0),this.from=ie,this.to=ne}}return H.defaultOptions=c,g.scrollbar=D(!0,H.defaultOptions,g.scrollbar),H}),n(r,"Stock/Navigator/Navigator.js",[r["Core/Axis/Axis.js"],r["Stock/Navigator/ChartNavigatorComposition.js"],r["Core/Defaults.js"],r["Core/Globals.js"],r["Core/Axis/NavigatorAxisComposition.js"],r["Stock/Navigator/NavigatorComposition.js"],r["Stock/Scrollbar/Scrollbar.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x){let{defaultOptions:S}=l,{isTouchDevice:O}=c,{addEvent:E,clamp:T,correctFloat:D,defined:$,destroyObjectProperties:I,erase:H,extend:se,find:ie,fireEvent:ne,isArray:le,isNumber:me,merge:_e,pick:ge,removeEvent:de,splat:ve}=x;function pe(N,...B){let ee=[].filter.call(B,me);if(ee.length)return Math[N].apply(0,ee)}class te{static compose(B,ee,oe){a.compose(B,te),g.compose(B,ee,oe)}constructor(B){this.scrollbarHeight=0,this.init(B)}drawHandle(B,ee,oe,he){let be=this.navigatorOptions.handles.height;this.handles[ee][he](oe?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(B,10)+.5-be)}:{translateX:Math.round(this.left+parseInt(B,10)),translateY:Math.round(this.top+this.height/2-be/2-1)})}drawOutline(B,ee,oe,he){let be=this.navigatorOptions.maskInside,Ce=this.outline.strokeWidth(),Oe=Ce/2,Se=Ce%2/2,$e=this.scrollButtonSize,ke=this.size,Re=this.top,Be=this.height,Ee=Re-Oe,Pe=Re+Be,Ie=this.left,Fe,fe;oe?(Fe=Re+ee+Se,ee=Re+B+Se,fe=[["M",Ie+Be,Re-$e-Se],["L",Ie+Be,Fe],["L",Ie,Fe],["M",Ie,ee],["L",Ie+Be,ee],["L",Ie+Be,Re+ke+$e]],be&&fe.push(["M",Ie+Be,Fe-Oe],["L",Ie+Be,ee+Oe])):(Ie-=$e,B+=Ie+$e-Se,ee+=Ie+$e-Se,fe=[["M",Ie,Ee],["L",B,Ee],["L",B,Pe],["M",ee,Pe],["L",ee,Ee],["L",Ie+ke+2*$e,Re+Oe]],be&&fe.push(["M",B-Oe,Ee],["L",ee+Oe,Ee])),this.outline[he]({d:fe})}drawMasks(B,ee,oe,he){let be,Ce,Oe,Se,$e=this.left,ke=this.top,Re=this.height;oe?(Oe=[$e,$e,$e],Se=[ke,ke+B,ke+ee],Ce=[Re,Re,Re],be=[B,ee-B,this.size-ee]):(Oe=[$e,$e+B,$e+ee],Se=[ke,ke,ke],Ce=[B,ee-B,this.size-ee],be=[Re,Re,Re]),this.shades.forEach((Be,Ee)=>{Be[he]({x:Oe[Ee],y:Se[Ee],width:Ce[Ee],height:be[Ee]})})}renderElements(){let B=this,ee=B.navigatorOptions,oe=ee.maskInside,he=B.chart,be=he.inverted,Ce=he.renderer,Oe={cursor:be?"ns-resize":"ew-resize"},Se=B.navigatorGroup=Ce.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!oe,oe,!oe].forEach(($e,ke)=>{let Re=Ce.rect().addClass("highcharts-navigator-mask"+(ke===1?"-inside":"-outside")).add(Se);he.styledMode||(Re.attr({fill:$e?ee.maskFill:"rgba(0,0,0,0)"}),ke===1&&Re.css(Oe)),B.shades[ke]=Re}),B.outline=Ce.path().addClass("highcharts-navigator-outline").add(Se),he.styledMode||B.outline.attr({"stroke-width":ee.outlineWidth,stroke:ee.outlineColor}),ee.handles&&ee.handles.enabled){let $e=ee.handles,{height:ke,width:Re}=$e;[0,1].forEach(Be=>{B.handles[Be]=Ce.symbol($e.symbols[Be],-Re/2-1,0,Re,ke,$e),he.inverted&&B.handles[Be].attr({rotation:90,rotationOriginX:Math.floor(-Re/2),rotationOriginY:(ke+Re)/2}),B.handles[Be].attr({zIndex:7-Be}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][Be]).add(Se),he.styledMode||B.handles[Be].attr({fill:$e.backgroundColor,stroke:$e.borderColor,"stroke-width":$e.lineWidth}).css(Oe)})}}update(B){(this.series||[]).forEach(ee=>{ee.baseSeries&&delete ee.baseSeries.navigatorSeries}),this.destroy(),_e(!0,this.chart.options.navigator,B),this.init(this.chart)}render(B,ee,oe,he){let be=this.chart,Ce=this.xAxis,Oe=Ce.pointRange||0,Se=Ce.navigatorAxis.fake?be.xAxis[0]:Ce,$e=this.navigatorEnabled,ke=this.rendered,Re=be.inverted,Be=be.xAxis[0].minRange,Ee=be.xAxis[0].options.maxRange,Pe=this.scrollButtonSize,Ie,Fe,fe,ae=this.scrollbarHeight,ue,xe;if(this.hasDragged&&!$(oe))return;if(B=D(B-Oe/2),ee=D(ee+Oe/2),!me(B)||!me(ee)){if(!ke)return;oe=0,he=ge(Ce.width,Se.width)}this.left=ge(Ce.left,be.plotLeft+Pe+(Re?be.plotWidth:0));let Ae=this.size=ue=ge(Ce.len,(Re?be.plotHeight:be.plotWidth)-2*Pe);Ie=Re?ae:ue+2*Pe,oe=ge(oe,Ce.toPixels(B,!0)),he=ge(he,Ce.toPixels(ee,!0)),me(oe)&&Math.abs(oe)!==1/0||(oe=0,he=Ie);let De=Ce.toValue(oe,!0),ze=Ce.toValue(he,!0),je=Math.abs(D(ze-De));jeEe&&(this.grabbedLeft?oe=Ce.toPixels(ze-Ee-Oe,!0):this.grabbedRight&&(he=Ce.toPixels(De+Ee+Oe,!0))),this.zoomedMax=T(Math.max(oe,he),0,Ae),this.zoomedMin=T(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(oe,he),0,Ae),this.range=this.zoomedMax-this.zoomedMin,Ae=Math.round(this.zoomedMax);let Ke=Math.round(this.zoomedMin);$e&&(this.navigatorGroup.attr({visibility:"inherit"}),xe=ke&&!this.hasDragged?"animate":"attr",this.drawMasks(Ke,Ae,Re,xe),this.drawOutline(Ke,Ae,Re,xe),this.navigatorOptions.handles.enabled&&(this.drawHandle(Ke,0,Re,xe),this.drawHandle(Ae,1,Re,xe))),this.scrollbar&&(Re?(fe=this.top-Pe,Fe=this.left-ae+($e||!Se.opposite?0:(Se.titleOffset||0)+Se.axisTitleMargin),ae=ue+2*Pe):(fe=this.top+($e?this.height:-ae),Fe=this.left-Pe),this.scrollbar.position(Fe,fe,Ie,ae),this.scrollbar.setRange(this.zoomedMin/(ue||1),this.zoomedMax/(ue||1))),this.rendered=!0,ne(this,"afterRender")}addMouseEvents(){let B=this,ee=B.chart,oe=ee.container,he=[],be,Ce;B.mouseMoveHandler=be=function(Oe){B.onMouseMove(Oe)},B.mouseUpHandler=Ce=function(Oe){B.onMouseUp(Oe)},(he=B.getPartsEvents("mousedown")).push(E(ee.renderTo,"mousemove",be),E(oe.ownerDocument,"mouseup",Ce),E(ee.renderTo,"touchmove",be),E(oe.ownerDocument,"touchend",Ce)),he.concat(B.getPartsEvents("touchstart")),B.eventsToUnbind=he,B.series&&B.series[0]&&he.push(E(B.series[0].xAxis,"foundExtremes",function(){ee.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(B){let ee=this,oe=[];return["shades","handles"].forEach(function(he){ee[he].forEach(function(be,Ce){oe.push(E(be.element,B,function(Oe){ee[he+"Mousedown"](Oe,Ce)}))})}),oe}shadesMousedown(B,ee){B=this.chart.pointer?.normalize(B)||B;let oe=this.chart,he=this.xAxis,be=this.zoomedMin,Ce=this.size,Oe=this.range,Se=this.left,$e=B.chartX,ke,Re,Be,Ee;oe.inverted&&($e=B.chartY,Se=this.top),ee===1?(this.grabbedCenter=$e,this.fixedWidth=Oe,this.dragOffset=$e-be):(Ee=$e-Se-Oe/2,ee===0?Ee=Math.max(0,Ee):ee===2&&Ee+Oe>=Ce&&(Ee=Ce-Oe,this.reversedExtremes?(Ee-=Oe,Re=this.getUnionExtremes().dataMin):ke=this.getUnionExtremes().dataMax),Ee!==be&&(this.fixedWidth=Oe,$((Be=he.navigatorAxis.toFixedRange(Ee,Ee+Oe,Re,ke)).min)&&ne(this,"setRange",{min:Math.min(Be.min,Be.max),max:Math.max(Be.min,Be.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(B,ee){B=this.chart.pointer?.normalize(B)||B;let oe=this.chart,he=oe.xAxis[0],be=this.reversedExtremes;ee===0?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=be?he.min:he.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=be?he.max:he.min),oe.setFixedRange(void 0)}onMouseMove(B){let ee=this,oe=ee.chart,he=ee.navigatorSize,be=ee.range,Ce=ee.dragOffset,Oe=oe.inverted,Se=ee.left,$e;(!B.touches||B.touches[0].pageX!==0)&&($e=(B=oe.pointer?.normalize(B)||B).chartX,Oe&&(Se=ee.top,$e=B.chartY),ee.grabbedLeft?(ee.hasDragged=!0,ee.render(0,0,$e-Se,ee.otherHandlePos)):ee.grabbedRight?(ee.hasDragged=!0,ee.render(0,0,ee.otherHandlePos,$e-Se)):ee.grabbedCenter&&(ee.hasDragged=!0,$ehe+Ce-be&&($e=he+Ce-be),ee.render(0,0,$e-Ce,$e-Ce+be)),ee.hasDragged&&ee.scrollbar&&ge(ee.scrollbar.options.liveRedraw,!O&&!this.chart.boosted)&&(B.DOMType=B.type,setTimeout(function(){ee.onMouseUp(B)},0)))}onMouseUp(B){let ee,oe,he,be,Ce,Oe,Se=this.chart,$e=this.xAxis,ke=this.scrollbar,Re=B.DOMEvent||B,Be=Se.inverted,Ee=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!ke||!ke.hasDragged)||B.trigger==="scrollbar")&&(he=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?be=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(Ce=this.fixedExtreme),this.zoomedMax===this.size&&(Ce=this.reversedExtremes?he.dataMin:he.dataMax),this.zoomedMin===0&&(be=this.reversedExtremes?he.dataMax:he.dataMin),$((Oe=$e.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,be,Ce)).min)&&ne(this,"setRange",{min:Math.min(Oe.min,Oe.max),max:Math.max(Oe.min,Oe.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:Re}})),B.DOMType!=="mousemove"&&B.DOMType!=="touchmove"&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&me(this.zoomedMin)&&me(this.zoomedMax)&&(oe=Math.round(this.zoomedMin),ee=Math.round(this.zoomedMax),this.shades&&this.drawMasks(oe,ee,Be,Ee),this.outline&&this.drawOutline(oe,ee,Be,Ee),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(oe,0,Be,Ee),this.drawHandle(ee,1,Be,Ee)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(B){B()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let B=this.baseSeries||[];this.navigatorEnabled&&B[0]&&(this.navigatorOptions.adaptToUpdatedData!==!1&&B.forEach(function(ee){de(ee,"updatedData",this.updatedDataHandler)},this),B[0].xAxis&&de(B[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(B){let ee=B.options,oe=ee.navigator||{},he=oe.enabled,be=ee.scrollbar||{},Ce=be.enabled,Oe=he&&oe.height||0,Se=Ce&&be.height||0,$e=be.buttonsEnabled&&Se||0;this.handles=[],this.shades=[],this.chart=B,this.setBaseSeries(),this.height=Oe,this.scrollbarHeight=Se,this.scrollButtonSize=$e,this.scrollbarEnabled=Ce,this.navigatorEnabled=he,this.navigatorOptions=oe,this.scrollbarOptions=be,this.opposite=ge(oe.opposite,!!(!he&&B.inverted));let ke=this,Re=ke.baseSeries,Be=B.xAxis.length,Ee=B.yAxis.length,Pe=Re&&Re[0]&&Re[0].xAxis||B.xAxis[0]||{options:{}};if(B.isDirtyBox=!0,ke.navigatorEnabled?(ke.xAxis=new o(B,_e({breaks:Pe.options.breaks,ordinal:Pe.options.ordinal,overscroll:Pe.options.overscroll},oe.xAxis,{type:"datetime",index:Be,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},B.inverted?{offsets:[$e,0,-$e,0],width:Oe}:{offsets:[0,-$e,0,$e],height:Oe}),"xAxis"),ke.yAxis=new o(B,_e(oe.yAxis,{alignTicks:!1,offset:0,index:Ee,isInternal:!0,reversed:ge(oe.yAxis&&oe.yAxis.reversed,B.yAxis[0]&&B.yAxis[0].reversed,!1),zoomEnabled:!1},B.inverted?{width:Oe}:{height:Oe}),"yAxis"),Re||oe.series.data?ke.updateNavigatorSeries(!1):B.series.length===0&&(ke.unbindRedraw=E(B,"beforeRedraw",function(){B.series.length>0&&!ke.series&&(ke.setBaseSeries(),ke.unbindRedraw())})),ke.reversedExtremes=B.inverted&&!ke.xAxis.reversed||!B.inverted&&ke.xAxis.reversed,ke.renderElements(),ke.addMouseEvents()):(ke.xAxis={chart:B,navigatorAxis:{fake:!0},translate:function(Ie,Fe){let fe=B.xAxis[0],ae=fe.getExtremes(),ue=fe.len-2*$e,xe=pe("min",fe.options.min,ae.dataMin),Ae=pe("max",fe.options.max,ae.dataMax)-xe;return Fe?Ie*Ae/ue+xe:ue*(Ie-xe)/Ae},toPixels:function(Ie){return this.translate(Ie)},toValue:function(Ie){return this.translate(Ie,!0)}},ke.xAxis.navigatorAxis.axis=ke.xAxis,ke.xAxis.navigatorAxis.toFixedRange=u.prototype.toFixedRange.bind(ke.xAxis.navigatorAxis)),B.options.scrollbar.enabled){let Ie=_e(B.options.scrollbar,{vertical:B.inverted});!me(Ie.margin)&&ke.navigatorEnabled&&(Ie.margin=B.inverted?-3:3),B.scrollbar=ke.scrollbar=new _(B.renderer,Ie,B),E(ke.scrollbar,"changed",function(Fe){let fe=ke.size,ae=fe*this.to,ue=fe*this.from;ke.hasDragged=ke.scrollbar.hasDragged,ke.render(0,0,ue,ae),this.shouldUpdateExtremes(Fe.DOMType)&&setTimeout(function(){ke.onMouseUp(Fe)})})}ke.addBaseSeriesEvents(),ke.addChartEvents()}getUnionExtremes(B){let ee,oe=this.chart.xAxis[0],he=this.xAxis,be=he.options,Ce=oe.options;return B&&oe.dataMin===null||(ee={dataMin:ge(be&&be.min,pe("min",Ce.min,oe.dataMin,he.dataMin,he.min)),dataMax:ge(be&&be.max,pe("max",Ce.max,oe.dataMax,he.dataMax,he.max))}),ee}setBaseSeries(B,ee){let oe=this.chart,he=this.baseSeries=[];B=B||oe.options&&oe.options.navigator.baseSeries||(oe.series.length?ie(oe.series,be=>!be.options.isInternal).index:0),(oe.series||[]).forEach((be,Ce)=>{!be.options.isInternal&&(be.options.showInNavigator||(Ce===B||be.options.id===B)&&be.options.showInNavigator!==!1)&&he.push(be)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,ee)}updateNavigatorSeries(B,ee){let oe=this,he=oe.chart,be=oe.baseSeries,Ce={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},Oe=oe.series=(oe.series||[]).filter(Be=>{let Ee=Be.baseSeries;return!(0>be.indexOf(Ee))||(Ee&&(de(Ee,"updatedData",oe.updatedDataHandler),delete Ee.navigatorSeries),Be.chart&&Be.destroy(),!1)}),Se,$e,ke=oe.navigatorOptions.series,Re;be&&be.length&&be.forEach(Be=>{let Ee=Be.navigatorSeries,Pe=se({color:Be.color,visible:Be.visible},le(ke)?S.navigator.series:ke);if(Ee&&oe.navigatorOptions.adaptToUpdatedData===!1)return;Ce.name="Navigator "+be.length,Re=(Se=Be.options||{}).navigatorOptions||{},Pe.dataLabels=ve(Pe.dataLabels),($e=_e(Se,Ce,Pe,Re)).pointRange=ge(Pe.pointRange,Re.pointRange,S.plotOptions[$e.type||"line"].pointRange);let Ie=Re.data||Pe.data;oe.hasNavigatorData=oe.hasNavigatorData||!!Ie,$e.data=Ie||Se.data&&Se.data.slice(0),Ee&&Ee.options?Ee.update($e,ee):(Be.navigatorSeries=he.initSeries($e),he.setSortedData(),Be.navigatorSeries.baseSeries=Be,Oe.push(Be.navigatorSeries))}),(ke.data&&!(be&&be.length)||le(ke))&&(oe.hasNavigatorData=!1,(ke=ve(ke)).forEach((Be,Ee)=>{Ce.name="Navigator "+(Oe.length+1),($e=_e(S.navigator.series,{color:he.series[Ee]&&!he.series[Ee].options.isInternal&&he.series[Ee].color||he.options.colors[Ee]||he.options.colors[0]},Ce,Be)).data=Be.data,$e.data&&(oe.hasNavigatorData=!0,Oe.push(he.initSeries($e)))})),B&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let B=this,ee=B.baseSeries||[];ee[0]&&ee[0].xAxis&&ee[0].eventsToUnbind.push(E(ee[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),ee.forEach(oe=>{oe.eventsToUnbind.push(E(oe,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),oe.eventsToUnbind.push(E(oe,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),this.navigatorOptions.adaptToUpdatedData!==!1&&oe.xAxis&&oe.eventsToUnbind.push(E(oe,"updatedData",this.updatedDataHandler)),oe.eventsToUnbind.push(E(oe,"remove",function(){this.navigatorSeries&&(H(B.series,this.navigatorSeries),$(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(B){return this.baseSeries.reduce(function(ee,oe){return Math.min(ee,oe.xData&&oe.xData.length?oe.xData[0]:ee)},B)}modifyNavigatorAxisExtremes(){let B=this.xAxis;if(B.getExtremes!==void 0){let ee=this.getUnionExtremes(!0);ee&&(ee.dataMin!==B.min||ee.dataMax!==B.max)&&(B.min=ee.dataMin,B.max=ee.dataMax)}}modifyBaseAxisExtremes(){let B,ee,oe=this.chart.navigator,he=this.getExtremes(),be=he.min,Ce=he.max,Oe=he.dataMin,Se=he.dataMax,$e=Ce-be,ke=oe.stickToMin,Re=oe.stickToMax,Be=ge(this.ordinal?.convertOverscroll(this.options.overscroll),0),Ee=oe.series&&oe.series[0],Pe=!!this.setExtremes;!(this.eventArgs&&this.eventArgs.trigger==="rangeSelectorButton")&&(ke&&(B=(ee=Oe)+$e),Re&&(B=Se+Be,ke||(ee=Math.max(Oe,B-$e,oe.getBaseSeriesMin(Ee&&Ee.xData?Ee.xData[0]:-Number.MAX_VALUE)))),Pe&&(ke||Re)&&me(ee)&&(this.min=this.userMin=ee,this.max=this.userMax=B)),oe.stickToMin=oe.stickToMax=null}updatedDataHandler(){let B=this.chart.navigator,ee=this.navigatorSeries,oe=B.reversedExtremes?Math.round(B.zoomedMin)===0:Math.round(B.zoomedMax)>=Math.round(B.size);B.stickToMax=ge(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,oe),B.stickToMin=B.shouldStickToMin(this,B),ee&&!B.hasNavigatorData&&(ee.options.pointStart=this.xData[0],ee.setData(this.options.data,!1,null,!1))}shouldStickToMin(B,ee){let oe=ee.getBaseSeriesMin(B.xData[0]),he=B.xAxis,be=he.max,Ce=he.min,Oe=he.options.range;return!!(me(be)&&me(Ce))&&(Oe&&be-oe>0?be-oe{B.destroy&&B.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(B=>{this[B]&&this[B].destroy&&this[B].destroy(),this[B]=null}),[this.handles].forEach(B=>{I(B)})}}return te}),n(r,"Core/Axis/OrdinalAxis.js",[r["Core/Axis/Axis.js"],r["Core/Globals.js"],r["Core/Series/Series.js"],r["Core/Utilities.js"]],function(o,a,l,c){var u;let{addEvent:g,correctFloat:_,css:x,defined:S,error:O,isNumber:E,pick:T,timeUnits:D,isString:$}=c;return function(I){function H(N,B,ee,oe,he=[],be=0,Ce){let Oe={},Se=this.options.tickPixelInterval,$e=this.chart.time,ke=[],Re,Be,Ee,Pe,Ie,Fe=0,fe=[],ae=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!he||he.length<3||B===void 0)return $e.getTimeTicks.apply($e,arguments);let ue=he.length;for(Re=0;Reee,he[Re]5*be||Ie){if(he[Re]>ae){for(Be=$e.getTimeTicks(N,he[Fe],he[Re],oe);Be.length&&Be[0]<=ae;)Be.shift();Be.length&&(ae=Be[Be.length-1]),ke.push(fe.length),fe=fe.concat(Be)}Fe=Re+1}if(Ie)break}if(Be){if(Pe=Be.info,Ce&&Pe.unitRange<=D.hour){for(Fe=1,Re=fe.length-1;FeWe-Ye),(Ze=De[Math.floor(De.length/2)])<.6*Se&&(Ze=null),Ne=fe[xe-1]>ee?xe-1:xe,Ke=void 0;Ne--;)Ge=Math.abs(Ke-(je=Ae[Ne])),Ke&&Ge<.8*Se&&(Ze===null||Ge<.8*Ze)?(Oe[fe[Ne]]&&!Oe[fe[Ne+1]]?(ze=Ne+1,Ke=je):ze=Ne,fe.splice(ze,1)):Ke=je}return fe}function se(N){let B=this.ordinal.positions;if(!B)return N;let ee=B.length-1,oe;return N<0?N=B[0]:N>ee?N=B[ee]:(ee=Math.floor(N),oe=N-ee),oe!==void 0&&B[ee]!==void 0?B[ee]+(oe?oe*(B[ee+1]-B[ee]):0):N}function ie(N){let B=this.ordinal,ee=this.old?this.old.min:this.min,oe=this.old?this.old.transA:this.transA,he=B.getExtendedPositions();if(he&&he.length){let be=_((N-ee)*oe+this.minPixelPadding),Ce=_(B.getIndexOfPoint(be,he)),Oe=_(Ce%1);if(Ce>=0&&Ce<=he.length-1){let Se=he[Math.floor(Ce)],$e=he[Math.ceil(Ce)];return he[Math.floor(Ce)]+Oe*($e-Se)}}return N}function ne(N,B){let ee=I.Additions.findIndexOf(N,B,!0);if(N[ee]===B)return ee;let oe=(B-N[ee])/(N[ee+1]-N[ee]);return ee+oe}function le(){this.ordinal||(this.ordinal=new I.Additions(this))}function me(){let{eventArgs:N,options:B}=this;if(this.isXAxis&&S(B.overscroll)&&B.overscroll!==0&&E(this.max)&&E(this.min)&&(this.options.ordinal&&!this.ordinal.originalOrdinalRange&&this.ordinal.getExtendedPositions(!1),this.max===this.dataMax&&(N?.trigger!=="pan"||this.isInternal)&&N?.trigger!=="navigator")){let ee=this.ordinal.convertOverscroll(B.overscroll);this.max+=ee,!this.isInternal&&S(this.userMin)&&N?.trigger!=="mousewheel"&&(this.min+=ee)}}function _e(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)}function ge(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function de(N){let B=this.xAxis[0],ee=B.ordinal.convertOverscroll(B.options.overscroll),oe=N.originalEvent.chartX,he=this.options.chart.panning,be=!1;if(he&&he.type!=="y"&&B.options.ordinal&&B.series.length){let Ce,Oe,Se=this.mouseDownX,$e=B.getExtremes(),ke=$e.dataMin,Re=$e.dataMax,Be=$e.min,Ee=$e.max,Pe=this.hoverPoints,Ie=B.closestPointRange||B.ordinal&&B.ordinal.overscrollPointsRange,Fe=Math.round((Se-oe)/(B.translationSlope*(B.ordinal.slope||Ie))),fe=B.ordinal.getExtendedPositions(),ae={ordinal:{positions:fe,extendedOrdinalPositions:fe}},ue=B.index2val,xe=B.val2lin;if(Be<=ke&&Fe<0||Ee+ee>=Re&&Fe>0)return;ae.ordinal.positions?Math.abs(Fe)>1&&(Pe&&Pe.forEach(function(Ae){Ae.setState()}),Re>(Oe=ae.ordinal.positions)[Oe.length-1]&&Oe.push(Re),this.setFixedRange(Ee-Be),(Ce=B.navigatorAxis.toFixedRange(void 0,void 0,ue.apply(ae,[xe.apply(ae,[Be,!0])+Fe]),ue.apply(ae,[xe.apply(ae,[Ee,!0])+Fe]))).min>=Math.min($e.dataMin,Be)&&Ce.max<=Math.max(Re,Ee)+ee&&B.setExtremes(Ce.min,Ce.max,!0,!1,{trigger:"pan"}),this.mouseDownX=oe,x(this.container,{cursor:"move"})):be=!0}else be=!0;be||he&&/y/.test(he.type)?ee&&(B.max=B.dataMax+ee):N.preventDefault()}function ve(){let N=this.xAxis;N&&N.options.ordinal&&(delete N.ordinal.index,delete N.ordinal.originalOrdinalRange)}function pe(N,B){let ee,oe=this.ordinal,he=oe.positions,be=oe.slope,Ce;if(!he)return N;let Oe=he.length;if(he[0]<=N&&he[Oe-1]>=N)ee=ne(he,N);else{if(!((Ce=oe.getExtendedPositions&&oe.getExtendedPositions())&&Ce.length))return N;let Se=Ce.length;be||(be=(Ce[Se-1]-Ce[0])/Se);let $e=ne(Ce,he[0]);if(N>=Ce[0]&&N<=Ce[Se-1])ee=ne(Ce,N)-$e;else{if(!B)return N;ee=N0&&Ae.options.id!=="highcharts-navigator-series"&&Ae.processedXData.length>1&&(ae=xe!==Ae.processedXData[1]-Ae.processedXData[0]),xe=Ae.processedXData[1]-Ae.processedXData[0],Ae.boosted&&(ue=Ae.boosted),Ae.reserveSpace()&&(Ae.takeOrdinalPosition!==!1||Ce)&&(Se=(Ie=Ie.concat(Ae.processedXData)).length,Ie.sort(function(ze,je){return ze-je}),Fe=Math.min(Fe,T(Ae.closestPointRange,Fe)),Se)){for(De=0;De2){for(ke=Ie[1]-Ie[0],Pe=Se-1;Pe--&&!fe;)Ie[Pe+1]-Ie[Pe]!==ke&&(fe=!0);!B.options.keepOrdinalPadding&&(Ie[0]-he>ke||be-Ie[Ie.length-1]>ke)&&(fe=!0)}else B.options.overscroll&&(Se===2?Fe=Ie[1]-Ie[0]:Se===1?(Fe=B.ordinal.convertOverscroll(B.options.overscroll),Ie=[Ie[0],Ie[0]+Fe]):Fe=ee.overscrollPointsRange);fe||B.forceOrdinal?(B.options.overscroll&&(ee.overscrollPointsRange=Fe,Ie=Ie.concat(ee.getOverscrollPositions())),ee.positions=Ie,Re=B.ordinal2lin(Math.max(he,Ie[0]),!0),Be=Math.max(B.ordinal2lin(Math.min(be,Ie[Ie.length-1]),!0),1),ee.slope=Ee=(be-he)/(Be-Re),ee.offset=he-Re*Ee):(ee.overscrollPointsRange=T(B.closestPointRange,ee.overscrollPointsRange),ee.positions=B.ordinal.slope=ee.offset=void 0)}B.isOrdinal=Oe&&fe,ee.groupIntervalFactor=null}static findIndexOf(B,ee,oe){let he=0,be=B.length-1,Ce;for(;heBe.x>=ke&&Be.x<=Re)};he.series.forEach($e=>{let ke=$e.points?.[0];S(ke?.plotX)&&(ke.plotXpe()),I.splice(ge,1);return}}}function me(){let ge=this.rangeSelector;if(ge){let de=ge.getHeight();this.extraTopMargin&&(this.plotTop+=de),this.extraBottomMargin&&(this.marginBottom+=de)}}function _e(ge){let de=ge.options.rangeSelector,ve=this.extraBottomMargin,pe=this.extraTopMargin,te=this.rangeSelector;if(de&&de.enabled&&!S(te)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=te=new u(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,te){let N=de&&de.verticalAlign||te.options&&te.options.verticalAlign;te.options.floating||(N==="bottom"?this.extraBottomMargin=!0:N==="middle"||(this.extraTopMargin=!0)),(this.extraBottomMargin!==ve||this.extraTopMargin!==pe)&&(this.isDirtyBox=!0)}}return{compose:function(ge,de,ve){if(u=ve,$(_,"RangeSelector")){let pe=de.prototype;ge.prototype.minFromRange=H,x(de,"afterGetContainer",se),x(de,"beforeRender",ie),x(de,"destroy",le),x(de,"getMargins",me),x(de,"redraw",ne),x(de,"update",_e),pe.callbacks.push(ne),O(g,{rangeSelector:l.rangeSelector}),O(g.lang,l.lang)}}}}),n(r,"Stock/RangeSelector/RangeSelector.js",[r["Core/Axis/Axis.js"],r["Core/Defaults.js"],r["Core/Globals.js"],r["Stock/RangeSelector/RangeSelectorComposition.js"],r["Core/Renderer/SVG/SVGElement.js"],r["Core/Utilities.js"],r["Core/Axis/OrdinalAxis.js"]],function(o,a,l,c,u,g,_){let{defaultOptions:x}=a,{addEvent:S,createElement:O,css:E,defined:T,destroyObjectProperties:D,discardElement:$,extend:I,fireEvent:H,isNumber:se,merge:ie,objectEach:ne,pad:le,pick:me,pInt:_e,splat:ge}=g;class de{static compose(pe,te){c.compose(pe,te,de)}constructor(pe){this.buttonOptions=de.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.init(pe)}clickButton(pe,te){let N=this.chart,B=this.buttonOptions[pe],ee=N.xAxis[0],oe=N.scroller&&N.scroller.getUnionExtremes()||ee||{},he=B.type,be=B.dataGrouping,Ce=oe.dataMin,Oe=oe.dataMax,Se,$e=ee&&Math.round(Math.min(ee.max,me(Oe,ee.max))),ke,Re=B._range,Be,Ee,Pe,Ie=!0;if(Ce!==null&&Oe!==null){if(this.setSelected(pe),be&&(this.forcedDataGrouping=!0,o.prototype.setDataGrouping.call(ee||{chart:this.chart},be,!1),this.frozenStates=B.preserveDataGrouping),he==="month"||he==="year")ee?(Ee={range:B,max:$e,chart:N,dataMin:Ce,dataMax:Oe},Se=ee.minFromRange.call(Ee),se(Ee.newMax)&&($e=Ee.newMax),Ie=!1):Re=B;else if(Re)$e=Math.min((Se=Math.max($e-Re,Ce))+Re,Oe),Ie=!1;else if(he==="ytd")if(ee)(Oe===void 0||Ce===void 0)&&(Ce=Number.MAX_VALUE,Oe=Number.MIN_VALUE,N.series.forEach(Fe=>{let fe=Fe.xData;fe&&(Ce=Math.min(fe[0],Ce),Oe=Math.max(fe[fe.length-1],Oe))}),te=!1),Se=Be=(Pe=this.getYTDExtremes(Oe,Ce,N.time.useUTC)).min,$e=Pe.max;else{this.deferredYTDClick=pe;return}else he==="all"&&ee&&(N.navigator&&N.navigator.baseSeries[0]&&(N.navigator.baseSeries[0].xAxis.options.range=void 0),Se=Ce,$e=Oe);if(Ie&&B._offsetMin&&T(Se)&&(Se+=B._offsetMin),B._offsetMax&&T($e)&&($e+=B._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=pe+1),ee)ee.setExtremes(Se,$e,me(te,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:B}),N.setFixedRange(B._range);else{ke=ge(N.options.xAxis)[0];let Fe=S(N,"afterGetAxes",function(){let fe=N.xAxis[0];fe.range=fe.options.range=Re,fe.min=fe.options.min=Be});S(N,"load",function(){let fe=N.xAxis[0];N.setFixedRange(B._range),fe.options.range=ke.range,fe.options.min=ke.min,Fe()})}H(this,"afterBtnClick")}}setSelected(pe){this.selected=this.options.selected=pe}init(pe){let te=this,N=pe.options.rangeSelector,B=N.buttons||te.defaultButtons.slice(),ee=N.selected,oe=function(){let he=te.minInput,be=te.maxInput;he&&he.blur&&H(he,"blur"),be&&be.blur&&H(be,"blur")};te.chart=pe,te.options=N,te.buttons=[],te.buttonOptions=B,this.eventsToUnbind=[],this.eventsToUnbind.push(S(pe.container,"mousedown",oe)),this.eventsToUnbind.push(S(pe,"resize",oe)),B.forEach(te.computeButtonRange),ee!==void 0&&B[ee]&&this.clickButton(ee,!1),this.eventsToUnbind.push(S(pe,"load",function(){pe.xAxis&&pe.xAxis[0]&&S(pe.xAxis[0],"setExtremes",function(he){se(this.max)&&se(this.min)&&this.max-this.min!==pe.fixedRange&&he.trigger!=="rangeSelectorButton"&&he.trigger!=="updatedData"&&te.forcedDataGrouping&&!te.frozenStates&&this.setDataGrouping(!1,!1)})})),this.createElements()}updateButtonStates(){let pe=this,te=this.chart,N=this.dropdown,B=this.dropdownLabel,ee=te.xAxis[0],oe=Math.round(ee.max-ee.min),he=!ee.hasVisibleSeries,be=24*36e5,Ce=te.scroller&&te.scroller.getUnionExtremes()||ee,Oe=Ce.dataMin,Se=Ce.dataMax,$e=pe.getYTDExtremes(Se,Oe,te.time.useUTC),ke=$e.min,Re=$e.max,Be=pe.selected,Ee=pe.options.allButtonsEnabled,Pe=Array(pe.buttonOptions.length).fill(0),Ie=se(Be),Fe=pe.buttons,fe=!1,ae=null;pe.buttonOptions.forEach((ue,xe)=>{let Ae=ue._range,De=ue.type,ze=ue.count||1,je=ue._offsetMax-ue._offsetMin,Ke=xe===Be,Ze=Ae>Se-Oe,Ge=AeAe&&(We=!0)}else(De==="month"||De==="year")&&oe+36e5>={month:28,year:365}[De]*be*ze-je&&oe-36e5<={month:31,year:366}[De]*be*ze+je?We=!0:De==="ytd"?(We=Re-ke+je===oe,Ne=!Ke):De==="all"&&(We=ee.max-ee.min>=Se-Oe);let Ye=!Ee&&!(fe&&De==="all")&&(Ze||Ge||he),Qe=fe&&De==="all"||!Ne&&We||Ke&&pe.frozenStates;Ye?Pe[xe]=3:Qe&&(!Ie||xe===Be)&&(ae=xe)}),ae!==null?(Pe[ae]=2,pe.setSelected(ae)):(pe.setSelected(),B&&(B.setState(0),B.attr({text:(x.lang.rangeSelectorZoom||"")+" \u25BE"})));for(let ue=0;ue6&&(oe.lastIndexOf("-")===oe.length-6||oe.lastIndexOf("+")===oe.length-6))){let he=new Date(B).getTimezoneOffset()/60;B+=he<=0?`+${le(-he)}:00`:`-${le(he)}:00`}}let ee=Date.parse(B);if(!se(ee)){let oe=pe.split("-");ee=Date.UTC(_e(oe[0]),_e(oe[1])-1,_e(oe[2]))}return N&&te&&se(ee)&&(ee+=N.getTimezoneOffset(ee)),ee}drawInput(pe){let{chart:te,div:N,inputGroup:B}=this,ee=this,oe=te.renderer.style||{},he=te.renderer,be=te.options.rangeSelector,Ce=x.lang,Oe=pe==="min";function Se(Pe){let{maxInput:Ie,minInput:Fe}=ee,fe=te.xAxis[0],ae=te.scroller?.getUnionExtremes()||fe,ue=ae.dataMin,xe=ae.dataMax,Ae=te.xAxis[0].getExtremes()[Pe],De=ee.getInputValue(Pe);se(De)&&De!==Ae&&(Oe&&Ie&&se(ue)?De>Number(Ie.getAttribute("data-hc-time"))?De=void 0:Dexe&&(De=xe)),De!==void 0&&fe.setExtremes(Oe?De:fe.min,Oe?fe.max:De,void 0,void 0,{trigger:"rangeSelectorInput"}))}let $e=Ce[Oe?"rangeSelectorFrom":"rangeSelectorTo"]||"",ke=he.label($e,0).addClass("highcharts-range-label").attr({padding:$e?2:0,height:$e?be.inputBoxHeight:0}).add(B),Re=he.label("",0).addClass("highcharts-range-input").attr({padding:2,width:be.inputBoxWidth,height:be.inputBoxHeight,"text-align":"center"}).on("click",function(){ee.showInput(pe),ee[pe+"Input"].focus()});te.styledMode||Re.attr({stroke:be.inputBoxBorderColor,"stroke-width":1}),Re.add(B);let Be=O("input",{name:pe,className:"highcharts-range-selector"},void 0,N);Be.setAttribute("type",function(Pe){if(Pe.indexOf("%L")!==-1)return"text";let Ie=["a","A","d","e","w","b","B","m","o","y","Y"].some(fe=>Pe.indexOf("%"+fe)!==-1),Fe=["H","k","I","l","M","S"].some(fe=>Pe.indexOf("%"+fe)!==-1);return Ie&&Fe?"datetime-local":Ie?"date":Fe?"time":"text"}(be.inputDateFormat||"%e %b %Y")),te.styledMode||(ke.css(ie(oe,be.labelStyle)),Re.css(ie({color:"#333333"},oe,be.inputStyle)),E(Be,I({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:oe.fontSize,fontFamily:oe.fontFamily,top:"-9999em"},be.inputStyle))),Be.onfocus=()=>{ee.showInput(pe)},Be.onblur=()=>{Be===l.doc.activeElement&&Se(pe),ee.hideInput(pe),ee.setInputValue(pe),Be.blur()};let Ee=!1;return Be.onchange=()=>{Ee||(Se(pe),ee.hideInput(pe),Be.blur())},Be.onkeypress=Pe=>{Pe.keyCode===13&&Se(pe)},Be.onkeydown=Pe=>{Ee=!0,(Pe.key==="ArrowUp"||Pe.key==="ArrowDown"||Pe.key==="Tab")&&Se(pe)},Be.onkeyup=()=>{Ee=!1},{dateBox:Re,input:Be,label:ke}}getPosition(){let pe=this.chart,te=pe.options.rangeSelector,N=te.verticalAlign==="top"?pe.plotTop-pe.axisOffset[0]:0;return{buttonTop:N+te.buttonPosition.y,inputTop:N+te.inputPosition.y-10}}getYTDExtremes(pe,te,N){let B=this.chart.time,ee=new B.Date(pe),oe=B.get("FullYear",ee),he=N?B.Date.UTC(oe,0,1):+new B.Date(oe,0,1),be=ee.getTime();return{max:Math.min(pe||be,be),min:Math.max(te,he)}}createElements(){let pe=this.chart,te=pe.renderer,N=pe.container,B=pe.options,ee=B.rangeSelector,oe=ee.inputEnabled,he=me(B.chart.style?.zIndex,0)+1;if(ee.enabled!==!1&&(this.group=te.g("range-selector-group").attr({zIndex:7}).add(),this.div=O("div",void 0,{position:"relative",height:0,zIndex:he}),this.buttonOptions.length&&this.renderButtons(),N.parentNode&&N.parentNode.insertBefore(this.div,N),oe)){this.inputGroup=te.g("input-group").add(this.group);let be=this.drawInput("min");this.minDateBox=be.dateBox,this.minLabel=be.label,this.minInput=be.input;let Ce=this.drawInput("max");this.maxDateBox=Ce.dateBox,this.maxLabel=Ce.label,this.maxInput=Ce.input}}render(pe,te){let N=this.chart,B=N.options.rangeSelector,ee=B.inputEnabled;if(B.enabled!==!1){if(ee){this.setInputValue("min",pe),this.setInputValue("max",te);let oe=N.scroller&&N.scroller.getUnionExtremes()||N.xAxis[0]||{};if(T(oe.dataMin)&&T(oe.dataMax)){let he=N.xAxis[0].minRange||0;this.setInputExtremes("min",oe.dataMin,Math.min(oe.dataMax,this.getInputValue("max"))-he),this.setInputExtremes("max",Math.max(oe.dataMin,this.getInputValue("min"))+he,oe.dataMax)}if(this.inputGroup){let he=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(be=>{if(be){let{width:Ce}=be.getBBox();Ce&&(be.attr({x:he}),he+=Ce+B.inputSpacing)}})}}this.alignElements(),this.updateButtonStates()}}renderButtons(){let{buttons:pe,chart:te,options:N}=this,B=x.lang,ee=te.renderer,oe=ie(N.buttonTheme),he=oe&&oe.states,be=oe.width||28;delete oe.width,delete oe.states,this.buttonGroup=ee.g("range-selector-buttons").add(this.group);let Ce=this.dropdown=O("select",void 0,{position:"absolute",padding:0,border:0,cursor:"pointer",opacity:1e-4},this.div),Oe=te.userOptions.rangeSelector?.buttonTheme;this.dropdownLabel=ee.button("",0,0,()=>{},ie(oe,{"stroke-width":me(oe["stroke-width"],0),width:"auto",paddingLeft:me(N.buttonTheme.paddingLeft,Oe?.padding,8),paddingRight:me(N.buttonTheme.paddingRight,Oe?.padding,8)}),he&&he.hover,he&&he.select,he&&he.disabled).hide().add(this.group),S(Ce,"touchstart",()=>{Ce.style.fontSize="16px"});let Se=l.isMS?"mouseover":"mouseenter",$e=l.isMS?"mouseout":"mouseleave";S(Ce,Se,()=>{H(this.dropdownLabel.element,Se)}),S(Ce,$e,()=>{H(this.dropdownLabel.element,$e)}),S(Ce,"change",()=>{H(this.buttons[Ce.selectedIndex-1].element,"click")}),this.zoomText=ee.label(B.rangeSelectorZoom||"",0).attr({padding:N.buttonTheme.padding,height:N.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(N.labelStyle),oe["stroke-width"]=me(oe["stroke-width"],0)),O("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,Ce),this.buttonOptions.forEach((ke,Re)=>{O("option",{textContent:ke.title||ke.text},void 0,Ce),pe[Re]=ee.button(ke.text,0,0,Be=>{let Ee,Pe=ke.events&&ke.events.click;Pe&&(Ee=Pe.call(ke,Be)),Ee!==!1&&this.clickButton(Re),this.isActive=!0},oe,he&&he.hover,he&&he.select,he&&he.disabled).attr({"text-align":"center",width:be}).add(this.buttonGroup),ke.title&&pe[Re].attr("title",ke.title)})}alignElements(){let{buttonGroup:pe,buttons:te,chart:N,group:B,inputGroup:ee,options:oe,zoomText:he}=this,be=N.options,Ce=be.exporting&&be.exporting.enabled!==!1&&be.navigation&&be.navigation.buttonOptions,{buttonPosition:Oe,inputPosition:Se,verticalAlign:$e}=oe,ke=(Be,Ee)=>Ce&&this.titleCollision(N)&&$e==="top"&&Ee.align==="right"&&Ee.y-Be.getBBox().height-12<(Ce.y||0)+(Ce.height||0)+N.spacing[0]?-40:0,Re=N.plotLeft;if(B&&Oe&&Se){let Be=Oe.x-N.spacing[3];if(pe){if(this.positionButtons(),!this.initialButtonGroupWidth){let Ae=0;he&&(Ae+=he.getBBox().width+5),te.forEach((De,ze)=>{Ae+=De.width||0,ze!==te.length-1&&(Ae+=oe.buttonSpacing)}),this.initialButtonGroupWidth=Ae}Re-=N.spacing[3];let xe=ke(pe,Oe);this.alignButtonGroup(xe),this.buttonGroup?.translateY&&this.dropdownLabel.attr({y:this.buttonGroup.translateY}),B.placed=pe.placed=N.hasLoaded}let Ee=0;ee&&(Ee=ke(ee,Se),Se.align==="left"?Be=Re:Se.align==="right"&&(Be=-Math.max(N.axisOffset[1],-Ee)),ee.align({y:Se.y,width:ee.getBBox().width,align:Se.align,x:Se.x+Be-2},!0,N.spacingBox),ee.placed=N.hasLoaded),this.handleCollision(Ee),B.align({verticalAlign:$e},!0,N.spacingBox);let Pe=B.alignAttr.translateY,Ie=B.getBBox().height+20,Fe=0;if($e==="bottom"){let xe=N.legend&&N.legend.options;Fe=Pe-(Ie=Ie+(xe&&xe.verticalAlign==="bottom"&&xe.enabled&&!xe.floating?N.legend.legendHeight+me(xe.margin,10):0)-20)-(oe.floating?0:oe.y)-(N.titleOffset?N.titleOffset[2]:0)-10}$e==="top"?(oe.floating&&(Fe=0),N.titleOffset&&N.titleOffset[0]&&(Fe=N.titleOffset[0]),Fe+=N.margin[0]-N.spacing[0]||0):$e==="middle"&&(Se.y===Oe.y?Fe=Pe:(Se.y||Oe.y)&&(Se.y<0||Oe.y<0?Fe-=Math.min(Se.y,Oe.y):Fe=Pe-Ie)),B.translate(oe.x,oe.y+Math.floor(Fe));let{minInput:fe,maxInput:ae,dropdown:ue}=this;oe.inputEnabled&&fe&&ae&&(fe.style.marginTop=B.translateY+"px",ae.style.marginTop=B.translateY+"px"),ue&&(ue.style.marginTop=B.translateY+"px")}}alignButtonGroup(pe,te){let{chart:N,options:B,buttonGroup:ee}=this,{buttonPosition:oe}=B,he=N.plotLeft-N.spacing[3],be=oe.x-N.spacing[3];oe.align==="right"?be+=pe-he:oe.align==="center"&&(be-=he/2),ee&&ee.align({y:oe.y,width:me(te,this.initialButtonGroupWidth),align:oe.align,x:be},!0,N.spacingBox)}positionButtons(){let{buttons:pe,chart:te,options:N,zoomText:B}=this,ee=te.hasLoaded?"animate":"attr",{buttonPosition:oe}=N,he=te.plotLeft,be=he;B&&B.visibility!=="hidden"&&(B[ee]({x:me(he+oe.x,he)}),be+=oe.x+B.getBBox().width+5);for(let Ce=0,Oe=this.buttonOptions.length;Ce{let Se=0;return this.buttons.forEach($e=>{let ke=$e.getBBox();ke.width>Se&&(Se=ke.width)}),Se},Ce=Se=>{if(B?.alignOptions&&N){let $e=B.alignAttr.translateX+B.alignOptions.x-pe+B.getBBox().x+2,ke=B.alignOptions.width||0,Re=N.alignAttr.translateX+N.getBBox().x;return Re+Se>$e&&$e+ke>Re&&ee.y{B&&N&&B.attr({translateX:B.alignAttr.translateX+(te.axisOffset[1]>=-pe?0:-pe),translateY:B.alignAttr.translateY+N.getBBox().height+10})};if(N){if(oe==="always"){this.collapseButtons(),Ce(be())&&Oe();return}oe==="never"&&this.expandButtons()}B&&N?he.align===ee.align||Ce(this.initialButtonGroupWidth+20)?oe==="responsive"?(this.collapseButtons(),Ce(be())&&Oe()):Oe():oe==="responsive"&&this.expandButtons():N&&oe==="responsive"&&(this.initialButtonGroupWidth>te.plotWidth?this.collapseButtons():this.expandButtons())}collapseButtons(){let{buttons:pe,zoomText:te}=this;this.isCollapsed!==!0&&(this.isCollapsed=!0,te.hide(),pe.forEach(N=>void N.hide()),this.showDropdown())}expandButtons(){let{buttons:pe,zoomText:te}=this;this.isCollapsed!==!1&&(this.isCollapsed=!1,this.hideDropdown(),te.show(),pe.forEach(N=>void N.show()),this.positionButtons())}showDropdown(){let{buttonGroup:pe,chart:te,dropdownLabel:N,dropdown:B}=this;if(pe&&B){let{translateX:ee=0,translateY:oe=0}=pe,he=te.plotLeft+ee;N.attr({x:he,y:oe}).show(),E(B,{left:he+"px",top:oe+"px",visibility:"inherit"}),this.hasVisibleDropdown=!0}}hideDropdown(){let{dropdown:pe}=this;pe&&(this.dropdownLabel.hide(),E(pe,{visibility:"hidden",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){let pe=this.options,te=this.group,N=pe.inputPosition,B=pe.buttonPosition,ee=pe.y,oe=B.y,he=N.y,be=0;return pe.height?pe.height:(this.alignElements(),be=te?te.getBBox(!0).height+13+ee:0,(he<0&&oe<0||he>0&&oe>0)&&(be+=Math.abs(Math.min(he,oe))),be)}titleCollision(pe){return!(pe.options.title.text||pe.options.subtitle.text)}update(pe,te=!0){let N=this.chart;ie(!0,N.options.rangeSelector,pe),this.destroy(),this.init(N),te&&this.render()}destroy(){let pe=this,te=pe.minInput,N=pe.maxInput;pe.eventsToUnbind&&(pe.eventsToUnbind.forEach(B=>B()),pe.eventsToUnbind=void 0),D(pe.buttons),te&&(te.onfocus=te.onblur=te.onchange=null),N&&(N.onfocus=N.onblur=N.onchange=null),ne(pe,function(B,ee){B&&ee!=="chart"&&(B instanceof u?B.destroy():B instanceof window.HTMLElement&&$(B)),B!==de.prototype[ee]&&(pe[ee]=null)},this)}}return I(de.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),de}),n(r,"Core/Chart/StockChart.js",[r["Core/Chart/Chart.js"],r["Core/Templating.js"],r["Core/Defaults.js"],r["Stock/Navigator/NavigatorDefaults.js"],r["Stock/RangeSelector/RangeSelectorDefaults.js"],r["Stock/Scrollbar/ScrollbarDefaults.js"],r["Stock/Utilities/StockUtilities.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x){let{format:S}=a,{getOptions:O}=l,{setFixedRange:E}=_,{addEvent:T,clamp:D,crisp:$,defined:I,extend:H,find:se,isNumber:ie,isString:ne,merge:le,pick:me,splat:_e}=x;function ge(pe,te,N){return pe==="xAxis"?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0}:pe==="yAxis"?{labels:{y:-2},opposite:N.opposite??te.opposite??!0,showLastLabel:!!(te.categories||te.type==="category"),title:{text:N.title?.text!=="Values"?N.title?.text:null}}:{}}function de(pe,te){if(pe==="xAxis"){let N=me(te.navigator&&te.navigator.enabled,c.enabled,!0),B={type:"datetime",categories:void 0};return N&&(B.startOnTick=!1,B.endOnTick=!1),B}return{}}class ve extends o{init(te,N){let B=O(),ee=te.xAxis,oe=te.yAxis,he=me(te.navigator&&te.navigator.enabled,c.enabled,!0);te.xAxis=te.yAxis=void 0;let be=le({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x",mouseWheel:{type:"x"}}},navigator:{enabled:he},scrollbar:{enabled:me(g.enabled,!0)},rangeSelector:{enabled:me(u.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:me(B.tooltip&&B.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},te,{isStock:!0});te.xAxis=ee,te.yAxis=oe,be.xAxis=_e(te.xAxis||{}).map(Ce=>le(ge("xAxis",Ce,B.xAxis),Ce,de("xAxis",te))),be.yAxis=_e(te.yAxis||{}).map(Ce=>le(ge("yAxis",Ce,B.yAxis),Ce)),super.init(be,N)}createAxis(te,N){return N.axis=le(ge(te,N.axis,O()[te]),N.axis,de(te,this.userOptions)),super.createAxis(te,N)}}return T(o,"update",function(pe){let te=pe.options;"scrollbar"in te&&this.navigator&&(le(!0,this.options.scrollbar,te.scrollbar),this.navigator.update({}),delete te.scrollbar)}),function(pe){function te(Oe){if(!this.crosshair||!this.crosshair.label||!this.crosshair.label.enabled||!this.cross||!ie(this.min)||!ie(this.max))return;let Se=this.chart,$e=this.logarithmic,ke=this.crosshair.label,Re=this.horiz,Be=this.opposite,Ee=this.left,Pe=this.top,Ie=this.width,Fe=this.options.tickPosition==="inside",fe=this.crosshair.snap!==!1,ae=Oe.e||this.cross&&this.cross.e,ue=Oe.point,xe=this.crossLabel,Ae,De,ze=ke.format,je="",Ke,Ze=0,Ge=this.min,Ne=this.max;$e&&(Ge=$e.lin2log(this.min),Ne=$e.lin2log(this.max));let We=Re?"center":Be?this.labelAlign==="right"?"right":"left":this.labelAlign==="left"?"left":"center";xe||(xe=this.crossLabel=Se.renderer.label("",0,void 0,ke.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(ue&&ue.series?ue.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:ke.align||We,padding:me(ke.padding,8),r:me(ke.borderRadius,3),zIndex:2}).add(this.labelGroup),Se.styledMode||xe.attr({fill:ke.backgroundColor||ue&&ue.series&&ue.series.color||"#666666",stroke:ke.borderColor||"","stroke-width":ke.borderWidth||0}).css(H({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},ke.style||{}))),Re?(Ae=fe?(ue.plotX||0)+Ee:ae.chartX,De=Pe+(Be?0:this.height)):(Ae=Ee+this.offset+(Be?Ie:0),De=fe?(ue.plotY||0)+Pe:ae.chartY),ze||ke.formatter||(this.dateTime&&(je="%b %d, %Y"),ze="{value"+(je?":"+je:"")+"}");let Ye=fe?this.isXAxis?ue.x:ue.y:this.toValue(Re?ae.chartX:ae.chartY),Qe=ue&&ue.series?ue.series.isPointInside(ue):ie(Ye)&&Ye>Ge&&Ye=Ke.right&&(Ze=-(we+ye.width-Ke.right)),xe.attr({x:Ae+Ze,y:De,anchorX:Re?Ae:this.opposite?0:Se.chartWidth,anchorY:Re?this.opposite?Se.chartHeight:0:De+ye.height/2})}function N(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}function B(Oe){let Se=this.chart,$e=this.options,ke=Se._labelPanes=Se._labelPanes||{},Re=$e.labels;if(Se.options.isStock&&this.coll==="yAxis"){let Be=$e.top+","+$e.height;!ke[Be]&&Re.enabled&&(Re.distance===15&&this.side===1&&(Re.distance=0),Re.align===void 0&&(Re.align="right"),ke[Be]=this,Oe.align="right",Oe.preventDefault())}}function ee(){let Oe=this.chart,Se=this.options&&this.options.top+","+this.options.height;Se&&Oe._labelPanes&&Oe._labelPanes[Se]===this&&delete Oe._labelPanes[Se]}function oe(Oe){let Se=this,$e=Se.isLinked&&!Se.series&&Se.linkedParent?Se.linkedParent.series:Se.series,ke=Se.chart,Re=ke.renderer,Be=Se.left,Ee=Se.top,Pe=[],Ie=Oe.translatedValue,Fe=Oe.value,fe=Oe.force,ae,ue,xe,Ae,De=[],ze,je;if(ke.options.isStock&&Oe.acrossPanes!==!1&&Se.coll==="xAxis"||Se.coll==="yAxis"){for(let Ke of(Oe.preventDefault(),De=(Ze=>{let Ge=Ze==="xAxis"?"yAxis":"xAxis",Ne=Se.options[Ge];return ie(Ne)?[ke[Ge][Ne]]:ne(Ne)?[ke.get(Ne)]:$e.map(We=>We[Ge])})(Se.coll),Se.isXAxis?ke.yAxis:ke.xAxis))if(!I(Ke.options.id)||Ke.options.id.indexOf("navigator")===-1){let Ze=Ke.isXAxis?"yAxis":"xAxis";Se===(I(Ke.options[Ze])?ke[Ze][Ke.options[Ze]]:ke[Ze][0])&&De.push(Ke)}for(let Ke of(ze=De.length?[]:[Se.isXAxis?ke.yAxis[0]:ke.xAxis[0]],De))ze.indexOf(Ke)!==-1||se(ze,Ze=>Ze.pos===Ke.pos&&Ze.len===Ke.len)||ze.push(Ke);if(ie(je=me(Ie,Se.translate(Fe||0,void 0,void 0,Oe.old))))if(Se.horiz)for(let Ke of ze){let Ze;Ae=(ue=Ke.pos)+Ke.len,ae=xe=Math.round(je+Se.transB),fe!=="pass"&&(aeBe+Se.width)&&(fe?ae=xe=D(ae,Be,Be+Se.width):Ze=!0),Ze||Pe.push(["M",ae,ue],["L",xe,Ae])}else for(let Ke of ze){let Ze;xe=(ae=Ke.pos)+Ke.len,ue=Ae=Math.round(Ee+Se.height-je),fe!=="pass"&&(ueEe+Se.height)&&(fe?ue=Ae=D(ue,Ee,Ee+Se.height):Ze=!0),Ze||Pe.push(["M",ae,ue],["L",xe,Ae])}Oe.path=Pe.length>0?Re.crispPolyLine(Pe,Oe.lineWidth||1):void 0}}function he(Oe){if(this.chart.options.isStock){let Se;this.is("column")||this.is("columnrange")?Se={borderWidth:0,shadow:!1}:this.is("scatter")||this.is("sma")||(Se={marker:{enabled:!1,radius:2}}),Se&&(Oe.plotOptions[this.type]=le(Oe.plotOptions[this.type],Se))}}function be(){let Oe=this.chart,Se=this.options.dataGrouping;return this.allowDG!==!1&&Se&&me(Se.enabled,Oe.options.isStock)}function Ce(Oe,Se){for(let $e=0;$e\u25CF {series.name}
High: {point.high}
Low: {point.low}
Close: {point.close}
'},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),n(r,"Series/HLC/HLCSeries.js",[r["Series/HLC/HLCPoint.js"],r["Series/HLC/HLCSeriesDefaults.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l,c){let{column:u}=l.seriesTypes,{crisp:g,extend:_,merge:x}=c;class S extends u{extendStem(E,T,D){let $=E[0],I=E[1];typeof $[2]=="number"&&($[2]=Math.max(D+T,$[2])),typeof I[2]=="number"&&(I[2]=Math.min(D-T,I[2]))}getPointPath(E,T){let D=T.strokeWidth(),$=E.series,I=g(E.plotX||0,D),H=Math.round(E.shapeArgs.width/2),se=[["M",I,Math.round(E.yBottom)],["L",I,Math.round(E.plotHigh)]];if(E.close!==null){let ie=g(E.plotClose,D);se.push(["M",I,ie],["L",I+H,ie]),$.extendStem(se,D/2,ie)}return se}drawSinglePoint(E){let T=E.series,D=T.chart,$,I=E.graphic;E.plotY!==void 0&&(I||(E.graphic=I=D.renderer.path().add(T.group)),D.styledMode||I.attr(T.pointAttribs(E,E.selected&&"select")),$=T.getPointPath(E,I),I[I?"animate":"attr"]({d:$}).addClass(E.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs(E,T){let D=super.pointAttribs.call(this,E,T);return delete D.fill,D}toYData(E){return[E.high,E.low,E.close]}translate(){let E=this,T=E.yAxis,D=this.pointArrayMap&&this.pointArrayMap.slice()||[],$=D.map(I=>`plot${I.charAt(0).toUpperCase()+I.slice(1)}`);$.push("yBottom"),D.push("low"),super.translate.apply(E),E.points.forEach(function(I){D.forEach(function(H,se){let ie=I[H];ie!==null&&(E.dataModify&&(ie=E.dataModify.modifyValue(ie)),I[$[se]]=T.toPixels(ie,!0))}),I.tooltipPos[1]=I.plotHigh+T.pos-E.chart.plotTop})}}return S.defaultOptions=x(u.defaultOptions,a),_(S.prototype,{pointClass:o,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),l.registerSeriesType("hlc",S),S}),n(r,"Series/OHLC/OHLCPoint.js",[r["Core/Series/SeriesRegistry.js"]],function(o){let{seriesTypes:{hlc:a}}=o;class l extends a.prototype.pointClass{getClassName(){return super.getClassName.call(this)+(this.open\u25CF {series.name}
Open: {point.open}
High: {point.high}
Low: {point.low}
Close: {point.close}
'}}}),n(r,"Series/OHLC/OHLCSeries.js",[r["Core/Globals.js"],r["Series/OHLC/OHLCPoint.js"],r["Series/OHLC/OHLCSeriesDefaults.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l,c,u){let{composed:g}=o,{hlc:_}=c.seriesTypes,{addEvent:x,crisp:S,extend:O,merge:E,pushUnique:T}=u;function D(H){let se=H.options,ie=se.dataGrouping;ie&&se.useOhlcData&&se.id!=="highcharts-navigator-series"&&(ie.approximation="ohlc")}function $(H){let se=H.options;se.useOhlcData&&se.id!=="highcharts-navigator-series"&&O(this,{pointValKey:I.prototype.pointValKey,pointArrayMap:I.prototype.pointArrayMap,toYData:I.prototype.toYData})}class I extends _{static compose(se,...ie){T(g,"OHLCSeries")&&(x(se,"afterSetOptions",D),x(se,"init",$))}getPointPath(se,ie){let ne=super.getPointPath(se,ie),le=ie.strokeWidth(),me=S(se.plotX||0,le),_e=Math.round(se.shapeArgs.width/2);if(se.open!==null){let ge=S(se.plotOpen,le);ne.push(["M",me,ge],["L",me-_e,ge]),super.extendStem(ne,le/2,ge)}return ne}pointAttribs(se,ie){let ne=super.pointAttribs.call(this,se,ie),le=this.options;return delete ne.fill,!se.options.color&&le.upColor&&se.openE&&(S-=Math.round((T-E)/2),E=T),$=_[x](S,O,E,T,D),I&&H){let se=I;if(x==="circle")se=S+E/2;else{let ne=$[0],le=$[1];ne[0]==="M"&&le[0]==="L"&&(se=(ne[1]+le[1])/2)}let ie=O>H?O:O+T;$.push(["M",se,ie],["L",I,H]),$=$.concat(_.circle(I-1,H-1,2,2))}return $}}l.compose=function(_){if(c.indexOf(_)===-1){c.push(_);let S=_.prototype.symbols;S.flag=u,g(S,"circle"),g(S,"square")}let x=o.getRendererType();c.indexOf(x)&&c.push(x)}}(a||(a={})),a}),n(r,"Series/OnSeriesComposition.js",[r["Series/Column/ColumnSeries.js"],r["Core/Globals.js"],r["Core/Series/Series.js"],r["Core/Utilities.js"]],function(o,a,l,c){var u;let{composed:g}=a,{prototype:_}=o,{prototype:x}=l,{defined:S,pushUnique:O,stableSort:E}=c;return function(T){function D(I){return x.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,I)}function $(){_.translate.apply(this);let I=this,H=I.options,se=I.chart,ie=I.points,ne=H.onSeries,le=ne&&se.get(ne),me=le&&le.options.step,_e=le&&le.points,ge=se.inverted,de=I.xAxis,ve=I.yAxis,pe=ie.length-1,te,N,B=H.onKey||"y",ee=_e&&_e.length,oe=0,he,be,Ce,Oe,Se;if(le&&le.visible&&ee){for(oe=(le.pointXOffset||0)+(le.barW||0)/2,Oe=le.currentDataGrouping,be=_e[ee-1].x+(Oe?Oe.totalRange:0),E(ie,($e,ke)=>$e.x-ke.x),B="plot"+B[0].toUpperCase()+B.substr(1);ee--&&ie[pe];)if(he=_e[ee],(te=ie[pe]).y=he.y,he.x<=te.x&&he[B]!==void 0){if(te.x<=be&&(te.plotY=he[B],he.xMath.pow(1-fe,3)*$e[ae]+3*(1-fe)*(1-fe)*fe*Re[ae]+3*(1-fe)*fe*fe*Be[ae]+fe*fe*fe*ke[ae],Pe=0,Ie=1,Fe;for(let fe=0;fe<100;fe++){let ae=(Pe+Ie)/2,ue=Ee(ae,0);if(ue===null)break;if(.25>Math.abs(ue-te.plotX)){Fe=ae;break}ue{let Re;$e.plotX+=oe,($e.plotY===void 0||ge)&&($e.plotX>=0&&$e.plotX<=de.len?ge?($e.plotY=de.translate($e.x,0,1,0,1),$e.plotX=S($e.y)?ve.translate($e.y,0,0,0,1):0):$e.plotY=(de.opposite?0:I.yAxis.len)+de.offset:$e.shapeArgs={}),(N=ie[ke-1])&&N.plotX===$e.plotX&&(N.stackIndex===void 0&&(N.stackIndex=0),Re=N.stackIndex+1),$e.stackIndex=Re}),this.onSeries=le}T.compose=function(I){if(O(g,"OnSeries")){let H=I.prototype;H.getPlotBox=D,H.translate=$}return I},T.getPlotBox=D,T.translate=$}(u||(u={})),u}),n(r,"Series/Flags/FlagsSeries.js",[r["Series/Flags/FlagsPoint.js"],r["Series/Flags/FlagsSeriesDefaults.js"],r["Series/Flags/FlagsSymbols.js"],r["Core/Globals.js"],r["Series/OnSeriesComposition.js"],r["Core/Renderer/RendererUtilities.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Renderer/SVG/SVGElement.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g,_,x,S){let{noop:O}=c,{distribute:E}=g,{series:T,seriesTypes:{column:D}}=_,{addEvent:$,defined:I,extend:H,isNumber:se,merge:ie,objectEach:ne,wrap:le}=S;class me extends D{animate(ge){ge&&this.setClip()}drawPoints(){let ge,de,ve,pe,te,N,B,ee,oe,he,be,Ce=this.points,Oe=this.chart,Se=Oe.renderer,$e=Oe.inverted,ke=this.options,Re=ke.y,Be=this.yAxis,Ee={},Pe=[],Ie=se(ke.borderRadius)?ke.borderRadius:0;for(pe=Ce.length;pe--;)te=Ce[pe],he=($e?te.plotY:te.plotX)>this.xAxis.len,ge=te.plotX,B=te.stackIndex,ve=te.options.shape||ke.shape,(de=te.plotY)!==void 0&&(de=te.plotY+Re-(B!==void 0&&B*ke.stackDistance)),te.anchorX=B?void 0:te.plotX,ee=B?void 0:te.plotY,be=ve!=="flag",N=te.graphic,de!==void 0&&ge>=0&&!he?(N&&te.hasNewShapeType()&&(N=N.destroy()),N||(N=te.graphic=Se.label("",0,void 0,ve,void 0,void 0,ke.useHTML).addClass("highcharts-point").add(this.markerGroup),te.graphic.div&&(te.graphic.div.point=te),N.isNew=!0),N.attr({align:be?"center":"left",width:ke.width,height:ke.height,"text-align":ke.textAlign,r:Ie}),Oe.styledMode||N.attr(this.pointAttribs(te)).css(ie(ke.style,te.style)).shadow(ke.shadow),ge>0&&(ge-=N.strokeWidth()%2),oe={y:de,anchorY:ee},ke.allowOverlapX&&(oe.x=ge,oe.anchorX=te.anchorX),N.attr({text:te.options.title??ke.title??"A"})[N.isNew?"attr":"animate"](oe),ke.allowOverlapX||(Ee[te.plotX]?Ee[te.plotX].size=Math.max(Ee[te.plotX].size,N.width||0):Ee[te.plotX]={align:be?.5:0,size:N.width||0,target:ge,anchorX:ge}),te.tooltipPos=[ge,de+Be.pos-Oe.plotTop]):N&&(te.graphic=N.destroy());if(!ke.allowOverlapX){let Fe=100;for(let fe of(ne(Ee,function(ae){ae.plotX=ae.anchorX,Pe.push(ae),Fe=Math.max(ae.size,Fe)}),E(Pe,$e?Be.len:this.xAxis.len,Fe),Ce)){let ae=fe.plotX,ue=fe.graphic,xe=ue&&Ee[ae];xe&&ue&&(I(xe.pos)?ue[ue.isNew?"attr":"animate"]({x:xe.pos+(xe.align||0)*xe.size,anchorX:fe.anchorX}).show().isNew=!1:ue.hide().isNew=!0)}}ke.useHTML&&this.markerGroup&&le(this.markerGroup,"on",function(Fe){return x.prototype.on.apply(Fe.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){let ge=this.points;for(let de of(super.drawTracker(),ge)){let ve=de.graphic;ve&&(de.unbindMouseOver&&de.unbindMouseOver(),de.unbindMouseOver=$(ve.element,"mouseover",function(){for(let pe of(de.stackIndex>0&&!de.raised&&(de._y=ve.y,ve.attr({y:de._y-8}),de.raised=!0),ge))pe!==de&&pe.raised&&pe.graphic&&(pe.graphic.attr({y:pe._y}),pe.raised=!1)}))}}pointAttribs(ge,de){let ve=this.options,pe=ge&&ge.color||this.color,te=ve.lineColor,N=ge&&ge.lineWidth,B=ge&&ge.fillColor||ve.fillColor;return de&&(B=ve.states[de].fillColor,te=ve.states[de].lineColor,N=ve.states[de].lineWidth),{fill:B||pe,stroke:te||pe,"stroke-width":N||ve.lineWidth||0}}setClip(){T.prototype.setClip.apply(this,arguments),this.options.clip!==!1&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return me.compose=l.compose,me.defaultOptions=ie(D.defaultOptions,a),u.compose(me),H(me.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:o,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:O,init:T.prototype.init}),_.registerSeriesType("flags",me),me}),n(r,"Core/Axis/BrokenAxis.js",[r["Core/Axis/Stacking/StackItem.js"],r["Core/Utilities.js"]],function(o,a){var l;let{addEvent:c,find:u,fireEvent:g,isArray:_,isNumber:x,pick:S}=a;return function(O){function E(){this.brokenAxis!==void 0&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function T(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function D(){let le=this.brokenAxis;if(le?.hasBreaks){let me=this.tickPositions,_e=this.tickPositions.info,ge=[];for(let de=0;deoe.to||ge>oe.from&&deoe.from&&deoe.from&&de>oe.to&&de0){let pe,te;for(this.options.gapUnit!=="value"&&(de*=this.basePointRange),me&&me>de&&me>=this.basePointRange&&(de=me);ve--;)if(te&&te.visible!==!1||(te=_e[ve+1]),pe=_e[ve],te.visible!==!1&&pe.visible!==!1){if(te.x-pe.x>de){let N=(pe.x+te.x)/2;_e.splice(ve+1,0,{isNull:!0,x:N}),ge.stacking&&this.options.stacking&&((ge.stacking.stacks[this.stackKey][N]=new o(ge,ge.options.stackLabels,!1,N,this.stack)).total=0)}te=pe}}return this.getGraphPath(_e)}O.compose=function(le,me){if(!le.keepProps.includes("brokenAxis")){le.keepProps.push("brokenAxis"),c(le,"init",$),c(le,"afterInit",E),c(le,"afterSetTickPositions",D),c(le,"afterSetOptions",T);let _e=me.prototype;_e.drawBreaks=se,_e.gappedPath=ie,c(me,"afterGeneratePoints",I),c(me,"afterRender",H)}return le};class ne{static isInBreak(me,_e){let ge=me.repeat||1/0,de=me.from,ve=me.to-me.from,pe=_e>=de?(_e-de)%ge:ge-(de-_e)%ge;return me.inclusive?pe<=ve:pe=de);pe++)(ve.to=me)break;if(ne.isInBreak(ve,me)){de-=me-ve.from;break}}return de}constructor(me){this.hasBreaks=!1,this.axis=me}findBreakAt(me,_e){return u(_e,function(ge){return ge.frombe;)Oe-=he;for(;Oethis.chart.plotSizeX/$||H&&se.forced)&&(I=!0));return I?$:0}function O(){this.series.forEach(function(T){T.hasProcessed=!1})}function E(T,D){let $;if(D=_(D,!0),T||(T={forced:!1,units:null}),this instanceof l)for($=this.series.length;$--;)this.series[$].update({dataGrouping:T},!1);else this.chart.options.series.forEach(function(I){I.dataGrouping=typeof T=="boolean"?T:g(T,I.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0),D&&this.chart.redraw()}return{compose:function(T){l=T;let D=T.prototype;D.applyGrouping||(c(T,"afterSetScale",O),c(T,"postProcessData",x),u(D,{applyGrouping:x,getGroupPixelWidth:S,setDataGrouping:E}))}}}),n(r,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[r["Extensions/DataGrouping/ApproximationRegistry.js"],r["Extensions/DataGrouping/DataGroupingDefaults.js"],r["Core/Axis/DateTimeAxis.js"],r["Core/Defaults.js"],r["Core/Series/SeriesRegistry.js"],r["Core/Utilities.js"]],function(o,a,l,c,u,g){let{series:{prototype:_}}=u,{addEvent:x,defined:S,error:O,extend:E,isNumber:T,merge:D,pick:$}=g,I=_.generatePoints;function H(_e){var ge;let de,ve,pe=this.chart,te=this.options.dataGrouping,N=this.allowDG!==!1&&te&&$(te.enabled,pe.options.isStock),B=this.reserveSpace(),ee=this.currentDataGrouping,oe,he,be=!1;N&&!this.requireSorting&&(this.requireSorting=be=!0);let Ce=!!(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!_e)||!N;if(be&&(this.requireSorting=!1),Ce)return;this.destroyGroupedData();let Oe=te.groupAll?this.xData:this.processedXData,Se=te.groupAll?this.yData:this.processedYData,$e=pe.plotSizeX,ke=this.xAxis,Re=ke.options.ordinal,Be=this.groupPixelWidth;if(Be&&Oe&&Oe.length&&$e){ve=!0,this.isDirty=!0,this.points=null;let Ee=ke.getExtremes(),Pe=Ee.min,Ie=Ee.max,Fe=Re&&ke.ordinal&&ke.ordinal.getGroupIntervalFactor(Pe,Ie,this)||1,fe=Be*(Ie-Pe)/$e*Fe,ae=ke.getTimeTicks(l.Additions.prototype.normalizeTimeTickInterval(fe,te.units||a.units),Math.min(Pe,Oe[0]),Math.max(Ie,Oe[Oe.length-1]),ke.options.startOfWeek,Oe,this.closestPointRange),ue=_.groupData.apply(this,[Oe,Se,ae,te.approximation]),xe=ue.groupedXData,Ae=ue.groupedYData,De=0;for(te&&te.smoothed&&xe.length&&(te.firstAnchor="firstPoint",te.anchor="middle",te.lastAnchor="lastPoint",O(32,!1,pe,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),de=1;de=je[0]){let we;ye++;let Ve=ze.groupMap[0].start,Xe=ze.groupMap[0].length;T(Ve)&&T(Xe)&&(we=Ve+(Xe-1)),je[0]={start:je[0],middle:je[0]+.5*Ge,end:je[0]+Ge,firstPoint:ze.xData[0],lastPoint:we&&ze.xData[we]}[Ye]}if(Ne>0&&Qe&&Ge&&je[Ne]>=Ke-Ge){Le--;let we=ze.groupMap[ze.groupMap.length-1].start;je[Ne]={start:je[Ne],middle:je[Ne]+.5*Ge,end:je[Ne]+Ge,firstPoint:we&&ze.xData[we],lastPoint:ze.xData[ze.xData.length-1]}[Qe]}if(We&&We!=="start"){let we=Ge*{middle:.5,end:1}[We];for(;Le>=ye;)je[Le]+=we,Le--}}(this,xe,Ie),B&&(S((ge=xe)[0])&&T(ke.min)&&T(ke.dataMin)&&ge[0]ke.max&&((!S(ke.options.max)&&T(ke.dataMax)&&ke.max>=ke.dataMax||ke.max===ke.dataMax)&&(ke.max=Math.max(ge[ge.length-1],ke.max)),ke.dataMax=Math.max(ge[ge.length-1],ke.dataMax))),te.groupAll&&(this.allGroupedData=Ae,xe=(he=this.cropData(xe,Ae,ke.min,ke.max)).xData,Ae=he.yData,this.cropStart=he.start),this.processedXData=xe,this.processedYData=Ae}else this.groupMap=null,this.currentDataGrouping=void 0;this.hasGroupedData=ve,this.preventGraphAnimation=(ee&&ee.totalRange)!==(oe&&oe.totalRange)}function se(){this.groupedData&&(this.groupedData.forEach(function(_e,ge){_e&&(this.groupedData[ge]=_e.destroy?_e.destroy():null)},this),this.groupedData.length=0,delete this.allGroupedData)}function ie(){I.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function ne(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function le(_e,ge,de,ve){let pe=this,te=pe.data,N=pe.options&&pe.options.data,B=[],ee=[],oe=[],he=_e.length,be=!!ge,Ce=[],Oe=pe.pointArrayMap,Se=Oe&&Oe.length,$e=["x"].concat(Oe||["y"]),ke=this.options.dataGrouping&&this.options.dataGrouping.groupAll,Re,Be,Ee,Pe=0,Ie=0,Fe=typeof ve=="function"?ve:ve&&o[ve]?o[ve]:o[pe.getDGApproximation&&pe.getDGApproximation()||"average"];if(Se){let ae=Oe.length;for(;ae--;)Ce.push([])}else Ce.push([]);let fe=Se||1;for(let ae=0;ae<=he;ae++)if(!(_e[ae]=de[Pe+1]||ae===he;){Re=de[Pe],pe.dataGroupInfo={start:ke?Ie:pe.cropStart+Ie,length:Ce[0].length,groupStart:Re},Ee=Fe.apply(pe,Ce),pe.pointClass&&!S(pe.dataGroupInfo.options)&&(pe.dataGroupInfo.options=D(pe.pointClass.prototype.optionsToObject.call({series:pe},pe.options.data[pe.cropStart+Ie])),$e.forEach(function(ue){delete pe.dataGroupInfo.options[ue]})),Ee!==void 0&&(B.push(Re),ee.push(Ee),oe.push(pe.dataGroupInfo)),Ie=ae;for(let ue=0;ue{let x=_.axis.getExtremes(),S=x.min,O=x.max,E=c(_.axis.minPointOffset,0);return l(S)&&l(O)&&_.value>=S-E&&_.value<=O+E&&!_.axis.options.isInternal})[0]},getFieldType:function(g,_){let x=u[g],S=typeof _;return a(x)&&(S=x),{string:"text",number:"number",boolean:"checkbox"}[S]}}}),n(r,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[r["Core/Utilities.js"],r["Extensions/Annotations/NavigationBindingsUtilities.js"]],function(o,a){let l,{addEvent:c,isObject:u,pick:g,defined:_,merge:x}=o,{getAssignedAxis:S}=a,O=[],E={enabled:!0,sensitivity:1.1},T=I=>(u(I)||(I={enabled:I??!0}),x(E,I)),D=function(I,H,se,ie,ne,le,me){let _e=g(me.type,I.zooming.type,""),ge=[];_e==="x"?ge=se:_e==="y"?ge=ie:_e==="xy"&&(ge=I.axes);let de=I.transform({axes:ge,to:{x:ne-5,y:le-5,width:10,height:10},from:{x:ne-5*H,y:le-5*H,width:10*H,height:10*H},trigger:"mousewheel"});return de&&(_(l)&&clearTimeout(l),l=setTimeout(()=>{I.pointer?.drop()},400)),de};function $(){let I=T(this.zooming.mouseWheel);I.enabled&&c(this.container,"wheel",H=>{H=this.pointer?.normalize(H)||H;let{pointer:se}=this,ie=se&&!se.inClass(H.target,"highcharts-no-mousewheel");if(this.isInsidePlot(H.chartX-this.plotLeft,H.chartY-this.plotTop)&&ie){let ne=I.sensitivity||1.1,le=H.detail||(H.deltaY||0)/120,me=S(se.getCoordinates(H).xAxis),_e=S(se.getCoordinates(H).yAxis);D(this,Math.pow(ne,le),me?[me.axis]:this.xAxis,_e?[_e.axis]:this.yAxis,H.chartX,H.chartY,I)&&H.preventDefault?.()}})}return{compose:function(I){O.indexOf(I)===-1&&(O.push(I),c(I,"afterGetContainer",$))}}}),n(r,"masters/modules/mouse-wheel-zoom.src.js",[r["Core/Globals.js"],r["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(o,a){return o.MouseWheelZoom=o.MouseWheelZoom||a,o.MouseWheelZoom.compose(o.Chart),o}),n(r,"masters/modules/stock.src.js",[r["Core/Globals.js"],r["Series/DataModifyComposition.js"],r["Stock/Navigator/Navigator.js"],r["Core/Axis/OrdinalAxis.js"],r["Stock/RangeSelector/RangeSelector.js"],r["Stock/Scrollbar/Scrollbar.js"],r["Core/Chart/StockChart.js"],r["Series/OHLC/OHLCSeries.js"],r["Series/Flags/FlagsSeries.js"]],function(o,a,l,c,u,g,_,x,S){return o.Navigator=o.Navigator||l,o.OrdinalAxis=o.OrdinalAxis||c,o.RangeSelector=o.RangeSelector||u,o.Scrollbar=o.Scrollbar||g,o.stockChart=o.stockChart||_.stockChart,o.StockChart=o.StockChart||o.stockChart,o.extend(o.StockChart,_),a.compose(o.Series,o.Axis,o.Point),S.compose(o.Renderer),x.compose(o.Series),o.Navigator.compose(o.Chart,o.Axis,o.Series),o.OrdinalAxis.compose(o.Axis,o.Series,o.Chart),o.RangeSelector.compose(o.Axis,o.Chart),o.Scrollbar.compose(o.Axis),o.StockChart.compose(o.Chart,o.Axis,o.Series,o.SVGRenderer),o})})})(stock);const stockInit=stock.exports,Chart_vue_vue_type_style_index_0_lang="";highchartsExports.seriesTypes.spline.prototype.drawLegendSymbol=function(e,t){this.options.marker.enabled=!0,highchartsExports.LegendSymbol.lineMarker?.call(this,e,t),this.options.marker.enabled=!1};stockInit(highchartsExports);const _sfc_main$6={components:{Chart:highchartsVue_min.exports.Chart},props:["point","log"],data(){return{chartOptions:{},provider:this.$route.params.provider,chartObj:null}},computed:{series(){const e=Object.fromEntries(Object.entries(measurements).map(([r,n])=>[r.toLowerCase(),n])),t=[];for(const r of this.log)if(r.data)for(let n of Object.keys(r.data)){n=n.toLowerCase();const o=t.findIndex(a=>a.name===n);o>=0?t[o].data.push([r.timestamp*1e3,r.data[n]]):t.push({name:n,data:[[r.timestamp*1e3,parseFloat(r.data[n])]],zones:e[n]?.zones,visible:!0})}for(const r of t)r.data.length>config$2.SERIES_MAX_VISIBLE&&(r.visible=!1);return t},startpoint(){if(this.provider==="realtime")return Date.now();{let e=new Date;return e.setHours(0,0,0,0),e}}},watch:{series(e){e.forEach((t,r)=>{this.chartObj.series.findIndex(o=>o.name===t.name)>=0?this.chartObj.series[r].setData(t.data,!1):this.chartObj.addSeries(t)}),this.chartObj.redraw()}},mounted(){const{chart:e}=this.$refs.chart;this.chartObj=e,this.chartOptions={legend:{enabled:!0},rangeSelector:{inputEnabled:!1,buttons:[{type:"all",text:"All",title:"View all"}]},chart:{type:"spline",height:400},title:{text:""},time:{timezone:Intl.DateTimeFormat().resolvedOptions().timeZone},series:this.series,xAxis:{title:!1,type:"datetime",labels:{overflow:"justify",format:"{value: %H:%M }"}},yAxis:{title:!1},tooltip:{valueDecimals:2},plotOptions:{series:{dataGrouping:{enabled:!1}}}}}};function _sfc_render$6(e,t,r,n,o,a){const l=resolveComponent("Chart",!0);return openBlock(),createBlock(l,{"constructor-type":"stockChart",options:o.chartOptions,ref:"chart"},null,8,["options"])}const Chart=_export_sfc(_sfc_main$6,[["render",_sfc_render$6]]),Copy_vue_vue_type_style_index_0_scoped_951f909f_lang="",_sfc_main$5={props:["msg","title","notify"],data(){return{successCopy:!1}},methods:{success(){this.$notify({position:"top right",text:this.notify})},showSuccessesCopy(){this.successCopy=!0,setTimeout(()=>{this.successCopy=!1},2e3)}}},_hoisted_1$4=["title"];function _sfc_render$5(e,t,r,n,o,a){const l=resolveComponent("font-awesome-icon"),c=resolveDirective("clipboard");return withDirectives((openBlock(),createElementBlock("a",{class:"nowrap copy",title:r.title},[renderSlot(e.$slots,"default",{},void 0,!0),o.successCopy?createCommentVNode("",!0):(openBlock(),createElementBlock("button",{key:0,class:"copy-btn",onClick:t[0]||(t[0]=(...u)=>a.showSuccessesCopy&&a.showSuccessesCopy(...u))})),o.successCopy?(openBlock(),createBlock(l,{key:1,icon:"fa-solid fa-check"})):createCommentVNode("",!0)],8,_hoisted_1$4)),[[c,r.msg,"copy"],[c,a.success,"success"]])}const Copy=_export_sfc(_sfc_main$5,[["render",_sfc_render$5],["__scopeId","data-v-951f909f"]]),SensorPopup_vue_vue_type_style_index_0_scoped_695fbd57_lang="",_sfc_main$4={emits:["close"],props:["type","point","startTime"],components:{Chart,Copy,Bookmark},data(){return{select:"",measurement:this.type,isShowPath:!1,store:useStore(),start:hooks().format("YYYY-MM-DD"),maxDate:hooks().format("YYYY-MM-DD"),provider:this.$route.params.provider,rttime:null,rtdata:[],shared:!1,isLoad:!1}},computed:{locale(){return localStorage.getItem("locale")||this.$i18n.locale||"en"},address(){return this.point.address},donated_by(){return this.point.donated_by},geo(){return this.point.geo},log(){return this.point?.log},model(){return this.point.model},sender(){return this.point.sender},sensor_id(){return this.point.sensor_id},realtime(){return this.provider==="realtime"},addressformatted(){let e="";return this.address&&(this.address.country&&(e+=this.address.country),this.address.address.length>0&&(e+=", "+this.address.address.join(", "))),e},isLocationRussion(){return this.address.country==="\u0420\u043E\u0441\u0441\u0438\u044F"||this.address.country==="Russia"},measure(){return this.items.find(e=>this.select===e.text)},scale(){return generate$1(measurements[this.type.toLowerCase()].colors,measurements[this.type.toLowerCase()].range)},hasIcon(){return e=>measurements[e.toLowerCase()]&&measurements[e.toLowerCase()].icon},icon:function(){return e=>this.hasIcon(e)?measurements[e.toLowerCase()].icon:"vial"},items(){const e=[];for(const t of Object.keys(this.last.data)){let r=null;measurements[t.toLowerCase()]&&measurements[t.toLowerCase()].colors&&(r=generate$1(measurements[t.toLowerCase()].colors,measurements[t.toLowerCase()].range)),e.push({id:t,title:this.$filters.measurementFormat(this.last.data[t],t),text:this.$filters.measurement(t),state:getState(r,this.last.data[t],measurements[t.toLowerCase()]?measurements[t.toLowerCase()].states:void 0)})}return e},measurementFilter(e){return measurements[e.toLowerCase()]?.label||e},measurementFormat(e,t){return measurements[t.toLowerCase()]?`${toFixed(e)} ${measurements[t.toLowerCase()].unit}`:toFixed(e)},collapse(e){return e?e.slice(0,6)+"..."+e.slice(-4):""},linkSensor:function(){const e=this.$router.resolve({name:"main",params:{provider:getTypeProvider(),type:this.$route.params.type||"pm10",zoom:this.$route.params.zoom||config$2.MAP.zoom,lat:this.geo.lat,lng:this.geo.lng,sensor:this.sensor_id}});return new URL(e.href,window.location.origin).href},link:function(){return sensors[this.sensor_id]?sensors[this.sensor_id].link:""},icon:function(){return sensors[this.sensor_id]?sensors[this.sensor_id].icon:""},last:function(){return this.log[this.log.length-1]},date:function(){return hooks(this.last.timestamp,"X").format("DD.MM.YYYY HH:mm:ss")},startTimestamp:function(){return Number(hooks(this.start+" 00:00:00","YYYY-MM-DD HH:mm:ss").format("X"))},endTimestamp:function(){return Number(hooks(this.start+" 23:59:59","YYYY-MM-DD HH:mm:ss").format("X"))},units(){let e=[];return Object.values(this.log).forEach(t=>{t.data&&Object.keys(t.data).forEach(r=>{e.push(r.toLowerCase())})}),[...new Set(e.flat())]},scales:function(){let e=[];return Object.keys(measurements).forEach(t=>{this.units.some(r=>r===t)&&e.push(measurements[t])}),e}},methods:{shareData(){navigator.share?navigator.share({title:config$2.TITLE,url:this.linkSensor||this.link}):navigator.clipboard.writeText(this.linkSensor).then(()=>{this.shared=!0,setTimeout(()=>{this.shared=!1},5e3)}).catch(e=>{console.log("not coppied",e)})},getHistory(){this.realtime||(this.isLoad=!0,this.$emit("history",{sensor_id:this.sensor_id,start:this.startTimestamp,end:this.endTimestamp}))},updatert(){if(this.realtime){const e=this.log[this.log.length-1].timestamp*1e3;e&&(this.rttime=new Date(e).toLocaleString());const t=this.log[this.log.length-1].data;let r={};t&&(this.rtdata=[],Object.keys(measurements).forEach(n=>{Object.keys(t).forEach(o=>{n===o&&(r={},r.key=o,r.measure=t[o],r.label=measurements[n].label,r.unit=measurements[n].unit,measurements[n].zones.find(a=>r.measurer.measuremeasurements[n].zones[measurements[n].zones.length-2].value&&(r.color=measurements[n].zones[measurements[n].zones.length-1].color),this.rtdata.push(r))})}))}},closesensor(){const e=window.location.href;if(e.includes(this.sensor_id)){const t=e.replace(this.sensor_id,"");window.location.href=t}this.$emit("close")}},watch:{sensor_id(){this.isShowPath=!1},isShowPath(){this.isShowPath?showPath(this.sensor_id):hidePath(this.sensor_id)},start(){this.getHistory()},log(){this.updatert(),this.isLoad=!1}},mounted(){this.start=this.startTime?hooks.unix(this.startTime).format("YYYY-MM-DD"):hooks().format("YYYY-MM-DD"),this.updatert()}},_withScopeId$3=e=>(pushScopeId("data-v-695fbd57"),e=e(),popScopeId(),e),_hoisted_1$3={class:"popup-js active"},_hoisted_2$3={class:"flexline clipoverflow"},_hoisted_3$2=["src"],_hoisted_4$1={class:"scrollable-y"},_hoisted_5$1={class:"flexline space-between"},_hoisted_6$2={class:"flexline"},_hoisted_7$2=["max"],_hoisted_8$2={key:0,class:"flexline"},_hoisted_9$2=_withScopeId$3(()=>createBaseVNode("div",{class:"rt-title"},"Realtime view mode",-1)),_hoisted_10$1={key:0,class:"rt-time"},_hoisted_11$1={class:"rt-unit"},_hoisted_12$1={key:0},_hoisted_13$1={key:0,class:"infoline flexline"},_hoisted_14$1={class:"infoline-title"},_hoisted_15$1={class:"infoline-info"},_hoisted_16$1={key:1,class:"infoline flexline"},_hoisted_17$1={class:"infoline-title"},_hoisted_18$1={class:"infoline-info"},_hoisted_19$1={key:2,class:"infoline flexline"},_hoisted_20$1={class:"infoline-title"},_hoisted_21$1={class:"infoline-info"},_hoisted_22$1=["href"],_hoisted_23$1={key:3,class:"infoline flexline"},_hoisted_24$1={class:"infoline-title"},_hoisted_25$1={class:"infoline-info"},_hoisted_26$1={key:4,class:"infoline flexline"},_hoisted_27$1={class:"infoline-title"},_hoisted_28$1=_withScopeId$3(()=>createBaseVNode("label",{for:"realtime"},null,-1)),_hoisted_29$1={class:"sensors-switcher-text"},_hoisted_30$1={class:"infoline-info"},_hoisted_31$1={key:1},_hoisted_32$1={class:"scalegrid"},_hoisted_33$1={key:0},_hoisted_34$1={key:1},_hoisted_35$1={class:"textsmall"};function _sfc_render$4(e,t,r,n,o,a){const l=resolveComponent("font-awesome-icon"),c=resolveComponent("Bookmark"),u=resolveComponent("Chart"),g=resolveComponent("Copy");return openBlock(),createElementBlock("div",_hoisted_1$3,[createBaseVNode("section",null,[createBaseVNode("h3",_hoisted_2$3,[a.icon?(openBlock(),createElementBlock("img",{key:0,src:a.icon,class:"icontitle"},null,8,_hoisted_3$2)):(openBlock(),createBlock(l,{key:1,icon:"fa-solid fa-location-dot"})),createTextVNode(" "+toDisplayString$1(a.addressformatted),1)])]),createBaseVNode("div",_hoisted_4$1,[createBaseVNode("section",_hoisted_5$1,[createBaseVNode("div",_hoisted_6$2,[a.realtime?createCommentVNode("",!0):withDirectives((openBlock(),createElementBlock("input",{key:0,type:"date","onUpdate:modelValue":t[0]||(t[0]=_=>o.start=_),max:o.maxDate},null,8,_hoisted_7$2)),[[vModelText,o.start]]),a.sensor_id?(openBlock(),createBlock(c,{key:1,address:a.address?.address&&a.address?.address.join(", "),link:a.sensor_id,geo:a.geo},null,8,["address","link","geo"])):createCommentVNode("",!0)]),createBaseVNode("button",{onClick:t[1]||(t[1]=(..._)=>a.shareData&&a.shareData(..._)),class:"button"},[o.shared?createCommentVNode("",!0):(openBlock(),createBlock(l,{key:0,icon:"fa-solid fa-share-from-square"})),o.shared?(openBlock(),createBlock(l,{key:1,icon:"fa-solid fa-check"})):createCommentVNode("",!0)])]),a.realtime?(openBlock(),createElementBlock("section",_hoisted_8$2,[createBaseVNode("div",null,[_hoisted_9$2,o.rttime?(openBlock(),createElementBlock("div",_hoisted_10$1,toDisplayString$1(o.rttime),1)):createCommentVNode("",!0)]),o.rtdata?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(o.rtdata,_=>(openBlock(),createElementBlock("div",{key:_},[createBaseVNode("div",_hoisted_11$1,toDisplayString$1(_.label),1),createBaseVNode("div",{class:"rt-number",style:normalizeStyle(_.color?"color:"+_.color:"")},toDisplayString$1(_.measure)+" "+toDisplayString$1(_.unit),5)]))),128)):createCommentVNode("",!0)])):createCommentVNode("",!0),createBaseVNode("section",null,[o.isLoad?(openBlock(),createElementBlock("div",_hoisted_12$1,toDisplayString$1(e.$t("isLoad")),1)):(openBlock(),createBlock(u,{key:1,point:r.point,log:a.log},null,8,["point","log"]))]),createBaseVNode("section",null,[createBaseVNode("h3",null,toDisplayString$1(e.$t("sensorpopup.infotitle")),1),a.sensor_id?(openBlock(),createElementBlock("div",_hoisted_13$1,[createBaseVNode("div",_hoisted_14$1,toDisplayString$1(e.$t("sensorpopup.infosensorid"))+":",1),createBaseVNode("div",_hoisted_15$1,[createTextVNode(toDisplayString$1(e.$filters.collapse(a.sensor_id))+" ",1),createVNode(g,{msg:a.sensor_id,title:`Sensor id: ${a.sensor_id}`,notify:e.$t("details.copied")},null,8,["msg","title","notify"])])])):createCommentVNode("",!0),a.geo?(openBlock(),createElementBlock("div",_hoisted_16$1,[createBaseVNode("div",_hoisted_17$1,toDisplayString$1(e.$t("sensorpopup.infosensorgeo"))+":",1),createBaseVNode("div",_hoisted_18$1,toDisplayString$1(a.geo.lat)+", "+toDisplayString$1(a.geo.lng),1)])):createCommentVNode("",!0),a.link?(openBlock(),createElementBlock("div",_hoisted_19$1,[createBaseVNode("div",_hoisted_20$1,toDisplayString$1(e.$t("sensorpopup.infosensorowner"))+":",1),createBaseVNode("div",_hoisted_21$1,[createBaseVNode("a",{href:a.link,rel:"noopener",target:"_blank"},toDisplayString$1(a.link),9,_hoisted_22$1)])])):createCommentVNode("",!0),a.donated_by?(openBlock(),createElementBlock("div",_hoisted_23$1,[createBaseVNode("div",_hoisted_24$1,toDisplayString$1(e.$t("sensorpopup.infosensordonated"))+":",1),createBaseVNode("div",_hoisted_25$1,toDisplayString$1(a.donated_by),1)])):createCommentVNode("",!0),a.model===3?(openBlock(),createElementBlock("div",_hoisted_26$1,[createBaseVNode("div",_hoisted_27$1,[_hoisted_28$1,createBaseVNode("span",_hoisted_29$1,toDisplayString$1(e.$t("details.showpath")),1),createTextVNode(": ")]),createBaseVNode("div",_hoisted_30$1,[withDirectives(createBaseVNode("input",{type:"checkbox",id:"realtime","onUpdate:modelValue":t[2]||(t[2]=_=>o.isShowPath=_)},null,512),[[vModelCheckbox,o.isShowPath]])])])):createCommentVNode("",!0)]),a.units&&a.scales&&a.scales.length>0?(openBlock(),createElementBlock("section",_hoisted_31$1,[createBaseVNode("h3",null,toDisplayString$1(e.$t("scales.title")),1),createBaseVNode("div",_hoisted_32$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(a.scales,_=>(openBlock(),createElementBlock("div",{key:_.label},[_?.zones&&(_.name||_.label)?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode("p",null,[_.name?(openBlock(),createElementBlock("b",_hoisted_33$1,toDisplayString$1(a.locale==="en"?_.name.en:_.name.ru),1)):(openBlock(),createElementBlock("b",_hoisted_34$1,toDisplayString$1(_.label),1)),createTextVNode(" ("+toDisplayString$1(_.unit)+") ",1)]),(openBlock(!0),createElementBlock(Fragment,null,renderList(_.zones,x=>(openBlock(),createElementBlock(Fragment,{key:x.color},[x.color&&x.label?(openBlock(),createElementBlock("div",{key:0,class:"scales-color",style:normalizeStyle(`--color: ${x.color}`)},[createBaseVNode("b",null,toDisplayString$1(a.locale==="en"?x.label.en:x.label.ru),1),createTextVNode(" ("),x.value?(openBlock(),createElementBlock(Fragment,{key:0},[createTextVNode(toDisplayString$1(e.$t("scales.upto"))+" "+toDisplayString$1(x.value),1)],64)):(openBlock(),createElementBlock(Fragment,{key:1},[createTextVNode(toDisplayString$1(e.$t("scales.above")),1)],64)),createTextVNode(") ")],4)):createCommentVNode("",!0)],64))),128))],64)):createCommentVNode("",!0)]))),128))])])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_35$1,[a.isLocationRussion?(openBlock(),createElementBlock(Fragment,{key:0},[createTextVNode(toDisplayString$1(e.$t("notice_with_fz")),1)],64)):(openBlock(),createElementBlock(Fragment,{key:1},[createTextVNode(toDisplayString$1(e.$t("notice_without_fz")),1)],64))])]),createBaseVNode("button",{onClick:t[3]||(t[3]=withModifiers((..._)=>a.closesensor&&a.closesensor(..._),["prevent"])),"aria-label":"Close sensor",class:"close"},[createVNode(l,{icon:"fa-solid fa-xmark"})])])}const SensorPopup=_export_sfc(_sfc_main$4,[["render",_sfc_render$4],["__scopeId","data-v-695fbd57"]]);function asUint8Array(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function alloc(e=0){return globalThis.Buffer?.alloc!=null?asUint8Array(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function allocUnsafe$2(e=0){return globalThis.Buffer?.allocUnsafe!=null?asUint8Array(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}const N1$2=Math.pow(2,7),N2$2=Math.pow(2,14),N3$2=Math.pow(2,21),N4$2=Math.pow(2,28),N5$2=Math.pow(2,35),N6$2=Math.pow(2,42),N7$2=Math.pow(2,49),MSB$4=128,REST$4=127;function encodingLength$2(e){if(eNumber.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function encodeUint8Array(e,t,r=0){switch(encodingLength$2(e)){case 8:t[r++]=e&255|MSB$4,e/=128;case 7:t[r++]=e&255|MSB$4,e/=128;case 6:t[r++]=e&255|MSB$4,e/=128;case 5:t[r++]=e&255|MSB$4,e/=128;case 4:t[r++]=e&255|MSB$4,e>>>=7;case 3:t[r++]=e&255|MSB$4,e>>>=7;case 2:t[r++]=e&255|MSB$4,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function encodeUint8ArrayList(e,t,r=0){switch(encodingLength$2(e)){case 8:t.set(r++,e&255|MSB$4),e/=128;case 7:t.set(r++,e&255|MSB$4),e/=128;case 6:t.set(r++,e&255|MSB$4),e/=128;case 5:t.set(r++,e&255|MSB$4),e/=128;case 4:t.set(r++,e&255|MSB$4),e>>>=7;case 3:t.set(r++,e&255|MSB$4),e>>>=7;case 2:t.set(r++,e&255|MSB$4),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function decodeUint8Array(e,t){let r=e[t],n=0;if(n+=r&REST$4,ro+a.length,0));const r=allocUnsafe$2(t);let n=0;for(const o of e)r.set(o,n),n+=o.length;return asUint8Array(r)}function equals$2(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(const n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(isUint8ArrayList(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...t){this.prependAll(t)}prependAll(t){let r=0;for(const n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(isUint8ArrayList(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(t){const r=findBufAndOffset(this.bufs,t);return r.buf[r.index]}set(t,r){const n=findBufAndOffset(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){const{bufs:n,length:o}=this._subList(t,r);return concat$1(n,o)}subarray(t,r){const{bufs:n,length:o}=this._subList(t,r);return n.length===1?n[0]:concat$1(n,o)}sublist(t,r){const{bufs:n,length:o}=this._subList(t,r),a=new Uint8ArrayList;return a.length=o,a.bufs=n,a}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};const n=[];let o=0;for(let a=0;a=u)continue;const g=t>=c&&tc&&r<=u;if(g&&_){if(t===c&&r===u){n.push(l);break}const x=t-c;n.push(l.subarray(x,x+(r-t)));break}if(g){if(t===0){n.push(l);continue}n.push(l.subarray(t-c));continue}if(_){if(r===u){n.push(l);break}n.push(l.subarray(0,r-c));break}n.push(l)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!isUint8ArrayList(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');const n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.length===0)return r>this.length?this.length:r;const o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");const a=256,l=new Int32Array(a);for(let x=0;x=0;S--){const O=this.get(x+S);if(n[S]!==O){_=Math.max(1,S-c[O]);break}}if(_===0)return x}return-1}getInt8(t){const r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){const n=allocUnsafe$2(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){const n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){const o=alloc(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,r,n),this.write(o,t)}getInt32(t,r){const n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){const o=alloc(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,r,n),this.write(o,t)}getBigInt64(t,r){const n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){const o=alloc(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,r,n),this.write(o,t)}getUint8(t){const r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){const n=allocUnsafe$2(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){const n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){const o=alloc(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,r,n),this.write(o,t)}getUint32(t,r){const n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){const o=alloc(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,r,n),this.write(o,t)}getBigUint64(t,r){const n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){const o=alloc(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,r,n),this.write(o,t)}getFloat32(t,r){const n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){const o=alloc(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,r,n),this.write(o,t)}getFloat64(t,r){const n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){const o=alloc(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,r,n),this.write(o,t)}equals(t){if(t==null||!(t instanceof Uint8ArrayList)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;ro+a.byteLength,0)),n.length=r,n}}function isAsyncIterable$a(e){return e[Symbol.asyncIterator]!=null}const defaultEncoder=e=>{const t=encodingLength$2(e),r=allocUnsafe$2(t);return encode$d(e,r),defaultEncoder.bytes=t,r};defaultEncoder.bytes=0;function encode$c(e,t){t=t??{};const r=t.lengthEncoder??defaultEncoder;function*n(o){const a=r(o.byteLength);a instanceof Uint8Array?yield a:yield*a,o instanceof Uint8Array?yield o:yield*o}return isAsyncIterable$a(e)?async function*(){for await(const o of e)yield*n(o)}():function*(){for(const o of e)yield*n(o)}()}encode$c.single=(e,t)=>{t=t??{};const r=t.lengthEncoder??defaultEncoder;return new Uint8ArrayList(r(e.byteLength),e)};function assign$1(e,t){for(const r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function createError(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return assign$1(e,r)}catch{r.message=e.message,r.stack=e.stack;const o=function(){};return o.prototype=Object.create(Object.getPrototypeOf(e)),assign$1(new o,r)}}var errCode=createError;const MAX_LENGTH_LENGTH=8,MAX_DATA_LENGTH=1024*1024*4;var ReadMode;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(ReadMode||(ReadMode={}));const defaultDecoder=e=>{const t=decode$b(e);return defaultDecoder.bytes=encodingLength$2(t),t};defaultDecoder.bytes=0;function decode$a(e,t){const r=new Uint8ArrayList;let n=ReadMode.LENGTH,o=-1;const a=t?.lengthDecoder??defaultDecoder,l=t?.maxLengthLength??MAX_LENGTH_LENGTH,c=t?.maxDataLength??MAX_DATA_LENGTH;function*u(){for(;r.byteLength>0;){if(n===ReadMode.LENGTH)try{if(o=a(r),o<0)throw errCode(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(o>c)throw errCode(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");const g=a.bytes;r.consume(g),t?.onLength!=null&&t.onLength(o),n=ReadMode.DATA}catch(g){if(g instanceof RangeError){if(r.byteLength>l)throw errCode(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw g}if(n===ReadMode.DATA){if(r.byteLength0)throw errCode(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(const g of e)r.append(g),yield*u();if(r.byteLength>0)throw errCode(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}decode$a.fromReader=(e,t)=>{let r=1;const n=async function*(){for(;;)try{const{done:a,value:l}=await e.next(r);if(a===!0)return;l!=null&&(yield l)}catch(a){if(a.code==="ERR_UNDER_READ")return{done:!0,value:null};throw a}finally{r=1}}();return decode$a(n,{...t??{},onLength:a=>{r=a}})};function pDefer(){const e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}class FixedFIFO{constructor(t){Je(this,"buffer");Je(this,"mask");Je(this,"top");Je(this,"btm");Je(this,"next");if(!(t>0)||(t-1&t)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){const t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}}class FIFO{constructor(t={}){Je(this,"size");Je(this,"hwm");Je(this,"head");Je(this,"tail");this.hwm=t.splitLimit??16,this.head=new FixedFIFO(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){const r=this.head;this.head=r.next=new FixedFIFO(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){const r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}}class AbortError$6 extends Error{constructor(r,n){super(r??"The operation was aborted");Je(this,"type");Je(this,"code");this.type="aborted",this.code=n??"ABORT_ERR"}}function pushable(e={}){return _pushable(r=>{const n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},e)}function pushableV(e={}){return _pushable(r=>{let n;const o=[];for(;!r.isEmpty()&&(n=r.shift(),n!=null);){if(n.error!=null)throw n.error;n.done===!1&&o.push(n.value)}return n==null?{done:!0}:{done:n.done===!0,value:o}},e)}function _pushable(e,t){t=t??{};let r=t.onEnd,n=new FIFO,o,a,l,c=pDefer();const u=async()=>{try{return n.isEmpty()?l?{done:!0}:await new Promise((D,$)=>{a=I=>{a=null,n.push(I);try{D(e(n))}catch(H){$(H)}return o}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{c.resolve(),c=pDefer()})}},g=D=>a!=null?a(D):(n.push(D),o),_=D=>(n=new FIFO,a!=null?a({error:D}):(n.push({error:D}),o)),x=D=>{if(l)return o;if(t?.objectMode!==!0&&D?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return g({done:!1,value:D})},S=D=>l?o:(l=!0,D!=null?_(D):g({done:!0})),O=()=>(n=new FIFO,S(),{done:!0}),E=D=>(S(D),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:u,return:O,throw:E,push:x,end:S,get readableLength(){return n.size},onEmpty:async D=>{const $=D?.signal;if($?.throwIfAborted(),n.isEmpty())return;let I,H;$!=null&&(I=new Promise((se,ie)=>{H=()=>{ie(new AbortError$6)},$.addEventListener("abort",H)}));try{await Promise.race([c.promise,I])}finally{H!=null&&$!=null&&$?.removeEventListener("abort",H)}}},r==null)return o;const T=o;return o={[Symbol.asyncIterator](){return this},next(){return T.next()},throw(D){return T.throw(D),r!=null&&(r(D),r=void 0),{done:!0}},return(){return T.return(),r!=null&&(r(),r=void 0),{done:!0}},push:x,end(D){return T.end(D),r!=null&&(r(D),r=void 0),o},get readableLength(){return T.readableLength}},o}class CodeError$2 extends Error{constructor(r,n){super(r);Je(this,"code");this.code=n}}class AbortError$5 extends CodeError$2{constructor(r){super(r,"ABORT_ERR");Je(this,"type");this.type="aborted"}}function byteStream(e){const t=pushable();e.sink(t).catch(a=>{t.end(a)}),e.sink=async a=>{for await(const l of a)t.push(l);t.end()};let r=e.source;e.source[Symbol.iterator]!=null?r=e.source[Symbol.iterator]():e.source[Symbol.asyncIterator]!=null&&(r=e.source[Symbol.asyncIterator]());const n=new Uint8ArrayList;return{read:async(a,l)=>{l?.signal?.throwIfAborted();let c;const u=new Promise((g,_)=>{c=()=>{_(new AbortError$5("Read aborted"))},l?.signal?.addEventListener("abort",c)});try{if(a==null){const{done:_,value:x}=await Promise.race([r.next(),u]);return _===!0?new Uint8ArrayList:x}for(;n.byteLength{l?.signal?.throwIfAborted(),a instanceof Uint8Array?t.push(a):t.push(a.subarray()),await t.onEmpty(l)},unwrap:()=>{const a=e.source;return e.source=async function*(){yield*n,yield*a}(),e}}}class CodeError$1 extends Error{constructor(r,n){super(r);Je(this,"code");this.code=n}}const defaultLengthDecoder=e=>decode$b(e);defaultLengthDecoder.bytes=0;function lpStream(e,t){const r=byteStream(e);return{read:async o=>{let a=-1;const l=new Uint8ArrayList,c=t?.lengthDecoder??defaultLengthDecoder;for(;;){l.append(await r.read(1,o));try{a=c(l)}catch(u){if(u instanceof RangeError)continue;throw u}if(a>-1)break;if(t?.maxLengthLength!=null&&l.byteLength>t.maxLengthLength)throw new CodeError$1("message length length too long","ERR_MSG_LENGTH_TOO_LONG")}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new CodeError$1("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(a,o)},write:async(o,a)=>{await r.write(encode$c.single(o,t),a)},unwrap:()=>r.unwrap()}}function pair(){const e=pDefer();let t=!1;return{sink:async r=>{if(t)throw new Error("already piped");t=!0,e.resolve(r)},source:async function*(){yield*await e.promise}()}}function duplexPair(){const e=pair(),t=pair();return[{source:e.source,sink:t.sink},{source:t.source,sink:e.sink}]}function isAsyncIterable$9(e){return e[Symbol.asyncIterator]!=null}function merge$1(...e){const t=[];for(const r of e)isAsyncIterable$9(r)||t.push(r);return t.length===e.length?function*(){for(const r of t)yield*r}():async function*(){const r=pushable({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(const o of n)r.push(o)})),r.end()}catch(n){r.end(n)}}),yield*r}()}function pipe(e,...t){if(e==null)throw new Error("Empty pipeline");if(isDuplex(e)){const n=e;e=()=>n.source}else if(isIterable(e)||isAsyncIterable$8(e)){const n=e;e=()=>n}const r=[e,...t];if(r.length>1&&isDuplex(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n{let t;for(;e.length>0;)t=e.shift()(t);return t},isAsyncIterable$8=e=>e?.[Symbol.asyncIterator]!=null,isIterable=e=>e?.[Symbol.iterator]!=null,isDuplex=e=>e==null?!1:e.sink!=null&&e.source!=null,duplexPipelineFn=e=>t=>{const r=e.sink(t);if(r?.then!=null){const n=pushable({objectMode:!0});r.then(()=>{n.end()},l=>{n.end(l)});let o;const a=e.source;if(isAsyncIterable$8(a))o=async function*(){yield*a,n.end()};else if(isIterable(a))o=function*(){yield*a,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return merge$1(n,o())}return e.source},NOISE_MSG_MAX_LENGTH_BYTES=65535,NOISE_MSG_MAX_LENGTH_BYTES_WITHOUT_TAG=NOISE_MSG_MAX_LENGTH_BYTES-16,DUMP_SESSION_KEYS=Boolean(globalThis.process?.env?.DUMP_SESSION_KEYS);/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */const u8a$2=e=>e instanceof Uint8Array,u32=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),createView$1=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),isLE$1=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!isLE$1)throw new Error("Non little-endian hardware is not supported");function utf8ToBytes$2(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function toBytes$2(e){if(typeof e=="string"&&(e=utf8ToBytes$2(e)),!u8a$2(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}const isPlainObject$1=e=>Object.prototype.toString.call(e)==="[object Object]"&&e.constructor===Object;function checkOpts(e,t){if(t!==void 0&&(typeof t!="object"||!isPlainObject$1(t)))throw new Error("options must be object or undefined");return Object.assign(e,t)}function ensureBytes$1(e,t){if(!(e instanceof Uint8Array))throw new Error("Uint8Array expected");if(typeof t=="number"&&e.length!==t)throw new Error(`Uint8Array length ${t} expected`)}function equalBytes$1(e,t){if(e.length!==t.length)throw new Error("equalBytes: Different size of Uint8Arrays");let r=!0;for(let n=0;n>o&a),c=Number(r&a),u=n?4:0,g=n?0:4;e.setUint32(t+u,l,n),e.setUint32(t+g,c,n)}function number$3(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function bool(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function bytes$1(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function hash$2(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("hash must be wrapped by utils.wrapConstructor");number$3(e.outputLen),number$3(e.blockLen)}function exists$1(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function output$1(e,t){bytes$1(e);const r=t.outputLen;if(e.lengthe[t++]&255|(e[t++]&255)<<8;class Poly1305{constructor(t){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,t=toBytes$2(t),ensureBytes$1(t,32);const r=u8to16(t,0),n=u8to16(t,2),o=u8to16(t,4),a=u8to16(t,6),l=u8to16(t,8),c=u8to16(t,10),u=u8to16(t,12),g=u8to16(t,14);this.r[0]=r&8191,this.r[1]=(r>>>13|n<<3)&8191,this.r[2]=(n>>>10|o<<6)&7939,this.r[3]=(o>>>7|a<<9)&8191,this.r[4]=(a>>>4|l<<12)&255,this.r[5]=l>>>1&8190,this.r[6]=(l>>>14|c<<2)&8191,this.r[7]=(c>>>11|u<<5)&8065,this.r[8]=(u>>>8|g<<8)&8191,this.r[9]=g>>>5&127;for(let _=0;_<8;_++)this.pad[_]=u8to16(t,16+2*_)}process(t,r,n=!1){const o=n?0:2048,{h:a,r:l}=this,c=l[0],u=l[1],g=l[2],_=l[3],x=l[4],S=l[5],O=l[6],E=l[7],T=l[8],D=l[9],$=u8to16(t,r+0),I=u8to16(t,r+2),H=u8to16(t,r+4),se=u8to16(t,r+6),ie=u8to16(t,r+8),ne=u8to16(t,r+10),le=u8to16(t,r+12),me=u8to16(t,r+14);let _e=a[0]+($&8191),ge=a[1]+(($>>>13|I<<3)&8191),de=a[2]+((I>>>10|H<<6)&8191),ve=a[3]+((H>>>7|se<<9)&8191),pe=a[4]+((se>>>4|ie<<12)&8191),te=a[5]+(ie>>>1&8191),N=a[6]+((ie>>>14|ne<<2)&8191),B=a[7]+((ne>>>11|le<<5)&8191),ee=a[8]+((le>>>8|me<<8)&8191),oe=a[9]+(me>>>5|o),he=0,be=he+_e*c+ge*(5*D)+de*(5*T)+ve*(5*E)+pe*(5*O);he=be>>>13,be&=8191,be+=te*(5*S)+N*(5*x)+B*(5*_)+ee*(5*g)+oe*(5*u),he+=be>>>13,be&=8191;let Ce=he+_e*u+ge*c+de*(5*D)+ve*(5*T)+pe*(5*E);he=Ce>>>13,Ce&=8191,Ce+=te*(5*O)+N*(5*S)+B*(5*x)+ee*(5*_)+oe*(5*g),he+=Ce>>>13,Ce&=8191;let Oe=he+_e*g+ge*u+de*c+ve*(5*D)+pe*(5*T);he=Oe>>>13,Oe&=8191,Oe+=te*(5*E)+N*(5*O)+B*(5*S)+ee*(5*x)+oe*(5*_),he+=Oe>>>13,Oe&=8191;let Se=he+_e*_+ge*g+de*u+ve*c+pe*(5*D);he=Se>>>13,Se&=8191,Se+=te*(5*T)+N*(5*E)+B*(5*O)+ee*(5*S)+oe*(5*x),he+=Se>>>13,Se&=8191;let $e=he+_e*x+ge*_+de*g+ve*u+pe*c;he=$e>>>13,$e&=8191,$e+=te*(5*D)+N*(5*T)+B*(5*E)+ee*(5*O)+oe*(5*S),he+=$e>>>13,$e&=8191;let ke=he+_e*S+ge*x+de*_+ve*g+pe*u;he=ke>>>13,ke&=8191,ke+=te*c+N*(5*D)+B*(5*T)+ee*(5*E)+oe*(5*O),he+=ke>>>13,ke&=8191;let Re=he+_e*O+ge*S+de*x+ve*_+pe*g;he=Re>>>13,Re&=8191,Re+=te*u+N*c+B*(5*D)+ee*(5*T)+oe*(5*E),he+=Re>>>13,Re&=8191;let Be=he+_e*E+ge*O+de*S+ve*x+pe*_;he=Be>>>13,Be&=8191,Be+=te*g+N*u+B*c+ee*(5*D)+oe*(5*T),he+=Be>>>13,Be&=8191;let Ee=he+_e*T+ge*E+de*O+ve*S+pe*x;he=Ee>>>13,Ee&=8191,Ee+=te*_+N*g+B*u+ee*c+oe*(5*D),he+=Ee>>>13,Ee&=8191;let Pe=he+_e*D+ge*T+de*E+ve*O+pe*S;he=Pe>>>13,Pe&=8191,Pe+=te*x+N*_+B*g+ee*u+oe*c,he+=Pe>>>13,Pe&=8191,he=(he<<2)+he|0,he=he+be|0,be=he&8191,he=he>>>13,Ce+=he,a[0]=be,a[1]=Ce,a[2]=Oe,a[3]=Se,a[4]=$e,a[5]=ke,a[6]=Re,a[7]=Be,a[8]=Ee,a[9]=Pe}finalize(){const{h:t,pad:r}=this,n=new Uint16Array(10);let o=t[1]>>>13;t[1]&=8191;for(let c=2;c<10;c++)t[c]+=o,o=t[c]>>>13,t[c]&=8191;t[0]+=o*5,o=t[0]>>>13,t[0]&=8191,t[1]+=o,o=t[1]>>>13,t[1]&=8191,t[2]+=o,n[0]=t[0]+5,o=n[0]>>>13,n[0]&=8191;for(let c=1;c<10;c++)n[c]=t[c]+o,o=n[c]>>>13,n[c]&=8191;n[9]-=1<<13;let a=(o^1)-1;for(let c=0;c<10;c++)n[c]&=a;a=~a;for(let c=0;c<10;c++)t[c]=t[c]&a|n[c];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let l=t[0]+r[0];t[0]=l&65535;for(let c=1;c<8;c++)l=(t[c]+r[c]|0)+(l>>>16)|0,t[c]=l&65535}update(t){assert.exists(this);const{buffer:r,blockLen:n}=this;t=toBytes$2(t);const o=t.length;for(let a=0;a>>0,t[a++]=n[l]>>>8;return t}digest(){const{buffer:t,outputLen:r}=this;this.digestInto(t);const n=t.slice(0,r);return this.destroy(),n}}function wrapConstructorWithKey(e){const t=(n,o)=>e(o).update(toBytes$2(n)).digest(),r=e(new Uint8Array(32));return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}const poly1305=wrapConstructorWithKey(e=>new Poly1305(e)),sigma16=utf8ToBytes$2("expand 16-byte k"),sigma32=utf8ToBytes$2("expand 32-byte k"),sigma16_32=u32(sigma16),sigma32_32=u32(sigma32),isAligned32=e=>!(e.byteOffset%4),salsaBasic=e=>{const{core:t,rounds:r,counterRight:n,counterLen:o,allow128bitKeys:a,extendNonceFn:l,blockLen:c}=checkOpts({rounds:20,counterRight:!1,counterLen:8,allow128bitKeys:!0,blockLen:64},e);assert.number(o),assert.number(r),assert.number(c),assert.bool(n),assert.bool(a);const u=c/4;if(c%4!==0)throw new Error("Salsa/ChaCha: blockLen must be aligned to 4 bytes");return(g,_,x,S,O=0)=>{if(assert.bytes(g),assert.bytes(_),assert.bytes(x),S||(S=new Uint8Array(x.length)),assert.bytes(S),assert.number(O),O<0||O>=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");if(S.length=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");const de=Math.min(c,me-_e);if(de===c&&le&&ne){const ve=_e/4;if(_e%4!==0)throw new Error("Salsa/ChaCha: invalid block position");for(let pe=0;pee<>>32-t;function chachaCore(e,t,r,n,o,a=20){let l=e[0],c=e[1],u=e[2],g=e[3],_=t[0],x=t[1],S=t[2],O=t[3],E=t[4],T=t[5],D=t[6],$=t[7],I=o,H=r[0],se=r[1],ie=r[2],ne=l,le=c,me=u,_e=g,ge=_,de=x,ve=S,pe=O,te=E,N=T,B=D,ee=$,oe=I,he=H,be=se,Ce=ie;for(let Se=0;Se{e.update(t);const r=t.length%16;r&&e.update(ZERO.subarray(r))},computeTag=(e,t,r,n,o)=>{const a=e(t,r,new Uint8Array(32)),l=poly1305.create(a);o&&updatePadded(l,o),updatePadded(l,n);const c=new Uint8Array(16),u=createView$1(c);setBigUint64$1(u,0,BigInt(o?o.length:0),!0),setBigUint64$1(u,8,BigInt(n.length),!0),l.update(c);const g=l.digest();return a.fill(0),g},_poly1305_aead=e=>(t,r,n)=>(ensureBytes$1(t,32),ensureBytes$1(r),{tagLength:16,encrypt:(a,l)=>{const c=a.length,u=c+16;l?ensureBytes$1(l,u):l=new Uint8Array(u),e(t,r,a,l,1);const g=computeTag(e,t,r,l.subarray(0,-16),n);return l.set(g,c),l},decrypt:(a,l)=>{const c=a.length,u=c-16;if(c<16)throw new Error(`encrypted data must be at least ${16} bytes`);l?ensureBytes$1(l,u):l=new Uint8Array(u);const g=a.subarray(0,-16),_=a.subarray(-16),x=computeTag(e,t,r,g,n);if(!equalBytes$1(_,x))throw new Error("invalid tag");return e(t,r,g,l,1),l}}),chacha20poly1305=_poly1305_aead(chacha20);function number$2(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function bytes(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function hash$1(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");number$2(e.outputLen),number$2(e.blockLen)}function exists(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function output(e,t){bytes(e);const r=t.outputLen;if(e.lengthe instanceof Uint8Array,createView=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),rotr=(e,t)=>e<<32-t|e>>>t,isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!isLE)throw new Error("Non little-endian hardware is not supported");function utf8ToBytes$1(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function toBytes$1(e){if(typeof e=="string"&&(e=utf8ToBytes$1(e)),!u8a$1(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function concatBytes$1(...e){const t=new Uint8Array(e.reduce((n,o)=>n+o.length,0));let r=0;return e.forEach(n=>{if(!u8a$1(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}class Hash{clone(){return this._cloneInto()}}function wrapConstructor(e){const t=n=>e().update(toBytes$1(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function randomBytes$1(e=32){if(crypto$3&&typeof crypto$3.getRandomValues=="function")return crypto$3.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function setBigUint64(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);const o=BigInt(32),a=BigInt(4294967295),l=Number(r>>o&a),c=Number(r&a),u=n?4:0,g=n?0:4;e.setUint32(t+u,l,n),e.setUint32(t+g,c,n)}class SHA2 extends Hash{constructor(t,r,n,o){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=createView(this.buffer)}update(t){exists(this);const{view:r,buffer:n,blockLen:o}=this;t=toBytes$1(t);const a=t.length;for(let l=0;lo-l&&(this.process(n,0),l=0);for(let x=l;x_.length)throw new Error("_sha2: outputLen bigger than state");for(let x=0;x>_32n&U32_MASK64)}:{h:Number(e>>_32n&U32_MASK64)|0,l:Number(e&U32_MASK64)|0}}function split(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let o=0;oBigInt(e>>>0)<<_32n|BigInt(t>>>0),shrSH=(e,t,r)=>e>>>r,shrSL=(e,t,r)=>e<<32-r|t>>>r,rotrSH=(e,t,r)=>e>>>r|t<<32-r,rotrSL=(e,t,r)=>e<<32-r|t>>>r,rotrBH=(e,t,r)=>e<<64-r|t>>>r-32,rotrBL=(e,t,r)=>e>>>r-32|t<<64-r,rotr32H=(e,t)=>t,rotr32L=(e,t)=>e,rotlSH=(e,t,r)=>e<>>32-r,rotlSL=(e,t,r)=>t<>>32-r,rotlBH=(e,t,r)=>t<>>64-r,rotlBL=(e,t,r)=>e<>>64-r;function add(e,t,r,n){const o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}const add3L=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),add3H=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,add4L=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),add4H=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0,add5L=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0),add5H=(e,t,r,n,o,a)=>t+r+n+o+a+(e/2**32|0)|0,u64={fromBig,split,toBig,shrSH,shrSL,rotrSH,rotrSL,rotrBH,rotrBL,rotr32H,rotr32L,rotlSH,rotlSL,rotlBH,rotlBL,add,add3L,add3H,add4L,add4H,add5H,add5L},u64$1=u64,[SHA512_Kh,SHA512_Kl]=(()=>u64$1.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))))(),SHA512_W_H=new Uint32Array(80),SHA512_W_L=new Uint32Array(80);class SHA512 extends SHA2{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:r,Bh:n,Bl:o,Ch:a,Cl:l,Dh:c,Dl:u,Eh:g,El:_,Fh:x,Fl:S,Gh:O,Gl:E,Hh:T,Hl:D}=this;return[t,r,n,o,a,l,c,u,g,_,x,S,O,E,T,D]}set(t,r,n,o,a,l,c,u,g,_,x,S,O,E,T,D){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=o|0,this.Ch=a|0,this.Cl=l|0,this.Dh=c|0,this.Dl=u|0,this.Eh=g|0,this.El=_|0,this.Fh=x|0,this.Fl=S|0,this.Gh=O|0,this.Gl=E|0,this.Hh=T|0,this.Hl=D|0}process(t,r){for(let H=0;H<16;H++,r+=4)SHA512_W_H[H]=t.getUint32(r),SHA512_W_L[H]=t.getUint32(r+=4);for(let H=16;H<80;H++){const se=SHA512_W_H[H-15]|0,ie=SHA512_W_L[H-15]|0,ne=u64$1.rotrSH(se,ie,1)^u64$1.rotrSH(se,ie,8)^u64$1.shrSH(se,ie,7),le=u64$1.rotrSL(se,ie,1)^u64$1.rotrSL(se,ie,8)^u64$1.shrSL(se,ie,7),me=SHA512_W_H[H-2]|0,_e=SHA512_W_L[H-2]|0,ge=u64$1.rotrSH(me,_e,19)^u64$1.rotrBH(me,_e,61)^u64$1.shrSH(me,_e,6),de=u64$1.rotrSL(me,_e,19)^u64$1.rotrBL(me,_e,61)^u64$1.shrSL(me,_e,6),ve=u64$1.add4L(le,de,SHA512_W_L[H-7],SHA512_W_L[H-16]),pe=u64$1.add4H(ve,ne,ge,SHA512_W_H[H-7],SHA512_W_H[H-16]);SHA512_W_H[H]=pe|0,SHA512_W_L[H]=ve|0}let{Ah:n,Al:o,Bh:a,Bl:l,Ch:c,Cl:u,Dh:g,Dl:_,Eh:x,El:S,Fh:O,Fl:E,Gh:T,Gl:D,Hh:$,Hl:I}=this;for(let H=0;H<80;H++){const se=u64$1.rotrSH(x,S,14)^u64$1.rotrSH(x,S,18)^u64$1.rotrBH(x,S,41),ie=u64$1.rotrSL(x,S,14)^u64$1.rotrSL(x,S,18)^u64$1.rotrBL(x,S,41),ne=x&O^~x&T,le=S&E^~S&D,me=u64$1.add5L(I,ie,le,SHA512_Kl[H],SHA512_W_L[H]),_e=u64$1.add5H(me,$,se,ne,SHA512_Kh[H],SHA512_W_H[H]),ge=me|0,de=u64$1.rotrSH(n,o,28)^u64$1.rotrBH(n,o,34)^u64$1.rotrBH(n,o,39),ve=u64$1.rotrSL(n,o,28)^u64$1.rotrBL(n,o,34)^u64$1.rotrBL(n,o,39),pe=n&a^n&c^a&c,te=o&l^o&u^l&u;$=T|0,I=D|0,T=O|0,D=E|0,O=x|0,E=S|0,{h:x,l:S}=u64$1.add(g|0,_|0,_e|0,ge|0),g=c|0,_=u|0,c=a|0,u=l|0,a=n|0,l=o|0;const N=u64$1.add3L(ge,ve,te);n=u64$1.add3H(N,_e,de,pe),o=N|0}({h:n,l:o}=u64$1.add(this.Ah|0,this.Al|0,n|0,o|0)),{h:a,l}=u64$1.add(this.Bh|0,this.Bl|0,a|0,l|0),{h:c,l:u}=u64$1.add(this.Ch|0,this.Cl|0,c|0,u|0),{h:g,l:_}=u64$1.add(this.Dh|0,this.Dl|0,g|0,_|0),{h:x,l:S}=u64$1.add(this.Eh|0,this.El|0,x|0,S|0),{h:O,l:E}=u64$1.add(this.Fh|0,this.Fl|0,O|0,E|0),{h:T,l:D}=u64$1.add(this.Gh|0,this.Gl|0,T|0,D|0),{h:$,l:I}=u64$1.add(this.Hh|0,this.Hl|0,$|0,I|0),this.set(n,o,a,l,c,u,g,_,x,S,O,E,T,D,$,I)}roundClean(){SHA512_W_H.fill(0),SHA512_W_L.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const sha512$3=wrapConstructor(()=>new SHA512);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$5=BigInt(0),_1n$7=BigInt(1),_2n$4=BigInt(2),u8a=e=>e instanceof Uint8Array,hexes=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function bytesToHex(e){if(!u8a(e))throw new Error("Uint8Array expected");let t="";for(let r=0;rn+o.length,0));let r=0;return e.forEach(n=>{if(!u8a(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function equalBytes(e,t){if(e.length!==t.length)return!1;for(let r=0;r_0n$5;e>>=_1n$7,t+=1);return t}function bitGet(e,t){return e>>BigInt(t)&_1n$7}const bitSet=(e,t,r)=>e|(r?_1n$7:_0n$5)<(_2n$4<new Uint8Array(e),u8fr=e=>Uint8Array.from(e);function createHmacDrbg(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=u8n(e),o=u8n(e),a=0;const l=()=>{n.fill(1),o.fill(0),a=0},c=(...x)=>r(o,n,...x),u=(x=u8n())=>{o=c(u8fr([0]),x),n=c(),x.length!==0&&(o=c(u8fr([1]),x),n=c())},g=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let x=0;const S=[];for(;x{l(),u(x);let O;for(;!(O=S(g()));)u();return l(),O}}const validatorFns={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function validateObject(e,t,r={}){const n=(o,a,l)=>{const c=validatorFns[a];if(typeof c!="function")throw new Error(`Invalid validator "${a}", expected function`);const u=e[o];if(!(l&&u===void 0)&&!c(u,e))throw new Error(`Invalid param ${String(o)}=${u} (${typeof u}), expected ${a}`)};for(const[o,a]of Object.entries(t))n(o,a,!1);for(const[o,a]of Object.entries(r))n(o,a,!0);return e}const ut=Object.freeze(Object.defineProperty({__proto__:null,bytesToHex,numberToHexUnpadded,hexToNumber,hexToBytes,bytesToNumberBE,bytesToNumberLE,numberToBytesBE,numberToBytesLE,numberToVarBytesBE,ensureBytes,concatBytes,equalBytes,utf8ToBytes,bitLen,bitGet,bitSet,bitMask,createHmacDrbg,validateObject},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$4=BigInt(0),_1n$6=BigInt(1),_2n$3=BigInt(2),_3n$1=BigInt(3),_4n=BigInt(4),_5n$1=BigInt(5),_8n$1=BigInt(8);BigInt(9);BigInt(16);function mod(e,t){const r=e%t;return r>=_0n$4?r:t+r}function pow(e,t,r){if(r<=_0n$4||t<_0n$4)throw new Error("Expected power/modulo > 0");if(r===_1n$6)return _0n$4;let n=_1n$6;for(;t>_0n$4;)t&_1n$6&&(n=n*e%r),e=e*e%r,t>>=_1n$6;return n}function pow2(e,t,r){let n=e;for(;t-- >_0n$4;)n*=n,n%=r;return n}function invert(e,t){if(e===_0n$4||t<=_0n$4)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=mod(e,t),n=t,o=_0n$4,a=_1n$6;for(;r!==_0n$4;){const c=n/r,u=n%r,g=o-a*c;n=r,r=u,o=a,a=g}if(n!==_1n$6)throw new Error("invert: does not exist");return mod(o,t)}function tonelliShanks(e){const t=(e-_1n$6)/_2n$3;let r,n,o;for(r=e-_1n$6,n=0;r%_2n$3===_0n$4;r/=_2n$3,n++);for(o=_2n$3;o(mod(e,t)&_1n$6)===_1n$6,FIELD_FIELDS=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function validateField(e){const t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=FIELD_FIELDS.reduce((n,o)=>(n[o]="function",n),t);return validateObject(e,r)}function FpPow(e,t,r){if(r<_0n$4)throw new Error("Expected power > 0");if(r===_0n$4)return e.ONE;if(r===_1n$6)return t;let n=e.ONE,o=t;for(;r>_0n$4;)r&_1n$6&&(n=e.mul(n,o)),o=e.sqr(o),r>>=_1n$6;return n}function FpInvertBatch(e,t){const r=new Array(t.length),n=t.reduce((a,l,c)=>e.is0(l)?a:(r[c]=a,e.mul(a,l)),e.ONE),o=e.inv(n);return t.reduceRight((a,l,c)=>e.is0(l)?a:(r[c]=e.mul(a,r[c]),e.mul(a,l)),o),r}function nLength(e,t){const r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Field(e,t,r=!1,n={}){if(e<=_0n$4)throw new Error(`Expected Field ORDER > 0, got ${e}`);const{nBitLength:o,nByteLength:a}=nLength(e,t);if(a>2048)throw new Error("Field lengths over 2048 bytes are not supported");const l=FpSqrt(e),c=Object.freeze({ORDER:e,BITS:o,BYTES:a,MASK:bitMask(o),ZERO:_0n$4,ONE:_1n$6,create:u=>mod(u,e),isValid:u=>{if(typeof u!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof u}`);return _0n$4<=u&&uu===_0n$4,isOdd:u=>(u&_1n$6)===_1n$6,neg:u=>mod(-u,e),eql:(u,g)=>u===g,sqr:u=>mod(u*u,e),add:(u,g)=>mod(u+g,e),sub:(u,g)=>mod(u-g,e),mul:(u,g)=>mod(u*g,e),pow:(u,g)=>FpPow(c,u,g),div:(u,g)=>mod(u*invert(g,e),e),sqrN:u=>u*u,addN:(u,g)=>u+g,subN:(u,g)=>u-g,mulN:(u,g)=>u*g,inv:u=>invert(u,e),sqrt:n.sqrt||(u=>l(c,u)),invertBatch:u=>FpInvertBatch(c,u),cmov:(u,g,_)=>_?g:u,toBytes:u=>r?numberToBytesLE(u,a):numberToBytesBE(u,a),fromBytes:u=>{if(u.length!==a)throw new Error(`Fp.fromBytes: expected ${a}, got ${u.length}`);return r?bytesToNumberLE(u):bytesToNumberBE(u)}});return Object.freeze(c)}function FpSqrtEven(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");const r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function getFieldBytesLength(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function getMinHashLength(e){const t=getFieldBytesLength(e);return t+Math.ceil(t/2)}function mapHashToField(e,t,r=!1){const n=e.length,o=getFieldBytesLength(t),a=getMinHashLength(t);if(n<16||n1024)throw new Error(`expected ${a}-1024 bytes of input, got ${n}`);const l=r?bytesToNumberBE(e):bytesToNumberLE(e),c=mod(l,t-_1n$6)+_1n$6;return r?numberToBytesLE(c,o):numberToBytesBE(c,o)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$3=BigInt(0),_1n$5=BigInt(1);function wNAF(e,t){const r=(o,a)=>{const l=a.negate();return o?l:a},n=o=>{const a=Math.ceil(t/o)+1,l=2**(o-1);return{windows:a,windowSize:l}};return{constTimeNegate:r,unsafeLadder(o,a){let l=e.ZERO,c=o;for(;a>_0n$3;)a&_1n$5&&(l=l.add(c)),c=c.double(),a>>=_1n$5;return l},precomputeWindow(o,a){const{windows:l,windowSize:c}=n(a),u=[];let g=o,_=g;for(let x=0;x>=O,D>u&&(D-=S,l+=_1n$5);const $=T,I=T+Math.abs(D)-1,H=E%2!==0,se=D<0;D===0?_=_.add(r(H,a[$])):g=g.add(r(se,a[I]))}return{p:g,f:_}},wNAFCached(o,a,l,c){const u=o._WINDOW_SIZE||1;let g=a.get(o);return g||(g=this.precomputeWindow(o,u),u!==1&&a.set(o,c(g))),this.wNAF(u,g,l)}}}function validateBasic(e){return validateField(e.Fp),validateObject(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...nLength(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$2=BigInt(0),_1n$4=BigInt(1),_2n$2=BigInt(2),_8n=BigInt(8),VERIFY_DEFAULT={zip215:!0};function validateOpts$2(e){const t=validateBasic(e);return validateObject(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function twistedEdwards(e){const t=validateOpts$2(e),{Fp:r,n,prehash:o,hash:a,randomBytes:l,nByteLength:c,h:u}=t,g=_2n$2<{try{return{isValid:!0,value:r.sqrt(oe*r.inv(he))}}catch{return{isValid:!1,value:_0n$2}}}),S=t.adjustScalarBytes||(oe=>oe),O=t.domain||((oe,he,be)=>{if(he.length||be)throw new Error("Contexts/pre-hash are not supported");return oe}),E=oe=>typeof oe=="bigint"&&_0n$2E(oe)&&E(he)&&oeoe===_0n$2||T(oe,g);function $(oe,he){if(T(oe,he))return oe;throw new Error(`Expected valid scalar < ${he}, got ${typeof oe} ${oe}`)}function I(oe){return oe===_0n$2?oe:$(oe,n)}const H=new Map;function se(oe){if(!(oe instanceof ie))throw new Error("ExtendedPoint expected")}class ie{constructor(he,be,Ce,Oe){if(this.ex=he,this.ey=be,this.ez=Ce,this.et=Oe,!D(he))throw new Error("x required");if(!D(be))throw new Error("y required");if(!D(Ce))throw new Error("z required");if(!D(Oe))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(he){if(he instanceof ie)throw new Error("extended point not allowed");const{x:be,y:Ce}=he||{};if(!D(be)||!D(Ce))throw new Error("invalid affine point");return new ie(be,Ce,_1n$4,_(be*Ce))}static normalizeZ(he){const be=r.invertBatch(he.map(Ce=>Ce.ez));return he.map((Ce,Oe)=>Ce.toAffine(be[Oe])).map(ie.fromAffine)}_setWindowSize(he){this._WINDOW_SIZE=he,H.delete(this)}assertValidity(){const{a:he,d:be}=t;if(this.is0())throw new Error("bad point: ZERO");const{ex:Ce,ey:Oe,ez:Se,et:$e}=this,ke=_(Ce*Ce),Re=_(Oe*Oe),Be=_(Se*Se),Ee=_(Be*Be),Pe=_(ke*he),Ie=_(Be*_(Pe+Re)),Fe=_(Ee+_(be*_(ke*Re)));if(Ie!==Fe)throw new Error("bad point: equation left != right (1)");const fe=_(Ce*Oe),ae=_(Se*$e);if(fe!==ae)throw new Error("bad point: equation left != right (2)")}equals(he){se(he);const{ex:be,ey:Ce,ez:Oe}=this,{ex:Se,ey:$e,ez:ke}=he,Re=_(be*ke),Be=_(Se*Oe),Ee=_(Ce*ke),Pe=_($e*Oe);return Re===Be&&Ee===Pe}is0(){return this.equals(ie.ZERO)}negate(){return new ie(_(-this.ex),this.ey,this.ez,_(-this.et))}double(){const{a:he}=t,{ex:be,ey:Ce,ez:Oe}=this,Se=_(be*be),$e=_(Ce*Ce),ke=_(_2n$2*_(Oe*Oe)),Re=_(he*Se),Be=be+Ce,Ee=_(_(Be*Be)-Se-$e),Pe=Re+$e,Ie=Pe-ke,Fe=Re-$e,fe=_(Ee*Ie),ae=_(Pe*Fe),ue=_(Ee*Fe),xe=_(Ie*Pe);return new ie(fe,ae,xe,ue)}add(he){se(he);const{a:be,d:Ce}=t,{ex:Oe,ey:Se,ez:$e,et:ke}=this,{ex:Re,ey:Be,ez:Ee,et:Pe}=he;if(be===BigInt(-1)){const Ge=_((Se-Oe)*(Be+Re)),Ne=_((Se+Oe)*(Be-Re)),We=_(Ne-Ge);if(We===_0n$2)return this.double();const Ye=_($e*_2n$2*Pe),Qe=_(ke*_2n$2*Ee),Le=Qe+Ye,ye=Ne+Ge,we=Qe-Ye,Ve=_(Le*We),Xe=_(ye*we),nt=_(Le*we),lt=_(We*ye);return new ie(Ve,Xe,lt,nt)}const Ie=_(Oe*Re),Fe=_(Se*Be),fe=_(ke*Ce*Pe),ae=_($e*Ee),ue=_((Oe+Se)*(Re+Be)-Ie-Fe),xe=ae-fe,Ae=ae+fe,De=_(Fe-be*Ie),ze=_(ue*xe),je=_(Ae*De),Ke=_(ue*De),Ze=_(xe*Ae);return new ie(ze,je,Ze,Ke)}subtract(he){return this.add(he.negate())}wNAF(he){return me.wNAFCached(this,H,he,ie.normalizeZ)}multiply(he){const{p:be,f:Ce}=this.wNAF($(he,n));return ie.normalizeZ([be,Ce])[0]}multiplyUnsafe(he){let be=I(he);return be===_0n$2?le:this.equals(le)||be===_1n$4?this:this.equals(ne)?this.wNAF(be).p:me.unsafeLadder(this,be)}isSmallOrder(){return this.multiplyUnsafe(u).is0()}isTorsionFree(){return me.unsafeLadder(this,n).is0()}toAffine(he){const{ex:be,ey:Ce,ez:Oe}=this,Se=this.is0();he==null&&(he=Se?_8n:r.inv(Oe));const $e=_(be*he),ke=_(Ce*he),Re=_(Oe*he);if(Se)return{x:_0n$2,y:_1n$4};if(Re!==_1n$4)throw new Error("invZ was invalid");return{x:$e,y:ke}}clearCofactor(){const{h:he}=t;return he===_1n$4?this:this.multiplyUnsafe(he)}static fromHex(he,be=!1){const{d:Ce,a:Oe}=t,Se=r.BYTES;he=ensureBytes("pointHex",he,Se);const $e=he.slice(),ke=he[Se-1];$e[Se-1]=ke&-129;const Re=bytesToNumberLE($e);Re===_0n$2||(be?$(Re,g):$(Re,r.ORDER));const Be=_(Re*Re),Ee=_(Be-_1n$4),Pe=_(Ce*Be-Oe);let{isValid:Ie,value:Fe}=x(Ee,Pe);if(!Ie)throw new Error("Point.fromHex: invalid y coordinate");const fe=(Fe&_1n$4)===_1n$4,ae=(ke&128)!==0;if(!be&&Fe===_0n$2&&ae)throw new Error("Point.fromHex: x=0 and x_0=1");return ae!==fe&&(Fe=_(-Fe)),ie.fromAffine({x:Fe,y:Re})}static fromPrivateKey(he){return de(he).point}toRawBytes(){const{x:he,y:be}=this.toAffine(),Ce=numberToBytesLE(be,r.BYTES);return Ce[Ce.length-1]|=he&_1n$4?128:0,Ce}toHex(){return bytesToHex(this.toRawBytes())}}ie.BASE=new ie(t.Gx,t.Gy,_1n$4,_(t.Gx*t.Gy)),ie.ZERO=new ie(_0n$2,_1n$4,_1n$4,_0n$2);const{BASE:ne,ZERO:le}=ie,me=wNAF(ie,c*8);function _e(oe){return mod(oe,n)}function ge(oe){return _e(bytesToNumberLE(oe))}function de(oe){const he=c;oe=ensureBytes("private key",oe,he);const be=ensureBytes("hashed private key",a(oe),2*he),Ce=S(be.slice(0,he)),Oe=be.slice(he,2*he),Se=ge(Ce),$e=ne.multiply(Se),ke=$e.toRawBytes();return{head:Ce,prefix:Oe,scalar:Se,point:$e,pointBytes:ke}}function ve(oe){return de(oe).pointBytes}function pe(oe=new Uint8Array,...he){const be=concatBytes(...he);return ge(a(O(be,ensureBytes("context",oe),!!o)))}function te(oe,he,be={}){oe=ensureBytes("message",oe),o&&(oe=o(oe));const{prefix:Ce,scalar:Oe,pointBytes:Se}=de(he),$e=pe(be.context,Ce,oe),ke=ne.multiply($e).toRawBytes(),Re=pe(be.context,ke,Se,oe),Be=_e($e+Re*Oe);I(Be);const Ee=concatBytes(ke,numberToBytesLE(Be,r.BYTES));return ensureBytes("result",Ee,c*2)}const N=VERIFY_DEFAULT;function B(oe,he,be,Ce=N){const{context:Oe,zip215:Se}=Ce,$e=r.BYTES;oe=ensureBytes("signature",oe,2*$e),he=ensureBytes("message",he),o&&(he=o(he));const ke=bytesToNumberLE(oe.slice($e,2*$e));let Re,Be,Ee;try{Re=ie.fromHex(be,Se),Be=ie.fromHex(oe.slice(0,$e),Se),Ee=ne.multiplyUnsafe(ke)}catch{return!1}if(!Se&&Re.isSmallOrder())return!1;const Pe=pe(Oe,Be.toRawBytes(),Re.toRawBytes(),he);return Be.add(Re.multiplyUnsafe(Pe)).subtract(Ee).clearCofactor().equals(ie.ZERO)}return ne._setWindowSize(8),{CURVE:t,getPublicKey:ve,sign:te,verify:B,ExtendedPoint:ie,utils:{getExtendedPublicKey:de,randomPrivateKey:()=>l(r.BYTES),precompute(oe=8,he=ie.BASE){return he._setWindowSize(oe),he.multiply(BigInt(3)),he}}}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _0n$1=BigInt(0),_1n$3=BigInt(1);function validateOpts$1(e){return validateObject(e,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...e})}function montgomery(e){const t=validateOpts$1(e),{P:r}=t,n=H=>mod(H,r),o=t.montgomeryBits,a=Math.ceil(o/8),l=t.nByteLength,c=t.adjustScalarBytes||(H=>H),u=t.powPminus2||(H=>pow(H,r-BigInt(2),r));function g(H,se,ie){const ne=n(H*(se-ie));return se=n(se-ne),ie=n(ie+ne),[se,ie]}function _(H){if(typeof H=="bigint"&&_0n$1<=H&&H=_0n$1;N--){const B=ne>>N&_1n$3;ve^=B,pe=g(ve,me,ge),me=pe[0],ge=pe[1],pe=g(ve,_e,de),_e=pe[0],de=pe[1],ve=B;const ee=me+_e,oe=n(ee*ee),he=me-_e,be=n(he*he),Ce=oe-be,Oe=ge+de,Se=ge-de,$e=n(Se*ee),ke=n(Oe*he),Re=$e+ke,Be=$e-ke;ge=n(Re*Re),de=n(le*n(Be*Be)),me=n(oe*be),_e=n(Ce*(oe+n(x*Ce)))}pe=g(ve,me,ge),me=pe[0],ge=pe[1],pe=g(ve,_e,de),_e=pe[0],de=pe[1];const te=u(_e);return n(me*te)}function O(H){return numberToBytesLE(n(H),a)}function E(H){const se=ensureBytes("u coordinate",H,a);return l===a&&(se[l-1]&=127),bytesToNumberLE(se)}function T(H){const se=ensureBytes("scalar",H);if(se.length!==a&&se.length!==l)throw new Error(`Expected ${a} or ${l} bytes, got ${se.length}`);return bytesToNumberLE(c(se))}function D(H,se){const ie=E(se),ne=T(H),le=S(ie,ne);if(le===_0n$1)throw new Error("Invalid private or public key received");return O(le)}const $=O(t.Gu);function I(H){return D(H,$)}return{scalarMult:D,scalarMultBase:I,getSharedSecret:(H,se)=>D(H,se),getPublicKey:H=>I(H),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:$}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ED25519_P=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),ED25519_SQRT_M1=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");BigInt(0);const _1n$2=BigInt(1),_2n$1=BigInt(2),_5n=BigInt(5),_10n=BigInt(10),_20n=BigInt(20),_40n=BigInt(40),_80n=BigInt(80);function ed25519_pow_2_252_3(e){const t=ED25519_P,n=e*e%t*e%t,o=pow2(n,_2n$1,t)*n%t,a=pow2(o,_1n$2,t)*e%t,l=pow2(a,_5n,t)*a%t,c=pow2(l,_10n,t)*l%t,u=pow2(c,_20n,t)*c%t,g=pow2(u,_40n,t)*u%t,_=pow2(g,_80n,t)*g%t,x=pow2(_,_80n,t)*g%t,S=pow2(x,_10n,t)*l%t;return{pow_p_5_8:pow2(S,_2n$1,t)*e%t,b2:n}}function adjustScalarBytes(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function uvRatio(e,t){const r=ED25519_P,n=mod(t*t*t,r),o=mod(n*n*t,r),a=ed25519_pow_2_252_3(e*o).pow_p_5_8;let l=mod(e*n*a,r);const c=mod(t*l*l,r),u=l,g=mod(l*ED25519_SQRT_M1,r),_=c===e,x=c===mod(-e,r),S=c===mod(-e*ED25519_SQRT_M1,r);return _&&(l=u),(x||S)&&(l=g),isNegativeLE(l,r)&&(l=mod(-l,r)),{isValid:_||x,value:l}}const Fp$1=Field(ED25519_P,void 0,!0),ed25519Defaults={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Fp$1,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:sha512$3,randomBytes:randomBytes$1,adjustScalarBytes,uvRatio},ed25519=twistedEdwards(ed25519Defaults);function ed25519_domain(e,t,r){if(t.length>255)throw new Error("Context is too big");return concatBytes$1(utf8ToBytes$1("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}({...ed25519Defaults});({...ed25519Defaults});const x25519=(()=>montgomery({P:ED25519_P,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:e=>{const t=ED25519_P,{pow_p_5_8:r,b2:n}=ed25519_pow_2_252_3(e);return mod(pow2(r,BigInt(3),t)*n,t)},adjustScalarBytes,randomBytes:randomBytes$1}))(),ELL2_C1=(Fp$1.ORDER+BigInt(3))/BigInt(8);Fp$1.pow(_2n$1,ELL2_C1);Fp$1.sqrt(Fp$1.neg(Fp$1.ONE));(Fp$1.ORDER-BigInt(5))/BigInt(8);BigInt(486662);FpSqrtEven(Fp$1,Fp$1.neg(BigInt(486664)));BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235");BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578");BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838");BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class HMAC extends Hash{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,hash$1(t);const n=toBytes$1(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const o=this.blockLen,a=new Uint8Array(o);a.set(n.length>o?t.create().update(n).digest():n);for(let l=0;lnew HMAC(e,t).update(r).digest();hmac$1.create=(e,t)=>new HMAC(e,t);function extract(e,t,r){return hash$1(e),r===void 0&&(r=new Uint8Array(e.outputLen)),hmac$1(e,toBytes$1(r),toBytes$1(t))}const HKDF_COUNTER=new Uint8Array([0]),EMPTY_BUFFER=new Uint8Array;function expand(e,t,r,n=32){if(hash$1(e),number$2(n),n>255*e.outputLen)throw new Error("Length should be <= 255*HashLen");const o=Math.ceil(n/e.outputLen);r===void 0&&(r=EMPTY_BUFFER);const a=new Uint8Array(o*e.outputLen),l=hmac$1.create(e,t),c=l._cloneInto(),u=new Uint8Array(l.outputLen);for(let g=0;ge&t^~e&r,Maj=(e,t,r)=>e&t^e&r^t&r,SHA256_K=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),IV=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),SHA256_W=new Uint32Array(64);class SHA256 extends SHA2{constructor(){super(64,32,8,!1),this.A=IV[0]|0,this.B=IV[1]|0,this.C=IV[2]|0,this.D=IV[3]|0,this.E=IV[4]|0,this.F=IV[5]|0,this.G=IV[6]|0,this.H=IV[7]|0}get(){const{A:t,B:r,C:n,D:o,E:a,F:l,G:c,H:u}=this;return[t,r,n,o,a,l,c,u]}set(t,r,n,o,a,l,c,u){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=a|0,this.F=l|0,this.G=c|0,this.H=u|0}process(t,r){for(let x=0;x<16;x++,r+=4)SHA256_W[x]=t.getUint32(r,!1);for(let x=16;x<64;x++){const S=SHA256_W[x-15],O=SHA256_W[x-2],E=rotr(S,7)^rotr(S,18)^S>>>3,T=rotr(O,17)^rotr(O,19)^O>>>10;SHA256_W[x]=T+SHA256_W[x-7]+E+SHA256_W[x-16]|0}let{A:n,B:o,C:a,D:l,E:c,F:u,G:g,H:_}=this;for(let x=0;x<64;x++){const S=rotr(c,6)^rotr(c,11)^rotr(c,25),O=_+S+Chi(c,u,g)+SHA256_K[x]+SHA256_W[x]|0,T=(rotr(n,2)^rotr(n,13)^rotr(n,22))+Maj(n,o,a)|0;_=g,g=u,u=c,c=l+O|0,l=a,a=o,o=n,n=O+T|0}n=n+this.A|0,o=o+this.B|0,a=a+this.C|0,l=l+this.D|0,c=c+this.E|0,u=u+this.F|0,g=g+this.G|0,_=_+this.H|0,this.set(n,o,a,l,c,u,g,_)}roundClean(){SHA256_W.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const sha256$3=wrapConstructor(()=>new SHA256),pureJsCrypto={hashSHA256(e){return sha256$3(e)},getHKDF(e,t){const r=extract(sha256$3,t,e),o=expand(sha256$3,r,void 0,96),a=o.subarray(0,32),l=o.subarray(32,64),c=o.subarray(64,96);return[a,l,c]},generateX25519KeyPair(){const e=x25519.utils.randomPrivateKey();return{publicKey:x25519.getPublicKey(e),privateKey:e}},generateX25519KeyPairFromSeed(e){return{publicKey:x25519.getPublicKey(e),privateKey:e}},generateX25519SharedKey(e,t){return x25519.getSharedSecret(e,t)},chaCha20Poly1305Encrypt(e,t,r,n){return chacha20poly1305(n,t,r).encrypt(e)},chaCha20Poly1305Decrypt(e,t,r,n,o){return chacha20poly1305(n,t,r).decrypt(e,o)}},allocUnsafe$1=e=>globalThis.Buffer?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e),uint16BEEncode=e=>{const t=allocUnsafe$1(2);return new DataView(t.buffer,t.byteOffset,t.byteLength).setUint16(0,e,!1),t};uint16BEEncode.bytes=2;const uint16BEDecode=e=>{if(e.length<2)throw RangeError("Could not decode int16BE");return e instanceof Uint8Array?new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(0,!1):e.getUint16(0)};uint16BEDecode.bytes=2;function encode0(e){return concat$1([e.ne,e.ciphertext],e.ne.length+e.ciphertext.length)}function encode1(e){return concat$1([e.ne,e.ns,e.ciphertext],e.ne.length+e.ns.length+e.ciphertext.length)}function encode2(e){return concat$1([e.ns,e.ciphertext],e.ns.length+e.ciphertext.length)}function decode0(e){if(e.length<32)throw new Error("Cannot decode stage 0 MessageBuffer: length less than 32 bytes.");return{ne:e.subarray(0,32),ciphertext:e.subarray(32,e.length),ns:new Uint8Array(0)}}function decode1(e){if(e.length<80)throw new Error("Cannot decode stage 1 MessageBuffer: length less than 80 bytes.");return{ne:e.subarray(0,32),ns:e.subarray(32,80),ciphertext:e.subarray(80,e.length)}}function decode2(e){if(e.length<48)throw new Error("Cannot decode stage 2 MessageBuffer: length less than 48 bytes.");return{ne:new Uint8Array(0),ns:e.subarray(0,48),ciphertext:e.subarray(48,e.length)}}const CHACHA_TAG_LENGTH=16;function encryptStream(e,t){return async function*(r){for await(const n of r)for(let o=0;on.length&&(a=n.length);const l=e.encrypt(n.subarray(o,a),e.session);t?.encryptedPackets.increment(),yield uint16BEEncode(l.byteLength),yield l}}}function decryptStream(e,t){return async function*(r){for await(const n of r)for(let o=0;on.length&&(a=n.length),a-CHACHA_TAG_LENGTH0;)c.push(g%a),g=g/a|0}for(o=0;e[o]===0&&o=0;--o)n+=t[c[o]]}if(r){var _=new RegExp(".{1,"+r+"}","g");n=n.match(_).join(`\r `)}return n};api$2.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var r=_reverseAlphabets[t];if(!r){r=_reverseAlphabets[t]=[];for(var n=0;n>=8;for(;g>0;)l.push(g&255),g>>=8}for(var _=0;e[_]===a&&_0;)a.push(c%n),c=c/n|0}var u="";for(r=0;e.at(r)===0&&r=0;--r)u+=t[a[r]];return u}var forge$l=forge$m,baseN=baseN$1,util$6=util$7.exports=forge$l.util=forge$l.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){util$6.nextTick=process.nextTick,typeof setImmediate=="function"?util$6.setImmediate=setImmediate:util$6.setImmediate=util$6.nextTick;return}if(typeof setImmediate=="function"){util$6.setImmediate=function(){return setImmediate.apply(void 0,arguments)},util$6.nextTick=function(l){return setImmediate(l)};return}if(util$6.setImmediate=function(l){setTimeout(l,0)},typeof window<"u"&&typeof window.postMessage=="function"){let l=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(g){g()})}};var e="forge.setImmediate",t=[];util$6.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",l,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,o=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(o,{attributes:!0});var a=util$6.setImmediate;util$6.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),a(c)):(t.push(c),t.length===1&&o.setAttribute("a",n=!n))}}util$6.nextTick=util$6.setImmediate})();util$6.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;util$6.globalScope=function(){return util$6.isNodejs?commonjsGlobal$2:typeof self>"u"?window:self}();util$6.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};util$6.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};util$6.isArrayBufferView=function(e){return e&&util$6.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function _checkBitsParam(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}util$6.ByteBuffer=ByteStringBuffer;function ByteStringBuffer(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(util$6.isArrayBuffer(e)||util$6.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var r=0;r_MAX_CONSTRUCTED_STRING_LENGTH&&(this.data.substr(0,1),this._constructedStringLength=0)};util$6.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};util$6.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};util$6.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};util$6.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this};util$6.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};util$6.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(util$6.encodeUtf8(e))};util$6.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};util$6.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};util$6.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};util$6.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};util$6.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};util$6.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};util$6.ByteStringBuffer.prototype.putInt=function(e,t){_checkBitsParam(t);var r="";do t-=8,r+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(r)};util$6.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<0);return t};util$6.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<=r&&(t-=r<<1),t};util$6.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};util$6.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};util$6.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};util$6.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this};util$6.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};util$6.ByteStringBuffer.prototype.copy=function(){var e=util$6.createBuffer(this.data);return e.read=this.read,e};util$6.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};util$6.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};util$6.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this};util$6.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this};util$6.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};util$6.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this};util$6.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};util$6.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};util$6.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this};util$6.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};util$6.DataBuffer.prototype.putInt=function(e,t){_checkBitsParam(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};util$6.DataBuffer.prototype.putSignedInt=function(e,t){return _checkBitsParam(t),this.accommodate(t/8),e<0&&(e+=2<0);return t};util$6.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<=r&&(t-=r<<1),t};util$6.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};util$6.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};util$6.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};util$6.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};util$6.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};util$6.DataBuffer.prototype.copy=function(){return new util$6.DataBuffer(this)};util$6.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};util$6.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};util$6.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};util$6.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};util$6.xorBytes=function(e,t,r){for(var n="",o="",a="",l=0,c=0;r>0;--r,++l)o=e.charCodeAt(l)^t.charCodeAt(l),c>=10&&(n+=a,a="",c=0),a+=String.fromCharCode(o),++c;return n+=a,n};util$6.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var _base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_base64Idx=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],_base58="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";util$6.encode64=function(e,t){for(var r="",n="",o,a,l,c=0;c>2),r+=_base64.charAt((o&3)<<4|a>>4),isNaN(a)?r+="==":(r+=_base64.charAt((a&15)<<2|l>>6),r+=isNaN(l)?"=":_base64.charAt(l&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r `,r=r.substr(t));return n+=r,n};util$6.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,o,a,l=0;l>4),o!==64&&(t+=String.fromCharCode((n&15)<<4|o>>2),a!==64&&(t+=String.fromCharCode((o&3)<<6|a)));return t};util$6.encodeUtf8=function(e){return unescape(encodeURIComponent(e))};util$6.decodeUtf8=function(e){return decodeURIComponent(escape(e))};util$6.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:baseN.encode,decode:baseN.decode}};util$6.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)};util$6.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var o=r,a=0;a>2),r+=_base64.charAt((o&3)<<4|a>>4),isNaN(a)?r+="==":(r+=_base64.charAt((a&15)<<2|l>>6),r+=isNaN(l)?"=":_base64.charAt(l&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r `,r=r.substr(t));return n+=r,n};util$6.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var o,a,l,c,u=0,g=r;u>4,l!==64&&(n[g++]=(a&15)<<4|l>>2,c!==64&&(n[g++]=(l&3)<<6|c));return t?g-r:n.subarray(0,g)};util$6.binary.base58.encode=function(e,t){return util$6.binary.baseN.encode(e,_base58,t)};util$6.binary.base58.decode=function(e,t){return util$6.binary.baseN.decode(e,_base58,t)};util$6.text={utf8:{},utf16:{}};util$6.text.utf8.encode=function(e,t,r){e=util$6.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var o=r,a=0;a"u"&&(r=["web","flash"]);var o,a=!1,l=null;for(var c in r){o=r[c];try{if(o==="flash"||o==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),a=o==="flash"}(o==="web"||o==="both")&&(t[0]=localStorage,n=e.apply(this,t),a=!0)}catch(u){l=u}if(a)break}if(!a)throw l;return n};util$6.setItem=function(e,t,r,n,o){_callStorageFunction(_setItem,arguments,o)};util$6.getItem=function(e,t,r,n){return _callStorageFunction(_getItem,arguments,n)};util$6.removeItem=function(e,t,r,n){_callStorageFunction(_removeItem,arguments,n)};util$6.clearItems=function(e,t,r){_callStorageFunction(_clearItems,arguments,r)};util$6.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};util$6.format=function(e){for(var t=/%./g,r,n,o=0,a=[],l=0;r=t.exec(e);){n=e.substring(l,t.lastIndex-2),n.length>0&&a.push(n),l=t.lastIndex;var c=r[0][1];switch(c){case"s":case"o":o");break;case"%":a.push("%");break;default:a.push("<%"+c+"?>")}}return a.push(e.substring(l)),a.join("")};util$6.formatNumber=function(e,t,r,n){var o=e,a=isNaN(t=Math.abs(t))?2:t,l=r===void 0?",":r,c=n===void 0?".":n,u=o<0?"-":"",g=parseInt(o=Math.abs(+o||0).toFixed(a),10)+"",_=g.length>3?g.length%3:0;return u+(_?g.substr(0,_)+c:"")+g.substr(_).replace(/(\d{3})(?=\d)/g,"$1"+c)+(a?l+Math.abs(o-g).toFixed(a).slice(2):"")};util$6.formatSize=function(e){return e>=1073741824?e=util$6.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=util$6.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=util$6.formatNumber(e/1024,0)+" KiB":e=util$6.formatNumber(e,0)+" bytes",e};util$6.bytesFromIP=function(e){return e.indexOf(".")!==-1?util$6.bytesFromIPv4(e):e.indexOf(":")!==-1?util$6.bytesFromIPv6(e):null};util$6.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=util$6.createBuffer(),r=0;rr[n].end-r[n].start&&(n=r.length-1))}t.push(a)}if(r.length>0){var u=r[n];u.end-u.start>0&&(t.splice(u.start,u.end-u.start+1,""),u.start===0&&t.unshift(""),u.end===7&&t.push(""))}return t.join(":")};util$6.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in util$6&&!e.update)return t(null,util$6.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return util$6.cores=navigator.hardwareConcurrency,t(null,util$6.cores);if(typeof Worker>"u")return util$6.cores=1,t(null,util$6.cores);if(typeof Blob>"u")return util$6.cores=2,t(null,util$6.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(l){var c=Date.now(),u=c+4;self.postMessage({st:c,et:u})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(l,c,u){if(c===0){var g=Math.floor(l.reduce(function(_,x){return _+x},0)/l.length);return util$6.cores=Math.max(1,g),URL.revokeObjectURL(r),t(null,util$6.cores)}o(u,function(_,x){l.push(a(u,x)),n(l,c-1,u)})}function o(l,c){for(var u=[],g=[],_=0;_O.st&&_.st_.st&&O.st<_.et)&&x.push(S)}return u.reduce(function(E,T){return Math.max(E,T.length)},0)}};var forge$k=forge$m;forge$k.pki=forge$k.pki||{};var oids$1=forge$k.pki.oids=forge$k.oids=forge$k.oids||{};function _IN(e,t){oids$1[e]=t,oids$1[t]=e}function _I_(e,t){oids$1[e]=t}_IN("1.2.840.113549.1.1.1","rsaEncryption");_IN("1.2.840.113549.1.1.4","md5WithRSAEncryption");_IN("1.2.840.113549.1.1.5","sha1WithRSAEncryption");_IN("1.2.840.113549.1.1.7","RSAES-OAEP");_IN("1.2.840.113549.1.1.8","mgf1");_IN("1.2.840.113549.1.1.9","pSpecified");_IN("1.2.840.113549.1.1.10","RSASSA-PSS");_IN("1.2.840.113549.1.1.11","sha256WithRSAEncryption");_IN("1.2.840.113549.1.1.12","sha384WithRSAEncryption");_IN("1.2.840.113549.1.1.13","sha512WithRSAEncryption");_IN("1.3.101.112","EdDSA25519");_IN("1.2.840.10040.4.3","dsa-with-sha1");_IN("1.3.14.3.2.7","desCBC");_IN("1.3.14.3.2.26","sha1");_IN("1.3.14.3.2.29","sha1WithRSASignature");_IN("2.16.840.1.101.3.4.2.1","sha256");_IN("2.16.840.1.101.3.4.2.2","sha384");_IN("2.16.840.1.101.3.4.2.3","sha512");_IN("2.16.840.1.101.3.4.2.4","sha224");_IN("2.16.840.1.101.3.4.2.5","sha512-224");_IN("2.16.840.1.101.3.4.2.6","sha512-256");_IN("1.2.840.113549.2.2","md2");_IN("1.2.840.113549.2.5","md5");_IN("1.2.840.113549.1.7.1","data");_IN("1.2.840.113549.1.7.2","signedData");_IN("1.2.840.113549.1.7.3","envelopedData");_IN("1.2.840.113549.1.7.4","signedAndEnvelopedData");_IN("1.2.840.113549.1.7.5","digestedData");_IN("1.2.840.113549.1.7.6","encryptedData");_IN("1.2.840.113549.1.9.1","emailAddress");_IN("1.2.840.113549.1.9.2","unstructuredName");_IN("1.2.840.113549.1.9.3","contentType");_IN("1.2.840.113549.1.9.4","messageDigest");_IN("1.2.840.113549.1.9.5","signingTime");_IN("1.2.840.113549.1.9.6","counterSignature");_IN("1.2.840.113549.1.9.7","challengePassword");_IN("1.2.840.113549.1.9.8","unstructuredAddress");_IN("1.2.840.113549.1.9.14","extensionRequest");_IN("1.2.840.113549.1.9.20","friendlyName");_IN("1.2.840.113549.1.9.21","localKeyId");_IN("1.2.840.113549.1.9.22.1","x509Certificate");_IN("1.2.840.113549.1.12.10.1.1","keyBag");_IN("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");_IN("1.2.840.113549.1.12.10.1.3","certBag");_IN("1.2.840.113549.1.12.10.1.4","crlBag");_IN("1.2.840.113549.1.12.10.1.5","secretBag");_IN("1.2.840.113549.1.12.10.1.6","safeContentsBag");_IN("1.2.840.113549.1.5.13","pkcs5PBES2");_IN("1.2.840.113549.1.5.12","pkcs5PBKDF2");_IN("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");_IN("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");_IN("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");_IN("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");_IN("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");_IN("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");_IN("1.2.840.113549.2.7","hmacWithSHA1");_IN("1.2.840.113549.2.8","hmacWithSHA224");_IN("1.2.840.113549.2.9","hmacWithSHA256");_IN("1.2.840.113549.2.10","hmacWithSHA384");_IN("1.2.840.113549.2.11","hmacWithSHA512");_IN("1.2.840.113549.3.7","des-EDE3-CBC");_IN("2.16.840.1.101.3.4.1.2","aes128-CBC");_IN("2.16.840.1.101.3.4.1.22","aes192-CBC");_IN("2.16.840.1.101.3.4.1.42","aes256-CBC");_IN("2.5.4.3","commonName");_IN("2.5.4.4","surname");_IN("2.5.4.5","serialNumber");_IN("2.5.4.6","countryName");_IN("2.5.4.7","localityName");_IN("2.5.4.8","stateOrProvinceName");_IN("2.5.4.9","streetAddress");_IN("2.5.4.10","organizationName");_IN("2.5.4.11","organizationalUnitName");_IN("2.5.4.12","title");_IN("2.5.4.13","description");_IN("2.5.4.15","businessCategory");_IN("2.5.4.17","postalCode");_IN("2.5.4.42","givenName");_IN("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");_IN("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");_IN("2.16.840.1.113730.1.1","nsCertType");_IN("2.16.840.1.113730.1.13","nsComment");_I_("2.5.29.1","authorityKeyIdentifier");_I_("2.5.29.2","keyAttributes");_I_("2.5.29.3","certificatePolicies");_I_("2.5.29.4","keyUsageRestriction");_I_("2.5.29.5","policyMapping");_I_("2.5.29.6","subtreesConstraint");_I_("2.5.29.7","subjectAltName");_I_("2.5.29.8","issuerAltName");_I_("2.5.29.9","subjectDirectoryAttributes");_I_("2.5.29.10","basicConstraints");_I_("2.5.29.11","nameConstraints");_I_("2.5.29.12","policyConstraints");_I_("2.5.29.13","basicConstraints");_IN("2.5.29.14","subjectKeyIdentifier");_IN("2.5.29.15","keyUsage");_I_("2.5.29.16","privateKeyUsagePeriod");_IN("2.5.29.17","subjectAltName");_IN("2.5.29.18","issuerAltName");_IN("2.5.29.19","basicConstraints");_I_("2.5.29.20","cRLNumber");_I_("2.5.29.21","cRLReason");_I_("2.5.29.22","expirationDate");_I_("2.5.29.23","instructionCode");_I_("2.5.29.24","invalidityDate");_I_("2.5.29.25","cRLDistributionPoints");_I_("2.5.29.26","issuingDistributionPoint");_I_("2.5.29.27","deltaCRLIndicator");_I_("2.5.29.28","issuingDistributionPoint");_I_("2.5.29.29","certificateIssuer");_I_("2.5.29.30","nameConstraints");_IN("2.5.29.31","cRLDistributionPoints");_IN("2.5.29.32","certificatePolicies");_I_("2.5.29.33","policyMappings");_I_("2.5.29.34","policyConstraints");_IN("2.5.29.35","authorityKeyIdentifier");_I_("2.5.29.36","policyConstraints");_IN("2.5.29.37","extKeyUsage");_I_("2.5.29.46","freshestCRL");_I_("2.5.29.54","inhibitAnyPolicy");_IN("1.3.6.1.4.1.11129.2.4.2","timestampList");_IN("1.3.6.1.5.5.7.1.1","authorityInfoAccess");_IN("1.3.6.1.5.5.7.3.1","serverAuth");_IN("1.3.6.1.5.5.7.3.2","clientAuth");_IN("1.3.6.1.5.5.7.3.3","codeSigning");_IN("1.3.6.1.5.5.7.3.4","emailProtection");_IN("1.3.6.1.5.5.7.3.8","timeStamping");var forge$j=forge$m,asn1$2=forge$j.asn1=forge$j.asn1||{};asn1$2.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};asn1$2.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};asn1$2.create=function(e,t,r,n,o){if(forge$j.util.isArray(n)){for(var a=[],l=0;lt){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}var _getValueLength=function(e,t){var r=e.getByte();if(t--,r!==128){var n,o=r&128;if(!o)n=r;else{var a=r&127;_checkBufferLength(e,t,a),n=e.getInt(a<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};asn1$2.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=forge$j.util.createBuffer(e));var r=e.length(),n=_fromDer(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var o=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw o.byteCount=r,o.remaining=e.length(),o}return n};function _fromDer(e,t,r,n){var o;_checkBufferLength(e,t,2);var a=e.getByte();t--;var l=a&192,c=a&31;o=e.length();var u=_getValueLength(e,t);if(t-=o-e.length(),u!==void 0&&u>t){if(n.strict){var g=new Error("Too few bytes to read ASN.1 value.");throw g.available=e.length(),g.remaining=t,g.requested=u,g}u=t}var _,x,S=(a&32)===32;if(S)if(_=[],u===void 0)for(;;){if(_checkBufferLength(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}o=e.length(),_.push(_fromDer(e,t,r+1,n)),t-=o-e.length()}else for(;u>0;)o=e.length(),_.push(_fromDer(e,u,r+1,n)),t-=o-e.length(),u-=o-e.length();if(_===void 0&&l===asn1$2.Class.UNIVERSAL&&c===asn1$2.Type.BITSTRING&&(x=e.bytes(u)),_===void 0&&n.decodeBitStrings&&l===asn1$2.Class.UNIVERSAL&&c===asn1$2.Type.BITSTRING&&u>1){var O=e.read,E=t,T=0;if(c===asn1$2.Type.BITSTRING&&(_checkBufferLength(e,t,1),T=e.getByte(),t--),T===0)try{o=e.length();var D={strict:!0,decodeBitStrings:!0},$=_fromDer(e,t,r+1,D),I=o-e.length();t-=I,c==asn1$2.Type.BITSTRING&&I++;var H=$.tagClass;I===u&&(H===asn1$2.Class.UNIVERSAL||H===asn1$2.Class.CONTEXT_SPECIFIC)&&(_=[$])}catch{}_===void 0&&(e.read=O,t=E)}if(_===void 0){if(u===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");u=t}if(c===asn1$2.Type.BMPSTRING)for(_="";u>0;u-=2)_checkBufferLength(e,t,2),_+=String.fromCharCode(e.getInt16()),t-=2;else _=e.getBytes(u),t-=u}var se=x===void 0?null:{bitStringContents:x};return asn1$2.create(l,c,S,_,se)}asn1$2.toDer=function(e){var t=forge$j.util.createBuffer(),r=e.tagClass|e.type,n=forge$j.util.createBuffer(),o=!1;if("bitStringContents"in e&&(o=!0,e.original&&(o=asn1$2.equals(e,e.original))),o)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var a=0;a1&&(e.value.charCodeAt(0)===0&&(e.value.charCodeAt(1)&128)===0||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var l=n.length(),c="";do c+=String.fromCharCode(l&255),l=l>>>8;while(l>0);t.putByte(c.length|128);for(var a=c.length-1;a>=0;--a)t.putByte(c.charCodeAt(a))}return t.putBuffer(n),t};asn1$2.oidToDer=function(e){var t=e.split("."),r=forge$j.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,o,a,l,c=2;c>>7,n||(l|=128),o.push(l),n=!1;while(a>0);for(var u=o.length-1;u>=0;--u)r.putByte(o[u])}return r};asn1$2.derToOid=function(e){var t;typeof e=="string"&&(e=forge$j.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};asn1$2.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,o=parseInt(e.substr(4,2),10),a=parseInt(e.substr(6,2),10),l=parseInt(e.substr(8,2),10),c=0;if(e.length>11){var u=e.charAt(10),g=10;u!=="+"&&u!=="-"&&(c=parseInt(e.substr(10,2),10),g+=2)}if(t.setUTCFullYear(r,n,o),t.setUTCHours(a,l,c,0),g&&(u=e.charAt(g),u==="+"||u==="-")){var _=parseInt(e.substr(g+1,2),10),x=parseInt(e.substr(g+4,2),10),S=_*60+x;S*=6e4,u==="+"?t.setTime(+t-S):t.setTime(+t+S)}return t};asn1$2.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,o=parseInt(e.substr(6,2),10),a=parseInt(e.substr(8,2),10),l=parseInt(e.substr(10,2),10),c=parseInt(e.substr(12,2),10),u=0,g=0,_=!1;e.charAt(e.length-1)==="Z"&&(_=!0);var x=e.length-5,S=e.charAt(x);if(S==="+"||S==="-"){var O=parseInt(e.substr(x+1,2),10),E=parseInt(e.substr(x+4,2),10);g=O*60+E,g*=6e4,S==="+"&&(g*=-1),_=!0}return e.charAt(14)==="."&&(u=parseFloat(e.substr(14),10)*1e3),_?(t.setUTCFullYear(r,n,o),t.setUTCHours(a,l,c,u),t.setTime(+t+g)):(t.setFullYear(r,n,o),t.setHours(a,l,c,u)),t};asn1$2.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r};asn1$2.derToInteger=function(e){typeof e=="string"&&(e=forge$j.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};asn1$2.validate=function(e,t,r,n){var o=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(o=!0,t.value&&forge$j.util.isArray(t.value))for(var a=0,l=0;o&&l0&&(n+=` diff --git a/assets/index.f4541f04.css b/assets/index.f5aa938e.css similarity index 96% rename from assets/index.f4541f04.css rename to assets/index.f5aa938e.css index 7aba8ef..a9c9865 100644 --- a/assets/index.f4541f04.css +++ b/assets/index.f5aa938e.css @@ -1 +1 @@ -.notify{font-size:20px!important;font-weight:700}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box;background:#fff;background:rgba(255,255,255,.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:white;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.marker-cluster-small{background-color:#b5e28c99}.marker-cluster-small div{background-color:#6ecc3999}.marker-cluster-medium{background-color:#f1d35799}.marker-cluster-medium div{background-color:#f0c20c99}.marker-cluster-large{background-color:#fd9c7399}.marker-cluster-large div{background-color:#f1801799}.leaflet-oldie .marker-cluster-small{background-color:#b5e28c}.leaflet-oldie .marker-cluster-small div{background-color:#6ecc39}.leaflet-oldie .marker-cluster-medium{background-color:#f1d357}.leaflet-oldie .marker-cluster-medium div{background-color:#f0c20c}.leaflet-oldie .marker-cluster-large{background-color:#fd9c73}.leaflet-oldie .marker-cluster-large div{background-color:#f18017}.marker-cluster{background-clip:padding-box;border-radius:20px}.marker-cluster div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:15px;font:12px Helvetica Neue,Arial,Helvetica,sans-serif}.marker-cluster span{line-height:30px}.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out,-o-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.leaflet-control-velocity{background-color:#ffffffb3;padding:0 5px;margin:0!important;color:#333;font:11px/1.5 Helvetica Neue,Arial,Helvetica,sans-serif}.velocity-overlay{position:absolute;z-index:1}a[data-v-c34104c4],a b[data-v-c34104c4]{display:block}.addresssm[data-v-c34104c4]{color:var(--app-textcolor);font-size:.7em}section[data-v-c34104c4]{justify-content:space-between}section[data-v-c34104c4]:not(:last-child){padding-bottom:var(--gap);border-bottom:1px solid var(--app-textcolor)}button[data-v-c34104c4]{border:0;cursor:pointer;font-size:1.2em;transition:color .2s ease-in}button[data-v-c34104c4]:hover{color:var(--color-red)}.mapcontrols[data-v-7ce80aab]{bottom:0;box-sizing:border-box;display:flex;justify-content:space-between;left:0;padding:0 var(--app-controlsgap) var(--app-controlsgap);position:absolute;right:0;z-index:12;pointer-events:none}.mapcontrols>*[data-v-7ce80aab]{pointer-events:all}.popover-bottom-right[data-v-7ce80aab],.popover-bottom-left[data-v-7ce80aab]{bottom:calc(var(--app-inputheight) + var(--app-controlsgap) * 2);max-width:calc(100vw - var(--app-controlsgap) * 2)}.popover-bottom-right[data-v-7ce80aab]{right:var(--app-controlsgap)}.popover-bottom-left[data-v-7ce80aab]{left:var(--app-controlsgap)}.popovercontrol.active{border-color:var(--color-green)}.popovercontrol.active path{fill:var(--color-green)!important}.leaflet-control-attribution,.leaflet-container .leaflet-control-attribution{font-size:calc(var(--font-size) * .5);background:none;margin:0!important}.leaflet-bottom .leaflet-control-locate{border:var(--app-borderwidth) solid var(--app-bordercolor)}.leaflet-bottom .leaflet-control-locate .leaflet-bar-part-single{background:var(--app-inputbg)}.leaflet-right .leaflet-control{margin-right:var(--gap)}.leaflet-bottom .leaflet-control{margin-bottom:.3rem}.leaflet-control-locate a .leaflet-control-locate-location-arrow,.leaflet-control-locate.following a .leaflet-control-locate-location-arrow{background:var(--app-bordercolor)}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-bar a,.leaflet-bar a,.leaflet-bar{border-radius:50%!important}.leaflet-touch .leaflet-bar a,.leaflet-bar a{width:calc(var(--app-inputheight) - var(--app-borderwidth) * 2);height:calc(var(--app-inputheight) - var(--app-borderwidth) * 2);line-height:1;display:flex;align-items:center;justify-content:center;border-radius:50%!important}.marker-cluster-circle{border-width:2px;border-style:solid;border-radius:18px}.marker-cluster-circle span{line-height:27px;font-weight:700}.marker-cluster-msg{font-weight:700;background-size:contain;color:#fff;padding-top:4px;font-size:16px;width:40px!important;height:40px!important}.marker-icon-brand{width:35px!important;height:35px!important;border-radius:50%}.marker-icon-msg{width:40px;height:40px}.popoovergeo-tipclose.svg-inline--fa path{fill:var(--color-light)!important}.mapcontainer[data-v-f1744b47]{background-color:var(--color-light-gray);position:absolute;top:0;left:0;z-index:0;width:100%;height:100svh;overflow:hidden}.mapcontainer.inactive[data-v-f1744b47]{filter:grayscale(100%)}.popoovergeo[data-v-f1744b47]{position:relative}.popoovergeo-tip[data-v-f1744b47]{--gettime: var(--47a7af95);--openedtime: calc(var(--gettime)/1000 * 1s);position:absolute;padding:5px 25px 5px 10px;background-color:color-mix(in srgb,var(--color-dark) 70%,transparent);color:var(--color-light);backdrop-filter:blur(5px);font-weight:700;border-radius:2px;bottom:calc(var(--app-inputheight) + 10px);width:220px;right:-10px;font-size:.9em}.popoovergeo-tip[data-v-f1744b47]:before{content:"";height:2px;width:100%;position:absolute;top:0;left:0;background-color:var(--color-light);animation:rolldownLeft var(--openedtime) linear 0s forwards;transform-origin:0 50%}.popoovergeo-tip[data-v-f1744b47]:after{content:"";width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid color-mix(in srgb,var(--color-dark) 70%,transparent);position:absolute;bottom:-10px;right:15px}.popoovergeo-tipclose[data-v-f1744b47]{position:absolute;top:5px;right:5px}.st0[data-v-1ca21f0d]{fill:#fff;stroke:#000;stroke-width:.5;stroke-miterlimit:10}header[data-v-a4474917]{left:0;padding:var(--app-controlsgap);position:absolute;top:0;width:100vw;z-index:10;pointer-events:none}header>*[data-v-a4474917]{pointer-events:all}.appicon[data-v-a4474917]{border-radius:.5rem;display:block;overflow:hidden;user-select:none;width:2.5rem}.appicon img[data-v-a4474917]{display:block;max-width:100%}.popover-top-right[data-v-a4474917]{top:calc(var(--gap) * 3 + var(--app-inputheight));right:var(--gap);width:500px;max-width:calc(100vw - var(--gap) * 2)}@supports not selector(:popover-open){.popover-top-right[data-v-a4474917]{right:var(--gap)!important}}#about p[data-v-a4474917]{font-size:.9em}.navlinks[data-v-a4474917]{font-weight:700}.navlinks a[data-v-a4474917]{display:block}.navlinks a[data-v-a4474917]:not(:last-child){margin-bottom:calc(var(--gap) * .5)}.sensorscount[data-v-a4474917]{color:#fff;background:var(--color-orange);padding:4px 10px;display:block;border-radius:5px;display:flex;gap:10px;align-items:center}.sensorscount svg[data-v-a4474917]{width:22px}.install-pwa__container[data-v-b59a209f]{position:relative;display:flex;align-items:center;justify-content:space-between;background-color:#fff;z-index:10}.install-pwa__content img[data-v-b59a209f]{width:36px;height:36px;border-radius:5px}.install-pwa__content[data-v-b59a209f]{display:flex;align-items:center;gap:var(--gap)}.install-pwa__content h3[data-v-b59a209f]{margin:0;margin-bottom:calc(var(--gap) * .2);font-size:calc(var(--font-size) * .8);text-transform:none}.install-pwa__btn[data-v-b59a209f]{padding:calc(var(--gap) * .2) calc(var(--gap) * 1.8);font-weight:700;font-family:var(--font-family--normal);color:#fff;background-color:#3658c6;border-radius:15px;border:none;cursor:pointer}.install-pwa__remove[data-v-b59a209f]{width:20px;height:20px;background-image:url('data:image/svg+xml,');background-position:center;background-repeat:no-repeat;border:none;cursor:pointer}h2[data-v-c5bfb7c2]{margin-bottom:calc(var(--gap) * .7)}.sensors-panel[data-v-c5bfb7c2]{position:absolute;top:40px;bottom:0;right:0;z-index:14;width:48%}.sensor-popup.popup-js[data-v-c5bfb7c2]{padding-right:0!important;background-color:var(--sensor-popup-bg)}.sensor-popup.container[data-v-c5bfb7c2]{padding:0;padding-bottom:calc(var(--gap) * 6)}.sensor-popup .popup__close[data-v-c5bfb7c2]{right:calc(var(--gap) * 2);top:1.5rem;color:#fff}.sensor-popup__header[data-v-c5bfb7c2]{min-height:110px;padding:calc(var(--gap) * 2) var(--gap);display:flex;align-items:center;color:#fff}.sensor-popup__header-wrapper .fa-copy[data-v-c5bfb7c2]{margin-left:var(--gap)}.sensor-popup__header--neutral[data-v-c5bfb7c2]{background-color:#747a80}.sensor-popup__header--good[data-v-c5bfb7c2]{background-color:var(--color-green)}.sensor-popup__header--attention[data-v-c5bfb7c2]{background-color:var(--color-orange)}.sensor-popup__header--danger[data-v-c5bfb7c2]{background-color:var(--color-red)}.sensor-popup__header a[data-v-c5bfb7c2]{color:inherit}.sensor-popup__header-icon[data-v-c5bfb7c2]{font-size:3rem;margin-right:calc(var(--gap) * 2)}.sensor-popup--subtitle[data-v-c5bfb7c2]{display:flex;align-items:center;font-family:var(--font-family--normal);text-transform:none}.sensor-popup--subtitle span[data-v-c5bfb7c2]:not(:last-child){margin-right:calc(var(--gap) * 2)}ul.sensor-popup--data[data-v-c5bfb7c2]{display:flex;align-items:center;flex-wrap:wrap;list-style:none;padding:calc(var(--gap) * .7) 0}ul.sensor-popup--data .icon[data-v-c5bfb7c2]{display:inline-block;font-size:calc(var(--gap) * 1.5);text-align:center;width:calc(var(--gap) * 2.5)}.sensor-popup--content[data-v-c5bfb7c2]{height:80%;overflow-y:auto;padding:calc(var(--gap) * 2);padding-top:0;padding-right:calc(var(--gap) * 2.2);padding-bottom:calc(var(--gap) * 2);margin-top:var(--gap);margin-right:calc(var(--gap) * 2)}.sensor-popup--content img[data-v-c5bfb7c2]{max-width:100%;width:100%}@media screen and (max-width: 1080px){.sensors-panel[data-v-c5bfb7c2]{width:90%}}@media screen and (max-width: 580px){h2[data-v-c5bfb7c2]{font-size:1rem}.sensors-panel[data-v-c5bfb7c2]{position:absolute;top:calc(var(--gap) * 16);left:0;right:0;bottom:0;z-index:9;width:100%}.sensor-popup.container[data-v-c5bfb7c2]{padding-bottom:calc(var(--gap) * 5)}.sensor-popup .popup__close[data-v-c5bfb7c2]{right:var(--gap)}.sensor-popup__header[data-v-c5bfb7c2]{flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--gap)}.sensor-popup__header-icon[data-v-c5bfb7c2]{font-size:2rem;line-height:1.5;margin-right:0}.sensor-popup--subtitle span[data-v-c5bfb7c2]:not(:last-child){margin-right:var(--gap)}}button[data-v-81c30ff3]{padding-right:calc(var(--app-inputpadding)*2);padding-left:calc(var(--app-inputpadding)*2)}.highcharts-legend-item{font-weight:900}.highcharts-legend-item .highcharts-graph,.highcharts-legend-item .highcharts-point{stroke:#000!important}.highcharts-legend-item .highcharts-point{fill:#000!important;stroke-width:2}.highcharts-legend-item-hidden text{fill:#999!important;color:#999!important;text-decoration:none!important}.highcharts-legend-item-hidden .highcharts-graph,.highcharts-legend-item-hidden .highcharts-point{stroke:#999!important}.highcharts-legend-item-hidden .highcharts-point{fill:#999!important}.copy[data-v-951f909f]{cursor:pointer}.fa-copy[data-v-951f909f],.fa-check[data-v-951f909f]{margin-left:calc(var(--gap) * .8);color:var(--color-blue)}.copy-btn[data-v-951f909f]{margin-left:calc(var(--gap) * .8);width:14px;height:16px;padding:calc(var(--gap) * .1);background-image:url("data:image/svg+xml,%0A%3Csvg width='14' height='17' viewBox='0 0 14 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.3752 0H12.3964C13.1986 0 13.8549 0.656284 13.8549 1.45841V10.9381C13.8549 11.3391 13.5267 11.6673 13.1257 11.6673C12.7246 11.6673 12.3964 11.3391 12.3964 10.9381V2.18761C12.3964 1.78655 12.0683 1.45841 11.6672 1.45841H4.3752C3.97414 1.45841 3.646 1.13027 3.646 0.729204C3.646 0.328142 3.97414 0 4.3752 0ZM1.45839 2.91682H9.47963C10.2818 2.91682 10.938 3.5731 10.938 4.37523V14.5841C10.938 15.3862 10.2818 16.0425 9.47963 16.0425H1.45839C0.656261 16.0425 -2.19345e-05 15.3862 -2.19345e-05 14.5841V4.37523C-2.19345e-05 3.5731 0.656261 2.91682 1.45839 2.91682ZM2.18759 14.5841H8.75043C9.15149 14.5841 9.47963 14.2559 9.47963 13.8549V5.10443C9.47963 4.70337 9.15149 4.37523 8.75043 4.37523H2.18759C1.78653 4.37523 1.45839 4.70337 1.45839 5.10443V13.8549C1.45839 14.2559 1.78653 14.5841 2.18759 14.5841Z' fill='%2303A5ED'/%3E%3C/svg%3E%0A");background-size:100%;background-position:center;background-repeat:no-repeat;border:none;cursor:pointer}@media screen and (max-width: 680px){.copy[data-v-951f909f]{font-size:calc(var(--font-size) * .8)}}.popup-js.active[data-v-7333a375]{container:popup / inline-size;background:var(--app-popoverbg);border-radius:0;bottom:0;box-sizing:border-box;color:var(--app-textcolor);padding:var(--gap);position:absolute;right:0;top:0;width:80vw;max-width:1000px;z-index:100}.scrollable-y[data-v-7333a375]{max-height:90%}.close[data-v-7333a375]{border:0;color:var(--app-textcolor);cursor:pointer;font-size:1.2em;position:absolute;right:var(--gap);top:var(--gap)}.close[data-v-7333a375]:hover{color:var(--color-red)}.flexline[data-v-7333a375]{gap:calc(var(--gap) * 2)}.flexline .flexline[data-v-7333a375]{gap:var(--gap)}h3.flexline[data-v-7333a375]{gap:calc(var(--gap) * .5);max-width:calc(100% - var(--gap) * 2)}.icontitle[data-v-7333a375]{display:inline-block;max-height:calc(var(--font-size) * 2)}@media screen and (max-width: 700px){.popup-js.active[data-v-7333a375]{left:0;width:100vw;top:30vw;padding-right:calc(var(--gap) * .5)}}@container popup (min-width: 400px){.close[data-v-7333a375]{font-size:1.6em}}@container popup (max-width: 400px){h3.flexline[data-v-7333a375]{max-width:calc(100% - var(--gap) * 3)}}.infoline.flexline[data-v-7333a375]{gap:calc(var(--gap) * .5)}.infoline-title[data-v-7333a375]{font-weight:700}.scalegrid[data-v-7333a375]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);font-size:.8em}.scalegrid p[data-v-7333a375]{margin-bottom:calc(var(--gap) * .5)}.scales-color[data-v-7333a375]{position:relative;padding-left:calc(var(--gap) * 2)}.scales-color[data-v-7333a375]:before{content:"";display:block;position:absolute;background-color:var(--color);top:0;left:0;bottom:0;width:var(--gap)}.rt-title[data-v-7333a375]{font-weight:900}.rt-title[data-v-7333a375]:before{animation:blink infinite 1.5s;background-color:var(--color-green);border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.rt-time[data-v-7333a375]{font-size:.8em;font-weight:300;padding-left:13px}.rt-unit[data-v-7333a375],.rt-number[data-v-7333a375]{font-size:.8em;font-weight:900}.optout-form[data-v-ee8b7997]{padding:1.5rem .8rem;border:2px solid #333}.optout-form strong[data-v-ee8b7997]{padding-left:10px}.privacy-policy ul[data-v-168a0093]{padding-left:20px;list-style:disc}.privacy-policy__wrapper[data-v-168a0093]:not(:last-of-type){margin-bottom:3rem}.mb[data-v-10839161]{margin-bottom:calc(var(--gap) * 2)!important}.air-measurements__header p[data-v-10839161]{font-size:calc(var(--font-size) * .9);font-weight:500;line-height:1.7}.air-measurements__wrapper[data-v-10839161]:not(:last-of-type){margin-bottom:5rem}.air-measurements__header[data-v-10839161]{max-width:800px;margin:0 auto;margin-bottom:calc(var(--gap) * 2)}.air-measurements__content[data-v-10839161]{display:grid;grid-template-columns:350px 630px;justify-content:center;gap:calc(var(--gap) * 2);font-weight:500}.air-measurements__recs[data-v-10839161]{font-size:calc(var(--font-size) * .9)}.air-measurements ol[data-v-10839161]{padding-left:calc(var(--gap) * 1.5);margin-bottom:calc(var(--gap) * .5)}.air-measurements ul li[data-v-10839161]{width:100%;padding:calc(var(--gap) * .5) calc(var(--gap) * .9);color:var(--color-light);font-size:calc(var(--font-size) * .8);font-weight:900}.air-measurements .green[data-v-10839161]{background-color:var(--color-green)}.air-measurements .blue[data-v-10839161]{background-color:var(--color-teal)}.air-measurements .navy[data-v-10839161]{background-color:var(--color-navy)}.air-measurements .orange[data-v-10839161]{background-color:var(--color-orange)}.air-measurements .red[data-v-10839161]{background-color:var(--color-bright-red)}.air-measurements .purple[data-v-10839161]{background-color:var(--color-purple)}@media screen and (max-width: 880px){.air-measurements__content[data-v-10839161]{grid-template-columns:1fr;gap:var(--gap)}}*{margin:0;padding:0;outline:0;background:transparent;vertical-align:baseline;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{border:0}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,main{display:block}ul{list-style:none}table{border-collapse:collapse;border-spacing:0}input,select{vertical-align:middle}sup{vertical-align:super}sub{vertical-align:sub}:root{--color-light: #fff;--color-gray: #4e4e4f;--color-middle-gray: #B6BDC4;--color-light-gray: #d5d3d3;--color-dark: #000;--color-blue: #03a5ed;--color-teal: #12bfcc;--color-green: #60bc2a;--color-red: #fc0202;--color-bright-red: #ff4d00;--color-yellow: #f5ff00;--color-orange: #ff9d00;--color-purple: #7a00da;--color-navy: hsl(219, 63%, 45%);--color-link: var(--color-blue);--color-link-hover: var(--color-green);--font-family--normal: "Noto Sans", sans-serif;--font-size: 1rem;--gap: 1rem;--sensor-popup-bg: #ffffff;--main-bg: #ffffff;--app-borderwidth: 2px;--app-bordercolor: #000;--app-inputbg: #fff;--app-inputpadding: .4rem;--app-inputbradius: .3rem;--app-textcolor: #000;--app-inputheight: 2.4rem;--app-buttoncolor:hsl(219, 63%, 45%);--app-buttoncolor-active:hsl(219, 63%, 60%);--app-buttoncolor-hover:hsl(219, 63%, 35%);--app-buttontextcolor: #fff;--app-popoverbg: #fff;--app-controlsgap: calc(var(--gap) * 2)}@media screen and (max-width: 500px){:root{--font-size: .8rem;--gap: .5rem}.leaflet-bottom .leaflet-control{margin-bottom:0}}@font-face{font-family:Noto Sans;src:url(./notosansdisplay-black-webfont.9f247781.woff2) format("woff2");src:url(./notosansdisplay-black-webfont.00b4a963.woff) format("woff");font-weight:900;font-display:swap;font-style:normal}@font-face{font-family:Noto Sans;src:url(./notosans-bold-webfont.b1ab6654.woff2) format("woff2");src:url(./notosans-bold-webfont.8b1ca092.woff) format("woff");font-weight:700;font-display:swap;font-style:normal}@font-face{font-family:Noto Sans;src:url(./notosansdisplay-medium-webfont.5dca4cb1.woff2) format("woff2");src:url(./notosansdisplay-medium-webfont.cf14dc66.woff) format("woff");font-weight:500;font-display:swap;font-style:normal}@font-face{font-family:Noto Sans;src:url(./notosans-regular-webfont.7d4a5d04.woff2) format("woff2");src:url(./notosans-regular-webfont.c3dfba11.woff) format("woff");font-weight:400;font-display:swap;font-style:normal}body{font-size:var(--font-size);font-family:var(--font-family--normal);background-color:var(--color-light)}a{color:var(--color-link);text-decoration:none}a:hover{color:var(--color-link-hover)}p:not(:last-child),ul:not(:last-child),ol:not(:last-child),dl:not(:last-child),h2,h3,h4,h5{margin-bottom:var(--gap)}h1,h2,h3,h4,h5{font-weight:900}h1{font-size:calc(var(--font-size) * 2);font-weight:900;margin-bottom:calc(var(--gap) * 3)}li,dd{margin-bottom:calc(var(--gap) * .5)}hr{margin:calc(var(--gap)*2) 0;border:.5px solid var(--app-bordercolor)}input,select,.button{background-color:var(--app-inputbg);border-radius:var(--app-inputbradius);border:var(--app-borderwidth) solid var(--app-bordercolor);box-sizing:border-box;color:var(--app-textcolor);font-family:var(--font-family--normal);font-size:var(--font-size);font-weight:700;height:var(--app-inputheight);line-height:1;padding:calc(var(--app-inputpadding) * .8) var(--app-inputpadding);transition-duration:.33s;transition-property:border,background-color;transition-timing-function:ease-in-out}input.block,select.block,.button.block{display:block;width:100%}select{appearance:none;background-image:url("data:image/svg+xml;utf8,");background-position-x:calc(100% - var(--app-inputpadding));background-position-y:50%;background-repeat:no-repeat;background-size:.5rem;padding-right:calc(var(--app-inputpadding) * 1.5 + .5rem);user-select:none}input[type=text]:focus,input[type=password]:focus{--app-bordercolor: var(--color-navy)}input[type=checkbox]{border:var(--app-borderwidth) solid var(--app-bordercolor);height:calc(var(--app-inputheight) * .5);width:calc(var(--app-inputheight) * .5)}input[type=checkbox]:not(:last-child){margin-right:calc(var(--gap) * .5)}input[type=submit],.button{background-color:var(--app-buttoncolor);border-color:var(--app-buttoncolor);color:var(--app-buttontextcolor)}input[type=submit]:not(:disabled):active,.button:not(:disabled):active{--app-buttoncolor: var(--app-buttoncolor-active)}input[type=submit]:not(:disabled):hover,.button:not(:disabled):hover{--app-buttoncolor: var(--app-buttoncolor-hover)}select:not([disabled]),input[type=checkbox]:not([disabled]),input[type=submit]:not([disabled]),.button:not([disabled]){cursor:pointer}.button-green{--app-buttoncolor: var(--color-green)}.button>*:not(:last-child){margin-right:calc(var(--gap) * .5)}label{font-weight:700}:popover-open{background-color:var(--app-popoverbg);box-shadow:0 4px 8px #0003,0 6px 20px #00000030;border-radius:var(--app-inputbradius);border:none;inset:unset;padding:var(--gap)}[popovertarget]{transition:opacity .3s ease-in-out}:popover-open~[popovertarget]{opacity:.6}:popover-open::backdrop{backdrop-filter:grayscale(1)}.popovercontrol{align-items:center;background-color:var(--app-inputbg);border-radius:50%;border:var(--app-borderwidth) solid var(--app-bordercolor);cursor:pointer;display:flex;height:var(--app-inputheight);justify-content:center;user-select:none;width:var(--app-inputheight);color:var(--app-textcolor);font-size:var(--font-size)}.popovercontrol .svg-inline--fa path{fill:var(--app-textcolor)}@supports not selector(:popover-open){.popover{background-color:#fff;inset:unset;border:0;padding:var(--gap)}}.scrollable-y{overflow-y:auto;max-height:100%}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{border-radius:4px;background:#EAEAEA}::-webkit-scrollbar-thumb{border-radius:4px;background:#A5A5A5}.flexline{display:flex;gap:var(--gap);align-items:center}.flexline.space-between{justify-content:space-between}.flexline.align-start{align-items:start}.clipoverflow{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.textsmall{font-size:.8em}section:not(:last-child){margin-bottom:calc(var(--gap) * 2)}#app{position:relative;max-width:100vw;min-height:100svh}#app.map{overflow:hidden}.container{padding:calc(var(--gap) * .5) var(--gap)}.container-pagetext{padding:calc(var(--gap) * 7) var(--gap) calc(var(--gap) * 3);margin:0 auto;max-width:1200px}.sensors-container{padding-top:2rem;display:inline-flex;flex-direction:column}@media screen and (max-width: 680px){.sensors-container{display:flex}}.title{margin:0;font-size:12px;font-weight:700;transition:color .33s ease-in-out,background-color .33s ease-in-out}.subtitle{margin:0;font-size:14px;font-weight:600;font-family:var(--font-family--normal);transition:color .33s ease-in-out,background-color .33s ease-in-out}.text{font-family:var(--font-family--normal);font-weight:400;text-transform:none;line-height:1.5;text-align:justify!important;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;transition:color .33s ease-in-out,background-color .33s ease-in-out}@media (prefers-color-scheme: dark){.text-changabletheme{color:var(--color-light)}}.text-small{font-size:.8em}.text-tip{margin-top:var(--gap);font-family:var(--font-family--normal);color:var(--color-dark);font-weight:400;font-style:italic;text-transform:none}.sensors-screen{position:relative;width:100vw;height:100vh;overflow:hidden;transition:color .33s ease-in-out,background-color .33s ease-in-out}.sensors-screen-layers{display:flex;flex-direction:column;pointer-events:none;position:relative;width:100%;height:100%;z-index:1000;transition:color .33s ease-in-out,background-color .33s ease-in-out}.sensors-screen-layers--center{flex:1 0 auto;position:relative}*[class*=sensors-panel--center-]{position:absolute;top:calc(var(--gap) * 5);bottom:var(--gap);z-index:10;width:48%}.sensors-panel--center-right{right:var(--gap)}.sensors-panel--center-left{left:var(--gap)}*[class*=sensors-panel--center-] .sensors-panel:not(:last-child){margin-bottom:var(--gap)}.dark .sensors-screen.loading{background-color:#424241}.sensors-screen.loading{display:flex;align-items:center;justify-content:center;background-color:var(--color-light);z-index:9999}.sensors-container .fa-compass{display:none}.sensors-screen.loading .fa-spin{display:block;position:fixed;z-index:100;top:calc(50% - 2rem);left:calc(50% - 2rem);font-size:4rem;color:var(--color-link)}.popup,.popup-js{background-color:var(--color-light);color:var(--color-dark);display:none;opacity:0;position:relative;transform:translateY(20px);transition:color .33s ease-in-out,background-color .33s ease-in-out}.popup:target,.popup-js.active{display:block;animation:popup .2s linear .2s forwards}.popup-wrapper{position:absolute;top:calc(var(--gap) * 3);z-index:10}@keyframes popup{to{opacity:1;transform:translateY(0)}}.popup__close{color:var(--color-dark);font-size:calc(var(--gap) * 1.8);position:absolute;right:calc(var(--gap) * .5);top:calc(var(--gap) * .5);background-color:transparent}.popup__close svg{display:block}.popup__content{max-height:500px;overflow-y:auto}.header .popup__content h3{text-transform:none;margin-bottom:var(--gap)}.header .sensors-panel-top-nav-content h3{margin-top:calc(var(--gap) * 1.5);margin-bottom:calc(var(--gap) * .5)}.sensors-panel-top-nav-content .nav__item{padding:.2rem 0;margin-bottom:0}.sensors-panel-top-nav-content .nav__link{font-family:var(--font-family--normal);font-weight:300;font-size:calc(var(--font-size) * .85);color:var(--color-blue);text-transform:none}.header .popup__content .text{font-size:calc(var(--font-size) * .85);text-align:left!important}.header__close-popup,.footer__close-popup{align-self:flex-end;width:20px;height:20px;margin-bottom:var(--gap);background-image:url('data:image/svg+xml,');background-position:center;background-repeat:no-repeat;border:none;cursor:pointer}.dark .header__close-popup,.dark .footer__close-popup{background-image:url('data:image/svg+xml,')}.overlay{position:fixed;left:0;top:0;width:100%;height:100%;background-color:#0009;z-index:15;opacity:0;visibility:hidden}.overlay.open{opacity:1;visibility:visible;transition:all .3s}.sensors-dateselect input[type=date]{padding:.2rem .5rem;border-width:2px;font:inherit}.sensors-dateselect span{display:inline-block;color:var(--color-dark);vertical-align:middle}.dark .sensors-dateselect span{color:var(--color-middle-gray)}.sensors-dateselect .sensors-switcher label{margin:0 .4rem 0 1.2rem}@media screen and (max-width: 1250px){.sensors-panel--bottom{align-items:flex-start}.sensors-panel--bottom .sensors-switcher{display:block;margin-top:calc(var(--gap) * .5)}.sensors-dateselect .sensors-switcher label{margin:0}}@media screen and (max-width: 600px){.sensors-panel--bottom{display:block}.sensors-panel--bottom .sensors-panel-section:not(:last-child){margin-bottom:var(--gap)}}@keyframes fadeIn{to{opacity:1;visibility:visible}}@keyframes fadeOut{to{opacity:0;visibility:hidden}}@keyframes rolldownLeft{to{transform:scaleX(0)}}@keyframes blink{0%{opacity:.5}50%{opacity:1}to{opacity:.5}} +.notify{font-size:20px!important;font-weight:700}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box;background:#fff;background:rgba(255,255,255,.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:white;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.marker-cluster-small{background-color:#b5e28c99}.marker-cluster-small div{background-color:#6ecc3999}.marker-cluster-medium{background-color:#f1d35799}.marker-cluster-medium div{background-color:#f0c20c99}.marker-cluster-large{background-color:#fd9c7399}.marker-cluster-large div{background-color:#f1801799}.leaflet-oldie .marker-cluster-small{background-color:#b5e28c}.leaflet-oldie .marker-cluster-small div{background-color:#6ecc39}.leaflet-oldie .marker-cluster-medium{background-color:#f1d357}.leaflet-oldie .marker-cluster-medium div{background-color:#f0c20c}.leaflet-oldie .marker-cluster-large{background-color:#fd9c73}.leaflet-oldie .marker-cluster-large div{background-color:#f18017}.marker-cluster{background-clip:padding-box;border-radius:20px}.marker-cluster div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:15px;font:12px Helvetica Neue,Arial,Helvetica,sans-serif}.marker-cluster span{line-height:30px}.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out,-o-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.leaflet-control-velocity{background-color:#ffffffb3;padding:0 5px;margin:0!important;color:#333;font:11px/1.5 Helvetica Neue,Arial,Helvetica,sans-serif}.velocity-overlay{position:absolute;z-index:1}a[data-v-c34104c4],a b[data-v-c34104c4]{display:block}.addresssm[data-v-c34104c4]{color:var(--app-textcolor);font-size:.7em}section[data-v-c34104c4]{justify-content:space-between}section[data-v-c34104c4]:not(:last-child){padding-bottom:var(--gap);border-bottom:1px solid var(--app-textcolor)}button[data-v-c34104c4]{border:0;cursor:pointer;font-size:1.2em;transition:color .2s ease-in}button[data-v-c34104c4]:hover{color:var(--color-red)}.mapcontrols[data-v-7ce80aab]{bottom:0;box-sizing:border-box;display:flex;justify-content:space-between;left:0;padding:0 var(--app-controlsgap) var(--app-controlsgap);position:absolute;right:0;z-index:12;pointer-events:none}.mapcontrols>*[data-v-7ce80aab]{pointer-events:all}.popover-bottom-right[data-v-7ce80aab],.popover-bottom-left[data-v-7ce80aab]{bottom:calc(var(--app-inputheight) + var(--app-controlsgap) * 2);max-width:calc(100vw - var(--app-controlsgap) * 2)}.popover-bottom-right[data-v-7ce80aab]{right:var(--app-controlsgap)}.popover-bottom-left[data-v-7ce80aab]{left:var(--app-controlsgap)}.popovercontrol.active{border-color:var(--color-green)}.popovercontrol.active path{fill:var(--color-green)!important}.leaflet-control-attribution,.leaflet-container .leaflet-control-attribution{font-size:calc(var(--font-size) * .5);background:none;margin:0!important}.leaflet-bottom .leaflet-control-locate{border:var(--app-borderwidth) solid var(--app-bordercolor)}.leaflet-bottom .leaflet-control-locate .leaflet-bar-part-single{background:var(--app-inputbg)}.leaflet-right .leaflet-control{margin-right:var(--gap)}.leaflet-bottom .leaflet-control{margin-bottom:.3rem}.leaflet-control-locate a .leaflet-control-locate-location-arrow,.leaflet-control-locate.following a .leaflet-control-locate-location-arrow{background:var(--app-bordercolor)}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-bar a,.leaflet-bar a,.leaflet-bar{border-radius:50%!important}.leaflet-touch .leaflet-bar a,.leaflet-bar a{width:calc(var(--app-inputheight) - var(--app-borderwidth) * 2);height:calc(var(--app-inputheight) - var(--app-borderwidth) * 2);line-height:1;display:flex;align-items:center;justify-content:center;border-radius:50%!important}.marker-cluster-circle{border-width:2px;border-style:solid;border-radius:18px}.marker-cluster-circle span{line-height:27px;font-weight:700}.marker-cluster-msg{font-weight:700;background-size:contain;color:#fff;padding-top:4px;font-size:16px;width:40px!important;height:40px!important}.marker-icon-brand{width:35px!important;height:35px!important;border-radius:50%}.marker-icon-msg{width:40px;height:40px}.popoovergeo-tipclose.svg-inline--fa path{fill:var(--color-light)!important}.mapcontainer[data-v-f1744b47]{background-color:var(--color-light-gray);position:absolute;top:0;left:0;z-index:0;width:100%;height:100svh;overflow:hidden}.mapcontainer.inactive[data-v-f1744b47]{filter:grayscale(100%)}.popoovergeo[data-v-f1744b47]{position:relative}.popoovergeo-tip[data-v-f1744b47]{--gettime: var(--47a7af95);--openedtime: calc(var(--gettime)/1000 * 1s);position:absolute;padding:5px 25px 5px 10px;background-color:color-mix(in srgb,var(--color-dark) 70%,transparent);color:var(--color-light);backdrop-filter:blur(5px);font-weight:700;border-radius:2px;bottom:calc(var(--app-inputheight) + 10px);width:220px;right:-10px;font-size:.9em}.popoovergeo-tip[data-v-f1744b47]:before{content:"";height:2px;width:100%;position:absolute;top:0;left:0;background-color:var(--color-light);animation:rolldownLeft var(--openedtime) linear 0s forwards;transform-origin:0 50%}.popoovergeo-tip[data-v-f1744b47]:after{content:"";width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid color-mix(in srgb,var(--color-dark) 70%,transparent);position:absolute;bottom:-10px;right:15px}.popoovergeo-tipclose[data-v-f1744b47]{position:absolute;top:5px;right:5px}.st0[data-v-1ca21f0d]{fill:#fff;stroke:#000;stroke-width:.5;stroke-miterlimit:10}header[data-v-a4474917]{left:0;padding:var(--app-controlsgap);position:absolute;top:0;width:100vw;z-index:10;pointer-events:none}header>*[data-v-a4474917]{pointer-events:all}.appicon[data-v-a4474917]{border-radius:.5rem;display:block;overflow:hidden;user-select:none;width:2.5rem}.appicon img[data-v-a4474917]{display:block;max-width:100%}.popover-top-right[data-v-a4474917]{top:calc(var(--gap) * 3 + var(--app-inputheight));right:var(--gap);width:500px;max-width:calc(100vw - var(--gap) * 2)}@supports not selector(:popover-open){.popover-top-right[data-v-a4474917]{right:var(--gap)!important}}#about p[data-v-a4474917]{font-size:.9em}.navlinks[data-v-a4474917]{font-weight:700}.navlinks a[data-v-a4474917]{display:block}.navlinks a[data-v-a4474917]:not(:last-child){margin-bottom:calc(var(--gap) * .5)}.sensorscount[data-v-a4474917]{color:#fff;background:var(--color-orange);padding:4px 10px;display:block;border-radius:5px;display:flex;gap:10px;align-items:center}.sensorscount svg[data-v-a4474917]{width:22px}.install-pwa__container[data-v-b59a209f]{position:relative;display:flex;align-items:center;justify-content:space-between;background-color:#fff;z-index:10}.install-pwa__content img[data-v-b59a209f]{width:36px;height:36px;border-radius:5px}.install-pwa__content[data-v-b59a209f]{display:flex;align-items:center;gap:var(--gap)}.install-pwa__content h3[data-v-b59a209f]{margin:0;margin-bottom:calc(var(--gap) * .2);font-size:calc(var(--font-size) * .8);text-transform:none}.install-pwa__btn[data-v-b59a209f]{padding:calc(var(--gap) * .2) calc(var(--gap) * 1.8);font-weight:700;font-family:var(--font-family--normal);color:#fff;background-color:#3658c6;border-radius:15px;border:none;cursor:pointer}.install-pwa__remove[data-v-b59a209f]{width:20px;height:20px;background-image:url('data:image/svg+xml,');background-position:center;background-repeat:no-repeat;border:none;cursor:pointer}h2[data-v-c5bfb7c2]{margin-bottom:calc(var(--gap) * .7)}.sensors-panel[data-v-c5bfb7c2]{position:absolute;top:40px;bottom:0;right:0;z-index:14;width:48%}.sensor-popup.popup-js[data-v-c5bfb7c2]{padding-right:0!important;background-color:var(--sensor-popup-bg)}.sensor-popup.container[data-v-c5bfb7c2]{padding:0;padding-bottom:calc(var(--gap) * 6)}.sensor-popup .popup__close[data-v-c5bfb7c2]{right:calc(var(--gap) * 2);top:1.5rem;color:#fff}.sensor-popup__header[data-v-c5bfb7c2]{min-height:110px;padding:calc(var(--gap) * 2) var(--gap);display:flex;align-items:center;color:#fff}.sensor-popup__header-wrapper .fa-copy[data-v-c5bfb7c2]{margin-left:var(--gap)}.sensor-popup__header--neutral[data-v-c5bfb7c2]{background-color:#747a80}.sensor-popup__header--good[data-v-c5bfb7c2]{background-color:var(--color-green)}.sensor-popup__header--attention[data-v-c5bfb7c2]{background-color:var(--color-orange)}.sensor-popup__header--danger[data-v-c5bfb7c2]{background-color:var(--color-red)}.sensor-popup__header a[data-v-c5bfb7c2]{color:inherit}.sensor-popup__header-icon[data-v-c5bfb7c2]{font-size:3rem;margin-right:calc(var(--gap) * 2)}.sensor-popup--subtitle[data-v-c5bfb7c2]{display:flex;align-items:center;font-family:var(--font-family--normal);text-transform:none}.sensor-popup--subtitle span[data-v-c5bfb7c2]:not(:last-child){margin-right:calc(var(--gap) * 2)}ul.sensor-popup--data[data-v-c5bfb7c2]{display:flex;align-items:center;flex-wrap:wrap;list-style:none;padding:calc(var(--gap) * .7) 0}ul.sensor-popup--data .icon[data-v-c5bfb7c2]{display:inline-block;font-size:calc(var(--gap) * 1.5);text-align:center;width:calc(var(--gap) * 2.5)}.sensor-popup--content[data-v-c5bfb7c2]{height:80%;overflow-y:auto;padding:calc(var(--gap) * 2);padding-top:0;padding-right:calc(var(--gap) * 2.2);padding-bottom:calc(var(--gap) * 2);margin-top:var(--gap);margin-right:calc(var(--gap) * 2)}.sensor-popup--content img[data-v-c5bfb7c2]{max-width:100%;width:100%}@media screen and (max-width: 1080px){.sensors-panel[data-v-c5bfb7c2]{width:90%}}@media screen and (max-width: 580px){h2[data-v-c5bfb7c2]{font-size:1rem}.sensors-panel[data-v-c5bfb7c2]{position:absolute;top:calc(var(--gap) * 16);left:0;right:0;bottom:0;z-index:9;width:100%}.sensor-popup.container[data-v-c5bfb7c2]{padding-bottom:calc(var(--gap) * 5)}.sensor-popup .popup__close[data-v-c5bfb7c2]{right:var(--gap)}.sensor-popup__header[data-v-c5bfb7c2]{flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--gap)}.sensor-popup__header-icon[data-v-c5bfb7c2]{font-size:2rem;line-height:1.5;margin-right:0}.sensor-popup--subtitle span[data-v-c5bfb7c2]:not(:last-child){margin-right:var(--gap)}}button[data-v-81c30ff3]{padding-right:calc(var(--app-inputpadding)*2);padding-left:calc(var(--app-inputpadding)*2)}.highcharts-legend-item{font-weight:900}.highcharts-legend-item .highcharts-graph,.highcharts-legend-item .highcharts-point{stroke:#000!important}.highcharts-legend-item .highcharts-point{fill:#000!important;stroke-width:2}.highcharts-legend-item-hidden text{fill:#999!important;color:#999!important;text-decoration:none!important}.highcharts-legend-item-hidden .highcharts-graph,.highcharts-legend-item-hidden .highcharts-point{stroke:#999!important}.highcharts-legend-item-hidden .highcharts-point{fill:#999!important}.copy[data-v-951f909f]{cursor:pointer}.fa-copy[data-v-951f909f],.fa-check[data-v-951f909f]{margin-left:calc(var(--gap) * .8);color:var(--color-blue)}.copy-btn[data-v-951f909f]{margin-left:calc(var(--gap) * .8);width:14px;height:16px;padding:calc(var(--gap) * .1);background-image:url("data:image/svg+xml,%0A%3Csvg width='14' height='17' viewBox='0 0 14 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.3752 0H12.3964C13.1986 0 13.8549 0.656284 13.8549 1.45841V10.9381C13.8549 11.3391 13.5267 11.6673 13.1257 11.6673C12.7246 11.6673 12.3964 11.3391 12.3964 10.9381V2.18761C12.3964 1.78655 12.0683 1.45841 11.6672 1.45841H4.3752C3.97414 1.45841 3.646 1.13027 3.646 0.729204C3.646 0.328142 3.97414 0 4.3752 0ZM1.45839 2.91682H9.47963C10.2818 2.91682 10.938 3.5731 10.938 4.37523V14.5841C10.938 15.3862 10.2818 16.0425 9.47963 16.0425H1.45839C0.656261 16.0425 -2.19345e-05 15.3862 -2.19345e-05 14.5841V4.37523C-2.19345e-05 3.5731 0.656261 2.91682 1.45839 2.91682ZM2.18759 14.5841H8.75043C9.15149 14.5841 9.47963 14.2559 9.47963 13.8549V5.10443C9.47963 4.70337 9.15149 4.37523 8.75043 4.37523H2.18759C1.78653 4.37523 1.45839 4.70337 1.45839 5.10443V13.8549C1.45839 14.2559 1.78653 14.5841 2.18759 14.5841Z' fill='%2303A5ED'/%3E%3C/svg%3E%0A");background-size:100%;background-position:center;background-repeat:no-repeat;border:none;cursor:pointer}@media screen and (max-width: 680px){.copy[data-v-951f909f]{font-size:calc(var(--font-size) * .8)}}.popup-js.active[data-v-695fbd57]{container:popup / inline-size;background:var(--app-popoverbg);border-radius:0;bottom:0;box-sizing:border-box;color:var(--app-textcolor);padding:var(--gap);position:absolute;right:0;top:0;width:80vw;max-width:1000px;z-index:100}.scrollable-y[data-v-695fbd57]{max-height:90%}.close[data-v-695fbd57]{border:0;color:var(--app-textcolor);cursor:pointer;font-size:1.2em;position:absolute;right:var(--gap);top:var(--gap)}.close[data-v-695fbd57]:hover{color:var(--color-red)}.flexline[data-v-695fbd57]{gap:calc(var(--gap) * 2)}.flexline .flexline[data-v-695fbd57]{gap:var(--gap)}h3.flexline[data-v-695fbd57]{gap:calc(var(--gap) * .5);max-width:calc(100% - var(--gap) * 2)}.icontitle[data-v-695fbd57]{display:inline-block;max-height:calc(var(--font-size) * 2)}@media screen and (max-width: 700px){.popup-js.active[data-v-695fbd57]{left:0;width:100vw;top:30vw;padding-right:calc(var(--gap) * .5)}}@container popup (min-width: 400px){.close[data-v-695fbd57]{font-size:1.6em}}@container popup (max-width: 400px){h3.flexline[data-v-695fbd57]{max-width:calc(100% - var(--gap) * 3)}}.infoline.flexline[data-v-695fbd57]{gap:calc(var(--gap) * .5)}.infoline-title[data-v-695fbd57]{font-weight:700}.scalegrid[data-v-695fbd57]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);font-size:.8em}.scalegrid p[data-v-695fbd57]{margin-bottom:calc(var(--gap) * .5)}.scales-color[data-v-695fbd57]{position:relative;padding-left:calc(var(--gap) * 2)}.scales-color[data-v-695fbd57]:before{content:"";display:block;position:absolute;background-color:var(--color);top:0;left:0;bottom:0;width:var(--gap)}.rt-title[data-v-695fbd57]{font-weight:900}.rt-title[data-v-695fbd57]:before{animation:blink infinite 1.5s;background-color:var(--color-green);border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.rt-time[data-v-695fbd57]{font-size:.8em;font-weight:300;padding-left:13px}.rt-unit[data-v-695fbd57],.rt-number[data-v-695fbd57]{font-size:.8em;font-weight:900}.optout-form[data-v-ee8b7997]{padding:1.5rem .8rem;border:2px solid #333}.optout-form strong[data-v-ee8b7997]{padding-left:10px}.privacy-policy ul[data-v-168a0093]{padding-left:20px;list-style:disc}.privacy-policy__wrapper[data-v-168a0093]:not(:last-of-type){margin-bottom:3rem}.mb[data-v-10839161]{margin-bottom:calc(var(--gap) * 2)!important}.air-measurements__header p[data-v-10839161]{font-size:calc(var(--font-size) * .9);font-weight:500;line-height:1.7}.air-measurements__wrapper[data-v-10839161]:not(:last-of-type){margin-bottom:5rem}.air-measurements__header[data-v-10839161]{max-width:800px;margin:0 auto;margin-bottom:calc(var(--gap) * 2)}.air-measurements__content[data-v-10839161]{display:grid;grid-template-columns:350px 630px;justify-content:center;gap:calc(var(--gap) * 2);font-weight:500}.air-measurements__recs[data-v-10839161]{font-size:calc(var(--font-size) * .9)}.air-measurements ol[data-v-10839161]{padding-left:calc(var(--gap) * 1.5);margin-bottom:calc(var(--gap) * .5)}.air-measurements ul li[data-v-10839161]{width:100%;padding:calc(var(--gap) * .5) calc(var(--gap) * .9);color:var(--color-light);font-size:calc(var(--font-size) * .8);font-weight:900}.air-measurements .green[data-v-10839161]{background-color:var(--color-green)}.air-measurements .blue[data-v-10839161]{background-color:var(--color-teal)}.air-measurements .navy[data-v-10839161]{background-color:var(--color-navy)}.air-measurements .orange[data-v-10839161]{background-color:var(--color-orange)}.air-measurements .red[data-v-10839161]{background-color:var(--color-bright-red)}.air-measurements .purple[data-v-10839161]{background-color:var(--color-purple)}@media screen and (max-width: 880px){.air-measurements__content[data-v-10839161]{grid-template-columns:1fr;gap:var(--gap)}}*{margin:0;padding:0;outline:0;background:transparent;vertical-align:baseline;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{border:0}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,main{display:block}ul{list-style:none}table{border-collapse:collapse;border-spacing:0}input,select{vertical-align:middle}sup{vertical-align:super}sub{vertical-align:sub}:root{--color-light: #fff;--color-gray: #4e4e4f;--color-middle-gray: #B6BDC4;--color-light-gray: #d5d3d3;--color-dark: #000;--color-blue: #03a5ed;--color-teal: #12bfcc;--color-green: #60bc2a;--color-red: #fc0202;--color-bright-red: #ff4d00;--color-yellow: #f5ff00;--color-orange: #ff9d00;--color-purple: #7a00da;--color-navy: hsl(219, 63%, 45%);--color-link: var(--color-blue);--color-link-hover: var(--color-green);--font-family--normal: "Noto Sans", sans-serif;--font-size: 1rem;--gap: 1rem;--sensor-popup-bg: #ffffff;--main-bg: #ffffff;--app-borderwidth: 2px;--app-bordercolor: #000;--app-inputbg: #fff;--app-inputpadding: .4rem;--app-inputbradius: .3rem;--app-textcolor: #000;--app-inputheight: 2.4rem;--app-buttoncolor:hsl(219, 63%, 45%);--app-buttoncolor-active:hsl(219, 63%, 60%);--app-buttoncolor-hover:hsl(219, 63%, 35%);--app-buttontextcolor: #fff;--app-popoverbg: #fff;--app-controlsgap: calc(var(--gap) * 2)}@media screen and (max-width: 500px){:root{--font-size: .8rem;--gap: .5rem}.leaflet-bottom .leaflet-control{margin-bottom:0}}@font-face{font-family:Noto Sans;src:url(./notosansdisplay-black-webfont.9f247781.woff2) format("woff2");src:url(./notosansdisplay-black-webfont.00b4a963.woff) format("woff");font-weight:900;font-display:swap;font-style:normal}@font-face{font-family:Noto Sans;src:url(./notosans-bold-webfont.b1ab6654.woff2) format("woff2");src:url(./notosans-bold-webfont.8b1ca092.woff) format("woff");font-weight:700;font-display:swap;font-style:normal}@font-face{font-family:Noto Sans;src:url(./notosansdisplay-medium-webfont.5dca4cb1.woff2) format("woff2");src:url(./notosansdisplay-medium-webfont.cf14dc66.woff) format("woff");font-weight:500;font-display:swap;font-style:normal}@font-face{font-family:Noto Sans;src:url(./notosans-regular-webfont.7d4a5d04.woff2) format("woff2");src:url(./notosans-regular-webfont.c3dfba11.woff) format("woff");font-weight:400;font-display:swap;font-style:normal}body{font-size:var(--font-size);font-family:var(--font-family--normal);background-color:var(--color-light)}a{color:var(--color-link);text-decoration:none}a:hover{color:var(--color-link-hover)}p:not(:last-child),ul:not(:last-child),ol:not(:last-child),dl:not(:last-child),h2,h3,h4,h5{margin-bottom:var(--gap)}h1,h2,h3,h4,h5{font-weight:900}h1{font-size:calc(var(--font-size) * 2);font-weight:900;margin-bottom:calc(var(--gap) * 3)}li,dd{margin-bottom:calc(var(--gap) * .5)}hr{margin:calc(var(--gap)*2) 0;border:.5px solid var(--app-bordercolor)}input,select,.button{background-color:var(--app-inputbg);border-radius:var(--app-inputbradius);border:var(--app-borderwidth) solid var(--app-bordercolor);box-sizing:border-box;color:var(--app-textcolor);font-family:var(--font-family--normal);font-size:var(--font-size);font-weight:700;height:var(--app-inputheight);line-height:1;padding:calc(var(--app-inputpadding) * .8) var(--app-inputpadding);transition-duration:.33s;transition-property:border,background-color;transition-timing-function:ease-in-out}input.block,select.block,.button.block{display:block;width:100%}select{appearance:none;background-image:url("data:image/svg+xml;utf8,");background-position-x:calc(100% - var(--app-inputpadding));background-position-y:50%;background-repeat:no-repeat;background-size:.5rem;padding-right:calc(var(--app-inputpadding) * 1.5 + .5rem);user-select:none}input[type=text]:focus,input[type=password]:focus{--app-bordercolor: var(--color-navy)}input[type=checkbox]{border:var(--app-borderwidth) solid var(--app-bordercolor);height:calc(var(--app-inputheight) * .5);width:calc(var(--app-inputheight) * .5)}input[type=checkbox]:not(:last-child){margin-right:calc(var(--gap) * .5)}input[type=submit],.button{background-color:var(--app-buttoncolor);border-color:var(--app-buttoncolor);color:var(--app-buttontextcolor)}input[type=submit]:not(:disabled):active,.button:not(:disabled):active{--app-buttoncolor: var(--app-buttoncolor-active)}input[type=submit]:not(:disabled):hover,.button:not(:disabled):hover{--app-buttoncolor: var(--app-buttoncolor-hover)}select:not([disabled]),input[type=checkbox]:not([disabled]),input[type=submit]:not([disabled]),.button:not([disabled]){cursor:pointer}.button-green{--app-buttoncolor: var(--color-green)}.button>*:not(:last-child){margin-right:calc(var(--gap) * .5)}label{font-weight:700}:popover-open{background-color:var(--app-popoverbg);box-shadow:0 4px 8px #0003,0 6px 20px #00000030;border-radius:var(--app-inputbradius);border:none;inset:unset;padding:var(--gap)}[popovertarget]{transition:opacity .3s ease-in-out}:popover-open~[popovertarget]{opacity:.6}:popover-open::backdrop{backdrop-filter:grayscale(1)}.popovercontrol{align-items:center;background-color:var(--app-inputbg);border-radius:50%;border:var(--app-borderwidth) solid var(--app-bordercolor);cursor:pointer;display:flex;height:var(--app-inputheight);justify-content:center;user-select:none;width:var(--app-inputheight);color:var(--app-textcolor);font-size:var(--font-size)}.popovercontrol .svg-inline--fa path{fill:var(--app-textcolor)}@supports not selector(:popover-open){.popover{background-color:#fff;inset:unset;border:0;padding:var(--gap)}}.scrollable-y{overflow-y:auto;max-height:100%}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{border-radius:4px;background:#EAEAEA}::-webkit-scrollbar-thumb{border-radius:4px;background:#A5A5A5}.flexline{display:flex;gap:var(--gap);align-items:center}.flexline.space-between{justify-content:space-between}.flexline.align-start{align-items:start}.clipoverflow{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.textsmall{font-size:.8em}section:not(:last-child){margin-bottom:calc(var(--gap) * 2)}#app{position:relative;max-width:100vw;min-height:100svh}#app.map{overflow:hidden}.container{padding:calc(var(--gap) * .5) var(--gap)}.container-pagetext{padding:calc(var(--gap) * 7) var(--gap) calc(var(--gap) * 3);margin:0 auto;max-width:1200px}.sensors-container{padding-top:2rem;display:inline-flex;flex-direction:column}@media screen and (max-width: 680px){.sensors-container{display:flex}}.title{margin:0;font-size:12px;font-weight:700;transition:color .33s ease-in-out,background-color .33s ease-in-out}.subtitle{margin:0;font-size:14px;font-weight:600;font-family:var(--font-family--normal);transition:color .33s ease-in-out,background-color .33s ease-in-out}.text{font-family:var(--font-family--normal);font-weight:400;text-transform:none;line-height:1.5;text-align:justify!important;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;transition:color .33s ease-in-out,background-color .33s ease-in-out}@media (prefers-color-scheme: dark){.text-changabletheme{color:var(--color-light)}}.text-small{font-size:.8em}.text-tip{margin-top:var(--gap);font-family:var(--font-family--normal);color:var(--color-dark);font-weight:400;font-style:italic;text-transform:none}.sensors-screen{position:relative;width:100vw;height:100vh;overflow:hidden;transition:color .33s ease-in-out,background-color .33s ease-in-out}.sensors-screen-layers{display:flex;flex-direction:column;pointer-events:none;position:relative;width:100%;height:100%;z-index:1000;transition:color .33s ease-in-out,background-color .33s ease-in-out}.sensors-screen-layers--center{flex:1 0 auto;position:relative}*[class*=sensors-panel--center-]{position:absolute;top:calc(var(--gap) * 5);bottom:var(--gap);z-index:10;width:48%}.sensors-panel--center-right{right:var(--gap)}.sensors-panel--center-left{left:var(--gap)}*[class*=sensors-panel--center-] .sensors-panel:not(:last-child){margin-bottom:var(--gap)}.dark .sensors-screen.loading{background-color:#424241}.sensors-screen.loading{display:flex;align-items:center;justify-content:center;background-color:var(--color-light);z-index:9999}.sensors-container .fa-compass{display:none}.sensors-screen.loading .fa-spin{display:block;position:fixed;z-index:100;top:calc(50% - 2rem);left:calc(50% - 2rem);font-size:4rem;color:var(--color-link)}.popup,.popup-js{background-color:var(--color-light);color:var(--color-dark);display:none;opacity:0;position:relative;transform:translateY(20px);transition:color .33s ease-in-out,background-color .33s ease-in-out}.popup:target,.popup-js.active{display:block;animation:popup .2s linear .2s forwards}.popup-wrapper{position:absolute;top:calc(var(--gap) * 3);z-index:10}@keyframes popup{to{opacity:1;transform:translateY(0)}}.popup__close{color:var(--color-dark);font-size:calc(var(--gap) * 1.8);position:absolute;right:calc(var(--gap) * .5);top:calc(var(--gap) * .5);background-color:transparent}.popup__close svg{display:block}.popup__content{max-height:500px;overflow-y:auto}.header .popup__content h3{text-transform:none;margin-bottom:var(--gap)}.header .sensors-panel-top-nav-content h3{margin-top:calc(var(--gap) * 1.5);margin-bottom:calc(var(--gap) * .5)}.sensors-panel-top-nav-content .nav__item{padding:.2rem 0;margin-bottom:0}.sensors-panel-top-nav-content .nav__link{font-family:var(--font-family--normal);font-weight:300;font-size:calc(var(--font-size) * .85);color:var(--color-blue);text-transform:none}.header .popup__content .text{font-size:calc(var(--font-size) * .85);text-align:left!important}.header__close-popup,.footer__close-popup{align-self:flex-end;width:20px;height:20px;margin-bottom:var(--gap);background-image:url('data:image/svg+xml,');background-position:center;background-repeat:no-repeat;border:none;cursor:pointer}.dark .header__close-popup,.dark .footer__close-popup{background-image:url('data:image/svg+xml,')}.overlay{position:fixed;left:0;top:0;width:100%;height:100%;background-color:#0009;z-index:15;opacity:0;visibility:hidden}.overlay.open{opacity:1;visibility:visible;transition:all .3s}.sensors-dateselect input[type=date]{padding:.2rem .5rem;border-width:2px;font:inherit}.sensors-dateselect span{display:inline-block;color:var(--color-dark);vertical-align:middle}.dark .sensors-dateselect span{color:var(--color-middle-gray)}.sensors-dateselect .sensors-switcher label{margin:0 .4rem 0 1.2rem}@media screen and (max-width: 1250px){.sensors-panel--bottom{align-items:flex-start}.sensors-panel--bottom .sensors-switcher{display:block;margin-top:calc(var(--gap) * .5)}.sensors-dateselect .sensors-switcher label{margin:0}}@media screen and (max-width: 600px){.sensors-panel--bottom{display:block}.sensors-panel--bottom .sensors-panel-section:not(:last-child){margin-bottom:var(--gap)}}@keyframes fadeIn{to{opacity:1;visibility:visible}}@keyframes fadeOut{to{opacity:0;visibility:hidden}}@keyframes rolldownLeft{to{transform:scaleX(0)}}@keyframes blink{0%{opacity:.5}50%{opacity:1}to{opacity:.5}} diff --git a/index.html b/index.html index 57fab67..be253b5 100644 --- a/index.html +++ b/index.html @@ -9,8 +9,8 @@ Web3 public sensors map - - + +
diff --git a/sw.js b/sw.js index d7acb32..85d1da1 100644 --- a/sw.js +++ b/sw.js @@ -1 +1 @@ -if(!self.define){let e,s={};const n=(n,i)=>(n=new URL(n+".js",i).href,s[n]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=s,document.head.appendChild(e)}else e=n,importScripts(n),s()})).then((()=>{let e=s[n];if(!e)throw new Error(`Module ${n} didn’t register its module`);return e})));self.define=(i,r)=>{const l=e||("document"in self?document.currentScript.src:"")||location.href;if(s[l])return;let a={};const o=e=>n(e,l),u={module:{uri:l},exports:a,require:o};s[l]=Promise.all(i.map((e=>u[e]||o(e)))).then((e=>(r(...e),a)))}}define(["./workbox-32a34f02"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"app-icon-120.png",revision:"ed33837fa042b725590fde3fe8c86bc5"},{url:"app-icon-192.png",revision:"99fdc63826bee0d9dfa81dbdde81593b"},{url:"app-icon-256.png",revision:"d8aa3b549b97e999d07ec2bce0b351a7"},{url:"app-icon-512-rounded.png",revision:"67c9eb98339ee497d04f7c8f76ce66c7"},{url:"app-icon-512.png",revision:"e395e111321876ac227cd8ca945111d0"},{url:"assets/app-icon-512.a5eb7b3f.png",revision:null},{url:"assets/atc.09cec0ab.png",revision:null},{url:"assets/ekovoz.af7d8a74.png",revision:null},{url:"assets/index.f4541f04.css",revision:null},{url:"assets/msg-air.abb754d3.js",revision:null},{url:"assets/msg-alert.804a179c.png",revision:null},{url:"assets/msg-alert.9404c396.js",revision:null},{url:"assets/msg-fire.faa011b0.js",revision:null},{url:"assets/msg-forest.a623a1f9.js",revision:null},{url:"assets/msg-gank.34a748fe.js",revision:null},{url:"assets/msg-gank.ef47b6e4.png",revision:null},{url:"assets/msg-garbage.b797b882.js",revision:null},{url:"assets/msg-notif.d72c5a6f.js",revision:null},{url:"assets/msg-notif.fbcb8f30.png",revision:null},{url:"assets/msg-parking.5da4fdeb.js",revision:null},{url:"assets/msg-parking.78bf40b4.png",revision:null},{url:"assets/msg-recycle.2ff7eefc.png",revision:null},{url:"assets/msg-recycle.eab79c00.js",revision:null},{url:"assets/msg-text.470fee8d.js",revision:null},{url:"assets/msg-water.b0066085.js",revision:null},{url:"assets/notosans-bold-webfont.b1ab6654.woff2",revision:null},{url:"assets/notosans-regular-webfont.7d4a5d04.woff2",revision:null},{url:"assets/notosansdisplay-black-webfont.9f247781.woff2",revision:null},{url:"assets/notosansdisplay-medium-webfont.5dca4cb1.woff2",revision:null},{url:"assets/polkadot.ba662d9a.png",revision:null},{url:"assets/sensors-world-app.8a0828bb.png",revision:null},{url:"assets/sun.d26ef6d1.png",revision:null},{url:"assets/webzero.f2278069.png",revision:null},{url:"favicon.ico",revision:"8e319c9cafb31249891540cd51c6e8a0"},{url:"index.html",revision:"a025458366b39a3ff9b5e07a8aa9b9db"},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"untitled folder/192.png",revision:"c077e8e3713cfb404346e7897c6fe85e"},{url:"untitled folder/256.png",revision:"7269f31dbeca5794e34aa525b9cfe383"},{url:"untitled folder/512.png",revision:"d19974ca79fd176170b76249657c7ab3"},{url:"untitled folder/icon512_rounded.png",revision:"c3539307f4aab29831b6cb2a94002add"},{url:"untitled folder/maskable-icon.png",revision:"0b1dc18370b9d45fbfabd7575ea1330d"},{url:"untitled folder/sensors-world-app.png",revision:"4080ed30224bdbd4648ca4ab3f8819fe"},{url:"app-icon-512.png",revision:"e395e111321876ac227cd8ca945111d0"},{url:"app-icon-512-rounded.png",revision:"67c9eb98339ee497d04f7c8f76ce66c7"},{url:"app-icon-256.png",revision:"d8aa3b549b97e999d07ec2bce0b351a7"},{url:"app-icon-192.png",revision:"99fdc63826bee0d9dfa81dbdde81593b"},{url:"manifest.webmanifest",revision:"dfbc91e8513e9bb64a77d105e241e922"}],{}),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))})); +if(!self.define){let e,s={};const n=(n,i)=>(n=new URL(n+".js",i).href,s[n]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=s,document.head.appendChild(e)}else e=n,importScripts(n),s()})).then((()=>{let e=s[n];if(!e)throw new Error(`Module ${n} didn’t register its module`);return e})));self.define=(i,r)=>{const l=e||("document"in self?document.currentScript.src:"")||location.href;if(s[l])return;let a={};const o=e=>n(e,l),u={module:{uri:l},exports:a,require:o};s[l]=Promise.all(i.map((e=>u[e]||o(e)))).then((e=>(r(...e),a)))}}define(["./workbox-32a34f02"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"app-icon-120.png",revision:"ed33837fa042b725590fde3fe8c86bc5"},{url:"app-icon-192.png",revision:"99fdc63826bee0d9dfa81dbdde81593b"},{url:"app-icon-256.png",revision:"d8aa3b549b97e999d07ec2bce0b351a7"},{url:"app-icon-512-rounded.png",revision:"67c9eb98339ee497d04f7c8f76ce66c7"},{url:"app-icon-512.png",revision:"e395e111321876ac227cd8ca945111d0"},{url:"assets/app-icon-512.a5eb7b3f.png",revision:null},{url:"assets/atc.09cec0ab.png",revision:null},{url:"assets/ekovoz.af7d8a74.png",revision:null},{url:"assets/index.f5aa938e.css",revision:null},{url:"assets/msg-air.abb754d3.js",revision:null},{url:"assets/msg-alert.804a179c.png",revision:null},{url:"assets/msg-alert.9404c396.js",revision:null},{url:"assets/msg-fire.faa011b0.js",revision:null},{url:"assets/msg-forest.a623a1f9.js",revision:null},{url:"assets/msg-gank.34a748fe.js",revision:null},{url:"assets/msg-gank.ef47b6e4.png",revision:null},{url:"assets/msg-garbage.b797b882.js",revision:null},{url:"assets/msg-notif.d72c5a6f.js",revision:null},{url:"assets/msg-notif.fbcb8f30.png",revision:null},{url:"assets/msg-parking.5da4fdeb.js",revision:null},{url:"assets/msg-parking.78bf40b4.png",revision:null},{url:"assets/msg-recycle.2ff7eefc.png",revision:null},{url:"assets/msg-recycle.eab79c00.js",revision:null},{url:"assets/msg-text.470fee8d.js",revision:null},{url:"assets/msg-water.b0066085.js",revision:null},{url:"assets/notosans-bold-webfont.b1ab6654.woff2",revision:null},{url:"assets/notosans-regular-webfont.7d4a5d04.woff2",revision:null},{url:"assets/notosansdisplay-black-webfont.9f247781.woff2",revision:null},{url:"assets/notosansdisplay-medium-webfont.5dca4cb1.woff2",revision:null},{url:"assets/polkadot.ba662d9a.png",revision:null},{url:"assets/sensors-world-app.8a0828bb.png",revision:null},{url:"assets/sun.d26ef6d1.png",revision:null},{url:"assets/webzero.f2278069.png",revision:null},{url:"favicon.ico",revision:"8e319c9cafb31249891540cd51c6e8a0"},{url:"index.html",revision:"6cbe6c45b7c59ddb2d963a6353b15ad5"},{url:"registerSW.js",revision:"402b66900e731ca748771b6fc5e7a068"},{url:"untitled folder/192.png",revision:"c077e8e3713cfb404346e7897c6fe85e"},{url:"untitled folder/256.png",revision:"7269f31dbeca5794e34aa525b9cfe383"},{url:"untitled folder/512.png",revision:"d19974ca79fd176170b76249657c7ab3"},{url:"untitled folder/icon512_rounded.png",revision:"c3539307f4aab29831b6cb2a94002add"},{url:"untitled folder/maskable-icon.png",revision:"0b1dc18370b9d45fbfabd7575ea1330d"},{url:"untitled folder/sensors-world-app.png",revision:"4080ed30224bdbd4648ca4ab3f8819fe"},{url:"app-icon-512.png",revision:"e395e111321876ac227cd8ca945111d0"},{url:"app-icon-512-rounded.png",revision:"67c9eb98339ee497d04f7c8f76ce66c7"},{url:"app-icon-256.png",revision:"d8aa3b549b97e999d07ec2bce0b351a7"},{url:"app-icon-192.png",revision:"99fdc63826bee0d9dfa81dbdde81593b"},{url:"manifest.webmanifest",revision:"dfbc91e8513e9bb64a77d105e241e922"}],{}),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));