@spectrum-charts/vega-spec-builder-s2 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.LICENSE.txt +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! For license information please see index.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@spectrum-charts/constants"),require("@spectrum-charts/themes"),require("@spectrum-charts/utils")):"function"==typeof define&&define.amd?define(["@spectrum-charts/constants","@spectrum-charts/themes","@spectrum-charts/utils"],t):"object"==typeof exports?exports.spectrumChartsVegaSpecBuilderS2=t(require("@spectrum-charts/constants"),require("@spectrum-charts/themes"),require("@spectrum-charts/utils")):e.spectrumChartsVegaSpecBuilderS2=t(e["@spectrum-charts/constants"],e["@spectrum-charts/themes"],e["@spectrum-charts/utils"])}(this,((e,t,n)=>(()=>{var r={743:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===n}(e)}(e)},n="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(e,t){return!1!==t.clone&&t.isMergeableObject(e)?s((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function i(e,t,n){return e.concat(t).map((function(e){return r(e,n)}))}function a(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function s(e,n,l){(l=l||{}).arrayMerge=l.arrayMerge||i,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=r;var u=Array.isArray(n);return u===Array.isArray(e)?u?l.arrayMerge(e,n,l):function(e,t,n){var i={};return n.isMergeableObject(e)&&a(e).forEach((function(t){i[t]=r(e[t],n)})),a(t).forEach((function(a){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,a)||(o(e,a)&&n.isMergeableObject(t[a])?i[a]=function(e,t){if(!t.customMerge)return s;var n=t.customMerge(e);return"function"==typeof n?n:s}(a,n)(e[a],t[a],n):i[a]=r(t[a],n))})),i}(e,n,l):r(n,l)}s.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return s(e,n,t)}),{})};var l=s;e.exports=l},561:function(e,t){!function(e){"use strict";function t(e){for(var t=new Array(e),n=0;n<e;++n)t[n]=0;return t}function n(e,t){for(var n=0,r=0;r<e.length;++r)n+=e[r]*t[r];return n}function r(e){return Math.sqrt(n(e,e))}function i(e,t,n){for(var r=0;r<t.length;++r)e[r]=t[r]*n}function a(e,t,n,r,i){for(var a=0;a<e.length;++a)e[a]=t*n[a]+r*i[a]}function o(e,t,r,i,o,s,l){var u=r.fx,c=n(r.fxprime,t),d=u,f=u,h=c,p=0;function m(f,p,m){for(var g=0;g<16;++g)if(o=(f+p)/2,a(i.x,1,r.x,o,t),d=i.fx=e(i.x,i.fxprime),h=n(i.fxprime,t),d>u+s*o*c||d>=m)p=o;else{if(Math.abs(h)<=-l*c)return o;h*(p-f)>=0&&(p=f),f=o,m=d}return 0}o=o||1,s=s||1e-6,l=l||.1;for(var g=0;g<10;++g){if(a(i.x,1,r.x,o,t),d=i.fx=e(i.x,i.fxprime),h=n(i.fxprime,t),d>u+s*o*c||g&&d>=f)return m(p,o,f);if(Math.abs(h)<=-l*c)return o;if(h>=0)return m(o,p,d);f=d,p=o,o*=2}return o}e.bisect=function(e,t,n,r){var i=(r=r||{}).maxIterations||100,a=r.tolerance||1e-10,o=e(t),s=e(n),l=n-t;if(o*s>0)throw"Initial bisect points must have opposite signs";if(0===o)return t;if(0===s)return n;for(var u=0;u<i;++u){var c=t+(l/=2),d=e(c);if(d*o>=0&&(t=c),Math.abs(l)<a||0===d)return c}return t+l},e.nelderMead=function(e,t,n){var r,i=(n=n||{}).maxIterations||200*t.length,o=n.nonZeroDelta||1.05,s=n.zeroDelta||.001,l=n.minErrorDelta||1e-6,u=n.minErrorDelta||1e-5,c=void 0!==n.rho?n.rho:1,d=void 0!==n.chi?n.chi:2,f=void 0!==n.psi?n.psi:-.5,h=void 0!==n.sigma?n.sigma:.5,p=t.length,m=new Array(p+1);m[0]=t,m[0].fx=e(t),m[0].id=0;for(var g=0;g<p;++g){var y=t.slice();y[g]=y[g]?y[g]*o:s,m[g+1]=y,m[g+1].fx=e(y),m[g+1].id=g+1}function _(e){for(var t=0;t<e.length;t++)m[p][t]=e[t];m[p].fx=e.fx}for(var v=function(e,t){return e.fx-t.fx},b=t.slice(),x=t.slice(),E=t.slice(),S=t.slice(),A=0;A<i;++A){if(m.sort(v),n.history){var $=m.map((function(e){var t=e.slice();return t.fx=e.fx,t.id=e.id,t}));$.sort((function(e,t){return e.id-t.id})),n.history.push({x:m[0].slice(),fx:m[0].fx,simplex:$})}for(r=0,g=0;g<p;++g)r=Math.max(r,Math.abs(m[0][g]-m[1][g]));if(Math.abs(m[0].fx-m[p].fx)<l&&r<u)break;for(g=0;g<p;++g){b[g]=0;for(var T=0;T<p;++T)b[g]+=m[T][g];b[g]/=p}var O=m[p];if(a(x,1+c,b,-c,O),x.fx=e(x),x.fx<m[0].fx)a(S,1+d,b,-d,O),S.fx=e(S),S.fx<x.fx?_(S):_(x);else if(x.fx>=m[p-1].fx){var D=!1;if(x.fx>O.fx?(a(E,1+f,b,-f,O),E.fx=e(E),E.fx<O.fx?_(E):D=!0):(a(E,1-f*c,b,f*c,O),E.fx=e(E),E.fx<x.fx?_(E):D=!0),D){if(h>=1)break;for(g=1;g<m.length;++g)a(m[g],1-h,m[0],h,m[g]),m[g].fx=e(m[g])}}else _(x)}return m.sort(v),{fx:m[0].fx,x:m[0]}},e.conjugateGradient=function(e,t,s){var l,u,c,d={x:t.slice(),fx:0,fxprime:t.slice()},f={x:t.slice(),fx:0,fxprime:t.slice()},h=t.slice(),p=1;c=(s=s||{}).maxIterations||20*t.length,d.fx=e(d.x,d.fxprime),i(l=d.fxprime.slice(),d.fxprime,-1);for(var m=0;m<c;++m){if(p=o(e,l,d,f,p),s.history&&s.history.push({x:d.x.slice(),fx:d.fx,fxprime:d.fxprime.slice(),alpha:p}),p){a(h,1,f.fxprime,-1,d.fxprime);var g=n(d.fxprime,d.fxprime);a(l,Math.max(0,n(h,f.fxprime)/g),l,-1,f.fxprime),u=d,d=f,f=u}else i(l,d.fxprime,-1);if(r(d.fxprime)<=1e-5)break}return s.history&&s.history.push({x:d.x.slice(),fx:d.fx,fxprime:d.fxprime.slice(),alpha:p}),d},e.gradientDescent=function(e,t,n){for(var i=(n=n||{}).maxIterations||100*t.length,o=n.learnRate||.001,s={x:t.slice(),fx:0,fxprime:t.slice()},l=0;l<i&&(s.fx=e(s.x,s.fxprime),n.history&&n.history.push({x:s.x.slice(),fx:s.fx,fxprime:s.fxprime.slice()}),a(s.x,1,s.x,-o,s.fxprime),!(r(s.fxprime)<=1e-5));++l);return s},e.gradientDescentLineSearch=function(e,t,n){n=n||{};var a,s={x:t.slice(),fx:0,fxprime:t.slice()},l={x:t.slice(),fx:0,fxprime:t.slice()},u=n.maxIterations||100*t.length,c=n.learnRate||1,d=t.slice(),f=n.c1||.001,h=n.c2||.1,p=[];if(n.history){var m=e;e=function(e,t){return p.push(e.slice()),m(e,t)}}s.fx=e(s.x,s.fxprime);for(var g=0;g<u&&(i(d,s.fxprime,-1),c=o(e,d,s,l,c,f,h),n.history&&(n.history.push({x:s.x.slice(),fx:s.fx,fxprime:s.fxprime.slice(),functionCalls:p,learnRate:c,alpha:c}),p=[]),a=s,s=l,l=a,!(0===c||r(s.fxprime)<1e-5));++g);return s},e.zeros=t,e.zerosM=function(e,n){return t(e).map((function(){return t(n)}))},e.norm2=r,e.weightedSum=a,e.scale=i}(t)},542:function(e){e.exports=(()=>{"use strict";var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{getLocale:()=>i,numberLocales:()=>n,timeLocales:()=>r});const n={"ar-AE":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," د.إ."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-BH":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," د.ب."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-DJ":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["Fdj ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-DZ":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["د.ج. ",""]}'),"ar-EG":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ج.م."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-IL":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["₪ ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-IQ":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," د.ع."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-JO":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," د.أ."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-KM":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ف.ج.ق."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-KW":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," د.ك."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-LB":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ل.ل."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-LY":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["د.ل. ",""]}'),"ar-MA":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["د.م. ",""]}'),"ar-OM":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ر.ع."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-PS":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["₪ ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-QA":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ر.ق."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-SA":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ر.س."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-SD":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ج.س."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-SO":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["S ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-SS":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["£ ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-SY":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ل.س."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-TD":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["FCFA ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-TN":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["د.ت. ",""]}'),"ar-YE":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ر.ى."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ca-ES":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," €"]}'),"cs-CZ":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," Kč"]}'),"da-DK":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," kr"]}'),"de-CH":JSON.parse('{"decimal":",","thousands":"\'","grouping":[3],"currency":[""," CHF"]}'),"de-DE":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," €"]}'),"en-CA":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["$",""]}'),"en-GB":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["£",""]}'),"en-IE":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["€",""]}'),"en-IN":JSON.parse('{"decimal":".","thousands":",","grouping":[3,2,2,2,2,2,2,2,2,2],"currency":["₹",""]}'),"en-US":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["$",""]}'),"es-BO":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["Bs ",""],"percent":" %"}'),"es-ES":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," €"]}'),"es-MX":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["$",""]}'),"fi-FI":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," €"]}'),"fr-CA":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":["","$"]}'),"fr-FR":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," €"],"percent":" %"}'),"he-IL":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["₪",""]}'),"hu-HU":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," Ft"]}'),"it-IT":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["€",""]}'),"ja-JP":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["","円"]}'),"ko-KR":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["₩",""]}'),"mk-MK":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," ден."]}'),"nl-NL":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["€ ",""]}'),"pl-PL":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["","zł"]}'),"pt-BR":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["R$",""]}'),"pt-PT":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," €"]}'),"ru-RU":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," ₽"]}'),"sl-SI":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," €"]}'),"sv-SE":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," kr"]}'),"uk-UA":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," ₴."]}'),"zh-CN":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["¥",""]}')},r={"ar-EG":JSON.parse('{"dateTime":"%x, %X","date":"%-d/%-m/%Y","time":"%-I:%M:%S %p","periods":["ص","م"],"days":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"shortDays":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"months":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"shortMonths":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"]}'),"ar-SY":JSON.parse('{"dateTime":"%x, %X","date":"%-d/%-m/%Y","time":"%-I:%M:%S %p","periods":["ص","م"],"days":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"shortDays":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"months":["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],"shortMonths":["ك٢","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","ت١","ت٢","ك١"]}'),"ca-ES":JSON.parse('{"dateTime":"%A, %e de %B de %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"shortDays":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"months":["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],"shortMonths":["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."]}'),"cs-CZ":JSON.parse('{"dateTime":"%A,%e.%B %Y, %X","date":"%-d.%-m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["neděle","pondělí","úterý","středa","čvrtek","pátek","sobota"],"shortDays":["ne.","po.","út.","st.","čt.","pá.","so."],"months":["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],"shortMonths":["led","úno","břez","dub","kvě","čer","červ","srp","zář","říj","list","pros"]}'),"da-DK":JSON.parse('{"dateTime":"%A den %d %B %Y %X","date":"%d-%m-%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"shortDays":["søn","man","tir","ons","tor","fre","lør"],"months":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"shortMonths":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"]}'),"de-CH":JSON.parse('{"dateTime":"%A, der %e. %B %Y, %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"shortDays":["So","Mo","Di","Mi","Do","Fr","Sa"],"months":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"shortMonths":["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"]}'),"de-DE":JSON.parse('{"dateTime":"%A, der %e. %B %Y, %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"shortDays":["So","Mo","Di","Mi","Do","Fr","Sa"],"months":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"shortMonths":["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"]}'),"en-CA":JSON.parse('{"dateTime":"%a %b %e %X %Y","date":"%Y-%m-%d","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"shortDays":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"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"]}'),"en-GB":JSON.parse('{"dateTime":"%a %e %b %X %Y","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"shortDays":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"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"]}'),"en-US":JSON.parse('{"dateTime":"%x, %X","date":"%-m/%-d/%Y","time":"%-I:%M:%S %p","periods":["AM","PM"],"days":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"shortDays":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"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"]}'),"es-ES":JSON.parse('{"dateTime":"%A, %e de %B de %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"shortDays":["dom","lun","mar","mié","jue","vie","sáb"],"months":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"shortMonths":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"]}'),"es-MX":JSON.parse('{"dateTime":"%x, %X","date":"%d/%m/%Y","time":"%-I:%M:%S %p","periods":["AM","PM"],"days":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"shortDays":["dom","lun","mar","mié","jue","vie","sáb"],"months":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"shortMonths":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"]}'),"fa-IR":JSON.parse('{"dateTime":"%x, %X","date":"%-d/%-m/%Y","time":"%-I:%M:%S %p","periods":["صبح","عصر"],"days":["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"shortDays":["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"months":["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],"shortMonths":["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"]}'),"fi-FI":JSON.parse('{"dateTime":"%A, %-d. %Bta %Y klo %X","date":"%-d.%-m.%Y","time":"%H:%M:%S","periods":["a.m.","p.m."],"days":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"shortDays":["Su","Ma","Ti","Ke","To","Pe","La"],"months":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"shortMonths":["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"]}'),"fr-CA":JSON.parse('{"dateTime":"%a %e %b %Y %X","date":"%Y-%m-%d","time":"%H:%M:%S","periods":["",""],"days":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"shortDays":["dim","lun","mar","mer","jeu","ven","sam"],"months":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"shortMonths":["jan","fév","mar","avr","mai","jui","jul","aoû","sep","oct","nov","déc"]}'),"fr-FR":JSON.parse('{"dateTime":"%A %e %B %Y à %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"shortDays":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"months":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"shortMonths":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."]}'),"he-IL":JSON.parse('{"dateTime":"%A, %e ב%B %Y %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת"],"shortDays":["א׳","ב׳","ג׳","ד׳","ה׳","ו׳","ש׳"],"months":["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],"shortMonths":["ינו׳","פבר׳","מרץ","אפר׳","מאי","יוני","יולי","אוג׳","ספט׳","אוק׳","נוב׳","דצמ׳"]}'),"hr-HR":JSON.parse('{"dateTime":"%A, %e. %B %Y., %X","date":"%d. %m. %Y.","time":"%H:%M:%S","periods":["AM","PM"],"days":["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvtrak","Petak","Subota"],"shortDays":["Ne","Po","Ut","Sr","Če","Pe","Su"],"months":["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],"shortMonths":["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"]}'),"hu-HU":JSON.parse('{"dateTime":"%Y. %B %-e., %A %X","date":"%Y. %m. %d.","time":"%H:%M:%S","periods":["de.","du."],"days":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"shortDays":["V","H","K","Sze","Cs","P","Szo"],"months":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"shortMonths":["jan.","feb.","már.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."]}'),"it-IT":JSON.parse('{"dateTime":"%A %e %B %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"shortDays":["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],"months":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],"shortMonths":["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"]}'),"ja-JP":JSON.parse('{"dateTime":"%x %a %X","date":"%Y/%m/%d","time":"%H:%M:%S","periods":["AM","PM"],"days":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"shortDays":["日","月","火","水","木","金","土"],"months":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"shortMonths":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]}'),"ko-KR":JSON.parse('{"dateTime":"%Y/%m/%d %a %X","date":"%Y/%m/%d","time":"%H:%M:%S","periods":["오전","오후"],"days":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"shortDays":["일","월","화","수","목","금","토"],"months":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"shortMonths":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]}'),"mk-MK":JSON.parse('{"dateTime":"%A, %e %B %Y г. %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["недела","понеделник","вторник","среда","четврток","петок","сабота"],"shortDays":["нед","пон","вто","сре","чет","пет","саб"],"months":["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],"shortMonths":["јан","фев","мар","апр","мај","јун","јул","авг","сеп","окт","ное","дек"]}'),"nb-NO":JSON.parse('{"dateTime":"%A den %d. %B %Y %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"shortDays":["søn","man","tir","ons","tor","fre","lør"],"months":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"shortMonths":["jan","feb","mars","apr","mai","juni","juli","aug","sep","okt","nov","des"]}'),"nl-BE":JSON.parse('{"dateTime":"%a %e %B %Y %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"shortDays":["zo","ma","di","wo","do","vr","za"],"months":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"shortMonths":["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"]}'),"nl-NL":JSON.parse('{"dateTime":"%a %e %B %Y %X","date":"%d-%m-%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"shortDays":["zo","ma","di","wo","do","vr","za"],"months":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"shortMonths":["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"]}'),"pl-PL":JSON.parse('{"dateTime":"%A, %e %B %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],"shortDays":["Niedz.","Pon.","Wt.","Śr.","Czw.","Pt.","Sob."],"months":["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],"shortMonths":["Stycz.","Luty","Marz.","Kwie.","Maj","Czerw.","Lipc.","Sierp.","Wrz.","Paźdz.","Listop.","Grudz."]}'),"pt-BR":JSON.parse('{"dateTime":"%A, %e de %B de %Y. %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],"shortDays":["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],"months":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"shortMonths":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"]}'),"ru-RU":JSON.parse('{"dateTime":"%A, %e %B %Y г. %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"shortDays":["вс","пн","вт","ср","чт","пт","сб"],"months":["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],"shortMonths":["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек"]}'),"sv-SE":JSON.parse('{"dateTime":"%A den %d %B %Y %X","date":"%Y-%m-%d","time":"%H:%M:%S","periods":["fm","em"],"days":["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],"shortDays":["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],"months":["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],"shortMonths":["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"]}'),"tr-TR":JSON.parse('{"dateTime":"%a %e %b %X %Y","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"shortDays":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"months":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"shortMonths":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"]}'),"uk-UA":JSON.parse('{"dateTime":"%A, %e %B %Y р. %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["дп","пп"],"days":["неділя","понеділок","вівторок","середа","четвер","п\'ятниця","субота"],"shortDays":["нд","пн","вт","ср","чт","пт","сб"],"months":["січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"],"shortMonths":["січ.","лют.","бер.","квіт.","трав.","черв.","лип.","серп.","вер.","жовт.","лист.","груд."]}'),"zh-CN":JSON.parse('{"dateTime":"%x %A %X","date":"%Y年%-m月%-d日","time":"%H:%M:%S","periods":["上午","下午"],"days":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"shortDays":["周日","周一","周二","周三","周四","周五","周六"],"months":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"shortMonths":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]}'),"zh-TW":JSON.parse('{"dateTime":"%x %A %X","date":"%Y年%-m月%-d日","time":"%H:%M:%S","periods":["上午","下午"],"days":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"shortDays":["日","一","二","三","四","五","六"],"months":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"shortMonths":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]}')},i=(e="en-US")=>{var t,i;return"string"==typeof e?{number:null!==(t=n[e])&&void 0!==t?t:n["en-US"],time:null!==(i=r[e])&&void 0!==i?i:r["en-US"]}:{number:a(e.number),time:o(e.time)}},a=e=>{var t;return"string"==typeof e?null!==(t=n[e])&&void 0!==t?t:n["en-US"]:e},o=e=>{var t;return"string"==typeof e?null!==(t=r[e])&&void 0!==t?t:r["en-US"]:e};return t})()},633:t=>{"use strict";t.exports=e},274:e=>{"use strict";e.exports=t},365:e=>{"use strict";e.exports=n}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={exports:{}};return r[e].call(n.exports,n,n.exports,a),n.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{"use strict";a.r(o),a.d(o,{addData:()=>uY,addUserMetaAnimatedMark:()=>yj,addUserMetaDivergingBarMark:()=>gj,addUserMetaInteractiveMark:()=>mj,applyUserMetaConfigPatches:()=>DY,baseData:()=>lj,buildSpec:()=>Wq,escapeD3FormatSpecifier:()=>hj,expressionFunctions:()=>OY,formatHorizontalTimeAxisLabels:()=>xY,formatLocaleCurrency:()=>bY,formatShortNumber:()=>vY,formatTimeDurationLabels:()=>SY,formatVerticalAxisTimeLabels:()=>EY,getChartConfig:()=>pj,getColorScale:()=>Qq,getD3FormatSpecifierFromNumberFormat:()=>fj,getDefaultSignals:()=>Yq,getDimensionField:()=>dj,getExpressionFunctions:()=>_Y,getFacetsFromOptions:()=>ej,getFacetsFromScales:()=>tj,getLineTypeScale:()=>tY,getLineWidthPixelsFromLineWidth:()=>rj,getLineWidthScale:()=>aY,getLinearColorScale:()=>eY,getOpacityScale:()=>oY,getPathFromIcon:()=>aj,getPathFromSymbolShape:()=>ij,getStrokeDashFromLineType:()=>nj,getSymbolPathWidthScale:()=>iY,getSymbolShapeScale:()=>nY,getSymbolSizeScale:()=>rY,getSymbolWidthFromRscSymbolSize:()=>sj,getTwoDimensionalColorScheme:()=>Kq,getTwoDimensionalLineTypes:()=>Jq,getTwoDimensionalOpacities:()=>Xq,getVegaEmbedOptions:()=>wY,getVegaSymbolSizeFromRscSymbolSize:()=>oj,initializeSpec:()=>uj,isColorScale:()=>cY,isColors:()=>dY,isLineTypeArray:()=>fY,isNumberArray:()=>pY,isStrokeDashArray:()=>hY,isSymbolShapeArray:()=>mY,mergeValuesIntoData:()=>cj,removeUnusedScales:()=>Gq});var e={};a.r(e),a.d(e,{aggregate:()=>Qs,bin:()=>el,collect:()=>nl,compare:()=>rl,countpattern:()=>al,cross:()=>ol,density:()=>cl,dotbin:()=>ml,expression:()=>gl,extent:()=>_l,facet:()=>bl,field:()=>xl,filter:()=>Sl,flatten:()=>Al,fold:()=>$l,formula:()=>Tl,generate:()=>Ol,impute:()=>wl,joinaggregate:()=>Il,kde:()=>Cl,key:()=>Rl,load:()=>Ll,lookup:()=>Fl,multiextent:()=>Bl,multivalues:()=>Hl,params:()=>Pl,pivot:()=>Ul,prefacet:()=>Vl,project:()=>Wl,proxy:()=>Gl,quantile:()=>ql,relay:()=>Yl,sample:()=>Kl,sequence:()=>Jl,sieve:()=>Xl,subflow:()=>vl,timeunit:()=>Zl,tupleindex:()=>eu,values:()=>tu,window:()=>ou});var t={};a.r(t),a.d(t,{interpolate:()=>Cd,interpolateArray:()=>Ad,interpolateBasis:()=>fd,interpolateBasisClosed:()=>hd,interpolateCubehelix:()=>Oh,interpolateCubehelixLong:()=>Dh,interpolateDate:()=>Td,interpolateDiscrete:()=>Rf,interpolateHcl:()=>ph,interpolateHclLong:()=>mh,interpolateHsl:()=>Wf,interpolateHslLong:()=>Gf,interpolateHue:()=>kf,interpolateLab:()=>fh,interpolateNumber:()=>Od,interpolateNumberArray:()=>Ed,interpolateObject:()=>Dd,interpolateRgb:()=>_d,interpolateRgbBasis:()=>bd,interpolateRgbBasisClosed:()=>xd,interpolateRound:()=>Rd,interpolateString:()=>Id,interpolateTransformCss:()=>Hf,interpolateTransformSvg:()=>zf,interpolateZoom:()=>Uf,piecewise:()=>Ef,quantize:()=>Mh});var n={};a.r(n),a.d(n,{bound:()=>ab,identifier:()=>lb,mark:()=>ub,overlap:()=>cb,render:()=>yb,viewlayout:()=>Bb});var r={};a.r(r),a.d(r,{axisticks:()=>Hb,datajoin:()=>zb,encode:()=>Ub,legendentries:()=>Vb,linkpath:()=>Kb,pie:()=>ex,scale:()=>rx,sortitems:()=>sx,stack:()=>fx});var i={};a.r(i),a.d(i,{contour:()=>iT,geojson:()=>sT,geopath:()=>lT,geopoint:()=>uT,geoshape:()=>cT,graticule:()=>dT,heatmap:()=>fT,isocontour:()=>Y$,kde2d:()=>tT,projection:()=>pT});var s={};a.r(s),a.d(s,{force:()=>uO});var l={};a.r(l),a.d(l,{nest:()=>hD,pack:()=>vD,partition:()=>xD,stratify:()=>ED,tree:()=>$D,treelinks:()=>TD,treemap:()=>MD});var u={};a.r(u),a.d(u,{label:()=>XD});var c={};a.r(c),a.d(c,{loess:()=>QD,regression:()=>tM});var d={};a.r(d),a.d(d,{voronoi:()=>IM});var f={};a.r(f),a.d(f,{wordcloud:()=>GM});var h={};a.r(h),a.d(h,{crossfilter:()=>QM,resolvefilter:()=>ew});var p=Symbol.for("immer-nothing"),m=Symbol.for("immer-draftable"),g=Symbol.for("immer-state");function y(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var _=Object.getPrototypeOf;function v(e){return!!e&&!!e[g]}function b(e){return!!e&&(E(e)||Array.isArray(e)||!!e[m]||!!e.constructor?.[m]||O(e)||D(e))}var x=Object.prototype.constructor.toString();function E(e){if(!e||"object"!=typeof e)return!1;const t=_(e);if(null===t)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return n===Object||"function"==typeof n&&Function.toString.call(n)===x}function S(e,t){0===A(e)?Reflect.ownKeys(e).forEach((n=>{t(n,e[n],e)})):e.forEach(((n,r)=>t(r,n,e)))}function A(e){const t=e[g];return t?t.type_:Array.isArray(e)?1:O(e)?2:D(e)?3:0}function $(e,t){return 2===A(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function T(e,t,n){const r=A(e);2===r?e.set(t,n):3===r?e.add(n):e[t]=n}function O(e){return e instanceof Map}function D(e){return e instanceof Set}function M(e){return e.copy_||e.base_}function w(e,t){if(O(e))return new Map(e);if(D(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=E(e);if(!0===t||"class_only"===t&&!n){const t=Object.getOwnPropertyDescriptors(e);delete t[g];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){const i=n[r],a=t[i];!1===a.writable&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[i]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[i]})}return Object.create(_(e),t)}{const t=_(e);if(null!==t&&n)return{...e};const r=Object.create(t);return Object.assign(r,e)}}function I(e,t=!1){return R(e)||v(e)||!b(e)||(A(e)>1&&(e.set=e.add=e.clear=e.delete=C),Object.freeze(e),t&&Object.entries(e).forEach((([e,t])=>I(t,!0)))),e}function C(){y(2)}function R(e){return Object.isFrozen(e)}var k,L={};function N(e){const t=L[e];return t||y(0),t}function F(){return k}function B(e,t){t&&(N("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function j(e){H(e),e.drafts_.forEach(P),e.drafts_=null}function H(e){e===k&&(k=e.parent_)}function z(e){return k={drafts_:[],parent_:k,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function P(e){const t=e[g];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function U(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return void 0!==e&&e!==n?(n[g].modified_&&(j(t),y(4)),b(e)&&(e=V(t,e),t.parent_||G(t,e)),t.patches_&&N("Patches").generateReplacementPatches_(n[g].base_,e,t.patches_,t.inversePatches_)):e=V(t,n,[]),j(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==p?e:void 0}function V(e,t,n){if(R(t))return t;const r=t[g];if(!r)return S(t,((i,a)=>W(e,r,t,i,a,n))),t;if(r.scope_!==e)return t;if(!r.modified_)return G(e,r.base_,!0),r.base_;if(!r.finalized_){r.finalized_=!0,r.scope_.unfinalizedDrafts_--;const t=r.copy_;let i=t,a=!1;3===r.type_&&(i=new Set(t),t.clear(),a=!0),S(i,((i,o)=>W(e,r,t,i,o,n,a))),G(e,t,!1),n&&e.patches_&&N("Patches").generatePatches_(r,n,e.patches_,e.inversePatches_)}return r.copy_}function W(e,t,n,r,i,a,o){if(v(i)){const o=V(e,i,a&&t&&3!==t.type_&&!$(t.assigned_,r)?a.concat(r):void 0);if(T(n,r,o),!v(o))return;e.canAutoFreeze_=!1}else o&&n.add(i);if(b(i)&&!R(i)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;V(e,i),t&&t.scope_.parent_||"symbol"==typeof r||!Object.prototype.propertyIsEnumerable.call(n,r)||G(e,i)}}function G(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&I(t,n)}var q={get(e,t){if(t===g)return e;const n=M(e);if(!$(n,t))return function(e,t,n){const r=J(t,n);return r?"value"in r?r.value:r.get?.call(e.draft_):void 0}(e,n,t);const r=n[t];return e.finalized_||!b(r)?r:r===K(e.base_,t)?(Z(e),e.copy_[t]=Q(r,e)):r},has:(e,t)=>t in M(e),ownKeys:e=>Reflect.ownKeys(M(e)),set(e,t,n){const r=J(M(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const r=K(M(e),t),i=r?.[g];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}(n,r)&&(void 0!==n||$(e.base_,t)))return!0;Z(e),X(e)}return e.copy_[t]===n&&(void 0!==n||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty:(e,t)=>(void 0!==K(e.base_,t)||t in e.base_?(e.assigned_[t]=!1,Z(e),X(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const n=M(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r?{writable:!0,configurable:1!==e.type_||"length"!==t,enumerable:r.enumerable,value:n[t]}:r},defineProperty(){y(11)},getPrototypeOf:e=>_(e.base_),setPrototypeOf(){y(12)}},Y={};function K(e,t){const n=e[g];return(n?M(n):e)[t]}function J(e,t){if(!(t in e))return;let n=_(e);for(;n;){const e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=_(n)}}function X(e){e.modified_||(e.modified_=!0,e.parent_&&X(e.parent_))}function Z(e){e.copy_||(e.copy_=w(e.base_,e.scope_.immer_.useStrictShallowCopy_))}function Q(e,t){const n=O(e)?N("MapSet").proxyMap_(e,t):D(e)?N("MapSet").proxySet_(e,t):function(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:F(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,a=q;n&&(i=[r],a=Y);const{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,s}(e,t);return(t?t.scope_:F()).drafts_.push(n),n}function ee(e){if(!b(e)||R(e))return e;const t=e[g];let n;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=w(e,t.scope_.immer_.useStrictShallowCopy_)}else n=w(e,!0);return S(n,((e,t)=>{T(n,e,ee(t))})),t&&(t.finalized_=!1),n}S(q,((e,t)=>{Y[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),Y.deleteProperty=function(e,t){return Y.set.call(this,e,t,void 0)},Y.set=function(e,t,n){return q.set.call(this,e[0],t,n,e[0])};var te=new class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(e,t,n)=>{if("function"==typeof e&&"function"!=typeof t){const n=t;t=e;const r=this;return function(e=n,...i){return r.produce(e,(e=>t.call(this,e,...i)))}}let r;if("function"!=typeof t&&y(6),void 0!==n&&"function"!=typeof n&&y(7),b(e)){const i=z(this),a=Q(e,void 0);let o=!0;try{r=t(a),o=!1}finally{o?j(i):H(i)}return B(i,n),U(r,i)}if(!e||"object"!=typeof e){if(r=t(e),void 0===r&&(r=e),r===p&&(r=void 0),this.autoFreeze_&&I(r,!0),n){const t=[],i=[];N("Patches").generateReplacementPatches_(e,r,t,i),n(t,i)}return r}y(1)},this.produceWithPatches=(e,t)=>{if("function"==typeof e)return(t,...n)=>this.produceWithPatches(t,(t=>e(t,...n)));let n,r;return[this.produce(e,t,((e,t)=>{n=e,r=t})),n,r]},"boolean"==typeof e?.autoFreeze&&this.setAutoFreeze(e.autoFreeze),"boolean"==typeof e?.useStrictShallowCopy&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){b(e)||y(8),v(e)&&(e=function(e){return v(e)||y(10),ee(e)}(e));const t=z(this),n=Q(e,void 0);return n[g].isManual_=!0,H(t),n}finishDraft(e,t){const n=e&&e[g];n&&n.isManual_||y(9);const{scope_:r}=n;return B(r,t),U(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}n>-1&&(t=t.slice(n+1));const r=N("Patches").applyPatches_;return v(e)?r(e,t):this.produce(e,(e=>r(e,t)))}},ne=te.produce;te.produceWithPatches.bind(te),te.setAutoFreeze.bind(te),te.setUseStrictShallowCopy.bind(te),te.applyPatches.bind(te),te.createDraft.bind(te),te.finishDraft.bind(te);var re=a(633),ie=a(274),ae=a(365);const oe=ne(((e,t)=>{-1===e.findIndex((e=>"timeunit"===e.type))&&e.push({type:"formula",expr:`toDate(datum["${t}"])`,as:t},{type:"timeunit",field:t,units:["year","month","date","hours","minutes","seconds"],as:[re.DEFAULT_TRANSFORMED_TIME_DIMENSION,`${re.DEFAULT_TIME_DIMENSION}1`]})})),se=e=>{if(e)return{field:e}},le=e=>e.find((e=>e.name===re.TABLE)),ue=e=>e.find((e=>e.name===re.FILTERED_TABLE)),ce=e=>{if(0===e.length)return[];const t=e.map((e=>`datum.${e}`)).join(' + " | " + ');return[{type:"formula",as:re.SERIES_ID,expr:t}]},de=e=>{var t;const n=null===(t=e[0])||void 0===t?void 0:t.excludeDataKeys,r=null==n?void 0:n.map((e=>({type:"filter",expr:`!datum.${e}`})));return{name:`${re.FILTERED_TABLE}ForInspect`,source:re.FILTERED_TABLE,transform:r}};function fe(e,t,n){return e.fields=t||[],e.fname=n,e}function he(e){return null==e?null:e.fname}function pe(e){return null==e?null:e.fields}function me(e){return 1===e.length?ge(e[0]):ye(e)}const ge=e=>function(t){return t[e]},ye=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function _e(e){throw Error(e)}function ve(e){const t=[],n=e.length;let r,i,a,o=null,s=0,l="";function u(){t.push(l+e.substring(r,i)),l="",r=i+1}for(e+="",r=i=0;i<n;++i)if(a=e[i],"\\"===a)l+=e.substring(r,i++),r=i;else if(a===o)u(),o=null,s=-1;else{if(o)continue;r===s&&'"'===a||r===s&&"'"===a?(r=i+1,o=a):"."!==a||s?"["===a?(i>r&&u(),s=r=i+1):"]"===a&&(s||_e("Access path missing open bracket: "+e),s>0&&u(),s=0,r=i+1):i>r?u():r=i+1}return s&&_e("Access path missing closing bracket: "+e),o&&_e("Access path missing closing quote: "+e),i>r&&(i++,u()),t}function be(e,t,n){const r=ve(e);return e=1===r.length?r[0]:e,fe((n&&n.get||me)(r),[e],t||e)}const xe=be("id"),Ee=fe((e=>e),[],"identity"),Se=fe((()=>0),[],"zero"),Ae=fe((()=>1),[],"one"),$e=fe((()=>!0),[],"true"),Te=fe((()=>!1),[],"false"),Oe=new Set([...Object.getOwnPropertyNames(Object.prototype).filter((e=>"function"==typeof Object.prototype[e])),"__proto__"]);function De(e,t,n){const r=[t].concat([].slice.call(n));console[e].apply(console,r)}const Me=0,we=1,Ie=2,Ce=3,Re=4;function ke(e,t,n=De){let r=e||Me;return{level(e){return arguments.length?(r=+e,this):r},error(){return r>=we&&n(t||"error","ERROR",arguments),this},warn(){return r>=Ie&&n(t||"warn","WARN",arguments),this},info(){return r>=Ce&&n(t||"log","INFO",arguments),this},debug(){return r>=Re&&n(t||"log","DEBUG",arguments),this}}}var Le=Array.isArray;function Ne(e){return e===Object(e)}const Fe=e=>"__proto__"!==e;function Be(e,t,n,r){if(!Fe(t))return;let i,a;if(Ne(n)&&!Le(n))for(i in a=Ne(e[t])?e[t]:e[t]={},n)r&&(!0===r||r[i])?Be(a,i,n[i]):Fe(i)&&(a[i]=n[i]);else e[t]=n}function je(e,t){if(null==e)return t;const n={},r=[];function i(e){n[e.name]||(n[e.name]=1,r.push(e))}return t.forEach(i),e.forEach(i),r}function He(e){return e[e.length-1]}function ze(e){return null==e||""===e?null:+e}const Pe=e=>t=>e*Math.exp(t),Ue=e=>t=>Math.log(e*t),Ve=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),We=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,Ge=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function qe(e,t,n,r){const i=n(e[0]),a=n(He(e)),o=(a-i)*t;return[r(i-o),r(a-o)]}function Ye(e,t,n,r,i){const a=r(e[0]),o=r(He(e)),s=null!=t?r(t):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function Ke(e,t,n){return Ye(e,t,n,ze,Ee)}function Je(e,t,n){const r=Math.sign(e[0]);return Ye(e,t,n,Ue(r),Pe(r))}function Xe(e,t,n,r){return Ye(e,t,n,Ge(r),Ge(1/r))}function Ze(e,t,n,r){return Ye(e,t,n,Ve(r),We(r))}function Qe(e){return null!=e?Le(e)?e:[e]:[]}function et(e){return"function"==typeof e}const tt="descending";function nt(e,t,n){n=n||{},t=Qe(t)||[];const r=[],i=[],a={},o=n.comparator||it;return Qe(e).forEach(((e,o)=>{null!=e&&(r.push(t[o]===tt?-1:1),i.push(e=et(e)?e:be(e,null,n)),(pe(e)||[]).forEach((e=>a[e]=1)))})),0===i.length?null:fe(o(i,r),Object.keys(a))}const rt=(e,t)=>(e<t||null==e)&&null!=t?-1:(e>t||null==t)&&null!=e?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t==t?-1:t!=t&&e==e?1:0),it=(e,t)=>1===e.length?at(e[0],t[0]):ot(e,t,e.length),at=(e,t)=>function(n,r){return rt(e(n),e(r))*t},ot=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;0===o&&++s<n;)a=e[s],o=rt(a(r),a(i));return o*t[s]});function st(e){return et(e)?e:()=>e}function lt(e,t){let n;return r=>{n&&clearTimeout(n),n=setTimeout((()=>(t(r),n=null)),e)}}function ut(e){for(let t,n,r=1,i=arguments.length;r<i;++r)for(n in t=arguments[r],t)e[n]=t[n];return e}function ct(e,t){let n,r,i,a,o=0;if(e&&(n=e.length))if(null==t){for(r=e[o];o<n&&(null==r||r!=r);r=e[++o]);for(i=a=r;o<n;++o)r=e[o],null!=r&&(r<i&&(i=r),r>a&&(a=r))}else{for(r=t(e[o]);o<n&&(null==r||r!=r);r=t(e[++o]));for(i=a=r;o<n;++o)r=t(e[o]),null!=r&&(r<i&&(i=r),r>a&&(a=r))}return[i,a]}function dt(e,t){return Object.hasOwn(e,t)}const ft={};function ht(e){let t,n={};function r(e){return dt(n,e)&&n[e]!==ft}const i={size:0,empty:0,object:n,has:r,get:e=>r(e)?n[e]:void 0,set(e,t){return r(e)||(++i.size,n[e]===ft&&--i.empty),n[e]=t,this},delete(e){return r(e)&&(--i.size,++i.empty,n[e]=ft),this},clear(){i.size=i.empty=0,i.object=n={}},test(e){return arguments.length?(t=e,i):t},clean(){const e={};let r=0;for(const i in n){const a=n[i];a===ft||t&&t(a)||(e[i]=a,++r)}i.size=r,i.empty=0,i.object=n=e}};return e&&Object.keys(e).forEach((t=>{i.set(t,e[t])})),i}function pt(e,t,n){const r=e.prototype=Object.create(t.prototype);return Object.defineProperty(r,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),ut(r,n)}function mt(e,t,n,r){let i,a=t[0],o=t[t.length-1];return a>o&&(i=a,a=o,o=i),r=void 0===r||r,((n=void 0===n||n)?a<=e:a<e)&&(r?e<=o:e<o)}function gt(e){return"[object Date]"===Object.prototype.toString.call(e)}function yt(e){return"number"==typeof e}function _t(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function vt(e){return"string"==typeof e}function bt(e,t,n){e&&(e=t?Qe(e).map((e=>e.replace(/\\(.)/g,"$1"))):Qe(e));const r=e&&e.length,i=n&&n.get||me,a=e=>i(t?[e]:ve(e));let o;if(r)if(1===r){const t=a(e[0]);o=function(e){return""+t(e)}}else{const t=e.map(a);o=function(e){let n=""+t[0](e),i=0;for(;++i<r;)n+="|"+t[i](e);return n}}else o=function(){return""};return fe(o,e,"key")}function xt(e,t){let n="";for(;--t>=0;)n+=e;return n}function Et(e){return e&&He(e)-e[0]||0}function St(e){return Le(e)?`[${e.map((e=>null===e?"null":St(e)))}]`:Ne(e)||vt(e)?JSON.stringify(e).replaceAll("\u2028","\\u2028").replaceAll("\u2029","\\u2029"):e}function At(e){return null==e||""===e?null:!(!e||"false"===e||"0"===e||!e)}const $t=e=>yt(e)||gt(e)?e:Date.parse(e);function Tt(e,t){return t=t||$t,null==e||""===e?null:t(e)}function Ot(e){return null==e||""===e?null:e+""}function Dt(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}function Mt(e,t,n){if(e)if(t){const r=e.length;for(let i=0;i<r;++i){const r=t(e[i]);r&&n(r,i,e)}}else e.forEach(n)}var wt={},It={},Ct=34,Rt=10,kt=13;function Lt(e){return new Function("d","return {"+e.map((function(e,t){return JSON.stringify(e)+": d["+t+'] || ""'})).join(",")+"}")}function Nt(e){var t=Object.create(null),n=[];return e.forEach((function(e){for(var r in e)r in t||n.push(t[r]=r)})),n}function Ft(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function Bt(e){var t=new RegExp('["'+e+"\n\r]"),n=e.charCodeAt(0);function r(e,t){var r,i=[],a=e.length,o=0,s=0,l=a<=0,u=!1;function c(){if(l)return It;if(u)return u=!1,wt;var t,r,i=o;if(e.charCodeAt(i)===Ct){for(;o++<a&&e.charCodeAt(o)!==Ct||e.charCodeAt(++o)===Ct;);return(t=o)>=a?l=!0:(r=e.charCodeAt(o++))===Rt?u=!0:r===kt&&(u=!0,e.charCodeAt(o)===Rt&&++o),e.slice(i+1,t-1).replace(/""/g,'"')}for(;o<a;){if((r=e.charCodeAt(t=o++))===Rt)u=!0;else if(r===kt)u=!0,e.charCodeAt(o)===Rt&&++o;else if(r!==n)continue;return e.slice(i,t)}return l=!0,e.slice(i,a)}for(e.charCodeAt(a-1)===Rt&&--a,e.charCodeAt(a-1)===kt&&--a;(r=c())!==It;){for(var d=[];r!==wt&&r!==It;)d.push(r),r=c();t&&null==(d=t(d,s++))||i.push(d)}return i}function i(t,n){return t.map((function(t){return n.map((function(e){return o(t[e])})).join(e)}))}function a(t){return t.map(o).join(e)}function o(e){return null==e?"":e instanceof Date?function(e){var t,n=e.getUTCHours(),r=e.getUTCMinutes(),i=e.getUTCSeconds(),a=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":((t=e.getUTCFullYear())<0?"-"+Ft(-t,6):t>9999?"+"+Ft(t,6):Ft(t,4))+"-"+Ft(e.getUTCMonth()+1,2)+"-"+Ft(e.getUTCDate(),2)+(a?"T"+Ft(n,2)+":"+Ft(r,2)+":"+Ft(i,2)+"."+Ft(a,3)+"Z":i?"T"+Ft(n,2)+":"+Ft(r,2)+":"+Ft(i,2)+"Z":r||n?"T"+Ft(n,2)+":"+Ft(r,2)+"Z":"")}(e):t.test(e+="")?'"'+e.replace(/"/g,'""')+'"':e}return{parse:function(e,t){var n,i,a=r(e,(function(e,r){if(n)return n(e,r-1);i=e,n=t?function(e,t){var n=Lt(e);return function(r,i){return t(n(r),i,e)}}(e,t):Lt(e)}));return a.columns=i||[],a},parseRows:r,format:function(t,n){return null==n&&(n=Nt(t)),[n.map(o).join(e)].concat(i(t,n)).join("\n")},formatBody:function(e,t){return null==t&&(t=Nt(e)),i(e,t).join("\n")},formatRows:function(e){return e.map(a).join("\n")},formatRow:a,formatValue:o}}function jt(e){return e}function Ht(e,t){return"string"==typeof t&&(t=e.objects[t]),"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map((function(t){return zt(e,t)}))}:zt(e,t)}function zt(e,t){var n=t.id,r=t.bbox,i=null==t.properties?{}:t.properties,a=Pt(e,t);return null==n&&null==r?{type:"Feature",properties:i,geometry:a}:null==r?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function Pt(e,t){var n=function(e){if(null==e)return jt;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(e,s){s||(t=n=0);var l=2,u=e.length,c=new Array(u);for(c[0]=(t+=e[0])*r+a,c[1]=(n+=e[1])*i+o;l<u;)c[l]=e[l],++l;return c}}(e.transform),r=e.arcs;function i(e,t){t.length&&t.pop();for(var i=r[e<0?~e:e],a=0,o=i.length;a<o;++a)t.push(n(i[a],a));e<0&&function(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}(t,o)}function a(e){return n(e)}function o(e){for(var t=[],n=0,r=e.length;n<r;++n)i(e[n],t);return t.length<2&&t.push(t[0]),t}function s(e){for(var t=o(e);t.length<4;)t.push(t[0]);return t}function l(e){return e.map(s)}return function e(t){var n,r=t.type;switch(r){case"GeometryCollection":return{type:r,geometries:t.geometries.map(e)};case"Point":n=a(t.coordinates);break;case"MultiPoint":n=t.coordinates.map(a);break;case"LineString":n=o(t.arcs);break;case"MultiLineString":n=t.arcs.map(o);break;case"Polygon":n=l(t.arcs);break;case"MultiPolygon":n=t.arcs.map(l);break;default:return null}return{type:r,coordinates:n}}(t)}function Ut(e,t){var n={},r={},i={},a=[],o=-1;function s(e,t){for(var r in e){var i=e[r];delete t[i.start],delete i.start,delete i.end,i.forEach((function(e){n[e<0?~e:e]=1})),a.push(i)}}return t.forEach((function(n,r){var i,a=e.arcs[n<0?~n:n];a.length<3&&!a[1][0]&&!a[1][1]&&(i=t[++o],t[o]=n,t[r]=i)})),t.forEach((function(t){var n,a,o=function(t){var n,r=e.arcs[t<0?~t:t],i=r[0];return e.transform?(n=[0,0],r.forEach((function(e){n[0]+=e[0],n[1]+=e[1]}))):n=r[r.length-1],t<0?[n,i]:[i,n]}(t),s=o[0],l=o[1];if(n=i[s])if(delete i[n.end],n.push(t),n.end=l,a=r[l]){delete r[a.start];var u=a===n?n:n.concat(a);r[u.start=n.start]=i[u.end=a.end]=u}else r[n.start]=i[n.end]=n;else if(n=r[l])if(delete r[n.start],n.unshift(t),n.start=s,a=i[s]){delete i[a.end];var c=a===n?n:a.concat(n);r[c.start=a.start]=i[c.end=n.end]=c}else r[n.start]=i[n.end]=n;else r[(n=[t]).start=s]=i[n.end=l]=n})),s(i,r),s(r,i),t.forEach((function(e){n[e<0?~e:e]||a.push([e])})),a}function Vt(e){return Pt(e,Wt.apply(this,arguments))}function Wt(e,t,n){var r,i,a;if(arguments.length>1)r=function(e,t,n){var r,i=[],a=[];function o(e){var t=e<0?~e:e;(a[t]||(a[t]=[])).push({i:e,g:r})}function s(e){e.forEach(o)}function l(e){e.forEach(s)}return function e(t){switch(r=t,t.type){case"GeometryCollection":t.geometries.forEach(e);break;case"LineString":s(t.arcs);break;case"MultiLineString":case"Polygon":l(t.arcs);break;case"MultiPolygon":!function(e){e.forEach(l)}(t.arcs)}}(t),a.forEach(null==n?function(e){i.push(e[0].i)}:function(e){n(e[0].g,e[e.length-1].g)&&i.push(e[0].i)}),i}(0,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:Ut(e,r)}}const Gt=Math.sqrt(50),qt=Math.sqrt(10),Yt=Math.sqrt(2);function Kt(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/Math.pow(10,i),o=a>=Gt?10:a>=qt?5:a>=Yt?2:1;let s,l,u;return i<0?(u=Math.pow(10,-i)/o,s=Math.round(e*u),l=Math.round(t*u),s/u<e&&++s,l/u>t&&--l,u=-u):(u=Math.pow(10,i)*o,s=Math.round(e/u),l=Math.round(t/u),s*u<e&&++s,l*u>t&&--l),l<s&&.5<=n&&n<2?Kt(e,t,2*n):[s,l,u]}function Jt(e,t,n){if(!((n=+n)>0))return[];if((e=+e)==(t=+t))return[e];const r=t<e,[i,a,o]=r?Kt(t,e,n):Kt(e,t,n);if(!(a>=i))return[];const s=a-i+1,l=new Array(s);if(r)if(o<0)for(let e=0;e<s;++e)l[e]=(a-e)/-o;else for(let e=0;e<s;++e)l[e]=(a-e)*o;else if(o<0)for(let e=0;e<s;++e)l[e]=(i+e)/-o;else for(let e=0;e<s;++e)l[e]=(i+e)*o;return l}function Xt(e,t,n){return Kt(e=+e,t=+t,n=+n)[2]}function Zt(e,t,n){n=+n;const r=(t=+t)<(e=+e),i=r?Xt(t,e,n):Xt(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}var Qt,en=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tn(e){if(!(t=en.exec(e)))throw new Error("invalid format: "+e);var t;return new nn({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function nn(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function rn(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function an(e){return(e=rn(Math.abs(e)))?e[1]:NaN}function on(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(an(t)/3)))-an(Math.abs(e)))}function sn(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,an(t)-an(e))+1}function ln(e){return Math.max(0,-an(Math.abs(e)))}function un(e,t){var n=rn(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}tn.prototype=nn.prototype,nn.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const cn={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>un(100*e,t),r:un,s:function(e,t){var n=rn(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(Qt=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+rn(e,Math.max(0,t+a-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function dn(e){return e}var fn,hn,pn,mn=Array.prototype.map,gn=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function yn(e){var t,n,r=void 0===e.grouping||void 0===e.thousands?dn:(t=mn.call(e.grouping,Number),n=e.thousands+"",function(e,r){for(var i=e.length,a=[],o=0,s=t[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),a.push(e.substring(i-=s,i+s)),!((l+=s+1)>r));)s=t[o=(o+1)%t.length];return a.reverse().join(n)}),i=void 0===e.currency?"":e.currency[0]+"",a=void 0===e.currency?"":e.currency[1]+"",o=void 0===e.decimal?".":e.decimal+"",s=void 0===e.numerals?dn:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(mn.call(e.numerals,String)),l=void 0===e.percent?"%":e.percent+"",u=void 0===e.minus?"−":e.minus+"",c=void 0===e.nan?"NaN":e.nan+"";function d(e){var t=(e=tn(e)).fill,n=e.align,d=e.sign,f=e.symbol,h=e.zero,p=e.width,m=e.comma,g=e.precision,y=e.trim,_=e.type;"n"===_?(m=!0,_="g"):cn[_]||(void 0===g&&(g=12),y=!0,_="g"),(h||"0"===t&&"="===n)&&(h=!0,t="0",n="=");var v="$"===f?i:"#"===f&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",b="$"===f?a:/[%p]/.test(_)?l:"",x=cn[_],E=/[defgprs%]/.test(_);function S(e){var i,a,l,f=v,S=b;if("c"===_)S=x(e)+S,e="";else{var A=(e=+e)<0||1/e<0;if(e=isNaN(e)?c:x(Math.abs(e),g),y&&(e=function(e){e:for(var t,n=e.length,r=1,i=-1;r<n;++r)switch(e[r]){case".":i=t=r;break;case"0":0===i&&(i=r),t=r;break;default:if(!+e[r])break e;i>0&&(i=0)}return i>0?e.slice(0,i)+e.slice(t+1):e}(e)),A&&0==+e&&"+"!==d&&(A=!1),f=(A?"("===d?d:u:"-"===d||"("===d?"":d)+f,S=("s"===_?gn[8+Qt/3]:"")+S+(A&&"("===d?")":""),E)for(i=-1,a=e.length;++i<a;)if(48>(l=e.charCodeAt(i))||l>57){S=(46===l?o+e.slice(i+1):e.slice(i))+S,e=e.slice(0,i);break}}m&&!h&&(e=r(e,1/0));var $=f.length+e.length+S.length,T=$<p?new Array(p-$+1).join(t):"";switch(m&&h&&(e=r(T+e,T.length?p-S.length:1/0),T=""),n){case"<":e=f+e+S+T;break;case"=":e=f+T+e+S;break;case"^":e=T.slice(0,$=T.length>>1)+f+e+S+T.slice($);break;default:e=T+f+e+S}return s(e)}return g=void 0===g?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),S.toString=function(){return e+""},S}return{format:d,formatPrefix:function(e,t){var n=d(((e=tn(e)).type="f",e)),r=3*Math.max(-8,Math.min(8,Math.floor(an(t)/3))),i=Math.pow(10,-r),a=gn[8+r/3];return function(e){return n(i*e)+a}}}}fn=yn({thousands:",",grouping:[3],currency:["$",""]}),hn=fn.format,pn=fn.formatPrefix;const _n=new Date,vn=new Date;function bn(e,t,n,r){function i(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{const t=i(e),n=i.ceil(e);return e-t<n-e?t:n},i.offset=(e,n)=>(t(e=new Date(+e),null==n?1:Math.floor(n)),e),i.range=(n,r,a)=>{const o=[];if(n=i.ceil(n),a=null==a?1:Math.floor(a),!(n<r&&a>0))return o;let s;do{o.push(s=new Date(+n)),t(n,a),e(n)}while(s<n&&n<r);return o},i.filter=n=>bn((t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),((e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););})),n&&(i.count=(t,r)=>(_n.setTime(+t),vn.setTime(+r),e(_n),e(vn),Math.floor(n(_n,vn))),i.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?i.filter(r?t=>r(t)%e==0:t=>i.count(0,t)%e==0):i:null)),i}const xn=1e3,En=6e4,Sn=36e5,An=864e5,$n=6048e5,Tn=31536e6,On=bn((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*En)/An),(e=>e.getDate()-1)),Dn=(On.range,bn((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/An),(e=>e.getUTCDate()-1))),Mn=(Dn.range,bn((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/An),(e=>Math.floor(e/An))));function wn(e){return bn((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*En)/$n))}Mn.range;const In=wn(0),Cn=wn(1),Rn=wn(2),kn=wn(3),Ln=wn(4),Nn=wn(5),Fn=wn(6);function Bn(e){return bn((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/$n))}In.range,Cn.range,Rn.range,kn.range,Ln.range,Nn.range,Fn.range;const jn=Bn(0),Hn=Bn(1),zn=Bn(2),Pn=Bn(3),Un=Bn(4),Vn=Bn(5),Wn=Bn(6),Gn=(jn.range,Hn.range,zn.range,Pn.range,Un.range,Vn.range,Wn.range,bn((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear())));Gn.every=e=>isFinite(e=Math.floor(e))&&e>0?bn((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n*e)})):null,Gn.range;const qn=bn((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));qn.every=e=>isFinite(e=Math.floor(e))&&e>0?bn((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null,qn.range;const Yn=bn((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth())),Kn=(Yn.range,bn((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth()))),Jn=(Kn.range,bn((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*xn-e.getMinutes()*En)}),((e,t)=>{e.setTime(+e+t*Sn)}),((e,t)=>(t-e)/Sn),(e=>e.getHours()))),Xn=(Jn.range,bn((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*Sn)}),((e,t)=>(t-e)/Sn),(e=>e.getUTCHours()))),Zn=(Xn.range,bn((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*xn)}),((e,t)=>{e.setTime(+e+t*En)}),((e,t)=>(t-e)/En),(e=>e.getMinutes()))),Qn=(Zn.range,bn((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*En)}),((e,t)=>(t-e)/En),(e=>e.getUTCMinutes()))),er=(Qn.range,bn((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*xn)}),((e,t)=>(t-e)/xn),(e=>e.getUTCSeconds()))),tr=(er.range,bn((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e)));function nr(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function rr(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ir(e){let t,n,r;function i(e,r,i=0,a=e.length){if(i<a){if(0!==t(r,r))return a;do{const t=i+a>>>1;n(e[t],r)<0?i=t+1:a=t}while(i<a)}return i}return 2!==e.length?(t=nr,n=(t,n)=>nr(e(t),n),r=(t,n)=>e(t)-n):(t=e===nr||e===rr?e:ar,n=e,r=e),{left:i,center:function(e,t,n=0,a=e.length){const o=i(e,t,n,a-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o},right:function(e,r,i=0,a=e.length){if(i<a){if(0!==t(r,r))return a;do{const t=i+a>>>1;n(e[t],r)<=0?i=t+1:a=t}while(i<a)}return i}}}function ar(){return 0}tr.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?bn((t=>{t.setTime(Math.floor(t/e)*e)}),((t,n)=>{t.setTime(+t+n*e)}),((t,n)=>(n-t)/e)):tr:null),tr.range;const or="year",sr="quarter",lr="month",ur="week",cr="date",dr="day",fr="dayofyear",hr="hours",pr="minutes",mr="seconds",gr="milliseconds",yr=[or,sr,lr,ur,cr,dr,fr,hr,pr,mr,gr],_r=yr.reduce(((e,t,n)=>(e[t]=1+n,e)),{});function vr(e){const t=Qe(e).slice(),n={};return t.length||_e("Missing time unit."),t.forEach((e=>{dt(_r,e)?n[e]=1:_e(`Invalid time unit: ${e}.`)})),(n[ur]||n[dr]?1:0)+(n[sr]||n[lr]||n[cr]?1:0)+(n[fr]?1:0)>1&&_e(`Incompatible time units: ${e}`),t.sort(((e,t)=>_r[e]-_r[t])),t}const br={[or]:"%Y ",[sr]:"Q%q ",[lr]:"%b ",[cr]:"%d ",[ur]:"W%U ",[dr]:"%a ",[fr]:"%j ",[hr]:"%H:00",[pr]:"00:%M",[mr]:":%S",[gr]:".%L",[`${or}-${lr}`]:"%Y-%m ",[`${or}-${lr}-${cr}`]:"%Y-%m-%d ",[`${hr}-${pr}`]:"%H:%M"},xr=new Date;function Er(e){return xr.setFullYear(e),xr.setMonth(0),xr.setDate(1),xr.setHours(0,0,0,0),xr}function Sr(e){return On.count(Er(e.getFullYear())-1,e)}function Ar(e){return In.count(Er(e.getFullYear())-1,e)}function $r(e){return Er(e).getDay()}function Tr(e,t,n,r,i,a,o){if(0<=e&&e<100){const s=new Date(-1,t,n,r,i,a,o);return s.setFullYear(e),s}return new Date(e,t,n,r,i,a,o)}function Or(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return Dn.count(t-1,e)}function Dr(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return jn.count(t-1,e)}function Mr(e){return xr.setTime(Date.UTC(e,0,1)),xr.getUTCDay()}function wr(e,t,n,r,i,a,o){if(0<=e&&e<100){const e=new Date(Date.UTC(-1,t,n,r,i,a,o));return e.setUTCFullYear(n.y),e}return new Date(Date.UTC(e,t,n,r,i,a,o))}function Ir(e,t,n,r,i){const a=t||1,o=He(e),s=(e,t,i)=>function(e,t,n,r){const i=n<=1?e:r?(t,i)=>r+n*Math.floor((e(t,i)-r)/n):(t,r)=>n*Math.floor(e(t,r)/n);return t?(e,n)=>t(i(e,n),n):i}(n[i=i||e],r[i],e===o&&a,t),l=new Date,u=Dt(e),c=u[or]?s(or):st(2012),d=u[lr]?s(lr):u[sr]?s(sr):Se,f=u[ur]&&u[dr]?s(dr,1,ur+dr):u[ur]?s(ur,1):u[dr]?s(dr,1):u[cr]?s(cr,1):u[fr]?s(fr,1):Ae,h=u[hr]?s(hr):Se,p=u[pr]?s(pr):Se,m=u[mr]?s(mr):Se,g=u[gr]?s(gr):Se;return function(e){l.setTime(+e);const t=c(l);return i(t,d(l),f(l,t),h(l),p(l),m(l),g(l))}}function Cr(e,t,n){return t+7*e-(n+6)%7}const Rr={[or]:e=>e.getFullYear(),[sr]:e=>Math.floor(e.getMonth()/3),[lr]:e=>e.getMonth(),[cr]:e=>e.getDate(),[hr]:e=>e.getHours(),[pr]:e=>e.getMinutes(),[mr]:e=>e.getSeconds(),[gr]:e=>e.getMilliseconds(),[fr]:e=>Sr(e),[ur]:e=>Ar(e),[ur+dr]:(e,t)=>Cr(Ar(e),e.getDay(),$r(t)),[dr]:(e,t)=>Cr(1,e.getDay(),$r(t))},kr={[sr]:e=>3*e,[ur]:(e,t)=>Cr(e,0,$r(t))};function Lr(e,t){return Ir(e,t||1,Rr,kr,Tr)}const Nr={[or]:e=>e.getUTCFullYear(),[sr]:e=>Math.floor(e.getUTCMonth()/3),[lr]:e=>e.getUTCMonth(),[cr]:e=>e.getUTCDate(),[hr]:e=>e.getUTCHours(),[pr]:e=>e.getUTCMinutes(),[mr]:e=>e.getUTCSeconds(),[gr]:e=>e.getUTCMilliseconds(),[fr]:e=>Or(e),[ur]:e=>Dr(e),[dr]:(e,t)=>Cr(1,e.getUTCDay(),Mr(t)),[ur+dr]:(e,t)=>Cr(Dr(e),e.getUTCDay(),Mr(t))},Fr={[sr]:e=>3*e,[ur]:(e,t)=>Cr(e,0,Mr(t))};function Br(e,t){return Ir(e,t||1,Nr,Fr,wr)}const jr={[or]:Gn,[sr]:Yn.every(3),[lr]:Yn,[ur]:In,[cr]:On,[dr]:On,[fr]:On,[hr]:Jn,[pr]:Zn,[mr]:er,[gr]:tr},Hr={[or]:qn,[sr]:Kn.every(3),[lr]:Kn,[ur]:jn,[cr]:Dn,[dr]:Dn,[fr]:Dn,[hr]:Xn,[pr]:Qn,[mr]:er,[gr]:tr};function zr(e){return jr[e]}function Pr(e){return Hr[e]}function Ur(e,t,n){return e?e.offset(t,n):void 0}function Vr(e,t,n,r){return e?e.range(t,n,r):void 0}const Wr=31536e6,Gr=[or,lr,cr,hr,pr,mr,gr],qr=Gr.slice(0,-1),Yr=qr.slice(0,-1),Kr=Yr.slice(0,-1),Jr=Kr.slice(0,-1),Xr=[or,lr],Zr=[or],Qr=[[qr,1,1e3],[qr,5,5e3],[qr,15,15e3],[qr,30,3e4],[Yr,1,6e4],[Yr,5,3e5],[Yr,15,9e5],[Yr,30,18e5],[Kr,1,36e5],[Kr,3,108e5],[Kr,6,216e5],[Kr,12,432e5],[Jr,1,864e5],[[or,ur],1,6048e5],[Xr,1,2592e6],[Xr,3,7776e6],[Zr,1,Wr]];function ei(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function ti(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function ni(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function ri(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,l=e.shortMonths,u=mi(i),c=gi(i),d=mi(a),f=gi(a),h=mi(o),p=gi(o),m=mi(s),g=gi(s),y=mi(l),_=gi(l),v={a:function(e){return o[e.getDay()]},A:function(e){return a[e.getDay()]},b:function(e){return l[e.getMonth()]},B:function(e){return s[e.getMonth()]},c:null,d:Fi,e:Fi,f:Pi,g:Qi,G:ta,H:Bi,I:ji,j:Hi,L:zi,m:Ui,M:Vi,p:function(e){return i[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:Aa,s:$a,S:Wi,u:Gi,U:qi,V:Ki,w:Ji,W:Xi,x:null,X:null,y:Zi,Y:ea,Z:na,"%":Sa},b={a:function(e){return o[e.getUTCDay()]},A:function(e){return a[e.getUTCDay()]},b:function(e){return l[e.getUTCMonth()]},B:function(e){return s[e.getUTCMonth()]},c:null,d:ra,e:ra,f:la,g:va,G:xa,H:ia,I:aa,j:oa,L:sa,m:ua,M:ca,p:function(e){return i[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:Aa,s:$a,S:da,u:fa,U:ha,V:ma,w:ga,W:ya,x:null,X:null,y:_a,Y:ba,Z:Ea,"%":Sa},x={a:function(e,t,n){var r=h.exec(t.slice(n));return r?(e.w=p.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(e,t,n){var r=y.exec(t.slice(n));return r?(e.m=_.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(e,t,n){var r=m.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(e,n,r){return A(e,t,n,r)},d:Oi,e:Oi,f:Ri,g:Si,G:Ei,H:Mi,I:Mi,j:Di,L:Ci,m:Ti,M:wi,p:function(e,t,n){var r=u.exec(t.slice(n));return r?(e.p=c.get(r[0].toLowerCase()),n+r[0].length):-1},q:$i,Q:Li,s:Ni,S:Ii,u:_i,U:vi,V:bi,w:yi,W:xi,x:function(e,t,r){return A(e,n,t,r)},X:function(e,t,n){return A(e,r,t,n)},y:Si,Y:Ei,Z:Ai,"%":ki};function E(e,t){return function(n){var r,i,a,o=[],s=-1,l=0,u=e.length;for(n instanceof Date||(n=new Date(+n));++s<u;)37===e.charCodeAt(s)&&(o.push(e.slice(l,s)),null!=(i=ui[r=e.charAt(++s)])?r=e.charAt(++s):i="e"===r?" ":"0",(a=t[r])&&(r=a(n,i)),o.push(r),l=s+1);return o.push(e.slice(l,s)),o.join("")}}function S(e,t){return function(n){var r,i,a=ni(1900,void 0,1);if(A(a,e,n+="",0)!=n.length)return null;if("Q"in a)return new Date(a.Q);if("s"in a)return new Date(1e3*a.s+("L"in a?a.L:0));if(t&&!("Z"in a)&&(a.Z=0),"p"in a&&(a.H=a.H%12+12*a.p),void 0===a.m&&(a.m="q"in a?a.q:0),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(r=ti(ni(a.y,0,1))).getUTCDay(),r=i>4||0===i?Hn.ceil(r):Hn(r),r=Dn.offset(r,7*(a.V-1)),a.y=r.getUTCFullYear(),a.m=r.getUTCMonth(),a.d=r.getUTCDate()+(a.w+6)%7):(i=(r=ei(ni(a.y,0,1))).getDay(),r=i>4||0===i?Cn.ceil(r):Cn(r),r=On.offset(r,7*(a.V-1)),a.y=r.getFullYear(),a.m=r.getMonth(),a.d=r.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),i="Z"in a?ti(ni(a.y,0,1)).getUTCDay():ei(ni(a.y,0,1)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(i+5)%7:a.w+7*a.U-(i+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,ti(a)):ei(a)}}function A(e,t,n,r){for(var i,a,o=0,s=t.length,l=n.length;o<s;){if(r>=l)return-1;if(37===(i=t.charCodeAt(o++))){if(i=t.charAt(o++),!(a=x[i in ui?t.charAt(o++):i])||(r=a(e,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return v.x=E(n,v),v.X=E(r,v),v.c=E(t,v),b.x=E(n,b),b.X=E(r,b),b.c=E(t,b),{format:function(e){var t=E(e+="",v);return t.toString=function(){return e},t},parse:function(e){var t=S(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=E(e+="",b);return t.toString=function(){return e},t},utcParse:function(e){var t=S(e+="",!0);return t.toString=function(){return e},t}}}var ii,ai,oi,si,li,ui={"-":"",_:" ",0:"0"},ci=/^\s*\d+/,di=/^%/,fi=/[\\^$*+?|[\]().{}]/g;function hi(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(t)+i:i)}function pi(e){return e.replace(fi,"\\$&")}function mi(e){return new RegExp("^(?:"+e.map(pi).join("|")+")","i")}function gi(e){return new Map(e.map(((e,t)=>[e.toLowerCase(),t])))}function yi(e,t,n){var r=ci.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function _i(e,t,n){var r=ci.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function vi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function bi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function xi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Ei(e,t,n){var r=ci.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Si(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Ai(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function $i(e,t,n){var r=ci.exec(t.slice(n,n+1));return r?(e.q=3*r[0]-3,n+r[0].length):-1}function Ti(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function Oi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Di(e,t,n){var r=ci.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Mi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function wi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Ii(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Ci(e,t,n){var r=ci.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Ri(e,t,n){var r=ci.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function ki(e,t,n){var r=di.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Li(e,t,n){var r=ci.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Ni(e,t,n){var r=ci.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Fi(e,t){return hi(e.getDate(),t,2)}function Bi(e,t){return hi(e.getHours(),t,2)}function ji(e,t){return hi(e.getHours()%12||12,t,2)}function Hi(e,t){return hi(1+On.count(Gn(e),e),t,3)}function zi(e,t){return hi(e.getMilliseconds(),t,3)}function Pi(e,t){return zi(e,t)+"000"}function Ui(e,t){return hi(e.getMonth()+1,t,2)}function Vi(e,t){return hi(e.getMinutes(),t,2)}function Wi(e,t){return hi(e.getSeconds(),t,2)}function Gi(e){var t=e.getDay();return 0===t?7:t}function qi(e,t){return hi(In.count(Gn(e)-1,e),t,2)}function Yi(e){var t=e.getDay();return t>=4||0===t?Ln(e):Ln.ceil(e)}function Ki(e,t){return e=Yi(e),hi(Ln.count(Gn(e),e)+(4===Gn(e).getDay()),t,2)}function Ji(e){return e.getDay()}function Xi(e,t){return hi(Cn.count(Gn(e)-1,e),t,2)}function Zi(e,t){return hi(e.getFullYear()%100,t,2)}function Qi(e,t){return hi((e=Yi(e)).getFullYear()%100,t,2)}function ea(e,t){return hi(e.getFullYear()%1e4,t,4)}function ta(e,t){var n=e.getDay();return hi((e=n>=4||0===n?Ln(e):Ln.ceil(e)).getFullYear()%1e4,t,4)}function na(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+hi(t/60|0,"0",2)+hi(t%60,"0",2)}function ra(e,t){return hi(e.getUTCDate(),t,2)}function ia(e,t){return hi(e.getUTCHours(),t,2)}function aa(e,t){return hi(e.getUTCHours()%12||12,t,2)}function oa(e,t){return hi(1+Dn.count(qn(e),e),t,3)}function sa(e,t){return hi(e.getUTCMilliseconds(),t,3)}function la(e,t){return sa(e,t)+"000"}function ua(e,t){return hi(e.getUTCMonth()+1,t,2)}function ca(e,t){return hi(e.getUTCMinutes(),t,2)}function da(e,t){return hi(e.getUTCSeconds(),t,2)}function fa(e){var t=e.getUTCDay();return 0===t?7:t}function ha(e,t){return hi(jn.count(qn(e)-1,e),t,2)}function pa(e){var t=e.getUTCDay();return t>=4||0===t?Un(e):Un.ceil(e)}function ma(e,t){return e=pa(e),hi(Un.count(qn(e),e)+(4===qn(e).getUTCDay()),t,2)}function ga(e){return e.getUTCDay()}function ya(e,t){return hi(Hn.count(qn(e)-1,e),t,2)}function _a(e,t){return hi(e.getUTCFullYear()%100,t,2)}function va(e,t){return hi((e=pa(e)).getUTCFullYear()%100,t,2)}function ba(e,t){return hi(e.getUTCFullYear()%1e4,t,4)}function xa(e,t){var n=e.getUTCDay();return hi((e=n>=4||0===n?Un(e):Un.ceil(e)).getUTCFullYear()%1e4,t,4)}function Ea(){return"+0000"}function Sa(){return"%"}function Aa(e){return+e}function $a(e){return Math.floor(+e/1e3)}function Ta(e){const t={};return n=>t[n]||(t[n]=e(n))}function Oa(e){const t=Ta(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(e){const n=tn(e||",");if(null==n.precision){switch(n.precision=12,n.type){case"%":n.precision-=2;break;case"e":n.precision-=1}return r=t(n),i=t(".1f")(1)[1],e=>{const t=r(e),n=t.indexOf(i);if(n<0)return t;let a=function(e,t){let n,r=e.lastIndexOf("e");if(r>0)return r;for(r=e.length;--r>t;)if(n=e.charCodeAt(r),n>=48&&n<=57)return r+1}(t,n);const o=a<t.length?t.slice(a):"";for(;--a>n;)if("0"!==t[a]){++a;break}return t.slice(0,a)+o}}return t(n);var r,i},formatSpan(e,r,i,a){a=tn(null==a?",f":a);const o=Zt(e,r,i),s=Math.max(Math.abs(e),Math.abs(r));let l;if(null==a.precision)switch(a.type){case"s":return isNaN(l=on(o,s))||(a.precision=l),n(a,s);case"":case"e":case"g":case"p":case"r":isNaN(l=sn(o,s))||(a.precision=l-("e"===a.type));break;case"f":case"%":isNaN(l=ln(o))||(a.precision=l-2*("%"===a.type))}return t(a)}}}let Da,Ma;function wa(e){return Oa(yn(e))}function Ia(e){return arguments.length?Da=wa(e):Da}function Ca(e,t,n){Ne(n=n||{})||_e(`Invalid time multi-format specifier: ${n}`);const r=t(mr),i=t(pr),a=t(hr),o=t(cr),s=t(ur),l=t(lr),u=t(sr),c=t(or),d=e(n[gr]||".%L"),f=e(n[mr]||":%S"),h=e(n[pr]||"%I:%M"),p=e(n[hr]||"%I %p"),m=e(n[cr]||n[dr]||"%a %d"),g=e(n[ur]||"%b %d"),y=e(n[lr]||"%B"),_=e(n[sr]||"%B"),v=e(n[or]||"%Y");return e=>(r(e)<e?d:i(e)<e?f:a(e)<e?h:o(e)<e?p:l(e)<e?s(e)<e?m:g:c(e)<e?u(e)<e?y:_:v)(e)}function Ra(e){const t=Ta(e.format),n=Ta(e.utcFormat);return{timeFormat:e=>vt(e)?t(e):Ca(t,zr,e),utcFormat:e=>vt(e)?n(e):Ca(n,Pr,e),timeParse:Ta(e.parse),utcParse:Ta(e.utcParse)}}function ka(e){return Ra(ri(e))}function La(e){return arguments.length?Ma=ka(e):Ma}ii=ri({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],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"]}),ai=ii.format,oi=ii.parse,si=ii.utcFormat,li=ii.utcParse,Da=Oa({format:hn,formatPrefix:pn}),Ma=Ra({format:ai,parse:oi,utcFormat:si,utcParse:li});const Na=(e,t)=>ut({},e,t);const Fa=/^(data:|([A-Za-z]+:)?\/\/)/,Ba=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,ja=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Ha="file://";async function za(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t?.http)}async function Pa(e,t){t=ut({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=Ba.test(e.replace(ja,""));null!=e&&"string"==typeof e&&s||_e("Sanitize failure, invalid URI: "+St(e));const l=Fa.test(e);return(o=t.baseURL)&&!l&&(e.startsWith("/")||o.endsWith("/")||(e="/"+e),e=o+e),a=(i=e.startsWith(Ha))||"file"===t.mode||"http"!==t.mode&&!l&&n,i?e=e.slice(7):e.startsWith("//")&&("file"===t.defaultProtocol?(e=e.slice(2),a=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!a}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),"image"===t.context&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}async function Ua(){_e("No file system access.")}async function Va(e,t){const n=ut({},this.options.http,t),r=t&&t.response,i=await fetch(e,n);return i.ok?et(i[r])?i[r]():i.text():_e(i.status+""+i.statusText)}const Wa=e=>null!=e&&e==e,Ga=e=>!(Number.isNaN(+e)||e instanceof Date),qa={boolean:At,integer:ze,number:ze,date:Tt,string:Ot,unknown:Ee},Ya=[e=>"true"===e||"false"===e||!0===e||!1===e,e=>Ga(e)&&Number.isInteger(+e),Ga,e=>!Number.isNaN(Date.parse(e))],Ka=["boolean","integer","number","date"];function Ja(e){const t=function(t,n){const r={delimiter:e};return Xa(t,n?ut(n,r):r)};return t.responseType="text",t}function Xa(e,t){return t.header&&(e=t.header.map(St).join(t.delimiter)+"\n"+e),Bt(t.delimiter).parse(e+"")}function Za(e,t){const n=t&&t.property?be(t.property):Ee;return Ne(e)&&!function(e){return!("function"!=typeof Buffer||!et(Buffer.isBuffer))&&Buffer.isBuffer(e)}(e)?function(e,t){return!Le(e)&&function(e){return e&&et(e[Symbol.iterator])}(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}(n(e),t):n(JSON.parse(e))}Xa.responseType="text",Za.responseType="json";const Qa={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function eo(e,t){let n,r,i,a;return e=Za(e,t),t&&t.feature?(n=Ht,i=t.feature):t&&t.mesh?(n=Vt,i=t.mesh,a=Qa[t.filter]):_e("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,a):_e("Invalid TopoJSON object: "+i),r&&r.features||[r]}eo.responseType="json";const to={dsv:Xa,csv:Ja(","),tsv:Ja("\t"),json:Za,topojson:eo};function no(e,t){return arguments.length>1?(to[e]=t,this):dt(to,e)?to[e]:null}function ro(e){const t=no(e);return t&&t.responseType||"text"}function io(e,t,n,r){const i=no((t=t||{}).type||"json");return i||_e("Unknown data format type: "+t.type),e=i(e,t),t.parse&&function(e,t,n,r){if(!e.length)return;const i=La();n=n||i.timeParse,r=r||i.utcParse;let a,o,s,l,u,c,d=e.columns||Object.keys(e[0]);"auto"===t&&(t=function(e,t){return t.reduce(((t,n)=>(t[n]=function(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Ya.length,i=Ya.map(((e,t)=>t+1));for(let a,o,s=0,l=0;s<n;++s)for(o=t?e[s][t]:e[s],a=0;a<r;++a)if(i[a]&&Wa(o)&&!Ya[a](o)&&(i[a]=0,++l,l===Ya.length))return"string";return Ka[i.reduce(((e,t)=>0===e?t:e),0)-1]}(e,n),t)),{})}(e,d)),d=Object.keys(t);const f=d.map((e=>{const i=t[e];let a,o;if(i&&(i.startsWith("date:")||i.startsWith("utc:")))return a=i.split(/:(.+)?/,2),o=a[1],("'"===o[0]&&"'"===o[o.length-1]||'"'===o[0]&&'"'===o[o.length-1])&&(o=o.slice(1,-1)),("utc"===a[0]?r:n)(o);if(!qa[i])throw Error("Illegal format pattern: "+e+":"+i);return qa[i]}));for(s=0,u=e.length,c=d.length;s<u;++s)for(a=e[s],l=0;l<c;++l)o=d[l],a[o]=f[l](a[o])}(e,t.parse,n,r),dt(e,"columns")&&delete e.columns,e}const ao=e=>({options:e||{},sanitize:Pa,load:za,fileAccess:!1,file:Ua,http:Va});function oo(e){const t=e||Ee,n=[],r={};return n.add=e=>{const i=t(e);return r[i]||(r[i]=1,n.push(e)),n},n.remove=e=>{const i=t(e);if(r[i]){r[i]=0;const t=n.indexOf(e);t>=0&&n.splice(t,1)}return n},n}async function so(e,t){try{await t(e)}catch(t){e.error(t)}}const lo=Symbol("vega_id");let uo=1;function co(e){return!(!e||!fo(e))}function fo(e){return e[lo]}function ho(e,t){return e[lo]=t,e}function po(e){const t=e===Object(e)?e:{data:e};return fo(t)?t:ho(t,uo++)}function mo(e){return go(e,po({}))}function go(e,t){for(const n in e)t[n]=e[n];return t}function yo(e,t){return ho(t,fo(e))}function _o(e,t){return e?t?(n,r)=>e(n,r)||fo(t(n))-fo(t(r)):(t,n)=>e(t,n)||fo(t)-fo(n):null}function vo(e){return e&&e.constructor===bo}function bo(){const e=[],t=[],n=[],r=[],i=[];let a=null,o=!1;return{constructor:bo,insert(t){const n=Qe(t),r=n.length;for(let t=0;t<r;++t)e.push(n[t]);return this},remove(e){const n=et(e)?r:t,i=Qe(e),a=i.length;for(let e=0;e<a;++e)n.push(i[e]);return this},modify(e,t,r){const a={field:t,value:st(r)};return et(e)?(a.filter=e,i.push(a)):(a.tuple=e,n.push(a)),this},encode(e,t){return et(e)?i.push({filter:e,field:t}):n.push({tuple:e,field:t}),this},clean(e){return a=e,this},reflow(){return o=!0,this},pulse(s,l){const u={},c={};let d,f,h,p,m,g;for(d=0,f=l.length;d<f;++d)u[fo(l[d])]=1;for(d=0,f=t.length;d<f;++d)m=t[d],u[fo(m)]=-1;for(d=0,f=r.length;d<f;++d)p=r[d],l.forEach((e=>{p(e)&&(u[fo(e)]=-1)}));for(d=0,f=e.length;d<f;++d)m=e[d],g=fo(m),u[g]?u[g]=1:s.add.push(po(e[d]));for(d=0,f=l.length;d<f;++d)m=l[d],u[fo(m)]<0&&s.rem.push(m);function y(e,t,n){n?e[t]=n(e):s.encode=t,o||(c[fo(e)]=e)}for(d=0,f=n.length;d<f;++d)h=n[d],m=h.tuple,p=h.field,g=u[fo(m)],g>0&&(y(m,p,h.value),s.modifies(p));for(d=0,f=i.length;d<f;++d)h=i[d],p=h.filter,l.forEach((e=>{p(e)&&u[fo(e)]>0&&y(e,h.field,h.value)})),s.modifies(h.field);if(o)s.mod=t.length||r.length?l.filter((e=>u[fo(e)]>0)):l.slice();else for(g in c)s.mod.push(c[g]);return(a||null==a&&(t.length||r.length))&&s.clean(!0),s}}}const xo="_:mod:_";function Eo(){Object.defineProperty(this,xo,{writable:!0,value:{}})}Eo.prototype={set(e,t,n,r){const i=this,a=i[e],o=i[xo];return null!=t&&t>=0?(a[t]!==n||r)&&(a[t]=n,o[t+":"+e]=-1,o[e]=-1):(a!==n||r)&&(i[e]=n,o[e]=Le(n)?1+n.length:-1),i},modified(e,t){const n=this[xo];if(!arguments.length){for(const e in n)if(n[e])return!0;return!1}if(Le(e)){for(let t=0;t<e.length;++t)if(n[e[t]])return!0;return!1}return null!=t&&t>=0?t+1<n[e]||!!n[t+":"+e]:!!n[e]},clear(){return this[xo]={},this}};let So=0;const Ao=new Eo;function $o(e,t,n,r){this.id=++So,this.value=e,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,t&&(this._update=t),n&&this.parameters(n,r)}function To(e){return function(t){const n=this.flags;return 0===arguments.length?!!(n&e):(this.flags=t?n|e:n&~e,this)}}$o.prototype={targets(){return this._targets||(this._targets=oo(xe))},set(e){return this.value!==e?(this.value=e,1):0},skip:To(1),modified:To(2),parameters(e,t,n){t=!1!==t;const r=this._argval=this._argval||new Eo,i=this._argops=this._argops||[],a=[];let o,s,l,u;const c=(e,n,o)=>{o instanceof $o?(o!==this&&(t&&o.targets().add(this),a.push(o)),i.push({op:o,name:e,index:n})):r.set(e,n,o)};for(o in e)if(s=e[o],"pulse"===o)Qe(s).forEach((e=>{e instanceof $o?e!==this&&(e.targets().add(this),a.push(e)):_e("Pulse parameters must be operator instances.")})),this.source=s;else if(Le(s))for(r.set(o,-1,Array(l=s.length)),u=0;u<l;++u)c(o,u,s[u]);else c(o,-1,s);return this.marshall().clear(),n&&(i.initonly=!0),a},marshall(e){const t=this._argval||Ao,n=this._argops;let r,i,a,o;if(n){const s=n.length;for(i=0;i<s;++i)r=n[i],a=r.op,o=a.modified()&&a.stamp===e,t.set(r.name,r.index,a.value,o);if(n.initonly){for(i=0;i<s;++i)r=n[i],r.op.targets().remove(this);this._argops=null,this._update=null}}return t},detach(){const e=this._argops;let t,n,r,i;if(e)for(t=0,n=e.length;t<n;++t)r=e[t],i=r.op,i._targets&&i._targets.remove(this);this.pulse=null,this.source=null},evaluate(e){const t=this._update;if(t){const n=this.marshall(e.stamp),r=t.call(this,n,e);if(n.clear(),r!==this.value)this.value=r;else if(!this.modified())return e.StopPropagation}},run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?(this.skip(!1),t=0):t=this.evaluate(e),this.pulse=t||e}};let Oo=0;function Do(e,t,n){this.id=++Oo,this.value=null,n&&(this.receive=n),e&&(this._filter=e),t&&(this._apply=t)}function Mo(e,t,n){return new Do(e,t,n)}Do.prototype={_filter:$e,_apply:Ee,targets(){return this._targets||(this._targets=oo(xe))},consume(e){return arguments.length?(this._consume=!!e,this):!!this._consume},receive(e){if(this._filter(e)){const t=this.value=this._apply(e),n=this._targets,r=n?n.length:0;for(let e=0;e<r;++e)n[e].receive(t);this._consume&&(e.preventDefault(),e.stopPropagation())}},filter(e){const t=Mo(e);return this.targets().add(t),t},apply(e){const t=Mo(null,e);return this.targets().add(t),t},merge(){const e=Mo();this.targets().add(e);for(let t=0,n=arguments.length;t<n;++t)arguments[t].targets().add(e);return e},throttle(e){let t=-1;return this.filter((()=>{const n=Date.now();return n-t>e?(t=n,1):0}))},debounce(e){const t=Mo();return this.targets().add(Mo(null,null,lt(e,(e=>{const n=e.dataflow;t.receive(e),n&&n.run&&n.run()})))),t},between(e,t){let n=!1;return e.targets().add(Mo(null,null,(()=>n=!0))),t.targets().add(Mo(null,null,(()=>n=!1))),this.filter((()=>n))},detach(){this._filter=$e,this._targets=null}};const wo={skip:!0};function Io(e,t,n,r,i,a){const o=ut({},a,wo);let s,l;et(n)||(n=st(n)),void 0===r?s=t=>e.touch(n(t)):et(r)?(l=new $o(null,r,i,!1),s=t=>{l.evaluate(t);const r=n(t),i=l.value;vo(i)?e.pulse(r,i,a):e.update(r,i,o)}):s=t=>e.update(n(t),r,o),t.apply(s)}function Co(e,t,n,r,i,a){if(void 0===r)t.targets().add(n);else{const o=a||{},s=new $o(null,function(e,t){return t=et(t)?t:st(t),e?function(n,r){const i=t(n,r);return e.skip()||(e.skip(i!==this.value).value=i),i}:t}(n,r),i,!1);s.modified(o.force),s.rank=t.rank,t.targets().add(s),n&&(s.skip(!0),s.value=n.value,s.targets().add(n),e.connect(n,[s]))}}const Ro={};function ko(e,t,n){this.dataflow=e,this.stamp=null==t?-1:t,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}function Lo(e,t){const n=[];return Mt(e,t,(e=>n.push(e))),n}function No(e,t){const n={};return e.visit(t,(e=>{n[fo(e)]=1})),e=>n[fo(e)]?null:e}function Fo(e,t){return e?(n,r)=>e(n,r)&&t(n,r):t}function Bo(e,t,n,r){const i=this;let a=0;this.dataflow=e,this.stamp=t,this.fields=null,this.encode=r||null,this.pulses=n;for(const e of n)if(e.stamp===t){if(e.fields){const t=i.fields||(i.fields={});for(const n in e.fields)t[n]=1}e.changed(i.ADD)&&(a|=i.ADD),e.changed(i.REM)&&(a|=i.REM),e.changed(i.MOD)&&(a|=i.MOD)}this.changes=a}function jo(e){return e.error("Dataflow already running. Use runAsync() to chain invocations."),e}ko.prototype={StopPropagation:Ro,ADD:1,REM:2,MOD:4,ADD_REM:3,ADD_MOD:5,ALL:7,REFLOW:8,SOURCE:16,NO_SOURCE:32,NO_FIELDS:64,fork(e){return new ko(this.dataflow).init(this,e)},clone(){const e=this.fork(7);return e.add=e.add.slice(),e.rem=e.rem.slice(),e.mod=e.mod.slice(),e.source&&(e.source=e.source.slice()),e.materialize(23)},addAll(){let e=this;return!e.source||e.add===e.rem||!e.rem.length&&e.source.length===e.add.length||(e=new ko(this.dataflow).init(this),e.add=e.source,e.rem=[]),e},init(e,t){const n=this;return n.stamp=e.stamp,n.encode=e.encode,!e.fields||64&t||(n.fields=e.fields),1&t?(n.addF=e.addF,n.add=e.add):(n.addF=null,n.add=[]),2&t?(n.remF=e.remF,n.rem=e.rem):(n.remF=null,n.rem=[]),4&t?(n.modF=e.modF,n.mod=e.mod):(n.modF=null,n.mod=[]),32&t?(n.srcF=null,n.source=null):(n.srcF=e.srcF,n.source=e.source,e.cleans&&(n.cleans=e.cleans)),n},runAfter(e){this.dataflow.runAfter(e)},changed(e){const t=e||7;return 1&t&&this.add.length||2&t&&this.rem.length||4&t&&this.mod.length},reflow(e){if(e)return this.fork(7).reflow();const t=this.add.length,n=this.source&&this.source.length;return n&&n!==t&&(this.mod=this.source,t&&this.filter(4,No(this,1))),this},clean(e){return arguments.length?(this.cleans=!!e,this):this.cleans},modifies(e){const t=this.fields||(this.fields={});return Le(e)?e.forEach((e=>t[e]=!0)):t[e]=!0,this},modified(e,t){const n=this.fields;return!(!t&&!this.mod.length||!n)&&(arguments.length?Le(e)?e.some((e=>n[e])):n[e]:!!n)},filter(e,t){const n=this;return 1&e&&(n.addF=Fo(n.addF,t)),2&e&&(n.remF=Fo(n.remF,t)),4&e&&(n.modF=Fo(n.modF,t)),16&e&&(n.srcF=Fo(n.srcF,t)),n},materialize(e){const t=this;return 1&(e=e||7)&&t.addF&&(t.add=Lo(t.add,t.addF),t.addF=null),2&e&&t.remF&&(t.rem=Lo(t.rem,t.remF),t.remF=null),4&e&&t.modF&&(t.mod=Lo(t.mod,t.modF),t.modF=null),16&e&&t.srcF&&(t.source=t.source.filter(t.srcF),t.srcF=null),t},visit(e,t){const n=this,r=t;if(16&e)return Mt(n.source,n.srcF,r),n;1&e&&Mt(n.add,n.addF,r),2&e&&Mt(n.rem,n.remF,r),4&e&&Mt(n.mod,n.modF,r);const i=n.source;if(8&e&&i){const e=n.add.length+n.mod.length;e===i.length||Mt(i,e?No(n,5):n.srcF,r)}return n}},pt(Bo,ko,{fork(e){const t=new ko(this.dataflow).init(this,e&this.NO_FIELDS);return void 0!==e&&(e&t.ADD&&this.visit(t.ADD,(e=>t.add.push(e))),e&t.REM&&this.visit(t.REM,(e=>t.rem.push(e))),e&t.MOD&&this.visit(t.MOD,(e=>t.mod.push(e)))),t},changed(e){return this.changes&e},modified(e){const t=this,n=t.fields;return n&&t.changes&t.MOD?Le(e)?e.some((e=>n[e])):n[e]:0},filter(){_e("MultiPulse does not support filtering.")},materialize(){_e("MultiPulse does not support materialization.")},visit(e,t){const n=this,r=n.pulses,i=r.length;let a=0;if(e&n.SOURCE)for(;a<i;++a)r[a].visit(e,t);else for(;a<i;++a)r[a].stamp===n.stamp&&r[a].visit(e,t);return n}});const Ho={skip:!1,force:!1};function zo(e,t,n,r){let i,a;const o=e[n];for(;n>t&&(a=n-1>>1,i=e[a],r(o,i)<0);)e[n]=i,n=a;return e[n]=o}function Po(){this.logger(ke()),this.logLevel(we),this._clock=0,this._rank=0,this._locale=function(e,t){const n=arguments.length;return n&&2!==n&&_e("defaultLocale expects either zero or two arguments."),n?Na(Ia(e),La(t)):Na(Ia(),La())}();try{this._loader=ao()}catch(e){}this._touched=oo(xe),this._input={},this._pulse=null,this._heap=function(e){let t=[];return{clear:()=>t=[],size:()=>t.length,peek:()=>t[0],push:n=>(t.push(n),zo(t,0,t.length-1,e)),pop:()=>{const n=t.pop();let r;return t.length?(r=t[0],t[0]=n,function(e,t,n){const r=t,i=e.length,a=e[t];let o,s=1+(t<<1);for(;s<i;)o=s+1,o<i&&n(e[s],e[o])>=0&&(s=o),e[t]=e[s],s=1+((t=s)<<1);e[t]=a,zo(e,r,t,n)}(t,0,e)):r=n,r}}}(((e,t)=>e.qrank-t.qrank)),this._postrun=[]}function Uo(e){return function(){return this._log[e].apply(this,arguments)}}function Vo(e,t){$o.call(this,e,null,t)}Po.prototype={stamp(){return this._clock},loader(e){return arguments.length?(this._loader=e,this):this._loader},locale(e){return arguments.length?(this._locale=e,this):this._locale},logger(e){return arguments.length?(this._log=e,this):this._log},error:Uo("error"),warn:Uo("warn"),info:Uo("info"),debug:Uo("debug"),logLevel:Uo("level"),cleanThreshold:1e4,add:function(e,t,n,r){let i,a=1;return e instanceof $o?i=e:e&&e.prototype instanceof $o?i=new e:et(e)?i=new $o(null,e):(a=0,i=new $o(e,t)),this.rank(i),a&&(r=n,n=t),n&&this.connect(i,i.parameters(n,r)),this.touch(i),i},connect:function(e,t){const n=e.rank,r=t.length;for(let i=0;i<r;++i)if(n<t[i].rank)return void this.rerank(e)},rank:function(e){e.rank=++this._rank},rerank:function(e){const t=[e];let n,r,i;for(;t.length;)if(this.rank(n=t.pop()),r=n._targets)for(i=r.length;--i>=0;)t.push(n=r[i]),n===e&&_e("Cycle detected in dataflow graph.")},pulse:function(e,t,n){this.touch(e,n||Ho);const r=new ko(this,this._clock+(this._pulse?0:1)),i=e.pulse&&e.pulse.source||[];return r.target=e,this._input[e.id]=t.pulse(r,i),this},touch:function(e,t){const n=t||Ho;return this._pulse?this._enqueue(e):this._touched.add(e),n.skip&&e.skip(!0),this},update:function(e,t,n){const r=n||Ho;return(e.set(t)||r.force)&&this.touch(e,r),this},changeset:bo,ingest:function(e,t,n){return t=this.parse(t,n),this.pulse(e,this.changeset().insert(t))},parse:function(e,t){const n=this.locale();return io(e,t,n.timeParse,n.utcParse)},preload:async function(e,t,n){const r=this,i=r._pending||function(e){let t;const n=new Promise((e=>t=e));return n.requests=0,n.done=()=>{0==--n.requests&&(e._pending=null,t(e))},e._pending=n}(r);i.requests+=1;const a=await r.request(t,n);return r.pulse(e,r.changeset().remove($e).insert(a.data||[])),i.done(),a},request:async function(e,t){const n=this;let r,i=0;try{r=await n.loader().load(e,{context:"dataflow",response:ro(t&&t.type)});try{r=n.parse(r,t)}catch(t){i=-2,n.warn("Data ingestion failed",e,t)}}catch(t){i=-1,n.warn("Loading failed",e,t)}return{data:r,status:i}},events:function(e,t,n,r){const i=this,a=Mo(n,r),o=function(e){e.dataflow=i;try{a.receive(e)}catch(e){i.error(e)}finally{i.run()}};let s;s="string"==typeof e&&"undefined"!=typeof document?document.querySelectorAll(e):Qe(e);const l=s.length;for(let e=0;e<l;++e)s[e].addEventListener(t,o);return a},on:function(e,t,n,r,i){return(e instanceof $o?Co:Io)(this,e,t,n,r,i),this},evaluate:async function(e,t,n){const r=this,i=[];if(r._pulse)return jo(r);if(r._pending&&await r._pending,t&&await so(r,t),!r._touched.length)return r.debug("Dataflow invoked, but nothing to do."),r;const a=++r._clock;r._pulse=new ko(r,a,e),r._touched.forEach((e=>r._enqueue(e,!0))),r._touched=oo(xe);let o,s,l,u=0;try{for(;r._heap.size()>0;)o=r._heap.pop(),o.rank===o.qrank?(s=o.run(r._getPulse(o,e)),s.then?s=await s:s.async&&(i.push(s.async),s=Ro),s!==Ro&&o._targets&&o._targets.forEach((e=>r._enqueue(e))),++u):r._enqueue(o,!0)}catch(e){r._heap.clear(),l=e}if(r._input={},r._pulse=null,r.debug(`Pulse ${a}: ${u} operators`),l&&(r._postrun=[],r.error(l)),r._postrun.length){const e=r._postrun.sort(((e,t)=>t.priority-e.priority));r._postrun=[];for(let t=0;t<e.length;++t)await so(r,e[t].callback)}return n&&await so(r,n),i.length&&Promise.all(i).then((e=>r.runAsync(null,(()=>{e.forEach((e=>{try{e(r)}catch(e){r.error(e)}}))})))),r},run:function(e,t,n){return this._pulse?jo(this):(this.evaluate(e,t,n),this)},runAsync:async function(e,t,n){for(;this._running;)await this._running;const r=()=>this._running=null;return(this._running=this.evaluate(e,t,n)).then(r,r),this._running},runAfter:function(e,t,n){if(this._pulse||t)this._postrun.push({priority:n||0,callback:e});else try{e(this)}catch(e){this.error(e)}},_enqueue:function(e,t){const n=e.stamp<this._clock;n&&(e.stamp=this._clock),(n||t)&&(e.qrank=e.rank,this._heap.push(e))},_getPulse:function(e,t){const n=e.source,r=this._clock;return n&&Le(n)?new Bo(this,r,n.map((e=>e.pulse)),t):this._input[e.id]||function(e,t){return t&&t.stamp===e.stamp?t:(e=e.fork(),t&&t!==Ro&&(e.source=t.source),e)}(this._pulse,n&&n.pulse)}},pt(Vo,$o,{run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?this.skip(!1):t=this.evaluate(e),t=t||e,t.then?t=t.then((e=>this.pulse=e)):t!==e.StopPropagation&&(this.pulse=t),t},evaluate(e){const t=this.marshall(e.stamp),n=this.transform(t,e);return t.clear(),n},transform(){}});const Wo={};function Go(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n<t||void 0===n&&t>=t)&&(n=t);else{let r=-1;for(let i of e)null!=(i=t(i,++r,e))&&(n<i||void 0===n&&i>=i)&&(n=i)}return n}function qo(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n>t||void 0===n&&t>=t)&&(n=t);else{let r=-1;for(let i of e)null!=(i=t(i,++r,e))&&(n>i||void 0===n&&i>=i)&&(n=i)}return n}function Yo(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(e<t?-1:e>t?1:0)}function Ko(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=void 0===i?Yo:function(e=nr){if(e===nr)return Yo;if("function"!=typeof e)throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||0===r?r:(0===e(n,n))-(0===e(t,t))}}(i);r>n;){if(r-n>600){const a=r-n+1,o=t-n+1,s=Math.log(a),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(a-l)/a)*(o-a/2<0?-1:1);Ko(e,t,Math.max(n,Math.floor(t-o*l/a+u)),Math.min(r,Math.floor(t+(a-o)*l/a+u)),i)}const a=e[t];let o=n,s=r;for(Jo(e,n,t),i(e[r],a)>0&&Jo(e,n,r);o<s;){for(Jo(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}0===i(e[n],a)?Jo(e,n,s):(++s,Jo(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function Jo(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Xo(e){return null===e?NaN:+e}function Zo(e,t,n){if(e=Float64Array.from(function*(e,t){if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(yield t);else{let n=-1;for(let r of e)null!=(r=t(r,++n,e))&&(r=+r)>=r&&(yield r)}}(e,n)),(r=e.length)&&!isNaN(t=+t)){if(t<=0||r<2)return qo(e);if(t>=1)return Go(e);var r,i=(r-1)*t,a=Math.floor(i),o=Go(Ko(e,a).subarray(0,a+1));return o+(qo(e.subarray(a+1))-o)*(i-a)}}function Qo(e,t,n=Xo){if((r=e.length)&&!isNaN(t=+t)){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function es(e,t){return Zo(e,.5,t)}function*ts(e,t){if(null==t)for(let t of e)null!=t&&""!==t&&(t=+t)>=t&&(yield t);else{let n=-1;for(let r of e)r=t(r,++n,e),null!=r&&""!==r&&(r=+r)>=r&&(yield r)}}function ns(e,t,n){const r=Float64Array.from(ts(e,n));return r.sort(nr),t.map((e=>Qo(r,e)))}function rs(e,t){return ns(e,[.25,.5,.75],t)}function is(e,t){const n=e.length,r=function(e,t){const n=function(e,t){let n,r=0,i=0,a=0;if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(n=t-i,i+=n/++r,a+=n*(t-i));else{let o=-1;for(let s of e)null!=(s=t(s,++o,e))&&(s=+s)>=s&&(n=s-i,i+=n/++r,a+=n*(s-i))}if(r>1)return a/(r-1)}(e,t);return n?Math.sqrt(n):n}(e,t),i=rs(e,t),a=(i[2]-i[0])/1.34;return 1.06*(Math.min(r,a)||r||Math.abs(i[0])||1)*Math.pow(n,-.2)}var as=Math.random;function os(e,t,n,r){r=r||(e=>e);const i=e.length,a=new Float64Array(i);let o,s=0,l=1,u=r(e[0]),c=u,d=u+t;for(;l<i;++l){if(o=r(e[l]),o>=d){for(c=(u+c)/2;s<l;++s)a[s]=c;d=o+t,u=o}c=o}for(c=(u+c)/2;s<l;++s)a[s]=c;return n?function(e,t){const n=e.length;let r,i,a=0,o=1;for(;e[a]===e[o];)++o;for(;o<n;){for(r=o+1;e[o]===e[r];)++r;if(e[o]-e[o-1]<t){for(i=o+(a+r-o-o>>1);i<o;)e[i++]=e[o];for(;i>o;)e[i--]=e[a]}a=o,o=r}return e}(a,t+t/4):a}const ss=Math.sqrt(2*Math.PI),ls=Math.SQRT2;let us=NaN;function cs(e,t){e=e||0,t=null==t?1:t;let n,r,i=0,a=0;if(us==us)i=us,us=NaN;else{do{i=2*as()-1,a=2*as()-1,n=i*i+a*a}while(0===n||n>1);r=Math.sqrt(-2*Math.log(n)/n),i*=r,us=a*r}return e+i*t}function ds(e,t,n){const r=(e-(t||0))/(n=null==n?1:n);return Math.exp(-.5*r*r)/(n*ss)}function fs(e,t,n){const r=(e-(t=t||0))/(n=null==n?1:n),i=Math.abs(r);let a;if(i>37)a=0;else{const e=Math.exp(-i*i/2);let t;i<7.07106781186547?(t=.0352624965998911*i+.700383064443688,t=t*i+6.37396220353165,t=t*i+33.912866078383,t=t*i+112.079291497871,t=t*i+221.213596169931,t=t*i+220.206867912376,a=e*t,t=.0883883476483184*i+1.75566716318264,t=t*i+16.064177579207,t=t*i+86.7807322029461,t=t*i+296.564248779674,t=t*i+637.333633378831,t=t*i+793.826512519948,t=t*i+440.413735824752,a/=t):(t=i+.65,t=i+4/t,t=i+3/t,t=i+2/t,t=i+1/t,a=e/t/2.506628274631)}return r>0?1-a:a}function hs(e,t,n){return e<0||e>1?NaN:(t||0)+(null==n?1:n)*ls*function(e){let t,n=-Math.log((1-e)*(1+e));return n<6.25?(n-=3.125,t=-364441206401782e-35,t=t*n-16850591381820166e-35,t=128584807152564e-32+t*n,t=11157877678025181e-33+t*n,t=t*n-1333171662854621e-31,t=20972767875968562e-33+t*n,t=6637638134358324e-30+t*n,t=t*n-4054566272975207e-29,t=t*n-8151934197605472e-29,t=26335093153082323e-28+t*n,t=t*n-12975133253453532e-27,t=t*n-5415412054294628e-26,t=1.0512122733215323e-9+t*n,t=t*n-4.112633980346984e-9,t=t*n-2.9070369957882005e-8,t=4.2347877827932404e-7+t*n,t=t*n-13654692000834679e-22,t=t*n-13882523362786469e-21,t=.00018673420803405714+t*n,t=t*n-.000740702534166267,t=t*n-.006033670871430149,t=.24015818242558962+t*n,t=1.6536545626831027+t*n):n<16?(n=Math.sqrt(n)-3.25,t=2.2137376921775787e-9,t=9.075656193888539e-8+t*n,t=t*n-2.7517406297064545e-7,t=1.8239629214389228e-8+t*n,t=15027403968909828e-22+t*n,t=t*n-4013867526981546e-21,t=29234449089955446e-22+t*n,t=12475304481671779e-21+t*n,t=t*n-47318229009055734e-21,t=6828485145957318e-20+t*n,t=24031110387097894e-21+t*n,t=t*n-.0003550375203628475,t=.0009532893797373805+t*n,t=t*n-.0016882755560235047,t=.002491442096107851+t*n,t=t*n-.003751208507569241,t=.005370914553590064+t*n,t=1.0052589676941592+t*n,t=3.0838856104922208+t*n):Number.isFinite(n)?(n=Math.sqrt(n)-5,t=-27109920616438573e-27,t=t*n-2.555641816996525e-10,t=1.5076572693500548e-9+t*n,t=t*n-3.789465440126737e-9,t=7.61570120807834e-9+t*n,t=t*n-1.496002662714924e-8,t=2.914795345090108e-8+t*n,t=t*n-6.771199775845234e-8,t=2.2900482228026655e-7+t*n,t=t*n-9.9298272942317e-7,t=4526062597223154e-21+t*n,t=t*n-1968177810553167e-20,t=7599527703001776e-20+t*n,t=t*n-.00021503011930044477,t=t*n-.00013871931833623122,t=1.0103004648645344+t*n,t=4.849906401408584+t*n):t=1/0,t*e}(2*e-1)}function ps(e,t){let n,r;const i={mean(e){return arguments.length?(n=e||0,i):n},stdev(e){return arguments.length?(r=null==e?1:e,i):r},sample:()=>cs(n,r),pdf:e=>ds(e,n,r),cdf:e=>fs(e,n,r),icdf:e=>hs(e,n,r)};return i.mean(e).stdev(t)}function ms(e,t){const n=ps();let r=0;const i={data(n){return arguments.length?(e=n,r=n?n.length:0,i.bandwidth(t)):e},bandwidth(n){return arguments.length?(!(t=n)&&e&&(t=is(e)),i):t},sample:()=>e[~~(as()*r)]+t*n.sample(),pdf(i){let a=0,o=0;for(;o<r;++o)a+=n.pdf((i-e[o])/t);return a/t/r},cdf(i){let a=0,o=0;for(;o<r;++o)a+=n.cdf((i-e[o])/t);return a/r},icdf(){throw Error("KDE icdf not supported.")}};return i.data(e)}function gs(e,t){return e=e||0,t=null==t?1:t,Math.exp(e+cs()*t)}function ys(e,t,n){if(e<=0)return 0;t=t||0,n=null==n?1:n;const r=(Math.log(e)-t)/n;return Math.exp(-.5*r*r)/(n*ss*e)}function _s(e,t,n){return fs(Math.log(e),t,n)}function vs(e,t,n){return Math.exp(hs(e,t,n))}function bs(e,t){return null==t&&(t=null==e?1:e,e=0),e+(t-e)*as()}function xs(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=t&&e<=n?1/(n-t):0}function Es(e,t,n){return null==n&&(n=null==t?1:t,t=0),e<t?0:e>n?1:(e-t)/(n-t)}function Ss(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=0&&e<=1?t+e*(n-t):NaN}function As(e,t,n){let r=0,i=0;for(const a of e){const e=n(a);null==t(a)||null==e||isNaN(e)||(r+=(e-r)/++i)}return{coef:[r],predict:()=>r,rSquared:0}}function $s(e,t,n,r){const i=r-e*e,a=Math.abs(i)<1e-24?0:(n-e*t)/i;return[t-a*e,a]}function Ts(e,t,n,r){e=e.filter((e=>{let r=t(e),i=n(e);return null!=r&&(r=+r)>=r&&null!=i&&(i=+i)>=i})),r&&e.sort(((e,n)=>t(e)-t(n)));const i=e.length,a=new Float64Array(i),o=new Float64Array(i);let s,l,u,c=0,d=0,f=0;for(u of e)a[c]=s=+t(u),o[c]=l=+n(u),++c,d+=(s-d)/c,f+=(l-f)/c;for(c=0;c<i;++c)a[c]-=d,o[c]-=f;return[a,o,d,f]}function Os(e,t,n,r){let i,a,o=-1;for(const s of e)i=t(s),a=n(s),null!=i&&(i=+i)>=i&&null!=a&&(a=+a)>=a&&r(i,a,++o)}function Ds(e,t,n,r,i){let a=0,o=0;return Os(e,t,n,((e,t)=>{const n=t-i(e),s=t-r;a+=n*n,o+=s*s})),1-a/o}function Ms(e,t,n){let r=0,i=0,a=0,o=0,s=0;Os(e,t,n,((e,t)=>{++s,r+=(e-r)/s,i+=(t-i)/s,a+=(e*t-a)/s,o+=(e*e-o)/s}));const l=$s(r,i,a,o),u=e=>l[0]+l[1]*e;return{coef:l,predict:u,rSquared:Ds(e,t,n,i,u)}}function ws(e,t,n){const[r,i,a,o]=Ts(e,t,n),s=r.length;let l,u,c,d,f=0,h=0,p=0,m=0,g=0;for(l=0;l<s;)u=r[l],c=i[l++],d=u*u,f+=(d-f)/l,h+=(d*u-h)/l,p+=(d*d-p)/l,m+=(u*c-m)/l,g+=(d*c-g)/l;const y=p-f*f,_=f*y-h*h,v=(g*f-m*h)/_,b=(m*y-g*h)/_,x=-v*f,E=e=>v*(e-=a)*e+b*e+x+o;return{coef:[x-b*a+v*a*a+o,b-2*v*a,v],predict:E,rSquared:Ds(e,t,n,o,E)}}function Is(e,t,n,r){const i=Array(e);let a,o,s,l;for(a=0;a<e;++a)i[a]=0;for(a=e-1;a>=0;--a)for(s=t[a],l=1,i[a]+=s,o=1;o<=a;++o)l*=(a+1-o)/o,i[a-o]+=s*Math.pow(n,o)*l;return i[0]+=r,i}function Cs(e){return(e=1-e*e*e)*e*e}function Rs(e,t,n){const r=e[t];let i=n[0],a=n[1]+1;if(!(a>=e.length))for(;t>i&&e[a]-r<=r-e[i];)n[0]=++i,n[1]=a,++a}const ks=.5*Math.PI/180;function Ls(e,t,n,r){n=n||25,r=Math.max(n,r||200);const i=t=>[t,e(t)],a=t[0],o=t[1],s=o-a,l=s/r,u=[i(a)],c=[];if(n===r){for(let e=1;e<r;++e)u.push(i(a+e/n*s));return u.push(i(o)),u}c.push(i(o));for(let e=n;--e>0;)c.push(i(a+e/n*s));let d=u[0],f=c[c.length-1];const h=1/s,p=function(e,t){let n=e,r=e;const i=t.length;for(let e=0;e<i;++e){const i=t[e][1];i<n&&(n=i),i>r&&(r=i)}return 1/(r-n)}(d[1],c);for(;f;){const e=i((d[0]+f[0])/2);e[0]-d[0]>=l&&Ns(d,e,f,h,p)>ks?c.push(e):(d=f,u.push(f),c.pop()),f=c[c.length-1]}return u}function Ns(e,t,n,r,i){const a=Math.atan2(i*(n[1]-e[1]),r*(n[0]-e[0])),o=Math.atan2(i*(t[1]-e[1]),r*(t[0]-e[0]));return Math.abs(a-o)}function Fs(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=0|Math.max(0,Math.ceil((t-e)/n)),a=new Array(i);++r<i;)a[r]=e+r*n;return a}function Bs(e){return e&&e.length?1===e.length?e[0]:(t=e,e=>{const n=t.length;let r=1,i=String(t[0](e));for(;r<n;++r)i+="|"+t[r](e);return i}):function(){return""};var t}function js(e,t,n){return n||e+(t?"_"+t:"")}const Hs=()=>{},zs={init:Hs,add:Hs,rem:Hs,idx:0},Ps={values:{init:e=>e.cell.store=!0,value:e=>e.cell.data.values(),idx:-1},count:{value:e=>e.cell.num},__count__:{value:e=>e.missing+e.valid},missing:{value:e=>e.missing},valid:{value:e=>e.valid},sum:{init:e=>e.sum=0,value:e=>e.valid?e.sum:void 0,add:(e,t)=>e.sum+=+t,rem:(e,t)=>e.sum-=t},product:{init:e=>e.product=1,value:e=>e.valid?e.product:void 0,add:(e,t)=>e.product*=t,rem:(e,t)=>e.product/=t},mean:{init:e=>e.mean=0,value:e=>e.valid?e.mean:void 0,add:(e,t)=>(e.mean_d=t-e.mean,e.mean+=e.mean_d/e.valid),rem:(e,t)=>(e.mean_d=t-e.mean,e.mean-=e.valid?e.mean_d/e.valid:e.mean)},average:{value:e=>e.valid?e.mean:void 0,req:["mean"],idx:1},variance:{init:e=>e.dev=0,value:e=>e.valid>1?e.dev/(e.valid-1):void 0,add:(e,t)=>e.dev+=e.mean_d*(t-e.mean),rem:(e,t)=>e.dev-=e.mean_d*(t-e.mean),req:["mean"],idx:1},variancep:{value:e=>e.valid>1?e.dev/e.valid:void 0,req:["variance"],idx:2},stdev:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:e=>e.valid>1?Math.sqrt(e.dev/e.valid):void 0,req:["variance"],idx:2},stderr:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid*(e.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:e=>e.cell.data.distinct(e.get),req:["values"],idx:3},ci0:{value:e=>e.cell.data.ci0(e.get),req:["values"],idx:3},ci1:{value:e=>e.cell.data.ci1(e.get),req:["values"],idx:3},median:{value:e=>e.cell.data.q2(e.get),req:["values"],idx:3},q1:{value:e=>e.cell.data.q1(e.get),req:["values"],idx:3},q3:{value:e=>e.cell.data.q3(e.get),req:["values"],idx:3},min:{init:e=>e.min=void 0,value:e=>e.min=Number.isNaN(e.min)?e.cell.data.min(e.get):e.min,add:(e,t)=>{(t<e.min||void 0===e.min)&&(e.min=t)},rem:(e,t)=>{t<=e.min&&(e.min=NaN)},req:["values"],idx:4},max:{init:e=>e.max=void 0,value:e=>e.max=Number.isNaN(e.max)?e.cell.data.max(e.get):e.max,add:(e,t)=>{(t>e.max||void 0===e.max)&&(e.max=t)},rem:(e,t)=>{t>=e.max&&(e.max=NaN)},req:["values"],idx:4},argmin:{init:e=>e.argmin=void 0,value:e=>e.argmin||e.cell.data.argmin(e.get),add:(e,t,n)=>{t<e.min&&(e.argmin=n)},rem:(e,t)=>{t<=e.min&&(e.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:e=>e.argmax=void 0,value:e=>e.argmax||e.cell.data.argmax(e.get),add:(e,t,n)=>{t>e.max&&(e.argmax=n)},rem:(e,t)=>{t>=e.max&&(e.argmax=void 0)},req:["max","values"],idx:3},exponential:{init:(e,t)=>{e.exp=0,e.exp_r=t},value:e=>e.valid?e.exp*(1-e.exp_r)/(1-e.exp_r**e.valid):void 0,add:(e,t)=>e.exp=e.exp_r*e.exp+t,rem:(e,t)=>e.exp=(e.exp-t/e.exp_r**(e.valid-1))/e.exp_r},exponentialb:{value:e=>e.valid?e.exp*(1-e.exp_r):void 0,req:["exponential"],idx:1}},Us=Object.keys(Ps).filter((e=>"__count__"!==e));function Vs(e,t,n){return Ps[e](n,t)}function Ws(e,t){return e.idx-t.idx}function Gs(){this.valid=0,this.missing=0,this._ops.forEach((e=>null==e.aggregate_param?e.init(this):e.init(this,e.aggregate_param)))}function qs(e,t){null!=e&&""!==e?e==e&&(++this.valid,this._ops.forEach((n=>n.add(this,e,t)))):++this.missing}function Ys(e,t){null!=e&&""!==e?e==e&&(--this.valid,this._ops.forEach((n=>n.rem(this,e,t)))):--this.missing}function Ks(e){return this._out.forEach((t=>e[t.out]=t.value(this))),e}function Js(e,t){const n=t||Ee,r=function(e){const t={};e.forEach((e=>t[e.name]=e));const n=e=>{e.req&&e.req.forEach((e=>{t[e]||n(t[e]=Ps[e]())}))};return e.forEach(n),Object.values(t).sort(Ws)}(e),i=e.slice().sort(Ws);function a(e){this._ops=r,this._out=i,this.cell=e,this.init()}return a.prototype.init=Gs,a.prototype.add=qs,a.prototype.rem=Ys,a.prototype.set=Ks,a.prototype.get=n,a.fields=e.map((e=>e.out)),a}function Xs(e){this._key=e?be(e):fo,this.reset()}[...Us,"__count__"].forEach((e=>{Ps[e]=function(e,t){return(n,r)=>ut({name:e,aggregate_param:r,out:n||e},zs,t)}(e,Ps[e])}));const Zs=Xs.prototype;function Qs(e){Vo.call(this,null,e),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}function el(e){Vo.call(this,null,e)}function tl(e,t,n){const r=e;let i=t||[],a=n||[],o={},s=0;return{add:e=>a.push(e),remove:e=>o[r(e)]=++s,size:()=>i.length,data:(e,t)=>(s&&(i=i.filter((e=>!o[r(e)])),o={},s=0),t&&e&&i.sort(e),a.length&&(i=e?function(e,t,n,r){const i=t.length,a=n.length;if(!a)return t;if(!i)return n;const o=new t.constructor(i+a);let s=0,l=0,u=0;for(;s<i&&l<a;++u)o[u]=e(t[s],n[l])>0?n[l++]:t[s++];for(;s<i;++s,++u)o[u]=t[s];for(;l<a;++l,++u)o[u]=n[l];return o}(e,i,a.sort(e)):i.concat(a),a=[]),i)}}function nl(e){Vo.call(this,[],e)}function rl(e){$o.call(this,null,il,e)}function il(e){return this.value&&!e.modified()?this.value:nt(e.fields,e.orders)}function al(e){Vo.call(this,null,e)}function ol(e){Vo.call(this,null,e)}Zs.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},Zs.add=function(e){this._add.push(e)},Zs.rem=function(e){this._rem.push(e)},Zs.values=function(){if(this._get=null,0===this._rem.length)return this._add;const e=this._add,t=this._rem,n=this._key,r=e.length,i=t.length,a=Array(r-i),o={};let s,l,u;for(s=0;s<i;++s)o[n(t[s])]=1;for(s=0,l=0;s<r;++s)o[n(u=e[s])]?o[n(u)]=0:a[l++]=u;return this._rem=[],this._add=a},Zs.distinct=function(e){const t=this.values(),n={};let r,i=t.length,a=0;for(;--i>=0;)r=e(t[i])+"",dt(n,r)||(n[r]=1,++a);return a},Zs.extent=function(e){if(this._get!==e||!this._ext){const t=this.values(),n=function(e,t){const n=e.length;let r,i,a,o,s,l=-1;if(null==t){for(;++l<n;)if(i=e[l],null!=i&&i>=i){r=a=i;break}if(l===n)return[-1,-1];for(o=s=l;++l<n;)i=e[l],null!=i&&(r>i&&(r=i,o=l),a<i&&(a=i,s=l))}else{for(;++l<n;)if(i=t(e[l],l,e),null!=i&&i>=i){r=a=i;break}if(l===n)return[-1,-1];for(o=s=l;++l<n;)i=t(e[l],l,e),null!=i&&(r>i&&(r=i,o=l),a<i&&(a=i,s=l))}return[o,s]}(t,e);this._ext=[t[n[0]],t[n[1]]],this._get=e}return this._ext},Zs.argmin=function(e){return this.extent(e)[0]||{}},Zs.argmax=function(e){return this.extent(e)[1]||{}},Zs.min=function(e){const t=this.extent(e)[0];return null!=t?e(t):void 0},Zs.max=function(e){const t=this.extent(e)[1];return null!=t?e(t):void 0},Zs.quartile=function(e){return this._get===e&&this._q||(this._q=rs(this.values(),e),this._get=e),this._q},Zs.q1=function(e){return this.quartile(e)[0]},Zs.q2=function(e){return this.quartile(e)[1]},Zs.q3=function(e){return this.quartile(e)[2]},Zs.ci=function(e){return this._get===e&&this._ci||(this._ci=function(e,t,n,r){if(!e.length)return[void 0,void 0];const i=Float64Array.from(ts(e,r)),a=i.length;let o,s,l,u;for(l=0,u=Array(1e3);l<1e3;++l){for(o=0,s=0;s<a;++s)o+=i[~~(as()*a)];u[l]=o/a}return u.sort(nr),[Zo(u,.025),Zo(u,.975)]}(this.values(),0,0,e),this._get=e),this._ci},Zs.ci0=function(e){return this.ci(e)[0]},Zs.ci1=function(e){return this.ci(e)[1]},Qs.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Us},{name:"aggregate_params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"drop",type:"boolean",default:!0},{name:"cross",type:"boolean",default:!1},{name:"key",type:"field"}]},pt(Qs,Vo,{transform(e,t){const n=this,r=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.modified();return n.stamp=r.stamp,n.value&&(i||t.modified(n._inputs,!0))?(n._prev=n.value,n.value=i?n.init(e):Object.create(null),t.visit(t.SOURCE,(e=>n.add(e)))):(n.value=n.value||n.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),r.modifies(n._outputs),n._drop=!1!==e.drop,e.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),t.clean()&&n._drop&&r.clean(!0).runAfter((()=>this.clean())),n.changes(r)},cross(){const e=this,t=e.value,n=e._dnames,r=n.map((()=>({}))),i=n.length;function a(e){let t,a,o,s;for(t in e)for(o=e[t].tuple,a=0;a<i;++a)r[a][s=o[n[a]]]=s}a(e._prev),a(t),function a(o,s,l){const u=n[l],c=r[l++];for(const n in c){const r=o?o+"|"+n:n;s[u]=c[n],l<i?a(r,s,l):t[r]||e.cell(r,s)}}("",{},0)},init(e){const t=this._inputs=[],n=this._outputs=[],r={};function i(e){const n=Qe(pe(e)),i=n.length;let a,o=0;for(;o<i;++o)r[a=n[o]]||(r[a]=1,t.push(a))}this._dims=Qe(e.groupby),this._dnames=this._dims.map((e=>{const t=he(e);return i(e),n.push(t),t})),this.cellkey=e.key?e.key:Bs(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const a=e.fields||[null],o=e.ops||["count"],s=e.aggregate_params||[null],l=e.as||[],u=a.length,c={};let d,f,h,p,m,g,y;for(u!==o.length&&_e("Unmatched number of fields and aggregate ops."),y=0;y<u;++y)d=a[y],f=o[y],h=s[y]||null,null==d&&"count"!==f&&_e("Null aggregate field specified."),m=he(d),g=js(f,m,l[y]),n.push(g),"count"!==f?(p=c[m],p||(i(d),p=c[m]=[],p.field=d,this._measures.push(p)),"count"!==f&&(this._countOnly=!1),p.push(Vs(f,h,g))):this._counts.push(g);return this._measures=this._measures.map((e=>Js(e,e.field))),Object.create(null)},cellkey:Bs(),cell(e,t){let n=this.value[e];return n?0===n.num&&this._drop&&n.stamp<this.stamp?(n.stamp=this.stamp,this._adds[this._alen++]=n):n.stamp<this.stamp&&(n.stamp=this.stamp,this._mods[this._mlen++]=n):(n=this.value[e]=this.newcell(e,t),this._adds[this._alen++]=n),n},newcell(e,t){const n={key:e,num:0,agg:null,tuple:this.newtuple(t,this._prev&&this._prev[e]),stamp:this.stamp,store:!1};if(!this._countOnly){const e=this._measures,t=e.length;n.agg=Array(t);for(let r=0;r<t;++r)n.agg[r]=new e[r](n)}return n.store&&(n.data=new Xs),n},newtuple(e,t){const n=this._dnames,r=this._dims,i=r.length,a={};for(let t=0;t<i;++t)a[n[t]]=r[t](e);return t?yo(t.tuple,a):po(a)},clean(){const e=this.value;for(const t in e)0===e[t].num&&delete e[t]},add(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num+=1,this._countOnly)return;n.store&&n.data.add(e);const r=n.agg;for(let t=0,n=r.length;t<n;++t)r[t].add(r[t].get(e),e)},rem(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num-=1,this._countOnly)return;n.store&&n.data.rem(e);const r=n.agg;for(let t=0,n=r.length;t<n;++t)r[t].rem(r[t].get(e),e)},celltuple(e){const t=e.tuple,n=this._counts;e.store&&e.data.values();for(let r=0,i=n.length;r<i;++r)t[n[r]]=e.num;if(!this._countOnly){const n=e.agg;for(let e=0,r=n.length;e<r;++e)n[e].set(t)}return t},changes(e){const t=this._adds,n=this._mods,r=this._prev,i=this._drop,a=e.add,o=e.rem,s=e.mod;let l,u,c,d;if(r)for(u in r)l=r[u],i&&!l.num||o.push(l.tuple);for(c=0,d=this._alen;c<d;++c)a.push(this.celltuple(t[c])),t[c]=null;for(c=0,d=this._mlen;c<d;++c)l=n[c],(0===l.num&&i?o:s).push(this.celltuple(l)),n[c]=null;return this._alen=this._mlen=0,this._prev=null,e}}),el.Definition={type:"Bin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"anchor",type:"number"},{name:"maxbins",type:"number",default:20},{name:"base",type:"number",default:10},{name:"divide",type:"number",array:!0,default:[5,2]},{name:"extent",type:"number",array:!0,length:2,required:!0},{name:"span",type:"number"},{name:"step",type:"number"},{name:"steps",type:"number",array:!0},{name:"minstep",type:"number",default:0},{name:"nice",type:"boolean",default:!0},{name:"name",type:"string"},{name:"as",type:"string",array:!0,length:2,default:["bin0","bin1"]}]},pt(el,Vo,{transform(e,t){const n=!1!==e.interval,r=this._bins(e),i=r.start,a=r.step,o=e.as||["bin0","bin1"],s=o[0],l=o[1];let u;return u=e.modified()?(t=t.reflow(!0)).SOURCE:t.modified(pe(e.field))?t.ADD_MOD:t.ADD,t.visit(u,n?e=>{const t=r(e);e[s]=t,e[l]=null==t?null:i+a*(1+(t-i)/a)}:e=>e[s]=r(e)),t.modifies(n?o:s)},_bins(e){if(this.value&&!e.modified())return this.value;const t=e.field,n=function(e){const t=e.maxbins||20,n=e.base||10,r=Math.log(n),i=e.divide||[5,2];let a,o,s,l,u,c,d=e.extent[0],f=e.extent[1];const h=e.span||f-d||Math.abs(d)||1;if(e.step)a=e.step;else if(e.steps){for(l=h/t,u=0,c=e.steps.length;u<c&&e.steps[u]<l;++u);a=e.steps[Math.max(0,u-1)]}else{for(o=Math.ceil(Math.log(t)/r),s=e.minstep||0,a=Math.max(s,Math.pow(n,Math.round(Math.log(h)/r)-o));Math.ceil(h/a)>t;)a*=n;for(u=0,c=i.length;u<c;++u)l=a/i[u],l>=s&&h/l<=t&&(a=l)}l=Math.log(a);const p=l>=0?0:1+~~(-l/r),m=Math.pow(n,-p-1);return(e.nice||void 0===e.nice)&&(l=Math.floor(d/a+m)*a,d=d<l?l-a:l,f=Math.ceil(f/a)*a),{start:d,stop:f===d?d+a:f,step:a}}(e),r=n.step;let i,a,o=n.start,s=o+Math.ceil((n.stop-o)/r)*r;null!=(i=e.anchor)&&(a=i-(o+r*Math.floor((i-o)/r)),o+=a,s+=a);const l=function(e){let n=ze(t(e));return null==n?null:n<o?-1/0:n>s?1/0:(n=Math.max(o,Math.min(n,s-r)),o+r*Math.floor(1e-14+(n-o)/r))};return l.start=o,l.stop=n.stop,l.step=r,this.value=fe(l,pe(t),e.name||"bin_"+he(t))}}),nl.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},pt(nl,Vo,{transform(e,t){const n=t.fork(t.ALL),r=tl(fo,this.value,n.materialize(n.ADD).add),i=e.sort,a=t.changed()||i&&(e.modified("sort")||t.modified(i.fields));return n.visit(n.REM,r.remove),this.modified(a),this.value=n.source=r.data(_o(i),a),t.source&&t.source.root&&(this.value.root=t.source.root),n}}),pt(rl,$o),al.Definition={type:"CountPattern",metadata:{generates:!0,changes:!0},params:[{name:"field",type:"field",required:!0},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:!0,length:2,default:["text","count"]}]},pt(al,Vo,{transform(e,t){const n=t=>n=>{for(var r,i=function(e,t,n){switch(t){case"upper":e=e.toUpperCase();break;case"lower":e=e.toLowerCase()}return e.match(n)}(s(n),e.case,a)||[],l=0,u=i.length;l<u;++l)o.test(r=i[l])||t(r)},r=this._parameterCheck(e,t),i=this._counts,a=this._match,o=this._stop,s=e.field,l=e.as||["text","count"],u=n((e=>i[e]=1+(i[e]||0))),c=n((e=>i[e]-=1));return r?t.visit(t.SOURCE,u):(t.visit(t.ADD,u),t.visit(t.REM,c)),this._finish(t,l)},_parameterCheck(e,t){let n=!1;return!e.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(e.stopwords||"")+"$","i"),n=!0),!e.modified("pattern")&&this._match||(this._match=new RegExp(e.pattern||"[\\w']+","g"),n=!0),(e.modified("field")||t.modified(e.field.fields))&&(n=!0),n&&(this._counts={}),n},_finish(e,t){const n=this._counts,r=this._tuples||(this._tuples={}),i=t[0],a=t[1],o=e.fork(e.NO_SOURCE|e.NO_FIELDS);let s,l,u;for(s in n)l=r[s],u=n[s]||0,!l&&u?(r[s]=l=po({}),l[i]=s,l[a]=u,o.add.push(l)):0===u?(l&&o.rem.push(l),n[s]=null,r[s]=null):l[a]!==u&&(l[a]=u,o.mod.push(l));return o.modifies(t)}}),ol.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},pt(ol,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.as||["a","b"],i=r[0],a=r[1],o=!this.value||t.changed(t.ADD_REM)||e.modified("as")||e.modified("filter");let s=this.value;return o?(s&&(n.rem=s),s=t.materialize(t.SOURCE).source,n.add=this.value=function(e,t,n,r){for(var i,a,o=[],s={},l=e.length,u=0;u<l;++u)for(s[t]=a=e[u],i=0;i<l;++i)s[n]=e[i],r(s)&&(o.push(po(s)),(s={})[t]=a);return o}(s,i,a,e.filter||$e)):n.mod=s,n.source=this.value,n.modifies(r)}});const sl={kde:ms,mixture:function(e,t){let n,r=0;const i={weights(e){return arguments.length?(n=function(e){const t=[];let n,i=0;for(n=0;n<r;++n)i+=t[n]=null==e[n]?1:+e[n];for(n=0;n<r;++n)t[n]/=i;return t}(t=e||[]),i):t},distributions(n){return arguments.length?(n?(r=n.length,e=n):(r=0,e=[]),i.weights(t)):e},sample(){const t=as();let i=e[r-1],a=n[0],o=0;for(;o<r-1;a+=n[++o])if(t<a){i=e[o];break}return i.sample()},pdf(t){let i=0,a=0;for(;a<r;++a)i+=n[a]*e[a].pdf(t);return i},cdf(t){let i=0,a=0;for(;a<r;++a)i+=n[a]*e[a].cdf(t);return i},icdf(){throw Error("Mixture icdf not supported.")}};return i.distributions(e).weights(t)},normal:ps,lognormal:function(e,t){let n,r;const i={mean(e){return arguments.length?(n=e||0,i):n},stdev(e){return arguments.length?(r=null==e?1:e,i):r},sample:()=>gs(n,r),pdf:e=>ys(e,n,r),cdf:e=>_s(e,n,r),icdf:e=>vs(e,n,r)};return i.mean(e).stdev(t)},uniform:function(e,t){let n,r;const i={min(e){return arguments.length?(n=e||0,i):n},max(e){return arguments.length?(r=null==e?1:e,i):r},sample:()=>bs(n,r),pdf:e=>xs(e,n,r),cdf:e=>Es(e,n,r),icdf:e=>Ss(e,n,r)};return null==t&&(t=null==e?1:e,e=0),i.min(e).max(t)}},ll="function";function ul(e,t){const n=e[ll];dt(sl,n)||_e("Unknown distribution function: "+n);const r=sl[n]();for(const n in e)"field"===n?r.data((e.from||t()).map(e[n])):"distributions"===n?r[n](e[n].map((e=>ul(e,t)))):typeof r[n]===ll&&r[n](e[n]);return r}function cl(e){Vo.call(this,null,e)}const dl=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:!0},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}],fl={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:dl},{name:"weights",type:"number",array:!0}]};function hl(e,t){return e?e.map(((e,n)=>t[n]||he(e))):null}function pl(e,t,n){const r=[],i=e=>e(l);let a,o,s,l,u,c;if(null==t)r.push(e.map(n));else for(a={},o=0,s=e.length;o<s;++o)l=e[o],u=t.map(i),c=a[u],c||(a[u]=c=[],c.dims=u,r.push(c)),c.push(n(l));return r}function ml(e){Vo.call(this,null,e)}function gl(e){$o.call(this,null,yl,e),this.modified(!0)}function yl(e){const t=e.expr;return this.value&&!e.modified("expr")?this.value:fe((n=>t(n,e)),pe(t),he(t))}function _l(e){Vo.call(this,[void 0,void 0],e)}function vl(e,t){$o.call(this,e),this.parent=t,this.count=0}function bl(e){Vo.call(this,{},e),this._keys=ht();const t=this._targets=[];t.active=0,t.forEach=e=>{for(let n=0,r=t.active;n<r;++n)e(t[n],n,t)}}function xl(e){$o.call(this,null,El,e)}function El(e){return this.value&&!e.modified()?this.value:Le(e.name)?Qe(e.name).map((e=>be(e))):be(e.name,e.as)}function Sl(e){Vo.call(this,ht(),e)}function Al(e){Vo.call(this,[],e)}function $l(e){Vo.call(this,[],e)}function Tl(e){Vo.call(this,null,e)}function Ol(e){Vo.call(this,[],e)}cl.Definition={type:"Density",metadata:{generates:!0},params:[{name:"extent",type:"number",array:!0,length:2},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"method",type:"string",default:"pdf",values:["pdf","cdf"]},{name:"distribution",type:"param",params:dl.concat(fl)},{name:"as",type:"string",array:!0,default:["value","density"]}]},pt(cl,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const r=ul(e.distribution,function(e){return()=>e.materialize(e.SOURCE).source}(t)),i=e.steps||e.minsteps||25,a=e.steps||e.maxsteps||200;let o=e.method||"pdf";"pdf"!==o&&"cdf"!==o&&_e("Invalid density method: "+o),e.extent||r.data||_e("Missing density extent parameter."),o=r[o];const s=e.as||["value","density"],l=Ls(o,e.extent||ct(r.data()),i,a).map((e=>{const t={};return t[s[0]]=e[0],t[s[1]]=e[1],po(t)}));this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}}),ml.Definition={type:"DotBin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"step",type:"number"},{name:"smooth",type:"boolean",default:!1},{name:"as",type:"string",default:"bin"}]},pt(ml,Vo,{transform(e,t){if(this.value&&!e.modified()&&!t.changed())return t;const n=t.materialize(t.SOURCE).source,r=pl(t.source,e.groupby,Ee),i=e.smooth||!1,a=e.field,o=e.step||((e,t)=>Et(ct(e,t))/30)(n,a),s=_o(((e,t)=>a(e)-a(t))),l=e.as||"bin",u=r.length;let c,d=1/0,f=-1/0,h=0;for(;h<u;++h){const e=r[h].sort(s);c=-1;for(const t of os(e,o,i,a))t<d&&(d=t),t>f&&(f=t),e[++c][l]=t}return this.value={start:d,stop:f,step:o},t.reflow(!0).modifies(l)}}),pt(gl,$o),_l.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},pt(_l,Vo,{transform(e,t){const n=this.value,r=e.field,i=t.changed()||t.modified(r.fields)||e.modified("field");let a=n[0],o=n[1];if((i||null==a)&&(a=1/0,o=-1/0),t.visit(i?t.SOURCE:t.ADD,(e=>{const t=ze(r(e));null!=t&&(t<a&&(a=t),t>o&&(o=t))})),!Number.isFinite(a)||!Number.isFinite(o)){let e=he(r);e&&(e=` for field "${e}"`),t.dataflow.warn(`Infinite extent${e}: [${a}, ${o}]`),a=o=void 0}this.value=[a,o]}}),pt(vl,$o,{connect(e){return this.detachSubflow=e.detachSubflow,this.targets().add(e),e.source=this},add(e){this.count+=1,this.value.add.push(e)},rem(e){this.count-=1,this.value.rem.push(e)},mod(e){this.value.mod.push(e)},init(e){this.value.init(e,e.NO_SOURCE)},evaluate(){return this.value}}),pt(bl,Vo,{activate(e){this._targets[this._targets.active++]=e},subflow(e,t,n,r){const i=this.value;let a,o,s=dt(i,e)&&i[e];return s?s.value.stamp<n.stamp&&(s.init(n),this.activate(s)):(o=r||(o=this._group[e])&&o.tuple,a=n.dataflow,s=new vl(n.fork(n.NO_SOURCE),this),a.add(s).connect(t(a,e,o)),i[e]=s,this.activate(s)),s},clean(){const e=this.value;let t=0;for(const n in e)if(0===e[n].count){const r=e[n].detachSubflow;r&&r(),delete e[n],++t}if(t){const e=this._targets.filter((e=>e&&e.count>0));this.initTargets(e)}},initTargets(e){const t=this._targets,n=t.length,r=e?e.length:0;let i=0;for(;i<r;++i)t[i]=e[i];for(;i<n&&null!=t[i];++i)t[i]=null;t.active=r},transform(e,t){const n=t.dataflow,r=e.key,i=e.subflow,a=this._keys,o=e.modified("key"),s=e=>this.subflow(e,i,t);return this._group=e.group||{},this.initTargets(),t.visit(t.REM,(e=>{const t=fo(e),n=a.get(t);void 0!==n&&(a.delete(t),s(n).rem(e))})),t.visit(t.ADD,(e=>{const t=r(e);a.set(fo(e),t),s(t).add(e)})),o||t.modified(r.fields)?t.visit(t.MOD,(e=>{const t=fo(e),n=a.get(t),i=r(e);n===i?s(i).mod(e):(a.set(t,i),s(n).rem(e),s(i).add(e))})):t.changed(t.MOD)&&t.visit(t.MOD,(e=>{s(a.get(fo(e))).mod(e)})),o&&t.visit(t.REFLOW,(e=>{const t=fo(e),n=a.get(t),i=r(e);n!==i&&(a.set(t,i),s(n).rem(e),s(i).add(e))})),t.clean()?n.runAfter((()=>{this.clean(),a.clean()})):a.empty>n.cleanThreshold&&n.runAfter(a.clean),t}}),pt(xl,$o),Sl.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},pt(Sl,Vo,{transform(e,t){const n=t.dataflow,r=this.value,i=t.fork(),a=i.add,o=i.rem,s=i.mod,l=e.expr;let u=!0;function c(t){const n=fo(t),i=l(t,e),c=r.get(n);i&&c?(r.delete(n),a.push(t)):i||c?u&&i&&!c&&s.push(t):(r.set(n,1),o.push(t))}return t.visit(t.REM,(e=>{const t=fo(e);r.has(t)?r.delete(t):o.push(e)})),t.visit(t.ADD,(t=>{l(t,e)?a.push(t):r.set(fo(t),1)})),t.visit(t.MOD,c),e.modified()&&(u=!1,t.visit(t.REFLOW,c)),r.empty>n.cleanThreshold&&n.runAfter(r.clean),i}}),Al.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"index",type:"string"},{name:"as",type:"string",array:!0}]},pt(Al,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.fields,i=hl(r,e.as||[]),a=e.index||null,o=i.length;return n.rem=this.value,t.visit(t.SOURCE,(e=>{const t=r.map((t=>t(e))),s=t.reduce(((e,t)=>Math.max(e,t.length)),0);let l,u,c,d=0;for(;d<s;++d){for(u=mo(e),l=0;l<o;++l)u[i[l]]=null==(c=t[l][d])?null:c;a&&(u[a]=d),n.add.push(u)}})),this.value=n.source=n.add,a&&n.modifies(a),n.modifies(i)}}),$l.Definition={type:"Fold",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0,length:2,default:["key","value"]}]},pt($l,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.fields,i=r.map(he),a=e.as||["key","value"],o=a[0],s=a[1],l=r.length;return n.rem=this.value,t.visit(t.SOURCE,(e=>{for(let t,a=0;a<l;++a)t=mo(e),t[o]=i[a],t[s]=r[a](e),n.add.push(t)})),this.value=n.source=n.add,n.modifies(a)}}),Tl.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},pt(Tl,Vo,{transform(e,t){const n=e.expr,r=e.as,i=e.modified(),a=e.initonly?t.ADD:i?t.SOURCE:t.modified(n.fields)||t.modified(r)?t.ADD_MOD:t.ADD;return i&&(t=t.materialize().reflow(!0)),e.initonly||t.modifies(r),t.visit(a,(t=>t[r]=n(t,e)))}}),pt(Ol,Vo,{transform(e,t){const n=t.fork(t.ALL),r=e.generator;let i,a,o,s=this.value,l=e.size-s.length;if(l>0){for(i=[];--l>=0;)i.push(o=po(r(e))),s.push(o);n.add=n.add.length?n.materialize(n.ADD).add.concat(i):i}else a=s.slice(0,-l),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(a):a,s=s.slice(-l);return n.source=this.value=s,n}});const Dl={value:"value",median:es,mean:function(e,t){let n=0,r=0;if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(++n,r+=t);else{let i=-1;for(let a of e)null!=(a=t(a,++i,e))&&(a=+a)>=a&&(++n,r+=a)}if(n)return r/n},min:qo,max:Go},Ml=[];function wl(e){Vo.call(this,[],e)}function Il(e){Qs.call(this,e)}function Cl(e){Vo.call(this,null,e)}function Rl(e){$o.call(this,null,kl,e)}function kl(e){return this.value&&!e.modified()?this.value:bt(e.fields,e.flat)}function Ll(e){Vo.call(this,[],e),this._pending=null}function Nl(e,t,n){n.forEach(po);const r=t.fork(t.NO_FIELDS&t.NO_SOURCE);return r.rem=e.value,e.value=r.source=r.add=n,e._pending=null,r.rem.length&&r.clean(!0),r}function Fl(e){Vo.call(this,{},e)}function Bl(e){$o.call(this,null,jl,e)}function jl(e){if(this.value&&!e.modified())return this.value;const t=e.extents,n=t.length;let r,i,a=1/0,o=-1/0;for(r=0;r<n;++r)i=t[r],i[0]<a&&(a=i[0]),i[1]>o&&(o=i[1]);return[a,o]}function Hl(e){$o.call(this,null,zl,e)}function zl(e){return this.value&&!e.modified()?this.value:e.values.reduce(((e,t)=>e.concat(t)),[])}function Pl(e){Vo.call(this,null,e)}function Ul(e){Qs.call(this,e)}function Vl(e){bl.call(this,e)}function Wl(e){Vo.call(this,null,e)}function Gl(e){Vo.call(this,null,e)}function ql(e){Vo.call(this,null,e)}function Yl(e){Vo.call(this,null,e)}function Kl(e){Vo.call(this,[],e),this.count=0}function Jl(e){Vo.call(this,null,e)}function Xl(e){Vo.call(this,null,e),this.modified(!0)}function Zl(e){Vo.call(this,null,e)}wl.Definition={type:"Impute",metadata:{changes:!0},params:[{name:"field",type:"field",required:!0},{name:"key",type:"field",required:!0},{name:"keyvals",array:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]},pt(wl,Vo,{transform(e,t){var n,r,i,a,o,s,l,u,c,d,f=t.fork(t.ALL),h=function(e){var t,n=e.method||Dl.value;if(null!=Dl[n])return n===Dl.value?(t=void 0!==e.value?e.value:0,()=>t):Dl[n];_e("Unrecognized imputation method: "+n)}(e),p=function(e){const t=e.field;return e=>e?t(e):NaN}(e),m=he(e.field),g=he(e.key),y=(e.groupby||[]).map(he),_=function(e,t,n,r){var i,a,o,s,l,u,c,d,f=e=>e(d),h=[],p=r?r.slice():[],m={},g={};for(p.forEach(((e,t)=>m[e]=t+1)),s=0,c=e.length;s<c;++s)u=n(d=e[s]),l=m[u]||(m[u]=p.push(u)),(o=g[a=(i=t?t.map(f):Ml)+""])||(o=g[a]=[],h.push(o),o.values=i),o[l-1]=d;return h.domain=p,h}(t.source,e.groupby,e.key,e.keyvals),v=[],b=this.value,x=_.domain.length;for(o=0,u=_.length;o<u;++o)for(i=(n=_[o]).values,r=NaN,l=0;l<x;++l)if(null==n[l]){for(a=_.domain[l],d={_impute:!0},s=0,c=i.length;s<c;++s)d[y[s]]=i[s];d[g]=a,d[m]=Number.isNaN(r)?r=h(n,p):r,v.push(po(d))}return v.length&&(f.add=f.materialize(f.ADD).add.concat(v)),b.length&&(f.rem=f.materialize(f.REM).rem.concat(b)),this.value=v,f}}),Il.Definition={type:"JoinAggregate",metadata:{modifies:!0},params:[{name:"groupby",type:"field",array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"ops",type:"enum",array:!0,values:Us},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]},pt(Il,Qs,{transform(e,t){const n=this,r=e.modified();let i;return n.value&&(r||t.modified(n._inputs,!0))?(i=n.value=r?n.init(e):{},t.visit(t.SOURCE,(e=>n.add(e)))):(i=n.value=n.value||this.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),n.changes(),t.visit(t.SOURCE,(e=>{ut(e,i[n.cellkey(e)].tuple)})),t.reflow(r).modifies(this._outputs)},changes(){const e=this._adds,t=this._mods;let n,r;for(n=0,r=this._alen;n<r;++n)this.celltuple(e[n]),e[n]=null;for(n=0,r=this._mlen;n<r;++n)this.celltuple(t[n]),t[n]=null;this._alen=this._mlen=0}}),Cl.Definition={type:"KDE",metadata:{generates:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"cumulative",type:"boolean",default:!1},{name:"counts",type:"boolean",default:!1},{name:"bandwidth",type:"number",default:0},{name:"extent",type:"number",array:!0,length:2},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"as",type:"string",array:!0,default:["value","density"]}]},pt(Cl,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const r=t.materialize(t.SOURCE).source,i=pl(r,e.groupby,e.field),a=(e.groupby||[]).map(he),o=e.bandwidth,s=e.cumulative?"cdf":"pdf",l=e.as||["value","density"],u=[];let c=e.extent,d=e.steps||e.minsteps||25,f=e.steps||e.maxsteps||200;"pdf"!==s&&"cdf"!==s&&_e("Invalid density method: "+s),"shared"===e.resolve&&(c||(c=ct(r,e.field)),d=f=e.steps||f),i.forEach((t=>{const n=ms(t,o)[s],r=e.counts?t.length:1;Ls(n,c||ct(t),d,f).forEach((e=>{const n={};for(let e=0;e<a.length;++e)n[a[e]]=t.dims[e];n[l[0]]=e[0],n[l[1]]=e[1]*r,u.push(po(n))}))})),this.value&&(n.rem=this.value),this.value=n.add=n.source=u}return n}}),pt(Rl,$o),pt(Ll,Vo,{transform(e,t){const n=t.dataflow;if(this._pending)return Nl(this,t,this._pending);if(function(e){return e.modified("async")&&!(e.modified("values")||e.modified("url")||e.modified("format"))}(e))return t.StopPropagation;if(e.values)return Nl(this,t,n.parse(e.values,e.format));if(e.async){const t=n.request(e.url,e.format).then((e=>(this._pending=Qe(e.data),e=>e.touch(this))));return{async:t}}return n.request(e.url,e.format).then((e=>Nl(this,t,Qe(e.data))))}}),Fl.Definition={type:"Lookup",metadata:{modifies:!0},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:!0},{name:"key",type:"field",required:!0}]},{name:"values",type:"field",array:!0},{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0},{name:"default",default:null}]},pt(Fl,Vo,{transform(e,t){const n=e.fields,r=e.index,i=e.values,a=null==e.default?null:e.default,o=e.modified(),s=n.length;let l,u,c,d=o?t.SOURCE:t.ADD,f=t,h=e.as;return i?(u=i.length,s>1&&!h&&_e('Multi-field lookup requires explicit "as" parameter.'),h&&h.length!==s*u&&_e('The "as" parameter has too few output field names.'),h=h||i.map(he),l=function(e){for(var t,o,l=0,c=0;l<s;++l)if(null==(o=r.get(n[l](e))))for(t=0;t<u;++t,++c)e[h[c]]=a;else for(t=0;t<u;++t,++c)e[h[c]]=i[t](o)}):(h||_e("Missing output field names."),l=function(e){for(var t,i=0;i<s;++i)t=r.get(n[i](e)),e[h[i]]=null==t?a:t}),o?f=t.reflow(!0):(c=n.some((e=>t.modified(e.fields))),d|=c?t.MOD:0),t.visit(d,l),f.modifies(h)}}),pt(Bl,$o),pt(Hl,$o),pt(Pl,Vo,{transform(e,t){return this.modified(e.modified()),this.value=e,t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),Ul.Definition={type:"Pivot",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"value",type:"field",required:!0},{name:"op",type:"enum",values:Us,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},pt(Ul,Qs,{_transform:Qs.prototype.transform,transform(e,t){return this._transform(function(e,t){const n=e.field,r=e.value,i=("count"===e.op?"__count__":e.op)||"sum",a=pe(n).concat(pe(r)),o=function(e,t,n){const r={},i=[];return n.visit(n.SOURCE,(t=>{const n=e(t);r[n]||(r[n]=1,i.push(n))})),i.sort(rt),t?i.slice(0,t):i}(n,e.limit||0,t);return t.changed()&&e.set("__pivot__",null,null,!0),{key:e.key,groupby:e.groupby,ops:o.map((()=>i)),fields:o.map((e=>function(e,t,n,r){return fe((r=>t(r)===e?n(r):NaN),r,e+"")}(e,n,r,a))),as:o.map((e=>e+"")),modified:e.modified.bind(e)}}(e,t),t)}}),pt(Vl,bl,{transform(e,t){const n=e.subflow,r=e.field,i=e=>this.subflow(fo(e),n,t,e);return(e.modified("field")||r&&t.modified(pe(r)))&&_e("PreFacet does not support field modification."),this.initTargets(),r?(t.visit(t.MOD,(e=>{const t=i(e);r(e).forEach((e=>t.mod(e)))})),t.visit(t.ADD,(e=>{const t=i(e);r(e).forEach((e=>t.add(po(e))))})),t.visit(t.REM,(e=>{const t=i(e);r(e).forEach((e=>t.rem(e)))}))):(t.visit(t.MOD,(e=>i(e).mod(e))),t.visit(t.ADD,(e=>i(e).add(e))),t.visit(t.REM,(e=>i(e).rem(e)))),t.clean()&&t.runAfter((()=>this.clean())),t}}),Wl.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},pt(Wl,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.fields,i=hl(e.fields,e.as||[]),a=r?(e,t)=>function(e,t,n,r){for(let i=0,a=n.length;i<a;++i)t[r[i]]=n[i](e);return t}(e,t,r,i):go;let o;return this.value?o=this.value:(t=t.addAll(),o=this.value={}),t.visit(t.REM,(e=>{const t=fo(e);n.rem.push(o[t]),o[t]=null})),t.visit(t.ADD,(e=>{const t=a(e,po({}));o[fo(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{n.mod.push(a(e,o[fo(e)]))})),n}}),pt(Gl,Vo,{transform(e,t){return this.value=e.value,e.modified("value")?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}}),ql.Definition={type:"Quantile",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"probs",type:"number",array:!0},{name:"step",type:"number",default:.01},{name:"as",type:"string",array:!0,default:["prob","value"]}]},pt(ql,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.as||["prob","value"];if(this.value&&!e.modified()&&!t.changed())return n.source=this.value,n;const i=pl(t.materialize(t.SOURCE).source,e.groupby,e.field),a=(e.groupby||[]).map(he),o=[],s=e.step||.01,l=e.probs||Fs(s/2,1-1e-14,s),u=l.length;return i.forEach((e=>{const t=ns(e,l);for(let n=0;n<u;++n){const i={};for(let t=0;t<a.length;++t)i[a[t]]=e.dims[t];i[r[0]]=l[n],i[r[1]]=t[n],o.push(po(i))}})),this.value&&(n.rem=this.value),this.value=n.add=n.source=o,n}}),pt(Yl,Vo,{transform(e,t){let n,r;return this.value?r=this.value:(n=t=t.addAll(),r=this.value={}),e.derive&&(n=t.fork(t.NO_SOURCE),t.visit(t.REM,(e=>{const t=fo(e);n.rem.push(r[t]),r[t]=null})),t.visit(t.ADD,(e=>{const t=mo(e);r[fo(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{const t=r[fo(e)];for(const r in e)t[r]=e[r],n.modifies(r);n.mod.push(t)}))),n}}),Kl.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},pt(Kl,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.modified("size"),i=e.size,a=this.value.reduce(((e,t)=>(e[fo(t)]=1,e)),{});let o=this.value,s=this.count,l=0;function u(e){let t,r;o.length<i?o.push(e):(r=~~((s+1)*as()),r<o.length&&r>=l&&(t=o[r],a[fo(t)]&&n.rem.push(t),o[r]=e)),++s}if(t.rem.length&&(t.visit(t.REM,(e=>{const t=fo(e);a[t]&&(a[t]=-1,n.rem.push(e)),--s})),o=o.filter((e=>-1!==a[fo(e)]))),(t.rem.length||r)&&o.length<i&&t.source&&(l=s=o.length,t.visit(t.SOURCE,(e=>{a[fo(e)]||u(e)})),l=-1),r&&o.length>i){const e=o.length-i;for(let t=0;t<e;++t)a[fo(o[t])]=-1,n.rem.push(o[t]);o=o.slice(e)}return t.mod.length&&t.visit(t.MOD,(e=>{a[fo(e)]&&n.mod.push(e)})),t.add.length&&t.visit(t.ADD,u),(t.add.length||l<0)&&(n.add=o.filter((e=>!a[fo(e)]))),this.count=s,this.value=n.source=o,n}}),Jl.Definition={type:"Sequence",metadata:{generates:!0,changes:!0},params:[{name:"start",type:"number",required:!0},{name:"stop",type:"number",required:!0},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]},pt(Jl,Vo,{transform(e,t){if(this.value&&!e.modified())return;const n=t.materialize().fork(t.MOD),r=e.as||"data";return n.rem=this.value?t.rem.concat(this.value):t.rem,this.value=Fs(e.start,e.stop,e.step||1).map((e=>{const t={};return t[r]=e,po(t)})),n.add=t.add.concat(this.value),n}}),pt(Xl,Vo,{transform(e,t){return this.value=t.source,t.changed()?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});const Ql=["unit0","unit1"];function eu(e){Vo.call(this,ht(),e)}function tu(e){Vo.call(this,null,e)}Zl.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:yr,array:!0},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:!0},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:!0,length:2,default:Ql}]},pt(Zl,Vo,{transform(e,t){const n=e.field,r=!1!==e.interval,i="utc"===e.timezone,a=this._floor(e,t),o=(i?Pr:zr)(a.unit).offset,s=e.as||Ql,l=s[0],u=s[1],c=a.step;let d=a.start||1/0,f=a.stop||-1/0,h=t.ADD;return(e.modified()||t.changed(t.REM)||t.modified(pe(n)))&&(h=(t=t.reflow(!0)).SOURCE,d=1/0,f=-1/0),t.visit(h,(e=>{const t=n(e);let i,s;null==t?(e[l]=null,r&&(e[u]=null)):(e[l]=i=s=a(t),r&&(e[u]=s=o(i,c)),i<d&&(d=i),s>f&&(f=s))})),a.start=d,a.stop=f,t.modifies(r?s:l)},_floor(e,t){const n="utc"===e.timezone,{units:r,step:i}=e.units?{units:e.units,step:e.step||1}:function(e){const t=e.extent,n=e.maxbins||40,r=Math.abs(Et(t))/n;let i,a,o=ir((e=>e[2])).right(Qr,r);return o===Qr.length?(i=Zr,a=Zt(t[0]/Wr,t[1]/Wr,n)):o?(o=Qr[r/Qr[o-1][2]<Qr[o][2]/r?o-1:o],i=o[0],a=o[1]):(i=Gr,a=Math.max(Zt(t[0],t[1],n),1)),{units:i,step:a}}({extent:e.extent||ct(t.materialize(t.SOURCE).source,e.field),maxbins:e.maxbins}),a=vr(r),o=this.value||{},s=(n?Br:Lr)(a,i);return s.unit=He(a),s.units=a,s.step=i,s.start=o.start,s.stop=o.stop,this.value=s}}),pt(eu,Vo,{transform(e,t){const n=t.dataflow,r=e.field,i=this.value,a=e=>i.set(r(e),e);let o=!0;return e.modified("field")||t.modified(r.fields)?(i.clear(),t.visit(t.SOURCE,a)):t.changed()?(t.visit(t.REM,(e=>i.delete(r(e)))),t.visit(t.ADD,a)):o=!1,this.modified(o),i.empty>n.cleanThreshold&&n.runAfter(i.clean),t.fork()}}),pt(tu,Vo,{transform(e,t){(!this.value||e.modified("field")||e.modified("sort")||t.changed()||e.sort&&t.modified(e.sort.fields))&&(this.value=(e.sort?t.source.slice().sort(_o(e.sort)):t.source).map(e.field))}});const nu={row_number:function(){return{next:e=>e.index+1}},rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,r=t.data;return n&&t.compare(r[n-1],r[n])?e=n+1:e}}},dense_rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,r=t.data;return n&&t.compare(r[n-1],r[n])?++e:e}}},percent_rank:function(){const e=nu.rank(),t=e.next;return{init:e.init,next:e=>(t(e)-1)/(e.data.length-1)}},cume_dist:function(){let e;return{init:()=>e=0,next:t=>{const n=t.data,r=t.compare;let i=t.index;if(e<i){for(;i+1<n.length&&!r(n[i],n[i+1]);)++i;e=i}return(1+e)/n.length}}},ntile:function(e,t){(t=+t)>0||_e("ntile num must be greater than zero.");const n=nu.cume_dist(),r=n.next;return{init:n.init,next:e=>Math.ceil(t*r(e))}},lag:function(e,t){return t=+t||1,{next:n=>{const r=n.index-t;return r>=0?e(n.data[r]):null}}},lead:function(e,t){return t=+t||1,{next:n=>{const r=n.index+t,i=n.data;return r<i.length?e(i[r]):null}}},first_value:function(e){return{next:t=>e(t.data[t.i0])}},last_value:function(e){return{next:t=>e(t.data[t.i1-1])}},nth_value:function(e,t){return(t=+t)>0||_e("nth_value nth must be greater than zero."),{next:n=>{const r=n.i0+(t-1);return r<n.i1?e(n.data[r]):null}}},prev_value:function(e){let t;return{init:()=>t=null,next:n=>{const r=e(n.data[n.index]);return null!=r?t=r:t}}},next_value:function(e){let t,n;return{init:()=>(t=null,n=-1),next:r=>{const i=r.data;return r.index<=n?t:(n=function(e,t,n){for(let r=t.length;n<r;++n)if(null!=e(t[n]))return n;return-1}(e,i,r.index))<0?(n=i.length,t=null):t=e(i[n])}}}},ru=Object.keys(nu);function iu(e){const t=Qe(e.ops),n=Qe(e.fields),r=Qe(e.params),i=Qe(e.aggregate_params),a=Qe(e.as),o=this.outputs=[],s=this.windows=[],l={},u={},c=[],d=[];let f=!0;function h(e){Qe(pe(e)).forEach((e=>l[e]=1))}h(e.sort),t.forEach(((e,t)=>{const l=n[t],p=r[t],m=i[t]||null,g=he(l),y=js(e,g,a[t]);if(h(l),o.push(y),dt(nu,e))s.push(function(e,t,n,r){const i=nu[e](t,n);return{init:i.init||Se,update:function(e,t){t[r]=i.next(e)}}}(e,l,p,y));else{if(null==l&&"count"!==e&&_e("Null aggregate field specified."),"count"===e)return void c.push(y);f=!1;let t=u[g];t||(t=u[g]=[],t.field=l,d.push(t)),t.push(Vs(e,m,y))}})),(c.length||d.length)&&(this.cell=function(e,t,n){e=e.map((e=>Js(e,e.field)));const r={num:0,agg:null,store:!1,count:t};if(!n)for(var i=e.length,a=r.agg=Array(i),o=0;o<i;++o)a[o]=new e[o](r);if(r.store)var s=r.data=new Xs;return r.add=function(e){if(r.num+=1,!n){s&&s.add(e);for(let t=0;t<i;++t)a[t].add(a[t].get(e),e)}},r.rem=function(e){if(r.num-=1,!n){s&&s.rem(e);for(let t=0;t<i;++t)a[t].rem(a[t].get(e),e)}},r.set=function(e){let i,o;for(s&&s.values(),i=0,o=t.length;i<o;++i)e[t[i]]=r.num;if(!n)for(i=0,o=a.length;i<o;++i)a[i].set(e)},r.init=function(){r.num=0,s&&s.reset();for(let e=0;e<i;++e)a[e].init()},r}(d,c,f)),this.inputs=Object.keys(l)}const au=iu.prototype;function ou(e){Vo.call(this,{},e),this._mlen=0,this._mods=[]}function su(e,t,n,r){const i=r.sort,a=i&&!r.ignorePeers,o=r.frame||[null,0],s=e.data(n),l=s.length,u=a?ir(i):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:s,compare:i||st(-1)};t.init();for(let e=0;e<l;++e)lu(c,o,e,l),a&&uu(c,u),t.update(c,s[e])}function lu(e,t,n,r){e.p0=e.i0,e.p1=e.i1,e.i0=null==t[0]?0:Math.max(0,n-Math.abs(t[0])),e.i1=null==t[1]?r:Math.min(r,n+Math.abs(t[1])+1),e.index=n}function uu(e,t){const n=e.i0,r=e.i1-1,i=e.compare,a=e.data,o=a.length-1;n>0&&!i(a[n],a[n-1])&&(e.i0=t.left(a,a[n])),r<o&&!i(a[r],a[r+1])&&(e.i1=t.right(a,a[r]))}function cu(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function du(e){this._context=e}function fu(){}function hu(e){this._context=e}function pu(e){this._context=e}function mu(e,t){this._basis=new du(e),this._beta=t}au.init=function(){this.windows.forEach((e=>e.init())),this.cell&&this.cell.init()},au.update=function(e,t){const n=this.cell,r=this.windows,i=e.data,a=r&&r.length;let o;if(n){for(o=e.p0;o<e.i0;++o)n.rem(i[o]);for(o=e.p1;o<e.i1;++o)n.add(i[o]);n.set(t)}for(o=0;o<a;++o)r[o].update(e,t)},ou.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:ru.concat(Us)},{name:"params",type:"number",null:!0,array:!0},{name:"aggregate_params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"frame",type:"number",null:!0,array:!0,length:2,default:[null,0]},{name:"ignorePeers",type:"boolean",default:!1}]},pt(ou,Vo,{transform(e,t){this.stamp=t.stamp;const n=e.modified(),r=_o(e.sort),i=Bs(e.groupby),a=e=>this.group(i(e));let o=this.state;o&&!n||(o=this.state=new iu(e)),n||t.modified(o.inputs)?(this.value={},t.visit(t.SOURCE,(e=>a(e).add(e)))):(t.visit(t.REM,(e=>a(e).remove(e))),t.visit(t.ADD,(e=>a(e).add(e))));for(let t=0,n=this._mlen;t<n;++t)su(this._mods[t],o,r,e);return this._mlen=0,this._mods=[],t.reflow(n).modifies(o.outputs)},group(e){let t=this.value[e];return t||(t=this.value[e]=tl(fo),t.stamp=-1),t.stamp<this.stamp&&(t.stamp=this.stamp,this._mods[this._mlen++]=t),t}}),du.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:cu(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:cu(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},hu.prototype={areaStart:fu,areaEnd:fu,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:cu(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},pu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:cu(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},mu.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r,i=e[0],a=t[0],o=e[n]-i,s=t[n]-a,l=-1;++l<=n;)r=l/n,this._basis.point(this._beta*e[l]+(1-this._beta)*(i+r*o),this._beta*t[l]+(1-this._beta)*(a+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const gu=function e(t){function n(e){return 1===t?new du(e):new mu(e,t)}return n.beta=function(t){return e(+t)},n}(.85);function yu(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function _u(e,t){this._context=e,this._k=(1-t)/6}_u.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:yu(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:yu(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const vu=function e(t){function n(e){return new _u(e,t)}return n.tension=function(t){return e(+t)},n}(0);function bu(e,t){this._context=e,this._k=(1-t)/6}bu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:yu(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const xu=function e(t){function n(e){return new bu(e,t)}return n.tension=function(t){return e(+t)},n}(0);function Eu(e,t){this._context=e,this._k=(1-t)/6}Eu.prototype={areaStart:fu,areaEnd:fu,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:yu(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Su=function e(t){function n(e){return new Eu(e,t)}return n.tension=function(t){return e(+t)},n}(0),Au=Math.abs,$u=Math.atan2,Tu=Math.cos,Ou=Math.max,Du=Math.min,Mu=Math.sin,wu=Math.sqrt,Iu=1e-12,Cu=Math.PI,Ru=Cu/2,ku=2*Cu;function Lu(e){return e>=1?Ru:e<=-1?-Ru:Math.asin(e)}function Nu(e,t,n){var r=e._x1,i=e._y1,a=e._x2,o=e._y2;if(e._l01_a>Iu){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>Iu){var u=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,c=3*e._l23_a*(e._l23_a+e._l12_a);a=(a*u+e._x1*e._l23_2a-t*e._l12_2a)/c,o=(o*u+e._y1*e._l23_2a-n*e._l12_2a)/c}e._context.bezierCurveTo(r,i,a,o,e._x2,e._y2)}function Fu(e,t){this._context=e,this._alpha=t}Fu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:Nu(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Bu=function e(t){function n(e){return t?new Fu(e,t):new _u(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function ju(e,t){this._context=e,this._alpha=t}ju.prototype={areaStart:fu,areaEnd:fu,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Nu(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Hu=function e(t){function n(e){return t?new ju(e,t):new Eu(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function zu(e,t){this._context=e,this._alpha=t}zu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Nu(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Pu=function e(t){function n(e){return t?new zu(e,t):new bu(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function Uu(e){this._context=e}function Vu(e){return new Uu(e)}function Wu(e){this._context=e}function Gu(e){return e<0?-1:1}function qu(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(Gu(a)+Gu(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function Yu(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Ku(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function Ju(e){this._context=e}function Xu(e){this._context=new Zu(e)}function Zu(e){this._context=e}function Qu(e){this._context=e}function ec(e){var t,n,r=e.length-1,i=new Array(r),a=new Array(r),o=new Array(r);for(i[0]=0,a[0]=2,o[0]=e[0]+2*e[1],t=1;t<r-1;++t)i[t]=1,a[t]=4,o[t]=4*e[t]+2*e[t+1];for(i[r-1]=2,a[r-1]=7,o[r-1]=8*e[r-1]+e[r],t=1;t<r;++t)n=i[t]/a[t-1],a[t]-=n,o[t]-=n*o[t-1];for(i[r-1]=o[r-1]/a[r-1],t=r-2;t>=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[r-1]=(e[r]+i[r-1])/2,t=0;t<r-1;++t)a[t]=2*e[t+1]-i[t+1];return[i,a]}function tc(e,t){this._context=e,this._t=t}function nc(e){return function(){return e}}Uu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}},Wu.prototype={areaStart:fu,areaEnd:fu,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}},Ju.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Ku(this,this._t0,Yu(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(t=+t,(e=+e)!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Ku(this,Yu(this,n=qu(this,e,t)),n);break;default:Ku(this,this._t0,n=qu(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}},(Xu.prototype=Object.create(Ju.prototype)).point=function(e,t){Ju.prototype.point.call(this,t,e)},Zu.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,a){this._context.bezierCurveTo(t,e,r,n,a,i)}},Qu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),2===n)this._context.lineTo(e[1],t[1]);else for(var r=ec(e),i=ec(t),a=0,o=1;o<n;++a,++o)this._context.bezierCurveTo(r[0][a],i[0][a],r[1][a],i[1][a],e[o],t[o]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}},tc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};const rc=Math.PI,ic=2*rc,ac=1e-6,oc=ic-ac;function sc(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}class lc{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==e?sc:function(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return sc;const n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,i,a){this._append`C${+e},${+t},${+n},${+r},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,n,r,i){if(e=+e,t=+t,n=+n,r=+r,(i=+i)<0)throw new Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,s=n-e,l=r-t,u=a-e,c=o-t,d=u*u+c*c;if(null===this._x1)this._append`M${this._x1=e},${this._y1=t}`;else if(d>ac)if(Math.abs(c*s-l*u)>ac&&i){let f=n-a,h=r-o,p=s*s+l*l,m=f*f+h*h,g=Math.sqrt(p),y=Math.sqrt(d),_=i*Math.tan((rc-Math.acos((p+d-m)/(2*g*y)))/2),v=_/y,b=_/g;Math.abs(v-1)>ac&&this._append`L${e+v*u},${t+v*c}`,this._append`A${i},${i},0,0,${+(c*f>u*h)},${this._x1=e+b*s},${this._y1=t+b*l}`}else this._append`L${this._x1=e},${this._y1=t}`}arc(e,t,n,r,i,a){if(e=+e,t=+t,a=!!a,(n=+n)<0)throw new Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),l=e+o,u=t+s,c=1^a,d=a?r-i:i-r;null===this._x1?this._append`M${l},${u}`:(Math.abs(this._x1-l)>ac||Math.abs(this._y1-u)>ac)&&this._append`L${l},${u}`,n&&(d<0&&(d=d%ic+ic),d>oc?this._append`A${n},${n},0,1,${c},${e-o},${t-s}A${n},${n},0,1,${c},${this._x1=l},${this._y1=u}`:d>ac&&this._append`A${n},${n},0,${+(d>=rc)},${c},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}}function uc(){return new lc}function cc(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(null==n)t=null;else{const e=Math.floor(n);if(!(e>=0))throw new RangeError(`invalid digits: ${n}`);t=e}return e},()=>new lc(t)}function dc(e){return e.innerRadius}function fc(e){return e.outerRadius}function hc(e){return e.startAngle}function pc(e){return e.endAngle}function mc(e){return e&&e.padAngle}function gc(e,t,n,r,i,a,o){var s=e-n,l=t-r,u=(o?a:-a)/wu(s*s+l*l),c=u*l,d=-u*s,f=e+c,h=t+d,p=n+c,m=r+d,g=(f+p)/2,y=(h+m)/2,_=p-f,v=m-h,b=_*_+v*v,x=i-a,E=f*m-p*h,S=(v<0?-1:1)*wu(Ou(0,x*x*b-E*E)),A=(E*v-_*S)/b,$=(-E*_-v*S)/b,T=(E*v+_*S)/b,O=(-E*_+v*S)/b,D=A-g,M=$-y,w=T-g,I=O-y;return D*D+M*M>w*w+I*I&&(A=T,$=O),{cx:A,cy:$,x01:-c,y01:-d,x11:A*(i/x-1),y11:$*(i/x-1)}}function yc(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function _c(e){return e[0]}function vc(e){return e[1]}function bc(e,t){var n=nc(!0),r=null,i=Vu,a=null,o=cc(s);function s(s){var l,u,c,d=(s=yc(s)).length,f=!1;for(null==r&&(a=i(c=o())),l=0;l<=d;++l)!(l<d&&n(u=s[l],l,s))===f&&((f=!f)?a.lineStart():a.lineEnd()),f&&a.point(+e(u,l,s),+t(u,l,s));if(c)return a=null,c+""||null}return e="function"==typeof e?e:void 0===e?_c:nc(e),t="function"==typeof t?t:void 0===t?vc:nc(t),s.x=function(t){return arguments.length?(e="function"==typeof t?t:nc(+t),s):e},s.y=function(e){return arguments.length?(t="function"==typeof e?e:nc(+e),s):t},s.defined=function(e){return arguments.length?(n="function"==typeof e?e:nc(!!e),s):n},s.curve=function(e){return arguments.length?(i=e,null!=r&&(a=i(r)),s):i},s.context=function(e){return arguments.length?(null==e?r=a=null:a=i(r=e),s):r},s}function xc(e,t,n){var r=null,i=nc(!0),a=null,o=Vu,s=null,l=cc(u);function u(u){var c,d,f,h,p,m=(u=yc(u)).length,g=!1,y=new Array(m),_=new Array(m);for(null==a&&(s=o(p=l())),c=0;c<=m;++c){if(!(c<m&&i(h=u[c],c,u))===g)if(g=!g)d=c,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=c-1;f>=d;--f)s.point(y[f],_[f]);s.lineEnd(),s.areaEnd()}g&&(y[c]=+e(h,c,u),_[c]=+t(h,c,u),s.point(r?+r(h,c,u):y[c],n?+n(h,c,u):_[c]))}if(p)return s=null,p+""||null}function c(){return bc().defined(i).curve(o).context(a)}return e="function"==typeof e?e:void 0===e?_c:nc(+e),t="function"==typeof t?t:nc(void 0===t?0:+t),n="function"==typeof n?n:void 0===n?vc:nc(+n),u.x=function(t){return arguments.length?(e="function"==typeof t?t:nc(+t),r=null,u):e},u.x0=function(t){return arguments.length?(e="function"==typeof t?t:nc(+t),u):e},u.x1=function(e){return arguments.length?(r=null==e?null:"function"==typeof e?e:nc(+e),u):r},u.y=function(e){return arguments.length?(t="function"==typeof e?e:nc(+e),n=null,u):t},u.y0=function(e){return arguments.length?(t="function"==typeof e?e:nc(+e),u):t},u.y1=function(e){return arguments.length?(n=null==e?null:"function"==typeof e?e:nc(+e),u):n},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(n)},u.lineX1=function(){return c().x(r).y(t)},u.defined=function(e){return arguments.length?(i="function"==typeof e?e:nc(!!e),u):i},u.curve=function(e){return arguments.length?(o=e,null!=a&&(s=o(a)),u):o},u.context=function(e){return arguments.length?(null==e?a=s=null:s=o(a=e),u):a},u}uc.prototype=lc.prototype,Array.prototype.slice,wu(3);const Ec={draw(e,t){const n=wu(t/Cu);e.moveTo(n,0),e.arc(0,0,n,0,ku)}};wu(1/3),Mu(Cu/10),Mu(7*Cu/10);function Sc(e,t){if("undefined"!=typeof document&&document.createElement){const n=document.createElement("canvas");if(n&&n.getContext)return n.width=e,n.height=t,n}return null}Mu(ku/10),Tu(ku/10),wu(3),wu(3),wu(3),wu(12);const Ac=()=>"undefined"!=typeof Image?Image:null,$c=ir(nr),Tc=$c.right,Oc=$c.left,Dc=(ir(Xo).center,Tc);function Mc(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function wc(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ic(){}var Cc=.7,Rc=1/Cc,kc="\\s*([+-]?\\d+)\\s*",Lc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Nc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Fc=/^#([0-9a-f]{3,8})$/,Bc=new RegExp(`^rgb\\(${kc},${kc},${kc}\\)$`),jc=new RegExp(`^rgb\\(${Nc},${Nc},${Nc}\\)$`),Hc=new RegExp(`^rgba\\(${kc},${kc},${kc},${Lc}\\)$`),zc=new RegExp(`^rgba\\(${Nc},${Nc},${Nc},${Lc}\\)$`),Pc=new RegExp(`^hsl\\(${Lc},${Nc},${Nc}\\)$`),Uc=new RegExp(`^hsla\\(${Lc},${Nc},${Nc},${Lc}\\)$`),Vc={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Wc(){return this.rgb().formatHex()}function Gc(){return this.rgb().formatRgb()}function qc(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Fc.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?Yc(t):3===n?new Zc(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?Kc(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?Kc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Bc.exec(e))?new Zc(t[1],t[2],t[3],1):(t=jc.exec(e))?new Zc(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Hc.exec(e))?Kc(t[1],t[2],t[3],t[4]):(t=zc.exec(e))?Kc(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Pc.exec(e))?id(t[1],t[2]/100,t[3]/100,1):(t=Uc.exec(e))?id(t[1],t[2]/100,t[3]/100,t[4]):Vc.hasOwnProperty(e)?Yc(Vc[e]):"transparent"===e?new Zc(NaN,NaN,NaN,0):null}function Yc(e){return new Zc(e>>16&255,e>>8&255,255&e,1)}function Kc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Zc(e,t,n,r)}function Jc(e){return e instanceof Ic||(e=qc(e)),e?new Zc((e=e.rgb()).r,e.g,e.b,e.opacity):new Zc}function Xc(e,t,n,r){return 1===arguments.length?Jc(e):new Zc(e,t,n,null==r?1:r)}function Zc(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function Qc(){return`#${rd(this.r)}${rd(this.g)}${rd(this.b)}`}function ed(){const e=td(this.opacity);return`${1===e?"rgb(":"rgba("}${nd(this.r)}, ${nd(this.g)}, ${nd(this.b)}${1===e?")":`, ${e})`}`}function td(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function nd(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function rd(e){return((e=nd(e))<16?"0":"")+e.toString(16)}function id(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new sd(e,t,n,r)}function ad(e){if(e instanceof sd)return new sd(e.h,e.s,e.l,e.opacity);if(e instanceof Ic||(e=qc(e)),!e)return new sd;if(e instanceof sd)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,l=(a+i)/2;return s?(o=t===a?(n-r)/s+6*(n<r):n===a?(r-t)/s+2:(t-n)/s+4,s/=l<.5?a+i:2-a-i,o*=60):s=l>0&&l<1?0:o,new sd(o,s,l,e.opacity)}function od(e,t,n,r){return 1===arguments.length?ad(e):new sd(e,t,n,null==r?1:r)}function sd(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ld(e){return(e=(e||0)%360)<0?e+360:e}function ud(e){return Math.max(0,Math.min(1,e||0))}function cd(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function dd(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function fd(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r<t-1?e[r+2]:2*a-i;return dd((n-r/t)*t,o,i,a,s)}}function hd(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],a=e[r%t],o=e[(r+1)%t],s=e[(r+2)%t];return dd((n-r/t)*t,i,a,o,s)}}Mc(Ic,qc,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Wc,formatHex:Wc,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ad(this).formatHsl()},formatRgb:Gc,toString:Gc}),Mc(Zc,Xc,wc(Ic,{brighter(e){return e=null==e?Rc:Math.pow(Rc,e),new Zc(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?Cc:Math.pow(Cc,e),new Zc(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Zc(nd(this.r),nd(this.g),nd(this.b),td(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Qc,formatHex:Qc,formatHex8:function(){return`#${rd(this.r)}${rd(this.g)}${rd(this.b)}${rd(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:ed,toString:ed})),Mc(sd,od,wc(Ic,{brighter(e){return e=null==e?Rc:Math.pow(Rc,e),new sd(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Cc:Math.pow(Cc,e),new sd(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Zc(cd(e>=240?e-240:e+120,i,r),cd(e,i,r),cd(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new sd(ld(this.h),ud(this.s),ud(this.l),td(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=td(this.opacity);return`${1===e?"hsl(":"hsla("}${ld(this.h)}, ${100*ud(this.s)}%, ${100*ud(this.l)}%${1===e?")":`, ${e})`}`}}));const pd=e=>()=>e;function md(e,t){return function(n){return e+n*t}}function gd(e,t){var n=t-e;return n?md(e,n>180||n<-180?n-360*Math.round(n/360):n):pd(isNaN(e)?t:e)}function yd(e,t){var n=t-e;return n?md(e,n):pd(isNaN(e)?t:e)}const _d=function e(t){var n=function(e){return 1==(e=+e)?yd:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):pd(isNaN(t)?n:t)}}(t);function r(e,t){var r=n((e=Xc(e)).r,(t=Xc(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=yd(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+""}}return r.gamma=e,r}(1);function vd(e){return function(t){var n,r,i=t.length,a=new Array(i),o=new Array(i),s=new Array(i);for(n=0;n<i;++n)r=Xc(t[n]),a[n]=r.r||0,o[n]=r.g||0,s[n]=r.b||0;return a=e(a),o=e(o),s=e(s),r.opacity=1,function(e){return r.r=a(e),r.g=o(e),r.b=s(e),r+""}}}var bd=vd(fd),xd=vd(hd);function Ed(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,i=t.slice();return function(a){for(n=0;n<r;++n)i[n]=e[n]*(1-a)+t[n]*a;return i}}function Sd(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ad(e,t){return(Sd(t)?Ed:$d)(e,t)}function $d(e,t){var n,r=t?t.length:0,i=e?Math.min(r,e.length):0,a=new Array(i),o=new Array(r);for(n=0;n<i;++n)a[n]=Cd(e[n],t[n]);for(;n<r;++n)o[n]=t[n];return function(e){for(n=0;n<i;++n)o[n]=a[n](e);return o}}function Td(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Od(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Dd(e,t){var n,r={},i={};for(n in null!==e&&"object"==typeof e||(e={}),null!==t&&"object"==typeof t||(t={}),t)n in e?r[n]=Cd(e[n],t[n]):i[n]=t[n];return function(e){for(n in r)i[n]=r[n](e);return i}}var Md=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,wd=new RegExp(Md.source,"g");function Id(e,t){var n,r,i,a=Md.lastIndex=wd.lastIndex=0,o=-1,s=[],l=[];for(e+="",t+="";(n=Md.exec(e))&&(r=wd.exec(t));)(i=r.index)>a&&(i=t.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(n=n[0])===(r=r[0])?s[o]?s[o]+=r:s[++o]=r:(s[++o]=null,l.push({i:o,x:Od(n,r)})),a=wd.lastIndex;return a<t.length&&(i=t.slice(a),s[o]?s[o]+=i:s[++o]=i),s.length<2?l[0]?function(e){return function(t){return e(t)+""}}(l[0].x):function(e){return function(){return e}}(t):(t=l.length,function(e){for(var n,r=0;r<t;++r)s[(n=l[r]).i]=n.x(e);return s.join("")})}function Cd(e,t){var n,r=typeof t;return null==t||"boolean"===r?pd(t):("number"===r?Od:"string"===r?(n=qc(t))?(t=n,_d):Id:t instanceof qc?_d:t instanceof Date?Td:Sd(t)?Ed:Array.isArray(t)?$d:"function"!=typeof t.valueOf&&"function"!=typeof t.toString||isNaN(t)?Dd:Od)(e,t)}function Rd(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function kd(e){return+e}var Ld=[0,1];function Nd(e){return e}function Fd(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:function(e){return function(){return e}}(isNaN(t)?NaN:.5)}function Bd(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=Fd(i,r),a=n(o,a)):(r=Fd(r,i),a=n(a,o)),function(e){return a(r(e))}}function jd(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),a=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=Fd(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=Dc(e,t,1,r)-1;return a[n](i[n](t))}}function Hd(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function zd(){var e,t,n,r,i,a,o=Ld,s=Ld,l=Cd,u=Nd;function c(){var e=Math.min(o.length,s.length);return u!==Nd&&(u=function(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}(o[0],o[e-1])),r=e>2?jd:Bd,i=a=null,d}function d(t){return null==t||isNaN(t=+t)?n:(i||(i=r(o.map(e),s,l)))(e(u(t)))}return d.invert=function(n){return u(t((a||(a=r(s,o.map(e),Od)))(n)))},d.domain=function(e){return arguments.length?(o=Array.from(e,kd),c()):o.slice()},d.range=function(e){return arguments.length?(s=Array.from(e),c()):s.slice()},d.rangeRound=function(e){return s=Array.from(e),l=Rd,c()},d.clamp=function(e){return arguments.length?(u=!!e||Nd,c()):u!==Nd},d.interpolate=function(e){return arguments.length?(l=e,c()):l},d.unknown=function(e){return arguments.length?(n=e,d):n},function(n,r){return e=n,t=r,c()}}function Pd(){return zd()(Nd,Nd)}function Ud(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function Vd(e,t){switch(arguments.length){case 0:break;case 1:"function"==typeof e?this.interpolator(e):this.range(e);break;default:this.domain(e),"function"==typeof t?this.interpolator(t):this.range(t)}return this}function Wd(e,t,n,r){var i,a=Zt(e,t,n);switch((r=tn(null==r?",f":r)).type){case"s":var o=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(i=on(a,o))||(r.precision=i),pn(r,o);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=sn(a,Math.max(Math.abs(e),Math.abs(t))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=ln(a))||(r.precision=i-2*("%"===r.type))}return hn(r)}function Gd(e){var t=e.domain;return e.ticks=function(e){var n=t();return Jt(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return Wd(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var r,i,a=t(),o=0,s=a.length-1,l=a[o],u=a[s],c=10;for(u<l&&(i=l,l=u,u=i,i=o,o=s,s=i);c-- >0;){if((i=Xt(l,u,n))===r)return a[o]=l,a[s]=u,t(a);if(i>0)l=Math.floor(l/i)*i,u=Math.ceil(u/i)*i;else{if(!(i<0))break;l=Math.ceil(l*i)/i,u=Math.floor(u*i)/i}r=i}return e},e}function qd(e,t){var n,r=0,i=(e=e.slice()).length-1,a=e[r],o=e[i];return o<a&&(n=r,r=i,i=n,n=a,a=o,o=n),e[r]=t.floor(a),e[i]=t.ceil(o),e}function Yd(e){return Math.log(e)}function Kd(e){return Math.exp(e)}function Jd(e){return-Math.log(-e)}function Xd(e){return-Math.exp(-e)}function Zd(e){return isFinite(e)?+("1e"+e):e<0?0:e}function Qd(e){return(t,n)=>-e(-t,n)}function ef(e){const t=e(Yd,Kd),n=t.domain;let r,i,a=10;function o(){return r=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}(a),i=function(e){return 10===e?Zd:e===Math.E?Math.exp:t=>Math.pow(e,t)}(a),n()[0]<0?(r=Qd(r),i=Qd(i),e(Jd,Xd)):e(Yd,Kd),t}return t.base=function(e){return arguments.length?(a=+e,o()):a},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{const t=n();let o=t[0],s=t[t.length-1];const l=s<o;l&&([o,s]=[s,o]);let u,c,d=r(o),f=r(s);const h=null==e?10:+e;let p=[];if(!(a%1)&&f-d<h){if(d=Math.floor(d),f=Math.ceil(f),o>0){for(;d<=f;++d)for(u=1;u<a;++u)if(c=d<0?u/i(-d):u*i(d),!(c<o)){if(c>s)break;p.push(c)}}else for(;d<=f;++d)for(u=a-1;u>=1;--u)if(c=d>0?u/i(-d):u*i(d),!(c<o)){if(c>s)break;p.push(c)}2*p.length<h&&(p=Jt(o,s,h))}else p=Jt(d,f,Math.min(f-d,h)).map(i);return l?p.reverse():p},t.tickFormat=(e,n)=>{if(null==e&&(e=10),null==n&&(n=10===a?"s":","),"function"!=typeof n&&(a%1||null!=(n=tn(n)).precision||(n.trim=!0),n=hn(n)),e===1/0)return n;const o=Math.max(1,a*e/t.ticks().length);return e=>{let t=e/i(Math.round(r(e)));return t*a<a-.5&&(t*=a),t<=o?n(e):""}},t.nice=()=>n(qd(n(),{floor:e=>i(Math.floor(r(e))),ceil:e=>i(Math.ceil(r(e)))})),t}function tf(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function nf(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function rf(e){return e<0?-e*e:e*e}function af(e){var t=e(Nd,Nd),n=1;return t.exponent=function(t){return arguments.length?1==(n=+t)?e(Nd,Nd):.5===n?e(nf,rf):e(tf(n),tf(1/n)):n},Gd(t)}function of(){var e=af(zd());return e.copy=function(){return Hd(e,of()).exponent(e.exponent())},Ud.apply(e,arguments),e}function sf(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function lf(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function uf(e){var t=1,n=e(sf(t),lf(t));return n.constant=function(n){return arguments.length?e(sf(t=+n),lf(t)):t},Gd(n)}function cf(e,t,n,r,i,a){const o=[[er,1,xn],[er,5,5e3],[er,15,15e3],[er,30,3e4],[a,1,En],[a,5,3e5],[a,15,9e5],[a,30,18e5],[i,1,Sn],[i,3,108e5],[i,6,216e5],[i,12,432e5],[r,1,An],[r,2,1728e5],[n,1,$n],[t,1,2592e6],[t,3,7776e6],[e,1,Tn]];function s(t,n,r){const i=Math.abs(n-t)/r,a=ir((([,,e])=>e)).right(o,i);if(a===o.length)return e.every(Zt(t/Tn,n/Tn,r));if(0===a)return tr.every(Math.max(Zt(t,n,r),1));const[s,l]=o[i/o[a-1][2]<o[a][2]/i?a-1:a];return s.every(l)}return[function(e,t,n){const r=t<e;r&&([e,t]=[t,e]);const i=n&&"function"==typeof n.range?n:s(e,t,n),a=i?i.range(e,+t+1):[];return r?a.reverse():a},s]}const[df,ff]=cf(qn,Kn,jn,Mn,Xn,Qn),[hf,pf]=cf(Gn,Yn,In,On,Jn,Zn);function mf(e){return new Date(e)}function gf(e){return e instanceof Date?+e:+new Date(+e)}function yf(e,t,n,r,i,a,o,s,l,u){var c=Pd(),d=c.invert,f=c.domain,h=u(".%L"),p=u(":%S"),m=u("%I:%M"),g=u("%I %p"),y=u("%a %d"),_=u("%b %d"),v=u("%B"),b=u("%Y");function x(e){return(l(e)<e?h:s(e)<e?p:o(e)<e?m:a(e)<e?g:r(e)<e?i(e)<e?y:_:n(e)<e?v:b)(e)}return c.invert=function(e){return new Date(d(e))},c.domain=function(e){return arguments.length?f(Array.from(e,gf)):f().map(mf)},c.ticks=function(t){var n=f();return e(n[0],n[n.length-1],null==t?10:t)},c.tickFormat=function(e,t){return null==t?x:u(t)},c.nice=function(e){var n=f();return e&&"function"==typeof e.range||(e=t(n[0],n[n.length-1],null==e?10:e)),e?f(qd(n,e)):c},c.copy=function(){return Hd(c,yf(e,t,n,r,i,a,o,s,l,u))},c}function _f(){var e,t,n,r,i,a=0,o=1,s=Nd,l=!1;function u(t){return null==t||isNaN(t=+t)?i:s(0===n?.5:(t=(r(t)-e)*n,l?Math.max(0,Math.min(1,t)):t))}function c(e){return function(t){var n,r;return arguments.length?([n,r]=t,s=e(n,r),u):[s(0),s(1)]}}return u.domain=function(i){return arguments.length?([a,o]=i,e=r(a=+a),t=r(o=+o),n=e===t?0:1/(t-e),u):[a,o]},u.clamp=function(e){return arguments.length?(l=!!e,u):l},u.interpolator=function(e){return arguments.length?(s=e,u):s},u.range=c(Cd),u.rangeRound=c(Rd),u.unknown=function(e){return arguments.length?(i=e,u):i},function(i){return r=i,e=i(a),t=i(o),n=e===t?0:1/(t-e),u}}function vf(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function bf(){var e=Gd(_f()(Nd));return e.copy=function(){return vf(e,bf())},Vd.apply(e,arguments)}function xf(){var e=af(_f());return e.copy=function(){return vf(e,xf()).exponent(e.exponent())},Vd.apply(e,arguments)}function Ef(e,t){void 0===t&&(t=e,e=Cd);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return a[t](e-t)}}function Sf(){var e,t,n,r,i,a,o,s=0,l=.5,u=1,c=1,d=Nd,f=!1;function h(e){return isNaN(e=+e)?o:(e=.5+((e=+a(e))-t)*(c*e<c*t?r:i),d(f?Math.max(0,Math.min(1,e)):e))}function p(e){return function(t){var n,r,i;return arguments.length?([n,r,i]=t,d=Ef(e,[n,r,i]),h):[d(0),d(.5),d(1)]}}return h.domain=function(o){return arguments.length?([s,l,u]=o,e=a(s=+s),t=a(l=+l),n=a(u=+u),r=e===t?0:.5/(t-e),i=t===n?0:.5/(n-t),c=t<e?-1:1,h):[s,l,u]},h.clamp=function(e){return arguments.length?(f=!!e,h):f},h.interpolator=function(e){return arguments.length?(d=e,h):d},h.range=p(Cd),h.rangeRound=p(Rd),h.unknown=function(e){return arguments.length?(o=e,h):o},function(o){return a=o,e=o(s),t=o(l),n=o(u),r=e===t?0:.5/(t-e),i=t===n?0:.5/(n-t),c=t<e?-1:1,h}}function Af(){var e=af(Sf());return e.copy=function(){return vf(e,Af()).exponent(e.exponent())},Vd.apply(e,arguments)}class $f extends Map{constructor(e,t=wf){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const[t,n]of e)this.set(t,n)}get(e){return super.get(Of(this,e))}has(e){return super.has(Of(this,e))}set(e,t){return super.set(Df(this,e),t)}delete(e){return super.delete(Mf(this,e))}}class Tf extends Set{constructor(e,t=wf){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const t of e)this.add(t)}has(e){return super.has(Of(this,e))}add(e){return super.add(Df(this,e))}delete(e){return super.delete(Mf(this,e))}}function Of({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Df({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Mf({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function wf(e){return null!==e&&"object"==typeof e?e.valueOf():e}const If=Symbol("implicit");function Cf(){var e=new $f,t=[],n=[],r=If;function i(i){let a=e.get(i);if(void 0===a){if(r!==If)return r;e.set(i,a=t.push(i)-1)}return n[a%n.length]}return i.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new $f;for(const r of n)e.has(r)||e.set(r,t.push(r)-1);return i},i.range=function(e){return arguments.length?(n=Array.from(e),i):n.slice()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return Cf(t,n).unknown(r)},Ud.apply(i,arguments),i}function Rf(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function kf(e,t){var n=gd(+e,+t);return function(e){var t=n(e);return t-360*Math.floor(t/360)}}var Lf,Nf=180/Math.PI,Ff={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Bf(e,t,n,r,i,a){var o,s,l;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),e*r<t*n&&(e=-e,t=-t,l=-l,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*Nf,skewX:Math.atan(l)*Nf,scaleX:o,scaleY:s}}function jf(e,t,n,r){function i(e){return e.length?e.pop()+" ":""}return function(a,o){var s=[],l=[];return a=e(a),o=e(o),function(e,r,i,a,o,s){if(e!==i||r!==a){var l=o.push("translate(",null,t,null,n);s.push({i:l-4,x:Od(e,i)},{i:l-2,x:Od(r,a)})}else(i||a)&&o.push("translate("+i+t+a+n)}(a.translateX,a.translateY,o.translateX,o.translateY,s,l),function(e,t,n,a){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+"rotate(",null,r)-2,x:Od(e,t)})):t&&n.push(i(n)+"rotate("+t+r)}(a.rotate,o.rotate,s,l),function(e,t,n,a){e!==t?a.push({i:n.push(i(n)+"skewX(",null,r)-2,x:Od(e,t)}):t&&n.push(i(n)+"skewX("+t+r)}(a.skewX,o.skewX,s,l),function(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:Od(e,n)},{i:s-2,x:Od(t,r)})}else 1===n&&1===r||a.push(i(a)+"scale("+n+","+r+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,s,l),a=o=null,function(e){for(var t,n=-1,r=l.length;++n<r;)s[(t=l[n]).i]=t.x(e);return s.join("")}}}var Hf=jf((function(e){const t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Ff:Bf(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),zf=jf((function(e){return null==e?Ff:(Lf||(Lf=document.createElementNS("http://www.w3.org/2000/svg","g")),Lf.setAttribute("transform",e),(e=Lf.transform.baseVal.consolidate())?Bf((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):Ff)}),", ",")",")");function Pf(e){return((e=Math.exp(e))+1/e)/2}const Uf=function e(t,n,r){function i(e,i){var a,o,s=e[0],l=e[1],u=e[2],c=i[0],d=i[1],f=i[2],h=c-s,p=d-l,m=h*h+p*p;if(m<1e-12)o=Math.log(f/u)/t,a=function(e){return[s+e*h,l+e*p,u*Math.exp(t*e*o)]};else{var g=Math.sqrt(m),y=(f*f-u*u+r*m)/(2*u*n*g),_=(f*f-u*u-r*m)/(2*f*n*g),v=Math.log(Math.sqrt(y*y+1)-y),b=Math.log(Math.sqrt(_*_+1)-_);o=(b-v)/t,a=function(e){var r=e*o,i=Pf(v),a=u/(n*g)*(i*function(e){return((e=Math.exp(2*e))-1)/(e+1)}(t*r+v)-function(e){return((e=Math.exp(e))-1/e)/2}(v));return[s+a*h,l+a*p,u*i/Pf(t*r+v)]}}return a.duration=1e3*o*t/Math.SQRT2,a}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i}(Math.SQRT2,2,4);function Vf(e){return function(t,n){var r=e((t=od(t)).h,(n=od(n)).h),i=yd(t.s,n.s),a=yd(t.l,n.l),o=yd(t.opacity,n.opacity);return function(e){return t.h=r(e),t.s=i(e),t.l=a(e),t.opacity=o(e),t+""}}}const Wf=Vf(gd);var Gf=Vf(yd);const qf=Math.PI/180,Yf=180/Math.PI,Kf=.96422,Jf=1,Xf=.82521,Zf=4/29,Qf=6/29,eh=3*Qf*Qf,th=.008856451679035631;function nh(e){if(e instanceof ih)return new ih(e.l,e.a,e.b,e.opacity);if(e instanceof ch)return dh(e);e instanceof Zc||(e=Jc(e));var t,n,r=lh(e.r),i=lh(e.g),a=lh(e.b),o=ah((.2225045*r+.7168786*i+.0606169*a)/Jf);return r===i&&i===a?t=n=o:(t=ah((.4360747*r+.3850649*i+.1430804*a)/Kf),n=ah((.0139322*r+.0971045*i+.7141733*a)/Xf)),new ih(116*o-16,500*(t-o),200*(o-n),e.opacity)}function rh(e,t,n,r){return 1===arguments.length?nh(e):new ih(e,t,n,null==r?1:r)}function ih(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function ah(e){return e>th?Math.pow(e,1/3):e/eh+Zf}function oh(e){return e>Qf?e*e*e:eh*(e-Zf)}function sh(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function lh(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function uh(e,t,n,r){return 1===arguments.length?function(e){if(e instanceof ch)return new ch(e.h,e.c,e.l,e.opacity);if(e instanceof ih||(e=nh(e)),0===e.a&&0===e.b)return new ch(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*Yf;return new ch(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}(e):new ch(e,t,n,null==r?1:r)}function ch(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function dh(e){if(isNaN(e.h))return new ih(e.l,0,0,e.opacity);var t=e.h*qf;return new ih(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}function fh(e,t){var n=yd((e=rh(e)).l,(t=rh(t)).l),r=yd(e.a,t.a),i=yd(e.b,t.b),a=yd(e.opacity,t.opacity);return function(t){return e.l=n(t),e.a=r(t),e.b=i(t),e.opacity=a(t),e+""}}function hh(e){return function(t,n){var r=e((t=uh(t)).h,(n=uh(n)).h),i=yd(t.c,n.c),a=yd(t.l,n.l),o=yd(t.opacity,n.opacity);return function(e){return t.h=r(e),t.c=i(e),t.l=a(e),t.opacity=o(e),t+""}}}Mc(ih,rh,wc(Ic,{brighter(e){return new ih(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new ih(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new Zc(sh(3.1338561*(t=Kf*oh(t))-1.6168667*(e=Jf*oh(e))-.4906146*(n=Xf*oh(n))),sh(-.9787684*t+1.9161415*e+.033454*n),sh(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),Mc(ch,uh,wc(Ic,{brighter(e){return new ch(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new ch(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return dh(this).rgb()}}));const ph=hh(gd);var mh=hh(yd),gh=-.14861,yh=1.78277,_h=-.29227,vh=-.90649,bh=1.97294,xh=bh*vh,Eh=bh*yh,Sh=yh*_h-vh*gh;function Ah(e,t,n,r){return 1===arguments.length?function(e){if(e instanceof $h)return new $h(e.h,e.s,e.l,e.opacity);e instanceof Zc||(e=Jc(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(Sh*r+xh*t-Eh*n)/(Sh+xh-Eh),a=r-i,o=(bh*(n-i)-_h*a)/vh,s=Math.sqrt(o*o+a*a)/(bh*i*(1-i)),l=s?Math.atan2(o,a)*Yf-120:NaN;return new $h(l<0?l+360:l,s,i,e.opacity)}(e):new $h(e,t,n,null==r?1:r)}function $h(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function Th(e){return function t(n){function r(t,r){var i=e((t=Ah(t)).h,(r=Ah(r)).h),a=yd(t.s,r.s),o=yd(t.l,r.l),s=yd(t.opacity,r.opacity);return function(e){return t.h=i(e),t.s=a(e),t.l=o(Math.pow(e,n)),t.opacity=s(e),t+""}}return n=+n,r.gamma=t,r}(1)}Mc($h,Ah,wc(Ic,{brighter(e){return e=null==e?Rc:Math.pow(Rc,e),new $h(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Cc:Math.pow(Cc,e),new $h(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*qf,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Zc(255*(t+n*(gh*r+yh*i)),255*(t+n*(_h*r+vh*i)),255*(t+n*(bh*r)),this.opacity)}}));const Oh=Th(gd);var Dh=Th(yd);function Mh(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}function wh(e){for(var t=e.length/6|0,n=new Array(t),r=0;r<t;)n[r]="#"+e.slice(6*r,6*++r);return n}const Ih=wh("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Ch=wh("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Rh=wh("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),kh=wh("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),Lh=wh("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),Nh=wh("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),Fh=wh("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),Bh=wh("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),jh=wh("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),Hh=wh("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function zh(e,t,n){const r=e-t+2*n;return e?r>0?r:1:0}const Ph="linear",Uh="log",Vh="pow",Wh="sqrt",Gh="symlog",qh="time",Yh="utc",Kh="sequential",Jh="diverging",Xh="quantile",Zh="quantize",Qh="threshold",ep="ordinal",tp="point",np="band",rp="bin-ordinal",ip="continuous",ap="discrete",op="discretizing",sp="interpolating",lp="temporal";function up(){const e=Cf().unknown(void 0),t=e.domain,n=e.range;let r,i,a=[0,1],o=!1,s=0,l=0,u=.5;function c(){const e=t().length,c=a[1]<a[0],d=a[1-c],f=zh(e,s,l);let h=a[c-0];r=(d-h)/(f||1),o&&(r=Math.floor(r)),h+=(d-h-r*(e-s))*u,i=r*(1-s),o&&(h=Math.round(h),i=Math.round(i));const p=Fs(e).map((e=>h+r*e));return n(c?p.reverse():p)}return delete e.unknown,e.domain=function(e){return arguments.length?(t(e),c()):t()},e.range=function(e){return arguments.length?(a=[+e[0],+e[1]],c()):a.slice()},e.rangeRound=function(e){return a=[+e[0],+e[1]],o=!0,c()},e.bandwidth=function(){return i},e.step=function(){return r},e.round=function(e){return arguments.length?(o=!!e,c()):o},e.padding=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),s=l,c()):s},e.paddingInner=function(e){return arguments.length?(s=Math.max(0,Math.min(1,e)),c()):s},e.paddingOuter=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),c()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),c()):u},e.invertRange=function(e){if(null==e[0]||null==e[1])return;const r=a[1]<a[0],o=r?n().reverse():n(),s=o.length-1;let l,u,c,d=+e[0],f=+e[1];return d!=d||f!=f||(f<d&&(c=d,d=f,f=c),f<o[0]||d>a[1-r])?void 0:(l=Math.max(0,Tc(o,d)-1),u=d===f?l:Tc(o,f)-1,d-o[l]>i+1e-10&&++l,r&&(c=l,l=s-u,u=s-c),l>u?void 0:t().slice(l,u+1))},e.invert=function(t){const n=e.invertRange([t,t]);return n?n[0]:n},e.copy=function(){return up().domain(t()).range(a).round(o).paddingInner(s).paddingOuter(l).align(u)},c()}function cp(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return cp(t())},e}var dp=Array.prototype.map;const fp=Array.prototype.slice,hp=new Map,pp=Symbol("vega_scale");function mp(e){return e[pp]=!0,e}function gp(e){return e&&!0===e[pp]}function yp(e,t,n){return arguments.length>1?(hp.set(e,function(e,t,n){const r=function(){const n=t();return n.invertRange||(n.invertRange=n.invert?function(e){return function(t){let n,r=t[0],i=t[1];return i<r&&(n=r,r=i,i=n),[e.invert(r),e.invert(i)]}}(n):n.invertExtent?function(e){return function(t){const n=e.range();let r,i,a,o,s=t[0],l=t[1],u=-1;for(l<s&&(i=s,s=l,l=i),a=0,o=n.length;a<o;++a)n[a]>=s&&n[a]<=l&&(u<0&&(u=a),r=a);if(!(u<0))return s=e.invertExtent(n[u]),l=e.invertExtent(n[r]),[void 0===s[0]?s[1]:s[0],void 0===l[1]?l[0]:l[1]]}}(n):void 0),n.type=e,mp(n)};return r.metadata=Dt(Qe(n)),r}(e,t,n)),this):_p(e)?hp.get(e):void 0}function _p(e){return hp.has(e)}function vp(e,t){const n=hp.get(e);return n&&n.metadata[t]}function bp(e){return vp(e,ip)}function xp(e){return vp(e,ap)}function Ep(e){return vp(e,op)}function Sp(e){return vp(e,Uh)}function Ap(e){return vp(e,sp)}function $p(e){return vp(e,Xh)}yp("identity",(function e(t){var n;function r(e){return null==e||isNaN(e=+e)?n:e}return r.invert=r,r.domain=r.range=function(e){return arguments.length?(t=Array.from(e,kd),r):t.slice()},r.unknown=function(e){return arguments.length?(n=e,r):n},r.copy=function(){return e(t).unknown(n)},t=arguments.length?Array.from(t,kd):[0,1],Gd(r)})),yp(Ph,(function e(){var t=Pd();return t.copy=function(){return Hd(t,e())},Ud.apply(t,arguments),Gd(t)}),ip),yp(Uh,(function e(){const t=ef(zd()).domain([1,10]);return t.copy=()=>Hd(t,e()).base(t.base()),Ud.apply(t,arguments),t}),[ip,Uh]),yp(Vh,of,ip),yp(Wh,(function(){return of.apply(null,arguments).exponent(.5)}),ip),yp(Gh,(function e(){var t=uf(zd());return t.copy=function(){return Hd(t,e()).constant(t.constant())},Ud.apply(t,arguments)}),ip),yp(qh,(function(){return Ud.apply(yf(hf,pf,Gn,Yn,In,On,Jn,Zn,er,ai).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}),[ip,lp]),yp(Yh,(function(){return Ud.apply(yf(df,ff,qn,Kn,jn,Dn,Xn,Qn,er,si).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}),[ip,lp]),yp(Kh,bf,[ip,sp]),yp(`${Kh}-${Ph}`,bf,[ip,sp]),yp(`${Kh}-${Uh}`,(function e(){var t=ef(_f()).domain([1,10]);return t.copy=function(){return vf(t,e()).base(t.base())},Vd.apply(t,arguments)}),[ip,sp,Uh]),yp(`${Kh}-${Vh}`,xf,[ip,sp]),yp(`${Kh}-${Wh}`,(function(){return xf.apply(null,arguments).exponent(.5)}),[ip,sp]),yp(`${Kh}-${Gh}`,(function e(){var t=uf(_f());return t.copy=function(){return vf(t,e()).constant(t.constant())},Vd.apply(t,arguments)}),[ip,sp]),yp(`${Jh}-${Ph}`,(function e(){var t=Gd(Sf()(Nd));return t.copy=function(){return vf(t,e())},Vd.apply(t,arguments)}),[ip,sp]),yp(`${Jh}-${Uh}`,(function e(){var t=ef(Sf()).domain([.1,1,10]);return t.copy=function(){return vf(t,e()).base(t.base())},Vd.apply(t,arguments)}),[ip,sp,Uh]),yp(`${Jh}-${Vh}`,Af,[ip,sp]),yp(`${Jh}-${Wh}`,(function(){return Af.apply(null,arguments).exponent(.5)}),[ip,sp]),yp(`${Jh}-${Gh}`,(function e(){var t=uf(Sf());return t.copy=function(){return vf(t,e()).constant(t.constant())},Vd.apply(t,arguments)}),[ip,sp]),yp(Xh,(function e(){var t,n=[],r=[],i=[];function a(){var e=0,t=Math.max(1,r.length);for(i=new Array(t-1);++e<t;)i[e-1]=Qo(n,e/t);return o}function o(e){return null==e||isNaN(e=+e)?t:r[Dc(i,e)]}return o.invertExtent=function(e){var t=r.indexOf(e);return t<0?[NaN,NaN]:[t>0?i[t-1]:n[0],t<i.length?i[t]:n[n.length-1]]},o.domain=function(e){if(!arguments.length)return n.slice();n=[];for(let t of e)null==t||isNaN(t=+t)||n.push(t);return n.sort(nr),a()},o.range=function(e){return arguments.length?(r=Array.from(e),a()):r.slice()},o.unknown=function(e){return arguments.length?(t=e,o):t},o.quantiles=function(){return i.slice()},o.copy=function(){return e().domain(n).range(r).unknown(t)},Ud.apply(o,arguments)}),[op,Xh]),yp(Zh,(function e(){var t,n=0,r=1,i=1,a=[.5],o=[0,1];function s(e){return null!=e&&e<=e?o[Dc(a,e,0,i)]:t}function l(){var e=-1;for(a=new Array(i);++e<i;)a[e]=((e+1)*r-(e-i)*n)/(i+1);return s}return s.domain=function(e){return arguments.length?([n,r]=e,n=+n,r=+r,l()):[n,r]},s.range=function(e){return arguments.length?(i=(o=Array.from(e)).length-1,l()):o.slice()},s.invertExtent=function(e){var t=o.indexOf(e);return t<0?[NaN,NaN]:t<1?[n,a[0]]:t>=i?[a[i-1],r]:[a[t-1],a[t]]},s.unknown=function(e){return arguments.length?(t=e,s):s},s.thresholds=function(){return a.slice()},s.copy=function(){return e().domain([n,r]).range(o).unknown(t)},Ud.apply(Gd(s),arguments)}),op),yp(Qh,(function e(){var t,n=[.5],r=[0,1],i=1;function a(e){return null!=e&&e<=e?r[Dc(n,e,0,i)]:t}return a.domain=function(e){return arguments.length?(n=Array.from(e),i=Math.min(n.length,r.length-1),a):n.slice()},a.range=function(e){return arguments.length?(r=Array.from(e),i=Math.min(n.length,r.length-1),a):r.slice()},a.invertExtent=function(e){var t=r.indexOf(e);return[n[t-1],n[t]]},a.unknown=function(e){return arguments.length?(t=e,a):t},a.copy=function(){return e().domain(n).range(r).unknown(t)},Ud.apply(a,arguments)}),op),yp(rp,(function e(){let t=[],n=[];function r(e){return null==e||e!=e?void 0:n[(Dc(t,e)-1)%n.length]}return r.domain=function(e){return arguments.length?(t=function(e){return dp.call(e,ze)}(e),r):t.slice()},r.range=function(e){return arguments.length?(n=fp.call(e),r):n.slice()},r.tickFormat=function(e,n){return Wd(t[0],He(t),null==e?10:e,n)},r.copy=function(){return e().domain(r.domain()).range(r.range())},r}),[ap,op]),yp(ep,Cf,ap),yp(np,up,ap),yp(tp,(function(){return cp(up().paddingInner(1))}),ap);const Tp=["clamp","base","constant","exponent"];function Op(e,t,n){return Ef(Mp(t||"rgb",n),e)}function Dp(e,t,n){const r=n-t;let i,a,o;return r&&Number.isFinite(r)?(i=(a=e.type).indexOf("-"),a=i<0?a:a.slice(i+1),o=yp(a)().domain([t,n]).range([0,1]),Tp.forEach((t=>e[t]?o[t](e[t]()):0)),o):st(.5)}function Mp(e,n){const r=t[function(e){return"interpolate"+e.toLowerCase().split("-").map((e=>e[0].toUpperCase()+e.slice(1))).join("")}(e)];return null!=n&&r&&r.gamma?r.gamma(n):r}function wp(e){if(Le(e))return e;const t=e.length/6|0,n=new Array(t);for(let r=0;r<t;)n[r]="#"+e.slice(6*r,6*++r);return n}function Ip(e,t){for(const n in e)Rp(n,t(e[n]))}const Cp={};function Rp(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Cp[e]=t,this):Cp[e]}Ip({accent:Ih,category10:Ch,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:Rh,observable10:kh,paired:Lh,pastel1:Nh,pastel2:Fh,set1:Bh,set2:jh,set3:Hh,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"},wp),Ip({blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},(e=>Op(wp(e))));const kp="symbol",Lp="discrete",Np=e=>Le(e)?e.map((e=>String(e))):String(e),Fp=(e,t)=>e[1]-t[1],Bp=(e,t)=>t[1]-e[1];function jp(e,t,n){let r;return yt(t)&&(e.bins&&(t=Math.max(t,e.bins.length)),null!=n&&(t=Math.min(t,Math.floor(Et(e.domain())/n||1)+1))),Ne(t)&&(r=t.step,t=t.interval),vt(t)&&(t=e.type===qh?zr(t):e.type==Yh?Pr(t):_e("Only time and utc scales accept interval strings."),r&&(t=t.every(r))),t}function Hp(e,t,n){let r=e.range(),i=r[0],a=He(r),o=Fp;if(i>a&&(r=a,a=i,i=r,o=Bp),i=Math.floor(i),a=Math.ceil(a),t=t.map((t=>[t,e(t)])).filter((e=>i<=e[1]&&e[1]<=a)).sort(o).map((e=>e[0])),n>0&&t.length>1){const e=[t[0],He(t)];for(;t.length>n&&t.length>=3;)t=t.filter(((e,t)=>!(t%2)));t.length<3&&(t=e)}return t}function zp(e,t){return e.bins?Hp(e,e.bins,t):e.ticks?e.ticks(t):e.domain()}function Pp(e,t,n,r,i,a){const o=t.type;let s=Np;if(o===qh||i===qh)s=e.timeFormat(r);else if(o===Yh||i===Yh)s=e.utcFormat(r);else if(Sp(o)){const i=e.formatFloat(r);if(a||t.bins)s=i;else{const e=Up(t,n,!1);s=t=>e(t)?i(t):""}}else if(t.tickFormat){const i=t.domain();s=e.formatSpan(i[0],i[i.length-1],n,r)}else r&&(s=e.format(r));return s}function Up(e,t,n){const r=zp(e,t),i=e.base(),a=Math.log(i),o=Math.max(1,i*t/r.length),s=e=>{let t=e/Math.pow(i,Math.round(Math.log(e)/a));return t*i<i-.5&&(t*=i),t<=o};return n?r.filter(s):s}const Vp={[Xh]:"quantiles",[Zh]:"thresholds",[Qh]:"domain"},Wp={[Xh]:"quantiles",[Zh]:"domain"};function Gp(e,t){return e.bins?function(e){const t=e.slice(0,-1);return t.max=He(e),t}(e.bins):e.type===Uh?Up(e,t,!0):Vp[e.type]?function(e){const t=[-1/0].concat(e);return t.max=1/0,t}(e[Vp[e.type]]()):zp(e,t)}const qp=e=>Vp[e.type]||e.bins;function Yp(e,t,n,r,i,a,o){const s=Wp[t.type]&&a!==qh&&a!==Yh?function(e,t,n){const r=t[Wp[t.type]](),i=r.length;let a,o=i>1?r[1]-r[0]:r[0];for(a=1;a<i;++a)o=Math.min(o,r[a]-r[a-1]);return e.formatSpan(0,o,30,n)}(e,t,i):Pp(e,t,n,i,a,o);return r===kp&&qp(t)?Kp(s):r===Lp?Xp(s):Zp(s)}const Kp=e=>(t,n,r)=>{const i=Jp(r[n+1],Jp(r.max,1/0)),a=Qp(t,e),o=Qp(i,e);return a&&o?a+" – "+o:o?"< "+o:"≥ "+a},Jp=(e,t)=>null!=e?e:t,Xp=e=>(t,n)=>n?e(t):null,Zp=e=>t=>e(t),Qp=(e,t)=>Number.isFinite(e)?t(e):null;function em(e,t,n){n=n||{};const r=Math.max(3,n.maxlen||7),i=function(e,t,n,r){const i=r||t.type;return vt(n)&&function(e){return vp(e,lp)}(i)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),n||i!==qh?n||i!==Yh?Yp(e,t,5,null,n,r,!0):e.utcFormat("%A, %d %B %Y, %X UTC"):e.timeFormat("%A, %d %B %Y, %X")}(e,t,n.format,n.formatType);if(Ep(t.type)){const e=Gp(t).slice(1).map(i),n=e.length;return`${n} boundar${1===n?"y":"ies"}: ${e.join(", ")}`}if(xp(t.type)){const e=t.domain(),n=e.length;return`${n} value${1===n?"":"s"}: ${n>r?e.slice(0,r-2).map(i).join(", ")+", ending with "+e.slice(-1).map(i):e.map(i).join(", ")}`}{const e=t.domain();return`values from ${i(e[0])} to ${i(He(e))}`}}let tm=0;const nm="p_";function rm(e){return e&&e.gradient}function im(e,t,n){const r=e.gradient;let i=e.id,a="radial"===r?nm:"";return i||(i=e.id="gradient_"+tm++,"radial"===r?(e.x1=am(e.x1,.5),e.y1=am(e.y1,.5),e.r1=am(e.r1,0),e.x2=am(e.x2,.5),e.y2=am(e.y2,.5),e.r2=am(e.r2,.5),a=nm):(e.x1=am(e.x1,0),e.y1=am(e.y1,0),e.x2=am(e.x2,1),e.y2=am(e.y2,0))),t[i]=e,"url("+(n||"")+"#"+a+i+")"}function am(e,t){return null!=e?e:t}const om={basis:{curve:function(e){return new du(e)}},"basis-closed":{curve:function(e){return new hu(e)}},"basis-open":{curve:function(e){return new pu(e)}},bundle:{curve:gu,tension:"beta",value:.85},cardinal:{curve:vu,tension:"tension",value:0},"cardinal-open":{curve:xu,tension:"tension",value:0},"cardinal-closed":{curve:Su,tension:"tension",value:0},"catmull-rom":{curve:Bu,tension:"alpha",value:.5},"catmull-rom-closed":{curve:Hu,tension:"alpha",value:.5},"catmull-rom-open":{curve:Pu,tension:"alpha",value:.5},linear:{curve:Vu},"linear-closed":{curve:function(e){return new Wu(e)}},monotone:{horizontal:function(e){return new Xu(e)},vertical:function(e){return new Ju(e)}},natural:{curve:function(e){return new Qu(e)}},step:{curve:function(e){return new tc(e,.5)}},"step-after":{curve:function(e){return new tc(e,1)}},"step-before":{curve:function(e){return new tc(e,0)}}};function sm(e,t,n){var r=dt(om,e)&&om[e],i=null;return r&&(i=r.curve||r[t||"vertical"],r.tension&&null!=n&&(i=i[r.tension](n))),i}const lm={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},um=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,cm=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,dm=/^((\s+,?\s*)|(,\s*))/,fm=/^[01]/;function hm(e){const t=[];return(e.match(um)||[]).forEach((e=>{let n=e[0];const r=n.toLowerCase(),i=lm[r],a=function(e,t,n){const r=[];for(let i=0;t&&i<n.length;)for(let a=0;a<t;++a){const t="a"!==e||3!==a&&4!==a?cm:fm,o=n.slice(i).match(t);if(null===o)throw Error("Invalid SVG path, incorrect parameter type");i+=o[0].length,r.push(+o[0]);const s=n.slice(i).match(dm);null!==s&&(i+=s[0].length)}return r}(r,i,e.slice(1).trim()),o=a.length;if(o<i||o&&o%i!=0)throw Error("Invalid SVG path, incorrect parameter count");if(t.push([n,...a.slice(0,i)]),o!==i){"m"===r&&(n="M"===n?"L":"l");for(let e=i;e<o;e+=i)t.push([n,...a.slice(e,e+i)])}})),t}const pm=Math.PI/180,mm=Math.PI/2,gm=2*Math.PI,ym=Math.sqrt(3)/2;var _m={},vm={},bm=[].join;function xm(e){const t=bm.call(e);if(vm[t])return vm[t];var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],u=e[7];const c=u*o,d=-l*s,f=l*o,h=u*s,p=Math.cos(i),m=Math.sin(i),g=Math.cos(a),y=Math.sin(a),_=.5*(a-i),v=Math.sin(.5*_),b=8/3*v*v/Math.sin(_),x=n+p-b*m,E=r+m+b*p,S=n+g,A=r+y,$=S+b*y,T=A-b*g;return vm[t]=[c*x+d*E,f*x+h*E,c*$+d*T,f*$+h*T,c*S+d*A,f*S+h*A]}const Em=["l",0,0,0,0,0,0,0];function Sm(e,t,n){const r=Em[0]=e[0];if("a"===r||"A"===r)Em[1]=t*e[1],Em[2]=n*e[2],Em[3]=e[3],Em[4]=e[4],Em[5]=e[5],Em[6]=t*e[6],Em[7]=n*e[7];else if("h"===r||"H"===r)Em[1]=t*e[1];else if("v"===r||"V"===r)Em[1]=n*e[1];else for(var i=1,a=e.length;i<a;++i)Em[i]=(i%2==1?t:n)*e[i];return Em}function Am(e,t,n,r,i,a){var o,s,l,u,c,d=null,f=0,h=0,p=0,m=0,g=0,y=0;null==n&&(n=0),null==r&&(r=0),null==i&&(i=1),null==a&&(a=i),e.beginPath&&e.beginPath();for(var _=0,v=t.length;_<v;++_){switch(o=t[_],1===i&&1===a||(o=Sm(o,i,a)),o[0]){case"l":f+=o[1],h+=o[2],e.lineTo(f+n,h+r);break;case"L":f=o[1],h=o[2],e.lineTo(f+n,h+r);break;case"h":f+=o[1],e.lineTo(f+n,h+r);break;case"H":f=o[1],e.lineTo(f+n,h+r);break;case"v":h+=o[1],e.lineTo(f+n,h+r);break;case"V":h=o[1],e.lineTo(f+n,h+r);break;case"m":g=f+=o[1],y=h+=o[2],e.moveTo(f+n,h+r);break;case"M":g=f=o[1],y=h=o[2],e.moveTo(f+n,h+r);break;case"c":s=f+o[5],l=h+o[6],p=f+o[3],m=h+o[4],e.bezierCurveTo(f+o[1]+n,h+o[2]+r,p+n,m+r,s+n,l+r),f=s,h=l;break;case"C":f=o[5],h=o[6],p=o[3],m=o[4],e.bezierCurveTo(o[1]+n,o[2]+r,p+n,m+r,f+n,h+r);break;case"s":s=f+o[3],l=h+o[4],p=2*f-p,m=2*h-m,e.bezierCurveTo(p+n,m+r,f+o[1]+n,h+o[2]+r,s+n,l+r),p=f+o[1],m=h+o[2],f=s,h=l;break;case"S":s=o[3],l=o[4],p=2*f-p,m=2*h-m,e.bezierCurveTo(p+n,m+r,o[1]+n,o[2]+r,s+n,l+r),f=s,h=l,p=o[1],m=o[2];break;case"q":s=f+o[3],l=h+o[4],p=f+o[1],m=h+o[2],e.quadraticCurveTo(p+n,m+r,s+n,l+r),f=s,h=l;break;case"Q":s=o[3],l=o[4],e.quadraticCurveTo(o[1]+n,o[2]+r,s+n,l+r),f=s,h=l,p=o[1],m=o[2];break;case"t":s=f+o[1],l=h+o[2],null===d[0].match(/[QqTt]/)?(p=f,m=h):"t"===d[0]?(p=2*f-u,m=2*h-c):"q"===d[0]&&(p=2*f-p,m=2*h-m),u=p,c=m,e.quadraticCurveTo(p+n,m+r,s+n,l+r),h=l,p=(f=s)+o[1],m=h+o[2];break;case"T":s=o[1],l=o[2],p=2*f-p,m=2*h-m,e.quadraticCurveTo(p+n,m+r,s+n,l+r),f=s,h=l;break;case"a":$m(e,f+n,h+r,[o[1],o[2],o[3],o[4],o[5],o[6]+f+n,o[7]+h+r]),f+=o[6],h+=o[7];break;case"A":$m(e,f+n,h+r,[o[1],o[2],o[3],o[4],o[5],o[6]+n,o[7]+r]),f=o[6],h=o[7];break;case"z":case"Z":f=g,h=y,e.closePath()}d=o}}function $m(e,t,n,r){const i=function(e,t,n,r,i,a,o,s,l){const u=bm.call(arguments);if(_m[u])return _m[u];const c=o*pm,d=Math.sin(c),f=Math.cos(c),h=f*(s-e)*.5+d*(l-t)*.5,p=f*(l-t)*.5-d*(s-e)*.5;let m=h*h/((n=Math.abs(n))*n)+p*p/((r=Math.abs(r))*r);m>1&&(m=Math.sqrt(m),n*=m,r*=m);const g=f/n,y=d/n,_=-d/r,v=f/r,b=g*s+y*l,x=_*s+v*l,E=g*e+y*t,S=_*e+v*t;let A=1/((E-b)*(E-b)+(S-x)*(S-x))-.25;A<0&&(A=0);let $=Math.sqrt(A);a==i&&($=-$);const T=.5*(b+E)-$*(S-x),O=.5*(x+S)+$*(E-b),D=Math.atan2(x-O,b-T);let M=Math.atan2(S-O,E-T)-D;M<0&&1===a?M+=gm:M>0&&0===a&&(M-=gm);const w=Math.ceil(Math.abs(M/(mm+.001))),I=[];for(let e=0;e<w;++e){const t=D+e*M/w,i=D+(e+1)*M/w;I[e]=[T,O,t,i,n,r,d,f]}return _m[u]=I}(r[5],r[6],r[0],r[1],r[3],r[4],r[2],t,n);for(let t=0;t<i.length;++t){const n=xm(i[t]);e.bezierCurveTo(n[0],n[1],n[2],n[3],n[4],n[5])}}const Tm=.5773502691896257,Om={circle:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(n,0),e.arc(0,0,n,0,gm)}},cross:{draw:function(e,t){var n=Math.sqrt(t)/2,r=n/2.5;e.moveTo(-n,-r),e.lineTo(-n,r),e.lineTo(-r,r),e.lineTo(-r,n),e.lineTo(r,n),e.lineTo(r,r),e.lineTo(n,r),e.lineTo(n,-r),e.lineTo(r,-r),e.lineTo(r,-n),e.lineTo(-r,-n),e.lineTo(-r,-r),e.closePath()}},diamond:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(0,-n),e.lineTo(n,0),e.lineTo(0,n),e.closePath()}},square:{draw:function(e,t){var n=Math.sqrt(t),r=-n/2;e.rect(r,r,n,n)}},arrow:{draw:function(e,t){var n=Math.sqrt(t)/2,r=n/7,i=n/2.5,a=n/8;e.moveTo(-r,n),e.lineTo(r,n),e.lineTo(r,-a),e.lineTo(i,-a),e.lineTo(0,-n),e.lineTo(-i,-a),e.lineTo(-r,-a),e.closePath()}},wedge:{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n,i=r-n*Tm,a=n/4;e.moveTo(0,-r-i),e.lineTo(-a,r-i),e.lineTo(a,r-i),e.closePath()}},triangle:{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n,i=r-n*Tm;e.moveTo(0,-r-i),e.lineTo(-n,r-i),e.lineTo(n,r-i),e.closePath()}},"triangle-up":{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n;e.moveTo(0,-r),e.lineTo(-n,r),e.lineTo(n,r),e.closePath()}},"triangle-down":{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n;e.moveTo(0,r),e.lineTo(-n,-r),e.lineTo(n,-r),e.closePath()}},"triangle-right":{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n;e.moveTo(r,0),e.lineTo(-r,-n),e.lineTo(-r,n),e.closePath()}},"triangle-left":{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n;e.moveTo(-r,0),e.lineTo(r,-n),e.lineTo(r,n),e.closePath()}},stroke:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(n,0)}}};var Dm={};const Mm=.448084975506;function wm(e){return e.x}function Im(e){return e.y}function Cm(e){return e.width}function Rm(e){return e.height}function km(e){return"function"==typeof e?e:()=>+e}function Lm(e,t,n){return Math.max(t,Math.min(e,n))}function Nm(e,t){return null!=e?e:t}const Fm=e=>e.x||0,Bm=e=>e.y||0,jm=e=>!(!1===e.defined),Hm=function(){var e=dc,t=fc,n=nc(0),r=null,i=hc,a=pc,o=mc,s=null,l=cc(u);function u(){var u,c,d=+e.apply(this,arguments),f=+t.apply(this,arguments),h=i.apply(this,arguments)-Ru,p=a.apply(this,arguments)-Ru,m=Au(p-h),g=p>h;if(s||(s=u=l()),f<d&&(c=f,f=d,d=c),f>Iu)if(m>ku-Iu)s.moveTo(f*Tu(h),f*Mu(h)),s.arc(0,0,f,h,p,!g),d>Iu&&(s.moveTo(d*Tu(p),d*Mu(p)),s.arc(0,0,d,p,h,g));else{var y,_,v=h,b=p,x=h,E=p,S=m,A=m,$=o.apply(this,arguments)/2,T=$>Iu&&(r?+r.apply(this,arguments):wu(d*d+f*f)),O=Du(Au(f-d)/2,+n.apply(this,arguments)),D=O,M=O;if(T>Iu){var w=Lu(T/d*Mu($)),I=Lu(T/f*Mu($));(S-=2*w)>Iu?(x+=w*=g?1:-1,E-=w):(S=0,x=E=(h+p)/2),(A-=2*I)>Iu?(v+=I*=g?1:-1,b-=I):(A=0,v=b=(h+p)/2)}var C=f*Tu(v),R=f*Mu(v),k=d*Tu(E),L=d*Mu(E);if(O>Iu){var N,F=f*Tu(b),B=f*Mu(b),j=d*Tu(x),H=d*Mu(x);if(m<Cu)if(N=function(e,t,n,r,i,a,o,s){var l=n-e,u=r-t,c=o-i,d=s-a,f=d*l-c*u;if(!(f*f<Iu))return[e+(f=(c*(t-a)-d*(e-i))/f)*l,t+f*u]}(C,R,j,H,F,B,k,L)){var z=C-N[0],P=R-N[1],U=F-N[0],V=B-N[1],W=1/Mu(function(e){return e>1?0:e<-1?Cu:Math.acos(e)}((z*U+P*V)/(wu(z*z+P*P)*wu(U*U+V*V)))/2),G=wu(N[0]*N[0]+N[1]*N[1]);D=Du(O,(d-G)/(W-1)),M=Du(O,(f-G)/(W+1))}else D=M=0}A>Iu?M>Iu?(y=gc(j,H,C,R,f,M,g),_=gc(F,B,k,L,f,M,g),s.moveTo(y.cx+y.x01,y.cy+y.y01),M<O?s.arc(y.cx,y.cy,M,$u(y.y01,y.x01),$u(_.y01,_.x01),!g):(s.arc(y.cx,y.cy,M,$u(y.y01,y.x01),$u(y.y11,y.x11),!g),s.arc(0,0,f,$u(y.cy+y.y11,y.cx+y.x11),$u(_.cy+_.y11,_.cx+_.x11),!g),s.arc(_.cx,_.cy,M,$u(_.y11,_.x11),$u(_.y01,_.x01),!g))):(s.moveTo(C,R),s.arc(0,0,f,v,b,!g)):s.moveTo(C,R),d>Iu&&S>Iu?D>Iu?(y=gc(k,L,F,B,d,-D,g),_=gc(C,R,j,H,d,-D,g),s.lineTo(y.cx+y.x01,y.cy+y.y01),D<O?s.arc(y.cx,y.cy,D,$u(y.y01,y.x01),$u(_.y01,_.x01),!g):(s.arc(y.cx,y.cy,D,$u(y.y01,y.x01),$u(y.y11,y.x11),!g),s.arc(0,0,d,$u(y.cy+y.y11,y.cx+y.x11),$u(_.cy+_.y11,_.cx+_.x11),g),s.arc(_.cx,_.cy,D,$u(_.y11,_.x11),$u(_.y01,_.x01),!g))):s.arc(0,0,d,E,x,g):s.lineTo(k,L)}else s.moveTo(0,0);if(s.closePath(),u)return s=null,u+""||null}return u.centroid=function(){var n=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,r=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-Cu/2;return[Tu(r)*n,Mu(r)*n]},u.innerRadius=function(t){return arguments.length?(e="function"==typeof t?t:nc(+t),u):e},u.outerRadius=function(e){return arguments.length?(t="function"==typeof e?e:nc(+e),u):t},u.cornerRadius=function(e){return arguments.length?(n="function"==typeof e?e:nc(+e),u):n},u.padRadius=function(e){return arguments.length?(r=null==e?null:"function"==typeof e?e:nc(+e),u):r},u.startAngle=function(e){return arguments.length?(i="function"==typeof e?e:nc(+e),u):i},u.endAngle=function(e){return arguments.length?(a="function"==typeof e?e:nc(+e),u):a},u.padAngle=function(e){return arguments.length?(o="function"==typeof e?e:nc(+e),u):o},u.context=function(e){return arguments.length?(s=null==e?null:e,u):s},u}().startAngle((e=>e.startAngle||0)).endAngle((e=>e.endAngle||0)).padAngle((e=>e.padAngle||0)).innerRadius((e=>e.innerRadius||0)).outerRadius((e=>e.outerRadius||0)).cornerRadius((e=>e.cornerRadius||0)),zm=xc().x(Fm).y1(Bm).y0((e=>(e.y||0)+(e.height||0))).defined(jm),Pm=xc().y(Bm).x1(Fm).x0((e=>(e.x||0)+(e.width||0))).defined(jm),Um=bc().x(Fm).y(Bm).defined(jm),Vm=function(){var e=wm,t=Im,n=Cm,r=Rm,i=km(0),a=i,o=i,s=i,l=null;function u(u,c,d){var f,h=null!=c?c:+e.call(this,u),p=null!=d?d:+t.call(this,u),m=+n.call(this,u),g=+r.call(this,u),y=Math.min(m,g)/2,_=Lm(+i.call(this,u),0,y),v=Lm(+a.call(this,u),0,y),b=Lm(+o.call(this,u),0,y),x=Lm(+s.call(this,u),0,y);if(l||(l=f=uc()),_<=0&&v<=0&&b<=0&&x<=0)l.rect(h,p,m,g);else{var E=h+m,S=p+g;l.moveTo(h+_,p),l.lineTo(E-v,p),l.bezierCurveTo(E-Mm*v,p,E,p+Mm*v,E,p+v),l.lineTo(E,S-x),l.bezierCurveTo(E,S-Mm*x,E-Mm*x,S,E-x,S),l.lineTo(h+b,S),l.bezierCurveTo(h+Mm*b,S,h,S-Mm*b,h,S-b),l.lineTo(h,p+_),l.bezierCurveTo(h,p+Mm*_,h+Mm*_,p,h+_,p),l.closePath()}if(f)return l=null,f+""||null}return u.x=function(t){return arguments.length?(e=km(t),u):e},u.y=function(e){return arguments.length?(t=km(e),u):t},u.width=function(e){return arguments.length?(n=km(e),u):n},u.height=function(e){return arguments.length?(r=km(e),u):r},u.cornerRadius=function(e,t,n,r){return arguments.length?(i=km(e),a=null!=t?km(t):i,s=null!=n?km(n):i,o=null!=r?km(r):a,u):i},u.context=function(e){return arguments.length?(l=null==e?null:e,u):l},u}().x(Fm).y(Bm).width((e=>e.width||0)).height((e=>e.height||0)).cornerRadius((e=>Nm(e.cornerRadiusTopLeft,e.cornerRadius)||0),(e=>Nm(e.cornerRadiusTopRight,e.cornerRadius)||0),(e=>Nm(e.cornerRadiusBottomRight,e.cornerRadius)||0),(e=>Nm(e.cornerRadiusBottomLeft,e.cornerRadius)||0)),Wm=function(e,t){let n=null,r=cc(i);function i(){let i;if(n||(n=i=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),i)return n=null,i+""||null}return e="function"==typeof e?e:nc(e||Ec),t="function"==typeof t?t:nc(void 0===t?64:+t),i.type=function(t){return arguments.length?(e="function"==typeof t?t:nc(t),i):e},i.size=function(e){return arguments.length?(t="function"==typeof e?e:nc(+e),i):t},i.context=function(e){return arguments.length?(n=null==e?null:e,i):n},i}().type((e=>function(e){return dt(Om,e)?Om[e]:function(e){if(!dt(Dm,e)){const t=hm(e);Dm[e]={draw:function(e,n){Am(e,t,0,0,Math.sqrt(n)/2)}}}return Dm[e]}(e)}(e.shape||"circle"))).size((e=>Nm(e.size,64))),Gm=function(){var e,t,n,r,i,a,o,s,l=null;function u(e,t,n){const r=n/2;if(i){var u=o-t,c=e-a;if(u||c){var d=Math.hypot(u,c),f=(u/=d)*s,h=(c/=d)*s,p=Math.atan2(c,u);l.moveTo(a-f,o-h),l.lineTo(e-u*r,t-c*r),l.arc(e,t,r,p-Math.PI,p),l.lineTo(a+f,o+h),l.arc(a,o,s,p,p+Math.PI)}else l.arc(e,t,r,0,gm);l.closePath()}else i=1;a=e,o=t,s=r}function c(a){var o,s,c,d=a.length,f=!1;for(null==l&&(l=c=uc()),o=0;o<=d;++o)!(o<d&&r(s=a[o],o,a))===f&&(f=!f)&&(i=0),f&&u(+e(s,o,a),+t(s,o,a),+n(s,o,a));if(c)return l=null,c+""||null}return c.x=function(t){return arguments.length?(e=t,c):e},c.y=function(e){return arguments.length?(t=e,c):t},c.size=function(e){return arguments.length?(n=e,c):n},c.defined=function(e){return arguments.length?(r=e,c):r},c.context=function(e){return arguments.length?(l=null==e?null:e,c):l},c}().x(Fm).y(Bm).defined(jm).size((e=>e.size||1));function qm(e){return e.cornerRadius||e.cornerRadiusTopLeft||e.cornerRadiusTopRight||e.cornerRadiusBottomRight||e.cornerRadiusBottomLeft}function Ym(e,t,n,r){return Vm.context(e)(t,n,r)}var Km=1;function Jm(e,t,n){var r=t.clip,i=e._defs,a=t.clip_id||(t.clip_id="clip"+Km++),o=i.clipping[a]||(i.clipping[a]={id:a});return et(r)?o.path=r(null):qm(n)?o.path=Ym(null,n,0,0):(o.width=n.width||0,o.height=n.height||0),"url(#"+a+")"}function Xm(e){this.clear(),e&&this.union(e)}function Zm(e){this.mark=e,this.bounds=this.bounds||new Xm}function Qm(e){Zm.call(this,e),this.items=this.items||[]}Xm.prototype={clone(){return new Xm(this)},clear(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(e){return this.x1===e.x1&&this.y1===e.y1&&this.x2===e.x2&&this.y2===e.y2},set(e,t,n,r){return n<e?(this.x2=e,this.x1=n):(this.x1=e,this.x2=n),r<t?(this.y2=t,this.y1=r):(this.y1=t,this.y2=r),this},add(e,t){return e<this.x1&&(this.x1=e),t<this.y1&&(this.y1=t),e>this.x2&&(this.x2=e),t>this.y2&&(this.y2=t),this},expand(e){return this.x1-=e,this.y1-=e,this.x2+=e,this.y2+=e,this},round(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale(e){return this.x1*=e,this.y1*=e,this.x2*=e,this.y2*=e,this},translate(e,t){return this.x1+=e,this.x2+=e,this.y1+=t,this.y2+=t,this},rotate(e,t,n){const r=this.rotatedPoints(e,t,n);return this.clear().add(r[0],r[1]).add(r[2],r[3]).add(r[4],r[5]).add(r[6],r[7])},rotatedPoints(e,t,n){var{x1:r,y1:i,x2:a,y2:o}=this,s=Math.cos(e),l=Math.sin(e),u=t-t*s+n*l,c=n-t*l-n*s;return[s*r-l*i+u,l*r+s*i+c,s*r-l*o+u,l*r+s*o+c,s*a-l*i+u,l*a+s*i+c,s*a-l*o+u,l*a+s*o+c]},union(e){return e.x1<this.x1&&(this.x1=e.x1),e.y1<this.y1&&(this.y1=e.y1),e.x2>this.x2&&(this.x2=e.x2),e.y2>this.y2&&(this.y2=e.y2),this},intersect(e){return e.x1>this.x1&&(this.x1=e.x1),e.y1>this.y1&&(this.y1=e.y1),e.x2<this.x2&&(this.x2=e.x2),e.y2<this.y2&&(this.y2=e.y2),this},encloses(e){return e&&this.x1<=e.x1&&this.x2>=e.x2&&this.y1<=e.y1&&this.y2>=e.y2},alignsWith(e){return e&&(this.x1==e.x1||this.x2==e.x2||this.y1==e.y1||this.y2==e.y2)},intersects(e){return e&&!(this.x2<e.x1||this.x1>e.x2||this.y2<e.y1||this.y1>e.y2)},contains(e,t){return!(e<this.x1||e>this.x2||t<this.y1||t>this.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}},pt(Qm,Zm);class eg{constructor(e){this._pending=0,this._loader=e||ao()}pending(){return this._pending}sanitizeURL(e){const t=this;return tg(t),t._loader.sanitize(e,{context:"href"}).then((e=>(ng(t),e))).catch((()=>(ng(t),null)))}loadImage(e){const t=this,n=Ac();return tg(t),t._loader.sanitize(e,{context:"image"}).then((e=>{const r=e.href;if(!r||!n)throw{url:r};const i=new n,a=dt(e,"crossOrigin")?e.crossOrigin:"anonymous";return null!=a&&(i.crossOrigin=a),i.onload=()=>ng(t),i.onerror=()=>ng(t),i.src=r,i})).catch((e=>(ng(t),{complete:!1,width:0,height:0,src:e&&e.url||""})))}ready(){const e=this;return new Promise((t=>{!function n(r){e.pending()?setTimeout((()=>{n(!0)}),10):t(r)}(!1)}))}}function tg(e){e._pending+=1}function ng(e){e._pending-=1}function rg(e,t,n){if(t.stroke&&0!==t.opacity&&0!==t.strokeOpacity){const r=null!=t.strokeWidth?+t.strokeWidth:1;e.expand(r+(n?function(e,t){return e.strokeJoin&&"miter"!==e.strokeJoin?0:t}(t,r):0))}return e}const ig=gm-1e-8;let ag,og,sg,lg,ug,cg,dg,fg;const hg=(e,t)=>ag.add(e,t),pg=(e,t)=>hg(og=e,sg=t),mg=e=>hg(e,ag.y1),gg=e=>hg(ag.x1,e),yg=(e,t)=>ug*e+dg*t,_g=(e,t)=>cg*e+fg*t,vg=(e,t)=>hg(yg(e,t),_g(e,t)),bg=(e,t)=>pg(yg(e,t),_g(e,t));function xg(e,t){return ag=e,t?(lg=t*pm,ug=fg=Math.cos(lg),cg=Math.sin(lg),dg=-cg):(ug=fg=1,lg=cg=dg=0),Eg}const Eg={beginPath(){},closePath(){},moveTo:bg,lineTo:bg,rect(e,t,n,r){lg?(vg(e+n,t),vg(e+n,t+r),vg(e,t+r),bg(e,t)):(hg(e+n,t+r),pg(e,t))},quadraticCurveTo(e,t,n,r){const i=yg(e,t),a=_g(e,t),o=yg(n,r),s=_g(n,r);Sg(og,i,o,mg),Sg(sg,a,s,gg),pg(o,s)},bezierCurveTo(e,t,n,r,i,a){const o=yg(e,t),s=_g(e,t),l=yg(n,r),u=_g(n,r),c=yg(i,a),d=_g(i,a);Ag(og,o,l,c,mg),Ag(sg,s,u,d,gg),pg(c,d)},arc(e,t,n,r,i,a){if(r+=lg,i+=lg,og=n*Math.cos(i)+e,sg=n*Math.sin(i)+t,Math.abs(i-r)>ig)hg(e-n,t-n),hg(e+n,t+n);else{const o=r=>hg(n*Math.cos(r)+e,n*Math.sin(r)+t);let s,l;if(o(r),o(i),i!==r)if((r%=gm)<0&&(r+=gm),(i%=gm)<0&&(i+=gm),i<r&&(a=!a,s=r,r=i,i=s),a)for(i-=gm,s=r-r%mm,l=0;l<4&&s>i;++l,s-=mm)o(s);else for(s=r-r%mm+mm,l=0;l<4&&s<i;++l,s+=mm)o(s)}}};function Sg(e,t,n,r){const i=(e-t)/(e+n-2*t);0<i&&i<1&&r(e+(t-e)*i)}function Ag(e,t,n,r,i){const a=r-e+3*t-3*n,o=e+n-2*t,s=e-t;let l,u=0,c=0;Math.abs(a)>1e-14?(l=o*o+s*a,l>=0&&(l=Math.sqrt(l),u=(-o+l)/a,c=(-o-l)/a)):u=.5*s/o,0<u&&u<1&&i($g(u,e,t,n,r)),0<c&&c<1&&i($g(c,e,t,n,r))}function $g(e,t,n,r,i){const a=1-e,o=a*a,s=e*e;return o*a*t+3*o*e*n+3*a*s*r+s*e*i}var Tg=(Tg=Sc(1,1))?Tg.getContext("2d"):null;const Og=new Xm;function Dg(e){return function(t,n){if(!Tg)return!0;e(Tg,t),Og.clear().union(t.bounds).intersect(n).round();const{x1:r,y1:i,x2:a,y2:o}=Og;for(let e=i;e<=o;++e)for(let t=r;t<=a;++t)if(Tg.isPointInPath(t,e))return!0;return!1}}function Mg(e,t){return t.contains(e.x||0,e.y||0)}function wg(e,t){const n=e.x||0,r=e.y||0,i=e.width||0,a=e.height||0;return t.intersects(Og.set(n,r,n+i,r+a))}function Ig(e,t,n,r,i){const{x1:a,y1:o,x2:s,y2:l}=e,u=r-t,c=i-n;let d,f,h,p,m=0,g=1;for(p=0;p<4;++p){if(0===p&&(d=-u,f=-(a-t)),1===p&&(d=u,f=s-t),2===p&&(d=-c,f=-(o-n)),3===p&&(d=c,f=l-n),Math.abs(d)<1e-10&&f<0)return!1;if(h=f/d,d<0){if(h>g)return!1;h>m&&(m=h)}else if(d>0){if(h<m)return!1;h<g&&(g=h)}}return!0}function Cg(e,t){e.globalCompositeOperation=t.blend||"source-over"}function Rg(e,t){return null==e?t:e}function kg(e,t){const n=t.length;for(let r=0;r<n;++r)e.addColorStop(t[r].offset,t[r].color);return e}function Lg(e,t,n){return rm(n)?function(e,t,n){const r=n.width(),i=n.height();let a;if("radial"===t.gradient)a=e.createRadialGradient(n.x1+Rg(t.x1,.5)*r,n.y1+Rg(t.y1,.5)*i,Math.max(r,i)*Rg(t.r1,0),n.x1+Rg(t.x2,.5)*r,n.y1+Rg(t.y2,.5)*i,Math.max(r,i)*Rg(t.r2,.5));else{const o=Rg(t.x1,0),s=Rg(t.y1,0),l=Rg(t.x2,1),u=Rg(t.y2,0);if(o!==l&&s!==u&&r!==i){const n=Sc(Math.ceil(r),Math.ceil(i)),a=n.getContext("2d");return a.scale(r,i),a.fillStyle=kg(a.createLinearGradient(o,s,l,u),t.stops),a.fillRect(0,0,r,i),e.createPattern(n,"no-repeat")}a=e.createLinearGradient(n.x1+o*r,n.y1+s*i,n.x1+l*r,n.y1+u*i)}return kg(a,t.stops)}(e,n,t.bounds):n}function Ng(e,t,n){return(n*=null==t.fillOpacity?1:t.fillOpacity)>0&&(e.globalAlpha=n,e.fillStyle=Lg(e,t,t.fill),!0)}var Fg=[];function Bg(e,t,n){var r=null!=(r=t.strokeWidth)?r:1;return!(r<=0)&&(n*=null==t.strokeOpacity?1:t.strokeOpacity)>0&&(e.globalAlpha=n,e.strokeStyle=Lg(e,t,t.stroke),e.lineWidth=r,e.lineCap=t.strokeCap||"butt",e.lineJoin=t.strokeJoin||"miter",e.miterLimit=t.strokeMiterLimit||10,e.setLineDash&&(e.setLineDash(t.strokeDash||Fg),e.lineDashOffset=t.strokeDashOffset||0),!0)}function jg(e,t){return e.zindex-t.zindex||e.index-t.index}function Hg(e){if(!e.zdirty)return e.zitems;var t,n,r,i=e.items,a=[];for(n=0,r=i.length;n<r;++n)(t=i[n]).index=n,t.zindex&&a.push(t);return e.zdirty=!1,e.zitems=a.sort(jg)}function zg(e,t){var n,r,i=e.items;if(!i||!i.length)return;const a=Hg(e);if(a&&a.length){for(n=0,r=i.length;n<r;++n)i[n].zindex||t(i[n]);i=a}for(n=0,r=i.length;n<r;++n)t(i[n])}function Pg(e,t){var n,r,i=e.items;if(!i||!i.length)return null;const a=Hg(e);for(a&&a.length&&(i=a),r=i.length;--r>=0;)if(n=t(i[r]))return n;if(i===a)for(r=(i=e.items).length;--r>=0;)if(!i[r].zindex&&(n=t(i[r])))return n;return null}function Ug(e){return function(t,n,r){zg(n,(n=>{r&&!r.intersects(n.bounds)||Wg(e,t,n,n)}))}}function Vg(e){return function(t,n,r){!n.items.length||r&&!r.intersects(n.bounds)||Wg(e,t,n.items[0],n.items)}}function Wg(e,t,n,r){var i=null==n.opacity?1:n.opacity;0!==i&&(e(t,r)||(Cg(t,n),n.fill&&Ng(t,n,i)&&t.fill(),n.stroke&&Bg(t,n,i)&&t.stroke()))}function Gg(e){return e=e||$e,function(t,n,r,i,a,o){return r*=t.pixelRatio,i*=t.pixelRatio,Pg(n,(n=>{const s=n.bounds;if((!s||s.contains(a,o))&&s)return e(t,n,r,i,a,o)?n:void 0}))}}function qg(e,t){return function(n,r,i,a){var o,s,l=Array.isArray(r)?r[0]:r,u=null==t?l.fill:t,c=l.stroke&&n.isPointInStroke;return c&&(o=l.strokeWidth,s=l.strokeCap,n.lineWidth=null!=o?o:1,n.lineCap=null!=s?s:"butt"),!e(n,r)&&(u&&n.isPointInPath(i,a)||c&&n.isPointInStroke(i,a))}}function Yg(e){return Gg(qg(e))}function Kg(e,t){return"translate("+e+","+t+")"}function Jg(e){return"rotate("+e+")"}function Xg(e){return Kg(e.x||0,e.y||0)}function Zg(e,t,n){function r(e,n){var r=n.x||0,i=n.y||0,a=n.angle||0;e.translate(r,i),a&&e.rotate(a*=pm),e.beginPath(),t(e,n),a&&e.rotate(-a),e.translate(-r,-i)}return{type:e,tag:"path",nested:!1,attr:function(e,n){e("transform",function(e){return Kg(e.x||0,e.y||0)+(e.angle?" "+Jg(e.angle):"")}(n)),e("d",t(null,n))},bound:function(e,n){return t(xg(e,n.angle),n),rg(e,n).translate(n.x||0,n.y||0)},draw:Ug(r),pick:Yg(r),isect:n||Dg(r)}}var Qg=Zg("arc",(function(e,t){return Hm.context(e)(t)}));function ey(e,t,n){function r(e,n){e.beginPath(),t(e,n)}const i=qg(r);return{type:e,tag:"path",nested:!0,attr:function(e,n){var r=n.mark.items;r.length&&e("d",t(null,r))},bound:function(e,n){var r=n.items;return 0===r.length?e:(t(xg(e),r),rg(e,r[0]))},draw:Vg(r),pick:function(e,t,n,r,a,o){var s=t.items,l=t.bounds;return!s||!s.length||l&&!l.contains(a,o)?null:(n*=e.pixelRatio,r*=e.pixelRatio,i(e,s,n,r)?s[0]:null)},isect:Mg,tip:n}}var ty=ey("area",(function(e,t){const n=t[0],r=n.interpolate||"linear";return("horizontal"===n.orient?Pm:zm).curve(sm(r,n.orient,n.tension)).context(e)(t)}),(function(e,t){for(var n,r,i="horizontal"===e[0].orient?t[1]:t[0],a="horizontal"===e[0].orient?"y":"x",o=e.length,s=1/0;--o>=0;)!1!==e[o].defined&&(r=Math.abs(e[o][a]-i))<s&&(s=r,n=e[o]);return n}));function ny(e,t){e.beginPath(),qm(t)?Ym(e,t,0,0):e.rect(0,0,t.width||0,t.height||0),e.clip()}function ry(e){const t=Rg(e.strokeWidth,1);return null!=e.strokeOffset?e.strokeOffset:e.stroke&&t>.5&&t<1.5?.5-Math.abs(t-1):0}function iy(e,t){const n=ry(t);e("d",Ym(null,t,n,n))}function ay(e,t,n,r){const i=ry(t);e.beginPath(),Ym(e,t,(n||0)+i,(r||0)+i)}const oy=qg(ay),sy=qg(ay,!1),ly=qg(ay,!0);var uy={type:"group",tag:"g",nested:!1,attr:function(e,t){e("transform",Xg(t))},bound:function(e,t){if(!t.clip&&t.items){const n=t.items,r=n.length;for(let t=0;t<r;++t)e.union(n[t].bounds)}return(t.clip||t.width||t.height)&&!t.noBound&&e.add(0,0).add(t.width||0,t.height||0),rg(e,t),e.translate(t.x||0,t.y||0)},draw:function(e,t,n,r){zg(t,(t=>{const i=t.x||0,a=t.y||0,o=t.strokeForeground,s=null==t.opacity?1:t.opacity;(t.stroke||t.fill)&&s&&(ay(e,t,i,a),Cg(e,t),t.fill&&Ng(e,t,s)&&e.fill(),t.stroke&&!o&&Bg(e,t,s)&&e.stroke()),e.save(),e.translate(i,a),t.clip&&ny(e,t),n&&n.translate(-i,-a),zg(t,(t=>{("group"===t.marktype||null==r||r.includes(t.marktype))&&this.draw(e,t,n,r)})),n&&n.translate(i,a),e.restore(),o&&t.stroke&&s&&(ay(e,t,i,a),Cg(e,t),Bg(e,t,s)&&e.stroke())}))},pick:function(e,t,n,r,i,a){if(t.bounds&&!t.bounds.contains(i,a)||!t.items)return null;const o=n*e.pixelRatio,s=r*e.pixelRatio;return Pg(t,(l=>{let u,c,d;const f=l.bounds;if(f&&!f.contains(i,a))return;c=l.x||0,d=l.y||0;const h=c+(l.width||0),p=d+(l.height||0),m=l.clip;if(m&&(i<c||i>h||a<d||a>p))return;if(e.save(),e.translate(c,d),c=i-c,d=a-d,m&&qm(l)&&!ly(e,l,o,s))return e.restore(),null;const g=l.strokeForeground,y=!1!==t.interactive;return y&&g&&l.stroke&&sy(e,l,o,s)?(e.restore(),l):(u=Pg(l,(e=>function(e,t,n){return(!1!==e.interactive||"group"===e.marktype)&&e.bounds&&e.bounds.contains(t,n)}(e,c,d)?this.pick(e,n,r,c,d):null)),!u&&y&&(l.fill||!g&&l.stroke)&&oy(e,l,o,s)&&(u=l),e.restore(),u||null)}))},isect:wg,content:function(e,t,n){e("clip-path",t.clip?Jm(n,t,t):null)},background:function(e,t){e("class","background"),e("aria-hidden",!0),iy(e,t)},foreground:function(e,t){e("class","foreground"),e("aria-hidden",!0),t.strokeForeground?iy(e,t):e("d","")}},cy={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function dy(e,t){var n=e.image;return(!n||e.url&&e.url!==n.url)&&(n={complete:!1,width:0,height:0},t.loadImage(e.url).then((t=>{e.image=t,e.image.url=e.url}))),n}function fy(e,t){return null!=e.width?e.width:t&&t.width?!1!==e.aspect&&e.height?e.height*t.width/t.height:t.width:0}function hy(e,t){return null!=e.height?e.height:t&&t.height?!1!==e.aspect&&e.width?e.width*t.height/t.width:t.height:0}function py(e,t){return"center"===e?t/2:"right"===e?t:0}function my(e,t){return"middle"===e?t/2:"bottom"===e?t:0}var gy={type:"image",tag:"image",nested:!1,attr:function(e,t,n){const r=dy(t,n),i=fy(t,r),a=hy(t,r),o=(t.x||0)-py(t.align,i),s=(t.y||0)-my(t.baseline,a);e("href",!r.src&&r.toDataURL?r.toDataURL():r.src||"",cy["xmlns:xlink"],"xlink:href"),e("transform",Kg(o,s)),e("width",i),e("height",a),e("preserveAspectRatio",!1===t.aspect?"none":"xMidYMid")},bound:function(e,t){const n=t.image,r=fy(t,n),i=hy(t,n),a=(t.x||0)-py(t.align,r),o=(t.y||0)-my(t.baseline,i);return e.set(a,o,a+r,o+i)},draw:function(e,t,n){zg(t,(t=>{if(n&&!n.intersects(t.bounds))return;const r=dy(t,this);let i=fy(t,r),a=hy(t,r);if(0===i||0===a)return;let o,s,l,u,c=(t.x||0)-py(t.align,i),d=(t.y||0)-my(t.baseline,a);!1!==t.aspect&&(s=r.width/r.height,l=t.width/t.height,s==s&&l==l&&s!==l&&(l<s?(u=i/s,d+=(a-u)/2,a=u):(u=a*s,c+=(i-u)/2,i=u))),(r.complete||r.toDataURL)&&(Cg(e,t),e.globalAlpha=null!=(o=t.opacity)?o:1,e.imageSmoothingEnabled=!1!==t.smooth,e.drawImage(r,c,d,i,a))}))},pick:Gg(),isect:$e,get:dy,xOffset:py,yOffset:my},yy=ey("line",(function(e,t){const n=t[0],r=n.interpolate||"linear";return Um.curve(sm(r,n.orient,n.tension)).context(e)(t)}),(function(e,t){for(var n,r,i=Math.pow(e[0].strokeWidth||1,2),a=e.length;--a>=0;)if(!1!==e[a].defined&&(n=e[a].x-t[0])*n+(r=e[a].y-t[1])*r<i)return e[a];return null}));function _y(e,t){var n=t.path;if(null==n)return!0;var r=t.x||0,i=t.y||0,a=t.scaleX||1,o=t.scaleY||1,s=(t.angle||0)*pm,l=t.pathCache;l&&l.path===n||((t.pathCache=l=hm(n)).path=n),s&&e.rotate&&e.translate?(e.translate(r,i),e.rotate(s),Am(e,l,0,0,a,o),e.rotate(-s),e.translate(-r,-i)):Am(e,l,r,i,a,o)}var vy={type:"path",tag:"path",nested:!1,attr:function(e,t){var n=t.scaleX||1,r=t.scaleY||1;1===n&&1===r||e("vector-effect","non-scaling-stroke"),e("transform",function(e){return Kg(e.x||0,e.y||0)+(e.angle?" "+Jg(e.angle):"")+(e.scaleX||e.scaleY?" "+(t=e.scaleX||1,n=e.scaleY||1,"scale("+t+","+n+")"):"");var t,n}(t)),e("d",t.path)},bound:function(e,t){return _y(xg(e,t.angle),t)?e.set(0,0,0,0):rg(e,t,!0)},draw:Ug(_y),pick:Yg(_y),isect:Dg(_y)};function by(e,t){e.beginPath(),Ym(e,t)}var xy={type:"rect",tag:"path",nested:!1,attr:function(e,t){e("d",Ym(null,t))},bound:function(e,t){var n,r;return rg(e.set(n=t.x||0,r=t.y||0,n+t.width||0,r+t.height||0),t)},draw:Ug(by),pick:Yg(by),isect:wg};function Ey(e,t,n){var r,i,a,o;return!(!t.stroke||!Bg(e,t,n)||(r=t.x||0,i=t.y||0,a=null!=t.x2?t.x2:r,o=null!=t.y2?t.y2:i,e.beginPath(),e.moveTo(r,i),e.lineTo(a,o),0))}var Sy={type:"rule",tag:"line",nested:!1,attr:function(e,t){e("transform",Xg(t)),e("x2",null!=t.x2?t.x2-(t.x||0):0),e("y2",null!=t.y2?t.y2-(t.y||0):0)},bound:function(e,t){var n,r;return rg(e.set(n=t.x||0,r=t.y||0,null!=t.x2?t.x2:n,null!=t.y2?t.y2:r),t)},draw:function(e,t,n){zg(t,(t=>{if(!n||n.intersects(t.bounds)){var r=null==t.opacity?1:t.opacity;r&&Ey(e,t,r)&&(Cg(e,t),e.stroke())}}))},pick:Gg((function(e,t,n,r){return!!e.isPointInStroke&&Ey(e,t,1)&&e.isPointInStroke(n,r)})),isect:function(e,t){const n=e.x||0,r=e.y||0;return Ig(t,n,r,null!=e.x2?e.x2:n,null!=e.y2?e.y2:r)}},Ay=Zg("shape",(function(e,t){return(t.mark.shape||t.shape).context(e)(t)})),$y=Zg("symbol",(function(e,t){return Wm.context(e)(t)}),Mg);const Ty=function(e){let t,n,r;e=+e||1e4;const i=()=>{t={},n={},r=0},a=(i,a)=>(++r>e&&(n=t,t={},r=1),t[i]=a);return i(),{clear:i,has:e=>dt(t,e)||dt(n,e),get:e=>dt(t,e)?t[e]:dt(n,e)?a(e,n[e]):void 0,set:(e,n)=>dt(t,e)?t[e]=n:a(e,n)}}();var Oy={height:Ry,measureWidth:Iy,estimateWidth:My,width:My,canvas:Dy};function Dy(e){Oy.width=e&&Tg?Iy:My}function My(e,t){return wy(Fy(e,t),Ry(e))}function wy(e,t){return~~(.8*e.length*t)}function Iy(e,t){return Ry(e)<=0||!(t=Fy(e,t))?0:Cy(t,jy(e))}function Cy(e,t){const n=`(${t}) ${e}`;let r=Ty.get(n);return void 0===r&&(Tg.font=t,r=Tg.measureText(e).width,Ty.set(n,r)),r}function Ry(e){return null!=e.fontSize?+e.fontSize||0:11}function ky(e){return null!=e.lineHeight?e.lineHeight:Ry(e)+2}function Ly(e){return function(e){return Le(e)?e.length>1?e:e[0]:e}(e.lineBreak&&e.text&&!Le(e.text)?e.text.split(e.lineBreak):e.text)}function Ny(e){const t=Ly(e);return(Le(t)?t.length-1:0)*ky(e)}function Fy(e,t){const n=null==t?"":(t+"").trim();return e.limit>0&&n.length?function(e,t){var n=+e.limit,r=function(e){if(Oy.width===Iy){const t=jy(e);return e=>Cy(e,t)}if(Oy.width===My){const t=Ry(e);return e=>wy(e,t)}return t=>Oy.width(e,t)}(e);if(r(t)<n)return t;var i,a=e.ellipsis||"…",o="rtl"===e.dir,s=0,l=t.length;if(n-=r(a),o){for(;s<l;)i=s+l>>>1,r(t.slice(i))>n?s=i+1:l=i;return a+t.slice(s)}for(;s<l;)i=1+(s+l>>>1),r(t.slice(0,i))<n?s=i:l=i-1;return t.slice(0,s)+a}(e,n):n}function By(e,t){var n=e.font;return(t&&n?String(n).replace(/"/g,"'"):n)||"sans-serif"}function jy(e,t){return(e.fontStyle?e.fontStyle+" ":"")+(e.fontVariant?e.fontVariant+" ":"")+(e.fontWeight?e.fontWeight+" ":"")+Ry(e)+"px "+By(e,t)}function Hy(e){var t=e.baseline,n=Ry(e);return Math.round("top"===t?.79*n:"middle"===t?.3*n:"bottom"===t?-.21*n:"line-top"===t?.29*n+.5*ky(e):"line-bottom"===t?.29*n-.5*ky(e):0)}Dy(!0);const zy={left:"start",center:"middle",right:"end"},Py=new Xm;function Uy(e){var t,n=e.x||0,r=e.y||0,i=e.radius||0;return i&&(t=(e.theta||0)-mm,n+=i*Math.cos(t),r+=i*Math.sin(t)),Py.x1=n,Py.y1=r,Py}function Vy(e,t,n){var r,i=Oy.height(t),a=t.align,o=Uy(t),s=o.x1,l=o.y1,u=t.dx||0,c=(t.dy||0)+Hy(t)-Math.round(.8*i),d=Ly(t);if(Le(d)?(i+=ky(t)*(d.length-1),r=d.reduce(((e,n)=>Math.max(e,Oy.width(t,n))),0)):r=Oy.width(t,d),"center"===a?u-=r/2:"right"===a&&(u-=r),e.set(u+=s,c+=l,u+r,c+i),t.angle&&!n)e.rotate(t.angle*pm,s,l);else if(2===n)return e.rotatedPoints(t.angle*pm,s,l);return e}var Wy={type:"text",tag:"text",nested:!1,attr:function(e,t){var n,r=t.dx||0,i=(t.dy||0)+Hy(t),a=Uy(t),o=a.x1,s=a.y1,l=t.angle||0;e("text-anchor",zy[t.align]||"start"),l?(n=Kg(o,s)+" "+Jg(l),(r||i)&&(n+=" "+Kg(r,i))):n=Kg(o+r,s+i),e("transform",n)},bound:Vy,draw:function(e,t,n){zg(t,(t=>{var r,i,a,o,s,l,u,c=null==t.opacity?1:t.opacity;if(!(n&&!n.intersects(t.bounds)||0===c||t.fontSize<=0||null==t.text||0===t.text.length)){if(e.font=jy(t),e.textAlign=t.align||"left",i=(r=Uy(t)).x1,a=r.y1,t.angle&&(e.save(),e.translate(i,a),e.rotate(t.angle*pm),i=a=0),i+=t.dx||0,a+=(t.dy||0)+Hy(t),l=Ly(t),Cg(e,t),Le(l))for(s=ky(t),o=0;o<l.length;++o)u=Fy(t,l[o]),t.fill&&Ng(e,t,c)&&e.fillText(u,i,a),t.stroke&&Bg(e,t,c)&&e.strokeText(u,i,a),a+=s;else u=Fy(t,l),t.fill&&Ng(e,t,c)&&e.fillText(u,i,a),t.stroke&&Bg(e,t,c)&&e.strokeText(u,i,a);t.angle&&e.restore()}}))},pick:Gg((function(e,t,n,r,i,a){if(t.fontSize<=0)return!1;if(!t.angle)return!0;var o=Uy(t),s=o.x1,l=o.y1,u=Vy(Py,t,1),c=-t.angle*pm,d=Math.cos(c),f=Math.sin(c),h=d*i-f*a+(s-d*s+f*l),p=f*i+d*a+(l-f*s-d*l);return u.contains(h,p)})),isect:function(e,t){const n=Vy(Py,e,2);return Ig(t,n[0],n[1],n[2],n[3])||Ig(t,n[0],n[1],n[4],n[5])||Ig(t,n[4],n[5],n[6],n[7])||Ig(t,n[2],n[3],n[6],n[7])}},Gy=ey("trail",(function(e,t){return Gm.context(e)(t)}),(function(e,t){for(var n,r,i=e.length;--i>=0;)if(!1!==e[i].defined&&(n=e[i].x-t[0])*n+(r=e[i].y-t[1])*r<(n=e[i].size||1)*n)return e[i];return null})),qy={arc:Qg,area:ty,group:uy,image:gy,line:yy,path:vy,rect:xy,rule:Sy,shape:Ay,symbol:$y,text:Wy,trail:Gy};function Yy(e,t,n){var r=qy[e.mark.marktype],i=t||r.bound;return r.nested&&(e=e.mark),i(e.bounds||(e.bounds=new Xm),e,n)}var Ky={mark:null};const Jy=["marktype","name","role","interactive","clip","items","zindex","x","y","width","height","align","baseline","fill","fillOpacity","opacity","blend","stroke","strokeOpacity","strokeWidth","strokeCap","strokeDash","strokeDashOffset","strokeForeground","strokeOffset","startAngle","endAngle","innerRadius","outerRadius","cornerRadius","padAngle","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight","interpolate","tension","orient","defined","url","aspect","smooth","path","scaleX","scaleY","x2","y2","size","shape","text","angle","theta","radius","dir","dx","dy","ellipsis","limit","lineBreak","lineHeight","font","fontSize","fontWeight","fontStyle","fontVariant","description","aria","ariaRole","ariaRoleDescription"];function Xy(e){return Zy("string"==typeof e?JSON.parse(e):e)}function Zy(e){var t,n,r,i=e.marktype,a=e.items;if(a)for(n=0,r=a.length;n<r;++n)t=i?"mark":"group",a[n][t]=e,a[n].zindex&&(a[n][t].zdirty=!0),"group"===(i||t)&&Zy(a[n]);return i&&function(e,t,n){var r,i,a,o,s=qy[e.marktype],l=s.bound,u=e.items,c=u&&u.length;if(s.nested)return c?a=u[0]:(Ky.mark=e,a=Ky),o=Yy(a,l,n),t&&t.union(o)||o;if(t=t||e.bounds&&e.bounds.clear()||new Xm,c)for(r=0,i=u.length;r<i;++r)t.union(Yy(u[r],l,n));e.bounds=t}(e),e}class Qy{constructor(e){arguments.length?this.root=Xy(e):(this.root=e_({marktype:"group",name:"root",role:"frame"}),this.root.items=[new Qm(this.root)])}toJSON(e){return function(e,t){return JSON.stringify(e,Jy,t)}(this.root,e||0)}mark(e,t,n){const r=e_(e,t=t||this.root.items[0]);return t.items[n]=r,r.zindex&&(r.group.zdirty=!0),r}}function e_(e,t){const n={bounds:new Xm,clip:!!e.clip,group:t,interactive:!1!==e.interactive,items:[],marktype:e.marktype,name:e.name||void 0,role:e.role||void 0,zindex:e.zindex||0};return null!=e.aria&&(n.aria=e.aria),e.description&&(n.description=e.description),n}function t_(e,t,n){return!e&&"undefined"!=typeof document&&document.createElement&&(e=document),e?n?e.createElementNS(n,t):e.createElement(t):null}function n_(e,t){t=t.toLowerCase();for(var n=e.childNodes,r=0,i=n.length;r<i;++r)if(n[r].tagName.toLowerCase()===t)return n[r]}function r_(e,t,n,r){var i,a=e.childNodes[t];return a&&a.tagName.toLowerCase()===n.toLowerCase()||(i=a||null,a=t_(e.ownerDocument,n,r),e.insertBefore(a,i)),a}function i_(e,t){for(var n=e.childNodes,r=n.length;r>t;)e.removeChild(n[--r]);return e}function a_(e){return"mark-"+e.marktype+(e.role?" role-"+e.role:"")+(e.name?" "+e.name:"")}function o_(e,t){const n=t.getBoundingClientRect();return[e.clientX-n.left-(t.clientLeft||0),e.clientY-n.top-(t.clientTop||0)]}class s_{constructor(e,t){this._active=null,this._handlers={},this._loader=e||ao(),this._tooltip=t||l_}initialize(e,t,n){return this._el=e,this._obj=n||null,this.origin(t)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}origin(e){return arguments.length?(this._origin=e||[0,0],this):this._origin.slice()}scene(e){return arguments.length?(this._scene=e,this):this._scene}on(){}off(){}_handlerIndex(e,t,n){for(let r=e?e.length:0;--r>=0;)if(e[r].type===t&&(!n||e[r].handler===n))return r;return-1}handlers(e){const t=this._handlers,n=[];if(e)n.push(...t[this.eventName(e)]);else for(const e in t)n.push(...t[e]);return n}eventName(e){const t=e.indexOf(".");return t<0?e:e.slice(0,t)}handleHref(e,t,n){this._loader.sanitize(n,{context:"href"}).then((t=>{const n=new MouseEvent(e.type,e),r=t_(null,"a");for(const e in t)r.setAttribute(e,t[e]);r.dispatchEvent(n)})).catch((()=>{}))}handleTooltip(e,t,n){if(t&&null!=t.tooltip){t=function(e,t,n,r){var i,a,o=e&&e.mark;if(o&&(i=qy[o.marktype]).tip){for((a=o_(t,n))[0]-=r[0],a[1]-=r[1];e=e.mark.group;)a[0]-=e.x||0,a[1]-=e.y||0;e=i.tip(o.items,a)}return e}(t,e,this.canvas(),this._origin);const r=n&&t&&t.tooltip||null;this._tooltip.call(this._obj,this,e,t,r)}}getItemBoundingClientRect(e){const t=this.canvas();if(!t)return;const n=t.getBoundingClientRect(),r=this._origin,i=e.bounds,a=i.width(),o=i.height();let s=i.x1+r[0]+n.left,l=i.y1+r[1]+n.top;for(;e.mark&&(e=e.mark.group);)s+=e.x||0,l+=e.y||0;return{x:s,y:l,width:a,height:o,left:s,top:l,right:s+a,bottom:l+o}}}function l_(e,t,n,r){e.element().setAttribute("title",r||"")}class u_{constructor(e){this._el=null,this._bgcolor=null,this._loader=new eg(e)}initialize(e,t,n,r,i){return this._el=e,this.resize(t,n,r,i)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}background(e){return 0===arguments.length?this._bgcolor:(this._bgcolor=e,this)}resize(e,t,n,r){return this._width=e,this._height=t,this._origin=n||[0,0],this._scale=r||1,this}dirty(){}render(e,t){const n=this;return n._call=function(){n._render(e,t)},n._call(),n._call=null,n}_render(){}renderAsync(e,t){const n=this.render(e,t);return this._ready?this._ready.then((()=>n)):Promise.resolve(n)}_load(e,t){var n=this,r=n._loader[e](t);if(!n._ready){const e=n._call;n._ready=n._loader.ready().then((t=>{t&&e(),n._ready=null}))}return r}sanitizeURL(e){return this._load("sanitizeURL",e)}loadImage(e){return this._load("loadImage",e)}}const c_="dragenter",d_="dragleave",f_="dragover",h_="pointerdown",p_="pointermove",m_="pointerout",g_="pointerover",y_="mousedown",__="mousemove",v_="mouseout",b_="mouseover",x_="click",E_="mousewheel",S_="touchstart",A_="touchmove",$_="touchend",T_=["keydown","keypress","keyup",c_,d_,f_,h_,"pointerup",p_,m_,g_,y_,"mouseup",__,v_,b_,x_,"dblclick","wheel",E_,S_,A_,$_],O_=p_,D_=v_,M_=x_;class w_ extends s_{constructor(e,t){super(e,t),this._down=null,this._touch=null,this._first=!0,this._events={},this.events=T_,this.pointermove=k_([p_,__],[g_,b_],[m_,v_]),this.dragover=k_([f_],[c_],[d_]),this.pointerout=L_([m_,v_]),this.dragleave=L_([d_])}initialize(e,t,n){return this._canvas=e&&n_(e,"canvas"),[x_,y_,h_,p_,m_,d_].forEach((e=>C_(this,e))),super.initialize(e,t,n)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(e){this.fire(E_,e)}pointerdown(e){this._down=this._active,this.fire(h_,e)}mousedown(e){this._down=this._active,this.fire(y_,e)}click(e){this._down===this._active&&(this.fire(x_,e),this._down=null)}touchstart(e){this._touch=this.pickEvent(e.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(S_,e,!0)}touchmove(e){this.fire(A_,e,!0)}touchend(e){this.fire($_,e,!0),this._touch=null}fire(e,t,n){const r=n?this._touch:this._active,i=this._handlers[e];if(t.vegaType=e,e===M_&&r&&r.href?this.handleHref(t,r,r.href):e!==O_&&e!==D_||this.handleTooltip(t,r,e!==D_),i)for(let e=0,n=i.length;e<n;++e)i[e].handler.call(this._obj,t,r)}on(e,t){const n=this.eventName(e),r=this._handlers;return this._handlerIndex(r[n],e,t)<0&&(C_(this,e),(r[n]||(r[n]=[])).push({type:e,handler:t})),this}off(e,t){const n=this.eventName(e),r=this._handlers[n],i=this._handlerIndex(r,e,t);return i>=0&&r.splice(i,1),this}pickEvent(e){const t=o_(e,this._canvas),n=this._origin;return this.pick(this._scene,t[0],t[1],t[0]-n[0],t[1]-n[1])}pick(e,t,n,r,i){const a=this.context();return qy[e.marktype].pick.call(this,a,e,t,n,r,i)}}const I_=e=>e===S_||e===A_||e===$_?[S_,A_,$_]:[e];function C_(e,t){I_(t).forEach((t=>function(e,t){const n=e.canvas();n&&!e._events[t]&&(e._events[t]=1,n.addEventListener(t,e[t]?n=>e[t](n):n=>e.fire(t,n)))}(e,t)))}function R_(e,t,n){t.forEach((t=>e.fire(t,n)))}function k_(e,t,n){return function(r){const i=this._active,a=this.pickEvent(r);a===i||(i&&i.exit||R_(this,n,r),this._active=a,R_(this,t,r)),R_(this,e,r)}}function L_(e){return function(t){R_(this,e,t),this._active=null}}class N_ extends u_{constructor(e){super(e),this._options={},this._redraw=!1,this._dirty=new Xm,this._tempb=new Xm}initialize(e,t,n,r,i,a){return this._options=a||{},this._canvas=this._options.externalContext?null:Sc(1,1,this._options.type),e&&this._canvas&&(i_(e,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),super.initialize(e,t,n,r,i)}resize(e,t,n,r){if(super.resize(e,t,n,r),this._canvas)!function(e,t,n,r,i,a){const o="undefined"!=typeof HTMLElement&&e instanceof HTMLElement&&null!=e.parentNode,s=e.getContext("2d"),l=o?"undefined"!=typeof window&&window.devicePixelRatio||1:i;e.width=t*l,e.height=n*l;for(const e in a)s[e]=a[e];o&&1!==l&&(e.style.width=t+"px",e.style.height=n+"px"),s.pixelRatio=l,s.setTransform(l,0,0,l,l*r[0],l*r[1])}(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const e=this._options.externalContext;e||_e("CanvasRenderer is missing a valid canvas or context"),e.scale(this._scale,this._scale),e.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this}canvas(){return this._canvas}context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)}dirty(e){const t=this._tempb.clear().union(e.bounds);let n=e.mark.group;for(;n;)t.translate(n.x||0,n.y||0),n=n.mark.group;this._dirty.union(t)}_render(e,t){const n=this.context(),r=this._origin,i=this._width,a=this._height,o=this._dirty,s=F_(r,i,a);n.save();const l=this._redraw||o.empty()?(this._redraw=!1,s.expand(1)):function(e,t,n){return t.expand(1).round(),e.pixelRatio%1&&t.scale(e.pixelRatio).round().scale(1/e.pixelRatio),t.translate(-n[0]%1,-n[1]%1),e.beginPath(),e.rect(t.x1,t.y1,t.width(),t.height()),e.clip(),t}(n,s.intersect(o),r);return this.clear(-r[0],-r[1],i,a),this.draw(n,e,l,t),n.restore(),o.clear(),this}draw(e,t,n,r){if("group"!==t.marktype&&null!=r&&!r.includes(t.marktype))return;const i=qy[t.marktype];t.clip&&function(e,t){var n=t.clip;e.save(),et(n)?(e.beginPath(),n(e),e.clip()):ny(e,t.group)}(e,t),i.draw.call(this,e,t,n,r),t.clip&&e.restore()}clear(e,t,n,r){const i=this._options,a=this.context();"pdf"===i.type||i.externalContext||a.clearRect(e,t,n,r),null!=this._bgcolor&&(a.fillStyle=this._bgcolor,a.fillRect(e,t,n,r))}}const F_=(e,t,n)=>(new Xm).set(0,0,t,n).translate(-e[0],-e[1]),B_=(e,t)=>n=>{let r=n.target.__data__;r=Array.isArray(r)?r[0]:r,n.vegaType=n.type,t.call(e._obj,n,r)},j_="aria-hidden",H_="aria-label",z_="role",P_="aria-roledescription",U_="graphics-object",V_="graphics-symbol",W_=(e,t,n)=>({[z_]:e,[P_]:t,[H_]:n||void 0}),G_=Dt(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),q_={axis:{desc:"axis",caption:function(e){const t=e.datum,n=e.orient,r=t.title?Z_(e):null,i=e.context,a=i.scales[t.scale].value,o=i.dataflow.locale(),s=a.type;return("left"===n||"right"===n?"Y":"X")+"-axis"+(r?` titled '${r}'`:"")+` for a ${xp(s)?"discrete":s} scale`+` with ${em(o,a,e)}`}},legend:{desc:"legend",caption:function(e){const t=e.datum,n=t.title?Z_(e):null,r=`${t.type||""} legend`.trim(),i=t.scales,a=Object.keys(i),o=e.context,s=o.scales[i[a[0]]].value,l=o.dataflow.locale();return((u=r).length?u[0].toUpperCase()+u.slice(1):u)+(n?` titled '${n}'`:"")+` for ${function(e){return(e=e.map((e=>e+("fill"===e||"stroke"===e?" color":"")))).length<2?e[0]:e.slice(0,-1).join(", ")+" and "+He(e)}(a)}`+` with ${em(l,s,e)}`;var u}},"title-text":{desc:"title",caption:e=>`Title text '${X_(e)}'`},"title-subtitle":{desc:"subtitle",caption:e=>`Subtitle text '${X_(e)}'`}},Y_={ariaRole:z_,ariaRoleDescription:P_,description:H_};function K_(e,t){const n=!1===t.aria;if(e(j_,n||void 0),n||null==t.description)for(const t in Y_)e(Y_[t],void 0);else{const n=t.mark.marktype;e(H_,t.description),e(z_,t.ariaRole||("group"===n?U_:V_)),e(P_,t.ariaRoleDescription||`${n} mark`)}}function J_(e){return!1===e.aria?{[j_]:!0}:G_[e.role]?null:q_[e.role]?function(e,t){try{const n=e.items[0],r=t.caption||(()=>"");return W_(t.role||V_,t.desc,n.description||r(n))}catch(e){return null}}(e,q_[e.role]):function(e){const t=e.marktype,n="group"===t||"text"===t||e.items.some((e=>null!=e.description&&!1!==e.aria));return W_(n?U_:V_,`${t} mark container`,e.description)}(e)}function X_(e){return Qe(e.text).join(" ")}function Z_(e){try{return Qe(He(e.items).items[0].text).join(" ")}catch(e){return null}}const Q_=e=>(e+"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function ev(){let e="",t="",n="";const r=[],i=()=>t=n="",a=(e,n)=>{var r;return null!=n&&(t+=` ${e}="${r=n,Q_(r).replace(/"/g,""").replace(/\t/g,"	").replace(/\n/g,"
").replace(/\r/g,"
")}"`),o},o={open(s,...l){(a=>{t&&(e+=`${t}>${n}`,i()),r.push(a)})(s),t="<"+s;for(const e of l)for(const t in e)a(t,e[t]);return o},close(){const a=r.pop();return e+=t?t+(n?`>${n}</${a}>`:"/>"):`</${a}>`,i(),o},attr:a,text:e=>(n+=Q_(e),o),toString:()=>e};return o}const tv=e=>nv(ev(),e)+"";function nv(e,t){if(e.open(t.tagName),t.hasAttributes()){const n=t.attributes,r=n.length;for(let t=0;t<r;++t)e.attr(n[t].name,n[t].value)}if(t.hasChildNodes()){const n=t.childNodes;for(const t of n)3===t.nodeType?e.text(t.nodeValue):nv(e,t)}return e.close()}const rv={fill:"fill",fillOpacity:"fill-opacity",stroke:"stroke",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",strokeCap:"stroke-linecap",strokeJoin:"stroke-linejoin",strokeDash:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeMiterLimit:"stroke-miterlimit",opacity:"opacity"},iv={blend:"mix-blend-mode"},av={fill:"none","stroke-miterlimit":10},ov="http://www.w3.org/2000/xmlns/",sv=cy.xmlns;class lv extends u_{constructor(e){super(e),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}initialize(e,t,n,r,i){return this._defs={},this._clearDefs(),e&&(this._svg=r_(e,0,"svg",sv),this._svg.setAttributeNS(ov,"xmlns",sv),this._svg.setAttributeNS(ov,"xmlns:xlink",cy["xmlns:xlink"]),this._svg.setAttribute("version",cy.version),this._svg.setAttribute("class","marks"),i_(e,1),this._root=r_(this._svg,0,"g",sv),_v(this._root,av),i_(this._svg,1)),this.background(this._bgcolor),super.initialize(e,t,n,r,i)}background(e){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",e),super.background(...arguments)}resize(e,t,n,r){return super.resize(e,t,n,r),this._svg&&(_v(this._svg,{width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}),this._root.setAttribute("transform",`translate(${this._origin})`)),this._dirty=[],this}canvas(){return this._svg}svg(){const e=this._svg,t=this._bgcolor;if(!e)return null;let n;t&&(e.removeAttribute("style"),n=r_(e,0,"rect",sv),_v(n,{width:this._width,height:this._height,fill:t}));const r=tv(e);return t&&(e.removeChild(n),this._svg.style.setProperty("background-color",t)),r}_render(e,t){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,e,void 0,t),i_(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this}dirty(e){e.dirty!==this._dirtyID&&(e.dirty=this._dirtyID,this._dirty.push(e))}isDirty(e){return this._dirtyAll||!e._svg||!e._svg.ownerSVGElement||e.dirty===this._dirtyID}_dirtyCheck(){this._dirtyAll=!0;const e=this._dirty;if(!e.length||!this._dirtyID)return!0;const t=++this._dirtyID;let n,r,i,a,o,s,l;for(o=0,s=e.length;o<s;++o)n=e[o],r=n.mark,r.marktype!==i&&(i=r.marktype,a=qy[i]),r.zdirty&&r.dirty!==t&&(this._dirtyAll=!1,uv(n,t),r.items.forEach((e=>{e.dirty=t}))),r.zdirty||(n.exit?(a.nested&&r.items.length?(l=r.items[0],l._svg&&this._update(a,l._svg,l)):n._svg&&(l=n._svg.parentNode,l&&l.removeChild(n._svg)),n._svg=null):(n=a.nested?r.items[0]:n,n._update!==t&&(n._svg&&n._svg.ownerSVGElement?this._update(a,n._svg,n):(this._dirtyAll=!1,uv(n,t)),n._update=t)));return!this._dirtyAll}mark(e,t,n,r){if(!this.isDirty(t))return t._svg;const i=this._svg,a=t.marktype,o=qy[a],s=!1===t.interactive?"none":null,l="g"===o.tag,u=fv(t,e,n,"g",i);if("group"!==a&&null!=r&&!r.includes(a))return i_(u,0),t._svg;u.setAttribute("class",a_(t));const c=J_(t);for(const e in c)vv(u,e,c[e]);l||vv(u,"pointer-events",s),vv(u,"clip-path",t.clip?Jm(this,t,t.group):null);let d=null,f=0;const h=e=>{const t=this.isDirty(e),n=fv(e,u,d,o.tag,i);t&&(this._update(o,n,e),l&&function(e,t,n,r){t=t.lastChild.previousSibling;let i,a=0;zg(n,(n=>{i=e.mark(t,n,i,r),++a})),i_(t,1+a)}(this,n,e,r)),d=n,++f};return o.nested?t.items.length&&h(t.items[0]):zg(t,h),i_(u,f),u}_update(e,t,n){hv=t,pv=t.__values__,K_(gv,n),e.attr(gv,n,this);const r=mv[e.type];r&&r.call(this,e,t,n),hv&&this.style(hv,n)}style(e,t){if(null!=t){for(const n in rv){let r="font"===n?By(t):t[n];if(r===pv[n])continue;const i=rv[n];null==r?e.removeAttribute(i):(rm(r)&&(r=im(r,this._defs.gradient,bv())),e.setAttribute(i,r+"")),pv[n]=r}for(const n in iv)yv(e,iv[n],t[n])}}defs(){const e=this._svg,t=this._defs;let n=t.el,r=0;for(const i in t.gradient)n||(t.el=n=r_(e,1,"defs",sv)),r=cv(n,t.gradient[i],r);for(const i in t.clipping)n||(t.el=n=r_(e,1,"defs",sv)),r=dv(n,t.clipping[i],r);n&&(0===r?(e.removeChild(n),t.el=null):i_(n,r))}_clearDefs(){const e=this._defs;e.gradient={},e.clipping={}}}function uv(e,t){for(;e&&e.dirty!==t;e=e.mark.group){if(e.dirty=t,!e.mark||e.mark.dirty===t)return;e.mark.dirty=t}}function cv(e,t,n){let r,i,a;if("radial"===t.gradient){let r=r_(e,n++,"pattern",sv);_v(r,{id:nm+t.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),r=r_(r,0,"rect",sv),_v(r,{width:1,height:1,fill:`url(${bv()}#${t.id})`}),_v(e=r_(e,n++,"radialGradient",sv),{id:t.id,fx:t.x1,fy:t.y1,fr:t.r1,cx:t.x2,cy:t.y2,r:t.r2})}else _v(e=r_(e,n++,"linearGradient",sv),{id:t.id,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2});for(r=0,i=t.stops.length;r<i;++r)a=r_(e,r,"stop",sv),a.setAttribute("offset",t.stops[r].offset),a.setAttribute("stop-color",t.stops[r].color);return i_(e,r),n}function dv(e,t,n){let r;return(e=r_(e,n,"clipPath",sv)).setAttribute("id",t.id),t.path?(r=r_(e,0,"path",sv),r.setAttribute("d",t.path)):(r=r_(e,0,"rect",sv),_v(r,{x:0,y:0,width:t.width,height:t.height})),i_(e,1),n+1}function fv(e,t,n,r,i){let a,o=e._svg;if(!o&&(a=t.ownerDocument,o=t_(a,r,sv),e._svg=o,e.mark&&(o.__data__=e,o.__values__={fill:"default"},"g"===r))){const t=t_(a,"path",sv);o.appendChild(t),t.__data__=e;const n=t_(a,"g",sv);o.appendChild(n),n.__data__=e;const r=t_(a,"path",sv);o.appendChild(r),r.__data__=e,r.__values__={fill:"default"}}return(o.ownerSVGElement!==i||function(e,t){return e.parentNode&&e.parentNode.childNodes.length>1&&e.previousSibling!=t}(o,n))&&t.insertBefore(o,n?n.nextSibling:t.firstChild),o}let hv=null,pv=null;const mv={group(e,t,n){const r=hv=t.childNodes[2];pv=r.__values__,e.foreground(gv,n,this),pv=t.__values__,hv=t.childNodes[1],e.content(gv,n,this);const i=hv=t.childNodes[0];e.background(gv,n,this);const a=!1===n.mark.interactive?"none":null;if(a!==pv.events&&(vv(r,"pointer-events",a),vv(i,"pointer-events",a),pv.events=a),n.strokeForeground&&n.stroke){const e=n.fill;vv(r,"display",null),this.style(i,n),vv(i,"stroke",null),e&&(n.fill=null),pv=r.__values__,this.style(r,n),e&&(n.fill=e),hv=null}else vv(r,"display","none")},image(e,t,n){!1===n.smooth?(yv(t,"image-rendering","optimizeSpeed"),yv(t,"image-rendering","pixelated")):yv(t,"image-rendering",null)},text(e,t,n){const r=Ly(n);let i,a,o,s;Le(r)?(a=r.map((e=>Fy(n,e))),i=a.join("\n"),i!==pv.text&&(i_(t,0),o=t.ownerDocument,s=ky(n),a.forEach(((e,r)=>{const i=t_(o,"tspan",sv);i.__data__=n,i.textContent=e,r&&(i.setAttribute("x",0),i.setAttribute("dy",s)),t.appendChild(i)})),pv.text=i)):(a=Fy(n,r),a!==pv.text&&(t.textContent=a,pv.text=a)),vv(t,"font-family",By(n)),vv(t,"font-size",Ry(n)+"px"),vv(t,"font-style",n.fontStyle),vv(t,"font-variant",n.fontVariant),vv(t,"font-weight",n.fontWeight)}};function gv(e,t,n){t!==pv[e]&&(n?function(e,t,n,r){null!=n?e.setAttributeNS(r,t,n):e.removeAttributeNS(r,t)}(hv,e,t,n):vv(hv,e,t),pv[e]=t)}function yv(e,t,n){n!==pv[t]&&(null==n?e.style.removeProperty(t):e.style.setProperty(t,n+""),pv[t]=n)}function _v(e,t){for(const n in t)vv(e,n,t[n])}function vv(e,t,n){null!=n?e.setAttribute(t,n):e.removeAttribute(t)}function bv(){let e;return"undefined"==typeof window?"":(e=window.location).hash?e.href.slice(0,-e.hash.length):e.href}const xv={svgMarkTypes:["text"],svgOnTop:!0,debug:!1};class Ev extends u_{constructor(e){super(e),this._svgRenderer=new lv(e),this._canvasRenderer=new N_(e)}initialize(e,t,n,r,i){this._root_el=r_(e,0,"div");const a=r_(this._root_el,0,"div"),o=r_(this._root_el,1,"div");return this._root_el.style.position="relative",xv.debug||(a.style.height="100%",o.style.position="absolute",o.style.top="0",o.style.left="0",o.style.height="100%",o.style.width="100%"),this._svgEl=xv.svgOnTop?o:a,this._canvasEl=xv.svgOnTop?a:o,this._svgEl.style.pointerEvents="none",this._canvasRenderer.initialize(this._canvasEl,t,n,r,i),this._svgRenderer.initialize(this._svgEl,t,n,r,i),super.initialize(e,t,n,r,i)}dirty(e){return xv.svgMarkTypes.includes(e.mark.marktype)?this._svgRenderer.dirty(e):this._canvasRenderer.dirty(e),this}_render(e,t){const n=(t??["arc","area","image","line","path","rect","rule","shape","symbol","text","trail"]).filter((e=>!xv.svgMarkTypes.includes(e)));this._svgRenderer.render(e,xv.svgMarkTypes),this._canvasRenderer.render(e,n)}resize(e,t,n,r){return super.resize(e,t,n,r),this._svgRenderer.resize(e,t,n,r),this._canvasRenderer.resize(e,t,n,r),this}background(e){return xv.svgOnTop?this._canvasRenderer.background(e):this._svgRenderer.background(e),this}}const Sv="canvas",Av=Sv,$v="svg",Tv={};function Ov(e,t){return e=String(e||"").toLowerCase(),arguments.length>1?(Tv[e]=t,this):Tv[e]}function Dv(e,t,n,r){if(function(e,t,n){return e.bounds&&t.intersects(e.bounds)&&("group"===e.marktype||!1!==e.interactive&&(!n||n(e)))}(e,t,n)){const i=e.items,a=e.marktype,o=i.length;let s=0;if("group"===a)for(;s<o;++s)Mv(i[s],t,n,r);else for(const e=qy[a].isect;s<o;++s){const n=i[s];wv(n,t,e)&&r.push(n)}}return r}function Mv(e,t,n,r){n&&n(e.mark)&&wv(e,t,qy.group.isect)&&r.push(e);const i=e.items,a=i&&i.length;if(a){const o=e.x||0,s=e.y||0;t.translate(-o,-s);for(let e=0;e<a;++e)Dv(i[e],t,n,r);t.translate(o,s)}return r}function wv(e,t,n){const r=e.bounds;return t.encloses(r)||t.intersects(r)&&n(e,t)}Tv[Sv]=Tv.png={renderer:N_,headless:N_,handler:w_},Tv.svg={renderer:lv,headless:class extends u_{constructor(e){super(e),this._text=null,this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(e){const t=ev();t.open("svg",ut({},cy,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;return n&&"transparent"!==n&&"none"!==n&&t.open("rect",{width:this._width,height:this._height,fill:n}).close(),t.open("g",av,{transform:"translate("+this._origin+")"}),this.mark(t,e),t.close(),this.defs(t),this._text=t.close()+"",this}mark(e,t){const n=qy[t.marktype],r=n.tag,i=[K_,n.attr];e.open("g",{class:a_(t),"clip-path":t.clip?Jm(this,t,t.group):null},J_(t),{"pointer-events":"g"!==r&&!1===t.interactive?"none":null});const a=a=>{const o=this.href(a);if(o&&e.open("a",o),e.open(r,this.attr(t,a,i,"g"!==r?r:null)),"text"===r){const t=Ly(a);if(Le(t)){const n={x:0,dy:ky(a)};for(let r=0;r<t.length;++r)e.open("tspan",r?n:null).text(Fy(a,t[r])).close()}else e.text(Fy(a,t))}else if("g"===r){const r=a.strokeForeground,i=a.fill,o=a.stroke;r&&o&&(a.stroke=null),e.open("path",this.attr(t,a,n.background,"bgrect")).close(),e.open("g",this.attr(t,a,n.content)),zg(a,(t=>this.mark(e,t))),e.close(),r&&o?(i&&(a.fill=null),a.stroke=o,e.open("path",this.attr(t,a,n.foreground,"bgrect")).close(),i&&(a.fill=i)):e.open("path",this.attr(t,a,n.foreground,"bgfore")).close()}e.close(),o&&e.close()};return n.nested?t.items&&t.items.length&&a(t.items[0]):zg(t,a),e.close()}href(e){const t=e.href;let n;if(t){if(n=this._hrefs&&this._hrefs[t])return n;this.sanitizeURL(t).then((e=>{e["xlink:href"]=e.href,e.href=null,(this._hrefs||(this._hrefs={}))[t]=e}))}return null}attr(e,t,n,r){const i={},a=(e,t,n,r)=>{i[r||e]=t};return Array.isArray(n)?n.forEach((e=>e(a,t,this))):n(a,t,this),r&&function(e,t,n,r,i){let a;if(null==t)return e;if("bgrect"===r&&!1===n.interactive&&(e["pointer-events"]="none"),"bgfore"===r&&(!1===n.interactive&&(e["pointer-events"]="none"),e.display="none",null!==t.fill))return e;"image"===r&&!1===t.smooth&&(a=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),"text"===r&&(e["font-family"]=By(t),e["font-size"]=Ry(t)+"px",e["font-style"]=t.fontStyle,e["font-variant"]=t.fontVariant,e["font-weight"]=t.fontWeight);for(const n in rv){let r=t[n];const a=rv[n];("transparent"!==r||"fill"!==a&&"stroke"!==a)&&null!=r&&(rm(r)&&(r=im(r,i.gradient,"")),e[a]=r)}for(const e in iv){const n=t[e];null!=n&&(a=a||[],a.push(`${iv[e]}: ${n};`))}a&&(e.style=a.join(" "))}(i,t,e,r,this._defs),i}defs(e){const t=this._defs.gradient,n=this._defs.clipping;if(0!==Object.keys(t).length+Object.keys(n).length){e.open("defs");for(const n in t){const r=t[n],i=r.stops;"radial"===r.gradient?(e.open("pattern",{id:nm+n,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),e.open("rect",{width:"1",height:"1",fill:"url(#"+n+")"}).close(),e.close(),e.open("radialGradient",{id:n,fx:r.x1,fy:r.y1,fr:r.r1,cx:r.x2,cy:r.y2,r:r.r2})):e.open("linearGradient",{id:n,x1:r.x1,x2:r.x2,y1:r.y1,y2:r.y2});for(let t=0;t<i.length;++t)e.open("stop",{offset:i[t].offset,"stop-color":i[t].color}).close();e.close()}for(const t in n){const r=n[t];e.open("clipPath",{id:t}),r.path?e.open("path",{d:r.path}).close():e.open("rect",{x:0,y:0,width:r.width,height:r.height}).close(),e.close()}e.close()}}},handler:class extends s_{constructor(e,t){super(e,t);const n=this;n._hrefHandler=B_(n,((e,t)=>{t&&t.href&&n.handleHref(e,t,t.href)})),n._tooltipHandler=B_(n,((e,t)=>{n.handleTooltip(e,t,e.type!==D_)}))}initialize(e,t,n){let r=this._svg;return r&&(r.removeEventListener(M_,this._hrefHandler),r.removeEventListener(O_,this._tooltipHandler),r.removeEventListener(D_,this._tooltipHandler)),this._svg=r=e&&n_(e,"svg"),r&&(r.addEventListener(M_,this._hrefHandler),r.addEventListener(O_,this._tooltipHandler),r.addEventListener(D_,this._tooltipHandler)),super.initialize(e,t,n)}canvas(){return this._svg}on(e,t){const n=this.eventName(e),r=this._handlers;if(this._handlerIndex(r[n],e,t)<0){const i={type:e,handler:t,listener:B_(this,t)};(r[n]||(r[n]=[])).push(i),this._svg&&this._svg.addEventListener(n,i.listener)}return this}off(e,t){const n=this.eventName(e),r=this._handlers[n],i=this._handlerIndex(r,e,t);return i>=0&&(this._svg&&this._svg.removeEventListener(n,r[i].listener),r.splice(i,1)),this}}},Tv.hybrid={renderer:Ev,headless:Ev,handler:class extends w_{constructor(e,t){super(e,t)}initialize(e,t,n){const r=r_(r_(e,0,"div"),xv.svgOnTop?0:1,"div");return super.initialize(r,t,n)}}},Tv.none={};const Iv=new Xm,Cv="top",Rv="left",kv="right",Lv="bottom",Nv="start",Fv="middle",Bv="end",jv="x",Hv="y",zv="group",Pv="axis",Uv="title",Vv="legend",Wv="row-header",Gv="row-footer",qv="row-title",Yv="column-header",Kv="column-footer",Jv="column-title",Xv="fit-x",Zv="fit-y",Qv="none",eb="all",tb="each",nb="flush",rb="column",ib="row";function ab(e){Vo.call(this,null,e)}function ob(e,t,n){return t(e.bounds.clear(),e,n)}pt(ab,Vo,{transform(e,t){const n=t.dataflow,r=e.mark,i=r.marktype,a=qy[i],o=a.bound;let s,l=r.bounds;if(a.nested)r.items.length&&n.dirty(r.items[0]),l=ob(r,o),r.items.forEach((e=>{e.bounds.clear().union(l)}));else if(i===zv||e.modified())switch(t.visit(t.MOD,(e=>n.dirty(e))),l.clear(),r.items.forEach((e=>l.union(ob(e,o)))),r.role){case Pv:case Vv:case Uv:t.reflow()}else s=t.changed(t.REM),t.visit(t.ADD,(e=>{l.union(ob(e,o))})),t.visit(t.MOD,(e=>{s=s||l.alignsWith(e.bounds),n.dirty(e),l.union(ob(e,o))})),s&&(l.clear(),r.items.forEach((e=>l.union(e.bounds))));return function(e){const t=e.clip;if(et(t))t(xg(Iv.clear()));else{if(!t)return;Iv.set(0,0,e.group.width,e.group.height)}e.bounds.intersect(Iv)}(r),t.modifies("bounds")}});const sb=":vega_identifier:";function lb(e){Vo.call(this,0,e)}function ub(e){Vo.call(this,null,e)}function cb(e){Vo.call(this,null,e)}lb.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},pt(lb,Vo,{transform(e,t){const n=(i=t.dataflow)._signals[sb]||(i._signals[sb]=i.add(0)),r=e.as;var i;let a=n.value;return t.visit(t.ADD,(e=>e[r]=e[r]||++a)),n.set(this.value=a),t}}),pt(ub,Vo,{transform(e,t){let n=this.value;n||(n=t.dataflow.scenegraph().mark(e.markdef,function(e){const t=e.groups,n=e.parent;return t&&1===t.size?t.get(Object.keys(t.object)[0]):t&&n?t.lookup(n):null}(e),e.index),n.group.context=e.context,e.context.group||(e.context.group=n.group),n.source=this.source,n.clip=e.clip,n.interactive=e.interactive,this.value=n);const r=n.marktype===zv?Qm:Zm;return t.visit(t.ADD,(e=>r.call(e,n))),(e.modified("clip")||e.modified("interactive"))&&(n.clip=e.clip,n.interactive=!!e.interactive,n.zdirty=!0,t.reflow()),n.items=t.source,t}});const db={parity:e=>e.filter(((e,t)=>t%2?e.opacity=0:1)),greedy:(e,t)=>{let n;return e.filter(((e,r)=>r&&fb(n.bounds,e.bounds,t)?e.opacity=0:(n=e,1)))}},fb=(e,t,n)=>n>Math.max(t.x1-e.x2,e.x1-t.x2,t.y1-e.y2,e.y1-t.y2),hb=(e,t)=>{for(var n,r=1,i=e.length,a=e[0].bounds;r<i;a=n,++r)if(fb(a,n=e[r].bounds,t))return!0},pb=e=>{const t=e.bounds;return t.width()>1&&t.height()>1},mb=e=>(e.forEach((e=>e.opacity=1)),e),gb=(e,t)=>e.reflow(t.modified()).modifies("opacity");function yb(e){Vo.call(this,null,e)}pt(cb,Vo,{transform(e,t){const n=db[e.method]||db.parity,r=e.separation||0;let i,a,o=t.materialize(t.SOURCE).source;if(!o||!o.length)return;if(!e.method)return e.modified("method")&&(mb(o),t=gb(t,e)),t;if(o=o.filter(pb),!o.length)return;if(e.sort&&(o=o.slice().sort(e.sort)),i=mb(o),t=gb(t,e),i.length>=3&&hb(i,r)){do{i=n(i,r)}while(i.length>=3&&hb(i,r));i.length<3&&!He(o).opacity&&(i.length>1&&(He(i).opacity=0),He(o).opacity=1)}e.boundScale&&e.boundTolerance>=0&&(a=((e,t,n)=>{var r=e.range(),i=new Xm;return t===Cv||t===Lv?i.set(r[0],-1/0,r[1],1/0):i.set(-1/0,r[0],1/0,r[1]),i.expand(n||1),e=>i.encloses(e.bounds)})(e.boundScale,e.boundOrient,+e.boundTolerance),o.forEach((e=>{a(e)||(e.opacity=0)})));const s=i[0].mark.bounds.clear();return o.forEach((e=>{e.opacity&&s.union(e.bounds)})),t}}),pt(yb,Vo,{transform(e,t){const n=t.dataflow;if(t.visit(t.ALL,(e=>n.dirty(e))),t.fields&&t.fields.zindex){const e=t.source&&t.source[0];e&&(e.mark.zdirty=!0)}}});const _b=new Xm;function vb(e,t,n){return e[t]===n?0:(e[t]=n,1)}function bb(e){var t=e.items[0].orient;return t===Rv||t===kv}function xb(e,t,n,r){var i,a,o=t.items[0],s=o.datum,l=null!=o.translate?o.translate:.5,u=o.orient,c=function(e){let t=+e.grid;return[e.ticks?t++:-1,e.labels?t++:-1,t+ +e.domain]}(s),d=o.range,f=o.offset,h=o.position,p=o.minExtent,m=o.maxExtent,g=s.title&&o.items[c[2]].items[0],y=o.titlePadding,_=o.bounds,v=g&&Ny(g),b=0,x=0;switch(_b.clear().union(_),_.clear(),(i=c[0])>-1&&_.union(o.items[i].bounds),(i=c[1])>-1&&_.union(o.items[i].bounds),u){case Cv:b=h||0,x=-f,a=Math.max(p,Math.min(m,-_.y1)),_.add(0,-a).add(d,0),g&&Eb(e,g,a,y,v,0,-1,_);break;case Rv:b=-f,x=h||0,a=Math.max(p,Math.min(m,-_.x1)),_.add(-a,0).add(0,d),g&&Eb(e,g,a,y,v,1,-1,_);break;case kv:b=n+f,x=h||0,a=Math.max(p,Math.min(m,_.x2)),_.add(0,0).add(a,d),g&&Eb(e,g,a,y,v,1,1,_);break;case Lv:b=h||0,x=r+f,a=Math.max(p,Math.min(m,_.y2)),_.add(0,0).add(d,a),g&&Eb(e,g,a,y,0,0,1,_);break;default:b=o.x,x=o.y}return rg(_.translate(b,x),o),vb(o,"x",b+l)|vb(o,"y",x+l)&&(o.bounds=_b,e.dirty(o),o.bounds=_,e.dirty(o)),o.mark.bounds.clear().union(_)}function Eb(e,t,n,r,i,a,o,s){const l=t.bounds;if(t.auto){const s=o*(n+i+r);let u=0,c=0;e.dirty(t),a?u=(t.x||0)-(t.x=s):c=(t.y||0)-(t.y=s),t.mark.bounds.clear().union(l.translate(-u,-c)),e.dirty(t)}s.union(l)}const Sb=(e,t)=>Math.floor(Math.min(e,t)),Ab=(e,t)=>Math.ceil(Math.max(e,t));function $b(e){return(new Xm).set(0,0,e.width||0,e.height||0)}function Tb(e){const t=e.bounds.clone();return t.empty()?t.set(0,0,0,0):t.translate(-(e.x||0),-(e.y||0))}function Ob(e,t,n){const r=Ne(e)?e[t]:e;return null!=r?r:void 0!==n?n:0}function Db(e){return e<0?Math.ceil(-e):0}function Mb(e,t,n){var r,i,a,o,s,l,u,c,d,f,h,p=!n.nodirty,m=n.bounds===nb?$b:Tb,g=_b.set(0,0,0,0),y=Ob(n.align,rb),_=Ob(n.align,ib),v=Ob(n.padding,rb),b=Ob(n.padding,ib),x=n.columns||t.length,E=x<=0?1:Math.ceil(t.length/x),S=t.length,A=Array(S),$=Array(x),T=0,O=Array(S),D=Array(E),M=0,w=Array(S),I=Array(S),C=Array(S);for(i=0;i<x;++i)$[i]=0;for(i=0;i<E;++i)D[i]=0;for(i=0;i<S;++i)l=t[i],s=C[i]=m(l),l.x=l.x||0,w[i]=0,l.y=l.y||0,I[i]=0,a=i%x,o=~~(i/x),T=Math.max(T,u=Math.ceil(s.x2)),M=Math.max(M,c=Math.ceil(s.y2)),$[a]=Math.max($[a],u),D[o]=Math.max(D[o],c),A[i]=v+Db(s.x1),O[i]=b+Db(s.y1),p&&e.dirty(t[i]);for(i=0;i<S;++i)i%x==0&&(A[i]=0),i<x&&(O[i]=0);if(y===tb)for(a=1;a<x;++a){for(h=0,i=a;i<S;i+=x)h<A[i]&&(h=A[i]);for(i=a;i<S;i+=x)A[i]=h+$[a-1]}else if(y===eb){for(h=0,i=0;i<S;++i)i%x&&h<A[i]&&(h=A[i]);for(i=0;i<S;++i)i%x&&(A[i]=h+T)}else for(y=!1,a=1;a<x;++a)for(i=a;i<S;i+=x)A[i]+=$[a-1];if(_===tb)for(o=1;o<E;++o){for(h=0,r=(i=o*x)+x;i<r;++i)h<O[i]&&(h=O[i]);for(i=o*x;i<r;++i)O[i]=h+D[o-1]}else if(_===eb){for(h=0,i=x;i<S;++i)h<O[i]&&(h=O[i]);for(i=x;i<S;++i)O[i]=h+M}else for(_=!1,o=1;o<E;++o)for(r=(i=o*x)+x;i<r;++i)O[i]+=D[o-1];for(d=0,i=0;i<S;++i)d=A[i]+(i%x?d:0),w[i]+=d-t[i].x;for(a=0;a<x;++a)for(f=0,i=a;i<S;i+=x)f+=O[i],I[i]+=f-t[i].y;if(y&&Ob(n.center,rb)&&E>1)for(i=0;i<S;++i)(d=(s=y===eb?T:$[i%x])-C[i].x2-t[i].x-w[i])>0&&(w[i]+=d/2);if(_&&Ob(n.center,ib)&&1!==x)for(i=0;i<S;++i)(f=(s=_===eb?M:D[~~(i/x)])-C[i].y2-t[i].y-I[i])>0&&(I[i]+=f/2);for(i=0;i<S;++i)g.union(C[i].translate(w[i],I[i]));switch(d=Ob(n.anchor,jv),f=Ob(n.anchor,Hv),Ob(n.anchor,rb)){case Bv:d-=g.width();break;case Fv:d-=g.width()/2}switch(Ob(n.anchor,ib)){case Bv:f-=g.height();break;case Fv:f-=g.height()/2}for(d=Math.round(d),f=Math.round(f),g.clear(),i=0;i<S;++i)t[i].mark.bounds.clear();for(i=0;i<S;++i)(l=t[i]).x+=w[i]+=d,l.y+=I[i]+=f,g.union(l.mark.bounds.union(l.bounds.translate(w[i],I[i]))),p&&e.dirty(l);return g}function wb(e,t){return"x1"===t?e.x||0:"y1"===t?e.y||0:"x2"===t?(e.x||0)+(e.width||0):"y2"===t?(e.y||0)+(e.height||0):void 0}function Ib(e,t){return e.bounds[t]}function Cb(e,t,n,r,i,a,o,s,l,u,c,d,f,h){var p,m,g,y,_,v,b,x,E,S=n.length,A=0,$=0;if(!S)return A;for(p=c;p<S;p+=d)n[p]&&(A=o(A,l(n[p],u)));if(!t.length)return A;for(t.length>i&&(e.warn("Grid headers exceed limit: "+i),t=t.slice(0,i)),A+=a,m=0,y=t.length;m<y;++m)e.dirty(t[m]),t[m].mark.bounds.clear();for(p=c,m=0,y=t.length;m<y;++m,p+=d){for(_=(v=t[m]).mark.bounds,g=p;g>=0&&null==(b=n[g]);g-=f);s?(x=null==h?b.x:Math.round(b.bounds.x1+h*b.bounds.width()),E=A):(x=A,E=null==h?b.y:Math.round(b.bounds.y1+h*b.bounds.height())),_.union(v.bounds.translate(x-(v.x||0),E-(v.y||0))),v.x=x,v.y=E,e.dirty(v),$=o($,_[u])}return $}function Rb(e,t,n,r,i,a){if(t){e.dirty(t);var o=n,s=n;r?o=Math.round(i.x1+a*i.width()):s=Math.round(i.y1+a*i.height()),t.bounds.translate(o-(t.x||0),s-(t.y||0)),t.mark.bounds.clear().union(t.bounds),t.x=o,t.y=s,e.dirty(t)}}function kb(e,t,n,r,i,a,o){const s=function(e,t){const n=e[t]||{};return(t,r)=>null!=n[t]?n[t]:null!=e[t]?e[t]:r}(n,t),l=function(e,t){let n=-1/0;return e.forEach((e=>{null!=e.offset&&(n=Math.max(n,e.offset))})),n>-1/0?n:t}(e,s("offset",0)),u=s("anchor",Nv),c=u===Bv?1:u===Fv?.5:0,d={align:tb,bounds:s("bounds",nb),columns:"vertical"===s("direction")?1:e.length,padding:s("margin",8),center:s("center"),nodirty:!0};switch(t){case Rv:d.anchor={x:Math.floor(r.x1)-l,column:Bv,y:c*(o||r.height()+2*r.y1),row:u};break;case kv:d.anchor={x:Math.ceil(r.x2)+l,y:c*(o||r.height()+2*r.y1),row:u};break;case Cv:d.anchor={y:Math.floor(i.y1)-l,row:Bv,x:c*(a||i.width()+2*i.x1),column:u};break;case Lv:d.anchor={y:Math.ceil(i.y2)+l,x:c*(a||i.width()+2*i.x1),column:u};break;case"top-left":d.anchor={x:l,y:l};break;case"top-right":d.anchor={x:a-l,y:l,column:Bv};break;case"bottom-left":d.anchor={x:l,y:o-l,row:Bv};break;case"bottom-right":d.anchor={x:a-l,y:o-l,column:Bv,row:Bv}}return d}function Lb(e,t){var n,r,i=t.items[0],a=i.datum,o=i.orient,s=i.bounds,l=i.x,u=i.y;return i._bounds?i._bounds.clear().union(s):i._bounds=s.clone(),s.clear(),function(e,t,n){var r=t.padding,i=r-n.x,a=r-n.y;if(t.datum.title){var o=t.items[1].items[0],s=o.anchor,l=t.titlePadding||0,u=r-o.x,c=r-o.y;switch(o.orient){case Rv:i+=Math.ceil(o.bounds.width())+l;break;case kv:case Lv:break;default:a+=o.bounds.height()+l}switch((i||a)&&Fb(e,n,i,a),o.orient){case Rv:c+=Nb(t,n,o,s,1,1);break;case kv:u+=Nb(t,n,o,Bv,0,0)+l,c+=Nb(t,n,o,s,1,1);break;case Lv:u+=Nb(t,n,o,s,0,0),c+=Nb(t,n,o,Bv,-1,0,1)+l;break;default:u+=Nb(t,n,o,s,0,0)}(u||c)&&Fb(e,o,u,c),(u=Math.round(o.bounds.x1-r))<0&&(Fb(e,n,-u,0),Fb(e,o,-u,0))}else(i||a)&&Fb(e,n,i,a)}(e,i,i.items[0].items[0]),s=function(e,t){return e.items.forEach((e=>t.union(e.bounds))),t.x1=e.padding,t.y1=e.padding,t}(i,s),n=2*i.padding,r=2*i.padding,s.empty()||(n=Math.ceil(s.width()+n),r=Math.ceil(s.height()+r)),"symbol"===a.type&&function(e){const t=e.reduce(((e,t)=>(e[t.column]=Math.max(t.bounds.x2-t.x,e[t.column]||0),e)),{});e.forEach((e=>{e.width=t[e.column],e.height=e.bounds.y2-e.y}))}(i.items[0].items[0].items[0].items),o!==Qv&&(i.x=l=0,i.y=u=0),i.width=n,i.height=r,rg(s.set(l,u,l+n,u+r),i),i.mark.bounds.clear().union(s),i}function Nb(e,t,n,r,i,a,o){const s="symbol"!==e.datum.type,l=n.datum.vgrad,u=(!s||!a&&l||o?t:t.items[0]).bounds[i?"y2":"x2"]-e.padding,c=l&&a?u:0,d=l&&a?0:u,f=i<=0?0:Ny(n);return Math.round(r===Nv?c:r===Bv?d-f:.5*(u-f))}function Fb(e,t,n,r){t.x+=n,t.y+=r,t.bounds.translate(n,r),t.mark.bounds.translate(n,r),e.dirty(t)}function Bb(e){Vo.call(this,null,e)}function jb(e,t){let n=0;if(void 0===t)for(let t of e)(t=+t)&&(n+=t);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function Hb(e){Vo.call(this,null,e)}function zb(e){Vo.call(this,null,e)}function Pb(){return po({})}function Ub(e){Vo.call(this,null,e)}function Vb(e){Vo.call(this,[],e)}pt(Bb,Vo,{transform(e,t){const n=t.dataflow;return e.mark.items.forEach((t=>{e.layout&&function(e,t,n){var r,i,a,o,s,l,u,c=function(e){var t,n,r=e.items,i=r.length,a=0;const o={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;a<i;++a)if(n=(t=r[a]).items,t.marktype===zv)switch(t.role){case Pv:case Vv:case Uv:break;case Wv:o.rowheaders.push(...n);break;case Gv:o.rowfooters.push(...n);break;case Yv:o.colheaders.push(...n);break;case Kv:o.colfooters.push(...n);break;case qv:o.rowtitle=n[0];break;case Jv:o.coltitle=n[0];break;default:o.marks.push(...n)}return o}(t),d=c.marks,f=n.bounds===nb?wb:Ib,h=n.offset,p=n.columns||d.length,m=p<=0?1:Math.ceil(d.length/p),g=m*p;const y=Mb(e,d,n);y.empty()&&y.set(0,0,0,0),c.rowheaders&&(l=Ob(n.headerBand,ib,null),r=Cb(e,c.rowheaders,d,0,m,-Ob(h,"rowHeader"),Sb,0,f,"x1",0,p,1,l)),c.colheaders&&(l=Ob(n.headerBand,rb,null),i=Cb(e,c.colheaders,d,0,p,-Ob(h,"columnHeader"),Sb,1,f,"y1",0,1,p,l)),c.rowfooters&&(l=Ob(n.footerBand,ib,null),a=Cb(e,c.rowfooters,d,0,m,Ob(h,"rowFooter"),Ab,0,f,"x2",p-1,p,1,l)),c.colfooters&&(l=Ob(n.footerBand,rb,null),o=Cb(e,c.colfooters,d,0,p,Ob(h,"columnFooter"),Ab,1,f,"y2",g-p,1,p,l)),c.rowtitle&&(s=Ob(n.titleAnchor,ib),u=Ob(h,"rowTitle"),u=s===Bv?a+u:r-u,l=Ob(n.titleBand,ib,.5),Rb(e,c.rowtitle,u,0,y,l)),c.coltitle&&(s=Ob(n.titleAnchor,rb),u=Ob(h,"columnTitle"),u=s===Bv?o+u:i-u,l=Ob(n.titleBand,rb,.5),Rb(e,c.coltitle,u,1,y,l))}(n,t,e.layout),function(e,t,n){var r,i,a,o,s,l=t.items,u=Math.max(0,t.width||0),c=Math.max(0,t.height||0),d=(new Xm).set(0,0,u,c),f=d.clone(),h=d.clone(),p=[];for(o=0,s=l.length;o<s;++o)switch((i=l[o]).role){case Pv:(bb(i)?f:h).union(xb(e,i,u,c));break;case Uv:r=i;break;case Vv:p.push(Lb(e,i));break;case"frame":case"scope":case Wv:case Gv:case qv:case Yv:case Kv:case Jv:f.union(i.bounds),h.union(i.bounds);break;default:d.union(i.bounds)}if(p.length){const t={};p.forEach((e=>{(a=e.orient||kv)!==Qv&&(t[a]||(t[a]=[])).push(e)}));for(const r in t){const i=t[r];Mb(e,i,kb(i,r,n.legends,f,h,u,c))}p.forEach((t=>{const r=t.bounds;if(r.equals(t._bounds)||(t.bounds=t._bounds,e.dirty(t),t.bounds=r,e.dirty(t)),!n.autosize||"fit"!==n.autosize.type&&n.autosize.type!==Xv&&n.autosize.type!==Zv)d.union(r);else switch(t.orient){case Rv:case kv:d.add(r.x1,0).add(r.x2,0);break;case Cv:case Lv:d.add(0,r.y1).add(0,r.y2)}}))}d.union(f).union(h),r&&d.union(function(e,t,n,r,i){var a,o=t.items[0],s=o.frame,l=o.orient,u=o.anchor,c=o.offset,d=o.padding,f=o.items[0].items[0],h=o.items[1]&&o.items[1].items[0],p=l===Rv||l===kv?r:n,m=0,g=0,y=0,_=0,v=0;if(s!==zv?l===Rv?(m=i.y2,p=i.y1):l===kv?(m=i.y1,p=i.y2):(m=i.x1,p=i.x2):l===Rv&&(m=r,p=0),a=u===Nv?m:u===Bv?p:(m+p)/2,h&&h.text){switch(l){case Cv:case Lv:v=f.bounds.height()+d;break;case Rv:_=f.bounds.width()+d;break;case kv:_=-f.bounds.width()-d}_b.clear().union(h.bounds),_b.translate(_-(h.x||0),v-(h.y||0)),vb(h,"x",_)|vb(h,"y",v)&&(e.dirty(h),h.bounds.clear().union(_b),h.mark.bounds.clear().union(_b),e.dirty(h)),_b.clear().union(h.bounds)}else _b.clear();switch(_b.union(f.bounds),l){case Cv:g=a,y=i.y1-_b.height()-c;break;case Rv:g=i.x1-_b.width()-c,y=a;break;case kv:g=i.x2+_b.width()+c,y=a;break;case Lv:g=a,y=i.y2+c;break;default:g=o.x,y=o.y}return vb(o,"x",g)|vb(o,"y",y)&&(_b.translate(g,y),e.dirty(o),o.bounds.clear().union(_b),t.bounds.clear().union(_b),e.dirty(o)),o.bounds}(e,r,u,c,d)),t.clip&&d.set(0,0,t.width||0,t.height||0),function(e,t,n,r){const i=r.autosize||{},a=i.type;if(e._autosize<1||!a)return;let o=e._width,s=e._height,l=Math.max(0,t.width||0),u=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,t.height||0),d=Math.max(0,Math.ceil(-n.y1));const f=Math.max(0,Math.ceil(n.x2-l)),h=Math.max(0,Math.ceil(n.y2-c));if("padding"===i.contains){const t=e.padding();o-=t.left+t.right,s-=t.top+t.bottom}a===Qv?(u=0,d=0,l=o,c=s):"fit"===a?(l=Math.max(0,o-u-f),c=Math.max(0,s-d-h)):a===Xv?(l=Math.max(0,o-u-f),s=c+d+h):a===Zv?(o=l+u+f,c=Math.max(0,s-d-h)):"pad"===a&&(o=l+u+f,s=c+d+h),e._resizeView(o,s,l,c,[u,d],i.resize)}(e,t,d,n)}(n,t,e)})),function(e){return e&&"legend-entry"!==e.mark.role}(e.mark.group)?t.reflow():t}}),pt(Hb,Vo,{transform(e,t){if(this.value&&!e.modified())return t.StopPropagation;var n=t.dataflow.locale(),r=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=this.value,a=e.scale,o=jp(a,null==e.count?e.values?e.values.length:10:e.count,e.minstep),s=e.format||Pp(n,a,o,e.formatSpecifier,e.formatType,!!e.values),l=e.values?Hp(a,e.values,o):zp(a,o);return i&&(r.rem=i),i=l.map(((e,t)=>po({index:t/(l.length-1||1),value:e,label:s(e)}))),e.extra&&i.length&&i.push(po({index:-1,extra:{value:i[0].value},label:""})),r.source=i,r.add=i,this.value=i,r}}),pt(zb,Vo,{transform(e,t){var n=t.dataflow,r=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.item||Pb,a=e.key||fo,o=this.value;return Le(r.encode)&&(r.encode=null),o&&(e.modified("key")||t.modified(a))&&_e("DataJoin does not support modified key function or fields."),o||(t=t.addAll(),this.value=o=function(e){const t=ht().test((e=>e.exit));return t.lookup=n=>t.get(e(n)),t}(a)),t.visit(t.ADD,(e=>{const t=a(e);let n=o.get(t);n?n.exit?(o.empty--,r.add.push(n)):r.mod.push(n):(n=i(e),o.set(t,n),r.add.push(n)),n.datum=e,n.exit=!1})),t.visit(t.MOD,(e=>{const t=a(e),n=o.get(t);n&&(n.datum=e,r.mod.push(n))})),t.visit(t.REM,(e=>{const t=a(e),n=o.get(t);e!==n.datum||n.exit||(r.rem.push(n),n.exit=!0,++o.empty)})),t.changed(t.ADD_MOD)&&r.modifies("datum"),(t.clean()||e.clean&&o.empty>n.cleanThreshold)&&n.runAfter(o.clean),r}}),pt(Ub,Vo,{transform(e,t){var n=t.fork(t.ADD_REM),r=e.mod||!1,i=e.encoders,a=t.encode;if(Le(a)){if(!n.changed()&&!a.every((e=>i[e])))return t.StopPropagation;a=a[0],n.encode=null}var o="enter"===a,s=i.update||Te,l=i.enter||Te,u=i.exit||Te,c=(a&&!o?i[a]:s)||Te;if(t.changed(t.ADD)&&(t.visit(t.ADD,(t=>{l(t,e),s(t,e)})),n.modifies(l.output),n.modifies(s.output),c!==Te&&c!==s&&(t.visit(t.ADD,(t=>{c(t,e)})),n.modifies(c.output))),t.changed(t.REM)&&u!==Te&&(t.visit(t.REM,(t=>{u(t,e)})),n.modifies(u.output)),o||c!==Te){const i=t.MOD|(e.modified()?t.REFLOW:0);o?(t.visit(i,(t=>{const i=l(t,e)||r;(c(t,e)||i)&&n.mod.push(t)})),n.mod.length&&n.modifies(l.output)):t.visit(i,(t=>{(c(t,e)||r)&&n.mod.push(t)})),n.mod.length&&n.modifies(c.output)}return n.changed()?n:t.StopPropagation}}),pt(Vb,Vo,{transform(e,t){if(null!=this.value&&!e.modified())return t.StopPropagation;var n,r,i,a,o,s=t.dataflow.locale(),l=t.fork(t.NO_SOURCE|t.NO_FIELDS),u=this.value,c=e.type||kp,d=e.scale,f=+e.limit,h=jp(d,null==e.count?5:e.count,e.minstep),p=!!e.values||c===kp,m=e.format||Yp(s,d,h,c,e.formatSpecifier,e.formatType,p),g=e.values||Gp(d,h);return u&&(l.rem=u),c===kp?(f&&g.length>f?(t.dataflow.warn("Symbol legend count exceeds limit, filtering items."),u=g.slice(0,f-1),o=!0):u=g,et(i=e.size)?(e.values||0!==d(u[0])||(u=u.slice(1)),a=u.reduce(((t,n)=>Math.max(t,i(n,e))),0)):i=st(a=i||8),u=u.map(((t,n)=>po({index:n,label:m(t,n,u),value:t,offset:a,size:i(t,e)}))),o&&(o=g[u.length],u.push(po({index:u.length,label:`…${g.length-u.length} entries`,value:o,offset:a,size:i(o,e)})))):"gradient"===c?(n=d.domain(),r=Dp(d,n[0],He(n)),g.length<3&&!e.values&&n[0]!==He(n)&&(g=[n[0],He(n)]),u=g.map(((e,t)=>po({index:t,label:m(e,t,g),value:e,perc:r(e)})))):(i=g.length-1,r=function(e){const t=e.domain(),n=t.length-1;let r=+t[0],i=+He(t),a=i-r;if(e.type===Qh){const e=n?a/n:.1;r-=e,i+=e,a=i-r}return e=>(e-r)/a}(d),u=g.map(((e,t)=>po({index:t,label:m(e,t,g),value:e,perc:t?r(e):0,perc2:t===i?1:r(g[t+1])})))),l.source=u,l.add=u,this.value=u,l}});const Wb=e=>e.source.x,Gb=e=>e.source.y,qb=e=>e.target.x,Yb=e=>e.target.y;function Kb(e){Vo.call(this,{},e)}Kb.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},pt(Kb,Vo,{transform(e,t){var n=e.sourceX||Wb,r=e.sourceY||Gb,i=e.targetX||qb,a=e.targetY||Yb,o=e.as||"path",s=e.orient||"vertical",l=e.shape||"line",u=Qb.get(l+"-"+s)||Qb.get(l);return u||_e("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,(e=>{e[o]=u(n(e),r(e),i(e),a(e))})),t.reflow(e.modified()).modifies(o)}});const Jb=(e,t,n,r)=>"M"+e+","+t+"L"+n+","+r,Xb=(e,t,n,r)=>{var i=n-e,a=r-t,o=Math.hypot(i,a)/2;return"M"+e+","+t+"A"+o+","+o+" "+180*Math.atan2(a,i)/Math.PI+" 0 1 "+n+","+r},Zb=(e,t,n,r)=>{const i=n-e,a=r-t,o=.2*(i+a),s=.2*(a-i);return"M"+e+","+t+"C"+(e+o)+","+(t+s)+" "+(n+s)+","+(r-o)+" "+n+","+r},Qb=ht({line:Jb,"line-radial":(e,t,n,r)=>Jb(t*Math.cos(e),t*Math.sin(e),r*Math.cos(n),r*Math.sin(n)),arc:Xb,"arc-radial":(e,t,n,r)=>Xb(t*Math.cos(e),t*Math.sin(e),r*Math.cos(n),r*Math.sin(n)),curve:Zb,"curve-radial":(e,t,n,r)=>Zb(t*Math.cos(e),t*Math.sin(e),r*Math.cos(n),r*Math.sin(n)),"orthogonal-horizontal":(e,t,n,r)=>"M"+e+","+t+"V"+r+"H"+n,"orthogonal-vertical":(e,t,n,r)=>"M"+e+","+t+"H"+n+"V"+r,"orthogonal-radial":(e,t,n,r)=>{const i=Math.cos(e),a=Math.sin(e),o=Math.cos(n),s=Math.sin(n);return"M"+t*i+","+t*a+"A"+t+","+t+" 0 0,"+((Math.abs(n-e)>Math.PI?n<=e:n>e)?1:0)+" "+t*o+","+t*s+"L"+r*o+","+r*s},"diagonal-horizontal":(e,t,n,r)=>{const i=(e+n)/2;return"M"+e+","+t+"C"+i+","+t+" "+i+","+r+" "+n+","+r},"diagonal-vertical":(e,t,n,r)=>{const i=(t+r)/2;return"M"+e+","+t+"C"+e+","+i+" "+n+","+i+" "+n+","+r},"diagonal-radial":(e,t,n,r)=>{const i=Math.cos(e),a=Math.sin(e),o=Math.cos(n),s=Math.sin(n),l=(t+r)/2;return"M"+t*i+","+t*a+"C"+l*i+","+l*a+" "+l*o+","+l*s+" "+r*o+","+r*s}});function ex(e){Vo.call(this,null,e)}ex.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},pt(ex,Vo,{transform(e,t){var n,r,i,a=e.as||["startAngle","endAngle"],o=a[0],s=a[1],l=e.field||Ae,u=e.startAngle||0,c=null!=e.endAngle?e.endAngle:2*Math.PI,d=t.source,f=d.map(l),h=f.length,p=u,m=(c-u)/jb(f),g=Fs(h);for(e.sort&&g.sort(((e,t)=>f[e]-f[t])),n=0;n<h;++n)i=f[g[n]],(r=d[g[n]])[o]=p,r[s]=p+=i*m;return this.value=f,t.reflow(e.modified()).modifies(a)}});function tx(e){return bp(e)&&e!==Kh}const nx=Dt(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function rx(e){Vo.call(this,null,e),this.modified(!0)}function ix(e,t,n){Sp(e)&&(Math.abs(t.reduce(((e,t)=>e+(t<0?-1:t>0?1:0)),0))!==t.length&&n.warn("Log scale domain includes zero: "+St(t)));return t}function ax(e,t,n){return et(e)&&(t||n)?function(e,t){const n=t[0],r=He(t)-n;return function(t){return e(n+t*r)}}(e,ox(t||[0,1],n)):e}function ox(e,t){return t?e.slice().reverse():e}function sx(e){Vo.call(this,null,e)}pt(rx,Vo,{transform(e,t){var n=t.dataflow,r=this.value,i=function(e){var t,n=e.type,r="";return n===Kh?Kh+"-"+Ph:(function(e){const t=e.type;return bp(t)&&t!==qh&&t!==Yh&&(e.scheme||e.range&&e.range.length&&e.range.every(vt))}(e)&&(r=2===(t=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(null!=e.domainMid):0)?Kh+"-":3===t?Jh+"-":""),(r+n||Ph).toLowerCase())}(e);for(i in r&&i===r.type||(this.value=r=yp(i)()),e)if(!nx[i]){if("padding"===i&&tx(r.type))continue;et(r[i])?r[i](e[i]):n.warn("Unsupported scale property: "+i)}return function(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(null!=t.rangeStep)a=function(e,t,n){e!==np&&e!==tp&&_e("Only band and point scales support rangeStep.");var r=(null!=t.paddingOuter?t.paddingOuter:t.padding)||0,i=e===tp?1:(null!=t.paddingInner?t.paddingInner:t.padding)||0;return[0,t.rangeStep*zh(n,i,r)]}(r,t,n);else if(t.scheme&&(a=function(e,t,n){var r,i=t.schemeExtent;return Le(t.scheme)?r=Op(t.scheme,t.interpolate,t.interpolateGamma):(r=Rp(t.scheme.toLowerCase()))||_e(`Unrecognized scheme name: ${t.scheme}`),n=e===Qh?n+1:e===rp?n-1:e===Xh||e===Zh?+t.schemeCount||5:n,Ap(e)?ax(r,i,t.reverse):et(r)?function(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}(ax(r,i),n):e===ep?r:r.slice(0,n)}(r,t,n),et(a))){if(e.interpolator)return e.interpolator(a);_e(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&Ap(r))return e.interpolator(Op(ox(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(Mp(t.interpolate,t.interpolateGamma)):et(e.round)?e.round(i):et(e.rangeRound)&&e.interpolate(i?Rd:Cd),a&&e.range(ox(a,t.reverse))}(r,e,function(e,t,n){let r=t.bins;if(r&&!Le(r)){const t=e.domain(),n=t[0],i=He(t),a=r.step;let o=null==r.start?n:r.start,s=null==r.stop?i:r.stop;a||_e("Scale bins parameter missing step property."),o<n&&(o=a*Math.ceil(n/a)),s>i&&(s=a*Math.floor(i/a)),r=Fs(o,s+a/2,a)}return r?e.bins=r:e.bins&&delete e.bins,e.type===rp&&(r?t.domain||t.domainRaw||(e.domain(r),n=r.length):e.bins=e.domain()),n}(r,e,function(e,t,n){const r=function(e,t,n){return t?(e.domain(ix(e.type,t,n)),t.length):-1}(e,t.domainRaw,n);if(r>-1)return r;var i,a,o=t.domain,s=e.type,l=t.zero||void 0===t.zero&&function(e){const t=e.type;return!e.bins&&(t===Ph||t===Vh||t===Wh)}(e);if(!o)return 0;if((l||null!=t.domainMin||null!=t.domainMax||null!=t.domainMid)&&(i=(o=o.slice()).length-1||1,l&&(o[0]>0&&(o[0]=0),o[i]<0&&(o[i]=0)),null!=t.domainMin&&(o[0]=t.domainMin),null!=t.domainMax&&(o[i]=t.domainMax),null!=t.domainMid)){const e=(a=t.domainMid)>o[i]?i+1:a<o[0]?0:i;e!==i&&n.warn("Scale domainMid exceeds domain min or max.",a),o.splice(e,0,a)}return tx(s)&&t.padding&&o[0]!==He(o)&&(o=function(e,t,n,r,i,a){var o=Math.abs(He(n)-n[0]),s=o/(o-2*r),l=e===Uh?Je(t,null,s):e===Wh?Xe(t,null,s,.5):e===Vh?Xe(t,null,s,i||1):e===Gh?Ze(t,null,s,a||1):Ke(t,null,s);return(t=t.slice())[0]=l[0],t[t.length-1]=l[1],t}(s,o,t.range,t.padding,t.exponent,t.constant)),e.domain(ix(s,o,n)),s===ep&&e.unknown(t.domainImplicit?If:void 0),t.nice&&e.nice&&e.nice(!0!==t.nice&&jp(e,t.nice)||null),o.length}(r,e,n))),t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),pt(sx,Vo,{transform(e,t){const n=e.modified("sort")||t.changed(t.ADD)||t.modified(e.sort.fields)||t.modified("datum");return n&&t.source.sort(_o(e.sort)),this.modified(n),t}});const lx="zero",ux="center",cx="normalize",dx=["y0","y1"];function fx(e){Vo.call(this,null,e)}function hx(e,t,n,r,i){for(var a,o=(t-e.sum)/2,s=e.length,l=0;l<s;++l)(a=e[l])[r]=o,a[i]=o+=Math.abs(n(a))}function px(e,t,n,r,i){for(var a,o=1/e.sum,s=0,l=e.length,u=0,c=0;u<l;++u)(a=e[u])[r]=s,a[i]=s=o*(c+=Math.abs(n(a)))}function mx(e,t,n,r,i){for(var a,o,s=0,l=0,u=e.length,c=0;c<u;++c)(a=+n(o=e[c]))<0?(o[r]=l,o[i]=l+=a):(o[r]=s,o[i]=s+=a)}fx.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:lx,values:[lx,ux,cx]},{name:"as",type:"string",array:!0,length:2,default:dx}]},pt(fx,Vo,{transform(e,t){var n,r,i,a,o=e.as||dx,s=o[0],l=o[1],u=_o(e.sort),c=e.field||Ae,d=e.offset===ux?hx:e.offset===cx?px:mx;for(n=function(e,t,n,r){var i,a,o,s,l,u,c,d,f,h=[],p=e=>e(l);if(null==t)h.push(e.slice());else for(i={},a=0,o=e.length;a<o;++a)l=e[a],(c=i[u=t.map(p)])||(i[u]=c=[],h.push(c)),c.push(l);for(u=0,f=0,s=h.length;u<s;++u){for(a=0,d=0,o=(c=h[u]).length;a<o;++a)d+=Math.abs(r(c[a]));c.sum=d,d>f&&(f=d),n&&c.sort(n)}return h.max=f,h}(t.source,e.groupby,u,c),r=0,i=n.length,a=n.max;r<i;++r)d(n[r],a,c,s,l);return t.reflow(e.modified()).modifies(o)}});const gx=e=>e;function yx(e,t){e&&vx.hasOwnProperty(e.type)&&vx[e.type](e,t)}var _x={Feature:function(e,t){yx(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,i=n.length;++r<i;)yx(n[r].geometry,t)}},vx={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)e=n[r],t.point(e[0],e[1],e[2])},LineString:function(e,t){bx(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)bx(n[r],t,0)},Polygon:function(e,t){xx(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)xx(n[r],t)},GeometryCollection:function(e,t){for(var n=e.geometries,r=-1,i=n.length;++r<i;)yx(n[r],t)}};function bx(e,t,n){var r,i=-1,a=e.length-n;for(t.lineStart();++i<a;)r=e[i],t.point(r[0],r[1],r[2]);t.lineEnd()}function xx(e,t){var n=-1,r=e.length;for(t.polygonStart();++n<r;)bx(e[n],t,1);t.polygonEnd()}function Ex(e,t){e&&_x.hasOwnProperty(e.type)?_x[e.type](e,t):yx(e,t)}class Sx{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const t=this._partials;let n=0;for(let r=0;r<this._n&&r<32;r++){const i=t[r],a=e+i,o=Math.abs(e)<Math.abs(i)?e-(a-i):i-(a-e);o&&(t[n++]=o),e=a}return t[n]=e,this._n=n+1,this}valueOf(){const e=this._partials;let t,n,r,i=this._n,a=0;if(i>0){for(a=e[--i];i>0&&(t=a,n=e[--i],a=t+n,r=n-(a-t),!r););i>0&&(r<0&&e[i-1]<0||r>0&&e[i-1]>0)&&(n=2*r,t=a+n,n==t-a&&(a=t))}return a}}var Ax=1e-6,$x=1e-12,Tx=Math.PI,Ox=Tx/2,Dx=Tx/4,Mx=2*Tx,wx=180/Tx,Ix=Tx/180,Cx=Math.abs,Rx=Math.atan,kx=Math.atan2,Lx=Math.cos,Nx=Math.ceil,Fx=Math.exp,Bx=(Math.floor,Math.hypot),jx=Math.log,Hx=Math.pow,zx=Math.sin,Px=Math.sign||function(e){return e>0?1:e<0?-1:0},Ux=Math.sqrt,Vx=Math.tan;function Wx(e){return e>1?0:e<-1?Tx:Math.acos(e)}function Gx(e){return e>1?Ox:e<-1?-Ox:Math.asin(e)}function qx(){}var Yx,Kx,Jx,Xx,Zx=new Sx,Qx=new Sx,eE={point:qx,lineStart:qx,lineEnd:qx,polygonStart:function(){eE.lineStart=tE,eE.lineEnd=iE},polygonEnd:function(){eE.lineStart=eE.lineEnd=eE.point=qx,Zx.add(Cx(Qx)),Qx=new Sx},result:function(){var e=Zx/2;return Zx=new Sx,e}};function tE(){eE.point=nE}function nE(e,t){eE.point=rE,Yx=Jx=e,Kx=Xx=t}function rE(e,t){Qx.add(Xx*e-Jx*t),Jx=e,Xx=t}function iE(){rE(Yx,Kx)}const aE=eE;var oE=1/0,sE=oE,lE=-oE,uE=lE,cE={point:function(e,t){e<oE&&(oE=e),e>lE&&(lE=e),t<sE&&(sE=t),t>uE&&(uE=t)},lineStart:qx,lineEnd:qx,polygonStart:qx,polygonEnd:qx,result:function(){var e=[[oE,sE],[lE,uE]];return lE=uE=-(sE=oE=1/0),e}};const dE=cE;var fE,hE,pE,mE,gE=0,yE=0,_E=0,vE=0,bE=0,xE=0,EE=0,SE=0,AE=0,$E={point:TE,lineStart:OE,lineEnd:wE,polygonStart:function(){$E.lineStart=IE,$E.lineEnd=CE},polygonEnd:function(){$E.point=TE,$E.lineStart=OE,$E.lineEnd=wE},result:function(){var e=AE?[EE/AE,SE/AE]:xE?[vE/xE,bE/xE]:_E?[gE/_E,yE/_E]:[NaN,NaN];return gE=yE=_E=vE=bE=xE=EE=SE=AE=0,e}};function TE(e,t){gE+=e,yE+=t,++_E}function OE(){$E.point=DE}function DE(e,t){$E.point=ME,TE(pE=e,mE=t)}function ME(e,t){var n=e-pE,r=t-mE,i=Ux(n*n+r*r);vE+=i*(pE+e)/2,bE+=i*(mE+t)/2,xE+=i,TE(pE=e,mE=t)}function wE(){$E.point=TE}function IE(){$E.point=RE}function CE(){kE(fE,hE)}function RE(e,t){$E.point=kE,TE(fE=pE=e,hE=mE=t)}function kE(e,t){var n=e-pE,r=t-mE,i=Ux(n*n+r*r);vE+=i*(pE+e)/2,bE+=i*(mE+t)/2,xE+=i,EE+=(i=mE*e-pE*t)*(pE+e),SE+=i*(mE+t),AE+=3*i,TE(pE=e,mE=t)}const LE=$E;function NE(e){this._context=e}NE.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,Mx)}},result:qx};var FE,BE,jE,HE,zE,PE=new Sx,UE={point:qx,lineStart:function(){UE.point=VE},lineEnd:function(){FE&&WE(BE,jE),UE.point=qx},polygonStart:function(){FE=!0},polygonEnd:function(){FE=null},result:function(){var e=+PE;return PE=new Sx,e}};function VE(e,t){UE.point=WE,BE=HE=e,jE=zE=t}function WE(e,t){HE-=e,zE-=t,PE.add(Ux(HE*HE+zE*zE)),HE=e,zE=t}const GE=UE;let qE,YE,KE,JE;class XE{constructor(e){this._append=null==e?ZE:function(e){const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return ZE;if(t!==qE){const e=10**t;qE=t,YE=function(t){let n=1;this._+=t[0];for(const r=t.length;n<r;++n)this._+=Math.round(arguments[n]*e)/e+t[n]}}return YE}(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(e,t){switch(this._point){case 0:this._append`M${e},${t}`,this._point=1;break;case 1:this._append`L${e},${t}`;break;default:if(this._append`M${e},${t}`,this._radius!==KE||this._append!==YE){const e=this._radius,t=this._;this._="",this._append`m0,${e}a${e},${e} 0 1,1 0,${-2*e}a${e},${e} 0 1,1 0,${2*e}z`,KE=e,YE=this._append,JE=this._,this._=t}this._+=JE}}result(){const e=this._;return this._="",e.length?e:null}}function ZE(e){let t=1;this._+=e[0];for(const n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function QE(e,t){let n,r,i=3,a=4.5;function o(e){return e&&("function"==typeof a&&r.pointRadius(+a.apply(this,arguments)),Ex(e,n(r))),r.result()}return o.area=function(e){return Ex(e,n(aE)),aE.result()},o.measure=function(e){return Ex(e,n(GE)),GE.result()},o.bounds=function(e){return Ex(e,n(dE)),dE.result()},o.centroid=function(e){return Ex(e,n(LE)),LE.result()},o.projection=function(t){return arguments.length?(n=null==t?(e=null,gx):(e=t).stream,o):e},o.context=function(e){return arguments.length?(r=null==e?(t=null,new XE(i)):new NE(t=e),"function"!=typeof a&&r.pointRadius(a),o):t},o.pointRadius=function(e){return arguments.length?(a="function"==typeof e?e:(r.pointRadius(+e),+e),o):a},o.digits=function(e){if(!arguments.length)return i;if(null==e)i=null;else{const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);i=t}return null===t&&(r=new XE(i)),o},o.projection(e).digits(i).context(t)}function eS(){var e,t=[];return{point:function(t,n,r){e.push([t,n,r])},lineStart:function(){t.push(e=[])},lineEnd:qx,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function tS(e,t){return Cx(e[0]-t[0])<Ax&&Cx(e[1]-t[1])<Ax}function nS(e,t,n,r){this.x=e,this.z=t,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function rS(e,t,n,r,i){var a,o,s=[],l=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,n,r=e[0],o=e[t];if(tS(r,o)){if(!r[2]&&!o[2]){for(i.lineStart(),a=0;a<t;++a)i.point((r=e[a])[0],r[1]);return void i.lineEnd()}o[0]+=2*Ax}s.push(n=new nS(r,e,null,!0)),l.push(n.o=new nS(r,null,n,!1)),s.push(n=new nS(o,e,null,!1)),l.push(n.o=new nS(o,null,n,!0))}})),s.length){for(l.sort(t),iS(s),iS(l),a=0,o=l.length;a<o;++a)l[a].e=n=!n;for(var u,c,d=s[0];;){for(var f=d,h=!0;f.v;)if((f=f.n)===d)return;u=f.z,i.lineStart();do{if(f.v=f.o.v=!0,f.e){if(h)for(a=0,o=u.length;a<o;++a)i.point((c=u[a])[0],c[1]);else r(f.x,f.n.x,1,i);f=f.n}else{if(h)for(u=f.p.z,a=u.length-1;a>=0;--a)i.point((c=u[a])[0],c[1]);else r(f.x,f.p.x,-1,i);f=f.p}u=(f=f.o).z,h=!h}while(!f.v);i.lineEnd()}}}function iS(e){if(t=e.length){for(var t,n,r=0,i=e[0];++r<t;)i.n=n=e[r],n.p=i,i=n;i.n=n=e[0],n.p=i}}function aS(e){return[kx(e[1],e[0]),Gx(e[2])]}function oS(e){var t=e[0],n=e[1],r=Lx(n);return[r*Lx(t),r*zx(t),zx(n)]}function sS(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function lS(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function uS(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function cS(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function dS(e){var t=Ux(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}function fS(e){return Cx(e[0])<=Tx?e[0]:Px(e[0])*((Cx(e[0])+Tx)%Mx-Tx)}function hS(e){return Array.from(function*(e){for(const t of e)yield*t}(e))}function pS(e,t,n,r){return function(i){var a,o,s,l=t(i),u=eS(),c=t(u),d=!1,f={point:h,lineStart:m,lineEnd:g,polygonStart:function(){f.point=y,f.lineStart=_,f.lineEnd=v,o=[],a=[]},polygonEnd:function(){f.point=h,f.lineStart=m,f.lineEnd=g,o=hS(o);var e=function(e,t){var n=fS(t),r=t[1],i=zx(r),a=[zx(n),-Lx(n),0],o=0,s=0,l=new Sx;1===i?r=Ox+Ax:-1===i&&(r=-Ox-Ax);for(var u=0,c=e.length;u<c;++u)if(f=(d=e[u]).length)for(var d,f,h=d[f-1],p=fS(h),m=h[1]/2+Dx,g=zx(m),y=Lx(m),_=0;_<f;++_,p=b,g=E,y=S,h=v){var v=d[_],b=fS(v),x=v[1]/2+Dx,E=zx(x),S=Lx(x),A=b-p,$=A>=0?1:-1,T=$*A,O=T>Tx,D=g*E;if(l.add(kx(D*$*zx(T),y*S+D*Lx(T))),o+=O?A+$*Mx:A,O^p>=n^b>=n){var M=lS(oS(h),oS(v));dS(M);var w=lS(a,M);dS(w);var I=(O^A>=0?-1:1)*Gx(w[2]);(r>I||r===I&&(M[0]||M[1]))&&(s+=O^A>=0?1:-1)}}return(o<-Ax||o<Ax&&l<-$x)^1&s}(a,r);o.length?(d||(i.polygonStart(),d=!0),rS(o,gS,e,n,i)):e&&(d||(i.polygonStart(),d=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),d&&(i.polygonEnd(),d=!1),o=a=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(t,n){e(t,n)&&i.point(t,n)}function p(e,t){l.point(e,t)}function m(){f.point=p,l.lineStart()}function g(){f.point=h,l.lineEnd()}function y(e,t){s.push([e,t]),c.point(e,t)}function _(){c.lineStart(),s=[]}function v(){y(s[0][0],s[0][1]),c.lineEnd();var e,t,n,r,l=c.clean(),f=u.result(),h=f.length;if(s.pop(),a.push(s),s=null,h)if(1&l){if((t=(n=f[0]).length-1)>0){for(d||(i.polygonStart(),d=!0),i.lineStart(),e=0;e<t;++e)i.point((r=n[e])[0],r[1]);i.lineEnd()}}else h>1&&2&l&&f.push(f.pop().concat(f.shift())),o.push(f.filter(mS))}return f}}function mS(e){return e.length>1}function gS(e,t){return((e=e.x)[0]<0?e[1]-Ox-Ax:Ox-e[1])-((t=t.x)[0]<0?t[1]-Ox-Ax:Ox-t[1])}const yS=pS((function(){return!0}),(function(e){var t,n=NaN,r=NaN,i=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(a,o){var s=a>0?Tx:-Tx,l=Cx(a-n);Cx(l-Tx)<Ax?(e.point(n,r=(r+o)/2>0?Ox:-Ox),e.point(i,r),e.lineEnd(),e.lineStart(),e.point(s,r),e.point(a,r),t=0):i!==s&&l>=Tx&&(Cx(n-i)<Ax&&(n-=i*Ax),Cx(a-s)<Ax&&(a-=s*Ax),r=function(e,t,n,r){var i,a,o=zx(e-n);return Cx(o)>Ax?Rx((zx(t)*(a=Lx(r))*zx(n)-zx(r)*(i=Lx(t))*zx(e))/(i*a*o)):(t+r)/2}(n,r,a,o),e.point(i,r),e.lineEnd(),e.lineStart(),e.point(s,r),t=0),e.point(n=a,r=o),i=s},lineEnd:function(){e.lineEnd(),n=r=NaN},clean:function(){return 2-t}}}),(function(e,t,n,r){var i;if(null==e)i=n*Ox,r.point(-Tx,i),r.point(0,i),r.point(Tx,i),r.point(Tx,0),r.point(Tx,-i),r.point(0,-i),r.point(-Tx,-i),r.point(-Tx,0),r.point(-Tx,i);else if(Cx(e[0]-t[0])>Ax){var a=e[0]<t[0]?Tx:-Tx;i=n*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(t[0],t[1])}),[-Tx,-Ox]);function _S(e,t){(t=oS(t))[0]-=e,dS(t);var n=Wx(-t[1]);return((-t[2]<0?-n:n)+Mx-Ax)%Mx}var vS=1e9,bS=-vS;function xS(e,t,n,r){function i(i,a){return e<=i&&i<=n&&t<=a&&a<=r}function a(i,a,s,u){var c=0,d=0;if(null==i||(c=o(i,s))!==(d=o(a,s))||l(i,a)<0^s>0)do{u.point(0===c||3===c?e:n,c>1?r:t)}while((c=(c+s+4)%4)!==d);else u.point(a[0],a[1])}function o(r,i){return Cx(r[0]-e)<Ax?i>0?0:3:Cx(r[0]-n)<Ax?i>0?2:1:Cx(r[1]-t)<Ax?i>0?1:0:i>0?3:2}function s(e,t){return l(e.x,t.x)}function l(e,t){var n=o(e,1),r=o(t,1);return n!==r?n-r:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(o){var l,u,c,d,f,h,p,m,g,y,_,v=o,b=eS(),x={point:E,lineStart:function(){x.point=S,u&&u.push(c=[]),y=!0,g=!1,p=m=NaN},lineEnd:function(){l&&(S(d,f),h&&g&&b.rejoin(),l.push(b.result())),x.point=E,g&&v.lineEnd()},polygonStart:function(){v=b,l=[],u=[],_=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,i=u.length;n<i;++n)for(var a,o,s=u[n],l=1,c=s.length,d=s[0],f=d[0],h=d[1];l<c;++l)a=f,o=h,f=(d=s[l])[0],h=d[1],o<=r?h>r&&(f-a)*(r-o)>(h-o)*(e-a)&&++t:h<=r&&(f-a)*(r-o)<(h-o)*(e-a)&&--t;return t}(),n=_&&t,i=(l=hS(l)).length;(n||i)&&(o.polygonStart(),n&&(o.lineStart(),a(null,null,1,o),o.lineEnd()),i&&rS(l,s,t,a,o),o.polygonEnd()),v=o,l=u=c=null}};function E(e,t){i(e,t)&&v.point(e,t)}function S(a,o){var s=i(a,o);if(u&&c.push([a,o]),y)d=a,f=o,h=s,y=!1,s&&(v.lineStart(),v.point(a,o));else if(s&&g)v.point(a,o);else{var l=[p=Math.max(bS,Math.min(vS,p)),m=Math.max(bS,Math.min(vS,m))],b=[a=Math.max(bS,Math.min(vS,a)),o=Math.max(bS,Math.min(vS,o))];!function(e,t,n,r,i,a){var o,s=e[0],l=e[1],u=0,c=1,d=t[0]-s,f=t[1]-l;if(o=n-s,d||!(o>0)){if(o/=d,d<0){if(o<u)return;o<c&&(c=o)}else if(d>0){if(o>c)return;o>u&&(u=o)}if(o=i-s,d||!(o<0)){if(o/=d,d<0){if(o>c)return;o>u&&(u=o)}else if(d>0){if(o<u)return;o<c&&(c=o)}if(o=r-l,f||!(o>0)){if(o/=f,f<0){if(o<u)return;o<c&&(c=o)}else if(f>0){if(o>c)return;o>u&&(u=o)}if(o=a-l,f||!(o<0)){if(o/=f,f<0){if(o>c)return;o>u&&(u=o)}else if(f>0){if(o<u)return;o<c&&(c=o)}return u>0&&(e[0]=s+u*d,e[1]=l+u*f),c<1&&(t[0]=s+c*d,t[1]=l+c*f),!0}}}}}(l,b,e,t,n,r)?s&&(v.lineStart(),v.point(a,o),_=!1):(g||(v.lineStart(),v.point(l[0],l[1])),v.point(b[0],b[1]),s||v.lineEnd(),_=!1)}p=a,m=o,g=s}return x}}function ES(e,t){function n(n,r){return n=e(n,r),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,r){return(n=t.invert(n,r))&&e.invert(n[0],n[1])}),n}function SS(e,t){return Cx(e)>Tx&&(e-=Math.round(e/Mx)*Mx),[e,t]}function AS(e,t,n){return(e%=Mx)?t||n?ES(TS(e),OS(t,n)):TS(e):t||n?OS(t,n):SS}function $S(e){return function(t,n){return Cx(t+=e)>Tx&&(t-=Math.round(t/Mx)*Mx),[t,n]}}function TS(e){var t=$S(e);return t.invert=$S(-e),t}function OS(e,t){var n=Lx(e),r=zx(e),i=Lx(t),a=zx(t);function o(e,t){var o=Lx(t),s=Lx(e)*o,l=zx(e)*o,u=zx(t),c=u*n+s*r;return[kx(l*i-c*a,s*n-u*r),Gx(c*i+l*a)]}return o.invert=function(e,t){var o=Lx(t),s=Lx(e)*o,l=zx(e)*o,u=zx(t),c=u*i-l*a;return[kx(l*i+u*a,s*n+c*r),Gx(c*n-s*r)]},o}function DS(e){return function(t){var n=new MS;for(var r in e)n[r]=e[r];return n.stream=t,n}}function MS(){}function wS(e,t,n){var r=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=r&&e.clipExtent(null),Ex(n,e.stream(dE)),t(dE.result()),null!=r&&e.clipExtent(r),e}function IS(e,t,n){return wS(e,(function(n){var r=t[1][0]-t[0][0],i=t[1][1]-t[0][1],a=Math.min(r/(n[1][0]-n[0][0]),i/(n[1][1]-n[0][1])),o=+t[0][0]+(r-a*(n[1][0]+n[0][0]))/2,s=+t[0][1]+(i-a*(n[1][1]+n[0][1]))/2;e.scale(150*a).translate([o,s])}),n)}function CS(e,t,n){return IS(e,[[0,0],t],n)}function RS(e,t,n){return wS(e,(function(n){var r=+t,i=r/(n[1][0]-n[0][0]),a=(r-i*(n[1][0]+n[0][0]))/2,o=-i*n[0][1];e.scale(150*i).translate([a,o])}),n)}function kS(e,t,n){return wS(e,(function(n){var r=+t,i=r/(n[1][1]-n[0][1]),a=-i*n[0][0],o=(r-i*(n[1][1]+n[0][1]))/2;e.scale(150*i).translate([a,o])}),n)}SS.invert=SS,MS.prototype={constructor:MS,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var LS=16,NS=Lx(30*Ix);function FS(e,t){return+t?function(e,t){function n(r,i,a,o,s,l,u,c,d,f,h,p,m,g){var y=u-r,_=c-i,v=y*y+_*_;if(v>4*t&&m--){var b=o+f,x=s+h,E=l+p,S=Ux(b*b+x*x+E*E),A=Gx(E/=S),$=Cx(Cx(E)-1)<Ax||Cx(a-d)<Ax?(a+d)/2:kx(x,b),T=e($,A),O=T[0],D=T[1],M=O-r,w=D-i,I=_*M-y*w;(I*I/v>t||Cx((y*M+_*w)/v-.5)>.3||o*f+s*h+l*p<NS)&&(n(r,i,a,o,s,l,O,D,$,b/=S,x/=S,E,m,g),g.point(O,D),n(O,D,$,b,x,E,u,c,d,f,h,p,m,g))}}return function(t){var r,i,a,o,s,l,u,c,d,f,h,p,m={point:g,lineStart:y,lineEnd:v,polygonStart:function(){t.polygonStart(),m.lineStart=b},polygonEnd:function(){t.polygonEnd(),m.lineStart=y}};function g(n,r){n=e(n,r),t.point(n[0],n[1])}function y(){c=NaN,m.point=_,t.lineStart()}function _(r,i){var a=oS([r,i]),o=e(r,i);n(c,d,u,f,h,p,c=o[0],d=o[1],u=r,f=a[0],h=a[1],p=a[2],LS,t),t.point(c,d)}function v(){m.point=g,t.lineEnd()}function b(){y(),m.point=x,m.lineEnd=E}function x(e,t){_(r=e,t),i=c,a=d,o=f,s=h,l=p,m.point=_}function E(){n(c,d,u,f,h,p,i,a,r,o,s,l,LS,t),m.lineEnd=v,v()}return m}}(e,t):function(e){return DS({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}(e)}var BS=DS({point:function(e,t){this.stream.point(e*Ix,t*Ix)}});function jS(e,t,n,r,i,a){if(!a)return function(e,t,n,r,i){function a(a,o){return[t+e*(a*=r),n-e*(o*=i)]}return a.invert=function(a,o){return[(a-t)/e*r,(n-o)/e*i]},a}(e,t,n,r,i);var o=Lx(a),s=zx(a),l=o*e,u=s*e,c=o/e,d=s/e,f=(s*n-o*t)/e,h=(s*t+o*n)/e;function p(e,a){return[l*(e*=r)-u*(a*=i)+t,n-u*e-l*a]}return p.invert=function(e,t){return[r*(c*e-d*t+f),i*(h-d*e-c*t)]},p}function HS(e){return zS((function(){return e}))()}function zS(e){var t,n,r,i,a,o,s,l,u,c,d=150,f=480,h=250,p=0,m=0,g=0,y=0,_=0,v=0,b=1,x=1,E=null,S=yS,A=null,$=gx,T=.5;function O(e){return l(e[0]*Ix,e[1]*Ix)}function D(e){return(e=l.invert(e[0],e[1]))&&[e[0]*wx,e[1]*wx]}function M(){var e=jS(d,0,0,b,x,v).apply(null,t(p,m)),r=jS(d,f-e[0],h-e[1],b,x,v);return n=AS(g,y,_),s=ES(t,r),l=ES(n,s),o=FS(s,T),w()}function w(){return u=c=null,O}return O.stream=function(e){return u&&c===e?u:u=BS(function(e){return DS({point:function(t,n){var r=e(t,n);return this.stream.point(r[0],r[1])}})}(n)(S(o($(c=e)))))},O.preclip=function(e){return arguments.length?(S=e,E=void 0,w()):S},O.postclip=function(e){return arguments.length?($=e,A=r=i=a=null,w()):$},O.clipAngle=function(e){return arguments.length?(S=+e?function(e){var t=Lx(e),n=2*Ix,r=t>0,i=Cx(t)>Ax;function a(e,n){return Lx(e)*Lx(n)>t}function o(e,n,r){var i=[1,0,0],a=lS(oS(e),oS(n)),o=sS(a,a),s=a[0],l=o-s*s;if(!l)return!r&&e;var u=t*o/l,c=-t*s/l,d=lS(i,a),f=cS(i,u);uS(f,cS(a,c));var h=d,p=sS(f,h),m=sS(h,h),g=p*p-m*(sS(f,f)-1);if(!(g<0)){var y=Ux(g),_=cS(h,(-p-y)/m);if(uS(_,f),_=aS(_),!r)return _;var v,b=e[0],x=n[0],E=e[1],S=n[1];x<b&&(v=b,b=x,x=v);var A=x-b,$=Cx(A-Tx)<Ax;if(!$&&S<E&&(v=E,E=S,S=v),$||A<Ax?$?E+S>0^_[1]<(Cx(_[0]-b)<Ax?E:S):E<=_[1]&&_[1]<=S:A>Tx^(b<=_[0]&&_[0]<=x)){var T=cS(h,(-p+y)/m);return uS(T,f),[_,aS(T)]}}}function s(t,n){var i=r?e:Tx-e,a=0;return t<-i?a|=1:t>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}return pS(a,(function(e){var t,n,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(d,f){var h,p=[d,f],m=a(d,f),g=r?m?0:s(d,f):m?s(d+(d<0?Tx:-Tx),f):0;if(!t&&(u=l=m)&&e.lineStart(),m!==l&&(!(h=o(t,p))||tS(t,h)||tS(p,h))&&(p[2]=1),m!==l)c=0,m?(e.lineStart(),h=o(p,t),e.point(h[0],h[1])):(h=o(t,p),e.point(h[0],h[1],2),e.lineEnd()),t=h;else if(i&&t&&r^m){var y;g&n||!(y=o(p,t,!0))||(c=0,r?(e.lineStart(),e.point(y[0][0],y[0][1]),e.point(y[1][0],y[1][1]),e.lineEnd()):(e.point(y[1][0],y[1][1]),e.lineEnd(),e.lineStart(),e.point(y[0][0],y[0][1],3)))}!m||t&&tS(t,p)||e.point(p[0],p[1]),t=p,l=m,n=g},lineEnd:function(){l&&e.lineEnd(),t=null},clean:function(){return c|(u&&l)<<1}}}),(function(t,r,i,a){!function(e,t,n,r,i,a){if(n){var o=Lx(t),s=zx(t),l=r*n;null==i?(i=t+r*Mx,a=t-l/2):(i=_S(o,i),a=_S(o,a),(r>0?i<a:i>a)&&(i+=r*Mx));for(var u,c=i;r>0?c>a:c<a;c-=l)u=aS([o,-s*Lx(c),-s*zx(c)]),e.point(u[0],u[1])}}(a,e,n,i,t,r)}),r?[0,-e]:[-Tx,e-Tx])}(E=e*Ix):(E=null,yS),w()):E*wx},O.clipExtent=function(e){return arguments.length?($=null==e?(A=r=i=a=null,gx):xS(A=+e[0][0],r=+e[0][1],i=+e[1][0],a=+e[1][1]),w()):null==A?null:[[A,r],[i,a]]},O.scale=function(e){return arguments.length?(d=+e,M()):d},O.translate=function(e){return arguments.length?(f=+e[0],h=+e[1],M()):[f,h]},O.center=function(e){return arguments.length?(p=e[0]%360*Ix,m=e[1]%360*Ix,M()):[p*wx,m*wx]},O.rotate=function(e){return arguments.length?(g=e[0]%360*Ix,y=e[1]%360*Ix,_=e.length>2?e[2]%360*Ix:0,M()):[g*wx,y*wx,_*wx]},O.angle=function(e){return arguments.length?(v=e%360*Ix,M()):v*wx},O.reflectX=function(e){return arguments.length?(b=e?-1:1,M()):b<0},O.reflectY=function(e){return arguments.length?(x=e?-1:1,M()):x<0},O.precision=function(e){return arguments.length?(o=FS(s,T=e*e),w()):Ux(T)},O.fitExtent=function(e,t){return IS(O,e,t)},O.fitSize=function(e,t){return CS(O,e,t)},O.fitWidth=function(e,t){return RS(O,e,t)},O.fitHeight=function(e,t){return kS(O,e,t)},function(){return t=e.apply(this,arguments),O.invert=t.invert&&D,M()}}function PS(e){var t=0,n=Tx/3,r=zS(e),i=r(t,n);return i.parallels=function(e){return arguments.length?r(t=e[0]*Ix,n=e[1]*Ix):[t*wx,n*wx]},i}function US(e,t){var n=zx(e),r=(n+zx(t))/2;if(Cx(r)<Ax)return function(e){var t=Lx(e);function n(e,n){return[e*t,zx(n)/t]}return n.invert=function(e,n){return[e/t,Gx(n*t)]},n}(e);var i=1+n*(2*r-n),a=Ux(i)/r;function o(e,t){var n=Ux(i-2*r*zx(t))/r;return[n*zx(e*=r),a-n*Lx(e)]}return o.invert=function(e,t){var n=a-t,o=kx(e,Cx(n))*Px(n);return n*r<0&&(o-=Tx*Px(e)*Px(n)),[o/r,Gx((i-(e*e+n*n)*r*r)/(2*r))]},o}function VS(){return PS(US).scale(155.424).center([0,33.6442])}function WS(){return VS().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function GS(e){return function(t,n){var r=Lx(t),i=Lx(n),a=e(r*i);return a===1/0?[2,0]:[a*i*zx(t),a*zx(n)]}}function qS(e){return function(t,n){var r=Ux(t*t+n*n),i=e(r),a=zx(i),o=Lx(i);return[kx(t*a,r*o),Gx(r&&n*a/r)]}}var YS=GS((function(e){return Ux(2/(1+e))}));YS.invert=qS((function(e){return 2*Gx(e/2)}));var KS=GS((function(e){return(e=Wx(e))&&e/zx(e)}));function JS(e,t){return[e,jx(Vx((Ox+t)/2))]}function XS(e){var t,n,r,i=HS(e),a=i.center,o=i.scale,s=i.translate,l=i.clipExtent,u=null;function c(){var a=Tx*o(),s=i(function(e){function t(t){return(t=e(t[0]*Ix,t[1]*Ix))[0]*=wx,t[1]*=wx,t}return e=AS(e[0]*Ix,e[1]*Ix,e.length>2?e[2]*Ix:0),t.invert=function(t){return(t=e.invert(t[0]*Ix,t[1]*Ix))[0]*=wx,t[1]*=wx,t},t}(i.rotate()).invert([0,0]));return l(null==u?[[s[0]-a,s[1]-a],[s[0]+a,s[1]+a]]:e===JS?[[Math.max(s[0]-a,u),t],[Math.min(s[0]+a,n),r]]:[[u,Math.max(s[1]-a,t)],[n,Math.min(s[1]+a,r)]])}return i.scale=function(e){return arguments.length?(o(e),c()):o()},i.translate=function(e){return arguments.length?(s(e),c()):s()},i.center=function(e){return arguments.length?(a(e),c()):a()},i.clipExtent=function(e){return arguments.length?(null==e?u=t=n=r=null:(u=+e[0][0],t=+e[0][1],n=+e[1][0],r=+e[1][1]),c()):null==u?null:[[u,t],[n,r]]},c()}function ZS(e){return Vx((Ox+e)/2)}function QS(e,t){var n=Lx(e),r=e===t?zx(e):jx(n/Lx(t))/jx(ZS(t)/ZS(e)),i=n*Hx(ZS(e),r)/r;if(!r)return JS;function a(e,t){i>0?t<-Ox+Ax&&(t=-Ox+Ax):t>Ox-Ax&&(t=Ox-Ax);var n=i/Hx(ZS(t),r);return[n*zx(r*e),i-n*Lx(r*e)]}return a.invert=function(e,t){var n=i-t,a=Px(r)*Ux(e*e+n*n),o=kx(e,Cx(n))*Px(n);return n*r<0&&(o-=Tx*Px(e)*Px(n)),[o/r,2*Rx(Hx(i/a,1/r))-Ox]},a}function eA(e,t){return[e,t]}function tA(e,t){var n=Lx(e),r=e===t?zx(e):(n-Lx(t))/(t-e),i=n/r+e;if(Cx(r)<Ax)return eA;function a(e,t){var n=i-t,a=r*e;return[n*zx(a),i-n*Lx(a)]}return a.invert=function(e,t){var n=i-t,a=kx(e,Cx(n))*Px(n);return n*r<0&&(a-=Tx*Px(e)*Px(n)),[a/r,i-Px(r)*Ux(e*e+n*n)]},a}KS.invert=qS((function(e){return e})),JS.invert=function(e,t){return[e,2*Rx(Fx(t))-Ox]},eA.invert=eA;var nA=1.340264,rA=-.081106,iA=893e-6,aA=.003796,oA=Ux(3)/2;function sA(e,t){var n=Gx(oA*zx(t)),r=n*n,i=r*r*r;return[e*Lx(n)/(oA*(nA+3*rA*r+i*(7*iA+9*aA*r))),n*(nA+rA*r+i*(iA+aA*r))]}function lA(e,t){var n=Lx(t),r=Lx(e)*n;return[n*zx(e)/r,zx(t)/r]}function uA(e,t){var n=t*t,r=n*n;return[e*(.8707-.131979*n+r*(r*(.003971*n-.001529*r)-.013791)),t*(1.007226+n*(.015085+r*(.028874*n-.044475-.005916*r)))]}function cA(e,t){return[Lx(t)*zx(e),zx(t)]}function dA(e,t){var n=Lx(t),r=1+Lx(e)*n;return[n*zx(e)/r,zx(t)/r]}function fA(e,t){return[jx(Vx((Ox+t)/2)),-e]}function hA(){}function pA(){var e,t=[];return{point:function(t,n,r){e.push([t,n,r])},lineStart:function(){t.push(e=[])},lineEnd:hA,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}sA.invert=function(e,t){for(var n,r=t,i=r*r,a=i*i*i,o=0;o<12&&(a=(i=(r-=n=(r*(nA+rA*i+a*(iA+aA*i))-t)/(nA+3*rA*i+a*(7*iA+9*aA*i)))*r)*i*i,!(Cx(n)<$x));++o);return[oA*e*(nA+3*rA*i+a*(7*iA+9*aA*i))/Lx(r),Gx(zx(r)/oA)]},lA.invert=qS(Rx),uA.invert=function(e,t){var n,r=t,i=25;do{var a=r*r,o=a*a;r-=n=(r*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-t)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(Cx(n)>Ax&&--i>0);return[e/(.8707+(a=r*r)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),r]},cA.invert=qS(Gx),dA.invert=qS((function(e){return 2*Rx(e)})),fA.invert=function(e,t){return[-t,2*Rx(Fx(e))-Ox]};var mA=1e-6,gA=1e-12,yA=Math.PI,_A=yA/2,vA=yA/4,bA=2*yA,xA=180/yA,EA=yA/180,SA=Math.abs,AA=Math.atan,$A=Math.atan2,TA=Math.cos,OA=(Math.ceil,Math.exp,Math.floor,Math.hypot,Math.log,Math.pow,Math.sin),DA=Math.sign||function(e){return e>0?1:e<0?-1:0},MA=Math.sqrt;function wA(e){return e>1?_A:e<-1?-_A:Math.asin(e)}function IA(e,t){return SA(e[0]-t[0])<mA&&SA(e[1]-t[1])<mA}function CA(e,t,n,r){this.x=e,this.z=t,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function RA(e,t,n,r,i){var a,o,s=[],l=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,n,r=e[0],o=e[t];if(IA(r,o)){if(!r[2]&&!o[2]){for(i.lineStart(),a=0;a<t;++a)i.point((r=e[a])[0],r[1]);return void i.lineEnd()}o[0]+=2*mA}s.push(n=new CA(r,e,null,!0)),l.push(n.o=new CA(r,null,n,!1)),s.push(n=new CA(o,e,null,!1)),l.push(n.o=new CA(o,null,n,!0))}})),s.length){for(l.sort(t),kA(s),kA(l),a=0,o=l.length;a<o;++a)l[a].e=n=!n;for(var u,c,d=s[0];;){for(var f=d,h=!0;f.v;)if((f=f.n)===d)return;u=f.z,i.lineStart();do{if(f.v=f.o.v=!0,f.e){if(h)for(a=0,o=u.length;a<o;++a)i.point((c=u[a])[0],c[1]);else r(f.x,f.n.x,1,i);f=f.n}else{if(h)for(u=f.p.z,a=u.length-1;a>=0;--a)i.point((c=u[a])[0],c[1]);else r(f.x,f.p.x,-1,i);f=f.p}u=(f=f.o).z,h=!h}while(!f.v);i.lineEnd()}}}function kA(e){if(t=e.length){for(var t,n,r=0,i=e[0];++r<t;)i.n=n=e[r],n.p=i,i=n;i.n=n=e[0],n.p=i}}function LA(e){return[$A(e[1],e[0]),wA(e[2])]}function NA(e){var t=e[0],n=e[1],r=TA(n);return[r*TA(t),r*OA(t),OA(n)]}function FA(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function BA(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function jA(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function HA(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function zA(e){var t=MA(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}function PA(e){return SA(e[0])<=yA?e[0]:DA(e[0])*((SA(e[0])+yA)%bA-yA)}function UA(e,t,n,r){return function(i){var a,o,s,l=t(i),u=pA(),c=t(u),d=!1,f={point:h,lineStart:m,lineEnd:g,polygonStart:function(){f.point=y,f.lineStart=_,f.lineEnd=v,o=[],a=[]},polygonEnd:function(){f.point=h,f.lineStart=m,f.lineEnd=g,o=hS(o);var e=function(e,t){var n=PA(t),r=t[1],i=OA(r),a=[OA(n),-TA(n),0],o=0,s=0,l=new Sx;1===i?r=_A+mA:-1===i&&(r=-_A-mA);for(var u=0,c=e.length;u<c;++u)if(f=(d=e[u]).length)for(var d,f,h=d[f-1],p=PA(h),m=h[1]/2+vA,g=OA(m),y=TA(m),_=0;_<f;++_,p=b,g=E,y=S,h=v){var v=d[_],b=PA(v),x=v[1]/2+vA,E=OA(x),S=TA(x),A=b-p,$=A>=0?1:-1,T=$*A,O=T>yA,D=g*E;if(l.add($A(D*$*OA(T),y*S+D*TA(T))),o+=O?A+$*bA:A,O^p>=n^b>=n){var M=BA(NA(h),NA(v));zA(M);var w=BA(a,M);zA(w);var I=(O^A>=0?-1:1)*wA(w[2]);(r>I||r===I&&(M[0]||M[1]))&&(s+=O^A>=0?1:-1)}}return(o<-mA||o<mA&&l<-gA)^1&s}(a,r);o.length?(d||(i.polygonStart(),d=!0),RA(o,WA,e,n,i)):e&&(d||(i.polygonStart(),d=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),d&&(i.polygonEnd(),d=!1),o=a=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(t,n){e(t,n)&&i.point(t,n)}function p(e,t){l.point(e,t)}function m(){f.point=p,l.lineStart()}function g(){f.point=h,l.lineEnd()}function y(e,t){s.push([e,t]),c.point(e,t)}function _(){c.lineStart(),s=[]}function v(){y(s[0][0],s[0][1]),c.lineEnd();var e,t,n,r,l=c.clean(),f=u.result(),h=f.length;if(s.pop(),a.push(s),s=null,h)if(1&l){if((t=(n=f[0]).length-1)>0){for(d||(i.polygonStart(),d=!0),i.lineStart(),e=0;e<t;++e)i.point((r=n[e])[0],r[1]);i.lineEnd()}}else h>1&&2&l&&f.push(f.pop().concat(f.shift())),o.push(f.filter(VA))}return f}}function VA(e){return e.length>1}function WA(e,t){return((e=e.x)[0]<0?e[1]-_A-mA:_A-e[1])-((t=t.x)[0]<0?t[1]-_A-mA:_A-t[1])}Math.tan;const GA=UA((function(){return!0}),(function(e){var t,n=NaN,r=NaN,i=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(a,o){var s=a>0?yA:-yA,l=SA(a-n);SA(l-yA)<mA?(e.point(n,r=(r+o)/2>0?_A:-_A),e.point(i,r),e.lineEnd(),e.lineStart(),e.point(s,r),e.point(a,r),t=0):i!==s&&l>=yA&&(SA(n-i)<mA&&(n-=i*mA),SA(a-s)<mA&&(a-=s*mA),r=function(e,t,n,r){var i,a,o=OA(e-n);return SA(o)>mA?AA((OA(t)*(a=TA(r))*OA(n)-OA(r)*(i=TA(t))*OA(e))/(i*a*o)):(t+r)/2}(n,r,a,o),e.point(i,r),e.lineEnd(),e.lineStart(),e.point(s,r),t=0),e.point(n=a,r=o),i=s},lineEnd:function(){e.lineEnd(),n=r=NaN},clean:function(){return 2-t}}}),(function(e,t,n,r){var i;if(null==e)i=n*_A,r.point(-yA,i),r.point(0,i),r.point(yA,i),r.point(yA,0),r.point(yA,-i),r.point(0,-i),r.point(-yA,-i),r.point(-yA,0),r.point(-yA,i);else if(SA(e[0]-t[0])>mA){var a=e[0]<t[0]?yA:-yA;i=n*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(t[0],t[1])}),[-yA,-_A]);function qA(e,t){(t=NA(t))[0]-=e,zA(t);var n=function(e){return e>1?0:e<-1?yA:Math.acos(e)}(-t[1]);return((-t[2]<0?-n:n)+bA-mA)%bA}var YA=1e9,KA=-YA;function JA(e,t){function n(n,r){return n=e(n,r),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,r){return(n=t.invert(n,r))&&e.invert(n[0],n[1])}),n}const XA=e=>e;function ZA(e,t){return SA(e)>yA&&(e-=Math.round(e/bA)*bA),[e,t]}function QA(e){return function(t,n){return SA(t+=e)>yA&&(t-=Math.round(t/bA)*bA),[t,n]}}function e$(e){var t=QA(e);return t.invert=QA(-e),t}function t$(e,t){var n=TA(e),r=OA(e),i=TA(t),a=OA(t);function o(e,t){var o=TA(t),s=TA(e)*o,l=OA(e)*o,u=OA(t),c=u*n+s*r;return[$A(l*i-c*a,s*n-u*r),wA(c*i+l*a)]}return o.invert=function(e,t){var o=TA(t),s=TA(e)*o,l=OA(e)*o,u=OA(t),c=u*i-l*a;return[$A(l*i+u*a,s*n+c*r),wA(c*n-s*r)]},o}function n$(e){return function(t){var n=new r$;for(var r in e)n[r]=e[r];return n.stream=t,n}}function r$(){}function i$(e,t){e&&o$.hasOwnProperty(e.type)&&o$[e.type](e,t)}ZA.invert=ZA,r$.prototype={constructor:r$,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var a$={Feature:function(e,t){i$(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,i=n.length;++r<i;)i$(n[r].geometry,t)}},o$={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)e=n[r],t.point(e[0],e[1],e[2])},LineString:function(e,t){s$(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)s$(n[r],t,0)},Polygon:function(e,t){l$(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)l$(n[r],t)},GeometryCollection:function(e,t){for(var n=e.geometries,r=-1,i=n.length;++r<i;)i$(n[r],t)}};function s$(e,t,n){var r,i=-1,a=e.length-n;for(t.lineStart();++i<a;)r=e[i],t.point(r[0],r[1],r[2]);t.lineEnd()}function l$(e,t){var n=-1,r=e.length;for(t.polygonStart();++n<r;)s$(e[n],t,1);t.polygonEnd()}var u$=1/0,c$=u$,d$=-u$,f$=d$,h$={point:function(e,t){e<u$&&(u$=e),e>d$&&(d$=e),t<c$&&(c$=t),t>f$&&(f$=t)},lineStart:hA,lineEnd:hA,polygonStart:hA,polygonEnd:hA,result:function(){var e=[[u$,c$],[d$,f$]];return d$=f$=-(c$=u$=1/0),e}};const p$=h$;function m$(e,t,n){var r=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=r&&e.clipExtent(null),function(e,t){e&&a$.hasOwnProperty(e.type)?a$[e.type](e,t):i$(e,t)}(n,e.stream(p$)),t(p$.result()),null!=r&&e.clipExtent(r),e}function g$(e,t,n){return m$(e,(function(n){var r=t[1][0]-t[0][0],i=t[1][1]-t[0][1],a=Math.min(r/(n[1][0]-n[0][0]),i/(n[1][1]-n[0][1])),o=+t[0][0]+(r-a*(n[1][0]+n[0][0]))/2,s=+t[0][1]+(i-a*(n[1][1]+n[0][1]))/2;e.scale(150*a).translate([o,s])}),n)}var y$=16,_$=TA(30*EA);function v$(e,t){return+t?function(e,t){function n(r,i,a,o,s,l,u,c,d,f,h,p,m,g){var y=u-r,_=c-i,v=y*y+_*_;if(v>4*t&&m--){var b=o+f,x=s+h,E=l+p,S=MA(b*b+x*x+E*E),A=wA(E/=S),$=SA(SA(E)-1)<mA||SA(a-d)<mA?(a+d)/2:$A(x,b),T=e($,A),O=T[0],D=T[1],M=O-r,w=D-i,I=_*M-y*w;(I*I/v>t||SA((y*M+_*w)/v-.5)>.3||o*f+s*h+l*p<_$)&&(n(r,i,a,o,s,l,O,D,$,b/=S,x/=S,E,m,g),g.point(O,D),n(O,D,$,b,x,E,u,c,d,f,h,p,m,g))}}return function(t){var r,i,a,o,s,l,u,c,d,f,h,p,m={point:g,lineStart:y,lineEnd:v,polygonStart:function(){t.polygonStart(),m.lineStart=b},polygonEnd:function(){t.polygonEnd(),m.lineStart=y}};function g(n,r){n=e(n,r),t.point(n[0],n[1])}function y(){c=NaN,m.point=_,t.lineStart()}function _(r,i){var a=NA([r,i]),o=e(r,i);n(c,d,u,f,h,p,c=o[0],d=o[1],u=r,f=a[0],h=a[1],p=a[2],y$,t),t.point(c,d)}function v(){m.point=g,t.lineEnd()}function b(){y(),m.point=x,m.lineEnd=E}function x(e,t){_(r=e,t),i=c,a=d,o=f,s=h,l=p,m.point=_}function E(){n(c,d,u,f,h,p,i,a,r,o,s,l,y$,t),m.lineEnd=v,v()}return m}}(e,t):function(e){return n$({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}(e)}var b$=n$({point:function(e,t){this.stream.point(e*EA,t*EA)}});function x$(e,t,n,r,i,a){if(!a)return function(e,t,n,r,i){function a(a,o){return[t+e*(a*=r),n-e*(o*=i)]}return a.invert=function(a,o){return[(a-t)/e*r,(n-o)/e*i]},a}(e,t,n,r,i);var o=TA(a),s=OA(a),l=o*e,u=s*e,c=o/e,d=s/e,f=(s*n-o*t)/e,h=(s*t+o*n)/e;function p(e,a){return[l*(e*=r)-u*(a*=i)+t,n-u*e-l*a]}return p.invert=function(e,t){return[r*(c*e-d*t+f),i*(h-d*e-c*t)]},p}function E$(e){return function(e){var t,n,r,i,a,o,s,l,u,c,d=150,f=480,h=250,p=0,m=0,g=0,y=0,_=0,v=0,b=1,x=1,E=null,S=GA,A=null,$=XA,T=.5;function O(e){return l(e[0]*EA,e[1]*EA)}function D(e){return(e=l.invert(e[0],e[1]))&&[e[0]*xA,e[1]*xA]}function M(){var e=x$(d,0,0,b,x,v).apply(null,t(p,m)),r=x$(d,f-e[0],h-e[1],b,x,v);return n=function(e,t,n){return(e%=bA)?t||n?JA(e$(e),t$(t,n)):e$(e):t||n?t$(t,n):ZA}(g,y,_),s=JA(t,r),l=JA(n,s),o=v$(s,T),w()}function w(){return u=c=null,O}return O.stream=function(e){return u&&c===e?u:u=b$(function(e){return n$({point:function(t,n){var r=e(t,n);return this.stream.point(r[0],r[1])}})}(n)(S(o($(c=e)))))},O.preclip=function(e){return arguments.length?(S=e,E=void 0,w()):S},O.postclip=function(e){return arguments.length?($=e,A=r=i=a=null,w()):$},O.clipAngle=function(e){return arguments.length?(S=+e?function(e){var t=TA(e),n=6*EA,r=t>0,i=SA(t)>mA;function a(e,n){return TA(e)*TA(n)>t}function o(e,n,r){var i=[1,0,0],a=BA(NA(e),NA(n)),o=FA(a,a),s=a[0],l=o-s*s;if(!l)return!r&&e;var u=t*o/l,c=-t*s/l,d=BA(i,a),f=HA(i,u);jA(f,HA(a,c));var h=d,p=FA(f,h),m=FA(h,h),g=p*p-m*(FA(f,f)-1);if(!(g<0)){var y=MA(g),_=HA(h,(-p-y)/m);if(jA(_,f),_=LA(_),!r)return _;var v,b=e[0],x=n[0],E=e[1],S=n[1];x<b&&(v=b,b=x,x=v);var A=x-b,$=SA(A-yA)<mA;if(!$&&S<E&&(v=E,E=S,S=v),$||A<mA?$?E+S>0^_[1]<(SA(_[0]-b)<mA?E:S):E<=_[1]&&_[1]<=S:A>yA^(b<=_[0]&&_[0]<=x)){var T=HA(h,(-p+y)/m);return jA(T,f),[_,LA(T)]}}}function s(t,n){var i=r?e:yA-e,a=0;return t<-i?a|=1:t>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}return UA(a,(function(e){var t,n,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(d,f){var h,p=[d,f],m=a(d,f),g=r?m?0:s(d,f):m?s(d+(d<0?yA:-yA),f):0;if(!t&&(u=l=m)&&e.lineStart(),m!==l&&(!(h=o(t,p))||IA(t,h)||IA(p,h))&&(p[2]=1),m!==l)c=0,m?(e.lineStart(),h=o(p,t),e.point(h[0],h[1])):(h=o(t,p),e.point(h[0],h[1],2),e.lineEnd()),t=h;else if(i&&t&&r^m){var y;g&n||!(y=o(p,t,!0))||(c=0,r?(e.lineStart(),e.point(y[0][0],y[0][1]),e.point(y[1][0],y[1][1]),e.lineEnd()):(e.point(y[1][0],y[1][1]),e.lineEnd(),e.lineStart(),e.point(y[0][0],y[0][1],3)))}!m||t&&IA(t,p)||e.point(p[0],p[1]),t=p,l=m,n=g},lineEnd:function(){l&&e.lineEnd(),t=null},clean:function(){return c|(u&&l)<<1}}}),(function(t,r,i,a){!function(e,t,n,r,i,a){if(n){var o=TA(t),s=OA(t),l=r*n;null==i?(i=t+r*bA,a=t-l/2):(i=qA(o,i),a=qA(o,a),(r>0?i<a:i>a)&&(i+=r*bA));for(var u,c=i;r>0?c>a:c<a;c-=l)u=LA([o,-s*TA(c),-s*OA(c)]),e.point(u[0],u[1])}}(a,e,n,i,t,r)}),r?[0,-e]:[-yA,e-yA])}(E=e*EA):(E=null,GA),w()):E*xA},O.clipExtent=function(e){return arguments.length?($=null==e?(A=r=i=a=null,XA):function(e,t,n,r){function i(i,a){return e<=i&&i<=n&&t<=a&&a<=r}function a(i,a,s,u){var c=0,d=0;if(null==i||(c=o(i,s))!==(d=o(a,s))||l(i,a)<0^s>0)do{u.point(0===c||3===c?e:n,c>1?r:t)}while((c=(c+s+4)%4)!==d);else u.point(a[0],a[1])}function o(r,i){return SA(r[0]-e)<mA?i>0?0:3:SA(r[0]-n)<mA?i>0?2:1:SA(r[1]-t)<mA?i>0?1:0:i>0?3:2}function s(e,t){return l(e.x,t.x)}function l(e,t){var n=o(e,1),r=o(t,1);return n!==r?n-r:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(o){var l,u,c,d,f,h,p,m,g,y,_,v=o,b=pA(),x={point:E,lineStart:function(){x.point=S,u&&u.push(c=[]),y=!0,g=!1,p=m=NaN},lineEnd:function(){l&&(S(d,f),h&&g&&b.rejoin(),l.push(b.result())),x.point=E,g&&v.lineEnd()},polygonStart:function(){v=b,l=[],u=[],_=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,i=u.length;n<i;++n)for(var a,o,s=u[n],l=1,c=s.length,d=s[0],f=d[0],h=d[1];l<c;++l)a=f,o=h,f=(d=s[l])[0],h=d[1],o<=r?h>r&&(f-a)*(r-o)>(h-o)*(e-a)&&++t:h<=r&&(f-a)*(r-o)<(h-o)*(e-a)&&--t;return t}(),n=_&&t,i=(l=hS(l)).length;(n||i)&&(o.polygonStart(),n&&(o.lineStart(),a(null,null,1,o),o.lineEnd()),i&&RA(l,s,t,a,o),o.polygonEnd()),v=o,l=u=c=null}};function E(e,t){i(e,t)&&v.point(e,t)}function S(a,o){var s=i(a,o);if(u&&c.push([a,o]),y)d=a,f=o,h=s,y=!1,s&&(v.lineStart(),v.point(a,o));else if(s&&g)v.point(a,o);else{var l=[p=Math.max(KA,Math.min(YA,p)),m=Math.max(KA,Math.min(YA,m))],b=[a=Math.max(KA,Math.min(YA,a)),o=Math.max(KA,Math.min(YA,o))];!function(e,t,n,r,i,a){var o,s=e[0],l=e[1],u=0,c=1,d=t[0]-s,f=t[1]-l;if(o=n-s,d||!(o>0)){if(o/=d,d<0){if(o<u)return;o<c&&(c=o)}else if(d>0){if(o>c)return;o>u&&(u=o)}if(o=i-s,d||!(o<0)){if(o/=d,d<0){if(o>c)return;o>u&&(u=o)}else if(d>0){if(o<u)return;o<c&&(c=o)}if(o=r-l,f||!(o>0)){if(o/=f,f<0){if(o<u)return;o<c&&(c=o)}else if(f>0){if(o>c)return;o>u&&(u=o)}if(o=a-l,f||!(o<0)){if(o/=f,f<0){if(o>c)return;o>u&&(u=o)}else if(f>0){if(o<u)return;o<c&&(c=o)}return u>0&&(e[0]=s+u*d,e[1]=l+u*f),c<1&&(t[0]=s+c*d,t[1]=l+c*f),!0}}}}}(l,b,e,t,n,r)?s&&(v.lineStart(),v.point(a,o),_=!1):(g||(v.lineStart(),v.point(l[0],l[1])),v.point(b[0],b[1]),s||v.lineEnd(),_=!1)}p=a,m=o,g=s}return x}}(A=+e[0][0],r=+e[0][1],i=+e[1][0],a=+e[1][1]),w()):null==A?null:[[A,r],[i,a]]},O.scale=function(e){return arguments.length?(d=+e,M()):d},O.translate=function(e){return arguments.length?(f=+e[0],h=+e[1],M()):[f,h]},O.center=function(e){return arguments.length?(p=e[0]%360*EA,m=e[1]%360*EA,M()):[p*xA,m*xA]},O.rotate=function(e){return arguments.length?(g=e[0]%360*EA,y=e[1]%360*EA,_=e.length>2?e[2]%360*EA:0,M()):[g*xA,y*xA,_*xA]},O.angle=function(e){return arguments.length?(v=e%360*EA,M()):v*xA},O.reflectX=function(e){return arguments.length?(b=e?-1:1,M()):b<0},O.reflectY=function(e){return arguments.length?(x=e?-1:1,M()):x<0},O.precision=function(e){return arguments.length?(o=v$(s,T=e*e),w()):MA(T)},O.fitExtent=function(e,t){return g$(O,e,t)},O.fitSize=function(e,t){return function(e,t,n){return g$(e,[[0,0],t],n)}(O,e,t)},O.fitWidth=function(e,t){return function(e,t,n){return m$(e,(function(n){var r=+t,i=r/(n[1][0]-n[0][0]),a=(r-i*(n[1][0]+n[0][0]))/2,o=-i*n[0][1];e.scale(150*i).translate([a,o])}),n)}(O,e,t)},O.fitHeight=function(e,t){return function(e,t,n){return m$(e,(function(n){var r=+t,i=r/(n[1][1]-n[0][1]),a=-i*n[0][0],o=(r-i*(n[1][1]+n[0][1]))/2;e.scale(150*i).translate([a,o])}),n)}(O,e,t)},function(){return t=e.apply(this,arguments),O.invert=t.invert&&D,M()}}((function(){return e}))()}var S$=Math.abs,A$=(Math.atan,Math.atan2,Math.ceil,Math.cos),$$=(Math.exp,Math.floor,Math.log,Math.max,Math.min,Math.pow,Math.round,Math.sign,Math.sin),T$=(Math.tan,1e-6),O$=Math.PI,D$=O$/2,M$=(Math.SQRT1_2,I$(2));function w$(e){return e>1?D$:e<-1?-D$:Math.asin(e)}function I$(e){return e>0?Math.sqrt(e):0}function C$(e,t){var n,r=e*$$(t),i=30;do{t-=n=(t+$$(t)-r)/(1+A$(t))}while(S$(n)>T$&&--i>0);return t/2}I$(O$);var R$=function(e,t,n){function r(r,i){return[e*r*A$(i=C$(n,i)),t*$$(i)]}return r.invert=function(r,i){return i=w$(i/t),[r/(e*A$(i)),w$((2*i+$$(2*i))/n)]},r}(M$/D$,M$,O$);const k$=QE(),L$=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function N$(e,t){if(!e||"string"!=typeof e)throw new Error("Projection type must be a name string.");return e=e.toLowerCase(),arguments.length>1?(B$[e]=function(e,t){return function n(){const r=t();return r.type=e,r.path=QE().projection(r),r.copy=r.copy||function(){const e=n();return L$.forEach((t=>{r[t]&&e[t](r[t]())})),e.path.pointRadius(r.path.pointRadius()),e},mp(r)}}(e,t),this):B$[e]||null}function F$(e){return e&&e.path||k$}const B$={albers:WS,albersusa:function(){var e,t,n,r,i,a,o=WS(),s=VS().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=VS().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u={point:function(e,t){a=[e,t]}};function c(e){var t=e[0],o=e[1];return a=null,n.point(t,o),a||(r.point(t,o),a)||(i.point(t,o),a)}function d(){return e=t=null,c}return c.invert=function(e){var t=o.scale(),n=o.translate(),r=(e[0]-n[0])/t,i=(e[1]-n[1])/t;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?l:o).invert(e)},c.stream=function(n){return e&&t===n?e:(r=[o.stream(t=n),s.stream(n),l.stream(n)],i=r.length,e={point:function(e,t){for(var n=-1;++n<i;)r[n].point(e,t)},sphere:function(){for(var e=-1;++e<i;)r[e].sphere()},lineStart:function(){for(var e=-1;++e<i;)r[e].lineStart()},lineEnd:function(){for(var e=-1;++e<i;)r[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<i;)r[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<i;)r[e].polygonEnd()}});var r,i},c.precision=function(e){return arguments.length?(o.precision(e),s.precision(e),l.precision(e),d()):o.precision()},c.scale=function(e){return arguments.length?(o.scale(e),s.scale(.35*e),l.scale(e),c.translate(o.translate())):o.scale()},c.translate=function(e){if(!arguments.length)return o.translate();var t=o.scale(),a=+e[0],c=+e[1];return n=o.translate(e).clipExtent([[a-.455*t,c-.238*t],[a+.455*t,c+.238*t]]).stream(u),r=s.translate([a-.307*t,c+.201*t]).clipExtent([[a-.425*t+Ax,c+.12*t+Ax],[a-.214*t-Ax,c+.234*t-Ax]]).stream(u),i=l.translate([a-.205*t,c+.212*t]).clipExtent([[a-.214*t+Ax,c+.166*t+Ax],[a-.115*t-Ax,c+.234*t-Ax]]).stream(u),d()},c.fitExtent=function(e,t){return IS(c,e,t)},c.fitSize=function(e,t){return CS(c,e,t)},c.fitWidth=function(e,t){return RS(c,e,t)},c.fitHeight=function(e,t){return kS(c,e,t)},c.scale(1070)},azimuthalequalarea:function(){return HS(YS).scale(124.75).clipAngle(179.999)},azimuthalequidistant:function(){return HS(KS).scale(79.4188).clipAngle(179.999)},conicconformal:function(){return PS(QS).scale(109.5).parallels([30,30])},conicequalarea:VS,conicequidistant:function(){return PS(tA).scale(131.154).center([0,13.9389])},equalEarth:function(){return HS(sA).scale(177.158)},equirectangular:function(){return HS(eA).scale(152.63)},gnomonic:function(){return HS(lA).scale(144.049).clipAngle(60)},identity:function(){var e,t,n,r,i,a,o,s=1,l=0,u=0,c=1,d=1,f=0,h=null,p=1,m=1,g=DS({point:function(e,t){var n=v([e,t]);this.stream.point(n[0],n[1])}}),y=gx;function _(){return p=s*c,m=s*d,a=o=null,v}function v(n){var r=n[0]*p,i=n[1]*m;if(f){var a=i*e-r*t;r=r*e+i*t,i=a}return[r+l,i+u]}return v.invert=function(n){var r=n[0]-l,i=n[1]-u;if(f){var a=i*e+r*t;r=r*e-i*t,i=a}return[r/p,i/m]},v.stream=function(e){return a&&o===e?a:a=g(y(o=e))},v.postclip=function(e){return arguments.length?(y=e,h=n=r=i=null,_()):y},v.clipExtent=function(e){return arguments.length?(y=null==e?(h=n=r=i=null,gx):xS(h=+e[0][0],n=+e[0][1],r=+e[1][0],i=+e[1][1]),_()):null==h?null:[[h,n],[r,i]]},v.scale=function(e){return arguments.length?(s=+e,_()):s},v.translate=function(e){return arguments.length?(l=+e[0],u=+e[1],_()):[l,u]},v.angle=function(n){return arguments.length?(t=zx(f=n%360*Ix),e=Lx(f),_()):f*wx},v.reflectX=function(e){return arguments.length?(c=e?-1:1,_()):c<0},v.reflectY=function(e){return arguments.length?(d=e?-1:1,_()):d<0},v.fitExtent=function(e,t){return IS(v,e,t)},v.fitSize=function(e,t){return CS(v,e,t)},v.fitWidth=function(e,t){return RS(v,e,t)},v.fitHeight=function(e,t){return kS(v,e,t)},v},mercator:function(){return XS(JS).scale(961/Mx)},mollweide:function(){return E$(R$).scale(169.529)},naturalEarth1:function(){return HS(uA).scale(175.295)},orthographic:function(){return HS(cA).scale(249.5).clipAngle(90+Ax)},stereographic:function(){return HS(dA).scale(250).clipAngle(142)},transversemercator:function(){var e=XS(fA),t=e.center,n=e.rotate;return e.center=function(e){return arguments.length?t([-e[1],e[0]]):[(e=t())[1],-e[0]]},e.rotate=function(e){return arguments.length?n([e[0],e[1],e.length>2?e[2]+90:90]):[(e=n())[0],e[1],e[2]-90]},n([0,0,90]).scale(159.155)}};for(const e in B$)N$(e,B$[e]);function j$(e,t,n){var r=Fs(e,t-Ax,n).concat(t);return function(e){return r.map((function(t){return[e,t]}))}}function H$(e,t,n){var r=Fs(e,t-Ax,n).concat(t);return function(e){return r.map((function(t){return[t,e]}))}}function z$(){}const P$=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function U$(){var e=1,t=1,n=o;function r(e,t){return t.map((t=>i(e,t)))}function i(r,i){var o=[],s=[];return function(n,r,i){var o,s,l,u,c,d,f=[],h=[];for(o=s=-1,u=n[0]>=r,P$[u<<1].forEach(p);++o<e-1;)l=u,u=n[o+1]>=r,P$[l|u<<1].forEach(p);for(P$[u<<0].forEach(p);++s<t-1;){for(o=-1,u=n[s*e+e]>=r,c=n[s*e]>=r,P$[u<<1|c<<2].forEach(p);++o<e-1;)l=u,u=n[s*e+e+o+1]>=r,d=c,c=n[s*e+o+1]>=r,P$[l|u<<1|c<<2|d<<3].forEach(p);P$[u|c<<3].forEach(p)}for(o=-1,c=n[s*e]>=r,P$[c<<2].forEach(p);++o<e-1;)d=c,c=n[s*e+o+1]>=r,P$[c<<2|d<<3].forEach(p);function p(e){var t,n,r=[e[0][0]+o,e[0][1]+s],l=[e[1][0]+o,e[1][1]+s],u=a(r),c=a(l);(t=h[u])?(n=f[c])?(delete h[t.end],delete f[n.start],t===n?(t.ring.push(l),i(t.ring)):f[t.start]=h[n.end]={start:t.start,end:n.end,ring:t.ring.concat(n.ring)}):(delete h[t.end],t.ring.push(l),h[t.end=c]=t):(t=f[c])?(n=h[u])?(delete f[t.start],delete h[n.end],t===n?(t.ring.push(l),i(t.ring)):f[n.start]=h[t.end]={start:n.start,end:t.end,ring:n.ring.concat(t.ring)}):(delete f[t.start],t.ring.unshift(r),f[t.start=u]=t):f[u]=h[c]={start:u,end:c,ring:[r,l]}}P$[c<<3].forEach(p)}(r,i,(e=>{n(e,r,i),function(e){for(var t=0,n=e.length,r=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];++t<n;)r+=e[t-1][1]*e[t][0]-e[t-1][0]*e[t][1];return r}(e)>0?o.push([e]):s.push(e)})),s.forEach((e=>{for(var t,n=0,r=o.length;n<r;++n)if(-1!==V$((t=o[n])[0],e))return void t.push(e)})),{type:"MultiPolygon",value:i,coordinates:o}}function a(t){return 2*t[0]+t[1]*(e+1)*4}function o(n,r,i){n.forEach((n=>{var a,o=n[0],s=n[1],l=0|o,u=0|s,c=r[u*e+l];o>0&&o<e&&l===o&&(a=r[u*e+l-1],n[0]=o+(i-a)/(c-a)-.5),s>0&&s<t&&u===s&&(a=r[(u-1)*e+l],n[1]=s+(i-a)/(c-a)-.5)}))}return r.contour=i,r.size=function(n){if(!arguments.length)return[e,t];var i=Math.floor(n[0]),a=Math.floor(n[1]);return i>=0&&a>=0||_e("invalid size"),e=i,t=a,r},r.smooth=function(e){return arguments.length?(n=e?o:z$,r):n===o},r}function V$(e,t){for(var n,r=-1,i=t.length;++r<i;)if(n=W$(e,t[r]))return n;return 0}function W$(e,t){for(var n=t[0],r=t[1],i=-1,a=0,o=e.length,s=o-1;a<o;s=a++){var l=e[a],u=l[0],c=l[1],d=e[s],f=d[0],h=d[1];if(G$(l,d,t))return 0;c>r!=h>r&&n<(f-u)*(r-c)/(h-c)+u&&(i=-i)}return i}function G$(e,t,n){var r;return function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])==(n[0]-e[0])*(t[1]-e[1])}(e,t,n)&&function(e,t,n){return e<=t&&t<=n||n<=t&&t<=e}(e[r=+(e[0]===t[0])],n[r],t[r])}function q$(e,t,n){return function(r){var i=ct(r),a=n?Math.min(i[0],0):i[0],o=i[1],s=o-a,l=t?Zt(a,o,e):s/(e+1);return Fs(a+l,o,l)}}function Y$(e){Vo.call(this,null,e)}function K$(e,t,n,r,i){const a=e.x1||0,o=e.y1||0,s=t*n<0;function l(e){e.forEach(u)}function u(e){s&&e.reverse(),e.forEach(c)}function c(e){e[0]=(e[0]-a)*t+r,e[1]=(e[1]-o)*n+i}return function(e){return e.coordinates.forEach(l),e}}function J$(e,t,n){const r=e>=0?e:is(t,n);return Math.round((Math.sqrt(4*r*r+1)-1)/2)}function X$(e){return et(e)?e:st(+e)}function Z$(){var e=e=>e[0],t=e=>e[1],n=Ae,r=[-1,-1],i=960,a=500,o=2;function s(s,l){const u=J$(r[0],s,e)>>o,c=J$(r[1],s,t)>>o,d=u?u+2:0,f=c?c+2:0,h=2*d+(i>>o),p=2*f+(a>>o),m=new Float32Array(h*p),g=new Float32Array(h*p);let y=m;s.forEach((r=>{const i=d+(+e(r)>>o),a=f+(+t(r)>>o);i>=0&&i<h&&a>=0&&a<p&&(m[i+a*h]+=+n(r))})),u>0&&c>0?(Q$(h,p,m,g,u),eT(h,p,g,m,c),Q$(h,p,m,g,u),eT(h,p,g,m,c),Q$(h,p,m,g,u),eT(h,p,g,m,c)):u>0?(Q$(h,p,m,g,u),Q$(h,p,g,m,u),Q$(h,p,m,g,u),y=g):c>0&&(eT(h,p,m,g,c),eT(h,p,g,m,c),eT(h,p,m,g,c),y=g);const _=l?Math.pow(2,-2*o):1/jb(y);for(let e=0,t=h*p;e<t;++e)y[e]*=_;return{values:y,scale:1<<o,width:h,height:p,x1:d,y1:f,x2:d+(i>>o),y2:f+(a>>o)}}return s.x=function(t){return arguments.length?(e=X$(t),s):e},s.y=function(e){return arguments.length?(t=X$(e),s):t},s.weight=function(e){return arguments.length?(n=X$(e),s):n},s.size=function(e){if(!arguments.length)return[i,a];var t=+e[0],n=+e[1];return t>=0&&n>=0||_e("invalid size"),i=t,a=n,s},s.cellSize=function(e){return arguments.length?((e=+e)>=1||_e("invalid cell size"),o=Math.floor(Math.log(e)/Math.LN2),s):1<<o},s.bandwidth=function(e){return arguments.length?(1===(e=Qe(e)).length&&(e=[+e[0],+e[0]]),2!==e.length&&_e("invalid bandwidth"),r=e,s):r},s}function Q$(e,t,n,r,i){const a=1+(i<<1);for(let o=0;o<t;++o)for(let t=0,s=0;t<e+i;++t)t<e&&(s+=n[t+o*e]),t>=i&&(t>=a&&(s-=n[t-a+o*e]),r[t-i+o*e]=s/Math.min(t+1,e-1+a-t,a))}function eT(e,t,n,r,i){const a=1+(i<<1);for(let o=0;o<e;++o)for(let s=0,l=0;s<t+i;++s)s<t&&(l+=n[o+s*e]),s>=i&&(s>=a&&(l-=n[o+(s-a)*e]),r[o+(s-i)*e]=l/Math.min(s+1,t-1+a-s,a))}function tT(e){Vo.call(this,null,e)}Y$.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},pt(Y$,Vo,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=t.materialize(t.SOURCE).source,i=e.field||Ee,a=U$().smooth(!1!==e.smooth),o=e.thresholds||function(e,t,n){const r=q$(n.levels||10,n.nice,!1!==n.zero);return"shared"!==n.resolve?r:r(e.map((e=>Go(t(e).values))))}(r,i,e),s=null===e.as?null:e.as||"contour",l=[];return r.forEach((t=>{const n=i(t),r=a.size([n.width,n.height])(n.values,Le(o)?o:o(n.values));!function(e,t,n,r){let i=r.scale||t.scale,a=r.translate||t.translate;if(et(i)&&(i=i(n,r)),et(a)&&(a=a(n,r)),(1===i||null==i)&&!a)return;const o=(yt(i)?i:i[0])||1,s=(yt(i)?i:i[1])||1,l=a&&a[0]||0,u=a&&a[1]||0;e.forEach(K$(t,o,s,l,u))}(r,n,t,e),r.forEach((e=>{l.push(go(t,po(null!=s?{[s]:e}:e)))}))})),this.value&&(n.rem=this.value),this.value=n.source=n.add=l,n}}),tT.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const nT=["x","y","weight","size","cellSize","bandwidth"];function rT(e,t){return nT.forEach((n=>null!=t[n]?e[n](t[n]):0)),e}function iT(e){Vo.call(this,null,e)}pt(tT,Vo,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n,r=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=function(e,t){var n,r,i,a,o,s,l=[],u=e=>e(a);if(null==t)l.push(e);else for(n={},r=0,i=e.length;r<i;++r)a=e[r],(s=n[o=t.map(u)])||(n[o]=s=[],s.dims=o,l.push(s)),s.push(a);return l}(t.materialize(t.SOURCE).source,e.groupby),a=(e.groupby||[]).map(he),o=rT(Z$(),e),s=e.as||"grid";return n=i.map((t=>po(function(e,t){for(let n=0;n<a.length;++n)e[a[n]]=t[n];return e}({[s]:o(t,e.counts)},t.dims)))),this.value&&(r.rem=this.value),this.value=r.source=r.add=n,r}}),iT.Definition={type:"Contour",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"values",type:"number",array:!0},{name:"x",type:"field"},{name:"y",type:"field"},{name:"weight",type:"field"},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number"},{name:"count",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"thresholds",type:"number",array:!0},{name:"smooth",type:"boolean",default:!0}]},pt(iT,Vo,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n,r,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),a=U$().smooth(!1!==e.smooth),o=e.values,s=e.thresholds||q$(e.count||10,e.nice,!!o),l=e.size;return o||(o=t.materialize(t.SOURCE).source,r=K$(n=rT(Z$(),e)(o,!0),n.scale||1,n.scale||1,0,0),l=[n.width,n.height],o=n.values),s=Le(s)?s:s(o),o=a.size(l)(o,s),r&&o.forEach(r),this.value&&(i.rem=this.value),this.value=i.source=i.add=(o||[]).map(po),i}});const aT="Feature",oT="FeatureCollection";function sT(e){Vo.call(this,null,e)}function lT(e){Vo.call(this,null,e)}function uT(e){Vo.call(this,null,e)}function cT(e){Vo.call(this,null,e)}function dT(e){Vo.call(this,[],e),this.generator=function(){var e,t,n,r,i,a,o,s,l,u,c,d,f=10,h=f,p=90,m=360,g=2.5;function y(){return{type:"MultiLineString",coordinates:_()}}function _(){return Fs(Nx(r/p)*p,n,p).map(c).concat(Fs(Nx(s/m)*m,o,m).map(d)).concat(Fs(Nx(t/f)*f,e,f).filter((function(e){return Cx(e%p)>Ax})).map(l)).concat(Fs(Nx(a/h)*h,i,h).filter((function(e){return Cx(e%m)>Ax})).map(u))}return y.lines=function(){return _().map((function(e){return{type:"LineString",coordinates:e}}))},y.outline=function(){return{type:"Polygon",coordinates:[c(r).concat(d(o).slice(1),c(n).reverse().slice(1),d(s).reverse().slice(1))]}},y.extent=function(e){return arguments.length?y.extentMajor(e).extentMinor(e):y.extentMinor()},y.extentMajor=function(e){return arguments.length?(r=+e[0][0],n=+e[1][0],s=+e[0][1],o=+e[1][1],r>n&&(e=r,r=n,n=e),s>o&&(e=s,s=o,o=e),y.precision(g)):[[r,s],[n,o]]},y.extentMinor=function(n){return arguments.length?(t=+n[0][0],e=+n[1][0],a=+n[0][1],i=+n[1][1],t>e&&(n=t,t=e,e=n),a>i&&(n=a,a=i,i=n),y.precision(g)):[[t,a],[e,i]]},y.step=function(e){return arguments.length?y.stepMajor(e).stepMinor(e):y.stepMinor()},y.stepMajor=function(e){return arguments.length?(p=+e[0],m=+e[1],y):[p,m]},y.stepMinor=function(e){return arguments.length?(f=+e[0],h=+e[1],y):[f,h]},y.precision=function(f){return arguments.length?(g=+f,l=j$(a,i,90),u=H$(t,e,g),c=j$(s,o,90),d=H$(r,n,g),y):g},y.extentMajor([[-180,-90+Ax],[180,90-Ax]]).extentMinor([[-180,-80-Ax],[180,80+Ax]])}()}function fT(e){Vo.call(this,null,e)}function hT(e){if(!et(e))return!1;const t=Dt(pe(e));return t.$x||t.$y||t.$value||t.$max}function pT(e){Vo.call(this,null,e),this.modified(!0)}function mT(e,t,n){et(e[t])&&e[t](n)}function gT(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var i,a,o,s,l,u,c,d,f,h=e._root,p={data:r},m=e._x0,g=e._y0,y=e._x1,_=e._y1;if(!h)return e._root=p,e;for(;h.length;)if((u=t>=(a=(m+y)/2))?m=a:y=a,(c=n>=(o=(g+_)/2))?g=o:_=o,i=h,!(h=h[d=c<<1|u]))return i[d]=p,e;if(s=+e._x.call(null,h.data),l=+e._y.call(null,h.data),t===s&&n===l)return p.next=h,i?i[d]=p:e._root=p,e;do{i=i?i[d]=new Array(4):e._root=new Array(4),(u=t>=(a=(m+y)/2))?m=a:y=a,(c=n>=(o=(g+_)/2))?g=o:_=o}while((d=c<<1|u)==(f=(l>=o)<<1|s>=a));return i[f]=h,i[d]=p,e}function yT(e,t,n,r,i){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=i}function _T(e){return e[0]}function vT(e){return e[1]}function bT(e,t,n){var r=new xT(null==t?_T:t,null==n?vT:n,NaN,NaN,NaN,NaN);return null==e?r:r.addAll(e)}function xT(e,t,n,r,i,a){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function ET(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}sT.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},pt(sT,Vo,{transform(e,t){var n,r=this._features,i=this._points,a=e.fields,o=a&&a[0],s=a&&a[1],l=e.geojson||!a&&Ee,u=t.ADD;n=e.modified()||t.changed(t.REM)||t.modified(pe(l))||o&&t.modified(pe(o))||s&&t.modified(pe(s)),this.value&&!n||(u=t.SOURCE,this._features=r=[],this._points=i=[]),l&&t.visit(u,(e=>r.push(l(e)))),o&&s&&(t.visit(u,(e=>{var t=o(e),n=s(e);null!=t&&null!=n&&(t=+t)===t&&(n=+n)===n&&i.push([t,n])})),r=r.concat({type:aT,geometry:{type:"MultiPoint",coordinates:i}})),this.value={type:oT,features:r}}}),lT.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},pt(lT,Vo,{transform(e,t){var n=t.fork(t.ALL),r=this.value,i=e.field||Ee,a=e.as||"path",o=n.SOURCE;!r||e.modified()?(this.value=r=F$(e.projection),n.materialize().reflow()):o=i===Ee||t.modified(i.fields)?n.ADD_MOD:n.ADD;const s=function(e,t){const n=e.pointRadius();return e.context(null),null!=t&&e.pointRadius(t),n}(r,e.pointRadius);return n.visit(o,(e=>e[a]=r(i(e)))),r.pointRadius(s),n.modifies(a)}}),uT.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},pt(uT,Vo,{transform(e,t){var n,r=e.projection,i=e.fields[0],a=e.fields[1],o=e.as||["x","y"],s=o[0],l=o[1];function u(e){const t=r([i(e),a(e)]);t?(e[s]=t[0],e[l]=t[1]):(e[s]=void 0,e[l]=void 0)}return e.modified()?t=t.materialize().reflow(!0).visit(t.SOURCE,u):(n=t.modified(i.fields)||t.modified(a.fields),t.visit(n?t.ADD_MOD:t.ADD,u)),t.modifies(o)}}),cT.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},pt(cT,Vo,{transform(e,t){var n=t.fork(t.ALL),r=this.value,i=e.as||"shape",a=n.ADD;return r&&!e.modified()||(this.value=r=function(e,t,n){const r=null==n?n=>e(t(n)):r=>{var i=e.pointRadius(),a=e.pointRadius(n)(t(r));return e.pointRadius(i),a};return r.context=t=>(e.context(t),r),r}(F$(e.projection),e.field||be("datum"),e.pointRadius),n.materialize().reflow(),a=n.SOURCE),n.visit(a,(e=>e[i]=r)),n.modifies(i)}}),dT.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},pt(dT,Vo,{transform(e,t){var n,r=this.value,i=this.generator;if(!r.length||e.modified())for(const t in e)et(i[t])&&i[t](e[t]);return n=i(),r.length?t.mod.push(yo(r[0],n)):t.add.push(po(n)),r[0]=n,t}}),fT.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},pt(fT,Vo,{transform(e,t){if(!t.changed()&&!e.modified())return t.StopPropagation;var n=t.materialize(t.SOURCE).source,r="shared"===e.resolve,i=e.field||Ee,a=function(e,t){let n;return et(e)?(n=n=>e(n,t),n.dep=hT(e)):e?n=st(e):(n=e=>e.$value/e.$max||0,n.dep=!0),n}(e.opacity,e),o=function(e,t){let n;return et(e)?(n=n=>Xc(e(n,t)),n.dep=hT(e)):n=st(Xc(e||"#888")),n}(e.color,e),s=e.as||"image",l={$x:0,$y:0,$value:0,$max:r?Go(n.map((e=>Go(i(e).values)))):0};return n.forEach((e=>{const t=i(e),n=ut({},e,l);r||(n.$max=Go(t.values||[])),e[s]=function(e,t,n,r){const i=e.width,a=e.height,o=e.x1||0,s=e.y1||0,l=e.x2||i,u=e.y2||a,c=e.values,d=c?e=>c[e]:Se,f=Sc(l-o,u-s),h=f.getContext("2d"),p=h.getImageData(0,0,l-o,u-s),m=p.data;for(let e=s,a=0;e<u;++e){t.$y=e-s;for(let s=o,u=e*i;s<l;++s,a+=4){t.$x=s-o,t.$value=d(s+u);const e=n(t);m[a+0]=e.r,m[a+1]=e.g,m[a+2]=e.b,m[a+3]=~~(255*r(t))}}return h.putImageData(p,0,0),f}(t,n,o.dep?o:st(o(n)),a.dep?a:st(a(n)))})),t.reflow(!0).modifies(s)}}),pt(pT,Vo,{transform(e,t){let n=this.value;return!n||e.modified("type")?(this.value=n=function(e){const t=N$((e||"mercator").toLowerCase());return t||_e("Unrecognized projection type: "+e),t()}(e.type),L$.forEach((t=>{null!=e[t]&&mT(n,t,e[t])}))):L$.forEach((t=>{e.modified(t)&&mT(n,t,e[t])})),null!=e.pointRadius&&n.path.pointRadius(e.pointRadius),e.fit&&function(e,t){const n=function(e){return 1===(e=Qe(e)).length?e[0]:{type:oT,features:e.reduce(((e,t)=>e.concat(function(e){return e.type===oT?e.features:Qe(e).filter((e=>null!=e)).map((e=>e.type===aT?e:{type:aT,geometry:e}))}(t))),[])}}(t.fit);t.extent?e.fitExtent(t.extent,n):t.size&&e.fitSize(t.size,n)}(n,e),t.fork(t.NO_SOURCE|t.NO_FIELDS)}});var ST=bT.prototype=xT.prototype;function AT(e){return function(){return e}}function $T(e){return 1e-6*(e()-.5)}function TT(e){return e.x+e.vx}function OT(e){return e.y+e.vy}ST.copy=function(){var e,t,n=new xT(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=ET(r),n;for(e=[{source:r,target:n._root=new Array(4)}];r=e.pop();)for(var i=0;i<4;++i)(t=r.source[i])&&(t.length?e.push({source:t,target:r.target[i]=new Array(4)}):r.target[i]=ET(t));return n},ST.add=function(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return gT(this.cover(t,n),t,n,e)},ST.addAll=function(e){var t,n,r,i,a=e.length,o=new Array(a),s=new Array(a),l=1/0,u=1/0,c=-1/0,d=-1/0;for(n=0;n<a;++n)isNaN(r=+this._x.call(null,t=e[n]))||isNaN(i=+this._y.call(null,t))||(o[n]=r,s[n]=i,r<l&&(l=r),r>c&&(c=r),i<u&&(u=i),i>d&&(d=i));if(l>c||u>d)return this;for(this.cover(l,u).cover(c,d),n=0;n<a;++n)gT(this,o[n],s[n],e[n]);return this},ST.cover=function(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,i=this._x1,a=this._y1;if(isNaN(n))i=(n=Math.floor(e))+1,a=(r=Math.floor(t))+1;else{for(var o,s,l=i-n||1,u=this._root;n>e||e>=i||r>t||t>=a;)switch(s=(t<r)<<1|e<n,(o=new Array(4))[s]=u,u=o,l*=2,s){case 0:i=n+l,a=r+l;break;case 1:n=i-l,a=r+l;break;case 2:i=n+l,r=a-l;break;case 3:n=i-l,r=a-l}this._root&&this._root.length&&(this._root=u)}return this._x0=n,this._y0=r,this._x1=i,this._y1=a,this},ST.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},ST.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},ST.find=function(e,t,n){var r,i,a,o,s,l,u,c=this._x0,d=this._y0,f=this._x1,h=this._y1,p=[],m=this._root;for(m&&p.push(new yT(m,c,d,f,h)),null==n?n=1/0:(c=e-n,d=t-n,f=e+n,h=t+n,n*=n);l=p.pop();)if(!(!(m=l.node)||(i=l.x0)>f||(a=l.y0)>h||(o=l.x1)<c||(s=l.y1)<d))if(m.length){var g=(i+o)/2,y=(a+s)/2;p.push(new yT(m[3],g,y,o,s),new yT(m[2],i,y,g,s),new yT(m[1],g,a,o,y),new yT(m[0],i,a,g,y)),(u=(t>=y)<<1|e>=g)&&(l=p[p.length-1],p[p.length-1]=p[p.length-1-u],p[p.length-1-u]=l)}else{var _=e-+this._x.call(null,m.data),v=t-+this._y.call(null,m.data),b=_*_+v*v;if(b<n){var x=Math.sqrt(n=b);c=e-x,d=t-x,f=e+x,h=t+x,r=m.data}}return r},ST.remove=function(e){if(isNaN(a=+this._x.call(null,e))||isNaN(o=+this._y.call(null,e)))return this;var t,n,r,i,a,o,s,l,u,c,d,f,h=this._root,p=this._x0,m=this._y0,g=this._x1,y=this._y1;if(!h)return this;if(h.length)for(;;){if((u=a>=(s=(p+g)/2))?p=s:g=s,(c=o>=(l=(m+y)/2))?m=l:y=l,t=h,!(h=h[d=c<<1|u]))return this;if(!h.length)break;(t[d+1&3]||t[d+2&3]||t[d+3&3])&&(n=t,f=d)}for(;h.data!==e;)if(r=h,!(h=h.next))return this;return(i=h.next)&&delete h.next,r?(i?r.next=i:delete r.next,this):t?(i?t[d]=i:delete t[d],(h=t[0]||t[1]||t[2]||t[3])&&h===(t[3]||t[2]||t[1]||t[0])&&!h.length&&(n?n[f]=h:this._root=h),this):(this._root=i,this)},ST.removeAll=function(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this},ST.root=function(){return this._root},ST.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},ST.visit=function(e){var t,n,r,i,a,o,s=[],l=this._root;for(l&&s.push(new yT(l,this._x0,this._y0,this._x1,this._y1));t=s.pop();)if(!e(l=t.node,r=t.x0,i=t.y0,a=t.x1,o=t.y1)&&l.length){var u=(r+a)/2,c=(i+o)/2;(n=l[3])&&s.push(new yT(n,u,c,a,o)),(n=l[2])&&s.push(new yT(n,r,c,u,o)),(n=l[1])&&s.push(new yT(n,u,i,a,c)),(n=l[0])&&s.push(new yT(n,r,i,u,c))}return this},ST.visitAfter=function(e){var t,n=[],r=[];for(this._root&&n.push(new yT(this._root,this._x0,this._y0,this._x1,this._y1));t=n.pop();){var i=t.node;if(i.length){var a,o=t.x0,s=t.y0,l=t.x1,u=t.y1,c=(o+l)/2,d=(s+u)/2;(a=i[0])&&n.push(new yT(a,o,s,c,d)),(a=i[1])&&n.push(new yT(a,c,s,l,d)),(a=i[2])&&n.push(new yT(a,o,d,c,u)),(a=i[3])&&n.push(new yT(a,c,d,l,u))}r.push(t)}for(;t=r.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this},ST.x=function(e){return arguments.length?(this._x=e,this):this._x},ST.y=function(e){return arguments.length?(this._y=e,this):this._y};var DT={value:()=>{}};function MT(){for(var e,t=0,n=arguments.length,r={};t<n;++t){if(!(e=arguments[t]+"")||e in r||/[\s.]/.test(e))throw new Error("illegal type: "+e);r[e]=[]}return new wT(r)}function wT(e){this._=e}function IT(e,t){for(var n,r=0,i=e.length;r<i;++r)if((n=e[r]).name===t)return n.value}function CT(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=DT,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=n&&e.push({name:t,value:n}),e}wT.prototype=MT.prototype={constructor:wT,on:function(e,t){var n,r,i=this._,a=(r=i,(e+"").trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");if(n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!r.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}}))),o=-1,s=a.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++o<s;)if(n=(e=a[o]).type)i[n]=CT(i[n],e.name,t);else if(null==t)for(n in i)i[n]=CT(i[n],e.name,null);return this}for(;++o<s;)if((n=(e=a[o]).type)&&(n=IT(i[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new wT(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,r,i=new Array(n),a=0;a<n;++a)i[a]=arguments[a+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(a=0,n=(r=this._[e]).length;a<n;++a)r[a].value.apply(t,i)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};const RT=MT;var kT,LT,NT=0,FT=0,BT=0,jT=1e3,HT=0,zT=0,PT=0,UT="object"==typeof performance&&performance.now?performance:Date,VT="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function WT(){return zT||(VT(GT),zT=UT.now()+PT)}function GT(){zT=0}function qT(){this._call=this._time=this._next=null}function YT(e,t,n){var r=new qT;return r.restart(e,t,n),r}function KT(){zT=(HT=UT.now())+PT,NT=FT=0;try{!function(){WT(),++NT;for(var e,t=kT;t;)(e=zT-t._time)>=0&&t._call.call(void 0,e),t=t._next;--NT}()}finally{NT=0,function(){for(var e,t,n=kT,r=1/0;n;)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:kT=t);LT=e,XT(r)}(),zT=0}}function JT(){var e=UT.now(),t=e-HT;t>jT&&(PT-=t,HT=e)}function XT(e){NT||(FT&&(FT=clearTimeout(FT)),e-zT>24?(e<1/0&&(FT=setTimeout(KT,e-UT.now()-PT)),BT&&(BT=clearInterval(BT))):(BT||(HT=UT.now(),BT=setInterval(JT,jT)),NT=1,VT(KT)))}qT.prototype=YT.prototype={constructor:qT,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?WT():+n)+(null==t?0:+t),this._next||LT===this||(LT?LT._next=this:kT=this,LT=this),this._call=e,this._time=n,XT()},stop:function(){this._call&&(this._call=null,this._time=1/0,XT())}};const ZT=4294967296;function QT(e){return e.x}function eO(e){return e.y}var tO=Math.PI*(3-Math.sqrt(5));function nO(e){return e.index}function rO(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}const iO={center:function(e,t){var n,r=1;function i(){var i,a,o=n.length,s=0,l=0;for(i=0;i<o;++i)s+=(a=n[i]).x,l+=a.y;for(s=(s/o-e)*r,l=(l/o-t)*r,i=0;i<o;++i)(a=n[i]).x-=s,a.y-=l}return null==e&&(e=0),null==t&&(t=0),i.initialize=function(e){n=e},i.x=function(t){return arguments.length?(e=+t,i):e},i.y=function(e){return arguments.length?(t=+e,i):t},i.strength=function(e){return arguments.length?(r=+e,i):r},i},collide:function(e){var t,n,r,i=1,a=1;function o(){for(var e,o,l,u,c,d,f,h=t.length,p=0;p<a;++p)for(o=bT(t,TT,OT).visitAfter(s),e=0;e<h;++e)l=t[e],d=n[l.index],f=d*d,u=l.x+l.vx,c=l.y+l.vy,o.visit(m);function m(e,t,n,a,o){var s=e.data,h=e.r,p=d+h;if(!s)return t>u+p||a<u-p||n>c+p||o<c-p;if(s.index>l.index){var m=u-s.x-s.vx,g=c-s.y-s.vy,y=m*m+g*g;y<p*p&&(0===m&&(y+=(m=$T(r))*m),0===g&&(y+=(g=$T(r))*g),y=(p-(y=Math.sqrt(y)))/y*i,l.vx+=(m*=y)*(p=(h*=h)/(f+h)),l.vy+=(g*=y)*p,s.vx-=m*(p=1-p),s.vy-=g*p)}}}function s(e){if(e.data)return e.r=n[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function l(){if(t){var r,i,a=t.length;for(n=new Array(a),r=0;r<a;++r)i=t[r],n[i.index]=+e(i,r,t)}}return"function"!=typeof e&&(e=AT(null==e?1:+e)),o.initialize=function(e,n){t=e,r=n,l()},o.iterations=function(e){return arguments.length?(a=+e,o):a},o.strength=function(e){return arguments.length?(i=+e,o):i},o.radius=function(t){return arguments.length?(e="function"==typeof t?t:AT(+t),l(),o):e},o},nbody:function(){var e,t,n,r,i,a=AT(-30),o=1,s=1/0,l=.81;function u(n){var i,a=e.length,o=bT(e,QT,eO).visitAfter(d);for(r=n,i=0;i<a;++i)t=e[i],o.visit(f)}function c(){if(e){var t,n,r=e.length;for(i=new Array(r),t=0;t<r;++t)n=e[t],i[n.index]=+a(n,t,e)}}function d(e){var t,n,r,a,o,s=0,l=0;if(e.length){for(r=a=o=0;o<4;++o)(t=e[o])&&(n=Math.abs(t.value))&&(s+=t.value,l+=n,r+=n*t.x,a+=n*t.y);e.x=r/l,e.y=a/l}else{(t=e).x=t.data.x,t.y=t.data.y;do{s+=i[t.data.index]}while(t=t.next)}e.value=s}function f(e,a,u,c){if(!e.value)return!0;var d=e.x-t.x,f=e.y-t.y,h=c-a,p=d*d+f*f;if(h*h/l<p)return p<s&&(0===d&&(p+=(d=$T(n))*d),0===f&&(p+=(f=$T(n))*f),p<o&&(p=Math.sqrt(o*p)),t.vx+=d*e.value*r/p,t.vy+=f*e.value*r/p),!0;if(!(e.length||p>=s)){(e.data!==t||e.next)&&(0===d&&(p+=(d=$T(n))*d),0===f&&(p+=(f=$T(n))*f),p<o&&(p=Math.sqrt(o*p)));do{e.data!==t&&(h=i[e.data.index]*r/p,t.vx+=d*h,t.vy+=f*h)}while(e=e.next)}}return u.initialize=function(t,r){e=t,n=r,c()},u.strength=function(e){return arguments.length?(a="function"==typeof e?e:AT(+e),c(),u):a},u.distanceMin=function(e){return arguments.length?(o=e*e,u):Math.sqrt(o)},u.distanceMax=function(e){return arguments.length?(s=e*e,u):Math.sqrt(s)},u.theta=function(e){return arguments.length?(l=e*e,u):Math.sqrt(l)},u},link:function(e){var t,n,r,i,a,o,s=nO,l=function(e){return 1/Math.min(i[e.source.index],i[e.target.index])},u=AT(30),c=1;function d(r){for(var i=0,s=e.length;i<c;++i)for(var l,u,d,f,h,p,m,g=0;g<s;++g)u=(l=e[g]).source,f=(d=l.target).x+d.vx-u.x-u.vx||$T(o),h=d.y+d.vy-u.y-u.vy||$T(o),f*=p=((p=Math.sqrt(f*f+h*h))-n[g])/p*r*t[g],h*=p,d.vx-=f*(m=a[g]),d.vy-=h*m,u.vx+=f*(m=1-m),u.vy+=h*m}function f(){if(r){var o,l,u=r.length,c=e.length,d=new Map(r.map(((e,t)=>[s(e,t,r),e])));for(o=0,i=new Array(u);o<c;++o)(l=e[o]).index=o,"object"!=typeof l.source&&(l.source=rO(d,l.source)),"object"!=typeof l.target&&(l.target=rO(d,l.target)),i[l.source.index]=(i[l.source.index]||0)+1,i[l.target.index]=(i[l.target.index]||0)+1;for(o=0,a=new Array(c);o<c;++o)l=e[o],a[o]=i[l.source.index]/(i[l.source.index]+i[l.target.index]);t=new Array(c),h(),n=new Array(c),p()}}function h(){if(r)for(var n=0,i=e.length;n<i;++n)t[n]=+l(e[n],n,e)}function p(){if(r)for(var t=0,i=e.length;t<i;++t)n[t]=+u(e[t],t,e)}return null==e&&(e=[]),d.initialize=function(e,t){r=e,o=t,f()},d.links=function(t){return arguments.length?(e=t,f(),d):e},d.id=function(e){return arguments.length?(s=e,d):s},d.iterations=function(e){return arguments.length?(c=+e,d):c},d.strength=function(e){return arguments.length?(l="function"==typeof e?e:AT(+e),h(),d):l},d.distance=function(e){return arguments.length?(u="function"==typeof e?e:AT(+e),p(),d):u},d},x:function(e){var t,n,r,i=AT(.1);function a(e){for(var i,a=0,o=t.length;a<o;++a)(i=t[a]).vx+=(r[a]-i.x)*n[a]*e}function o(){if(t){var a,o=t.length;for(n=new Array(o),r=new Array(o),a=0;a<o;++a)n[a]=isNaN(r[a]=+e(t[a],a,t))?0:+i(t[a],a,t)}}return"function"!=typeof e&&(e=AT(null==e?0:+e)),a.initialize=function(e){t=e,o()},a.strength=function(e){return arguments.length?(i="function"==typeof e?e:AT(+e),o(),a):i},a.x=function(t){return arguments.length?(e="function"==typeof t?t:AT(+t),o(),a):e},a},y:function(e){var t,n,r,i=AT(.1);function a(e){for(var i,a=0,o=t.length;a<o;++a)(i=t[a]).vy+=(r[a]-i.y)*n[a]*e}function o(){if(t){var a,o=t.length;for(n=new Array(o),r=new Array(o),a=0;a<o;++a)n[a]=isNaN(r[a]=+e(t[a],a,t))?0:+i(t[a],a,t)}}return"function"!=typeof e&&(e=AT(null==e?0:+e)),a.initialize=function(e){t=e,o()},a.strength=function(e){return arguments.length?(i="function"==typeof e?e:AT(+e),o(),a):i},a.y=function(t){return arguments.length?(e="function"==typeof t?t:AT(+t),o(),a):e},a}},aO="forces",oO=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],sO=["static","iterations"],lO=["x","y","vx","vy"];function uO(e){Vo.call(this,null,e)}function cO(e,t,n,r){var i,a,o,s,l=Qe(t.forces);for(i=0,a=oO.length;i<a;++i)(o=oO[i])!==aO&&t.modified(o)&&e[o](t[o]);for(i=0,a=l.length;i<a;++i)s=aO+i,(o=n||t.modified(aO,i)?fO(l[i]):r&&dO(l[i],r)?e.force(s):null)&&e.force(s,o);for(a=e.numForces||0;i<a;++i)e.force(aO+i,null);return e.numForces=l.length,e}function dO(e,t){var n,r;for(n in e)if(et(r=e[n])&&t.modified(pe(r)))return 1;return 0}function fO(e){var t,n;for(n in dt(iO,e.force)||_e("Unrecognized force: "+e.force),t=iO[e.force](),e)et(t[n])&&hO(t[n],e[n],e);return t}function hO(e,t,n){e(et(t)?e=>t(e,n):t)}function pO(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function mO(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=yO)):void 0===t&&(t=gO);for(var n,r,i,a,o,s=new bO(e),l=[s];n=l.pop();)if((i=t(n.data))&&(o=(i=Array.from(i)).length))for(n.children=i,a=o-1;a>=0;--a)l.push(r=i[a]=new bO(i[a])),r.parent=n,r.depth=n.depth+1;return s.eachBefore(vO)}function gO(e){return e.children}function yO(e){return Array.isArray(e)?e[1]:null}function _O(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function vO(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function bO(e){this.data=e,this.depth=this.height=0,this.parent=null}function xO(e){return null==e?null:EO(e)}function EO(e){if("function"!=typeof e)throw new Error;return e}function SO(){return 0}function AO(e){return function(){return e}}uO.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30,expr:!0},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:lO}]},pt(uO,Vo,{transform(e,t){var n,r,i=this.value,a=t.changed(t.ADD_REM),o=e.modified(oO),s=e.iterations||300;if(i?(a&&(t.modifies("index"),i.nodes(t.source)),(o||t.changed(t.MOD))&&cO(i,e,0,t)):(this.value=i=function(e,t){const n=function(e){var t,n=1,r=.001,i=1-Math.pow(r,1/300),a=0,o=.6,s=new Map,l=YT(d),u=RT("tick","end"),c=function(){let e=1;return()=>(e=(1664525*e+1013904223)%ZT)/ZT}();function d(){f(),u.call("tick",t),n<r&&(l.stop(),u.call("end",t))}function f(r){var l,u,c=e.length;void 0===r&&(r=1);for(var d=0;d<r;++d)for(n+=(a-n)*i,s.forEach((function(e){e(n)})),l=0;l<c;++l)null==(u=e[l]).fx?u.x+=u.vx*=o:(u.x=u.fx,u.vx=0),null==u.fy?u.y+=u.vy*=o:(u.y=u.fy,u.vy=0);return t}function h(){for(var t,n=0,r=e.length;n<r;++n){if((t=e[n]).index=n,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var i=10*Math.sqrt(.5+n),a=n*tO;t.x=i*Math.cos(a),t.y=i*Math.sin(a)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function p(t){return t.initialize&&t.initialize(e,c),t}return null==e&&(e=[]),h(),t={tick:f,restart:function(){return l.restart(d),t},stop:function(){return l.stop(),t},nodes:function(n){return arguments.length?(e=n,h(),s.forEach(p),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(r=+e,t):r},alphaDecay:function(e){return arguments.length?(i=+e,t):+i},alphaTarget:function(e){return arguments.length?(a=+e,t):a},velocityDecay:function(e){return arguments.length?(o=1-e,t):1-o},randomSource:function(e){return arguments.length?(c=e,s.forEach(p),t):c},force:function(e,n){return arguments.length>1?(null==n?s.delete(e):s.set(e,p(n)),t):s.get(e)},find:function(t,n,r){var i,a,o,s,l,u=0,c=e.length;for(null==r?r=1/0:r*=r,u=0;u<c;++u)(o=(i=t-(s=e[u]).x)*i+(a=n-s.y)*a)<r&&(l=s,r=o);return l},on:function(e,n){return arguments.length>1?(u.on(e,n),t):u.on(e)}}}(e),r=n.stop,i=n.restart;let a=!1;return n.stopped=()=>a,n.restart=()=>(a=!1,i()),n.stop=()=>(a=!0,r()),cO(n,t,!0).on("end",(()=>a=!0))}(t.source,e),i.on("tick",(n=t.dataflow,r=this,()=>n.touch(r).run())),e.static||(a=!0,i.tick()),t.modifies("index")),o||a||e.modified(sO)||t.changed()&&e.restart)if(i.alpha(Math.max(i.alpha(),e.alpha||1)).alphaDecay(1-Math.pow(i.alphaMin(),1/s)),e.static)for(i.stop();--s>=0;)i.tick();else if(i.stopped()&&i.restart(),!a)return t.StopPropagation;return this.finish(e,t)},finish(e,t){const n=t.dataflow;for(let e,t=this._argops,s=0,l=t.length;s<l;++s)if(e=t[s],e.name===aO&&"link"===e.op._argval.force)for(var r,i=e.op._argops,a=0,o=i.length;a<o;++a)if("links"===i[a].name&&(r=i[a].op.source)){n.pulse(r,n.changeset().reflow());break}return t.reflow(e.modified()).modifies(lO)}}),bO.prototype=mO.prototype={constructor:bO,count:function(){return this.eachAfter(pO)},each:function(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this},eachAfter:function(e,t){for(var n,r,i,a=this,o=[a],s=[],l=-1;a=o.pop();)if(s.push(a),n=a.children)for(r=0,i=n.length;r<i;++r)o.push(n[r]);for(;a=s.pop();)e.call(t,a,++l,this);return this},eachBefore:function(e,t){for(var n,r,i=this,a=[i],o=-1;i=a.pop();)if(e.call(t,i,++o,this),n=i.children)for(r=n.length-1;r>=0;--r)a.push(n[r]);return this},find:function(e,t){let n=-1;for(const r of this)if(e.call(t,r,++n,this))return r},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,i=r&&r.length;--i>=0;)n+=r[i].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return mO(this).eachBefore(_O)},[Symbol.iterator]:function*(){var e,t,n,r,i=this,a=[i];do{for(e=a.reverse(),a=[];i=e.pop();)if(yield i,t=i.children)for(n=0,r=t.length;n<r;++n)a.push(t[n])}while(a.length)}};const $O=4294967296;function TO(e,t){var n,r;if(MO(t,e))return[t];for(n=0;n<e.length;++n)if(OO(t,e[n])&&MO(IO(e[n],t),e))return[e[n],t];for(n=0;n<e.length-1;++n)for(r=n+1;r<e.length;++r)if(OO(IO(e[n],e[r]),t)&&OO(IO(e[n],t),e[r])&&OO(IO(e[r],t),e[n])&&MO(CO(e[n],e[r],t),e))return[e[n],e[r],t];throw new Error}function OO(e,t){var n=e.r-t.r,r=t.x-e.x,i=t.y-e.y;return n<0||n*n<r*r+i*i}function DO(e,t){var n=e.r-t.r+1e-9*Math.max(e.r,t.r,1),r=t.x-e.x,i=t.y-e.y;return n>0&&n*n>r*r+i*i}function MO(e,t){for(var n=0;n<t.length;++n)if(!DO(e,t[n]))return!1;return!0}function wO(e){switch(e.length){case 1:return{x:(t=e[0]).x,y:t.y,r:t.r};case 2:return IO(e[0],e[1]);case 3:return CO(e[0],e[1],e[2])}var t}function IO(e,t){var n=e.x,r=e.y,i=e.r,a=t.x,o=t.y,s=t.r,l=a-n,u=o-r,c=s-i,d=Math.sqrt(l*l+u*u);return{x:(n+a+l/d*c)/2,y:(r+o+u/d*c)/2,r:(d+i+s)/2}}function CO(e,t,n){var r=e.x,i=e.y,a=e.r,o=t.x,s=t.y,l=t.r,u=n.x,c=n.y,d=n.r,f=r-o,h=r-u,p=i-s,m=i-c,g=l-a,y=d-a,_=r*r+i*i-a*a,v=_-o*o-s*s+l*l,b=_-u*u-c*c+d*d,x=h*p-f*m,E=(p*b-m*v)/(2*x)-r,S=(m*g-p*y)/x,A=(h*v-f*b)/(2*x)-i,$=(f*y-h*g)/x,T=S*S+$*$-1,O=2*(a+E*S+A*$),D=E*E+A*A-a*a,M=-(Math.abs(T)>1e-6?(O+Math.sqrt(O*O-4*T*D))/(2*T):D/O);return{x:r+E+S*M,y:i+A+$*M,r:M}}function RO(e,t,n){var r,i,a,o,s=e.x-t.x,l=e.y-t.y,u=s*s+l*l;u?(i=t.r+n.r,i*=i,o=e.r+n.r,i>(o*=o)?(r=(u+o-i)/(2*u),a=Math.sqrt(Math.max(0,o/u-r*r)),n.x=e.x-r*s-a*l,n.y=e.y-r*l+a*s):(r=(u+i-o)/(2*u),a=Math.sqrt(Math.max(0,i/u-r*r)),n.x=t.x+r*s-a*l,n.y=t.y+r*l+a*s)):(n.x=t.x+n.r,n.y=t.y)}function kO(e,t){var n=e.r+t.r-1e-6,r=t.x-e.x,i=t.y-e.y;return n>0&&n*n>r*r+i*i}function LO(e){var t=e._,n=e.next._,r=t.r+n.r,i=(t.x*n.r+n.x*t.r)/r,a=(t.y*n.r+n.y*t.r)/r;return i*i+a*a}function NO(e){this._=e,this.next=null,this.previous=null}function FO(e,t){if(!(a=(e=function(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}(e)).length))return 0;var n,r,i,a,o,s,l,u,c,d,f;if((n=e[0]).x=0,n.y=0,!(a>1))return n.r;if(r=e[1],n.x=-r.r,r.x=n.r,r.y=0,!(a>2))return n.r+r.r;RO(r,n,i=e[2]),n=new NO(n),r=new NO(r),i=new NO(i),n.next=i.previous=r,r.next=n.previous=i,i.next=r.previous=n;e:for(l=3;l<a;++l){RO(n._,r._,i=e[l]),i=new NO(i),u=r.next,c=n.previous,d=r._.r,f=n._.r;do{if(d<=f){if(kO(u._,i._)){r=u,n.next=r,r.previous=n,--l;continue e}d+=u._.r,u=u.next}else{if(kO(c._,i._)){(n=c).next=r,r.previous=n,--l;continue e}f+=c._.r,c=c.previous}}while(u!==c.next);for(i.previous=n,i.next=r,n.next=r.previous=r=i,o=LO(n);(i=i.next)!==r;)(s=LO(i))<o&&(n=i,o=s);r=n.next}for(n=[r._],i=r;(i=i.next)!==r;)n.push(i._);for(i=function(e,t){for(var n,r,i=0,a=(e=function(e,t){let n,r,i=e.length;for(;i;)r=t()*i--|0,n=e[i],e[i]=e[r],e[r]=n;return e}(Array.from(e),t)).length,o=[];i<a;)n=e[i],r&&DO(r,n)?++i:(r=wO(o=TO(o,n)),i=0);return r}(n,t),l=0;l<a;++l)(n=e[l]).x-=i.x,n.y-=i.y;return i.r}function BO(e){return Math.sqrt(e.value)}function jO(e){return function(t){t.children||(t.r=Math.max(0,+e(t)||0))}}function HO(e,t,n){return function(r){if(i=r.children){var i,a,o,s=i.length,l=e(r)*t||0;if(l)for(a=0;a<s;++a)i[a].r+=l;if(o=FO(i,n),l)for(a=0;a<s;++a)i[a].r-=l;r.r=o+l}}}function zO(e){return function(t){var n=t.parent;t.r*=e,n&&(t.x=n.x+e*t.x,t.y=n.y+e*t.y)}}function PO(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function UO(e,t,n,r,i){for(var a,o=e.children,s=-1,l=o.length,u=e.value&&(r-t)/e.value;++s<l;)(a=o[s]).y0=n,a.y1=i,a.x0=t,a.x1=t+=a.value*u}var VO={depth:-1},WO={},GO={};function qO(e){return e.id}function YO(e){return e.parentId}function KO(){var e,t=qO,n=YO;function r(r){var i,a,o,s,l,u,c,d,f=Array.from(r),h=t,p=n,m=new Map;if(null!=e){const t=f.map(((t,n)=>function(e){let t=(e=`${e}`).length;return XO(e,t-1)&&!XO(e,t-2)&&(e=e.slice(0,-1)),"/"===e[0]?e:`/${e}`}(e(t,n,r)))),n=t.map(JO),i=new Set(t).add("");for(const e of n)i.has(e)||(i.add(e),t.push(e),n.push(JO(e)),f.push(GO));h=(e,n)=>t[n],p=(e,t)=>n[t]}for(o=0,i=f.length;o<i;++o)a=f[o],u=f[o]=new bO(a),null!=(c=h(a,o,r))&&(c+="")&&(d=u.id=c,m.set(d,m.has(d)?WO:u)),null!=(c=p(a,o,r))&&(c+="")&&(u.parent=c);for(o=0;o<i;++o)if(c=(u=f[o]).parent){if(!(l=m.get(c)))throw new Error("missing: "+c);if(l===WO)throw new Error("ambiguous: "+c);l.children?l.children.push(u):l.children=[u],u.parent=l}else{if(s)throw new Error("multiple roots");s=u}if(!s)throw new Error("no root");if(null!=e){for(;s.data===GO&&1===s.children.length;)s=s.children[0],--i;for(let e=f.length-1;e>=0&&(u=f[e]).data===GO;--e)u.data=null}if(s.parent=VO,s.eachBefore((function(e){e.depth=e.parent.depth+1,--i})).eachBefore(vO),s.parent=null,i>0)throw new Error("cycle");return s}return r.id=function(e){return arguments.length?(t=xO(e),r):t},r.parentId=function(e){return arguments.length?(n=xO(e),r):n},r.path=function(t){return arguments.length?(e=xO(t),r):e},r}function JO(e){let t=e.length;if(t<2)return"";for(;--t>1&&!XO(e,t););return e.slice(0,t)}function XO(e,t){if("/"===e[t]){let n=0;for(;t>0&&"\\"===e[--t];)++n;if(0==(1&n))return!0}return!1}function ZO(e,t){return e.parent===t.parent?1:2}function QO(e){var t=e.children;return t?t[0]:e.t}function eD(e){var t=e.children;return t?t[t.length-1]:e.t}function tD(e,t,n){var r=n/(t.i-e.i);t.c-=r,t.s+=n,e.c+=r,t.z+=n,t.m+=n}function nD(e,t,n){return e.a.parent===t.parent?e.a:n}function rD(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function iD(e,t){return e.parent===t.parent?1:2}function aD(e,t){return e+t.x}function oD(e,t){return Math.max(e,t.y)}function sD(e,t,n,r,i){for(var a,o=e.children,s=-1,l=o.length,u=e.value&&(i-n)/e.value;++s<l;)(a=o[s]).x0=t,a.x1=r,a.y0=n,a.y1=n+=a.value*u}rD.prototype=Object.create(bO.prototype);var lD=(1+Math.sqrt(5))/2;function uD(e,t,n,r,i,a){for(var o,s,l,u,c,d,f,h,p,m,g,y=[],_=t.children,v=0,b=0,x=_.length,E=t.value;v<x;){l=i-n,u=a-r;do{c=_[b++].value}while(!c&&b<x);for(d=f=c,g=c*c*(m=Math.max(u/l,l/u)/(E*e)),p=Math.max(f/g,g/d);b<x;++b){if(c+=s=_[b].value,s<d&&(d=s),s>f&&(f=s),g=c*c*m,(h=Math.max(f/g,g/d))>p){c-=s;break}p=h}y.push(o={value:c,dice:l<u,children:_.slice(v,b)}),o.dice?UO(o,n,r,i,E?r+=u*c/E:a):sD(o,n,r,E?n+=l*c/E:i,a),E-=c,v=b}return y}const cD=function e(t){function n(e,n,r,i,a){uD(t,e,n,r,i,a)}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(lD),dD=function e(t){function n(e,n,r,i,a){if((o=e._squarify)&&o.ratio===t)for(var o,s,l,u,c,d=-1,f=o.length,h=e.value;++d<f;){for(l=(s=o[d]).children,u=s.value=0,c=l.length;u<c;++u)s.value+=l[u].value;s.dice?UO(s,n,r,i,h?r+=(a-r)*s.value/h:a):sD(s,n,r,h?n+=(i-n)*s.value/h:i,a),h-=s.value}else e._squarify=o=uD(t,e,n,r,i,a),o.ratio=t}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(lD);function fD(e,t,n){const r={};return e.each((e=>{const i=e.data;n(i)&&(r[t(i)]=e)})),e.lookup=r,e}function hD(e){Vo.call(this,null,e)}hD.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const pD=e=>e.values;function mD(){const e=[],t={entries:e=>r(n(e,0),0),key:n=>(e.push(n),t)};function n(t,r){if(r>=e.length)return t;const i=t.length,a=e[r++],o={},s={};let l,u,c,d=-1;for(;++d<i;)l=a(u=t[d])+"",(c=o[l])?c.push(u):o[l]=[u];for(l in o)s[l]=n(o[l],r);return s}function r(t,n){if(++n>e.length)return t;const i=[];for(const e in t)i.push({key:e,values:r(t[e],n)});return i}return t}function gD(e){Vo.call(this,null,e)}pt(hD,Vo,{transform(e,t){t.source||_e("Nest transform requires an upstream data source.");var n=e.generate,r=e.modified(),i=t.clone(),a=this.value;return(!a||r||t.changed())&&(a&&a.each((e=>{e.children&&co(e.data)&&i.rem.push(e.data)})),this.value=a=mO({values:Qe(e.keys).reduce(((e,t)=>(e.key(t),e)),mD()).entries(i.source)},pD),n&&a.each((e=>{e.children&&(e=po(e.data),i.add.push(e),i.source.push(e))})),fD(a,fo,fo)),i.source.root=a,i}});const yD=(e,t)=>e.parent===t.parent?1:2;pt(gD,Vo,{transform(e,t){t.source&&t.source.root||_e(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(e.method),r=this.fields,i=t.source.root,a=e.as||r;e.field?i.sum(e.field):i.count(),e.sort&&i.sort(_o(e.sort,(e=>e.data))),function(e,t,n){for(let r,i=0,a=t.length;i<a;++i)r=t[i],r in n&&e[r](n[r])}(n,this.params,e),n.separation&&n.separation(!1!==e.separation?yD:Ae);try{this.value=n(i)}catch(e){_e(e)}return i.each((e=>function(e,t,n){const r=e.data,i=t.length-1;for(let a=0;a<i;++a)r[n[a]]=e[t[a]];r[n[i]]=e.children?e.children.length:0}(e,r,a))),t.reflow(e.modified()).modifies(a).modifies("leaf")}});const _D=["x","y","r","depth","children"];function vD(e){gD.call(this,e)}vD.Definition={type:"Pack",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"radius",type:"field",default:null},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:_D.length,default:_D}]},pt(vD,gD,{layout:function(){var e=null,t=1,n=1,r=SO;function i(i){const a=function(){let e=1;return()=>(e=(1664525*e+1013904223)%$O)/$O}();return i.x=t/2,i.y=n/2,e?i.eachBefore(jO(e)).eachAfter(HO(r,.5,a)).eachBefore(zO(1)):i.eachBefore(jO(BO)).eachAfter(HO(SO,1,a)).eachAfter(HO(r,i.r/Math.min(t,n),a)).eachBefore(zO(Math.min(t,n)/(2*i.r))),i}return i.radius=function(t){return arguments.length?(e=xO(t),i):e},i.size=function(e){return arguments.length?(t=+e[0],n=+e[1],i):[t,n]},i.padding=function(e){return arguments.length?(r="function"==typeof e?e:AO(+e),i):r},i},params:["radius","size","padding"],fields:_D});const bD=["x0","y0","x1","y1","depth","children"];function xD(e){gD.call(this,e)}function ED(e){Vo.call(this,null,e)}xD.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:bD.length,default:bD}]},pt(xD,gD,{layout:function(){var e=1,t=1,n=0,r=!1;function i(i){var a=i.height+1;return i.x0=i.y0=n,i.x1=e,i.y1=t/a,i.eachBefore(function(e,t){return function(r){r.children&&UO(r,r.x0,e*(r.depth+1)/t,r.x1,e*(r.depth+2)/t);var i=r.x0,a=r.y0,o=r.x1-n,s=r.y1-n;o<i&&(i=o=(i+o)/2),s<a&&(a=s=(a+s)/2),r.x0=i,r.y0=a,r.x1=o,r.y1=s}}(t,a)),r&&i.eachBefore(PO),i}return i.round=function(e){return arguments.length?(r=!!e,i):r},i.size=function(n){return arguments.length?(e=+n[0],t=+n[1],i):[e,t]},i.padding=function(e){return arguments.length?(n=+e,i):n},i},params:["size","round","padding"],fields:bD}),ED.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},pt(ED,Vo,{transform(e,t){t.source||_e("Stratify transform requires an upstream data source.");let n=this.value;const r=e.modified(),i=t.fork(t.ALL).materialize(t.SOURCE),a=!n||r||t.changed(t.ADD_REM)||t.modified(e.key.fields)||t.modified(e.parentKey.fields);return i.source=i.source.slice(),a&&(n=i.source.length?fD(KO().id(e.key).parentId(e.parentKey)(i.source),e.key,$e):fD(KO()([{}]),e.key,e.key)),i.source.root=this.value=n,i}});const SD={tidy:function(){var e=ZO,t=1,n=1,r=null;function i(i){var l=function(e){for(var t,n,r,i,a,o=new rD(e,0),s=[o];t=s.pop();)if(r=t._.children)for(t.children=new Array(a=r.length),i=a-1;i>=0;--i)s.push(n=t.children[i]=new rD(r[i],i)),n.parent=t;return(o.parent=new rD(null,0)).children=[o],o}(i);if(l.eachAfter(a),l.parent.m=-l.z,l.eachBefore(o),r)i.eachBefore(s);else{var u=i,c=i,d=i;i.eachBefore((function(e){e.x<u.x&&(u=e),e.x>c.x&&(c=e),e.depth>d.depth&&(d=e)}));var f=u===c?1:e(u,c)/2,h=f-u.x,p=t/(c.x+f+h),m=n/(d.depth||1);i.eachBefore((function(e){e.x=(e.x+h)*p,e.y=e.depth*m}))}return i}function a(t){var n=t.children,r=t.parent.children,i=t.i?r[t.i-1]:null;if(n){!function(e){for(var t,n=0,r=0,i=e.children,a=i.length;--a>=0;)(t=i[a]).z+=n,t.m+=n,n+=t.s+(r+=t.c)}(t);var a=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+e(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+e(t._,i._));t.parent.A=function(t,n,r){if(n){for(var i,a=t,o=t,s=n,l=a.parent.children[0],u=a.m,c=o.m,d=s.m,f=l.m;s=eD(s),a=QO(a),s&&a;)l=QO(l),(o=eD(o)).a=t,(i=s.z+d-a.z-u+e(s._,a._))>0&&(tD(nD(s,t,r),t,i),u+=i,c+=i),d+=s.m,u+=a.m,f+=l.m,c+=o.m;s&&!eD(o)&&(o.t=s,o.m+=d-c),a&&!QO(l)&&(l.t=a,l.m+=u-f,r=t)}return r}(t,i,t.parent.A||r[0])}function o(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function s(e){e.x*=t,e.y=e.depth*n}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],i):r?null:[t,n]},i.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],i):r?[t,n]:null},i},cluster:function(){var e=iD,t=1,n=1,r=!1;function i(i){var a,o=0;i.eachAfter((function(t){var n=t.children;n?(t.x=function(e){return e.reduce(aD,0)/e.length}(n),t.y=function(e){return 1+e.reduce(oD,0)}(n)):(t.x=a?o+=e(t,a):0,t.y=0,a=t)}));var s=function(e){for(var t;t=e.children;)e=t[0];return e}(i),l=function(e){for(var t;t=e.children;)e=t[t.length-1];return e}(i),u=s.x-e(s,l)/2,c=l.x+e(l,s)/2;return i.eachAfter(r?function(e){e.x=(e.x-i.x)*t,e.y=(i.y-e.y)*n}:function(e){e.x=(e.x-u)/(c-u)*t,e.y=(1-(i.y?e.y/i.y:1))*n})}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],i):r?null:[t,n]},i.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],i):r?[t,n]:null},i}},AD=["x","y","depth","children"];function $D(e){gD.call(this,e)}function TD(e){Vo.call(this,[],e)}$D.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:AD.length,default:AD}]},pt($D,gD,{layout(e){const t=e||"tidy";if(dt(SD,t))return SD[t]();_e("Unrecognized Tree layout method: "+t)},params:["size","nodeSize"],fields:AD}),TD.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},pt(TD,Vo,{transform(e,t){const n=this.value,r=t.source&&t.source.root,i=t.fork(t.NO_SOURCE),a={};return r||_e("TreeLinks transform requires a tree data source."),t.changed(t.ADD_REM)?(i.rem=n,t.visit(t.SOURCE,(e=>a[fo(e)]=1)),r.each((e=>{const t=e.data,n=e.parent&&e.parent.data;n&&a[fo(t)]&&a[fo(n)]&&i.add.push(po({source:n,target:t}))})),this.value=i.add):t.changed(t.MOD)&&(t.visit(t.MOD,(e=>a[fo(e)]=1)),n.forEach((e=>{(a[fo(e.source)]||a[fo(e.target)])&&i.mod.push(e)}))),i}});const OD={binary:function(e,t,n,r,i){var a,o,s=e.children,l=s.length,u=new Array(l+1);for(u[0]=o=a=0;a<l;++a)u[a+1]=o+=s[a].value;!function e(t,n,r,i,a,o,l){if(t>=n-1){var c=s[t];return c.x0=i,c.y0=a,c.x1=o,void(c.y1=l)}for(var d=u[t],f=r/2+d,h=t+1,p=n-1;h<p;){var m=h+p>>>1;u[m]<f?h=m+1:p=m}f-u[h-1]<u[h]-f&&t+1<h&&--h;var g=u[h]-d,y=r-g;if(o-i>l-a){var _=r?(i*y+o*g)/r:o;e(t,h,g,i,a,_,l),e(h,n,y,_,a,o,l)}else{var v=r?(a*y+l*g)/r:l;e(t,h,g,i,a,o,v),e(h,n,y,i,v,o,l)}}(0,l,e.value,t,n,r,i)},dice:UO,slice:sD,slicedice:function(e,t,n,r,i){(1&e.depth?sD:UO)(e,t,n,r,i)},squarify:cD,resquarify:dD},DD=["x0","y0","x1","y1","depth","children"];function MD(e){gD.call(this,e)}MD.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:DD.length,default:DD}]},pt(MD,gD,{layout(){const e=function(){var e=cD,t=!1,n=1,r=1,i=[0],a=SO,o=SO,s=SO,l=SO,u=SO;function c(e){return e.x0=e.y0=0,e.x1=n,e.y1=r,e.eachBefore(d),i=[0],t&&e.eachBefore(PO),e}function d(t){var n=i[t.depth],r=t.x0+n,c=t.y0+n,d=t.x1-n,f=t.y1-n;d<r&&(r=d=(r+d)/2),f<c&&(c=f=(c+f)/2),t.x0=r,t.y0=c,t.x1=d,t.y1=f,t.children&&(n=i[t.depth+1]=a(t)/2,r+=u(t)-n,c+=o(t)-n,(d-=s(t)-n)<r&&(r=d=(r+d)/2),(f-=l(t)-n)<c&&(c=f=(c+f)/2),e(t,r,c,d,f))}return c.round=function(e){return arguments.length?(t=!!e,c):t},c.size=function(e){return arguments.length?(n=+e[0],r=+e[1],c):[n,r]},c.tile=function(t){return arguments.length?(e=EO(t),c):e},c.padding=function(e){return arguments.length?c.paddingInner(e).paddingOuter(e):c.paddingInner()},c.paddingInner=function(e){return arguments.length?(a="function"==typeof e?e:AO(+e),c):a},c.paddingOuter=function(e){return arguments.length?c.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):c.paddingTop()},c.paddingTop=function(e){return arguments.length?(o="function"==typeof e?e:AO(+e),c):o},c.paddingRight=function(e){return arguments.length?(s="function"==typeof e?e:AO(+e),c):s},c.paddingBottom=function(e){return arguments.length?(l="function"==typeof e?e:AO(+e),c):l},c.paddingLeft=function(e){return arguments.length?(u="function"==typeof e?e:AO(+e),c):u},c}();return e.ratio=t=>{const n=e.tile();n.ratio&&e.tile(n.ratio(t))},e.method=t=>{dt(OD,t)?e.tile(OD[t]):_e("Unrecognized Treemap layout method: "+t)},e},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:DD});const wD=4278190080;function ID(e,t,n){return new Uint32Array(e.getImageData(0,0,t,n).data.buffer)}function CD(e,t,n){if(!t.length)return;const r=t[0].mark.marktype;"group"===r?t.forEach((t=>{t.items.forEach((t=>CD(e,t.items,n)))})):qy[r].draw(e,{items:n?t.map(RD):t})}function RD(e){const t=go(e,{});return t.stroke&&0!==t.strokeOpacity||t.fill&&0!==t.fillOpacity?{...t,strokeOpacity:1,stroke:"#000",fillOpacity:0}:t}const kD=5,LD=31,ND=32,FD=new Uint32Array(ND+1),BD=new Uint32Array(ND+1);BD[0]=0,FD[0]=~BD[0];for(let e=1;e<=ND;++e)BD[e]=BD[e-1]<<1|1,FD[e]=~BD[e];function jD(e,t,n,r,i,a){let o=n/2;return e-o<0||e+o>i||t-(o=r/2)<0||t+o>a}function HD(e,t,n,r,i,a,o,s){const l=i*a/(2*r),u=e(t-l),c=e(t+l),d=e(n-(a/=2)),f=e(n+a);return o.outOfBounds(u,d,c,f)||o.getRange(u,d,c,f)||s&&s.getRange(u,d,c,f)}const zD=[-1,-1,1,1],PD=[-1,1,-1,1],UD=["right","center","left"],VD=["bottom","middle","top"];function WD(e,t,n,r,i,a,o,s,l,u,c,d){return!(i.outOfBounds(e,n,t,r)||(d&&a||i).getRange(e,n,t,r))}const GD={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},qD={naive:function(e,t,n,r){const i=e.width,a=e.height;return function(e){const t=e.datum.datum.items[r].items,n=t.length,o=e.datum.fontSize,s=Oy.width(e.datum,e.datum.text);let l,u,c,d,f,h,p,m=0;for(let r=0;r<n;++r)l=t[r].x,c=t[r].y,u=void 0===t[r].x2?l:t[r].x2,d=void 0===t[r].y2?c:t[r].y2,f=(l+u)/2,h=(c+d)/2,p=Math.abs(u-l+d-c),p>=m&&(m=p,e.x=f,e.y=h);return f=s/2,h=o/2,l=e.x-f,u=e.x+f,c=e.y-h,d=e.y+h,e.align="center",l<0&&u<=i?e.align="left":0<=l&&i<u&&(e.align="right"),e.baseline="middle",c<0&&d<=a?e.baseline="top":0<=c&&a<d&&(e.baseline="bottom"),!0}},"reduced-search":function(e,t,n,r){const i=e.width,a=e.height,o=t[0],s=t[1];function l(t,n,r,l,u){const c=e.invert(t),d=e.invert(n);let f,h=r,p=a;if(!jD(c,d,l,u,i,a)&&!HD(e,c,d,u,l,h,o,s)&&!HD(e,c,d,u,l,u,o,null)){for(;p-h>=1;)f=(h+p)/2,HD(e,c,d,u,l,f,o,s)?p=f:h=f;if(h>r)return[c,d,h,!0]}}return function(t){const s=t.datum.datum.items[r].items,u=s.length,c=t.datum.fontSize,d=Oy.width(t.datum,t.datum.text);let f,h,p,m,g,y,_,v,b,x,E,S,A,$,T,O,D,M=n?c:0,w=!1,I=!1,C=0;for(let r=0;r<u;++r){for(f=s[r].x,p=s[r].y,h=void 0===s[r].x2?f:s[r].x2,m=void 0===s[r].y2?p:s[r].y2,f>h&&(D=f,f=h,h=D),p>m&&(D=p,p=m,m=D),b=e(f),E=e(h),x=~~((b+E)/2),S=e(p),$=e(m),A=~~((S+$)/2),_=x;_>=b;--_)for(v=A;v>=S;--v)O=l(_,v,M,d,c),O&&([t.x,t.y,M,w]=O);for(_=x;_<=E;++_)for(v=A;v<=$;++v)O=l(_,v,M,d,c),O&&([t.x,t.y,M,w]=O);w||n||(T=Math.abs(h-f+m-p),g=(f+h)/2,y=(p+m)/2,T>=C&&!jD(g,y,d,c,i,a)&&!HD(e,g,y,c,d,c,o,null)&&(C=T,t.x=g,t.y=y,I=!0))}return!(!w&&!I||(g=d/2,y=c/2,o.setRange(e(t.x-g),e(t.y-y),e(t.x+g),e(t.y+y)),t.align="center",t.baseline="middle",0))}},floodfill:function(e,t,n,r){const i=e.width,a=e.height,o=t[0],s=t[1],l=e.bitmap();return function(t){const u=t.datum.datum.items[r].items,c=u.length,d=t.datum.fontSize,f=Oy.width(t.datum,t.datum.text),h=[];let p,m,g,y,_,v,b,x,E,S,A,$,T=n?d:0,O=!1,D=!1,M=0;for(let r=0;r<c;++r){for(p=u[r].x,g=u[r].y,m=void 0===u[r].x2?p:u[r].x2,y=void 0===u[r].y2?g:u[r].y2,h.push([e((p+m)/2),e((g+y)/2)]);h.length;)if([b,x]=h.pop(),!(o.get(b,x)||s.get(b,x)||l.get(b,x))){l.set(b,x);for(let e=0;e<4;++e)_=b+zD[e],v=x+PD[e],l.outOfBounds(_,v,_,v)||h.push([_,v]);if(_=e.invert(b),v=e.invert(x),E=T,S=a,!jD(_,v,f,d,i,a)&&!HD(e,_,v,d,f,E,o,s)&&!HD(e,_,v,d,f,d,o,null)){for(;S-E>=1;)A=(E+S)/2,HD(e,_,v,d,f,A,o,s)?S=A:E=A;E>T&&(t.x=_,t.y=v,T=E,O=!0)}}O||n||($=Math.abs(m-p+y-g),_=(p+m)/2,v=(g+y)/2,$>=M&&!jD(_,v,f,d,i,a)&&!HD(e,_,v,d,f,d,o,null)&&(M=$,t.x=_,t.y=v,D=!0))}return!(!O&&!D||(_=f/2,v=d/2,o.setRange(e(t.x-_),e(t.y-v),e(t.x+_),e(t.y+v)),t.align="center",t.baseline="middle",0))}}};function YD(e,t,n,r,i,a,o,s,l,u,c){if(!e.length)return e;const d=Math.max(r.length,i.length),f=function(e,t){const n=new Float64Array(t),r=e.length;for(let t=0;t<r;++t)n[t]=e[t]||0;for(let e=r;e<t;++e)n[e]=n[r-1];return n}(r,d),h=function(e,t){const n=new Int8Array(t),r=e.length;for(let t=0;t<r;++t)n[t]|=GD[e[t]];for(let e=r;e<t;++e)n[e]=n[r-1];return n}(i,d),p=(b=e[0].datum)&&b.mark&&b.mark.marktype,m="group"===p&&e[0].datum.items[l].marktype,g="area"===m,y=function(e,t,n,r){const i=e=>[e.x,e.x,e.x,e.y,e.y,e.y];return e?"line"===e||"area"===e?e=>i(e.datum):"line"===t?e=>{const t=e.datum.items[r].items;return i(t.length?t["start"===n?0:t.length-1]:{x:NaN,y:NaN})}:e=>{const t=e.datum.bounds;return[t.x1,(t.x1+t.x2)/2,t.x2,t.y1,(t.y1+t.y2)/2,t.y2]}:i}(p,m,s,l),_=null===u||u===1/0,v=g&&"naive"===c;var b;let x=-1,E=-1;const S=e.map((e=>{const t=_?Oy.width(e,e.text):void 0;return x=Math.max(x,t),E=Math.max(E,e.fontSize),{datum:e,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(e),textWidth:t}}));u=null===u||u===1/0?Math.max(x,E)+Math.max(...r):u;const A=function(e,t,n){const r=Math.max(1,Math.sqrt(e*t/1e6)),i=~~((e+2*n+r)/r),a=~~((t+2*n+r)/r),o=e=>~~((e+n)/r);return o.invert=e=>e*r-n,o.bitmap=()=>function(e,t){const n=new Uint32Array(~~((e*t+ND)/ND));function r(e,t){n[e]|=t}function i(e,t){n[e]&=t}return{array:n,get:(t,r)=>{const i=r*e+t;return n[i>>>kD]&1<<(i&LD)},set:(t,n)=>{const i=n*e+t;r(i>>>kD,1<<(i&LD))},clear:(t,n)=>{const r=n*e+t;i(r>>>kD,~(1<<(r&LD)))},getRange:(t,r,i,a)=>{let o,s,l,u,c=a;for(;c>=r;--c)if(o=c*e+t,s=c*e+i,l=o>>>kD,u=s>>>kD,l===u){if(n[l]&FD[o&LD]&BD[1+(s&LD)])return!0}else{if(n[l]&FD[o&LD])return!0;if(n[u]&BD[1+(s&LD)])return!0;for(let e=l+1;e<u;++e)if(n[e])return!0}return!1},setRange:(t,n,i,a)=>{let o,s,l,u,c;for(;n<=a;++n)if(o=n*e+t,s=n*e+i,l=o>>>kD,u=s>>>kD,l===u)r(l,FD[o&LD]&BD[1+(s&LD)]);else for(r(l,FD[o&LD]),r(u,BD[1+(s&LD)]),c=l+1;c<u;++c)r(c,4294967295)},clearRange:(t,n,r,a)=>{let o,s,l,u,c;for(;n<=a;++n)if(o=n*e+t,s=n*e+r,l=o>>>kD,u=s>>>kD,l===u)i(l,BD[o&LD]|FD[1+(s&LD)]);else for(i(l,BD[o&LD]),i(u,FD[1+(s&LD)]),c=l+1;c<u;++c)i(c,0)},outOfBounds:(n,r,i,a)=>n<0||r<0||a>=t||i>=e}}(i,a),o.ratio=r,o.padding=n,o.width=e,o.height=t,o}(t[0],t[1],u);let $;if(!v){n&&S.sort(((e,t)=>n(e.datum,t.datum)));let t=!1;for(let e=0;e<h.length&&!t;++e)t=5===h[e]||f[e]<0;const r=(p&&o||g)&&e.map((e=>e.datum));$=a.length||r?function(e,t,n,r,i){const a=e.width,o=e.height,s=r||i,l=Sc(a,o).getContext("2d"),u=Sc(a,o).getContext("2d"),c=s&&Sc(a,o).getContext("2d");n.forEach((e=>CD(l,e,!1))),CD(u,t,!1),s&&CD(c,t,!0);const d=ID(l,a,o),f=ID(u,a,o),h=s&&ID(c,a,o),p=e.bitmap(),m=s&&e.bitmap();let g,y,_,v,b,x,E,S;for(y=0;y<o;++y)for(g=0;g<a;++g)b=y*a+g,x=d[b]&wD,S=f[b]&wD,E=s&&h[b]&wD,(x||E||S)&&(_=e(g),v=e(y),i||!x&&!S||p.set(_,v),s&&(x||E)&&m.set(_,v));return[p,m]}(A,r||[],a,t,g):function(e,t){const n=e.bitmap();return(t||[]).forEach((t=>n.set(e(t.boundary[0]),e(t.boundary[3])))),[n,void 0]}(A,o&&S)}const T=g?qD[c](A,$,o,l):function(e,t,n,r){const i=e.width,a=e.height,o=t[0],s=t[1],l=r.length;return function(t){const u=t.boundary,c=t.datum.fontSize;if(u[2]<0||u[5]<0||u[0]>i||u[3]>a)return!1;let d,f,h,p,m,g,y,_,v,b,x,E,S,A,$,T=t.textWidth??0;for(let i=0;i<l;++i){if(d=(3&n[i])-1,f=(n[i]>>>2&3)-1,h=0===d&&0===f||r[i]<0,p=d&&f?Math.SQRT1_2:1,m=r[i]<0?-1:1,g=u[1+d]+r[i]*d*p,x=u[4+f]+m*c*f/2+r[i]*f*p,_=x-c/2,v=x+c/2,E=e(g),A=e(_),$=e(v),!T){if(!WD(E,E,A,$,o,s,0,0,0,0,0,h))continue;T=Oy.width(t.datum,t.datum.text)}if(b=g+m*T*d/2,g=b-T/2,y=b+T/2,E=e(g),S=e(y),WD(E,S,A,$,o,s,0,0,0,0,0,h))return t.x=d?d*m<0?y:g:b,t.y=f?f*m<0?v:_:x,t.align=UD[d*m+1],t.baseline=VD[f*m+1],o.setRange(E,A,S,$),!0}return!1}}(A,$,h,f);return S.forEach((e=>e.opacity=+T(e))),S}const KD=["x","y","opacity","align","baseline"],JD=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function XD(e){Vo.call(this,null,e)}function ZD(e,t){var n,r,i,a,o,s,l=[],u=function(e){return e(a)};if(null==t)l.push(e);else for(n={},r=0,i=e.length;r<i;++r)a=e[r],(s=n[o=t.map(u)])||(n[o]=s=[],s.dims=o,l.push(s)),s.push(a);return l}function QD(e){Vo.call(this,null,e)}XD.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:JD},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:KD.length,default:KD}]},pt(XD,Vo,{transform(e,t){const n=e.modified();if(!(n||t.changed(t.ADD_REM)||function(n){const r=e.sort;return et(r)&&t.modified(r.fields)}()))return;e.size&&2===e.size.length||_e("Size parameter should be specified as a [width, height] array.");const r=e.as||KD;return YD(t.materialize(t.SOURCE).source||[],e.size,e.sort,Qe(null==e.offset?1:e.offset),Qe(e.anchor||JD),e.avoidMarks||[],!1!==e.avoidBaseMark,e.lineAnchor||"end",e.markIndex||0,void 0===e.padding?0:e.padding,e.method||"naive").forEach((e=>{const t=e.datum;t[r[0]]=e.x,t[r[1]]=e.y,t[r[2]]=e.opacity,t[r[3]]=e.align,t[r[4]]=e.baseline})),t.reflow(n).modifies(r)}}),QD.Definition={type:"Loess",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"bandwidth",type:"number",default:.3},{name:"as",type:"string",array:!0}]},pt(QD,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const r=ZD(t.materialize(t.SOURCE).source,e.groupby),i=(e.groupby||[]).map(he),a=i.length,o=e.as||[he(e.x),he(e.y)],s=[];r.forEach((t=>{(function(e,t,n,r){const[i,a,o,s]=Ts(e,t,n,!0),l=i.length,u=Math.max(2,~~(r*l)),c=new Float64Array(l),d=new Float64Array(l),f=new Float64Array(l).fill(1);for(let e=-1;++e<=2;){const t=[0,u-1];for(let e=0;e<l;++e){const n=i[e],r=t[0],o=t[1],s=n-i[r]>i[o]-n?r:o;let l=0,u=0,h=0,p=0,m=0;const g=1/Math.abs(i[s]-n||1);for(let e=r;e<=o;++e){const t=i[e],r=a[e],o=Cs(Math.abs(n-t)*g)*f[e],s=t*o;l+=o,u+=s,h+=r*o,p+=r*s,m+=t*s}const[y,_]=$s(u/l,h/l,p/l,m/l);c[e]=y+_*n,d[e]=Math.abs(a[e]-c[e]),Rs(i,e+1,t)}if(2===e)break;const n=es(d);if(Math.abs(n)<1e-12)break;for(let e,t,r=0;r<l;++r)e=d[r]/(6*n),f[r]=e>=1?1e-12:(t=1-e*e)*t}return function(e,t,n,r){const i=e.length,a=[];let o,s=0,l=0,u=[];for(;s<i;++s)o=e[s]+n,u[0]===o?u[1]+=(t[s]-u[1])/++l:(l=0,u[1]+=r,u=[o,t[s]],a.push(u));return u[1]+=r,a}(i,c,o,s)})(t,e.x,e.y,e.bandwidth||.3).forEach((e=>{const n={};for(let e=0;e<a;++e)n[i[e]]=t.dims[e];n[o[0]]=e[0],n[o[1]]=e[1],s.push(po(n))}))})),this.value&&(n.rem=this.value),this.value=n.add=n.source=s}return n}});const eM={constant:As,linear:Ms,log:function(e,t,n){let r=0,i=0,a=0,o=0,s=0;Os(e,t,n,((e,t)=>{++s,e=Math.log(e),r+=(e-r)/s,i+=(t-i)/s,a+=(e*t-a)/s,o+=(e*e-o)/s}));const l=$s(r,i,a,o),u=e=>l[0]+l[1]*Math.log(e);return{coef:l,predict:u,rSquared:Ds(e,t,n,i,u)}},exp:function(e,t,n){const[r,i,a,o]=Ts(e,t,n);let s,l,u,c=0,d=0,f=0,h=0,p=0;Os(e,t,n,((e,t)=>{s=r[p++],l=Math.log(t),u=s*t,c+=(t*l-c)/p,d+=(u-d)/p,f+=(u*l-f)/p,h+=(s*u-h)/p}));const[m,g]=$s(d/o,c/o,f/o,h/o),y=e=>Math.exp(m+g*(e-a));return{coef:[Math.exp(m-g*a),g],predict:y,rSquared:Ds(e,t,n,o,y)}},pow:function(e,t,n){let r=0,i=0,a=0,o=0,s=0,l=0;Os(e,t,n,((e,t)=>{const n=Math.log(e),u=Math.log(t);++l,r+=(n-r)/l,i+=(u-i)/l,a+=(n*u-a)/l,o+=(n*n-o)/l,s+=(t-s)/l}));const u=$s(r,i,a,o),c=e=>u[0]*Math.pow(e,u[1]);return u[0]=Math.exp(u[0]),{coef:u,predict:c,rSquared:Ds(e,t,n,s,c)}},quad:ws,poly:function(e,t,n,r){if(0===r)return As(e,t,n);if(1===r)return Ms(e,t,n);if(2===r)return ws(e,t,n);const[i,a,o,s]=Ts(e,t,n),l=i.length,u=[],c=[],d=r+1;let f,h,p,m,g;for(f=0;f<d;++f){for(p=0,m=0;p<l;++p)m+=Math.pow(i[p],f)*a[p];for(u.push(m),g=new Float64Array(d),h=0;h<d;++h){for(p=0,m=0;p<l;++p)m+=Math.pow(i[p],f+h);g[h]=m}c.push(g)}c.push(u);const y=function(e){const t=e.length-1,n=[];let r,i,a,o,s;for(r=0;r<t;++r){for(o=r,i=r+1;i<t;++i)Math.abs(e[r][i])>Math.abs(e[r][o])&&(o=i);for(a=r;a<t+1;++a)s=e[a][r],e[a][r]=e[a][o],e[a][o]=s;for(i=r+1;i<t;++i)for(a=t;a>=r;a--)e[a][i]-=e[a][r]*e[r][i]/e[r][r]}for(i=t-1;i>=0;--i){for(s=0,a=i+1;a<t;++a)s+=e[a][i]*n[a];n[i]=(e[t][i]-s)/e[i][i]}return n}(c),_=e=>{e-=o;let t=s+y[0]+y[1]*e+y[2]*e*e;for(f=3;f<d;++f)t+=y[f]*Math.pow(e,f);return t};return{coef:Is(d,y,-o,s),predict:_,rSquared:Ds(e,t,n,s,_)}}};function tM(e){Vo.call(this,null,e)}tM.Definition={type:"Regression",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"string",default:"linear",values:Object.keys(eM)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:!0,length:2},{name:"params",type:"boolean",default:!1},{name:"as",type:"string",array:!0}]},pt(tM,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const r=ZD(t.materialize(t.SOURCE).source,e.groupby),i=(e.groupby||[]).map(he),a=e.method||"linear",o=null==e.order?3:e.order,s=((e,t)=>"poly"===e?t:"quad"===e?2:1)(a,o),l=e.as||[he(e.x),he(e.y)],u=eM[a],c=[];let d=e.extent;dt(eM,a)||_e("Invalid regression method: "+a),null!=d&&"log"===a&&d[0]<=0&&(t.dataflow.warn("Ignoring extent with values <= 0 for log regression."),d=null),r.forEach((n=>{if(n.length<=s)return void t.dataflow.warn("Skipping regression with more parameters than data points.");const r=u(n,e.x,e.y,o);if(e.params)return void c.push(po({keys:n.dims,coef:r.coef,rSquared:r.rSquared}));const f=d||ct(n,e.x),h=e=>{const t={};for(let e=0;e<i.length;++e)t[i[e]]=n.dims[e];t[l[0]]=e[0],t[l[1]]=e[1],c.push(po(t))};"linear"===a||"constant"===a?f.forEach((e=>h([e,r.predict(e)]))):Ls(r.predict,f,25,200).forEach(h)})),this.value&&(n.rem=this.value),this.value=n.add=n.source=c}return n}});const nM=134217729;function rM(e,t,n,r,i){let a,o,s,l,u=t[0],c=r[0],d=0,f=0;c>u==c>-u?(a=u,u=t[++d]):(a=c,c=r[++f]);let h=0;if(d<e&&f<n)for(c>u==c>-u?(o=u+a,s=a-(o-u),u=t[++d]):(o=c+a,s=a-(o-c),c=r[++f]),a=o,0!==s&&(i[h++]=s);d<e&&f<n;)c>u==c>-u?(o=a+u,l=o-a,s=a-(o-l)+(u-l),u=t[++d]):(o=a+c,l=o-a,s=a-(o-l)+(c-l),c=r[++f]),a=o,0!==s&&(i[h++]=s);for(;d<e;)o=a+u,l=o-a,s=a-(o-l)+(u-l),u=t[++d],a=o,0!==s&&(i[h++]=s);for(;f<n;)o=a+c,l=o-a,s=a-(o-l)+(c-l),c=r[++f],a=o,0!==s&&(i[h++]=s);return 0===a&&0!==h||(i[h++]=a),h}function iM(e){return new Float64Array(e)}const aM=iM(4),oM=iM(8),sM=iM(12),lM=iM(16),uM=iM(4);function cM(e,t,n,r,i,a){const o=(t-a)*(n-i),s=(e-i)*(r-a),l=o-s,u=Math.abs(o+s);return Math.abs(l)>=33306690738754716e-32*u?l:-function(e,t,n,r,i,a,o){let s,l,u,c,d,f,h,p,m,g,y,_,v,b,x,E,S,A;const $=e-i,T=n-i,O=t-a,D=r-a;b=$*D,f=nM*$,h=f-(f-$),p=$-h,f=nM*D,m=f-(f-D),g=D-m,x=p*g-(b-h*m-p*m-h*g),E=O*T,f=nM*O,h=f-(f-O),p=O-h,f=nM*T,m=f-(f-T),g=T-m,S=p*g-(E-h*m-p*m-h*g),y=x-S,d=x-y,aM[0]=x-(y+d)+(d-S),_=b+y,d=_-b,v=b-(_-d)+(y-d),y=v-E,d=v-y,aM[1]=v-(y+d)+(d-E),A=_+y,d=A-_,aM[2]=_-(A-d)+(y-d),aM[3]=A;let M=function(e,t){let n=t[0];for(let e=1;e<4;e++)n+=t[e];return n}(0,aM),w=22204460492503146e-32*o;if(M>=w||-M>=w)return M;if(d=e-$,s=e-($+d)+(d-i),d=n-T,u=n-(T+d)+(d-i),d=t-O,l=t-(O+d)+(d-a),d=r-D,c=r-(D+d)+(d-a),0===s&&0===l&&0===u&&0===c)return M;if(w=11093356479670487e-47*o+33306690738754706e-32*Math.abs(M),M+=$*c+D*s-(O*u+T*l),M>=w||-M>=w)return M;b=s*D,f=nM*s,h=f-(f-s),p=s-h,f=nM*D,m=f-(f-D),g=D-m,x=p*g-(b-h*m-p*m-h*g),E=l*T,f=nM*l,h=f-(f-l),p=l-h,f=nM*T,m=f-(f-T),g=T-m,S=p*g-(E-h*m-p*m-h*g),y=x-S,d=x-y,uM[0]=x-(y+d)+(d-S),_=b+y,d=_-b,v=b-(_-d)+(y-d),y=v-E,d=v-y,uM[1]=v-(y+d)+(d-E),A=_+y,d=A-_,uM[2]=_-(A-d)+(y-d),uM[3]=A;const I=rM(4,aM,4,uM,oM);b=$*c,f=nM*$,h=f-(f-$),p=$-h,f=nM*c,m=f-(f-c),g=c-m,x=p*g-(b-h*m-p*m-h*g),E=O*u,f=nM*O,h=f-(f-O),p=O-h,f=nM*u,m=f-(f-u),g=u-m,S=p*g-(E-h*m-p*m-h*g),y=x-S,d=x-y,uM[0]=x-(y+d)+(d-S),_=b+y,d=_-b,v=b-(_-d)+(y-d),y=v-E,d=v-y,uM[1]=v-(y+d)+(d-E),A=_+y,d=A-_,uM[2]=_-(A-d)+(y-d),uM[3]=A;const C=rM(I,oM,4,uM,sM);b=s*c,f=nM*s,h=f-(f-s),p=s-h,f=nM*c,m=f-(f-c),g=c-m,x=p*g-(b-h*m-p*m-h*g),E=l*u,f=nM*l,h=f-(f-l),p=l-h,f=nM*u,m=f-(f-u),g=u-m,S=p*g-(E-h*m-p*m-h*g),y=x-S,d=x-y,uM[0]=x-(y+d)+(d-S),_=b+y,d=_-b,v=b-(_-d)+(y-d),y=v-E,d=v-y,uM[1]=v-(y+d)+(d-E),A=_+y,d=A-_,uM[2]=_-(A-d)+(y-d),uM[3]=A;const R=rM(C,sM,4,uM,lM);return lM[R-1]}(e,t,n,r,i,a,u)}iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(8),iM(8),iM(8),iM(4),iM(8),iM(8),iM(8),iM(12),iM(192),iM(192),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(8),iM(8),iM(8),iM(8),iM(8),iM(8),iM(8),iM(8),iM(8),iM(4),iM(4),iM(4),iM(8),iM(16),iM(16),iM(16),iM(32),iM(32),iM(48),iM(64),iM(1152),iM(1152),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(24),iM(24),iM(24),iM(24),iM(24),iM(24),iM(24),iM(24),iM(24),iM(24),iM(1152),iM(1152),iM(1152),iM(1152),iM(1152),iM(2304),iM(2304),iM(3456),iM(5760),iM(8),iM(8),iM(8),iM(16),iM(24),iM(48),iM(48),iM(96),iM(192),iM(384),iM(384),iM(384),iM(768),iM(96),iM(96),iM(96),iM(1152);const dM=Math.pow(2,-52),fM=new Uint32Array(512);class hM{static from(e,t=vM,n=bM){const r=e.length,i=new Float64Array(2*r);for(let a=0;a<r;a++){const r=e[a];i[2*a]=t(r),i[2*a+1]=n(r)}return new hM(i)}constructor(e){const t=e.length>>1;if(t>0&&"number"!=typeof e[0])throw new Error("Expected coords to contain numbers.");this.coords=e;const n=Math.max(2*t-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(t)),this._hullPrev=new Uint32Array(t),this._hullNext=new Uint32Array(t),this._hullTri=new Uint32Array(t),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(t),this._dists=new Float64Array(t),this.update()}update(){const{coords:e,_hullPrev:t,_hullNext:n,_hullTri:r,_hullHash:i}=this,a=e.length>>1;let o=1/0,s=1/0,l=-1/0,u=-1/0;for(let t=0;t<a;t++){const n=e[2*t],r=e[2*t+1];n<o&&(o=n),r<s&&(s=r),n>l&&(l=n),r>u&&(u=r),this._ids[t]=t}const c=(o+l)/2,d=(s+u)/2;let f,h,p,m=1/0;for(let t=0;t<a;t++){const n=pM(c,d,e[2*t],e[2*t+1]);n<m&&(f=t,m=n)}const g=e[2*f],y=e[2*f+1];m=1/0;for(let t=0;t<a;t++){if(t===f)continue;const n=pM(g,y,e[2*t],e[2*t+1]);n<m&&n>0&&(h=t,m=n)}let _=e[2*h],v=e[2*h+1],b=1/0;for(let t=0;t<a;t++){if(t===f||t===h)continue;const n=gM(g,y,_,v,e[2*t],e[2*t+1]);n<b&&(p=t,b=n)}let x=e[2*p],E=e[2*p+1];if(b===1/0){for(let t=0;t<a;t++)this._dists[t]=e[2*t]-e[0]||e[2*t+1]-e[1];yM(this._ids,this._dists,0,a-1);const t=new Uint32Array(a);let n=0;for(let e=0,r=-1/0;e<a;e++){const i=this._ids[e];this._dists[i]>r&&(t[n++]=i,r=this._dists[i])}return this.hull=t.subarray(0,n),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(cM(g,y,_,v,x,E)<0){const e=h,t=_,n=v;h=p,_=x,v=E,p=e,x=t,E=n}const S=function(e,t,n,r,i,a){const o=n-e,s=r-t,l=i-e,u=a-t,c=o*o+s*s,d=l*l+u*u,f=.5/(o*u-s*l);return{x:e+(u*c-s*d)*f,y:t+(o*d-l*c)*f}}(g,y,_,v,x,E);this._cx=S.x,this._cy=S.y;for(let t=0;t<a;t++)this._dists[t]=pM(e[2*t],e[2*t+1],S.x,S.y);yM(this._ids,this._dists,0,a-1),this._hullStart=f;let A=3;n[f]=t[p]=h,n[h]=t[f]=p,n[p]=t[h]=f,r[f]=0,r[h]=1,r[p]=2,i.fill(-1),i[this._hashKey(g,y)]=f,i[this._hashKey(_,v)]=h,i[this._hashKey(x,E)]=p,this.trianglesLen=0,this._addTriangle(f,h,p,-1,-1,-1);for(let a,o,s=0;s<this._ids.length;s++){const l=this._ids[s],u=e[2*l],c=e[2*l+1];if(s>0&&Math.abs(u-a)<=dM&&Math.abs(c-o)<=dM)continue;if(a=u,o=c,l===f||l===h||l===p)continue;let d=0;for(let e=0,t=this._hashKey(u,c);e<this._hashSize&&(d=i[(t+e)%this._hashSize],-1===d||d===n[d]);e++);d=t[d];let m,g=d;for(;m=n[g],cM(u,c,e[2*g],e[2*g+1],e[2*m],e[2*m+1])>=0;)if(g=m,g===d){g=-1;break}if(-1===g)continue;let y=this._addTriangle(g,l,n[g],-1,-1,r[g]);r[l]=this._legalize(y+2),r[g]=y,A++;let _=n[g];for(;m=n[_],cM(u,c,e[2*_],e[2*_+1],e[2*m],e[2*m+1])<0;)y=this._addTriangle(_,l,m,r[l],-1,r[_]),r[l]=this._legalize(y+2),n[_]=_,A--,_=m;if(g===d)for(;m=t[g],cM(u,c,e[2*m],e[2*m+1],e[2*g],e[2*g+1])<0;)y=this._addTriangle(m,l,g,-1,r[g],r[m]),this._legalize(y+2),r[m]=y,n[g]=g,A--,g=m;this._hullStart=t[l]=g,n[g]=t[_]=l,n[l]=_,i[this._hashKey(u,c)]=l,i[this._hashKey(e[2*g],e[2*g+1])]=g}this.hull=new Uint32Array(A);for(let e=0,t=this._hullStart;e<A;e++)this.hull[e]=t,t=n[t];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,t){return Math.floor(function(e,t){const n=e/(Math.abs(e)+Math.abs(t));return(t>0?3-n:1+n)/4}(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:t,_halfedges:n,coords:r}=this;let i=0,a=0;for(;;){const o=n[e],s=e-e%3;if(a=s+(e+2)%3,-1===o){if(0===i)break;e=fM[--i];continue}const l=o-o%3,u=s+(e+1)%3,c=l+(o+2)%3,d=t[a],f=t[e],h=t[u],p=t[c];if(mM(r[2*d],r[2*d+1],r[2*f],r[2*f+1],r[2*h],r[2*h+1],r[2*p],r[2*p+1])){t[e]=p,t[o]=d;const r=n[c];if(-1===r){let t=this._hullStart;do{if(this._hullTri[t]===c){this._hullTri[t]=e;break}t=this._hullPrev[t]}while(t!==this._hullStart)}this._link(e,r),this._link(o,n[a]),this._link(a,c);const s=l+(o+1)%3;i<fM.length&&(fM[i++]=s)}else{if(0===i)break;e=fM[--i]}}return a}_link(e,t){this._halfedges[e]=t,-1!==t&&(this._halfedges[t]=e)}_addTriangle(e,t,n,r,i,a){const o=this.trianglesLen;return this._triangles[o]=e,this._triangles[o+1]=t,this._triangles[o+2]=n,this._link(o,r),this._link(o+1,i),this._link(o+2,a),this.trianglesLen+=3,o}}function pM(e,t,n,r){const i=e-n,a=t-r;return i*i+a*a}function mM(e,t,n,r,i,a,o,s){const l=e-o,u=t-s,c=n-o,d=r-s,f=i-o,h=a-s,p=c*c+d*d,m=f*f+h*h;return l*(d*m-p*h)-u*(c*m-p*f)+(l*l+u*u)*(c*h-d*f)<0}function gM(e,t,n,r,i,a){const o=n-e,s=r-t,l=i-e,u=a-t,c=o*o+s*s,d=l*l+u*u,f=.5/(o*u-s*l),h=(u*c-s*d)*f,p=(o*d-l*c)*f;return h*h+p*p}function yM(e,t,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){const r=e[i],a=t[r];let o=i-1;for(;o>=n&&t[e[o]]>a;)e[o+1]=e[o--];e[o+1]=r}else{let i=n+1,a=r;_M(e,n+r>>1,i),t[e[n]]>t[e[r]]&&_M(e,n,r),t[e[i]]>t[e[r]]&&_M(e,i,r),t[e[n]]>t[e[i]]&&_M(e,n,i);const o=e[i],s=t[o];for(;;){do{i++}while(t[e[i]]<s);do{a--}while(t[e[a]]>s);if(a<i)break;_M(e,i,a)}e[n+1]=e[a],e[a]=o,r-i+1>=a-n?(yM(e,t,i,r),yM(e,t,n,a-1)):(yM(e,t,n,a-1),yM(e,t,i,r))}}function _M(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function vM(e){return e[0]}function bM(e){return e[1]}const xM=1e-6;class EM{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,t){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,t){this._+=`L${this._x1=+e},${this._y1=+t}`}arc(e,t,n){const r=(e=+e)+(n=+n),i=t=+t;if(n<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${i}`:(Math.abs(this._x1-r)>xM||Math.abs(this._y1-i)>xM)&&(this._+="L"+r+","+i),n&&(this._+=`A${n},${n},0,1,1,${e-n},${t}A${n},${n},0,1,1,${this._x1=r},${this._y1=i}`)}rect(e,t,n,r){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${+n}v${+r}h${-n}Z`}value(){return this._||null}}class SM{constructor(){this._=[]}moveTo(e,t){this._.push([e,t])}closePath(){this._.push(this._[0].slice())}lineTo(e,t){this._.push([e,t])}value(){return this._.length?this._:null}}class AM{constructor(e,[t,n,r,i]=[0,0,960,500]){if(!((r=+r)>=(t=+t)&&(i=+i)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(2*e.points.length),this.vectors=new Float64Array(2*e.points.length),this.xmax=r,this.xmin=t,this.ymax=i,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:t,triangles:n},vectors:r}=this;let i,a;const o=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let r,s,l=0,u=0,c=n.length;l<c;l+=3,u+=2){const c=2*n[l],d=2*n[l+1],f=2*n[l+2],h=e[c],p=e[c+1],m=e[d],g=e[d+1],y=e[f],_=e[f+1],v=m-h,b=g-p,x=y-h,E=_-p,S=2*(v*E-b*x);if(Math.abs(S)<1e-9){if(void 0===i){i=a=0;for(const n of t)i+=e[2*n],a+=e[2*n+1];i/=t.length,a/=t.length}const n=1e9*Math.sign((i-h)*E-(a-p)*x);r=(h+y)/2-n*E,s=(p+_)/2+n*x}else{const e=1/S,t=v*v+b*b,n=x*x+E*E;r=h+(E*t-b*n)*e,s=p+(v*n-x*t)*e}o[u]=r,o[u+1]=s}let s,l,u,c=t[t.length-1],d=4*c,f=e[2*c],h=e[2*c+1];r.fill(0);for(let n=0;n<t.length;++n)c=t[n],s=d,l=f,u=h,d=4*c,f=e[2*c],h=e[2*c+1],r[s+2]=r[d]=u-h,r[s+3]=r[d+1]=f-l}render(e){const t=null==e?e=new EM:void 0,{delaunay:{halfedges:n,inedges:r,hull:i},circumcenters:a,vectors:o}=this;if(i.length<=1)return null;for(let t=0,r=n.length;t<r;++t){const r=n[t];if(r<t)continue;const i=2*Math.floor(t/3),o=2*Math.floor(r/3),s=a[i],l=a[i+1],u=a[o],c=a[o+1];this._renderSegment(s,l,u,c,e)}let s,l=i[i.length-1];for(let t=0;t<i.length;++t){s=l,l=i[t];const n=2*Math.floor(r[l]/3),u=a[n],c=a[n+1],d=4*s,f=this._project(u,c,o[d+2],o[d+3]);f&&this._renderSegment(u,c,f[0],f[1],e)}return t&&t.value()}renderBounds(e){const t=null==e?e=new EM:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),t&&t.value()}renderCell(e,t){const n=null==t?t=new EM:void 0,r=this._clip(e);if(null===r||!r.length)return;t.moveTo(r[0],r[1]);let i=r.length;for(;r[0]===r[i-2]&&r[1]===r[i-1]&&i>1;)i-=2;for(let e=2;e<i;e+=2)r[e]===r[e-2]&&r[e+1]===r[e-1]||t.lineTo(r[e],r[e+1]);return t.closePath(),n&&n.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let t=0,n=e.length/2;t<n;++t){const e=this.cellPolygon(t);e&&(e.index=t,yield e)}}cellPolygon(e){const t=new SM;return this.renderCell(e,t),t.value()}_renderSegment(e,t,n,r,i){let a;const o=this._regioncode(e,t),s=this._regioncode(n,r);0===o&&0===s?(i.moveTo(e,t),i.lineTo(n,r)):(a=this._clipSegment(e,t,n,r,o,s))&&(i.moveTo(a[0],a[1]),i.lineTo(a[2],a[3]))}contains(e,t,n){return(t=+t)==t&&(n=+n)==n&&this.delaunay._step(e,t,n)===e}*neighbors(e){const t=this._clip(e);if(t)for(const n of this.delaunay.neighbors(e)){const e=this._clip(n);if(e)e:for(let r=0,i=t.length;r<i;r+=2)for(let a=0,o=e.length;a<o;a+=2)if(t[r]===e[a]&&t[r+1]===e[a+1]&&t[(r+2)%i]===e[(a+o-2)%o]&&t[(r+3)%i]===e[(a+o-1)%o]){yield n;break e}}}_cell(e){const{circumcenters:t,delaunay:{inedges:n,halfedges:r,triangles:i}}=this,a=n[e];if(-1===a)return null;const o=[];let s=a;do{const n=Math.floor(s/3);if(o.push(t[2*n],t[2*n+1]),s=s%3==2?s-2:s+1,i[s]!==e)break;s=r[s]}while(s!==a&&-1!==s);return o}_clip(e){if(0===e&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const t=this._cell(e);if(null===t)return null;const{vectors:n}=this,r=4*e;return this._simplify(n[r]||n[r+1]?this._clipInfinite(e,t,n[r],n[r+1],n[r+2],n[r+3]):this._clipFinite(e,t))}_clipFinite(e,t){const n=t.length;let r,i,a,o,s=null,l=t[n-2],u=t[n-1],c=this._regioncode(l,u),d=0;for(let f=0;f<n;f+=2)if(r=l,i=u,l=t[f],u=t[f+1],a=c,c=this._regioncode(l,u),0===a&&0===c)o=d,d=0,s?s.push(l,u):s=[l,u];else{let t,n,f,h,p;if(0===a){if(null===(t=this._clipSegment(r,i,l,u,a,c)))continue;[n,f,h,p]=t}else{if(null===(t=this._clipSegment(l,u,r,i,c,a)))continue;[h,p,n,f]=t,o=d,d=this._edgecode(n,f),o&&d&&this._edge(e,o,d,s,s.length),s?s.push(n,f):s=[n,f]}o=d,d=this._edgecode(h,p),o&&d&&this._edge(e,o,d,s,s.length),s?s.push(h,p):s=[h,p]}if(s)o=d,d=this._edgecode(s[0],s[1]),o&&d&&this._edge(e,o,d,s,s.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return s}_clipSegment(e,t,n,r,i,a){const o=i<a;for(o&&([e,t,n,r,i,a]=[n,r,e,t,a,i]);;){if(0===i&&0===a)return o?[n,r,e,t]:[e,t,n,r];if(i&a)return null;let s,l,u=i||a;8&u?(s=e+(n-e)*(this.ymax-t)/(r-t),l=this.ymax):4&u?(s=e+(n-e)*(this.ymin-t)/(r-t),l=this.ymin):2&u?(l=t+(r-t)*(this.xmax-e)/(n-e),s=this.xmax):(l=t+(r-t)*(this.xmin-e)/(n-e),s=this.xmin),i?(e=s,t=l,i=this._regioncode(e,t)):(n=s,r=l,a=this._regioncode(n,r))}}_clipInfinite(e,t,n,r,i,a){let o,s=Array.from(t);if((o=this._project(s[0],s[1],n,r))&&s.unshift(o[0],o[1]),(o=this._project(s[s.length-2],s[s.length-1],i,a))&&s.push(o[0],o[1]),s=this._clipFinite(e,s))for(let t,n=0,r=s.length,i=this._edgecode(s[r-2],s[r-1]);n<r;n+=2)t=i,i=this._edgecode(s[n],s[n+1]),t&&i&&(n=this._edge(e,t,i,s,n),r=s.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(e,t,n,r,i){for(;t!==n;){let n,a;switch(t){case 5:t=4;continue;case 4:t=6,n=this.xmax,a=this.ymin;break;case 6:t=2;continue;case 2:t=10,n=this.xmax,a=this.ymax;break;case 10:t=8;continue;case 8:t=9,n=this.xmin,a=this.ymax;break;case 9:t=1;continue;case 1:t=5,n=this.xmin,a=this.ymin}r[i]===n&&r[i+1]===a||!this.contains(e,n,a)||(r.splice(i,0,n,a),i+=2)}return i}_project(e,t,n,r){let i,a,o,s=1/0;if(r<0){if(t<=this.ymin)return null;(i=(this.ymin-t)/r)<s&&(o=this.ymin,a=e+(s=i)*n)}else if(r>0){if(t>=this.ymax)return null;(i=(this.ymax-t)/r)<s&&(o=this.ymax,a=e+(s=i)*n)}if(n>0){if(e>=this.xmax)return null;(i=(this.xmax-e)/n)<s&&(a=this.xmax,o=t+(s=i)*r)}else if(n<0){if(e<=this.xmin)return null;(i=(this.xmin-e)/n)<s&&(a=this.xmin,o=t+(s=i)*r)}return[a,o]}_edgecode(e,t){return(e===this.xmin?1:e===this.xmax?2:0)|(t===this.ymin?4:t===this.ymax?8:0)}_regioncode(e,t){return(e<this.xmin?1:e>this.xmax?2:0)|(t<this.ymin?4:t>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let t=0;t<e.length;t+=2){const n=(t+2)%e.length,r=(t+4)%e.length;(e[t]===e[n]&&e[n]===e[r]||e[t+1]===e[n+1]&&e[n+1]===e[r+1])&&(e.splice(n,2),t-=2)}e.length||(e=null)}return e}}const $M=2*Math.PI,TM=Math.pow;function OM(e){return e[0]}function DM(e){return e[1]}function MM(e,t,n){return[e+Math.sin(e+t)*n,t+Math.cos(e-t)*n]}class wM{static from(e,t=OM,n=DM,r){return new wM("length"in e?function(e,t,n,r){const i=e.length,a=new Float64Array(2*i);for(let o=0;o<i;++o){const i=e[o];a[2*o]=t.call(r,i,o,e),a[2*o+1]=n.call(r,i,o,e)}return a}(e,t,n,r):Float64Array.from(function*(e,t,n,r){let i=0;for(const a of e)yield t.call(r,a,i,e),yield n.call(r,a,i,e),++i}(e,t,n,r)))}constructor(e){this._delaunator=new hM(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,t=this.points;if(e.hull&&e.hull.length>2&&function(e){const{triangles:t,coords:n}=e;for(let e=0;e<t.length;e+=3){const r=2*t[e],i=2*t[e+1],a=2*t[e+2];if((n[a]-n[r])*(n[i+1]-n[r+1])-(n[i]-n[r])*(n[a+1]-n[r+1])>1e-10)return!1}return!0}(e)){this.collinear=Int32Array.from({length:t.length/2},((e,t)=>t)).sort(((e,n)=>t[2*e]-t[2*n]||t[2*e+1]-t[2*n+1]));const e=this.collinear[0],n=this.collinear[this.collinear.length-1],r=[t[2*e],t[2*e+1],t[2*n],t[2*n+1]],i=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let e=0,n=t.length/2;e<n;++e){const n=MM(t[2*e],t[2*e+1],i);t[2*e]=n[0],t[2*e+1]=n[1]}this._delaunator=new hM(t)}else delete this.collinear;const n=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,i=this.triangles=this._delaunator.triangles,a=this.inedges.fill(-1),o=this._hullIndex.fill(-1);for(let e=0,t=n.length;e<t;++e){const t=i[e%3==2?e-2:e+1];-1!==n[e]&&-1!==a[t]||(a[t]=e)}for(let e=0,t=r.length;e<t;++e)o[r[e]]=e;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],a[r[0]]=1,2===r.length&&(a[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(e){return new AM(this,e)}*neighbors(e){const{inedges:t,hull:n,_hullIndex:r,halfedges:i,triangles:a,collinear:o}=this;if(o){const t=o.indexOf(e);return t>0&&(yield o[t-1]),void(t<o.length-1&&(yield o[t+1]))}const s=t[e];if(-1===s)return;let l=s,u=-1;do{if(yield u=a[l],l=l%3==2?l-2:l+1,a[l]!==e)return;if(l=i[l],-1===l){const t=n[(r[e]+1)%n.length];return void(t!==u&&(yield t))}}while(l!==s)}find(e,t,n=0){if((e=+e)!=e||(t=+t)!=t)return-1;const r=n;let i;for(;(i=this._step(n,e,t))>=0&&i!==n&&i!==r;)n=i;return i}_step(e,t,n){const{inedges:r,hull:i,_hullIndex:a,halfedges:o,triangles:s,points:l}=this;if(-1===r[e]||!l.length)return(e+1)%(l.length>>1);let u=e,c=TM(t-l[2*e],2)+TM(n-l[2*e+1],2);const d=r[e];let f=d;do{let r=s[f];const d=TM(t-l[2*r],2)+TM(n-l[2*r+1],2);if(d<c&&(c=d,u=r),f=f%3==2?f-2:f+1,s[f]!==e)break;if(f=o[f],-1===f){if(f=i[(a[e]+1)%i.length],f!==r&&TM(t-l[2*f],2)+TM(n-l[2*f+1],2)<c)return f;break}}while(f!==d);return u}render(e){const t=null==e?e=new EM:void 0,{points:n,halfedges:r,triangles:i}=this;for(let t=0,a=r.length;t<a;++t){const a=r[t];if(a<t)continue;const o=2*i[t],s=2*i[a];e.moveTo(n[o],n[o+1]),e.lineTo(n[s],n[s+1])}return this.renderHull(e),t&&t.value()}renderPoints(e,t){void 0!==t||e&&"function"==typeof e.moveTo||(t=e,e=null),t=null==t?2:+t;const n=null==e?e=new EM:void 0,{points:r}=this;for(let n=0,i=r.length;n<i;n+=2){const i=r[n],a=r[n+1];e.moveTo(i+t,a),e.arc(i,a,t,0,$M)}return n&&n.value()}renderHull(e){const t=null==e?e=new EM:void 0,{hull:n,points:r}=this,i=2*n[0],a=n.length;e.moveTo(r[i],r[i+1]);for(let t=1;t<a;++t){const i=2*n[t];e.lineTo(r[i],r[i+1])}return e.closePath(),t&&t.value()}hullPolygon(){const e=new SM;return this.renderHull(e),e.value()}renderTriangle(e,t){const n=null==t?t=new EM:void 0,{points:r,triangles:i}=this,a=2*i[e*=3],o=2*i[e+1],s=2*i[e+2];return t.moveTo(r[a],r[a+1]),t.lineTo(r[o],r[o+1]),t.lineTo(r[s],r[s+1]),t.closePath(),n&&n.value()}*trianglePolygons(){const{triangles:e}=this;for(let t=0,n=e.length/3;t<n;++t)yield this.trianglePolygon(t)}trianglePolygon(e){const t=new SM;return this.renderTriangle(e,t),t.value()}}function IM(e){Vo.call(this,null,e)}IM.Definition={type:"Voronoi",metadata:{modifies:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"size",type:"number",array:!0,length:2},{name:"extent",type:"array",array:!0,length:2,default:[[-1e5,-1e5],[1e5,1e5]],content:{type:"number",array:!0,length:2}},{name:"as",type:"string",default:"path"}]};const CM=[-1e5,-1e5,1e5,1e5];function RM(e){const t=e[0][0],n=e[0][1];let r=e.length-1;for(;e[r][0]===t&&e[r][1]===n;--r);return"M"+e.slice(0,r+1).join("L")+"Z"}pt(IM,Vo,{transform(e,t){const n=e.as||"path",r=t.source;if(!r||!r.length)return t;let i=e.size;i=i?[0,0,i[0],i[1]]:(i=e.extent)?[i[0][0],i[0][1],i[1][0],i[1][1]]:CM;const a=this.value=wM.from(r,e.x,e.y).voronoi(i);for(let e=0,t=r.length;e<t;++e){const t=a.cellPolygon(e);r[e][n]=!t||2===(o=t).length&&o[0][0]===o[1][0]&&o[0][1]===o[1][1]?null:RM(t)}var o;return t.reflow(e.modified()).modifies(n)}});var kM=Math.PI/180,LM=64,NM=2048;function FM(e,t,n,r){if(!t.sprite){var i=e.context,a=e.ratio;i.clearRect(0,0,(LM<<5)/a,NM/a);var o,s,l,u,c,d=0,f=0,h=0,p=n.length;for(--r;++r<p;){if(t=n[r],i.save(),i.font=t.style+" "+t.weight+" "+~~((t.size+1)/a)+"px "+t.font,o=i.measureText(t.text+"m").width*a,l=t.size<<1,t.rotate){var m=Math.sin(t.rotate*kM),g=Math.cos(t.rotate*kM),y=o*g,_=o*m,v=l*g,b=l*m;o=Math.max(Math.abs(y+b),Math.abs(y-b))+31>>5<<5,l=~~Math.max(Math.abs(_+v),Math.abs(_-v))}else o=o+31>>5<<5;if(l>h&&(h=l),d+o>=LM<<5&&(d=0,f+=h,h=0),f+l>=NM)break;i.translate((d+(o>>1))/a,(f+(l>>1))/a),t.rotate&&i.rotate(t.rotate*kM),i.fillText(t.text,0,0),t.padding&&(i.lineWidth=2*t.padding,i.strokeText(t.text,0,0)),i.restore(),t.width=o,t.height=l,t.xoff=d,t.yoff=f,t.x1=o>>1,t.y1=l>>1,t.x0=-t.x1,t.y0=-t.y1,t.hasText=!0,d+=o}for(var x=i.getImageData(0,0,(LM<<5)/a,NM/a).data,E=[];--r>=0;)if((t=n[r]).hasText){for(s=(o=t.width)>>5,l=t.y1-t.y0,u=0;u<l*s;u++)E[u]=0;if(null==(d=t.xoff))return;f=t.yoff;var S=0,A=-1;for(c=0;c<l;c++){for(u=0;u<o;u++){var $=s*c+(u>>5),T=x[(f+c)*(LM<<5)+(d+u)<<2]?1<<31-u%32:0;E[$]|=T,S|=T}S?A=c:(t.y0++,l--,c--,f++)}t.y1=t.y0+A,t.sprite=E.slice(0,(t.y1-t.y0)*s)}}}function BM(e,t,n){n>>=5;for(var r,i=e.sprite,a=e.width>>5,o=e.x-(a<<4),s=127&o,l=32-s,u=e.y1-e.y0,c=(e.y+e.y0)*n+(o>>5),d=0;d<u;d++){r=0;for(var f=0;f<=a;f++)if((r<<l|(f<a?(r=i[d*a+f])>>>s:0))&t[c+f])return!0;c+=n}return!1}function jM(e,t){var n=e[0],r=e[1];t.x+t.x0<n.x&&(n.x=t.x+t.x0),t.y+t.y0<n.y&&(n.y=t.y+t.y0),t.x+t.x1>r.x&&(r.x=t.x+t.x1),t.y+t.y1>r.y&&(r.y=t.y+t.y1)}function HM(e,t){return e.x+e.x1>t[0].x&&e.x+e.x0<t[1].x&&e.y+e.y1>t[0].y&&e.y+e.y0<t[1].y}function zM(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function PM(e){return"function"==typeof e?e:function(){return e}}var UM={archimedean:zM,rectangular:function(e){var t=4*e[0]/e[1],n=0,r=0;return function(e){var i=e<0?-1:1;switch(Math.sqrt(1+4*i*e)-i&3){case 0:n+=t;break;case 1:r+=4;break;case 2:n-=t;break;default:r-=4}return[n,r]}}};const VM=["x","y","font","fontSize","fontStyle","fontWeight","angle"],WM=["text","font","rotate","fontSize","fontStyle","fontWeight"];function GM(e){Vo.call(this,function(){var e,t,n,r,i,a,o,s=[256,256],l=zM,u=[],c=Math.random,d={};function f(e,t,n){for(var r,i,a,o=t.x,u=t.y,d=Math.hypot(s[0],s[1]),f=l(s),h=c()<.5?1:-1,p=-h;(r=f(p+=h))&&(i=~~r[0],a=~~r[1],!(Math.min(Math.abs(i),Math.abs(a))>=d));)if(t.x=o+i,t.y=u+a,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>s[0]||t.y+t.y1>s[1])&&(!n||!BM(t,e,s[0]))&&(!n||HM(t,n))){for(var m,g=t.sprite,y=t.width>>5,_=s[0]>>5,v=t.x-(y<<4),b=127&v,x=32-b,E=t.y1-t.y0,S=(t.y+t.y0)*_+(v>>5),A=0;A<E;A++){m=0;for(var $=0;$<=y;$++)e[S+$]|=m<<x|($<y?(m=g[A*y+$])>>>b:0);S+=_}return t.sprite=null,!0}return!1}return d.layout=function(){for(var l=function(e){e.width=e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);e.width=(LM<<5)/t,e.height=NM/t;var n=e.getContext("2d");return n.fillStyle=n.strokeStyle="red",n.textAlign="center",{context:n,ratio:t}}(Sc()),d=function(e){for(var t=[],n=-1;++n<e;)t[n]=0;return t}((s[0]>>5)*s[1]),h=null,p=u.length,m=-1,g=[],y=u.map((s=>({text:e(s),font:t(s),style:r(s),weight:i(s),rotate:a(s),size:~~(n(s)+1e-14),padding:o(s),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:s}))).sort(((e,t)=>t.size-e.size));++m<p;){var _=y[m];_.x=s[0]*(c()+.5)>>1,_.y=s[1]*(c()+.5)>>1,FM(l,_,y,m),_.hasText&&f(d,_,h)&&(g.push(_),h?jM(h,_):h=[{x:_.x+_.x0,y:_.y+_.y0},{x:_.x+_.x1,y:_.y+_.y1}],_.x-=s[0]>>1,_.y-=s[1]>>1)}return g},d.words=function(e){return arguments.length?(u=e,d):u},d.size=function(e){return arguments.length?(s=[+e[0],+e[1]],d):s},d.font=function(e){return arguments.length?(t=PM(e),d):t},d.fontStyle=function(e){return arguments.length?(r=PM(e),d):r},d.fontWeight=function(e){return arguments.length?(i=PM(e),d):i},d.rotate=function(e){return arguments.length?(a=PM(e),d):a},d.text=function(t){return arguments.length?(e=PM(t),d):e},d.spiral=function(e){return arguments.length?(l=UM[e]||e,d):l},d.fontSize=function(e){return arguments.length?(n=PM(e),d):n},d.padding=function(e){return arguments.length?(o=PM(e),d):o},d.random=function(e){return arguments.length?(c=e,d):c},d}(),e)}GM.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:VM}]},pt(GM,Vo,{transform(e,t){!e.size||e.size[0]&&e.size[1]||_e("Wordcloud size dimensions must be non-zero.");const n=e.modified();if(!(n||t.changed(t.ADD_REM)||WM.some((function(n){const r=e[n];return et(r)&&t.modified(r.fields)}))))return;const r=t.materialize(t.SOURCE).source,i=this.value,a=e.as||VM;let o,s=e.fontSize||14;if(et(s)?o=e.fontSizeRange:s=st(s),o){const e=s,t=yp("sqrt")().domain(ct(r,e)).range(o);s=n=>t(e(n))}r.forEach((e=>{e[a[0]]=NaN,e[a[1]]=NaN,e[a[3]]=0}));const l=i.words(r).text(e.text).size(e.size||[500,500]).padding(e.padding||1).spiral(e.spiral||"archimedean").rotate(e.rotate||0).font(e.font||"sans-serif").fontStyle(e.fontStyle||"normal").fontWeight(e.fontWeight||"normal").fontSize(s).random(as).layout(),u=i.size(),c=u[0]>>1,d=u[1]>>1,f=l.length;for(let e,t,n=0;n<f;++n)e=l[n],t=e.datum,t[a[0]]=e.x+c,t[a[1]]=e.y+d,t[a[2]]=e.font,t[a[3]]=e.size,t[a[4]]=e.style,t[a[5]]=e.weight,t[a[6]]=e.rotate;return t.reflow(n).modifies(a)}});const qM=e=>new Uint8Array(e),YM=e=>new Uint16Array(e),KM=e=>new Uint32Array(e);function JM(e,t,n){const r=(t<257?qM:t<65537?YM:KM)(e);return n&&r.set(n),r}function XM(e,t,n){const r=1<<t;return{one:r,zero:~r,range:n.slice(),bisect:e.bisect,index:e.index,size:e.size,onAdd(e,t){const n=this,i=n.bisect(n.range,e.value),a=e.index,o=i[0],s=i[1],l=a.length;let u;for(u=0;u<o;++u)t[a[u]]|=r;for(u=s;u<l;++u)t[a[u]]|=r;return n}}}function ZM(){let e=KM(0),t=[],n=0;return{insert:function(r,i,a){if(!i.length)return[];const o=n,s=i.length,l=KM(s);let u,c,d,f=Array(s);for(d=0;d<s;++d)f[d]=r(i[d]),l[d]=d;if(f=function(e,t){return e.sort.call(t,((t,n)=>{const r=e[t],i=e[n];return r<i?-1:r>i?1:0})),function(e,t){return Array.from(t,(t=>e[t]))}(e,t)}(f,l),o)u=t,c=e,t=Array(o+s),e=KM(o+s),function(e,t,n,r,i,a,o,s,l){let u,c=0,d=0;for(u=0;c<r&&d<o;++u)t[c]<i[d]?(s[u]=t[c],l[u]=n[c++]):(s[u]=i[d],l[u]=a[d++]+e);for(;c<r;++c,++u)s[u]=t[c],l[u]=n[c];for(;d<o;++d,++u)s[u]=i[d],l[u]=a[d]+e}(a,u,c,o,f,l,s,t,e);else{if(a>0)for(d=0;d<s;++d)l[d]+=a;t=f,e=l}return n=o+s,{index:l,value:f}},remove:function(r,i){const a=n;let o,s,l;for(s=0;!i[e[s]]&&s<a;++s);for(l=s;s<a;++s)i[o=e[s]]||(e[l]=o,t[l]=t[s],++l);n=a-r},bisect:function(e,r){let i;return r?i=r.length:(r=t,i=n),[Oc(r,e[0],0,i),Tc(r,e[1],0,i)]},reindex:function(t){for(let r=0,i=n;r<i;++r)e[r]=t[e[r]]},index:()=>e,size:()=>n}}function QM(e){Vo.call(this,function(){let e=8,t=[],n=KM(0),r=JM(0,e),i=JM(0,e);return{data:()=>t,seen:()=>n=function(e,t,n){return e.length>=t?e:((n=n||new e.constructor(t)).set(e),n)}(n,t.length),add(e){for(let n,r=0,i=t.length,a=e.length;r<a;++r)n=e[r],n._index=i++,t.push(n)},remove(e,n){const a=t.length,o=Array(a-e),s=t;let l,u,c;for(u=0;!n[u]&&u<a;++u)o[u]=t[u],s[u]=u;for(c=u;u<a;++u)l=t[u],n[u]?s[u]=-1:(s[u]=c,r[c]=r[u],i[c]=i[u],o[c]=l,l._index=c++),r[u]=0;return t=o,s},size:()=>t.length,curr:()=>r,prev:()=>i,reset:e=>i[e]=r[e],all:()=>e<257?255:e<65537?65535:4294967295,set(e,t){r[e]|=t},clear(e,t){r[e]&=~t},resize(t,n){(t>r.length||n>e)&&(e=Math.max(n,e),r=JM(t,e,r),i=JM(t,e))}}}(),e),this._indices=null,this._dims=null}function ew(e){Vo.call(this,null,e)}QM.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},pt(QM,Vo,{transform(e,t){return this._dims?e.modified("fields")||e.fields.some((e=>t.modified(e.fields)))?this.reinit(e,t):this.eval(e,t):this.init(e,t)},init(e,t){const n=e.fields,r=e.query,i=this._indices={},a=this._dims=[],o=r.length;let s,l,u=0;for(;u<o;++u)s=n[u].fname,l=i[s]||(i[s]=ZM()),a.push(XM(l,u,r[u]));return this.eval(e,t)},reinit(e,t){const n=t.materialize().fork(),r=e.fields,i=e.query,a=this._indices,o=this._dims,s=this.value,l=s.curr(),u=s.prev(),c=s.all(),d=n.rem=n.add,f=n.mod,h=i.length,p={};let m,g,y,_,v,b,x,E,S;if(u.set(l),t.rem.length&&(v=this.remove(e,t,n)),t.add.length&&s.add(t.add),t.mod.length)for(b={},_=t.mod,x=0,E=_.length;x<E;++x)b[_[x]._index]=1;for(x=0;x<h;++x)S=r[x],(!o[x]||e.modified("fields",x)||t.modified(S.fields))&&(y=S.fname,(m=p[y])||(a[y]=g=ZM(),p[y]=m=g.insert(S,t.source,0)),o[x]=XM(g,x,i[x]).onAdd(m,l));for(x=0,E=s.data().length;x<E;++x)v[x]||(u[x]!==l[x]?d.push(x):b[x]&&l[x]!==c&&f.push(x));return s.mask=(1<<h)-1,n},eval(e,t){const n=t.materialize().fork(),r=this._dims.length;let i=0;return t.rem.length&&(this.remove(e,t,n),i|=(1<<r)-1),e.modified("query")&&!e.modified("fields")&&(i|=this.update(e,t,n)),t.add.length&&(this.insert(e,t,n),i|=(1<<r)-1),t.mod.length&&(this.modify(t,n),i|=(1<<r)-1),this.value.mask=i,n},insert(e,t,n){const r=t.add,i=this.value,a=this._dims,o=this._indices,s=e.fields,l={},u=n.add,c=i.size()+r.length,d=a.length;let f,h,p,m=i.size();i.resize(c,d),i.add(r);const g=i.curr(),y=i.prev(),_=i.all();for(f=0;f<d;++f)h=s[f].fname,p=l[h]||(l[h]=o[h].insert(s[f],r,m)),a[f].onAdd(p,g);for(;m<c;++m)y[m]=_,g[m]!==_&&u.push(m)},modify(e,t){const n=t.mod,r=this.value,i=r.curr(),a=r.all(),o=e.mod;let s,l,u;for(s=0,l=o.length;s<l;++s)u=o[s]._index,i[u]!==a&&n.push(u)},remove(e,t,n){const r=this._indices,i=this.value,a=i.curr(),o=i.prev(),s=i.all(),l={},u=n.rem,c=t.rem;let d,f,h,p;for(d=0,f=c.length;d<f;++d)h=c[d]._index,l[h]=1,o[h]=p=a[h],a[h]=s,p!==s&&u.push(h);for(h in r)r[h].remove(f,l);return this.reindex(t,f,l),l},reindex(e,t,n){const r=this._indices,i=this.value;e.runAfter((()=>{const e=i.remove(t,n);for(const t in r)r[t].reindex(e)}))},update(e,t,n){const r=this._dims,i=e.query,a=t.stamp,o=r.length;let s,l,u=0;for(n.filters=0,l=0;l<o;++l)e.modified("query",l)&&(s=l,++u);if(1===u)u=r[s].one,this.incrementOne(r[s],i[s],n.add,n.rem);else for(l=0,u=0;l<o;++l)e.modified("query",l)&&(u|=r[l].one,this.incrementAll(r[l],i[l],a,n.add),n.rem=n.add);return u},incrementAll(e,t,n,r){const i=this.value,a=i.seen(),o=i.curr(),s=i.prev(),l=e.index(),u=e.bisect(e.range),c=e.bisect(t),d=c[0],f=c[1],h=u[0],p=u[1],m=e.one;let g,y,_;if(d<h)for(g=d,y=Math.min(h,f);g<y;++g)_=l[g],a[_]!==n&&(s[_]=o[_],a[_]=n,r.push(_)),o[_]^=m;else if(d>h)for(g=h,y=Math.min(d,p);g<y;++g)_=l[g],a[_]!==n&&(s[_]=o[_],a[_]=n,r.push(_)),o[_]^=m;if(f>p)for(g=Math.max(d,p),y=f;g<y;++g)_=l[g],a[_]!==n&&(s[_]=o[_],a[_]=n,r.push(_)),o[_]^=m;else if(f<p)for(g=Math.max(h,f),y=p;g<y;++g)_=l[g],a[_]!==n&&(s[_]=o[_],a[_]=n,r.push(_)),o[_]^=m;e.range=t.slice()},incrementOne(e,t,n,r){const i=this.value.curr(),a=e.index(),o=e.bisect(e.range),s=e.bisect(t),l=s[0],u=s[1],c=o[0],d=o[1],f=e.one;let h,p,m;if(l<c)for(h=l,p=Math.min(c,u);h<p;++h)m=a[h],i[m]^=f,n.push(m);else if(l>c)for(h=c,p=Math.min(l,d);h<p;++h)m=a[h],i[m]^=f,r.push(m);if(u>d)for(h=Math.max(l,d),p=u;h<p;++h)m=a[h],i[m]^=f,n.push(m);else if(u<d)for(h=Math.max(c,u),p=d;h<p;++h)m=a[h],i[m]^=f,r.push(m);e.range=t.slice()}}),ew.Definition={type:"ResolveFilter",metadata:{},params:[{name:"ignore",type:"number",required:!0,description:"A bit mask indicating which filters to ignore."},{name:"filter",type:"object",required:!0,description:"Per-tuple filter bitmaps from a CrossFilter transform."}]},pt(ew,Vo,{transform(e,t){const n=~(e.ignore||0),r=e.filter,i=r.mask;if(0==(i&n))return t.StopPropagation;const a=t.fork(t.ALL),o=r.data(),s=r.curr(),l=r.prev(),u=e=>s[e]&n?null:o[e];return a.filter(a.MOD,u),i&i-1?(a.filter(a.ADD,(e=>{const t=s[e]&n;return!t&&t^l[e]&n?o[e]:null})),a.filter(a.REM,(e=>{const t=s[e]&n;return!t||t^t^l[e]&n?null:o[e]}))):(a.filter(a.ADD,u),a.filter(a.REM,(e=>(s[e]&n)===i?o[e]:null))),a.filter(a.SOURCE,(e=>u(e._index)))}});const tw="Literal",nw="CallExpression";function rw(e){this.type=e}var iw,aw,ow,sw,lw;rw.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=function(e){switch(e.type){case"ArrayExpression":return e.elements;case"BinaryExpression":case"LogicalExpression":return[e.left,e.right];case nw:return[e.callee].concat(e.arguments);case"ConditionalExpression":return[e.test,e.consequent,e.alternate];case"MemberExpression":return[e.object,e.property];case"ObjectExpression":return e.properties;case"Property":return[e.key,e.value];case"UnaryExpression":return[e.argument];default:return[]}}(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};var uw=1,cw=2,dw=3,fw=4,hw=5,pw=6,mw=7,gw=8;(iw={})[uw]="Boolean",iw[cw]="<end>",iw[dw]="Identifier",iw[fw]="Keyword",iw[hw]="Null",iw[pw]="Numeric",iw[mw]="Punctuator",iw[gw]="String",iw[9]="RegularExpression";var yw="ArrayExpression",_w="BinaryExpression",vw="CallExpression",bw="ConditionalExpression",xw="Identifier",Ew="Literal",Sw="LogicalExpression",Aw="MemberExpression",$w="ObjectExpression",Tw="Property",Ow="UnaryExpression",Dw="Unexpected token %0",Mw="Unexpected number",ww="Unexpected string",Iw="Unexpected identifier",Cw="Unexpected reserved word",Rw="Unexpected end of input",kw="Invalid regular expression",Lw="Invalid regular expression: missing /",Nw="Octal literals are not allowed in strict mode.",Fw="Duplicate data property in object literal not allowed in strict mode",Bw="ILLEGAL",jw="Disabled.",Hw=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),zw=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function Pw(e,t){if(!e)throw new Error("ASSERT: "+t)}function Uw(e){return e>=48&&e<=57}function Vw(e){return"0123456789abcdefABCDEF".includes(e)}function Ww(e){return"01234567".includes(e)}function Gw(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)}function qw(e){return 10===e||13===e||8232===e||8233===e}function Yw(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&Hw.test(String.fromCharCode(e))}function Kw(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&zw.test(String.fromCharCode(e))}const Jw={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Xw(){for(;ow<sw;){const e=aw.charCodeAt(ow);if(!Gw(e)&&!qw(e))break;++ow}}function Zw(e){var t,n,r,i=0;for(n="u"===e?4:2,t=0;t<n;++t)ow<sw&&Vw(aw[ow])?(r=aw[ow++],i=16*i+"0123456789abcdef".indexOf(r.toLowerCase())):fI({},Dw,Bw);return String.fromCharCode(i)}function Qw(){var e,t,n,r;for(t=0,"}"===(e=aw[ow])&&fI({},Dw,Bw);ow<sw&&Vw(e=aw[ow++]);)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&fI({},Dw,Bw),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),r=56320+(t-65536&1023),String.fromCharCode(n,r))}function eI(){var e,t;for(e=aw.charCodeAt(ow++),t=String.fromCharCode(e),92===e&&(117!==aw.charCodeAt(ow)&&fI({},Dw,Bw),++ow,(e=Zw("u"))&&"\\"!==e&&Yw(e.charCodeAt(0))||fI({},Dw,Bw),t=e);ow<sw&&Kw(e=aw.charCodeAt(ow));)++ow,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==aw.charCodeAt(ow)&&fI({},Dw,Bw),++ow,(e=Zw("u"))&&"\\"!==e&&Kw(e.charCodeAt(0))||fI({},Dw,Bw),t+=e);return t}function tI(){var e,t,n,r,i=ow,a=aw.charCodeAt(ow),o=aw[ow];switch(a){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++ow,{type:mw,value:String.fromCharCode(a),start:i,end:ow};default:if(61===(e=aw.charCodeAt(ow+1)))switch(a){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return ow+=2,{type:mw,value:String.fromCharCode(a)+String.fromCharCode(e),start:i,end:ow};case 33:case 61:return ow+=2,61===aw.charCodeAt(ow)&&++ow,{type:mw,value:aw.slice(i,ow),start:i,end:ow}}}return">>>="===(r=aw.substr(ow,4))?{type:mw,value:r,start:i,end:ow+=4}:">>>"===(n=r.substr(0,3))||"<<="===n||">>="===n?{type:mw,value:n,start:i,end:ow+=3}:o===(t=n.substr(0,2))[1]&&"+-<>&|".includes(o)||"=>"===t?{type:mw,value:t,start:i,end:ow+=2}:("//"===t&&fI({},Dw,Bw),"<>=!+-*%&|^/".includes(o)?(++ow,{type:mw,value:o,start:i,end:ow}):void fI({},Dw,Bw))}function nI(){var e,t,n;if(Pw(Uw((n=aw[ow]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),t=ow,e="","."!==n){if(e=aw[ow++],n=aw[ow],"0"===e){if("x"===n||"X"===n)return++ow,function(e){let t="";for(;ow<sw&&Vw(aw[ow]);)t+=aw[ow++];return 0===t.length&&fI({},Dw,Bw),Yw(aw.charCodeAt(ow))&&fI({},Dw,Bw),{type:pw,value:parseInt("0x"+t,16),start:e,end:ow}}(t);if(Ww(n))return function(e){let t="0"+aw[ow++];for(;ow<sw&&Ww(aw[ow]);)t+=aw[ow++];return(Yw(aw.charCodeAt(ow))||Uw(aw.charCodeAt(ow)))&&fI({},Dw,Bw),{type:pw,value:parseInt(t,8),octal:!0,start:e,end:ow}}(t);n&&Uw(n.charCodeAt(0))&&fI({},Dw,Bw)}for(;Uw(aw.charCodeAt(ow));)e+=aw[ow++];n=aw[ow]}if("."===n){for(e+=aw[ow++];Uw(aw.charCodeAt(ow));)e+=aw[ow++];n=aw[ow]}if("e"===n||"E"===n)if(e+=aw[ow++],"+"!==(n=aw[ow])&&"-"!==n||(e+=aw[ow++]),Uw(aw.charCodeAt(ow)))for(;Uw(aw.charCodeAt(ow));)e+=aw[ow++];else fI({},Dw,Bw);return Yw(aw.charCodeAt(ow))&&fI({},Dw,Bw),{type:pw,value:parseFloat(e),start:t,end:ow}}function rI(){if(Xw(),ow>=sw)return{type:cw,start:ow,end:ow};const e=aw.charCodeAt(ow);return Yw(e)?function(){var e,t;return e=ow,t=92===aw.charCodeAt(ow)?eI():function(){var e,t;for(e=ow++;ow<sw;){if(92===(t=aw.charCodeAt(ow)))return ow=e,eI();if(!Kw(t))break;++ow}return aw.slice(e,ow)}(),{type:1===t.length?dw:Jw.hasOwnProperty(t)?fw:"null"===t?hw:"true"===t||"false"===t?uw:dw,value:t,start:e,end:ow}}():40===e||41===e||59===e?tI():39===e||34===e?function(){var e,t,n,r,i="",a=!1;for(Pw("'"===(e=aw[ow])||'"'===e,"String literal must starts with a quote"),t=ow,++ow;ow<sw;){if((n=aw[ow++])===e){e="";break}if("\\"===n)if((n=aw[ow++])&&qw(n.charCodeAt(0)))"\r"===n&&"\n"===aw[ow]&&++ow;else switch(n){case"u":case"x":"{"===aw[ow]?(++ow,i+=Qw()):i+=Zw(n);break;case"n":i+="\n";break;case"r":i+="\r";break;case"t":i+="\t";break;case"b":i+="\b";break;case"f":i+="\f";break;case"v":i+="\v";break;default:Ww(n)?(0!==(r="01234567".indexOf(n))&&(a=!0),ow<sw&&Ww(aw[ow])&&(a=!0,r=8*r+"01234567".indexOf(aw[ow++]),"0123".includes(n)&&ow<sw&&Ww(aw[ow])&&(r=8*r+"01234567".indexOf(aw[ow++]))),i+=String.fromCharCode(r)):i+=n}else{if(qw(n.charCodeAt(0)))break;i+=n}}return""!==e&&fI({},Dw,Bw),{type:gw,value:i,octal:a,start:t,end:ow}}():46===e?Uw(aw.charCodeAt(ow+1))?nI():tI():Uw(e)?nI():tI()}function iI(){const e=lw;return ow=e.end,lw=rI(),ow=e.end,e}function aI(){const e=ow;lw=rI(),ow=e}function oI(e,t,n){const r=new rw("||"===e||"&&"===e?Sw:_w);return r.operator=e,r.left=t,r.right=n,r}function sI(e,t){const n=new rw(vw);return n.callee=e,n.arguments=t,n}function lI(e){const t=new rw(xw);return t.name=e,t}function uI(e){const t=new rw(Ew);return t.value=e.value,t.raw=aw.slice(e.start,e.end),e.regex&&("//"===t.raw&&(t.raw="/(?:)/"),t.regex=e.regex),t}function cI(e,t,n){const r=new rw(Aw);return r.computed="["===e,r.object=t,r.property=n,r.computed||(n.member=!0),r}function dI(e,t,n){const r=new rw(Tw);return r.key=t,r.value=n,r.kind=e,r}function fI(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,((e,t)=>(Pw(t<r.length,"Message reference must be in range"),r[t])));throw(n=new Error(i)).index=ow,n.description=i,n}function hI(e){e.type===cw&&fI(e,Rw),e.type===pw&&fI(e,Mw),e.type===gw&&fI(e,ww),e.type===dw&&fI(e,Iw),e.type===fw&&fI(e,Cw),fI(e,Dw,e.value)}function pI(e){const t=iI();t.type===mw&&t.value===e||hI(t)}function mI(e){return lw.type===mw&&lw.value===e}function gI(e){return lw.type===fw&&lw.value===e}function yI(){ow=lw.start;const e=iI();return e.type===gw||e.type===pw?(e.octal&&fI(e,Nw),uI(e)):lI(e.value)}function _I(){var e,t,n;return ow=lw.start,(e=lw).type===dw?(n=yI(),pI(":"),dI("init",n,OI())):e.type!==cw&&e.type!==mw?(t=yI(),pI(":"),dI("init",t,OI())):void hI(e)}const vI={if:1};function bI(){var e,t,n;if(mI("("))return function(){pI("(");const e=DI();return pI(")"),e}();if(mI("["))return function(){const e=[];for(ow=lw.start,pI("[");!mI("]");)mI(",")?(iI(),e.push(null)):(e.push(OI()),mI("]")||pI(","));return iI(),function(e){const t=new rw(yw);return t.elements=e,t}(e)}();if(mI("{"))return function(){var e,t,n=[],r={},i=String;for(ow=lw.start,pI("{");!mI("}");)t="$"+((e=_I()).key.type===xw?e.key.name:i(e.key.value)),Object.prototype.hasOwnProperty.call(r,t)?fI({},Fw):r[t]=!0,n.push(e),mI("}")||pI(",");return pI("}"),function(e){const t=new rw($w);return t.properties=e,t}(n)}();if(e=lw.type,ow=lw.start,e===dw||vI[lw.value])n=lI(iI().value);else if(e===gw||e===pw)lw.octal&&fI(lw,Nw),n=uI(iI());else{if(e===fw)throw new Error(jw);e===uw?((t=iI()).value="true"===t.value,n=uI(t)):e===hw?((t=iI()).value=null,n=uI(t)):mI("/")||mI("/=")?(n=uI(function(){var e,t,n,r;return lw=null,Xw(),e=ow,t=function(){var e,t,n,r;for(Pw("/"===(e=aw[ow]),"Regular expression literal must start with a slash"),t=aw[ow++],n=!1,r=!1;ow<sw;)if(t+=e=aw[ow++],"\\"===e)qw((e=aw[ow++]).charCodeAt(0))&&fI({},Lw),t+=e;else if(qw(e.charCodeAt(0)))fI({},Lw);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}return r||fI({},Lw),{value:t.substr(1,t.length-2),literal:t}}(),n=function(){var e,t,n;for(t="",n="";ow<sw&&Kw((e=aw[ow]).charCodeAt(0));)++ow,"\\"===e&&ow<sw?fI({},Dw,Bw):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&fI({},kw,n),{value:n,literal:t}}(),r=function(e,t){let n=e;t.includes("u")&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,((e,t)=>{if(parseInt(t,16)<=1114111)return"x";fI({},kw)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch(e){fI({},kw)}try{return new RegExp(e,t)}catch(e){return null}}(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:ow}}()),aI()):hI(iI())}return n}function xI(){const e=[];if(pI("("),!mI(")"))for(;ow<sw&&(e.push(OI()),!mI(")"));)pI(",");return pI(")"),e}function EI(){ow=lw.start;const e=iI();return function(e){return e.type===dw||e.type===fw||e.type===uw||e.type===hw}(e)||hI(e),lI(e.value)}function SI(){pI("[");const e=DI();return pI("]"),e}function AI(){const e=function(){var e;for(e=bI();;)if(mI("."))pI("."),e=cI(".",e,EI());else if(mI("("))e=sI(e,xI());else{if(!mI("["))break;e=cI("[",e,SI())}return e}();if(lw.type===mw&&(mI("++")||mI("--")))throw new Error(jw);return e}function $I(){var e,t;if(lw.type!==mw&&lw.type!==fw)t=AI();else{if(mI("++")||mI("--"))throw new Error(jw);if(mI("+")||mI("-")||mI("~")||mI("!"))e=iI(),t=$I(),t=function(e,t){const n=new rw(Ow);return n.operator=e,n.argument=t,n.prefix=!0,n}(e.value,t);else{if(gI("delete")||gI("void")||gI("typeof"))throw new Error(jw);t=AI()}}return t}function TI(e){let t=0;if(e.type!==mw&&e.type!==fw)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11}return t}function OI(){var e,t;return e=function(){var e,t,n,r,i,a,o,s,l,u;if(e=lw,l=$I(),0===(i=TI(r=lw)))return l;for(r.prec=i,iI(),t=[e,lw],a=[l,r,o=$I()];(i=TI(lw))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,l=a.pop(),t.pop(),n=oI(s,l,o),a.push(n);(r=iI()).prec=i,a.push(r),t.push(lw),n=$I(),a.push(n)}for(n=a[u=a.length-1],t.pop();u>1;)t.pop(),n=oI(a[u-1].value,a[u-2],n),u-=2;return n}(),mI("?")&&(iI(),t=OI(),pI(":"),e=function(e,t,n){const r=new rw(bw);return r.test=e,r.consequent=t,r.alternate=n,r}(e,t,OI())),e}function DI(){const e=OI();if(mI(","))throw new Error(jw);return e}var MI={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function wI(e){function t(t,n,r){return i=>function(t,n,r,i){let a=e(n[0]);return r&&(a=r+"("+a+")",0===r.lastIndexOf("new ",0)&&(a="("+a+")")),a+"."+t+(i<0?"":0===i?"()":"("+n.slice(1).map(e).join(",")+")")}(t,i,n,r)}const n="new Date",r="String",i="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(t){t.length<3&&_e("Missing arguments to clamp function."),t.length>3&&_e("Too many arguments to clamp function.");const n=t.map(e);return"Math.max("+n[1]+", Math.min("+n[2]+","+n[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:n,date:t("getDate",n,0),day:t("getDay",n,0),year:t("getFullYear",n,0),month:t("getMonth",n,0),hours:t("getHours",n,0),minutes:t("getMinutes",n,0),seconds:t("getSeconds",n,0),milliseconds:t("getMilliseconds",n,0),time:t("getTime",n,0),timezoneoffset:t("getTimezoneOffset",n,0),utcdate:t("getUTCDate",n,0),utcday:t("getUTCDay",n,0),utcyear:t("getUTCFullYear",n,0),utcmonth:t("getUTCMonth",n,0),utchours:t("getUTCHours",n,0),utcminutes:t("getUTCMinutes",n,0),utcseconds:t("getUTCSeconds",n,0),utcmilliseconds:t("getUTCMilliseconds",n,0),length:t("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:t("toUpperCase",r,0),lower:t("toLowerCase",r,0),substring:t("substring",r),split:t("split",r),trim:t("trim",r,0),btoa:"btoa",atob:"atob",regexp:i,test:t("test",i),if:function(t){t.length<3&&_e("Missing arguments to if function."),t.length>3&&_e("Too many arguments to if function.");const n=t.map(e);return"("+n[0]+"?"+n[1]+":"+n[2]+")"}}}var II,CI,RI,kI,LI,NI,FI,BI,jI,HI,zI,PI,UI,VI,WI,GI,qI=new Sx,YI=new Sx,KI={point:qx,lineStart:qx,lineEnd:qx,polygonStart:function(){qI=new Sx,KI.lineStart=JI,KI.lineEnd=XI},polygonEnd:function(){var e=+qI;YI.add(e<0?Mx+e:e),this.lineStart=this.lineEnd=this.point=qx},sphere:function(){YI.add(Mx)}};function JI(){KI.point=ZI}function XI(){QI(II,CI)}function ZI(e,t){KI.point=QI,II=e,CI=t,RI=e*=Ix,kI=Lx(t=(t*=Ix)/2+Dx),LI=zx(t)}function QI(e,t){var n=(e*=Ix)-RI,r=n>=0?1:-1,i=r*n,a=Lx(t=(t*=Ix)/2+Dx),o=zx(t),s=LI*o,l=kI*a+s*Lx(i),u=s*r*zx(i);qI.add(kx(u,l)),RI=e,kI=a,LI=o}var eC,tC,nC,rC,iC,aC,oC,sC,lC,uC,cC,dC,fC,hC,pC,mC,gC={point:yC,lineStart:vC,lineEnd:bC,polygonStart:function(){gC.point=xC,gC.lineStart=EC,gC.lineEnd=SC,VI=new Sx,KI.polygonStart()},polygonEnd:function(){KI.polygonEnd(),gC.point=yC,gC.lineStart=vC,gC.lineEnd=bC,qI<0?(NI=-(BI=180),FI=-(jI=90)):VI>Ax?jI=90:VI<-Ax&&(FI=-90),GI[0]=NI,GI[1]=BI},sphere:function(){NI=-(BI=180),FI=-(jI=90)}};function yC(e,t){WI.push(GI=[NI=e,BI=e]),t<FI&&(FI=t),t>jI&&(jI=t)}function _C(e,t){var n=oS([e*Ix,t*Ix]);if(UI){var r=lS(UI,n),i=lS([r[1],-r[0],0],r);dS(i),i=aS(i);var a,o=e-HI,s=o>0?1:-1,l=i[0]*wx*s,u=Cx(o)>180;u^(s*HI<l&&l<s*e)?(a=i[1]*wx)>jI&&(jI=a):u^(s*HI<(l=(l+360)%360-180)&&l<s*e)?(a=-i[1]*wx)<FI&&(FI=a):(t<FI&&(FI=t),t>jI&&(jI=t)),u?e<HI?AC(NI,e)>AC(NI,BI)&&(BI=e):AC(e,BI)>AC(NI,BI)&&(NI=e):BI>=NI?(e<NI&&(NI=e),e>BI&&(BI=e)):e>HI?AC(NI,e)>AC(NI,BI)&&(BI=e):AC(e,BI)>AC(NI,BI)&&(NI=e)}else WI.push(GI=[NI=e,BI=e]);t<FI&&(FI=t),t>jI&&(jI=t),UI=n,HI=e}function vC(){gC.point=_C}function bC(){GI[0]=NI,GI[1]=BI,gC.point=yC,UI=null}function xC(e,t){if(UI){var n=e-HI;VI.add(Cx(n)>180?n+(n>0?360:-360):n)}else zI=e,PI=t;KI.point(e,t),_C(e,t)}function EC(){KI.lineStart()}function SC(){xC(zI,PI),KI.lineEnd(),Cx(VI)>Ax&&(NI=-(BI=180)),GI[0]=NI,GI[1]=BI,UI=null}function AC(e,t){return(t-=e)<0?t+360:t}function $C(e,t){return e[0]-t[0]}function TC(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}var OC={sphere:qx,point:DC,lineStart:wC,lineEnd:RC,polygonStart:function(){OC.lineStart=kC,OC.lineEnd=LC},polygonEnd:function(){OC.lineStart=wC,OC.lineEnd=RC}};function DC(e,t){e*=Ix;var n=Lx(t*=Ix);MC(n*Lx(e),n*zx(e),zx(t))}function MC(e,t,n){++eC,nC+=(e-nC)/eC,rC+=(t-rC)/eC,iC+=(n-iC)/eC}function wC(){OC.point=IC}function IC(e,t){e*=Ix;var n=Lx(t*=Ix);hC=n*Lx(e),pC=n*zx(e),mC=zx(t),OC.point=CC,MC(hC,pC,mC)}function CC(e,t){e*=Ix;var n=Lx(t*=Ix),r=n*Lx(e),i=n*zx(e),a=zx(t),o=kx(Ux((o=pC*a-mC*i)*o+(o=mC*r-hC*a)*o+(o=hC*i-pC*r)*o),hC*r+pC*i+mC*a);tC+=o,aC+=o*(hC+(hC=r)),oC+=o*(pC+(pC=i)),sC+=o*(mC+(mC=a)),MC(hC,pC,mC)}function RC(){OC.point=DC}function kC(){OC.point=NC}function LC(){FC(dC,fC),OC.point=DC}function NC(e,t){dC=e,fC=t,e*=Ix,t*=Ix,OC.point=FC;var n=Lx(t);hC=n*Lx(e),pC=n*zx(e),mC=zx(t),MC(hC,pC,mC)}function FC(e,t){e*=Ix;var n=Lx(t*=Ix),r=n*Lx(e),i=n*zx(e),a=zx(t),o=pC*a-mC*i,s=mC*r-hC*a,l=hC*i-pC*r,u=Bx(o,s,l),c=Gx(u),d=u&&-c/u;lC.add(d*o),uC.add(d*s),cC.add(d*l),tC+=c,aC+=c*(hC+(hC=r)),oC+=c*(pC+(pC=i)),sC+=c*(mC+(mC=a)),MC(hC,pC,mC)}function BC(e){return e instanceof Tf?e:new Tf(e)}const jC=Symbol("vega_selection_getter");function HC(e){return e.getter&&e.getter[jC]||(e.getter=be(e.field),e.getter[jC]=!0),e.getter}const zC="intersect",PC="union",UC="_vgsid_",VC=be(UC),WC="index:unit";function GC(e,t){for(var n,r,i=t.fields,a=t.values,o=i.length,s=0;s<o;++s)if(gt(n=HC(r=i[s])(e))&&(n=ze(n)),gt(a[s])&&(a[s]=ze(a[s])),Le(a[s])&>(a[s][0])&&(a[s]=a[s].map(ze)),"E"===r.type){if(Le(a[s])?!a[s].includes(n):n!==a[s])return!1}else if("R"===r.type){if(!mt(n,a[s]))return!1}else if("R-RE"===r.type){if(!mt(n,a[s],!0,!1))return!1}else if("R-E"===r.type){if(!mt(n,a[s],!1,!1))return!1}else if("R-LE"===r.type){if(!mt(n,a[s],!1,!0))return!1}else if("E-LT"===r.type){if(n>=a[s])return!1}else if("E-LTE"===r.type){if(n>a[s])return!1}else if("E-GT"===r.type){if(n<=a[s])return!1}else if("E-GTE"===r.type){if(n<a[s])return!1}else if("E-VALID"===r.type){if(null===n||isNaN(n))return!1}else if("E-ONE"===r.type&&-1===a[s].indexOf(n))return!1;return!0}const qC=ir(VC),YC=qC.left,KC=qC.right;var JC={[`${UC}_union`]:function(...e){const t=new Tf;for(const n of e)for(const e of n)t.add(e);return t},[`${UC}_intersect`]:function(e,...t){e=new Tf(e),t=t.map(BC);e:for(const n of e)for(const r of t)if(!r.has(n)){e.delete(n);continue e}return e},E_union:function(e,t){if(!e.length)return t;for(var n=0,r=t.length;n<r;++n)e.includes(t[n])||e.push(t[n]);return e},E_intersect:function(e,t){return e.length?e.filter((e=>t.includes(e))):t},R_union:function(e,t){var n=ze(t[0]),r=ze(t[1]);return n>r&&(n=t[1],r=t[0]),e.length?(e[0]>n&&(e[0]=n),e[1]<r&&(e[1]=r),e):[n,r]},R_intersect:function(e,t){var n=ze(t[0]),r=ze(t[1]);return n>r&&(n=t[1],r=t[0]),e.length?r<e[0]||e[1]<n?[]:(e[0]<n&&(e[0]=n),e[1]>r&&(e[1]=r),e):[n,r]}};function XC(e,t,n,r){t[0].type!==tw&&_e("First argument to selection functions must be a string literal.");const i=t[0].value,a="unit",o="@"+a,s=":"+i;(t.length>=2&&He(t).value)!==zC||dt(r,o)||(r[o]=n.getData(i).indataRef(n,a)),dt(r,s)||(r[s]=n.getData(i).tuplesRef())}function ZC(e){const t=this.context.data[e];return t?t.values.value:[]}const QC=e=>function(t,n){const r=this.context.dataflow.locale();return null===t?"null":r[e](n)(t)},eR=QC("format"),tR=QC("timeFormat"),nR=QC("utcFormat"),rR=QC("timeParse"),iR=QC("utcParse"),aR=new Date(2e3,0,1);function oR(e,t,n){return Number.isInteger(e)&&Number.isInteger(t)?(aR.setYear(2e3),aR.setMonth(e),aR.setDate(t),tR.call(this,aR,n)):""}const sR="%",lR="$";function uR(e,t,n,r){t[0].type!==tw&&_e("First argument to data functions must be a string literal.");const i=t[0].value,a=":"+i;if(!dt(a,r))try{r[a]=n.getData(i).tuplesRef()}catch(e){}}function cR(e,t,n,r){if(t[0].type===tw)dR(n,r,t[0].value);else for(e in n.scales)dR(n,r,e)}function dR(e,t,n){const r=sR+n;if(!dt(t,r))try{t[r]=e.scaleRef(n)}catch(e){}}function fR(e,t){if(vt(e)){const n=t.scales[e];return n&&gp(n.value)?n.value:void 0}if(et(e))return gp(e)?e:void 0}function hR(e,t){return function(n,r,i){if(n){const t=fR(n,(i||this).context);return t&&t.path[e](r)}return t(r)}}const pR=hR("area",(function(e){return YI=new Sx,Ex(e,KI),2*YI})),mR=hR("bounds",(function(e){var t,n,r,i,a,o,s;if(jI=BI=-(NI=FI=1/0),WI=[],Ex(e,gC),n=WI.length){for(WI.sort($C),t=1,a=[r=WI[0]];t<n;++t)TC(r,(i=WI[t])[0])||TC(r,i[1])?(AC(r[0],i[1])>AC(r[0],r[1])&&(r[1]=i[1]),AC(i[0],r[1])>AC(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(o=-1/0,t=0,r=a[n=a.length-1];t<=n;r=i,++t)i=a[t],(s=AC(r[1],i[0]))>o&&(o=s,NI=i[0],BI=r[1])}return WI=GI=null,NI===1/0||FI===1/0?[[NaN,NaN],[NaN,NaN]]:[[NI,FI],[BI,jI]]})),gR=hR("centroid",(function(e){eC=tC=nC=rC=iC=aC=oC=sC=0,lC=new Sx,uC=new Sx,cC=new Sx,Ex(e,OC);var t=+lC,n=+uC,r=+cC,i=Bx(t,n,r);return i<$x&&(t=aC,n=oC,r=sC,tC<Ax&&(t=nC,n=rC,r=iC),(i=Bx(t,n,r))<$x)?[NaN,NaN]:[kx(n,t)*wx,Gx(r/i)*wx]}));function yR(e,t,n){try{e[t].apply(e,["EXPRESSION"].concat([].slice.call(n)))}catch(t){e.warn(t)}return n[n.length-1]}function _R(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function vR(e){const t=Xc(e);return.2126*_R(t.r)+.7152*_R(t.g)+.0722*_R(t.b)}function bR(e,t){return e===t||e!=e&&t!=t||(Le(e)?!(!Le(t)||e.length!==t.length)&&function(e,t){for(let n=0,r=e.length;n<r;++n)if(!bR(e[n],t[n]))return!1;return!0}(e,t):!(!Ne(e)||!Ne(t))&&xR(e,t))}function xR(e,t){for(const n in e)if(!bR(e[n],t[n]))return!1;return!0}function ER(e){return t=>xR(e,t)}const SR={};function AR(e){return Le(e)||ArrayBuffer.isView(e)?e:null}function $R(e){return AR(e)||(vt(e)?e:null)}const TR=e=>e.data;function OR(e,t){const n=ZC.call(t,e);return n.root&&n.root.lookup||{}}const DR=()=>"undefined"!=typeof window&&window||null;function MR(e,t,n){if(!e)return[];const[r,i]=e,a=(new Xm).set(r[0],r[1],i[0],i[1]);return function(e,t,n){const r=[],i=(new Xm).union(t),a=e.marktype;return a?Dv(e,i,n,r):"group"===a?Mv(e,i,n,r):_e("Intersect scene must be mark node or group item.")}(n||this.context.dataflow.scenegraph().root,a,function(e){let t=null;if(e){const n=Qe(e.marktype),r=Qe(e.markname);t=e=>(!n.length||n.some((t=>e.marktype===t)))&&(!r.length||r.some((t=>e.name===t)))}return t}(t))}const wR={random:()=>as(),cumulativeNormal:fs,cumulativeLogNormal:_s,cumulativeUniform:Es,densityNormal:ds,densityLogNormal:ys,densityUniform:xs,quantileNormal:hs,quantileLogNormal:vs,quantileUniform:Ss,sampleNormal:cs,sampleLogNormal:gs,sampleUniform:bs,isArray:Le,isBoolean:function(e){return"boolean"==typeof e},isDate:gt,isDefined:e=>void 0!==e,isNumber:yt,isObject:Ne,isRegExp:_t,isString:vt,isTuple:co,isValid:e=>null!=e&&e==e,toBoolean:At,toDate:e=>Tt(e),toNumber:ze,toString:Ot,indexof:function(e,...t){return $R(e).indexOf(...t)},join:function(e,...t){return AR(e).join(...t)},lastindexof:function(e,...t){return $R(e).lastIndexOf(...t)},replace:function(e,t,n){return et(n)&&_e("Function argument passed to replace."),vt(t)||_t(t)||_e("Please pass a string or RegExp argument to replace."),String(e).replace(t,n)},reverse:function(e){return AR(e).slice().reverse()},sort:function(e){return AR(e).slice().sort(rt)},slice:function(e,...t){return $R(e).slice(...t)},flush:function(e,t,n,r,i,a){if(!n&&0!==n)return a;const o=+n;let s,l=e[0],u=He(e);u<l&&(s=l,l=u,u=s),s=Math.abs(t-l);const c=Math.abs(u-t);return s<c&&s<=o?r:c<=o?i:a},lerp:function(e,t){const n=e[0],r=He(e),i=+t;return i?1===i?r:n+i*(r-n):n},merge:function(){const e=[].slice.call(arguments);return e.unshift({}),ut(...e)},pad:function(e,t,n,r){const i=n||" ",a=e+"",o=t-a.length;return o<=0?a:"left"===r?xt(i,o)+a:"center"===r?xt(i,~~(o/2))+a+xt(i,Math.ceil(o/2)):a+xt(i,o)},peek:He,pluck:function(e,t){const n=SR[t]||(SR[t]=be(t));return Le(e)?e.map(n):n(e)},span:Et,inrange:mt,truncate:function(e,t,n,r){const i=null!=r?r:"…",a=e+"",o=a.length,s=Math.max(0,t-i.length);return o<=t?a:"left"===n?i+a.slice(o-s):"center"===n?a.slice(0,Math.ceil(s/2))+i+a.slice(o-~~(s/2)):a.slice(0,s)+i},rgb:Xc,lab:rh,hcl:uh,hsl:od,luminance:vR,contrast:function(e,t){const n=vR(e),r=vR(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)},sequence:Fs,format:eR,utcFormat:nR,utcParse:iR,utcOffset:function(e,t,n){return Ur(Pr(e),t,n)},utcSequence:function(e,t,n,r){return Vr(Pr(e),t,n,r)},timeFormat:tR,timeParse:rR,timeOffset:function(e,t,n){return Ur(zr(e),t,n)},timeSequence:function(e,t,n,r){return Vr(zr(e),t,n,r)},timeUnitSpecifier:function(e,t){const n=ut({},br,t),r=vr(e),i=r.length;let a,o,s="",l=0;for(l=0;l<i;)for(a=r.length;a>l;--a)if(o=r.slice(l,a).join("-"),null!=n[o]){s+=n[o],l=a;break}return s.trim()},monthFormat:function(e){return oR.call(this,e,1,"%B")},monthAbbrevFormat:function(e){return oR.call(this,e,1,"%b")},dayFormat:function(e){return oR.call(this,0,2+e,"%A")},dayAbbrevFormat:function(e){return oR.call(this,0,2+e,"%a")},quarter:function(e){return 1+~~(new Date(e).getMonth()/3)},utcquarter:function(e){return 1+~~(new Date(e).getUTCMonth()/3)},week:function(e){return Ar(new Date(e))},utcweek:function(e){return Dr(new Date(e))},dayofyear:function(e){return Sr(new Date(e))},utcdayofyear:function(e){return Or(new Date(e))},warn:function(){return yR(this.context.dataflow,"warn",arguments)},info:function(){return yR(this.context.dataflow,"info",arguments)},debug:function(){return yR(this.context.dataflow,"debug",arguments)},extent:e=>ct(e),inScope:function(e){const t=this.context.group;let n=!1;if(t)for(;e;){if(e===t){n=!0;break}e=e.mark.group}return n},intersect:MR,clampRange:function(e,t,n){let r,i=e[0],a=e[1];return a<i&&(r=a,a=i,i=r),r=a-i,r>=n-t?[t,n]:[i=Math.min(Math.max(i,t),n-r),i+r]},pinchDistance:function(e){const t=e.touches,n=t[0].clientX-t[1].clientX,r=t[0].clientY-t[1].clientY;return Math.hypot(n,r)},pinchAngle:function(e){const t=e.touches;return Math.atan2(t[0].clientY-t[1].clientY,t[0].clientX-t[1].clientX)},screen:function(){const e=DR();return e?e.screen:{}},containerSize:function(){const e=this.context.dataflow,t=e.container&&e.container();return t?[t.clientWidth,t.clientHeight]:[void 0,void 0]},windowSize:function(){const e=DR();return e?[e.innerWidth,e.innerHeight]:[void 0,void 0]},bandspace:function(e,t,n){return zh(e||0,t||0,n||0)},setdata:function(e,t){const n=this.context.dataflow,r=this.context.data[e].input;return n.pulse(r,n.changeset().remove($e).insert(t)),1},pathShape:function(e){let t=null;return function(n){return n?Am(n,t=t||hm(e)):e}},panLinear:function(e,t){return qe(e,t,ze,Ee)},panLog:function(e,t){var n=Math.sign(e[0]);return qe(e,t,Ue(n),Pe(n))},panPow:function(e,t,n){return qe(e,t,Ge(n),Ge(1/n))},panSymlog:function(e,t,n){return qe(e,t,Ve(n),We(n))},zoomLinear:Ke,zoomLog:Je,zoomPow:Xe,zoomSymlog:Ze,encode:function(e,t,n){if(e){const n=this.context.dataflow,r=e.mark.source;n.pulse(r,n.changeset().encode(e,t))}return void 0!==n?n:e},modify:function(e,t,n,r,i,a){const o=this.context.dataflow,s=this.context.data[e],l=s.input,u=o.stamp();let c,d,f=s.changes;if(!1===o._trigger||!(l.value.length||t||r))return 0;if((!f||f.stamp<u)&&(s.changes=f=o.changeset(),f.stamp=u,o.runAfter((()=>{s.modified=!0,o.pulse(l,f).run()}),!0,1)),n&&(c=!0===n?$e:Le(n)||co(n)?n:ER(n),f.remove(c)),t&&f.insert(t),r&&(c=ER(r),l.value.some(c)?f.remove(c):f.insert(r)),i){if(et(i))throw Error("modify parameter must be a data tuple, not a function");for(d in a)f.modify(i,d,a[d])}return 1},lassoAppend:function(e,t,n,r=5){const i=(e=Qe(e))[e.length-1];return void 0===i||Math.hypot(i[0]-t,i[1]-n)>r?[...e,[t,n]]:e},lassoPath:function(e){return Qe(e).reduce(((t,[n,r],i)=>t+(0==i?`M ${n},${r} `:i===e.length-1?" Z":`L ${n},${r} `)),"")},intersectLasso:function(e,t,n){const{x:r,y:i,mark:a}=n,o=(new Xm).set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[e,n]of t)e<o.x1&&(o.x1=e),e>o.x2&&(o.x2=e),n<o.y1&&(o.y1=n),n>o.y2&&(o.y2=n);return o.translate(r,i),MR([[o.x1,o.y1],[o.x2,o.y2]],e,a).filter((e=>function(e,t,n){let r=0;for(let i=0,a=n.length-1;i<n.length;a=i++){const[o,s]=n[a],[l,u]=n[i];u>t!=s>t&&e<(o-l)*(t-u)/(s-u)+l&&r++}return 1&r}(e.x,e.y,t)))}},IR=["view","item","group","xy","x","y"],CR="this.",RR={},kR={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:e=>`_[${St(lR+e)}]`,functions:function(e){const t=wI(e);IR.forEach((e=>t[e]="event.vega."+e));for(const e in wR)t[e]=CR+e;return ut(t,function(e,t,n){t.__bandwidth=e=>e&&e.bandwidth?e.bandwidth():0,n._bandwidth=cR,n._range=cR,n._scale=cR;const r=t=>"_["+(t.type===tw?St(sR+t.value):St(sR)+"+"+e(t))+"]";return{_bandwidth:e=>`this.__bandwidth(${r(e[0])})`,_range:e=>`${r(e[0])}.range()`,_scale:t=>`${r(t[0])}(${e(t[1])})`}}(e,wR,RR)),t},constants:MI,visitors:RR},LR=function(e){const t=(e=e||{}).allowed?Dt(e.allowed):{},n=e.forbidden?Dt(e.forbidden):{},r=e.constants||MI,i=(e.functions||wI)(d),a=e.globalvar,o=e.fieldvar,s=et(a)?a:e=>`${a}["${e}"]`;new Set([...Object.getOwnPropertyNames(Object.prototype).filter((e=>"function"==typeof Object.prototype[e])),"__proto__"]);let l={},u={},c=0;function d(e){if(vt(e))return e;const t=f[e.type];return null==t&&_e("Unsupported type: "+e.type),t(e)}const f={Literal:e=>e.raw,Identifier:e=>{const i=e.name;return c>0?i:dt(n,i)?_e("Illegal identifier: "+i):dt(r,i)?r[i]:dt(t,i)?i:(l[i]=1,s(i))},MemberExpression:e=>{const t=!e.computed,n=d(e.object);t&&(c+=1);const r=d(e.property);return n===o&&(u[function(e){const t=e&&e.length-1;return t&&('"'===e[0]&&'"'===e[t]||"'"===e[0]&&"'"===e[t])?e.slice(1,-1):e}(r)]=1),t&&(c-=1),n+(t?"."+r:"["+r+"]")},CallExpression:e=>{"Identifier"!==e.callee.type&&_e("Illegal callee type: "+e.callee.type);const t=e.callee.name,n=e.arguments,r=dt(i,t)&&i[t];return r||_e("Unrecognized function: "+t),et(r)?r(n):r+"("+n.map(d).join(",")+")"},ArrayExpression:e=>"["+e.elements.map(d).join(",")+"]",BinaryExpression:e=>"("+d(e.left)+" "+e.operator+" "+d(e.right)+")",UnaryExpression:e=>"("+e.operator+d(e.argument)+")",ConditionalExpression:e=>"("+d(e.test)+"?"+d(e.consequent)+":"+d(e.alternate)+")",LogicalExpression:e=>"("+d(e.left)+e.operator+d(e.right)+")",ObjectExpression:e=>{for(const t of e.properties){const e=t.key.name;Oe.has(e)&&_e("Illegal property: "+e)}return"{"+e.properties.map(d).join(",")+"}"},Property:e=>{c+=1;const t=d(e.key);return c-=1,t+":"+d(e.value)}};function h(e){const t={code:d(e),globals:Object.keys(l),fields:Object.keys(u)};return l={},u={},t}return h.functions=i,h.constants=r,h}(kR);function NR(e,t,n){return 1===arguments.length?wR[e]:(wR[e]=t,n&&(RR[e]=n),LR&&(LR.functions[e]=CR+e),this)}function FR(e,t){const n={};let r;try{r=function(e){ow=0,sw=(aw=e).length,lw=null,aI();const t=DI();if(lw.type!==cw)throw new Error("Unexpect token after expression.");return t}(e=vt(e)?e:St(e)+"")}catch(t){_e("Expression parse error: "+e)}r.visit((e=>{if(e.type!==nw)return;const r=e.callee.name,i=kR.visitors[r];i&&i(r,e.arguments,t,n)}));const i=LR(r);return i.globals.forEach((e=>{const r=lR+e;!dt(n,r)&&t.getSignal(e)&&(n[r]=t.signalRef(e))})),{$expr:ut({code:i.code},t.options.ast?{ast:r}:null),$fields:i.fields,$params:n}}NR("bandwidth",(function(e,t){const n=fR(e,(t||this).context);return n&&n.bandwidth?n.bandwidth():0}),cR),NR("copy",(function(e,t){const n=fR(e,(t||this).context);return n?n.copy():void 0}),cR),NR("domain",(function(e,t){const n=fR(e,(t||this).context);return n?n.domain():[]}),cR),NR("range",(function(e,t){const n=fR(e,(t||this).context);return n&&n.range?n.range():[]}),cR),NR("invert",(function(e,t,n){const r=fR(e,(n||this).context);return r?Le(t)?(r.invertRange||r.invert)(t):(r.invert||r.invertExtent)(t):void 0}),cR),NR("scale",(function(e,t,n){const r=fR(e,(n||this).context);return r?r(t):void 0}),cR),NR("gradient",(function(e,t,n,r,i){e=fR(e,(i||this).context);const a=function(e,t){var n,r=[];return n={gradient:"linear",x1:e?e[0]:0,y1:e?e[1]:0,x2:t?t[0]:1,y2:t?t[1]:0,stops:r,stop:function(e,t){return r.push({offset:e,color:t}),n}}}(t,n);let o=e.domain(),s=o[0],l=He(o),u=Ee;return l-s?u=Dp(e,s,l):e=(e.interpolator?yp("sequential")().interpolator(e.interpolator()):yp("linear")().interpolate(e.interpolate()).range(e.range())).domain([s=0,l=1]),e.ticks&&(o=e.ticks(+r||15),s!==o[0]&&o.unshift(s),l!==He(o)&&o.push(l)),o.forEach((t=>a.stop(u(t),e(t)))),a}),cR),NR("geoArea",pR,cR),NR("geoBounds",mR,cR),NR("geoCentroid",gR,cR),NR("geoShape",(function(e,t,n){const r=fR(e,(n||this).context);return function(e){return r?r.path.context(e)(t):""}}),cR),NR("geoScale",(function(e,t){const n=fR(e,(t||this).context);return n&&n.scale()}),cR),NR("indata",(function(e,t,n){const r=this.context.data[e]["index:"+t],i=r?r.value.get(n):void 0;return i?i.count:i}),(function(e,t,n,r){t[0].type!==tw&&_e("First argument to indata must be a string literal."),t[1].type!==tw&&_e("Second argument to indata must be a string literal.");const i=t[0].value,a=t[1].value,o="@"+a;dt(o,r)||(r[o]=n.getData(i).indataRef(n,a))})),NR("data",ZC,uR),NR("treePath",(function(e,t,n){const r=OR(e,this),i=r[t],a=r[n];return i&&a?i.path(a).map(TR):void 0}),uR),NR("treeAncestors",(function(e,t){const n=OR(e,this)[t];return n?n.ancestors().map(TR):void 0}),uR),NR("vlSelectionTest",(function(e,t,n){for(var r,i,a,o,s,l=this.context.data[e],u=l?l.values.value:[],c=l?l[WC]&&l[WC].value:void 0,d=n===zC,f=u.length,h=0;h<f;++h)if(r=u[h],c&&d){if(-1===(a=(i=i||{})[o=r.unit]||0))continue;if(s=GC(t,r),i[o]=s?-1:++a,s&&1===c.size)return!0;if(!s&&a===c.get(o).count)return!1}else if(d^(s=GC(t,r)))return s;return f&&d}),XC),NR("vlSelectionIdTest",(function(e,t,n){const r=this.context.data[e],i=r?r.values.value:[],a=r?r[WC]&&r[WC].value:void 0,o=n===zC,s=VC(t),l=YC(i,s);if(l===i.length)return!1;if(VC(i[l])!==s)return!1;if(a&&o){if(1===a.size)return!0;if(KC(i,s)-l<a.size)return!1}return!0}),XC),NR("vlSelectionResolve",(function(e,t,n,r){for(var i,a,o,s,l,u,c,d,f,h,p,m,g=this.context.data[e],y=g?g.values.value:[],_={},v={},b={},x=y.length,E=0;E<x;++E)if(s=(i=y[E]).unit,a=i.fields,o=i.values,a&&o){for(p=0,m=a.length;p<m;++p)l=a[p],d=(c=_[l.field]||(_[l.field]={}))[s]||(c[s]=[]),b[l.field]=f=l.type.charAt(0),h=JC[`${f}_union`],c[s]=h(d,Qe(o[p]));n&&(d=v[s]||(v[s]=[])).push(Qe(o).reduce(((e,t,n)=>(e[a[n].field]=t,e)),{}))}else l=UC,u=VC(i),(d=(c=_[l]||(_[l]={}))[s]||(c[s]=[])).push(u),n&&(d=v[s]||(v[s]=[])).push({[UC]:u});return t=t||PC,_[UC]?_[UC]=JC[`${UC}_${t}`](...Object.values(_[UC])):Object.keys(_).forEach((e=>{_[e]=Object.keys(_[e]).map((t=>_[e][t])).reduce(((n,r)=>void 0===n?r:JC[`${b[e]}_${t}`](n,r)))})),y=Object.keys(v),n&&y.length&&(_[r?"vlPoint":"vlMulti"]=t===PC?{or:y.reduce(((e,t)=>(e.push(...v[t]),e)),[])}:{and:y.map((e=>({or:v[e]})))}),_}),XC),NR("vlSelectionTuples",(function(e,t){return Le(e)||_e("First argument to selectionTuples must be an array."),Ne(t)||_e("Second argument to selectionTuples must be an object."),e.map((e=>ut(t.fields?{values:t.fields.map((t=>HC(t)(e.datum)))}:{[UC]:VC(e.datum)},t)))}));const BR=Dt(["rule"]),jR=Dt(["group","image","rect"]);function HR(e){return(e+"").toLowerCase()}function zR(e,t,n){n.endsWith(";")||(n="return("+n+");");const r=Function(...t.concat(n));return e&&e.functions?r.bind(e.functions):r}var PR={operator:(e,t)=>zR(e,["_"],t.code),parameter:(e,t)=>zR(e,["datum","_"],t.code),event:(e,t)=>zR(e,["event"],t.code),handler:(e,t)=>zR(e,["_","event"],`var datum=event.item&&event.item.datum;return ${t.code};`),encode:(e,t)=>{const{marktype:n,channels:r}=t;let i="var o=item,datum=o.datum,m=0,$;";for(const e in r){const t="o["+St(e)+"]";i+=`$=${r[e].code};if(${t}!==$)${t}=$,m=1;`}return i+=function(e,t){let n="";return BR[t]||(e.x2&&(e.x?(jR[t]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),e.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),e.y2&&(e.y?(jR[t]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),e.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}(r,n),i+="return m;",zR(e,["item","_"],i)},codegen:{get(e){const t=`[${e.map(St).join("][")}]`,n=Function("_",`return _${t};`);return n.path=t,n},comparator(e,t){let n;const r=Function("a","b","var u, v; return "+e.map(((e,r)=>{const i=t[r];let a,o;return e.path?(a=`a${e.path}`,o=`b${e.path}`):((n=n||{})["f"+r]=e,a=`this.f${r}(a)`,o=`this.f${r}(b)`),function(e,t,n,r){return`((u = ${e}) < (v = ${t}) || u == null) && v != null ? ${n}\n : (u > v || v == null) && u != null ? ${r}\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}\n : v !== v && u === u ? ${r} : `}(a,o,-i,i)})).join("")+"0;");return n?r.bind(n):r}}};function UR(e,t,n){if(!e||!Ne(e))return e;for(let r,i=0,a=VR.length;i<a;++i)if(r=VR[i],dt(e,r.key))return r.parse(e,t,n);return e}var VR=[{key:"$ref",parse:function(e,t){return t.get(e.$ref)||_e("Operator not defined: "+e.$ref)}},{key:"$key",parse:function(e,t){const n="k:"+e.$key+"_"+!!e.$flat;return t.fn[n]||(t.fn[n]=bt(e.$key,e.$flat,t.expr.codegen))}},{key:"$expr",parse:function(e,t,n){e.$params&&t.parseParameters(e.$params,n);const r="e:"+e.$expr.code;return t.fn[r]||(t.fn[r]=fe(t.parameterExpression(e.$expr),e.$fields))}},{key:"$field",parse:function(e,t){if(!e.$field)return null;const n="f:"+e.$field+"_"+e.$name;return t.fn[n]||(t.fn[n]=be(e.$field,e.$name,t.expr.codegen))}},{key:"$encode",parse:function(e,t){const n=e.$encode,r={};for(const e in n){const i=n[e];r[e]=fe(t.encodeExpression(i.$expr),i.$fields),r[e].output=i.$output}return r}},{key:"$compare",parse:function(e,t){const n="c:"+e.$compare+"_"+e.$order,r=Qe(e.$compare).map((e=>e&&e.$tupleid?fo:e));return t.fn[n]||(t.fn[n]=nt(r,e.$order,t.expr.codegen))}},{key:"$context",parse:function(e,t){return t}},{key:"$subflow",parse:function(e,t){const n=e.$subflow;return function(e,r,i){const a=t.fork().parse(n),o=a.get(n.operators[0].id),s=a.signals.parent;return s&&s.set(i),o.detachSubflow=()=>t.detach(a),o}}},{key:"$tupleid",parse:function(){return fo}}];const WR={skip:!0};function GR(e,t,n,r){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=r||PR,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function qR(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}function YR(e,t){e&&(null==t?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}GR.prototype=qR.prototype={fork(){const e=new qR(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter((t=>t!==e));const t=Object.keys(e.nodes);for(const n of t)e.nodes[n]._targets=null;for(const n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){const n=this,r=n.dataflow,i=e.value;if(n.set(e.id,t),"collect"===HR(e.type)&&i&&(i.$ingest?r.ingest(t,i.$ingest,i.$format):i.$request?r.preload(t,i.$request,i.$format):r.pulse(t,r.changeset().insert(i))),e.root&&(n.root=t),e.parent){let i=n.get(e.parent.$ref);i?(r.connect(i,[t]),t.targets().add(i)):(n.unresolved=n.unresolved||[]).push((()=>{i=n.get(e.parent.$ref),r.connect(i,[t]),t.targets().add(i)}))}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(const r in e.data){const i=n.data[r]||(n.data[r]={});e.data[r].forEach((e=>i[e]=t))}},resolve(){return(this.unresolved||[]).forEach((e=>e())),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[HR(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,r,i){this.dataflow.on(t,n,r,i,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:function(e){const t=this,n=e.operators||[];return e.background&&(t.background=e.background),e.eventConfig&&(t.eventConfig=e.eventConfig),e.locale&&(t.locale=e.locale),n.forEach((e=>t.parseOperator(e))),n.forEach((e=>t.parseOperatorParameters(e))),(e.streams||[]).forEach((e=>t.parseStream(e))),(e.updates||[]).forEach((e=>t.parseUpdate(e))),t.resolve()},parseOperator:function(e){const t=this;"operator"!==HR(e.type)&&e.type?t.transform(e,e.type):t.operator(e,e.update?t.operatorExpression(e.update):null)},parseOperatorParameters:function(e){const t=this;if(e.params){const n=t.get(e.id);n||_e("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}},parseParameters:function(e,t){t=t||{};const n=this;for(const r in e){const i=e[r];t[r]=Le(i)?i.map((e=>UR(e,n,t))):UR(i,n,t)}return t},parseStream:function(e){var t,n=this,r=null!=e.filter?n.eventExpression(e.filter):void 0,i=null!=e.stream?n.get(e.stream):void 0;e.source?i=n.events(e.source,e.type,r):e.merge&&(t=e.merge.map((e=>n.get(e))),i=t[0].merge.apply(t[0],t.slice(1))),e.between&&(t=e.between.map((e=>n.get(e))),i=i.between(t[0],t[1])),e.filter&&(i=i.filter(r)),null!=e.throttle&&(i=i.throttle(+e.throttle)),null!=e.debounce&&(i=i.debounce(+e.debounce)),null==i&&_e("Invalid stream definition: "+JSON.stringify(e)),e.consume&&i.consume(!0),n.stream(e,i)},parseUpdate:function(e){var t,n=this,r=Ne(r=e.source)?r.$ref:r,i=n.get(r),a=e.update,o=void 0;i||_e("Source not defined: "+e.source),t=e.target&&e.target.$expr?n.eventExpression(e.target.$expr):n.get(e.target),a&&a.$expr&&(a.$params&&(o=n.parseParameters(a.$params)),a=n.handlerExpression(a.$expr)),n.update(e,i,t,a,o)},getState:function(e){var t=this,n={};if(e.signals){var r=n.signals={};Object.keys(t.signals).forEach((n=>{const i=t.signals[n];e.signals(n,i)&&(r[n]=i.value)}))}if(e.data){var i=n.data={};Object.keys(t.data).forEach((n=>{const r=t.data[n];e.data(n,r)&&(i[n]=r.input.value)}))}return t.subcontext&&!1!==e.recurse&&(n.subcontext=t.subcontext.map((t=>t.getState(e)))),n},setState:function(e){var t=this,n=t.dataflow,r=e.data,i=e.signals;Object.keys(i||{}).forEach((e=>{n.update(t.signals[e],i[e],WR)})),Object.keys(r||{}).forEach((e=>{n.pulse(t.data[e].input,n.changeset().remove($e).insert(r[e]))})),(e.subcontext||[]).forEach(((e,n)=>{const r=t.subcontext[n];r&&r.setState(e)}))}};const KR="default";function JR(e,t){const n=e.globalCursor()?"undefined"!=typeof document&&document.body:e.container();if(n)return null==t?n.style.removeProperty("cursor"):n.style.cursor=t}function XR(e,t){var n=e._runtime.data;return dt(n,t)||_e("Unrecognized data set: "+t),n[t]}function ZR(e,t){vo(t)||_e("Second argument to changes must be a changeset.");const n=XR(this,e);return n.modified=!0,this.pulse(n.input,t)}function QR(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function ek(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function tk(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}const nk="view",rk={trap:!1};function ik(e,t,n,r){e._eventListeners.push({type:n,sources:Qe(t),handler:r})}function ak(e,t,n){const r=e._eventConfig&&e._eventConfig[t];return!(!1===r||Ne(r)&&!r[n])||(e.warn(`Blocked ${t} ${n} event listener.`),!1)}function ok(e){return e.item}function sk(e){return e.item.mark.source}function lk(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function uk(e,t,n){const r=document.createElement(e);for(const e in t)r.setAttribute(e,t[e]);return null!=n&&(r.textContent=n),r}const ck="vega-bind-radio";function dk(e,t,n,r){const i=n.event||"input",a=()=>e.update(t.value);r.signal(n.signal,t.value),t.addEventListener(i,a),ik(r,t,i,a),e.set=e=>{t.value=e,t.dispatchEvent(function(e){return"undefined"!=typeof Event?new Event(e):{type:e}}(i))}}function fk(e,t,n,r){const i=r.signal(n.signal),a=uk("div",{class:"vega-bind"}),o="radio"===n.input?a:a.appendChild(uk("label"));o.appendChild(uk("span",{class:"vega-bind-name"},n.name||n.signal)),t.appendChild(a);let s=hk;switch(n.input){case"checkbox":s=pk;break;case"select":s=mk;break;case"radio":s=gk;break;case"range":s=yk}s(e,o,n,i)}function hk(e,t,n,r){const i=uk("input");for(const e in n)"signal"!==e&&"element"!==e&&i.setAttribute("input"===e?"type":e,n[e]);i.setAttribute("name",n.signal),i.value=r,t.appendChild(i),i.addEventListener("input",(()=>e.update(i.value))),e.elements=[i],e.set=e=>i.value=e}function pk(e,t,n,r){const i={type:"checkbox",name:n.signal};r&&(i.checked=!0);const a=uk("input",i);t.appendChild(a),a.addEventListener("change",(()=>e.update(a.checked))),e.elements=[a],e.set=e=>a.checked=!!e||null}function mk(e,t,n,r){const i=uk("select",{name:n.signal}),a=n.labels||[];n.options.forEach(((e,t)=>{const n={value:e};_k(e,r)&&(n.selected=!0),i.appendChild(uk("option",n,(a[t]||e)+""))})),t.appendChild(i),i.addEventListener("change",(()=>{e.update(n.options[i.selectedIndex])})),e.elements=[i],e.set=e=>{for(let t=0,r=n.options.length;t<r;++t)if(_k(n.options[t],e))return void(i.selectedIndex=t)}}function gk(e,t,n,r){const i=uk("span",{class:ck}),a=n.labels||[];t.appendChild(i),e.elements=n.options.map(((t,o)=>{const s={type:"radio",name:n.signal,value:t};_k(t,r)&&(s.checked=!0);const l=uk("input",s);l.addEventListener("change",(()=>e.update(t)));const u=uk("label",{},(a[o]||t)+"");return u.prepend(l),i.appendChild(u),l})),e.set=t=>{const n=e.elements,r=n.length;for(let e=0;e<r;++e)_k(n[e].value,t)&&(n[e].checked=!0)}}function yk(e,t,n,r){r=void 0!==r?r:(+n.max+ +n.min)/2;const i=null!=n.max?n.max:Math.max(100,+r)||100,a=n.min||Math.min(0,i,+r)||0,o=n.step||Zt(a,i,100),s=uk("input",{type:"range",name:n.signal,min:a,max:i,step:o});s.value=r;const l=uk("span",{},+r);t.appendChild(s),t.appendChild(l);const u=()=>{l.textContent=s.value,e.update(+s.value)};s.addEventListener("input",u),s.addEventListener("change",u),e.elements=[s],e.set=e=>{s.value=e,l.textContent=e}}function _k(e,t){return e===t||e+""==t+""}function vk(e,t,n,r,i,a){return(t=t||new r(e.loader())).initialize(n,QR(e),ek(e),tk(e),i,a).background(e.background())}function bk(e,t){return t?function(){try{t.apply(this,arguments)}catch(t){e.error(t)}}:null}function xk(e,t,n){if("string"==typeof t){if("undefined"==typeof document)return e.error("DOM document instance not found."),null;if(!(t=document.querySelector(t)))return e.error("Signal bind element not found: "+t),null}if(t&&n)try{t.textContent=""}catch(n){t=null,e.error(n)}return t}const Ek=e=>+e||0;function Sk(e){return Ne(e)?{top:Ek(e.top),bottom:Ek(e.bottom),left:Ek(e.left),right:Ek(e.right)}:(e=>({top:e,bottom:e,left:e,right:e}))(Ek(e))}async function Ak(e,t,n,r){const i=Ov(t),a=i&&i.headless;return a||_e("Unrecognized renderer type: "+t),await e.runAsync(),vk(e,null,null,a,n,r).renderAsync(e._scenegraph.root)}var $k="width",Tk="height",Ok="padding",Dk={skip:!0};function Mk(e,t){var n=e.autosize(),r=e.padding();return t-(n&&n.contains===Ok?r.left+r.right:0)}function wk(e,t){var n=e.autosize(),r=e.padding();return t-(n&&n.contains===Ok?r.top+r.bottom:0)}function Ik(e,t){return t.modified&&Le(t.input.value)&&!e.startsWith("_:vega:_")}function Ck(e,t){return!("parent"===e||t instanceof Wo.proxy)}function Rk(e,t,n,r){const i=e.element();i&&i.setAttribute("title",function(e){return null==e?"":Le(e)?kk(e):Ne(e)&&!gt(e)?(t=e,Object.keys(t).map((e=>{const n=t[e];return e+": "+(Le(n)?kk(n):Lk(n))})).join("\n")):e+"";var t}(r))}function kk(e){return"["+e.map(Lk).join(", ")+"]"}function Lk(e){return Le(e)?"[…]":Ne(e)&&!gt(e)?"{…}":e}function Nk(e,t){return dt(e._signals,t)?e._signals[t]:_e("Unrecognized signal name: "+St(t))}function Fk(e,t){const n=(e._targets||[]).filter((e=>e._update&&e._update.handler===t));return n.length?n[0]:null}function Bk(e,t,n,r){let i=Fk(n,r);return i||(i=bk(e,(()=>r(t,n.value))),i.handler=r,e.on(n,null,i)),e}function jk(e,t,n){const r=Fk(t,n);return r&&t._targets.remove(r),e}pt((function(e,t){const n=this;if(t=t||{},Po.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),null!=t.logLevel&&n.logLevel(t.logLevel),t.locale||e.locale){const r=ut({},e.locale,t.locale);n.locale(function(e,t){const n=e?wa(e):Ia(),r=t?ka(t):La();return Na(n,r)}(r.number,r.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||Av,n._scenegraph=new Qy;const r=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||Rk,n._redraw=!0,n._handler=(new w_).scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=function(e){const t=ut({defaults:{}},e),n=(e,t)=>{t.forEach((t=>{Le(e[t])&&(e[t]=Dt(e[t]))}))};return n(t.defaults,["prevent","allow"]),n(t,["view","window","selector"]),t}(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=function(e,t,n){return function(e,t,n,r){return new GR(e,t,n,r)}(e,Wo,wR,n).parse(t)}(n,e,t.expr);n._runtime=i,n._signals=i.signals,n._bind=(e.bindings||[]).map((e=>({state:null,param:ut({},e)}))),i.root&&i.root.set(r),r.source=i.data.root.input,n.pulse(i.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=Mk(n,n._width),n._viewHeight=wk(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,function(e){var t=e._signals,n=t[$k],r=t[Tk],i=t[Ok];function a(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,(t=>{e._width=t.size,e._viewWidth=Mk(e,t.size),a()}),{size:n}),e._resizeHeight=e.add(null,(t=>{e._height=t.size,e._viewHeight=wk(e,t.size),a()}),{size:r});const o=e.add(null,a,{pad:i});e._resizeWidth.rank=n.rank+1,e._resizeHeight.rank=r.rank+1,o.rank=i.rank+1}(n),function(e){e.add(null,(t=>(e._background=t.bg,e._resize=1,t.bg)),{bg:e._signals.background})}(n),function(e){const t=e._signals.cursor||(e._signals.cursor=e.add({user:KR,item:null}));e.on(e.events("view","pointermove"),t,((e,n)=>{const r=t.value,i=r?vt(r)?r:r.user:KR,a=n.item&&n.item.cursor||null;return r&&i===r.user&&a==r.item?r:{user:i,item:a}})),e.add(null,(function(t){let n=t.cursor,r=this.value;return vt(n)||(r=n.item,n=n.user),JR(e,n&&n!==KR?n:r||n),r}),{cursor:t})}(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind),t.watchPixelRatio&&n._watchPixelRatio()}),Po,{async evaluate(e,t,n){if(await Po.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,i=tk(r=this),a=QR(r),o=ek(r),r._renderer.background(r.background()),r._renderer.resize(a,o,i),r._handler.origin(i),r._resizeListeners.forEach((e=>{try{e(a,o)}catch(e){r.error(e)}}))),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(e){this.error(e)}var r,i,a,o;return n&&so(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){const t=null!=e?e+"":null;return t!==this._desc&&YR(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){const r=Nk(this,e);return 1===arguments.length?r.value:this.update(r,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",Sk(e)):Sk(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(Ov(e)||_e("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(Po.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(Nk(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(e,t,n,r,i,a){this.runAfter((o=>{let s=0;o._autosize=0,o.width()!==n&&(s=1,o.signal($k,n,Dk),o._resizeWidth.skip(!0)),o.height()!==r&&(s=1,o.signal(Tk,r,Dk),o._resizeHeight.skip(!0)),o._viewWidth!==e&&(o._resize=1,o._viewWidth=e),o._viewHeight!==t&&(o._resize=1,o._viewHeight=t),o._origin[0]===i[0]&&o._origin[1]===i[1]||(o._resize=1,o._origin=i),s&&o.run("enter"),a&&o.runAfter((e=>e.resize()))}),!1,1)},addEventListener(e,t,n){let r=t;return n&&!1===n.trap||(r=bk(this,t),r.raw=t),this._handler.on(e,r),this},removeEventListener(e,t){for(var n,r,i=this._handler.handlers(e),a=i.length;--a>=0;)if(r=i[a].type,n=i[a].handler,e===r&&(t===n||t===n.raw)){this._handler.off(r,n);break}return this},addResizeListener(e){const t=this._resizeListeners;return t.includes(e)||t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return Bk(this,e,Nk(this,e),t)},removeSignalListener(e,t){return jk(this,Nk(this,e),t)},addDataListener(e,t){return Bk(this,e,XR(this,e).values,t)},removeDataListener(e,t){return jk(this,XR(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=JR(this,null);this._globalCursor=!!e,t&&JR(this,t)}return this}return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:function(e,t){this._timers.push(function(e,t,n){var r=new qT,i=t;return null==t?(r.restart(e,t,n),r):(r._restart=r.restart,r.restart=function(e,t,n){t=+t,n=null==n?WT():+n,r._restart((function a(o){o+=i,r._restart(a,i+=t,n),e(o)}),t,n)},r.restart(e,t,n),r)}((function(t){e({timestamp:Date.now(),elapsed:t})}),t))},events:function(e,t,n){var r,i=this,a=new Do(n),o=function(n,r){i.runAsync(null,(()=>{e===nk&&function(e,t){var n=e._eventConfig.defaults,r=n.prevent,i=n.allow;return!1!==r&&!0!==i&&(!0===r||!1===i||(r?r[t]:i?!i[t]:e.preventDefault()))}(i,t)&&n.preventDefault(),a.receive(function(e,t,n){var r,i,a=e._renderer,o=a&&a.canvas();return o&&(i=tk(e),(r=o_(t.changedTouches?t.changedTouches[0]:t,o))[0]-=i[0],r[1]-=i[1]),t.dataflow=e,t.item=n,t.vega=function(e,t,n){const r=t?"group"===t.mark.marktype?t:t.mark.group:null;function i(e){var n,i=r;if(e)for(n=t;n;n=n.mark.group)if(n.mark.name===e){i=n;break}return i&&i.mark&&i.mark.interactive?i:{}}function a(e){if(!e)return n;vt(e)&&(e=i(e));const t=n.slice();for(;e;)t[0]-=e.x||0,t[1]-=e.y||0,e=e.mark&&e.mark.group;return t}return{view:st(e),item:st(t||{}),group:i,xy:a,x:e=>a(e)[0],y:e=>a(e)[1]}}(e,n,r),t}(i,n,r))}))};if("timer"===e)ak(i,"timer",t)&&i.timer(o,t);else if(e===nk)ak(i,"view",t)&&i.addEventListener(t,o,rk);else if("window"===e?ak(i,"window",t)&&"undefined"!=typeof window&&(r=[window]):"undefined"!=typeof document&&ak(i,"selector",t)&&(r=Array.from(document.querySelectorAll(e))),r){for(var s=0,l=r.length;s<l;++s)r[s].addEventListener(t,o);ik(i,r,t,o)}else i.warn("Can not resolve event source: "+e);return a},finalize:function(){var e,t,n,r,i,a=this._tooltip,o=this._timers,s=this._handler.handlers(),l=this._eventListeners;for(e=o.length;--e>=0;)o[e].stop();for(e=l.length;--e>=0;)for(t=(n=l[e]).sources.length;--t>=0;)n.sources[t].removeEventListener(n.type,n.handler);for(a&&a.call(this,this._handler,null,null,null),e=s.length;--e>=0;)i=s[e].type,r=s[e].handler,this._handler.off(i,r);return this},hover:function(e,t){return t=[t||"update",(e=[e||"hover"])[0]],this.on(this.events("view","pointerover",ok),sk,lk(e)),this.on(this.events("view","pointerout",ok),sk,lk(t)),this},data:function(e,t){return arguments.length<2?XR(this,e).values.value:ZR.call(this,e,bo().remove($e).insert(t))},change:ZR,insert:function(e,t){return ZR.call(this,e,bo().insert(t))},remove:function(e,t){return ZR.call(this,e,bo().remove(t))},scale:function(e){var t=this._runtime.scales;return dt(t,e)||_e("Unrecognized scale or projection: "+e),t[e].value},initialize:function(e,t){const n=this,r=n._renderType,i=n._eventConfig.bind,a=Ov(r);e=n._el=e?xk(n,e,!0):null,function(e){const t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),YR(t,e.description()))}(n),a||n.error("Unrecognized renderer type: "+r);const o=a.handler||w_,s=e?a.renderer:a.headless;return n._renderer=s?vk(n,n._renderer,e,s):null,n._handler=function(e,t,n,r){const i=new r(e.loader(),bk(e,e.tooltip())).scene(e.scenegraph().root).initialize(n,tk(e),e);return t&&t.handlers().forEach((e=>{i.on(e.type,e.handler)})),i}(n,n._handler,e,o),n._redraw=!0,e&&"none"!==i&&(t=t?n._elBind=xk(n,t,!0):e.appendChild(uk("form",{class:"vega-bindings"})),n._bind.forEach((e=>{e.param.element&&"container"!==i&&(e.element=xk(n,e.param.element,!!e.param.input))})),n._bind.forEach((e=>{!function(e,t,n){if(!t)return;const r=n.param;let i=n.state;i||(i=n.state={elements:null,active:!1,set:null,update:t=>{t!=e.signal(r.signal)&&e.runAsync(null,(()=>{i.source=!0,e.signal(r.signal,t)}))}},r.debounce&&(i.update=lt(r.debounce,i.update))),(null==r.input&&r.element?dk:fk)(i,t,r,e),i.active||(e.on(e._signals[r.signal],null,(()=>{i.source?i.source=!1:i.set(e.signal(r.signal))})),i.active=!0)}(n,e.element||t,e)}))),n},toImageURL:async function(e,t){e!==Av&&e!==$v&&"png"!==e&&_e("Unrecognized image type: "+e);const n=await Ak(this,e,t);return e===$v?function(e,t){const n=new Blob([e],{type:"image/svg+xml"});return window.URL.createObjectURL(n)}(n.svg()):n.canvas().toDataURL("image/png")},toCanvas:async function(e,t){return(await Ak(this,Av,e,t)).canvas()},toSVG:async function(e){return(await Ak(this,$v,e)).svg()},getState:function(e){return this._runtime.getState(e||{data:Ik,signals:Ck,recurse:!0})},setState:function(e){return this.runAsync(null,(t=>{t._trigger=!1,t._runtime.setState(e)}),(e=>{e._trigger=!0})),this},_watchPixelRatio:function(){if("canvas"===this.renderer()&&this._renderer._canvas){let e=null;const t=()=>{null!=e&&e();const n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener("change",t),e=()=>{n.removeEventListener("change",t)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};t()}}});const Hk="view",zk="[",Pk="]",Uk="{",Vk="}",Wk=":",Gk=",",qk="@",Yk=">",Kk=/[[\]{}]/,Jk={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let Xk,Zk;function Qk(e,t,n,r,i){const a=e.length;let o,s=0;for(;t<a;++t){if(o=e[t],!s&&o===n)return t;i&&i.includes(o)?--s:r&&r.includes(o)&&++s}return t}function eL(e){const t=[],n=e.length;let r=0,i=0;for(;i<n;)i=Qk(e,i,Gk,zk+Uk,Pk+Vk),t.push(e.substring(r,i).trim()),r=++i;if(0===t.length)throw"Empty event selector: "+e;return t}function tL(e){return"["===e[0]?function(e){const t=e.length;let n,r=1;if(r=Qk(e,r,Pk,zk,Pk),r===t)throw"Empty between selector: "+e;if(n=eL(e.substring(1,r)),2!==n.length)throw"Between selector must have two elements: "+e;if((e=e.slice(r+1).trim())[0]!==Yk)throw"Expected '>' after between selector: "+e;n=n.map(tL);const i=tL(e.slice(1).trim());return i.between?{between:n,stream:i}:(i.between=n,i)}(e):function(e){const t={source:Xk},n=[];let r,i,a=[0,0],o=0,s=0,l=e.length,u=0;if(e[l-1]===Vk){if(u=e.lastIndexOf(Uk),!(u>=0))throw"Unmatched right brace: "+e;try{a=function(e){const t=e.split(Gk);if(!e.length||t.length>2)throw e;return t.map((t=>{const n=+t;if(n!=n)throw e;return n}))}(e.substring(u+1,l-1))}catch(t){throw"Invalid throttle specification: "+e}l=(e=e.slice(0,u).trim()).length,u=0}if(!l)throw e;if(e[0]===qk&&(o=++u),r=Qk(e,u,Wk),r<l&&(n.push(e.substring(s,r).trim()),s=u=++r),u=Qk(e,u,zk),u===l)n.push(e.substring(s,l).trim());else if(n.push(e.substring(s,u).trim()),i=[],s=++u,s===l)throw"Unmatched left bracket: "+e;for(;u<l;){if(u=Qk(e,u,Pk),u===l)throw"Unmatched left bracket: "+e;if(i.push(e.substring(s,u).trim()),u<l-1&&e[++u]!==zk)throw"Expected left bracket: "+e;s=++u}if(!(l=n.length)||Kk.test(n[l-1]))throw"Invalid event selector: "+e;var c;return l>1?(t.type=n[1],o?t.markname=n[0].slice(1):(c=n[0],Zk[c]?t.marktype=n[0]:t.source=n[0])):t.type=n[0],"!"===t.type.slice(-1)&&(t.consume=!0,t.type=t.type.slice(0,-1)),null!=i&&(t.filter=i),a[0]&&(t.throttle=a[0]),a[1]&&(t.debounce=a[1]),t}(e)}const nL=e=>Ne(e)&&!Le(e)?ut({},e):{value:e};function rL(e,t,n,r){return null!=n?(Ne(n)&&!Le(n)||Le(n)&&n.length&&Ne(n[0])?e.update[t]=n:e[r||"enter"][t]={value:n},1):0}function iL(e,t,n){for(const n in t)rL(e,n,t[n]);for(const t in n)rL(e,t,n[t],"update")}function aL(e,t,n){for(const r in t)n&&dt(n,r)||(e[r]=ut(e[r]||{},t[r]));return e}function oL(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const sL="mark",lL="frame",uL="scope",cL="axis",dL="axis-domain",fL="axis-grid",hL="axis-label",pL="axis-tick",mL="axis-title",gL="legend",yL="legend-band",_L="legend-entry",vL="legend-gradient",bL="legend-label",xL="legend-symbol",EL="legend-title",SL="title",AL="title-text",$L="title-subtitle";function TL(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const OL=e=>vt(e)?St(e):e.signal?`(${e.signal})`:IL(e);function DL(e){if(null!=e.gradient)return function(e){const t=[e.start,e.stop,e.count].map((e=>null==e?null:St(e)));for(;t.length&&null==He(t);)t.pop();return t.unshift(OL(e.gradient)),`gradient(${t.join(",")})`}(e);let t=e.signal?`(${e.signal})`:e.color?function(e){return e.c?ML("hcl",e.h,e.c,e.l):e.h||e.s?ML("hsl",e.h,e.s,e.l):e.l||e.a?ML("lab",e.l,e.a,e.b):e.r||e.g||e.b?ML("rgb",e.r,e.g,e.b):null}(e.color):null!=e.field?IL(e.field):void 0!==e.value?St(e.value):void 0;return null!=e.scale&&(t=function(e,t){const n=OL(e.scale);return null!=e.range?t=`lerp(_range(${n}), ${+e.range})`:(void 0!==t&&(t=`_scale(${n}, ${t})`),e.band&&(t=(t?t+"+":"")+`_bandwidth(${n})`+(1==+e.band?"":"*"+wL(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),null==t&&(t="0")),t}(e,t)),void 0===t&&(t=null),null!=e.exponent&&(t=`pow(${t},${wL(e.exponent)})`),null!=e.mult&&(t+=`*${wL(e.mult)}`),null!=e.offset&&(t+=`+${wL(e.offset)}`),e.round&&(t=`round(${t})`),t}const ML=(e,t,n,r)=>`(${e}(${[t,n,r].map(DL).join(",")})+'')`;function wL(e){return Ne(e)?"("+DL(e)+")":e}function IL(e){return CL(Ne(e)?e:{datum:e})}function CL(e){let t,n,r;if(e.signal)t="datum",r=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(r=e.parent,t+=".datum"):r=e.group}else e.datum?(t="datum",r=e.datum):_e("Invalid field reference: "+St(e));return e.signal||(r=vt(r)?ve(r).map(St).join("]["):CL(r)),t+"["+r+"]"}function RL(e,t,n,r){const i={},a={};for(const t in e)null!=e[t]&&(i[t]=kL((o=e[t],Le(o)?function(e){let t="";return e.forEach((e=>{const n=DL(e);t+=e.test?`(${e.test})?${n}:`:n})),":"===He(t)&&(t+="null"),t}(o):DL(o)),r,n,a));var o;return{$expr:{marktype:t,channels:i},$fields:Object.keys(a),$output:Object.keys(e)}}function kL(e,t,n,r){const i=FR(e,t);return i.$fields.forEach((e=>r[e]=1)),ut(n,i.$params),i.$expr}const LL="outer",NL=["value","update","init","react","bind"];function FL(e,t){_e(e+' for "outer" push: '+St(t))}function BL(e,t,n,r){this.id=-1,this.type=e,this.value=t,this.params=n,r&&(this.parent=r)}function jL(e,t,n,r){return new BL(e,t,n,r)}function HL(e,t){return jL("operator",e,t)}function zL(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function PL(e,t){return t?{$field:e,$name:t}:{$field:e}}const UL=PL("key");function VL(e,t){return{$compare:e,$order:t}}function WL(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const GL="scope",qL="view";function YL(e){return e&&e.signal}function KL(e){if(YL(e))return!0;if(Ne(e))for(const t in e)if(KL(e[t]))return!0;return!1}function JL(e,t){return null!=e?e:t}function XL(e){return e&&e.signal||e}const ZL="timer";function QL(e,t){return(e.merge?eN:e.stream?tN:e.type?nN:_e("Invalid stream specification: "+St(e)))(e,t)}function eN(e,t){const n=rN({merge:e.merge.map((e=>QL(e,t)))},e,t);return t.addStream(n).id}function tN(e,t){const n=rN({stream:QL(e.stream,t)},e,t);return t.addStream(n).id}function nN(e,t){let n;var r;e.type===ZL?(n=t.event(ZL,e.throttle),e={between:e.between,filter:e.filter}):n=t.event((r=e.source)===GL?qL:r||qL,e.type);const i=rN({stream:n},e,t);return 1===Object.keys(i).length?n:t.addStream(i).id}function rN(e,t,n){let r=t.between;return r&&(2!==r.length&&_e('Stream "between" parameter must have 2 entries: '+St(t)),e.between=[QL(r[0],n),QL(r[1],n)]),r=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&r.push(function(e,t,n){const r="event.item";return r+(e&&"*"!==e?"&&"+r+".mark.marktype==='"+e+"'":"")+(n?"&&"+r+".mark.role==='"+n+"'":"")+(t?"&&"+r+".mark.name==='"+t+"'":"")}(t.marktype,t.markname,t.markrole)),t.source===GL&&r.push("inScope(event.item)"),r.length&&(e.filter=FR("("+r.join(")&&(")+")",n).$expr),null!=(r=t.throttle)&&(e.throttle=+r),null!=(r=t.debounce)&&(e.debounce=+r),t.consume&&(e.consume=!0),e}const iN={code:"_.$value",ast:{type:"Identifier",value:"value"}};function aN(e){return{signal:"["+e.map((e=>e.scale?'scale("'+e.scale+'")':e.signal))+"]"}}const oN=e=>(t,n,r)=>jL(e,n,t||void 0,r),sN=oN("aggregate"),lN=oN("axisticks"),uN=oN("bound"),cN=oN("collect"),dN=oN("compare"),fN=oN("datajoin"),hN=oN("encode"),pN=oN("expression"),mN=oN("facet"),gN=oN("field"),yN=oN("key"),_N=oN("legendentries"),vN=oN("load"),bN=oN("mark"),xN=oN("multiextent"),EN=oN("multivalues"),SN=oN("overlap"),AN=oN("params"),$N=oN("prefacet"),TN=oN("projection"),ON=oN("proxy"),DN=oN("relay"),MN=oN("render"),wN=oN("scale"),IN=oN("sieve"),CN=oN("sortitems"),RN=oN("viewlayout"),kN=oN("values");let LN=0;const NN={min:"min",max:"max",count:"sum"};function FN(e,t){const n=t.getScale(e.name).params;let r;for(r in n.domain=zN(e.domain,e,t),null!=e.range&&(n.range=KN(e,t,n)),null!=e.interpolate&&function(e,t){t.interpolate=BN(e.type||e),null!=e.gamma&&(t.interpolateGamma=BN(e.gamma))}(e.interpolate,n),null!=e.nice&&(n.nice=function(e,t){return e.signal?t.signalRef(e.signal):Ne(e)?{interval:BN(e.interval),step:BN(e.step)}:BN(e)}(e.nice,t)),null!=e.bins&&(n.bins=function(e,t){return e.signal||Le(e)?jN(e,t):t.objectProperty(e)}(e.bins,t)),e)dt(n,r)||"name"===r||(n[r]=BN(e[r],t))}function BN(e,t){return Ne(e)?e.signal?t.signalRef(e.signal):_e("Unsupported object: "+St(e)):e}function jN(e,t){return e.signal?t.signalRef(e.signal):e.map((e=>BN(e,t)))}function HN(e){_e("Can not find data set: "+St(e))}function zN(e,t,n){if(e)return e.signal?n.signalRef(e.signal):(Le(e)?PN:e.fields?VN:UN)(e,t,n);null==t.domainMin&&null==t.domainMax||_e("No scale domain defined for domainMin/domainMax to override.")}function PN(e,t,n){return e.map((e=>BN(e,n)))}function UN(e,t,n){const r=n.getData(e.data);return r||HN(e.data),xp(t.type)?r.valuesRef(n,e.field,GN(e.sort,!1)):$p(t.type)?r.domainRef(n,e.field):r.extentRef(n,e.field)}function VN(e,t,n){const r=e.data,i=e.fields.reduce(((e,t)=>(t=vt(t)?{data:r,field:t}:Le(t)||t.signal?function(e,t){const n="_:vega:_"+LN++,r=cN({});if(Le(e))r.value={$ingest:e};else if(e.signal){const i="setdata("+St(n)+","+e.signal+")";r.params.input=t.signalRef(i)}return t.addDataPipeline(n,[r,IN({})]),{data:n,field:"data"}}(t,n):t,e.push(t),e)),[]);return(xp(t.type)?WN:$p(t.type)?qN:YN)(e,n,i)}function WN(e,t,n){const r=GN(e.sort,!0);let i,a;const o=n.map((e=>{const n=t.getData(e.data);return n||HN(e.data),n.countsRef(t,e.field,r)})),s={groupby:UL,pulse:o};r&&(i=r.op||"count",a=r.field?WL(i,r.field):"count",s.ops=[NN[i]],s.fields=[t.fieldRef(a)],s.as=[a]),i=t.add(sN(s));const l=t.add(cN({pulse:zL(i)}));return a=t.add(kN({field:UL,sort:t.sortRef(r),pulse:zL(l)})),zL(a)}function GN(e,t){return e&&(e.field||e.op?e.field||"count"===e.op?t&&e.field&&e.op&&!NN[e.op]&&_e("Multiple domain scales can not be sorted using "+e.op):_e("No field provided for sort aggregate op: "+e.op):Ne(e)?e.field="key":e={field:"key"}),e}function qN(e,t,n){const r=n.map((e=>{const n=t.getData(e.data);return n||HN(e.data),n.domainRef(t,e.field)}));return zL(t.add(EN({values:r})))}function YN(e,t,n){const r=n.map((e=>{const n=t.getData(e.data);return n||HN(e.data),n.extentRef(t,e.field)}));return zL(t.add(xN({extents:r})))}function KN(e,t,n){const r=t.config.range;let i=e.range;if(i.signal)return t.signalRef(i.signal);if(vt(i)){if(r&&dt(r,i))return KN(e=ut({},e,{range:r[i]}),t,n);"width"===i?i=[0,{signal:"width"}]:"height"===i?i=xp(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:_e("Unrecognized scale range value: "+St(i))}else{if(i.scheme)return n.scheme=Le(i.scheme)?jN(i.scheme,t):BN(i.scheme,t),i.extent&&(n.schemeExtent=jN(i.extent,t)),void(i.count&&(n.schemeCount=BN(i.count,t)));if(i.step)return void(n.rangeStep=BN(i.step,t));if(xp(e.type)&&!Le(i))return zN(i,e,t);Le(i)||_e("Unsupported range type: "+St(i))}return i.map((e=>(Le(e)?jN:BN)(e,t)))}function JN(e,t,n){return Le(e)?e.map((e=>JN(e,t,n))):Ne(e)?e.signal?n.signalRef(e.signal):"fit"===t?e:_e("Unsupported parameter object: "+St(e)):e}const XN="top",ZN="left",QN="right",eF="bottom",tF="center",nF="vertical",rF="start",iF="end",aF="index",oF="label",sF="offset",lF="perc",uF="perc2",cF="value",dF="guide-label",fF="guide-title",hF="group-title",pF="group-subtitle",mF="symbol",gF="gradient",yF="discrete",_F="size",vF=[_F,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],bF={name:1,style:1,interactive:1},xF={value:0},EF={value:1},SF="group",AF="rect",$F="rule",TF="symbol",OF="text";function DF(e){return e.type=SF,e.interactive=e.interactive||!1,e}function MF(e,t){const n=(n,r)=>JL(e[n],JL(t[n],r));return n.isVertical=n=>nF===JL(e.direction,t.direction||(n?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>JL(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>JL(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>JL(e.columns,JL(t.columns,+n.isVertical(!0))),n}function wF(e,t){const n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function IF(e,t,n){return`item.anchor === '${rF}' ? ${e} : item.anchor === '${iF}' ? ${t} : ${n}`}const CF=IF(St(ZN),St(QN),St(tF));function RF(e,t){return t?e?Ne(e)?Object.assign({},e,{offset:RF(e.offset,t)}):{value:e,offset:t}:t:e}function kF(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=aL(e.encode,t,bF)):e.interactive=!1,e}function LF(e,t,n,r){const i=MF(e,n),a=i.isVertical(),o=i.gradientThickness(),s=i.gradientLength();let l,u,c,d,f;a?(u=[0,1],c=[0,0],d=o,f=s):(u=[0,0],c=[1,0],d=s,f=o);const h={enter:l={opacity:xF,x:xF,y:xF,width:nL(d),height:nL(f)},update:ut({},l,{opacity:EF,fill:{gradient:t,start:u,stop:c}}),exit:{opacity:xF}};return iL(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),kF({type:AF,role:vL,encode:h},r)}function NF(e,t,n,r,i){const a=MF(e,n),o=a.isVertical(),s=a.gradientThickness(),l=a.gradientLength();let u,c,d,f,h="";o?(u="y",d="y2",c="x",f="width",h="1-"):(u="x",d="x2",c="y",f="height");const p={opacity:xF,fill:{scale:t,field:cF}};p[u]={signal:h+"datum."+lF,mult:l},p[c]=xF,p[d]={signal:h+"datum."+uF,mult:l},p[f]=nL(s);const m={enter:p,update:ut({},p,{opacity:EF}),exit:{opacity:xF}};return iL(m,{stroke:a("gradientStrokeColor"),strokeWidth:a("gradientStrokeWidth")},{opacity:a("gradientOpacity")}),kF({type:AF,role:yL,key:cF,from:i,encode:m},r)}const FF=`datum.${lF}<=0?"${ZN}":datum.${lF}>=1?"${QN}":"${tF}"`,BF=`datum.${lF}<=0?"${eF}":datum.${lF}>=1?"${XN}":"middle"`;function jF(e,t,n,r){const i=MF(e,t),a=i.isVertical(),o=nL(i.gradientThickness()),s=i.gradientLength();let l,u,c,d,f=i("labelOverlap"),h="";const p={enter:l={opacity:xF},update:u={opacity:EF,text:{field:oF}},exit:{opacity:xF}};return iL(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:JL(e.labelLimit,t.gradientLabelLimit)}),a?(l.align={value:"left"},l.baseline=u.baseline={signal:BF},c="y",d="x",h="1-"):(l.align=u.align={signal:FF},l.baseline={value:"top"},c="x",d="y"),l[c]=u[c]={signal:h+"datum."+lF,mult:s},l[d]=u[d]=o,o.offset=JL(e.labelOffset,t.gradientLabelOffset)||0,f=f?{separation:i("labelSeparation"),method:f,order:"datum."+aF}:void 0,kF({type:OF,role:bL,style:dF,key:cF,from:r,encode:p,overlap:f},n)}function HF(e,t,n,r,i){const a=MF(e,t),o=n.entries,s=!(!o||!o.interactive),l=o?o.name:void 0,u=a("clipHeight"),c=a("symbolOffset"),d={data:"value"},f=`(${i}) ? datum.${sF} : datum.${_F}`,h=u?nL(u):{field:_F},p=`datum.${aF}`,m=`max(1, ${i})`;let g,y,_,v,b;h.mult=.5,g={enter:y={opacity:xF,x:{signal:f,mult:.5,offset:c},y:h},update:_={opacity:EF,x:y.x,y:y.y},exit:{opacity:xF}};let x=null,E=null;e.fill||(x=t.symbolBaseFillColor,E=t.symbolBaseStrokeColor),iL(g,{fill:a("symbolFillColor",x),shape:a("symbolType"),size:a("symbolSize"),stroke:a("symbolStrokeColor",E),strokeDash:a("symbolDash"),strokeDashOffset:a("symbolDashOffset"),strokeWidth:a("symbolStrokeWidth")},{opacity:a("symbolOpacity")}),vF.forEach((t=>{e[t]&&(_[t]=y[t]={scale:e[t],field:cF})}));const S=kF({type:TF,role:xL,key:cF,from:d,clip:!!u||void 0,encode:g},n.symbols),A=nL(c);A.offset=a("labelOffset"),g={enter:y={opacity:xF,x:{signal:f,offset:A},y:h},update:_={opacity:EF,text:{field:oF},x:y.x,y:y.y},exit:{opacity:xF}},iL(g,{align:a("labelAlign"),baseline:a("labelBaseline"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontStyle:a("labelFontStyle"),fontWeight:a("labelFontWeight"),limit:a("labelLimit")});const $=kF({type:OF,role:bL,style:dF,key:cF,from:d,encode:g},n.labels);return g={enter:{noBound:{value:!u},width:xF,height:u?nL(u):xF,opacity:xF},exit:{opacity:xF},update:_={opacity:EF,row:{signal:null},column:{signal:null}}},a.isVertical(!0)?(v=`ceil(item.mark.items.length / ${m})`,_.row.signal=`${p}%${v}`,_.column.signal=`floor(${p} / ${v})`,b={field:["row",p]}):(_.row.signal=`floor(${p} / ${m})`,_.column.signal=`${p} % ${m}`,b={field:p}),_.column.signal=`(${i})?${_.column.signal}:${p}`,DF({role:uL,from:r={facet:{data:r,name:"value",groupby:aF}},encode:aL(g,o,bF),marks:[S,$],name:l,interactive:s,sort:b})}const zF='item.orient === "left"',PF='item.orient === "right"',UF=`(${zF} || ${PF})`,VF=`datum.vgrad && ${UF}`,WF=IF('"top"','"bottom"','"middle"'),GF=`datum.vgrad && ${PF} ? (${IF('"right"','"left"','"center"')}) : (${UF} && !(datum.vgrad && ${zF})) ? "left" : ${CF}`,qF=`item._anchor || (${UF} ? "middle" : "start")`,YF=`${VF} ? (${zF} ? -90 : 90) : 0`,KF=`${UF} ? (datum.vgrad ? (${PF} ? "bottom" : "top") : ${WF}) : "top"`;function JF(e,t){let n;return Ne(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+XF(e.path)+")":e.sphere&&(n="geoShape("+XF(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function XF(e){return Ne(e)&&e.signal?e.signal:St(e)}function ZF(e){const t=e.role||"";return t.startsWith("axis")||t.startsWith("legend")||t.startsWith("title")?t:e.type===SF?uL:t||sL}function QF(e){return{marktype:e.type,name:e.name||void 0,role:e.role||ZF(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function eB(e,t){return e&&e.signal?t.signalRef(e.signal):!1!==e}function tB(e,t){const n=function(e){const t=function(e){return e=e&&e.toLowerCase(),dt(Wo,e)?Wo[e]:null}(e);return t&&t.Definition||null}(e.type);n||_e("Unrecognized transform type: "+St(e.type));const r=jL(n.type.toLowerCase(),null,nB(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(r)),r.metadata=n.metadata||{},r}function nB(e,t,n){const r={},i=e.params.length;for(let a=0;a<i;++a){const i=e.params[a];r[i.name]=rB(i,t,n)}return r}function rB(e,t,n){const r=e.type,i=t[e.name];return"index"===r?function(e,t,n){return vt(t.from)||_e('Lookup "from" parameter must be a string literal.'),n.getData(t.from).lookupRef(n,t.key)}(0,t,n):void 0!==i?"param"===r?function(e,t,n){const r=t[e.name];return e.array?(Le(r)||_e("Expected an array of sub-parameters. Instead: "+St(r)),r.map((t=>aB(e,t,n)))):aB(e,r,n)}(e,t,n):"projection"===r?n.projectionRef(t[e.name]):e.array&&!YL(i)?i.map((t=>iB(e,t,n))):iB(e,i,n):void(e.required&&_e("Missing required "+St(t.type)+" parameter: "+St(e.name)))}function iB(e,t,n){const r=e.type;if(YL(t))return uB(r)?_e("Expression references can not be signals."):cB(r)?n.fieldRef(t):dB(r)?n.compareRef(t):n.signalRef(t.signal);{const i=e.expr||cB(r);return i&&oB(t)?n.exprRef(t.expr,t.as):i&&sB(t)?PL(t.field,t.as):uB(r)?FR(t,n):lB(r)?zL(n.getData(t).values):cB(r)?PL(t):dB(r)?n.compareRef(t):t}}function aB(e,t,n){const r=e.params.length;let i;for(let n=0;n<r;++n){i=e.params[n];for(const e in i.key)if(i.key[e]!==t[e]){i=null;break}if(i)break}i||_e("Unsupported parameter: "+St(t));const a=ut(nB(i,t,n),i.key);return zL(n.add(AN(a)))}const oB=e=>e&&e.expr,sB=e=>e&&e.field,lB=e=>"data"===e,uB=e=>"expr"===e,cB=e=>"field"===e,dB=e=>"compare"===e;function fB(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:zL(t.getData(e.data).output)}function hB(e,t,n,r,i){this.scope=e,this.input=t,this.output=n,this.values=r,this.aggregate=i,this.index={}}function pB(e){return vt(e)?e:null}function mB(e,t,n){const r=WL(n.op,n.field);let i;if(t.ops){for(let e=0,n=t.as.length;e<n;++e)if(t.as[e]===r)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((i=n.op.signal)?e.signalRef(i):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(r))}function gB(e,t,n,r,i,a,o){const s=t[n]||(t[n]={}),l=function(e){return Ne(e)?("descending"===e.order?"-":"+")+WL(e.op,e.field):""}(a);let u,c,d=pB(i);if(null!=d&&(e=t.scope,d+=l?"|"+l:"",u=s[d]),!u){const n=a?{field:UL,pulse:t.countsRef(e,i,a)}:{field:e.fieldRef(i),pulse:zL(t.output)};l&&(n.sort=e.sortRef(a)),c=e.add(jL(r,void 0,n)),o&&(t.index[i]=c),u=zL(c),null!=d&&(s[d]=u)}return u}function yB(e,t,n){const r=e.remove,i=e.insert,a=e.toggle,o=e.modify,s=e.values,l=t.add(HL()),u="if("+e.trigger+',modify("'+n+'",'+[i,r,a,o,s].map((e=>null==e?"null":e)).join(",")+"),0)",c=FR(u,t);l.update=c.$expr,l.params=c.$params}function _B(e,t){const n=ZF(e),r=e.type===SF,i=e.from&&e.from.facet,a=e.overlap;let o,s,l,u,c,d,f,h=e.layout||n===uL||n===lL;const p=n===sL||h||i,m=function(e,t,n){let r,i,a,o,s;return e?(r=e.facet)&&(t||_e("Only group marks can be faceted."),null!=r.field?o=s=fB(r,n):(e.data?s=zL(n.getData(e.data).aggregate):(a=tB(ut({type:"aggregate",groupby:Qe(r.groupby)},r.aggregate),n),a.params.key=n.keyRef(r.groupby),a.params.pulse=fB(r,n),o=s=zL(n.add(a))),i=n.keyRef(r.groupby,!0))):o=zL(n.add(cN(null,[{}]))),o||(o=fB(e,n)),{key:i,pulse:o,parent:s}}(e.from,r,t);s=t.add(fN({key:m.key||(e.key?PL(e.key):void 0),pulse:m.pulse,clean:!r}));const g=zL(s);s=l=t.add(cN({pulse:g})),s=t.add(bN({markdef:QF(e),interactive:eB(e.interactive,t),clip:JF(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:zL(s)}));const y=zL(s);s=u=t.add(hN(function(e,t,n,r,i,a){const o={};(a=a||{}).encoders={$encode:o},e=function(e,t,n,r,i){const a={},o={};let s,l,u,c;for(l in l="lineBreak","text"!==t||null==i[l]||oL(l,e)||TL(a,l,i[l]),("legend"==n||String(n).startsWith("axis"))&&(n=null),c=n===lL?i.group:n===sL?ut({},i.mark,i[t]):null,c)u=oL(l,e)||("fill"===l||"stroke"===l)&&(oL("fill",e)||oL("stroke",e)),u||TL(a,l,c[l]);for(l in Qe(r).forEach((t=>{const n=i.style&&i.style[t];for(const t in n)oL(t,e)||TL(a,t,n[t])})),e=ut({},e),a)c=a[l],c.signal?(s=s||{})[l]=c:o[l]=c;return e.enter=ut(o,e.enter),s&&(e.update=ut(s,e.update)),e}(e,t,n,r,i.config);for(const n in e)o[n]=RL(e[n],t,a,i);return a}(e.encode,e.type,n,e.style,t,{mod:!1,pulse:y}))),s.params.parent=t.encode(),e.transform&&e.transform.forEach((e=>{const n=tB(e,t),r=n.metadata;(r.generates||r.changes)&&_e("Mark transforms should not generate new data."),r.nomod||(u.params.mod=!0),n.params.pulse=zL(s),t.add(s=n)})),e.sort&&(s=t.add(CN({sort:t.compareRef(e.sort),pulse:zL(s)})));const _=zL(s);(i||h)&&(h=t.add(RN({layout:t.objectProperty(e.layout),legends:t.legends,mark:y,pulse:_})),d=zL(h));const v=t.add(uN({mark:y,pulse:d||_}));f=zL(v),r&&(p&&(o=t.operators,o.pop(),h&&o.pop()),t.pushState(_,d||f,g),i?function(e,t,n){const r=e.from.facet,i=r.name,a=fB(r,t);let o;r.name||_e("Facet must have a name: "+St(r)),r.data||_e("Facet must reference a data set: "+St(r)),r.field?o=t.add($N({field:t.fieldRef(r.field),pulse:a})):r.groupby?o=t.add(mN({key:t.keyRef(r.groupby),group:zL(t.proxy(n.parent)),pulse:a})):_e("Facet must specify groupby or field: "+St(r));const s=t.fork(),l=s.add(cN()),u=s.add(IN({pulse:zL(l)}));s.addData(i,new hB(s,l,l,u)),s.addSignal("parent",null),o.params.subflow={$subflow:s.parse(e).toRuntime()}}(e,t,m):p?function(e,t,n){const r=t.add($N({pulse:n.pulse})),i=t.fork();i.add(IN()),i.addSignal("parent",null),r.params.subflow={$subflow:i.parse(e).toRuntime()}}(e,t,m):t.parse(e),t.popState(),p&&(h&&o.push(h),o.push(v))),a&&(f=function(e,t,n){const r=e.method,i=e.bound,a=e.separation,o={separation:YL(a)?n.signalRef(a.signal):a,method:YL(r)?n.signalRef(r.signal):r,pulse:t};if(e.order&&(o.sort=n.compareRef({field:e.order})),i){const e=i.tolerance;o.boundTolerance=YL(e)?n.signalRef(e.signal):+e,o.boundScale=n.scaleRef(i.scale),o.boundOrient=i.orient}return zL(n.add(SN(o)))}(a,f,t));const b=t.add(MN({pulse:f})),x=t.add(IN({pulse:zL(b)},void 0,t.parent()));null!=e.name&&(c=e.name,t.addData(c,new hB(t,l,b,x)),e.on&&e.on.forEach((e=>{(e.insert||e.remove||e.toggle)&&_e("Marks only support modify triggers."),yB(e,t,c)})))}function vB(e,t,n){const r={enter:{},update:{}};return iL(r,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),r}function bB(e,t,n){return t[e]?`scale("${t[e]}",datum)`:wF(e,n[0].encode)}hB.fromEntries=function(e,t){const n=t.length,r=t[n-1],i=t[n-2];let a=t[0],o=null,s=1;for(a&&"load"===a.type&&(a=t[1]),e.add(t[0]);s<n;++s)t[s].params.pulse=zL(t[s-1]),e.add(t[s]),"aggregate"===t[s].type&&(o=t[s]);return new hB(e,a,i,r,o)},hB.prototype={countsRef(e,t,n){const r=this,i=r.counts||(r.counts={}),a=pB(t);let o,s,l;return null!=a&&(e=r.scope,o=i[a]),o?n&&n.field&&mB(e,o.agg.params,n):(l={groupby:e.fieldRef(t,"key"),pulse:zL(r.output)},n&&n.field&&mB(e,l,n),s=e.add(sN(l)),o=e.add(cN({pulse:zL(s)})),o={agg:s,ref:zL(o)},null!=a&&(i[a]=o)),o.ref},tuplesRef(){return zL(this.values)},extentRef(e,t){return gB(e,this,"extent","extent",t,!1)},domainRef(e,t){return gB(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return gB(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return gB(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return gB(e,this,"indata","tupleindex",t,!0,!0)}};const xB=`item.orient==="${ZN}"?-90:item.orient==="${QN}"?90:0`;function EB(e,t){const n={enter:{},update:{}};return iL(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:CF},angle:{signal:xB},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),aL(n,t,bF)}function SB(e){const t=cN({},e);return t.metadata={source:!0},t}function AB(e,t){return vN({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}const $B=e=>e===eF||e===XN,TB=(e,t,n)=>YL(e)?RB(e.signal,t,n):e===ZN||e===XN?t:n,OB=(e,t,n)=>YL(e)?IB(e.signal,t,n):$B(e)?t:n,DB=(e,t,n)=>YL(e)?CB(e.signal,t,n):$B(e)?n:t,MB=(e,t,n)=>YL(e)?kB(e.signal,t,n):e===XN?{value:t}:{value:n},wB=(e,t,n)=>YL(e)?LB(e.signal,t,n):e===QN?{value:t}:{value:n},IB=(e,t,n)=>NB(`${e} === '${XN}' || ${e} === '${eF}'`,t,n),CB=(e,t,n)=>NB(`${e} !== '${XN}' && ${e} !== '${eF}'`,t,n),RB=(e,t,n)=>BB(`${e} === '${ZN}' || ${e} === '${XN}'`,t,n),kB=(e,t,n)=>BB(`${e} === '${XN}'`,t,n),LB=(e,t,n)=>BB(`${e} === '${QN}'`,t,n),NB=(e,t,n)=>(t=null!=t?nL(t):t,n=null!=n?nL(n):n,FB(t)&&FB(n)?{signal:`${e} ? (${t=t?t.signal||St(t.value):null}) : (${n=n?n.signal||St(n.value):null})`}:[ut({test:e},t)].concat(n||[])),FB=e=>null==e||1===Object.keys(e).length,BB=(e,t,n)=>({signal:`${e} ? (${HB(t)}) : (${HB(n)})`}),jB=(e,t,n,r,i)=>({signal:(null!=r?`${e} === '${ZN}' ? (${HB(r)}) : `:"")+(null!=n?`${e} === '${eF}' ? (${HB(n)}) : `:"")+(null!=i?`${e} === '${QN}' ? (${HB(i)}) : `:"")+(null!=t?`${e} === '${XN}' ? (${HB(t)}) : `:"")+"(null)"}),HB=e=>YL(e)?e.signal:null==e?null:St(e),zB=(e,t)=>0===t?0:YL(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},PB=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function UB(e,t,n,r){let i;if(t&&dt(t,e))return t[e];if(dt(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=e[5].toLowerCase()+e.slice(6)}return r[fF][i]}if(e.startsWith("label")){switch(e){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=e[5].toLowerCase()+e.slice(6)}return r[dF][i]}return null}function VB(e){const t={};for(const n of e)if(n)for(const e in n)t[e]=1;return Object.keys(t)}function WB(e,t){return{scale:e.scale,range:t}}function GB(e,t,n,r,i){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+r+","+i+")"}}function qB(e,t){const n=function(e,t){var n,r,i,a=t.config,o=a.style,s=a.axis,l="band"===t.scaleType(e.scale)&&a.axisBand,u=e.orient;if(YL(u)){const e=VB([a.axisX,a.axisY]),t=VB([a.axisTop,a.axisBottom,a.axisLeft,a.axisRight]);for(i of(n={},e))n[i]=OB(u,UB(i,a.axisX,s,o),UB(i,a.axisY,s,o));for(i of(r={},t))r[i]=jB(u.signal,UB(i,a.axisTop,s,o),UB(i,a.axisBottom,s,o),UB(i,a.axisLeft,s,o),UB(i,a.axisRight,s,o))}else n=u===XN||u===eF?a.axisX:a.axisY,r=a["axis"+u[0].toUpperCase()+u.slice(1)];return n||r||l?ut({},s,n,r,l):s}(e,t),r=e.encode||{},i=r.axis||{},a=i.name||void 0,o=i.interactive,s=i.style,l=MF(e,n),u=function(e){const t=e("tickBand");let n,r,i=e("tickOffset");return t?t.signal?(n={signal:`(${t.signal}) === 'extent' ? 1 : 0.5`},r={signal:`(${t.signal}) === 'extent'`},Ne(i)||(i={signal:`(${t.signal}) === 'extent' ? 0 : ${i}`})):"extent"===t?(n=1,r=!0,i=0):(n=.5,r=!1):(n=e("bandPosition"),r=e("tickExtra")),{extra:r,band:n,offset:i}}(l),c={scale:e.scale,ticks:!!l("ticks"),labels:!!l("labels"),grid:!!l("grid"),domain:!!l("domain"),title:null!=e.title},d=zL(t.add(cN({},[c]))),f=zL(t.add(lN({scale:t.scaleRef(e.scale),extra:t.property(u.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),h=[];let p;return c.grid&&h.push(function(e,t,n,r,i){const a=MF(e,t),o=e.orient,s=e.gridScale,l=TB(o,1,-1),u=function(e,t){if(1===t);else if(Ne(e)){let n=e=ut({},e);for(;null!=n.mult;){if(!Ne(n.mult))return n.mult=YL(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n=n.mult=ut({},n.mult)}n.mult=t}else e=YL(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);return e}(e.offset,l);let c,d,f;const h={enter:c={opacity:xF},update:f={opacity:EF},exit:d={opacity:xF}};iL(h,{stroke:a("gridColor"),strokeCap:a("gridCap"),strokeDash:a("gridDash"),strokeDashOffset:a("gridDashOffset"),strokeOpacity:a("gridOpacity"),strokeWidth:a("gridWidth")});const p={scale:e.scale,field:cF,band:i.band,extra:i.extra,offset:i.offset,round:a("tickRound")},m=OB(o,{signal:"height"},{signal:"width"}),g=s?{scale:s,range:0,mult:l,offset:u}:{value:0,offset:u},y=s?{scale:s,range:1,mult:l,offset:u}:ut(m,{mult:l,offset:u});return c.x=f.x=OB(o,p,g),c.y=f.y=DB(o,p,g),c.x2=f.x2=DB(o,y),c.y2=f.y2=OB(o,y),d.x=OB(o,p),d.y=DB(o,p),kF({type:$F,role:fL,key:cF,from:r,encode:h},n)}(e,n,r.grid,f,u)),c.ticks&&(p=l("tickSize"),h.push(function(e,t,n,r,i,a){const o=MF(e,t),s=e.orient,l=TB(s,-1,1);let u,c,d;const f={enter:u={opacity:xF},update:d={opacity:EF},exit:c={opacity:xF}};iL(f,{stroke:o("tickColor"),strokeCap:o("tickCap"),strokeDash:o("tickDash"),strokeDashOffset:o("tickDashOffset"),strokeOpacity:o("tickOpacity"),strokeWidth:o("tickWidth")});const h=nL(i);h.mult=l;const p={scale:e.scale,field:cF,band:a.band,extra:a.extra,offset:a.offset,round:o("tickRound")};return d.y=u.y=OB(s,xF,p),d.y2=u.y2=OB(s,h),c.x=OB(s,p),d.x=u.x=DB(s,xF,p),d.x2=u.x2=DB(s,h),c.y=DB(s,p),kF({type:$F,role:pL,key:cF,from:r,encode:f},n)}(e,n,r.ticks,f,p,u))),c.labels&&(p=c.ticks?p:0,h.push(function(e,t,n,r,i,a){const o=MF(e,t),s=e.orient,l=e.scale,u=TB(s,-1,1),c=XL(o("labelFlush")),d=XL(o("labelFlushOffset")),f=o("labelAlign"),h=o("labelBaseline");let p,m=0===c||!!c;const g=nL(i);g.mult=u,g.offset=nL(o("labelPadding")||0),g.offset.mult=u;const y={scale:l,field:cF,band:.5,offset:RF(a.offset,o("labelOffset"))},_=OB(s,m?GB(l,c,'"left"','"right"','"center"'):{value:"center"},wB(s,"left","right")),v=OB(s,MB(s,"bottom","top"),m?GB(l,c,'"top"','"bottom"','"middle"'):{value:"middle"}),b=GB(l,c,`-(${d})`,d,0);m=m&&d;const x={opacity:xF,x:OB(s,y,g),y:DB(s,y,g)},E={enter:x,update:p={opacity:EF,text:{field:oF},x:x.x,y:x.y,align:_,baseline:v},exit:{opacity:xF,x:x.x,y:x.y}};iL(E,{dx:!f&&m?OB(s,b):null,dy:!h&&m?DB(s,b):null}),iL(E,{angle:o("labelAngle"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontWeight:o("labelFontWeight"),fontStyle:o("labelFontStyle"),limit:o("labelLimit"),lineHeight:o("labelLineHeight")},{align:f,baseline:h});const S=o("labelBound");let A=o("labelOverlap");return A=A||S?{separation:o("labelSeparation"),method:A,order:"datum.index",bound:S?{scale:l,orient:s,tolerance:S}:null}:void 0,p.align!==_&&(p.align=PB(p.align,_)),p.baseline!==v&&(p.baseline=PB(p.baseline,v)),kF({type:OF,role:hL,style:dF,key:cF,from:r,encode:E,overlap:A},n)}(e,n,r.labels,f,p,u))),c.domain&&h.push(function(e,t,n,r){const i=MF(e,t),a=e.orient;let o,s;const l={enter:o={opacity:xF},update:s={opacity:EF},exit:{opacity:xF}};iL(l,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const u=WB(e,0),c=WB(e,1);return o.x=s.x=OB(a,u,xF),o.x2=s.x2=OB(a,c),o.y=s.y=DB(a,u,xF),o.y2=s.y2=DB(a,c),kF({type:$F,role:dL,from:r,encode:l},n)}(e,n,r.domain,d)),c.title&&h.push(function(e,t,n,r){const i=MF(e,t),a=e.orient,o=TB(a,-1,1);let s,l;const u={enter:s={opacity:xF,anchor:nL(i("titleAnchor",null)),align:{signal:CF}},update:l=ut({},s,{opacity:EF,text:nL(e.title)}),exit:{opacity:xF}},c={signal:`lerp(range("${e.scale}"), ${IF(0,1,.5)})`};return l.x=OB(a,c),l.y=DB(a,c),s.angle=OB(a,xF,zB(o,90)),s.baseline=OB(a,MB(a,eF,XN),{value:eF}),l.angle=s.angle,l.baseline=s.baseline,iL(u,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),function(e,t,n,r){const i=(e,t)=>null!=e?(n.update[t]=PB(nL(e),n.update[t]),!1):!oL(t,r),a=i(e("titleX"),"x"),o=i(e("titleY"),"y");n.enter.auto=o===a?nL(o):OB(t,nL(o),nL(a))}(i,a,u,n),u.update.align=PB(u.update.align,s.align),u.update.angle=PB(u.update.angle,s.angle),u.update.baseline=PB(u.update.baseline,s.baseline),kF({type:OF,role:mL,style:fF,from:r,encode:u},n)}(e,n,r.title,d)),_B(DF({role:cL,from:d,encode:aL(YB(l,e),i,bF),marks:h,aria:l("aria"),description:l("description"),zindex:l("zindex"),name:a,interactive:o,style:s}),t)}function YB(e,t){const n={enter:{},update:{}};return iL(n,{orient:e("orient"),offset:e("offset")||0,position:JL(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function KB(e,t,n){const r=Qe(e.signals),i=Qe(e.scales);return n||r.forEach((e=>function(e,t){const n=e.name;if(e.push===LL)t.signals[n]||FL("No prior signal definition",n),NL.forEach((t=>{void 0!==e[t]&&FL("Invalid property ",t)}));else{const r=t.addSignal(n,e.value);!1===e.react&&(r.react=!1),e.bind&&t.addBinding(n,e.bind)}}(e,t))),Qe(e.projections).forEach((e=>function(e,t){const n=t.config.projection||{},r={};for(const n in e)"name"!==n&&(r[n]=JN(e[n],n,t));for(const e in n)null==r[e]&&(r[e]=JN(n[e],e,t));t.addProjection(e.name,r)}(e,t))),i.forEach((e=>function(e,t){const n=e.type||"linear";_p(n)||_e("Unrecognized scale type: "+St(n)),t.addScale(e.name,{type:n,domain:void 0})}(e,t))),Qe(e.data).forEach((e=>function(e,t){const n=[];e.transform&&e.transform.forEach((e=>{n.push(tB(e,t))})),e.on&&e.on.forEach((n=>{yB(n,t,e.name)})),t.addDataPipeline(e.name,function(e,t,n){const r=[];let i,a,o,s,l,u=null,c=!1,d=!1;for(e.values?YL(e.values)||KL(e.format)?(r.push(AB(t,e)),r.push(u=SB())):r.push(u=SB({$ingest:e.values,$format:e.format})):e.url?KL(e.url)||KL(e.format)?(r.push(AB(t,e)),r.push(u=SB())):r.push(u=SB({$request:e.url,$format:e.format})):e.source&&(u=i=Qe(e.source).map((e=>zL(t.getData(e).output))),r.push(null)),a=0,o=n.length;a<o;++a)s=n[a],l=s.metadata,u||l.source||r.push(u=SB()),r.push(s),l.generates&&(d=!0),l.modifies&&!d&&(c=!0),l.source?u=s:l.changes&&(u=null);return i&&(o=i.length-1,r[0]=DN({derive:c,pulse:o?i:i[0]}),(c||o)&&r.splice(1,0,SB())),u||r.push(SB()),r.push(IN({})),r}(e,t,n))}(e,t))),i.forEach((e=>FN(e,t))),(n||r).forEach((e=>function(e,t){const n=t.getSignal(e.name);let r=e.update;e.init&&(r?_e("Signals can not include both init and update expressions."):(r=e.init,n.initonly=!0)),r&&(r=FR(r,t),n.update=r.$expr,n.params=r.$params),e.on&&e.on.forEach((e=>function(e,t,n){const r=e.encode,i={target:n};let a=e.events,o=e.update,s=[];var l,u;a||_e("Signal update missing events specification."),vt(a)&&(l=a,u=t.isSubscope()?GL:qL,Xk=u||Hk,Zk=Jk,a=eL(l.trim()).map(tL)),a=Qe(a).filter((e=>e.signal||e.scale?(s.push(e),0):1)),s.length>1&&(s=[aN(s)]),a.length&&s.push(a.length>1?{merge:a}:a[0]),null!=r&&(o&&_e("Signal encode and update are mutually exclusive."),o="encode(item(),"+St(r)+")"),i.update=vt(o)?FR(o,t):null!=o.expr?FR(o.expr,t):null!=o.value?o.value:null!=o.signal?{$expr:iN,$params:{$value:t.signalRef(o.signal)}}:_e("Invalid signal update specification."),e.force&&(i.options={force:!0}),s.forEach((e=>t.addUpdate(ut(function(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):QL(e,t)}}(e,t),i))))}(e,t,n.id)))}(e,t))),Qe(e.axes).forEach((e=>qB(e,t))),Qe(e.marks).forEach((e=>_B(e,t))),Qe(e.legends).forEach((e=>function(e,t){const n=t.config.legend,r=e.encode||{},i=MF(e,n),a=r.legend||{},o=a.name||void 0,s=a.interactive,l=a.style,u={};let c,d,f,h=0;vF.forEach((t=>e[t]?(u[t]=e[t],h=h||e[t]):0)),h||_e("Missing valid scale for legend.");const p=function(e,t){let n=e.type||mF;return e.type||1!==function(e){return vF.reduce(((t,n)=>t+(e[n]?1:0)),0)}(e)||!e.fill&&!e.stroke||(n=bp(t)?gF:Ep(t)?yF:mF),n!==gF?n:Ep(t)?yF:gF}(e,t.scaleType(h)),m={title:null!=e.title,scales:u,type:p,vgrad:"symbol"!==p&&i.isVertical()},g=zL(t.add(cN(null,[m]))),y=zL(t.add(_N(d={type:p,scale:t.scaleRef(h),count:t.objectProperty(i("tickCount")),limit:t.property(i("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return p===gF?(f=[LF(e,h,n,r.gradient),jF(e,n,r.labels,y)],d.count=d.count||t.signalRef(`max(2,2*floor((${XL(i.gradientLength())})/100))`)):p===yF?f=[NF(e,h,n,r.gradient,y),jF(e,n,r.labels,y)]:(c=function(e,t){const n=MF(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}(e,n),f=[HF(e,n,r,y,XL(c.columns))],d.size=function(e,t,n){const r=XL(bB("size",e,n)),i=XL(bB("strokeWidth",e,n)),a=XL(function(e,t,n){return wF("fontSize",e)||function(e,t,n){const r=t.config.style[n];return r&&r.fontSize}(0,t,n)}(n[1].encode,t,dF));return FR(`max(ceil(sqrt(${r})+${i}),${a})`,t)}(e,t,f[0].marks)),f=[DF({role:_L,from:g,encode:{enter:{x:{value:0},y:{value:0}}},marks:f,layout:c,interactive:s})],m.title&&f.push(function(e,t,n,r){const i=MF(e,t),a={enter:{opacity:xF},update:{opacity:EF,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:xF}};return iL(a,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:qF},angle:{signal:YF},align:{signal:GF},baseline:{signal:KF},text:e.title,fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),baseline:i("titleBaseline")}),kF({type:OF,role:EL,style:fF,from:r,encode:a},n)}(e,n,r.title,g)),_B(DF({role:gL,from:g,encode:aL(vB(i,e,n),a,bF),marks:f,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:s,style:l}),t)}(e,t))),e.title&&function(e,t){const n=MF(e=vt(e)?{text:e}:e,t.config.title),r=e.encode||{},i=r.group||{},a=i.name||void 0,o=i.interactive,s=i.style,l=[],u=zL(t.add(cN(null,[{}])));l.push(function(e,t,n,r){const i={value:0},a={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return iL(a,{text:e.text,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),kF({type:OF,role:AL,style:hF,from:r,encode:a},n)}(e,n,function(e){const t=e.encode;return t&&t.title||ut({name:e.name,interactive:e.interactive,style:e.style},t)}(e),u)),e.subtitle&&l.push(function(e,t,n,r){const i={value:0},a={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return iL(a,{text:e.subtitle,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),kF({type:OF,role:$L,style:pF,from:r,encode:a},n)}(e,n,r.subtitle,u)),_B(DF({role:SL,from:u,encode:EB(n,i),marks:l,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:a,interactive:o,style:s}),t)}(e.title,t),t.parseLambdas(),t}function JB(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}function XB(e){return(Le(e)?ZB:QB)(e)}function ZB(e){const t=e.length;let n="[";for(let r=0;r<t;++r){const t=e[r];n+=(r>0?",":"")+(Ne(t)?t.signal||XB(t):St(t))}return n+"]"}function QB(e){let t,n,r="{",i=0;for(t in e)n=e[t],r+=(++i>1?",":"")+St(t)+":"+(Ne(n)?n.signal||XB(n):St(n));return r+"}"}JB.prototype={parse(e){return KB(e,this)},fork(){return new JB(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach((t=>{t.$ref=e.id})),e.refs=null),e},proxy(e){const t=e instanceof BL?zL(e):e;return this.add(ON({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(e,t,n){let r,i;e&&(r=e.data||(e.data={}),i=r[t]||(r[t]=[]),i.push(n))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(const r in t.index)n(t.index[r],e,"index:"+r)}return this},pushState(e,t,n){this._encode.push(zL(this.add(IN({pulse:e})))),this._parent.push(t),this._lookup.push(n?zL(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return He(this._parent)},encode(){return He(this._encode)},lookup(){return He(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(vt(e))return PL(e,t);e.signal||_e("Unsupported field reference: "+St(e));const n=e.signal;let r=this.field[n];if(!r){const e={name:this.signalRef(n)};t&&(e.as=t),this.field[n]=r=zL(this.add(gN(e)))}return r},compareRef(e){let t=!1;const n=e=>YL(e)?(t=!0,this.signalRef(e.signal)):function(e){return e&&e.expr}(e)?(t=!0,this.exprRef(e.expr)):e,r=Qe(e.field).map(n),i=Qe(e.order).map(n);return t?zL(this.add(dN({fields:r,orders:i}))):VL(r,i)},keyRef(e,t){let n=!1;const r=this.signals;return e=Qe(e).map((e=>YL(e)?(n=!0,zL(r[e.signal])):e)),n?zL(this.add(yN({fields:e,flat:t}))):function(e,t){const n={$key:e};return t&&(n.$flat=!0),n}(e,t)},sortRef(e){if(!e)return e;const t=WL(e.op,e.field),n=e.order||"ascending";return n.signal?zL(this.add(dN({fields:t,orders:this.signalRef(n.signal)}))):VL(t,n)},event(e,t){const n=e+":"+t;if(!this.events[n]){const r=this.id();this.streams.push({id:r,source:e,type:t}),this.events[n]=r}return this.events[n]},hasOwnSignal(e){return dt(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&_e("Duplicate signal name: "+St(e));const n=t instanceof BL?t:this.add(HL(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||_e("Unrecognized signal name: "+St(e)),this.signals[e]},signalRef(e){return this.signals[e]?zL(this.signals[e]):(dt(this.lambdas,e)||(this.lambdas[e]=this.add(HL(null))),zL(this.lambdas[e]))},parseLambdas(){const e=Object.keys(this.lambdas);for(let t=0,n=e.length;t<n;++t){const n=e[t],r=FR(n,this),i=this.lambdas[n];i.params=r.$params,i.update=r.$expr}},property(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty(e){return e&&Ne(e)?this.signalRef(e.signal||XB(e)):e},exprRef(e,t){const n={expr:FR(e,this)};return t&&(n.expr.$name=t),zL(this.add(pN(n)))},addBinding(e,t){this.bindings||_e("Nested signals do not support binding: "+St(e)),this.bindings.push(ut({signal:e},t))},addScaleProj(e,t){dt(this.scales,e)&&_e("Duplicate scale or projection name: "+St(e)),this.scales[e]=this.add(t)},addScale(e,t){this.addScaleProj(e,wN(t))},addProjection(e,t){this.addScaleProj(e,TN(t))},getScale(e){return this.scales[e]||_e("Unrecognized scale name: "+St(e)),this.scales[e]},scaleRef(e){return zL(this.getScale(e))},scaleType(e){return this.getScale(e).params.type},projectionRef(e){return this.scaleRef(e)},projectionType(e){return this.scaleType(e)},addData(e,t){return dt(this.data,e)&&_e("Duplicate data set name: "+St(e)),this.data[e]=t},getData(e){return this.data[e]||_e("Undefined data set name: "+St(e)),this.data[e]},addDataPipeline(e,t){return dt(this.data,e)&&_e("Duplicate data set name: "+St(e)),this.addData(e,hB.fromEntries(this,t))}},ut(Wo,e,n,r,i,s,u,l,c,d,f,h);const ej=({color:e,lineType:t,opacity:n,size:r})=>{let i=[e,t,n,r].map((e=>Array.isArray(e)?e[0]:e)).filter((e=>"string"==typeof e));i=[...new Set(i)];let a=[e,t,n].map((e=>Array.isArray(e)?e[1]:void 0)).filter((e=>"string"==typeof e));return a=[...new Set(a)],{facets:i,secondaryFacets:a}},tj=(e=[])=>{const t=[re.COLOR_SCALE,re.LINE_TYPE_SCALE,re.OPACITY_SCALE,"secondaryColor","secondaryLineType","secondaryOpacity"].reduce(((t,n)=>{const r=e.find((e=>e.name===n));return(null==r?void 0:r.domain)&&"fields"in r.domain&&r.domain.fields.length?[...t,r.domain.fields[0].toString()]:t}),[]);return[...new Set(t)]},nj=e=>{if(Array.isArray(e))return e;switch(e){case"dashed":return[7,4];case"dotted":return[0,4];case"dotDash":return[2,3,7,4];case"shortDash":return[3,4];case"longDash":return[11,4];case"twoDash":return[5,2,11,2];default:return[]}},rj=e=>{if("number"==typeof e)return e;switch(e){case"XS":return 1;case"S":return 1.5;case"L":return 3;case"XL":return 4;default:return 2}},ij=e=>"rounded-square"===e?re.ROUNDED_SQUARE_PATH:"visibility-off"===e?re.VISIBILITY_OFF_PATH:e,aj=e=>({date:re.DATE_PATH,sentimentNegative:re.SENTIMENT_NEGATIVE_PATH,sentimentNeutral:re.SENTIMENT_NEUTRAL_PATH,sentimentPositive:re.SENTIMENT_POSITIVE_PATH}[e]||e),oj=e=>Math.pow(sj(e),2),sj=e=>{if("number"==typeof e)return e;switch(e){case"XS":return 6;case"S":return 8;case"L":return 12;case"XL":return 16;default:return 10}},lj=[{name:re.TABLE,values:[],transform:[{type:"identifier",as:re.MARK_ID}]},{name:re.FILTERED_TABLE,source:re.TABLE}],uj=(e={},t={})=>{const{backgroundColor:n,colorScheme:r="light",description:i,title:a}=t,o={usermeta:{},title:a||void 0,description:i,data:lj,background:n?(0,ie.getS2ColorValue)(n,r):void 0};return Object.assign(Object.assign({},o),e||{})},cj=(e,t)=>e.map((e=>{const n=t[e.name];return n&&(e.values=n),e})),dj=(e,t)=>"time"===t?re.DEFAULT_TRANSFORMED_TIME_DIMENSION:e,fj=e=>{switch(e){case"currency":return"$,.2f";case"standardNumber":return",";case"percentage":return"~%";default:return e}},hj=e=>e.replaceAll("\\",String.raw`\\`).replaceAll('"',String.raw`\"`);function pj(e,t){const n=(0,ie.getSpectrum2VegaConfig)(t);return e?function(...e){return e.reduce(((e,t)=>{for(const n in t)if("signals"===n)e.signals=je(e.signals,t.signals);else{const r="legend"===n?{layout:1}:"style"===n||null;Be(e,n,t[n],r)}return e}),{})}(n,e):n}const mj=ne(((e,t,n)=>{var r;e.interactiveMarks=[...null!==(r=e.interactiveMarks)&&void 0!==r?r:[],...t?[{name:t,dimension:n}]:[]]})),gj=ne(((e,t,n,r)=>{var i;e.divergingBarMarks=[...null!==(i=e.divergingBarMarks)&&void 0!==i?i:[],{name:t,dimension:n,metric:r}]})),yj=ne(((e,t)=>{var n;e.animatedMarks=[...null!==(n=e.animatedMarks)&&void 0!==n?n:[],...t?[t]:[]]})),_j=(e,t,n,r,i)=>{const a=r||(0,ae.toCamelCase)(`${n} ${t}`);let o=e.findIndex((e=>e.name===a));return-1===o&&(o=e.length,e.push($j(t,n,Object.assign({name:a},i?{domain:{data:i,fields:[]}}:{})))),o},vj=(e,t,n)=>{let r=e.findIndex((e=>e.name===t));return-1===r&&(r=e.length,e.push({name:t,type:n})),r},bj=ne(((e,t)=>(t.forEach((t=>{Ij(e.domain)?e.domain.fields.includes(t)||e.domain.fields.push(t):e.domain={data:re.TABLE,fields:[t]}})),e))),xj=(e,{scaleType:t,dimension:n,padding:r})=>{const i=_j(e,t,"x"),a=[dj(n,t)];e[i]=bj(e[i],a),void 0!==r&&(e[i]=Ej(e[i],r))},Ej=ne(((e,t)=>{"padding"in e&&(e.padding=t),"paddingOuter"in e&&(e.paddingOuter=t)})),Sj=(e,t,n="y",r,i)=>{const a=_j(e,"linear",n,r,i);e[a]=bj(e[a],t)},Aj=(e,t,n)=>{if("string"==typeof n||Array.isArray(n)&&n.length){const r=vj(e,t),i=Array.isArray(n)?n[0]:n;e[r]=bj(e[r],[i])}},$j=(e,t,n)=>Object.assign(Object.assign({},Tj(e,t)),n),Tj=(e,t,n="vertical")=>{const r=t==={vertical:"x",horizontal:"y"}[n],i=Object.assign({name:(0,ae.toCamelCase)(`${t} ${e}`),type:e,range:"x"===t?"width":"height",domain:{data:re.FILTERED_TABLE,fields:[]}},r?Oj(e):{});if("ordinal"===i.type){const{name:e,type:t,domain:n}=i;return{name:e,type:t,domain:n}}return"linear"!==i.type||r?i:Object.assign(Object.assign({},i),{nice:!0,zero:!0})},Oj=e=>{switch(e){case"band":{const{paddingInner:e,paddingOuter:t}=Dj(re.PADDING_RATIO);return{paddingInner:e,paddingOuter:t}}case"linear":case"time":return{padding:re.LINEAR_PADDING};case"point":return{paddingOuter:re.DISCRETE_PADDING};default:return{}}},Dj=(e,t)=>{const n=e;return{paddingInner:n,paddingOuter:void 0===t?re.DISCRETE_PADDING-(1-n)/2:t}},Mj=(e,t)=>(0,ae.toCamelCase)(`${e} ${t}`),wj=(e,t)=>({name:e,type:"ordinal",range:t,domain:{data:re.TABLE,fields:[]}}),Ij=e=>Boolean(e&&!Array.isArray(e)&&"data"in e&&"fields"in e),Cj=(e,t)=>{if(t||e.length)return{value:"pointer"}};function Rj(e,t,n,r){if(e.length){const i={signal:`merge(${n?"datum.datum":"datum"}, {'${re.COMPONENT_NAME}': '${t}'}${r?`, ${JSON.stringify(r)}`:""})`},a=e[0].excludeDataKeys;return(null==a?void 0:a.length)?[...a.map((e=>({test:`datum.${e}`,signal:"false"}))),i]:i}}const kj=(e,t=!1)=>e?{stroke:{signal:re.BACKGROUND_COLOR},strokeWidth:{value:t?1.5:1},strokeJoin:{value:"round"}}:{},Lj=e=>{const t="hasOnClick"in e&&e.hasOnClick,n="hasOnContextMenu"in e&&e.hasOnContextMenu,r="metricRanges"in e&&e.metricRanges||[],i="trendlines"in e&&e.trendlines||[];return t||n||Nj(e)||Fj(e)||i.some((e=>e.displayOnHover))||r.some((e=>e.displayOnHover))},Nj=e=>{var t;return Boolean("chartPopovers"in e&&(null===(t=e.chartPopovers)||void 0===t?void 0:t.length))},Fj=e=>{var t;return Boolean("chartInspects"in e&&(null===(t=e.chartInspects)||void 0===t?void 0:t.length))},Bj=(e,t,n="ordinal")=>{const r="linear"===n?re.LINEAR_COLOR_SCALE:re.COLOR_SCALE;return Array.isArray(e)?{signal:`scale('colors', datum.${e[0]})[indexof(domain('secondaryColor'), datum.${e[1]})% length(scale('colors', datum.${e[0]}))]`}:"string"==typeof e?{scale:r,field:e}:{value:(0,ie.getS2ColorValue)(e.value,t)}},jj=(e,t,n="ordinal")=>{const r=Bj(e,t,n);return"signal"in r?r.signal:"scale"in r&&"field"in r?`scale('${r.scale}', datum.${r.field})`:"value"in r&&r.value?`'${r.value}'`:""},Hj=e=>{if(e)return Array.isArray(e)?{signal:`scale('lineWidths', datum.${e[0]})[indexof(domain('secondaryLineWidth'), datum.${e[1]})% length(scale('lineWidths', datum.${e[0]}))]`}:"string"==typeof e?{scale:re.LINE_WIDTH_SCALE,field:e}:{value:rj(e.value)}},zj=e=>Array.isArray(e)?{signal:`scale('opacities', datum.${e[0]})[indexof(domain('secondaryOpacity'), datum.${e[1]})% length(scale('opacities', datum.${e[0]}))]`}:"string"==typeof e?{signal:`scale('${re.OPACITY_SCALE}', datum.${e})`}:{value:e.value},Pj=e=>"string"==typeof e?{scale:re.SYMBOL_SIZE_SCALE,field:e}:{value:oj(e.value)},Uj=e=>Array.isArray(e)?{signal:`scale('lineTypes', datum.${e[0]})[indexof(domain('secondaryLineType'), datum.${e[1]})% length(scale('lineTypes', datum.${e[0]}))]`}:"string"==typeof e?{scale:re.LINE_TYPE_SCALE,field:e}:{value:nj(e.value)},Vj=e=>null==e?{signal:re.CHART_SIZE_FONT_SIZE}:{value:e},Wj=(e,t)=>{const n=Mj("x",e);return"time"===e?{scale:n,field:re.DEFAULT_TRANSFORMED_TIME_DIMENSION}:{scale:n,field:t}},Gj=(e,t)=>({scale:e||"yLinear",field:t}),qj=(e,t,n,r,i,a)=>({name:`${r}_pointsForVoronoi`,description:`${r}_pointsForVoronoi`,type:"symbol",from:{data:e},interactive:!1,encode:{enter:{y:Gj(a,n),fill:{value:"transparent"},stroke:{value:"transparent"}},update:{x:Wj(i,t)}}}),Yj=(e,t)=>{const{chartPopovers:n,chartInspects:r,name:i}=e,a="hasOnClick"in e&&e.hasOnClick;return{name:`${i}_voronoi`,description:`${i}_voronoi`,type:"path",from:{data:t},encode:{enter:{fill:{value:"transparent"},stroke:{value:"transparent"},isVoronoi:{value:!0},tooltip:Rj(null!=r?r:[],i,!0)},update:{cursor:Cj(null!=n?n:[],a)}},transform:[{type:"voronoi",x:"datum.x",y:"datum.y",size:[{signal:"max(width, 1)"},{signal:"max(height, 1)"}]}]}},Kj=(e,t,n,r,i,a,o)=>({name:`${i}_hoverGroup`,type:"group",marks:Xj().map(((r,s)=>({name:Jj(i,s),type:"symbol",from:{data:t},encode:{enter:{shape:{value:re.HOVER_SHAPE},y:o,fill:{value:"transparent"},stroke:{value:"transparent"},tooltip:Rj(e,i,!1),size:Qj(r)},update:{x:Wj(a,n)}}})))}),Jj=(e,t)=>`${e}_hover${t}`,Xj=()=>new Array(re.HOVER_SHAPE_COUNT).fill(0).map(((e,t)=>re.HOVER_SIZE/2**t)),Zj=e=>new Array(re.HOVER_SHAPE_COUNT).fill(0).map(((t,n)=>Jj(e,n))),Qj=e=>({signal:`${e} * max(width, 1) / 1000`}),eH=e=>{const{highlightedItem:t,idKey:n,name:r}=e,i=[re.DEFAULT_OPACITY_RULE];return Lj(e)||void 0!==t?(cH(i,e),Nj(e)?[{test:`isValid(${re.SELECTED_ITEM})`,signal:`${re.SELECTED_ITEM} === datum.${n} ? 1 : ${re.FADE_FACTOR}`},{test:`isValid(${re.SELECTED_GROUP})`,signal:`${re.SELECTED_GROUP} === datum.${r}_selectedGroupId ? 1 : ${re.FADE_FACTOR}`},...i]:i):i},tH=(e,t)=>{var n;return Lj(e)||void 0!==e.highlightedItem?t:"trendlines"in e&&(null===(n=e.trendlines)||void 0===n?void 0:n.some((e=>Lj(e))))?`${t}Trendline`:void 0};const nH=e=>e.chartInspects.map((t=>rH(t,e.name))),rH=(e,t)=>{var{highlightBy:n="item",targets:r=["item"]}=e,i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["highlightBy","targets"]);return Object.assign({highlightBy:n,markName:t,targets:r},i)},iH=(e,t,n=!0)=>{const r=nH(t);for(const{highlightBy:i,markName:a}of r){if("item"===i)return;const r=ue(e);r.transform||(r.transform=[]),"dimension"===i&&"donut"!==t.markType&&"venn"!==t.markType?r.transform.push(aH([t.dimension],a)):"series"===i?r.transform.push(aH([re.SERIES_ID],a)):Array.isArray(i)&&r.transform.push(aH(i,a)),n&&e.push(oH(a))}},aH=(e,t)=>({type:"formula",as:`${t}_${re.GROUP_ID}`,expr:e.map((e=>`datum.${e}`)).join(' + " | " + ')}),oH=e=>({name:`${e}_highlightedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`${re.HIGHLIGHTED_GROUP} === datum.${e}_${re.GROUP_ID}`}]}),sH=e=>nH(e).some((({highlightBy:e})=>e&&"item"!==e)),lH=(e,t)=>{if(sH(t)){const n=e.find((e=>e.name===re.HIGHLIGHTED_GROUP));let r=t.name,i=`datum.${r}_${re.GROUP_ID}`;if("interactionMode"in t&&t.interactionMode===re.INTERACTION_MODE.ITEM)for(const e of Zj(r))uH(n,e,i);["scatter","line"].includes(t.markType)&&(i=`datum.${i}`,r+="_voronoi"),uH(n,r,i)}},uH=(e,t,n)=>{void 0===e.on&&(e.on=[]),e.on.push({events:`@${t}:mouseover`,update:n},{events:`@${t}:mouseout`,update:"null"})},cH=(e,t)=>{var n;const{name:r}=t,i=e.findIndex((e=>{var t;return null===(t=e.test)||void 0===t?void 0:t.includes(re.HOVERED_ITEM)}))+1,a=`${r}_${re.HOVERED_ITEM}`;let o=t.idKey;sH(t)&&(o=`${r}_${re.GROUP_ID}`);const s=[{test:`isValid(${a})`,signal:`${a}.${o} === datum.${o} ? 1 : ${re.FADE_FACTOR}`},{test:`isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) && length(${re.CONTROLLED_HIGHLIGHTED_ITEM}) > 0 && indexof(${re.CONTROLLED_HIGHLIGHTED_ITEM}, datum.${t.idKey}) === -1`,value:re.FADE_FACTOR}];if(dH(s,t),"comboSiblingNames"in t&&(null===(n=t.comboSiblingNames)||void 0===n?void 0:n.length)){const e=t.comboSiblingNames.map((e=>`isValid(${e}_${re.HOVERED_ITEM})`)).join(" || ");console.log("test",e),s.push({test:e,value:re.FADE_FACTOR})}e.splice(i,0,...s)},dH=(e,t)=>{if("bar"!==t.markType||!("dimension"in t))return;const{name:n,dimension:r}=t,i=`${n}_${re.DIMENSION_HOVER_AREA}_${re.HOVERED_ITEM}`;e.push({test:`isValid(${i})`,signal:`${i}.${r} === datum.${r} ? 1 : ${re.FADE_FACTOR}`})},fH=(e,t)=>e.some((e=>e.name===t)),hH=(e,t,n)=>{const r=`domain("${e}Entries")[datum.index]`;return t?(null==n?void 0:n.length)?`indexof(pluck(data("${re.FILTERED_TABLE}"),"${e}_${re.GROUP_ID}"), ${r}) !== -1 ? ${r} : null`:`indexof(hiddenSeries, ${r}) === -1 ? ${r} : null`:r},pH=(e,t=null)=>({name:e,value:t}),mH=()=>({name:`${re.FIRST_RSC_SERIES_ID}`,value:null,update:`length(domain("${re.COLOR_SCALE}")) > 0 ? domain("${re.COLOR_SCALE}")[0] : null`}),gH=()=>({name:`${re.LAST_RSC_SERIES_ID}`,value:null,update:`length(domain("${re.COLOR_SCALE}")) > 0 ? peek(domain("${re.COLOR_SCALE}")) : null`}),yH=(e,t,n,r=1,i,a)=>{n=n||t;const o=`${t}_${re.HOVERED_ITEM}`;let s=e.find((e=>e.name===o));s||(s={description:`Tracks the hovered item for ${t}`,name:o,value:null,on:[]},e.push(s)),void 0===s.on&&(s.on=[]);const l=new Array(r).fill("datum").join("."),u=[null==i?void 0:i.map((e=>`${l}.${e}`)).join(" || "),a].filter(Boolean).join(" || "),c=u?`(${u}) ? null : ${l}`:l;s.on.push({events:`@${n}:mouseover`,update:c},{events:`@${n}:mouseout`,update:"null"})},_H=(e,t=`${e.name}_facet`)=>{const{name:n,chartPopovers:r,chartInspects:i,color:a,colorScheme:o,metricStart:s,metricEnd:l,isStacked:u,scaleType:c,dimension:d,opacity:f}=e;return{name:n,description:n,type:"area",from:{data:t},interactive:Lj(e),encode:{enter:Object.assign({y:{scale:"yLinear",field:s},y2:{scale:"yLinear",field:l},fill:Bj(a,o),tooltip:Rj(null!=i?i:[],n)},kj(u,!0)),update:{x:bH(c,d),cursor:Cj(null!=r?r:[]),fillOpacity:{value:f},opacity:vH(e)}}}};function vH(e){const{chartPopovers:t,displayOnHover:n,interactiveMarkName:r,isHighlightedByGroup:i,isMetricRange:a,highlightedItem:o,name:s}=e;if(a&&n){const e=[{test:`isValid(${r}_${re.HOVERED_ITEM})`,signal:`${r}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},{test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'))`,signal:`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1 ? 1 : ${re.FADE_FACTOR}`},{test:`isValid(${re.SELECTED_SERIES})`,signal:`${re.SELECTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},{value:1}];return r&&e.unshift({test:`isValid(${r}_${re.HOVERED_ITEM})`,signal:`${r}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}),e}if(!Lj(e)&&!o)return[re.DEFAULT_OPACITY_RULE];const l=[];return i&&l.push({test:`indexof(pluck(data('${s}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1`,value:1}),!a&&(null==t?void 0:t.length)?[...l,{test:`isValid(${re.SELECTED_SERIES})`,signal:`${re.SELECTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},{test:`length(data('${s}_highlightedData'))`,signal:`indexof(pluck(data('${s}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? 1 : ${re.FADE_FACTOR}`},{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},re.DEFAULT_OPACITY_RULE]:[...l,{test:`isValid(${s}_${re.HOVERED_ITEM})`,signal:`${s}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},{test:`length(data('${s}_highlightedData'))`,signal:`indexof(pluck(data('${s}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? 1 : ${re.FADE_FACTOR}`},{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},re.DEFAULT_OPACITY_RULE]}const bH=(e,t)=>"time"===e?{scale:"xTime",field:re.DEFAULT_TRANSFORMED_TIME_DIMENSION}:"linear"===e?{scale:"xLinear",field:t}:{scale:"xPoint",field:t};const xH=ne(((e,t)=>{var n,r,i,a,o,{chartPopovers:s=[],chartInspects:l=[],color:u=re.DEFAULT_COLOR,colorScheme:c=re.DEFAULT_COLOR_SCHEME,dimension:d=re.DEFAULT_TIME_DIMENSION,index:f=0,metric:h=re.DEFAULT_METRIC,metricStart:p,metricEnd:m,name:g,opacity:y=.8,scaleType:_="time"}=t,v=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["chartPopovers","chartInspects","color","colorScheme","dimension","index","metric","metricStart","metricEnd","name","opacity","scaleType"]);const b=(0,ae.toCamelCase)(g||`area${f}`),x=Object.assign({chartPopovers:s,chartInspects:l,color:u,colorScheme:c,dimension:d,index:f,interactiveMarkName:tH({chartPopovers:s,chartInspects:l,highlightedItem:v.highlightedItem},b),metric:h,name:b,scaleType:_,opacity:y,metricStart:p,metricEnd:m},v);return!p&&!m||p&&m||(console.error(`${m?"metricEnd":"metricStart"} is defined but ${m?"metricStart":"metricEnd"} is not. Both must be defined in order to use the "start and end" method. Defaulting back to 'metric = ${h}'`),x.metricEnd=void 0,x.metricStart=void 0),e.usermeta=mj(null!==(n=e.usermeta)&&void 0!==n?n:{},x.interactiveMarkName),e.data=EH(null!==(r=e.data)&&void 0!==r?r:[],x),e.signals=AH(null!==(i=e.signals)&&void 0!==i?i:[],x),e.scales=TH(null!==(a=e.scales)&&void 0!==a?a:[],x),e.marks=OH(null!==(o=e.marks)&&void 0!==o?o:[],x),e})),EH=ne(((e,t)=>{var n,r;const{color:i,dimension:a,highlightedItem:o,metric:s,metricEnd:l,metricStart:u,name:c,order:d,scaleType:f}=t;if("time"===f){const t=le(e);t.transform=oe(null!==(n=t.transform)&&void 0!==n?n:[],a)}if(!l||!u){const t=ue(e);t.transform=[...null!==(r=t.transform)&&void 0!==r?r:[],{type:"stack",groupby:[a],field:s,sort:se(d),as:[`${s}0`,`${s}1`]}]}if(Lj(t)||void 0!==o){const n=Nj(t),r=Fj(t);e.push(SH(c,t.idKey,r,n,sH(t))),n&&e.push({name:`${c}_selectedDataSeries`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`isValid(${re.SELECTED_SERIES}) && ${re.SELECTED_SERIES} === datum.${i}`}]})}iH(e,t,!1)})),SH=(e,t,n,r,i)=>{let a="";return i?a+=`${e}_controlledHoveredGroup === datum.${e}_${re.GROUP_ID}`:(a+=`isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) && indexof(${re.CONTROLLED_HIGHLIGHTED_ITEM}, datum.${t}) > -1 || ${re.CONTROLLED_HIGHLIGHTED_ITEM} === datum.${t}`,n&&(a=`${e}_controlledHoveredId === datum.${t} || ${a}`)),r&&(a=`isValid(${re.SELECTED_ITEM}) && ${re.SELECTED_ITEM} === datum.${t} || !isValid(${re.SELECTED_ITEM}) && ${a}`),{name:`${e}_highlightedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:a}]}},AH=ne(((e,t)=>{var n;const{chartInspects:r,name:i}=t;Lj(t)&&(yH(e,i,void 0,1,null===(n=r[0])||void 0===n?void 0:n.excludeDataKeys),t.highlightedItem&&$H(e,i),sH(t)?e.push((e=>({name:`${e}_controlledHoveredGroup`,value:null,on:[{events:`@${e}:mouseout`,update:"null"}]}))(i)):e.push((e=>({name:`${e}_controlledHoveredId`,value:null,on:[{events:`@${e}:mouseout`,update:"null"}]}))(i)),lH(e,t))})),$H=(e,t)=>{const n=e.find((e=>e.name===re.CONTROLLED_HIGHLIGHTED_ITEM));n&&(void 0===n.on&&(n.on=[]),n.on.push({events:`@${t}:mouseover`,update:"null"}))},TH=ne(((e,{metric:t,metricEnd:n,metricStart:r,dimension:i,color:a,scaleType:o,padding:s})=>(xj(e,{scaleType:o,dimension:i,padding:s}),Aj(e,re.COLOR_SCALE,a),n&&r||(r=`${t}0`,n=`${t}1`),Sj(e,[r,n]),e))),OH=ne(((e,t)=>{const{chartPopovers:n,chartInspects:r,color:i,colorScheme:a,dimension:o,highlightedItem:s,metric:l,name:u,opacity:c,scaleType:d}=t;let{metricStart:f,metricEnd:h}=t,p=!1;return h&&f||(p=!0,f=`${l}0`,h=`${l}1`),e.push({name:`${u}_group`,type:"group",from:{facet:{name:`${u}_facet`,data:re.FILTERED_TABLE,groupby:i}},marks:[_H({chartPopovers:n,chartInspects:r,color:i,colorScheme:a,dimension:o,isHighlightedByGroup:sH(t),isStacked:p,highlightedItem:s,metricStart:f,metricEnd:h,name:u,opacity:c,scaleType:d}),...DH(t)]},...wH({chartPopovers:n,name:u,scaleType:d,color:i,dimension:o,metricEnd:h,metricStart:f}),...MH(t)),e})),DH=e=>{const{name:t,dimension:n,metric:r,scaleType:i}=e;return Lj(e)?[{name:`${t}_anchorPoint`,type:"symbol",from:{data:`${t}_highlightedData`},interactive:!1,encode:{enter:{y:{scale:"yLinear",field:`${r}1`},stroke:{value:"transparent"},fill:{value:"transparent"}},update:{x:bH(i,n)}}}]:[]},MH=e=>{const{name:t,dimension:n,highlightedItem:r,metric:i,scaleType:a,color:o}=e;if(!Lj(e)&&void 0===r)return[];const s=[{name:`${t}_point`,type:"symbol",from:{data:`${t}_highlightedData`},interactive:!1,encode:{enter:{y:{scale:"yLinear",field:`${i}1`},stroke:{scale:re.COLOR_SCALE,field:o},fill:{signal:re.BACKGROUND_COLOR}},update:{x:bH(a,n)}}}];return(nH(e).some((({highlightBy:e})=>"string"==typeof e&&["dimension","item"].includes(e)))||r)&&s.unshift({name:`${t}_rule`,type:"rule",from:{data:`${t}_highlightedData`},interactive:!1,encode:{enter:{y:{value:0},y2:{signal:"height"},strokeWidth:{value:1}},update:{x:bH(a,n)}}}),s},wH=({chartPopovers:e,name:t,scaleType:n,color:r,dimension:i,metricEnd:a,metricStart:o})=>e.length?[{name:`${t}_selectBorder`,type:"area",from:{data:`${t}_selectedDataSeries`},interactive:!1,encode:{enter:{y:{scale:"yLinear",field:o},y2:{scale:"yLinear",field:a},fill:{scale:re.COLOR_SCALE,field:r},stroke:{value:ie.spectrumColors.light["static-blue"]},strokeWidth:{value:2},strokeJoin:{value:"round"}},update:{x:bH(n,i)}}}]:[];var IH=a(743),CH=a.n(IH);const RH=(e,{name:t,dataKey:n,color:r,colorScheme:i,options:a,format:o})=>{e.push(kH(t,a,i)),"summary"===o?e.push(NH(t,n,r,i)):e.push(LH(t,n,r,i),FH(t))},kH=(e,t,n)=>({name:`${e}_details`,values:t.map((e=>Object.assign(Object.assign({},e),{color:(0,ie.getS2ColorValue)(e.color,n)})))}),LH=(e,t,n,r)=>({name:`${e}_aggregate`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${t}`},{type:"flatten",fields:[t],as:[`${e}_id`]},{type:"aggregate",groupby:[`${e}_id`],fields:["datetime","datetime"],ops:["min","max"]},{type:"formula",expr:"datum.max_datetime - datum.min_datetime",as:"width"},{type:"formula",expr:"datum.width / 2 + datum.min_datetime",as:"center"},{type:"aggregate",groupby:["center"],fields:["min_datetime","max_datetime","width",t,t],ops:["min","max","max","count","values"],as:["lower","upper","width","number","annotations"]},{type:"formula",expr:`datum.annotations[0].${e}_id`,as:"id"},{type:"lookup",from:`${e}_details`,key:"id",values:["color"],fields:["id"]},{type:"formula",expr:`datum.number > 1 || datum.color == null ? '${(0,ie.getS2ColorValue)(n,r)}' : datum.color`,as:"color"}]}),NH=(e,t,n,r)=>({name:`${e}_summary`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${t}`},{type:"flatten",fields:[t],as:[`${e}_id`]},{type:"aggregate",groupby:[`${e}_id`]},{type:"aggregate",groupby:["center"],fields:[t,t],ops:["count","values"],as:["number","annotations"]},{type:"formula",expr:`datum.annotations[0].${e}_id`,as:"id"},{type:"lookup",from:`${e}_details`,key:"id",values:["color"],fields:["id"]},{type:"formula",expr:`datum.number > 1 || datum.color == null ? '${(0,ie.getS2ColorValue)(n,r)}' : datum.color`,as:"color"}]}),FH=e=>({name:`${e}_range`,source:`${e}_aggregate`,transform:[{type:"filter",expr:`${e}_highlighted && datum.center == ${e}_highlighted.center && ${e}_highlighted.width > 0`}]}),BH=(e,{name:t,format:n})=>{"span"===n&&e.push(jH(t),HH(t),zH(t))},jH=e=>({name:`${e}_highlighted`,value:null,on:[{events:`@${e}_icon:mouseover`,update:"datum"},{events:`@${e}_icon:mouseout`,update:`${e}_clicked`}]}),HH=e=>({name:`${e}_clicked`,value:{},on:[{events:{markname:`${e}_icon`,type:"mousedown",between:[{type:"mousedown"},{type:"mouseup"}]},update:"datum"},{events:"window:mouseup",update:"{}"}]}),zH=e=>({name:`${e}_selected`,update:`${e}_clicked.center`}),PH=(e,t,n)=>{const{format:r}=t;"summary"===r?e.push(UH(t)):e.push(VH(t,n))},UH=({chartPopovers:e,name:t,offset:n})=>({name:`${t}_group`,type:"group",from:{data:`${t}_summary`},marks:[{name:`${t}_icon`,type:"path",from:{data:`${t}_summary`},zindex:2,encode:{enter:{stroke:{value:"transparent"},strokeWidth:{value:2},cursor:Cj(e)},update:{path:{signal:`'${re.ANNOTATION_SINGLE_ICON_SVG}'`},fill:{field:"color"},xc:{signal:"width - 12"},yc:{signal:`height + ${n}`}}}}]}),VH=({chartPopovers:e,name:t,offset:n},r)=>({name:`${t}_group`,type:"group",marks:[{name:`${t}_range`,type:"group",marks:[{type:"rect",from:{data:`${t}_range`},encode:{update:{x:{scale:r,field:"lower",band:.5},y:{signal:`height + ${n}`},width:{value:2},height:{value:-4},fill:{field:"color"},fillOpacity:{signal:`${t}_selected ? 1.0 : 0.2`}}}},{type:"rect",from:{data:`${t}_range`},encode:{update:{x:{scale:r,field:"lower",band:.5},y:{signal:`height + ${n}`},x2:{scale:r,field:"upper",band:.5},height:{value:2},fill:{field:"color"},fillOpacity:{signal:`${t}_selected ? 1.0 : 0.2`}}}},{type:"rect",from:{data:`${t}_range`},encode:{update:{x:{scale:r,field:"upper",band:.5},y:{signal:`height + ${n} + 2`},width:{value:2},height:{value:-6},fill:{field:"color"},fillOpacity:{signal:`${t}_selected ? 1.0 : 0.2`}}}}]},{name:`${t}_icon`,type:"path",from:{data:`${t}_aggregate`},encode:{enter:{stroke:{value:"transparent"},strokeWidth:{value:2},cursor:Cj(e)},update:{path:{signal:`datum.width > 0 ? '${re.ANNOTATION_RANGED_ICON_SVG}' : '${re.ANNOTATION_SINGLE_ICON_SVG}'`},fill:{field:"color"},xc:{scale:r,field:"center",band:.5},yc:{signal:`height + ${n}`},fillOpacity:{signal:`(${t}_selected && ${t}_selected != datum.center) ? 0.0 : 1.0`}}}}]}),WH=(e,{offset:t},n)=>{e.push({scale:n,orient:"bottom",values:[],offset:t})},GH=({axisAnnotations:e,colorScheme:t,name:n,position:r,scaleType:i})=>"bottom"!==r?[]:e.map(((e,r)=>qH(e,r,n,t,i))),qH=({chartPopovers:e=[],chartInspects:t=[],name:n,format:r,offset:i=re.DEFAULT_AXIS_ANNOTATION_OFFSET,color:a=re.DEFAULT_AXIS_ANNOTATION_COLOR,dataKey:o="annotations",options:s=[]},l,u,c,d)=>({chartPopovers:e,chartInspects:t,color:a,colorScheme:c,dataKey:o,name:null!=n?n:`${u}Annotation${l}`,offset:i,options:s,axisName:u,format:null!=r?r:"time"===d?"span":"summary"});function YH(e){const t=`${e}Primary`,n=`${e}Secondary`;return{primaryScale:t,secondaryScale:n,primaryDomain:`${t}Domain`,secondaryDomain:`${n}Domain`}}const KH=e=>{var t;if(e.domain){if("field"in e.domain)return e.domain.field.toString();if("fields"in e.domain)return null===(t=e.domain.fields[0])||void 0===t?void 0:t.toString()}},JH=e=>`${e}_labelHover`,XH=(e,t=[])=>e?t.filter((t=>t.dimension===e)):[],ZH=e=>{const t=e.map((({name:e,dimension:t})=>{const n=`${e}_${re.DIMENSION_HOVER_AREA}_${re.HOVERED_ITEM}`;return{test:`isValid(${n})`,signal:`${n}.${t} === datum.value ? 1 : ${re.FADE_FACTOR}`}}));return t.push({value:1}),t},QH=(e,t="value",n,r)=>{const i=`isNumber(datum['${t}'])`;return"shortNumber"===e?[{test:i,signal:`formatShortNumber(datum['${t}'])`}]:"shortCurrency"===e?[{test:`${i} && abs(datum['${t}']) >= 1000`,signal:`upper(replace(format(datum['${t}'], '$.3~s'), /(\\d+)G/, '$1B'))`},{test:i,signal:`format(datum['${t}'], '$')`}]:r&&n?[{test:i,signal:`formatLocaleCurrency(datum, "${n}", "${r}", "${e}")`}]:[{test:i,signal:`format(datum['${t}'], '${fj(e)}')`}]},ez=(e,t)=>{const{grid:n,hideDefaultLabels:r,labelAlign:i,labelFontWeight:a,labelLimit:o,labelOrientation:s,tickCountLimit:l,tickCountMinimum:u,position:c,scaleType:d,ticks:f,tickMinStep:h,title:p,vegaLabelAlign:m,vegaLabelBaseline:g,vegaLabelOffset:y,vegaLabelPadding:_,hasTooltip:v}=e;return Object.assign(Object.assign(Object.assign(Object.assign({scale:t,orient:c,grid:n,ticks:f,tickCount:pz(c,u,l,n),tickMinStep:"linear"!==d?void 0:h,title:p,labelAngle:xz(s),labelFontWeight:a},void 0!==o&&{labelLimit:o}),{labelOffset:Ez(i,t,y),labelPadding:_,labels:!r}),_z(c,s,i,m,g)),{encode:{labels:{interactive:Boolean(v),update:Object.assign({text:Sz(e,t)},v?{tooltip:{signal:"datum.value"}}:{})}}})},tz=(e,{granularity:t,grid:n,labelAlign:r,labelOrientation:i,position:a,tickCountLimit:o,tickCountMinimum:s,ticks:l,title:u,vegaLabelAlign:c,vegaLabelBaseline:d})=>{const{tickCount:f}=gz(t),h=void 0!==o||void 0!==s?pz(a,s,o,n):f;return Object.assign(Object.assign({scale:e,orient:a,grid:n,ticks:l,tickCount:e.includes("Time")?h:void 0,title:u,formatType:"time",labelAngle:xz(i),labelSeparation:12},nz(t,a)),_z(a,i,r,c,d))},nz=(e,t)=>{const{secondaryLabelFormat:n,primaryLabelFormat:r}=gz(e);return["left","right"].includes(t)?{format:`${r} ${n}`,encode:{labels:{interactive:!1,update:{text:{signal:"formatVerticalAxisTimeLabels(datum)"}}}}}:{format:n}},rz=(e,{granularity:t,labelAlign:n,labelOrientation:r,labelFontWeight:i,position:a,tickCountLimit:o,tickCountMinimum:s,ticks:l,vegaLabelAlign:u,vegaLabelBaseline:c})=>{if(["left","right"].includes(a))return[];const{primaryLabelFormat:d,tickCount:f}=gz(t),h=void 0!==o||void 0!==s?pz(a,s,o):f;return[Object.assign(Object.assign({scale:e,orient:a,format:d,tickCount:e.includes("Time")?h:void 0,formatType:"time",labelOverlap:"greedy",labelFontWeight:i,labelAngle:xz(r)},_z(a,r,n,u,c)),{encode:{labels:{interactive:!1,enter:{dy:{value:(l?28:20)*("top"===a?-1:1)}},update:{text:{signal:"formatHorizontalTimeAxisLabels(datum)"}}}}})]},iz=(e,t)=>{var n;const r=e.filter((e=>"range"in e&&e.range===az(t)));let i;return i=r.length>1&&null!==(n=e.find((e=>e.name.includes("Trellis"))))&&void 0!==n?n:r[0],i||(i={name:fz(t),type:"linear",range:az(t),zero:!0},e.push(i),i)},az=e=>"left"===e||"right"===e?"height":"width",oz=e=>"left"===e||"right"===e?"width":"height",sz=({dataName:e,dimension:t,metric:n})=>`data('${e}')[indexof(pluck(data('${e}'), '${t}'), datum.value)]['${n}'] < 0`,lz=e=>"object"==typeof e&&null!==e,uz=e=>lz(e)?void 0!==e.signal?e.signal:JSON.stringify(e.value):JSON.stringify(e),cz=e=>{if(!Array.isArray(e))return uz(e);const[t,...n]=e;return lz(t)&&t.test&&0!==n.length?`(${t.test} ? (${uz(t)}) : (${cz(n)}))`:uz(t)},dz=e=>["left","right"].includes(e),fz=e=>dz(e)?"yLinear":"xLinear",hz=e=>dz(e)?"xLinear":"yLinear",pz=(e,t,n,r)=>{const i=["top","bottom"].includes(e)?"width":"height";return void 0!==n?void 0!==t?{signal:`clamp(ceil(${i}/100), ${t}, ${n})`}:{signal:`clamp(ceil(${i}/100), 2, ${n})`}:void 0!==t?{signal:`clamp(ceil(${i}/100), ${t}, 10)`}:r?{signal:`clamp(ceil(${i}/100), 2, 10)`}:void 0},mz=({subLabels:e,labelOrientation:t})=>Boolean(e.length&&"horizontal"===t),gz=e=>{switch(e){case"second":return{secondaryLabelFormat:":%S",primaryLabelFormat:"%-I:%M %p",tickCount:"second"};case"minute":return{secondaryLabelFormat:"%-I:%M %p",primaryLabelFormat:"%b %-d",tickCount:"minute"};case"hour":return{secondaryLabelFormat:"%-I %p",primaryLabelFormat:"%b %-d",tickCount:"hour"};case"day":default:return{secondaryLabelFormat:"%-d",primaryLabelFormat:"%b",tickCount:"day"};case"week":return{secondaryLabelFormat:"%-d",primaryLabelFormat:"%b",tickCount:"week"};case"month":return{secondaryLabelFormat:"%b",primaryLabelFormat:"%Y",tickCount:"month"};case"quarter":return{secondaryLabelFormat:"Q%q",primaryLabelFormat:"%Y",tickCount:{interval:"month",step:3}};case"year":return{secondaryLabelFormat:"%Y",primaryLabelFormat:"",tickCount:"year"}}},yz=(e,t,n)=>n?vz(e,t,n):{align:void 0,baseline:void 0},_z=(e,t,n,r,i)=>{const{align:a,baseline:o}=vz(e,t,n);return{labelAlign:null!=r?r:a,labelBaseline:null!=i?i:o}},vz=(e,t,n)=>{let r,i;return bz(e,t)?(r={start:"left",center:"center",end:"right"}[n],i=["top","left"].includes(e)?"bottom":"top"):(i={start:"top",center:"middle",end:"bottom"}[n],r=["bottom","left"].includes(e)?"right":"left"),{align:r,baseline:i}},bz=(e,t)=>(["top","bottom"].includes(e)?"horizontal":"vertical")===t,xz=e=>"horizontal"===e?0:270,Ez=(e,t,n)=>{if(void 0!==n)return n;switch(e){case"start":return{signal:`bandwidth('${t}') / -2`};case"end":return{signal:`bandwidth('${t}') / 2`};default:return}},Sz=({labelFormat:e,labelOrientation:t,numberFormat:n,position:r,truncateLabels:i,currencyLocale:a,currencyCode:o},s)=>"percentage"===e?[{test:"isNumber(datum.value)",signal:"format(datum.value, '~%')"},{signal:"datum.value"}]:"duration"===e?{signal:"formatTimeDurationLabels(datum)"}:[...QH(n,void 0,a,o),...i&&s.includes("Band")&&bz(r,t)?[{signal:'truncateText(datum.value, bandwidth("xBand")/(1- paddingInner), "normal", 14)'}]:[{signal:"datum.value"}]],Az=(e,t,n,r,i,a)=>({update:Object.assign({text:[{test:`indexof(pluck(${a}, 'value'), datum.value) !== -1 && ${a}[indexof(pluck(${a}, 'value'), datum.value)].${n}`,signal:`${a}[indexof(pluck(${a}, 'value'), datum.value)].${n}`},{signal:"datum.value"}],fontWeight:[{test:`indexof(pluck(${a}, 'value'), datum.value) !== -1 && ${a}[indexof(pluck(${a}, 'value'), datum.value)].fontWeight`,signal:`${a}[indexof(pluck(${a}, 'value'), datum.value)].fontWeight`},{value:t}]},$z(i,a,r,e))}),$z=(e,t,n,r)=>{const i=`indexof(pluck(${t}, 'value'), datum.value) !== -1 && ${t}[indexof(pluck(${t}, 'value'), datum.value)]`,a=`${t}[indexof(pluck(${t}, 'value'), datum.value)]`,{align:o,baseline:s}=vz(e,n,r);return{align:[{test:`${i}.align`,signal:`${a}.align`},{value:o}],baseline:[{test:`${i}.baseline`,signal:`${a}.baseline`},{value:s}]}},Tz=(e,t)=>{if(!dz(e.position))return[];const n=[];for(const r of(e=>e.referenceLines.map(((t,n)=>((e,t,n)=>Object.assign(Object.assign({},e),{colorScheme:t.colorScheme,name:`${t.name}ReferenceLine${n}`}))(t,e,n))))(e)){const i=Oz(e,r,t);n.push(wz(e,r,i),...Iz(e,r,i),...Cz(e,r,i),...Rz(r,i))}return n},Oz=({scaleType:e},{value:t,position:n},r)=>{const i="string"==typeof t?`'${t}'`:t,a=`paddingInner * bandwidth('${r}') / (2 * (1 - paddingInner))`;return"band"===e?"before"===n?{signal:`scale('${r}', ${i}) - ${a}`}:"after"===n?{signal:`scale('${r}', ${i}) + bandwidth('${r}') + ${a}`}:{signal:`scale('${r}', ${i}) + bandwidth('${r}') / 2`}:{scale:r,value:t}},Dz=e=>"S"===e?`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? 1 : 0`:"L"===e?`rscContainerWidth(width) >= ${re.CHART_SIZE_BREAKPOINTS.L} ? 1 : 0`:`rscContainerWidth(width) >= ${re.CHART_SIZE_BREAKPOINTS.M} && rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? 1 : 0`,Mz=(e,t)=>(0,ie.getS2ColorValue)(re.REFERENCE_LINE_SECONDARY_COLORS[null!=e?e:"M"],t),wz=({colorScheme:e},{name:t,secondary:n,size:r},i)=>{const a=n?{value:Mz(r,e)}:{value:(0,ie.getS2ColorValue)(re.DEFAULT_FONT_COLOR,e)},o=void 0===r?{signal:re.CHART_SIZE_STROKE_WIDTH}:{value:re.REFERENCE_LINE_SIZE_STROKE_WIDTHS[r]},s=n?{value:re.REFERENCE_LINE_SECONDARY_STROKE_WIDTH}:o,l=void 0===r?{signal:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.REFERENCE_LINE_AUTO_RULE_X_START.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.REFERENCE_LINE_AUTO_RULE_X_START.M} : ${re.REFERENCE_LINE_AUTO_RULE_X_START.L}`}:{value:re.REFERENCE_LINE_RULE_X_START[r]},u=n?{value:0}:l,c=void 0===r?{signal:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? width - ${re.REFERENCE_LINE_AUTO_RULE_X2_OFFSET.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? width - ${re.REFERENCE_LINE_AUTO_RULE_X2_OFFSET.M} : width - ${re.REFERENCE_LINE_AUTO_RULE_X2_OFFSET.L}`}:{signal:`width - ${re.REFERENCE_LINE_RULE_X2_OFFSET[r]}`};return{name:t,type:"rule",interactive:!1,encode:{enter:{stroke:a,strokeWidth:s,strokeCap:{value:"round"},strokeJoin:{value:"round"}},update:{x:u,x2:n?{signal:"width"}:c,y:i}}}},Iz=(e,{colorScheme:t,name:n,secondary:r,size:i},a)=>{if(r)return[];const o={value:(0,ie.getS2ColorValue)(re.DEFAULT_FONT_COLOR,t)},s={x:{value:5},y:a};return void 0===i?["S","M","L"].map((e=>({name:`${n}_startCap_${e}`,type:"path",interactive:!1,encode:{enter:{path:{value:re.REFERENCE_LINE_START_CAP_PATHS[e]},fill:o},update:Object.assign(Object.assign({},s),{opacity:{signal:Dz(e)}})}}))):[{name:`${n}_startCap`,type:"path",interactive:!1,encode:{enter:{path:{value:re.REFERENCE_LINE_START_CAP_PATHS[i]},fill:o},update:s}}]},Cz=(e,{colorScheme:t,name:n,secondary:r,size:i},a)=>{if(r)return[];const o={value:(0,ie.getS2ColorValue)(re.DEFAULT_FONT_COLOR,t)};return void 0===i?["S","M","L"].map((e=>({name:`${n}_endCap_${e}`,type:"path",interactive:!1,encode:{enter:{path:{value:re.REFERENCE_LINE_END_CAP_PATHS[e]},fill:o},update:{x:{signal:`width - ${re.REFERENCE_LINE_END_CAP_ANCHOR_OFFSET[e]}`},y:a,opacity:{signal:Dz(e)}}}}))):[{name:`${n}_endCap`,type:"path",interactive:!1,encode:{enter:{path:{value:re.REFERENCE_LINE_END_CAP_PATHS[i]},fill:o},update:{x:{signal:`width - ${re.REFERENCE_LINE_END_CAP_ANCHOR_OFFSET[i]}`},y:a}}}]},Rz=({colorScheme:e,label:t,name:n,secondary:r,size:i},a)=>{if(!t)return[];const o={text:{value:t},x:{signal:"width"},y:a,dy:{value:re.REFERENCE_LINE_LABEL_OFFSET_FROM_LINE},baseline:{value:"top"},align:{value:"right"}},s={fontWeight:{value:re.REFERENCE_LINE_LABEL_FONT_WEIGHT},fontSize:{signal:re.CHART_SIZE_FONT_SIZE}};return[{name:`${n}_labelBackground`,type:"text",interactive:!1,encode:{enter:Object.assign(Object.assign({},o),{fill:{value:"transparent"},stroke:{signal:re.REFERENCE_LINE_LABEL_BACKGROUND_STROKE},strokeWidth:{value:re.REFERENCE_LINE_LABEL_BACKGROUND_STROKE_WIDTH}}),update:s}},{name:`${n}_label`,type:"text",interactive:!1,encode:{enter:Object.assign(Object.assign({},o),{fill:{value:r?Mz(i,e):(0,ie.getS2ColorValue)(re.DEFAULT_FONT_COLOR,e)}}),update:s}}]},kz=e=>e.axisThumbnails.map(((t,n)=>Lz(t,e,n))),Lz=(e,t,n)=>{var r;return Object.assign(Object.assign({},e),{name:`${t.name}AxisThumbnail${n}`,urlKey:null!==(r=e.urlKey)&&void 0!==r?r:"thumbnail"})},Nz=e=>Boolean(e&&["band"].includes(e)),Fz=(e,t,n)=>{var r,i;e.push((r=`${t}ThumbnailSize`,i=`min(bandwidth('${n}'), ${re.MAX_THUMBNAIL_SIZE})`,{name:r,update:i}))},Bz=(e,t,n,r,i)=>{const a={signal:`scale('${e}', datum.${t}) + bandwidth('${e}') / 2`},o=`${r}ThumbnailSize`,s=null==i?void 0:i.zeroLine,l=(e,t,n)=>i?[{test:i.isNegativeBarExpr,signal:n},{signal:t}]:{signal:e};switch(n){case"left":return{x:l(`-${re.THUMBNAIL_OFFSET} - ${o}`,`${s} - ${re.THUMBNAIL_OFFSET} - ${o}`,`${s} + ${re.THUMBNAIL_OFFSET}`),yc:a};case"right":return{x:l(`width + ${re.THUMBNAIL_OFFSET}`,`${s} + ${re.THUMBNAIL_OFFSET}`,`${s} - ${re.THUMBNAIL_OFFSET} - ${o}`),yc:a};case"top":return{xc:a,y:l(`-${re.THUMBNAIL_OFFSET} - ${o}`,`${s} - ${re.THUMBNAIL_OFFSET} - ${o}`,`${s} + ${re.THUMBNAIL_OFFSET}`)};default:return{xc:a,y:l(`height + ${re.THUMBNAIL_OFFSET}`,`${s} + ${re.THUMBNAIL_OFFSET}`,`${s} - ${re.THUMBNAIL_OFFSET} - ${o}`)}}},jz=(e,t,n)=>{const r={test:`${e}ThumbnailSize < ${re.MIN_THUMBNAIL_SIZE}`,value:0},i=`${e}ThumbnailSize`,a=(e,t)=>n?[r,{test:n,signal:t},{signal:e}]:[r,{signal:e}];switch(t){case"left":return{dx:a(`-${i}`,i)};case"right":return{dx:a(i,`-${i}`)};case"top":return{dy:a(`-${i}`,i)};default:return{dy:a(i,`-${i}`)}}},Hz=e=>/[xy]TrellisGroup/g.test(JSON.stringify(e));var zz=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n};const Pz=ne(((e,t)=>{var n,r,i,a,o,s,l,u,c,{name:d,axisAnnotations:f=[],axisThumbnails:h=[],baseline:p=!1,baselineOffset:m=0,colorScheme:g=re.DEFAULT_COLOR_SCHEME,granularity:y=re.DEFAULT_GRANULARITY,grid:_=!1,hasOnClick:v=!1,hideDefaultLabels:b=!1,index:x=0,labelAlign:E=re.DEFAULT_LABEL_ALIGN,labelFontWeight:S=re.DEFAULT_LABEL_FONT_WEIGHT,labelLimit:A,labelOrientation:$=re.DEFAULT_LABEL_ORIENTATION,labels:T=[],numberFormat:O="shortNumber",position:D,range:M,referenceLines:w=[],subLabels:I=[],ticks:C=!1}=t,R=zz(t,["name","axisAnnotations","axisThumbnails","baseline","baselineOffset","colorScheme","granularity","grid","hasOnClick","hideDefaultLabels","index","labelAlign","labelFontWeight","labelLimit","labelOrientation","labels","numberFormat","position","range","referenceLines","subLabels","ticks"]);const k=iz(null!==(n=e.scales)&&void 0!==n?n:[],D),L=d||k.name,N=k.type,F=KH(k),B=((e,t)=>{let n=e.find((e=>"range"in e&&e.range===oz(t)));return n||(n={name:hz(t),type:"linear",range:oz(t)},e.push(n)),n.type})(null!==(r=e.scales)&&void 0!==r?r:[],D),j=((e,t)=>{var n;const r=e.find((e=>"range"in e&&e.range===oz(t)));return null!==(n=null==r?void 0:r.name)&&void 0!==n?n:hz(t)})(null!==(i=e.scales)&&void 0!==i?i:[],D),H=Object.assign({axisAnnotations:f,axisThumbnails:h,baseline:p,baselineOffset:m,colorScheme:g,granularity:y,grid:_,hasOnClick:v,hideDefaultLabels:b,index:x,labelAlign:E,labelFontWeight:S,labelLimit:A,labelOrientation:$,labels:T,name:`axis${x}`,numberFormat:O,position:D,range:M,referenceLines:w,subLabels:I,ticks:C,scaleType:null!=N?N:"linear"},R),z=null===(a=e.signals)||void 0===a?void 0:a.some((e=>"firstRscSeriesId"===e.name));e.data=Uz(null!==(o=e.data)&&void 0!==o?o:[],Object.assign(Object.assign({},H),{scaleType:null!=N?N:"linear"})),e.signals=Vz(null!==(s=e.signals)&&void 0!==s?s:[],H,L),!M||"linear"!==N&&"time"!==N||(k.domain=M,k.nice=!1,"linear"===N&&(k.zero=!1));const P=e.usermeta,U=Hz(e)||mz(H)?void 0:((e,t=[])=>{const n=t.find((t=>t.dimension===e));if(n)return{dataName:re.FILTERED_TABLE,dimension:n.dimension,metric:n.metric}})(F,null==P?void 0:P.divergingBarMarks);if(e.axes=Gz(null!==(l=e.axes)&&void 0!==l?l:[],Object.assign(Object.assign({},H),{scaleName:L,scaleField:F,opposingScaleType:B,opposingScaleName:j,divergingContext:U,usermeta:P,grid:H.grid&&!Hz(e),dualMetricAxis:z})),e.marks=Yz(null!==(u=e.marks)&&void 0!==u?u:[],Object.assign(Object.assign({},H),{usermeta:P,scaleName:L,scaleField:F,opposingScaleType:B,opposingScaleName:j,divergingContext:U,dualMetricAxis:z})),!b){const t=XH(function(e,t,n){var r,i,a;const o=null===(r=e.marks)||void 0===r?void 0:r.find((e=>{var t;return null===(t=e.name)||void 0===t?void 0:t.includes("Trellis")}));if(!o)return n;if(((null===(i=o.name)||void 0===i?void 0:i.startsWith("x"))?"horizontal":"vertical")!==("bottom"===t||"top"===t?"horizontal":"vertical"))return n;const s=iz(null!==(a=o.scales)&&void 0!==a?a:[],t);return KH(s)}(e,D,F),null==P?void 0:P.interactiveMarks);e.signals=((e,t,n)=>{var r;for(const{name:i,dimension:a}of t){const t=`${i}_${re.DIMENSION_HOVER_AREA}_${re.HOVERED_ITEM}`,o=e.find((e=>e.name===t));if(!o)continue;o.on=null!==(r=o.on)&&void 0!==r?r:[];o.on.some((e=>e.events===`@${n}:mouseover`))||o.on.push({events:`@${n}:mouseover`,update:`{ ${a}: datum.value }`},{events:`@${n}:mouseout`,update:"null"})}return e})(null!==(c=e.signals)&&void 0!==c?c:[],t,JH(H.name))}return e})),Uz=ne(((e,t)=>{const n=GH(t);for(const t of n)RH(e,t)})),Vz=ne(((e,t,n)=>{const{name:r,labels:i,position:a,subLabels:o,labelOrientation:s}=t;(null==i?void 0:i.length)&&e.push(pH(`${r}_labels`,Wz(i,a,s))),mz(t)&&e.push(pH(`${r}_subLabels`,o.map((e=>Object.assign(Object.assign({},e),yz(a,s,e.align))))));for(const n of GH(t))BH(e,n);for(const r of kz(t))Fz(e,r.name,n)})),Wz=(e,t,n)=>e.map((e=>{if("object"==typeof e)return Object.assign(Object.assign({},e),yz(t,n,e.align))})).filter(Boolean);const Gz=ne(((e,t)=>{var{scaleName:n,scaleField:r,opposingScaleType:i,opposingScaleName:a,divergingContext:o,dualMetricAxis:s}=t,l=zz(t,["scaleName","scaleField","opposingScaleType","opposingScaleName","divergingContext","dualMetricAxis"]);const u=[];l=Object.assign(Object.assign({},l),(e=>{let t={};if(e.includes("TrellisBand")){const n=`bandwidth('${e}') / -2`,r=e.startsWith("x")?"x":"y";t={position:"x"===r?"top":"left",labelFontWeight:"bold",labelAlign:void 0,title:void 0,vegaLabelAlign:"left",vegaLabelBaseline:"bottom",vegaLabelOffset:"x"===r?{signal:n}:{signal:`${n} - 8`},vegaLabelPadding:"x"===r?8:0}}return t})(n));const{baseline:c,labelFormat:d,position:f}=l;if("time"===d?u.push(...((e,t)=>[tz(e,t),...rz(e,t)])(n,l)):function(e,t,n,r,i){const{colorScheme:a,position:o,usermeta:s}=t,l=ez(t,n);if(function(e,t,n,r){var i;const{hasOnClick:a,hideDefaultLabels:o,labelAlign:s,labelFontWeight:l,labelOrientation:u,name:c,position:d,hasTooltip:f}=t,h=o?[]:XH(r,n),p=h.length>0,m=a&&!o,g=Cj([],m);if((p||m)&&(e.encode=CH()(null!==(i=e.encode)&&void 0!==i?i:{},{labels:{name:JH(c),interactive:!0,update:Object.assign(Object.assign({},p&&{fillOpacity:ZH(h)}),g&&{cursor:g})}})),!t.labels.length)return;const y=t.labels,_=`${c}_labels`;e.values=y.map((e=>(e=>"object"==typeof e?e.value:e)(e)));const v=Az(s,l,"label",u,d,_),b=f?Object.assign(Object.assign({},v),{update:Object.assign(Object.assign({},v.update),{tooltip:{signal:"datum.value"}})}):v;e.encode={labels:Object.assign(Object.assign({name:JH(c),interactive:f||p||m},b),(p||g)&&{update:Object.assign(Object.assign(Object.assign({},b.update),p&&{fillOpacity:ZH(h)}),g&&{cursor:g})})}}(l,t,null==s?void 0:s.interactiveMarks,r),mz(t)){l.titlePadding=24;const r=((e,t)=>{const{labelAlign:n,labelFontWeight:r,labelOrientation:i,name:a,position:o,ticks:s}=e,l=`${a}_subLabels`,u=e.subLabels.map((e=>e.value));let c=ez(e,t);return c=Object.assign(Object.assign({},c),{domain:!1,domainWidth:void 0,grid:!1,labelPadding:s?32:24,ticks:!1,title:void 0,values:u.length?u:void 0,encode:{labels:Object.assign({interactive:!1},Az(n,r,"subLabel",i,o,l))}}),c})(t,n);qz({dualMetricAxis:i,axis:r,usermeta:s,scaleName:n,colorScheme:a,position:o,incrementMetricAxisCount:!1}),e.push(r)}qz({dualMetricAxis:i,axis:l,usermeta:s,scaleName:n,colorScheme:a,position:o,incrementMetricAxisCount:!0}),e.unshift(l)}(u,l,n,r,s),"linear"!==i&&(u[0]=function(e,t=!1){return Object.assign(Object.assign({},e),{domain:t,domainWidth:2})}(u[0],c)),o&&"linear"===i&&a){const e=sz(o),t=((e,t)=>"left"===e||"top"===e?{signal:`-scale('${t}', 0)`}:{signal:`scale('${t}', 0) - ${"right"===e?"width":"height"}`})(f,a),n=dz(f)?"align":"baseline",r=dz(f)?"dx":"dy";u.forEach(((i,a)=>{var o,s,l,c,d,h;const p="number"==typeof i.labelPadding?i.labelPadding:void 0,m=null===(l=null===(s=null===(o=i.encode)||void 0===o?void 0:o.labels)||void 0===s?void 0:s.enter)||void 0===l?void 0:l[r],g=m&&"object"==typeof m&&"value"in m?Number(m.value):0,y=((e,t,n=8,r=0)=>{const i=2*n;if(dz(e)){const n="left"===e?i:-i;return{update:{align:[{test:t,value:"left"},{value:"right"}],dx:"left"===e?[{test:t,value:n-r},{value:r}]:[{test:t,value:r},{value:n-r}]}}}const a="top"===e?i:-i;return{update:{baseline:[{test:t,value:"bottom"},{value:"top"}],dy:"top"===e?[{test:t,value:r},{value:a-r}]:[{test:t,value:a-r},{value:r}]}}})(f,e,p,g),_=null===(h=null===(d=null===(c=i.encode)||void 0===c?void 0:c.labels)||void 0===d?void 0:d.update)||void 0===h?void 0:h[n],v=_?((e,t)=>{const n=(Array.isArray(e)?e:[e]).filter((e=>lz(e)&&Boolean(e.test))),r=Array.isArray(t)?t:[t];return{signal:cz([...n,...r])}})(_,y.update[n]):y.update[n],b={labels:{update:Object.assign(Object.assign({},y.update),{[n]:v})}};u[a]=Object.assign(Object.assign({},i),{offset:t,encode:i.encode?CH()(i.encode,b):b})}))}!function(e,t,n,r,i,a){var o,s,l;if(!Nz(t.scaleType))return;const u=r&&"linear"===i&&a?sz(r):void 0,c=dz(n)?"dx":"dy";for(const r of kz(t)){const t=jz(r.name,n,u)[c];for(const n of e){const e=null===(l=null===(s=null===(o=n.encode)||void 0===o?void 0:o.labels)||void 0===s?void 0:s.update)||void 0===l?void 0:l[c],r={labels:{update:{[c]:e?{signal:`${cz(e)} + ${cz(t)}`}:t}}};n.encode=n.encode?CH()(n.encode,r):r}}}(u,l,f,o,i,a);const h=GH(l);for(const e of h)WH(u,e,n);e.push(...u)})),qz=({dualMetricAxis:e,axis:t,usermeta:n,scaleName:r,colorScheme:i,position:a,incrementMetricAxisCount:o})=>{var s,l;const u=null!==(s=null==n?void 0:n.chartOrientation)&&void 0!==s?s:"vertical";e&&function(e,t){return"vertical"===t?dz(e):!dz(e)}(a,u)&&(n.metricAxisCount||(n.metricAxisCount=0),function(e,t,n,r,i=re.DEFAULT_COLOR_SCHEME){const a=YH(n),{primaryScale:o,secondaryScale:s}=a;t?(e.scale=o,function(e,t,n=re.DEFAULT_COLOR_SCHEME){const r=ie.spectrum2Colors[n][re.DEFAULT_FONT_COLOR],i=[{test:`length(domain('${re.COLOR_SCALE}')) -1 === 1`,signal:`scale('${re.COLOR_SCALE}', ${re.FIRST_RSC_SERIES_ID})`},{value:r}],a=t.map((e=>({test:`isValid(${e}_${re.HOVERED_ITEM})`,signal:`${e}_${re.HOVERED_ITEM}.${re.SERIES_ID} !== ${re.LAST_RSC_SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}))),o={labels:{update:{fill:i,fillOpacity:a}},title:{update:{fill:i,fillOpacity:a}}};e.encode?e.encode=CH()(e.encode,o):e.encode=o}(e,r,i)):(e.scale=s,function(e,t){const n=[{signal:`scale('${re.COLOR_SCALE}', ${re.LAST_RSC_SERIES_ID})`}],r=t.map((e=>({test:`isValid(${e}_${re.HOVERED_ITEM})`,signal:`${e}_${re.HOVERED_ITEM}.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}))),i={labels:{enter:{fill:n},update:{fillOpacity:r}},title:{enter:{fill:n},update:{fillOpacity:r}}};e.encode?e.encode=CH()(e.encode,i):e.encode=i}(e,r))}(t,0===n.metricAxisCount,r,(null!==(l=n.interactiveMarks)&&void 0!==l?l:[]).map((e=>e.name)),i),o&&n.metricAxisCount++)},Yz=ne(((e,t)=>{const{baseline:n,baselineOffset:r,opposingScaleType:i,position:a,scaleField:o,scaleName:s,scaleType:l,usermeta:u}=t;(e=>Boolean(e&&["band","linear","point","time","utc"].includes(e)))(l)&&e.push(...Tz(t,s));const c=e.find((e=>{var t;return null===(t=e.name)||void 0===t?void 0:t.includes("Trellis")})),d=Boolean(c);n&&"linear"===i&&function(e,t,n,r){var i,a;const o=((e,t)=>{const n=dz(t)?"y":"x",r={x:{x:{value:0},x2:{signal:"width"},y:{scale:"yLinear",value:e}},y:{x:{scale:"xLinear",value:e},y:{value:0},y2:{signal:"height"}}};return{name:`${n}Baseline`,description:`${n}Baseline`,type:"rule",interactive:!1,encode:{update:Object.assign({},r[n])}}})(t,n);r&&"marks"in r?0===t?null===(i=r.marks)||void 0===i||i.push(o):null===(a=r.marks)||void 0===a||a.unshift(o):0===t?e.push(o):e.unshift(o)}(e,r,a,c),d&&function(e,t,n,r,i){var a,o,s,l;const u=(null===(a=t.name)||void 0===a?void 0:a.startsWith("x"))?"horizontal":"vertical",c="bottom"===e.position||"top"===e.position?"horizontal":"vertical",d=e.hideDefaultLabels||u!==c;let f=e.scaleType;if(u===c){const r=iz(null!==(o=t.scales)&&void 0!==o?o:[],e.position);n=r.name,f=null!==(s=r.type)&&void 0!==s?s:"linear",i=KH(r)}else e.title=void 0;let h=Gz([],Object.assign(Object.assign({},e),{hideDefaultLabels:d,scaleName:n,scaleField:i,scaleType:f,dualMetricAxis:!1,usermeta:r,divergingContext:void 0}));h=((e,t)=>{const{facetName:n,facetGroupBy:r,trellisScaleName:i}=(e=>{var t;const n=`${(null!==(t=e.name)&&void 0!==t?t:"x")[0]}TrellisBand`,r=e.from;return{facetGroupBy:r.facet.groupby,facetName:r.facet.name,trellisScaleName:n}})(t);return e.map((e=>e.title?Object.assign(Object.assign({},e),{encode:Object.assign(Object.assign({},e.encode),{title:{update:{opacity:[{test:`info(domain('${i}')[0] === data('${n}')[0].${r})`,value:1},{value:0}]}}})}):e))})(h,t),t.axes=[...null!==(l=t.axes)&&void 0!==l?l:[],...h]}(t,c,s,u,o);for(const n of GH(t))PH(e,n,s);if(Nz(l)&&o){const n=((e,t,n)=>{const{position:r,opposingScaleType:i,opposingScaleName:a,divergingContext:o}=e,s=o&&"linear"===i&&a?{zeroLine:`scale('${a}', 0)`,isNegativeBarExpr:`datum['${o.metric}'] < 0`}:void 0,l=[],u=kz(e);for(const{name:e,urlKey:i}of u)l.push({type:"image",name:e,from:{data:re.FILTERED_TABLE},encode:{enter:{url:{field:i}},update:Object.assign(Object.assign({},Bz(t,n,r,e,s)),{width:{signal:`${e}ThumbnailSize`},height:{signal:`${e}ThumbnailSize`},opacity:[{test:`${e}ThumbnailSize < ${re.MIN_THUMBNAIL_SIZE}`,value:0},{value:1}]})}});return l})(t,s,o);e.push(...n)}}));const Kz=(e,t)=>e.map((e=>Jz(e,t))),Jz=(e,t)=>{var{UNSAFE_highlightBy:n="item"}=e,r=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["UNSAFE_highlightBy"]);return Object.assign({UNSAFE_highlightBy:n,markName:t},r)},Xz=(e,t,n=!0)=>{const r=Kz(t.chartPopovers,t.name);for(const{UNSAFE_highlightBy:i,markName:a}of r){const r=ue(e);r.transform||(r.transform=[]),"dimension"===i&&"donut"!==t.markType?r.transform.push(Zz([t.dimension],a)):"series"===i?r.transform.push(Zz([re.SERIES_ID],a)):Array.isArray(i)?r.transform.push(Zz(i,a)):r.transform.push(Zz([t.idKey],a)),n&&e.push(Qz(a))}},Zz=(e,t)=>({type:"formula",as:`${t}_selectedGroupId`,expr:e.map((e=>`datum.${e}`)).join(' + " | " + ')}),Qz=e=>({name:`${e}_selectedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`${re.SELECTED_GROUP} === datum.${e}_selectedGroupId`}]}),eP=({trellisOrientation:e,name:t,trellisPadding:n})=>{const r="horizontal"===e?"x":"y";return{facetName:`${t}_trellis`,scaleName:`${r}TrellisBand`,markName:`${r}TrellisGroup`,dimensionSizeSignal:"x"===r?"width":"height",axis:r,paddingInner:n}},tP=e=>Boolean(e.trellis),nP=({color:e,lineType:t,opacity:n})=>[e,t,n].some((e=>Array.isArray(e)&&2===e.length)),rP=e=>{const{dualMetricAxis:t,type:n}=e;return Boolean(t&&!tP(e)&&"dodged"===n&&!nP(e))},iP=e=>{const{dimension:t,groupedPadding:n,orientation:r,name:i,paddingRatio:a}=e,{dimensionScaleKey:o,dimensionAxis:s,dimensionSizeSignal:l}=TP(r);return{name:`${i}_group`,type:"group",from:{facet:{data:tP(e)?eP(e).facetName:re.FILTERED_TABLE,name:`${i}_facet`,groupby:t}},encode:{enter:{[s]:{scale:o,field:t}}},signals:[{name:l,update:`bandwidth("${o}")`}],scales:[{name:`${i}_position`,type:"band",range:l,domain:{data:re.FILTERED_TABLE,field:`${i}_dodgeGroup`},paddingInner:null!=n?n:a}]}},aP=e=>{const{dimensionAxis:t,dimensionSizeSignal:n}=TP(e.orientation),r=`${e.name}_position`;return{[t]:{scale:r,field:`${e.name}_dodgeGroup`},[n]:{scale:r,band:1}}},oP=e=>{const{metric:t,type:n}=e,{metricAxis:r,metricScaleKey:i}=TP(e.orientation,e.metricAxis),a=`${r}2`;return"stacked"===n||nP(e)?sP(e):rP(e)?{[r]:[{test:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`,scale:`${i}Secondary`,value:0},{scale:`${i}Primary`,value:0}],[a]:[{test:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`,scale:`${i}Secondary`,field:t},{scale:`${i}Primary`,field:t}]}:{[r]:{scale:i,value:0},[a]:{scale:i,field:t}}},sP=e=>{const{metric:t,orientation:n}=e,{metricAxis:r,metricScaleKey:i}=TP(e.orientation,e.metricAxis),a=`${r}2`,o=`datum.${t}0`,s=`datum.${t}1`;return"vertical"===n?{[r]:[{test:`${o} === 0`,signal:`scale('${i}', ${o})`},{test:`${s} > 0`,signal:`max(scale('${i}', ${o}) - 1.5, scale('${i}', ${s}))`},{signal:`min(scale('${i}', ${o}) + 1.5, scale('${i}', ${s}))`}],[a]:{scale:i,field:`${t}1`}}:{[r]:[{test:`${o} === 0`,signal:`scale('${i}', ${o})`},{test:`${s} > 0`,signal:`min(scale('${i}', ${o}) + 1.5, scale('${i}', ${s}))`},{signal:`max(scale('${i}', ${o}) - 1.5, scale('${i}', ${s}))`}],[a]:{scale:i,field:`${t}1`}}},lP=e=>{const{type:t,metric:n,hasSquareCorners:r}=e,i=r?0:4;let a;return a="dodged"!==t||nP(e)?uP(e):{cornerRadiusTopLeft:[{test:`datum.${n} > 0`,value:i},{value:0}],cornerRadiusTopRight:[{test:`datum.${n} > 0`,value:i},{value:0}],cornerRadiusBottomLeft:[{test:`datum.${n} < 0`,value:i},{value:0}],cornerRadiusBottomRight:[{test:`datum.${n} < 0`,value:i},{value:0}]},cP(a,e)},uP=({name:e,metric:t,hasSquareCorners:n})=>{const r=`datum.${t}1 > 0 && data('${e}_stacks')[indexof(pluck(data('${e}_stacks'), '${re.STACK_ID}'), datum.${re.STACK_ID})].max_${t}1 === datum.${t}1`,i=`datum.${t}1 < 0 && data('${e}_stacks')[indexof(pluck(data('${e}_stacks'), '${re.STACK_ID}'), datum.${re.STACK_ID})].min_${t}1 === datum.${t}1`,a=n?0:4;return{cornerRadiusTopLeft:[{test:r,value:a},{value:0}],cornerRadiusTopRight:[{test:r,value:a},{value:0}],cornerRadiusBottomLeft:[{test:i,value:a},{value:0}],cornerRadiusBottomRight:[{test:i,value:a},{value:0}]}},cP=(e,{orientation:t})=>"vertical"===t?e:{cornerRadiusTopLeft:e.cornerRadiusBottomLeft,cornerRadiusTopRight:e.cornerRadiusTopLeft,cornerRadiusBottomLeft:e.cornerRadiusBottomRight,cornerRadiusBottomRight:e.cornerRadiusTopRight},dP=e=>Object.assign(Object.assign({},oP(e)),lP(e)),fP=e=>{const{colorOverride:t,color:n,colorScheme:r}=e;return t?{signal:`datum[${JSON.stringify(t)}]`}:Bj(n,r)},hP=e=>({fill:fP(e),fillOpacity:zj(e.opacity),tooltip:Rj(e.chartInspects,e.name)}),pP=e=>({cursor:Cj(e.chartPopovers,e.hasOnClick),opacity:eH(e),stroke:mP(e),strokeDash:EP(e),strokeWidth:SP(e)}),mP=e=>{const{name:t,chartPopovers:n,colorScheme:r,idKey:i}=e,a=fP(e);return Nj({chartPopovers:n})?[{test:`(${re.SELECTED_ITEM} && ${re.SELECTED_ITEM} === datum.${i}) || (${re.SELECTED_GROUP} && ${re.SELECTED_GROUP} === datum.${t}_selectedGroupId)`,value:(0,ie.getS2ColorValue)("static-blue",r)},a]:[a]},gP=e=>{const{chartPopovers:t,name:n}=e,r=Kz(t,n);return r.length>0&&!r.some((({UNSAFE_highlightBy:e})=>"dimension"===e))},yP=e=>{const t=lP(e),n=e=>e.map((e=>Object.assign(Object.assign({},e),{value:e.value+2})));return{cornerRadiusTopLeft:n(t.cornerRadiusTopLeft),cornerRadiusTopRight:n(t.cornerRadiusTopRight),cornerRadiusBottomLeft:n(t.cornerRadiusBottomLeft),cornerRadiusBottomRight:n(t.cornerRadiusBottomRight)}},_P=e=>{const t=e=>{if("signal"in e)return e.signal;if("scale"in e){const t=e.scale;if("field"in e)return`scale('${t}', datum.${e.field})`;if("band"in e)return`bandwidth('${t}') * ${e.band}`;if("value"in e)return`scale('${t}', ${JSON.stringify(e.value)})`}else if("value"in e)return`${e.value}`;throw new Error(`getBarItemSelectionRing: unsupported numeric production rule ${JSON.stringify(e)}`)};if(!Array.isArray(e))return t(e);const n=e,r=n.at(-1);if(void 0===r)throw new Error("getBarItemSelectionRing: empty production rule array");let i=t(r);for(let e=n.length-2;e>=0;e--)i=`${n[e].test} ? ${t(n[e])} : ${i}`;return i},vP=(e,t)=>{const{idKey:n,orientation:r}=e,{metricAxis:i,dimensionAxis:a,dimensionSizeSignal:o}=TP(r),s=`${i}2`,l=oP(e),u=_P(l[i]),c=_P(l[s]);return{[i]:{signal:`min(${u}, ${c}) - 3`},[s]:{signal:`max(${u}, ${c}) + 3`},[a]:{signal:`${_P(t[a])} - 3`},[o]:{signal:`${_P(t[o])} + 6`},opacity:[{test:`isValid(${re.SELECTED_ITEM}) && ${re.SELECTED_ITEM} === datum.${n}`,value:1},{value:0}]}},bP=(e,t,n)=>({name:`${e.name}_itemSelectionBackdrop`,type:"rect",from:{data:t},interactive:!1,encode:{enter:Object.assign(Object.assign({},yP(e)),{fill:{signal:re.BACKGROUND_COLOR}}),update:vP(e,n)}}),xP=(e,t,n)=>({name:`${e.name}_itemSelectionRing`,type:"rect",from:{data:t},interactive:!1,encode:{enter:Object.assign(Object.assign({},yP(e)),{fill:{value:"transparent"},stroke:{value:(0,ie.getS2ColorValue)("blue-800",e.colorScheme)},strokeWidth:{value:2}}),update:vP(e,n)}}),EP=({chartPopovers:e,idKey:t,lineType:n})=>{const r=Uj(n);return Nj({chartPopovers:e})?[{test:`isValid(${re.SELECTED_ITEM}) && ${re.SELECTED_ITEM} === datum.${t}`,value:[]},r]:[r]},SP=({chartPopovers:e,idKey:t,lineWidth:n,name:r})=>{const i=rj(n),a={value:i},o=Kz(e,r),s=o.some((({UNSAFE_highlightBy:e})=>"dimension"===e));return 0===o.length||s?[a]:[{test:`(isValid(${re.SELECTED_ITEM}) && ${re.SELECTED_ITEM} === datum.${t}) || (isValid(${re.SELECTED_GROUP}) && ${re.SELECTED_GROUP} === datum.${r}_selectedGroupId)`,value:Math.max(i,2)},a]},AP=(e,t)=>Dj(e,t),$P=e=>"stacked"===e.type||nP(e)?[`${e.metric}1`]:[e.metric],TP=(e,t)=>"vertical"===e?{metricAxis:"y",dimensionAxis:"x",metricScaleKey:t||"yLinear",dimensionScaleKey:"xBand",dimensionSizeSignal:"width",metricSizeSignal:"height"}:{metricAxis:"x",dimensionAxis:"y",metricScaleKey:t||"xLinear",dimensionScaleKey:"yBand",dimensionSizeSignal:"height",metricSizeSignal:"width"},OP=e=>{const{metricAxis:t,orientation:n}=e,{metricScaleKey:r}=TP(n);return t||r},DP=(e,t)=>{var n,r;const{dimension:i,name:a}=e;return{name:`${a}_${re.DIMENSION_HOVER_AREA}`,description:`hover area for ${a} dimensions`,type:"rect",from:{data:`${a}_${"stacked"===t?"stacks":"groups"}`},interactive:!0,clip:!0,encode:{enter:{fill:{value:"transparent"},tooltip:(o=null!==(n=e.chartInspects)&&void 0!==n?n:[],o.some((({targets:e})=>null==e?void 0:e.includes("dimensionArea")))?Rj(null!==(r=e.chartInspects)&&void 0!==r?r:[],`${a}_${re.DIMENSION_HOVER_AREA}`,!1,{dimension:i}):void 0)},update:Object.assign({},MP(e))}};var o},MP=e=>{const{dimension:t,orientation:n}=e,{dimensionScaleKey:r,metricAxis:i,dimensionAxis:a,dimensionSizeSignal:o,metricSizeSignal:s}=TP(n);return{[i]:{value:0},[`${i}2`]:{signal:`${s}`},[a]:{signal:`scale('${r}', datum.${t}) - bandwidth('${r}') * paddingInner / 2 / (1 - paddingInner)`},[o]:{signal:`bandwidth('${r}') * ( 1 + paddingInner / (1 - paddingInner))`}}},wP=(e,t)=>{const{barName:n,color:r,colorOverride:i,colorScheme:a,dimension:o,format:s,index:l,metric:u,metricAxis:c,orientation:d,position:f}=e,{metricScaleKey:h,dimensionScaleKey:p}=TP(d,c),m="vertical"===d,g=i?{signal:`datum[${JSON.stringify(i)}]`}:Bj(r,a),y=Vj(),_=fj(s||",.2~f"),v=`format(datum["${u}"], "${hj(_)}")`,b={scale:p,field:o,band:.5},{metricAxisEncoding:x,verticalBaseline:E,horizontalAlign:S,seriesFill:A,isInsideTest:$}=((e,t,n,r,i,a)=>{if("middle"===e)return{metricAxisEncoding:{signal:`(scale('${r}', 0) + scale('${r}', datum['${n}'])) / 2`},verticalBaseline:{value:"middle"},horizontalAlign:{value:"center"},seriesFill:{signal:re.BACKGROUND_COLOR},isInsideTest:void 0};if("start"===e)return((e,t,n,r,i)=>{const a=`abs(scale('${n}', datum["${t}"]) - scale('${n}', 0)) > ${e?`${re.DEFAULT_FONT_SIZE+16}`:`(getLabelWidth(${i}, ${re.DIRECT_LABEL_FONT_WEIGHT}, ${re.DEFAULT_FONT_SIZE}) + 16)`}`,o=`datum["${t}"] < 0 && ${a}`,s=`datum["${t}"] < 0`,l=[{test:a,signal:re.BACKGROUND_COLOR},r];return e?{metricAxisEncoding:[{test:o,scale:n,value:0,offset:8},{test:s,scale:n,field:t,offset:6},{test:a,scale:n,value:0,offset:-8},{scale:n,field:t,offset:-6}],verticalBaseline:[{test:s,value:"top"},{value:"bottom"}],horizontalAlign:{value:"center"},seriesFill:l,isInsideTest:a}:{metricAxisEncoding:[{test:o,scale:n,value:0,offset:-8},{test:s,scale:n,field:t,offset:-8},{test:a,scale:n,value:0,offset:8},{scale:n,field:t,offset:8}],verticalBaseline:{value:"middle"},horizontalAlign:[{test:s,value:"right"},{value:"left"}],seriesFill:l,isInsideTest:a}})(t,n,r,i,a);const o="end"===e,s="end-outside"===e,l=o?-1:1,u=s?6:8,c={field:n},[d,f]=o?["bottom","top"]:["top","bottom"],[h,p]=o?["left","right"]:["right","left"];return{metricAxisEncoding:t?[Object.assign(Object.assign({test:`datum["${n}"] < 0`,scale:r},c),{offset:l*u}),Object.assign(Object.assign({scale:r},c),{offset:-l*u})]:[Object.assign(Object.assign({test:`datum["${n}"] < 0`,scale:r},c),{offset:8*-l}),Object.assign(Object.assign({scale:r},c),{offset:8*l})],verticalBaseline:[{test:`datum["${n}"] < 0`,value:d},{value:f}],horizontalAlign:[{test:`datum["${n}"] < 0`,value:h},{value:p}],seriesFill:s?i:{signal:re.BACKGROUND_COLOR},isInsideTest:void 0}})(f,m,u,h,g,v),T=m?{x:b,y:x,align:{value:"center"},baseline:E,text:{signal:v},fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT}}:{y:b,x,baseline:{value:"middle"},align:S,text:{signal:v},fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT}},O={name:`${n}DirectLabel${l}_bg`,type:"text",from:{data:re.FILTERED_TABLE},interactive:!1,encode:{enter:Object.assign(Object.assign({},T),{stroke:{signal:re.BACKGROUND_COLOR},strokeWidth:$?[{test:$,value:0},{value:re.DIRECT_LABEL_BACKGROUND_STROKE_WIDTH}]:{value:re.DIRECT_LABEL_BACKGROUND_STROKE_WIDTH},fill:{value:"transparent"}}),update:{fontSize:y}}},D={name:`${n}DirectLabel${l}`,type:"text",from:{data:re.FILTERED_TABLE},interactive:!1,encode:{enter:Object.assign(Object.assign({},T),{fill:A}),update:{opacity:eH(t),fontSize:y}}};return"end-outside"===f||Boolean($)?[O,D]:[D]},IP=(e,t,n)=>{var r,i;return{barName:n.name,color:n.color,colorOverride:n.colorOverride,colorScheme:n.colorScheme,dimension:n.dimension,format:null!==(r=e.format)&&void 0!==r?r:"",index:t,metric:n.metric,metricAxis:n.metricAxis,orientation:n.orientation,position:null!==(i=e.position)&&void 0!==i?i:"end-outside"}};const CP=e=>e.trendlines.map(((t,n)=>RP(e,t,n))),RP=(e,t,n)=>{var{chartInspects:r=[],color:i,dimensionExtent:a,dimensionRange:o=[null,null],displayOnHover:s=!1,hidePartialWindows:l=!1,highlightRawPoint:u=!1,lineType:c="dashed",lineWidth:d="M",method:f="linear",opacity:h=1,orientation:p="horizontal",trendlineAnnotations:m=[]}=t,g=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["chartInspects","color","dimensionExtent","dimensionRange","displayOnHover","hidePartialWindows","highlightRawPoint","lineType","lineWidth","method","opacity","orientation","trendlineAnnotations"]);const y=VP(e,p),_="time"===y&&jP(f)&&"horizontal"===p,{trendlineDimension:v,trendlineMetric:b}=NP(e.dimension,e.metric,p,_),x=i?{value:i}:kP(e.color);return Object.assign({chartInspects:r,colorScheme:e.colorScheme,displayOnHover:s,dimensionExtent:null!=a?a:o,dimensionRange:o,dimensionScaleType:y,hidePartialWindows:l,highlightRawPoint:u,isDimensionNormalized:_,lineType:c,lineWidth:d,method:f,metric:re.TRENDLINE_VALUE,name:`${e.name}Trendline${n}`,opacity:h,orientation:p,trendlineAnnotations:m,trendlineColor:x,trendlineDimension:v,trendlineMetric:b},g)},kP=e=>Array.isArray(e)?e[0]:e,LP=e=>Array.isArray(e)?e[0]:e,NP=(e,t,n,r)=>"horizontal"===n?{trendlineDimension:FP(e,r),trendlineMetric:t}:{trendlineDimension:t,trendlineMetric:e},FP=(e,t)=>t?`${e}Normalized`:e,BP=e=>["average","median"].includes(e),jP=e=>zP(e)||["exponential","logarithmic","power"].includes(e),HP=e=>e.startsWith("movingAverage-"),zP=e=>e.startsWith("polynomial-")||["linear","quadratic"].includes(e),PP=e=>{switch(e){case"linear":return 1;case"quadratic":return 2}const t=parseInt(e.split("-")[1]);if(t<1)throw new Error(`Invalid polynomial order: ${t}, order must be an interger greater than 0`);return t},UP=(e,t,n)=>{const r=`${t}_extent`,i=e.map(((e,t)=>{switch(e){case null:return`${r}[${t}]`;case"domain":return`${r}[${t}] ${0===t?"-":"+"} (${r}[1] - ${r}[0]) * 0.3`;default:return n?`(${e} - data('${re.FILTERED_TABLE}')[0].datetimeMin + ${re.MS_PER_DAY}) / ${re.MS_PER_DAY}`:e}})).join(", ");return{signal:`[${i}]`}},VP=(e,t)=>"vertical"===t?"linear":"scaleType"in e?e.scaleType:e.dimensionScaleType,WP=(e,{method:t,trendlineDimension:n,trendlineMetric:r},i)=>{const{color:a,lineType:o}=e,{facets:s}=ej({color:a,lineType:o}),l={average:"mean",median:"median"};return i?{type:"aggregate",groupby:s,ops:[l[t],"min","max"],fields:[r,n,n],as:[re.TRENDLINE_VALUE,`${n}Min`,`${n}Max`]}:{type:"joinaggregate",groupby:s,ops:[l[t]],fields:[r],as:[re.TRENDLINE_VALUE]}},GP=(e,t,n)=>{const{color:r,lineType:i}=e,{dimensionExtent:a,isDimensionNormalized:o,method:s,name:l,trendlineDimension:u,trendlineMetric:c}=t,{facets:d}=ej({color:r,lineType:i});let f,h;switch(s){case"exponential":f="exp";break;case"logarithmic":f="log";break;case"power":f="pow";break;default:h=PP(s),f="poly"}return{type:"regression",method:f,order:h,groupby:d,x:u,y:c,as:n?[u,re.TRENDLINE_VALUE]:void 0,params:!n,extent:n?UP(a,l,o):void 0}},qP=(e,{method:t,trendlineMetric:n})=>{const r=Number.parseInt(t.split("-")[1]),{color:i,lineType:a}=e,{facets:o}=ej({color:i,lineType:a});if(Number.isNaN(r)||r<1)throw new Error(`Invalid moving average frame width: ${r}, frame width must be an integer greater than 0`);return{type:"window",ops:["mean"],groupby:o,fields:[n],as:[re.TRENDLINE_VALUE],frame:[r-1,0]}},YP=e=>[{type:"joinaggregate",fields:[e],as:[`${e}Min`],ops:["min"]},{type:"formula",expr:`(datum.${e} - datum.${e}Min + ${re.MS_PER_DAY}) / ${re.MS_PER_DAY}`,as:`${e}Normalized`}],KP=(e,t)=>({type:"extent",field:e,signal:`${t}_extent`}),JP=e=>({type:"filter",expr:`isValid(datum["${e}"])`}),XP=(e,t)=>{const n=[];return null!==t[0]&&n.push(`datum.${e} >= ${t[0]}`),null!==t[1]&&n.push(`datum.${e} <= ${t[1]}`),n.length?[{type:"filter",expr:n.join(" && ")}]:[]},ZP=(e,t)=>{let n="";if(zP(t)){const r=PP(t);n=["datum.coef[0]",...new Array(r).fill(0).map(((t,n)=>`datum.coef[${n+1}] * pow(datum.${e}, ${n+1})`))].join(" + ")}else"exponential"===t?n=`datum.coef[0] + exp(datum.coef[1] * datum.${e})`:"logarithmic"===t?n=`datum.coef[0] + datum.coef[1] * log(datum.${e})`:"power"===t&&(n=`datum.coef[0] * pow(datum.${e}, datum.coef[1])`);return n?[{type:"formula",expr:n,as:re.TRENDLINE_VALUE}]:[]},QP=({color:e,lineType:t},{name:n})=>{const{facets:r}=ej({color:e,lineType:t});return{type:"lookup",from:`${n}_params`,key:"keys",fields:r,values:["coef"]}},eU=(e,t)=>{var n;e.push(...tU(t));const r=le(e);r.transform=sU(null!==(n=r.transform)&&void 0!==n?n:[],t)},tU=e=>{const t=[],{color:n,idKey:r,lineType:i,name:a,interactiveMarkName:o}=e,s=CP(e),l={name:`${a}_allTrendlineData`,source:[]};for(const r of s){const{displayOnHover:a,method:s,name:u}=r,{facets:c}=ej({color:n,lineType:i});jP(s)?t.push(...rU(e,r,c)):BP(s)?t.push(...nU(e,r,c)):HP(s)&&t.push(iU(e,r)),a&&t.push(lU(u,s,o)),Lj(r)&&l.source.push(`${u}_data`)}return s.some((e=>Lj(e)))&&t.push(l,aU(a,r)),t},nU=(e,t,n)=>{const r=[],{dimensionRange:i,name:a,trendlineDimension:o,trendlineMetric:s}=t,l=XP(o,i);return r.push({name:`${a}_highResolutionData`,source:re.FILTERED_TABLE,transform:[...uU(t.excludeDataKeys),JP(s),...l,...oU(e,t,!0),...ce(n)]}),Lj(t)&&r.push({name:`${a}_data`,source:re.FILTERED_TABLE,transform:[JP(s),...l,...oU(e,t,!1)]}),r},rU=(e,t,n)=>{const r=[],{dimension:i,metric:a}=e,{dimensionRange:o,method:s,name:l,orientation:u,trendlineDimension:c,trendlineMetric:d}=t,{trendlineDimension:f}=NP(i,a,u,!1),h=XP(f,o);return r.push({name:`${l}_highResolutionData`,source:re.FILTERED_TABLE,transform:[...uU(t.excludeDataKeys),JP(d),...h,...oU(e,t,!0),JP(re.TRENDLINE_VALUE),...ce(n)]}),Lj(t)&&r.push({name:`${l}_params`,source:re.FILTERED_TABLE,transform:[JP(d),...h,...oU(e,t,!1)]},{name:`${l}_data`,source:re.FILTERED_TABLE,transform:[...h,QP(e,t),...ZP(c,s)]}),r},iU=(e,t)=>({name:`${t.name}_data`,source:re.FILTERED_TABLE,transform:[...uU(t.excludeDataKeys),...oU(e,t,!1),JP(re.TRENDLINE_VALUE),...XP(e.dimension,t.dimensionRange)]}),aU=(e,t)=>({name:`${e}Trendline_highlightedData`,source:`${e}_allTrendlineData`,transform:[{type:"filter",expr:`${re.SELECTED_ITEM} === datum.${t} || !isValid(${re.SELECTED_ITEM}) && (isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) && indexof(${re.CONTROLLED_HIGHLIGHTED_ITEM}, datum.${t}) || isValid(${e}Trendline_${re.HOVERED_ITEM}) && ${e}Trendline_${re.HOVERED_ITEM}.${t} === datum.${t})`}]}),oU=(e,t,n)=>{const{method:r,trendlineDimension:i}=t;if(BP(r))return[WP(e,t,n)];if(jP(r))return[GP(e,t,n)];if(HP(r)){const n=Number.parseInt(r.split("-")[1]),o=[(a=i,{type:"collect",sort:{field:a}}),qP(e,t)];return t.hidePartialWindows&&o.push(...((e,t)=>{const{color:n,lineType:r}=e,{facets:i}=ej({color:n,lineType:r});return[{type:"window",groupby:i,ops:["row_number"],as:["_maRowNumber"]},{type:"filter",expr:"datum._maRowNumber > "+(t-1)}]})(e,n)),o}var a;return[]},sU=ne(((e,t)=>{const{dimension:n,metric:r}=t,i=CP(t);for(const{isDimensionNormalized:t,method:a,name:o,orientation:s,trendlineDimension:l}of i)if(jP(a)){const{trendlineDimension:i}=NP(n,r,s,!1);t&&(e.some((e=>"as"in e&&e.as===`${i}Normalized`))||e.push(...YP(i))),e.push(KP(l,o))}})),lU=(e,t,n)=>{const r=HP(t)?`${e}_data`:`${e}_highResolutionData`,i=`${null!=n?n:e}_${re.HOVERED_ITEM}`;return{name:`${e}_highlightedData`,source:r,transform:[{type:"filter",expr:`datum.${re.SERIES_ID} === ${re.CONTROLLED_HIGHLIGHTED_SERIES} || datum.${re.SERIES_ID} === ${re.SELECTED_SERIES} || isValid(${i}) && ${i}.${re.SERIES_ID} === datum.${re.SERIES_ID}`}]}},uU=e=>{var t;return null!==(t=null==e?void 0:e.map((e=>({type:"filter",expr:`!datum.${e}`}))))&&void 0!==t?t:[]},cU=e=>`clamp(${e} / ${re.HOVER_NEUTRAL_TARGET}, 0, 1)`,dU=(e,t)=>{if(e.length)return t},fU=e=>Boolean(e.dualMetricAxis),hU=(e,t,n)=>"time"===e?re.DRAW_IN_TIME_MS_FIELD:"point"===e?`${n}_${re.DRAW_IN_POINT_INDEX_FIELD}`:t,pU=ne(((e,t)=>{((e,t)=>e.some((e=>"as"in e&&e.as===t)))(e,re.DRAW_IN_TIME_MS_FIELD)||e.push({type:"formula",expr:`toNumber(datum.${t})`,as:re.DRAW_IN_TIME_MS_FIELD})})),mU=(e,t)=>{var n;const{dimension:r,metric:i,name:a,scaleType:o}=t,s=hU(o,r,a),l="point"===o?[s,r,i]:[s,i],u="point"===o?[`${a}_${re.DRAW_IN_NEXT_DIM_FIELD}`,`${a}_${re.DRAW_IN_NEXT_CATEGORY_FIELD}`,`${a}_${re.DRAW_IN_NEXT_METRIC_FIELD}`]:[`${a}_${re.DRAW_IN_NEXT_DIM_FIELD}`,`${a}_${re.DRAW_IN_NEXT_METRIC_FIELD}`];e.transform=null!==(n=e.transform)&&void 0!==n?n:[];const c=e.transform.some((e=>"window"===e.type&&Array.isArray(e.as)&&e.as.length===u.length&&e.as.every(((e,t)=>e===u[t]))));c||e.transform.push({type:"window",sort:{field:s,order:"ascending"},groupby:[re.SERIES_ID],ops:l.map((()=>"lead")),fields:l,as:u})},gU=e=>{const{dimension:t,name:n,scaleType:r}=e,i=hU(r,t,n),a=(({name:e,scaleType:t})=>"point"===t?`${e}_${re.DRAW_IN_POINT_INDEX_DATA}`:re.FILTERED_TABLE)(e),o=`${n}_${re.DRAW_IN_ANIM_CUTOFF}`,s=`${n}_${re.DRAW_IN_NEXT_DIM_FIELD}`,l={name:`${n}_${re.DRAW_IN_PREV_DATA}`,source:a,transform:[{type:"filter",expr:`datum.${i} <= ${o}`}]},u={name:`${n}_${re.DRAW_IN_TIP_DATA}`,source:a,transform:[{type:"filter",expr:`datum.${i} <= ${o} && isValid(datum.${s}) && datum.${s} > ${o}`},{type:"formula",as:re.DRAW_IN_TIP_FLAG,expr:"true"}]};return[l,u,{name:`${n}_${re.DRAW_IN_LERP_DATA}`,source:[l.name,u.name]}]},yU=(e,t)=>{const n=`${e}_${re.DRAW_IN_NEXT_DIM_FIELD}`;return`clamp((${e}_${re.DRAW_IN_ANIM_CUTOFF} - datum.${t}) / (datum.${n} - datum.${t}), 0, 1)`},_U=({dimension:e,name:t,scaleType:n})=>{const r=Mj("x",n),i="time"===n?re.DEFAULT_TRANSFORMED_TIME_DIMENSION:e,a=hU(n,e,t),o=`scale('${r}', datum.${i})`,s=`scale('${r}', datum.${"point"===n?`${t}_${re.DRAW_IN_NEXT_CATEGORY_FIELD}`:`${t}_${re.DRAW_IN_NEXT_DIM_FIELD}`})`,l=yU(t,a);return{signal:`isValid(datum.${re.DRAW_IN_TIP_FLAG}) ? lerp([${o}, ${s}], ${l}) : ${o}`}},vU=e=>{const{dimension:t,metric:n,metricAxis:r,name:i,scaleType:a}=e,o=hU(a,t,i),s=yU(i,o),l=e=>{const t=`scale('${e}', datum.${n})`,r=`scale('${e}', datum.${i}_${re.DRAW_IN_NEXT_METRIC_FIELD})`;return`isValid(datum.${re.DRAW_IN_TIP_FLAG}) ? lerp([${t}, ${r}], ${s}) : ${t}`};return fU(e)?((e,t)=>{const{primaryScale:n,secondaryScale:r}=YH(e);return[{test:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`,signal:t(r)},{signal:t(n)}]})(r||"yLinear",l):{signal:l(r||"yLinear")}},bU=re.CHART_SIZE_LABEL_GAP,xU=(e,t,n)=>{const r=n?`_${n}_`:"_",i=`${r}metricRank`,a=`${r}scaledY`,o=`${r}adjustedY`;return[{type:"joinaggregate",fields:[t],ops:["count"],as:[`${r}seriesCount`]},{type:"window",sort:{field:[t],order:["descending"]},ops:["rank"],as:[i]},{type:"formula",as:a,expr:`scale('${e}', datum["${t}"])`},{type:"formula",as:o,expr:`datum.${a} - datum.${i} * ${bU}`},{type:"window",sort:{field:[i],order:["ascending"]},frame:[null,0],ops:["max"],fields:[o],as:[`${r}cumMaxAdjusted`]}]},EU={fill:{value:"transparent"},stroke:{signal:re.BACKGROUND_COLOR},strokeWidth:{value:re.DIRECT_LABEL_BACKGROUND_STROKE_WIDTH},fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT},fontSize:{signal:re.CHART_SIZE_FONT_SIZE}},SU=(e,t)=>null!=t?t:{value:(0,ie.getS2ColorValue)("gray-900",e)},AU=({alternateSegmentKey:e,forecasts:t,metric:n,name:r})=>!e&&t.length>0?`${r}_effectiveValue`:n,$U=(e,t,n)=>{var r;return{color:n.color,colorScheme:n.colorScheme,dimension:n.dimension,index:t,label:null!==(r=e.label)&&void 0!==r?r:"Forecast",lineName:n.name,metric:e.metric,metricAxis:n.metricAxis,scaleType:n.scaleType,start:e.start}},TU=e=>{const{index:t,lineName:n,scaleType:r,start:i}=e;return{name:`${n}_forecast${t}_boundary`,description:`${n}_forecast${t}_boundary`,type:"rule",interactive:!1,encode:{enter:{y:{value:0},y2:{signal:"height"},stroke:{value:"#909090"},strokeWidth:{value:1}},update:{x:{signal:`scale('${Mj("x",r)}', ${JSON.stringify(i)})`}}}}},OU=e=>{const{index:t,label:n,lineName:r,scaleType:i,start:a}=e,o=`scale('${Mj("x",i)}', ${JSON.stringify(a)})`,s=`${o} + 8`,l=[{test:`width - ${o} < 80`,value:0},{value:1}],u={text:{value:n},fontSize:{value:14},baseline:{value:"top"}};return[{name:`${r}_forecast${t}_label_bg`,description:`${r}_forecast${t}_label_bg`,type:"text",interactive:!1,encode:{enter:Object.assign(Object.assign({},u),{stroke:{signal:re.BACKGROUND_COLOR},strokeWidth:{value:2},fill:{value:"transparent"}}),update:{x:{signal:s},y:{value:4},opacity:l}}},{name:`${r}_forecast${t}_label`,description:`${r}_forecast${t}_label`,type:"text",interactive:!1,encode:{enter:Object.assign(Object.assign({},u),{fill:{value:"#505050"}}),update:{x:{signal:s},y:{value:4},opacity:l}}}]},DU=(e,t)=>`indexof(${Array.isArray(e)?JSON.stringify(e):`slice(domain('color'), 0, ${e})`}, ${t}.${re.SERIES_ID}) < 0`,MU=(e,t,n,r,i)=>({name:`${e}_staticPointData`,source:n,transform:[{type:"filter",expr:r&&i?"datum === data('table')[data('table').length - 1]":`datum.${t} === true`}]}),wU=({interactiveMarkName:e,popoverMarkName:t,comboSiblingNames:n,isHighlightedByGroup:r})=>{const i=[];if(e){const t=`length(data('${e}_highlightedData')) ? (indexof(pluck(data('${e}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? 1 : 0) : null`,n=`isValid(${e}_${re.HOVERED_ITEM}) ? (${e}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : 0) : null`,a=r?t:n;i.push({as:"hoveredMatch",expr:a})}const a=`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}')) ? (indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1 ? 1 : 0) : null`,o=`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES}) ? (${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? 1 : 0) : null`;if(i.push({as:"controlledTableMatch",expr:a},{as:"controlledSeriesMatch",expr:o}),t){const e=`isValid(${re.SELECTED_SERIES}) ? (${re.SELECTED_SERIES} === datum.${re.SERIES_ID} ? 1 : 0) : null`;i.push({as:"popoverMatch",expr:e})}if(null==n?void 0:n.length){const e=`(${n.map((e=>`isValid(${e}_${re.HOVERED_ITEM})`)).join(" || ")}) ? 1 : 0`;i.push({as:"comboSiblingMatch",expr:e})}return i},IU=e=>void 0===e?{signal:re.CHART_SIZE_POINT_SIZE}:{value:e},CU=e=>{const{name:t,interactiveMarkName:n,isHoverAnimate:r,isHighlightedByGroup:i}=e;if(r)return WU(t);const a=[];return n&&(i?a.push({test:`length(data('${n}_highlightedData'))`,signal:`indexof(pluck(data('${n}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? 1 : ${re.FADE_FACTOR}`}):a.push({test:`isValid(${n}_${re.HOVERED_ITEM})`,signal:`${n}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`})),a.push(re.DEFAULT_OPACITY_RULE),a},RU=(e,t=!0)=>{const{color:n,colorScheme:r,dimension:i,metric:a,name:o,pointSize:s,scaleType:l}=e;return{name:`${o}_point_${t?"highlight":"select"}`,description:`${o}_point_${t?"highlight":"select"}`,type:"symbol",from:{data:`${o}${t?"_highlightedData":"_selectedData"}`},interactive:!1,encode:{enter:{size:IU(s),fill:{signal:re.BACKGROUND_COLOR},stroke:Bj(n,r),strokeWidth:{signal:re.CHART_SIZE_HOVER_STROKE_WIDTH},y:FU(e,a)},update:{x:Wj(l,i)}}}},kU=e=>RU(e,!0),LU=e=>RU(e,!1),NU=(e,t)=>{const{color:n,colorScheme:r,dimension:i,name:a,scaleType:o}=e;return{name:`${a}_secondaryPoint`,description:`${a}_secondaryPoint`,type:"symbol",from:{data:`${a}_highlightedData`},interactive:!1,encode:{enter:{y:FU(e,t),fill:{signal:re.BACKGROUND_COLOR},stroke:Bj(n,r)},update:{x:Wj(o,i)}}}},FU=(e,t)=>{const{metricAxis:n}=e;if(fU(e)){const e=YH(n||"yLinear");return[{test:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`,scale:e.secondaryScale,field:t},{scale:e.primaryScale,field:t}]}return[{scale:n||"yLinear",field:t}]},BU=(e,t,n,r)=>{const i=Bj(n,r);if(!e)return i;const a=(0,ie.getS2ColorValue)(t||"gray-400",r);return[{test:DU(e,"datum"),value:a},i]},jU=(e,t)=>{const{dimension:n,metric:r,name:i,scaleType:a,interpolate:o}=e;return{name:`${i}_gradient`,description:`${i}_gradient`,type:"area",from:{data:t},interactive:!1,encode:{enter:Object.assign({y:FU(e,r),y2:{signal:"height"},defined:{signal:`isValid(datum["${r}"])`}},HU(e)),update:Object.assign({x:Wj(a,n),opacity:[{test:`length(domain('${re.COLOR_SCALE}')) > 1 || length(domain('${re.LINE_TYPE_SCALE}')) > 1 || length(domain('${re.OPACITY_SCALE}')) > 1`,value:0},...[GU(e)].flat()]},o?{interpolate:{value:o}}:{})}}},HU=({color:e,colorScheme:t,name:n,opacity:r,alternateSegmentKey:i})=>({fill:{signal:`{gradient: 'linear', stops: [{offset: 0, color: ${jj(e,t)}}, {offset: 1, color: 'transparent'}], x1: 0, y1: 0, x2: 0, y2: 1}`},fillOpacity:zU(n,r,i)}),zU=(e,t,n)=>{if(!n)return PU(t);const r="string"==typeof t?`scale('${re.OPACITY_SCALE}', datum.${t}) * 0.2`:String(.2*t.value);return{signal:`datum.${e}_alternateFlag ? ${"string"==typeof t?`scale('${re.OPACITY_SCALE}', datum.${t}) * 0.08000000000000002`:String(.08000000000000002*t.value)} : ${r}`}},PU=e=>"string"==typeof e?{signal:`scale('${re.OPACITY_SCALE}', datum.${e}) * 0.2`}:{value:.2*e.value},UU=(e,t,n)=>{var r;if(n)return{signal:`datum.${e}_alternateFlag ? ${JSON.stringify(nj(n))} : ${"string"==typeof(r=t)?`scale('${re.LINE_TYPE_SCALE}', datum['${r}'])`:JSON.stringify(nj(r.value))}`}},VU=(e,t)=>{const{alternateSegmentKey:n,alternateSegmentLineType:r,chartPopovers:i,color:a,colorScheme:o,dimension:s,otherSeriesColor:l,lineCap:u="round",lineType:c,metric:d,name:f,opacity:h,scaleType:p,primarySeries:m,interpolate:g,isDrawInAnimate:y}=e,_=Kz(null!=i?i:[],f).some((({UNSAFE_highlightBy:e})=>"dimension"===e));return{name:f,description:f,type:"line",from:{data:t},interactive:!1,encode:{enter:Object.assign(Object.assign({},y?{}:{y:FU(e,d)}),{stroke:BU(m,l,a,o),strokeCap:{value:u},strokeDash:n?UU(f,c,r):Uj(c),strokeOpacity:zj(h)}),update:Object.assign(Object.assign(Object.assign(Object.assign({x:y?_U(e):Wj(p,s)},y?{y:vU(e)}:{}),_?{}:{opacity:GU(e)}),g?{interpolate:{value:g}}:{}),{strokeWidth:YU(e)})}}},WU=e=>{const t=cU(((e,t=re.SERIES_ID)=>{const n=`data('${e}_${re.HOVER_FRACTION_DATA}')`;return`(${n}[indexof(pluck(${n}, '${t}'), datum.${t})] || {fraction: ${re.HOVER_NEUTRAL_TARGET}}).fraction`})(e));return{signal:`${re.FADE_FACTOR} + (1 - ${re.FADE_FACTOR}) * ${t}`}},GU=e=>{const{displayOnHover:t,isHoverAnimate:n,name:r}=e;return t?[re.DEFAULT_OPACITY_RULE]:n?WU(r):qU(e)},qU=({comboSiblingNames:e,interactiveMarkName:t,popoverMarkName:n,isHighlightedByGroup:r,highlightedItem:i})=>{if(!t&&void 0===i)return[re.DEFAULT_OPACITY_RULE];const a=[];if(t&&(r?a.push({test:`length(data('${t}_highlightedData'))`,signal:`indexof(pluck(data('${t}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? 1 : ${re.FADE_FACTOR}`}):a.push({test:`isValid(${t}_${re.HOVERED_ITEM})`,signal:`${t}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`})),a.push({test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'))`,signal:`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1 ? 1 : ${re.FADE_FACTOR}`},{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}),n&&a.push({test:`isValid(${re.SELECTED_SERIES})`,signal:`${re.SELECTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}),null==e?void 0:e.length){const t=e.map((e=>`isValid(${e}_${re.HOVERED_ITEM})`)).join(" || ");a.push({test:t,value:re.FADE_FACTOR})}return a.push(re.DEFAULT_OPACITY_RULE),a},YU=({displayOnHover:e,comboSiblingNames:t,interactiveMarkName:n,popoverMarkName:r,isHighlightedByGroup:i,highlightedItem:a})=>{if((!n||e)&&void 0===a)return[re.DEFAULT_STROKE_WIDTH_RULE];const o=[];if(n&&(i?o.push({test:`length(data('${n}_highlightedData'))`,signal:`indexof(pluck(data('${n}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`}):o.push({test:`isValid(${n}_${re.HOVERED_ITEM})`,signal:`${n}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`})),o.push({test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'))`,signal:`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1 ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`},{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`}),r&&o.push({test:`isValid(${re.SELECTED_SERIES})`,signal:`${re.SELECTED_SERIES} === datum.${re.SERIES_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`}),null==t?void 0:t.length){const e=t.map((e=>`isValid(${e}_${re.HOVERED_ITEM})`)).join(" || ");o.push({test:e,signal:re.CHART_SIZE_STROKE_WIDTH})}return o.push(re.DEFAULT_STROKE_WIDTH_RULE),o},KU=(e,t,n)=>{const{dimension:r,name:i,scaleType:a,showHoverLabel:o=!0}=e;return[XU(r,i,a),...Nj(e)?[LU(e)]:[],kU(e),...n?[NU(e,n)]:[],...o?JU(e):[],...ZU(t,e)]},JU=e=>{const{color:t,colorScheme:n,dimension:r,hoverLabelKey:i,metric:a,metricAxis:o,name:s,scaleType:l}=e,u=null!=i?i:a,c=o||"yLinear",d=`scale('${Mj("x",l)}', datum['${"time"===l?re.DEFAULT_TRANSFORMED_TIME_DIMENSION:r}']) + getLabelWidth(datum["${u}"], 'bold', ${re.CHART_SIZE_FONT_SIZE}) + 9 > width`,f=`datum._hover_cumMaxAdjusted + datum._hover_metricRank * ${bU} - datum._hover_scaledY`;return((e,t,n,r,i,a,o)=>{const{x:s,y:l,additional:u={}}=i;return[{name:e,type:"text",interactive:!1,from:{data:n},encode:{enter:Object.assign({text:{signal:r}},EU),update:Object.assign({x:s,y:l},u)}},{name:t,type:"text",interactive:!1,from:{data:n},encode:{enter:{text:{signal:r},fill:SU(a,o),fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT},fontSize:{signal:re.CHART_SIZE_FONT_SIZE}},update:Object.assign({x:s,y:l},u)}}]})(`${s}_hoverLabelBg`,`${s}_hoverLabel`,`${s}_hoverLabelData`,`datum["${u}"]`,{x:Wj(l,r),y:[{scale:c,field:a,offset:{signal:f}}],additional:{dx:{signal:`${d} ? -9 : 9`},align:{signal:`${d} ? 'right' : 'left'`},baseline:{value:"middle"}}},n,{signal:jj(t,n)})},XU=(e,t,n)=>({name:`${t}_hoverRule`,description:`${t}_hoverRule`,type:"rule",from:{data:`${t}_highlightedData`},interactive:!1,encode:{enter:{y:{value:0},y2:{signal:"height"},strokeWidth:{value:1}},update:{x:Wj(n,e),opacity:{signal:`length(data('${t}_selectedData')) > 0 ? 0 : 1`}}}}),ZU=(e,t)=>{const{interactionMode:n=re.DEFAULT_INTERACTION_MODE}=t;return{nearest:QU,item:tV}[n](t,e)},QU=(e,t)=>{const{name:n}=e;return[eV(e,t),Yj(e,`${n}_pointsForVoronoi`)]},eV=(e,t)=>{const{dimension:n,metric:r,name:i,scaleType:a}=e;return{name:`${i}_pointsForVoronoi`,description:`${i}_pointsForVoronoi`,type:"symbol",from:{data:t},interactive:!1,encode:{enter:{y:FU(e,r),fill:{value:"transparent"},stroke:{value:"transparent"}},update:{x:Wj(a,n)}}}},tV=(e,t)=>{const{chartInspects:n=[],dimension:r,metric:i,name:a,scaleType:o}=e;return[Kj(n,t,r,0,a,o,FU(e,i))]},nV=e=>{const{interactiveMarkName:t,isHighlightedByGroup:n,legendHighlightSignals:r}=e;return[...t?[n?{test:`length(data('${t}_highlightedData')) && indexof(pluck(data('${t}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1`,value:1}:{test:`isValid(${t}_${re.HOVERED_ITEM}) && ${t}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID}`,value:1}]:[],{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES}) && ${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID}`,value:1},{test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}')) && indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1`,value:1},...(null!=r?r:[]).map((e=>({test:`isValid(${e}) && ${e} === datum.${re.SERIES_ID}`,value:1}))),{value:0}]},rV=(e,t)=>{const n=[],r=((e,t)=>e.trendlineAnnotations.map(((n,r)=>(({badge:e=!1,dimensionValue:t="end",numberFormat:n="",prefix:r=""},i,{colorScheme:a,dimensionExtent:o,dimensionScaleType:s,displayOnHover:l,lineWidth:u,orientation:c,trendlineColor:d,trendlineDimension:f,name:h},p)=>({badge:e,colorScheme:a,dimensionValue:t,displayOnHover:l,markName:p,name:`${h}Annotation${i}`,numberFormat:n,prefix:r,trendlineColor:d,trendlineDimension:f,trendlineDimensionExtent:o,trendlineDimensionScaleType:s,trendlineName:h,trendlineOrientation:c,trendlineWidth:rj(u)}))(n,r,e,t))))(e,t);for(const e of r)n.push({name:`${e.name}_group`,type:"group",interactive:!1,marks:[iV(e),sV(e),...uV(e)]});return n},iV=e=>{const{name:t,trendlineName:n,trendlineWidth:r,displayOnHover:i}=e;return{name:`${t}_points`,type:"symbol",from:{data:i?`${n}_highlightedData`:`${n}_highResolutionData`},interactive:!1,encode:{enter:{opacity:{value:0},size:{value:Math.pow(r,2)},x:aV(e),y:oV(e)}}}},aV=({dimensionValue:e,trendlineDimension:t,trendlineDimensionExtent:n,trendlineDimensionScaleType:r,trendlineOrientation:i})=>{const a=Mj("x",r);if("vertical"===i)return{scale:a,field:re.TRENDLINE_VALUE};switch(e){case"start":return gV(n[0],t,a,"x");case"end":return yV(n[1],t,a,"x");default:return{scale:a,value:e}}},oV=({dimensionValue:e,trendlineDimension:t,trendlineDimensionExtent:n,trendlineOrientation:r})=>{const i="yLinear";if("horizontal"===r)return{scale:i,field:re.TRENDLINE_VALUE};switch(e){case"start":return gV(n[0],t,i,"y");case"end":return yV(n[1],t,i,"y");default:return{scale:i,value:e}}},sV=e=>{const{name:t,numberFormat:n,prefix:r,trendlineName:i,markName:a}=e,o=r?`'${r} ' + `:"",s=lV(Object.assign({},e));return{name:t,type:"text",from:{data:`${t}_points`},zindex:1,interactive:!1,encode:{enter:{text:{signal:`${o}format(datum.datum.${re.TRENDLINE_VALUE}, '${n}')`},fill:s}},transform:[{type:"label",size:{signal:"[width, height]"},avoidMarks:[i,`${a}_group`],offset:[6,6,6,6,8.49,8.49,8.49,8.49],anchor:["top","bottom","right","left","top-right","top-left","bottom-right","bottom-left"]}]}},lV=({badge:e,colorScheme:t,trendlineColor:n})=>{if(!e)return;const r=cV(n),i=jj(r,t),a=[(0,ie.getS2ColorValue)("gray-50",t),(0,ie.getS2ColorValue)("gray-900",t)];return[{test:`contrast(${i}, '${a[0]}') >= 4.5`,value:a[0]},{value:a[1]}]},uV=({badge:e,colorScheme:t,name:n,trendlineColor:r})=>{if(!e)return[];const i=cV(r,2);return[{name:`${n}_badge`,description:`${n}_badge`,type:"rect",from:{data:`${n}`},interactive:!1,encode:{enter:{cornerRadius:{value:2},fill:Bj(i,t),opacity:{field:"opacity"},x:{signal:"datum.bounds.x1 - 3"},x2:{signal:"datum.bounds.x2 + 3"},y:{signal:"datum.bounds.y1 - 3"},y2:{signal:"datum.bounds.y2 + 3"}}}}]},cV=(e,t=1)=>"string"==typeof e?`${new Array(t).fill("datum.").join("")}${e}`:e,dV=e=>{const{color:t,lineType:n}=e,{facets:r}=ej({color:t,lineType:n}),i=[],a=CP(e);for(const t of a){const{displayOnHover:n,method:a,name:o}=t;if(BP(a))i.push(hV(e,t));else{const s=fV(o,a,n);i.push({name:`${o}_group`,type:"group",clip:!0,from:{facet:{name:`${o}_facet`,data:s,groupby:r}},marks:[_V(e,t)]})}i.push(...rV(t,e.name))}return a.some((e=>Fj(e)))&&i.push(xV(e,a.some((e=>e.highlightRawPoint)))),i},fV=(e,t,n)=>n?`${e}_highlightedData`:jP(t)?`${e}_highResolutionData`:`${e}_data`,hV=(e,t)=>{const{colorScheme:n}=e,{dimensionExtent:r,dimensionScaleType:i,displayOnHover:a,lineType:o,lineWidth:s,name:l,orientation:u,trendlineColor:c,trendlineDimension:d}=t;return{name:l,type:"rule",clip:!0,from:{data:a?`${l}_highlightedData`:`${l}_highResolutionData`},interactive:!1,encode:{enter:Object.assign(Object.assign({},pV(r,d,u)),{stroke:Bj(c,n),strokeDash:Uj({value:o}),strokeOpacity:zj({value:t.opacity}),strokeWidth:Hj({value:s})}),update:Object.assign(Object.assign({},mV(r,d,i,u)),{opacity:GU(EV(e,t))})}}},pV=(e,t,n)=>"horizontal"===n?{y:{scale:"yLinear",field:re.TRENDLINE_VALUE}}:{y:gV(e[0],t,"yLinear","y"),y2:yV(e[1],t,"yLinear","y")},mV=(e,t,n,r)=>{const i=Mj("x",n);return"vertical"===r?{x:{scale:i,field:re.TRENDLINE_VALUE}}:{x:gV(e[0],t,i,"x"),x2:yV(e[1],t,i,"x")}},gV=(e,t,n,r)=>{switch(e){case null:return{scale:n,field:`${t}Min`};case"domain":return"x"===r?{value:0}:{signal:"height"};default:return{scale:n,value:e}}},yV=(e,t,n,r)=>{switch(e){case null:return{scale:n,field:`${t}Max`};case"domain":return"x"===r?{signal:"width"}:{value:0};default:return{scale:n,value:e}}},_V=(e,t)=>{const{colorScheme:n}=e,{dimensionScaleType:r,isDimensionNormalized:i,lineType:a,lineWidth:o,name:s,orientation:l,trendlineColor:u,trendlineDimension:c}=t;return{name:s,type:"line",from:{data:`${s}_facet`},interactive:!1,encode:{enter:{y:vV(c,l),stroke:Bj(u,n),strokeDash:Uj({value:a}),strokeOpacity:zj({value:t.opacity}),strokeWidth:Hj({value:o})},update:{x:bV(c,r,l,i),opacity:GU(EV(e,t))}}}},vV=(e,t)=>{const n="yLinear";return"horizontal"===t?{scale:n,field:re.TRENDLINE_VALUE}:{scale:n,field:e}},bV=(e,t,n,r)=>{const i=Mj("x",t);return"vertical"===n?{scale:i,field:re.TRENDLINE_VALUE}:r?{scale:"xTrendline",field:e}:{scale:i,field:e}},xV=(e,t)=>{const{metric:n,name:r}=e,i=CP(e),a=EV(e,i[0],{name:`${r}Trendline`,chartInspects:i.flatMap((e=>e.chartInspects)),metric:re.TRENDLINE_VALUE});return{name:`${r}Trendline_hoverGroup`,type:"group",clip:!0,marks:KU(a,`${r}_allTrendlineData`,t?n:void 0)}},EV=(e,{dimensionScaleType:t,displayOnHover:n,lineWidth:r,metric:i,name:a,opacity:o},s)=>{const{color:l,lineType:u}=e,c="popoverMarkName"in e?e.popoverMarkName:void 0,d="staticPoint"in e?e.staticPoint:void 0;return Object.assign(Object.assign(Object.assign({},e),{color:kP(l),displayOnHover:n,lineType:LP(u),lineWidth:{value:r},metric:i,name:a,opacity:{value:o},popoverMarkName:c,scaleType:t,staticPoint:d,isHoverAnimate:!1}),s)},SV=e=>{const{dimension:t}=e;return CP(e).some((({dimensionScaleType:e,method:t})=>jP(t)&&"time"===e))?[{name:"xTrendline",type:"linear",range:"width",domain:{data:re.FILTERED_TABLE,fields:[`${t}Normalized`]},padding:re.LINEAR_PADDING,zero:!1,nice:!1}]:[]},AV=(e,t)=>{const{name:n}=t;CP(t).some((e=>Fj(e)))&&yH(e,`${n}Trendline`,`${n}Trendline_voronoi`,2)};const $V=(e,t,n,r,i)=>{var{textKey:a,padding:o}=e,s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["textKey","padding"]);return Object.assign({barOptions:t,textKey:a||t.metric,padding:null!=o?o:re.ANNOTATION_PADDING,dataName:n,dimensionScaleName:r,dimensionField:i},s)},TV=(e,t,n,r)=>{const i=((e,t,n,r)=>{const i=e.barAnnotations[0];if(i)return $V(i,e,t,n,r)})(e,t,n,r);return i?[{type:"group",name:`${e.name}_annotationGroup`,marks:[OV(i),DV(i)]}]:[]},OV=({padding:e,barOptions:t,dataName:n,dimensionField:r,dimensionScaleName:i,textKey:a,style:o})=>{const{metricAxis:s,dimensionAxis:l}=TP(t.orientation),u=IV(a,e,o),c=CV(t,u,e);return{name:`${t.name}_annotationText`,type:"text",from:{data:n},interactive:!1,zindex:1,encode:{enter:{[l]:{scale:i,field:r,band:.5},[s]:c,text:[{test:`bandwidth('${i}') > ${MV(t.orientation,e)}`,field:a}],fontSize:{value:re.ANNOTATION_FONT_SIZE},fontWeight:{value:re.ANNOTATION_FONT_WEIGHT},baseline:{value:"middle"},align:{value:"center"}}}}},DV=({barOptions:e,dimensionScaleName:t,padding:n,textKey:r,style:i})=>({name:`${e.name}_annotationBackground`,description:`${e.name}_annotationBackground`,type:"rect",from:{data:`${e.name}_annotationText`},interactive:!1,encode:{enter:Object.assign(Object.assign({},wV(n,null==i?void 0:i.width)),{y:{signal:`datum.bounds.y1 - ${n}`},y2:{signal:`datum.bounds.y2 + ${n}`},cornerRadius:{value:4},fill:[{test:`datum.datum.${r} && bandwidth('${t}') > ${MV(e.orientation,n)}`,signal:re.BACKGROUND_COLOR}]})}}),MV=(e,t)=>"vertical"===e?48:re.ANNOTATION_FONT_SIZE+2*t,wV=(e,t)=>t?{xc:{signal:"(datum.bounds.x1 + datum.bounds.x2) / 2"},width:{value:t}}:{x:{signal:`datum.bounds.x1 - ${e}`},x2:{signal:`datum.bounds.x2 + ${e}`}},IV=(e,t,n)=>(null==n?void 0:n.width)?{value:n.width}:{signal:`getLabelWidth(datum.${e}, '${re.ANNOTATION_FONT_WEIGHT}', ${re.ANNOTATION_FONT_SIZE}) + ${2*t}`},CV=(e,t,n)=>{const{type:r,metric:i,orientation:a}=e,o="stacked"===r||nP(e)?`${i}1`:i,{metricScaleKey:s}=TP(a),l=(({orientation:e},t,n)=>"vertical"===e?""+((2*n+re.ANNOTATION_FONT_SIZE)/2+2.5):"value"in t?""+(t.value/2+2.5):`((${t.signal}) / 2 + 2.5)`)(e,t,n);return"vertical"===a?[{test:`datum.${o} < 0`,signal:`max(scale('${s}', datum.${o}), scale('${s}', 0) + ${l})`},{signal:`min(scale('${s}', datum.${o}), scale('${s}', 0) - ${l})`}]:[{test:`datum.${o} < 0`,signal:`min(scale('${s}', datum.${o}), scale('${s}', 0) - ${l})`},{signal:`max(scale('${s}', datum.${o}), scale('${s}', 0) + ${l})`}]},RV=e=>{const{name:t}=e;return{name:`${t}_background`,description:`${t}_background`,type:"rect",from:{data:nP(e)?`${t}_facet`:NV(e)},interactive:!1,encode:{enter:Object.assign(Object.assign({},dP(e)),{fill:{signal:re.BACKGROUND_COLOR}}),update:Object.assign({},LV(e))}}},kV=e=>{const{name:t}=e;return{name:t,description:t,type:"rect",from:{data:nP(e)?`${t}_facet`:NV(e)},interactive:Lj(e),encode:{enter:Object.assign(Object.assign({},dP(e)),hP(e)),update:Object.assign(Object.assign({},LV(e)),pP(e))}}},LV=e=>{const{dimension:t,orientation:n}=e;if(nP(e))return aP(e);const{dimensionAxis:r,dimensionSizeSignal:i,dimensionScaleKey:a}=TP(n);return{[r]:{scale:a,field:t},[i]:{scale:a,band:1}}},NV=e=>tP(e)?eP(e).facetName:re.FILTERED_TABLE;const FV=ne(((e,t)=>{var n,r,i,a,{barAnnotations:o=[],barDirectLabels:s=[],chartPopovers:l=[],chartInspects:u=[],color:c={value:"categorical-100"},colorScheme:d=re.DEFAULT_COLOR_SCHEME,dimension:f=re.DEFAULT_CATEGORICAL_DIMENSION,diverging:h=!1,dualMetricAxis:p=!1,hasOnClick:m=!1,hasSquareCorners:g=!1,index:y=0,lineType:_={value:"solid"},lineWidth:v=0,metric:b=re.DEFAULT_METRIC,metricAxis:x,name:E,opacity:S={value:1},orientation:A="vertical",paddingRatio:$=re.PADDING_RATIO,trellisOrientation:T="horizontal",trellisPadding:O=re.TRELLIS_PADDING,type:D="stacked",trendlines:M=[]}=t,w=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["barAnnotations","barDirectLabels","chartPopovers","chartInspects","color","colorScheme","dimension","diverging","dualMetricAxis","hasOnClick","hasSquareCorners","index","lineType","lineWidth","metric","metricAxis","name","opacity","orientation","paddingRatio","trellisOrientation","trellisPadding","type","trendlines"]);const I=(0,ae.toCamelCase)(E||`bar${y}`),C=Object.assign({barAnnotations:o,barDirectLabels:s,chartPopovers:l,chartInspects:u,dimensionScaleType:"band",diverging:h,dualMetricAxis:p,orientation:A,color:c,colorScheme:d,dimension:f,hasOnClick:m,hasSquareCorners:g,index:y,interactiveMarkName:tH({chartPopovers:l,chartInspects:u,hasOnClick:m,highlightedItem:w.highlightedItem,trendlines:M},I),lineType:_,lineWidth:v,metric:b,metricAxis:x,name:I,opacity:S,paddingRatio:$,trellisOrientation:T,trellisPadding:O,trendlines:M,type:D},w);e.usermeta=Object.assign(Object.assign({},e.usermeta),{chartOrientation:C.orientation}),e.usermeta=mj(e.usermeta,C.interactiveMarkName,Lj(C)?C.dimension:void 0);const R=ej({color:c,lineType:_,opacity:S}).facets.length>0;h&&"dodged"!==D&&!R&&(e.usermeta=gj(e.usermeta,C.name,C.dimension,C.metric)),e.data=jV(null!==(n=e.data)&&void 0!==n?n:[],C),e.signals=BV(null!==(r=e.signals)&&void 0!==r?r:[],C),e.scales=GV(null!==(i=e.scales)&&void 0!==i?i:[],C),e.marks=KV(null!==(a=e.marks)&&void 0!==a?a:[],C)})),BV=ne(((e,t)=>{var n;const{barAnnotations:r,chartInspects:i,chartPopovers:a,hasOnClick:o,name:s,paddingRatio:l,paddingOuter:u,trendlines:c}=t,{paddingInner:d}=AP(l,u);e.push(pH("paddingInner",d)),rP(t)&&e.push(mH(),gH()),(r.length||a.length||i.length||c.length||o)&&(yH(e,s,void 0,1,null===(n=i[0])||void 0===n?void 0:n.excludeDataKeys),Lj(t)&&(yH(e,`${s}_${re.DIMENSION_HOVER_AREA}`),yH(e,`${s}_${re.DIMENSION_HOVER_AREA}`,s)),lH(e,t),AV(e,t))})),jV=ne(((e,t)=>{var n,r,i,a,o;const{dimension:s,dimensionDataType:l,metric:u,order:c,type:d}=t;if(l===re.TIME){const t=le(e);t.transform=oe(null!==(n=t.transform)&&void 0!==n?n:[],s)}const f=e.findIndex((e=>e.name===re.FILTERED_TABLE));e[f].transform=null!==(r=e[f].transform)&&void 0!==r?r:[],("stacked"===d||nP(t))&&(null===(i=e[f].transform)||void 0===i||i.push({type:"stack",groupby:PV(t),field:u,sort:se(c),as:[`${u}0`,`${u}1`]}),null===(a=e[f].transform)||void 0===a||a.push(zV(t)),e.push(HV(t))),("dodged"===d||nP(t))&&(e.push(UV(t)),null===(o=e[f].transform)||void 0===o||o.push(VV(t))),WV(e,t),eU(e,t),iH(e,t),Xz(e,t)})),HV=e=>{const{metric:t,name:n}=e;return{name:`${n}_stacks`,source:re.FILTERED_TABLE,transform:[{type:"aggregate",groupby:PV(e),fields:[`${t}1`,`${t}1`],ops:["min","max"]},zV(e)]}},zV=e=>({type:"formula",as:re.STACK_ID,expr:PV(e).map((e=>`datum.${e}`)).join(' + "," + ')}),PV=({trellis:e,color:t,dimension:n,lineType:r,opacity:i,type:a})=>{const{facets:o,secondaryFacets:s}=ej({color:t,lineType:r,opacity:i});return[...e?[e]:[],n,..."dodged"===a?o:[],..."stacked"===a?s:[]]},UV=e=>{const{dimension:t,name:n}=e;return{name:`${n}_groups`,source:re.FILTERED_TABLE,transform:[{type:"aggregate",groupby:[t]}]}},VV=({color:e,lineType:t,name:n,opacity:r,type:i})=>{const{facets:a,secondaryFacets:o}=ej({color:e,lineType:t,opacity:r});return{type:"formula",as:`${n}_dodgeGroup`,expr:("dodged"===i?a:o).map((e=>`datum.${e}`)).join(' + "," + ')}},WV=(e,t)=>{if(rP(t)){const n=YH(OP(t));n.primaryDomain&&n.secondaryDomain&&e.push({name:n.primaryDomain,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${re.SERIES_ID} !== ${re.LAST_RSC_SERIES_ID}`}]},{name:n.secondaryDomain,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`}]})}},GV=ne(((e,t)=>{const{color:n,lineType:r,opacity:i,metricAxis:a}=t,{metricAxis:o}=TP(t.orientation);if(Sj(e,$P(t),o),a&&Sj(e,$P(t),o,a),rP(t)){const n=YH(OP(t));Sj(e,$P(t),o,n.primaryScale,n.primaryDomain),Sj(e,$P(t),o,n.secondaryScale,n.secondaryDomain)}qV(e,t),((e,t)=>{if(!t.trellis)return;const{scaleName:n,dimensionSizeSignal:r,paddingInner:i}=eP(t),a=vj(e,n,"band");e[a]=bj(e[a],[t.trellis]),e[a]=Object.assign(Object.assign({},e[a]),{range:r,paddingInner:i})})(e,t),Aj(e,re.COLOR_SCALE,n),Aj(e,re.LINE_TYPE_SCALE,r),Aj(e,re.OPACITY_SCALE,i),YV(e,t)})),qV=(e,{dimension:t,paddingRatio:n,paddingOuter:r,orientation:i})=>{const{dimensionAxis:a}=TP(i),o=_j(e,"band",a);e[o]=bj(e[o],[t]);const{paddingInner:s,paddingOuter:l}=AP(n,r);e[o]=Object.assign(Object.assign({},e[o]),{paddingInner:s,paddingOuter:l})},YV=(e,t)=>{const{color:n,lineType:r,opacity:i}=t;nP(t)&&[{value:n,scaleName:"colors",secondaryScaleName:"secondaryColor"},{value:r,scaleName:"lineTypes",secondaryScaleName:"secondaryLineType"},{value:i,scaleName:"opacities",secondaryScaleName:"secondaryOpacity"}].forEach((({value:t,scaleName:n,secondaryScaleName:r})=>{if(Array.isArray(t)&&2===t.length){const i=vj(e,r,"ordinal");e[i]=bj(e[i],[t[1]]);const a=vj(e,n,"ordinal"),o=e[a];o.range={signal:n},e[a]=bj(o,[t[0]])}}))},KV=ne(((e,t)=>{const{chartPopovers:n,name:r,type:i}=t,a=[];if(nP(t)?a.push((e=>{const t=[],n=gP(e),r=`${e.name}_facet`,i=LV(e);return n&&t.push(bP(e,r,i)),t.push(RV(e),kV(e),...TV(e,`${e.name}_facet`,`${e.name}_position`,`${e.name}_dodgeGroup`)),n&&t.push(xP(e,r,i)),Object.assign(Object.assign({},iP(e)),{marks:t})})(t)):"stacked"===i?a.push(...(e=>{const t=[];Lj(e)&&t.push(DP(e,"stacked"));const n=gP(e),r=NV(e),i=LV(e);return n&&t.push(bP(e,r,i)),t.push(RV(e),kV(e),...TV(e,NV(e),TP(e.orientation).dimensionScaleKey,e.dimension)),n&&t.push(xP(e,r,i)),t})(t)):a.push(...(e=>{const{name:t}=e,n=gP(e),r=aP(e),i=[Object.assign(Object.assign({},iP(e)),{marks:[...n?[bP(e,`${t}_facet`,r)]:[],{name:`${t}_background`,from:{data:`${t}_facet`},type:"rect",interactive:!1,encode:{enter:Object.assign(Object.assign({},dP(e)),{fill:{signal:re.BACKGROUND_COLOR}}),update:Object.assign({},aP(e))}},{name:t,from:{data:`${t}_facet`},type:"rect",interactive:Lj(e),encode:{enter:Object.assign(Object.assign({},dP(e)),hP(e)),update:Object.assign(Object.assign({},aP(e)),pP(e))}},...TV(e,`${t}_facet`,`${t}_position`,`${t}_dodgeGroup`),...n?[xP(e,`${t}_facet`,r)]:[]]})];return Lj(e)&&i.unshift(DP(e,"dodged")),i})(t)),Kz(n,r).some((e=>"dimension"===e.UNSAFE_highlightBy))&&a.push((e=>{const{name:t,colorScheme:n,paddingRatio:r,orientation:i}=e,a="vertical"===i?{y:{value:0},y2:{signal:"height"},xc:{signal:`scale('xBand', datum.${t}_selectedGroupId) + bandwidth('xBand')/2`},width:{signal:`bandwidth('xBand')/(1 - ${r} / 2)`}}:{x:{value:0},x2:{signal:"width"},yc:{signal:`scale('yBand', datum.${t}_selectedGroupId) + bandwidth('yBand')/2`},height:{signal:`bandwidth('yBand')/(1 - ${r} / 2)`}};return{name:`${t}_selectionRing`,type:"rect",from:{data:`${t}_selectedData`},interactive:!1,encode:{enter:{fill:{value:"transparent"},strokeWidth:{value:2},stroke:{value:(0,ie.getS2ColorValue)("static-blue",n)},cornerRadius:{value:4}},update:a}}})(t)),tP(t)){const n=JV(t);e.push(((e,t,n)=>{const{trellisOrientation:r}=e,i=e.trellis,{markName:a,facetName:o,scaleName:s,axis:l,dimensionSizeSignal:u}=eP(e);return{name:a,type:"group",from:{facet:{data:re.FILTERED_TABLE,name:o,groupby:i}},signals:[{name:u,update:`bandwidth('${s}')`}],encode:{enter:{[l]:{scale:s,field:i},height:{signal:"vertical"===r?`bandwidth('${s}')`:"height"},width:{signal:"horizontal"===r?`bandwidth('${s}')`:"width"}}},scales:[n],marks:t}})(t,a,n))}else e.push(...a);e.push(...dV(t));for(const[n,r]of t.barDirectLabels.entries())e.push(...wP(IP(r,n,t),t))})),JV=e=>{const{orientation:t,trellisOrientation:n}=e;if(t===n){const{metricAxis:n}=TP(t);return((e,t,n)=>{let r=Tj("linear",t,n);return r=bj(r,e),r})($P(e),n,t)}return XV(e)},XV=({dimension:e,orientation:t,paddingRatio:n,paddingOuter:r})=>{const{dimensionAxis:i}=TP(t);let a=Tj("band",i,t);a=bj(a,[e]);const{paddingInner:o,paddingOuter:s}=AP(n,r);return Object.assign(Object.assign({},a),{paddingInner:o,paddingOuter:s})};function ZV(e,t,n){var r;if(!e||0===e.length)return`'${n}'`;const i=e.slice().sort(((e,t)=>(void 0===e.thresholdMin?-1e12:e.thresholdMin)-(void 0===t.thresholdMin?-1e12:t.thresholdMin))),a=[];a.push(`(datum.${t} < ${void 0===i[0].thresholdMin?-1e12:i[0].thresholdMin}) ? '${n}' : `);for(let e=0;e<i.length-1;e++){const n=void 0===i[e+1].thresholdMin?-1e12:i[e+1].thresholdMin;a.push(`(datum.${t} < ${n}) ? '${i[e].fill}' : `)}return a.push(`'${null===(r=i.at(-1))||void 0===r?void 0:r.fill}'`),a.join("")}const QV=ne(((e,t)=>{var n,r,i,a,o,s,l;const u="column"===t.direction?"y":"x",c="column"===t.direction?"width":"bulletGroupWidth",d={name:"bulletGroup",type:"group",from:{facet:{data:"table",name:"bulletGroups",groupby:`${t.dimension}`}},encode:{update:{[u]:{scale:"groupScale",field:`${t.dimension}`},height:{signal:"bulletGroupHeight"},width:{signal:c}}},marks:[]},f=t.thresholds;Array.isArray(f)&&f.length>0?(d.data=[{name:"thresholds",values:f,transform:[{type:"identifier",as:"id"}]}],null===(n=d.marks)||void 0===n||n.push(function(e){const t="bulletGroupHeight - 3 - bulletThresholdHeight",n=e.showTarget&&e.showTargetValue?`${t} - targetValueLabelHeight`:t;return{name:`${e.name}Threshold`,description:`${e.name}Threshold`,type:"rect",from:{data:"thresholds"},clip:!0,encode:{enter:{cornerRadiusTopLeft:[{test:"!isDefined(datum.thresholdMin) && domain('xscale')[0] !== 0",value:3}],cornerRadiusBottomLeft:[{test:"!isDefined(datum.thresholdMin) && domain('xscale')[0] !== 0",value:3}],cornerRadiusTopRight:[{test:"!isDefined(datum.thresholdMax) && domain('xscale')[1] !== 0",value:3}],cornerRadiusBottomRight:[{test:"!isDefined(datum.thresholdMax) && domain('xscale')[1] !== 0",value:3}],fill:{field:"fill"},fillOpacity:{value:.2}},update:{x:{signal:"isDefined(datum.thresholdMin) ? scale('xscale', datum.thresholdMin) : 0"},x2:{signal:"isDefined(datum.thresholdMax) ? scale('xscale', datum.thresholdMax) : width"},height:{signal:"bulletThresholdHeight"},y:{signal:n}}}}}(t))):t.track&&(null===(r=d.marks)||void 0===r||r.push(function(e){const t=(0,ie.getS2ColorValue)("gray-200",e.colorScheme),n="column"===e.direction?"width":"bulletGroupWidth",r=e.showTarget&&e.showTargetValue?"bulletGroupHeight - 3 - 2 * bulletHeight - 20":"bulletGroupHeight - 3 - 2 * bulletHeight";return{name:`${e.name}Track`,description:`${e.name}Track`,type:"rect",from:{data:"bulletGroups"},encode:{enter:{fill:{value:t},cornerRadiusTopRight:[{test:"domain('xscale')[1] !== 0",value:3}],cornerRadiusBottomRight:[{test:"domain('xscale')[1] !== 0",value:3}],cornerRadiusTopLeft:[{test:"domain('xscale')[0] !== 0",value:3}],cornerRadiusBottomLeft:[{test:"domain('xscale')[0] !== 0",value:3}]},update:{x:{value:0},width:{signal:n},height:{signal:"bulletHeight"},y:{signal:r}}}}}(t))),null===(i=d.marks)||void 0===i||i.push(function(e){var t,n;const r=e.showTarget&&e.showTargetValue?"bulletGroupHeight - targetValueLabelHeight - 3 - 2 * bulletHeight":"bulletGroupHeight - 3 - 2 * bulletHeight",i=e.thresholdBarColor&&(null!==(n=null===(t=e.thresholds)||void 0===t?void 0:t.length)&&void 0!==n?n:0)>0?[{field:"barColor"}]:[{value:e.color}];return{name:`${e.name}Rect`,description:`${e.name}Rect`,type:"rect",from:{data:"bulletGroups"},encode:{enter:{cornerRadiusTopLeft:[{test:`datum.${e.metric} < 0`,value:3}],cornerRadiusBottomLeft:[{test:`datum.${e.metric} < 0`,value:3}],cornerRadiusTopRight:[{test:`datum.${e.metric} > 0`,value:3}],cornerRadiusBottomRight:[{test:`datum.${e.metric} > 0`,value:3}],fill:i},update:{x:{scale:"xscale",value:0},x2:{scale:"xscale",field:`${e.metric}`},height:{signal:"bulletHeight"},y:{signal:r}}}}}(t)),t.target&&!1!==t.showTarget&&(null===(a=d.marks)||void 0===a||a.push(function(e){const t=(0,ie.getS2ColorValue)("gray-900",e.colorScheme),n=e.showTarget&&e.showTargetValue?"bulletGroupHeight - targetValueLabelHeight - targetHeight":"bulletGroupHeight - targetHeight",r=e.showTarget&&e.showTargetValue?"bulletGroupHeight - targetValueLabelHeight":"bulletGroupHeight";return{name:`${e.name}Target`,description:`${e.name}Target`,type:"rule",from:{data:"bulletGroups"},encode:{enter:{stroke:{value:`${t}`},strokeWidth:{value:2}},update:{x:{scale:"xscale",field:`${e.target}`},y:{signal:n},y2:{signal:r}}}}}(t)),t.showTargetValue&&(null===(o=d.marks)||void 0===o||o.push(function(e){const t=(0,ie.getS2ColorValue)("gray-900",e.colorScheme),n=`datum.${e.target}`,r=e.targetLabel?`${n} != null ? 'Target: ' + datum.${e.targetLabel} : 'No Target'`:`${n} != null ? 'Target: ' + (${eW(n,e.numberFormat||"standardNumber")}) : 'No Target'`;return{name:`${e.name}TargetValueLabel`,description:`${e.name}TargetValueLabel`,type:"text",from:{data:"bulletGroups"},encode:{enter:{text:{signal:r},align:{value:"center"},baseline:{value:"top"},fill:{value:`${t}`}},update:{x:{scale:"xscale",field:`${e.target}`},y:{signal:"bulletGroupHeight - targetValueLabelHeight + 6"}}}}}(t)))),"top"!==t.labelPosition&&"row"!==t.direction||(null===(s=d.marks)||void 0===s||s.push(function(e){const t=(0,ie.getS2ColorValue)("gray-600",e.colorScheme);return{name:`${e.name}Label`,description:`${e.name}Label`,type:"text",from:{data:"bulletGroups"},encode:{enter:{text:{signal:`datum.${e.dimension}`},align:{value:"left"},baseline:{value:"top"},fill:{value:`${t}`}},update:{x:{value:0},y:{value:0}}}}}(t)),null===(l=d.marks)||void 0===l||l.push(function(e){var t,n;const r=(0,ie.getS2ColorValue)(e.color,e.colorScheme),i=(0,ie.getS2ColorValue)("gray-900",e.colorScheme),a="column"===e.direction?"width":"bulletGroupWidth",o=e.thresholdBarColor&&(null!==(n=null===(t=e.thresholds)||void 0===t?void 0:t.length)&&void 0!==n?n:0)>0?`datum.barColor === '${r}' ? '${i}' : datum.barColor`:`'${i}'`,s=e.metricLabel?[{field:e.metricLabel}]:(l=e.numberFormat||"standardNumber",u=e.metric,[...QH(l||"standardNumber",u)]);var l,u;return{name:`${e.name}ValueLabel`,description:`${e.name}ValueLabel`,type:"text",from:{data:"bulletGroups"},encode:{enter:{text:s,align:{value:"right"},baseline:{value:"top"},fill:{signal:o}},update:{x:{signal:a},y:{value:0}}}}}(t))),e.push(d)}));function eW(e,t){return"shortNumber"===t?`formatShortNumber(${e})`:"shortCurrency"===t?String.raw`abs(${e}) >= 1000 ? upper(replace(format(${e}, '$.3~s'), /(\d+)G/, '$1B')) : format(${e}, '$')`:"currency"===t?`format(${e}, '$,.2f')`:"standardNumber"===t?`format(${e}, ',')`:`format(${e}, '${t}')`}const tW=ne(((e,t)=>{if(t.metricAxis&&"column"===t.direction&&!t.showTargetValue&&e.push(function(e){return{labelOffset:2,scale:"xscale",orient:"bottom",ticks:!1,labelColor:"gray",domain:!1,tickCount:5,offset:{signal:"axisOffset"},encode:{labels:{update:{text:{signal:`(${eW("datum.value",e.numberFormat||"standardNumber")})`}}}}}}(t)),"side"===t.labelPosition&&"column"===t.direction){const n=t.showTargetValue&&t.showTarget?-8:2;e.push(function(e){return{scale:"groupScale",orient:"left",tickSize:0,labelOffset:e,labelPadding:10,labelColor:"#797979",domain:!1}}(n),function(e,t){const n=`info(data('table')[datum.index * (length(data('table')) - 1)].${e.metric})`;return{scale:"groupScale",orient:"right",tickSize:0,labelOffset:t,labelPadding:10,domain:!1,encode:{labels:{update:{text:{signal:e.metricLabel?`data('table')[datum.index * (length(data('table')) - 1)].${e.metricLabel}`:`${n} != null ? (${eW(n,e.numberFormat||"standardNumber")}) : ''`}}}}}}(t,n))}}));const nW=ie.spectrum2Colors.light["blue-900"],rW=ne(((e,t)=>{var n,r,i,a,o,{colorScheme:s=re.DEFAULT_COLOR_SCHEME,index:l=0,name:u,metric:c,dimension:d,target:f,color:h=nW,direction:p=re.DEFAULT_BULLET_DIRECTION,numberFormat:m,showTarget:g=!0,showTargetValue:y=!1,labelPosition:_=re.DEFAULT_LABEL_POSITION,scaleType:v=re.DEFAULT_SCALE_TYPE,maxScaleValue:b=re.DEFAULT_SCALE_VALUE,thresholds:x=[],track:E=!1,thresholdBarColor:S=!1,metricAxis:A=!1}=t,$=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["colorScheme","index","name","metric","dimension","target","color","direction","numberFormat","showTarget","showTargetValue","labelPosition","scaleType","maxScaleValue","thresholds","track","thresholdBarColor","metricAxis"]);const T=Object.assign({colorScheme:s,index:l,color:(0,ie.getS2ColorValue)(h,s),metric:null!=c?c:"currentAmount",dimension:null!=d?d:"graphLabel",target:null!=f?f:"target",name:(0,ae.toCamelCase)(null!=u?u:`bullet${l}`),direction:p,numberFormat:null!=m?m:"",showTarget:g,showTargetValue:y,labelPosition:_,scaleType:v,maxScaleValue:b,track:E,thresholds:x,thresholdBarColor:S,metricAxis:A},$);e.data=sW(null!==(n=e.data)&&void 0!==n?n:[],T),e.marks=QV(null!==(r=e.marks)&&void 0!==r?r:[],T),e.scales=iW(null!==(i=e.scales)&&void 0!==i?i:[],T),e.signals=aW(null!==(a=e.signals)&&void 0!==a?a:[],T),e.axes=tW(null!==(o=e.axes)&&void 0!==o?o:[],T)})),iW=ne(((e,t)=>{const n="column"===t.direction?"bulletChartHeight":"width",r="column"===t.direction?"width":[0,{signal:"bulletGroupWidth"}];let i;i="flexible"===t.scaleType&&t.maxScaleValue>0?{data:"table",fields:["xPaddingForTarget",t.metric,"flexibleScaleValue"]}:"fixed"===t.scaleType&&t.maxScaleValue>0?[0,`${t.maxScaleValue}`]:{data:"table",fields:["xPaddingForTarget",t.metric]},e.push({name:"groupScale",type:"band",domain:{data:"table",field:t.dimension},range:[0,{signal:n}],paddingInner:{signal:"paddingRatio"}},{name:"xscale",type:"linear",domain:i,range:r,round:!0,clamp:!0,zero:!0})})),aW=ne(((e,t)=>{e.push({name:"gap",value:12},{name:"bulletHeight",value:8},{name:"bulletThresholdHeight",update:"bulletHeight * 3"},{name:"targetHeight",update:"bulletThresholdHeight + 6"}),t.showTargetValue&&t.showTarget&&e.push({name:"targetValueLabelHeight",update:"20"}),e.push({name:"bulletGroupHeight",update:oW(t)}),"column"===t.direction?(e.push({name:"paddingRatio",update:"gap / (gap + bulletGroupHeight)"}),t.metricAxis&&!t.showTargetValue?e.push({name:"bulletChartHeight",update:"length(data('table')) * bulletGroupHeight + (length(data('table')) - 1) * gap + 10"},{name:"axisOffset",update:"bulletChartHeight - height - 10"}):e.push({name:"bulletChartHeight",update:"length(data('table')) * bulletGroupHeight + (length(data('table')) - 1) * gap"})):e.push({name:"bulletGroupWidth",update:"(width / length(data('table'))) - gap"},{name:"paddingRatio",update:"gap / (gap + bulletGroupWidth)"},{name:"bulletChartHeight",update:"bulletGroupHeight"})}));function oW(e){return e.showTargetValue&&e.showTarget?"side"===e.labelPosition&&"column"===e.direction?"bulletThresholdHeight + targetValueLabelHeight + 10":"bulletThresholdHeight + targetValueLabelHeight + 24":"side"===e.labelPosition&&"column"===e.direction?"bulletThresholdHeight + 10":"bulletThresholdHeight + 24"}const sW=ne(((e,t)=>{const n=(e=>{let t=le(e);return t||(t={name:re.TABLE,values:[],transform:[]},e.push(t)),t})(e);n.transform=(e=>{var t,n,r;const i=[{type:"formula",expr:`isValid(datum.${e.target}) ? round(datum.${e.target} * 1.05) : 0`,as:"xPaddingForTarget"}];return"flexible"===e.scaleType&&i.push({type:"formula",expr:`${e.maxScaleValue}`,as:"flexibleScaleValue"}),e.thresholdBarColor&&(null!==(n=null===(t=e.thresholds)||void 0===t?void 0:t.length)&&void 0!==n?n:0)>0&&i.push({type:"formula",expr:ZV(null!==(r=e.thresholds)&&void 0!==r?r:[],e.metric,e.color),as:"barColor"}),i})(t)})),lW=(e,t,n)=>{const{color:r,dimension:i,excludeSeries:a,metric:o,position:s,scaleType:l,value:u}=t,c=dj(i,l),d="start"===s,f=n.metricAxis||"yLinear",{facets:h}=ej({color:n.color,lineType:n.lineType,opacity:n.opacity}),p=function(e,t,n,r){const i=function(e){return'"'+hj(e||uW)+'"'}(r);switch(e){case"last":return'format(datum["'+t+'"], '+i+")";case"average":return"format(datum.directLabel_avg, "+i+")";case"series":return n?'datum["'+n+'"]':"''"}}(u,o,"string"==typeof r?r:void 0,t.format||""),m=[..."average"===u?[{type:"joinaggregate",groupby:h,fields:[o],ops:["mean"],as:["directLabel_avg"]}]:[],{type:"joinaggregate",groupby:h,fields:[c],ops:[d?"min":"max"],as:["_extremeDim"]},{type:"filter",expr:`datum["${c}"] === datum._extremeDim`},{type:"formula",as:"directLabel_text",expr:p},...a.length?[{type:"filter",expr:`indexof(${JSON.stringify(a)}, datum.${re.SERIES_ID}) === -1`}]:[],...n.primarySeries?[{type:"filter",expr:`!(${DU(n.primarySeries,"datum")})`}]:[],...xU(f,o,"")];return{name:`${e}DirectLabel${t.index}_data`,source:re.FILTERED_TABLE,transform:m}},uW=",.2~f",cW=(e,t,n,r,i,a)=>{const o=(0,ie.getS2ColorValue)("transparent"!==r&&r?r:"gray-25",i),s=`${e}DirectLabel${t.index}_data`,{prefix:l=""}=t,u=(l?"'"+l.replaceAll("'",String.raw`\'`)+" ' + ":"")+"datum.directLabel_text",{dimension:c,metric:d,position:f,scaleType:h}=t,p="start"===f,m=dj(c,h),g=Mj("x",h),y=n.metricAxis||"yLinear",_=GU(n),v=Vj(t.fontSize),b={text:{signal:u},align:{value:p?"left":"right"},limit:{signal:p?`scale('${g}', datum["${m}"])`:`width - scale('${g}', datum["${m}"])`},x:p?{value:0}:{signal:"width"},y:{scale:y,field:d,offset:{signal:`datum._seriesCount === 2 ? (datum._metricRank === 1 ? -12 : 22) : (datum._cumMaxAdjusted + datum._metricRank * ${bU} - 12 - datum._scaledY)`}}},x=[{name:`${e}DirectLabel${t.index}_bg`,type:"text",from:{data:s},interactive:!1,encode:{enter:Object.assign(Object.assign({},b),{stroke:{value:o},strokeWidth:{value:re.DIRECT_LABEL_BACKGROUND_STROKE_WIDTH},fill:{value:o}}),update:{fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT},fontSize:v,opacity:{value:1}}}},{name:`${e}DirectLabel${t.index}`,type:"text",from:{data:s},interactive:!1,encode:{enter:Object.assign(Object.assign({},b),{fill:Bj(t.color,t.colorScheme)}),update:{fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT},fontSize:v,opacity:_}}}];return a?x.map((e=>{var t;return Object.assign(Object.assign({},e),{name:`${e.name}_fg`,encode:Object.assign(Object.assign({},e.encode),{update:Object.assign(Object.assign({},null===(t=e.encode)||void 0===t?void 0:t.update),{opacity:a})})})})):x},dW=(e,t,n)=>{var r,i,a,o,s;return{color:n.color,colorScheme:n.colorScheme,dimension:n.dimension,excludeSeries:null!==(r=e.excludeSeries)&&void 0!==r?r:[],format:null!==(i=e.format)&&void 0!==i?i:"",index:t,lineName:n.name,metric:AU(n),position:null!==(a=e.position)&&void 0!==a?a:"end",prefix:null!==(o=e.prefix)&&void 0!==o?o:"",scaleType:n.scaleType,value:null!==(s=e.value)&&void 0!==s?s:"last",fontSize:e.fontSize}};const fW=e=>e.metricRanges.map(((t,n)=>hW(t,e.name,n))),hW=(e,t,n)=>{var{chartInspects:r=[],lineType:i="dashed",lineWidth:a="S",rangeOpacity:o=.2,metric:s=re.DEFAULT_METRIC,displayOnHover:l=!1}=e,u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["chartInspects","lineType","lineWidth","rangeOpacity","metric","displayOnHover"]);return Object.assign({chartInspects:r,lineType:i,lineWidth:a,name:`${t}MetricRange${n}`,rangeOpacity:o,metric:s,displayOnHover:l},u)},pW=(e,t)=>{const n={name:`${t.name}_area`,color:e.color,colorScheme:e.colorScheme,opacity:t.rangeOpacity,metricStart:t.metricStart,metricEnd:t.metricEnd,isStacked:!1,scaleType:e.scaleType,dimension:e.dimension,isMetricRange:!0,parentName:e.name,displayOnHover:t.displayOnHover,interactiveMarkName:e.interactiveMarkName},r=Object.assign(Object.assign({},e),{name:`${t.name}_line`,color:t.color?{value:t.color}:e.color,metric:t.metric,lineType:{value:t.lineType},lineWidth:{value:t.lineWidth},displayOnHover:t.displayOnHover,isHoverAnimate:!1}),i=`${t.name}_facet`;return[VU(r,i),_H(n,i)]};const mW=ne(((e,t)=>{var n,r,i,a,{animations:o,animationTypes:s,chartPopovers:l=[],chartInspects:u=[],color:c={value:"categorical-100"},colorScheme:d=re.DEFAULT_COLOR_SCHEME,dimension:f=re.DEFAULT_TIME_DIMENSION,dualMetricAxis:h=!1,forecasts:p=[],gradient:m=!1,hasOnClick:g=!1,hasOnContextMenu:y=!1,index:_=0,lineCap:v="round",lineDirectLabels:b=[],linePointAnnotations:x=[],lineType:E={value:"solid"},metric:S=re.DEFAULT_METRIC,metricAxis:A,metricRanges:$=[],name:T,opacity:O={value:1},scaleType:D="time",trendlines:M=[],interpolate:w,alternateSegmentKey:I,alternateSegmentLineType:C="dotted",alternateSegmentLabel:R,primarySeries:k,otherSeriesColor:L,showHoverLabel:N=!0,dimensionHover:F=!1,data:B}=t,j=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["animations","animationTypes","chartPopovers","chartInspects","color","colorScheme","dimension","dualMetricAxis","forecasts","gradient","hasOnClick","hasOnContextMenu","index","lineCap","lineDirectLabels","linePointAnnotations","lineType","metric","metricAxis","metricRanges","name","opacity","scaleType","trendlines","interpolate","alternateSegmentKey","alternateSegmentLineType","alternateSegmentLabel","primarySeries","otherSeriesColor","showHoverLabel","dimensionHover","data"]);const H=(0,ae.toCamelCase)(T||`line${_}`),z=!(u.length>0)&&N,{facets:P}=ej({color:c,lineType:E,opacity:O}),U=_W(B,P),V=Object.assign({chartPopovers:l,chartInspects:u,color:c,colorScheme:d,dimension:f,dualMetricAxis:h,forecasts:p,gradient:m,hasOnClick:g,hasOnContextMenu:y,index:_,lineCap:v,lineDirectLabels:b,linePointAnnotations:x,interactiveMarkName:tH({chartPopovers:l,chartInspects:u,hasOnClick:g,hasOnContextMenu:y,highlightedItem:j.highlightedItem,metricRanges:$,trendlines:M},H),lineType:E,metric:S,metricAxis:A,metricRanges:$,name:H,opacity:O,popoverMarkName:dU(l,H),scaleType:D,trendlines:M,interpolate:w,alternateSegmentKey:I,alternateSegmentLineType:C,alternateSegmentLabel:R,primarySeries:k,otherSeriesColor:L,showHoverLabel:z,dimensionHover:F,seriesIds:U},j);return V.isHighlightedByGroup=sH(V)||F,V.isHoverAnimate=gW(o,s,V),V.isDrawInAnimate=yW(o,s,V),e.usermeta=mj(e.usermeta,V.interactiveMarkName),V.isHoverAnimate&&(e.usermeta=yj(e.usermeta,H)),e.data=vW(null!==(n=e.data)&&void 0!==n?n:[],V),e.signals=AW(null!==(r=e.signals)&&void 0!==r?r:[],V),e.scales=$W(null!==(i=e.scales)&&void 0!==i?i:[],V),e.marks=TW(null!==(a=e.marks)&&void 0!==a?a:[],V),e})),gW=(e,t,n)=>{var r,i;return!1!==e&&(null!=t?t:re.DEFAULT_ANIMATION_TYPES).includes("hover")&&(Lj(n)||void 0!==n.highlightedItem||void 0!==n.highlightedSeries||(null!==(i=null===(r=n.legendHighlightSignals)||void 0===r?void 0:r.length)&&void 0!==i?i:0)>0)},yW=(e,t,n)=>!1!==e&&(null!=t?t:re.DEFAULT_ANIMATION_TYPES).includes("drawIn")&&("time"===n.scaleType||"linear"===n.scaleType||"point"===n.scaleType),_W=(e,t)=>(null==e?void 0:e.length)&&t.length?[...new Set(e.map((e=>t.map((t=>e[t])).join(" | "))))]:[],vW=ne(((e,t)=>{var n,r,i;const{chartInspects:a,dimension:o,dimensionHover:s,isSparkline:l,isMethodLast:u,name:c,scaleType:d,staticPoint:f}=t,h=le(e);if("time"===d&&(h.transform=oe(null!==(n=h.transform)&&void 0!==n?n:[],o),t.isDrawInAnimate&&(h.transform=pU(null!==(r=h.transform)&&void 0!==r?r:[],o))),bW(h,a,s,o,c),xW(e,h,t),EW(e,t),t.isDrawInAnimate)if("point"===d){const n=(e=>{const{dimension:t,name:n,scaleType:r}=e,i=Mj("x",r);return{name:`${n}_${re.DRAW_IN_POINT_INDEX_DATA}`,source:re.FILTERED_TABLE,transform:[{type:"formula",as:`${n}_${re.DRAW_IN_POINT_INDEX_FIELD}`,expr:`indexof(domain('${i}'), datum.${t})`}]}})(t);mU(n,t),e.push(n,...gU(t))}else mU(ue(e),t),e.push(...gU(t));(f||l)&&(t.isDrawInAnimate?e.push(MU(c,f,`${c}_${re.DRAW_IN_PREV_DATA}`,l,u)):e.push(MU(c,f,re.FILTERED_TABLE,l,u))),SW(e,t),eU(e,t),iH(e,t,!1),Xz(e,t),e.push(...(e=>{const t=[],n=fW(e);for(const r of n){const{displayOnHover:n,name:i}=r;if(n){const n=`isValid(${e.interactiveMarkName}_${re.HOVERED_ITEM}) && ${e.interactiveMarkName}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID}`,r=`isValid(${re.SELECTED_SERIES}) && ${re.SELECTED_SERIES} === datum.${re.SERIES_ID}`,a=`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'),'${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1`,o=`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES}) && ${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID}`;t.push({name:`${i}_highlightedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:[n,r,a,o].join(" || ")}]})}}return t})(t));for(const[n,r]of(null!==(i=t.lineDirectLabels)&&void 0!==i?i:[]).entries()){const i=dW(r,n,t);e.push(lW(t.name,i,t))}})),bW=(e,t,n,r,i)=>{var a;const o=t.some((({highlightBy:e})=>"dimension"===e));n&&!o&&(e.transform=null!==(a=e.transform)&&void 0!==a?a:[],e.transform.push(aH([r],i)))},xW=(e,t,n)=>{var r,i;const{alternateSegmentKey:a,dimension:o,forecasts:s,metric:l,name:u,primarySeries:c,scaleType:d}=n,f="time"===d?`${o}0`:o;a?(t.transform=null!==(r=t.transform)&&void 0!==r?r:[],t.transform.push({type:"formula",as:`${u}_alternateFlag`,expr:`datum["${a}"]`}),e.push(...NW(u,f))):s.length>0?(t.transform=null!==(i=t.transform)&&void 0!==i?i:[],t.transform.push(((e,t,n)=>({type:"formula",as:`${e}_alternateFlag`,expr:`datum['${t}'] >= ${JSON.stringify(n)}`}))(u,o,s[0].start),((e,t,n)=>({type:"formula",as:`${e}_effectiveValue`,expr:`isValid(datum['${t}']) ? datum['${t}'] : datum['${n}']`}))(u,l,s[0].metric)),e.push(...NW(u,f))):c&&e.push(((e,t)=>({name:`${e}_primarySeriesFacetData`,source:re.FILTERED_TABLE,transform:[{type:"formula",as:`${e}_isOther`,expr:`${DU(t,"datum")} ? 1 : 0`},{type:"collect",sort:{field:`${e}_isOther`,order:"descending"}}]}))(u,c))},EW=(e,t)=>{const{chartInspects:n,highlightedItem:r,isHoverAnimate:i,name:a,seriesIds:o,showHoverLabel:s}=t;(Lj(t)||void 0!==r)&&(e.push((e=>{const{name:t,idKey:n}=e;let r=`isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) && indexof(${re.CONTROLLED_HIGHLIGHTED_ITEM}, datum.${n}) > -1`;if(Lj(e)){const i=`${t}_${re.HOVERED_ITEM}`,a=`${t}_${re.GROUP_ID}`;e.isHighlightedByGroup?r+=` || isValid(${i}) && ${i}.${a} === datum.${a}`:r+=` || isValid(${i}) && ${i}.${n} === datum.${n}`,Nj(e)&&(r=`${re.SELECTED_ITEM} && ${re.SELECTED_ITEM} === datum.${n} || !${re.SELECTED_ITEM} && ${r}`)}return{name:`${t}_highlightedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:r}]}})(t),de(n)),s&&e.push((e=>{const{name:t,metricAxis:n}=e;return{name:`${t}_hoverLabelData`,source:`${t}_highlightedData`,transform:xU(n||"yLinear",AU(e),"hover")}})(t))),i&&(e.push((({name:e,groupby:t,rules:n,source:r=re.TABLE})=>{const i=[{type:"aggregate",groupby:t},...n.map((e=>({type:"formula",as:e.as,expr:e.expr})))],a=n.map((e=>`isValid(datum.${e.as}) ? datum.${e.as}`)).join(" : ")+` : ${re.HOVER_NEUTRAL_TARGET}`;return i.push({type:"formula",as:"target",expr:a}),{name:`${e}_${re.HOVER_TARGET_DATA}`,source:r,transform:i}})({name:a,groupby:[re.SERIES_ID],rules:wU(t)}),(({name:e,keys:t,keyField:n=re.SERIES_ID})=>({name:`${e}_${re.HOVER_ANIM_STATE_DATA}`,values:t.map((e=>({[n]:e,startTime:0,startValue:1,target:1}))),on:t.map(((t,n)=>((e,t)=>{const n=`data('${e}_${re.HOVER_ANIM_STATE_DATA}')[${t}]`,r=`${e}_${re.HOVER_TARGETS}[${t}]`,i=`${r} !== ${n}.target`,a=`((data('${e}_${re.HOVER_FRACTION_DATA}') || [])[${t}] || {fraction: 1}).fraction`;return{trigger:`${e}_${re.HOVER_TARGETS}`,modify:n,values:`{startTime: ${i} ? now() : ${n}.startTime, startValue: ${i} ? ${a} : ${n}.startValue, target: ${r}}`}})(e,n)))}))({name:a,keys:null!=o?o:[]}),(e=>({name:`${e}_${re.HOVER_FRACTION_DATA}`,source:`${e}_${re.HOVER_ANIM_STATE_DATA}`,transform:[{type:"formula",as:"fraction",expr:`lerp([datum.startValue, datum.target], datum.target === datum.startValue ? 1 : clamp((${re.HOVER_ACTIVE_TIMER} - datum.startTime) / (${re.ANIMATION_HOVER_SPEED} * abs(datum.target - datum.startValue)), 0, 1))`}]}))(a)),((e,t)=>{let n=e.find((e=>e.name===re.HOVER_ANIM_LAST_CHANGE_DATA));n||(n={name:re.HOVER_ANIM_LAST_CHANGE_DATA,values:[{lastChange:0}],on:[]},e.push(n)),void 0===n.on&&(n.on=[]),n.on.push({trigger:`${t}_${re.HOVER_TARGETS}`,modify:`data('${re.HOVER_ANIM_LAST_CHANGE_DATA}')[0]`,values:"{lastChange: now()}"})})(e,a))},SW=(e,t)=>{if(fU(t)){const{metricAxis:n}=t,r=YH(n||"yLinear");r.primaryDomain&&r.secondaryDomain&&e.push({name:r.primaryDomain,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${re.SERIES_ID} !== ${re.LAST_RSC_SERIES_ID}`}]},{name:r.secondaryDomain,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`}]})}},AW=ne(((e,t)=>{const{name:n}=t;if(AV(e,t),fU(t)&&e.push(mH(),gH()),t.isHoverAnimate&&((e,t)=>{fH(e,re.ANIMATION_TIMER)||e.push({name:re.ANIMATION_TIMER,value:0,on:[{events:{type:"timer",throttle:re.ANIMATION_THROTTLE},update:"now()"}]}),fH(e,re.HOVER_ANIMATING)||e.push({name:re.HOVER_ANIMATING,value:!1,update:`(${re.ANIMATION_TIMER} - data('${re.HOVER_ANIM_LAST_CHANGE_DATA}')[0].lastChange) < ${re.ANIMATION_HOVER_SPEED+re.ANIMATION_THROTTLE}`}),fH(e,re.HOVER_IDLE_TICKS)||e.push({name:re.HOVER_IDLE_TICKS,value:0,update:`${re.HOVER_ANIMATING} ? 0 : min(${re.ANIMATION_TIMER} - ${re.ANIMATION_TIMER} + ${re.HOVER_IDLE_TICKS} + 1, 2)`}),fH(e,re.HOVER_ACTIVE_TIMER)||e.push({name:re.HOVER_ACTIVE_TIMER,value:0,update:`${re.HOVER_ANIMATING} || ${re.HOVER_IDLE_TICKS} <= 1 ? ${re.ANIMATION_TIMER} : ${re.HOVER_ACTIVE_TIMER}`}),e.push({name:`${t}_${re.HOVER_TARGETS}`,update:`pluck(data('${t}_${re.HOVER_TARGET_DATA}'), 'target')`})})(e,n),t.isDrawInAnimate&&((e,t)=>{const{name:n,scaleType:r}=t,i=Mj("x",r),a="point"===r;(e=>{fH(e,re.ANIMATION_TIMER)||e.push({name:re.ANIMATION_TIMER,value:0,on:[{events:{type:"timer",throttle:re.ANIMATION_THROTTLE},update:"now()"}]}),fH(e,re.DRAW_IN_START)||e.push({name:re.DRAW_IN_START,init:"now()"}),fH(e,re.DRAW_IN_ANIM_T)||e.push({name:re.DRAW_IN_ANIM_T,value:0,update:`clamp((${re.ANIMATION_TIMER} - ${re.DRAW_IN_START}) / ${re.DRAW_IN_ANIMATION_DURATION_MS}, 0, 1)`}),fH(e,re.DRAW_IN_ANIM_T_EASED)||e.push({name:re.DRAW_IN_ANIM_T_EASED,update:`${re.DRAW_IN_ANIM_T} < 0.5 ? 2 * pow(${re.DRAW_IN_ANIM_T}, 2) : 1 - pow(-2 * ${re.DRAW_IN_ANIM_T} + 2, 2) / 2`})})(e);const o=`${n}_${re.DRAW_IN_DOMAIN_MIN}`,s=`${n}_${re.DRAW_IN_DOMAIN_MAX}`,l=`${n}_${re.DRAW_IN_ANIM_CUTOFF}`;e.push({name:o,init:a?"0":`toNumber(extent(domain('${i}'))[0])`},{name:s,init:a?`length(domain('${i}')) - 1`:`toNumber(extent(domain('${i}'))[1])`},{name:l,update:`${re.DRAW_IN_ANIM_T_EASED} * (${s} - ${o}) + ${o}`})})(e,t),!Lj(t))return;const{primarySeries:r}=t;yH(e,n,`${n}_voronoi`,2,void 0,BW(r,"datum.datum")),FW(e,t),lH(e,t)})),$W=ne(((e,t)=>{const{metricAxis:n,dimension:r,color:i,lineType:a,opacity:o,padding:s,scaleType:l}=t;if(xj(e,{scaleType:l,dimension:r,padding:s}),Aj(e,re.COLOR_SCALE,i),Aj(e,re.LINE_TYPE_SCALE,a),Aj(e,re.OPACITY_SCALE,o),Sj(e,LW(t)),n&&Sj(e,LW(t),"y",n),fU(t)){const r=YH(n||"yLinear");Sj(e,LW(t),"y",r.primaryScale,r.primaryDomain),Sj(e,LW(t),"y",r.secondaryScale,r.secondaryDomain)}return e.push(...SV(t)),e})),TW=ne(((e,t)=>{var n,r;const{highlightedItem:i,legendHighlightSignals:a,name:o}=t,s=null!==(n=t.forecasts)&&void 0!==n?n:[],{facetData:l,facetGroupby:u,markOptions:c}=OW(t),d=Lj(t)||void 0!==i,f=d||(null!==(r=null==a?void 0:a.length)&&void 0!==r?r:0)>0;DW(e,s,t),MW(e,o,c,l,u),wW(e,t),e.push(...(e=>{const{color:t,lineType:n}=e,{facets:r}=ej({color:t,lineType:n}),i=[],a=fW(e);for(const t of a){const{displayOnHover:n,name:a}=t,o=n?`${a}_highlightedData`:re.FILTERED_TABLE;i.push({name:`${a}_group`,type:"group",clip:!0,from:{facet:{name:`${a}_facet`,data:o,groupby:r}},marks:pW(e,t)})}return i})(t),...dV(t));const h=IW(t);CW(e,t,h),f&&RW(e,t,c,l,u,h),d&&e.push(...KU(c,`${re.FILTERED_TABLE}ForInspect`)),kW(e,s,t)})),OW=e=>{var t;const{alternateSegmentKey:n,color:r,lineType:i,name:a,opacity:o,primarySeries:s}=e,l=null!==(t=e.forecasts)&&void 0!==t?t:[],u=!n&&l.length>0,{facets:c}=ej({color:r,lineType:i,opacity:o}),d=!!n||u,f=s?`${a}_primarySeriesFacetData`:re.FILTERED_TABLE,h=d?`${a}_with_bridges`:f;return{facetData:e.isDrawInAnimate?`${a}_drawInLerp`:h,facetGroupby:d?[...c,`${a}_segmentId`]:c,markOptions:u?Object.assign(Object.assign({},e),{metric:AU(e),alternateSegmentKey:`${a}_alternateFlag`}):e}},DW=(e,t,n)=>{for(const[r,i]of t.entries())e.push(TU($U(i,r,n)))},MW=(e,t,n,r,i)=>{e.push({name:`${t}_group`,type:"group",from:{facet:{name:`${t}_facet`,data:r,groupby:i}},marks:[...n.gradient?[jU(n,`${t}_facet`)]:[],VU(n,`${t}_facet`)]})},wW=(e,t)=>{const{isSparkline:n,linePointAnnotations:r,staticPoint:i}=t;(i||n)&&(e.push((e=>{const{name:t,metric:n,scaleType:r,dimension:i,pointSize:a}=e;return{name:`${t}_staticPointBackground`,description:`${t}_staticPointBackground`,type:"symbol",from:{data:`${t}_staticPointData`},interactive:!1,encode:{enter:{size:IU(a),fill:{signal:re.BACKGROUND_COLOR},stroke:{signal:re.BACKGROUND_COLOR},y:FU(e,n)},update:{x:Wj(r,i)}}}})(t),(e=>{const{name:t,metric:n,color:r,colorScheme:i,scaleType:a,dimension:o,pointSize:s}=e;return{name:`${t}_staticPoints`,description:`${t}_staticPoints`,type:"symbol",from:{data:`${t}_staticPointData`},interactive:!1,encode:{enter:{size:IU(s),fill:Bj(r,i),y:FU(e,n)},update:{x:Wj(a,o),opacity:CU(e)}}}})(t)),r.length>0&&e.push(...(e=>{const t=(({interactiveMarkName:e,isHighlightedByGroup:t,legendHighlightSignals:n,popoverMarkName:r})=>{const i=`datum.datum.datum.${re.SERIES_ID}`,a=e=>`${e} ? datum.opacity : datum.opacity * ${re.FADE_FACTOR}`,o=[];e&&o.push(t?{test:`length(data('${e}_highlightedData'))`,signal:a(`indexof(pluck(data('${e}_highlightedData'), '${re.SERIES_ID}'), ${i}) !== -1`)}:{test:`isValid(${e}_${re.HOVERED_ITEM})`,signal:a(`${e}_${re.HOVERED_ITEM}.${re.SERIES_ID} === ${i}`)}),o.push({test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'))`,signal:a(`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), ${i}) > -1`)},{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:a(`${re.CONTROLLED_HIGHLIGHTED_SERIES} === ${i}`)}),r&&o.push({test:`isValid(${re.SELECTED_SERIES})`,signal:a(`${re.SELECTED_SERIES} === ${i}`)});for(const e of null!=n?n:[])o.push({test:`isValid(${e})`,signal:a(`${e} === ${i}`)});return o.push({field:"opacity"}),o})(e);return(e=>e.linePointAnnotations.map(((t,n)=>(({anchor:e=["right","top","bottom","left"],matchLineColor:t=!1,textKey:n},r,i)=>({anchor:e,matchLineColor:t,textKey:null!=n?n:i.metric,index:r,name:`${i.name}Annotation${r}`,lineOptions:i}))(t,n,e))))(e).flatMap((n=>{var r;const{anchor:i,matchLineColor:a,name:o,textKey:s}=n,l=a?{field:"datum.fill"}:void 0,[u,c]=(d=`${o}_bg`,f=o,h=`${e.name}_staticPoints`,p=`datum.datum.${s}`,m=e.colorScheme,g={type:"label",size:{signal:"[width, height]"},anchor:Array.isArray(i)?i:[i],offset:[re.LINE_POINT_ANNOTATION_OFFSET]},y=l,[{name:d,type:"text",interactive:!1,from:{data:h},encode:{enter:Object.assign({text:{signal:p}},EU),update:{fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT}}},transform:[g]},{name:f,type:"text",interactive:!1,from:{data:d},encode:{enter:{fill:SU(m,y),fontSize:{signal:re.CHART_SIZE_FONT_SIZE}},update:{text:{field:"text"},x:{field:"x"},y:{field:"y"},align:{field:"align"},baseline:{field:"baseline"},opacity:{field:"opacity"},fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT}}}}]);var d,f,h,p,m,g,y;return[u,Object.assign(Object.assign({},c),{encode:Object.assign(Object.assign({},c.encode),{update:Object.assign(Object.assign({},null===(r=c.encode)||void 0===r?void 0:r.update),{opacity:t})})})]}))})(t)))},IW=e=>{var t;return(null!==(t=e.lineDirectLabels)&&void 0!==t?t:[]).map(((t,n)=>dW(t,n,e)))},CW=(e,t,n)=>{for(const r of n)e.push(...cW(t.name,r,t,t.backgroundColor,t.colorScheme))},RW=(e,t,n,r,i,a)=>{if(!a.length)return;const o=nV(n);e.push(((e,t,n)=>{var r;const{name:i}=e,a=nV(e),o=VU(Object.assign(Object.assign({},e),{name:`${i}_highlightOverlayLine`,isHoverAnimate:!1,isDrawInAnimate:!1}),`${i}_highlightOverlay_facet`);return{name:`${i}_highlightOverlay_group`,type:"group",interactive:!1,from:{facet:{name:`${i}_highlightOverlay_facet`,data:t,groupby:n}},marks:[Object.assign(Object.assign({},o),{encode:Object.assign(Object.assign({},o.encode),{update:Object.assign(Object.assign({},null===(r=o.encode)||void 0===r?void 0:r.update),{opacity:a})})})]}})(n,r,i),...a.flatMap((e=>cW(t.name,e,t,t.backgroundColor,t.colorScheme,o))))},kW=(e,t,n)=>{for(const[r,i]of t.entries())e.push(...OU($U(i,r,n)))},LW=e=>{const t=[AU(e)];return fW(e).forEach((e=>{e.scaleAxisToFit&&t.push(e.metricStart,e.metricEnd)})),t},NW=(e,t)=>[{name:`${e}_segmented`,source:re.FILTERED_TABLE,transform:[{type:"window",groupby:[re.SERIES_ID],sort:{field:t,order:"ascending"},ops:["lag"],fields:[`${e}_alternateFlag`],params:[1],as:[`${e}_prevAlternateFlag`]},{type:"formula",as:`${e}_isSegmentBreak`,expr:`datum.${e}_prevAlternateFlag !== null && datum.${e}_alternateFlag !== datum.${e}_prevAlternateFlag ? 1 : 0`},{type:"window",groupby:[re.SERIES_ID],sort:{field:t,order:"ascending"},ops:["sum"],fields:[`${e}_isSegmentBreak`],frame:[null,0],as:[`${e}_segmentId`]}]},{name:`${e}_bridge`,source:`${e}_segmented`,transform:[{type:"filter",expr:`datum.${e}_isSegmentBreak === 1`},{type:"formula",as:`${e}_segmentId`,expr:`datum.${e}_segmentId - 1`},{type:"formula",as:`${e}_alternateFlag`,expr:`!datum.${e}_alternateFlag`}]},{name:`${e}_with_bridges`,source:[`${e}_segmented`,`${e}_bridge`],transform:[{type:"collect",sort:{field:t,order:"ascending"}}]}],FW=(e,t)=>{const{interactionMode:n,name:r,primarySeries:i}=t;if(n!==re.INTERACTION_MODE.ITEM)return;const a=BW(i,"datum");for(const t of Zj(r))yH(e,r,t,1,void 0,a)},BW=(e,t)=>e?DU(e,t):void 0,jW=ne(((e,{colorScheme:t=re.DEFAULT_COLOR_SCHEME,highlightedItem:n,idKey:r,index:i=0,name:a,marks:o=[],dimension:s=re.DEFAULT_TIME_DIMENSION})=>{let{barCount:l,lineCount:u}=HW();const c=(0,ae.toCamelCase)(a||`combo${i}`),d=o.map((e=>{switch(e.markType){case"bar":return l++,zW(e,c,l);case"line":return u++,zW(e,c,u);default:return""}}));return l=-1,u=-1,e=[...o].reduce(((e,i,a)=>{let o;const c=d.filter(((e,t)=>t!==a));return"bar"===i.markType?(l++,o=d[a],FV(e,Object.assign(Object.assign({},i),{colorScheme:t,comboSiblingNames:c,highlightedItem:n,idKey:r,index:l,name:o,dimension:UW(i,s)}))):(u++,o=d[a],mW(e,Object.assign(Object.assign({},i),{colorScheme:t,comboSiblingNames:c,highlightedItem:n,idKey:r,index:u,name:o,dimension:UW(i,s)})))}),e),e})),HW=()=>({barCount:-1,lineCount:-1}),zW=(e,t,n)=>{if(e.name)return e.name;const r=PW(e.markType);return(0,ae.combineNames)(t,`${r}${n}`)},PW=e=>e?e.charAt(0).toUpperCase()+e.slice(1):"",UW=(e,t)=>{var n;return null!==(n=e.dimension)&&void 0!==n?n:t};const VW=e=>{if(e.donutSummaries.length)return WW(e.donutSummaries[0],e)},WW=(e,t)=>{var{numberFormat:n="shortNumber",hideValue:r=!1}=e,i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["numberFormat","hideValue"]);return Object.assign({donutOptions:t,hideValue:r,numberFormat:n},i)},GW=e=>{const{donutOptions:t,label:n}=e;return{update:{x:{signal:"width / 2"},y:{signal:"height / 2"},text:qW(e),fontSize:[{test:`${re.DONUT_RADIUS} * ${t.holeRatio} < ${re.DONUT_SUMMARY_MIN_RADIUS}`,value:0},{signal:`${t.name}_summaryFontSize`}],fontWeight:{value:800},align:{value:"center"},baseline:YW(n),limit:KW(e)}}},qW=({donutOptions:e,numberFormat:t})=>e.isBoolean?{signal:`format(datum['${e.metric}'], '.0%')`}:[...QH(t,"sum"),{field:"sum"}],YW=e=>e?{value:"alphabetic"}:{value:"middle"},KW=({donutOptions:e,label:t})=>{const{holeRatio:n,name:r}=e,i=t?`${r}_summaryFontSize`:`${r}_summaryFontSize * 0.5`;return{signal:`2 * sqrt(pow(${re.DONUT_RADIUS} * ${n}, 2) - pow(${i}, 2))`}},JW=({donutOptions:e,hideValue:t,label:n})=>{const r=t?.25:.75,i=`2 * sqrt(pow(${re.DONUT_RADIUS} * ${e.holeRatio}, 2) - pow(${e.name}_summaryFontSize * ${r}, 2))`;return{update:Object.assign(Object.assign({x:{signal:"width / 2"},y:{signal:"height / 2"}},!t&&{dy:{signal:`ceil(${e.name}_summaryFontSize * 0.25)`}}),{text:{value:n},fontSize:[{test:`${re.DONUT_RADIUS} * ${e.holeRatio} < ${re.DONUT_SUMMARY_MIN_RADIUS}`,value:0},{signal:`ceil(${e.name}_summaryFontSize * 0.5)`}],fontWeight:{value:700},align:{value:"center"},baseline:{value:t?"middle":"top"},limit:{signal:i}})}},XW=e=>`length(data('${re.FILTERED_TABLE}')) === 0 || !data('${e}_sumData')[0]['sum']`;const ZW=(e,t)=>{var{percent:n=!1,percentFormat:r=".0%",value:i=!1,valueFormat:a="standardNumber"}=e,o=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["percent","percentFormat","value","valueFormat"]);return Object.assign({donutOptions:t,percent:n,percentFormat:r,value:i,valueFormat:a},o)},QW=({labelKey:e,value:t,percent:n,donutOptions:r})=>{const{name:i,color:a}=r;return{type:"text",name:`${i}_segmentLabel`,from:{data:re.FILTERED_TABLE},encode:{enter:Object.assign(Object.assign({},tG(i)),{text:[{test:XW(i),value:""},{field:null!=e?e:a}],fill:{value:(0,ie.getS2ColorValue)("gray-700",r.colorScheme)},dy:t||n?{signal:`datum['${i}_arcTheta'] <= 0.5 * PI || datum['${i}_arcTheta'] >= 1.5 * PI ? -16 : 0`}:void 0}),update:nG}}},eG=e=>{var t;if(!e.value&&!e.percent)return[];const{donutOptions:n}=e,r=null!==(t=rG(e))&&void 0!==t?t:[],i=Array.isArray(r)?r:[r];return[{type:"text",name:`${n.name}_segmentLabelValue`,from:{data:re.FILTERED_TABLE},encode:{enter:Object.assign(Object.assign({},tG(n.name,16)),{text:[{test:XW(n.name),value:""},...i],fontWeight:{value:"bold"},fill:{value:(0,ie.getS2ColorValue)("gray-700",n.colorScheme)},dy:{signal:`datum['${n.name}_arcTheta'] <= 0.5 * PI || datum['${n.name}_arcTheta'] >= 1.5 * PI ? 0 : 16`}}),update:nG}}]},tG=(e,t=14)=>({radius:{signal:`${re.DONUT_RADIUS} + 6`},theta:{field:`${e}_arcTheta`},fontSize:iG(e,t),align:{signal:`datum['${e}_arcTheta'] <= PI ? 'left' : 'right'`},baseline:{signal:`datum['${e}_arcTheta'] <= 0.5 * PI || datum['${e}_arcTheta'] >= 1.5 * PI ? 'bottom' : 'top'`}}),nG={x:{signal:"width / 2"},y:{signal:"height / 2"}},rG=({donutOptions:e,percent:t,percentFormat:n,value:r,valueFormat:i})=>{const a=`format(datum['${e.name}_arcPercent'], '${n}')`;if(r){const n=QH(i,e.metric);return t?n.map((e=>Object.assign(Object.assign({},e),{signal:`${a} + "\\u00a0\\u00a0" + ${e.signal}`}))):n}if(t)return{signal:a}},iG=(e,t=14)=>[{test:XW(e),value:0},{test:`datum['${e}_arcLength'] < ${re.DONUT_SEGMENT_LABEL_MIN_ANGLE}`,value:0},{value:t}];const aG=ne(((e,t)=>{var n,r,i,a,{chartPopovers:o=[],chartInspects:s=[],color:l=re.DEFAULT_COLOR,colorScheme:u=re.DEFAULT_COLOR_SCHEME,donutSummaries:c=[],index:d=0,metric:f=re.DEFAULT_METRIC,name:h,startAngle:p=0,holeRatio:m=.85,isBoolean:g=!1,segmentLabels:y=[]}=t,_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["chartPopovers","chartInspects","color","colorScheme","donutSummaries","index","metric","name","startAngle","holeRatio","isBoolean","segmentLabels"]);const v=Object.assign({chartPopovers:o,chartInspects:s,color:l,colorScheme:u,donutSummaries:c,holeRatio:m,index:d,isBoolean:g,metric:f,name:(0,ae.toCamelCase)(null!=h?h:`donut${d}`),segmentLabels:y,startAngle:p},_);Lj(v)&&(e.usermeta=mj(e.usermeta,v.name)),e.data=oG(null!==(n=e.data)&&void 0!==n?n:[],v),e.scales=lG(null!==(r=e.scales)&&void 0!==r?r:[],v),e.marks=uG(null!==(i=e.marks)&&void 0!==i?i:[],v),e.signals=cG(null!==(a=e.signals)&&void 0!==a?a:[],v)})),oG=ne(((e,t)=>{var n,r;const{name:i,isBoolean:a}=t,o=e.findIndex((e=>e.name===re.FILTERED_TABLE));var s;e[o].transform=null!==(n=e[o].transform)&&void 0!==n?n:[],null===(r=e[o].transform)||void 0===r||r.push(...sG(t)),a&&e.push({name:`${i}_booleanData`,source:re.FILTERED_TABLE,transform:[{type:"window",ops:["row_number"],as:[`${i}_rscRowIndex`]},{type:"filter",expr:`datum.${i}_rscRowIndex === 1`}]}),e.push((({metric:e,name:t})=>({name:`${t}_sumData`,source:re.FILTERED_TABLE,transform:[{type:"aggregate",fields:[e],ops:["sum"],as:["sum"]}]}))(t)),e.push(...(s=t,!VW(s)||s.isBoolean?[]:[{name:`${s.name}_summaryData`,source:re.FILTERED_TABLE,transform:[{type:"aggregate",fields:[s.metric],ops:["sum"],as:["sum"]}]}]))})),sG=({startAngle:e,metric:t,name:n})=>[{type:"pie",field:t,startAngle:e,endAngle:{signal:`${e} + 2 * PI`},as:[`${n}_startAngle`,`${n}_endAngle`]},{type:"formula",as:`${n}_arcTheta`,expr:`(datum['${n}_startAngle'] + datum['${n}_endAngle']) / 2`},{type:"formula",as:`${n}_arcLength`,expr:`datum['${n}_endAngle'] - datum['${n}_startAngle']`},{type:"formula",as:`${n}_arcPercent`,expr:`datum['${n}_arcLength'] / (2 * PI)`}],lG=ne(((e,t)=>{const{color:n}=t;var r;Aj(e,re.COLOR_SCALE,n),e.push(...(r=t,VW(r)?[{name:`${r.name}_summaryFontSizeScale`,type:"threshold",domain:[32,36,40,45,50,60],range:[28,32,36,40,45,50,60]}]:[]))})),uG=ne(((e,t)=>{e.push((e=>{const{colorScheme:t,holeRatio:n,name:r}=e;return{type:"arc",name:`${r}_emptyState`,description:`${r}_emptyState`,interactive:!1,encode:{enter:{fill:{value:(0,ie.getS2ColorValue)("gray-200",t)},x:{signal:"width / 2"},y:{signal:"height / 2"},startAngle:{value:0},endAngle:{signal:"2 * PI"}},update:{innerRadius:{signal:`${n} * ${re.DONUT_RADIUS}`},outerRadius:{signal:re.DONUT_RADIUS},opacity:[{test:XW(r),value:1},{value:0}]}}}})(t),(e=>{const{chartPopovers:t,chartInspects:n,color:r,colorScheme:i,holeRatio:a,idKey:o,name:s}=e;return{type:"arc",name:s,description:s,from:{data:re.FILTERED_TABLE},encode:{enter:{fill:Bj(r,i),x:{signal:"width / 2"},y:{signal:"height / 2"},tooltip:Rj(n,s),stroke:{value:(0,ie.getS2ColorValue)("static-blue",i)}},update:{startAngle:{field:`${s}_startAngle`},endAngle:{field:`${s}_endAngle`},padAngle:{value:.01},innerRadius:{signal:`${a} * ${re.DONUT_RADIUS}`},outerRadius:{signal:re.DONUT_RADIUS},opacity:[{test:XW(s),value:0},...eH(e)],cursor:Cj(t),strokeWidth:[{test:`${re.SELECTED_ITEM} === datum.${o}`,value:2},{value:0}]}}}})(t),...(e=>{const t=VW(e);if(!t)return[];const n=[];return e.isBoolean?n.push((e=>{var t,n;const{donutOptions:r,hideValue:i,label:a}=e,o={type:"group",name:`${r.name}_percentText`,marks:[]};return i||null===(t=o.marks)||void 0===t||t.push({type:"text",name:`${r.name}_booleanSummaryValue`,from:{data:`${r.name}_booleanData`},encode:GW(e)}),a&&(null===(n=o.marks)||void 0===n||n.push({type:"text",name:`${r.name}_booleanSummaryLabel`,from:{data:`${r.name}_booleanData`},encode:JW(Object.assign(Object.assign({},e),{label:a}))})),o})(t)):n.push((e=>{var t,n;const{donutOptions:r,hideValue:i,label:a}=e,o={type:"group",name:`${r.name}_summaryGroup`,marks:[]};return i||null===(t=o.marks)||void 0===t||t.push({type:"text",name:`${r.name}_summaryValue`,from:{data:`${r.name}_summaryData`},encode:GW(e)}),a&&(null===(n=o.marks)||void 0===n||n.push({type:"text",name:`${r.name}_summaryLabel`,from:{data:`${r.name}_summaryData`},encode:JW(Object.assign(Object.assign({},e),{label:a}))})),o})(t)),n})(t),...(e=>{const{isBoolean:t,name:n}=e;if(t)return[];const r=(e=>{if(e.segmentLabels.length)return ZW(e.segmentLabels[0],e)})(e);return r?[{name:`${n}_segmentLabelGroup`,type:"group",marks:[QW(r),...eG(r)]}]:[]})(t))})),cG=ne(((e,t)=>{var n;const{chartInspects:r,name:i}=t;e.push(...(e=>{if(!VW(e))return[];const{name:t,holeRatio:n}=e;return[{name:`${t}_summaryFontSize`,update:`scale('${t}_summaryFontSizeScale', ${re.DONUT_RADIUS} * ${n} * ${re.DONUT_SUMMARY_FONT_SIZE_RATIO})`}]})(t)),Lj(t)&&yH(e,i,void 0,1,null===(n=r[0])||void 0===n?void 0:n.excludeDataKeys)})),dG=e=>e.map(((e,t)=>{var n;return Object.assign(Object.assign({},e),{name:null!==(n=e.name)&&void 0!==n?n:`legend${t}`})})).filter((e=>e.highlight)).map((e=>`${e.name}_${re.HOVERED_SERIES}`)),fG=(e,t,n,r,i)=>{if(null==i?void 0:i.length){const t=e.find((e=>"aggregate"===e.type));t&&Array.isArray(t.groupby)&&t.groupby.push(r)}const a=e.find((e=>"formula"===e.type&&"target"===e.as));a&&(a.as="conditions"),e.push({type:"formula",as:"legendHoverMatch",expr:`(isValid(${t}_${re.HOVERED_SERIES})) ? ((${n}) ? 1 : 0) : null`},{type:"formula",as:"target",expr:"isValid(datum.hoveredMatch) ? datum.hoveredMatch : isValid(datum.legendHoverMatch) ? datum.legendHoverMatch : datum.conditions"})},hG=(e,t,n,r)=>{const i=e.replace("_hoverFractionData","");t.push({type:"lookup",from:`${i}_hoverTargetData`,key:re.SERIES_ID,fields:[re.SERIES_ID],values:[r],as:[r]}),n.push({name:`${i}_hoverGroupFractionData`,source:`${i}_hoverFractionData`,transform:[{type:"aggregate",groupby:[r],fields:["fraction"],ops:["max"],as:["fraction"]}]})},pG=(e,t,n,r=!1)=>{t.length&&xG(t).filter(vG).forEach((t=>{var i,a;if((e=>(Array.isArray(e)?e:[e]).some((e=>"string"==typeof(null==e?void 0:e.signal)&&e.signal.includes(re.HOVER_FRACTION_DATA))))(null===(a=null===(i=t.encode)||void 0===i?void 0:i.update)||void 0===a?void 0:a.opacity))return;t.encode||(t.encode={update:{}}),t.encode.update||(t.encode.update={});const{update:o}=t.encode,{opacity:s}=o;if(void 0!==s){const t=Array.isArray(s)?s.at(-1):s;if(0===(null==t?void 0:t.value))return;const i=yG(e,r,n);Array.isArray(o.opacity)||(o.opacity=[]);const a=Math.max(o.opacity.length-1,0);o.opacity.splice(a,0,i)}}))},mG=(e,t,n,r=!1)=>{t.length&&xG(t).filter(_G).forEach((t=>{var i;if(!(null===(i=t.encode)||void 0===i?void 0:i.update))return;const{update:a}=t.encode;if(void 0===a.strokeWidth)return;const o=gG(e,r,n);Array.isArray(a.strokeWidth)||(a.strokeWidth=[]);const s=Math.max(a.strokeWidth.length-1,0);a.strokeWidth.splice(s,0,o)}))},gG=(e,t,n)=>t?{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`}:(null==n?void 0:n.length)?{test:`isValid(${e}_${re.HOVERED_SERIES})`,signal:`${e}_${re.HOVERED_SERIES} === datum.${e}_${re.GROUP_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`}:{test:`isValid(${e}_${re.HOVERED_SERIES})`,signal:`${e}_${re.HOVERED_SERIES} === datum.${re.SERIES_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`},yG=(e,t,n)=>t?{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}:(null==n?void 0:n.length)?{test:`isValid(${e}_${re.HOVERED_SERIES})`,signal:`${e}_${re.HOVERED_SERIES} === datum.${e}_${re.GROUP_ID} ? 1 : ${re.FADE_FACTOR}`}:{test:`isValid(${e}_${re.HOVERED_SERIES})`,signal:`${e}_${re.HOVERED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},_G=e=>{var t;const n=null===(t=e.encode)||void 0===t?void 0:t.enter;if(!n)return!1;const{fill:r,fillOpacity:i,stroke:a,strokeDash:o,strokeOpacity:s}=n,l=[r,i,a,o,s];for(const e of l)if(bG(e))return!0;return!1},vG=e=>_G(e)||(e=>Boolean(e.name)&&/(Trendline\d+|MetricRange\d+_line)$/.test(e.name))(e),bG=e=>!!(e&&"object"==typeof e&&("scale"in e||"signal"in e&&"string"==typeof e.signal&&e.signal.includes("scale("))),xG=e=>{let t=e;for(const n of e)EG(n)&&n.marks&&(t=[...t,...xG(n.marks)]);return t},EG=e=>"group"===e.type,SG=new Set([re.COLOR_SCALE,re.LINE_TYPE_SCALE,re.LINEAR_COLOR_SCALE,re.OPACITY_SCALE,"secondaryColor","secondaryLineType","secondaryOpacity","secondarySymbolShape",re.SYMBOL_SHAPE_SCALE,re.SYMBOL_SIZE_SCALE]),AG=(e,t)=>e.domain.fields.some((e=>t.includes(e.toString()))),$G=e=>Boolean("domain"in e&&e.domain&&"fields"in e.domain),TG=(e,t,n)=>{if(["left","right"].includes(e))return;const r=re.DEFAULT_LEGEND_SYMBOL_WIDTH+re.DEFAULT_LEGEND_COLUMN_PADDING,i=null!=n?n:re.DEFAULT_LEGEND_LABEL_LIMIT;return{signal:`max(1, floor(width / (min(length(data('${t}_maxLabelWidth')) > 0 ? data('${t}_maxLabelWidth')[0].maxLabelWidth : ${i}, ${i}) + ${r})))`}},OG=(e,t)=>e.length?[{type:"filter",expr:`indexof(${JSON.stringify(e)}, datum.${t}Entries) === -1`}]:[],DG=(e,t,n)=>{const r=kG(e,t),i=wG(t,n),a=MG(t.name,t.legendLabels),o=FG(t),s=BG(t);return jG([r,a,i,o,s])},MG=(e,t)=>t?{labels:{update:{text:[{test:`indexof(pluck(${e}_labels, 'seriesName'), datum.value) > -1`,signal:`${e}_labels[indexof(pluck(${e}_labels, 'seriesName'), datum.value)].label`},{signal:"datum.value"}]}}}:{},wG=(e,t)=>{var n;const{highlight:r,highlightedSeries:i,name:a,hasMouseInteraction:o,descriptions:s,chartPopovers:l}=e;return r||i||s||(null==l?void 0:l.length)||(null===(n=t.interactiveMarks)||void 0===n?void 0:n.length)?{entries:{name:`${a}_legendEntry`,interactive:!0,enter:{tooltip:CG(s,a)},update:{fill:{value:"transparent"}}},labels:{update:{opacity:IG(e,t)}},symbols:{update:{opacity:IG(e,t)}}}:o?{entries:{name:`${a}_legendEntry`,interactive:!0,enter:{fill:{value:"transparent"}}}}:{}},IG=(e,t)=>{var n;const r=[];for(const i of t.animatedMarks||[]){const t=!!(null===(n=e.keys)||void 0===n?void 0:n.length),a=t?`data('${i}_hoverGroupFractionData')`:`data('${i}_hoverFractionData')`,o=`(${a}[indexof(pluck(${a}, '${t?`${e.name}_${re.GROUP_ID}`:re.SERIES_ID}'), datum.value)] || {fraction: ${re.FADE_FACTOR}}).fraction`,s=cU(o);r.push({test:`length(${a})`,signal:`${re.FADE_FACTOR} + (1 - ${re.FADE_FACTOR}) * ${s}`})}return r.length?[...r,re.DEFAULT_OPACITY_RULE]:RG(e,t)},CG=(e,t)=>{if(null==e?void 0:e.length)return{signal:`merge(datum, {'${re.COMPONENT_NAME}': '${t}'})`}},RG=({highlight:e,highlightedItem:t,highlightedSeries:n,keys:r,chartPopovers:i,name:a},o)=>{const s=(null==r?void 0:r.length)?re.HIGHLIGHTED_GROUP:re.CONTROLLED_HIGHLIGHTED_SERIES,l=(null==r?void 0:r.length)?re.SELECTED_GROUP:re.SELECTED_SERIES,u=[];(null==i?void 0:i.length)&&u.push({test:`isValid(${l})`,signal:`${l} === datum.value ? 1 : ${re.FADE_FACTOR}`}),e&&u.push({test:`isValid(${a}_${re.HOVERED_SERIES})`,signal:`${a}_${re.HOVERED_SERIES} === datum.value ? 1 : ${re.FADE_FACTOR}`}),t&&u.push({test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'))`,signal:`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1 ? 1 : ${re.FADE_FACTOR}`}),n&&u.push({test:`isValid(${s})`,signal:`${s} === datum.value ? 1 : ${re.FADE_FACTOR}`});for(const{name:e}of o.interactiveMarks||[])u.push({test:`isValid(${e}_${re.HOVERED_ITEM})`,signal:`${e}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.value ? 1 : ${re.FADE_FACTOR}`});if(u.length)return[...u,re.DEFAULT_OPACITY_RULE]},kG=(e,t)=>{var n;const{color:r,lineType:i,lineWidth:a,name:o,opacity:s,symbolShape:l,colorScheme:u,isToggleable:c,hiddenSeries:d,keys:f}=t,h=LG({facets:e,facetType:re.SYMBOL_SHAPE_SCALE,customValue:l,name:o}),p={fillOpacity:LG({facets:e,facetType:re.OPACITY_SCALE,customValue:s,name:o}),shape:h,size:LG({facets:e,facetType:re.SYMBOL_SIZE_SCALE,name:o}),strokeDash:LG({facets:e,facetType:re.LINE_TYPE_SCALE,customValue:i,name:o}),strokeWidth:LG({facets:e,facetType:re.LINE_WIDTH_SCALE,customValue:a,name:o})},m=null!==(n=LG({facets:e,facetType:re.COLOR_SCALE,customValue:r,name:o}))&&void 0!==n?n:{value:ie.spectrum2Colors[u]["categorical-100"]},g=c||d.length>0,y=(null==f?void 0:f.length)?`indexof(pluck(data('${re.FILTERED_TABLE}'), '${o}_${re.GROUP_ID}'), datum.value) === -1`:"indexof(hiddenSeries, datum.value) !== -1",_={test:y,value:(0,ie.getS2ColorValue)(c?"gray-700":"gray-500",u)},v={test:y,value:"transparent"},b={test:y,value:ij("visibility-off")},x={fill:g?[_,m]:[m],stroke:g?[v,m]:[m],shape:g?[b,null!=h?h:{value:ij("rounded-square")}]:void 0};return{entries:{name:`${o}_legendEntry`},symbols:JSON.parse(JSON.stringify({enter:p,update:x}))}},LG=({customValue:e,facets:t,facetType:n,name:r})=>{if(e)return"string"==typeof e?{signal:`scale('${n}', data('${r}Aggregate')[datum.index].${e})`}:{value:e.value};if(!t)return;const i={color:{scale:"secondaryColor",signal:"colors"},linearColor:{scale:"secondaryColor",signal:"colors"},lineType:{scale:"secondaryLineType",signal:"lineTypes"},lineWidth:{scale:"secondaryLineWidth",signal:"lineWidths"},opacity:{scale:"secondaryOpacity",signal:"opacities"},symbolShape:{scale:"secondarySymbolShape",signal:"symbolShapes"},symbolSize:{scale:"secondarySymbolSize",signal:"symbolSizes"},symbolPathWidth:{scale:"secondarySymbolPathWidth",signal:"symbolPathWidths"}},a=t.find((e=>e.facetType===n));if(!a)return;const o=t.find((e=>e.facetType===i[n].scale));if(o){const{scale:e,signal:t}=i[n];return{signal:`scale('${t}', data('${r}Aggregate')[datum.index].${a.field})[indexof(domain('${e}'), data('${r}Aggregate')[datum.index].${o.field})% length(scale('${t}', data('${r}Aggregate')[datum.index].${a.field}))]`}}return{signal:`scale('${n}', data('${r}Aggregate')[datum.index].${a.field})`}},NG=({colorScheme:e,hiddenSeries:t,isToggleable:n,keys:r,name:i},a)=>n||t.length?(null==r?void 0:r.length)?[{test:`indexof(pluck(data('${re.FILTERED_TABLE}'), '${i}_${re.GROUP_ID}'), datum.value) === -1`,value:(0,ie.getS2ColorValue)(a,e)}]:[{test:"indexof(hiddenSeries, datum.value) !== -1",value:(0,ie.getS2ColorValue)(a,e)}]:[],FG=e=>{const{colorScheme:t,isToggleable:n}=e;return{labels:{update:{fill:n?[{value:(0,ie.getS2ColorValue)("gray-700",t)}]:[...NG(e,"gray-500"),{value:(0,ie.getS2ColorValue)("gray-700",t)}]}}}},BG=e=>{const{isToggleable:t,keys:n,name:r,hasOnClick:i,chartPopovers:a}=e;let o={};return(t&&!n||i||(null==a?void 0:a.length))&&(o={entries:{name:`${r}_legendEntry`,interactive:!0,enter:{fill:{value:"transparent"},cursor:{value:"pointer"}}}}),o},jG=e=>{let t={};for(const n of e)t=CH()(t,n);return t},HG=e=>e&&"object"==typeof e&&"value"in e?ij(e.value):"circle";const zG=ne(((e,t)=>{var n,r,i,a,o,s,{align:l,color:u,hasMouseInteraction:c=!1,hasOnClick:d=!1,hiddenEntries:f=[],hiddenSeries:h=[],highlight:p=!1,index:m=0,isToggleable:g=!1,lineType:y,lineWidth:_,position:v="bottom",symbolShape:b,colorScheme:x=re.DEFAULT_COLOR_SCHEME}=t,E=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["align","color","hasMouseInteraction","hasOnClick","hiddenEntries","hiddenSeries","highlight","index","isToggleable","lineType","lineWidth","position","symbolShape","colorScheme"]);const{formattedColor:S,formattedLineType:A,formattedLineWidth:$,formattedSymbolShape:T}=PG(u,y,_,b,x),O=`legend${m}`,D=Object.assign({align:l,color:S,hasMouseInteraction:c,hasOnClick:d,hiddenEntries:f,hiddenSeries:h,highlight:p,index:m,isToggleable:g,lineType:A,lineWidth:$,name:O,position:v,symbolShape:T,colorScheme:x},E);void 0!==l&&(e.usermeta||(e.usermeta={}),e.usermeta.patches||(e.usermeta.patches=[]),e.usermeta.patches.push({legend:{layout:{[v]:{anchor:l}}}})),e.scales=GG(null!==(n=e.scales)&&void 0!==n?n:[],D);const{ordinalFacets:M,continuousFacets:w}=E.keys?((e,t)=>{var n,r;const i=[],a=[];for(const o of t)$G(o)&&AG(o,e)&&("ordinal"===o.type||"point"===o.type?i.push({facetType:o.name,field:null===(n=o.domain.fields.find((t=>e.includes(t.toString()))))||void 0===n?void 0:n.toString()}):a.push({facetType:o.name,field:null===(r=o.domain.fields.find((t=>e.includes(t.toString()))))||void 0===r?void 0:r.toString()}));return{ordinalFacets:i,continuousFacets:a}})(E.keys,null!==(r=e.scales)&&void 0!==r?r:[]):(e=>{const t=[],n=[];for(const r of e)SG.has(r.name)&&$G(r)&&r.domain.fields.length&&("ordinal"===r.type||"point"===r.type?t.push({facetType:r.name,field:r.domain.fields[0].toString()}):n.push({facetType:r.name,field:r.domain.fields[0].toString()}));return{ordinalFacets:t,continuousFacets:n}})(null!==(i=e.scales)&&void 0!==i?i:[]),I=[];if(M.length){e.scales.push({name:`${O}Entries`,type:"ordinal",domain:{data:`${O}Aggregate`,field:`${O}Entries`}});const t=[...new Set(M.map((e=>e.field)))];e.data=YG(null!==(a=e.data)&&void 0!==a?a:[],Object.assign(Object.assign({},D),{facets:t})),e.signals=KG(null!==(o=e.signals)&&void 0!==o?o:[],D),e.marks=qG(null!==(s=e.marks)&&void 0!==s?s:[],D),I.push(UG(M,D,e.usermeta))}for(const e of w)I.push(VG(e,D));void 0===e.legends&&(e.legends=[]),e.legends.push(...I)})),PG=(e,t,n,r,i)=>{let a,o,s,l;return a=e&&"object"==typeof e?{value:(0,ie.getS2ColorValue)(e.value,i)}:e,o=t&&"object"==typeof t?{value:nj(t.value)}:t,s=n&&"object"==typeof n?{value:rj(n.value)}:n,l=r&&"object"==typeof r?{value:ij(r.value)}:r,{formattedColor:a,formattedLineType:o,formattedLineWidth:s,formattedSymbolShape:l}},UG=(e,t,n)=>{const{name:r,position:i,title:a,labelLimit:o,titleLimit:s}=t,l={fill:`${r}Entries`,direction:["top","bottom"].includes(i)?"horizontal":"vertical",orient:i,title:a,encode:DG(e,t,n),columns:TG(i,r,o),labelLimit:o};return void 0!==s&&(l.titleLimit=s),l},VG=(e,t)=>{const{symbolShape:n}=t;return e.facetType===re.SYMBOL_SIZE_SCALE?Object.assign(Object.assign({size:re.SYMBOL_SIZE_SCALE},WG(t)),{symbolType:HG(n)}):Object.assign({fill:re.LINEAR_COLOR_SCALE,gradientThickness:10},WG(t))},WG=({position:e,title:t,titleLimit:n})=>{const r={direction:["top","bottom"].includes(e)?"horizontal":"vertical",orient:e,title:t};return void 0!==n&&(r.titleLimit=n),r},GG=ne(((e,{color:t,lineType:n,opacity:r,symbolShape:i})=>{Aj(e,re.COLOR_SCALE,t),Aj(e,re.LINE_TYPE_SCALE,n),Aj(e,re.OPACITY_SCALE,r),Aj(e,re.SYMBOL_SHAPE_SCALE,i)})),qG=ne(((e,{highlight:t,keys:n,name:r})=>{t&&(pG(r,e,n),mG(r,e,n))})),YG=ne(((e,{facets:t,hiddenEntries:n,highlight:r,keys:i,name:a})=>{var o;const s=t.map((e=>`datum.${e}`)).join(' + " | " + ');e.push({name:`${a}Aggregate`,source:"table",transform:[{type:"aggregate",groupby:t},{type:"formula",as:`${a}Entries`,expr:s},...OG(n,a)]});const l=`indexof(pluck(${a}_labels, 'seriesName'), datum.${a}Entries) > -1 ? ${a}_labels[indexof(pluck(${a}_labels, 'seriesName'), datum.${a}Entries)].label : datum.${a}Entries`;if(e.push({name:`${a}_maxLabelWidth`,source:`${a}Aggregate`,transform:[{type:"formula",as:"displayLabel",expr:l},{type:"formula",as:"labelWidth",expr:"getLabelWidth(datum.displayLabel, 'normal', 14)"},{type:"aggregate",fields:["labelWidth"],ops:["max"],as:["maxLabelWidth"]}]}),null==i?void 0:i.length){const t=le(e);t.transform||(t.transform=[]),t.transform.push({type:"formula",as:`${a}_${re.GROUP_ID}`,expr:i.map((e=>`datum.${e}`)).join(' + " | " + ')})}const u=e.filter((e=>/.*(Trendline|MetricRange).*highlightedData$/.test(e.name)));for(const e of u)(null===(o=e.transform)||void 0===o?void 0:o[0])&&"expr"in e.transform[0]&&(e.transform[0].expr+=` || datum.${re.SERIES_ID} === ${a}_${re.HOVERED_SERIES}`);r&&((e,t,n)=>{const r=`${e}_${re.GROUP_ID}`,i=(null==n?void 0:n.length)?`${e}_${re.HOVERED_SERIES} === datum.${e}_${re.GROUP_ID} ? 1 : 0`:`${e}_${re.HOVERED_SERIES} === datum.${re.SERIES_ID} ? 1 : 0`;for(const a of t){const{name:o,transform:s}=a;Array.isArray(s)&&"string"==typeof o&&(o.endsWith("_hoverTargetData")&&fG(s,e,i,r,n),o.endsWith("_hoverFractionData")&&(null==n?void 0:n.length)&&hG(o,s,t,r))}})(a,e,i)})),KG=ne(((e,{hiddenSeries:t,highlight:n,isToggleable:r,keys:i,legendLabels:a,name:o})=>{n&&((e,t,n,r)=>{e.push({name:`${t}_${re.HOVERED_SERIES}`,value:null,on:[{events:`@${t}_legendEntry:mouseover`,update:hH(t,n,r)},{events:`@${t}_legendEntry:mouseout`,update:"null"}]})})(e,o,Boolean(r||t),i),e.push(pH(`${o}_labels`,null!=a?a:[]))}));const JG=e=>e.scatterPaths.map(((t,n)=>((e,t,n)=>{var{color:r="gray-500",groupBy:i,pathWidth:a={value:"M"},opacity:o=.5}=e,s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["color","groupBy","pathWidth","opacity"]),l=n.color,u=n.colorScheme,c=n.dimension,d=n.dimensionScaleType,f=n.lineType,h=n.metric,p=n.name,m=n.opacity,g=n.size;const{facets:y}=ej({color:l,lineType:f,size:g,opacity:m});return Object.assign({color:r,colorScheme:u,dimension:c,dimensionScaleType:d,groupBy:null!=i?i:y,metric:h,index:t,pathWidth:a,name:`${p}Path${t}`,opacity:o},s)})(t,n,e))),XG=({color:e,colorScheme:t,dimension:n,dimensionScaleType:r,pathWidth:i,metric:a,name:o,opacity:s})=>({name:o,type:"trail",from:{data:`${o}_facet`},encode:{enter:{fill:{value:(0,ie.getS2ColorValue)(e,t)},fillOpacity:{value:s},size:QG(i)},update:{opacity:ZG(),x:Wj(r,n),y:{scale:"yLinear",field:a}}}}),ZG=()=>[{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES}) || isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) || isValid(${re.SELECTED_SERIES}) || isValid(${re.SELECTED_ITEM})`,value:re.FADE_FACTOR},re.DEFAULT_OPACITY_RULE],QG=e=>"string"==typeof e?{scale:re.SYMBOL_PATH_WIDTH_SCALE,field:e}:{value:rj(e.value)},eq=e=>{const t=(e=>e.scatterAnnotations.map(((t,n)=>(({anchor:e=["right","top","bottom","left"],textKey:t},n,r)=>({anchor:e,textKey:null!=t?t:r.metric,index:n,name:`${r.name}Annotation${n}`,scatterOptions:r}))(t,n,e))))(e),n=[];for(const e of t){const{anchor:t,name:r,textKey:i}=e;n.push({name:r,type:"text",from:{data:e.scatterOptions.name},encode:{enter:{text:{signal:`datum.datum.${i}`}},update:{fillOpacity:{signal:"datum.opacity"}}},transform:[{type:"label",size:{signal:"[width, height]"},anchor:Array.isArray(t)?t:[t]}]})}return n},tq=ne(((e,t)=>{var n;const{name:r}=t,i={name:`${r}_group`,type:"group",clip:null!==(n=t.clip)&&void 0!==n&&n,marks:[nq(t),...eq(t),...iq(t),...aq(t)]};e.push(...(e=>{const t=[],n=JG(e);for(const e of n){const{groupBy:n,name:r}=e;t.push({name:`${r}_group`,type:"group",from:{facet:{name:`${r}_facet`,data:re.FILTERED_TABLE,groupby:n}},marks:[XG(e)]})}return t})(t),i,...dV(t))})),nq=e=>{const{blend:t,color:n,colorScaleType:r,colorScheme:i,dimension:a,dimensionScaleType:o,lineType:s,lineWidth:l,metric:u,name:c,opacity:d,size:f,stroke:h}=e,p=((e,t)=>{if("normal"!==e)return e?{value:e}:{value:"light"===t?"multiply":"screen"}})(t,i);return{name:c,description:c,type:"symbol",from:{data:re.FILTERED_TABLE},encode:{enter:Object.assign(Object.assign({},p&&{blend:p}),{fill:Bj(n,i,r),fillOpacity:zj(d),shape:{value:"circle"},size:Pj(f),strokeDash:Uj(s),strokeWidth:Hj(l),stroke:Bj(null!=h?h:n,i,r)}),update:{opacity:rq(e),x:Wj(o,a),y:{scale:"yLinear",field:u}}}}},rq=e=>{const{highlightedItem:t,idKey:n}=e;if(!Lj(e)&&void 0===t)return[re.DEFAULT_OPACITY_RULE];const r=[];return cH(r,e),Nj(e)&&r.push({test:`isValid(${re.SELECTED_ITEM})`,signal:`${re.SELECTED_ITEM} === datum.${n} ? 1 : ${re.FADE_FACTOR}`}),[...r,re.DEFAULT_OPACITY_RULE]},iq=e=>{const{dimension:t,dimensionScaleType:n,highlightedItem:r,metric:i,name:a}=e;return Lj(e)||void 0!==r?[qj(`${re.FILTERED_TABLE}ForInspect`,t,i,a,n),Yj(e,`${a}_pointsForVoronoi`)]:[]},aq=e=>{const{dimension:t,dimensionScaleType:n,metric:r,name:i,size:a}=e;return Nj(e)?[{name:`${i}_selectRing`,type:"symbol",from:{data:`${i}_selectedData`},encode:{enter:{fill:{value:"transparent"},shape:{value:"circle"},size:oq(a),strokeWidth:{value:2},stroke:{value:ie.spectrumColors.light["static-blue"]}},update:{x:Wj(n,t),y:{scale:"yLinear",field:r}}}}]:[]},oq=e=>{const t=Pj(e);return"value"in t&&"number"==typeof t.value?{value:Math.pow(Math.sqrt(t.value)+4,2)}:"scale"in t&&"field"in t?{signal:`pow(sqrt(scale('${t.scale}', datum.${t.field})) + 4, 2)`}:t};const sq=ne(((e,t)=>{var n,r,i,a,{chartPopovers:o=[],chartInspects:s=[],color:l={value:"categorical-100"},colorScaleType:u="ordinal",colorScheme:c=re.DEFAULT_COLOR_SCHEME,dimension:d=re.DEFAULT_LINEAR_DIMENSION,dimensionScaleType:f=re.DEFAULT_DIMENSION_SCALE_TYPE,index:h=0,lineType:p={value:"solid"},lineWidth:m={value:0},metric:g=re.DEFAULT_METRIC,name:y,opacity:_={value:1},scatterAnnotations:v=[],scatterPaths:b=[],size:x={value:"M"},trendlines:E=[],stroke:S,blend:A}=t,$=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["chartPopovers","chartInspects","color","colorScaleType","colorScheme","dimension","dimensionScaleType","index","lineType","lineWidth","metric","name","opacity","scatterAnnotations","scatterPaths","size","trendlines","stroke","blend"]);const T=(0,ae.toCamelCase)(y||`scatter${h}`),O=Object.assign({blend:A,chartPopovers:o,chartInspects:s,color:l,colorScaleType:u,colorScheme:c,dimension:d,dimensionScaleType:f,index:h,interactiveMarkName:tH({chartPopovers:o,chartInspects:s,highlightedItem:$.highlightedItem,trendlines:E},T),lineType:p,lineWidth:m,metric:g,stroke:S,name:T,opacity:_,scatterAnnotations:v,scatterPaths:b,size:x,trendlines:E},$);e.usermeta=mj(e.usermeta,O.interactiveMarkName),e.data=lq(null!==(n=e.data)&&void 0!==n?n:[],O),e.signals=uq(null!==(r=e.signals)&&void 0!==r?r:[],O),e.scales=cq(null!==(i=e.scales)&&void 0!==i?i:[],O),e.marks=tq(null!==(a=e.marks)&&void 0!==a?a:[],O)})),lq=ne(((e,t)=>{var n;const{chartInspects:r,dimension:i,dimensionScaleType:a,highlightedItem:o,idKey:s,name:l}=t;if("time"===a){const t=le(e);t.transform=oe(null!==(n=t.transform)&&void 0!==n?n:[],i)}(Lj(t)||void 0!==o)&&e.push(de(r)),Nj(t)&&e.push({name:`${l}_selectedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`${re.SELECTED_ITEM} === datum.${s}`}]}),iH(e,t),eU(e,t)})),uq=ne(((e,t)=>{const{name:n}=t;AV(e,t),Lj(t)&&(yH(e,n,`${n}_voronoi`,2),lH(e,t))})),cq=ne(((e,t)=>{const{color:n,colorScaleType:r,dimension:i,dimensionScaleType:a,lineType:o,lineWidth:s,metric:l,opacity:u,size:c}=t;xj(e,{scaleType:a,dimension:i}),Sj(e,[l]),Aj(e,"linear"===r?re.LINEAR_COLOR_SCALE:re.COLOR_SCALE,n),Aj(e,re.LINE_TYPE_SCALE,o),Aj(e,re.LINE_WIDTH_SCALE,s),Aj(e,re.OPACITY_SCALE,u),Aj(e,re.SYMBOL_SIZE_SCALE,c),((e,t)=>{const n=JG(t);for(const t of n)Aj(e,re.SYMBOL_PATH_WIDTH_SCALE,t.pathWidth)})(e,t),e.push(...SV(t))})),dq={fontWeight:re.DEFAULT_TITLE_FONT_WEIGHT,fontSize:18,position:"middle",orient:"top"},fq={fontWeight:700,fontSize:24,position:"start"},hq=ne(((e,t)=>{const{text:n,fontWeight:r,fontSize:i,position:a,orient:o}=(e=>Object.assign(Object.assign(Object.assign({},dq),fq),e))(t);return e.title={text:n,fontWeight:r,fontSize:i,anchor:a,frame:"group",orient:o},e}));var pq=a(561);function mq(e){var t,n=function(e){for(var t=[],n=0;n<e.length;++n)for(var r=n+1;r<e.length;++r){let o=e[n],s=e[r];if(o&&s)for(var i=vq(o,s),a=0;a<i.length;++a){let e=i[a];e&&t.push({...e,parentIndex:[n,r]})}}return t}(e),r=n.filter((function(t){return function(e,t){for(var n=0;n<t.length;++n){let r=t[n];if(void 0!==r&&yq(e,r)>r.radius+1e-10)return!1}return!0}(t,e)})),i=0,a=0,o=[];if(r.length>1){var s=bq(r);r=r.map((e=>({...e,angle:Math.atan2(e.x-s.x,e.y-s.y)}))).sort(((e,t)=>t.angle-e.angle));var l=r[r.length-1];for(t=0;t<r.length;++t){var u=r[t];a+=(l.x+u.x)*(u.y-l.y);for(var c={x:(u.x+l.x)/2,y:(u.y+l.y)/2},d=null,f=0;f<u.parentIndex.length;++f)if(l.parentIndex.indexOf(u.parentIndex[f])>-1){var h=e[u.parentIndex[f]],p=Math.atan2(u.x-h.x,u.y-h.y),m=Math.atan2(l.x-h.x,l.y-h.y),g=m-p;g<0&&(g+=2*Math.PI);var y=m-g/2,_=yq(c,{x:h.x+h.radius*Math.sin(y),y:h.y+h.radius*Math.cos(y)});_>2*h.radius&&(_=2*h.radius),(null===d||d.width>_)&&(d={circle:h,width:_,p1:u,p2:l})}null!==d&&(o.push(d),i+=gq(d.circle.radius,d.width),l=u)}}else{var v=e[0];for(t=1;t<e.length;++t){let n=e[t];(null==v||n.radius<v.radius)&&(v=n)}var b=!1;for(t=0;t<e.length;++t){let n=e[t];if(void 0!==n&&yq(n,v)>Math.abs(v.radius-n.radius)){b=!0;break}}b?i=a=0:(i=v.radius*v.radius*Math.PI,o.push({circle:v,p1:{x:v.x,y:v.y+v.radius},p2:{x:v.x-1e-10,y:v.y+v.radius},width:2*v.radius}))}return{overlap:i+(a/=2),stats:{area:i+a,arcArea:i,polygonArea:a,arcs:o,innerPoints:r,intersectionPoints:n}}}function gq(e,t){return e*e*Math.acos(1-t/e)-(e-t)*Math.sqrt(t*(2*e-t))}function yq(e,t){return Math.sqrt((e.x-t.x)*(e.x-t.x)+(e.y-t.y)*(e.y-t.y))}function _q(e,t,n){if(n>=e+t)return 0;if(n<=Math.abs(e-t))return Math.PI*Math.min(e,t)*Math.min(e,t);var r=t-(n*n-e*e+t*t)/(2*n);return gq(e,e-(n*n-t*t+e*e)/(2*n))+gq(t,r)}function vq(e,t){var n=yq(e,t),r=e.radius,i=t.radius;if(n>=r+i||n<=Math.abs(r-i))return[];var a=(r*r-i*i+n*n)/(2*n),o=Math.sqrt(r*r-a*a),s=e.x+a*(t.x-e.x)/n,l=e.y+a*(t.y-e.y)/n,u=-(t.y-e.y)*(o/n),c=-(t.x-e.x)*(o/n);return[{x:s+u,y:l-c},{x:s-u,y:l+c}]}function bq(e){let t=e.reduce(((e,t)=>({x:e.x+t.x,y:e.y+t.y})),{x:0,y:0});return t.x/=e.length,t.y/=e.length,t}var xq=new Map([["greedy",Tq],["MDS",$q],["best",function(e,t){var n=Tq(e),r=Oq;if(e.length>=8){var i=$q(e,t);r(i,e)+1e-8<r(n,e)&&(n=i)}return n}]]),Eq=1e-10;function Sq(e,t,n){return Math.min(e,t)*Math.min(e,t)*Math.PI<=n+Eq?Math.abs(e-t):(0,pq.bisect)((function(r){return _q(e,t,r)-n}),0,e+t)}function Aq(e,t,n,r){var i,a=0;for(i=0;i<t.length;++i)t[i]=0;for(i=0;i<n.length;++i)for(var o=e[2*i],s=e[2*i+1],l=i+1;l<n.length;++l){var u=e[2*l],c=e[2*l+1],d=n[i][l],f=r[i][l],h=(u-o)*(u-o)+(c-s)*(c-s),p=Math.sqrt(h),m=h-d*d;f>0&&p<=d||f<0&&p>=d||(a+=2*m*m,t[2*i]+=4*m*(o-u),t[2*i+1]+=4*m*(s-c),t[2*l]+=4*m*(u-o),t[2*l+1]+=4*m*(c-s))}return a}function $q(e,t){var n,r=t.restarts||10,i=[],a={};for(n=0;n<e.length;++n){var o=e[n];1===o?.sets.length&&(o.sets[0]&&(a[o.sets[0]]=i.length),i.push(o))}var s=function(e,t,n){var r=(0,pq.zerosM)(t.length,t.length),i=(0,pq.zerosM)(t.length,t.length);return e.filter((function(e){return 2===e.sets.length})).map((function(e){var a=n[e.sets[0]],o=n[e.sets[1]];if(void 0===a||void 0===o)return e;var s=Sq(Math.sqrt(t[a].size/Math.PI),Math.sqrt(t[o].size/Math.PI),e.size);r[a][o]=r[o][a]=s;var l=0;e.size+1e-10>=Math.min(t[a].size,t[o].size)?l=1:e.size<=1e-10&&(l=-1),i[a][o]=i[o][a]=l})),{distances:r,constraints:i}}(e,i,a),l=s.distances,u=s.constraints,c=(0,pq.norm2)(l.map(pq.norm2))/l.length;l=l.map((function(e){return e.map((function(e){return e/c}))}));let d=function(e=1){return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}((t.seed??Math.random())*2**32>>>0);var f,h;for(n=0;n<r;++n){var p=(0,pq.zeros)(2*l.length).map((()=>d()));h=(0,pq.conjugateGradient)(((e,t)=>Aq(e,t,l,u)),p,t),(!f||h.fx<f.fx)&&(f=h)}var m=f?.x,g={};for(n=0;n<i.length;++n){var y=i[n];let e=y?.sets[0];void 0===y||void 0===e||(g[e]={x:m[2*n]*c,y:m[2*n+1]*c,radius:Math.sqrt(y.size/Math.PI),setid:e,size:y.size,rowid:Object.keys(g).length})}if(t.history)for(let e of t.history)(0,pq.scale)(e.x,c);return g}function Tq(e,t){for(var n,r=Oq,i={},a={},o=0;o<e.length;++o){var s=e[o];1==s.sets.length&&(n=s.sets[0],i[n]={x:1e10,y:1e10,rowid:Object.keys(i).length,size:s.size,setid:n,radius:Math.sqrt(s.size/Math.PI)},a[n]=[])}for(e=e.filter((function(e){return 2==e.sets.length})),o=0;o<e.length;++o){var l=e[o],u=l.weight?l.weight:1,c=l.sets[0],d=l.sets[1];if(void 0===c||void 0===d)continue;let t=i[c],n=i[d];!t.size||!n.size||(l.size+Eq>=Math.min(t.size,n.size)&&(u=0),a[c]?.push({set:d,size:l.size,weight:u}),a[d]?.push({set:c,size:l.size,weight:u}))}var f=[];for(n in a){let e=a[n];if(e){var h=0;for(o=0;o<e.length;++o){let t=e[o];t&&(h+=t.size*t.weight)}f.push({set:n,size:h})}}f.sort(((e,t)=>t.size-e.size));var p={};function m(e){return e.set in p}function g(e,t){let n=i[t];n&&(n.x=e.x,n.y=e.y),p[t]=!0}for(g({x:0,y:0},f[0]?.set??""),o=1;o<f.length;++o){var y=f[o]?.set,_=y?a[y]?.filter(m):null;let t=y?i[y]:null;if(_?.sort(((e,t)=>t.size-e.size)),0===_?.length||!_)throw"ERROR: missing pairwise overlap information";for(var v=[],b=0;b<_.length;++b){let e=_[b];if(!e)continue;var x=i[_[b].set];if(!x)continue;let n=Sq(t.radius,x.radius,e.size);v.push({x:x.x+n,y:x.y}),v.push({x:x.x-n,y:x.y}),v.push({y:x.y+n,x:x.x}),v.push({y:x.y-n,x:x.x});for(var E=b+1;E<_.length;++E)for(var S=i[_[E].set],A=Sq(t.radius,S.radius,_[E].size),$=vq({x:x.x,y:x.y,radius:n},{x:S.x,y:S.y,radius:A}),T=0;T<$.length;++T)v.push($[T])}var O=1e50,D=v[0];for(b=0;b<v.length;++b){i[y].x=v[b].x,i[y].y=v[b].y;var M=r(i,e);M<O&&(O=M,D=v[b])}g(D,y)}return i}function Oq(e,t){for(var n,r=0,i=0;i<t.length;++i){var a,o=t[i];if(o&&1!==o.sets.length){if(2===o.sets.length){var s=e[o.sets[0]],l=e[o.sets[1]];if(void 0===s||void 0===l)continue;a=_q(s.radius,l.radius,yq(s,l))}else a=mq((n=o.sets,n.map((function(t){return e[t]})))).overlap;r+=(o.weight?o.weight:1)*(a-o.size)*(a-o.size)}}return r}function Dq(e,t,n){var r;if(null===n?e.sort((function(e,t){return t.radius-e.radius})):e.sort(n),e.length>0){var i=e[0].x,a=e[0].y;for(r=0;r<e.length;++r)e[r].x-=i,e[r].y-=a}if(2==e.length){let t=e[0],n=e[1];t&&n&&yq(t,n)<Math.abs(n.radius-t.radius)&&(n.x=t.x+t.radius-n.radius-1e-10,n.y=n.y)}if(e.length>1){var o,s,l=Math.atan2(e[1].x,e[1].y)-(t??0),u=Math.cos(l),c=Math.sin(l);for(r=0;r<e.length;++r){let t=e[r];t&&(o=t.x,s=t.y,t.x=u*o-c*s,t.y=c*o+u*s)}}if(e.length>2){for(var d=Math.atan2(e[2].x,e[2].y)-(t??0);d<0;)d+=2*Math.PI;for(;d>2*Math.PI;)d-=2*Math.PI;if(d>Math.PI){var f=e[1].y/(1e-10+e[1].x);for(r=0;r<e.length;++r){let t=e[r];if(t){var h=(t.x+f*t.y)/(1+f*f);t.x=2*h-t.x,t.y=2*h*f-t.y}}}}}function Mq(e){var t=function(t){return{max:Math.max.apply(null,e.map((function(e){return e[t]+e.radius}))),min:Math.min.apply(null,e.map((function(e){return e[t]-e.radius})))}};return{xRange:t("x"),yRange:t("y")}}function wq(e,{layout:t,height:n,width:r,padding:i,seed:a,orientation:o,set_id_delimiter:s,orientationOrder:l}){let u=e.filter((e=>0!==e.size&&e.sets.length>0));if(0===u.length)return{circles:[],intersections:[]};let c=function(e,t){(t=t??{}).maxIterations=t.maxIterations||500,t.seed=t.seed??Math.random();let n=xq.get(t.layout??"best");var r=Oq;e=function(e){e=e.slice();var t,n,r,i,a=[],o={};for(let t of e)1==t.sets.length?a.push(t.sets[0]):2==t.sets.length&&(o[`${r=t.sets[0]},${i=t.sets[1]}`]=!0,o[`${i},${r}`]=!0);for(a.sort(((e,t)=>e.toString().localeCompare(t.toString()))),t=0;t<a.length;++t)for(r=a[t],n=t+1;n<a.length;++n)`${r},${i=a[n]}`in o||e.push({sets:[r,i],size:0});return e}(e);var i=n(e,t),a=[],o=[];for(let e of Object.keys(i)){let t=i[e];t&&(a.push(t.x),a.push(t.y),o.push(e))}for(var s=(0,pq.nelderMead)((function(t){for(var n={},a=0;a<o.length;++a){var s=o[a];let e=i[s];n[s]={x:t[2*a],y:t[2*a+1],radius:e.radius,setid:s,size:e.size,rowid:e.rowid}}return r(n,e)}),a,t),l=s.x,u=0;u<o.length;++u){let e=o[u],t=i[e];t.x=l[2*u],t.y=l[2*u+1]}return i}(u,{layout:t,seed:a});o!==Math.PI/2&&(c=function(e,t,n){null===t&&(t=Math.PI/2);var r,i,a=[];for(i in e){var o=e[i];o&&a.push({...o,setid:i})}var s=function(e){function t(e){if(e)return e.parent!==e&&(e.parent=t(e.parent)),e.parent}function n(e,n){var r=t(e),i=t(n);r&&(r.parent=i)}e.map((function(e){e.parent=e}));for(var r=0;r<e.length;++r)for(var i=r+1;i<e.length;++i){let t=e[r],o=e[i];if(t&&o){var a=t.radius+o.radius;yq(t,o)+1e-10<a&&n(o,t)}}var o,s={};for(r=0;r<e.length;++r){let n=e[r];if(!n)continue;let i=t(e[r])?.parent?.setid;i&&(i in s||(s[i]=[]),s[i]&&s[i].push(n))}e.map((function(e){delete e.parent}));var l=[];for(o in s){let e=s[o];e&&l.push(e)}return l}(a);for(r=0;r<s.length;++r){let e=s[r];if(e){Dq(e,t,n);var l=Mq(e);e.size=(l.xRange.max-l.xRange.min)*(l.yRange.max-l.yRange.min),e.bounds=l}}s.sort((function(e,t){return e.size&&t.size?t.size-e.size:0}));var u=s[0].bounds,c=(u.xRange.max-u.xRange.min)/50;function d(e,t,n){if(e&&e.size&&e.bounds){var r,i,o,s=e.bounds;t?r=u.xRange.max-s.xRange.min+c:(r=u.xRange.max-s.xRange.max,(o=(s.xRange.max-s.xRange.min)/2-(u.xRange.max-u.xRange.min)/2)<0&&(r+=o)),n?i=u.yRange.max-s.yRange.min+c:(i=u.yRange.max-s.yRange.max,(o=(s.yRange.max-s.yRange.min)/2-(u.yRange.max-u.yRange.min)/2)<0&&(i+=o));for(var l=0;l<e.length;++l){let t=e[l];t&&(t.x+=r,t.y+=i,a.push(t))}}}for(var f=1;f<s.length;)d(s[f],!0,!1),d(s[f+1],!1,!0),d(s[f+2],!0,!0),f+=3,u=Mq(a);var h={};for(let e of a)h[e.setid]=e;return h}(c,o,l)),c=function(e,t,n,r){var i=[],a=[];for(var o in e){let t=e[o];t&&(a.push(o),i.push(t))}t-=2*r,n-=2*r;var s=Mq(i),l=s.xRange,u=s.yRange;if(l.max==l.min||u.max==u.min)return e;for(var c=t/(l.max-l.min),d=n/(u.max-u.min),f=Math.min(d,c),h=(t-(l.max-l.min)*f)/2,p=(n-(u.max-u.min)*f)/2,m={},g=0;g<i.length;++g){var y=i[g];let e=a[g];!y||!e||(m[e]={...y,radius:f*y.radius,x:r+h+(y.x-l.min)*f,y:r+p+(y.y-u.min)*f})}return m}(c,r,n,i);let d=function(e,t,n=","){for(var r={},i=function(e){var t={},n=Object.keys(e);n.forEach((e=>t[e]=[]));for(var r=0;r<n.length;r++)for(var i=e[n[r]],a=r+1;a<n.length;++a){var o=e[n[a]],s=yq(i,o);s+o.radius<=i.radius+1e-10?t[n[a]].push(n[r]):s+i.radius<=o.radius+1e-10&&t[n[r]].push(n[a])}return t}(e),a=0;a<t.length;++a){for(var o=t[a].sets,s={},l={},u=0;u<o.length;++u){s[o[u]]=!0;var c=i[o[u]];if(c)for(var d=0;d<c.length;++d)l[c[d]]=!0}var f=[],h=[];for(var p in e)p in s?f.push(e[p]):p in l||h.push(e[p]);var m=Cq(f,h);r[o.join(n)]=m,m.disjoint&&t[a].size>0&&console.log("WARNING: area "+o+" not represented on screen")}return r}(c,u),f=u.map((e=>{let t=e.sets.join(","),{x:n,y:r,disjoint:i}=d[t];return{set_id:e.sets.join(s),sets:e.sets,path:Iq(e.sets.map((e=>c[e]))),textX:i?void 0:n,textY:i?void 0:r,size:e.size}})).filter((e=>e.sets.length>1));return{circles:Object.entries(c).map((([e,t])=>({set_id:e,x:t.x,y:t.y,size:Math.pow(2*t.radius,2),textX:d[e].x,textY:d[e].y}))),intersections:f}}function Iq(e){let{stats:t}=mq(e);var n=t.arcs;if(0===n.length)return"M 0 0";if(1===n.length){var r=n[0].circle;return function(e,t,n){var r=[];return r.push("\nM",e.toString(),t.toString()),r.push("\nm",-n,0),r.push("\na",n,n,0,1,0,2*n,0),r.push("\na",n,n,0,1,0,2*-n,0),r.join(" ")}(r.x,r.y,r.radius)}var i=["\nM",n[0].p2.x,n[0].p2.y];for(let e of n){let t=e.circle.radius,n=e.width>t;i.push("\nA",t,t,0,n?1:0,1,e.p1.x,e.p1.y)}return i.join(" ")}function Cq(e,t){var n,r=[];for(n=0;n<e.length;++n){var i=e[n];i&&(r.push({x:i.x,y:i.y}),r.push({x:i.x+i.radius/2,y:i.y}),r.push({x:i.x-i.radius/2,y:i.y}),r.push({x:i.x,y:i.y+i.radius/2}),r.push({x:i.x,y:i.y-i.radius/2}))}var a=r[0],o=Rq(r[0],e,t);for(n=1;n<r.length;++n){var s=Rq(r[n],e,t);s>=o&&(a=r[n],o=s)}var l=(0,pq.nelderMead)((function(n){return-1*Rq({x:n[0],y:n[1]},e,t)}),[a.x,a.y],{maxIterations:500,minErrorDelta:1e-10}).x,u={x:l[0],y:l[1]},c=!0;for(n=0;n<e.length;++n)if(yq(u,e[n])>e[n].radius){c=!1;break}for(n=0;n<t.length;++n)if(yq(u,t[n])<t[n].radius){c=!1;break}if(!c)if(1==e.length)u={x:e[0].x,y:e[0].y};else{let{stats:n}=mq(e);u=0===n.arcs.length?{x:0,y:-1e3,disjoint:!0}:1===n.arcs.length?{x:n.arcs[0].circle.x,y:n.arcs[0].circle.y}:t.length?Cq(e,[]):bq(n.arcs.map((function(e){return e.p1})))}return u}function Rq(e,t,n){var r,i,a=t[0].radius-yq(t[0],e);for(r=1;r<t.length;++r)(i=t[r].radius-yq(t[r],e))<=a&&(a=i);for(r=0;r<n.length;++r)(i=yq(n[r],e)-n[r].radius)<=a&&(a=i);return a}const kq=(e,t)=>{const{label:n}=e;return{type:"text",from:{data:t},interactive:!1,encode:{enter:{x:{field:"textX"},y:{field:"textY"},text:{field:`table_data.${n}`},align:{value:"center"},baseline:{value:"middle"}},update:{opacity:eH(e)}}}},Lq=new Map([["0deg",Math.PI/2],["90deg",0],["180deg",-3*Math.PI/2],["270deg",-Math.PI]]);const Nq=ne(((e,t)=>{var n,r,i,a,{chartPopovers:o=[],chartInspects:s=[],color:l=re.DEFAULT_VENN_COLOR,colorScheme:u=re.DEFAULT_COLOR_SCHEME,index:c=0,label:d=re.DEFAULT_VENN_LABEL,metric:f=re.DEFAULT_VENN_METRIC,name:h,orientation:p="0deg",chartHeight:m=100,chartWidth:g=100,data:y=[]}=t,_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["chartPopovers","chartInspects","color","colorScheme","index","label","metric","name","orientation","chartHeight","chartWidth","data"]);const v=Object.assign({chartPopovers:o,chartInspects:s,chartWidth:g,chartHeight:m,data:y,index:c,colorScheme:u,color:l,label:d,orientation:p,metric:f,name:(0,ae.toCamelCase)(null!=h?h:`venn${c}`)},_);e.data=Fq(null!==(n=e.data)&&void 0!==n?n:[],v),e.signals=Uq(null!==(r=e.signals)&&void 0!==r?r:[],v),e.scales=jq(null!==(i=e.scales)&&void 0!==i?i:[]),e.marks=Bq(null!==(a=e.marks)&&void 0!==a?a:[],v)})),Fq=ne(((e,t)=>{var n,r;const{circles:i,intersections:a}=(e=>{const{orientation:t,chartWidth:n,chartHeight:r}=e;return wq((e=>{const{data:t,metric:n,color:r}=e,i=t.map((e=>{const t=Object.assign({},e);if(void 0===t[n])throw new Error("set the metric prop to the default 'size' or set your own");if(n!==re.DEFAULT_VENN_METRIC&&"number"==typeof t[n]&&(t.size=e[n]),void 0===t[r])throw new Error("set the color prop to the default 'sets' or set your own");return r!==re.DEFAULT_VENN_COLOR&&Array.isArray(t[r])&&(t.sets=structuredClone(e[r])),{size:t.size,sets:t.sets}})).filter((e=>e.sets.length>0));return i})(e),{orientation:Lq.get(t),layout:"greedy",width:n,height:r,set_id_delimiter:"∩",padding:0})})(t);e.push({name:"circles",values:i,transform:[...zq(),{type:"formula",as:"strokeSize",expr:"datum.size * 1"},{type:"filter",expr:"indexof(hiddenSeries, datum.table_data.rscSeriesId) === -1"}]},{name:"intersections",values:a,transform:[...zq(),...Pq()]});const o=e.findIndex((e=>e.name===re.TABLE));e[o].transform=null!==(n=e[o].transform)&&void 0!==n?n:[],null===(r=e[o].transform)||void 0===r||r.push(...Hq(t))})),Bq=ne(((e,t)=>{e.push((e=>{const{colorScheme:t,idKey:n}=e;return{type:"symbol",name:`${e.name}_circle_strokes`,from:{data:"circles"},interactive:!1,encode:{enter:{x:{field:"x"},y:{field:"y"},size:{field:"size"},shape:{value:"circle"},stroke:{value:(0,ie.getS2ColorValue)("static-blue",t)},strokeWidth:{value:6}},update:{strokeOpacity:[{test:`${re.SELECTED_ITEM} === datum.${n}`,value:1},{value:0}]}}}})(t),(e=>{const{name:t,colorScheme:n,chartInspects:r,chartPopovers:i}=e;return{type:"symbol",name:t,from:{data:"circles"},encode:{enter:{x:{field:"x"},y:{field:"y"},tooltip:Rj(r,t),size:{field:"size"},shape:{value:"circle"},fill:Bj("set_id",n),stroke:{signal:"chartBackgroundColor"},strokeWidth:{value:2}},update:{opacity:eH(e),cursor:Cj(i)}}}})(t),(e=>{const{name:t,idKey:n,colorScheme:r}=e;return{type:"path",from:{data:"intersections"},name:`${t}_intersections_strokes`,interactive:!1,encode:{enter:{path:{field:"path"},strokeWidth:{value:6},strokeCap:{value:"round"},stroke:{value:(0,ie.getS2ColorValue)("static-blue",r)}},update:{strokeOpacity:[{test:`${re.SELECTED_ITEM} === datum.${n}`,value:1},{value:0}]}}}})(t),(e=>{const{name:t,chartInspects:n,colorScheme:r,chartPopovers:i}=e;return{type:"path",from:{data:"intersections"},name:`${t}_intersections`,encode:{enter:{path:{field:"path"},fill:Bj("set_id",r),strokeWidth:{value:2},stroke:{signal:"chartBackgroundColor"},strokeCap:{value:"square"},tooltip:Rj(n,`${t}`)},update:{opacity:eH(e),cursor:Cj(i)}}}})(t),kq(t,"circles"),kq(t,"intersections"))})),jq=ne((e=>{Aj(e,re.COLOR_SCALE,"set_legend"),Aj(e,re.COLOR_SCALE,"set_id")})),Hq=e=>[{type:"formula",as:"set_id",expr:`join(datum.${e.color}, '∩')`},{type:"formula",as:"set_legend",expr:`length(datum.${e.color}) > 1 ? datum.${e.color}[0]: join(datum.${e.color}, '∩')`}],zq=()=>[{type:"lookup",key:"set_id",fields:["set_id"],from:re.TABLE,as:["table_data"]},{type:"formula",as:"rscSeriesId",expr:"datum.table_data.set_id"},{type:"formula",expr:"datum.table_data.rscMarkId",as:"rscMarkId"}],Pq=()=>[{type:"formula",as:"hidden",expr:"hiddenSeries"},{type:"flatten",fields:["sets"],as:["intersect_set"]},{type:"formula",as:"hide_intersection",expr:"indexof(datum.hidden, datum.intersect_set) === -1 ? 0 : 1"},{type:"joinaggregate",groupby:["set_id"],fields:["hide_intersection"],ops:["sum"]},{type:"filter",expr:"datum.sum_hide_intersection === 0"},{type:"window",groupby:["set_id"],ops:["row_number"],as:["row_num"]},{type:"filter",expr:"datum.row_num === 1"}],Uq=ne(((e,t)=>{var n,r;const{chartInspects:i,name:a}=t;Lj(t)&&(yH(e,a,void 0,1,null===(n=i[0])||void 0===n?void 0:n.excludeDataKeys),yH(e,a,`${a}_intersections`,1,null===(r=i[0])||void 0===r?void 0:r.excludeDataKeys))})),Vq=e=>{const{offset:t}=e;return"object"==typeof t&&null!==t&&"signal"in t&&/scale\(.*,\s*0\)/.test(String(t.signal))};function Wq({animations:e,animationTypes:t,axes:n=[],backgroundColor:r=re.DEFAULT_BACKGROUND_COLOR,chartHeight:i,chartWidth:a,colors:o="categorical12",colorScheme:s=re.DEFAULT_COLOR_SCHEME,data:l,description:u,hiddenSeries:c=[],highlightedItem:d,highlightedSeries:f,idKey:h=re.MARK_ID,legends:p=[],lineTypes:m=re.DEFAULT_LINE_TYPES,lineWidths:g=["M"],marks:y=[],opacities:_,symbolShapes:v=["rounded-square"],symbolSizes:b=["XS","XL"],title:x,titles:E=[]}){var S,A,$,T,O;const D={axes:n,backgroundColor:r,chartHeight:i,chartWidth:a,colors:o,colorScheme:s,data:l,description:u,hiddenSeries:c,highlightedItem:d,highlightedSeries:f,idKey:h,legends:p,lineTypes:m,lineWidths:g,marks:y,opacities:_,symbolShapes:v,symbolSizes:b,title:x,titles:E};let M=uj(null,{backgroundColor:r,colorScheme:s,description:u,title:x});M.signals=Yq(D),M.scales=Zq(o,s,m,g,_,v,b);let{areaCount:w,barCount:I,bulletCount:C,comboCount:R,donutCount:k,lineCount:L,scatterCount:N,vennCount:F}=qq();const B=dG(p),j={animations:e,animationTypes:t,backgroundColor:r,colorScheme:s,idKey:h,highlightedItem:d,highlightedSeries:f,legendHighlightSignals:B};return M=[...y].reduce(((e,t)=>{switch(t.markType){case"area":return w++,xH(e,Object.assign(Object.assign(Object.assign({},t),j),{index:w}));case"bar":return I++,FV(e,Object.assign(Object.assign(Object.assign({},t),j),{index:I}));case"bullet":return C++,rW(e,Object.assign(Object.assign(Object.assign({},t),j),{index:C}));case"combo":return R++,jW(e,Object.assign(Object.assign(Object.assign({},t),j),{index:R}));case"donut":return k++,aG(e,Object.assign(Object.assign(Object.assign({},t),j),{index:k}));case"line":return L++,mW(e,Object.assign(Object.assign(Object.assign({},t),j),{index:L,data:l}));case"scatter":return N++,sq(e,Object.assign(Object.assign(Object.assign({},t),j),{index:N}));case"venn":return F++,Nq(e,Object.assign(Object.assign(Object.assign({},t),j),{index:F,data:l,chartWidth:a,chartHeight:i}));case"bigNumber":return e;default:return console.error(`Invalid component type: ${t} is not a supported chart mark option child`),e}}),M),M=[...p].reduce(((e,t,n)=>zG(e,Object.assign(Object.assign(Object.assign({},t),j),{index:n,hiddenSeries:c,highlightedItem:d,highlightedSeries:f}))),M),M=[...n].reduce(((e,t,n)=>Pz(e,Object.assign(Object.assign(Object.assign({},t),j),{index:n}))),M),E.length&&(M=hq(M,E[0])),M=JSON.parse(JSON.stringify(M)),M.data=uY(null!==(S=M.data)&&void 0!==S?S:[],{facets:tj(M.scales)}),(null===($=null===(A=M.usermeta)||void 0===A?void 0:A.divergingBarMarks)||void 0===$?void 0:$.length)&&M.axes&&(M.axes=[...M.axes].sort(((e,t)=>Number(Vq(e))-Number(Vq(t))))),f&&(pG("",null!==(T=M.marks)&&void 0!==T?T:[],void 0,!0),mG("",null!==(O=M.marks)&&void 0!==O?O:[],void 0,!0)),M=Gq(M),gY(M)}const Gq=ne((e=>{var t;e.scales=null===(t=e.scales)||void 0===t?void 0:t.filter((e=>!("domain"in e&&e.domain&&"fields"in e.domain&&0===e.domain.fields.length)))})),qq=()=>({areaCount:-1,barCount:-1,comboCount:-1,donutCount:-1,bulletCount:-1,lineCount:-1,scatterCount:-1,vennCount:-1}),Yq=({backgroundColor:e,colors:t,colorScheme:n,lineTypes:r,opacities:i,hiddenSeries:a,highlightedItem:o,highlightedSeries:s})=>{const l="transparent"===e?"gray-25":e,u="transparent"!==e&&e?(0,ie.getS2ColorValue)(l,n):(0,ie.getS2ColorValue)("gray-25",n),c=void 0===o||Array.isArray(o)?o:[o],d={name:re.CHART_SIZE_STROKE_WIDTH,update:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.CHART_SIZE_STROKE_WIDTHS.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.CHART_SIZE_STROKE_WIDTHS.M} : ${re.CHART_SIZE_STROKE_WIDTHS.L}`},f={name:re.CHART_SIZE_HOVER_STROKE_WIDTH,update:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTHS.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTHS.M} : ${re.CHART_SIZE_HOVER_STROKE_WIDTHS.L}`},h={name:re.CHART_SIZE_POINT_SIZE,update:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.CHART_SIZE_POINT_SIZES.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.CHART_SIZE_POINT_SIZES.M} : ${re.CHART_SIZE_POINT_SIZES.L}`},p={name:re.CHART_SIZE_FONT_SIZE,update:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.DIRECT_LABEL_FONT_SIZE_S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.DIRECT_LABEL_FONT_SIZE_M} : ${re.DIRECT_LABEL_FONT_SIZE_L}`},m={name:re.CHART_SIZE_LABEL_GAP,update:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.CHART_SIZE_LABEL_GAPS.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.CHART_SIZE_LABEL_GAPS.M} : ${re.CHART_SIZE_LABEL_GAPS.L}`};return[pH(re.BACKGROUND_COLOR,(0,ie.getS2ColorValue)(l,n)),pH(re.REFERENCE_LINE_LABEL_BACKGROUND_STROKE,u),pH("colors",Kq(t,n)),pH("lineTypes",Jq(r)),pH("opacities",Xq(i)),pH("hiddenSeries",null!=a?a:[]),pH(re.CONTROLLED_HIGHLIGHTED_ITEM,c),pH(re.HIGHLIGHTED_GROUP),pH(re.CONTROLLED_HIGHLIGHTED_SERIES,s),pH(re.SELECTED_ITEM),pH(re.SELECTED_SERIES),pH(re.SELECTED_GROUP),d,f,h,p,m]},Kq=(e,t)=>dY(e)?sY(e,t).map((e=>[e])):e.map((e=>sY(e,t))),Jq=e=>fY(e)?lY(e).map((e=>[e])):e.map((e=>lY(e))),Xq=e=>e?pY(e)?e.map((e=>[e])):e:[[1]],Zq=(e,t,n,r,i,a,o)=>[Qq(e,t),eY(e,t),tY(n),aY(r),oY(i),nY(a),rY(o),iY(o)],Qq=(e,t)=>{const n=dY(e)?sY(e,t):e.map((e=>sY(e,t)[0]));return wj("color",n)},eY=(e,t)=>{const n=dY(e)?sY(e,t):e.map((e=>sY(e,t)[0]));return{name:re.LINEAR_COLOR_SCALE,type:"linear",range:n,domain:{data:re.TABLE,fields:[]}}},tY=e=>{const t=fY(e)?lY(e):e.map((e=>nj(e[0])));return wj(re.LINE_TYPE_SCALE,t)},nY=e=>{const t=mY(e)?function(e){return e.map((e=>ij(e)))}(e):e.map((e=>ij(e[0])));return wj(re.SYMBOL_SHAPE_SCALE,t)},rY=e=>({name:re.SYMBOL_SIZE_SCALE,type:"linear",zero:!1,range:e.map((e=>oj(e))),domain:{data:re.TABLE,fields:[]}}),iY=e=>({name:re.SYMBOL_PATH_WIDTH_SCALE,type:"linear",zero:!1,range:e.map((e=>sj(e))),domain:{data:re.TABLE,fields:[]}}),aY=e=>{const t=e.map((e=>rj(e)));return wj(re.LINE_WIDTH_SCALE,t)},oY=e=>{if(null==e?void 0:e.length){const t=pY(e)?e:e.map((e=>e[0]));return wj(re.OPACITY_SCALE,t)}return{name:re.OPACITY_SCALE,type:"point",range:[1,0],padding:1,align:1,domain:{data:re.TABLE,fields:[]}}};function sY(e,t){return Array.isArray(e)?e.map((e=>(0,ie.getS2ColorValue)(e,t))):ie.colorSchemes[e]}function lY(e){return e.map((e=>nj(e)))}const uY=ne(((e,{facets:t})=>{var n,r,i;if(e.splice(2,0,{name:re.CONTROLLED_HIGHLIGHTED_TABLE,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) && indexof(${re.CONTROLLED_HIGHLIGHTED_ITEM}, datum.${re.MARK_ID}) > -1`}]}),0===t.length)return;null===(r=null===(n=e[0])||void 0===n?void 0:n.transform)||void 0===r||r.push(...ce(t));const a=e.findIndex((e=>e.name===re.FILTERED_TABLE));-1!==a&&(e[a].transform=[{type:"filter",expr:`indexof(hiddenSeries, datum.${re.SERIES_ID}) === -1`},...null!==(i=e[a].transform)&&void 0!==i?i:[]])})),cY=e=>Boolean(!Array.isArray(e)&&e in ie.colorSchemes),dY=e=>cY(e)||e.some((e=>!cY(e)&&"string"==typeof e)),fY=e=>e.some((e=>"string"==typeof e||hY(e))),hY=e=>Array.isArray(e)&&!e.some((e=>"number"!=typeof e)),pY=e=>!e.some((e=>Array.isArray(e))),mY=e=>!e.some((e=>Array.isArray(e))),gY=e=>"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e));re.MARK_ID,re.SERIES_ID,re.TRENDLINE_VALUE,re.GROUP_DATA;var yY=a(542);const _Y=(e="en-US")=>{const{number:t}=(0,yY.getLocale)(e),n="string"==typeof e?e:null==e?void 0:e.number;return{formatTimeDurationLabels:SY(t),formatLocaleCurrency:bY(t),formatShortNumber:vY(n),consoleLog:AY,formatHorizontalTimeAxisLabels:xY(),formatVerticalAxisTimeLabels:EY(),getLabelWidth:$Y,truncateText:TY}},vY=e=>{const t="string"==typeof e?e:navigator.language,n="object"==typeof e?e.decimal:void 0;return e=>{const r=new Intl.NumberFormat(t,{minimumFractionDigits:1,maximumFractionDigits:1}).format(1.1).replaceAll(/\d/g,""),i=Intl.NumberFormat(t,{notation:"compact"}).format(e);return n?i.replace(r,n):i}},bY=(e=yY.numberLocales["en-US"])=>({value:t},n,r,i)=>{if("string"==typeof t)return t;try{const a={style:"currency",currency:r,maximumFractionDigits:0},o=new Intl.NumberFormat(n,a).format(0);let s=2;"currency"!==i&&(s=Number.parseInt(i.split(".")[1].replace("f","")));const l=yn(e);return o.replace("0",l.format(`,.${s}f`)(t))}catch(n){return console.error("Error formatting currency: ",n),yn(e).format("$,.2f")(t)}},xY=()=>{let e;return t=>{const n=0===t.index||e!==t.label;return e=t.label,n?t.label:""}},EY=()=>{let e;return t=>{const n=t.label.split(" "),r=n[0],i=0===t.index||e!==r;return e=r,i?t.label:n[1]}},SY=(e=yY.numberLocales["en-US"])=>{const t=yn(e),n=t.format("02,d"),r=t.format(",d");return({value:e})=>{if("string"==typeof e)return e;const t=e<0?"-":"",i=Math.abs(e),a=n(Math.floor(i%60));return i<3600?`${t}${r(Math.floor(i/60))}:${a}`:`${t}${r(Math.floor(i/60/60))}:${n(Math.floor(i/60%60))}:${a}`}},AY=e=>(console.log(e),e),$Y=(e,t="bold",n=12)=>{const r=document.createElement("canvas").getContext("2d");return null===r?0:(r.font=`${t} ${n}px ${ie.ADOBE_CLEAN_FONT}`,r.measureText(e).width)},TY=(e,t,n="normal",r=12)=>{t-=4;const i=$Y(e,n,r),a=$Y("…",n,r);if(i<=t)return e;let o=e.slice(0,-1).trim();for(let e=o.length;e>0&&(o=o.slice(0,-1).trim(),!($Y(o,n,r)+a<=t));e--);return 0===o.length?e:o+"…"},OY={consoleLog:AY,formatHorizontalTimeAxisLabels:xY(),formatVerticalAxisTimeLabels:EY(),getLabelWidth:$Y,truncateText:TY},DY=(e,t)=>(null==e?void 0:e.length)?e.reduce(((e,t)=>MY(e,t)),t):t,MY=(e,t)=>{const n=Object.assign({},e);for(const[r,i]of Object.entries(t)){const t=e[r],a=null!==i&&"object"==typeof i&&!Array.isArray(i)&&!("signal"in i),o=null!==t&&"object"==typeof t&&!Array.isArray(t)&&!("signal"in t);n[r]=a&&o?MY(t,i):i}return n},wY=({locale:e="en-US",height:t=400,width:n=600,padding:r=0,renderer:i="svg",config:a,colorScheme:o=re.DEFAULT_COLOR_SCHEME})=>{const s=_Y(e),{number:l,time:u}=(0,yY.getLocale)(e);return{actions:!1,ast:!0,expressionFunctions:s,formatLocale:l,height:t,width:n,padding:r,renderer:i,timeFormatLocale:u,config:null!=a?a:pj(void 0,o)}}})(),o})()));
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@spectrum-charts/constants"),require("@spectrum-charts/themes"),require("@spectrum-charts/utils")):"function"==typeof define&&define.amd?define(["@spectrum-charts/constants","@spectrum-charts/themes","@spectrum-charts/utils"],t):"object"==typeof exports?exports.spectrumChartsVegaSpecBuilderS2=t(require("@spectrum-charts/constants"),require("@spectrum-charts/themes"),require("@spectrum-charts/utils")):e.spectrumChartsVegaSpecBuilderS2=t(e["@spectrum-charts/constants"],e["@spectrum-charts/themes"],e["@spectrum-charts/utils"])}(this,((e,t,n)=>(()=>{var r={743:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===n}(e)}(e)},n="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(e,t){return!1!==t.clone&&t.isMergeableObject(e)?s((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function i(e,t,n){return e.concat(t).map((function(e){return r(e,n)}))}function a(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function s(e,n,l){(l=l||{}).arrayMerge=l.arrayMerge||i,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=r;var u=Array.isArray(n);return u===Array.isArray(e)?u?l.arrayMerge(e,n,l):function(e,t,n){var i={};return n.isMergeableObject(e)&&a(e).forEach((function(t){i[t]=r(e[t],n)})),a(t).forEach((function(a){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,a)||(o(e,a)&&n.isMergeableObject(t[a])?i[a]=function(e,t){if(!t.customMerge)return s;var n=t.customMerge(e);return"function"==typeof n?n:s}(a,n)(e[a],t[a],n):i[a]=r(t[a],n))})),i}(e,n,l):r(n,l)}s.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return s(e,n,t)}),{})};var l=s;e.exports=l},561:function(e,t){!function(e){"use strict";function t(e){for(var t=new Array(e),n=0;n<e;++n)t[n]=0;return t}function n(e,t){for(var n=0,r=0;r<e.length;++r)n+=e[r]*t[r];return n}function r(e){return Math.sqrt(n(e,e))}function i(e,t,n){for(var r=0;r<t.length;++r)e[r]=t[r]*n}function a(e,t,n,r,i){for(var a=0;a<e.length;++a)e[a]=t*n[a]+r*i[a]}function o(e,t,r,i,o,s,l){var u=r.fx,c=n(r.fxprime,t),d=u,f=u,h=c,p=0;function m(f,p,m){for(var g=0;g<16;++g)if(o=(f+p)/2,a(i.x,1,r.x,o,t),d=i.fx=e(i.x,i.fxprime),h=n(i.fxprime,t),d>u+s*o*c||d>=m)p=o;else{if(Math.abs(h)<=-l*c)return o;h*(p-f)>=0&&(p=f),f=o,m=d}return 0}o=o||1,s=s||1e-6,l=l||.1;for(var g=0;g<10;++g){if(a(i.x,1,r.x,o,t),d=i.fx=e(i.x,i.fxprime),h=n(i.fxprime,t),d>u+s*o*c||g&&d>=f)return m(p,o,f);if(Math.abs(h)<=-l*c)return o;if(h>=0)return m(o,p,d);f=d,p=o,o*=2}return o}e.bisect=function(e,t,n,r){var i=(r=r||{}).maxIterations||100,a=r.tolerance||1e-10,o=e(t),s=e(n),l=n-t;if(o*s>0)throw"Initial bisect points must have opposite signs";if(0===o)return t;if(0===s)return n;for(var u=0;u<i;++u){var c=t+(l/=2),d=e(c);if(d*o>=0&&(t=c),Math.abs(l)<a||0===d)return c}return t+l},e.nelderMead=function(e,t,n){var r,i=(n=n||{}).maxIterations||200*t.length,o=n.nonZeroDelta||1.05,s=n.zeroDelta||.001,l=n.minErrorDelta||1e-6,u=n.minErrorDelta||1e-5,c=void 0!==n.rho?n.rho:1,d=void 0!==n.chi?n.chi:2,f=void 0!==n.psi?n.psi:-.5,h=void 0!==n.sigma?n.sigma:.5,p=t.length,m=new Array(p+1);m[0]=t,m[0].fx=e(t),m[0].id=0;for(var g=0;g<p;++g){var y=t.slice();y[g]=y[g]?y[g]*o:s,m[g+1]=y,m[g+1].fx=e(y),m[g+1].id=g+1}function _(e){for(var t=0;t<e.length;t++)m[p][t]=e[t];m[p].fx=e.fx}for(var v=function(e,t){return e.fx-t.fx},b=t.slice(),x=t.slice(),E=t.slice(),S=t.slice(),A=0;A<i;++A){if(m.sort(v),n.history){var $=m.map((function(e){var t=e.slice();return t.fx=e.fx,t.id=e.id,t}));$.sort((function(e,t){return e.id-t.id})),n.history.push({x:m[0].slice(),fx:m[0].fx,simplex:$})}for(r=0,g=0;g<p;++g)r=Math.max(r,Math.abs(m[0][g]-m[1][g]));if(Math.abs(m[0].fx-m[p].fx)<l&&r<u)break;for(g=0;g<p;++g){b[g]=0;for(var T=0;T<p;++T)b[g]+=m[T][g];b[g]/=p}var O=m[p];if(a(x,1+c,b,-c,O),x.fx=e(x),x.fx<m[0].fx)a(S,1+d,b,-d,O),S.fx=e(S),S.fx<x.fx?_(S):_(x);else if(x.fx>=m[p-1].fx){var D=!1;if(x.fx>O.fx?(a(E,1+f,b,-f,O),E.fx=e(E),E.fx<O.fx?_(E):D=!0):(a(E,1-f*c,b,f*c,O),E.fx=e(E),E.fx<x.fx?_(E):D=!0),D){if(h>=1)break;for(g=1;g<m.length;++g)a(m[g],1-h,m[0],h,m[g]),m[g].fx=e(m[g])}}else _(x)}return m.sort(v),{fx:m[0].fx,x:m[0]}},e.conjugateGradient=function(e,t,s){var l,u,c,d={x:t.slice(),fx:0,fxprime:t.slice()},f={x:t.slice(),fx:0,fxprime:t.slice()},h=t.slice(),p=1;c=(s=s||{}).maxIterations||20*t.length,d.fx=e(d.x,d.fxprime),i(l=d.fxprime.slice(),d.fxprime,-1);for(var m=0;m<c;++m){if(p=o(e,l,d,f,p),s.history&&s.history.push({x:d.x.slice(),fx:d.fx,fxprime:d.fxprime.slice(),alpha:p}),p){a(h,1,f.fxprime,-1,d.fxprime);var g=n(d.fxprime,d.fxprime);a(l,Math.max(0,n(h,f.fxprime)/g),l,-1,f.fxprime),u=d,d=f,f=u}else i(l,d.fxprime,-1);if(r(d.fxprime)<=1e-5)break}return s.history&&s.history.push({x:d.x.slice(),fx:d.fx,fxprime:d.fxprime.slice(),alpha:p}),d},e.gradientDescent=function(e,t,n){for(var i=(n=n||{}).maxIterations||100*t.length,o=n.learnRate||.001,s={x:t.slice(),fx:0,fxprime:t.slice()},l=0;l<i&&(s.fx=e(s.x,s.fxprime),n.history&&n.history.push({x:s.x.slice(),fx:s.fx,fxprime:s.fxprime.slice()}),a(s.x,1,s.x,-o,s.fxprime),!(r(s.fxprime)<=1e-5));++l);return s},e.gradientDescentLineSearch=function(e,t,n){n=n||{};var a,s={x:t.slice(),fx:0,fxprime:t.slice()},l={x:t.slice(),fx:0,fxprime:t.slice()},u=n.maxIterations||100*t.length,c=n.learnRate||1,d=t.slice(),f=n.c1||.001,h=n.c2||.1,p=[];if(n.history){var m=e;e=function(e,t){return p.push(e.slice()),m(e,t)}}s.fx=e(s.x,s.fxprime);for(var g=0;g<u&&(i(d,s.fxprime,-1),c=o(e,d,s,l,c,f,h),n.history&&(n.history.push({x:s.x.slice(),fx:s.fx,fxprime:s.fxprime.slice(),functionCalls:p,learnRate:c,alpha:c}),p=[]),a=s,s=l,l=a,!(0===c||r(s.fxprime)<1e-5));++g);return s},e.zeros=t,e.zerosM=function(e,n){return t(e).map((function(){return t(n)}))},e.norm2=r,e.weightedSum=a,e.scale=i}(t)},542:function(e){e.exports=(()=>{"use strict";var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{getLocale:()=>i,numberLocales:()=>n,timeLocales:()=>r});const n={"ar-AE":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," د.إ."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-BH":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," د.ب."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-DJ":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["Fdj ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-DZ":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["د.ج. ",""]}'),"ar-EG":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ج.م."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-IL":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["₪ ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-IQ":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," د.ع."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-JO":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," د.أ."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-KM":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ف.ج.ق."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-KW":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," د.ك."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-LB":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ل.ل."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-LY":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["د.ل. ",""]}'),"ar-MA":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["د.م. ",""]}'),"ar-OM":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ر.ع."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-PS":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["₪ ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-QA":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ر.ق."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-SA":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ر.س."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-SD":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ج.س."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-SO":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["S ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-SS":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["£ ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-SY":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ل.س."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-TD":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":["FCFA ",""],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ar-TN":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["د.ت. ",""]}'),"ar-YE":JSON.parse('{"decimal":"٫","thousands":"٬","grouping":[3],"currency":[""," ر.ى."],"numerals":["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"]}'),"ca-ES":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," €"]}'),"cs-CZ":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," Kč"]}'),"da-DK":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," kr"]}'),"de-CH":JSON.parse('{"decimal":",","thousands":"\'","grouping":[3],"currency":[""," CHF"]}'),"de-DE":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," €"]}'),"en-CA":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["$",""]}'),"en-GB":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["£",""]}'),"en-IE":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["€",""]}'),"en-IN":JSON.parse('{"decimal":".","thousands":",","grouping":[3,2,2,2,2,2,2,2,2,2],"currency":["₹",""]}'),"en-US":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["$",""]}'),"es-BO":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["Bs ",""],"percent":" %"}'),"es-ES":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," €"]}'),"es-MX":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["$",""]}'),"fi-FI":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," €"]}'),"fr-CA":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":["","$"]}'),"fr-FR":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," €"],"percent":" %"}'),"he-IL":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["₪",""]}'),"hu-HU":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," Ft"]}'),"it-IT":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["€",""]}'),"ja-JP":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["","円"]}'),"ko-KR":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["₩",""]}'),"mk-MK":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," ден."]}'),"nl-NL":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["€ ",""]}'),"pl-PL":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["","zł"]}'),"pt-BR":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":["R$",""]}'),"pt-PT":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," €"]}'),"ru-RU":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," ₽"]}'),"sl-SI":JSON.parse('{"decimal":",","thousands":".","grouping":[3],"currency":[""," €"]}'),"sv-SE":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," kr"]}'),"uk-UA":JSON.parse('{"decimal":",","thousands":" ","grouping":[3],"currency":[""," ₴."]}'),"zh-CN":JSON.parse('{"decimal":".","thousands":",","grouping":[3],"currency":["¥",""]}')},r={"ar-EG":JSON.parse('{"dateTime":"%x, %X","date":"%-d/%-m/%Y","time":"%-I:%M:%S %p","periods":["ص","م"],"days":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"shortDays":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"months":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"shortMonths":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"]}'),"ar-SY":JSON.parse('{"dateTime":"%x, %X","date":"%-d/%-m/%Y","time":"%-I:%M:%S %p","periods":["ص","م"],"days":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"shortDays":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"months":["كانون الثاني","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],"shortMonths":["ك٢","شباط","آذار","نيسان","أيار","حزيران","تموز","آب","أيلول","ت١","ت٢","ك١"]}'),"ca-ES":JSON.parse('{"dateTime":"%A, %e de %B de %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"shortDays":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"months":["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],"shortMonths":["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."]}'),"cs-CZ":JSON.parse('{"dateTime":"%A,%e.%B %Y, %X","date":"%-d.%-m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["neděle","pondělí","úterý","středa","čvrtek","pátek","sobota"],"shortDays":["ne.","po.","út.","st.","čt.","pá.","so."],"months":["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],"shortMonths":["led","úno","břez","dub","kvě","čer","červ","srp","zář","říj","list","pros"]}'),"da-DK":JSON.parse('{"dateTime":"%A den %d %B %Y %X","date":"%d-%m-%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"shortDays":["søn","man","tir","ons","tor","fre","lør"],"months":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"shortMonths":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"]}'),"de-CH":JSON.parse('{"dateTime":"%A, der %e. %B %Y, %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"shortDays":["So","Mo","Di","Mi","Do","Fr","Sa"],"months":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"shortMonths":["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"]}'),"de-DE":JSON.parse('{"dateTime":"%A, der %e. %B %Y, %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"shortDays":["So","Mo","Di","Mi","Do","Fr","Sa"],"months":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"shortMonths":["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"]}'),"en-CA":JSON.parse('{"dateTime":"%a %b %e %X %Y","date":"%Y-%m-%d","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"shortDays":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"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"]}'),"en-GB":JSON.parse('{"dateTime":"%a %e %b %X %Y","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"shortDays":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"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"]}'),"en-US":JSON.parse('{"dateTime":"%x, %X","date":"%-m/%-d/%Y","time":"%-I:%M:%S %p","periods":["AM","PM"],"days":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"shortDays":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"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"]}'),"es-ES":JSON.parse('{"dateTime":"%A, %e de %B de %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"shortDays":["dom","lun","mar","mié","jue","vie","sáb"],"months":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"shortMonths":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"]}'),"es-MX":JSON.parse('{"dateTime":"%x, %X","date":"%d/%m/%Y","time":"%-I:%M:%S %p","periods":["AM","PM"],"days":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"shortDays":["dom","lun","mar","mié","jue","vie","sáb"],"months":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"shortMonths":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"]}'),"fa-IR":JSON.parse('{"dateTime":"%x, %X","date":"%-d/%-m/%Y","time":"%-I:%M:%S %p","periods":["صبح","عصر"],"days":["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"shortDays":["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],"months":["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],"shortMonths":["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"]}'),"fi-FI":JSON.parse('{"dateTime":"%A, %-d. %Bta %Y klo %X","date":"%-d.%-m.%Y","time":"%H:%M:%S","periods":["a.m.","p.m."],"days":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"shortDays":["Su","Ma","Ti","Ke","To","Pe","La"],"months":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"shortMonths":["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"]}'),"fr-CA":JSON.parse('{"dateTime":"%a %e %b %Y %X","date":"%Y-%m-%d","time":"%H:%M:%S","periods":["",""],"days":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"shortDays":["dim","lun","mar","mer","jeu","ven","sam"],"months":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"shortMonths":["jan","fév","mar","avr","mai","jui","jul","aoû","sep","oct","nov","déc"]}'),"fr-FR":JSON.parse('{"dateTime":"%A %e %B %Y à %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"shortDays":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"months":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"shortMonths":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."]}'),"he-IL":JSON.parse('{"dateTime":"%A, %e ב%B %Y %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת"],"shortDays":["א׳","ב׳","ג׳","ד׳","ה׳","ו׳","ש׳"],"months":["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],"shortMonths":["ינו׳","פבר׳","מרץ","אפר׳","מאי","יוני","יולי","אוג׳","ספט׳","אוק׳","נוב׳","דצמ׳"]}'),"hr-HR":JSON.parse('{"dateTime":"%A, %e. %B %Y., %X","date":"%d. %m. %Y.","time":"%H:%M:%S","periods":["AM","PM"],"days":["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvtrak","Petak","Subota"],"shortDays":["Ne","Po","Ut","Sr","Če","Pe","Su"],"months":["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],"shortMonths":["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"]}'),"hu-HU":JSON.parse('{"dateTime":"%Y. %B %-e., %A %X","date":"%Y. %m. %d.","time":"%H:%M:%S","periods":["de.","du."],"days":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"shortDays":["V","H","K","Sze","Cs","P","Szo"],"months":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"shortMonths":["jan.","feb.","már.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."]}'),"it-IT":JSON.parse('{"dateTime":"%A %e %B %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"shortDays":["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],"months":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],"shortMonths":["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"]}'),"ja-JP":JSON.parse('{"dateTime":"%x %a %X","date":"%Y/%m/%d","time":"%H:%M:%S","periods":["AM","PM"],"days":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"shortDays":["日","月","火","水","木","金","土"],"months":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"shortMonths":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]}'),"ko-KR":JSON.parse('{"dateTime":"%Y/%m/%d %a %X","date":"%Y/%m/%d","time":"%H:%M:%S","periods":["오전","오후"],"days":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"shortDays":["일","월","화","수","목","금","토"],"months":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"shortMonths":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]}'),"mk-MK":JSON.parse('{"dateTime":"%A, %e %B %Y г. %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["недела","понеделник","вторник","среда","четврток","петок","сабота"],"shortDays":["нед","пон","вто","сре","чет","пет","саб"],"months":["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],"shortMonths":["јан","фев","мар","апр","мај","јун","јул","авг","сеп","окт","ное","дек"]}'),"nb-NO":JSON.parse('{"dateTime":"%A den %d. %B %Y %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"shortDays":["søn","man","tir","ons","tor","fre","lør"],"months":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"shortMonths":["jan","feb","mars","apr","mai","juni","juli","aug","sep","okt","nov","des"]}'),"nl-BE":JSON.parse('{"dateTime":"%a %e %B %Y %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"shortDays":["zo","ma","di","wo","do","vr","za"],"months":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"shortMonths":["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"]}'),"nl-NL":JSON.parse('{"dateTime":"%a %e %B %Y %X","date":"%d-%m-%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"shortDays":["zo","ma","di","wo","do","vr","za"],"months":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"shortMonths":["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"]}'),"pl-PL":JSON.parse('{"dateTime":"%A, %e %B %Y, %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],"shortDays":["Niedz.","Pon.","Wt.","Śr.","Czw.","Pt.","Sob."],"months":["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],"shortMonths":["Stycz.","Luty","Marz.","Kwie.","Maj","Czerw.","Lipc.","Sierp.","Wrz.","Paźdz.","Listop.","Grudz."]}'),"pt-BR":JSON.parse('{"dateTime":"%A, %e de %B de %Y. %X","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],"shortDays":["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],"months":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"shortMonths":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"]}'),"ru-RU":JSON.parse('{"dateTime":"%A, %e %B %Y г. %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"shortDays":["вс","пн","вт","ср","чт","пт","сб"],"months":["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],"shortMonths":["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек"]}'),"sv-SE":JSON.parse('{"dateTime":"%A den %d %B %Y %X","date":"%Y-%m-%d","time":"%H:%M:%S","periods":["fm","em"],"days":["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],"shortDays":["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],"months":["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],"shortMonths":["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"]}'),"tr-TR":JSON.parse('{"dateTime":"%a %e %b %X %Y","date":"%d/%m/%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"shortDays":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"months":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"shortMonths":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"]}'),"uk-UA":JSON.parse('{"dateTime":"%A, %e %B %Y р. %X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["дп","пп"],"days":["неділя","понеділок","вівторок","середа","четвер","п\'ятниця","субота"],"shortDays":["нд","пн","вт","ср","чт","пт","сб"],"months":["січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня","жовтня","листопада","грудня"],"shortMonths":["січ.","лют.","бер.","квіт.","трав.","черв.","лип.","серп.","вер.","жовт.","лист.","груд."]}'),"zh-CN":JSON.parse('{"dateTime":"%x %A %X","date":"%Y年%-m月%-d日","time":"%H:%M:%S","periods":["上午","下午"],"days":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"shortDays":["周日","周一","周二","周三","周四","周五","周六"],"months":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"shortMonths":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]}'),"zh-TW":JSON.parse('{"dateTime":"%x %A %X","date":"%Y年%-m月%-d日","time":"%H:%M:%S","periods":["上午","下午"],"days":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"shortDays":["日","一","二","三","四","五","六"],"months":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"shortMonths":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]}')},i=(e="en-US")=>{var t,i;return"string"==typeof e?{number:null!==(t=n[e])&&void 0!==t?t:n["en-US"],time:null!==(i=r[e])&&void 0!==i?i:r["en-US"]}:{number:a(e.number),time:o(e.time)}},a=e=>{var t;return"string"==typeof e?null!==(t=n[e])&&void 0!==t?t:n["en-US"]:e},o=e=>{var t;return"string"==typeof e?null!==(t=r[e])&&void 0!==t?t:r["en-US"]:e};return t})()},633:t=>{"use strict";t.exports=e},274:e=>{"use strict";e.exports=t},365:e=>{"use strict";e.exports=n}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={exports:{}};return r[e].call(n.exports,n,n.exports,a),n.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{"use strict";a.r(o),a.d(o,{addData:()=>uY,addUserMetaAnimatedMark:()=>yj,addUserMetaDivergingBarMark:()=>gj,addUserMetaInteractiveMark:()=>mj,applyUserMetaConfigPatches:()=>DY,baseData:()=>lj,buildSpec:()=>Wq,escapeD3FormatSpecifier:()=>hj,expressionFunctions:()=>OY,formatHorizontalTimeAxisLabels:()=>xY,formatLocaleCurrency:()=>bY,formatShortNumber:()=>vY,formatTimeDurationLabels:()=>SY,formatVerticalAxisTimeLabels:()=>EY,getChartConfig:()=>pj,getColorScale:()=>Qq,getD3FormatSpecifierFromNumberFormat:()=>fj,getDefaultSignals:()=>Yq,getDimensionField:()=>dj,getExpressionFunctions:()=>_Y,getFacetsFromOptions:()=>ej,getFacetsFromScales:()=>tj,getLineTypeScale:()=>tY,getLineWidthPixelsFromLineWidth:()=>rj,getLineWidthScale:()=>aY,getLinearColorScale:()=>eY,getOpacityScale:()=>oY,getPathFromIcon:()=>aj,getPathFromSymbolShape:()=>ij,getStrokeDashFromLineType:()=>nj,getSymbolPathWidthScale:()=>iY,getSymbolShapeScale:()=>nY,getSymbolSizeScale:()=>rY,getSymbolWidthFromRscSymbolSize:()=>sj,getTwoDimensionalColorScheme:()=>Kq,getTwoDimensionalLineTypes:()=>Jq,getTwoDimensionalOpacities:()=>Xq,getVegaEmbedOptions:()=>wY,getVegaSymbolSizeFromRscSymbolSize:()=>oj,initializeSpec:()=>uj,isColorScale:()=>cY,isColors:()=>dY,isLineTypeArray:()=>fY,isNumberArray:()=>pY,isStrokeDashArray:()=>hY,isSymbolShapeArray:()=>mY,mergeValuesIntoData:()=>cj,removeUnusedScales:()=>Gq});var e={};a.r(e),a.d(e,{aggregate:()=>Qs,bin:()=>el,collect:()=>nl,compare:()=>rl,countpattern:()=>al,cross:()=>ol,density:()=>cl,dotbin:()=>ml,expression:()=>gl,extent:()=>_l,facet:()=>bl,field:()=>xl,filter:()=>Sl,flatten:()=>Al,fold:()=>$l,formula:()=>Tl,generate:()=>Ol,impute:()=>wl,joinaggregate:()=>Il,kde:()=>Cl,key:()=>Rl,load:()=>Ll,lookup:()=>Fl,multiextent:()=>Bl,multivalues:()=>Hl,params:()=>Pl,pivot:()=>Ul,prefacet:()=>Vl,project:()=>Wl,proxy:()=>Gl,quantile:()=>ql,relay:()=>Yl,sample:()=>Kl,sequence:()=>Jl,sieve:()=>Xl,subflow:()=>vl,timeunit:()=>Zl,tupleindex:()=>eu,values:()=>tu,window:()=>ou});var t={};a.r(t),a.d(t,{interpolate:()=>Cd,interpolateArray:()=>Ad,interpolateBasis:()=>fd,interpolateBasisClosed:()=>hd,interpolateCubehelix:()=>Oh,interpolateCubehelixLong:()=>Dh,interpolateDate:()=>Td,interpolateDiscrete:()=>Rf,interpolateHcl:()=>ph,interpolateHclLong:()=>mh,interpolateHsl:()=>Wf,interpolateHslLong:()=>Gf,interpolateHue:()=>kf,interpolateLab:()=>fh,interpolateNumber:()=>Od,interpolateNumberArray:()=>Ed,interpolateObject:()=>Dd,interpolateRgb:()=>_d,interpolateRgbBasis:()=>bd,interpolateRgbBasisClosed:()=>xd,interpolateRound:()=>Rd,interpolateString:()=>Id,interpolateTransformCss:()=>Hf,interpolateTransformSvg:()=>zf,interpolateZoom:()=>Uf,piecewise:()=>Ef,quantize:()=>Mh});var n={};a.r(n),a.d(n,{bound:()=>ab,identifier:()=>lb,mark:()=>ub,overlap:()=>cb,render:()=>yb,viewlayout:()=>Bb});var r={};a.r(r),a.d(r,{axisticks:()=>Hb,datajoin:()=>zb,encode:()=>Ub,legendentries:()=>Vb,linkpath:()=>Kb,pie:()=>ex,scale:()=>rx,sortitems:()=>sx,stack:()=>fx});var i={};a.r(i),a.d(i,{contour:()=>iT,geojson:()=>sT,geopath:()=>lT,geopoint:()=>uT,geoshape:()=>cT,graticule:()=>dT,heatmap:()=>fT,isocontour:()=>Y$,kde2d:()=>tT,projection:()=>pT});var s={};a.r(s),a.d(s,{force:()=>uO});var l={};a.r(l),a.d(l,{nest:()=>hD,pack:()=>vD,partition:()=>xD,stratify:()=>ED,tree:()=>$D,treelinks:()=>TD,treemap:()=>MD});var u={};a.r(u),a.d(u,{label:()=>XD});var c={};a.r(c),a.d(c,{loess:()=>QD,regression:()=>tM});var d={};a.r(d),a.d(d,{voronoi:()=>IM});var f={};a.r(f),a.d(f,{wordcloud:()=>GM});var h={};a.r(h),a.d(h,{crossfilter:()=>QM,resolvefilter:()=>ew});var p=Symbol.for("immer-nothing"),m=Symbol.for("immer-draftable"),g=Symbol.for("immer-state");function y(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var _=Object.getPrototypeOf;function v(e){return!!e&&!!e[g]}function b(e){return!!e&&(E(e)||Array.isArray(e)||!!e[m]||!!e.constructor?.[m]||O(e)||D(e))}var x=Object.prototype.constructor.toString();function E(e){if(!e||"object"!=typeof e)return!1;const t=_(e);if(null===t)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return n===Object||"function"==typeof n&&Function.toString.call(n)===x}function S(e,t){0===A(e)?Reflect.ownKeys(e).forEach((n=>{t(n,e[n],e)})):e.forEach(((n,r)=>t(r,n,e)))}function A(e){const t=e[g];return t?t.type_:Array.isArray(e)?1:O(e)?2:D(e)?3:0}function $(e,t){return 2===A(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function T(e,t,n){const r=A(e);2===r?e.set(t,n):3===r?e.add(n):e[t]=n}function O(e){return e instanceof Map}function D(e){return e instanceof Set}function M(e){return e.copy_||e.base_}function w(e,t){if(O(e))return new Map(e);if(D(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=E(e);if(!0===t||"class_only"===t&&!n){const t=Object.getOwnPropertyDescriptors(e);delete t[g];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){const i=n[r],a=t[i];!1===a.writable&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(t[i]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[i]})}return Object.create(_(e),t)}{const t=_(e);if(null!==t&&n)return{...e};const r=Object.create(t);return Object.assign(r,e)}}function I(e,t=!1){return R(e)||v(e)||!b(e)||(A(e)>1&&(e.set=e.add=e.clear=e.delete=C),Object.freeze(e),t&&Object.entries(e).forEach((([e,t])=>I(t,!0)))),e}function C(){y(2)}function R(e){return Object.isFrozen(e)}var k,L={};function N(e){const t=L[e];return t||y(0),t}function F(){return k}function B(e,t){t&&(N("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function j(e){H(e),e.drafts_.forEach(P),e.drafts_=null}function H(e){e===k&&(k=e.parent_)}function z(e){return k={drafts_:[],parent_:k,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function P(e){const t=e[g];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function U(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return void 0!==e&&e!==n?(n[g].modified_&&(j(t),y(4)),b(e)&&(e=V(t,e),t.parent_||G(t,e)),t.patches_&&N("Patches").generateReplacementPatches_(n[g].base_,e,t.patches_,t.inversePatches_)):e=V(t,n,[]),j(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==p?e:void 0}function V(e,t,n){if(R(t))return t;const r=t[g];if(!r)return S(t,((i,a)=>W(e,r,t,i,a,n))),t;if(r.scope_!==e)return t;if(!r.modified_)return G(e,r.base_,!0),r.base_;if(!r.finalized_){r.finalized_=!0,r.scope_.unfinalizedDrafts_--;const t=r.copy_;let i=t,a=!1;3===r.type_&&(i=new Set(t),t.clear(),a=!0),S(i,((i,o)=>W(e,r,t,i,o,n,a))),G(e,t,!1),n&&e.patches_&&N("Patches").generatePatches_(r,n,e.patches_,e.inversePatches_)}return r.copy_}function W(e,t,n,r,i,a,o){if(v(i)){const o=V(e,i,a&&t&&3!==t.type_&&!$(t.assigned_,r)?a.concat(r):void 0);if(T(n,r,o),!v(o))return;e.canAutoFreeze_=!1}else o&&n.add(i);if(b(i)&&!R(i)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;V(e,i),t&&t.scope_.parent_||"symbol"==typeof r||!Object.prototype.propertyIsEnumerable.call(n,r)||G(e,i)}}function G(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&I(t,n)}var q={get(e,t){if(t===g)return e;const n=M(e);if(!$(n,t))return function(e,t,n){const r=J(t,n);return r?"value"in r?r.value:r.get?.call(e.draft_):void 0}(e,n,t);const r=n[t];return e.finalized_||!b(r)?r:r===K(e.base_,t)?(Z(e),e.copy_[t]=Q(r,e)):r},has:(e,t)=>t in M(e),ownKeys:e=>Reflect.ownKeys(M(e)),set(e,t,n){const r=J(M(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const r=K(M(e),t),i=r?.[g];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}(n,r)&&(void 0!==n||$(e.base_,t)))return!0;Z(e),X(e)}return e.copy_[t]===n&&(void 0!==n||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty:(e,t)=>(void 0!==K(e.base_,t)||t in e.base_?(e.assigned_[t]=!1,Z(e),X(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const n=M(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r?{writable:!0,configurable:1!==e.type_||"length"!==t,enumerable:r.enumerable,value:n[t]}:r},defineProperty(){y(11)},getPrototypeOf:e=>_(e.base_),setPrototypeOf(){y(12)}},Y={};function K(e,t){const n=e[g];return(n?M(n):e)[t]}function J(e,t){if(!(t in e))return;let n=_(e);for(;n;){const e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=_(n)}}function X(e){e.modified_||(e.modified_=!0,e.parent_&&X(e.parent_))}function Z(e){e.copy_||(e.copy_=w(e.base_,e.scope_.immer_.useStrictShallowCopy_))}function Q(e,t){const n=O(e)?N("MapSet").proxyMap_(e,t):D(e)?N("MapSet").proxySet_(e,t):function(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:F(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,a=q;n&&(i=[r],a=Y);const{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,s}(e,t);return(t?t.scope_:F()).drafts_.push(n),n}function ee(e){if(!b(e)||R(e))return e;const t=e[g];let n;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=w(e,t.scope_.immer_.useStrictShallowCopy_)}else n=w(e,!0);return S(n,((e,t)=>{T(n,e,ee(t))})),t&&(t.finalized_=!1),n}S(q,((e,t)=>{Y[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),Y.deleteProperty=function(e,t){return Y.set.call(this,e,t,void 0)},Y.set=function(e,t,n){return q.set.call(this,e[0],t,n,e[0])};var te=new class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(e,t,n)=>{if("function"==typeof e&&"function"!=typeof t){const n=t;t=e;const r=this;return function(e=n,...i){return r.produce(e,(e=>t.call(this,e,...i)))}}let r;if("function"!=typeof t&&y(6),void 0!==n&&"function"!=typeof n&&y(7),b(e)){const i=z(this),a=Q(e,void 0);let o=!0;try{r=t(a),o=!1}finally{o?j(i):H(i)}return B(i,n),U(r,i)}if(!e||"object"!=typeof e){if(r=t(e),void 0===r&&(r=e),r===p&&(r=void 0),this.autoFreeze_&&I(r,!0),n){const t=[],i=[];N("Patches").generateReplacementPatches_(e,r,t,i),n(t,i)}return r}y(1)},this.produceWithPatches=(e,t)=>{if("function"==typeof e)return(t,...n)=>this.produceWithPatches(t,(t=>e(t,...n)));let n,r;return[this.produce(e,t,((e,t)=>{n=e,r=t})),n,r]},"boolean"==typeof e?.autoFreeze&&this.setAutoFreeze(e.autoFreeze),"boolean"==typeof e?.useStrictShallowCopy&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){b(e)||y(8),v(e)&&(e=function(e){return v(e)||y(10),ee(e)}(e));const t=z(this),n=Q(e,void 0);return n[g].isManual_=!0,H(t),n}finishDraft(e,t){const n=e&&e[g];n&&n.isManual_||y(9);const{scope_:r}=n;return B(r,t),U(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}n>-1&&(t=t.slice(n+1));const r=N("Patches").applyPatches_;return v(e)?r(e,t):this.produce(e,(e=>r(e,t)))}},ne=te.produce;te.produceWithPatches.bind(te),te.setAutoFreeze.bind(te),te.setUseStrictShallowCopy.bind(te),te.applyPatches.bind(te),te.createDraft.bind(te),te.finishDraft.bind(te);var re=a(633),ie=a(274),ae=a(365);const oe=ne(((e,t)=>{-1===e.findIndex((e=>"timeunit"===e.type))&&e.push({type:"formula",expr:`toDate(datum["${t}"])`,as:t},{type:"timeunit",field:t,units:["year","month","date","hours","minutes","seconds"],as:[re.DEFAULT_TRANSFORMED_TIME_DIMENSION,`${re.DEFAULT_TIME_DIMENSION}1`]})})),se=e=>{if(e)return{field:e}},le=e=>e.find((e=>e.name===re.TABLE)),ue=e=>e.find((e=>e.name===re.FILTERED_TABLE)),ce=e=>{if(0===e.length)return[];const t=e.map((e=>`datum.${e}`)).join(' + " | " + ');return[{type:"formula",as:re.SERIES_ID,expr:t}]},de=e=>{var t;const n=null===(t=e[0])||void 0===t?void 0:t.excludeDataKeys,r=null==n?void 0:n.map((e=>({type:"filter",expr:`!datum.${e}`})));return{name:`${re.FILTERED_TABLE}ForInspect`,source:re.FILTERED_TABLE,transform:r}};function fe(e,t,n){return e.fields=t||[],e.fname=n,e}function he(e){return null==e?null:e.fname}function pe(e){return null==e?null:e.fields}function me(e){return 1===e.length?ge(e[0]):ye(e)}const ge=e=>function(t){return t[e]},ye=e=>{const t=e.length;return function(n){for(let r=0;r<t;++r)n=n[e[r]];return n}};function _e(e){throw Error(e)}function ve(e){const t=[],n=e.length;let r,i,a,o=null,s=0,l="";function u(){t.push(l+e.substring(r,i)),l="",r=i+1}for(e+="",r=i=0;i<n;++i)if(a=e[i],"\\"===a)l+=e.substring(r,i++),r=i;else if(a===o)u(),o=null,s=-1;else{if(o)continue;r===s&&'"'===a||r===s&&"'"===a?(r=i+1,o=a):"."!==a||s?"["===a?(i>r&&u(),s=r=i+1):"]"===a&&(s||_e("Access path missing open bracket: "+e),s>0&&u(),s=0,r=i+1):i>r?u():r=i+1}return s&&_e("Access path missing closing bracket: "+e),o&&_e("Access path missing closing quote: "+e),i>r&&(i++,u()),t}function be(e,t,n){const r=ve(e);return e=1===r.length?r[0]:e,fe((n&&n.get||me)(r),[e],t||e)}const xe=be("id"),Ee=fe((e=>e),[],"identity"),Se=fe((()=>0),[],"zero"),Ae=fe((()=>1),[],"one"),$e=fe((()=>!0),[],"true"),Te=fe((()=>!1),[],"false"),Oe=new Set([...Object.getOwnPropertyNames(Object.prototype).filter((e=>"function"==typeof Object.prototype[e])),"__proto__"]);function De(e,t,n){const r=[t].concat([].slice.call(n));console[e].apply(console,r)}const Me=0,we=1,Ie=2,Ce=3,Re=4;function ke(e,t,n=De){let r=e||Me;return{level(e){return arguments.length?(r=+e,this):r},error(){return r>=we&&n(t||"error","ERROR",arguments),this},warn(){return r>=Ie&&n(t||"warn","WARN",arguments),this},info(){return r>=Ce&&n(t||"log","INFO",arguments),this},debug(){return r>=Re&&n(t||"log","DEBUG",arguments),this}}}var Le=Array.isArray;function Ne(e){return e===Object(e)}const Fe=e=>"__proto__"!==e;function Be(e,t,n,r){if(!Fe(t))return;let i,a;if(Ne(n)&&!Le(n))for(i in a=Ne(e[t])?e[t]:e[t]={},n)r&&(!0===r||r[i])?Be(a,i,n[i]):Fe(i)&&(a[i]=n[i]);else e[t]=n}function je(e,t){if(null==e)return t;const n={},r=[];function i(e){n[e.name]||(n[e.name]=1,r.push(e))}return t.forEach(i),e.forEach(i),r}function He(e){return e[e.length-1]}function ze(e){return null==e||""===e?null:+e}const Pe=e=>t=>e*Math.exp(t),Ue=e=>t=>Math.log(e*t),Ve=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),We=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,Ge=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function qe(e,t,n,r){const i=n(e[0]),a=n(He(e)),o=(a-i)*t;return[r(i-o),r(a-o)]}function Ye(e,t,n,r,i){const a=r(e[0]),o=r(He(e)),s=null!=t?r(t):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function Ke(e,t,n){return Ye(e,t,n,ze,Ee)}function Je(e,t,n){const r=Math.sign(e[0]);return Ye(e,t,n,Ue(r),Pe(r))}function Xe(e,t,n,r){return Ye(e,t,n,Ge(r),Ge(1/r))}function Ze(e,t,n,r){return Ye(e,t,n,Ve(r),We(r))}function Qe(e){return null!=e?Le(e)?e:[e]:[]}function et(e){return"function"==typeof e}const tt="descending";function nt(e,t,n){n=n||{},t=Qe(t)||[];const r=[],i=[],a={},o=n.comparator||it;return Qe(e).forEach(((e,o)=>{null!=e&&(r.push(t[o]===tt?-1:1),i.push(e=et(e)?e:be(e,null,n)),(pe(e)||[]).forEach((e=>a[e]=1)))})),0===i.length?null:fe(o(i,r),Object.keys(a))}const rt=(e,t)=>(e<t||null==e)&&null!=t?-1:(e>t||null==t)&&null!=e?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t==t?-1:t!=t&&e==e?1:0),it=(e,t)=>1===e.length?at(e[0],t[0]):ot(e,t,e.length),at=(e,t)=>function(n,r){return rt(e(n),e(r))*t},ot=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;0===o&&++s<n;)a=e[s],o=rt(a(r),a(i));return o*t[s]});function st(e){return et(e)?e:()=>e}function lt(e,t){let n;return r=>{n&&clearTimeout(n),n=setTimeout((()=>(t(r),n=null)),e)}}function ut(e){for(let t,n,r=1,i=arguments.length;r<i;++r)for(n in t=arguments[r],t)e[n]=t[n];return e}function ct(e,t){let n,r,i,a,o=0;if(e&&(n=e.length))if(null==t){for(r=e[o];o<n&&(null==r||r!=r);r=e[++o]);for(i=a=r;o<n;++o)r=e[o],null!=r&&(r<i&&(i=r),r>a&&(a=r))}else{for(r=t(e[o]);o<n&&(null==r||r!=r);r=t(e[++o]));for(i=a=r;o<n;++o)r=t(e[o]),null!=r&&(r<i&&(i=r),r>a&&(a=r))}return[i,a]}function dt(e,t){return Object.hasOwn(e,t)}const ft={};function ht(e){let t,n={};function r(e){return dt(n,e)&&n[e]!==ft}const i={size:0,empty:0,object:n,has:r,get:e=>r(e)?n[e]:void 0,set(e,t){return r(e)||(++i.size,n[e]===ft&&--i.empty),n[e]=t,this},delete(e){return r(e)&&(--i.size,++i.empty,n[e]=ft),this},clear(){i.size=i.empty=0,i.object=n={}},test(e){return arguments.length?(t=e,i):t},clean(){const e={};let r=0;for(const i in n){const a=n[i];a===ft||t&&t(a)||(e[i]=a,++r)}i.size=r,i.empty=0,i.object=n=e}};return e&&Object.keys(e).forEach((t=>{i.set(t,e[t])})),i}function pt(e,t,n){const r=e.prototype=Object.create(t.prototype);return Object.defineProperty(r,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),ut(r,n)}function mt(e,t,n,r){let i,a=t[0],o=t[t.length-1];return a>o&&(i=a,a=o,o=i),r=void 0===r||r,((n=void 0===n||n)?a<=e:a<e)&&(r?e<=o:e<o)}function gt(e){return"[object Date]"===Object.prototype.toString.call(e)}function yt(e){return"number"==typeof e}function _t(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function vt(e){return"string"==typeof e}function bt(e,t,n){e&&(e=t?Qe(e).map((e=>e.replace(/\\(.)/g,"$1"))):Qe(e));const r=e&&e.length,i=n&&n.get||me,a=e=>i(t?[e]:ve(e));let o;if(r)if(1===r){const t=a(e[0]);o=function(e){return""+t(e)}}else{const t=e.map(a);o=function(e){let n=""+t[0](e),i=0;for(;++i<r;)n+="|"+t[i](e);return n}}else o=function(){return""};return fe(o,e,"key")}function xt(e,t){let n="";for(;--t>=0;)n+=e;return n}function Et(e){return e&&He(e)-e[0]||0}function St(e){return Le(e)?`[${e.map((e=>null===e?"null":St(e)))}]`:Ne(e)||vt(e)?JSON.stringify(e).replaceAll("\u2028","\\u2028").replaceAll("\u2029","\\u2029"):e}function At(e){return null==e||""===e?null:!(!e||"false"===e||"0"===e||!e)}const $t=e=>yt(e)||gt(e)?e:Date.parse(e);function Tt(e,t){return t=t||$t,null==e||""===e?null:t(e)}function Ot(e){return null==e||""===e?null:e+""}function Dt(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}function Mt(e,t,n){if(e)if(t){const r=e.length;for(let i=0;i<r;++i){const r=t(e[i]);r&&n(r,i,e)}}else e.forEach(n)}var wt={},It={},Ct=34,Rt=10,kt=13;function Lt(e){return new Function("d","return {"+e.map((function(e,t){return JSON.stringify(e)+": d["+t+'] || ""'})).join(",")+"}")}function Nt(e){var t=Object.create(null),n=[];return e.forEach((function(e){for(var r in e)r in t||n.push(t[r]=r)})),n}function Ft(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function Bt(e){var t=new RegExp('["'+e+"\n\r]"),n=e.charCodeAt(0);function r(e,t){var r,i=[],a=e.length,o=0,s=0,l=a<=0,u=!1;function c(){if(l)return It;if(u)return u=!1,wt;var t,r,i=o;if(e.charCodeAt(i)===Ct){for(;o++<a&&e.charCodeAt(o)!==Ct||e.charCodeAt(++o)===Ct;);return(t=o)>=a?l=!0:(r=e.charCodeAt(o++))===Rt?u=!0:r===kt&&(u=!0,e.charCodeAt(o)===Rt&&++o),e.slice(i+1,t-1).replace(/""/g,'"')}for(;o<a;){if((r=e.charCodeAt(t=o++))===Rt)u=!0;else if(r===kt)u=!0,e.charCodeAt(o)===Rt&&++o;else if(r!==n)continue;return e.slice(i,t)}return l=!0,e.slice(i,a)}for(e.charCodeAt(a-1)===Rt&&--a,e.charCodeAt(a-1)===kt&&--a;(r=c())!==It;){for(var d=[];r!==wt&&r!==It;)d.push(r),r=c();t&&null==(d=t(d,s++))||i.push(d)}return i}function i(t,n){return t.map((function(t){return n.map((function(e){return o(t[e])})).join(e)}))}function a(t){return t.map(o).join(e)}function o(e){return null==e?"":e instanceof Date?function(e){var t,n=e.getUTCHours(),r=e.getUTCMinutes(),i=e.getUTCSeconds(),a=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":((t=e.getUTCFullYear())<0?"-"+Ft(-t,6):t>9999?"+"+Ft(t,6):Ft(t,4))+"-"+Ft(e.getUTCMonth()+1,2)+"-"+Ft(e.getUTCDate(),2)+(a?"T"+Ft(n,2)+":"+Ft(r,2)+":"+Ft(i,2)+"."+Ft(a,3)+"Z":i?"T"+Ft(n,2)+":"+Ft(r,2)+":"+Ft(i,2)+"Z":r||n?"T"+Ft(n,2)+":"+Ft(r,2)+"Z":"")}(e):t.test(e+="")?'"'+e.replace(/"/g,'""')+'"':e}return{parse:function(e,t){var n,i,a=r(e,(function(e,r){if(n)return n(e,r-1);i=e,n=t?function(e,t){var n=Lt(e);return function(r,i){return t(n(r),i,e)}}(e,t):Lt(e)}));return a.columns=i||[],a},parseRows:r,format:function(t,n){return null==n&&(n=Nt(t)),[n.map(o).join(e)].concat(i(t,n)).join("\n")},formatBody:function(e,t){return null==t&&(t=Nt(e)),i(e,t).join("\n")},formatRows:function(e){return e.map(a).join("\n")},formatRow:a,formatValue:o}}function jt(e){return e}function Ht(e,t){return"string"==typeof t&&(t=e.objects[t]),"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map((function(t){return zt(e,t)}))}:zt(e,t)}function zt(e,t){var n=t.id,r=t.bbox,i=null==t.properties?{}:t.properties,a=Pt(e,t);return null==n&&null==r?{type:"Feature",properties:i,geometry:a}:null==r?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function Pt(e,t){var n=function(e){if(null==e)return jt;var t,n,r=e.scale[0],i=e.scale[1],a=e.translate[0],o=e.translate[1];return function(e,s){s||(t=n=0);var l=2,u=e.length,c=new Array(u);for(c[0]=(t+=e[0])*r+a,c[1]=(n+=e[1])*i+o;l<u;)c[l]=e[l],++l;return c}}(e.transform),r=e.arcs;function i(e,t){t.length&&t.pop();for(var i=r[e<0?~e:e],a=0,o=i.length;a<o;++a)t.push(n(i[a],a));e<0&&function(e,t){for(var n,r=e.length,i=r-t;i<--r;)n=e[i],e[i++]=e[r],e[r]=n}(t,o)}function a(e){return n(e)}function o(e){for(var t=[],n=0,r=e.length;n<r;++n)i(e[n],t);return t.length<2&&t.push(t[0]),t}function s(e){for(var t=o(e);t.length<4;)t.push(t[0]);return t}function l(e){return e.map(s)}return function e(t){var n,r=t.type;switch(r){case"GeometryCollection":return{type:r,geometries:t.geometries.map(e)};case"Point":n=a(t.coordinates);break;case"MultiPoint":n=t.coordinates.map(a);break;case"LineString":n=o(t.arcs);break;case"MultiLineString":n=t.arcs.map(o);break;case"Polygon":n=l(t.arcs);break;case"MultiPolygon":n=t.arcs.map(l);break;default:return null}return{type:r,coordinates:n}}(t)}function Ut(e,t){var n={},r={},i={},a=[],o=-1;function s(e,t){for(var r in e){var i=e[r];delete t[i.start],delete i.start,delete i.end,i.forEach((function(e){n[e<0?~e:e]=1})),a.push(i)}}return t.forEach((function(n,r){var i,a=e.arcs[n<0?~n:n];a.length<3&&!a[1][0]&&!a[1][1]&&(i=t[++o],t[o]=n,t[r]=i)})),t.forEach((function(t){var n,a,o=function(t){var n,r=e.arcs[t<0?~t:t],i=r[0];return e.transform?(n=[0,0],r.forEach((function(e){n[0]+=e[0],n[1]+=e[1]}))):n=r[r.length-1],t<0?[n,i]:[i,n]}(t),s=o[0],l=o[1];if(n=i[s])if(delete i[n.end],n.push(t),n.end=l,a=r[l]){delete r[a.start];var u=a===n?n:n.concat(a);r[u.start=n.start]=i[u.end=a.end]=u}else r[n.start]=i[n.end]=n;else if(n=r[l])if(delete r[n.start],n.unshift(t),n.start=s,a=i[s]){delete i[a.end];var c=a===n?n:a.concat(n);r[c.start=a.start]=i[c.end=n.end]=c}else r[n.start]=i[n.end]=n;else r[(n=[t]).start=s]=i[n.end=l]=n})),s(i,r),s(r,i),t.forEach((function(e){n[e<0?~e:e]||a.push([e])})),a}function Vt(e){return Pt(e,Wt.apply(this,arguments))}function Wt(e,t,n){var r,i,a;if(arguments.length>1)r=function(e,t,n){var r,i=[],a=[];function o(e){var t=e<0?~e:e;(a[t]||(a[t]=[])).push({i:e,g:r})}function s(e){e.forEach(o)}function l(e){e.forEach(s)}return function e(t){switch(r=t,t.type){case"GeometryCollection":t.geometries.forEach(e);break;case"LineString":s(t.arcs);break;case"MultiLineString":case"Polygon":l(t.arcs);break;case"MultiPolygon":!function(e){e.forEach(l)}(t.arcs)}}(t),a.forEach(null==n?function(e){i.push(e[0].i)}:function(e){n(e[0].g,e[e.length-1].g)&&i.push(e[0].i)}),i}(0,t,n);else for(i=0,r=new Array(a=e.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:Ut(e,r)}}const Gt=Math.sqrt(50),qt=Math.sqrt(10),Yt=Math.sqrt(2);function Kt(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/Math.pow(10,i),o=a>=Gt?10:a>=qt?5:a>=Yt?2:1;let s,l,u;return i<0?(u=Math.pow(10,-i)/o,s=Math.round(e*u),l=Math.round(t*u),s/u<e&&++s,l/u>t&&--l,u=-u):(u=Math.pow(10,i)*o,s=Math.round(e/u),l=Math.round(t/u),s*u<e&&++s,l*u>t&&--l),l<s&&.5<=n&&n<2?Kt(e,t,2*n):[s,l,u]}function Jt(e,t,n){if(!((n=+n)>0))return[];if((e=+e)==(t=+t))return[e];const r=t<e,[i,a,o]=r?Kt(t,e,n):Kt(e,t,n);if(!(a>=i))return[];const s=a-i+1,l=new Array(s);if(r)if(o<0)for(let e=0;e<s;++e)l[e]=(a-e)/-o;else for(let e=0;e<s;++e)l[e]=(a-e)*o;else if(o<0)for(let e=0;e<s;++e)l[e]=(i+e)/-o;else for(let e=0;e<s;++e)l[e]=(i+e)*o;return l}function Xt(e,t,n){return Kt(e=+e,t=+t,n=+n)[2]}function Zt(e,t,n){n=+n;const r=(t=+t)<(e=+e),i=r?Xt(t,e,n):Xt(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}var Qt,en=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tn(e){if(!(t=en.exec(e)))throw new Error("invalid format: "+e);var t;return new nn({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function nn(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function rn(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function an(e){return(e=rn(Math.abs(e)))?e[1]:NaN}function on(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(an(t)/3)))-an(Math.abs(e)))}function sn(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,an(t)-an(e))+1}function ln(e){return Math.max(0,-an(Math.abs(e)))}function un(e,t){var n=rn(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}tn.prototype=nn.prototype,nn.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const cn={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>un(100*e,t),r:un,s:function(e,t){var n=rn(e,t);if(!n)return e+"";var r=n[0],i=n[1],a=i-(Qt=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,o=r.length;return a===o?r:a>o?r+new Array(a-o+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+rn(e,Math.max(0,t+a-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function dn(e){return e}var fn,hn,pn,mn=Array.prototype.map,gn=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function yn(e){var t,n,r=void 0===e.grouping||void 0===e.thousands?dn:(t=mn.call(e.grouping,Number),n=e.thousands+"",function(e,r){for(var i=e.length,a=[],o=0,s=t[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),a.push(e.substring(i-=s,i+s)),!((l+=s+1)>r));)s=t[o=(o+1)%t.length];return a.reverse().join(n)}),i=void 0===e.currency?"":e.currency[0]+"",a=void 0===e.currency?"":e.currency[1]+"",o=void 0===e.decimal?".":e.decimal+"",s=void 0===e.numerals?dn:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(mn.call(e.numerals,String)),l=void 0===e.percent?"%":e.percent+"",u=void 0===e.minus?"−":e.minus+"",c=void 0===e.nan?"NaN":e.nan+"";function d(e){var t=(e=tn(e)).fill,n=e.align,d=e.sign,f=e.symbol,h=e.zero,p=e.width,m=e.comma,g=e.precision,y=e.trim,_=e.type;"n"===_?(m=!0,_="g"):cn[_]||(void 0===g&&(g=12),y=!0,_="g"),(h||"0"===t&&"="===n)&&(h=!0,t="0",n="=");var v="$"===f?i:"#"===f&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",b="$"===f?a:/[%p]/.test(_)?l:"",x=cn[_],E=/[defgprs%]/.test(_);function S(e){var i,a,l,f=v,S=b;if("c"===_)S=x(e)+S,e="";else{var A=(e=+e)<0||1/e<0;if(e=isNaN(e)?c:x(Math.abs(e),g),y&&(e=function(e){e:for(var t,n=e.length,r=1,i=-1;r<n;++r)switch(e[r]){case".":i=t=r;break;case"0":0===i&&(i=r),t=r;break;default:if(!+e[r])break e;i>0&&(i=0)}return i>0?e.slice(0,i)+e.slice(t+1):e}(e)),A&&0==+e&&"+"!==d&&(A=!1),f=(A?"("===d?d:u:"-"===d||"("===d?"":d)+f,S=("s"===_?gn[8+Qt/3]:"")+S+(A&&"("===d?")":""),E)for(i=-1,a=e.length;++i<a;)if(48>(l=e.charCodeAt(i))||l>57){S=(46===l?o+e.slice(i+1):e.slice(i))+S,e=e.slice(0,i);break}}m&&!h&&(e=r(e,1/0));var $=f.length+e.length+S.length,T=$<p?new Array(p-$+1).join(t):"";switch(m&&h&&(e=r(T+e,T.length?p-S.length:1/0),T=""),n){case"<":e=f+e+S+T;break;case"=":e=f+T+e+S;break;case"^":e=T.slice(0,$=T.length>>1)+f+e+S+T.slice($);break;default:e=T+f+e+S}return s(e)}return g=void 0===g?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),S.toString=function(){return e+""},S}return{format:d,formatPrefix:function(e,t){var n=d(((e=tn(e)).type="f",e)),r=3*Math.max(-8,Math.min(8,Math.floor(an(t)/3))),i=Math.pow(10,-r),a=gn[8+r/3];return function(e){return n(i*e)+a}}}}fn=yn({thousands:",",grouping:[3],currency:["$",""]}),hn=fn.format,pn=fn.formatPrefix;const _n=new Date,vn=new Date;function bn(e,t,n,r){function i(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{const t=i(e),n=i.ceil(e);return e-t<n-e?t:n},i.offset=(e,n)=>(t(e=new Date(+e),null==n?1:Math.floor(n)),e),i.range=(n,r,a)=>{const o=[];if(n=i.ceil(n),a=null==a?1:Math.floor(a),!(n<r&&a>0))return o;let s;do{o.push(s=new Date(+n)),t(n,a),e(n)}while(s<n&&n<r);return o},i.filter=n=>bn((t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),((e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););})),n&&(i.count=(t,r)=>(_n.setTime(+t),vn.setTime(+r),e(_n),e(vn),Math.floor(n(_n,vn))),i.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?i.filter(r?t=>r(t)%e==0:t=>i.count(0,t)%e==0):i:null)),i}const xn=1e3,En=6e4,Sn=36e5,An=864e5,$n=6048e5,Tn=31536e6,On=bn((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*En)/An),(e=>e.getDate()-1)),Dn=(On.range,bn((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/An),(e=>e.getUTCDate()-1))),Mn=(Dn.range,bn((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/An),(e=>Math.floor(e/An))));function wn(e){return bn((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*En)/$n))}Mn.range;const In=wn(0),Cn=wn(1),Rn=wn(2),kn=wn(3),Ln=wn(4),Nn=wn(5),Fn=wn(6);function Bn(e){return bn((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/$n))}In.range,Cn.range,Rn.range,kn.range,Ln.range,Nn.range,Fn.range;const jn=Bn(0),Hn=Bn(1),zn=Bn(2),Pn=Bn(3),Un=Bn(4),Vn=Bn(5),Wn=Bn(6),Gn=(jn.range,Hn.range,zn.range,Pn.range,Un.range,Vn.range,Wn.range,bn((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear())));Gn.every=e=>isFinite(e=Math.floor(e))&&e>0?bn((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n*e)})):null,Gn.range;const qn=bn((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));qn.every=e=>isFinite(e=Math.floor(e))&&e>0?bn((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null,qn.range;const Yn=bn((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth())),Kn=(Yn.range,bn((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth()))),Jn=(Kn.range,bn((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*xn-e.getMinutes()*En)}),((e,t)=>{e.setTime(+e+t*Sn)}),((e,t)=>(t-e)/Sn),(e=>e.getHours()))),Xn=(Jn.range,bn((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*Sn)}),((e,t)=>(t-e)/Sn),(e=>e.getUTCHours()))),Zn=(Xn.range,bn((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*xn)}),((e,t)=>{e.setTime(+e+t*En)}),((e,t)=>(t-e)/En),(e=>e.getMinutes()))),Qn=(Zn.range,bn((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*En)}),((e,t)=>(t-e)/En),(e=>e.getUTCMinutes()))),er=(Qn.range,bn((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*xn)}),((e,t)=>(t-e)/xn),(e=>e.getUTCSeconds()))),tr=(er.range,bn((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e)));function nr(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function rr(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ir(e){let t,n,r;function i(e,r,i=0,a=e.length){if(i<a){if(0!==t(r,r))return a;do{const t=i+a>>>1;n(e[t],r)<0?i=t+1:a=t}while(i<a)}return i}return 2!==e.length?(t=nr,n=(t,n)=>nr(e(t),n),r=(t,n)=>e(t)-n):(t=e===nr||e===rr?e:ar,n=e,r=e),{left:i,center:function(e,t,n=0,a=e.length){const o=i(e,t,n,a-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o},right:function(e,r,i=0,a=e.length){if(i<a){if(0!==t(r,r))return a;do{const t=i+a>>>1;n(e[t],r)<=0?i=t+1:a=t}while(i<a)}return i}}}function ar(){return 0}tr.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?bn((t=>{t.setTime(Math.floor(t/e)*e)}),((t,n)=>{t.setTime(+t+n*e)}),((t,n)=>(n-t)/e)):tr:null),tr.range;const or="year",sr="quarter",lr="month",ur="week",cr="date",dr="day",fr="dayofyear",hr="hours",pr="minutes",mr="seconds",gr="milliseconds",yr=[or,sr,lr,ur,cr,dr,fr,hr,pr,mr,gr],_r=yr.reduce(((e,t,n)=>(e[t]=1+n,e)),{});function vr(e){const t=Qe(e).slice(),n={};return t.length||_e("Missing time unit."),t.forEach((e=>{dt(_r,e)?n[e]=1:_e(`Invalid time unit: ${e}.`)})),(n[ur]||n[dr]?1:0)+(n[sr]||n[lr]||n[cr]?1:0)+(n[fr]?1:0)>1&&_e(`Incompatible time units: ${e}`),t.sort(((e,t)=>_r[e]-_r[t])),t}const br={[or]:"%Y ",[sr]:"Q%q ",[lr]:"%b ",[cr]:"%d ",[ur]:"W%U ",[dr]:"%a ",[fr]:"%j ",[hr]:"%H:00",[pr]:"00:%M",[mr]:":%S",[gr]:".%L",[`${or}-${lr}`]:"%Y-%m ",[`${or}-${lr}-${cr}`]:"%Y-%m-%d ",[`${hr}-${pr}`]:"%H:%M"},xr=new Date;function Er(e){return xr.setFullYear(e),xr.setMonth(0),xr.setDate(1),xr.setHours(0,0,0,0),xr}function Sr(e){return On.count(Er(e.getFullYear())-1,e)}function Ar(e){return In.count(Er(e.getFullYear())-1,e)}function $r(e){return Er(e).getDay()}function Tr(e,t,n,r,i,a,o){if(0<=e&&e<100){const s=new Date(-1,t,n,r,i,a,o);return s.setFullYear(e),s}return new Date(e,t,n,r,i,a,o)}function Or(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return Dn.count(t-1,e)}function Dr(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return jn.count(t-1,e)}function Mr(e){return xr.setTime(Date.UTC(e,0,1)),xr.getUTCDay()}function wr(e,t,n,r,i,a,o){if(0<=e&&e<100){const e=new Date(Date.UTC(-1,t,n,r,i,a,o));return e.setUTCFullYear(n.y),e}return new Date(Date.UTC(e,t,n,r,i,a,o))}function Ir(e,t,n,r,i){const a=t||1,o=He(e),s=(e,t,i)=>function(e,t,n,r){const i=n<=1?e:r?(t,i)=>r+n*Math.floor((e(t,i)-r)/n):(t,r)=>n*Math.floor(e(t,r)/n);return t?(e,n)=>t(i(e,n),n):i}(n[i=i||e],r[i],e===o&&a,t),l=new Date,u=Dt(e),c=u[or]?s(or):st(2012),d=u[lr]?s(lr):u[sr]?s(sr):Se,f=u[ur]&&u[dr]?s(dr,1,ur+dr):u[ur]?s(ur,1):u[dr]?s(dr,1):u[cr]?s(cr,1):u[fr]?s(fr,1):Ae,h=u[hr]?s(hr):Se,p=u[pr]?s(pr):Se,m=u[mr]?s(mr):Se,g=u[gr]?s(gr):Se;return function(e){l.setTime(+e);const t=c(l);return i(t,d(l),f(l,t),h(l),p(l),m(l),g(l))}}function Cr(e,t,n){return t+7*e-(n+6)%7}const Rr={[or]:e=>e.getFullYear(),[sr]:e=>Math.floor(e.getMonth()/3),[lr]:e=>e.getMonth(),[cr]:e=>e.getDate(),[hr]:e=>e.getHours(),[pr]:e=>e.getMinutes(),[mr]:e=>e.getSeconds(),[gr]:e=>e.getMilliseconds(),[fr]:e=>Sr(e),[ur]:e=>Ar(e),[ur+dr]:(e,t)=>Cr(Ar(e),e.getDay(),$r(t)),[dr]:(e,t)=>Cr(1,e.getDay(),$r(t))},kr={[sr]:e=>3*e,[ur]:(e,t)=>Cr(e,0,$r(t))};function Lr(e,t){return Ir(e,t||1,Rr,kr,Tr)}const Nr={[or]:e=>e.getUTCFullYear(),[sr]:e=>Math.floor(e.getUTCMonth()/3),[lr]:e=>e.getUTCMonth(),[cr]:e=>e.getUTCDate(),[hr]:e=>e.getUTCHours(),[pr]:e=>e.getUTCMinutes(),[mr]:e=>e.getUTCSeconds(),[gr]:e=>e.getUTCMilliseconds(),[fr]:e=>Or(e),[ur]:e=>Dr(e),[dr]:(e,t)=>Cr(1,e.getUTCDay(),Mr(t)),[ur+dr]:(e,t)=>Cr(Dr(e),e.getUTCDay(),Mr(t))},Fr={[sr]:e=>3*e,[ur]:(e,t)=>Cr(e,0,Mr(t))};function Br(e,t){return Ir(e,t||1,Nr,Fr,wr)}const jr={[or]:Gn,[sr]:Yn.every(3),[lr]:Yn,[ur]:In,[cr]:On,[dr]:On,[fr]:On,[hr]:Jn,[pr]:Zn,[mr]:er,[gr]:tr},Hr={[or]:qn,[sr]:Kn.every(3),[lr]:Kn,[ur]:jn,[cr]:Dn,[dr]:Dn,[fr]:Dn,[hr]:Xn,[pr]:Qn,[mr]:er,[gr]:tr};function zr(e){return jr[e]}function Pr(e){return Hr[e]}function Ur(e,t,n){return e?e.offset(t,n):void 0}function Vr(e,t,n,r){return e?e.range(t,n,r):void 0}const Wr=31536e6,Gr=[or,lr,cr,hr,pr,mr,gr],qr=Gr.slice(0,-1),Yr=qr.slice(0,-1),Kr=Yr.slice(0,-1),Jr=Kr.slice(0,-1),Xr=[or,lr],Zr=[or],Qr=[[qr,1,1e3],[qr,5,5e3],[qr,15,15e3],[qr,30,3e4],[Yr,1,6e4],[Yr,5,3e5],[Yr,15,9e5],[Yr,30,18e5],[Kr,1,36e5],[Kr,3,108e5],[Kr,6,216e5],[Kr,12,432e5],[Jr,1,864e5],[[or,ur],1,6048e5],[Xr,1,2592e6],[Xr,3,7776e6],[Zr,1,Wr]];function ei(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function ti(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function ni(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function ri(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,l=e.shortMonths,u=mi(i),c=gi(i),d=mi(a),f=gi(a),h=mi(o),p=gi(o),m=mi(s),g=gi(s),y=mi(l),_=gi(l),v={a:function(e){return o[e.getDay()]},A:function(e){return a[e.getDay()]},b:function(e){return l[e.getMonth()]},B:function(e){return s[e.getMonth()]},c:null,d:Fi,e:Fi,f:Pi,g:Qi,G:ta,H:Bi,I:ji,j:Hi,L:zi,m:Ui,M:Vi,p:function(e){return i[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:Aa,s:$a,S:Wi,u:Gi,U:qi,V:Ki,w:Ji,W:Xi,x:null,X:null,y:Zi,Y:ea,Z:na,"%":Sa},b={a:function(e){return o[e.getUTCDay()]},A:function(e){return a[e.getUTCDay()]},b:function(e){return l[e.getUTCMonth()]},B:function(e){return s[e.getUTCMonth()]},c:null,d:ra,e:ra,f:la,g:va,G:xa,H:ia,I:aa,j:oa,L:sa,m:ua,M:ca,p:function(e){return i[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:Aa,s:$a,S:da,u:fa,U:ha,V:ma,w:ga,W:ya,x:null,X:null,y:_a,Y:ba,Z:Ea,"%":Sa},x={a:function(e,t,n){var r=h.exec(t.slice(n));return r?(e.w=p.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(e,t,n){var r=y.exec(t.slice(n));return r?(e.m=_.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(e,t,n){var r=m.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(e,n,r){return A(e,t,n,r)},d:Oi,e:Oi,f:Ri,g:Si,G:Ei,H:Mi,I:Mi,j:Di,L:Ci,m:Ti,M:wi,p:function(e,t,n){var r=u.exec(t.slice(n));return r?(e.p=c.get(r[0].toLowerCase()),n+r[0].length):-1},q:$i,Q:Li,s:Ni,S:Ii,u:_i,U:vi,V:bi,w:yi,W:xi,x:function(e,t,r){return A(e,n,t,r)},X:function(e,t,n){return A(e,r,t,n)},y:Si,Y:Ei,Z:Ai,"%":ki};function E(e,t){return function(n){var r,i,a,o=[],s=-1,l=0,u=e.length;for(n instanceof Date||(n=new Date(+n));++s<u;)37===e.charCodeAt(s)&&(o.push(e.slice(l,s)),null!=(i=ui[r=e.charAt(++s)])?r=e.charAt(++s):i="e"===r?" ":"0",(a=t[r])&&(r=a(n,i)),o.push(r),l=s+1);return o.push(e.slice(l,s)),o.join("")}}function S(e,t){return function(n){var r,i,a=ni(1900,void 0,1);if(A(a,e,n+="",0)!=n.length)return null;if("Q"in a)return new Date(a.Q);if("s"in a)return new Date(1e3*a.s+("L"in a?a.L:0));if(t&&!("Z"in a)&&(a.Z=0),"p"in a&&(a.H=a.H%12+12*a.p),void 0===a.m&&(a.m="q"in a?a.q:0),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(r=ti(ni(a.y,0,1))).getUTCDay(),r=i>4||0===i?Hn.ceil(r):Hn(r),r=Dn.offset(r,7*(a.V-1)),a.y=r.getUTCFullYear(),a.m=r.getUTCMonth(),a.d=r.getUTCDate()+(a.w+6)%7):(i=(r=ei(ni(a.y,0,1))).getDay(),r=i>4||0===i?Cn.ceil(r):Cn(r),r=On.offset(r,7*(a.V-1)),a.y=r.getFullYear(),a.m=r.getMonth(),a.d=r.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),i="Z"in a?ti(ni(a.y,0,1)).getUTCDay():ei(ni(a.y,0,1)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(i+5)%7:a.w+7*a.U-(i+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,ti(a)):ei(a)}}function A(e,t,n,r){for(var i,a,o=0,s=t.length,l=n.length;o<s;){if(r>=l)return-1;if(37===(i=t.charCodeAt(o++))){if(i=t.charAt(o++),!(a=x[i in ui?t.charAt(o++):i])||(r=a(e,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return v.x=E(n,v),v.X=E(r,v),v.c=E(t,v),b.x=E(n,b),b.X=E(r,b),b.c=E(t,b),{format:function(e){var t=E(e+="",v);return t.toString=function(){return e},t},parse:function(e){var t=S(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=E(e+="",b);return t.toString=function(){return e},t},utcParse:function(e){var t=S(e+="",!0);return t.toString=function(){return e},t}}}var ii,ai,oi,si,li,ui={"-":"",_:" ",0:"0"},ci=/^\s*\d+/,di=/^%/,fi=/[\\^$*+?|[\]().{}]/g;function hi(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(t)+i:i)}function pi(e){return e.replace(fi,"\\$&")}function mi(e){return new RegExp("^(?:"+e.map(pi).join("|")+")","i")}function gi(e){return new Map(e.map(((e,t)=>[e.toLowerCase(),t])))}function yi(e,t,n){var r=ci.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function _i(e,t,n){var r=ci.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function vi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function bi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function xi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Ei(e,t,n){var r=ci.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function Si(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Ai(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function $i(e,t,n){var r=ci.exec(t.slice(n,n+1));return r?(e.q=3*r[0]-3,n+r[0].length):-1}function Ti(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function Oi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Di(e,t,n){var r=ci.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Mi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function wi(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Ii(e,t,n){var r=ci.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Ci(e,t,n){var r=ci.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Ri(e,t,n){var r=ci.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function ki(e,t,n){var r=di.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Li(e,t,n){var r=ci.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Ni(e,t,n){var r=ci.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Fi(e,t){return hi(e.getDate(),t,2)}function Bi(e,t){return hi(e.getHours(),t,2)}function ji(e,t){return hi(e.getHours()%12||12,t,2)}function Hi(e,t){return hi(1+On.count(Gn(e),e),t,3)}function zi(e,t){return hi(e.getMilliseconds(),t,3)}function Pi(e,t){return zi(e,t)+"000"}function Ui(e,t){return hi(e.getMonth()+1,t,2)}function Vi(e,t){return hi(e.getMinutes(),t,2)}function Wi(e,t){return hi(e.getSeconds(),t,2)}function Gi(e){var t=e.getDay();return 0===t?7:t}function qi(e,t){return hi(In.count(Gn(e)-1,e),t,2)}function Yi(e){var t=e.getDay();return t>=4||0===t?Ln(e):Ln.ceil(e)}function Ki(e,t){return e=Yi(e),hi(Ln.count(Gn(e),e)+(4===Gn(e).getDay()),t,2)}function Ji(e){return e.getDay()}function Xi(e,t){return hi(Cn.count(Gn(e)-1,e),t,2)}function Zi(e,t){return hi(e.getFullYear()%100,t,2)}function Qi(e,t){return hi((e=Yi(e)).getFullYear()%100,t,2)}function ea(e,t){return hi(e.getFullYear()%1e4,t,4)}function ta(e,t){var n=e.getDay();return hi((e=n>=4||0===n?Ln(e):Ln.ceil(e)).getFullYear()%1e4,t,4)}function na(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+hi(t/60|0,"0",2)+hi(t%60,"0",2)}function ra(e,t){return hi(e.getUTCDate(),t,2)}function ia(e,t){return hi(e.getUTCHours(),t,2)}function aa(e,t){return hi(e.getUTCHours()%12||12,t,2)}function oa(e,t){return hi(1+Dn.count(qn(e),e),t,3)}function sa(e,t){return hi(e.getUTCMilliseconds(),t,3)}function la(e,t){return sa(e,t)+"000"}function ua(e,t){return hi(e.getUTCMonth()+1,t,2)}function ca(e,t){return hi(e.getUTCMinutes(),t,2)}function da(e,t){return hi(e.getUTCSeconds(),t,2)}function fa(e){var t=e.getUTCDay();return 0===t?7:t}function ha(e,t){return hi(jn.count(qn(e)-1,e),t,2)}function pa(e){var t=e.getUTCDay();return t>=4||0===t?Un(e):Un.ceil(e)}function ma(e,t){return e=pa(e),hi(Un.count(qn(e),e)+(4===qn(e).getUTCDay()),t,2)}function ga(e){return e.getUTCDay()}function ya(e,t){return hi(Hn.count(qn(e)-1,e),t,2)}function _a(e,t){return hi(e.getUTCFullYear()%100,t,2)}function va(e,t){return hi((e=pa(e)).getUTCFullYear()%100,t,2)}function ba(e,t){return hi(e.getUTCFullYear()%1e4,t,4)}function xa(e,t){var n=e.getUTCDay();return hi((e=n>=4||0===n?Un(e):Un.ceil(e)).getUTCFullYear()%1e4,t,4)}function Ea(){return"+0000"}function Sa(){return"%"}function Aa(e){return+e}function $a(e){return Math.floor(+e/1e3)}function Ta(e){const t={};return n=>t[n]||(t[n]=e(n))}function Oa(e){const t=Ta(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(e){const n=tn(e||",");if(null==n.precision){switch(n.precision=12,n.type){case"%":n.precision-=2;break;case"e":n.precision-=1}return r=t(n),i=t(".1f")(1)[1],e=>{const t=r(e),n=t.indexOf(i);if(n<0)return t;let a=function(e,t){let n,r=e.lastIndexOf("e");if(r>0)return r;for(r=e.length;--r>t;)if(n=e.charCodeAt(r),n>=48&&n<=57)return r+1}(t,n);const o=a<t.length?t.slice(a):"";for(;--a>n;)if("0"!==t[a]){++a;break}return t.slice(0,a)+o}}return t(n);var r,i},formatSpan(e,r,i,a){a=tn(null==a?",f":a);const o=Zt(e,r,i),s=Math.max(Math.abs(e),Math.abs(r));let l;if(null==a.precision)switch(a.type){case"s":return isNaN(l=on(o,s))||(a.precision=l),n(a,s);case"":case"e":case"g":case"p":case"r":isNaN(l=sn(o,s))||(a.precision=l-("e"===a.type));break;case"f":case"%":isNaN(l=ln(o))||(a.precision=l-2*("%"===a.type))}return t(a)}}}let Da,Ma;function wa(e){return Oa(yn(e))}function Ia(e){return arguments.length?Da=wa(e):Da}function Ca(e,t,n){Ne(n=n||{})||_e(`Invalid time multi-format specifier: ${n}`);const r=t(mr),i=t(pr),a=t(hr),o=t(cr),s=t(ur),l=t(lr),u=t(sr),c=t(or),d=e(n[gr]||".%L"),f=e(n[mr]||":%S"),h=e(n[pr]||"%I:%M"),p=e(n[hr]||"%I %p"),m=e(n[cr]||n[dr]||"%a %d"),g=e(n[ur]||"%b %d"),y=e(n[lr]||"%B"),_=e(n[sr]||"%B"),v=e(n[or]||"%Y");return e=>(r(e)<e?d:i(e)<e?f:a(e)<e?h:o(e)<e?p:l(e)<e?s(e)<e?m:g:c(e)<e?u(e)<e?y:_:v)(e)}function Ra(e){const t=Ta(e.format),n=Ta(e.utcFormat);return{timeFormat:e=>vt(e)?t(e):Ca(t,zr,e),utcFormat:e=>vt(e)?n(e):Ca(n,Pr,e),timeParse:Ta(e.parse),utcParse:Ta(e.utcParse)}}function ka(e){return Ra(ri(e))}function La(e){return arguments.length?Ma=ka(e):Ma}ii=ri({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],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"]}),ai=ii.format,oi=ii.parse,si=ii.utcFormat,li=ii.utcParse,Da=Oa({format:hn,formatPrefix:pn}),Ma=Ra({format:ai,parse:oi,utcFormat:si,utcParse:li});const Na=(e,t)=>ut({},e,t);const Fa=/^(data:|([A-Za-z]+:)?\/\/)/,Ba=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,ja=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Ha="file://";async function za(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t?.http)}async function Pa(e,t){t=ut({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=Ba.test(e.replace(ja,""));null!=e&&"string"==typeof e&&s||_e("Sanitize failure, invalid URI: "+St(e));const l=Fa.test(e);return(o=t.baseURL)&&!l&&(e.startsWith("/")||o.endsWith("/")||(e="/"+e),e=o+e),a=(i=e.startsWith(Ha))||"file"===t.mode||"http"!==t.mode&&!l&&n,i?e=e.slice(7):e.startsWith("//")&&("file"===t.defaultProtocol?(e=e.slice(2),a=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(r,"localFile",{value:!!a}),r.href=e,t.target&&(r.target=t.target+""),t.rel&&(r.rel=t.rel+""),"image"===t.context&&t.crossOrigin&&(r.crossOrigin=t.crossOrigin+""),r}async function Ua(){_e("No file system access.")}async function Va(e,t){const n=ut({},this.options.http,t),r=t&&t.response,i=await fetch(e,n);return i.ok?et(i[r])?i[r]():i.text():_e(i.status+""+i.statusText)}const Wa=e=>null!=e&&e==e,Ga=e=>!(Number.isNaN(+e)||e instanceof Date),qa={boolean:At,integer:ze,number:ze,date:Tt,string:Ot,unknown:Ee},Ya=[e=>"true"===e||"false"===e||!0===e||!1===e,e=>Ga(e)&&Number.isInteger(+e),Ga,e=>!Number.isNaN(Date.parse(e))],Ka=["boolean","integer","number","date"];function Ja(e){const t=function(t,n){const r={delimiter:e};return Xa(t,n?ut(n,r):r)};return t.responseType="text",t}function Xa(e,t){return t.header&&(e=t.header.map(St).join(t.delimiter)+"\n"+e),Bt(t.delimiter).parse(e+"")}function Za(e,t){const n=t&&t.property?be(t.property):Ee;return Ne(e)&&!function(e){return!("function"!=typeof Buffer||!et(Buffer.isBuffer))&&Buffer.isBuffer(e)}(e)?function(e,t){return!Le(e)&&function(e){return e&&et(e[Symbol.iterator])}(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}(n(e),t):n(JSON.parse(e))}Xa.responseType="text",Za.responseType="json";const Qa={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function eo(e,t){let n,r,i,a;return e=Za(e,t),t&&t.feature?(n=Ht,i=t.feature):t&&t.mesh?(n=Vt,i=t.mesh,a=Qa[t.filter]):_e("Missing TopoJSON feature or mesh parameter."),r=(r=e.objects[i])?n(e,r,a):_e("Invalid TopoJSON object: "+i),r&&r.features||[r]}eo.responseType="json";const to={dsv:Xa,csv:Ja(","),tsv:Ja("\t"),json:Za,topojson:eo};function no(e,t){return arguments.length>1?(to[e]=t,this):dt(to,e)?to[e]:null}function ro(e){const t=no(e);return t&&t.responseType||"text"}function io(e,t,n,r){const i=no((t=t||{}).type||"json");return i||_e("Unknown data format type: "+t.type),e=i(e,t),t.parse&&function(e,t,n,r){if(!e.length)return;const i=La();n=n||i.timeParse,r=r||i.utcParse;let a,o,s,l,u,c,d=e.columns||Object.keys(e[0]);"auto"===t&&(t=function(e,t){return t.reduce(((t,n)=>(t[n]=function(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Ya.length,i=Ya.map(((e,t)=>t+1));for(let a,o,s=0,l=0;s<n;++s)for(o=t?e[s][t]:e[s],a=0;a<r;++a)if(i[a]&&Wa(o)&&!Ya[a](o)&&(i[a]=0,++l,l===Ya.length))return"string";return Ka[i.reduce(((e,t)=>0===e?t:e),0)-1]}(e,n),t)),{})}(e,d)),d=Object.keys(t);const f=d.map((e=>{const i=t[e];let a,o;if(i&&(i.startsWith("date:")||i.startsWith("utc:")))return a=i.split(/:(.+)?/,2),o=a[1],("'"===o[0]&&"'"===o[o.length-1]||'"'===o[0]&&'"'===o[o.length-1])&&(o=o.slice(1,-1)),("utc"===a[0]?r:n)(o);if(!qa[i])throw Error("Illegal format pattern: "+e+":"+i);return qa[i]}));for(s=0,u=e.length,c=d.length;s<u;++s)for(a=e[s],l=0;l<c;++l)o=d[l],a[o]=f[l](a[o])}(e,t.parse,n,r),dt(e,"columns")&&delete e.columns,e}const ao=e=>({options:e||{},sanitize:Pa,load:za,fileAccess:!1,file:Ua,http:Va});function oo(e){const t=e||Ee,n=[],r={};return n.add=e=>{const i=t(e);return r[i]||(r[i]=1,n.push(e)),n},n.remove=e=>{const i=t(e);if(r[i]){r[i]=0;const t=n.indexOf(e);t>=0&&n.splice(t,1)}return n},n}async function so(e,t){try{await t(e)}catch(t){e.error(t)}}const lo=Symbol("vega_id");let uo=1;function co(e){return!(!e||!fo(e))}function fo(e){return e[lo]}function ho(e,t){return e[lo]=t,e}function po(e){const t=e===Object(e)?e:{data:e};return fo(t)?t:ho(t,uo++)}function mo(e){return go(e,po({}))}function go(e,t){for(const n in e)t[n]=e[n];return t}function yo(e,t){return ho(t,fo(e))}function _o(e,t){return e?t?(n,r)=>e(n,r)||fo(t(n))-fo(t(r)):(t,n)=>e(t,n)||fo(t)-fo(n):null}function vo(e){return e&&e.constructor===bo}function bo(){const e=[],t=[],n=[],r=[],i=[];let a=null,o=!1;return{constructor:bo,insert(t){const n=Qe(t),r=n.length;for(let t=0;t<r;++t)e.push(n[t]);return this},remove(e){const n=et(e)?r:t,i=Qe(e),a=i.length;for(let e=0;e<a;++e)n.push(i[e]);return this},modify(e,t,r){const a={field:t,value:st(r)};return et(e)?(a.filter=e,i.push(a)):(a.tuple=e,n.push(a)),this},encode(e,t){return et(e)?i.push({filter:e,field:t}):n.push({tuple:e,field:t}),this},clean(e){return a=e,this},reflow(){return o=!0,this},pulse(s,l){const u={},c={};let d,f,h,p,m,g;for(d=0,f=l.length;d<f;++d)u[fo(l[d])]=1;for(d=0,f=t.length;d<f;++d)m=t[d],u[fo(m)]=-1;for(d=0,f=r.length;d<f;++d)p=r[d],l.forEach((e=>{p(e)&&(u[fo(e)]=-1)}));for(d=0,f=e.length;d<f;++d)m=e[d],g=fo(m),u[g]?u[g]=1:s.add.push(po(e[d]));for(d=0,f=l.length;d<f;++d)m=l[d],u[fo(m)]<0&&s.rem.push(m);function y(e,t,n){n?e[t]=n(e):s.encode=t,o||(c[fo(e)]=e)}for(d=0,f=n.length;d<f;++d)h=n[d],m=h.tuple,p=h.field,g=u[fo(m)],g>0&&(y(m,p,h.value),s.modifies(p));for(d=0,f=i.length;d<f;++d)h=i[d],p=h.filter,l.forEach((e=>{p(e)&&u[fo(e)]>0&&y(e,h.field,h.value)})),s.modifies(h.field);if(o)s.mod=t.length||r.length?l.filter((e=>u[fo(e)]>0)):l.slice();else for(g in c)s.mod.push(c[g]);return(a||null==a&&(t.length||r.length))&&s.clean(!0),s}}}const xo="_:mod:_";function Eo(){Object.defineProperty(this,xo,{writable:!0,value:{}})}Eo.prototype={set(e,t,n,r){const i=this,a=i[e],o=i[xo];return null!=t&&t>=0?(a[t]!==n||r)&&(a[t]=n,o[t+":"+e]=-1,o[e]=-1):(a!==n||r)&&(i[e]=n,o[e]=Le(n)?1+n.length:-1),i},modified(e,t){const n=this[xo];if(!arguments.length){for(const e in n)if(n[e])return!0;return!1}if(Le(e)){for(let t=0;t<e.length;++t)if(n[e[t]])return!0;return!1}return null!=t&&t>=0?t+1<n[e]||!!n[t+":"+e]:!!n[e]},clear(){return this[xo]={},this}};let So=0;const Ao=new Eo;function $o(e,t,n,r){this.id=++So,this.value=e,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,t&&(this._update=t),n&&this.parameters(n,r)}function To(e){return function(t){const n=this.flags;return 0===arguments.length?!!(n&e):(this.flags=t?n|e:n&~e,this)}}$o.prototype={targets(){return this._targets||(this._targets=oo(xe))},set(e){return this.value!==e?(this.value=e,1):0},skip:To(1),modified:To(2),parameters(e,t,n){t=!1!==t;const r=this._argval=this._argval||new Eo,i=this._argops=this._argops||[],a=[];let o,s,l,u;const c=(e,n,o)=>{o instanceof $o?(o!==this&&(t&&o.targets().add(this),a.push(o)),i.push({op:o,name:e,index:n})):r.set(e,n,o)};for(o in e)if(s=e[o],"pulse"===o)Qe(s).forEach((e=>{e instanceof $o?e!==this&&(e.targets().add(this),a.push(e)):_e("Pulse parameters must be operator instances.")})),this.source=s;else if(Le(s))for(r.set(o,-1,Array(l=s.length)),u=0;u<l;++u)c(o,u,s[u]);else c(o,-1,s);return this.marshall().clear(),n&&(i.initonly=!0),a},marshall(e){const t=this._argval||Ao,n=this._argops;let r,i,a,o;if(n){const s=n.length;for(i=0;i<s;++i)r=n[i],a=r.op,o=a.modified()&&a.stamp===e,t.set(r.name,r.index,a.value,o);if(n.initonly){for(i=0;i<s;++i)r=n[i],r.op.targets().remove(this);this._argops=null,this._update=null}}return t},detach(){const e=this._argops;let t,n,r,i;if(e)for(t=0,n=e.length;t<n;++t)r=e[t],i=r.op,i._targets&&i._targets.remove(this);this.pulse=null,this.source=null},evaluate(e){const t=this._update;if(t){const n=this.marshall(e.stamp),r=t.call(this,n,e);if(n.clear(),r!==this.value)this.value=r;else if(!this.modified())return e.StopPropagation}},run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?(this.skip(!1),t=0):t=this.evaluate(e),this.pulse=t||e}};let Oo=0;function Do(e,t,n){this.id=++Oo,this.value=null,n&&(this.receive=n),e&&(this._filter=e),t&&(this._apply=t)}function Mo(e,t,n){return new Do(e,t,n)}Do.prototype={_filter:$e,_apply:Ee,targets(){return this._targets||(this._targets=oo(xe))},consume(e){return arguments.length?(this._consume=!!e,this):!!this._consume},receive(e){if(this._filter(e)){const t=this.value=this._apply(e),n=this._targets,r=n?n.length:0;for(let e=0;e<r;++e)n[e].receive(t);this._consume&&(e.preventDefault(),e.stopPropagation())}},filter(e){const t=Mo(e);return this.targets().add(t),t},apply(e){const t=Mo(null,e);return this.targets().add(t),t},merge(){const e=Mo();this.targets().add(e);for(let t=0,n=arguments.length;t<n;++t)arguments[t].targets().add(e);return e},throttle(e){let t=-1;return this.filter((()=>{const n=Date.now();return n-t>e?(t=n,1):0}))},debounce(e){const t=Mo();return this.targets().add(Mo(null,null,lt(e,(e=>{const n=e.dataflow;t.receive(e),n&&n.run&&n.run()})))),t},between(e,t){let n=!1;return e.targets().add(Mo(null,null,(()=>n=!0))),t.targets().add(Mo(null,null,(()=>n=!1))),this.filter((()=>n))},detach(){this._filter=$e,this._targets=null}};const wo={skip:!0};function Io(e,t,n,r,i,a){const o=ut({},a,wo);let s,l;et(n)||(n=st(n)),void 0===r?s=t=>e.touch(n(t)):et(r)?(l=new $o(null,r,i,!1),s=t=>{l.evaluate(t);const r=n(t),i=l.value;vo(i)?e.pulse(r,i,a):e.update(r,i,o)}):s=t=>e.update(n(t),r,o),t.apply(s)}function Co(e,t,n,r,i,a){if(void 0===r)t.targets().add(n);else{const o=a||{},s=new $o(null,function(e,t){return t=et(t)?t:st(t),e?function(n,r){const i=t(n,r);return e.skip()||(e.skip(i!==this.value).value=i),i}:t}(n,r),i,!1);s.modified(o.force),s.rank=t.rank,t.targets().add(s),n&&(s.skip(!0),s.value=n.value,s.targets().add(n),e.connect(n,[s]))}}const Ro={};function ko(e,t,n){this.dataflow=e,this.stamp=null==t?-1:t,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}function Lo(e,t){const n=[];return Mt(e,t,(e=>n.push(e))),n}function No(e,t){const n={};return e.visit(t,(e=>{n[fo(e)]=1})),e=>n[fo(e)]?null:e}function Fo(e,t){return e?(n,r)=>e(n,r)&&t(n,r):t}function Bo(e,t,n,r){const i=this;let a=0;this.dataflow=e,this.stamp=t,this.fields=null,this.encode=r||null,this.pulses=n;for(const e of n)if(e.stamp===t){if(e.fields){const t=i.fields||(i.fields={});for(const n in e.fields)t[n]=1}e.changed(i.ADD)&&(a|=i.ADD),e.changed(i.REM)&&(a|=i.REM),e.changed(i.MOD)&&(a|=i.MOD)}this.changes=a}function jo(e){return e.error("Dataflow already running. Use runAsync() to chain invocations."),e}ko.prototype={StopPropagation:Ro,ADD:1,REM:2,MOD:4,ADD_REM:3,ADD_MOD:5,ALL:7,REFLOW:8,SOURCE:16,NO_SOURCE:32,NO_FIELDS:64,fork(e){return new ko(this.dataflow).init(this,e)},clone(){const e=this.fork(7);return e.add=e.add.slice(),e.rem=e.rem.slice(),e.mod=e.mod.slice(),e.source&&(e.source=e.source.slice()),e.materialize(23)},addAll(){let e=this;return!e.source||e.add===e.rem||!e.rem.length&&e.source.length===e.add.length||(e=new ko(this.dataflow).init(this),e.add=e.source,e.rem=[]),e},init(e,t){const n=this;return n.stamp=e.stamp,n.encode=e.encode,!e.fields||64&t||(n.fields=e.fields),1&t?(n.addF=e.addF,n.add=e.add):(n.addF=null,n.add=[]),2&t?(n.remF=e.remF,n.rem=e.rem):(n.remF=null,n.rem=[]),4&t?(n.modF=e.modF,n.mod=e.mod):(n.modF=null,n.mod=[]),32&t?(n.srcF=null,n.source=null):(n.srcF=e.srcF,n.source=e.source,e.cleans&&(n.cleans=e.cleans)),n},runAfter(e){this.dataflow.runAfter(e)},changed(e){const t=e||7;return 1&t&&this.add.length||2&t&&this.rem.length||4&t&&this.mod.length},reflow(e){if(e)return this.fork(7).reflow();const t=this.add.length,n=this.source&&this.source.length;return n&&n!==t&&(this.mod=this.source,t&&this.filter(4,No(this,1))),this},clean(e){return arguments.length?(this.cleans=!!e,this):this.cleans},modifies(e){const t=this.fields||(this.fields={});return Le(e)?e.forEach((e=>t[e]=!0)):t[e]=!0,this},modified(e,t){const n=this.fields;return!(!t&&!this.mod.length||!n)&&(arguments.length?Le(e)?e.some((e=>n[e])):n[e]:!!n)},filter(e,t){const n=this;return 1&e&&(n.addF=Fo(n.addF,t)),2&e&&(n.remF=Fo(n.remF,t)),4&e&&(n.modF=Fo(n.modF,t)),16&e&&(n.srcF=Fo(n.srcF,t)),n},materialize(e){const t=this;return 1&(e=e||7)&&t.addF&&(t.add=Lo(t.add,t.addF),t.addF=null),2&e&&t.remF&&(t.rem=Lo(t.rem,t.remF),t.remF=null),4&e&&t.modF&&(t.mod=Lo(t.mod,t.modF),t.modF=null),16&e&&t.srcF&&(t.source=t.source.filter(t.srcF),t.srcF=null),t},visit(e,t){const n=this,r=t;if(16&e)return Mt(n.source,n.srcF,r),n;1&e&&Mt(n.add,n.addF,r),2&e&&Mt(n.rem,n.remF,r),4&e&&Mt(n.mod,n.modF,r);const i=n.source;if(8&e&&i){const e=n.add.length+n.mod.length;e===i.length||Mt(i,e?No(n,5):n.srcF,r)}return n}},pt(Bo,ko,{fork(e){const t=new ko(this.dataflow).init(this,e&this.NO_FIELDS);return void 0!==e&&(e&t.ADD&&this.visit(t.ADD,(e=>t.add.push(e))),e&t.REM&&this.visit(t.REM,(e=>t.rem.push(e))),e&t.MOD&&this.visit(t.MOD,(e=>t.mod.push(e)))),t},changed(e){return this.changes&e},modified(e){const t=this,n=t.fields;return n&&t.changes&t.MOD?Le(e)?e.some((e=>n[e])):n[e]:0},filter(){_e("MultiPulse does not support filtering.")},materialize(){_e("MultiPulse does not support materialization.")},visit(e,t){const n=this,r=n.pulses,i=r.length;let a=0;if(e&n.SOURCE)for(;a<i;++a)r[a].visit(e,t);else for(;a<i;++a)r[a].stamp===n.stamp&&r[a].visit(e,t);return n}});const Ho={skip:!1,force:!1};function zo(e,t,n,r){let i,a;const o=e[n];for(;n>t&&(a=n-1>>1,i=e[a],r(o,i)<0);)e[n]=i,n=a;return e[n]=o}function Po(){this.logger(ke()),this.logLevel(we),this._clock=0,this._rank=0,this._locale=function(e,t){const n=arguments.length;return n&&2!==n&&_e("defaultLocale expects either zero or two arguments."),n?Na(Ia(e),La(t)):Na(Ia(),La())}();try{this._loader=ao()}catch(e){}this._touched=oo(xe),this._input={},this._pulse=null,this._heap=function(e){let t=[];return{clear:()=>t=[],size:()=>t.length,peek:()=>t[0],push:n=>(t.push(n),zo(t,0,t.length-1,e)),pop:()=>{const n=t.pop();let r;return t.length?(r=t[0],t[0]=n,function(e,t,n){const r=t,i=e.length,a=e[t];let o,s=1+(t<<1);for(;s<i;)o=s+1,o<i&&n(e[s],e[o])>=0&&(s=o),e[t]=e[s],s=1+((t=s)<<1);e[t]=a,zo(e,r,t,n)}(t,0,e)):r=n,r}}}(((e,t)=>e.qrank-t.qrank)),this._postrun=[]}function Uo(e){return function(){return this._log[e].apply(this,arguments)}}function Vo(e,t){$o.call(this,e,null,t)}Po.prototype={stamp(){return this._clock},loader(e){return arguments.length?(this._loader=e,this):this._loader},locale(e){return arguments.length?(this._locale=e,this):this._locale},logger(e){return arguments.length?(this._log=e,this):this._log},error:Uo("error"),warn:Uo("warn"),info:Uo("info"),debug:Uo("debug"),logLevel:Uo("level"),cleanThreshold:1e4,add:function(e,t,n,r){let i,a=1;return e instanceof $o?i=e:e&&e.prototype instanceof $o?i=new e:et(e)?i=new $o(null,e):(a=0,i=new $o(e,t)),this.rank(i),a&&(r=n,n=t),n&&this.connect(i,i.parameters(n,r)),this.touch(i),i},connect:function(e,t){const n=e.rank,r=t.length;for(let i=0;i<r;++i)if(n<t[i].rank)return void this.rerank(e)},rank:function(e){e.rank=++this._rank},rerank:function(e){const t=[e];let n,r,i;for(;t.length;)if(this.rank(n=t.pop()),r=n._targets)for(i=r.length;--i>=0;)t.push(n=r[i]),n===e&&_e("Cycle detected in dataflow graph.")},pulse:function(e,t,n){this.touch(e,n||Ho);const r=new ko(this,this._clock+(this._pulse?0:1)),i=e.pulse&&e.pulse.source||[];return r.target=e,this._input[e.id]=t.pulse(r,i),this},touch:function(e,t){const n=t||Ho;return this._pulse?this._enqueue(e):this._touched.add(e),n.skip&&e.skip(!0),this},update:function(e,t,n){const r=n||Ho;return(e.set(t)||r.force)&&this.touch(e,r),this},changeset:bo,ingest:function(e,t,n){return t=this.parse(t,n),this.pulse(e,this.changeset().insert(t))},parse:function(e,t){const n=this.locale();return io(e,t,n.timeParse,n.utcParse)},preload:async function(e,t,n){const r=this,i=r._pending||function(e){let t;const n=new Promise((e=>t=e));return n.requests=0,n.done=()=>{0==--n.requests&&(e._pending=null,t(e))},e._pending=n}(r);i.requests+=1;const a=await r.request(t,n);return r.pulse(e,r.changeset().remove($e).insert(a.data||[])),i.done(),a},request:async function(e,t){const n=this;let r,i=0;try{r=await n.loader().load(e,{context:"dataflow",response:ro(t&&t.type)});try{r=n.parse(r,t)}catch(t){i=-2,n.warn("Data ingestion failed",e,t)}}catch(t){i=-1,n.warn("Loading failed",e,t)}return{data:r,status:i}},events:function(e,t,n,r){const i=this,a=Mo(n,r),o=function(e){e.dataflow=i;try{a.receive(e)}catch(e){i.error(e)}finally{i.run()}};let s;s="string"==typeof e&&"undefined"!=typeof document?document.querySelectorAll(e):Qe(e);const l=s.length;for(let e=0;e<l;++e)s[e].addEventListener(t,o);return a},on:function(e,t,n,r,i){return(e instanceof $o?Co:Io)(this,e,t,n,r,i),this},evaluate:async function(e,t,n){const r=this,i=[];if(r._pulse)return jo(r);if(r._pending&&await r._pending,t&&await so(r,t),!r._touched.length)return r.debug("Dataflow invoked, but nothing to do."),r;const a=++r._clock;r._pulse=new ko(r,a,e),r._touched.forEach((e=>r._enqueue(e,!0))),r._touched=oo(xe);let o,s,l,u=0;try{for(;r._heap.size()>0;)o=r._heap.pop(),o.rank===o.qrank?(s=o.run(r._getPulse(o,e)),s.then?s=await s:s.async&&(i.push(s.async),s=Ro),s!==Ro&&o._targets&&o._targets.forEach((e=>r._enqueue(e))),++u):r._enqueue(o,!0)}catch(e){r._heap.clear(),l=e}if(r._input={},r._pulse=null,r.debug(`Pulse ${a}: ${u} operators`),l&&(r._postrun=[],r.error(l)),r._postrun.length){const e=r._postrun.sort(((e,t)=>t.priority-e.priority));r._postrun=[];for(let t=0;t<e.length;++t)await so(r,e[t].callback)}return n&&await so(r,n),i.length&&Promise.all(i).then((e=>r.runAsync(null,(()=>{e.forEach((e=>{try{e(r)}catch(e){r.error(e)}}))})))),r},run:function(e,t,n){return this._pulse?jo(this):(this.evaluate(e,t,n),this)},runAsync:async function(e,t,n){for(;this._running;)await this._running;const r=()=>this._running=null;return(this._running=this.evaluate(e,t,n)).then(r,r),this._running},runAfter:function(e,t,n){if(this._pulse||t)this._postrun.push({priority:n||0,callback:e});else try{e(this)}catch(e){this.error(e)}},_enqueue:function(e,t){const n=e.stamp<this._clock;n&&(e.stamp=this._clock),(n||t)&&(e.qrank=e.rank,this._heap.push(e))},_getPulse:function(e,t){const n=e.source,r=this._clock;return n&&Le(n)?new Bo(this,r,n.map((e=>e.pulse)),t):this._input[e.id]||function(e,t){return t&&t.stamp===e.stamp?t:(e=e.fork(),t&&t!==Ro&&(e.source=t.source),e)}(this._pulse,n&&n.pulse)}},pt(Vo,$o,{run(e){if(e.stamp<this.stamp)return e.StopPropagation;let t;return this.skip()?this.skip(!1):t=this.evaluate(e),t=t||e,t.then?t=t.then((e=>this.pulse=e)):t!==e.StopPropagation&&(this.pulse=t),t},evaluate(e){const t=this.marshall(e.stamp),n=this.transform(t,e);return t.clear(),n},transform(){}});const Wo={};function Go(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n<t||void 0===n&&t>=t)&&(n=t);else{let r=-1;for(let i of e)null!=(i=t(i,++r,e))&&(n<i||void 0===n&&i>=i)&&(n=i)}return n}function qo(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n>t||void 0===n&&t>=t)&&(n=t);else{let r=-1;for(let i of e)null!=(i=t(i,++r,e))&&(n>i||void 0===n&&i>=i)&&(n=i)}return n}function Yo(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(e<t?-1:e>t?1:0)}function Ko(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=void 0===i?Yo:function(e=nr){if(e===nr)return Yo;if("function"!=typeof e)throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||0===r?r:(0===e(n,n))-(0===e(t,t))}}(i);r>n;){if(r-n>600){const a=r-n+1,o=t-n+1,s=Math.log(a),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(a-l)/a)*(o-a/2<0?-1:1);Ko(e,t,Math.max(n,Math.floor(t-o*l/a+u)),Math.min(r,Math.floor(t+(a-o)*l/a+u)),i)}const a=e[t];let o=n,s=r;for(Jo(e,n,t),i(e[r],a)>0&&Jo(e,n,r);o<s;){for(Jo(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}0===i(e[n],a)?Jo(e,n,s):(++s,Jo(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function Jo(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Xo(e){return null===e?NaN:+e}function Zo(e,t,n){if(e=Float64Array.from(function*(e,t){if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(yield t);else{let n=-1;for(let r of e)null!=(r=t(r,++n,e))&&(r=+r)>=r&&(yield r)}}(e,n)),(r=e.length)&&!isNaN(t=+t)){if(t<=0||r<2)return qo(e);if(t>=1)return Go(e);var r,i=(r-1)*t,a=Math.floor(i),o=Go(Ko(e,a).subarray(0,a+1));return o+(qo(e.subarray(a+1))-o)*(i-a)}}function Qo(e,t,n=Xo){if((r=e.length)&&!isNaN(t=+t)){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function es(e,t){return Zo(e,.5,t)}function*ts(e,t){if(null==t)for(let t of e)null!=t&&""!==t&&(t=+t)>=t&&(yield t);else{let n=-1;for(let r of e)r=t(r,++n,e),null!=r&&""!==r&&(r=+r)>=r&&(yield r)}}function ns(e,t,n){const r=Float64Array.from(ts(e,n));return r.sort(nr),t.map((e=>Qo(r,e)))}function rs(e,t){return ns(e,[.25,.5,.75],t)}function is(e,t){const n=e.length,r=function(e,t){const n=function(e,t){let n,r=0,i=0,a=0;if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(n=t-i,i+=n/++r,a+=n*(t-i));else{let o=-1;for(let s of e)null!=(s=t(s,++o,e))&&(s=+s)>=s&&(n=s-i,i+=n/++r,a+=n*(s-i))}if(r>1)return a/(r-1)}(e,t);return n?Math.sqrt(n):n}(e,t),i=rs(e,t),a=(i[2]-i[0])/1.34;return 1.06*(Math.min(r,a)||r||Math.abs(i[0])||1)*Math.pow(n,-.2)}var as=Math.random;function os(e,t,n,r){r=r||(e=>e);const i=e.length,a=new Float64Array(i);let o,s=0,l=1,u=r(e[0]),c=u,d=u+t;for(;l<i;++l){if(o=r(e[l]),o>=d){for(c=(u+c)/2;s<l;++s)a[s]=c;d=o+t,u=o}c=o}for(c=(u+c)/2;s<l;++s)a[s]=c;return n?function(e,t){const n=e.length;let r,i,a=0,o=1;for(;e[a]===e[o];)++o;for(;o<n;){for(r=o+1;e[o]===e[r];)++r;if(e[o]-e[o-1]<t){for(i=o+(a+r-o-o>>1);i<o;)e[i++]=e[o];for(;i>o;)e[i--]=e[a]}a=o,o=r}return e}(a,t+t/4):a}const ss=Math.sqrt(2*Math.PI),ls=Math.SQRT2;let us=NaN;function cs(e,t){e=e||0,t=null==t?1:t;let n,r,i=0,a=0;if(us==us)i=us,us=NaN;else{do{i=2*as()-1,a=2*as()-1,n=i*i+a*a}while(0===n||n>1);r=Math.sqrt(-2*Math.log(n)/n),i*=r,us=a*r}return e+i*t}function ds(e,t,n){const r=(e-(t||0))/(n=null==n?1:n);return Math.exp(-.5*r*r)/(n*ss)}function fs(e,t,n){const r=(e-(t=t||0))/(n=null==n?1:n),i=Math.abs(r);let a;if(i>37)a=0;else{const e=Math.exp(-i*i/2);let t;i<7.07106781186547?(t=.0352624965998911*i+.700383064443688,t=t*i+6.37396220353165,t=t*i+33.912866078383,t=t*i+112.079291497871,t=t*i+221.213596169931,t=t*i+220.206867912376,a=e*t,t=.0883883476483184*i+1.75566716318264,t=t*i+16.064177579207,t=t*i+86.7807322029461,t=t*i+296.564248779674,t=t*i+637.333633378831,t=t*i+793.826512519948,t=t*i+440.413735824752,a/=t):(t=i+.65,t=i+4/t,t=i+3/t,t=i+2/t,t=i+1/t,a=e/t/2.506628274631)}return r>0?1-a:a}function hs(e,t,n){return e<0||e>1?NaN:(t||0)+(null==n?1:n)*ls*function(e){let t,n=-Math.log((1-e)*(1+e));return n<6.25?(n-=3.125,t=-364441206401782e-35,t=t*n-16850591381820166e-35,t=128584807152564e-32+t*n,t=11157877678025181e-33+t*n,t=t*n-1333171662854621e-31,t=20972767875968562e-33+t*n,t=6637638134358324e-30+t*n,t=t*n-4054566272975207e-29,t=t*n-8151934197605472e-29,t=26335093153082323e-28+t*n,t=t*n-12975133253453532e-27,t=t*n-5415412054294628e-26,t=1.0512122733215323e-9+t*n,t=t*n-4.112633980346984e-9,t=t*n-2.9070369957882005e-8,t=4.2347877827932404e-7+t*n,t=t*n-13654692000834679e-22,t=t*n-13882523362786469e-21,t=.00018673420803405714+t*n,t=t*n-.000740702534166267,t=t*n-.006033670871430149,t=.24015818242558962+t*n,t=1.6536545626831027+t*n):n<16?(n=Math.sqrt(n)-3.25,t=2.2137376921775787e-9,t=9.075656193888539e-8+t*n,t=t*n-2.7517406297064545e-7,t=1.8239629214389228e-8+t*n,t=15027403968909828e-22+t*n,t=t*n-4013867526981546e-21,t=29234449089955446e-22+t*n,t=12475304481671779e-21+t*n,t=t*n-47318229009055734e-21,t=6828485145957318e-20+t*n,t=24031110387097894e-21+t*n,t=t*n-.0003550375203628475,t=.0009532893797373805+t*n,t=t*n-.0016882755560235047,t=.002491442096107851+t*n,t=t*n-.003751208507569241,t=.005370914553590064+t*n,t=1.0052589676941592+t*n,t=3.0838856104922208+t*n):Number.isFinite(n)?(n=Math.sqrt(n)-5,t=-27109920616438573e-27,t=t*n-2.555641816996525e-10,t=1.5076572693500548e-9+t*n,t=t*n-3.789465440126737e-9,t=7.61570120807834e-9+t*n,t=t*n-1.496002662714924e-8,t=2.914795345090108e-8+t*n,t=t*n-6.771199775845234e-8,t=2.2900482228026655e-7+t*n,t=t*n-9.9298272942317e-7,t=4526062597223154e-21+t*n,t=t*n-1968177810553167e-20,t=7599527703001776e-20+t*n,t=t*n-.00021503011930044477,t=t*n-.00013871931833623122,t=1.0103004648645344+t*n,t=4.849906401408584+t*n):t=1/0,t*e}(2*e-1)}function ps(e,t){let n,r;const i={mean(e){return arguments.length?(n=e||0,i):n},stdev(e){return arguments.length?(r=null==e?1:e,i):r},sample:()=>cs(n,r),pdf:e=>ds(e,n,r),cdf:e=>fs(e,n,r),icdf:e=>hs(e,n,r)};return i.mean(e).stdev(t)}function ms(e,t){const n=ps();let r=0;const i={data(n){return arguments.length?(e=n,r=n?n.length:0,i.bandwidth(t)):e},bandwidth(n){return arguments.length?(!(t=n)&&e&&(t=is(e)),i):t},sample:()=>e[~~(as()*r)]+t*n.sample(),pdf(i){let a=0,o=0;for(;o<r;++o)a+=n.pdf((i-e[o])/t);return a/t/r},cdf(i){let a=0,o=0;for(;o<r;++o)a+=n.cdf((i-e[o])/t);return a/r},icdf(){throw Error("KDE icdf not supported.")}};return i.data(e)}function gs(e,t){return e=e||0,t=null==t?1:t,Math.exp(e+cs()*t)}function ys(e,t,n){if(e<=0)return 0;t=t||0,n=null==n?1:n;const r=(Math.log(e)-t)/n;return Math.exp(-.5*r*r)/(n*ss*e)}function _s(e,t,n){return fs(Math.log(e),t,n)}function vs(e,t,n){return Math.exp(hs(e,t,n))}function bs(e,t){return null==t&&(t=null==e?1:e,e=0),e+(t-e)*as()}function xs(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=t&&e<=n?1/(n-t):0}function Es(e,t,n){return null==n&&(n=null==t?1:t,t=0),e<t?0:e>n?1:(e-t)/(n-t)}function Ss(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=0&&e<=1?t+e*(n-t):NaN}function As(e,t,n){let r=0,i=0;for(const a of e){const e=n(a);null==t(a)||null==e||isNaN(e)||(r+=(e-r)/++i)}return{coef:[r],predict:()=>r,rSquared:0}}function $s(e,t,n,r){const i=r-e*e,a=Math.abs(i)<1e-24?0:(n-e*t)/i;return[t-a*e,a]}function Ts(e,t,n,r){e=e.filter((e=>{let r=t(e),i=n(e);return null!=r&&(r=+r)>=r&&null!=i&&(i=+i)>=i})),r&&e.sort(((e,n)=>t(e)-t(n)));const i=e.length,a=new Float64Array(i),o=new Float64Array(i);let s,l,u,c=0,d=0,f=0;for(u of e)a[c]=s=+t(u),o[c]=l=+n(u),++c,d+=(s-d)/c,f+=(l-f)/c;for(c=0;c<i;++c)a[c]-=d,o[c]-=f;return[a,o,d,f]}function Os(e,t,n,r){let i,a,o=-1;for(const s of e)i=t(s),a=n(s),null!=i&&(i=+i)>=i&&null!=a&&(a=+a)>=a&&r(i,a,++o)}function Ds(e,t,n,r,i){let a=0,o=0;return Os(e,t,n,((e,t)=>{const n=t-i(e),s=t-r;a+=n*n,o+=s*s})),1-a/o}function Ms(e,t,n){let r=0,i=0,a=0,o=0,s=0;Os(e,t,n,((e,t)=>{++s,r+=(e-r)/s,i+=(t-i)/s,a+=(e*t-a)/s,o+=(e*e-o)/s}));const l=$s(r,i,a,o),u=e=>l[0]+l[1]*e;return{coef:l,predict:u,rSquared:Ds(e,t,n,i,u)}}function ws(e,t,n){const[r,i,a,o]=Ts(e,t,n),s=r.length;let l,u,c,d,f=0,h=0,p=0,m=0,g=0;for(l=0;l<s;)u=r[l],c=i[l++],d=u*u,f+=(d-f)/l,h+=(d*u-h)/l,p+=(d*d-p)/l,m+=(u*c-m)/l,g+=(d*c-g)/l;const y=p-f*f,_=f*y-h*h,v=(g*f-m*h)/_,b=(m*y-g*h)/_,x=-v*f,E=e=>v*(e-=a)*e+b*e+x+o;return{coef:[x-b*a+v*a*a+o,b-2*v*a,v],predict:E,rSquared:Ds(e,t,n,o,E)}}function Is(e,t,n,r){const i=Array(e);let a,o,s,l;for(a=0;a<e;++a)i[a]=0;for(a=e-1;a>=0;--a)for(s=t[a],l=1,i[a]+=s,o=1;o<=a;++o)l*=(a+1-o)/o,i[a-o]+=s*Math.pow(n,o)*l;return i[0]+=r,i}function Cs(e){return(e=1-e*e*e)*e*e}function Rs(e,t,n){const r=e[t];let i=n[0],a=n[1]+1;if(!(a>=e.length))for(;t>i&&e[a]-r<=r-e[i];)n[0]=++i,n[1]=a,++a}const ks=.5*Math.PI/180;function Ls(e,t,n,r){n=n||25,r=Math.max(n,r||200);const i=t=>[t,e(t)],a=t[0],o=t[1],s=o-a,l=s/r,u=[i(a)],c=[];if(n===r){for(let e=1;e<r;++e)u.push(i(a+e/n*s));return u.push(i(o)),u}c.push(i(o));for(let e=n;--e>0;)c.push(i(a+e/n*s));let d=u[0],f=c[c.length-1];const h=1/s,p=function(e,t){let n=e,r=e;const i=t.length;for(let e=0;e<i;++e){const i=t[e][1];i<n&&(n=i),i>r&&(r=i)}return 1/(r-n)}(d[1],c);for(;f;){const e=i((d[0]+f[0])/2);e[0]-d[0]>=l&&Ns(d,e,f,h,p)>ks?c.push(e):(d=f,u.push(f),c.pop()),f=c[c.length-1]}return u}function Ns(e,t,n,r,i){const a=Math.atan2(i*(n[1]-e[1]),r*(n[0]-e[0])),o=Math.atan2(i*(t[1]-e[1]),r*(t[0]-e[0]));return Math.abs(a-o)}function Fs(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=0|Math.max(0,Math.ceil((t-e)/n)),a=new Array(i);++r<i;)a[r]=e+r*n;return a}function Bs(e){return e&&e.length?1===e.length?e[0]:(t=e,e=>{const n=t.length;let r=1,i=String(t[0](e));for(;r<n;++r)i+="|"+t[r](e);return i}):function(){return""};var t}function js(e,t,n){return n||e+(t?"_"+t:"")}const Hs=()=>{},zs={init:Hs,add:Hs,rem:Hs,idx:0},Ps={values:{init:e=>e.cell.store=!0,value:e=>e.cell.data.values(),idx:-1},count:{value:e=>e.cell.num},__count__:{value:e=>e.missing+e.valid},missing:{value:e=>e.missing},valid:{value:e=>e.valid},sum:{init:e=>e.sum=0,value:e=>e.valid?e.sum:void 0,add:(e,t)=>e.sum+=+t,rem:(e,t)=>e.sum-=t},product:{init:e=>e.product=1,value:e=>e.valid?e.product:void 0,add:(e,t)=>e.product*=t,rem:(e,t)=>e.product/=t},mean:{init:e=>e.mean=0,value:e=>e.valid?e.mean:void 0,add:(e,t)=>(e.mean_d=t-e.mean,e.mean+=e.mean_d/e.valid),rem:(e,t)=>(e.mean_d=t-e.mean,e.mean-=e.valid?e.mean_d/e.valid:e.mean)},average:{value:e=>e.valid?e.mean:void 0,req:["mean"],idx:1},variance:{init:e=>e.dev=0,value:e=>e.valid>1?e.dev/(e.valid-1):void 0,add:(e,t)=>e.dev+=e.mean_d*(t-e.mean),rem:(e,t)=>e.dev-=e.mean_d*(t-e.mean),req:["mean"],idx:1},variancep:{value:e=>e.valid>1?e.dev/e.valid:void 0,req:["variance"],idx:2},stdev:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:e=>e.valid>1?Math.sqrt(e.dev/e.valid):void 0,req:["variance"],idx:2},stderr:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid*(e.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:e=>e.cell.data.distinct(e.get),req:["values"],idx:3},ci0:{value:e=>e.cell.data.ci0(e.get),req:["values"],idx:3},ci1:{value:e=>e.cell.data.ci1(e.get),req:["values"],idx:3},median:{value:e=>e.cell.data.q2(e.get),req:["values"],idx:3},q1:{value:e=>e.cell.data.q1(e.get),req:["values"],idx:3},q3:{value:e=>e.cell.data.q3(e.get),req:["values"],idx:3},min:{init:e=>e.min=void 0,value:e=>e.min=Number.isNaN(e.min)?e.cell.data.min(e.get):e.min,add:(e,t)=>{(t<e.min||void 0===e.min)&&(e.min=t)},rem:(e,t)=>{t<=e.min&&(e.min=NaN)},req:["values"],idx:4},max:{init:e=>e.max=void 0,value:e=>e.max=Number.isNaN(e.max)?e.cell.data.max(e.get):e.max,add:(e,t)=>{(t>e.max||void 0===e.max)&&(e.max=t)},rem:(e,t)=>{t>=e.max&&(e.max=NaN)},req:["values"],idx:4},argmin:{init:e=>e.argmin=void 0,value:e=>e.argmin||e.cell.data.argmin(e.get),add:(e,t,n)=>{t<e.min&&(e.argmin=n)},rem:(e,t)=>{t<=e.min&&(e.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:e=>e.argmax=void 0,value:e=>e.argmax||e.cell.data.argmax(e.get),add:(e,t,n)=>{t>e.max&&(e.argmax=n)},rem:(e,t)=>{t>=e.max&&(e.argmax=void 0)},req:["max","values"],idx:3},exponential:{init:(e,t)=>{e.exp=0,e.exp_r=t},value:e=>e.valid?e.exp*(1-e.exp_r)/(1-e.exp_r**e.valid):void 0,add:(e,t)=>e.exp=e.exp_r*e.exp+t,rem:(e,t)=>e.exp=(e.exp-t/e.exp_r**(e.valid-1))/e.exp_r},exponentialb:{value:e=>e.valid?e.exp*(1-e.exp_r):void 0,req:["exponential"],idx:1}},Us=Object.keys(Ps).filter((e=>"__count__"!==e));function Vs(e,t,n){return Ps[e](n,t)}function Ws(e,t){return e.idx-t.idx}function Gs(){this.valid=0,this.missing=0,this._ops.forEach((e=>null==e.aggregate_param?e.init(this):e.init(this,e.aggregate_param)))}function qs(e,t){null!=e&&""!==e?e==e&&(++this.valid,this._ops.forEach((n=>n.add(this,e,t)))):++this.missing}function Ys(e,t){null!=e&&""!==e?e==e&&(--this.valid,this._ops.forEach((n=>n.rem(this,e,t)))):--this.missing}function Ks(e){return this._out.forEach((t=>e[t.out]=t.value(this))),e}function Js(e,t){const n=t||Ee,r=function(e){const t={};e.forEach((e=>t[e.name]=e));const n=e=>{e.req&&e.req.forEach((e=>{t[e]||n(t[e]=Ps[e]())}))};return e.forEach(n),Object.values(t).sort(Ws)}(e),i=e.slice().sort(Ws);function a(e){this._ops=r,this._out=i,this.cell=e,this.init()}return a.prototype.init=Gs,a.prototype.add=qs,a.prototype.rem=Ys,a.prototype.set=Ks,a.prototype.get=n,a.fields=e.map((e=>e.out)),a}function Xs(e){this._key=e?be(e):fo,this.reset()}[...Us,"__count__"].forEach((e=>{Ps[e]=function(e,t){return(n,r)=>ut({name:e,aggregate_param:r,out:n||e},zs,t)}(e,Ps[e])}));const Zs=Xs.prototype;function Qs(e){Vo.call(this,null,e),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}function el(e){Vo.call(this,null,e)}function tl(e,t,n){const r=e;let i=t||[],a=n||[],o={},s=0;return{add:e=>a.push(e),remove:e=>o[r(e)]=++s,size:()=>i.length,data:(e,t)=>(s&&(i=i.filter((e=>!o[r(e)])),o={},s=0),t&&e&&i.sort(e),a.length&&(i=e?function(e,t,n,r){const i=t.length,a=n.length;if(!a)return t;if(!i)return n;const o=new t.constructor(i+a);let s=0,l=0,u=0;for(;s<i&&l<a;++u)o[u]=e(t[s],n[l])>0?n[l++]:t[s++];for(;s<i;++s,++u)o[u]=t[s];for(;l<a;++l,++u)o[u]=n[l];return o}(e,i,a.sort(e)):i.concat(a),a=[]),i)}}function nl(e){Vo.call(this,[],e)}function rl(e){$o.call(this,null,il,e)}function il(e){return this.value&&!e.modified()?this.value:nt(e.fields,e.orders)}function al(e){Vo.call(this,null,e)}function ol(e){Vo.call(this,null,e)}Zs.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},Zs.add=function(e){this._add.push(e)},Zs.rem=function(e){this._rem.push(e)},Zs.values=function(){if(this._get=null,0===this._rem.length)return this._add;const e=this._add,t=this._rem,n=this._key,r=e.length,i=t.length,a=Array(r-i),o={};let s,l,u;for(s=0;s<i;++s)o[n(t[s])]=1;for(s=0,l=0;s<r;++s)o[n(u=e[s])]?o[n(u)]=0:a[l++]=u;return this._rem=[],this._add=a},Zs.distinct=function(e){const t=this.values(),n={};let r,i=t.length,a=0;for(;--i>=0;)r=e(t[i])+"",dt(n,r)||(n[r]=1,++a);return a},Zs.extent=function(e){if(this._get!==e||!this._ext){const t=this.values(),n=function(e,t){const n=e.length;let r,i,a,o,s,l=-1;if(null==t){for(;++l<n;)if(i=e[l],null!=i&&i>=i){r=a=i;break}if(l===n)return[-1,-1];for(o=s=l;++l<n;)i=e[l],null!=i&&(r>i&&(r=i,o=l),a<i&&(a=i,s=l))}else{for(;++l<n;)if(i=t(e[l],l,e),null!=i&&i>=i){r=a=i;break}if(l===n)return[-1,-1];for(o=s=l;++l<n;)i=t(e[l],l,e),null!=i&&(r>i&&(r=i,o=l),a<i&&(a=i,s=l))}return[o,s]}(t,e);this._ext=[t[n[0]],t[n[1]]],this._get=e}return this._ext},Zs.argmin=function(e){return this.extent(e)[0]||{}},Zs.argmax=function(e){return this.extent(e)[1]||{}},Zs.min=function(e){const t=this.extent(e)[0];return null!=t?e(t):void 0},Zs.max=function(e){const t=this.extent(e)[1];return null!=t?e(t):void 0},Zs.quartile=function(e){return this._get===e&&this._q||(this._q=rs(this.values(),e),this._get=e),this._q},Zs.q1=function(e){return this.quartile(e)[0]},Zs.q2=function(e){return this.quartile(e)[1]},Zs.q3=function(e){return this.quartile(e)[2]},Zs.ci=function(e){return this._get===e&&this._ci||(this._ci=function(e,t,n,r){if(!e.length)return[void 0,void 0];const i=Float64Array.from(ts(e,r)),a=i.length;let o,s,l,u;for(l=0,u=Array(1e3);l<1e3;++l){for(o=0,s=0;s<a;++s)o+=i[~~(as()*a)];u[l]=o/a}return u.sort(nr),[Zo(u,.025),Zo(u,.975)]}(this.values(),0,0,e),this._get=e),this._ci},Zs.ci0=function(e){return this.ci(e)[0]},Zs.ci1=function(e){return this.ci(e)[1]},Qs.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Us},{name:"aggregate_params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"drop",type:"boolean",default:!0},{name:"cross",type:"boolean",default:!1},{name:"key",type:"field"}]},pt(Qs,Vo,{transform(e,t){const n=this,r=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.modified();return n.stamp=r.stamp,n.value&&(i||t.modified(n._inputs,!0))?(n._prev=n.value,n.value=i?n.init(e):Object.create(null),t.visit(t.SOURCE,(e=>n.add(e)))):(n.value=n.value||n.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),r.modifies(n._outputs),n._drop=!1!==e.drop,e.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),t.clean()&&n._drop&&r.clean(!0).runAfter((()=>this.clean())),n.changes(r)},cross(){const e=this,t=e.value,n=e._dnames,r=n.map((()=>({}))),i=n.length;function a(e){let t,a,o,s;for(t in e)for(o=e[t].tuple,a=0;a<i;++a)r[a][s=o[n[a]]]=s}a(e._prev),a(t),function a(o,s,l){const u=n[l],c=r[l++];for(const n in c){const r=o?o+"|"+n:n;s[u]=c[n],l<i?a(r,s,l):t[r]||e.cell(r,s)}}("",{},0)},init(e){const t=this._inputs=[],n=this._outputs=[],r={};function i(e){const n=Qe(pe(e)),i=n.length;let a,o=0;for(;o<i;++o)r[a=n[o]]||(r[a]=1,t.push(a))}this._dims=Qe(e.groupby),this._dnames=this._dims.map((e=>{const t=he(e);return i(e),n.push(t),t})),this.cellkey=e.key?e.key:Bs(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const a=e.fields||[null],o=e.ops||["count"],s=e.aggregate_params||[null],l=e.as||[],u=a.length,c={};let d,f,h,p,m,g,y;for(u!==o.length&&_e("Unmatched number of fields and aggregate ops."),y=0;y<u;++y)d=a[y],f=o[y],h=s[y]||null,null==d&&"count"!==f&&_e("Null aggregate field specified."),m=he(d),g=js(f,m,l[y]),n.push(g),"count"!==f?(p=c[m],p||(i(d),p=c[m]=[],p.field=d,this._measures.push(p)),"count"!==f&&(this._countOnly=!1),p.push(Vs(f,h,g))):this._counts.push(g);return this._measures=this._measures.map((e=>Js(e,e.field))),Object.create(null)},cellkey:Bs(),cell(e,t){let n=this.value[e];return n?0===n.num&&this._drop&&n.stamp<this.stamp?(n.stamp=this.stamp,this._adds[this._alen++]=n):n.stamp<this.stamp&&(n.stamp=this.stamp,this._mods[this._mlen++]=n):(n=this.value[e]=this.newcell(e,t),this._adds[this._alen++]=n),n},newcell(e,t){const n={key:e,num:0,agg:null,tuple:this.newtuple(t,this._prev&&this._prev[e]),stamp:this.stamp,store:!1};if(!this._countOnly){const e=this._measures,t=e.length;n.agg=Array(t);for(let r=0;r<t;++r)n.agg[r]=new e[r](n)}return n.store&&(n.data=new Xs),n},newtuple(e,t){const n=this._dnames,r=this._dims,i=r.length,a={};for(let t=0;t<i;++t)a[n[t]]=r[t](e);return t?yo(t.tuple,a):po(a)},clean(){const e=this.value;for(const t in e)0===e[t].num&&delete e[t]},add(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num+=1,this._countOnly)return;n.store&&n.data.add(e);const r=n.agg;for(let t=0,n=r.length;t<n;++t)r[t].add(r[t].get(e),e)},rem(e){const t=this.cellkey(e),n=this.cell(t,e);if(n.num-=1,this._countOnly)return;n.store&&n.data.rem(e);const r=n.agg;for(let t=0,n=r.length;t<n;++t)r[t].rem(r[t].get(e),e)},celltuple(e){const t=e.tuple,n=this._counts;e.store&&e.data.values();for(let r=0,i=n.length;r<i;++r)t[n[r]]=e.num;if(!this._countOnly){const n=e.agg;for(let e=0,r=n.length;e<r;++e)n[e].set(t)}return t},changes(e){const t=this._adds,n=this._mods,r=this._prev,i=this._drop,a=e.add,o=e.rem,s=e.mod;let l,u,c,d;if(r)for(u in r)l=r[u],i&&!l.num||o.push(l.tuple);for(c=0,d=this._alen;c<d;++c)a.push(this.celltuple(t[c])),t[c]=null;for(c=0,d=this._mlen;c<d;++c)l=n[c],(0===l.num&&i?o:s).push(this.celltuple(l)),n[c]=null;return this._alen=this._mlen=0,this._prev=null,e}}),el.Definition={type:"Bin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"anchor",type:"number"},{name:"maxbins",type:"number",default:20},{name:"base",type:"number",default:10},{name:"divide",type:"number",array:!0,default:[5,2]},{name:"extent",type:"number",array:!0,length:2,required:!0},{name:"span",type:"number"},{name:"step",type:"number"},{name:"steps",type:"number",array:!0},{name:"minstep",type:"number",default:0},{name:"nice",type:"boolean",default:!0},{name:"name",type:"string"},{name:"as",type:"string",array:!0,length:2,default:["bin0","bin1"]}]},pt(el,Vo,{transform(e,t){const n=!1!==e.interval,r=this._bins(e),i=r.start,a=r.step,o=e.as||["bin0","bin1"],s=o[0],l=o[1];let u;return u=e.modified()?(t=t.reflow(!0)).SOURCE:t.modified(pe(e.field))?t.ADD_MOD:t.ADD,t.visit(u,n?e=>{const t=r(e);e[s]=t,e[l]=null==t?null:i+a*(1+(t-i)/a)}:e=>e[s]=r(e)),t.modifies(n?o:s)},_bins(e){if(this.value&&!e.modified())return this.value;const t=e.field,n=function(e){const t=e.maxbins||20,n=e.base||10,r=Math.log(n),i=e.divide||[5,2];let a,o,s,l,u,c,d=e.extent[0],f=e.extent[1];const h=e.span||f-d||Math.abs(d)||1;if(e.step)a=e.step;else if(e.steps){for(l=h/t,u=0,c=e.steps.length;u<c&&e.steps[u]<l;++u);a=e.steps[Math.max(0,u-1)]}else{for(o=Math.ceil(Math.log(t)/r),s=e.minstep||0,a=Math.max(s,Math.pow(n,Math.round(Math.log(h)/r)-o));Math.ceil(h/a)>t;)a*=n;for(u=0,c=i.length;u<c;++u)l=a/i[u],l>=s&&h/l<=t&&(a=l)}l=Math.log(a);const p=l>=0?0:1+~~(-l/r),m=Math.pow(n,-p-1);return(e.nice||void 0===e.nice)&&(l=Math.floor(d/a+m)*a,d=d<l?l-a:l,f=Math.ceil(f/a)*a),{start:d,stop:f===d?d+a:f,step:a}}(e),r=n.step;let i,a,o=n.start,s=o+Math.ceil((n.stop-o)/r)*r;null!=(i=e.anchor)&&(a=i-(o+r*Math.floor((i-o)/r)),o+=a,s+=a);const l=function(e){let n=ze(t(e));return null==n?null:n<o?-1/0:n>s?1/0:(n=Math.max(o,Math.min(n,s-r)),o+r*Math.floor(1e-14+(n-o)/r))};return l.start=o,l.stop=n.stop,l.step=r,this.value=fe(l,pe(t),e.name||"bin_"+he(t))}}),nl.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},pt(nl,Vo,{transform(e,t){const n=t.fork(t.ALL),r=tl(fo,this.value,n.materialize(n.ADD).add),i=e.sort,a=t.changed()||i&&(e.modified("sort")||t.modified(i.fields));return n.visit(n.REM,r.remove),this.modified(a),this.value=n.source=r.data(_o(i),a),t.source&&t.source.root&&(this.value.root=t.source.root),n}}),pt(rl,$o),al.Definition={type:"CountPattern",metadata:{generates:!0,changes:!0},params:[{name:"field",type:"field",required:!0},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:!0,length:2,default:["text","count"]}]},pt(al,Vo,{transform(e,t){const n=t=>n=>{for(var r,i=function(e,t,n){switch(t){case"upper":e=e.toUpperCase();break;case"lower":e=e.toLowerCase()}return e.match(n)}(s(n),e.case,a)||[],l=0,u=i.length;l<u;++l)o.test(r=i[l])||t(r)},r=this._parameterCheck(e,t),i=this._counts,a=this._match,o=this._stop,s=e.field,l=e.as||["text","count"],u=n((e=>i[e]=1+(i[e]||0))),c=n((e=>i[e]-=1));return r?t.visit(t.SOURCE,u):(t.visit(t.ADD,u),t.visit(t.REM,c)),this._finish(t,l)},_parameterCheck(e,t){let n=!1;return!e.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(e.stopwords||"")+"$","i"),n=!0),!e.modified("pattern")&&this._match||(this._match=new RegExp(e.pattern||"[\\w']+","g"),n=!0),(e.modified("field")||t.modified(e.field.fields))&&(n=!0),n&&(this._counts={}),n},_finish(e,t){const n=this._counts,r=this._tuples||(this._tuples={}),i=t[0],a=t[1],o=e.fork(e.NO_SOURCE|e.NO_FIELDS);let s,l,u;for(s in n)l=r[s],u=n[s]||0,!l&&u?(r[s]=l=po({}),l[i]=s,l[a]=u,o.add.push(l)):0===u?(l&&o.rem.push(l),n[s]=null,r[s]=null):l[a]!==u&&(l[a]=u,o.mod.push(l));return o.modifies(t)}}),ol.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},pt(ol,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.as||["a","b"],i=r[0],a=r[1],o=!this.value||t.changed(t.ADD_REM)||e.modified("as")||e.modified("filter");let s=this.value;return o?(s&&(n.rem=s),s=t.materialize(t.SOURCE).source,n.add=this.value=function(e,t,n,r){for(var i,a,o=[],s={},l=e.length,u=0;u<l;++u)for(s[t]=a=e[u],i=0;i<l;++i)s[n]=e[i],r(s)&&(o.push(po(s)),(s={})[t]=a);return o}(s,i,a,e.filter||$e)):n.mod=s,n.source=this.value,n.modifies(r)}});const sl={kde:ms,mixture:function(e,t){let n,r=0;const i={weights(e){return arguments.length?(n=function(e){const t=[];let n,i=0;for(n=0;n<r;++n)i+=t[n]=null==e[n]?1:+e[n];for(n=0;n<r;++n)t[n]/=i;return t}(t=e||[]),i):t},distributions(n){return arguments.length?(n?(r=n.length,e=n):(r=0,e=[]),i.weights(t)):e},sample(){const t=as();let i=e[r-1],a=n[0],o=0;for(;o<r-1;a+=n[++o])if(t<a){i=e[o];break}return i.sample()},pdf(t){let i=0,a=0;for(;a<r;++a)i+=n[a]*e[a].pdf(t);return i},cdf(t){let i=0,a=0;for(;a<r;++a)i+=n[a]*e[a].cdf(t);return i},icdf(){throw Error("Mixture icdf not supported.")}};return i.distributions(e).weights(t)},normal:ps,lognormal:function(e,t){let n,r;const i={mean(e){return arguments.length?(n=e||0,i):n},stdev(e){return arguments.length?(r=null==e?1:e,i):r},sample:()=>gs(n,r),pdf:e=>ys(e,n,r),cdf:e=>_s(e,n,r),icdf:e=>vs(e,n,r)};return i.mean(e).stdev(t)},uniform:function(e,t){let n,r;const i={min(e){return arguments.length?(n=e||0,i):n},max(e){return arguments.length?(r=null==e?1:e,i):r},sample:()=>bs(n,r),pdf:e=>xs(e,n,r),cdf:e=>Es(e,n,r),icdf:e=>Ss(e,n,r)};return null==t&&(t=null==e?1:e,e=0),i.min(e).max(t)}},ll="function";function ul(e,t){const n=e[ll];dt(sl,n)||_e("Unknown distribution function: "+n);const r=sl[n]();for(const n in e)"field"===n?r.data((e.from||t()).map(e[n])):"distributions"===n?r[n](e[n].map((e=>ul(e,t)))):typeof r[n]===ll&&r[n](e[n]);return r}function cl(e){Vo.call(this,null,e)}const dl=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:!0},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}],fl={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:dl},{name:"weights",type:"number",array:!0}]};function hl(e,t){return e?e.map(((e,n)=>t[n]||he(e))):null}function pl(e,t,n){const r=[],i=e=>e(l);let a,o,s,l,u,c;if(null==t)r.push(e.map(n));else for(a={},o=0,s=e.length;o<s;++o)l=e[o],u=t.map(i),c=a[u],c||(a[u]=c=[],c.dims=u,r.push(c)),c.push(n(l));return r}function ml(e){Vo.call(this,null,e)}function gl(e){$o.call(this,null,yl,e),this.modified(!0)}function yl(e){const t=e.expr;return this.value&&!e.modified("expr")?this.value:fe((n=>t(n,e)),pe(t),he(t))}function _l(e){Vo.call(this,[void 0,void 0],e)}function vl(e,t){$o.call(this,e),this.parent=t,this.count=0}function bl(e){Vo.call(this,{},e),this._keys=ht();const t=this._targets=[];t.active=0,t.forEach=e=>{for(let n=0,r=t.active;n<r;++n)e(t[n],n,t)}}function xl(e){$o.call(this,null,El,e)}function El(e){return this.value&&!e.modified()?this.value:Le(e.name)?Qe(e.name).map((e=>be(e))):be(e.name,e.as)}function Sl(e){Vo.call(this,ht(),e)}function Al(e){Vo.call(this,[],e)}function $l(e){Vo.call(this,[],e)}function Tl(e){Vo.call(this,null,e)}function Ol(e){Vo.call(this,[],e)}cl.Definition={type:"Density",metadata:{generates:!0},params:[{name:"extent",type:"number",array:!0,length:2},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"method",type:"string",default:"pdf",values:["pdf","cdf"]},{name:"distribution",type:"param",params:dl.concat(fl)},{name:"as",type:"string",array:!0,default:["value","density"]}]},pt(cl,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const r=ul(e.distribution,function(e){return()=>e.materialize(e.SOURCE).source}(t)),i=e.steps||e.minsteps||25,a=e.steps||e.maxsteps||200;let o=e.method||"pdf";"pdf"!==o&&"cdf"!==o&&_e("Invalid density method: "+o),e.extent||r.data||_e("Missing density extent parameter."),o=r[o];const s=e.as||["value","density"],l=Ls(o,e.extent||ct(r.data()),i,a).map((e=>{const t={};return t[s[0]]=e[0],t[s[1]]=e[1],po(t)}));this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}}),ml.Definition={type:"DotBin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"step",type:"number"},{name:"smooth",type:"boolean",default:!1},{name:"as",type:"string",default:"bin"}]},pt(ml,Vo,{transform(e,t){if(this.value&&!e.modified()&&!t.changed())return t;const n=t.materialize(t.SOURCE).source,r=pl(t.source,e.groupby,Ee),i=e.smooth||!1,a=e.field,o=e.step||((e,t)=>Et(ct(e,t))/30)(n,a),s=_o(((e,t)=>a(e)-a(t))),l=e.as||"bin",u=r.length;let c,d=1/0,f=-1/0,h=0;for(;h<u;++h){const e=r[h].sort(s);c=-1;for(const t of os(e,o,i,a))t<d&&(d=t),t>f&&(f=t),e[++c][l]=t}return this.value={start:d,stop:f,step:o},t.reflow(!0).modifies(l)}}),pt(gl,$o),_l.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},pt(_l,Vo,{transform(e,t){const n=this.value,r=e.field,i=t.changed()||t.modified(r.fields)||e.modified("field");let a=n[0],o=n[1];if((i||null==a)&&(a=1/0,o=-1/0),t.visit(i?t.SOURCE:t.ADD,(e=>{const t=ze(r(e));null!=t&&(t<a&&(a=t),t>o&&(o=t))})),!Number.isFinite(a)||!Number.isFinite(o)){let e=he(r);e&&(e=` for field "${e}"`),t.dataflow.warn(`Infinite extent${e}: [${a}, ${o}]`),a=o=void 0}this.value=[a,o]}}),pt(vl,$o,{connect(e){return this.detachSubflow=e.detachSubflow,this.targets().add(e),e.source=this},add(e){this.count+=1,this.value.add.push(e)},rem(e){this.count-=1,this.value.rem.push(e)},mod(e){this.value.mod.push(e)},init(e){this.value.init(e,e.NO_SOURCE)},evaluate(){return this.value}}),pt(bl,Vo,{activate(e){this._targets[this._targets.active++]=e},subflow(e,t,n,r){const i=this.value;let a,o,s=dt(i,e)&&i[e];return s?s.value.stamp<n.stamp&&(s.init(n),this.activate(s)):(o=r||(o=this._group[e])&&o.tuple,a=n.dataflow,s=new vl(n.fork(n.NO_SOURCE),this),a.add(s).connect(t(a,e,o)),i[e]=s,this.activate(s)),s},clean(){const e=this.value;let t=0;for(const n in e)if(0===e[n].count){const r=e[n].detachSubflow;r&&r(),delete e[n],++t}if(t){const e=this._targets.filter((e=>e&&e.count>0));this.initTargets(e)}},initTargets(e){const t=this._targets,n=t.length,r=e?e.length:0;let i=0;for(;i<r;++i)t[i]=e[i];for(;i<n&&null!=t[i];++i)t[i]=null;t.active=r},transform(e,t){const n=t.dataflow,r=e.key,i=e.subflow,a=this._keys,o=e.modified("key"),s=e=>this.subflow(e,i,t);return this._group=e.group||{},this.initTargets(),t.visit(t.REM,(e=>{const t=fo(e),n=a.get(t);void 0!==n&&(a.delete(t),s(n).rem(e))})),t.visit(t.ADD,(e=>{const t=r(e);a.set(fo(e),t),s(t).add(e)})),o||t.modified(r.fields)?t.visit(t.MOD,(e=>{const t=fo(e),n=a.get(t),i=r(e);n===i?s(i).mod(e):(a.set(t,i),s(n).rem(e),s(i).add(e))})):t.changed(t.MOD)&&t.visit(t.MOD,(e=>{s(a.get(fo(e))).mod(e)})),o&&t.visit(t.REFLOW,(e=>{const t=fo(e),n=a.get(t),i=r(e);n!==i&&(a.set(t,i),s(n).rem(e),s(i).add(e))})),t.clean()?n.runAfter((()=>{this.clean(),a.clean()})):a.empty>n.cleanThreshold&&n.runAfter(a.clean),t}}),pt(xl,$o),Sl.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},pt(Sl,Vo,{transform(e,t){const n=t.dataflow,r=this.value,i=t.fork(),a=i.add,o=i.rem,s=i.mod,l=e.expr;let u=!0;function c(t){const n=fo(t),i=l(t,e),c=r.get(n);i&&c?(r.delete(n),a.push(t)):i||c?u&&i&&!c&&s.push(t):(r.set(n,1),o.push(t))}return t.visit(t.REM,(e=>{const t=fo(e);r.has(t)?r.delete(t):o.push(e)})),t.visit(t.ADD,(t=>{l(t,e)?a.push(t):r.set(fo(t),1)})),t.visit(t.MOD,c),e.modified()&&(u=!1,t.visit(t.REFLOW,c)),r.empty>n.cleanThreshold&&n.runAfter(r.clean),i}}),Al.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"index",type:"string"},{name:"as",type:"string",array:!0}]},pt(Al,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.fields,i=hl(r,e.as||[]),a=e.index||null,o=i.length;return n.rem=this.value,t.visit(t.SOURCE,(e=>{const t=r.map((t=>t(e))),s=t.reduce(((e,t)=>Math.max(e,t.length)),0);let l,u,c,d=0;for(;d<s;++d){for(u=mo(e),l=0;l<o;++l)u[i[l]]=null==(c=t[l][d])?null:c;a&&(u[a]=d),n.add.push(u)}})),this.value=n.source=n.add,a&&n.modifies(a),n.modifies(i)}}),$l.Definition={type:"Fold",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0,length:2,default:["key","value"]}]},pt($l,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.fields,i=r.map(he),a=e.as||["key","value"],o=a[0],s=a[1],l=r.length;return n.rem=this.value,t.visit(t.SOURCE,(e=>{for(let t,a=0;a<l;++a)t=mo(e),t[o]=i[a],t[s]=r[a](e),n.add.push(t)})),this.value=n.source=n.add,n.modifies(a)}}),Tl.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},pt(Tl,Vo,{transform(e,t){const n=e.expr,r=e.as,i=e.modified(),a=e.initonly?t.ADD:i?t.SOURCE:t.modified(n.fields)||t.modified(r)?t.ADD_MOD:t.ADD;return i&&(t=t.materialize().reflow(!0)),e.initonly||t.modifies(r),t.visit(a,(t=>t[r]=n(t,e)))}}),pt(Ol,Vo,{transform(e,t){const n=t.fork(t.ALL),r=e.generator;let i,a,o,s=this.value,l=e.size-s.length;if(l>0){for(i=[];--l>=0;)i.push(o=po(r(e))),s.push(o);n.add=n.add.length?n.materialize(n.ADD).add.concat(i):i}else a=s.slice(0,-l),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(a):a,s=s.slice(-l);return n.source=this.value=s,n}});const Dl={value:"value",median:es,mean:function(e,t){let n=0,r=0;if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(++n,r+=t);else{let i=-1;for(let a of e)null!=(a=t(a,++i,e))&&(a=+a)>=a&&(++n,r+=a)}if(n)return r/n},min:qo,max:Go},Ml=[];function wl(e){Vo.call(this,[],e)}function Il(e){Qs.call(this,e)}function Cl(e){Vo.call(this,null,e)}function Rl(e){$o.call(this,null,kl,e)}function kl(e){return this.value&&!e.modified()?this.value:bt(e.fields,e.flat)}function Ll(e){Vo.call(this,[],e),this._pending=null}function Nl(e,t,n){n.forEach(po);const r=t.fork(t.NO_FIELDS&t.NO_SOURCE);return r.rem=e.value,e.value=r.source=r.add=n,e._pending=null,r.rem.length&&r.clean(!0),r}function Fl(e){Vo.call(this,{},e)}function Bl(e){$o.call(this,null,jl,e)}function jl(e){if(this.value&&!e.modified())return this.value;const t=e.extents,n=t.length;let r,i,a=1/0,o=-1/0;for(r=0;r<n;++r)i=t[r],i[0]<a&&(a=i[0]),i[1]>o&&(o=i[1]);return[a,o]}function Hl(e){$o.call(this,null,zl,e)}function zl(e){return this.value&&!e.modified()?this.value:e.values.reduce(((e,t)=>e.concat(t)),[])}function Pl(e){Vo.call(this,null,e)}function Ul(e){Qs.call(this,e)}function Vl(e){bl.call(this,e)}function Wl(e){Vo.call(this,null,e)}function Gl(e){Vo.call(this,null,e)}function ql(e){Vo.call(this,null,e)}function Yl(e){Vo.call(this,null,e)}function Kl(e){Vo.call(this,[],e),this.count=0}function Jl(e){Vo.call(this,null,e)}function Xl(e){Vo.call(this,null,e),this.modified(!0)}function Zl(e){Vo.call(this,null,e)}wl.Definition={type:"Impute",metadata:{changes:!0},params:[{name:"field",type:"field",required:!0},{name:"key",type:"field",required:!0},{name:"keyvals",array:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]},pt(wl,Vo,{transform(e,t){var n,r,i,a,o,s,l,u,c,d,f=t.fork(t.ALL),h=function(e){var t,n=e.method||Dl.value;if(null!=Dl[n])return n===Dl.value?(t=void 0!==e.value?e.value:0,()=>t):Dl[n];_e("Unrecognized imputation method: "+n)}(e),p=function(e){const t=e.field;return e=>e?t(e):NaN}(e),m=he(e.field),g=he(e.key),y=(e.groupby||[]).map(he),_=function(e,t,n,r){var i,a,o,s,l,u,c,d,f=e=>e(d),h=[],p=r?r.slice():[],m={},g={};for(p.forEach(((e,t)=>m[e]=t+1)),s=0,c=e.length;s<c;++s)u=n(d=e[s]),l=m[u]||(m[u]=p.push(u)),(o=g[a=(i=t?t.map(f):Ml)+""])||(o=g[a]=[],h.push(o),o.values=i),o[l-1]=d;return h.domain=p,h}(t.source,e.groupby,e.key,e.keyvals),v=[],b=this.value,x=_.domain.length;for(o=0,u=_.length;o<u;++o)for(i=(n=_[o]).values,r=NaN,l=0;l<x;++l)if(null==n[l]){for(a=_.domain[l],d={_impute:!0},s=0,c=i.length;s<c;++s)d[y[s]]=i[s];d[g]=a,d[m]=Number.isNaN(r)?r=h(n,p):r,v.push(po(d))}return v.length&&(f.add=f.materialize(f.ADD).add.concat(v)),b.length&&(f.rem=f.materialize(f.REM).rem.concat(b)),this.value=v,f}}),Il.Definition={type:"JoinAggregate",metadata:{modifies:!0},params:[{name:"groupby",type:"field",array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"ops",type:"enum",array:!0,values:Us},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]},pt(Il,Qs,{transform(e,t){const n=this,r=e.modified();let i;return n.value&&(r||t.modified(n._inputs,!0))?(i=n.value=r?n.init(e):{},t.visit(t.SOURCE,(e=>n.add(e)))):(i=n.value=n.value||this.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),n.changes(),t.visit(t.SOURCE,(e=>{ut(e,i[n.cellkey(e)].tuple)})),t.reflow(r).modifies(this._outputs)},changes(){const e=this._adds,t=this._mods;let n,r;for(n=0,r=this._alen;n<r;++n)this.celltuple(e[n]),e[n]=null;for(n=0,r=this._mlen;n<r;++n)this.celltuple(t[n]),t[n]=null;this._alen=this._mlen=0}}),Cl.Definition={type:"KDE",metadata:{generates:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"cumulative",type:"boolean",default:!1},{name:"counts",type:"boolean",default:!1},{name:"bandwidth",type:"number",default:0},{name:"extent",type:"number",array:!0,length:2},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"as",type:"string",array:!0,default:["value","density"]}]},pt(Cl,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const r=t.materialize(t.SOURCE).source,i=pl(r,e.groupby,e.field),a=(e.groupby||[]).map(he),o=e.bandwidth,s=e.cumulative?"cdf":"pdf",l=e.as||["value","density"],u=[];let c=e.extent,d=e.steps||e.minsteps||25,f=e.steps||e.maxsteps||200;"pdf"!==s&&"cdf"!==s&&_e("Invalid density method: "+s),"shared"===e.resolve&&(c||(c=ct(r,e.field)),d=f=e.steps||f),i.forEach((t=>{const n=ms(t,o)[s],r=e.counts?t.length:1;Ls(n,c||ct(t),d,f).forEach((e=>{const n={};for(let e=0;e<a.length;++e)n[a[e]]=t.dims[e];n[l[0]]=e[0],n[l[1]]=e[1]*r,u.push(po(n))}))})),this.value&&(n.rem=this.value),this.value=n.add=n.source=u}return n}}),pt(Rl,$o),pt(Ll,Vo,{transform(e,t){const n=t.dataflow;if(this._pending)return Nl(this,t,this._pending);if(function(e){return e.modified("async")&&!(e.modified("values")||e.modified("url")||e.modified("format"))}(e))return t.StopPropagation;if(e.values)return Nl(this,t,n.parse(e.values,e.format));if(e.async){const t=n.request(e.url,e.format).then((e=>(this._pending=Qe(e.data),e=>e.touch(this))));return{async:t}}return n.request(e.url,e.format).then((e=>Nl(this,t,Qe(e.data))))}}),Fl.Definition={type:"Lookup",metadata:{modifies:!0},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:!0},{name:"key",type:"field",required:!0}]},{name:"values",type:"field",array:!0},{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0},{name:"default",default:null}]},pt(Fl,Vo,{transform(e,t){const n=e.fields,r=e.index,i=e.values,a=null==e.default?null:e.default,o=e.modified(),s=n.length;let l,u,c,d=o?t.SOURCE:t.ADD,f=t,h=e.as;return i?(u=i.length,s>1&&!h&&_e('Multi-field lookup requires explicit "as" parameter.'),h&&h.length!==s*u&&_e('The "as" parameter has too few output field names.'),h=h||i.map(he),l=function(e){for(var t,o,l=0,c=0;l<s;++l)if(null==(o=r.get(n[l](e))))for(t=0;t<u;++t,++c)e[h[c]]=a;else for(t=0;t<u;++t,++c)e[h[c]]=i[t](o)}):(h||_e("Missing output field names."),l=function(e){for(var t,i=0;i<s;++i)t=r.get(n[i](e)),e[h[i]]=null==t?a:t}),o?f=t.reflow(!0):(c=n.some((e=>t.modified(e.fields))),d|=c?t.MOD:0),t.visit(d,l),f.modifies(h)}}),pt(Bl,$o),pt(Hl,$o),pt(Pl,Vo,{transform(e,t){return this.modified(e.modified()),this.value=e,t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),Ul.Definition={type:"Pivot",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"value",type:"field",required:!0},{name:"op",type:"enum",values:Us,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},pt(Ul,Qs,{_transform:Qs.prototype.transform,transform(e,t){return this._transform(function(e,t){const n=e.field,r=e.value,i=("count"===e.op?"__count__":e.op)||"sum",a=pe(n).concat(pe(r)),o=function(e,t,n){const r={},i=[];return n.visit(n.SOURCE,(t=>{const n=e(t);r[n]||(r[n]=1,i.push(n))})),i.sort(rt),t?i.slice(0,t):i}(n,e.limit||0,t);return t.changed()&&e.set("__pivot__",null,null,!0),{key:e.key,groupby:e.groupby,ops:o.map((()=>i)),fields:o.map((e=>function(e,t,n,r){return fe((r=>t(r)===e?n(r):NaN),r,e+"")}(e,n,r,a))),as:o.map((e=>e+"")),modified:e.modified.bind(e)}}(e,t),t)}}),pt(Vl,bl,{transform(e,t){const n=e.subflow,r=e.field,i=e=>this.subflow(fo(e),n,t,e);return(e.modified("field")||r&&t.modified(pe(r)))&&_e("PreFacet does not support field modification."),this.initTargets(),r?(t.visit(t.MOD,(e=>{const t=i(e);r(e).forEach((e=>t.mod(e)))})),t.visit(t.ADD,(e=>{const t=i(e);r(e).forEach((e=>t.add(po(e))))})),t.visit(t.REM,(e=>{const t=i(e);r(e).forEach((e=>t.rem(e)))}))):(t.visit(t.MOD,(e=>i(e).mod(e))),t.visit(t.ADD,(e=>i(e).add(e))),t.visit(t.REM,(e=>i(e).rem(e)))),t.clean()&&t.runAfter((()=>this.clean())),t}}),Wl.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},pt(Wl,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.fields,i=hl(e.fields,e.as||[]),a=r?(e,t)=>function(e,t,n,r){for(let i=0,a=n.length;i<a;++i)t[r[i]]=n[i](e);return t}(e,t,r,i):go;let o;return this.value?o=this.value:(t=t.addAll(),o=this.value={}),t.visit(t.REM,(e=>{const t=fo(e);n.rem.push(o[t]),o[t]=null})),t.visit(t.ADD,(e=>{const t=a(e,po({}));o[fo(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{n.mod.push(a(e,o[fo(e)]))})),n}}),pt(Gl,Vo,{transform(e,t){return this.value=e.value,e.modified("value")?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}}),ql.Definition={type:"Quantile",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"probs",type:"number",array:!0},{name:"step",type:"number",default:.01},{name:"as",type:"string",array:!0,default:["prob","value"]}]},pt(ql,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.as||["prob","value"];if(this.value&&!e.modified()&&!t.changed())return n.source=this.value,n;const i=pl(t.materialize(t.SOURCE).source,e.groupby,e.field),a=(e.groupby||[]).map(he),o=[],s=e.step||.01,l=e.probs||Fs(s/2,1-1e-14,s),u=l.length;return i.forEach((e=>{const t=ns(e,l);for(let n=0;n<u;++n){const i={};for(let t=0;t<a.length;++t)i[a[t]]=e.dims[t];i[r[0]]=l[n],i[r[1]]=t[n],o.push(po(i))}})),this.value&&(n.rem=this.value),this.value=n.add=n.source=o,n}}),pt(Yl,Vo,{transform(e,t){let n,r;return this.value?r=this.value:(n=t=t.addAll(),r=this.value={}),e.derive&&(n=t.fork(t.NO_SOURCE),t.visit(t.REM,(e=>{const t=fo(e);n.rem.push(r[t]),r[t]=null})),t.visit(t.ADD,(e=>{const t=mo(e);r[fo(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{const t=r[fo(e)];for(const r in e)t[r]=e[r],n.modifies(r);n.mod.push(t)}))),n}}),Kl.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},pt(Kl,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.modified("size"),i=e.size,a=this.value.reduce(((e,t)=>(e[fo(t)]=1,e)),{});let o=this.value,s=this.count,l=0;function u(e){let t,r;o.length<i?o.push(e):(r=~~((s+1)*as()),r<o.length&&r>=l&&(t=o[r],a[fo(t)]&&n.rem.push(t),o[r]=e)),++s}if(t.rem.length&&(t.visit(t.REM,(e=>{const t=fo(e);a[t]&&(a[t]=-1,n.rem.push(e)),--s})),o=o.filter((e=>-1!==a[fo(e)]))),(t.rem.length||r)&&o.length<i&&t.source&&(l=s=o.length,t.visit(t.SOURCE,(e=>{a[fo(e)]||u(e)})),l=-1),r&&o.length>i){const e=o.length-i;for(let t=0;t<e;++t)a[fo(o[t])]=-1,n.rem.push(o[t]);o=o.slice(e)}return t.mod.length&&t.visit(t.MOD,(e=>{a[fo(e)]&&n.mod.push(e)})),t.add.length&&t.visit(t.ADD,u),(t.add.length||l<0)&&(n.add=o.filter((e=>!a[fo(e)]))),this.count=s,this.value=n.source=o,n}}),Jl.Definition={type:"Sequence",metadata:{generates:!0,changes:!0},params:[{name:"start",type:"number",required:!0},{name:"stop",type:"number",required:!0},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]},pt(Jl,Vo,{transform(e,t){if(this.value&&!e.modified())return;const n=t.materialize().fork(t.MOD),r=e.as||"data";return n.rem=this.value?t.rem.concat(this.value):t.rem,this.value=Fs(e.start,e.stop,e.step||1).map((e=>{const t={};return t[r]=e,po(t)})),n.add=t.add.concat(this.value),n}}),pt(Xl,Vo,{transform(e,t){return this.value=t.source,t.changed()?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});const Ql=["unit0","unit1"];function eu(e){Vo.call(this,ht(),e)}function tu(e){Vo.call(this,null,e)}Zl.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:yr,array:!0},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:!0},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:!0,length:2,default:Ql}]},pt(Zl,Vo,{transform(e,t){const n=e.field,r=!1!==e.interval,i="utc"===e.timezone,a=this._floor(e,t),o=(i?Pr:zr)(a.unit).offset,s=e.as||Ql,l=s[0],u=s[1],c=a.step;let d=a.start||1/0,f=a.stop||-1/0,h=t.ADD;return(e.modified()||t.changed(t.REM)||t.modified(pe(n)))&&(h=(t=t.reflow(!0)).SOURCE,d=1/0,f=-1/0),t.visit(h,(e=>{const t=n(e);let i,s;null==t?(e[l]=null,r&&(e[u]=null)):(e[l]=i=s=a(t),r&&(e[u]=s=o(i,c)),i<d&&(d=i),s>f&&(f=s))})),a.start=d,a.stop=f,t.modifies(r?s:l)},_floor(e,t){const n="utc"===e.timezone,{units:r,step:i}=e.units?{units:e.units,step:e.step||1}:function(e){const t=e.extent,n=e.maxbins||40,r=Math.abs(Et(t))/n;let i,a,o=ir((e=>e[2])).right(Qr,r);return o===Qr.length?(i=Zr,a=Zt(t[0]/Wr,t[1]/Wr,n)):o?(o=Qr[r/Qr[o-1][2]<Qr[o][2]/r?o-1:o],i=o[0],a=o[1]):(i=Gr,a=Math.max(Zt(t[0],t[1],n),1)),{units:i,step:a}}({extent:e.extent||ct(t.materialize(t.SOURCE).source,e.field),maxbins:e.maxbins}),a=vr(r),o=this.value||{},s=(n?Br:Lr)(a,i);return s.unit=He(a),s.units=a,s.step=i,s.start=o.start,s.stop=o.stop,this.value=s}}),pt(eu,Vo,{transform(e,t){const n=t.dataflow,r=e.field,i=this.value,a=e=>i.set(r(e),e);let o=!0;return e.modified("field")||t.modified(r.fields)?(i.clear(),t.visit(t.SOURCE,a)):t.changed()?(t.visit(t.REM,(e=>i.delete(r(e)))),t.visit(t.ADD,a)):o=!1,this.modified(o),i.empty>n.cleanThreshold&&n.runAfter(i.clean),t.fork()}}),pt(tu,Vo,{transform(e,t){(!this.value||e.modified("field")||e.modified("sort")||t.changed()||e.sort&&t.modified(e.sort.fields))&&(this.value=(e.sort?t.source.slice().sort(_o(e.sort)):t.source).map(e.field))}});const nu={row_number:function(){return{next:e=>e.index+1}},rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,r=t.data;return n&&t.compare(r[n-1],r[n])?e=n+1:e}}},dense_rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,r=t.data;return n&&t.compare(r[n-1],r[n])?++e:e}}},percent_rank:function(){const e=nu.rank(),t=e.next;return{init:e.init,next:e=>(t(e)-1)/(e.data.length-1)}},cume_dist:function(){let e;return{init:()=>e=0,next:t=>{const n=t.data,r=t.compare;let i=t.index;if(e<i){for(;i+1<n.length&&!r(n[i],n[i+1]);)++i;e=i}return(1+e)/n.length}}},ntile:function(e,t){(t=+t)>0||_e("ntile num must be greater than zero.");const n=nu.cume_dist(),r=n.next;return{init:n.init,next:e=>Math.ceil(t*r(e))}},lag:function(e,t){return t=+t||1,{next:n=>{const r=n.index-t;return r>=0?e(n.data[r]):null}}},lead:function(e,t){return t=+t||1,{next:n=>{const r=n.index+t,i=n.data;return r<i.length?e(i[r]):null}}},first_value:function(e){return{next:t=>e(t.data[t.i0])}},last_value:function(e){return{next:t=>e(t.data[t.i1-1])}},nth_value:function(e,t){return(t=+t)>0||_e("nth_value nth must be greater than zero."),{next:n=>{const r=n.i0+(t-1);return r<n.i1?e(n.data[r]):null}}},prev_value:function(e){let t;return{init:()=>t=null,next:n=>{const r=e(n.data[n.index]);return null!=r?t=r:t}}},next_value:function(e){let t,n;return{init:()=>(t=null,n=-1),next:r=>{const i=r.data;return r.index<=n?t:(n=function(e,t,n){for(let r=t.length;n<r;++n)if(null!=e(t[n]))return n;return-1}(e,i,r.index))<0?(n=i.length,t=null):t=e(i[n])}}}},ru=Object.keys(nu);function iu(e){const t=Qe(e.ops),n=Qe(e.fields),r=Qe(e.params),i=Qe(e.aggregate_params),a=Qe(e.as),o=this.outputs=[],s=this.windows=[],l={},u={},c=[],d=[];let f=!0;function h(e){Qe(pe(e)).forEach((e=>l[e]=1))}h(e.sort),t.forEach(((e,t)=>{const l=n[t],p=r[t],m=i[t]||null,g=he(l),y=js(e,g,a[t]);if(h(l),o.push(y),dt(nu,e))s.push(function(e,t,n,r){const i=nu[e](t,n);return{init:i.init||Se,update:function(e,t){t[r]=i.next(e)}}}(e,l,p,y));else{if(null==l&&"count"!==e&&_e("Null aggregate field specified."),"count"===e)return void c.push(y);f=!1;let t=u[g];t||(t=u[g]=[],t.field=l,d.push(t)),t.push(Vs(e,m,y))}})),(c.length||d.length)&&(this.cell=function(e,t,n){e=e.map((e=>Js(e,e.field)));const r={num:0,agg:null,store:!1,count:t};if(!n)for(var i=e.length,a=r.agg=Array(i),o=0;o<i;++o)a[o]=new e[o](r);if(r.store)var s=r.data=new Xs;return r.add=function(e){if(r.num+=1,!n){s&&s.add(e);for(let t=0;t<i;++t)a[t].add(a[t].get(e),e)}},r.rem=function(e){if(r.num-=1,!n){s&&s.rem(e);for(let t=0;t<i;++t)a[t].rem(a[t].get(e),e)}},r.set=function(e){let i,o;for(s&&s.values(),i=0,o=t.length;i<o;++i)e[t[i]]=r.num;if(!n)for(i=0,o=a.length;i<o;++i)a[i].set(e)},r.init=function(){r.num=0,s&&s.reset();for(let e=0;e<i;++e)a[e].init()},r}(d,c,f)),this.inputs=Object.keys(l)}const au=iu.prototype;function ou(e){Vo.call(this,{},e),this._mlen=0,this._mods=[]}function su(e,t,n,r){const i=r.sort,a=i&&!r.ignorePeers,o=r.frame||[null,0],s=e.data(n),l=s.length,u=a?ir(i):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:s,compare:i||st(-1)};t.init();for(let e=0;e<l;++e)lu(c,o,e,l),a&&uu(c,u),t.update(c,s[e])}function lu(e,t,n,r){e.p0=e.i0,e.p1=e.i1,e.i0=null==t[0]?0:Math.max(0,n-Math.abs(t[0])),e.i1=null==t[1]?r:Math.min(r,n+Math.abs(t[1])+1),e.index=n}function uu(e,t){const n=e.i0,r=e.i1-1,i=e.compare,a=e.data,o=a.length-1;n>0&&!i(a[n],a[n-1])&&(e.i0=t.left(a,a[n])),r<o&&!i(a[r],a[r+1])&&(e.i1=t.right(a,a[r]))}function cu(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function du(e){this._context=e}function fu(){}function hu(e){this._context=e}function pu(e){this._context=e}function mu(e,t){this._basis=new du(e),this._beta=t}au.init=function(){this.windows.forEach((e=>e.init())),this.cell&&this.cell.init()},au.update=function(e,t){const n=this.cell,r=this.windows,i=e.data,a=r&&r.length;let o;if(n){for(o=e.p0;o<e.i0;++o)n.rem(i[o]);for(o=e.p1;o<e.i1;++o)n.add(i[o]);n.set(t)}for(o=0;o<a;++o)r[o].update(e,t)},ou.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:ru.concat(Us)},{name:"params",type:"number",null:!0,array:!0},{name:"aggregate_params",type:"number",null:!0,array:!0},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"frame",type:"number",null:!0,array:!0,length:2,default:[null,0]},{name:"ignorePeers",type:"boolean",default:!1}]},pt(ou,Vo,{transform(e,t){this.stamp=t.stamp;const n=e.modified(),r=_o(e.sort),i=Bs(e.groupby),a=e=>this.group(i(e));let o=this.state;o&&!n||(o=this.state=new iu(e)),n||t.modified(o.inputs)?(this.value={},t.visit(t.SOURCE,(e=>a(e).add(e)))):(t.visit(t.REM,(e=>a(e).remove(e))),t.visit(t.ADD,(e=>a(e).add(e))));for(let t=0,n=this._mlen;t<n;++t)su(this._mods[t],o,r,e);return this._mlen=0,this._mods=[],t.reflow(n).modifies(o.outputs)},group(e){let t=this.value[e];return t||(t=this.value[e]=tl(fo),t.stamp=-1),t.stamp<this.stamp&&(t.stamp=this.stamp,this._mods[this._mlen++]=t),t}}),du.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:cu(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:cu(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},hu.prototype={areaStart:fu,areaEnd:fu,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:cu(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},pu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:cu(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},mu.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r,i=e[0],a=t[0],o=e[n]-i,s=t[n]-a,l=-1;++l<=n;)r=l/n,this._basis.point(this._beta*e[l]+(1-this._beta)*(i+r*o),this._beta*t[l]+(1-this._beta)*(a+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const gu=function e(t){function n(e){return 1===t?new du(e):new mu(e,t)}return n.beta=function(t){return e(+t)},n}(.85);function yu(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function _u(e,t){this._context=e,this._k=(1-t)/6}_u.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:yu(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:yu(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const vu=function e(t){function n(e){return new _u(e,t)}return n.tension=function(t){return e(+t)},n}(0);function bu(e,t){this._context=e,this._k=(1-t)/6}bu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:yu(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const xu=function e(t){function n(e){return new bu(e,t)}return n.tension=function(t){return e(+t)},n}(0);function Eu(e,t){this._context=e,this._k=(1-t)/6}Eu.prototype={areaStart:fu,areaEnd:fu,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:yu(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Su=function e(t){function n(e){return new Eu(e,t)}return n.tension=function(t){return e(+t)},n}(0),Au=Math.abs,$u=Math.atan2,Tu=Math.cos,Ou=Math.max,Du=Math.min,Mu=Math.sin,wu=Math.sqrt,Iu=1e-12,Cu=Math.PI,Ru=Cu/2,ku=2*Cu;function Lu(e){return e>=1?Ru:e<=-1?-Ru:Math.asin(e)}function Nu(e,t,n){var r=e._x1,i=e._y1,a=e._x2,o=e._y2;if(e._l01_a>Iu){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>Iu){var u=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,c=3*e._l23_a*(e._l23_a+e._l12_a);a=(a*u+e._x1*e._l23_2a-t*e._l12_2a)/c,o=(o*u+e._y1*e._l23_2a-n*e._l12_2a)/c}e._context.bezierCurveTo(r,i,a,o,e._x2,e._y2)}function Fu(e,t){this._context=e,this._alpha=t}Fu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:Nu(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Bu=function e(t){function n(e){return t?new Fu(e,t):new _u(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function ju(e,t){this._context=e,this._alpha=t}ju.prototype={areaStart:fu,areaEnd:fu,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Nu(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Hu=function e(t){function n(e){return t?new ju(e,t):new Eu(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function zu(e,t){this._context=e,this._alpha=t}zu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Nu(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Pu=function e(t){function n(e){return t?new zu(e,t):new bu(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function Uu(e){this._context=e}function Vu(e){return new Uu(e)}function Wu(e){this._context=e}function Gu(e){return e<0?-1:1}function qu(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(Gu(a)+Gu(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function Yu(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Ku(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function Ju(e){this._context=e}function Xu(e){this._context=new Zu(e)}function Zu(e){this._context=e}function Qu(e){this._context=e}function ec(e){var t,n,r=e.length-1,i=new Array(r),a=new Array(r),o=new Array(r);for(i[0]=0,a[0]=2,o[0]=e[0]+2*e[1],t=1;t<r-1;++t)i[t]=1,a[t]=4,o[t]=4*e[t]+2*e[t+1];for(i[r-1]=2,a[r-1]=7,o[r-1]=8*e[r-1]+e[r],t=1;t<r;++t)n=i[t]/a[t-1],a[t]-=n,o[t]-=n*o[t-1];for(i[r-1]=o[r-1]/a[r-1],t=r-2;t>=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[r-1]=(e[r]+i[r-1])/2,t=0;t<r-1;++t)a[t]=2*e[t+1]-i[t+1];return[i,a]}function tc(e,t){this._context=e,this._t=t}function nc(e){return function(){return e}}Uu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}},Wu.prototype={areaStart:fu,areaEnd:fu,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}},Ju.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Ku(this,this._t0,Yu(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(t=+t,(e=+e)!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Ku(this,Yu(this,n=qu(this,e,t)),n);break;default:Ku(this,this._t0,n=qu(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}},(Xu.prototype=Object.create(Ju.prototype)).point=function(e,t){Ju.prototype.point.call(this,t,e)},Zu.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,a){this._context.bezierCurveTo(t,e,r,n,a,i)}},Qu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),2===n)this._context.lineTo(e[1],t[1]);else for(var r=ec(e),i=ec(t),a=0,o=1;o<n;++a,++o)this._context.bezierCurveTo(r[0][a],i[0][a],r[1][a],i[1][a],e[o],t[o]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}},tc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};const rc=Math.PI,ic=2*rc,ac=1e-6,oc=ic-ac;function sc(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}class lc{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==e?sc:function(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return sc;const n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,i,a){this._append`C${+e},${+t},${+n},${+r},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,n,r,i){if(e=+e,t=+t,n=+n,r=+r,(i=+i)<0)throw new Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,s=n-e,l=r-t,u=a-e,c=o-t,d=u*u+c*c;if(null===this._x1)this._append`M${this._x1=e},${this._y1=t}`;else if(d>ac)if(Math.abs(c*s-l*u)>ac&&i){let f=n-a,h=r-o,p=s*s+l*l,m=f*f+h*h,g=Math.sqrt(p),y=Math.sqrt(d),_=i*Math.tan((rc-Math.acos((p+d-m)/(2*g*y)))/2),v=_/y,b=_/g;Math.abs(v-1)>ac&&this._append`L${e+v*u},${t+v*c}`,this._append`A${i},${i},0,0,${+(c*f>u*h)},${this._x1=e+b*s},${this._y1=t+b*l}`}else this._append`L${this._x1=e},${this._y1=t}`}arc(e,t,n,r,i,a){if(e=+e,t=+t,a=!!a,(n=+n)<0)throw new Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),l=e+o,u=t+s,c=1^a,d=a?r-i:i-r;null===this._x1?this._append`M${l},${u}`:(Math.abs(this._x1-l)>ac||Math.abs(this._y1-u)>ac)&&this._append`L${l},${u}`,n&&(d<0&&(d=d%ic+ic),d>oc?this._append`A${n},${n},0,1,${c},${e-o},${t-s}A${n},${n},0,1,${c},${this._x1=l},${this._y1=u}`:d>ac&&this._append`A${n},${n},0,${+(d>=rc)},${c},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}}function uc(){return new lc}function cc(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(null==n)t=null;else{const e=Math.floor(n);if(!(e>=0))throw new RangeError(`invalid digits: ${n}`);t=e}return e},()=>new lc(t)}function dc(e){return e.innerRadius}function fc(e){return e.outerRadius}function hc(e){return e.startAngle}function pc(e){return e.endAngle}function mc(e){return e&&e.padAngle}function gc(e,t,n,r,i,a,o){var s=e-n,l=t-r,u=(o?a:-a)/wu(s*s+l*l),c=u*l,d=-u*s,f=e+c,h=t+d,p=n+c,m=r+d,g=(f+p)/2,y=(h+m)/2,_=p-f,v=m-h,b=_*_+v*v,x=i-a,E=f*m-p*h,S=(v<0?-1:1)*wu(Ou(0,x*x*b-E*E)),A=(E*v-_*S)/b,$=(-E*_-v*S)/b,T=(E*v+_*S)/b,O=(-E*_+v*S)/b,D=A-g,M=$-y,w=T-g,I=O-y;return D*D+M*M>w*w+I*I&&(A=T,$=O),{cx:A,cy:$,x01:-c,y01:-d,x11:A*(i/x-1),y11:$*(i/x-1)}}function yc(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function _c(e){return e[0]}function vc(e){return e[1]}function bc(e,t){var n=nc(!0),r=null,i=Vu,a=null,o=cc(s);function s(s){var l,u,c,d=(s=yc(s)).length,f=!1;for(null==r&&(a=i(c=o())),l=0;l<=d;++l)!(l<d&&n(u=s[l],l,s))===f&&((f=!f)?a.lineStart():a.lineEnd()),f&&a.point(+e(u,l,s),+t(u,l,s));if(c)return a=null,c+""||null}return e="function"==typeof e?e:void 0===e?_c:nc(e),t="function"==typeof t?t:void 0===t?vc:nc(t),s.x=function(t){return arguments.length?(e="function"==typeof t?t:nc(+t),s):e},s.y=function(e){return arguments.length?(t="function"==typeof e?e:nc(+e),s):t},s.defined=function(e){return arguments.length?(n="function"==typeof e?e:nc(!!e),s):n},s.curve=function(e){return arguments.length?(i=e,null!=r&&(a=i(r)),s):i},s.context=function(e){return arguments.length?(null==e?r=a=null:a=i(r=e),s):r},s}function xc(e,t,n){var r=null,i=nc(!0),a=null,o=Vu,s=null,l=cc(u);function u(u){var c,d,f,h,p,m=(u=yc(u)).length,g=!1,y=new Array(m),_=new Array(m);for(null==a&&(s=o(p=l())),c=0;c<=m;++c){if(!(c<m&&i(h=u[c],c,u))===g)if(g=!g)d=c,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=c-1;f>=d;--f)s.point(y[f],_[f]);s.lineEnd(),s.areaEnd()}g&&(y[c]=+e(h,c,u),_[c]=+t(h,c,u),s.point(r?+r(h,c,u):y[c],n?+n(h,c,u):_[c]))}if(p)return s=null,p+""||null}function c(){return bc().defined(i).curve(o).context(a)}return e="function"==typeof e?e:void 0===e?_c:nc(+e),t="function"==typeof t?t:nc(void 0===t?0:+t),n="function"==typeof n?n:void 0===n?vc:nc(+n),u.x=function(t){return arguments.length?(e="function"==typeof t?t:nc(+t),r=null,u):e},u.x0=function(t){return arguments.length?(e="function"==typeof t?t:nc(+t),u):e},u.x1=function(e){return arguments.length?(r=null==e?null:"function"==typeof e?e:nc(+e),u):r},u.y=function(e){return arguments.length?(t="function"==typeof e?e:nc(+e),n=null,u):t},u.y0=function(e){return arguments.length?(t="function"==typeof e?e:nc(+e),u):t},u.y1=function(e){return arguments.length?(n=null==e?null:"function"==typeof e?e:nc(+e),u):n},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(n)},u.lineX1=function(){return c().x(r).y(t)},u.defined=function(e){return arguments.length?(i="function"==typeof e?e:nc(!!e),u):i},u.curve=function(e){return arguments.length?(o=e,null!=a&&(s=o(a)),u):o},u.context=function(e){return arguments.length?(null==e?a=s=null:s=o(a=e),u):a},u}uc.prototype=lc.prototype,Array.prototype.slice,wu(3);const Ec={draw(e,t){const n=wu(t/Cu);e.moveTo(n,0),e.arc(0,0,n,0,ku)}};wu(1/3),Mu(Cu/10),Mu(7*Cu/10);function Sc(e,t){if("undefined"!=typeof document&&document.createElement){const n=document.createElement("canvas");if(n&&n.getContext)return n.width=e,n.height=t,n}return null}Mu(ku/10),Tu(ku/10),wu(3),wu(3),wu(3),wu(12);const Ac=()=>"undefined"!=typeof Image?Image:null,$c=ir(nr),Tc=$c.right,Oc=$c.left,Dc=(ir(Xo).center,Tc);function Mc(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function wc(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ic(){}var Cc=.7,Rc=1/Cc,kc="\\s*([+-]?\\d+)\\s*",Lc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Nc="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Fc=/^#([0-9a-f]{3,8})$/,Bc=new RegExp(`^rgb\\(${kc},${kc},${kc}\\)$`),jc=new RegExp(`^rgb\\(${Nc},${Nc},${Nc}\\)$`),Hc=new RegExp(`^rgba\\(${kc},${kc},${kc},${Lc}\\)$`),zc=new RegExp(`^rgba\\(${Nc},${Nc},${Nc},${Lc}\\)$`),Pc=new RegExp(`^hsl\\(${Lc},${Nc},${Nc}\\)$`),Uc=new RegExp(`^hsla\\(${Lc},${Nc},${Nc},${Lc}\\)$`),Vc={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Wc(){return this.rgb().formatHex()}function Gc(){return this.rgb().formatRgb()}function qc(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Fc.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?Yc(t):3===n?new Zc(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?Kc(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?Kc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Bc.exec(e))?new Zc(t[1],t[2],t[3],1):(t=jc.exec(e))?new Zc(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Hc.exec(e))?Kc(t[1],t[2],t[3],t[4]):(t=zc.exec(e))?Kc(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Pc.exec(e))?id(t[1],t[2]/100,t[3]/100,1):(t=Uc.exec(e))?id(t[1],t[2]/100,t[3]/100,t[4]):Vc.hasOwnProperty(e)?Yc(Vc[e]):"transparent"===e?new Zc(NaN,NaN,NaN,0):null}function Yc(e){return new Zc(e>>16&255,e>>8&255,255&e,1)}function Kc(e,t,n,r){return r<=0&&(e=t=n=NaN),new Zc(e,t,n,r)}function Jc(e){return e instanceof Ic||(e=qc(e)),e?new Zc((e=e.rgb()).r,e.g,e.b,e.opacity):new Zc}function Xc(e,t,n,r){return 1===arguments.length?Jc(e):new Zc(e,t,n,null==r?1:r)}function Zc(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function Qc(){return`#${rd(this.r)}${rd(this.g)}${rd(this.b)}`}function ed(){const e=td(this.opacity);return`${1===e?"rgb(":"rgba("}${nd(this.r)}, ${nd(this.g)}, ${nd(this.b)}${1===e?")":`, ${e})`}`}function td(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function nd(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function rd(e){return((e=nd(e))<16?"0":"")+e.toString(16)}function id(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new sd(e,t,n,r)}function ad(e){if(e instanceof sd)return new sd(e.h,e.s,e.l,e.opacity);if(e instanceof Ic||(e=qc(e)),!e)return new sd;if(e instanceof sd)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,l=(a+i)/2;return s?(o=t===a?(n-r)/s+6*(n<r):n===a?(r-t)/s+2:(t-n)/s+4,s/=l<.5?a+i:2-a-i,o*=60):s=l>0&&l<1?0:o,new sd(o,s,l,e.opacity)}function od(e,t,n,r){return 1===arguments.length?ad(e):new sd(e,t,n,null==r?1:r)}function sd(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ld(e){return(e=(e||0)%360)<0?e+360:e}function ud(e){return Math.max(0,Math.min(1,e||0))}function cd(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function dd(e,t,n,r,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*n+(1+3*e+3*a-3*o)*r+o*i)/6}function fd(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[r],a=e[r+1],o=r>0?e[r-1]:2*i-a,s=r<t-1?e[r+2]:2*a-i;return dd((n-r/t)*t,o,i,a,s)}}function hd(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),i=e[(r+t-1)%t],a=e[r%t],o=e[(r+1)%t],s=e[(r+2)%t];return dd((n-r/t)*t,i,a,o,s)}}Mc(Ic,qc,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Wc,formatHex:Wc,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ad(this).formatHsl()},formatRgb:Gc,toString:Gc}),Mc(Zc,Xc,wc(Ic,{brighter(e){return e=null==e?Rc:Math.pow(Rc,e),new Zc(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?Cc:Math.pow(Cc,e),new Zc(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Zc(nd(this.r),nd(this.g),nd(this.b),td(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Qc,formatHex:Qc,formatHex8:function(){return`#${rd(this.r)}${rd(this.g)}${rd(this.b)}${rd(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:ed,toString:ed})),Mc(sd,od,wc(Ic,{brighter(e){return e=null==e?Rc:Math.pow(Rc,e),new sd(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Cc:Math.pow(Cc,e),new sd(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Zc(cd(e>=240?e-240:e+120,i,r),cd(e,i,r),cd(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new sd(ld(this.h),ud(this.s),ud(this.l),td(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=td(this.opacity);return`${1===e?"hsl(":"hsla("}${ld(this.h)}, ${100*ud(this.s)}%, ${100*ud(this.l)}%${1===e?")":`, ${e})`}`}}));const pd=e=>()=>e;function md(e,t){return function(n){return e+n*t}}function gd(e,t){var n=t-e;return n?md(e,n>180||n<-180?n-360*Math.round(n/360):n):pd(isNaN(e)?t:e)}function yd(e,t){var n=t-e;return n?md(e,n):pd(isNaN(e)?t:e)}const _d=function e(t){var n=function(e){return 1==(e=+e)?yd:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):pd(isNaN(t)?n:t)}}(t);function r(e,t){var r=n((e=Xc(e)).r,(t=Xc(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=yd(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+""}}return r.gamma=e,r}(1);function vd(e){return function(t){var n,r,i=t.length,a=new Array(i),o=new Array(i),s=new Array(i);for(n=0;n<i;++n)r=Xc(t[n]),a[n]=r.r||0,o[n]=r.g||0,s[n]=r.b||0;return a=e(a),o=e(o),s=e(s),r.opacity=1,function(e){return r.r=a(e),r.g=o(e),r.b=s(e),r+""}}}var bd=vd(fd),xd=vd(hd);function Ed(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,i=t.slice();return function(a){for(n=0;n<r;++n)i[n]=e[n]*(1-a)+t[n]*a;return i}}function Sd(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ad(e,t){return(Sd(t)?Ed:$d)(e,t)}function $d(e,t){var n,r=t?t.length:0,i=e?Math.min(r,e.length):0,a=new Array(i),o=new Array(r);for(n=0;n<i;++n)a[n]=Cd(e[n],t[n]);for(;n<r;++n)o[n]=t[n];return function(e){for(n=0;n<i;++n)o[n]=a[n](e);return o}}function Td(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Od(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Dd(e,t){var n,r={},i={};for(n in null!==e&&"object"==typeof e||(e={}),null!==t&&"object"==typeof t||(t={}),t)n in e?r[n]=Cd(e[n],t[n]):i[n]=t[n];return function(e){for(n in r)i[n]=r[n](e);return i}}var Md=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,wd=new RegExp(Md.source,"g");function Id(e,t){var n,r,i,a=Md.lastIndex=wd.lastIndex=0,o=-1,s=[],l=[];for(e+="",t+="";(n=Md.exec(e))&&(r=wd.exec(t));)(i=r.index)>a&&(i=t.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(n=n[0])===(r=r[0])?s[o]?s[o]+=r:s[++o]=r:(s[++o]=null,l.push({i:o,x:Od(n,r)})),a=wd.lastIndex;return a<t.length&&(i=t.slice(a),s[o]?s[o]+=i:s[++o]=i),s.length<2?l[0]?function(e){return function(t){return e(t)+""}}(l[0].x):function(e){return function(){return e}}(t):(t=l.length,function(e){for(var n,r=0;r<t;++r)s[(n=l[r]).i]=n.x(e);return s.join("")})}function Cd(e,t){var n,r=typeof t;return null==t||"boolean"===r?pd(t):("number"===r?Od:"string"===r?(n=qc(t))?(t=n,_d):Id:t instanceof qc?_d:t instanceof Date?Td:Sd(t)?Ed:Array.isArray(t)?$d:"function"!=typeof t.valueOf&&"function"!=typeof t.toString||isNaN(t)?Dd:Od)(e,t)}function Rd(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function kd(e){return+e}var Ld=[0,1];function Nd(e){return e}function Fd(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:function(e){return function(){return e}}(isNaN(t)?NaN:.5)}function Bd(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=Fd(i,r),a=n(o,a)):(r=Fd(r,i),a=n(a,o)),function(e){return a(r(e))}}function jd(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),a=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=Fd(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=Dc(e,t,1,r)-1;return a[n](i[n](t))}}function Hd(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function zd(){var e,t,n,r,i,a,o=Ld,s=Ld,l=Cd,u=Nd;function c(){var e=Math.min(o.length,s.length);return u!==Nd&&(u=function(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}(o[0],o[e-1])),r=e>2?jd:Bd,i=a=null,d}function d(t){return null==t||isNaN(t=+t)?n:(i||(i=r(o.map(e),s,l)))(e(u(t)))}return d.invert=function(n){return u(t((a||(a=r(s,o.map(e),Od)))(n)))},d.domain=function(e){return arguments.length?(o=Array.from(e,kd),c()):o.slice()},d.range=function(e){return arguments.length?(s=Array.from(e),c()):s.slice()},d.rangeRound=function(e){return s=Array.from(e),l=Rd,c()},d.clamp=function(e){return arguments.length?(u=!!e||Nd,c()):u!==Nd},d.interpolate=function(e){return arguments.length?(l=e,c()):l},d.unknown=function(e){return arguments.length?(n=e,d):n},function(n,r){return e=n,t=r,c()}}function Pd(){return zd()(Nd,Nd)}function Ud(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function Vd(e,t){switch(arguments.length){case 0:break;case 1:"function"==typeof e?this.interpolator(e):this.range(e);break;default:this.domain(e),"function"==typeof t?this.interpolator(t):this.range(t)}return this}function Wd(e,t,n,r){var i,a=Zt(e,t,n);switch((r=tn(null==r?",f":r)).type){case"s":var o=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(i=on(a,o))||(r.precision=i),pn(r,o);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=sn(a,Math.max(Math.abs(e),Math.abs(t))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=ln(a))||(r.precision=i-2*("%"===r.type))}return hn(r)}function Gd(e){var t=e.domain;return e.ticks=function(e){var n=t();return Jt(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return Wd(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var r,i,a=t(),o=0,s=a.length-1,l=a[o],u=a[s],c=10;for(u<l&&(i=l,l=u,u=i,i=o,o=s,s=i);c-- >0;){if((i=Xt(l,u,n))===r)return a[o]=l,a[s]=u,t(a);if(i>0)l=Math.floor(l/i)*i,u=Math.ceil(u/i)*i;else{if(!(i<0))break;l=Math.ceil(l*i)/i,u=Math.floor(u*i)/i}r=i}return e},e}function qd(e,t){var n,r=0,i=(e=e.slice()).length-1,a=e[r],o=e[i];return o<a&&(n=r,r=i,i=n,n=a,a=o,o=n),e[r]=t.floor(a),e[i]=t.ceil(o),e}function Yd(e){return Math.log(e)}function Kd(e){return Math.exp(e)}function Jd(e){return-Math.log(-e)}function Xd(e){return-Math.exp(-e)}function Zd(e){return isFinite(e)?+("1e"+e):e<0?0:e}function Qd(e){return(t,n)=>-e(-t,n)}function ef(e){const t=e(Yd,Kd),n=t.domain;let r,i,a=10;function o(){return r=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}(a),i=function(e){return 10===e?Zd:e===Math.E?Math.exp:t=>Math.pow(e,t)}(a),n()[0]<0?(r=Qd(r),i=Qd(i),e(Jd,Xd)):e(Yd,Kd),t}return t.base=function(e){return arguments.length?(a=+e,o()):a},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{const t=n();let o=t[0],s=t[t.length-1];const l=s<o;l&&([o,s]=[s,o]);let u,c,d=r(o),f=r(s);const h=null==e?10:+e;let p=[];if(!(a%1)&&f-d<h){if(d=Math.floor(d),f=Math.ceil(f),o>0){for(;d<=f;++d)for(u=1;u<a;++u)if(c=d<0?u/i(-d):u*i(d),!(c<o)){if(c>s)break;p.push(c)}}else for(;d<=f;++d)for(u=a-1;u>=1;--u)if(c=d>0?u/i(-d):u*i(d),!(c<o)){if(c>s)break;p.push(c)}2*p.length<h&&(p=Jt(o,s,h))}else p=Jt(d,f,Math.min(f-d,h)).map(i);return l?p.reverse():p},t.tickFormat=(e,n)=>{if(null==e&&(e=10),null==n&&(n=10===a?"s":","),"function"!=typeof n&&(a%1||null!=(n=tn(n)).precision||(n.trim=!0),n=hn(n)),e===1/0)return n;const o=Math.max(1,a*e/t.ticks().length);return e=>{let t=e/i(Math.round(r(e)));return t*a<a-.5&&(t*=a),t<=o?n(e):""}},t.nice=()=>n(qd(n(),{floor:e=>i(Math.floor(r(e))),ceil:e=>i(Math.ceil(r(e)))})),t}function tf(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function nf(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function rf(e){return e<0?-e*e:e*e}function af(e){var t=e(Nd,Nd),n=1;return t.exponent=function(t){return arguments.length?1==(n=+t)?e(Nd,Nd):.5===n?e(nf,rf):e(tf(n),tf(1/n)):n},Gd(t)}function of(){var e=af(zd());return e.copy=function(){return Hd(e,of()).exponent(e.exponent())},Ud.apply(e,arguments),e}function sf(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function lf(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function uf(e){var t=1,n=e(sf(t),lf(t));return n.constant=function(n){return arguments.length?e(sf(t=+n),lf(t)):t},Gd(n)}function cf(e,t,n,r,i,a){const o=[[er,1,xn],[er,5,5e3],[er,15,15e3],[er,30,3e4],[a,1,En],[a,5,3e5],[a,15,9e5],[a,30,18e5],[i,1,Sn],[i,3,108e5],[i,6,216e5],[i,12,432e5],[r,1,An],[r,2,1728e5],[n,1,$n],[t,1,2592e6],[t,3,7776e6],[e,1,Tn]];function s(t,n,r){const i=Math.abs(n-t)/r,a=ir((([,,e])=>e)).right(o,i);if(a===o.length)return e.every(Zt(t/Tn,n/Tn,r));if(0===a)return tr.every(Math.max(Zt(t,n,r),1));const[s,l]=o[i/o[a-1][2]<o[a][2]/i?a-1:a];return s.every(l)}return[function(e,t,n){const r=t<e;r&&([e,t]=[t,e]);const i=n&&"function"==typeof n.range?n:s(e,t,n),a=i?i.range(e,+t+1):[];return r?a.reverse():a},s]}const[df,ff]=cf(qn,Kn,jn,Mn,Xn,Qn),[hf,pf]=cf(Gn,Yn,In,On,Jn,Zn);function mf(e){return new Date(e)}function gf(e){return e instanceof Date?+e:+new Date(+e)}function yf(e,t,n,r,i,a,o,s,l,u){var c=Pd(),d=c.invert,f=c.domain,h=u(".%L"),p=u(":%S"),m=u("%I:%M"),g=u("%I %p"),y=u("%a %d"),_=u("%b %d"),v=u("%B"),b=u("%Y");function x(e){return(l(e)<e?h:s(e)<e?p:o(e)<e?m:a(e)<e?g:r(e)<e?i(e)<e?y:_:n(e)<e?v:b)(e)}return c.invert=function(e){return new Date(d(e))},c.domain=function(e){return arguments.length?f(Array.from(e,gf)):f().map(mf)},c.ticks=function(t){var n=f();return e(n[0],n[n.length-1],null==t?10:t)},c.tickFormat=function(e,t){return null==t?x:u(t)},c.nice=function(e){var n=f();return e&&"function"==typeof e.range||(e=t(n[0],n[n.length-1],null==e?10:e)),e?f(qd(n,e)):c},c.copy=function(){return Hd(c,yf(e,t,n,r,i,a,o,s,l,u))},c}function _f(){var e,t,n,r,i,a=0,o=1,s=Nd,l=!1;function u(t){return null==t||isNaN(t=+t)?i:s(0===n?.5:(t=(r(t)-e)*n,l?Math.max(0,Math.min(1,t)):t))}function c(e){return function(t){var n,r;return arguments.length?([n,r]=t,s=e(n,r),u):[s(0),s(1)]}}return u.domain=function(i){return arguments.length?([a,o]=i,e=r(a=+a),t=r(o=+o),n=e===t?0:1/(t-e),u):[a,o]},u.clamp=function(e){return arguments.length?(l=!!e,u):l},u.interpolator=function(e){return arguments.length?(s=e,u):s},u.range=c(Cd),u.rangeRound=c(Rd),u.unknown=function(e){return arguments.length?(i=e,u):i},function(i){return r=i,e=i(a),t=i(o),n=e===t?0:1/(t-e),u}}function vf(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function bf(){var e=Gd(_f()(Nd));return e.copy=function(){return vf(e,bf())},Vd.apply(e,arguments)}function xf(){var e=af(_f());return e.copy=function(){return vf(e,xf()).exponent(e.exponent())},Vd.apply(e,arguments)}function Ef(e,t){void 0===t&&(t=e,e=Cd);for(var n=0,r=t.length-1,i=t[0],a=new Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return a[t](e-t)}}function Sf(){var e,t,n,r,i,a,o,s=0,l=.5,u=1,c=1,d=Nd,f=!1;function h(e){return isNaN(e=+e)?o:(e=.5+((e=+a(e))-t)*(c*e<c*t?r:i),d(f?Math.max(0,Math.min(1,e)):e))}function p(e){return function(t){var n,r,i;return arguments.length?([n,r,i]=t,d=Ef(e,[n,r,i]),h):[d(0),d(.5),d(1)]}}return h.domain=function(o){return arguments.length?([s,l,u]=o,e=a(s=+s),t=a(l=+l),n=a(u=+u),r=e===t?0:.5/(t-e),i=t===n?0:.5/(n-t),c=t<e?-1:1,h):[s,l,u]},h.clamp=function(e){return arguments.length?(f=!!e,h):f},h.interpolator=function(e){return arguments.length?(d=e,h):d},h.range=p(Cd),h.rangeRound=p(Rd),h.unknown=function(e){return arguments.length?(o=e,h):o},function(o){return a=o,e=o(s),t=o(l),n=o(u),r=e===t?0:.5/(t-e),i=t===n?0:.5/(n-t),c=t<e?-1:1,h}}function Af(){var e=af(Sf());return e.copy=function(){return vf(e,Af()).exponent(e.exponent())},Vd.apply(e,arguments)}class $f extends Map{constructor(e,t=wf){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const[t,n]of e)this.set(t,n)}get(e){return super.get(Of(this,e))}has(e){return super.has(Of(this,e))}set(e,t){return super.set(Df(this,e),t)}delete(e){return super.delete(Mf(this,e))}}class Tf extends Set{constructor(e,t=wf){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const t of e)this.add(t)}has(e){return super.has(Of(this,e))}add(e){return super.add(Df(this,e))}delete(e){return super.delete(Mf(this,e))}}function Of({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Df({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Mf({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function wf(e){return null!==e&&"object"==typeof e?e.valueOf():e}const If=Symbol("implicit");function Cf(){var e=new $f,t=[],n=[],r=If;function i(i){let a=e.get(i);if(void 0===a){if(r!==If)return r;e.set(i,a=t.push(i)-1)}return n[a%n.length]}return i.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new $f;for(const r of n)e.has(r)||e.set(r,t.push(r)-1);return i},i.range=function(e){return arguments.length?(n=Array.from(e),i):n.slice()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return Cf(t,n).unknown(r)},Ud.apply(i,arguments),i}function Rf(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function kf(e,t){var n=gd(+e,+t);return function(e){var t=n(e);return t-360*Math.floor(t/360)}}var Lf,Nf=180/Math.PI,Ff={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Bf(e,t,n,r,i,a){var o,s,l;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),e*r<t*n&&(e=-e,t=-t,l=-l,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*Nf,skewX:Math.atan(l)*Nf,scaleX:o,scaleY:s}}function jf(e,t,n,r){function i(e){return e.length?e.pop()+" ":""}return function(a,o){var s=[],l=[];return a=e(a),o=e(o),function(e,r,i,a,o,s){if(e!==i||r!==a){var l=o.push("translate(",null,t,null,n);s.push({i:l-4,x:Od(e,i)},{i:l-2,x:Od(r,a)})}else(i||a)&&o.push("translate("+i+t+a+n)}(a.translateX,a.translateY,o.translateX,o.translateY,s,l),function(e,t,n,a){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+"rotate(",null,r)-2,x:Od(e,t)})):t&&n.push(i(n)+"rotate("+t+r)}(a.rotate,o.rotate,s,l),function(e,t,n,a){e!==t?a.push({i:n.push(i(n)+"skewX(",null,r)-2,x:Od(e,t)}):t&&n.push(i(n)+"skewX("+t+r)}(a.skewX,o.skewX,s,l),function(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:Od(e,n)},{i:s-2,x:Od(t,r)})}else 1===n&&1===r||a.push(i(a)+"scale("+n+","+r+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,s,l),a=o=null,function(e){for(var t,n=-1,r=l.length;++n<r;)s[(t=l[n]).i]=t.x(e);return s.join("")}}}var Hf=jf((function(e){const t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Ff:Bf(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),zf=jf((function(e){return null==e?Ff:(Lf||(Lf=document.createElementNS("http://www.w3.org/2000/svg","g")),Lf.setAttribute("transform",e),(e=Lf.transform.baseVal.consolidate())?Bf((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):Ff)}),", ",")",")");function Pf(e){return((e=Math.exp(e))+1/e)/2}const Uf=function e(t,n,r){function i(e,i){var a,o,s=e[0],l=e[1],u=e[2],c=i[0],d=i[1],f=i[2],h=c-s,p=d-l,m=h*h+p*p;if(m<1e-12)o=Math.log(f/u)/t,a=function(e){return[s+e*h,l+e*p,u*Math.exp(t*e*o)]};else{var g=Math.sqrt(m),y=(f*f-u*u+r*m)/(2*u*n*g),_=(f*f-u*u-r*m)/(2*f*n*g),v=Math.log(Math.sqrt(y*y+1)-y),b=Math.log(Math.sqrt(_*_+1)-_);o=(b-v)/t,a=function(e){var r=e*o,i=Pf(v),a=u/(n*g)*(i*function(e){return((e=Math.exp(2*e))-1)/(e+1)}(t*r+v)-function(e){return((e=Math.exp(e))-1/e)/2}(v));return[s+a*h,l+a*p,u*i/Pf(t*r+v)]}}return a.duration=1e3*o*t/Math.SQRT2,a}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i}(Math.SQRT2,2,4);function Vf(e){return function(t,n){var r=e((t=od(t)).h,(n=od(n)).h),i=yd(t.s,n.s),a=yd(t.l,n.l),o=yd(t.opacity,n.opacity);return function(e){return t.h=r(e),t.s=i(e),t.l=a(e),t.opacity=o(e),t+""}}}const Wf=Vf(gd);var Gf=Vf(yd);const qf=Math.PI/180,Yf=180/Math.PI,Kf=.96422,Jf=1,Xf=.82521,Zf=4/29,Qf=6/29,eh=3*Qf*Qf,th=.008856451679035631;function nh(e){if(e instanceof ih)return new ih(e.l,e.a,e.b,e.opacity);if(e instanceof ch)return dh(e);e instanceof Zc||(e=Jc(e));var t,n,r=lh(e.r),i=lh(e.g),a=lh(e.b),o=ah((.2225045*r+.7168786*i+.0606169*a)/Jf);return r===i&&i===a?t=n=o:(t=ah((.4360747*r+.3850649*i+.1430804*a)/Kf),n=ah((.0139322*r+.0971045*i+.7141733*a)/Xf)),new ih(116*o-16,500*(t-o),200*(o-n),e.opacity)}function rh(e,t,n,r){return 1===arguments.length?nh(e):new ih(e,t,n,null==r?1:r)}function ih(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function ah(e){return e>th?Math.pow(e,1/3):e/eh+Zf}function oh(e){return e>Qf?e*e*e:eh*(e-Zf)}function sh(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function lh(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function uh(e,t,n,r){return 1===arguments.length?function(e){if(e instanceof ch)return new ch(e.h,e.c,e.l,e.opacity);if(e instanceof ih||(e=nh(e)),0===e.a&&0===e.b)return new ch(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*Yf;return new ch(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}(e):new ch(e,t,n,null==r?1:r)}function ch(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function dh(e){if(isNaN(e.h))return new ih(e.l,0,0,e.opacity);var t=e.h*qf;return new ih(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}function fh(e,t){var n=yd((e=rh(e)).l,(t=rh(t)).l),r=yd(e.a,t.a),i=yd(e.b,t.b),a=yd(e.opacity,t.opacity);return function(t){return e.l=n(t),e.a=r(t),e.b=i(t),e.opacity=a(t),e+""}}function hh(e){return function(t,n){var r=e((t=uh(t)).h,(n=uh(n)).h),i=yd(t.c,n.c),a=yd(t.l,n.l),o=yd(t.opacity,n.opacity);return function(e){return t.h=r(e),t.c=i(e),t.l=a(e),t.opacity=o(e),t+""}}}Mc(ih,rh,wc(Ic,{brighter(e){return new ih(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new ih(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new Zc(sh(3.1338561*(t=Kf*oh(t))-1.6168667*(e=Jf*oh(e))-.4906146*(n=Xf*oh(n))),sh(-.9787684*t+1.9161415*e+.033454*n),sh(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),Mc(ch,uh,wc(Ic,{brighter(e){return new ch(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new ch(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return dh(this).rgb()}}));const ph=hh(gd);var mh=hh(yd),gh=-.14861,yh=1.78277,_h=-.29227,vh=-.90649,bh=1.97294,xh=bh*vh,Eh=bh*yh,Sh=yh*_h-vh*gh;function Ah(e,t,n,r){return 1===arguments.length?function(e){if(e instanceof $h)return new $h(e.h,e.s,e.l,e.opacity);e instanceof Zc||(e=Jc(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(Sh*r+xh*t-Eh*n)/(Sh+xh-Eh),a=r-i,o=(bh*(n-i)-_h*a)/vh,s=Math.sqrt(o*o+a*a)/(bh*i*(1-i)),l=s?Math.atan2(o,a)*Yf-120:NaN;return new $h(l<0?l+360:l,s,i,e.opacity)}(e):new $h(e,t,n,null==r?1:r)}function $h(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function Th(e){return function t(n){function r(t,r){var i=e((t=Ah(t)).h,(r=Ah(r)).h),a=yd(t.s,r.s),o=yd(t.l,r.l),s=yd(t.opacity,r.opacity);return function(e){return t.h=i(e),t.s=a(e),t.l=o(Math.pow(e,n)),t.opacity=s(e),t+""}}return n=+n,r.gamma=t,r}(1)}Mc($h,Ah,wc(Ic,{brighter(e){return e=null==e?Rc:Math.pow(Rc,e),new $h(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Cc:Math.pow(Cc,e),new $h(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*qf,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new Zc(255*(t+n*(gh*r+yh*i)),255*(t+n*(_h*r+vh*i)),255*(t+n*(bh*r)),this.opacity)}}));const Oh=Th(gd);var Dh=Th(yd);function Mh(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}function wh(e){for(var t=e.length/6|0,n=new Array(t),r=0;r<t;)n[r]="#"+e.slice(6*r,6*++r);return n}const Ih=wh("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Ch=wh("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Rh=wh("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),kh=wh("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),Lh=wh("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),Nh=wh("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),Fh=wh("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),Bh=wh("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),jh=wh("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),Hh=wh("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function zh(e,t,n){const r=e-t+2*n;return e?r>0?r:1:0}const Ph="linear",Uh="log",Vh="pow",Wh="sqrt",Gh="symlog",qh="time",Yh="utc",Kh="sequential",Jh="diverging",Xh="quantile",Zh="quantize",Qh="threshold",ep="ordinal",tp="point",np="band",rp="bin-ordinal",ip="continuous",ap="discrete",op="discretizing",sp="interpolating",lp="temporal";function up(){const e=Cf().unknown(void 0),t=e.domain,n=e.range;let r,i,a=[0,1],o=!1,s=0,l=0,u=.5;function c(){const e=t().length,c=a[1]<a[0],d=a[1-c],f=zh(e,s,l);let h=a[c-0];r=(d-h)/(f||1),o&&(r=Math.floor(r)),h+=(d-h-r*(e-s))*u,i=r*(1-s),o&&(h=Math.round(h),i=Math.round(i));const p=Fs(e).map((e=>h+r*e));return n(c?p.reverse():p)}return delete e.unknown,e.domain=function(e){return arguments.length?(t(e),c()):t()},e.range=function(e){return arguments.length?(a=[+e[0],+e[1]],c()):a.slice()},e.rangeRound=function(e){return a=[+e[0],+e[1]],o=!0,c()},e.bandwidth=function(){return i},e.step=function(){return r},e.round=function(e){return arguments.length?(o=!!e,c()):o},e.padding=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),s=l,c()):s},e.paddingInner=function(e){return arguments.length?(s=Math.max(0,Math.min(1,e)),c()):s},e.paddingOuter=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),c()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),c()):u},e.invertRange=function(e){if(null==e[0]||null==e[1])return;const r=a[1]<a[0],o=r?n().reverse():n(),s=o.length-1;let l,u,c,d=+e[0],f=+e[1];return d!=d||f!=f||(f<d&&(c=d,d=f,f=c),f<o[0]||d>a[1-r])?void 0:(l=Math.max(0,Tc(o,d)-1),u=d===f?l:Tc(o,f)-1,d-o[l]>i+1e-10&&++l,r&&(c=l,l=s-u,u=s-c),l>u?void 0:t().slice(l,u+1))},e.invert=function(t){const n=e.invertRange([t,t]);return n?n[0]:n},e.copy=function(){return up().domain(t()).range(a).round(o).paddingInner(s).paddingOuter(l).align(u)},c()}function cp(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return cp(t())},e}var dp=Array.prototype.map;const fp=Array.prototype.slice,hp=new Map,pp=Symbol("vega_scale");function mp(e){return e[pp]=!0,e}function gp(e){return e&&!0===e[pp]}function yp(e,t,n){return arguments.length>1?(hp.set(e,function(e,t,n){const r=function(){const n=t();return n.invertRange||(n.invertRange=n.invert?function(e){return function(t){let n,r=t[0],i=t[1];return i<r&&(n=r,r=i,i=n),[e.invert(r),e.invert(i)]}}(n):n.invertExtent?function(e){return function(t){const n=e.range();let r,i,a,o,s=t[0],l=t[1],u=-1;for(l<s&&(i=s,s=l,l=i),a=0,o=n.length;a<o;++a)n[a]>=s&&n[a]<=l&&(u<0&&(u=a),r=a);if(!(u<0))return s=e.invertExtent(n[u]),l=e.invertExtent(n[r]),[void 0===s[0]?s[1]:s[0],void 0===l[1]?l[0]:l[1]]}}(n):void 0),n.type=e,mp(n)};return r.metadata=Dt(Qe(n)),r}(e,t,n)),this):_p(e)?hp.get(e):void 0}function _p(e){return hp.has(e)}function vp(e,t){const n=hp.get(e);return n&&n.metadata[t]}function bp(e){return vp(e,ip)}function xp(e){return vp(e,ap)}function Ep(e){return vp(e,op)}function Sp(e){return vp(e,Uh)}function Ap(e){return vp(e,sp)}function $p(e){return vp(e,Xh)}yp("identity",(function e(t){var n;function r(e){return null==e||isNaN(e=+e)?n:e}return r.invert=r,r.domain=r.range=function(e){return arguments.length?(t=Array.from(e,kd),r):t.slice()},r.unknown=function(e){return arguments.length?(n=e,r):n},r.copy=function(){return e(t).unknown(n)},t=arguments.length?Array.from(t,kd):[0,1],Gd(r)})),yp(Ph,(function e(){var t=Pd();return t.copy=function(){return Hd(t,e())},Ud.apply(t,arguments),Gd(t)}),ip),yp(Uh,(function e(){const t=ef(zd()).domain([1,10]);return t.copy=()=>Hd(t,e()).base(t.base()),Ud.apply(t,arguments),t}),[ip,Uh]),yp(Vh,of,ip),yp(Wh,(function(){return of.apply(null,arguments).exponent(.5)}),ip),yp(Gh,(function e(){var t=uf(zd());return t.copy=function(){return Hd(t,e()).constant(t.constant())},Ud.apply(t,arguments)}),ip),yp(qh,(function(){return Ud.apply(yf(hf,pf,Gn,Yn,In,On,Jn,Zn,er,ai).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}),[ip,lp]),yp(Yh,(function(){return Ud.apply(yf(df,ff,qn,Kn,jn,Dn,Xn,Qn,er,si).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}),[ip,lp]),yp(Kh,bf,[ip,sp]),yp(`${Kh}-${Ph}`,bf,[ip,sp]),yp(`${Kh}-${Uh}`,(function e(){var t=ef(_f()).domain([1,10]);return t.copy=function(){return vf(t,e()).base(t.base())},Vd.apply(t,arguments)}),[ip,sp,Uh]),yp(`${Kh}-${Vh}`,xf,[ip,sp]),yp(`${Kh}-${Wh}`,(function(){return xf.apply(null,arguments).exponent(.5)}),[ip,sp]),yp(`${Kh}-${Gh}`,(function e(){var t=uf(_f());return t.copy=function(){return vf(t,e()).constant(t.constant())},Vd.apply(t,arguments)}),[ip,sp]),yp(`${Jh}-${Ph}`,(function e(){var t=Gd(Sf()(Nd));return t.copy=function(){return vf(t,e())},Vd.apply(t,arguments)}),[ip,sp]),yp(`${Jh}-${Uh}`,(function e(){var t=ef(Sf()).domain([.1,1,10]);return t.copy=function(){return vf(t,e()).base(t.base())},Vd.apply(t,arguments)}),[ip,sp,Uh]),yp(`${Jh}-${Vh}`,Af,[ip,sp]),yp(`${Jh}-${Wh}`,(function(){return Af.apply(null,arguments).exponent(.5)}),[ip,sp]),yp(`${Jh}-${Gh}`,(function e(){var t=uf(Sf());return t.copy=function(){return vf(t,e()).constant(t.constant())},Vd.apply(t,arguments)}),[ip,sp]),yp(Xh,(function e(){var t,n=[],r=[],i=[];function a(){var e=0,t=Math.max(1,r.length);for(i=new Array(t-1);++e<t;)i[e-1]=Qo(n,e/t);return o}function o(e){return null==e||isNaN(e=+e)?t:r[Dc(i,e)]}return o.invertExtent=function(e){var t=r.indexOf(e);return t<0?[NaN,NaN]:[t>0?i[t-1]:n[0],t<i.length?i[t]:n[n.length-1]]},o.domain=function(e){if(!arguments.length)return n.slice();n=[];for(let t of e)null==t||isNaN(t=+t)||n.push(t);return n.sort(nr),a()},o.range=function(e){return arguments.length?(r=Array.from(e),a()):r.slice()},o.unknown=function(e){return arguments.length?(t=e,o):t},o.quantiles=function(){return i.slice()},o.copy=function(){return e().domain(n).range(r).unknown(t)},Ud.apply(o,arguments)}),[op,Xh]),yp(Zh,(function e(){var t,n=0,r=1,i=1,a=[.5],o=[0,1];function s(e){return null!=e&&e<=e?o[Dc(a,e,0,i)]:t}function l(){var e=-1;for(a=new Array(i);++e<i;)a[e]=((e+1)*r-(e-i)*n)/(i+1);return s}return s.domain=function(e){return arguments.length?([n,r]=e,n=+n,r=+r,l()):[n,r]},s.range=function(e){return arguments.length?(i=(o=Array.from(e)).length-1,l()):o.slice()},s.invertExtent=function(e){var t=o.indexOf(e);return t<0?[NaN,NaN]:t<1?[n,a[0]]:t>=i?[a[i-1],r]:[a[t-1],a[t]]},s.unknown=function(e){return arguments.length?(t=e,s):s},s.thresholds=function(){return a.slice()},s.copy=function(){return e().domain([n,r]).range(o).unknown(t)},Ud.apply(Gd(s),arguments)}),op),yp(Qh,(function e(){var t,n=[.5],r=[0,1],i=1;function a(e){return null!=e&&e<=e?r[Dc(n,e,0,i)]:t}return a.domain=function(e){return arguments.length?(n=Array.from(e),i=Math.min(n.length,r.length-1),a):n.slice()},a.range=function(e){return arguments.length?(r=Array.from(e),i=Math.min(n.length,r.length-1),a):r.slice()},a.invertExtent=function(e){var t=r.indexOf(e);return[n[t-1],n[t]]},a.unknown=function(e){return arguments.length?(t=e,a):t},a.copy=function(){return e().domain(n).range(r).unknown(t)},Ud.apply(a,arguments)}),op),yp(rp,(function e(){let t=[],n=[];function r(e){return null==e||e!=e?void 0:n[(Dc(t,e)-1)%n.length]}return r.domain=function(e){return arguments.length?(t=function(e){return dp.call(e,ze)}(e),r):t.slice()},r.range=function(e){return arguments.length?(n=fp.call(e),r):n.slice()},r.tickFormat=function(e,n){return Wd(t[0],He(t),null==e?10:e,n)},r.copy=function(){return e().domain(r.domain()).range(r.range())},r}),[ap,op]),yp(ep,Cf,ap),yp(np,up,ap),yp(tp,(function(){return cp(up().paddingInner(1))}),ap);const Tp=["clamp","base","constant","exponent"];function Op(e,t,n){return Ef(Mp(t||"rgb",n),e)}function Dp(e,t,n){const r=n-t;let i,a,o;return r&&Number.isFinite(r)?(i=(a=e.type).indexOf("-"),a=i<0?a:a.slice(i+1),o=yp(a)().domain([t,n]).range([0,1]),Tp.forEach((t=>e[t]?o[t](e[t]()):0)),o):st(.5)}function Mp(e,n){const r=t[function(e){return"interpolate"+e.toLowerCase().split("-").map((e=>e[0].toUpperCase()+e.slice(1))).join("")}(e)];return null!=n&&r&&r.gamma?r.gamma(n):r}function wp(e){if(Le(e))return e;const t=e.length/6|0,n=new Array(t);for(let r=0;r<t;)n[r]="#"+e.slice(6*r,6*++r);return n}function Ip(e,t){for(const n in e)Rp(n,t(e[n]))}const Cp={};function Rp(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Cp[e]=t,this):Cp[e]}Ip({accent:Ih,category10:Ch,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:Rh,observable10:kh,paired:Lh,pastel1:Nh,pastel2:Fh,set1:Bh,set2:jh,set3:Hh,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"},wp),Ip({blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},(e=>Op(wp(e))));const kp="symbol",Lp="discrete",Np=e=>Le(e)?e.map((e=>String(e))):String(e),Fp=(e,t)=>e[1]-t[1],Bp=(e,t)=>t[1]-e[1];function jp(e,t,n){let r;return yt(t)&&(e.bins&&(t=Math.max(t,e.bins.length)),null!=n&&(t=Math.min(t,Math.floor(Et(e.domain())/n||1)+1))),Ne(t)&&(r=t.step,t=t.interval),vt(t)&&(t=e.type===qh?zr(t):e.type==Yh?Pr(t):_e("Only time and utc scales accept interval strings."),r&&(t=t.every(r))),t}function Hp(e,t,n){let r=e.range(),i=r[0],a=He(r),o=Fp;if(i>a&&(r=a,a=i,i=r,o=Bp),i=Math.floor(i),a=Math.ceil(a),t=t.map((t=>[t,e(t)])).filter((e=>i<=e[1]&&e[1]<=a)).sort(o).map((e=>e[0])),n>0&&t.length>1){const e=[t[0],He(t)];for(;t.length>n&&t.length>=3;)t=t.filter(((e,t)=>!(t%2)));t.length<3&&(t=e)}return t}function zp(e,t){return e.bins?Hp(e,e.bins,t):e.ticks?e.ticks(t):e.domain()}function Pp(e,t,n,r,i,a){const o=t.type;let s=Np;if(o===qh||i===qh)s=e.timeFormat(r);else if(o===Yh||i===Yh)s=e.utcFormat(r);else if(Sp(o)){const i=e.formatFloat(r);if(a||t.bins)s=i;else{const e=Up(t,n,!1);s=t=>e(t)?i(t):""}}else if(t.tickFormat){const i=t.domain();s=e.formatSpan(i[0],i[i.length-1],n,r)}else r&&(s=e.format(r));return s}function Up(e,t,n){const r=zp(e,t),i=e.base(),a=Math.log(i),o=Math.max(1,i*t/r.length),s=e=>{let t=e/Math.pow(i,Math.round(Math.log(e)/a));return t*i<i-.5&&(t*=i),t<=o};return n?r.filter(s):s}const Vp={[Xh]:"quantiles",[Zh]:"thresholds",[Qh]:"domain"},Wp={[Xh]:"quantiles",[Zh]:"domain"};function Gp(e,t){return e.bins?function(e){const t=e.slice(0,-1);return t.max=He(e),t}(e.bins):e.type===Uh?Up(e,t,!0):Vp[e.type]?function(e){const t=[-1/0].concat(e);return t.max=1/0,t}(e[Vp[e.type]]()):zp(e,t)}const qp=e=>Vp[e.type]||e.bins;function Yp(e,t,n,r,i,a,o){const s=Wp[t.type]&&a!==qh&&a!==Yh?function(e,t,n){const r=t[Wp[t.type]](),i=r.length;let a,o=i>1?r[1]-r[0]:r[0];for(a=1;a<i;++a)o=Math.min(o,r[a]-r[a-1]);return e.formatSpan(0,o,30,n)}(e,t,i):Pp(e,t,n,i,a,o);return r===kp&&qp(t)?Kp(s):r===Lp?Xp(s):Zp(s)}const Kp=e=>(t,n,r)=>{const i=Jp(r[n+1],Jp(r.max,1/0)),a=Qp(t,e),o=Qp(i,e);return a&&o?a+" – "+o:o?"< "+o:"≥ "+a},Jp=(e,t)=>null!=e?e:t,Xp=e=>(t,n)=>n?e(t):null,Zp=e=>t=>e(t),Qp=(e,t)=>Number.isFinite(e)?t(e):null;function em(e,t,n){n=n||{};const r=Math.max(3,n.maxlen||7),i=function(e,t,n,r){const i=r||t.type;return vt(n)&&function(e){return vp(e,lp)}(i)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),n||i!==qh?n||i!==Yh?Yp(e,t,5,null,n,r,!0):e.utcFormat("%A, %d %B %Y, %X UTC"):e.timeFormat("%A, %d %B %Y, %X")}(e,t,n.format,n.formatType);if(Ep(t.type)){const e=Gp(t).slice(1).map(i),n=e.length;return`${n} boundar${1===n?"y":"ies"}: ${e.join(", ")}`}if(xp(t.type)){const e=t.domain(),n=e.length;return`${n} value${1===n?"":"s"}: ${n>r?e.slice(0,r-2).map(i).join(", ")+", ending with "+e.slice(-1).map(i):e.map(i).join(", ")}`}{const e=t.domain();return`values from ${i(e[0])} to ${i(He(e))}`}}let tm=0;const nm="p_";function rm(e){return e&&e.gradient}function im(e,t,n){const r=e.gradient;let i=e.id,a="radial"===r?nm:"";return i||(i=e.id="gradient_"+tm++,"radial"===r?(e.x1=am(e.x1,.5),e.y1=am(e.y1,.5),e.r1=am(e.r1,0),e.x2=am(e.x2,.5),e.y2=am(e.y2,.5),e.r2=am(e.r2,.5),a=nm):(e.x1=am(e.x1,0),e.y1=am(e.y1,0),e.x2=am(e.x2,1),e.y2=am(e.y2,0))),t[i]=e,"url("+(n||"")+"#"+a+i+")"}function am(e,t){return null!=e?e:t}const om={basis:{curve:function(e){return new du(e)}},"basis-closed":{curve:function(e){return new hu(e)}},"basis-open":{curve:function(e){return new pu(e)}},bundle:{curve:gu,tension:"beta",value:.85},cardinal:{curve:vu,tension:"tension",value:0},"cardinal-open":{curve:xu,tension:"tension",value:0},"cardinal-closed":{curve:Su,tension:"tension",value:0},"catmull-rom":{curve:Bu,tension:"alpha",value:.5},"catmull-rom-closed":{curve:Hu,tension:"alpha",value:.5},"catmull-rom-open":{curve:Pu,tension:"alpha",value:.5},linear:{curve:Vu},"linear-closed":{curve:function(e){return new Wu(e)}},monotone:{horizontal:function(e){return new Xu(e)},vertical:function(e){return new Ju(e)}},natural:{curve:function(e){return new Qu(e)}},step:{curve:function(e){return new tc(e,.5)}},"step-after":{curve:function(e){return new tc(e,1)}},"step-before":{curve:function(e){return new tc(e,0)}}};function sm(e,t,n){var r=dt(om,e)&&om[e],i=null;return r&&(i=r.curve||r[t||"vertical"],r.tension&&null!=n&&(i=i[r.tension](n))),i}const lm={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},um=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,cm=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,dm=/^((\s+,?\s*)|(,\s*))/,fm=/^[01]/;function hm(e){const t=[];return(e.match(um)||[]).forEach((e=>{let n=e[0];const r=n.toLowerCase(),i=lm[r],a=function(e,t,n){const r=[];for(let i=0;t&&i<n.length;)for(let a=0;a<t;++a){const t="a"!==e||3!==a&&4!==a?cm:fm,o=n.slice(i).match(t);if(null===o)throw Error("Invalid SVG path, incorrect parameter type");i+=o[0].length,r.push(+o[0]);const s=n.slice(i).match(dm);null!==s&&(i+=s[0].length)}return r}(r,i,e.slice(1).trim()),o=a.length;if(o<i||o&&o%i!=0)throw Error("Invalid SVG path, incorrect parameter count");if(t.push([n,...a.slice(0,i)]),o!==i){"m"===r&&(n="M"===n?"L":"l");for(let e=i;e<o;e+=i)t.push([n,...a.slice(e,e+i)])}})),t}const pm=Math.PI/180,mm=Math.PI/2,gm=2*Math.PI,ym=Math.sqrt(3)/2;var _m={},vm={},bm=[].join;function xm(e){const t=bm.call(e);if(vm[t])return vm[t];var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],u=e[7];const c=u*o,d=-l*s,f=l*o,h=u*s,p=Math.cos(i),m=Math.sin(i),g=Math.cos(a),y=Math.sin(a),_=.5*(a-i),v=Math.sin(.5*_),b=8/3*v*v/Math.sin(_),x=n+p-b*m,E=r+m+b*p,S=n+g,A=r+y,$=S+b*y,T=A-b*g;return vm[t]=[c*x+d*E,f*x+h*E,c*$+d*T,f*$+h*T,c*S+d*A,f*S+h*A]}const Em=["l",0,0,0,0,0,0,0];function Sm(e,t,n){const r=Em[0]=e[0];if("a"===r||"A"===r)Em[1]=t*e[1],Em[2]=n*e[2],Em[3]=e[3],Em[4]=e[4],Em[5]=e[5],Em[6]=t*e[6],Em[7]=n*e[7];else if("h"===r||"H"===r)Em[1]=t*e[1];else if("v"===r||"V"===r)Em[1]=n*e[1];else for(var i=1,a=e.length;i<a;++i)Em[i]=(i%2==1?t:n)*e[i];return Em}function Am(e,t,n,r,i,a){var o,s,l,u,c,d=null,f=0,h=0,p=0,m=0,g=0,y=0;null==n&&(n=0),null==r&&(r=0),null==i&&(i=1),null==a&&(a=i),e.beginPath&&e.beginPath();for(var _=0,v=t.length;_<v;++_){switch(o=t[_],1===i&&1===a||(o=Sm(o,i,a)),o[0]){case"l":f+=o[1],h+=o[2],e.lineTo(f+n,h+r);break;case"L":f=o[1],h=o[2],e.lineTo(f+n,h+r);break;case"h":f+=o[1],e.lineTo(f+n,h+r);break;case"H":f=o[1],e.lineTo(f+n,h+r);break;case"v":h+=o[1],e.lineTo(f+n,h+r);break;case"V":h=o[1],e.lineTo(f+n,h+r);break;case"m":g=f+=o[1],y=h+=o[2],e.moveTo(f+n,h+r);break;case"M":g=f=o[1],y=h=o[2],e.moveTo(f+n,h+r);break;case"c":s=f+o[5],l=h+o[6],p=f+o[3],m=h+o[4],e.bezierCurveTo(f+o[1]+n,h+o[2]+r,p+n,m+r,s+n,l+r),f=s,h=l;break;case"C":f=o[5],h=o[6],p=o[3],m=o[4],e.bezierCurveTo(o[1]+n,o[2]+r,p+n,m+r,f+n,h+r);break;case"s":s=f+o[3],l=h+o[4],p=2*f-p,m=2*h-m,e.bezierCurveTo(p+n,m+r,f+o[1]+n,h+o[2]+r,s+n,l+r),p=f+o[1],m=h+o[2],f=s,h=l;break;case"S":s=o[3],l=o[4],p=2*f-p,m=2*h-m,e.bezierCurveTo(p+n,m+r,o[1]+n,o[2]+r,s+n,l+r),f=s,h=l,p=o[1],m=o[2];break;case"q":s=f+o[3],l=h+o[4],p=f+o[1],m=h+o[2],e.quadraticCurveTo(p+n,m+r,s+n,l+r),f=s,h=l;break;case"Q":s=o[3],l=o[4],e.quadraticCurveTo(o[1]+n,o[2]+r,s+n,l+r),f=s,h=l,p=o[1],m=o[2];break;case"t":s=f+o[1],l=h+o[2],null===d[0].match(/[QqTt]/)?(p=f,m=h):"t"===d[0]?(p=2*f-u,m=2*h-c):"q"===d[0]&&(p=2*f-p,m=2*h-m),u=p,c=m,e.quadraticCurveTo(p+n,m+r,s+n,l+r),h=l,p=(f=s)+o[1],m=h+o[2];break;case"T":s=o[1],l=o[2],p=2*f-p,m=2*h-m,e.quadraticCurveTo(p+n,m+r,s+n,l+r),f=s,h=l;break;case"a":$m(e,f+n,h+r,[o[1],o[2],o[3],o[4],o[5],o[6]+f+n,o[7]+h+r]),f+=o[6],h+=o[7];break;case"A":$m(e,f+n,h+r,[o[1],o[2],o[3],o[4],o[5],o[6]+n,o[7]+r]),f=o[6],h=o[7];break;case"z":case"Z":f=g,h=y,e.closePath()}d=o}}function $m(e,t,n,r){const i=function(e,t,n,r,i,a,o,s,l){const u=bm.call(arguments);if(_m[u])return _m[u];const c=o*pm,d=Math.sin(c),f=Math.cos(c),h=f*(s-e)*.5+d*(l-t)*.5,p=f*(l-t)*.5-d*(s-e)*.5;let m=h*h/((n=Math.abs(n))*n)+p*p/((r=Math.abs(r))*r);m>1&&(m=Math.sqrt(m),n*=m,r*=m);const g=f/n,y=d/n,_=-d/r,v=f/r,b=g*s+y*l,x=_*s+v*l,E=g*e+y*t,S=_*e+v*t;let A=1/((E-b)*(E-b)+(S-x)*(S-x))-.25;A<0&&(A=0);let $=Math.sqrt(A);a==i&&($=-$);const T=.5*(b+E)-$*(S-x),O=.5*(x+S)+$*(E-b),D=Math.atan2(x-O,b-T);let M=Math.atan2(S-O,E-T)-D;M<0&&1===a?M+=gm:M>0&&0===a&&(M-=gm);const w=Math.ceil(Math.abs(M/(mm+.001))),I=[];for(let e=0;e<w;++e){const t=D+e*M/w,i=D+(e+1)*M/w;I[e]=[T,O,t,i,n,r,d,f]}return _m[u]=I}(r[5],r[6],r[0],r[1],r[3],r[4],r[2],t,n);for(let t=0;t<i.length;++t){const n=xm(i[t]);e.bezierCurveTo(n[0],n[1],n[2],n[3],n[4],n[5])}}const Tm=.5773502691896257,Om={circle:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(n,0),e.arc(0,0,n,0,gm)}},cross:{draw:function(e,t){var n=Math.sqrt(t)/2,r=n/2.5;e.moveTo(-n,-r),e.lineTo(-n,r),e.lineTo(-r,r),e.lineTo(-r,n),e.lineTo(r,n),e.lineTo(r,r),e.lineTo(n,r),e.lineTo(n,-r),e.lineTo(r,-r),e.lineTo(r,-n),e.lineTo(-r,-n),e.lineTo(-r,-r),e.closePath()}},diamond:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(0,-n),e.lineTo(n,0),e.lineTo(0,n),e.closePath()}},square:{draw:function(e,t){var n=Math.sqrt(t),r=-n/2;e.rect(r,r,n,n)}},arrow:{draw:function(e,t){var n=Math.sqrt(t)/2,r=n/7,i=n/2.5,a=n/8;e.moveTo(-r,n),e.lineTo(r,n),e.lineTo(r,-a),e.lineTo(i,-a),e.lineTo(0,-n),e.lineTo(-i,-a),e.lineTo(-r,-a),e.closePath()}},wedge:{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n,i=r-n*Tm,a=n/4;e.moveTo(0,-r-i),e.lineTo(-a,r-i),e.lineTo(a,r-i),e.closePath()}},triangle:{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n,i=r-n*Tm;e.moveTo(0,-r-i),e.lineTo(-n,r-i),e.lineTo(n,r-i),e.closePath()}},"triangle-up":{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n;e.moveTo(0,-r),e.lineTo(-n,r),e.lineTo(n,r),e.closePath()}},"triangle-down":{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n;e.moveTo(0,r),e.lineTo(-n,-r),e.lineTo(n,-r),e.closePath()}},"triangle-right":{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n;e.moveTo(r,0),e.lineTo(-r,-n),e.lineTo(-r,n),e.closePath()}},"triangle-left":{draw:function(e,t){var n=Math.sqrt(t)/2,r=ym*n;e.moveTo(-r,0),e.lineTo(r,-n),e.lineTo(r,n),e.closePath()}},stroke:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(-n,0),e.lineTo(n,0)}}};var Dm={};const Mm=.448084975506;function wm(e){return e.x}function Im(e){return e.y}function Cm(e){return e.width}function Rm(e){return e.height}function km(e){return"function"==typeof e?e:()=>+e}function Lm(e,t,n){return Math.max(t,Math.min(e,n))}function Nm(e,t){return null!=e?e:t}const Fm=e=>e.x||0,Bm=e=>e.y||0,jm=e=>!(!1===e.defined),Hm=function(){var e=dc,t=fc,n=nc(0),r=null,i=hc,a=pc,o=mc,s=null,l=cc(u);function u(){var u,c,d=+e.apply(this,arguments),f=+t.apply(this,arguments),h=i.apply(this,arguments)-Ru,p=a.apply(this,arguments)-Ru,m=Au(p-h),g=p>h;if(s||(s=u=l()),f<d&&(c=f,f=d,d=c),f>Iu)if(m>ku-Iu)s.moveTo(f*Tu(h),f*Mu(h)),s.arc(0,0,f,h,p,!g),d>Iu&&(s.moveTo(d*Tu(p),d*Mu(p)),s.arc(0,0,d,p,h,g));else{var y,_,v=h,b=p,x=h,E=p,S=m,A=m,$=o.apply(this,arguments)/2,T=$>Iu&&(r?+r.apply(this,arguments):wu(d*d+f*f)),O=Du(Au(f-d)/2,+n.apply(this,arguments)),D=O,M=O;if(T>Iu){var w=Lu(T/d*Mu($)),I=Lu(T/f*Mu($));(S-=2*w)>Iu?(x+=w*=g?1:-1,E-=w):(S=0,x=E=(h+p)/2),(A-=2*I)>Iu?(v+=I*=g?1:-1,b-=I):(A=0,v=b=(h+p)/2)}var C=f*Tu(v),R=f*Mu(v),k=d*Tu(E),L=d*Mu(E);if(O>Iu){var N,F=f*Tu(b),B=f*Mu(b),j=d*Tu(x),H=d*Mu(x);if(m<Cu)if(N=function(e,t,n,r,i,a,o,s){var l=n-e,u=r-t,c=o-i,d=s-a,f=d*l-c*u;if(!(f*f<Iu))return[e+(f=(c*(t-a)-d*(e-i))/f)*l,t+f*u]}(C,R,j,H,F,B,k,L)){var z=C-N[0],P=R-N[1],U=F-N[0],V=B-N[1],W=1/Mu(function(e){return e>1?0:e<-1?Cu:Math.acos(e)}((z*U+P*V)/(wu(z*z+P*P)*wu(U*U+V*V)))/2),G=wu(N[0]*N[0]+N[1]*N[1]);D=Du(O,(d-G)/(W-1)),M=Du(O,(f-G)/(W+1))}else D=M=0}A>Iu?M>Iu?(y=gc(j,H,C,R,f,M,g),_=gc(F,B,k,L,f,M,g),s.moveTo(y.cx+y.x01,y.cy+y.y01),M<O?s.arc(y.cx,y.cy,M,$u(y.y01,y.x01),$u(_.y01,_.x01),!g):(s.arc(y.cx,y.cy,M,$u(y.y01,y.x01),$u(y.y11,y.x11),!g),s.arc(0,0,f,$u(y.cy+y.y11,y.cx+y.x11),$u(_.cy+_.y11,_.cx+_.x11),!g),s.arc(_.cx,_.cy,M,$u(_.y11,_.x11),$u(_.y01,_.x01),!g))):(s.moveTo(C,R),s.arc(0,0,f,v,b,!g)):s.moveTo(C,R),d>Iu&&S>Iu?D>Iu?(y=gc(k,L,F,B,d,-D,g),_=gc(C,R,j,H,d,-D,g),s.lineTo(y.cx+y.x01,y.cy+y.y01),D<O?s.arc(y.cx,y.cy,D,$u(y.y01,y.x01),$u(_.y01,_.x01),!g):(s.arc(y.cx,y.cy,D,$u(y.y01,y.x01),$u(y.y11,y.x11),!g),s.arc(0,0,d,$u(y.cy+y.y11,y.cx+y.x11),$u(_.cy+_.y11,_.cx+_.x11),g),s.arc(_.cx,_.cy,D,$u(_.y11,_.x11),$u(_.y01,_.x01),!g))):s.arc(0,0,d,E,x,g):s.lineTo(k,L)}else s.moveTo(0,0);if(s.closePath(),u)return s=null,u+""||null}return u.centroid=function(){var n=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,r=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-Cu/2;return[Tu(r)*n,Mu(r)*n]},u.innerRadius=function(t){return arguments.length?(e="function"==typeof t?t:nc(+t),u):e},u.outerRadius=function(e){return arguments.length?(t="function"==typeof e?e:nc(+e),u):t},u.cornerRadius=function(e){return arguments.length?(n="function"==typeof e?e:nc(+e),u):n},u.padRadius=function(e){return arguments.length?(r=null==e?null:"function"==typeof e?e:nc(+e),u):r},u.startAngle=function(e){return arguments.length?(i="function"==typeof e?e:nc(+e),u):i},u.endAngle=function(e){return arguments.length?(a="function"==typeof e?e:nc(+e),u):a},u.padAngle=function(e){return arguments.length?(o="function"==typeof e?e:nc(+e),u):o},u.context=function(e){return arguments.length?(s=null==e?null:e,u):s},u}().startAngle((e=>e.startAngle||0)).endAngle((e=>e.endAngle||0)).padAngle((e=>e.padAngle||0)).innerRadius((e=>e.innerRadius||0)).outerRadius((e=>e.outerRadius||0)).cornerRadius((e=>e.cornerRadius||0)),zm=xc().x(Fm).y1(Bm).y0((e=>(e.y||0)+(e.height||0))).defined(jm),Pm=xc().y(Bm).x1(Fm).x0((e=>(e.x||0)+(e.width||0))).defined(jm),Um=bc().x(Fm).y(Bm).defined(jm),Vm=function(){var e=wm,t=Im,n=Cm,r=Rm,i=km(0),a=i,o=i,s=i,l=null;function u(u,c,d){var f,h=null!=c?c:+e.call(this,u),p=null!=d?d:+t.call(this,u),m=+n.call(this,u),g=+r.call(this,u),y=Math.min(m,g)/2,_=Lm(+i.call(this,u),0,y),v=Lm(+a.call(this,u),0,y),b=Lm(+o.call(this,u),0,y),x=Lm(+s.call(this,u),0,y);if(l||(l=f=uc()),_<=0&&v<=0&&b<=0&&x<=0)l.rect(h,p,m,g);else{var E=h+m,S=p+g;l.moveTo(h+_,p),l.lineTo(E-v,p),l.bezierCurveTo(E-Mm*v,p,E,p+Mm*v,E,p+v),l.lineTo(E,S-x),l.bezierCurveTo(E,S-Mm*x,E-Mm*x,S,E-x,S),l.lineTo(h+b,S),l.bezierCurveTo(h+Mm*b,S,h,S-Mm*b,h,S-b),l.lineTo(h,p+_),l.bezierCurveTo(h,p+Mm*_,h+Mm*_,p,h+_,p),l.closePath()}if(f)return l=null,f+""||null}return u.x=function(t){return arguments.length?(e=km(t),u):e},u.y=function(e){return arguments.length?(t=km(e),u):t},u.width=function(e){return arguments.length?(n=km(e),u):n},u.height=function(e){return arguments.length?(r=km(e),u):r},u.cornerRadius=function(e,t,n,r){return arguments.length?(i=km(e),a=null!=t?km(t):i,s=null!=n?km(n):i,o=null!=r?km(r):a,u):i},u.context=function(e){return arguments.length?(l=null==e?null:e,u):l},u}().x(Fm).y(Bm).width((e=>e.width||0)).height((e=>e.height||0)).cornerRadius((e=>Nm(e.cornerRadiusTopLeft,e.cornerRadius)||0),(e=>Nm(e.cornerRadiusTopRight,e.cornerRadius)||0),(e=>Nm(e.cornerRadiusBottomRight,e.cornerRadius)||0),(e=>Nm(e.cornerRadiusBottomLeft,e.cornerRadius)||0)),Wm=function(e,t){let n=null,r=cc(i);function i(){let i;if(n||(n=i=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),i)return n=null,i+""||null}return e="function"==typeof e?e:nc(e||Ec),t="function"==typeof t?t:nc(void 0===t?64:+t),i.type=function(t){return arguments.length?(e="function"==typeof t?t:nc(t),i):e},i.size=function(e){return arguments.length?(t="function"==typeof e?e:nc(+e),i):t},i.context=function(e){return arguments.length?(n=null==e?null:e,i):n},i}().type((e=>function(e){return dt(Om,e)?Om[e]:function(e){if(!dt(Dm,e)){const t=hm(e);Dm[e]={draw:function(e,n){Am(e,t,0,0,Math.sqrt(n)/2)}}}return Dm[e]}(e)}(e.shape||"circle"))).size((e=>Nm(e.size,64))),Gm=function(){var e,t,n,r,i,a,o,s,l=null;function u(e,t,n){const r=n/2;if(i){var u=o-t,c=e-a;if(u||c){var d=Math.hypot(u,c),f=(u/=d)*s,h=(c/=d)*s,p=Math.atan2(c,u);l.moveTo(a-f,o-h),l.lineTo(e-u*r,t-c*r),l.arc(e,t,r,p-Math.PI,p),l.lineTo(a+f,o+h),l.arc(a,o,s,p,p+Math.PI)}else l.arc(e,t,r,0,gm);l.closePath()}else i=1;a=e,o=t,s=r}function c(a){var o,s,c,d=a.length,f=!1;for(null==l&&(l=c=uc()),o=0;o<=d;++o)!(o<d&&r(s=a[o],o,a))===f&&(f=!f)&&(i=0),f&&u(+e(s,o,a),+t(s,o,a),+n(s,o,a));if(c)return l=null,c+""||null}return c.x=function(t){return arguments.length?(e=t,c):e},c.y=function(e){return arguments.length?(t=e,c):t},c.size=function(e){return arguments.length?(n=e,c):n},c.defined=function(e){return arguments.length?(r=e,c):r},c.context=function(e){return arguments.length?(l=null==e?null:e,c):l},c}().x(Fm).y(Bm).defined(jm).size((e=>e.size||1));function qm(e){return e.cornerRadius||e.cornerRadiusTopLeft||e.cornerRadiusTopRight||e.cornerRadiusBottomRight||e.cornerRadiusBottomLeft}function Ym(e,t,n,r){return Vm.context(e)(t,n,r)}var Km=1;function Jm(e,t,n){var r=t.clip,i=e._defs,a=t.clip_id||(t.clip_id="clip"+Km++),o=i.clipping[a]||(i.clipping[a]={id:a});return et(r)?o.path=r(null):qm(n)?o.path=Ym(null,n,0,0):(o.width=n.width||0,o.height=n.height||0),"url(#"+a+")"}function Xm(e){this.clear(),e&&this.union(e)}function Zm(e){this.mark=e,this.bounds=this.bounds||new Xm}function Qm(e){Zm.call(this,e),this.items=this.items||[]}Xm.prototype={clone(){return new Xm(this)},clear(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(e){return this.x1===e.x1&&this.y1===e.y1&&this.x2===e.x2&&this.y2===e.y2},set(e,t,n,r){return n<e?(this.x2=e,this.x1=n):(this.x1=e,this.x2=n),r<t?(this.y2=t,this.y1=r):(this.y1=t,this.y2=r),this},add(e,t){return e<this.x1&&(this.x1=e),t<this.y1&&(this.y1=t),e>this.x2&&(this.x2=e),t>this.y2&&(this.y2=t),this},expand(e){return this.x1-=e,this.y1-=e,this.x2+=e,this.y2+=e,this},round(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale(e){return this.x1*=e,this.y1*=e,this.x2*=e,this.y2*=e,this},translate(e,t){return this.x1+=e,this.x2+=e,this.y1+=t,this.y2+=t,this},rotate(e,t,n){const r=this.rotatedPoints(e,t,n);return this.clear().add(r[0],r[1]).add(r[2],r[3]).add(r[4],r[5]).add(r[6],r[7])},rotatedPoints(e,t,n){var{x1:r,y1:i,x2:a,y2:o}=this,s=Math.cos(e),l=Math.sin(e),u=t-t*s+n*l,c=n-t*l-n*s;return[s*r-l*i+u,l*r+s*i+c,s*r-l*o+u,l*r+s*o+c,s*a-l*i+u,l*a+s*i+c,s*a-l*o+u,l*a+s*o+c]},union(e){return e.x1<this.x1&&(this.x1=e.x1),e.y1<this.y1&&(this.y1=e.y1),e.x2>this.x2&&(this.x2=e.x2),e.y2>this.y2&&(this.y2=e.y2),this},intersect(e){return e.x1>this.x1&&(this.x1=e.x1),e.y1>this.y1&&(this.y1=e.y1),e.x2<this.x2&&(this.x2=e.x2),e.y2<this.y2&&(this.y2=e.y2),this},encloses(e){return e&&this.x1<=e.x1&&this.x2>=e.x2&&this.y1<=e.y1&&this.y2>=e.y2},alignsWith(e){return e&&(this.x1==e.x1||this.x2==e.x2||this.y1==e.y1||this.y2==e.y2)},intersects(e){return e&&!(this.x2<e.x1||this.x1>e.x2||this.y2<e.y1||this.y1>e.y2)},contains(e,t){return!(e<this.x1||e>this.x2||t<this.y1||t>this.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}},pt(Qm,Zm);class eg{constructor(e){this._pending=0,this._loader=e||ao()}pending(){return this._pending}sanitizeURL(e){const t=this;return tg(t),t._loader.sanitize(e,{context:"href"}).then((e=>(ng(t),e))).catch((()=>(ng(t),null)))}loadImage(e){const t=this,n=Ac();return tg(t),t._loader.sanitize(e,{context:"image"}).then((e=>{const r=e.href;if(!r||!n)throw{url:r};const i=new n,a=dt(e,"crossOrigin")?e.crossOrigin:"anonymous";return null!=a&&(i.crossOrigin=a),i.onload=()=>ng(t),i.onerror=()=>ng(t),i.src=r,i})).catch((e=>(ng(t),{complete:!1,width:0,height:0,src:e&&e.url||""})))}ready(){const e=this;return new Promise((t=>{!function n(r){e.pending()?setTimeout((()=>{n(!0)}),10):t(r)}(!1)}))}}function tg(e){e._pending+=1}function ng(e){e._pending-=1}function rg(e,t,n){if(t.stroke&&0!==t.opacity&&0!==t.strokeOpacity){const r=null!=t.strokeWidth?+t.strokeWidth:1;e.expand(r+(n?function(e,t){return e.strokeJoin&&"miter"!==e.strokeJoin?0:t}(t,r):0))}return e}const ig=gm-1e-8;let ag,og,sg,lg,ug,cg,dg,fg;const hg=(e,t)=>ag.add(e,t),pg=(e,t)=>hg(og=e,sg=t),mg=e=>hg(e,ag.y1),gg=e=>hg(ag.x1,e),yg=(e,t)=>ug*e+dg*t,_g=(e,t)=>cg*e+fg*t,vg=(e,t)=>hg(yg(e,t),_g(e,t)),bg=(e,t)=>pg(yg(e,t),_g(e,t));function xg(e,t){return ag=e,t?(lg=t*pm,ug=fg=Math.cos(lg),cg=Math.sin(lg),dg=-cg):(ug=fg=1,lg=cg=dg=0),Eg}const Eg={beginPath(){},closePath(){},moveTo:bg,lineTo:bg,rect(e,t,n,r){lg?(vg(e+n,t),vg(e+n,t+r),vg(e,t+r),bg(e,t)):(hg(e+n,t+r),pg(e,t))},quadraticCurveTo(e,t,n,r){const i=yg(e,t),a=_g(e,t),o=yg(n,r),s=_g(n,r);Sg(og,i,o,mg),Sg(sg,a,s,gg),pg(o,s)},bezierCurveTo(e,t,n,r,i,a){const o=yg(e,t),s=_g(e,t),l=yg(n,r),u=_g(n,r),c=yg(i,a),d=_g(i,a);Ag(og,o,l,c,mg),Ag(sg,s,u,d,gg),pg(c,d)},arc(e,t,n,r,i,a){if(r+=lg,i+=lg,og=n*Math.cos(i)+e,sg=n*Math.sin(i)+t,Math.abs(i-r)>ig)hg(e-n,t-n),hg(e+n,t+n);else{const o=r=>hg(n*Math.cos(r)+e,n*Math.sin(r)+t);let s,l;if(o(r),o(i),i!==r)if((r%=gm)<0&&(r+=gm),(i%=gm)<0&&(i+=gm),i<r&&(a=!a,s=r,r=i,i=s),a)for(i-=gm,s=r-r%mm,l=0;l<4&&s>i;++l,s-=mm)o(s);else for(s=r-r%mm+mm,l=0;l<4&&s<i;++l,s+=mm)o(s)}}};function Sg(e,t,n,r){const i=(e-t)/(e+n-2*t);0<i&&i<1&&r(e+(t-e)*i)}function Ag(e,t,n,r,i){const a=r-e+3*t-3*n,o=e+n-2*t,s=e-t;let l,u=0,c=0;Math.abs(a)>1e-14?(l=o*o+s*a,l>=0&&(l=Math.sqrt(l),u=(-o+l)/a,c=(-o-l)/a)):u=.5*s/o,0<u&&u<1&&i($g(u,e,t,n,r)),0<c&&c<1&&i($g(c,e,t,n,r))}function $g(e,t,n,r,i){const a=1-e,o=a*a,s=e*e;return o*a*t+3*o*e*n+3*a*s*r+s*e*i}var Tg=(Tg=Sc(1,1))?Tg.getContext("2d"):null;const Og=new Xm;function Dg(e){return function(t,n){if(!Tg)return!0;e(Tg,t),Og.clear().union(t.bounds).intersect(n).round();const{x1:r,y1:i,x2:a,y2:o}=Og;for(let e=i;e<=o;++e)for(let t=r;t<=a;++t)if(Tg.isPointInPath(t,e))return!0;return!1}}function Mg(e,t){return t.contains(e.x||0,e.y||0)}function wg(e,t){const n=e.x||0,r=e.y||0,i=e.width||0,a=e.height||0;return t.intersects(Og.set(n,r,n+i,r+a))}function Ig(e,t,n,r,i){const{x1:a,y1:o,x2:s,y2:l}=e,u=r-t,c=i-n;let d,f,h,p,m=0,g=1;for(p=0;p<4;++p){if(0===p&&(d=-u,f=-(a-t)),1===p&&(d=u,f=s-t),2===p&&(d=-c,f=-(o-n)),3===p&&(d=c,f=l-n),Math.abs(d)<1e-10&&f<0)return!1;if(h=f/d,d<0){if(h>g)return!1;h>m&&(m=h)}else if(d>0){if(h<m)return!1;h<g&&(g=h)}}return!0}function Cg(e,t){e.globalCompositeOperation=t.blend||"source-over"}function Rg(e,t){return null==e?t:e}function kg(e,t){const n=t.length;for(let r=0;r<n;++r)e.addColorStop(t[r].offset,t[r].color);return e}function Lg(e,t,n){return rm(n)?function(e,t,n){const r=n.width(),i=n.height();let a;if("radial"===t.gradient)a=e.createRadialGradient(n.x1+Rg(t.x1,.5)*r,n.y1+Rg(t.y1,.5)*i,Math.max(r,i)*Rg(t.r1,0),n.x1+Rg(t.x2,.5)*r,n.y1+Rg(t.y2,.5)*i,Math.max(r,i)*Rg(t.r2,.5));else{const o=Rg(t.x1,0),s=Rg(t.y1,0),l=Rg(t.x2,1),u=Rg(t.y2,0);if(o!==l&&s!==u&&r!==i){const n=Sc(Math.ceil(r),Math.ceil(i)),a=n.getContext("2d");return a.scale(r,i),a.fillStyle=kg(a.createLinearGradient(o,s,l,u),t.stops),a.fillRect(0,0,r,i),e.createPattern(n,"no-repeat")}a=e.createLinearGradient(n.x1+o*r,n.y1+s*i,n.x1+l*r,n.y1+u*i)}return kg(a,t.stops)}(e,n,t.bounds):n}function Ng(e,t,n){return(n*=null==t.fillOpacity?1:t.fillOpacity)>0&&(e.globalAlpha=n,e.fillStyle=Lg(e,t,t.fill),!0)}var Fg=[];function Bg(e,t,n){var r=null!=(r=t.strokeWidth)?r:1;return!(r<=0)&&(n*=null==t.strokeOpacity?1:t.strokeOpacity)>0&&(e.globalAlpha=n,e.strokeStyle=Lg(e,t,t.stroke),e.lineWidth=r,e.lineCap=t.strokeCap||"butt",e.lineJoin=t.strokeJoin||"miter",e.miterLimit=t.strokeMiterLimit||10,e.setLineDash&&(e.setLineDash(t.strokeDash||Fg),e.lineDashOffset=t.strokeDashOffset||0),!0)}function jg(e,t){return e.zindex-t.zindex||e.index-t.index}function Hg(e){if(!e.zdirty)return e.zitems;var t,n,r,i=e.items,a=[];for(n=0,r=i.length;n<r;++n)(t=i[n]).index=n,t.zindex&&a.push(t);return e.zdirty=!1,e.zitems=a.sort(jg)}function zg(e,t){var n,r,i=e.items;if(!i||!i.length)return;const a=Hg(e);if(a&&a.length){for(n=0,r=i.length;n<r;++n)i[n].zindex||t(i[n]);i=a}for(n=0,r=i.length;n<r;++n)t(i[n])}function Pg(e,t){var n,r,i=e.items;if(!i||!i.length)return null;const a=Hg(e);for(a&&a.length&&(i=a),r=i.length;--r>=0;)if(n=t(i[r]))return n;if(i===a)for(r=(i=e.items).length;--r>=0;)if(!i[r].zindex&&(n=t(i[r])))return n;return null}function Ug(e){return function(t,n,r){zg(n,(n=>{r&&!r.intersects(n.bounds)||Wg(e,t,n,n)}))}}function Vg(e){return function(t,n,r){!n.items.length||r&&!r.intersects(n.bounds)||Wg(e,t,n.items[0],n.items)}}function Wg(e,t,n,r){var i=null==n.opacity?1:n.opacity;0!==i&&(e(t,r)||(Cg(t,n),n.fill&&Ng(t,n,i)&&t.fill(),n.stroke&&Bg(t,n,i)&&t.stroke()))}function Gg(e){return e=e||$e,function(t,n,r,i,a,o){return r*=t.pixelRatio,i*=t.pixelRatio,Pg(n,(n=>{const s=n.bounds;if((!s||s.contains(a,o))&&s)return e(t,n,r,i,a,o)?n:void 0}))}}function qg(e,t){return function(n,r,i,a){var o,s,l=Array.isArray(r)?r[0]:r,u=null==t?l.fill:t,c=l.stroke&&n.isPointInStroke;return c&&(o=l.strokeWidth,s=l.strokeCap,n.lineWidth=null!=o?o:1,n.lineCap=null!=s?s:"butt"),!e(n,r)&&(u&&n.isPointInPath(i,a)||c&&n.isPointInStroke(i,a))}}function Yg(e){return Gg(qg(e))}function Kg(e,t){return"translate("+e+","+t+")"}function Jg(e){return"rotate("+e+")"}function Xg(e){return Kg(e.x||0,e.y||0)}function Zg(e,t,n){function r(e,n){var r=n.x||0,i=n.y||0,a=n.angle||0;e.translate(r,i),a&&e.rotate(a*=pm),e.beginPath(),t(e,n),a&&e.rotate(-a),e.translate(-r,-i)}return{type:e,tag:"path",nested:!1,attr:function(e,n){e("transform",function(e){return Kg(e.x||0,e.y||0)+(e.angle?" "+Jg(e.angle):"")}(n)),e("d",t(null,n))},bound:function(e,n){return t(xg(e,n.angle),n),rg(e,n).translate(n.x||0,n.y||0)},draw:Ug(r),pick:Yg(r),isect:n||Dg(r)}}var Qg=Zg("arc",(function(e,t){return Hm.context(e)(t)}));function ey(e,t,n){function r(e,n){e.beginPath(),t(e,n)}const i=qg(r);return{type:e,tag:"path",nested:!0,attr:function(e,n){var r=n.mark.items;r.length&&e("d",t(null,r))},bound:function(e,n){var r=n.items;return 0===r.length?e:(t(xg(e),r),rg(e,r[0]))},draw:Vg(r),pick:function(e,t,n,r,a,o){var s=t.items,l=t.bounds;return!s||!s.length||l&&!l.contains(a,o)?null:(n*=e.pixelRatio,r*=e.pixelRatio,i(e,s,n,r)?s[0]:null)},isect:Mg,tip:n}}var ty=ey("area",(function(e,t){const n=t[0],r=n.interpolate||"linear";return("horizontal"===n.orient?Pm:zm).curve(sm(r,n.orient,n.tension)).context(e)(t)}),(function(e,t){for(var n,r,i="horizontal"===e[0].orient?t[1]:t[0],a="horizontal"===e[0].orient?"y":"x",o=e.length,s=1/0;--o>=0;)!1!==e[o].defined&&(r=Math.abs(e[o][a]-i))<s&&(s=r,n=e[o]);return n}));function ny(e,t){e.beginPath(),qm(t)?Ym(e,t,0,0):e.rect(0,0,t.width||0,t.height||0),e.clip()}function ry(e){const t=Rg(e.strokeWidth,1);return null!=e.strokeOffset?e.strokeOffset:e.stroke&&t>.5&&t<1.5?.5-Math.abs(t-1):0}function iy(e,t){const n=ry(t);e("d",Ym(null,t,n,n))}function ay(e,t,n,r){const i=ry(t);e.beginPath(),Ym(e,t,(n||0)+i,(r||0)+i)}const oy=qg(ay),sy=qg(ay,!1),ly=qg(ay,!0);var uy={type:"group",tag:"g",nested:!1,attr:function(e,t){e("transform",Xg(t))},bound:function(e,t){if(!t.clip&&t.items){const n=t.items,r=n.length;for(let t=0;t<r;++t)e.union(n[t].bounds)}return(t.clip||t.width||t.height)&&!t.noBound&&e.add(0,0).add(t.width||0,t.height||0),rg(e,t),e.translate(t.x||0,t.y||0)},draw:function(e,t,n,r){zg(t,(t=>{const i=t.x||0,a=t.y||0,o=t.strokeForeground,s=null==t.opacity?1:t.opacity;(t.stroke||t.fill)&&s&&(ay(e,t,i,a),Cg(e,t),t.fill&&Ng(e,t,s)&&e.fill(),t.stroke&&!o&&Bg(e,t,s)&&e.stroke()),e.save(),e.translate(i,a),t.clip&&ny(e,t),n&&n.translate(-i,-a),zg(t,(t=>{("group"===t.marktype||null==r||r.includes(t.marktype))&&this.draw(e,t,n,r)})),n&&n.translate(i,a),e.restore(),o&&t.stroke&&s&&(ay(e,t,i,a),Cg(e,t),Bg(e,t,s)&&e.stroke())}))},pick:function(e,t,n,r,i,a){if(t.bounds&&!t.bounds.contains(i,a)||!t.items)return null;const o=n*e.pixelRatio,s=r*e.pixelRatio;return Pg(t,(l=>{let u,c,d;const f=l.bounds;if(f&&!f.contains(i,a))return;c=l.x||0,d=l.y||0;const h=c+(l.width||0),p=d+(l.height||0),m=l.clip;if(m&&(i<c||i>h||a<d||a>p))return;if(e.save(),e.translate(c,d),c=i-c,d=a-d,m&&qm(l)&&!ly(e,l,o,s))return e.restore(),null;const g=l.strokeForeground,y=!1!==t.interactive;return y&&g&&l.stroke&&sy(e,l,o,s)?(e.restore(),l):(u=Pg(l,(e=>function(e,t,n){return(!1!==e.interactive||"group"===e.marktype)&&e.bounds&&e.bounds.contains(t,n)}(e,c,d)?this.pick(e,n,r,c,d):null)),!u&&y&&(l.fill||!g&&l.stroke)&&oy(e,l,o,s)&&(u=l),e.restore(),u||null)}))},isect:wg,content:function(e,t,n){e("clip-path",t.clip?Jm(n,t,t):null)},background:function(e,t){e("class","background"),e("aria-hidden",!0),iy(e,t)},foreground:function(e,t){e("class","foreground"),e("aria-hidden",!0),t.strokeForeground?iy(e,t):e("d","")}},cy={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function dy(e,t){var n=e.image;return(!n||e.url&&e.url!==n.url)&&(n={complete:!1,width:0,height:0},t.loadImage(e.url).then((t=>{e.image=t,e.image.url=e.url}))),n}function fy(e,t){return null!=e.width?e.width:t&&t.width?!1!==e.aspect&&e.height?e.height*t.width/t.height:t.width:0}function hy(e,t){return null!=e.height?e.height:t&&t.height?!1!==e.aspect&&e.width?e.width*t.height/t.width:t.height:0}function py(e,t){return"center"===e?t/2:"right"===e?t:0}function my(e,t){return"middle"===e?t/2:"bottom"===e?t:0}var gy={type:"image",tag:"image",nested:!1,attr:function(e,t,n){const r=dy(t,n),i=fy(t,r),a=hy(t,r),o=(t.x||0)-py(t.align,i),s=(t.y||0)-my(t.baseline,a);e("href",!r.src&&r.toDataURL?r.toDataURL():r.src||"",cy["xmlns:xlink"],"xlink:href"),e("transform",Kg(o,s)),e("width",i),e("height",a),e("preserveAspectRatio",!1===t.aspect?"none":"xMidYMid")},bound:function(e,t){const n=t.image,r=fy(t,n),i=hy(t,n),a=(t.x||0)-py(t.align,r),o=(t.y||0)-my(t.baseline,i);return e.set(a,o,a+r,o+i)},draw:function(e,t,n){zg(t,(t=>{if(n&&!n.intersects(t.bounds))return;const r=dy(t,this);let i=fy(t,r),a=hy(t,r);if(0===i||0===a)return;let o,s,l,u,c=(t.x||0)-py(t.align,i),d=(t.y||0)-my(t.baseline,a);!1!==t.aspect&&(s=r.width/r.height,l=t.width/t.height,s==s&&l==l&&s!==l&&(l<s?(u=i/s,d+=(a-u)/2,a=u):(u=a*s,c+=(i-u)/2,i=u))),(r.complete||r.toDataURL)&&(Cg(e,t),e.globalAlpha=null!=(o=t.opacity)?o:1,e.imageSmoothingEnabled=!1!==t.smooth,e.drawImage(r,c,d,i,a))}))},pick:Gg(),isect:$e,get:dy,xOffset:py,yOffset:my},yy=ey("line",(function(e,t){const n=t[0],r=n.interpolate||"linear";return Um.curve(sm(r,n.orient,n.tension)).context(e)(t)}),(function(e,t){for(var n,r,i=Math.pow(e[0].strokeWidth||1,2),a=e.length;--a>=0;)if(!1!==e[a].defined&&(n=e[a].x-t[0])*n+(r=e[a].y-t[1])*r<i)return e[a];return null}));function _y(e,t){var n=t.path;if(null==n)return!0;var r=t.x||0,i=t.y||0,a=t.scaleX||1,o=t.scaleY||1,s=(t.angle||0)*pm,l=t.pathCache;l&&l.path===n||((t.pathCache=l=hm(n)).path=n),s&&e.rotate&&e.translate?(e.translate(r,i),e.rotate(s),Am(e,l,0,0,a,o),e.rotate(-s),e.translate(-r,-i)):Am(e,l,r,i,a,o)}var vy={type:"path",tag:"path",nested:!1,attr:function(e,t){var n=t.scaleX||1,r=t.scaleY||1;1===n&&1===r||e("vector-effect","non-scaling-stroke"),e("transform",function(e){return Kg(e.x||0,e.y||0)+(e.angle?" "+Jg(e.angle):"")+(e.scaleX||e.scaleY?" "+(t=e.scaleX||1,n=e.scaleY||1,"scale("+t+","+n+")"):"");var t,n}(t)),e("d",t.path)},bound:function(e,t){return _y(xg(e,t.angle),t)?e.set(0,0,0,0):rg(e,t,!0)},draw:Ug(_y),pick:Yg(_y),isect:Dg(_y)};function by(e,t){e.beginPath(),Ym(e,t)}var xy={type:"rect",tag:"path",nested:!1,attr:function(e,t){e("d",Ym(null,t))},bound:function(e,t){var n,r;return rg(e.set(n=t.x||0,r=t.y||0,n+t.width||0,r+t.height||0),t)},draw:Ug(by),pick:Yg(by),isect:wg};function Ey(e,t,n){var r,i,a,o;return!(!t.stroke||!Bg(e,t,n)||(r=t.x||0,i=t.y||0,a=null!=t.x2?t.x2:r,o=null!=t.y2?t.y2:i,e.beginPath(),e.moveTo(r,i),e.lineTo(a,o),0))}var Sy={type:"rule",tag:"line",nested:!1,attr:function(e,t){e("transform",Xg(t)),e("x2",null!=t.x2?t.x2-(t.x||0):0),e("y2",null!=t.y2?t.y2-(t.y||0):0)},bound:function(e,t){var n,r;return rg(e.set(n=t.x||0,r=t.y||0,null!=t.x2?t.x2:n,null!=t.y2?t.y2:r),t)},draw:function(e,t,n){zg(t,(t=>{if(!n||n.intersects(t.bounds)){var r=null==t.opacity?1:t.opacity;r&&Ey(e,t,r)&&(Cg(e,t),e.stroke())}}))},pick:Gg((function(e,t,n,r){return!!e.isPointInStroke&&Ey(e,t,1)&&e.isPointInStroke(n,r)})),isect:function(e,t){const n=e.x||0,r=e.y||0;return Ig(t,n,r,null!=e.x2?e.x2:n,null!=e.y2?e.y2:r)}},Ay=Zg("shape",(function(e,t){return(t.mark.shape||t.shape).context(e)(t)})),$y=Zg("symbol",(function(e,t){return Wm.context(e)(t)}),Mg);const Ty=function(e){let t,n,r;e=+e||1e4;const i=()=>{t={},n={},r=0},a=(i,a)=>(++r>e&&(n=t,t={},r=1),t[i]=a);return i(),{clear:i,has:e=>dt(t,e)||dt(n,e),get:e=>dt(t,e)?t[e]:dt(n,e)?a(e,n[e]):void 0,set:(e,n)=>dt(t,e)?t[e]=n:a(e,n)}}();var Oy={height:Ry,measureWidth:Iy,estimateWidth:My,width:My,canvas:Dy};function Dy(e){Oy.width=e&&Tg?Iy:My}function My(e,t){return wy(Fy(e,t),Ry(e))}function wy(e,t){return~~(.8*e.length*t)}function Iy(e,t){return Ry(e)<=0||!(t=Fy(e,t))?0:Cy(t,jy(e))}function Cy(e,t){const n=`(${t}) ${e}`;let r=Ty.get(n);return void 0===r&&(Tg.font=t,r=Tg.measureText(e).width,Ty.set(n,r)),r}function Ry(e){return null!=e.fontSize?+e.fontSize||0:11}function ky(e){return null!=e.lineHeight?e.lineHeight:Ry(e)+2}function Ly(e){return function(e){return Le(e)?e.length>1?e:e[0]:e}(e.lineBreak&&e.text&&!Le(e.text)?e.text.split(e.lineBreak):e.text)}function Ny(e){const t=Ly(e);return(Le(t)?t.length-1:0)*ky(e)}function Fy(e,t){const n=null==t?"":(t+"").trim();return e.limit>0&&n.length?function(e,t){var n=+e.limit,r=function(e){if(Oy.width===Iy){const t=jy(e);return e=>Cy(e,t)}if(Oy.width===My){const t=Ry(e);return e=>wy(e,t)}return t=>Oy.width(e,t)}(e);if(r(t)<n)return t;var i,a=e.ellipsis||"…",o="rtl"===e.dir,s=0,l=t.length;if(n-=r(a),o){for(;s<l;)i=s+l>>>1,r(t.slice(i))>n?s=i+1:l=i;return a+t.slice(s)}for(;s<l;)i=1+(s+l>>>1),r(t.slice(0,i))<n?s=i:l=i-1;return t.slice(0,s)+a}(e,n):n}function By(e,t){var n=e.font;return(t&&n?String(n).replace(/"/g,"'"):n)||"sans-serif"}function jy(e,t){return(e.fontStyle?e.fontStyle+" ":"")+(e.fontVariant?e.fontVariant+" ":"")+(e.fontWeight?e.fontWeight+" ":"")+Ry(e)+"px "+By(e,t)}function Hy(e){var t=e.baseline,n=Ry(e);return Math.round("top"===t?.79*n:"middle"===t?.3*n:"bottom"===t?-.21*n:"line-top"===t?.29*n+.5*ky(e):"line-bottom"===t?.29*n-.5*ky(e):0)}Dy(!0);const zy={left:"start",center:"middle",right:"end"},Py=new Xm;function Uy(e){var t,n=e.x||0,r=e.y||0,i=e.radius||0;return i&&(t=(e.theta||0)-mm,n+=i*Math.cos(t),r+=i*Math.sin(t)),Py.x1=n,Py.y1=r,Py}function Vy(e,t,n){var r,i=Oy.height(t),a=t.align,o=Uy(t),s=o.x1,l=o.y1,u=t.dx||0,c=(t.dy||0)+Hy(t)-Math.round(.8*i),d=Ly(t);if(Le(d)?(i+=ky(t)*(d.length-1),r=d.reduce(((e,n)=>Math.max(e,Oy.width(t,n))),0)):r=Oy.width(t,d),"center"===a?u-=r/2:"right"===a&&(u-=r),e.set(u+=s,c+=l,u+r,c+i),t.angle&&!n)e.rotate(t.angle*pm,s,l);else if(2===n)return e.rotatedPoints(t.angle*pm,s,l);return e}var Wy={type:"text",tag:"text",nested:!1,attr:function(e,t){var n,r=t.dx||0,i=(t.dy||0)+Hy(t),a=Uy(t),o=a.x1,s=a.y1,l=t.angle||0;e("text-anchor",zy[t.align]||"start"),l?(n=Kg(o,s)+" "+Jg(l),(r||i)&&(n+=" "+Kg(r,i))):n=Kg(o+r,s+i),e("transform",n)},bound:Vy,draw:function(e,t,n){zg(t,(t=>{var r,i,a,o,s,l,u,c=null==t.opacity?1:t.opacity;if(!(n&&!n.intersects(t.bounds)||0===c||t.fontSize<=0||null==t.text||0===t.text.length)){if(e.font=jy(t),e.textAlign=t.align||"left",i=(r=Uy(t)).x1,a=r.y1,t.angle&&(e.save(),e.translate(i,a),e.rotate(t.angle*pm),i=a=0),i+=t.dx||0,a+=(t.dy||0)+Hy(t),l=Ly(t),Cg(e,t),Le(l))for(s=ky(t),o=0;o<l.length;++o)u=Fy(t,l[o]),t.fill&&Ng(e,t,c)&&e.fillText(u,i,a),t.stroke&&Bg(e,t,c)&&e.strokeText(u,i,a),a+=s;else u=Fy(t,l),t.fill&&Ng(e,t,c)&&e.fillText(u,i,a),t.stroke&&Bg(e,t,c)&&e.strokeText(u,i,a);t.angle&&e.restore()}}))},pick:Gg((function(e,t,n,r,i,a){if(t.fontSize<=0)return!1;if(!t.angle)return!0;var o=Uy(t),s=o.x1,l=o.y1,u=Vy(Py,t,1),c=-t.angle*pm,d=Math.cos(c),f=Math.sin(c),h=d*i-f*a+(s-d*s+f*l),p=f*i+d*a+(l-f*s-d*l);return u.contains(h,p)})),isect:function(e,t){const n=Vy(Py,e,2);return Ig(t,n[0],n[1],n[2],n[3])||Ig(t,n[0],n[1],n[4],n[5])||Ig(t,n[4],n[5],n[6],n[7])||Ig(t,n[2],n[3],n[6],n[7])}},Gy=ey("trail",(function(e,t){return Gm.context(e)(t)}),(function(e,t){for(var n,r,i=e.length;--i>=0;)if(!1!==e[i].defined&&(n=e[i].x-t[0])*n+(r=e[i].y-t[1])*r<(n=e[i].size||1)*n)return e[i];return null})),qy={arc:Qg,area:ty,group:uy,image:gy,line:yy,path:vy,rect:xy,rule:Sy,shape:Ay,symbol:$y,text:Wy,trail:Gy};function Yy(e,t,n){var r=qy[e.mark.marktype],i=t||r.bound;return r.nested&&(e=e.mark),i(e.bounds||(e.bounds=new Xm),e,n)}var Ky={mark:null};const Jy=["marktype","name","role","interactive","clip","items","zindex","x","y","width","height","align","baseline","fill","fillOpacity","opacity","blend","stroke","strokeOpacity","strokeWidth","strokeCap","strokeDash","strokeDashOffset","strokeForeground","strokeOffset","startAngle","endAngle","innerRadius","outerRadius","cornerRadius","padAngle","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight","interpolate","tension","orient","defined","url","aspect","smooth","path","scaleX","scaleY","x2","y2","size","shape","text","angle","theta","radius","dir","dx","dy","ellipsis","limit","lineBreak","lineHeight","font","fontSize","fontWeight","fontStyle","fontVariant","description","aria","ariaRole","ariaRoleDescription"];function Xy(e){return Zy("string"==typeof e?JSON.parse(e):e)}function Zy(e){var t,n,r,i=e.marktype,a=e.items;if(a)for(n=0,r=a.length;n<r;++n)t=i?"mark":"group",a[n][t]=e,a[n].zindex&&(a[n][t].zdirty=!0),"group"===(i||t)&&Zy(a[n]);return i&&function(e,t,n){var r,i,a,o,s=qy[e.marktype],l=s.bound,u=e.items,c=u&&u.length;if(s.nested)return c?a=u[0]:(Ky.mark=e,a=Ky),o=Yy(a,l,n),t&&t.union(o)||o;if(t=t||e.bounds&&e.bounds.clear()||new Xm,c)for(r=0,i=u.length;r<i;++r)t.union(Yy(u[r],l,n));e.bounds=t}(e),e}class Qy{constructor(e){arguments.length?this.root=Xy(e):(this.root=e_({marktype:"group",name:"root",role:"frame"}),this.root.items=[new Qm(this.root)])}toJSON(e){return function(e,t){return JSON.stringify(e,Jy,t)}(this.root,e||0)}mark(e,t,n){const r=e_(e,t=t||this.root.items[0]);return t.items[n]=r,r.zindex&&(r.group.zdirty=!0),r}}function e_(e,t){const n={bounds:new Xm,clip:!!e.clip,group:t,interactive:!1!==e.interactive,items:[],marktype:e.marktype,name:e.name||void 0,role:e.role||void 0,zindex:e.zindex||0};return null!=e.aria&&(n.aria=e.aria),e.description&&(n.description=e.description),n}function t_(e,t,n){return!e&&"undefined"!=typeof document&&document.createElement&&(e=document),e?n?e.createElementNS(n,t):e.createElement(t):null}function n_(e,t){t=t.toLowerCase();for(var n=e.childNodes,r=0,i=n.length;r<i;++r)if(n[r].tagName.toLowerCase()===t)return n[r]}function r_(e,t,n,r){var i,a=e.childNodes[t];return a&&a.tagName.toLowerCase()===n.toLowerCase()||(i=a||null,a=t_(e.ownerDocument,n,r),e.insertBefore(a,i)),a}function i_(e,t){for(var n=e.childNodes,r=n.length;r>t;)e.removeChild(n[--r]);return e}function a_(e){return"mark-"+e.marktype+(e.role?" role-"+e.role:"")+(e.name?" "+e.name:"")}function o_(e,t){const n=t.getBoundingClientRect();return[e.clientX-n.left-(t.clientLeft||0),e.clientY-n.top-(t.clientTop||0)]}class s_{constructor(e,t){this._active=null,this._handlers={},this._loader=e||ao(),this._tooltip=t||l_}initialize(e,t,n){return this._el=e,this._obj=n||null,this.origin(t)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}origin(e){return arguments.length?(this._origin=e||[0,0],this):this._origin.slice()}scene(e){return arguments.length?(this._scene=e,this):this._scene}on(){}off(){}_handlerIndex(e,t,n){for(let r=e?e.length:0;--r>=0;)if(e[r].type===t&&(!n||e[r].handler===n))return r;return-1}handlers(e){const t=this._handlers,n=[];if(e)n.push(...t[this.eventName(e)]);else for(const e in t)n.push(...t[e]);return n}eventName(e){const t=e.indexOf(".");return t<0?e:e.slice(0,t)}handleHref(e,t,n){this._loader.sanitize(n,{context:"href"}).then((t=>{const n=new MouseEvent(e.type,e),r=t_(null,"a");for(const e in t)r.setAttribute(e,t[e]);r.dispatchEvent(n)})).catch((()=>{}))}handleTooltip(e,t,n){if(t&&null!=t.tooltip){t=function(e,t,n,r){var i,a,o=e&&e.mark;if(o&&(i=qy[o.marktype]).tip){for((a=o_(t,n))[0]-=r[0],a[1]-=r[1];e=e.mark.group;)a[0]-=e.x||0,a[1]-=e.y||0;e=i.tip(o.items,a)}return e}(t,e,this.canvas(),this._origin);const r=n&&t&&t.tooltip||null;this._tooltip.call(this._obj,this,e,t,r)}}getItemBoundingClientRect(e){const t=this.canvas();if(!t)return;const n=t.getBoundingClientRect(),r=this._origin,i=e.bounds,a=i.width(),o=i.height();let s=i.x1+r[0]+n.left,l=i.y1+r[1]+n.top;for(;e.mark&&(e=e.mark.group);)s+=e.x||0,l+=e.y||0;return{x:s,y:l,width:a,height:o,left:s,top:l,right:s+a,bottom:l+o}}}function l_(e,t,n,r){e.element().setAttribute("title",r||"")}class u_{constructor(e){this._el=null,this._bgcolor=null,this._loader=new eg(e)}initialize(e,t,n,r,i){return this._el=e,this.resize(t,n,r,i)}element(){return this._el}canvas(){return this._el&&this._el.firstChild}background(e){return 0===arguments.length?this._bgcolor:(this._bgcolor=e,this)}resize(e,t,n,r){return this._width=e,this._height=t,this._origin=n||[0,0],this._scale=r||1,this}dirty(){}render(e,t){const n=this;return n._call=function(){n._render(e,t)},n._call(),n._call=null,n}_render(){}renderAsync(e,t){const n=this.render(e,t);return this._ready?this._ready.then((()=>n)):Promise.resolve(n)}_load(e,t){var n=this,r=n._loader[e](t);if(!n._ready){const e=n._call;n._ready=n._loader.ready().then((t=>{t&&e(),n._ready=null}))}return r}sanitizeURL(e){return this._load("sanitizeURL",e)}loadImage(e){return this._load("loadImage",e)}}const c_="dragenter",d_="dragleave",f_="dragover",h_="pointerdown",p_="pointermove",m_="pointerout",g_="pointerover",y_="mousedown",__="mousemove",v_="mouseout",b_="mouseover",x_="click",E_="mousewheel",S_="touchstart",A_="touchmove",$_="touchend",T_=["keydown","keypress","keyup",c_,d_,f_,h_,"pointerup",p_,m_,g_,y_,"mouseup",__,v_,b_,x_,"dblclick","wheel",E_,S_,A_,$_],O_=p_,D_=v_,M_=x_;class w_ extends s_{constructor(e,t){super(e,t),this._down=null,this._touch=null,this._first=!0,this._events={},this.events=T_,this.pointermove=k_([p_,__],[g_,b_],[m_,v_]),this.dragover=k_([f_],[c_],[d_]),this.pointerout=L_([m_,v_]),this.dragleave=L_([d_])}initialize(e,t,n){return this._canvas=e&&n_(e,"canvas"),[x_,y_,h_,p_,m_,d_].forEach((e=>C_(this,e))),super.initialize(e,t,n)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(e){this.fire(E_,e)}pointerdown(e){this._down=this._active,this.fire(h_,e)}mousedown(e){this._down=this._active,this.fire(y_,e)}click(e){this._down===this._active&&(this.fire(x_,e),this._down=null)}touchstart(e){this._touch=this.pickEvent(e.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(S_,e,!0)}touchmove(e){this.fire(A_,e,!0)}touchend(e){this.fire($_,e,!0),this._touch=null}fire(e,t,n){const r=n?this._touch:this._active,i=this._handlers[e];if(t.vegaType=e,e===M_&&r&&r.href?this.handleHref(t,r,r.href):e!==O_&&e!==D_||this.handleTooltip(t,r,e!==D_),i)for(let e=0,n=i.length;e<n;++e)i[e].handler.call(this._obj,t,r)}on(e,t){const n=this.eventName(e),r=this._handlers;return this._handlerIndex(r[n],e,t)<0&&(C_(this,e),(r[n]||(r[n]=[])).push({type:e,handler:t})),this}off(e,t){const n=this.eventName(e),r=this._handlers[n],i=this._handlerIndex(r,e,t);return i>=0&&r.splice(i,1),this}pickEvent(e){const t=o_(e,this._canvas),n=this._origin;return this.pick(this._scene,t[0],t[1],t[0]-n[0],t[1]-n[1])}pick(e,t,n,r,i){const a=this.context();return qy[e.marktype].pick.call(this,a,e,t,n,r,i)}}const I_=e=>e===S_||e===A_||e===$_?[S_,A_,$_]:[e];function C_(e,t){I_(t).forEach((t=>function(e,t){const n=e.canvas();n&&!e._events[t]&&(e._events[t]=1,n.addEventListener(t,e[t]?n=>e[t](n):n=>e.fire(t,n)))}(e,t)))}function R_(e,t,n){t.forEach((t=>e.fire(t,n)))}function k_(e,t,n){return function(r){const i=this._active,a=this.pickEvent(r);a===i||(i&&i.exit||R_(this,n,r),this._active=a,R_(this,t,r)),R_(this,e,r)}}function L_(e){return function(t){R_(this,e,t),this._active=null}}class N_ extends u_{constructor(e){super(e),this._options={},this._redraw=!1,this._dirty=new Xm,this._tempb=new Xm}initialize(e,t,n,r,i,a){return this._options=a||{},this._canvas=this._options.externalContext?null:Sc(1,1,this._options.type),e&&this._canvas&&(i_(e,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),super.initialize(e,t,n,r,i)}resize(e,t,n,r){if(super.resize(e,t,n,r),this._canvas)!function(e,t,n,r,i,a){const o="undefined"!=typeof HTMLElement&&e instanceof HTMLElement&&null!=e.parentNode,s=e.getContext("2d"),l=o?"undefined"!=typeof window&&window.devicePixelRatio||1:i;e.width=t*l,e.height=n*l;for(const e in a)s[e]=a[e];o&&1!==l&&(e.style.width=t+"px",e.style.height=n+"px"),s.pixelRatio=l,s.setTransform(l,0,0,l,l*r[0],l*r[1])}(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const e=this._options.externalContext;e||_e("CanvasRenderer is missing a valid canvas or context"),e.scale(this._scale,this._scale),e.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this}canvas(){return this._canvas}context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)}dirty(e){const t=this._tempb.clear().union(e.bounds);let n=e.mark.group;for(;n;)t.translate(n.x||0,n.y||0),n=n.mark.group;this._dirty.union(t)}_render(e,t){const n=this.context(),r=this._origin,i=this._width,a=this._height,o=this._dirty,s=F_(r,i,a);n.save();const l=this._redraw||o.empty()?(this._redraw=!1,s.expand(1)):function(e,t,n){return t.expand(1).round(),e.pixelRatio%1&&t.scale(e.pixelRatio).round().scale(1/e.pixelRatio),t.translate(-n[0]%1,-n[1]%1),e.beginPath(),e.rect(t.x1,t.y1,t.width(),t.height()),e.clip(),t}(n,s.intersect(o),r);return this.clear(-r[0],-r[1],i,a),this.draw(n,e,l,t),n.restore(),o.clear(),this}draw(e,t,n,r){if("group"!==t.marktype&&null!=r&&!r.includes(t.marktype))return;const i=qy[t.marktype];t.clip&&function(e,t){var n=t.clip;e.save(),et(n)?(e.beginPath(),n(e),e.clip()):ny(e,t.group)}(e,t),i.draw.call(this,e,t,n,r),t.clip&&e.restore()}clear(e,t,n,r){const i=this._options,a=this.context();"pdf"===i.type||i.externalContext||a.clearRect(e,t,n,r),null!=this._bgcolor&&(a.fillStyle=this._bgcolor,a.fillRect(e,t,n,r))}}const F_=(e,t,n)=>(new Xm).set(0,0,t,n).translate(-e[0],-e[1]),B_=(e,t)=>n=>{let r=n.target.__data__;r=Array.isArray(r)?r[0]:r,n.vegaType=n.type,t.call(e._obj,n,r)},j_="aria-hidden",H_="aria-label",z_="role",P_="aria-roledescription",U_="graphics-object",V_="graphics-symbol",W_=(e,t,n)=>({[z_]:e,[P_]:t,[H_]:n||void 0}),G_=Dt(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),q_={axis:{desc:"axis",caption:function(e){const t=e.datum,n=e.orient,r=t.title?Z_(e):null,i=e.context,a=i.scales[t.scale].value,o=i.dataflow.locale(),s=a.type;return("left"===n||"right"===n?"Y":"X")+"-axis"+(r?` titled '${r}'`:"")+` for a ${xp(s)?"discrete":s} scale`+` with ${em(o,a,e)}`}},legend:{desc:"legend",caption:function(e){const t=e.datum,n=t.title?Z_(e):null,r=`${t.type||""} legend`.trim(),i=t.scales,a=Object.keys(i),o=e.context,s=o.scales[i[a[0]]].value,l=o.dataflow.locale();return((u=r).length?u[0].toUpperCase()+u.slice(1):u)+(n?` titled '${n}'`:"")+` for ${function(e){return(e=e.map((e=>e+("fill"===e||"stroke"===e?" color":"")))).length<2?e[0]:e.slice(0,-1).join(", ")+" and "+He(e)}(a)}`+` with ${em(l,s,e)}`;var u}},"title-text":{desc:"title",caption:e=>`Title text '${X_(e)}'`},"title-subtitle":{desc:"subtitle",caption:e=>`Subtitle text '${X_(e)}'`}},Y_={ariaRole:z_,ariaRoleDescription:P_,description:H_};function K_(e,t){const n=!1===t.aria;if(e(j_,n||void 0),n||null==t.description)for(const t in Y_)e(Y_[t],void 0);else{const n=t.mark.marktype;e(H_,t.description),e(z_,t.ariaRole||("group"===n?U_:V_)),e(P_,t.ariaRoleDescription||`${n} mark`)}}function J_(e){return!1===e.aria?{[j_]:!0}:G_[e.role]?null:q_[e.role]?function(e,t){try{const n=e.items[0],r=t.caption||(()=>"");return W_(t.role||V_,t.desc,n.description||r(n))}catch(e){return null}}(e,q_[e.role]):function(e){const t=e.marktype,n="group"===t||"text"===t||e.items.some((e=>null!=e.description&&!1!==e.aria));return W_(n?U_:V_,`${t} mark container`,e.description)}(e)}function X_(e){return Qe(e.text).join(" ")}function Z_(e){try{return Qe(He(e.items).items[0].text).join(" ")}catch(e){return null}}const Q_=e=>(e+"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function ev(){let e="",t="",n="";const r=[],i=()=>t=n="",a=(e,n)=>{var r;return null!=n&&(t+=` ${e}="${r=n,Q_(r).replace(/"/g,""").replace(/\t/g,"	").replace(/\n/g,"
").replace(/\r/g,"
")}"`),o},o={open(s,...l){(a=>{t&&(e+=`${t}>${n}`,i()),r.push(a)})(s),t="<"+s;for(const e of l)for(const t in e)a(t,e[t]);return o},close(){const a=r.pop();return e+=t?t+(n?`>${n}</${a}>`:"/>"):`</${a}>`,i(),o},attr:a,text:e=>(n+=Q_(e),o),toString:()=>e};return o}const tv=e=>nv(ev(),e)+"";function nv(e,t){if(e.open(t.tagName),t.hasAttributes()){const n=t.attributes,r=n.length;for(let t=0;t<r;++t)e.attr(n[t].name,n[t].value)}if(t.hasChildNodes()){const n=t.childNodes;for(const t of n)3===t.nodeType?e.text(t.nodeValue):nv(e,t)}return e.close()}const rv={fill:"fill",fillOpacity:"fill-opacity",stroke:"stroke",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",strokeCap:"stroke-linecap",strokeJoin:"stroke-linejoin",strokeDash:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeMiterLimit:"stroke-miterlimit",opacity:"opacity"},iv={blend:"mix-blend-mode"},av={fill:"none","stroke-miterlimit":10},ov="http://www.w3.org/2000/xmlns/",sv=cy.xmlns;class lv extends u_{constructor(e){super(e),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}initialize(e,t,n,r,i){return this._defs={},this._clearDefs(),e&&(this._svg=r_(e,0,"svg",sv),this._svg.setAttributeNS(ov,"xmlns",sv),this._svg.setAttributeNS(ov,"xmlns:xlink",cy["xmlns:xlink"]),this._svg.setAttribute("version",cy.version),this._svg.setAttribute("class","marks"),i_(e,1),this._root=r_(this._svg,0,"g",sv),_v(this._root,av),i_(this._svg,1)),this.background(this._bgcolor),super.initialize(e,t,n,r,i)}background(e){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",e),super.background(...arguments)}resize(e,t,n,r){return super.resize(e,t,n,r),this._svg&&(_v(this._svg,{width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}),this._root.setAttribute("transform",`translate(${this._origin})`)),this._dirty=[],this}canvas(){return this._svg}svg(){const e=this._svg,t=this._bgcolor;if(!e)return null;let n;t&&(e.removeAttribute("style"),n=r_(e,0,"rect",sv),_v(n,{width:this._width,height:this._height,fill:t}));const r=tv(e);return t&&(e.removeChild(n),this._svg.style.setProperty("background-color",t)),r}_render(e,t){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,e,void 0,t),i_(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this}dirty(e){e.dirty!==this._dirtyID&&(e.dirty=this._dirtyID,this._dirty.push(e))}isDirty(e){return this._dirtyAll||!e._svg||!e._svg.ownerSVGElement||e.dirty===this._dirtyID}_dirtyCheck(){this._dirtyAll=!0;const e=this._dirty;if(!e.length||!this._dirtyID)return!0;const t=++this._dirtyID;let n,r,i,a,o,s,l;for(o=0,s=e.length;o<s;++o)n=e[o],r=n.mark,r.marktype!==i&&(i=r.marktype,a=qy[i]),r.zdirty&&r.dirty!==t&&(this._dirtyAll=!1,uv(n,t),r.items.forEach((e=>{e.dirty=t}))),r.zdirty||(n.exit?(a.nested&&r.items.length?(l=r.items[0],l._svg&&this._update(a,l._svg,l)):n._svg&&(l=n._svg.parentNode,l&&l.removeChild(n._svg)),n._svg=null):(n=a.nested?r.items[0]:n,n._update!==t&&(n._svg&&n._svg.ownerSVGElement?this._update(a,n._svg,n):(this._dirtyAll=!1,uv(n,t)),n._update=t)));return!this._dirtyAll}mark(e,t,n,r){if(!this.isDirty(t))return t._svg;const i=this._svg,a=t.marktype,o=qy[a],s=!1===t.interactive?"none":null,l="g"===o.tag,u=fv(t,e,n,"g",i);if("group"!==a&&null!=r&&!r.includes(a))return i_(u,0),t._svg;u.setAttribute("class",a_(t));const c=J_(t);for(const e in c)vv(u,e,c[e]);l||vv(u,"pointer-events",s),vv(u,"clip-path",t.clip?Jm(this,t,t.group):null);let d=null,f=0;const h=e=>{const t=this.isDirty(e),n=fv(e,u,d,o.tag,i);t&&(this._update(o,n,e),l&&function(e,t,n,r){t=t.lastChild.previousSibling;let i,a=0;zg(n,(n=>{i=e.mark(t,n,i,r),++a})),i_(t,1+a)}(this,n,e,r)),d=n,++f};return o.nested?t.items.length&&h(t.items[0]):zg(t,h),i_(u,f),u}_update(e,t,n){hv=t,pv=t.__values__,K_(gv,n),e.attr(gv,n,this);const r=mv[e.type];r&&r.call(this,e,t,n),hv&&this.style(hv,n)}style(e,t){if(null!=t){for(const n in rv){let r="font"===n?By(t):t[n];if(r===pv[n])continue;const i=rv[n];null==r?e.removeAttribute(i):(rm(r)&&(r=im(r,this._defs.gradient,bv())),e.setAttribute(i,r+"")),pv[n]=r}for(const n in iv)yv(e,iv[n],t[n])}}defs(){const e=this._svg,t=this._defs;let n=t.el,r=0;for(const i in t.gradient)n||(t.el=n=r_(e,1,"defs",sv)),r=cv(n,t.gradient[i],r);for(const i in t.clipping)n||(t.el=n=r_(e,1,"defs",sv)),r=dv(n,t.clipping[i],r);n&&(0===r?(e.removeChild(n),t.el=null):i_(n,r))}_clearDefs(){const e=this._defs;e.gradient={},e.clipping={}}}function uv(e,t){for(;e&&e.dirty!==t;e=e.mark.group){if(e.dirty=t,!e.mark||e.mark.dirty===t)return;e.mark.dirty=t}}function cv(e,t,n){let r,i,a;if("radial"===t.gradient){let r=r_(e,n++,"pattern",sv);_v(r,{id:nm+t.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),r=r_(r,0,"rect",sv),_v(r,{width:1,height:1,fill:`url(${bv()}#${t.id})`}),_v(e=r_(e,n++,"radialGradient",sv),{id:t.id,fx:t.x1,fy:t.y1,fr:t.r1,cx:t.x2,cy:t.y2,r:t.r2})}else _v(e=r_(e,n++,"linearGradient",sv),{id:t.id,x1:t.x1,x2:t.x2,y1:t.y1,y2:t.y2});for(r=0,i=t.stops.length;r<i;++r)a=r_(e,r,"stop",sv),a.setAttribute("offset",t.stops[r].offset),a.setAttribute("stop-color",t.stops[r].color);return i_(e,r),n}function dv(e,t,n){let r;return(e=r_(e,n,"clipPath",sv)).setAttribute("id",t.id),t.path?(r=r_(e,0,"path",sv),r.setAttribute("d",t.path)):(r=r_(e,0,"rect",sv),_v(r,{x:0,y:0,width:t.width,height:t.height})),i_(e,1),n+1}function fv(e,t,n,r,i){let a,o=e._svg;if(!o&&(a=t.ownerDocument,o=t_(a,r,sv),e._svg=o,e.mark&&(o.__data__=e,o.__values__={fill:"default"},"g"===r))){const t=t_(a,"path",sv);o.appendChild(t),t.__data__=e;const n=t_(a,"g",sv);o.appendChild(n),n.__data__=e;const r=t_(a,"path",sv);o.appendChild(r),r.__data__=e,r.__values__={fill:"default"}}return(o.ownerSVGElement!==i||function(e,t){return e.parentNode&&e.parentNode.childNodes.length>1&&e.previousSibling!=t}(o,n))&&t.insertBefore(o,n?n.nextSibling:t.firstChild),o}let hv=null,pv=null;const mv={group(e,t,n){const r=hv=t.childNodes[2];pv=r.__values__,e.foreground(gv,n,this),pv=t.__values__,hv=t.childNodes[1],e.content(gv,n,this);const i=hv=t.childNodes[0];e.background(gv,n,this);const a=!1===n.mark.interactive?"none":null;if(a!==pv.events&&(vv(r,"pointer-events",a),vv(i,"pointer-events",a),pv.events=a),n.strokeForeground&&n.stroke){const e=n.fill;vv(r,"display",null),this.style(i,n),vv(i,"stroke",null),e&&(n.fill=null),pv=r.__values__,this.style(r,n),e&&(n.fill=e),hv=null}else vv(r,"display","none")},image(e,t,n){!1===n.smooth?(yv(t,"image-rendering","optimizeSpeed"),yv(t,"image-rendering","pixelated")):yv(t,"image-rendering",null)},text(e,t,n){const r=Ly(n);let i,a,o,s;Le(r)?(a=r.map((e=>Fy(n,e))),i=a.join("\n"),i!==pv.text&&(i_(t,0),o=t.ownerDocument,s=ky(n),a.forEach(((e,r)=>{const i=t_(o,"tspan",sv);i.__data__=n,i.textContent=e,r&&(i.setAttribute("x",0),i.setAttribute("dy",s)),t.appendChild(i)})),pv.text=i)):(a=Fy(n,r),a!==pv.text&&(t.textContent=a,pv.text=a)),vv(t,"font-family",By(n)),vv(t,"font-size",Ry(n)+"px"),vv(t,"font-style",n.fontStyle),vv(t,"font-variant",n.fontVariant),vv(t,"font-weight",n.fontWeight)}};function gv(e,t,n){t!==pv[e]&&(n?function(e,t,n,r){null!=n?e.setAttributeNS(r,t,n):e.removeAttributeNS(r,t)}(hv,e,t,n):vv(hv,e,t),pv[e]=t)}function yv(e,t,n){n!==pv[t]&&(null==n?e.style.removeProperty(t):e.style.setProperty(t,n+""),pv[t]=n)}function _v(e,t){for(const n in t)vv(e,n,t[n])}function vv(e,t,n){null!=n?e.setAttribute(t,n):e.removeAttribute(t)}function bv(){let e;return"undefined"==typeof window?"":(e=window.location).hash?e.href.slice(0,-e.hash.length):e.href}const xv={svgMarkTypes:["text"],svgOnTop:!0,debug:!1};class Ev extends u_{constructor(e){super(e),this._svgRenderer=new lv(e),this._canvasRenderer=new N_(e)}initialize(e,t,n,r,i){this._root_el=r_(e,0,"div");const a=r_(this._root_el,0,"div"),o=r_(this._root_el,1,"div");return this._root_el.style.position="relative",xv.debug||(a.style.height="100%",o.style.position="absolute",o.style.top="0",o.style.left="0",o.style.height="100%",o.style.width="100%"),this._svgEl=xv.svgOnTop?o:a,this._canvasEl=xv.svgOnTop?a:o,this._svgEl.style.pointerEvents="none",this._canvasRenderer.initialize(this._canvasEl,t,n,r,i),this._svgRenderer.initialize(this._svgEl,t,n,r,i),super.initialize(e,t,n,r,i)}dirty(e){return xv.svgMarkTypes.includes(e.mark.marktype)?this._svgRenderer.dirty(e):this._canvasRenderer.dirty(e),this}_render(e,t){const n=(t??["arc","area","image","line","path","rect","rule","shape","symbol","text","trail"]).filter((e=>!xv.svgMarkTypes.includes(e)));this._svgRenderer.render(e,xv.svgMarkTypes),this._canvasRenderer.render(e,n)}resize(e,t,n,r){return super.resize(e,t,n,r),this._svgRenderer.resize(e,t,n,r),this._canvasRenderer.resize(e,t,n,r),this}background(e){return xv.svgOnTop?this._canvasRenderer.background(e):this._svgRenderer.background(e),this}}const Sv="canvas",Av=Sv,$v="svg",Tv={};function Ov(e,t){return e=String(e||"").toLowerCase(),arguments.length>1?(Tv[e]=t,this):Tv[e]}function Dv(e,t,n,r){if(function(e,t,n){return e.bounds&&t.intersects(e.bounds)&&("group"===e.marktype||!1!==e.interactive&&(!n||n(e)))}(e,t,n)){const i=e.items,a=e.marktype,o=i.length;let s=0;if("group"===a)for(;s<o;++s)Mv(i[s],t,n,r);else for(const e=qy[a].isect;s<o;++s){const n=i[s];wv(n,t,e)&&r.push(n)}}return r}function Mv(e,t,n,r){n&&n(e.mark)&&wv(e,t,qy.group.isect)&&r.push(e);const i=e.items,a=i&&i.length;if(a){const o=e.x||0,s=e.y||0;t.translate(-o,-s);for(let e=0;e<a;++e)Dv(i[e],t,n,r);t.translate(o,s)}return r}function wv(e,t,n){const r=e.bounds;return t.encloses(r)||t.intersects(r)&&n(e,t)}Tv[Sv]=Tv.png={renderer:N_,headless:N_,handler:w_},Tv.svg={renderer:lv,headless:class extends u_{constructor(e){super(e),this._text=null,this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(e){const t=ev();t.open("svg",ut({},cy,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;return n&&"transparent"!==n&&"none"!==n&&t.open("rect",{width:this._width,height:this._height,fill:n}).close(),t.open("g",av,{transform:"translate("+this._origin+")"}),this.mark(t,e),t.close(),this.defs(t),this._text=t.close()+"",this}mark(e,t){const n=qy[t.marktype],r=n.tag,i=[K_,n.attr];e.open("g",{class:a_(t),"clip-path":t.clip?Jm(this,t,t.group):null},J_(t),{"pointer-events":"g"!==r&&!1===t.interactive?"none":null});const a=a=>{const o=this.href(a);if(o&&e.open("a",o),e.open(r,this.attr(t,a,i,"g"!==r?r:null)),"text"===r){const t=Ly(a);if(Le(t)){const n={x:0,dy:ky(a)};for(let r=0;r<t.length;++r)e.open("tspan",r?n:null).text(Fy(a,t[r])).close()}else e.text(Fy(a,t))}else if("g"===r){const r=a.strokeForeground,i=a.fill,o=a.stroke;r&&o&&(a.stroke=null),e.open("path",this.attr(t,a,n.background,"bgrect")).close(),e.open("g",this.attr(t,a,n.content)),zg(a,(t=>this.mark(e,t))),e.close(),r&&o?(i&&(a.fill=null),a.stroke=o,e.open("path",this.attr(t,a,n.foreground,"bgrect")).close(),i&&(a.fill=i)):e.open("path",this.attr(t,a,n.foreground,"bgfore")).close()}e.close(),o&&e.close()};return n.nested?t.items&&t.items.length&&a(t.items[0]):zg(t,a),e.close()}href(e){const t=e.href;let n;if(t){if(n=this._hrefs&&this._hrefs[t])return n;this.sanitizeURL(t).then((e=>{e["xlink:href"]=e.href,e.href=null,(this._hrefs||(this._hrefs={}))[t]=e}))}return null}attr(e,t,n,r){const i={},a=(e,t,n,r)=>{i[r||e]=t};return Array.isArray(n)?n.forEach((e=>e(a,t,this))):n(a,t,this),r&&function(e,t,n,r,i){let a;if(null==t)return e;if("bgrect"===r&&!1===n.interactive&&(e["pointer-events"]="none"),"bgfore"===r&&(!1===n.interactive&&(e["pointer-events"]="none"),e.display="none",null!==t.fill))return e;"image"===r&&!1===t.smooth&&(a=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),"text"===r&&(e["font-family"]=By(t),e["font-size"]=Ry(t)+"px",e["font-style"]=t.fontStyle,e["font-variant"]=t.fontVariant,e["font-weight"]=t.fontWeight);for(const n in rv){let r=t[n];const a=rv[n];("transparent"!==r||"fill"!==a&&"stroke"!==a)&&null!=r&&(rm(r)&&(r=im(r,i.gradient,"")),e[a]=r)}for(const e in iv){const n=t[e];null!=n&&(a=a||[],a.push(`${iv[e]}: ${n};`))}a&&(e.style=a.join(" "))}(i,t,e,r,this._defs),i}defs(e){const t=this._defs.gradient,n=this._defs.clipping;if(0!==Object.keys(t).length+Object.keys(n).length){e.open("defs");for(const n in t){const r=t[n],i=r.stops;"radial"===r.gradient?(e.open("pattern",{id:nm+n,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),e.open("rect",{width:"1",height:"1",fill:"url(#"+n+")"}).close(),e.close(),e.open("radialGradient",{id:n,fx:r.x1,fy:r.y1,fr:r.r1,cx:r.x2,cy:r.y2,r:r.r2})):e.open("linearGradient",{id:n,x1:r.x1,x2:r.x2,y1:r.y1,y2:r.y2});for(let t=0;t<i.length;++t)e.open("stop",{offset:i[t].offset,"stop-color":i[t].color}).close();e.close()}for(const t in n){const r=n[t];e.open("clipPath",{id:t}),r.path?e.open("path",{d:r.path}).close():e.open("rect",{x:0,y:0,width:r.width,height:r.height}).close(),e.close()}e.close()}}},handler:class extends s_{constructor(e,t){super(e,t);const n=this;n._hrefHandler=B_(n,((e,t)=>{t&&t.href&&n.handleHref(e,t,t.href)})),n._tooltipHandler=B_(n,((e,t)=>{n.handleTooltip(e,t,e.type!==D_)}))}initialize(e,t,n){let r=this._svg;return r&&(r.removeEventListener(M_,this._hrefHandler),r.removeEventListener(O_,this._tooltipHandler),r.removeEventListener(D_,this._tooltipHandler)),this._svg=r=e&&n_(e,"svg"),r&&(r.addEventListener(M_,this._hrefHandler),r.addEventListener(O_,this._tooltipHandler),r.addEventListener(D_,this._tooltipHandler)),super.initialize(e,t,n)}canvas(){return this._svg}on(e,t){const n=this.eventName(e),r=this._handlers;if(this._handlerIndex(r[n],e,t)<0){const i={type:e,handler:t,listener:B_(this,t)};(r[n]||(r[n]=[])).push(i),this._svg&&this._svg.addEventListener(n,i.listener)}return this}off(e,t){const n=this.eventName(e),r=this._handlers[n],i=this._handlerIndex(r,e,t);return i>=0&&(this._svg&&this._svg.removeEventListener(n,r[i].listener),r.splice(i,1)),this}}},Tv.hybrid={renderer:Ev,headless:Ev,handler:class extends w_{constructor(e,t){super(e,t)}initialize(e,t,n){const r=r_(r_(e,0,"div"),xv.svgOnTop?0:1,"div");return super.initialize(r,t,n)}}},Tv.none={};const Iv=new Xm,Cv="top",Rv="left",kv="right",Lv="bottom",Nv="start",Fv="middle",Bv="end",jv="x",Hv="y",zv="group",Pv="axis",Uv="title",Vv="legend",Wv="row-header",Gv="row-footer",qv="row-title",Yv="column-header",Kv="column-footer",Jv="column-title",Xv="fit-x",Zv="fit-y",Qv="none",eb="all",tb="each",nb="flush",rb="column",ib="row";function ab(e){Vo.call(this,null,e)}function ob(e,t,n){return t(e.bounds.clear(),e,n)}pt(ab,Vo,{transform(e,t){const n=t.dataflow,r=e.mark,i=r.marktype,a=qy[i],o=a.bound;let s,l=r.bounds;if(a.nested)r.items.length&&n.dirty(r.items[0]),l=ob(r,o),r.items.forEach((e=>{e.bounds.clear().union(l)}));else if(i===zv||e.modified())switch(t.visit(t.MOD,(e=>n.dirty(e))),l.clear(),r.items.forEach((e=>l.union(ob(e,o)))),r.role){case Pv:case Vv:case Uv:t.reflow()}else s=t.changed(t.REM),t.visit(t.ADD,(e=>{l.union(ob(e,o))})),t.visit(t.MOD,(e=>{s=s||l.alignsWith(e.bounds),n.dirty(e),l.union(ob(e,o))})),s&&(l.clear(),r.items.forEach((e=>l.union(e.bounds))));return function(e){const t=e.clip;if(et(t))t(xg(Iv.clear()));else{if(!t)return;Iv.set(0,0,e.group.width,e.group.height)}e.bounds.intersect(Iv)}(r),t.modifies("bounds")}});const sb=":vega_identifier:";function lb(e){Vo.call(this,0,e)}function ub(e){Vo.call(this,null,e)}function cb(e){Vo.call(this,null,e)}lb.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},pt(lb,Vo,{transform(e,t){const n=(i=t.dataflow)._signals[sb]||(i._signals[sb]=i.add(0)),r=e.as;var i;let a=n.value;return t.visit(t.ADD,(e=>e[r]=e[r]||++a)),n.set(this.value=a),t}}),pt(ub,Vo,{transform(e,t){let n=this.value;n||(n=t.dataflow.scenegraph().mark(e.markdef,function(e){const t=e.groups,n=e.parent;return t&&1===t.size?t.get(Object.keys(t.object)[0]):t&&n?t.lookup(n):null}(e),e.index),n.group.context=e.context,e.context.group||(e.context.group=n.group),n.source=this.source,n.clip=e.clip,n.interactive=e.interactive,this.value=n);const r=n.marktype===zv?Qm:Zm;return t.visit(t.ADD,(e=>r.call(e,n))),(e.modified("clip")||e.modified("interactive"))&&(n.clip=e.clip,n.interactive=!!e.interactive,n.zdirty=!0,t.reflow()),n.items=t.source,t}});const db={parity:e=>e.filter(((e,t)=>t%2?e.opacity=0:1)),greedy:(e,t)=>{let n;return e.filter(((e,r)=>r&&fb(n.bounds,e.bounds,t)?e.opacity=0:(n=e,1)))}},fb=(e,t,n)=>n>Math.max(t.x1-e.x2,e.x1-t.x2,t.y1-e.y2,e.y1-t.y2),hb=(e,t)=>{for(var n,r=1,i=e.length,a=e[0].bounds;r<i;a=n,++r)if(fb(a,n=e[r].bounds,t))return!0},pb=e=>{const t=e.bounds;return t.width()>1&&t.height()>1},mb=e=>(e.forEach((e=>e.opacity=1)),e),gb=(e,t)=>e.reflow(t.modified()).modifies("opacity");function yb(e){Vo.call(this,null,e)}pt(cb,Vo,{transform(e,t){const n=db[e.method]||db.parity,r=e.separation||0;let i,a,o=t.materialize(t.SOURCE).source;if(!o||!o.length)return;if(!e.method)return e.modified("method")&&(mb(o),t=gb(t,e)),t;if(o=o.filter(pb),!o.length)return;if(e.sort&&(o=o.slice().sort(e.sort)),i=mb(o),t=gb(t,e),i.length>=3&&hb(i,r)){do{i=n(i,r)}while(i.length>=3&&hb(i,r));i.length<3&&!He(o).opacity&&(i.length>1&&(He(i).opacity=0),He(o).opacity=1)}e.boundScale&&e.boundTolerance>=0&&(a=((e,t,n)=>{var r=e.range(),i=new Xm;return t===Cv||t===Lv?i.set(r[0],-1/0,r[1],1/0):i.set(-1/0,r[0],1/0,r[1]),i.expand(n||1),e=>i.encloses(e.bounds)})(e.boundScale,e.boundOrient,+e.boundTolerance),o.forEach((e=>{a(e)||(e.opacity=0)})));const s=i[0].mark.bounds.clear();return o.forEach((e=>{e.opacity&&s.union(e.bounds)})),t}}),pt(yb,Vo,{transform(e,t){const n=t.dataflow;if(t.visit(t.ALL,(e=>n.dirty(e))),t.fields&&t.fields.zindex){const e=t.source&&t.source[0];e&&(e.mark.zdirty=!0)}}});const _b=new Xm;function vb(e,t,n){return e[t]===n?0:(e[t]=n,1)}function bb(e){var t=e.items[0].orient;return t===Rv||t===kv}function xb(e,t,n,r){var i,a,o=t.items[0],s=o.datum,l=null!=o.translate?o.translate:.5,u=o.orient,c=function(e){let t=+e.grid;return[e.ticks?t++:-1,e.labels?t++:-1,t+ +e.domain]}(s),d=o.range,f=o.offset,h=o.position,p=o.minExtent,m=o.maxExtent,g=s.title&&o.items[c[2]].items[0],y=o.titlePadding,_=o.bounds,v=g&&Ny(g),b=0,x=0;switch(_b.clear().union(_),_.clear(),(i=c[0])>-1&&_.union(o.items[i].bounds),(i=c[1])>-1&&_.union(o.items[i].bounds),u){case Cv:b=h||0,x=-f,a=Math.max(p,Math.min(m,-_.y1)),_.add(0,-a).add(d,0),g&&Eb(e,g,a,y,v,0,-1,_);break;case Rv:b=-f,x=h||0,a=Math.max(p,Math.min(m,-_.x1)),_.add(-a,0).add(0,d),g&&Eb(e,g,a,y,v,1,-1,_);break;case kv:b=n+f,x=h||0,a=Math.max(p,Math.min(m,_.x2)),_.add(0,0).add(a,d),g&&Eb(e,g,a,y,v,1,1,_);break;case Lv:b=h||0,x=r+f,a=Math.max(p,Math.min(m,_.y2)),_.add(0,0).add(d,a),g&&Eb(e,g,a,y,0,0,1,_);break;default:b=o.x,x=o.y}return rg(_.translate(b,x),o),vb(o,"x",b+l)|vb(o,"y",x+l)&&(o.bounds=_b,e.dirty(o),o.bounds=_,e.dirty(o)),o.mark.bounds.clear().union(_)}function Eb(e,t,n,r,i,a,o,s){const l=t.bounds;if(t.auto){const s=o*(n+i+r);let u=0,c=0;e.dirty(t),a?u=(t.x||0)-(t.x=s):c=(t.y||0)-(t.y=s),t.mark.bounds.clear().union(l.translate(-u,-c)),e.dirty(t)}s.union(l)}const Sb=(e,t)=>Math.floor(Math.min(e,t)),Ab=(e,t)=>Math.ceil(Math.max(e,t));function $b(e){return(new Xm).set(0,0,e.width||0,e.height||0)}function Tb(e){const t=e.bounds.clone();return t.empty()?t.set(0,0,0,0):t.translate(-(e.x||0),-(e.y||0))}function Ob(e,t,n){const r=Ne(e)?e[t]:e;return null!=r?r:void 0!==n?n:0}function Db(e){return e<0?Math.ceil(-e):0}function Mb(e,t,n){var r,i,a,o,s,l,u,c,d,f,h,p=!n.nodirty,m=n.bounds===nb?$b:Tb,g=_b.set(0,0,0,0),y=Ob(n.align,rb),_=Ob(n.align,ib),v=Ob(n.padding,rb),b=Ob(n.padding,ib),x=n.columns||t.length,E=x<=0?1:Math.ceil(t.length/x),S=t.length,A=Array(S),$=Array(x),T=0,O=Array(S),D=Array(E),M=0,w=Array(S),I=Array(S),C=Array(S);for(i=0;i<x;++i)$[i]=0;for(i=0;i<E;++i)D[i]=0;for(i=0;i<S;++i)l=t[i],s=C[i]=m(l),l.x=l.x||0,w[i]=0,l.y=l.y||0,I[i]=0,a=i%x,o=~~(i/x),T=Math.max(T,u=Math.ceil(s.x2)),M=Math.max(M,c=Math.ceil(s.y2)),$[a]=Math.max($[a],u),D[o]=Math.max(D[o],c),A[i]=v+Db(s.x1),O[i]=b+Db(s.y1),p&&e.dirty(t[i]);for(i=0;i<S;++i)i%x==0&&(A[i]=0),i<x&&(O[i]=0);if(y===tb)for(a=1;a<x;++a){for(h=0,i=a;i<S;i+=x)h<A[i]&&(h=A[i]);for(i=a;i<S;i+=x)A[i]=h+$[a-1]}else if(y===eb){for(h=0,i=0;i<S;++i)i%x&&h<A[i]&&(h=A[i]);for(i=0;i<S;++i)i%x&&(A[i]=h+T)}else for(y=!1,a=1;a<x;++a)for(i=a;i<S;i+=x)A[i]+=$[a-1];if(_===tb)for(o=1;o<E;++o){for(h=0,r=(i=o*x)+x;i<r;++i)h<O[i]&&(h=O[i]);for(i=o*x;i<r;++i)O[i]=h+D[o-1]}else if(_===eb){for(h=0,i=x;i<S;++i)h<O[i]&&(h=O[i]);for(i=x;i<S;++i)O[i]=h+M}else for(_=!1,o=1;o<E;++o)for(r=(i=o*x)+x;i<r;++i)O[i]+=D[o-1];for(d=0,i=0;i<S;++i)d=A[i]+(i%x?d:0),w[i]+=d-t[i].x;for(a=0;a<x;++a)for(f=0,i=a;i<S;i+=x)f+=O[i],I[i]+=f-t[i].y;if(y&&Ob(n.center,rb)&&E>1)for(i=0;i<S;++i)(d=(s=y===eb?T:$[i%x])-C[i].x2-t[i].x-w[i])>0&&(w[i]+=d/2);if(_&&Ob(n.center,ib)&&1!==x)for(i=0;i<S;++i)(f=(s=_===eb?M:D[~~(i/x)])-C[i].y2-t[i].y-I[i])>0&&(I[i]+=f/2);for(i=0;i<S;++i)g.union(C[i].translate(w[i],I[i]));switch(d=Ob(n.anchor,jv),f=Ob(n.anchor,Hv),Ob(n.anchor,rb)){case Bv:d-=g.width();break;case Fv:d-=g.width()/2}switch(Ob(n.anchor,ib)){case Bv:f-=g.height();break;case Fv:f-=g.height()/2}for(d=Math.round(d),f=Math.round(f),g.clear(),i=0;i<S;++i)t[i].mark.bounds.clear();for(i=0;i<S;++i)(l=t[i]).x+=w[i]+=d,l.y+=I[i]+=f,g.union(l.mark.bounds.union(l.bounds.translate(w[i],I[i]))),p&&e.dirty(l);return g}function wb(e,t){return"x1"===t?e.x||0:"y1"===t?e.y||0:"x2"===t?(e.x||0)+(e.width||0):"y2"===t?(e.y||0)+(e.height||0):void 0}function Ib(e,t){return e.bounds[t]}function Cb(e,t,n,r,i,a,o,s,l,u,c,d,f,h){var p,m,g,y,_,v,b,x,E,S=n.length,A=0,$=0;if(!S)return A;for(p=c;p<S;p+=d)n[p]&&(A=o(A,l(n[p],u)));if(!t.length)return A;for(t.length>i&&(e.warn("Grid headers exceed limit: "+i),t=t.slice(0,i)),A+=a,m=0,y=t.length;m<y;++m)e.dirty(t[m]),t[m].mark.bounds.clear();for(p=c,m=0,y=t.length;m<y;++m,p+=d){for(_=(v=t[m]).mark.bounds,g=p;g>=0&&null==(b=n[g]);g-=f);s?(x=null==h?b.x:Math.round(b.bounds.x1+h*b.bounds.width()),E=A):(x=A,E=null==h?b.y:Math.round(b.bounds.y1+h*b.bounds.height())),_.union(v.bounds.translate(x-(v.x||0),E-(v.y||0))),v.x=x,v.y=E,e.dirty(v),$=o($,_[u])}return $}function Rb(e,t,n,r,i,a){if(t){e.dirty(t);var o=n,s=n;r?o=Math.round(i.x1+a*i.width()):s=Math.round(i.y1+a*i.height()),t.bounds.translate(o-(t.x||0),s-(t.y||0)),t.mark.bounds.clear().union(t.bounds),t.x=o,t.y=s,e.dirty(t)}}function kb(e,t,n,r,i,a,o){const s=function(e,t){const n=e[t]||{};return(t,r)=>null!=n[t]?n[t]:null!=e[t]?e[t]:r}(n,t),l=function(e,t){let n=-1/0;return e.forEach((e=>{null!=e.offset&&(n=Math.max(n,e.offset))})),n>-1/0?n:t}(e,s("offset",0)),u=s("anchor",Nv),c=u===Bv?1:u===Fv?.5:0,d={align:tb,bounds:s("bounds",nb),columns:"vertical"===s("direction")?1:e.length,padding:s("margin",8),center:s("center"),nodirty:!0};switch(t){case Rv:d.anchor={x:Math.floor(r.x1)-l,column:Bv,y:c*(o||r.height()+2*r.y1),row:u};break;case kv:d.anchor={x:Math.ceil(r.x2)+l,y:c*(o||r.height()+2*r.y1),row:u};break;case Cv:d.anchor={y:Math.floor(i.y1)-l,row:Bv,x:c*(a||i.width()+2*i.x1),column:u};break;case Lv:d.anchor={y:Math.ceil(i.y2)+l,x:c*(a||i.width()+2*i.x1),column:u};break;case"top-left":d.anchor={x:l,y:l};break;case"top-right":d.anchor={x:a-l,y:l,column:Bv};break;case"bottom-left":d.anchor={x:l,y:o-l,row:Bv};break;case"bottom-right":d.anchor={x:a-l,y:o-l,column:Bv,row:Bv}}return d}function Lb(e,t){var n,r,i=t.items[0],a=i.datum,o=i.orient,s=i.bounds,l=i.x,u=i.y;return i._bounds?i._bounds.clear().union(s):i._bounds=s.clone(),s.clear(),function(e,t,n){var r=t.padding,i=r-n.x,a=r-n.y;if(t.datum.title){var o=t.items[1].items[0],s=o.anchor,l=t.titlePadding||0,u=r-o.x,c=r-o.y;switch(o.orient){case Rv:i+=Math.ceil(o.bounds.width())+l;break;case kv:case Lv:break;default:a+=o.bounds.height()+l}switch((i||a)&&Fb(e,n,i,a),o.orient){case Rv:c+=Nb(t,n,o,s,1,1);break;case kv:u+=Nb(t,n,o,Bv,0,0)+l,c+=Nb(t,n,o,s,1,1);break;case Lv:u+=Nb(t,n,o,s,0,0),c+=Nb(t,n,o,Bv,-1,0,1)+l;break;default:u+=Nb(t,n,o,s,0,0)}(u||c)&&Fb(e,o,u,c),(u=Math.round(o.bounds.x1-r))<0&&(Fb(e,n,-u,0),Fb(e,o,-u,0))}else(i||a)&&Fb(e,n,i,a)}(e,i,i.items[0].items[0]),s=function(e,t){return e.items.forEach((e=>t.union(e.bounds))),t.x1=e.padding,t.y1=e.padding,t}(i,s),n=2*i.padding,r=2*i.padding,s.empty()||(n=Math.ceil(s.width()+n),r=Math.ceil(s.height()+r)),"symbol"===a.type&&function(e){const t=e.reduce(((e,t)=>(e[t.column]=Math.max(t.bounds.x2-t.x,e[t.column]||0),e)),{});e.forEach((e=>{e.width=t[e.column],e.height=e.bounds.y2-e.y}))}(i.items[0].items[0].items[0].items),o!==Qv&&(i.x=l=0,i.y=u=0),i.width=n,i.height=r,rg(s.set(l,u,l+n,u+r),i),i.mark.bounds.clear().union(s),i}function Nb(e,t,n,r,i,a,o){const s="symbol"!==e.datum.type,l=n.datum.vgrad,u=(!s||!a&&l||o?t:t.items[0]).bounds[i?"y2":"x2"]-e.padding,c=l&&a?u:0,d=l&&a?0:u,f=i<=0?0:Ny(n);return Math.round(r===Nv?c:r===Bv?d-f:.5*(u-f))}function Fb(e,t,n,r){t.x+=n,t.y+=r,t.bounds.translate(n,r),t.mark.bounds.translate(n,r),e.dirty(t)}function Bb(e){Vo.call(this,null,e)}function jb(e,t){let n=0;if(void 0===t)for(let t of e)(t=+t)&&(n+=t);else{let r=-1;for(let i of e)(i=+t(i,++r,e))&&(n+=i)}return n}function Hb(e){Vo.call(this,null,e)}function zb(e){Vo.call(this,null,e)}function Pb(){return po({})}function Ub(e){Vo.call(this,null,e)}function Vb(e){Vo.call(this,[],e)}pt(Bb,Vo,{transform(e,t){const n=t.dataflow;return e.mark.items.forEach((t=>{e.layout&&function(e,t,n){var r,i,a,o,s,l,u,c=function(e){var t,n,r=e.items,i=r.length,a=0;const o={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;a<i;++a)if(n=(t=r[a]).items,t.marktype===zv)switch(t.role){case Pv:case Vv:case Uv:break;case Wv:o.rowheaders.push(...n);break;case Gv:o.rowfooters.push(...n);break;case Yv:o.colheaders.push(...n);break;case Kv:o.colfooters.push(...n);break;case qv:o.rowtitle=n[0];break;case Jv:o.coltitle=n[0];break;default:o.marks.push(...n)}return o}(t),d=c.marks,f=n.bounds===nb?wb:Ib,h=n.offset,p=n.columns||d.length,m=p<=0?1:Math.ceil(d.length/p),g=m*p;const y=Mb(e,d,n);y.empty()&&y.set(0,0,0,0),c.rowheaders&&(l=Ob(n.headerBand,ib,null),r=Cb(e,c.rowheaders,d,0,m,-Ob(h,"rowHeader"),Sb,0,f,"x1",0,p,1,l)),c.colheaders&&(l=Ob(n.headerBand,rb,null),i=Cb(e,c.colheaders,d,0,p,-Ob(h,"columnHeader"),Sb,1,f,"y1",0,1,p,l)),c.rowfooters&&(l=Ob(n.footerBand,ib,null),a=Cb(e,c.rowfooters,d,0,m,Ob(h,"rowFooter"),Ab,0,f,"x2",p-1,p,1,l)),c.colfooters&&(l=Ob(n.footerBand,rb,null),o=Cb(e,c.colfooters,d,0,p,Ob(h,"columnFooter"),Ab,1,f,"y2",g-p,1,p,l)),c.rowtitle&&(s=Ob(n.titleAnchor,ib),u=Ob(h,"rowTitle"),u=s===Bv?a+u:r-u,l=Ob(n.titleBand,ib,.5),Rb(e,c.rowtitle,u,0,y,l)),c.coltitle&&(s=Ob(n.titleAnchor,rb),u=Ob(h,"columnTitle"),u=s===Bv?o+u:i-u,l=Ob(n.titleBand,rb,.5),Rb(e,c.coltitle,u,1,y,l))}(n,t,e.layout),function(e,t,n){var r,i,a,o,s,l=t.items,u=Math.max(0,t.width||0),c=Math.max(0,t.height||0),d=(new Xm).set(0,0,u,c),f=d.clone(),h=d.clone(),p=[];for(o=0,s=l.length;o<s;++o)switch((i=l[o]).role){case Pv:(bb(i)?f:h).union(xb(e,i,u,c));break;case Uv:r=i;break;case Vv:p.push(Lb(e,i));break;case"frame":case"scope":case Wv:case Gv:case qv:case Yv:case Kv:case Jv:f.union(i.bounds),h.union(i.bounds);break;default:d.union(i.bounds)}if(p.length){const t={};p.forEach((e=>{(a=e.orient||kv)!==Qv&&(t[a]||(t[a]=[])).push(e)}));for(const r in t){const i=t[r];Mb(e,i,kb(i,r,n.legends,f,h,u,c))}p.forEach((t=>{const r=t.bounds;if(r.equals(t._bounds)||(t.bounds=t._bounds,e.dirty(t),t.bounds=r,e.dirty(t)),!n.autosize||"fit"!==n.autosize.type&&n.autosize.type!==Xv&&n.autosize.type!==Zv)d.union(r);else switch(t.orient){case Rv:case kv:d.add(r.x1,0).add(r.x2,0);break;case Cv:case Lv:d.add(0,r.y1).add(0,r.y2)}}))}d.union(f).union(h),r&&d.union(function(e,t,n,r,i){var a,o=t.items[0],s=o.frame,l=o.orient,u=o.anchor,c=o.offset,d=o.padding,f=o.items[0].items[0],h=o.items[1]&&o.items[1].items[0],p=l===Rv||l===kv?r:n,m=0,g=0,y=0,_=0,v=0;if(s!==zv?l===Rv?(m=i.y2,p=i.y1):l===kv?(m=i.y1,p=i.y2):(m=i.x1,p=i.x2):l===Rv&&(m=r,p=0),a=u===Nv?m:u===Bv?p:(m+p)/2,h&&h.text){switch(l){case Cv:case Lv:v=f.bounds.height()+d;break;case Rv:_=f.bounds.width()+d;break;case kv:_=-f.bounds.width()-d}_b.clear().union(h.bounds),_b.translate(_-(h.x||0),v-(h.y||0)),vb(h,"x",_)|vb(h,"y",v)&&(e.dirty(h),h.bounds.clear().union(_b),h.mark.bounds.clear().union(_b),e.dirty(h)),_b.clear().union(h.bounds)}else _b.clear();switch(_b.union(f.bounds),l){case Cv:g=a,y=i.y1-_b.height()-c;break;case Rv:g=i.x1-_b.width()-c,y=a;break;case kv:g=i.x2+_b.width()+c,y=a;break;case Lv:g=a,y=i.y2+c;break;default:g=o.x,y=o.y}return vb(o,"x",g)|vb(o,"y",y)&&(_b.translate(g,y),e.dirty(o),o.bounds.clear().union(_b),t.bounds.clear().union(_b),e.dirty(o)),o.bounds}(e,r,u,c,d)),t.clip&&d.set(0,0,t.width||0,t.height||0),function(e,t,n,r){const i=r.autosize||{},a=i.type;if(e._autosize<1||!a)return;let o=e._width,s=e._height,l=Math.max(0,t.width||0),u=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,t.height||0),d=Math.max(0,Math.ceil(-n.y1));const f=Math.max(0,Math.ceil(n.x2-l)),h=Math.max(0,Math.ceil(n.y2-c));if("padding"===i.contains){const t=e.padding();o-=t.left+t.right,s-=t.top+t.bottom}a===Qv?(u=0,d=0,l=o,c=s):"fit"===a?(l=Math.max(0,o-u-f),c=Math.max(0,s-d-h)):a===Xv?(l=Math.max(0,o-u-f),s=c+d+h):a===Zv?(o=l+u+f,c=Math.max(0,s-d-h)):"pad"===a&&(o=l+u+f,s=c+d+h),e._resizeView(o,s,l,c,[u,d],i.resize)}(e,t,d,n)}(n,t,e)})),function(e){return e&&"legend-entry"!==e.mark.role}(e.mark.group)?t.reflow():t}}),pt(Hb,Vo,{transform(e,t){if(this.value&&!e.modified())return t.StopPropagation;var n=t.dataflow.locale(),r=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=this.value,a=e.scale,o=jp(a,null==e.count?e.values?e.values.length:10:e.count,e.minstep),s=e.format||Pp(n,a,o,e.formatSpecifier,e.formatType,!!e.values),l=e.values?Hp(a,e.values,o):zp(a,o);return i&&(r.rem=i),i=l.map(((e,t)=>po({index:t/(l.length-1||1),value:e,label:s(e)}))),e.extra&&i.length&&i.push(po({index:-1,extra:{value:i[0].value},label:""})),r.source=i,r.add=i,this.value=i,r}}),pt(zb,Vo,{transform(e,t){var n=t.dataflow,r=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.item||Pb,a=e.key||fo,o=this.value;return Le(r.encode)&&(r.encode=null),o&&(e.modified("key")||t.modified(a))&&_e("DataJoin does not support modified key function or fields."),o||(t=t.addAll(),this.value=o=function(e){const t=ht().test((e=>e.exit));return t.lookup=n=>t.get(e(n)),t}(a)),t.visit(t.ADD,(e=>{const t=a(e);let n=o.get(t);n?n.exit?(o.empty--,r.add.push(n)):r.mod.push(n):(n=i(e),o.set(t,n),r.add.push(n)),n.datum=e,n.exit=!1})),t.visit(t.MOD,(e=>{const t=a(e),n=o.get(t);n&&(n.datum=e,r.mod.push(n))})),t.visit(t.REM,(e=>{const t=a(e),n=o.get(t);e!==n.datum||n.exit||(r.rem.push(n),n.exit=!0,++o.empty)})),t.changed(t.ADD_MOD)&&r.modifies("datum"),(t.clean()||e.clean&&o.empty>n.cleanThreshold)&&n.runAfter(o.clean),r}}),pt(Ub,Vo,{transform(e,t){var n=t.fork(t.ADD_REM),r=e.mod||!1,i=e.encoders,a=t.encode;if(Le(a)){if(!n.changed()&&!a.every((e=>i[e])))return t.StopPropagation;a=a[0],n.encode=null}var o="enter"===a,s=i.update||Te,l=i.enter||Te,u=i.exit||Te,c=(a&&!o?i[a]:s)||Te;if(t.changed(t.ADD)&&(t.visit(t.ADD,(t=>{l(t,e),s(t,e)})),n.modifies(l.output),n.modifies(s.output),c!==Te&&c!==s&&(t.visit(t.ADD,(t=>{c(t,e)})),n.modifies(c.output))),t.changed(t.REM)&&u!==Te&&(t.visit(t.REM,(t=>{u(t,e)})),n.modifies(u.output)),o||c!==Te){const i=t.MOD|(e.modified()?t.REFLOW:0);o?(t.visit(i,(t=>{const i=l(t,e)||r;(c(t,e)||i)&&n.mod.push(t)})),n.mod.length&&n.modifies(l.output)):t.visit(i,(t=>{(c(t,e)||r)&&n.mod.push(t)})),n.mod.length&&n.modifies(c.output)}return n.changed()?n:t.StopPropagation}}),pt(Vb,Vo,{transform(e,t){if(null!=this.value&&!e.modified())return t.StopPropagation;var n,r,i,a,o,s=t.dataflow.locale(),l=t.fork(t.NO_SOURCE|t.NO_FIELDS),u=this.value,c=e.type||kp,d=e.scale,f=+e.limit,h=jp(d,null==e.count?5:e.count,e.minstep),p=!!e.values||c===kp,m=e.format||Yp(s,d,h,c,e.formatSpecifier,e.formatType,p),g=e.values||Gp(d,h);return u&&(l.rem=u),c===kp?(f&&g.length>f?(t.dataflow.warn("Symbol legend count exceeds limit, filtering items."),u=g.slice(0,f-1),o=!0):u=g,et(i=e.size)?(e.values||0!==d(u[0])||(u=u.slice(1)),a=u.reduce(((t,n)=>Math.max(t,i(n,e))),0)):i=st(a=i||8),u=u.map(((t,n)=>po({index:n,label:m(t,n,u),value:t,offset:a,size:i(t,e)}))),o&&(o=g[u.length],u.push(po({index:u.length,label:`…${g.length-u.length} entries`,value:o,offset:a,size:i(o,e)})))):"gradient"===c?(n=d.domain(),r=Dp(d,n[0],He(n)),g.length<3&&!e.values&&n[0]!==He(n)&&(g=[n[0],He(n)]),u=g.map(((e,t)=>po({index:t,label:m(e,t,g),value:e,perc:r(e)})))):(i=g.length-1,r=function(e){const t=e.domain(),n=t.length-1;let r=+t[0],i=+He(t),a=i-r;if(e.type===Qh){const e=n?a/n:.1;r-=e,i+=e,a=i-r}return e=>(e-r)/a}(d),u=g.map(((e,t)=>po({index:t,label:m(e,t,g),value:e,perc:t?r(e):0,perc2:t===i?1:r(g[t+1])})))),l.source=u,l.add=u,this.value=u,l}});const Wb=e=>e.source.x,Gb=e=>e.source.y,qb=e=>e.target.x,Yb=e=>e.target.y;function Kb(e){Vo.call(this,{},e)}Kb.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]},pt(Kb,Vo,{transform(e,t){var n=e.sourceX||Wb,r=e.sourceY||Gb,i=e.targetX||qb,a=e.targetY||Yb,o=e.as||"path",s=e.orient||"vertical",l=e.shape||"line",u=Qb.get(l+"-"+s)||Qb.get(l);return u||_e("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,(e=>{e[o]=u(n(e),r(e),i(e),a(e))})),t.reflow(e.modified()).modifies(o)}});const Jb=(e,t,n,r)=>"M"+e+","+t+"L"+n+","+r,Xb=(e,t,n,r)=>{var i=n-e,a=r-t,o=Math.hypot(i,a)/2;return"M"+e+","+t+"A"+o+","+o+" "+180*Math.atan2(a,i)/Math.PI+" 0 1 "+n+","+r},Zb=(e,t,n,r)=>{const i=n-e,a=r-t,o=.2*(i+a),s=.2*(a-i);return"M"+e+","+t+"C"+(e+o)+","+(t+s)+" "+(n+s)+","+(r-o)+" "+n+","+r},Qb=ht({line:Jb,"line-radial":(e,t,n,r)=>Jb(t*Math.cos(e),t*Math.sin(e),r*Math.cos(n),r*Math.sin(n)),arc:Xb,"arc-radial":(e,t,n,r)=>Xb(t*Math.cos(e),t*Math.sin(e),r*Math.cos(n),r*Math.sin(n)),curve:Zb,"curve-radial":(e,t,n,r)=>Zb(t*Math.cos(e),t*Math.sin(e),r*Math.cos(n),r*Math.sin(n)),"orthogonal-horizontal":(e,t,n,r)=>"M"+e+","+t+"V"+r+"H"+n,"orthogonal-vertical":(e,t,n,r)=>"M"+e+","+t+"H"+n+"V"+r,"orthogonal-radial":(e,t,n,r)=>{const i=Math.cos(e),a=Math.sin(e),o=Math.cos(n),s=Math.sin(n);return"M"+t*i+","+t*a+"A"+t+","+t+" 0 0,"+((Math.abs(n-e)>Math.PI?n<=e:n>e)?1:0)+" "+t*o+","+t*s+"L"+r*o+","+r*s},"diagonal-horizontal":(e,t,n,r)=>{const i=(e+n)/2;return"M"+e+","+t+"C"+i+","+t+" "+i+","+r+" "+n+","+r},"diagonal-vertical":(e,t,n,r)=>{const i=(t+r)/2;return"M"+e+","+t+"C"+e+","+i+" "+n+","+i+" "+n+","+r},"diagonal-radial":(e,t,n,r)=>{const i=Math.cos(e),a=Math.sin(e),o=Math.cos(n),s=Math.sin(n),l=(t+r)/2;return"M"+t*i+","+t*a+"C"+l*i+","+l*a+" "+l*o+","+l*s+" "+r*o+","+r*s}});function ex(e){Vo.call(this,null,e)}ex.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]},pt(ex,Vo,{transform(e,t){var n,r,i,a=e.as||["startAngle","endAngle"],o=a[0],s=a[1],l=e.field||Ae,u=e.startAngle||0,c=null!=e.endAngle?e.endAngle:2*Math.PI,d=t.source,f=d.map(l),h=f.length,p=u,m=(c-u)/jb(f),g=Fs(h);for(e.sort&&g.sort(((e,t)=>f[e]-f[t])),n=0;n<h;++n)i=f[g[n]],(r=d[g[n]])[o]=p,r[s]=p+=i*m;return this.value=f,t.reflow(e.modified()).modifies(a)}});function tx(e){return bp(e)&&e!==Kh}const nx=Dt(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function rx(e){Vo.call(this,null,e),this.modified(!0)}function ix(e,t,n){Sp(e)&&(Math.abs(t.reduce(((e,t)=>e+(t<0?-1:t>0?1:0)),0))!==t.length&&n.warn("Log scale domain includes zero: "+St(t)));return t}function ax(e,t,n){return et(e)&&(t||n)?function(e,t){const n=t[0],r=He(t)-n;return function(t){return e(n+t*r)}}(e,ox(t||[0,1],n)):e}function ox(e,t){return t?e.slice().reverse():e}function sx(e){Vo.call(this,null,e)}pt(rx,Vo,{transform(e,t){var n=t.dataflow,r=this.value,i=function(e){var t,n=e.type,r="";return n===Kh?Kh+"-"+Ph:(function(e){const t=e.type;return bp(t)&&t!==qh&&t!==Yh&&(e.scheme||e.range&&e.range.length&&e.range.every(vt))}(e)&&(r=2===(t=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(null!=e.domainMid):0)?Kh+"-":3===t?Jh+"-":""),(r+n||Ph).toLowerCase())}(e);for(i in r&&i===r.type||(this.value=r=yp(i)()),e)if(!nx[i]){if("padding"===i&&tx(r.type))continue;et(r[i])?r[i](e[i]):n.warn("Unsupported scale property: "+i)}return function(e,t,n){var r=e.type,i=t.round||!1,a=t.range;if(null!=t.rangeStep)a=function(e,t,n){e!==np&&e!==tp&&_e("Only band and point scales support rangeStep.");var r=(null!=t.paddingOuter?t.paddingOuter:t.padding)||0,i=e===tp?1:(null!=t.paddingInner?t.paddingInner:t.padding)||0;return[0,t.rangeStep*zh(n,i,r)]}(r,t,n);else if(t.scheme&&(a=function(e,t,n){var r,i=t.schemeExtent;return Le(t.scheme)?r=Op(t.scheme,t.interpolate,t.interpolateGamma):(r=Rp(t.scheme.toLowerCase()))||_e(`Unrecognized scheme name: ${t.scheme}`),n=e===Qh?n+1:e===rp?n-1:e===Xh||e===Zh?+t.schemeCount||5:n,Ap(e)?ax(r,i,t.reverse):et(r)?function(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}(ax(r,i),n):e===ep?r:r.slice(0,n)}(r,t,n),et(a))){if(e.interpolator)return e.interpolator(a);_e(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&Ap(r))return e.interpolator(Op(ox(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(Mp(t.interpolate,t.interpolateGamma)):et(e.round)?e.round(i):et(e.rangeRound)&&e.interpolate(i?Rd:Cd),a&&e.range(ox(a,t.reverse))}(r,e,function(e,t,n){let r=t.bins;if(r&&!Le(r)){const t=e.domain(),n=t[0],i=He(t),a=r.step;let o=null==r.start?n:r.start,s=null==r.stop?i:r.stop;a||_e("Scale bins parameter missing step property."),o<n&&(o=a*Math.ceil(n/a)),s>i&&(s=a*Math.floor(i/a)),r=Fs(o,s+a/2,a)}return r?e.bins=r:e.bins&&delete e.bins,e.type===rp&&(r?t.domain||t.domainRaw||(e.domain(r),n=r.length):e.bins=e.domain()),n}(r,e,function(e,t,n){const r=function(e,t,n){return t?(e.domain(ix(e.type,t,n)),t.length):-1}(e,t.domainRaw,n);if(r>-1)return r;var i,a,o=t.domain,s=e.type,l=t.zero||void 0===t.zero&&function(e){const t=e.type;return!e.bins&&(t===Ph||t===Vh||t===Wh)}(e);if(!o)return 0;if((l||null!=t.domainMin||null!=t.domainMax||null!=t.domainMid)&&(i=(o=o.slice()).length-1||1,l&&(o[0]>0&&(o[0]=0),o[i]<0&&(o[i]=0)),null!=t.domainMin&&(o[0]=t.domainMin),null!=t.domainMax&&(o[i]=t.domainMax),null!=t.domainMid)){const e=(a=t.domainMid)>o[i]?i+1:a<o[0]?0:i;e!==i&&n.warn("Scale domainMid exceeds domain min or max.",a),o.splice(e,0,a)}return tx(s)&&t.padding&&o[0]!==He(o)&&(o=function(e,t,n,r,i,a){var o=Math.abs(He(n)-n[0]),s=o/(o-2*r),l=e===Uh?Je(t,null,s):e===Wh?Xe(t,null,s,.5):e===Vh?Xe(t,null,s,i||1):e===Gh?Ze(t,null,s,a||1):Ke(t,null,s);return(t=t.slice())[0]=l[0],t[t.length-1]=l[1],t}(s,o,t.range,t.padding,t.exponent,t.constant)),e.domain(ix(s,o,n)),s===ep&&e.unknown(t.domainImplicit?If:void 0),t.nice&&e.nice&&e.nice(!0!==t.nice&&jp(e,t.nice)||null),o.length}(r,e,n))),t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),pt(sx,Vo,{transform(e,t){const n=e.modified("sort")||t.changed(t.ADD)||t.modified(e.sort.fields)||t.modified("datum");return n&&t.source.sort(_o(e.sort)),this.modified(n),t}});const lx="zero",ux="center",cx="normalize",dx=["y0","y1"];function fx(e){Vo.call(this,null,e)}function hx(e,t,n,r,i){for(var a,o=(t-e.sum)/2,s=e.length,l=0;l<s;++l)(a=e[l])[r]=o,a[i]=o+=Math.abs(n(a))}function px(e,t,n,r,i){for(var a,o=1/e.sum,s=0,l=e.length,u=0,c=0;u<l;++u)(a=e[u])[r]=s,a[i]=s=o*(c+=Math.abs(n(a)))}function mx(e,t,n,r,i){for(var a,o,s=0,l=0,u=e.length,c=0;c<u;++c)(a=+n(o=e[c]))<0?(o[r]=l,o[i]=l+=a):(o[r]=s,o[i]=s+=a)}fx.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:lx,values:[lx,ux,cx]},{name:"as",type:"string",array:!0,length:2,default:dx}]},pt(fx,Vo,{transform(e,t){var n,r,i,a,o=e.as||dx,s=o[0],l=o[1],u=_o(e.sort),c=e.field||Ae,d=e.offset===ux?hx:e.offset===cx?px:mx;for(n=function(e,t,n,r){var i,a,o,s,l,u,c,d,f,h=[],p=e=>e(l);if(null==t)h.push(e.slice());else for(i={},a=0,o=e.length;a<o;++a)l=e[a],(c=i[u=t.map(p)])||(i[u]=c=[],h.push(c)),c.push(l);for(u=0,f=0,s=h.length;u<s;++u){for(a=0,d=0,o=(c=h[u]).length;a<o;++a)d+=Math.abs(r(c[a]));c.sum=d,d>f&&(f=d),n&&c.sort(n)}return h.max=f,h}(t.source,e.groupby,u,c),r=0,i=n.length,a=n.max;r<i;++r)d(n[r],a,c,s,l);return t.reflow(e.modified()).modifies(o)}});const gx=e=>e;function yx(e,t){e&&vx.hasOwnProperty(e.type)&&vx[e.type](e,t)}var _x={Feature:function(e,t){yx(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,i=n.length;++r<i;)yx(n[r].geometry,t)}},vx={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)e=n[r],t.point(e[0],e[1],e[2])},LineString:function(e,t){bx(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)bx(n[r],t,0)},Polygon:function(e,t){xx(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)xx(n[r],t)},GeometryCollection:function(e,t){for(var n=e.geometries,r=-1,i=n.length;++r<i;)yx(n[r],t)}};function bx(e,t,n){var r,i=-1,a=e.length-n;for(t.lineStart();++i<a;)r=e[i],t.point(r[0],r[1],r[2]);t.lineEnd()}function xx(e,t){var n=-1,r=e.length;for(t.polygonStart();++n<r;)bx(e[n],t,1);t.polygonEnd()}function Ex(e,t){e&&_x.hasOwnProperty(e.type)?_x[e.type](e,t):yx(e,t)}class Sx{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const t=this._partials;let n=0;for(let r=0;r<this._n&&r<32;r++){const i=t[r],a=e+i,o=Math.abs(e)<Math.abs(i)?e-(a-i):i-(a-e);o&&(t[n++]=o),e=a}return t[n]=e,this._n=n+1,this}valueOf(){const e=this._partials;let t,n,r,i=this._n,a=0;if(i>0){for(a=e[--i];i>0&&(t=a,n=e[--i],a=t+n,r=n-(a-t),!r););i>0&&(r<0&&e[i-1]<0||r>0&&e[i-1]>0)&&(n=2*r,t=a+n,n==t-a&&(a=t))}return a}}var Ax=1e-6,$x=1e-12,Tx=Math.PI,Ox=Tx/2,Dx=Tx/4,Mx=2*Tx,wx=180/Tx,Ix=Tx/180,Cx=Math.abs,Rx=Math.atan,kx=Math.atan2,Lx=Math.cos,Nx=Math.ceil,Fx=Math.exp,Bx=(Math.floor,Math.hypot),jx=Math.log,Hx=Math.pow,zx=Math.sin,Px=Math.sign||function(e){return e>0?1:e<0?-1:0},Ux=Math.sqrt,Vx=Math.tan;function Wx(e){return e>1?0:e<-1?Tx:Math.acos(e)}function Gx(e){return e>1?Ox:e<-1?-Ox:Math.asin(e)}function qx(){}var Yx,Kx,Jx,Xx,Zx=new Sx,Qx=new Sx,eE={point:qx,lineStart:qx,lineEnd:qx,polygonStart:function(){eE.lineStart=tE,eE.lineEnd=iE},polygonEnd:function(){eE.lineStart=eE.lineEnd=eE.point=qx,Zx.add(Cx(Qx)),Qx=new Sx},result:function(){var e=Zx/2;return Zx=new Sx,e}};function tE(){eE.point=nE}function nE(e,t){eE.point=rE,Yx=Jx=e,Kx=Xx=t}function rE(e,t){Qx.add(Xx*e-Jx*t),Jx=e,Xx=t}function iE(){rE(Yx,Kx)}const aE=eE;var oE=1/0,sE=oE,lE=-oE,uE=lE,cE={point:function(e,t){e<oE&&(oE=e),e>lE&&(lE=e),t<sE&&(sE=t),t>uE&&(uE=t)},lineStart:qx,lineEnd:qx,polygonStart:qx,polygonEnd:qx,result:function(){var e=[[oE,sE],[lE,uE]];return lE=uE=-(sE=oE=1/0),e}};const dE=cE;var fE,hE,pE,mE,gE=0,yE=0,_E=0,vE=0,bE=0,xE=0,EE=0,SE=0,AE=0,$E={point:TE,lineStart:OE,lineEnd:wE,polygonStart:function(){$E.lineStart=IE,$E.lineEnd=CE},polygonEnd:function(){$E.point=TE,$E.lineStart=OE,$E.lineEnd=wE},result:function(){var e=AE?[EE/AE,SE/AE]:xE?[vE/xE,bE/xE]:_E?[gE/_E,yE/_E]:[NaN,NaN];return gE=yE=_E=vE=bE=xE=EE=SE=AE=0,e}};function TE(e,t){gE+=e,yE+=t,++_E}function OE(){$E.point=DE}function DE(e,t){$E.point=ME,TE(pE=e,mE=t)}function ME(e,t){var n=e-pE,r=t-mE,i=Ux(n*n+r*r);vE+=i*(pE+e)/2,bE+=i*(mE+t)/2,xE+=i,TE(pE=e,mE=t)}function wE(){$E.point=TE}function IE(){$E.point=RE}function CE(){kE(fE,hE)}function RE(e,t){$E.point=kE,TE(fE=pE=e,hE=mE=t)}function kE(e,t){var n=e-pE,r=t-mE,i=Ux(n*n+r*r);vE+=i*(pE+e)/2,bE+=i*(mE+t)/2,xE+=i,EE+=(i=mE*e-pE*t)*(pE+e),SE+=i*(mE+t),AE+=3*i,TE(pE=e,mE=t)}const LE=$E;function NE(e){this._context=e}NE.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,Mx)}},result:qx};var FE,BE,jE,HE,zE,PE=new Sx,UE={point:qx,lineStart:function(){UE.point=VE},lineEnd:function(){FE&&WE(BE,jE),UE.point=qx},polygonStart:function(){FE=!0},polygonEnd:function(){FE=null},result:function(){var e=+PE;return PE=new Sx,e}};function VE(e,t){UE.point=WE,BE=HE=e,jE=zE=t}function WE(e,t){HE-=e,zE-=t,PE.add(Ux(HE*HE+zE*zE)),HE=e,zE=t}const GE=UE;let qE,YE,KE,JE;class XE{constructor(e){this._append=null==e?ZE:function(e){const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return ZE;if(t!==qE){const e=10**t;qE=t,YE=function(t){let n=1;this._+=t[0];for(const r=t.length;n<r;++n)this._+=Math.round(arguments[n]*e)/e+t[n]}}return YE}(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(e,t){switch(this._point){case 0:this._append`M${e},${t}`,this._point=1;break;case 1:this._append`L${e},${t}`;break;default:if(this._append`M${e},${t}`,this._radius!==KE||this._append!==YE){const e=this._radius,t=this._;this._="",this._append`m0,${e}a${e},${e} 0 1,1 0,${-2*e}a${e},${e} 0 1,1 0,${2*e}z`,KE=e,YE=this._append,JE=this._,this._=t}this._+=JE}}result(){const e=this._;return this._="",e.length?e:null}}function ZE(e){let t=1;this._+=e[0];for(const n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function QE(e,t){let n,r,i=3,a=4.5;function o(e){return e&&("function"==typeof a&&r.pointRadius(+a.apply(this,arguments)),Ex(e,n(r))),r.result()}return o.area=function(e){return Ex(e,n(aE)),aE.result()},o.measure=function(e){return Ex(e,n(GE)),GE.result()},o.bounds=function(e){return Ex(e,n(dE)),dE.result()},o.centroid=function(e){return Ex(e,n(LE)),LE.result()},o.projection=function(t){return arguments.length?(n=null==t?(e=null,gx):(e=t).stream,o):e},o.context=function(e){return arguments.length?(r=null==e?(t=null,new XE(i)):new NE(t=e),"function"!=typeof a&&r.pointRadius(a),o):t},o.pointRadius=function(e){return arguments.length?(a="function"==typeof e?e:(r.pointRadius(+e),+e),o):a},o.digits=function(e){if(!arguments.length)return i;if(null==e)i=null;else{const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);i=t}return null===t&&(r=new XE(i)),o},o.projection(e).digits(i).context(t)}function eS(){var e,t=[];return{point:function(t,n,r){e.push([t,n,r])},lineStart:function(){t.push(e=[])},lineEnd:qx,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function tS(e,t){return Cx(e[0]-t[0])<Ax&&Cx(e[1]-t[1])<Ax}function nS(e,t,n,r){this.x=e,this.z=t,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function rS(e,t,n,r,i){var a,o,s=[],l=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,n,r=e[0],o=e[t];if(tS(r,o)){if(!r[2]&&!o[2]){for(i.lineStart(),a=0;a<t;++a)i.point((r=e[a])[0],r[1]);return void i.lineEnd()}o[0]+=2*Ax}s.push(n=new nS(r,e,null,!0)),l.push(n.o=new nS(r,null,n,!1)),s.push(n=new nS(o,e,null,!1)),l.push(n.o=new nS(o,null,n,!0))}})),s.length){for(l.sort(t),iS(s),iS(l),a=0,o=l.length;a<o;++a)l[a].e=n=!n;for(var u,c,d=s[0];;){for(var f=d,h=!0;f.v;)if((f=f.n)===d)return;u=f.z,i.lineStart();do{if(f.v=f.o.v=!0,f.e){if(h)for(a=0,o=u.length;a<o;++a)i.point((c=u[a])[0],c[1]);else r(f.x,f.n.x,1,i);f=f.n}else{if(h)for(u=f.p.z,a=u.length-1;a>=0;--a)i.point((c=u[a])[0],c[1]);else r(f.x,f.p.x,-1,i);f=f.p}u=(f=f.o).z,h=!h}while(!f.v);i.lineEnd()}}}function iS(e){if(t=e.length){for(var t,n,r=0,i=e[0];++r<t;)i.n=n=e[r],n.p=i,i=n;i.n=n=e[0],n.p=i}}function aS(e){return[kx(e[1],e[0]),Gx(e[2])]}function oS(e){var t=e[0],n=e[1],r=Lx(n);return[r*Lx(t),r*zx(t),zx(n)]}function sS(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function lS(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function uS(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function cS(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function dS(e){var t=Ux(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}function fS(e){return Cx(e[0])<=Tx?e[0]:Px(e[0])*((Cx(e[0])+Tx)%Mx-Tx)}function hS(e){return Array.from(function*(e){for(const t of e)yield*t}(e))}function pS(e,t,n,r){return function(i){var a,o,s,l=t(i),u=eS(),c=t(u),d=!1,f={point:h,lineStart:m,lineEnd:g,polygonStart:function(){f.point=y,f.lineStart=_,f.lineEnd=v,o=[],a=[]},polygonEnd:function(){f.point=h,f.lineStart=m,f.lineEnd=g,o=hS(o);var e=function(e,t){var n=fS(t),r=t[1],i=zx(r),a=[zx(n),-Lx(n),0],o=0,s=0,l=new Sx;1===i?r=Ox+Ax:-1===i&&(r=-Ox-Ax);for(var u=0,c=e.length;u<c;++u)if(f=(d=e[u]).length)for(var d,f,h=d[f-1],p=fS(h),m=h[1]/2+Dx,g=zx(m),y=Lx(m),_=0;_<f;++_,p=b,g=E,y=S,h=v){var v=d[_],b=fS(v),x=v[1]/2+Dx,E=zx(x),S=Lx(x),A=b-p,$=A>=0?1:-1,T=$*A,O=T>Tx,D=g*E;if(l.add(kx(D*$*zx(T),y*S+D*Lx(T))),o+=O?A+$*Mx:A,O^p>=n^b>=n){var M=lS(oS(h),oS(v));dS(M);var w=lS(a,M);dS(w);var I=(O^A>=0?-1:1)*Gx(w[2]);(r>I||r===I&&(M[0]||M[1]))&&(s+=O^A>=0?1:-1)}}return(o<-Ax||o<Ax&&l<-$x)^1&s}(a,r);o.length?(d||(i.polygonStart(),d=!0),rS(o,gS,e,n,i)):e&&(d||(i.polygonStart(),d=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),d&&(i.polygonEnd(),d=!1),o=a=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(t,n){e(t,n)&&i.point(t,n)}function p(e,t){l.point(e,t)}function m(){f.point=p,l.lineStart()}function g(){f.point=h,l.lineEnd()}function y(e,t){s.push([e,t]),c.point(e,t)}function _(){c.lineStart(),s=[]}function v(){y(s[0][0],s[0][1]),c.lineEnd();var e,t,n,r,l=c.clean(),f=u.result(),h=f.length;if(s.pop(),a.push(s),s=null,h)if(1&l){if((t=(n=f[0]).length-1)>0){for(d||(i.polygonStart(),d=!0),i.lineStart(),e=0;e<t;++e)i.point((r=n[e])[0],r[1]);i.lineEnd()}}else h>1&&2&l&&f.push(f.pop().concat(f.shift())),o.push(f.filter(mS))}return f}}function mS(e){return e.length>1}function gS(e,t){return((e=e.x)[0]<0?e[1]-Ox-Ax:Ox-e[1])-((t=t.x)[0]<0?t[1]-Ox-Ax:Ox-t[1])}const yS=pS((function(){return!0}),(function(e){var t,n=NaN,r=NaN,i=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(a,o){var s=a>0?Tx:-Tx,l=Cx(a-n);Cx(l-Tx)<Ax?(e.point(n,r=(r+o)/2>0?Ox:-Ox),e.point(i,r),e.lineEnd(),e.lineStart(),e.point(s,r),e.point(a,r),t=0):i!==s&&l>=Tx&&(Cx(n-i)<Ax&&(n-=i*Ax),Cx(a-s)<Ax&&(a-=s*Ax),r=function(e,t,n,r){var i,a,o=zx(e-n);return Cx(o)>Ax?Rx((zx(t)*(a=Lx(r))*zx(n)-zx(r)*(i=Lx(t))*zx(e))/(i*a*o)):(t+r)/2}(n,r,a,o),e.point(i,r),e.lineEnd(),e.lineStart(),e.point(s,r),t=0),e.point(n=a,r=o),i=s},lineEnd:function(){e.lineEnd(),n=r=NaN},clean:function(){return 2-t}}}),(function(e,t,n,r){var i;if(null==e)i=n*Ox,r.point(-Tx,i),r.point(0,i),r.point(Tx,i),r.point(Tx,0),r.point(Tx,-i),r.point(0,-i),r.point(-Tx,-i),r.point(-Tx,0),r.point(-Tx,i);else if(Cx(e[0]-t[0])>Ax){var a=e[0]<t[0]?Tx:-Tx;i=n*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(t[0],t[1])}),[-Tx,-Ox]);function _S(e,t){(t=oS(t))[0]-=e,dS(t);var n=Wx(-t[1]);return((-t[2]<0?-n:n)+Mx-Ax)%Mx}var vS=1e9,bS=-vS;function xS(e,t,n,r){function i(i,a){return e<=i&&i<=n&&t<=a&&a<=r}function a(i,a,s,u){var c=0,d=0;if(null==i||(c=o(i,s))!==(d=o(a,s))||l(i,a)<0^s>0)do{u.point(0===c||3===c?e:n,c>1?r:t)}while((c=(c+s+4)%4)!==d);else u.point(a[0],a[1])}function o(r,i){return Cx(r[0]-e)<Ax?i>0?0:3:Cx(r[0]-n)<Ax?i>0?2:1:Cx(r[1]-t)<Ax?i>0?1:0:i>0?3:2}function s(e,t){return l(e.x,t.x)}function l(e,t){var n=o(e,1),r=o(t,1);return n!==r?n-r:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(o){var l,u,c,d,f,h,p,m,g,y,_,v=o,b=eS(),x={point:E,lineStart:function(){x.point=S,u&&u.push(c=[]),y=!0,g=!1,p=m=NaN},lineEnd:function(){l&&(S(d,f),h&&g&&b.rejoin(),l.push(b.result())),x.point=E,g&&v.lineEnd()},polygonStart:function(){v=b,l=[],u=[],_=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,i=u.length;n<i;++n)for(var a,o,s=u[n],l=1,c=s.length,d=s[0],f=d[0],h=d[1];l<c;++l)a=f,o=h,f=(d=s[l])[0],h=d[1],o<=r?h>r&&(f-a)*(r-o)>(h-o)*(e-a)&&++t:h<=r&&(f-a)*(r-o)<(h-o)*(e-a)&&--t;return t}(),n=_&&t,i=(l=hS(l)).length;(n||i)&&(o.polygonStart(),n&&(o.lineStart(),a(null,null,1,o),o.lineEnd()),i&&rS(l,s,t,a,o),o.polygonEnd()),v=o,l=u=c=null}};function E(e,t){i(e,t)&&v.point(e,t)}function S(a,o){var s=i(a,o);if(u&&c.push([a,o]),y)d=a,f=o,h=s,y=!1,s&&(v.lineStart(),v.point(a,o));else if(s&&g)v.point(a,o);else{var l=[p=Math.max(bS,Math.min(vS,p)),m=Math.max(bS,Math.min(vS,m))],b=[a=Math.max(bS,Math.min(vS,a)),o=Math.max(bS,Math.min(vS,o))];!function(e,t,n,r,i,a){var o,s=e[0],l=e[1],u=0,c=1,d=t[0]-s,f=t[1]-l;if(o=n-s,d||!(o>0)){if(o/=d,d<0){if(o<u)return;o<c&&(c=o)}else if(d>0){if(o>c)return;o>u&&(u=o)}if(o=i-s,d||!(o<0)){if(o/=d,d<0){if(o>c)return;o>u&&(u=o)}else if(d>0){if(o<u)return;o<c&&(c=o)}if(o=r-l,f||!(o>0)){if(o/=f,f<0){if(o<u)return;o<c&&(c=o)}else if(f>0){if(o>c)return;o>u&&(u=o)}if(o=a-l,f||!(o<0)){if(o/=f,f<0){if(o>c)return;o>u&&(u=o)}else if(f>0){if(o<u)return;o<c&&(c=o)}return u>0&&(e[0]=s+u*d,e[1]=l+u*f),c<1&&(t[0]=s+c*d,t[1]=l+c*f),!0}}}}}(l,b,e,t,n,r)?s&&(v.lineStart(),v.point(a,o),_=!1):(g||(v.lineStart(),v.point(l[0],l[1])),v.point(b[0],b[1]),s||v.lineEnd(),_=!1)}p=a,m=o,g=s}return x}}function ES(e,t){function n(n,r){return n=e(n,r),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,r){return(n=t.invert(n,r))&&e.invert(n[0],n[1])}),n}function SS(e,t){return Cx(e)>Tx&&(e-=Math.round(e/Mx)*Mx),[e,t]}function AS(e,t,n){return(e%=Mx)?t||n?ES(TS(e),OS(t,n)):TS(e):t||n?OS(t,n):SS}function $S(e){return function(t,n){return Cx(t+=e)>Tx&&(t-=Math.round(t/Mx)*Mx),[t,n]}}function TS(e){var t=$S(e);return t.invert=$S(-e),t}function OS(e,t){var n=Lx(e),r=zx(e),i=Lx(t),a=zx(t);function o(e,t){var o=Lx(t),s=Lx(e)*o,l=zx(e)*o,u=zx(t),c=u*n+s*r;return[kx(l*i-c*a,s*n-u*r),Gx(c*i+l*a)]}return o.invert=function(e,t){var o=Lx(t),s=Lx(e)*o,l=zx(e)*o,u=zx(t),c=u*i-l*a;return[kx(l*i+u*a,s*n+c*r),Gx(c*n-s*r)]},o}function DS(e){return function(t){var n=new MS;for(var r in e)n[r]=e[r];return n.stream=t,n}}function MS(){}function wS(e,t,n){var r=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=r&&e.clipExtent(null),Ex(n,e.stream(dE)),t(dE.result()),null!=r&&e.clipExtent(r),e}function IS(e,t,n){return wS(e,(function(n){var r=t[1][0]-t[0][0],i=t[1][1]-t[0][1],a=Math.min(r/(n[1][0]-n[0][0]),i/(n[1][1]-n[0][1])),o=+t[0][0]+(r-a*(n[1][0]+n[0][0]))/2,s=+t[0][1]+(i-a*(n[1][1]+n[0][1]))/2;e.scale(150*a).translate([o,s])}),n)}function CS(e,t,n){return IS(e,[[0,0],t],n)}function RS(e,t,n){return wS(e,(function(n){var r=+t,i=r/(n[1][0]-n[0][0]),a=(r-i*(n[1][0]+n[0][0]))/2,o=-i*n[0][1];e.scale(150*i).translate([a,o])}),n)}function kS(e,t,n){return wS(e,(function(n){var r=+t,i=r/(n[1][1]-n[0][1]),a=-i*n[0][0],o=(r-i*(n[1][1]+n[0][1]))/2;e.scale(150*i).translate([a,o])}),n)}SS.invert=SS,MS.prototype={constructor:MS,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var LS=16,NS=Lx(30*Ix);function FS(e,t){return+t?function(e,t){function n(r,i,a,o,s,l,u,c,d,f,h,p,m,g){var y=u-r,_=c-i,v=y*y+_*_;if(v>4*t&&m--){var b=o+f,x=s+h,E=l+p,S=Ux(b*b+x*x+E*E),A=Gx(E/=S),$=Cx(Cx(E)-1)<Ax||Cx(a-d)<Ax?(a+d)/2:kx(x,b),T=e($,A),O=T[0],D=T[1],M=O-r,w=D-i,I=_*M-y*w;(I*I/v>t||Cx((y*M+_*w)/v-.5)>.3||o*f+s*h+l*p<NS)&&(n(r,i,a,o,s,l,O,D,$,b/=S,x/=S,E,m,g),g.point(O,D),n(O,D,$,b,x,E,u,c,d,f,h,p,m,g))}}return function(t){var r,i,a,o,s,l,u,c,d,f,h,p,m={point:g,lineStart:y,lineEnd:v,polygonStart:function(){t.polygonStart(),m.lineStart=b},polygonEnd:function(){t.polygonEnd(),m.lineStart=y}};function g(n,r){n=e(n,r),t.point(n[0],n[1])}function y(){c=NaN,m.point=_,t.lineStart()}function _(r,i){var a=oS([r,i]),o=e(r,i);n(c,d,u,f,h,p,c=o[0],d=o[1],u=r,f=a[0],h=a[1],p=a[2],LS,t),t.point(c,d)}function v(){m.point=g,t.lineEnd()}function b(){y(),m.point=x,m.lineEnd=E}function x(e,t){_(r=e,t),i=c,a=d,o=f,s=h,l=p,m.point=_}function E(){n(c,d,u,f,h,p,i,a,r,o,s,l,LS,t),m.lineEnd=v,v()}return m}}(e,t):function(e){return DS({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}(e)}var BS=DS({point:function(e,t){this.stream.point(e*Ix,t*Ix)}});function jS(e,t,n,r,i,a){if(!a)return function(e,t,n,r,i){function a(a,o){return[t+e*(a*=r),n-e*(o*=i)]}return a.invert=function(a,o){return[(a-t)/e*r,(n-o)/e*i]},a}(e,t,n,r,i);var o=Lx(a),s=zx(a),l=o*e,u=s*e,c=o/e,d=s/e,f=(s*n-o*t)/e,h=(s*t+o*n)/e;function p(e,a){return[l*(e*=r)-u*(a*=i)+t,n-u*e-l*a]}return p.invert=function(e,t){return[r*(c*e-d*t+f),i*(h-d*e-c*t)]},p}function HS(e){return zS((function(){return e}))()}function zS(e){var t,n,r,i,a,o,s,l,u,c,d=150,f=480,h=250,p=0,m=0,g=0,y=0,_=0,v=0,b=1,x=1,E=null,S=yS,A=null,$=gx,T=.5;function O(e){return l(e[0]*Ix,e[1]*Ix)}function D(e){return(e=l.invert(e[0],e[1]))&&[e[0]*wx,e[1]*wx]}function M(){var e=jS(d,0,0,b,x,v).apply(null,t(p,m)),r=jS(d,f-e[0],h-e[1],b,x,v);return n=AS(g,y,_),s=ES(t,r),l=ES(n,s),o=FS(s,T),w()}function w(){return u=c=null,O}return O.stream=function(e){return u&&c===e?u:u=BS(function(e){return DS({point:function(t,n){var r=e(t,n);return this.stream.point(r[0],r[1])}})}(n)(S(o($(c=e)))))},O.preclip=function(e){return arguments.length?(S=e,E=void 0,w()):S},O.postclip=function(e){return arguments.length?($=e,A=r=i=a=null,w()):$},O.clipAngle=function(e){return arguments.length?(S=+e?function(e){var t=Lx(e),n=2*Ix,r=t>0,i=Cx(t)>Ax;function a(e,n){return Lx(e)*Lx(n)>t}function o(e,n,r){var i=[1,0,0],a=lS(oS(e),oS(n)),o=sS(a,a),s=a[0],l=o-s*s;if(!l)return!r&&e;var u=t*o/l,c=-t*s/l,d=lS(i,a),f=cS(i,u);uS(f,cS(a,c));var h=d,p=sS(f,h),m=sS(h,h),g=p*p-m*(sS(f,f)-1);if(!(g<0)){var y=Ux(g),_=cS(h,(-p-y)/m);if(uS(_,f),_=aS(_),!r)return _;var v,b=e[0],x=n[0],E=e[1],S=n[1];x<b&&(v=b,b=x,x=v);var A=x-b,$=Cx(A-Tx)<Ax;if(!$&&S<E&&(v=E,E=S,S=v),$||A<Ax?$?E+S>0^_[1]<(Cx(_[0]-b)<Ax?E:S):E<=_[1]&&_[1]<=S:A>Tx^(b<=_[0]&&_[0]<=x)){var T=cS(h,(-p+y)/m);return uS(T,f),[_,aS(T)]}}}function s(t,n){var i=r?e:Tx-e,a=0;return t<-i?a|=1:t>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}return pS(a,(function(e){var t,n,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(d,f){var h,p=[d,f],m=a(d,f),g=r?m?0:s(d,f):m?s(d+(d<0?Tx:-Tx),f):0;if(!t&&(u=l=m)&&e.lineStart(),m!==l&&(!(h=o(t,p))||tS(t,h)||tS(p,h))&&(p[2]=1),m!==l)c=0,m?(e.lineStart(),h=o(p,t),e.point(h[0],h[1])):(h=o(t,p),e.point(h[0],h[1],2),e.lineEnd()),t=h;else if(i&&t&&r^m){var y;g&n||!(y=o(p,t,!0))||(c=0,r?(e.lineStart(),e.point(y[0][0],y[0][1]),e.point(y[1][0],y[1][1]),e.lineEnd()):(e.point(y[1][0],y[1][1]),e.lineEnd(),e.lineStart(),e.point(y[0][0],y[0][1],3)))}!m||t&&tS(t,p)||e.point(p[0],p[1]),t=p,l=m,n=g},lineEnd:function(){l&&e.lineEnd(),t=null},clean:function(){return c|(u&&l)<<1}}}),(function(t,r,i,a){!function(e,t,n,r,i,a){if(n){var o=Lx(t),s=zx(t),l=r*n;null==i?(i=t+r*Mx,a=t-l/2):(i=_S(o,i),a=_S(o,a),(r>0?i<a:i>a)&&(i+=r*Mx));for(var u,c=i;r>0?c>a:c<a;c-=l)u=aS([o,-s*Lx(c),-s*zx(c)]),e.point(u[0],u[1])}}(a,e,n,i,t,r)}),r?[0,-e]:[-Tx,e-Tx])}(E=e*Ix):(E=null,yS),w()):E*wx},O.clipExtent=function(e){return arguments.length?($=null==e?(A=r=i=a=null,gx):xS(A=+e[0][0],r=+e[0][1],i=+e[1][0],a=+e[1][1]),w()):null==A?null:[[A,r],[i,a]]},O.scale=function(e){return arguments.length?(d=+e,M()):d},O.translate=function(e){return arguments.length?(f=+e[0],h=+e[1],M()):[f,h]},O.center=function(e){return arguments.length?(p=e[0]%360*Ix,m=e[1]%360*Ix,M()):[p*wx,m*wx]},O.rotate=function(e){return arguments.length?(g=e[0]%360*Ix,y=e[1]%360*Ix,_=e.length>2?e[2]%360*Ix:0,M()):[g*wx,y*wx,_*wx]},O.angle=function(e){return arguments.length?(v=e%360*Ix,M()):v*wx},O.reflectX=function(e){return arguments.length?(b=e?-1:1,M()):b<0},O.reflectY=function(e){return arguments.length?(x=e?-1:1,M()):x<0},O.precision=function(e){return arguments.length?(o=FS(s,T=e*e),w()):Ux(T)},O.fitExtent=function(e,t){return IS(O,e,t)},O.fitSize=function(e,t){return CS(O,e,t)},O.fitWidth=function(e,t){return RS(O,e,t)},O.fitHeight=function(e,t){return kS(O,e,t)},function(){return t=e.apply(this,arguments),O.invert=t.invert&&D,M()}}function PS(e){var t=0,n=Tx/3,r=zS(e),i=r(t,n);return i.parallels=function(e){return arguments.length?r(t=e[0]*Ix,n=e[1]*Ix):[t*wx,n*wx]},i}function US(e,t){var n=zx(e),r=(n+zx(t))/2;if(Cx(r)<Ax)return function(e){var t=Lx(e);function n(e,n){return[e*t,zx(n)/t]}return n.invert=function(e,n){return[e/t,Gx(n*t)]},n}(e);var i=1+n*(2*r-n),a=Ux(i)/r;function o(e,t){var n=Ux(i-2*r*zx(t))/r;return[n*zx(e*=r),a-n*Lx(e)]}return o.invert=function(e,t){var n=a-t,o=kx(e,Cx(n))*Px(n);return n*r<0&&(o-=Tx*Px(e)*Px(n)),[o/r,Gx((i-(e*e+n*n)*r*r)/(2*r))]},o}function VS(){return PS(US).scale(155.424).center([0,33.6442])}function WS(){return VS().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function GS(e){return function(t,n){var r=Lx(t),i=Lx(n),a=e(r*i);return a===1/0?[2,0]:[a*i*zx(t),a*zx(n)]}}function qS(e){return function(t,n){var r=Ux(t*t+n*n),i=e(r),a=zx(i),o=Lx(i);return[kx(t*a,r*o),Gx(r&&n*a/r)]}}var YS=GS((function(e){return Ux(2/(1+e))}));YS.invert=qS((function(e){return 2*Gx(e/2)}));var KS=GS((function(e){return(e=Wx(e))&&e/zx(e)}));function JS(e,t){return[e,jx(Vx((Ox+t)/2))]}function XS(e){var t,n,r,i=HS(e),a=i.center,o=i.scale,s=i.translate,l=i.clipExtent,u=null;function c(){var a=Tx*o(),s=i(function(e){function t(t){return(t=e(t[0]*Ix,t[1]*Ix))[0]*=wx,t[1]*=wx,t}return e=AS(e[0]*Ix,e[1]*Ix,e.length>2?e[2]*Ix:0),t.invert=function(t){return(t=e.invert(t[0]*Ix,t[1]*Ix))[0]*=wx,t[1]*=wx,t},t}(i.rotate()).invert([0,0]));return l(null==u?[[s[0]-a,s[1]-a],[s[0]+a,s[1]+a]]:e===JS?[[Math.max(s[0]-a,u),t],[Math.min(s[0]+a,n),r]]:[[u,Math.max(s[1]-a,t)],[n,Math.min(s[1]+a,r)]])}return i.scale=function(e){return arguments.length?(o(e),c()):o()},i.translate=function(e){return arguments.length?(s(e),c()):s()},i.center=function(e){return arguments.length?(a(e),c()):a()},i.clipExtent=function(e){return arguments.length?(null==e?u=t=n=r=null:(u=+e[0][0],t=+e[0][1],n=+e[1][0],r=+e[1][1]),c()):null==u?null:[[u,t],[n,r]]},c()}function ZS(e){return Vx((Ox+e)/2)}function QS(e,t){var n=Lx(e),r=e===t?zx(e):jx(n/Lx(t))/jx(ZS(t)/ZS(e)),i=n*Hx(ZS(e),r)/r;if(!r)return JS;function a(e,t){i>0?t<-Ox+Ax&&(t=-Ox+Ax):t>Ox-Ax&&(t=Ox-Ax);var n=i/Hx(ZS(t),r);return[n*zx(r*e),i-n*Lx(r*e)]}return a.invert=function(e,t){var n=i-t,a=Px(r)*Ux(e*e+n*n),o=kx(e,Cx(n))*Px(n);return n*r<0&&(o-=Tx*Px(e)*Px(n)),[o/r,2*Rx(Hx(i/a,1/r))-Ox]},a}function eA(e,t){return[e,t]}function tA(e,t){var n=Lx(e),r=e===t?zx(e):(n-Lx(t))/(t-e),i=n/r+e;if(Cx(r)<Ax)return eA;function a(e,t){var n=i-t,a=r*e;return[n*zx(a),i-n*Lx(a)]}return a.invert=function(e,t){var n=i-t,a=kx(e,Cx(n))*Px(n);return n*r<0&&(a-=Tx*Px(e)*Px(n)),[a/r,i-Px(r)*Ux(e*e+n*n)]},a}KS.invert=qS((function(e){return e})),JS.invert=function(e,t){return[e,2*Rx(Fx(t))-Ox]},eA.invert=eA;var nA=1.340264,rA=-.081106,iA=893e-6,aA=.003796,oA=Ux(3)/2;function sA(e,t){var n=Gx(oA*zx(t)),r=n*n,i=r*r*r;return[e*Lx(n)/(oA*(nA+3*rA*r+i*(7*iA+9*aA*r))),n*(nA+rA*r+i*(iA+aA*r))]}function lA(e,t){var n=Lx(t),r=Lx(e)*n;return[n*zx(e)/r,zx(t)/r]}function uA(e,t){var n=t*t,r=n*n;return[e*(.8707-.131979*n+r*(r*(.003971*n-.001529*r)-.013791)),t*(1.007226+n*(.015085+r*(.028874*n-.044475-.005916*r)))]}function cA(e,t){return[Lx(t)*zx(e),zx(t)]}function dA(e,t){var n=Lx(t),r=1+Lx(e)*n;return[n*zx(e)/r,zx(t)/r]}function fA(e,t){return[jx(Vx((Ox+t)/2)),-e]}function hA(){}function pA(){var e,t=[];return{point:function(t,n,r){e.push([t,n,r])},lineStart:function(){t.push(e=[])},lineEnd:hA,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}sA.invert=function(e,t){for(var n,r=t,i=r*r,a=i*i*i,o=0;o<12&&(a=(i=(r-=n=(r*(nA+rA*i+a*(iA+aA*i))-t)/(nA+3*rA*i+a*(7*iA+9*aA*i)))*r)*i*i,!(Cx(n)<$x));++o);return[oA*e*(nA+3*rA*i+a*(7*iA+9*aA*i))/Lx(r),Gx(zx(r)/oA)]},lA.invert=qS(Rx),uA.invert=function(e,t){var n,r=t,i=25;do{var a=r*r,o=a*a;r-=n=(r*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-t)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(Cx(n)>Ax&&--i>0);return[e/(.8707+(a=r*r)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),r]},cA.invert=qS(Gx),dA.invert=qS((function(e){return 2*Rx(e)})),fA.invert=function(e,t){return[-t,2*Rx(Fx(e))-Ox]};var mA=1e-6,gA=1e-12,yA=Math.PI,_A=yA/2,vA=yA/4,bA=2*yA,xA=180/yA,EA=yA/180,SA=Math.abs,AA=Math.atan,$A=Math.atan2,TA=Math.cos,OA=(Math.ceil,Math.exp,Math.floor,Math.hypot,Math.log,Math.pow,Math.sin),DA=Math.sign||function(e){return e>0?1:e<0?-1:0},MA=Math.sqrt;function wA(e){return e>1?_A:e<-1?-_A:Math.asin(e)}function IA(e,t){return SA(e[0]-t[0])<mA&&SA(e[1]-t[1])<mA}function CA(e,t,n,r){this.x=e,this.z=t,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function RA(e,t,n,r,i){var a,o,s=[],l=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,n,r=e[0],o=e[t];if(IA(r,o)){if(!r[2]&&!o[2]){for(i.lineStart(),a=0;a<t;++a)i.point((r=e[a])[0],r[1]);return void i.lineEnd()}o[0]+=2*mA}s.push(n=new CA(r,e,null,!0)),l.push(n.o=new CA(r,null,n,!1)),s.push(n=new CA(o,e,null,!1)),l.push(n.o=new CA(o,null,n,!0))}})),s.length){for(l.sort(t),kA(s),kA(l),a=0,o=l.length;a<o;++a)l[a].e=n=!n;for(var u,c,d=s[0];;){for(var f=d,h=!0;f.v;)if((f=f.n)===d)return;u=f.z,i.lineStart();do{if(f.v=f.o.v=!0,f.e){if(h)for(a=0,o=u.length;a<o;++a)i.point((c=u[a])[0],c[1]);else r(f.x,f.n.x,1,i);f=f.n}else{if(h)for(u=f.p.z,a=u.length-1;a>=0;--a)i.point((c=u[a])[0],c[1]);else r(f.x,f.p.x,-1,i);f=f.p}u=(f=f.o).z,h=!h}while(!f.v);i.lineEnd()}}}function kA(e){if(t=e.length){for(var t,n,r=0,i=e[0];++r<t;)i.n=n=e[r],n.p=i,i=n;i.n=n=e[0],n.p=i}}function LA(e){return[$A(e[1],e[0]),wA(e[2])]}function NA(e){var t=e[0],n=e[1],r=TA(n);return[r*TA(t),r*OA(t),OA(n)]}function FA(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function BA(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function jA(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function HA(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function zA(e){var t=MA(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}function PA(e){return SA(e[0])<=yA?e[0]:DA(e[0])*((SA(e[0])+yA)%bA-yA)}function UA(e,t,n,r){return function(i){var a,o,s,l=t(i),u=pA(),c=t(u),d=!1,f={point:h,lineStart:m,lineEnd:g,polygonStart:function(){f.point=y,f.lineStart=_,f.lineEnd=v,o=[],a=[]},polygonEnd:function(){f.point=h,f.lineStart=m,f.lineEnd=g,o=hS(o);var e=function(e,t){var n=PA(t),r=t[1],i=OA(r),a=[OA(n),-TA(n),0],o=0,s=0,l=new Sx;1===i?r=_A+mA:-1===i&&(r=-_A-mA);for(var u=0,c=e.length;u<c;++u)if(f=(d=e[u]).length)for(var d,f,h=d[f-1],p=PA(h),m=h[1]/2+vA,g=OA(m),y=TA(m),_=0;_<f;++_,p=b,g=E,y=S,h=v){var v=d[_],b=PA(v),x=v[1]/2+vA,E=OA(x),S=TA(x),A=b-p,$=A>=0?1:-1,T=$*A,O=T>yA,D=g*E;if(l.add($A(D*$*OA(T),y*S+D*TA(T))),o+=O?A+$*bA:A,O^p>=n^b>=n){var M=BA(NA(h),NA(v));zA(M);var w=BA(a,M);zA(w);var I=(O^A>=0?-1:1)*wA(w[2]);(r>I||r===I&&(M[0]||M[1]))&&(s+=O^A>=0?1:-1)}}return(o<-mA||o<mA&&l<-gA)^1&s}(a,r);o.length?(d||(i.polygonStart(),d=!0),RA(o,WA,e,n,i)):e&&(d||(i.polygonStart(),d=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),d&&(i.polygonEnd(),d=!1),o=a=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function h(t,n){e(t,n)&&i.point(t,n)}function p(e,t){l.point(e,t)}function m(){f.point=p,l.lineStart()}function g(){f.point=h,l.lineEnd()}function y(e,t){s.push([e,t]),c.point(e,t)}function _(){c.lineStart(),s=[]}function v(){y(s[0][0],s[0][1]),c.lineEnd();var e,t,n,r,l=c.clean(),f=u.result(),h=f.length;if(s.pop(),a.push(s),s=null,h)if(1&l){if((t=(n=f[0]).length-1)>0){for(d||(i.polygonStart(),d=!0),i.lineStart(),e=0;e<t;++e)i.point((r=n[e])[0],r[1]);i.lineEnd()}}else h>1&&2&l&&f.push(f.pop().concat(f.shift())),o.push(f.filter(VA))}return f}}function VA(e){return e.length>1}function WA(e,t){return((e=e.x)[0]<0?e[1]-_A-mA:_A-e[1])-((t=t.x)[0]<0?t[1]-_A-mA:_A-t[1])}Math.tan;const GA=UA((function(){return!0}),(function(e){var t,n=NaN,r=NaN,i=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(a,o){var s=a>0?yA:-yA,l=SA(a-n);SA(l-yA)<mA?(e.point(n,r=(r+o)/2>0?_A:-_A),e.point(i,r),e.lineEnd(),e.lineStart(),e.point(s,r),e.point(a,r),t=0):i!==s&&l>=yA&&(SA(n-i)<mA&&(n-=i*mA),SA(a-s)<mA&&(a-=s*mA),r=function(e,t,n,r){var i,a,o=OA(e-n);return SA(o)>mA?AA((OA(t)*(a=TA(r))*OA(n)-OA(r)*(i=TA(t))*OA(e))/(i*a*o)):(t+r)/2}(n,r,a,o),e.point(i,r),e.lineEnd(),e.lineStart(),e.point(s,r),t=0),e.point(n=a,r=o),i=s},lineEnd:function(){e.lineEnd(),n=r=NaN},clean:function(){return 2-t}}}),(function(e,t,n,r){var i;if(null==e)i=n*_A,r.point(-yA,i),r.point(0,i),r.point(yA,i),r.point(yA,0),r.point(yA,-i),r.point(0,-i),r.point(-yA,-i),r.point(-yA,0),r.point(-yA,i);else if(SA(e[0]-t[0])>mA){var a=e[0]<t[0]?yA:-yA;i=n*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(t[0],t[1])}),[-yA,-_A]);function qA(e,t){(t=NA(t))[0]-=e,zA(t);var n=function(e){return e>1?0:e<-1?yA:Math.acos(e)}(-t[1]);return((-t[2]<0?-n:n)+bA-mA)%bA}var YA=1e9,KA=-YA;function JA(e,t){function n(n,r){return n=e(n,r),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,r){return(n=t.invert(n,r))&&e.invert(n[0],n[1])}),n}const XA=e=>e;function ZA(e,t){return SA(e)>yA&&(e-=Math.round(e/bA)*bA),[e,t]}function QA(e){return function(t,n){return SA(t+=e)>yA&&(t-=Math.round(t/bA)*bA),[t,n]}}function e$(e){var t=QA(e);return t.invert=QA(-e),t}function t$(e,t){var n=TA(e),r=OA(e),i=TA(t),a=OA(t);function o(e,t){var o=TA(t),s=TA(e)*o,l=OA(e)*o,u=OA(t),c=u*n+s*r;return[$A(l*i-c*a,s*n-u*r),wA(c*i+l*a)]}return o.invert=function(e,t){var o=TA(t),s=TA(e)*o,l=OA(e)*o,u=OA(t),c=u*i-l*a;return[$A(l*i+u*a,s*n+c*r),wA(c*n-s*r)]},o}function n$(e){return function(t){var n=new r$;for(var r in e)n[r]=e[r];return n.stream=t,n}}function r$(){}function i$(e,t){e&&o$.hasOwnProperty(e.type)&&o$[e.type](e,t)}ZA.invert=ZA,r$.prototype={constructor:r$,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var a$={Feature:function(e,t){i$(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,i=n.length;++r<i;)i$(n[r].geometry,t)}},o$={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)e=n[r],t.point(e[0],e[1],e[2])},LineString:function(e,t){s$(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)s$(n[r],t,0)},Polygon:function(e,t){l$(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,r=-1,i=n.length;++r<i;)l$(n[r],t)},GeometryCollection:function(e,t){for(var n=e.geometries,r=-1,i=n.length;++r<i;)i$(n[r],t)}};function s$(e,t,n){var r,i=-1,a=e.length-n;for(t.lineStart();++i<a;)r=e[i],t.point(r[0],r[1],r[2]);t.lineEnd()}function l$(e,t){var n=-1,r=e.length;for(t.polygonStart();++n<r;)s$(e[n],t,1);t.polygonEnd()}var u$=1/0,c$=u$,d$=-u$,f$=d$,h$={point:function(e,t){e<u$&&(u$=e),e>d$&&(d$=e),t<c$&&(c$=t),t>f$&&(f$=t)},lineStart:hA,lineEnd:hA,polygonStart:hA,polygonEnd:hA,result:function(){var e=[[u$,c$],[d$,f$]];return d$=f$=-(c$=u$=1/0),e}};const p$=h$;function m$(e,t,n){var r=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=r&&e.clipExtent(null),function(e,t){e&&a$.hasOwnProperty(e.type)?a$[e.type](e,t):i$(e,t)}(n,e.stream(p$)),t(p$.result()),null!=r&&e.clipExtent(r),e}function g$(e,t,n){return m$(e,(function(n){var r=t[1][0]-t[0][0],i=t[1][1]-t[0][1],a=Math.min(r/(n[1][0]-n[0][0]),i/(n[1][1]-n[0][1])),o=+t[0][0]+(r-a*(n[1][0]+n[0][0]))/2,s=+t[0][1]+(i-a*(n[1][1]+n[0][1]))/2;e.scale(150*a).translate([o,s])}),n)}var y$=16,_$=TA(30*EA);function v$(e,t){return+t?function(e,t){function n(r,i,a,o,s,l,u,c,d,f,h,p,m,g){var y=u-r,_=c-i,v=y*y+_*_;if(v>4*t&&m--){var b=o+f,x=s+h,E=l+p,S=MA(b*b+x*x+E*E),A=wA(E/=S),$=SA(SA(E)-1)<mA||SA(a-d)<mA?(a+d)/2:$A(x,b),T=e($,A),O=T[0],D=T[1],M=O-r,w=D-i,I=_*M-y*w;(I*I/v>t||SA((y*M+_*w)/v-.5)>.3||o*f+s*h+l*p<_$)&&(n(r,i,a,o,s,l,O,D,$,b/=S,x/=S,E,m,g),g.point(O,D),n(O,D,$,b,x,E,u,c,d,f,h,p,m,g))}}return function(t){var r,i,a,o,s,l,u,c,d,f,h,p,m={point:g,lineStart:y,lineEnd:v,polygonStart:function(){t.polygonStart(),m.lineStart=b},polygonEnd:function(){t.polygonEnd(),m.lineStart=y}};function g(n,r){n=e(n,r),t.point(n[0],n[1])}function y(){c=NaN,m.point=_,t.lineStart()}function _(r,i){var a=NA([r,i]),o=e(r,i);n(c,d,u,f,h,p,c=o[0],d=o[1],u=r,f=a[0],h=a[1],p=a[2],y$,t),t.point(c,d)}function v(){m.point=g,t.lineEnd()}function b(){y(),m.point=x,m.lineEnd=E}function x(e,t){_(r=e,t),i=c,a=d,o=f,s=h,l=p,m.point=_}function E(){n(c,d,u,f,h,p,i,a,r,o,s,l,y$,t),m.lineEnd=v,v()}return m}}(e,t):function(e){return n$({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}(e)}var b$=n$({point:function(e,t){this.stream.point(e*EA,t*EA)}});function x$(e,t,n,r,i,a){if(!a)return function(e,t,n,r,i){function a(a,o){return[t+e*(a*=r),n-e*(o*=i)]}return a.invert=function(a,o){return[(a-t)/e*r,(n-o)/e*i]},a}(e,t,n,r,i);var o=TA(a),s=OA(a),l=o*e,u=s*e,c=o/e,d=s/e,f=(s*n-o*t)/e,h=(s*t+o*n)/e;function p(e,a){return[l*(e*=r)-u*(a*=i)+t,n-u*e-l*a]}return p.invert=function(e,t){return[r*(c*e-d*t+f),i*(h-d*e-c*t)]},p}function E$(e){return function(e){var t,n,r,i,a,o,s,l,u,c,d=150,f=480,h=250,p=0,m=0,g=0,y=0,_=0,v=0,b=1,x=1,E=null,S=GA,A=null,$=XA,T=.5;function O(e){return l(e[0]*EA,e[1]*EA)}function D(e){return(e=l.invert(e[0],e[1]))&&[e[0]*xA,e[1]*xA]}function M(){var e=x$(d,0,0,b,x,v).apply(null,t(p,m)),r=x$(d,f-e[0],h-e[1],b,x,v);return n=function(e,t,n){return(e%=bA)?t||n?JA(e$(e),t$(t,n)):e$(e):t||n?t$(t,n):ZA}(g,y,_),s=JA(t,r),l=JA(n,s),o=v$(s,T),w()}function w(){return u=c=null,O}return O.stream=function(e){return u&&c===e?u:u=b$(function(e){return n$({point:function(t,n){var r=e(t,n);return this.stream.point(r[0],r[1])}})}(n)(S(o($(c=e)))))},O.preclip=function(e){return arguments.length?(S=e,E=void 0,w()):S},O.postclip=function(e){return arguments.length?($=e,A=r=i=a=null,w()):$},O.clipAngle=function(e){return arguments.length?(S=+e?function(e){var t=TA(e),n=6*EA,r=t>0,i=SA(t)>mA;function a(e,n){return TA(e)*TA(n)>t}function o(e,n,r){var i=[1,0,0],a=BA(NA(e),NA(n)),o=FA(a,a),s=a[0],l=o-s*s;if(!l)return!r&&e;var u=t*o/l,c=-t*s/l,d=BA(i,a),f=HA(i,u);jA(f,HA(a,c));var h=d,p=FA(f,h),m=FA(h,h),g=p*p-m*(FA(f,f)-1);if(!(g<0)){var y=MA(g),_=HA(h,(-p-y)/m);if(jA(_,f),_=LA(_),!r)return _;var v,b=e[0],x=n[0],E=e[1],S=n[1];x<b&&(v=b,b=x,x=v);var A=x-b,$=SA(A-yA)<mA;if(!$&&S<E&&(v=E,E=S,S=v),$||A<mA?$?E+S>0^_[1]<(SA(_[0]-b)<mA?E:S):E<=_[1]&&_[1]<=S:A>yA^(b<=_[0]&&_[0]<=x)){var T=HA(h,(-p+y)/m);return jA(T,f),[_,LA(T)]}}}function s(t,n){var i=r?e:yA-e,a=0;return t<-i?a|=1:t>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}return UA(a,(function(e){var t,n,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(d,f){var h,p=[d,f],m=a(d,f),g=r?m?0:s(d,f):m?s(d+(d<0?yA:-yA),f):0;if(!t&&(u=l=m)&&e.lineStart(),m!==l&&(!(h=o(t,p))||IA(t,h)||IA(p,h))&&(p[2]=1),m!==l)c=0,m?(e.lineStart(),h=o(p,t),e.point(h[0],h[1])):(h=o(t,p),e.point(h[0],h[1],2),e.lineEnd()),t=h;else if(i&&t&&r^m){var y;g&n||!(y=o(p,t,!0))||(c=0,r?(e.lineStart(),e.point(y[0][0],y[0][1]),e.point(y[1][0],y[1][1]),e.lineEnd()):(e.point(y[1][0],y[1][1]),e.lineEnd(),e.lineStart(),e.point(y[0][0],y[0][1],3)))}!m||t&&IA(t,p)||e.point(p[0],p[1]),t=p,l=m,n=g},lineEnd:function(){l&&e.lineEnd(),t=null},clean:function(){return c|(u&&l)<<1}}}),(function(t,r,i,a){!function(e,t,n,r,i,a){if(n){var o=TA(t),s=OA(t),l=r*n;null==i?(i=t+r*bA,a=t-l/2):(i=qA(o,i),a=qA(o,a),(r>0?i<a:i>a)&&(i+=r*bA));for(var u,c=i;r>0?c>a:c<a;c-=l)u=LA([o,-s*TA(c),-s*OA(c)]),e.point(u[0],u[1])}}(a,e,n,i,t,r)}),r?[0,-e]:[-yA,e-yA])}(E=e*EA):(E=null,GA),w()):E*xA},O.clipExtent=function(e){return arguments.length?($=null==e?(A=r=i=a=null,XA):function(e,t,n,r){function i(i,a){return e<=i&&i<=n&&t<=a&&a<=r}function a(i,a,s,u){var c=0,d=0;if(null==i||(c=o(i,s))!==(d=o(a,s))||l(i,a)<0^s>0)do{u.point(0===c||3===c?e:n,c>1?r:t)}while((c=(c+s+4)%4)!==d);else u.point(a[0],a[1])}function o(r,i){return SA(r[0]-e)<mA?i>0?0:3:SA(r[0]-n)<mA?i>0?2:1:SA(r[1]-t)<mA?i>0?1:0:i>0?3:2}function s(e,t){return l(e.x,t.x)}function l(e,t){var n=o(e,1),r=o(t,1);return n!==r?n-r:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(o){var l,u,c,d,f,h,p,m,g,y,_,v=o,b=pA(),x={point:E,lineStart:function(){x.point=S,u&&u.push(c=[]),y=!0,g=!1,p=m=NaN},lineEnd:function(){l&&(S(d,f),h&&g&&b.rejoin(),l.push(b.result())),x.point=E,g&&v.lineEnd()},polygonStart:function(){v=b,l=[],u=[],_=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,i=u.length;n<i;++n)for(var a,o,s=u[n],l=1,c=s.length,d=s[0],f=d[0],h=d[1];l<c;++l)a=f,o=h,f=(d=s[l])[0],h=d[1],o<=r?h>r&&(f-a)*(r-o)>(h-o)*(e-a)&&++t:h<=r&&(f-a)*(r-o)<(h-o)*(e-a)&&--t;return t}(),n=_&&t,i=(l=hS(l)).length;(n||i)&&(o.polygonStart(),n&&(o.lineStart(),a(null,null,1,o),o.lineEnd()),i&&RA(l,s,t,a,o),o.polygonEnd()),v=o,l=u=c=null}};function E(e,t){i(e,t)&&v.point(e,t)}function S(a,o){var s=i(a,o);if(u&&c.push([a,o]),y)d=a,f=o,h=s,y=!1,s&&(v.lineStart(),v.point(a,o));else if(s&&g)v.point(a,o);else{var l=[p=Math.max(KA,Math.min(YA,p)),m=Math.max(KA,Math.min(YA,m))],b=[a=Math.max(KA,Math.min(YA,a)),o=Math.max(KA,Math.min(YA,o))];!function(e,t,n,r,i,a){var o,s=e[0],l=e[1],u=0,c=1,d=t[0]-s,f=t[1]-l;if(o=n-s,d||!(o>0)){if(o/=d,d<0){if(o<u)return;o<c&&(c=o)}else if(d>0){if(o>c)return;o>u&&(u=o)}if(o=i-s,d||!(o<0)){if(o/=d,d<0){if(o>c)return;o>u&&(u=o)}else if(d>0){if(o<u)return;o<c&&(c=o)}if(o=r-l,f||!(o>0)){if(o/=f,f<0){if(o<u)return;o<c&&(c=o)}else if(f>0){if(o>c)return;o>u&&(u=o)}if(o=a-l,f||!(o<0)){if(o/=f,f<0){if(o>c)return;o>u&&(u=o)}else if(f>0){if(o<u)return;o<c&&(c=o)}return u>0&&(e[0]=s+u*d,e[1]=l+u*f),c<1&&(t[0]=s+c*d,t[1]=l+c*f),!0}}}}}(l,b,e,t,n,r)?s&&(v.lineStart(),v.point(a,o),_=!1):(g||(v.lineStart(),v.point(l[0],l[1])),v.point(b[0],b[1]),s||v.lineEnd(),_=!1)}p=a,m=o,g=s}return x}}(A=+e[0][0],r=+e[0][1],i=+e[1][0],a=+e[1][1]),w()):null==A?null:[[A,r],[i,a]]},O.scale=function(e){return arguments.length?(d=+e,M()):d},O.translate=function(e){return arguments.length?(f=+e[0],h=+e[1],M()):[f,h]},O.center=function(e){return arguments.length?(p=e[0]%360*EA,m=e[1]%360*EA,M()):[p*xA,m*xA]},O.rotate=function(e){return arguments.length?(g=e[0]%360*EA,y=e[1]%360*EA,_=e.length>2?e[2]%360*EA:0,M()):[g*xA,y*xA,_*xA]},O.angle=function(e){return arguments.length?(v=e%360*EA,M()):v*xA},O.reflectX=function(e){return arguments.length?(b=e?-1:1,M()):b<0},O.reflectY=function(e){return arguments.length?(x=e?-1:1,M()):x<0},O.precision=function(e){return arguments.length?(o=v$(s,T=e*e),w()):MA(T)},O.fitExtent=function(e,t){return g$(O,e,t)},O.fitSize=function(e,t){return function(e,t,n){return g$(e,[[0,0],t],n)}(O,e,t)},O.fitWidth=function(e,t){return function(e,t,n){return m$(e,(function(n){var r=+t,i=r/(n[1][0]-n[0][0]),a=(r-i*(n[1][0]+n[0][0]))/2,o=-i*n[0][1];e.scale(150*i).translate([a,o])}),n)}(O,e,t)},O.fitHeight=function(e,t){return function(e,t,n){return m$(e,(function(n){var r=+t,i=r/(n[1][1]-n[0][1]),a=-i*n[0][0],o=(r-i*(n[1][1]+n[0][1]))/2;e.scale(150*i).translate([a,o])}),n)}(O,e,t)},function(){return t=e.apply(this,arguments),O.invert=t.invert&&D,M()}}((function(){return e}))()}var S$=Math.abs,A$=(Math.atan,Math.atan2,Math.ceil,Math.cos),$$=(Math.exp,Math.floor,Math.log,Math.max,Math.min,Math.pow,Math.round,Math.sign,Math.sin),T$=(Math.tan,1e-6),O$=Math.PI,D$=O$/2,M$=(Math.SQRT1_2,I$(2));function w$(e){return e>1?D$:e<-1?-D$:Math.asin(e)}function I$(e){return e>0?Math.sqrt(e):0}function C$(e,t){var n,r=e*$$(t),i=30;do{t-=n=(t+$$(t)-r)/(1+A$(t))}while(S$(n)>T$&&--i>0);return t/2}I$(O$);var R$=function(e,t,n){function r(r,i){return[e*r*A$(i=C$(n,i)),t*$$(i)]}return r.invert=function(r,i){return i=w$(i/t),[r/(e*A$(i)),w$((2*i+$$(2*i))/n)]},r}(M$/D$,M$,O$);const k$=QE(),L$=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function N$(e,t){if(!e||"string"!=typeof e)throw new Error("Projection type must be a name string.");return e=e.toLowerCase(),arguments.length>1?(B$[e]=function(e,t){return function n(){const r=t();return r.type=e,r.path=QE().projection(r),r.copy=r.copy||function(){const e=n();return L$.forEach((t=>{r[t]&&e[t](r[t]())})),e.path.pointRadius(r.path.pointRadius()),e},mp(r)}}(e,t),this):B$[e]||null}function F$(e){return e&&e.path||k$}const B$={albers:WS,albersusa:function(){var e,t,n,r,i,a,o=WS(),s=VS().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=VS().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u={point:function(e,t){a=[e,t]}};function c(e){var t=e[0],o=e[1];return a=null,n.point(t,o),a||(r.point(t,o),a)||(i.point(t,o),a)}function d(){return e=t=null,c}return c.invert=function(e){var t=o.scale(),n=o.translate(),r=(e[0]-n[0])/t,i=(e[1]-n[1])/t;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?l:o).invert(e)},c.stream=function(n){return e&&t===n?e:(r=[o.stream(t=n),s.stream(n),l.stream(n)],i=r.length,e={point:function(e,t){for(var n=-1;++n<i;)r[n].point(e,t)},sphere:function(){for(var e=-1;++e<i;)r[e].sphere()},lineStart:function(){for(var e=-1;++e<i;)r[e].lineStart()},lineEnd:function(){for(var e=-1;++e<i;)r[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<i;)r[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<i;)r[e].polygonEnd()}});var r,i},c.precision=function(e){return arguments.length?(o.precision(e),s.precision(e),l.precision(e),d()):o.precision()},c.scale=function(e){return arguments.length?(o.scale(e),s.scale(.35*e),l.scale(e),c.translate(o.translate())):o.scale()},c.translate=function(e){if(!arguments.length)return o.translate();var t=o.scale(),a=+e[0],c=+e[1];return n=o.translate(e).clipExtent([[a-.455*t,c-.238*t],[a+.455*t,c+.238*t]]).stream(u),r=s.translate([a-.307*t,c+.201*t]).clipExtent([[a-.425*t+Ax,c+.12*t+Ax],[a-.214*t-Ax,c+.234*t-Ax]]).stream(u),i=l.translate([a-.205*t,c+.212*t]).clipExtent([[a-.214*t+Ax,c+.166*t+Ax],[a-.115*t-Ax,c+.234*t-Ax]]).stream(u),d()},c.fitExtent=function(e,t){return IS(c,e,t)},c.fitSize=function(e,t){return CS(c,e,t)},c.fitWidth=function(e,t){return RS(c,e,t)},c.fitHeight=function(e,t){return kS(c,e,t)},c.scale(1070)},azimuthalequalarea:function(){return HS(YS).scale(124.75).clipAngle(179.999)},azimuthalequidistant:function(){return HS(KS).scale(79.4188).clipAngle(179.999)},conicconformal:function(){return PS(QS).scale(109.5).parallels([30,30])},conicequalarea:VS,conicequidistant:function(){return PS(tA).scale(131.154).center([0,13.9389])},equalEarth:function(){return HS(sA).scale(177.158)},equirectangular:function(){return HS(eA).scale(152.63)},gnomonic:function(){return HS(lA).scale(144.049).clipAngle(60)},identity:function(){var e,t,n,r,i,a,o,s=1,l=0,u=0,c=1,d=1,f=0,h=null,p=1,m=1,g=DS({point:function(e,t){var n=v([e,t]);this.stream.point(n[0],n[1])}}),y=gx;function _(){return p=s*c,m=s*d,a=o=null,v}function v(n){var r=n[0]*p,i=n[1]*m;if(f){var a=i*e-r*t;r=r*e+i*t,i=a}return[r+l,i+u]}return v.invert=function(n){var r=n[0]-l,i=n[1]-u;if(f){var a=i*e+r*t;r=r*e-i*t,i=a}return[r/p,i/m]},v.stream=function(e){return a&&o===e?a:a=g(y(o=e))},v.postclip=function(e){return arguments.length?(y=e,h=n=r=i=null,_()):y},v.clipExtent=function(e){return arguments.length?(y=null==e?(h=n=r=i=null,gx):xS(h=+e[0][0],n=+e[0][1],r=+e[1][0],i=+e[1][1]),_()):null==h?null:[[h,n],[r,i]]},v.scale=function(e){return arguments.length?(s=+e,_()):s},v.translate=function(e){return arguments.length?(l=+e[0],u=+e[1],_()):[l,u]},v.angle=function(n){return arguments.length?(t=zx(f=n%360*Ix),e=Lx(f),_()):f*wx},v.reflectX=function(e){return arguments.length?(c=e?-1:1,_()):c<0},v.reflectY=function(e){return arguments.length?(d=e?-1:1,_()):d<0},v.fitExtent=function(e,t){return IS(v,e,t)},v.fitSize=function(e,t){return CS(v,e,t)},v.fitWidth=function(e,t){return RS(v,e,t)},v.fitHeight=function(e,t){return kS(v,e,t)},v},mercator:function(){return XS(JS).scale(961/Mx)},mollweide:function(){return E$(R$).scale(169.529)},naturalEarth1:function(){return HS(uA).scale(175.295)},orthographic:function(){return HS(cA).scale(249.5).clipAngle(90+Ax)},stereographic:function(){return HS(dA).scale(250).clipAngle(142)},transversemercator:function(){var e=XS(fA),t=e.center,n=e.rotate;return e.center=function(e){return arguments.length?t([-e[1],e[0]]):[(e=t())[1],-e[0]]},e.rotate=function(e){return arguments.length?n([e[0],e[1],e.length>2?e[2]+90:90]):[(e=n())[0],e[1],e[2]-90]},n([0,0,90]).scale(159.155)}};for(const e in B$)N$(e,B$[e]);function j$(e,t,n){var r=Fs(e,t-Ax,n).concat(t);return function(e){return r.map((function(t){return[e,t]}))}}function H$(e,t,n){var r=Fs(e,t-Ax,n).concat(t);return function(e){return r.map((function(t){return[t,e]}))}}function z$(){}const P$=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function U$(){var e=1,t=1,n=o;function r(e,t){return t.map((t=>i(e,t)))}function i(r,i){var o=[],s=[];return function(n,r,i){var o,s,l,u,c,d,f=[],h=[];for(o=s=-1,u=n[0]>=r,P$[u<<1].forEach(p);++o<e-1;)l=u,u=n[o+1]>=r,P$[l|u<<1].forEach(p);for(P$[u<<0].forEach(p);++s<t-1;){for(o=-1,u=n[s*e+e]>=r,c=n[s*e]>=r,P$[u<<1|c<<2].forEach(p);++o<e-1;)l=u,u=n[s*e+e+o+1]>=r,d=c,c=n[s*e+o+1]>=r,P$[l|u<<1|c<<2|d<<3].forEach(p);P$[u|c<<3].forEach(p)}for(o=-1,c=n[s*e]>=r,P$[c<<2].forEach(p);++o<e-1;)d=c,c=n[s*e+o+1]>=r,P$[c<<2|d<<3].forEach(p);function p(e){var t,n,r=[e[0][0]+o,e[0][1]+s],l=[e[1][0]+o,e[1][1]+s],u=a(r),c=a(l);(t=h[u])?(n=f[c])?(delete h[t.end],delete f[n.start],t===n?(t.ring.push(l),i(t.ring)):f[t.start]=h[n.end]={start:t.start,end:n.end,ring:t.ring.concat(n.ring)}):(delete h[t.end],t.ring.push(l),h[t.end=c]=t):(t=f[c])?(n=h[u])?(delete f[t.start],delete h[n.end],t===n?(t.ring.push(l),i(t.ring)):f[n.start]=h[t.end]={start:n.start,end:t.end,ring:n.ring.concat(t.ring)}):(delete f[t.start],t.ring.unshift(r),f[t.start=u]=t):f[u]=h[c]={start:u,end:c,ring:[r,l]}}P$[c<<3].forEach(p)}(r,i,(e=>{n(e,r,i),function(e){for(var t=0,n=e.length,r=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];++t<n;)r+=e[t-1][1]*e[t][0]-e[t-1][0]*e[t][1];return r}(e)>0?o.push([e]):s.push(e)})),s.forEach((e=>{for(var t,n=0,r=o.length;n<r;++n)if(-1!==V$((t=o[n])[0],e))return void t.push(e)})),{type:"MultiPolygon",value:i,coordinates:o}}function a(t){return 2*t[0]+t[1]*(e+1)*4}function o(n,r,i){n.forEach((n=>{var a,o=n[0],s=n[1],l=0|o,u=0|s,c=r[u*e+l];o>0&&o<e&&l===o&&(a=r[u*e+l-1],n[0]=o+(i-a)/(c-a)-.5),s>0&&s<t&&u===s&&(a=r[(u-1)*e+l],n[1]=s+(i-a)/(c-a)-.5)}))}return r.contour=i,r.size=function(n){if(!arguments.length)return[e,t];var i=Math.floor(n[0]),a=Math.floor(n[1]);return i>=0&&a>=0||_e("invalid size"),e=i,t=a,r},r.smooth=function(e){return arguments.length?(n=e?o:z$,r):n===o},r}function V$(e,t){for(var n,r=-1,i=t.length;++r<i;)if(n=W$(e,t[r]))return n;return 0}function W$(e,t){for(var n=t[0],r=t[1],i=-1,a=0,o=e.length,s=o-1;a<o;s=a++){var l=e[a],u=l[0],c=l[1],d=e[s],f=d[0],h=d[1];if(G$(l,d,t))return 0;c>r!=h>r&&n<(f-u)*(r-c)/(h-c)+u&&(i=-i)}return i}function G$(e,t,n){var r;return function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])==(n[0]-e[0])*(t[1]-e[1])}(e,t,n)&&function(e,t,n){return e<=t&&t<=n||n<=t&&t<=e}(e[r=+(e[0]===t[0])],n[r],t[r])}function q$(e,t,n){return function(r){var i=ct(r),a=n?Math.min(i[0],0):i[0],o=i[1],s=o-a,l=t?Zt(a,o,e):s/(e+1);return Fs(a+l,o,l)}}function Y$(e){Vo.call(this,null,e)}function K$(e,t,n,r,i){const a=e.x1||0,o=e.y1||0,s=t*n<0;function l(e){e.forEach(u)}function u(e){s&&e.reverse(),e.forEach(c)}function c(e){e[0]=(e[0]-a)*t+r,e[1]=(e[1]-o)*n+i}return function(e){return e.coordinates.forEach(l),e}}function J$(e,t,n){const r=e>=0?e:is(t,n);return Math.round((Math.sqrt(4*r*r+1)-1)/2)}function X$(e){return et(e)?e:st(+e)}function Z$(){var e=e=>e[0],t=e=>e[1],n=Ae,r=[-1,-1],i=960,a=500,o=2;function s(s,l){const u=J$(r[0],s,e)>>o,c=J$(r[1],s,t)>>o,d=u?u+2:0,f=c?c+2:0,h=2*d+(i>>o),p=2*f+(a>>o),m=new Float32Array(h*p),g=new Float32Array(h*p);let y=m;s.forEach((r=>{const i=d+(+e(r)>>o),a=f+(+t(r)>>o);i>=0&&i<h&&a>=0&&a<p&&(m[i+a*h]+=+n(r))})),u>0&&c>0?(Q$(h,p,m,g,u),eT(h,p,g,m,c),Q$(h,p,m,g,u),eT(h,p,g,m,c),Q$(h,p,m,g,u),eT(h,p,g,m,c)):u>0?(Q$(h,p,m,g,u),Q$(h,p,g,m,u),Q$(h,p,m,g,u),y=g):c>0&&(eT(h,p,m,g,c),eT(h,p,g,m,c),eT(h,p,m,g,c),y=g);const _=l?Math.pow(2,-2*o):1/jb(y);for(let e=0,t=h*p;e<t;++e)y[e]*=_;return{values:y,scale:1<<o,width:h,height:p,x1:d,y1:f,x2:d+(i>>o),y2:f+(a>>o)}}return s.x=function(t){return arguments.length?(e=X$(t),s):e},s.y=function(e){return arguments.length?(t=X$(e),s):t},s.weight=function(e){return arguments.length?(n=X$(e),s):n},s.size=function(e){if(!arguments.length)return[i,a];var t=+e[0],n=+e[1];return t>=0&&n>=0||_e("invalid size"),i=t,a=n,s},s.cellSize=function(e){return arguments.length?((e=+e)>=1||_e("invalid cell size"),o=Math.floor(Math.log(e)/Math.LN2),s):1<<o},s.bandwidth=function(e){return arguments.length?(1===(e=Qe(e)).length&&(e=[+e[0],+e[0]]),2!==e.length&&_e("invalid bandwidth"),r=e,s):r},s}function Q$(e,t,n,r,i){const a=1+(i<<1);for(let o=0;o<t;++o)for(let t=0,s=0;t<e+i;++t)t<e&&(s+=n[t+o*e]),t>=i&&(t>=a&&(s-=n[t-a+o*e]),r[t-i+o*e]=s/Math.min(t+1,e-1+a-t,a))}function eT(e,t,n,r,i){const a=1+(i<<1);for(let o=0;o<e;++o)for(let s=0,l=0;s<t+i;++s)s<t&&(l+=n[o+s*e]),s>=i&&(s>=a&&(l-=n[o+(s-a)*e]),r[o+(s-i)*e]=l/Math.min(s+1,t-1+a-s,a))}function tT(e){Vo.call(this,null,e)}Y$.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]},pt(Y$,Vo,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=t.materialize(t.SOURCE).source,i=e.field||Ee,a=U$().smooth(!1!==e.smooth),o=e.thresholds||function(e,t,n){const r=q$(n.levels||10,n.nice,!1!==n.zero);return"shared"!==n.resolve?r:r(e.map((e=>Go(t(e).values))))}(r,i,e),s=null===e.as?null:e.as||"contour",l=[];return r.forEach((t=>{const n=i(t),r=a.size([n.width,n.height])(n.values,Le(o)?o:o(n.values));!function(e,t,n,r){let i=r.scale||t.scale,a=r.translate||t.translate;if(et(i)&&(i=i(n,r)),et(a)&&(a=a(n,r)),(1===i||null==i)&&!a)return;const o=(yt(i)?i:i[0])||1,s=(yt(i)?i:i[1])||1,l=a&&a[0]||0,u=a&&a[1]||0;e.forEach(K$(t,o,s,l,u))}(r,n,t,e),r.forEach((e=>{l.push(go(t,po(null!=s?{[s]:e}:e)))}))})),this.value&&(n.rem=this.value),this.value=n.source=n.add=l,n}}),tT.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const nT=["x","y","weight","size","cellSize","bandwidth"];function rT(e,t){return nT.forEach((n=>null!=t[n]?e[n](t[n]):0)),e}function iT(e){Vo.call(this,null,e)}pt(tT,Vo,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n,r=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=function(e,t){var n,r,i,a,o,s,l=[],u=e=>e(a);if(null==t)l.push(e);else for(n={},r=0,i=e.length;r<i;++r)a=e[r],(s=n[o=t.map(u)])||(n[o]=s=[],s.dims=o,l.push(s)),s.push(a);return l}(t.materialize(t.SOURCE).source,e.groupby),a=(e.groupby||[]).map(he),o=rT(Z$(),e),s=e.as||"grid";return n=i.map((t=>po(function(e,t){for(let n=0;n<a.length;++n)e[a[n]]=t[n];return e}({[s]:o(t,e.counts)},t.dims)))),this.value&&(r.rem=this.value),this.value=r.source=r.add=n,r}}),iT.Definition={type:"Contour",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"values",type:"number",array:!0},{name:"x",type:"field"},{name:"y",type:"field"},{name:"weight",type:"field"},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number"},{name:"count",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"thresholds",type:"number",array:!0},{name:"smooth",type:"boolean",default:!0}]},pt(iT,Vo,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n,r,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),a=U$().smooth(!1!==e.smooth),o=e.values,s=e.thresholds||q$(e.count||10,e.nice,!!o),l=e.size;return o||(o=t.materialize(t.SOURCE).source,r=K$(n=rT(Z$(),e)(o,!0),n.scale||1,n.scale||1,0,0),l=[n.width,n.height],o=n.values),s=Le(s)?s:s(o),o=a.size(l)(o,s),r&&o.forEach(r),this.value&&(i.rem=this.value),this.value=i.source=i.add=(o||[]).map(po),i}});const aT="Feature",oT="FeatureCollection";function sT(e){Vo.call(this,null,e)}function lT(e){Vo.call(this,null,e)}function uT(e){Vo.call(this,null,e)}function cT(e){Vo.call(this,null,e)}function dT(e){Vo.call(this,[],e),this.generator=function(){var e,t,n,r,i,a,o,s,l,u,c,d,f=10,h=f,p=90,m=360,g=2.5;function y(){return{type:"MultiLineString",coordinates:_()}}function _(){return Fs(Nx(r/p)*p,n,p).map(c).concat(Fs(Nx(s/m)*m,o,m).map(d)).concat(Fs(Nx(t/f)*f,e,f).filter((function(e){return Cx(e%p)>Ax})).map(l)).concat(Fs(Nx(a/h)*h,i,h).filter((function(e){return Cx(e%m)>Ax})).map(u))}return y.lines=function(){return _().map((function(e){return{type:"LineString",coordinates:e}}))},y.outline=function(){return{type:"Polygon",coordinates:[c(r).concat(d(o).slice(1),c(n).reverse().slice(1),d(s).reverse().slice(1))]}},y.extent=function(e){return arguments.length?y.extentMajor(e).extentMinor(e):y.extentMinor()},y.extentMajor=function(e){return arguments.length?(r=+e[0][0],n=+e[1][0],s=+e[0][1],o=+e[1][1],r>n&&(e=r,r=n,n=e),s>o&&(e=s,s=o,o=e),y.precision(g)):[[r,s],[n,o]]},y.extentMinor=function(n){return arguments.length?(t=+n[0][0],e=+n[1][0],a=+n[0][1],i=+n[1][1],t>e&&(n=t,t=e,e=n),a>i&&(n=a,a=i,i=n),y.precision(g)):[[t,a],[e,i]]},y.step=function(e){return arguments.length?y.stepMajor(e).stepMinor(e):y.stepMinor()},y.stepMajor=function(e){return arguments.length?(p=+e[0],m=+e[1],y):[p,m]},y.stepMinor=function(e){return arguments.length?(f=+e[0],h=+e[1],y):[f,h]},y.precision=function(f){return arguments.length?(g=+f,l=j$(a,i,90),u=H$(t,e,g),c=j$(s,o,90),d=H$(r,n,g),y):g},y.extentMajor([[-180,-90+Ax],[180,90-Ax]]).extentMinor([[-180,-80-Ax],[180,80+Ax]])}()}function fT(e){Vo.call(this,null,e)}function hT(e){if(!et(e))return!1;const t=Dt(pe(e));return t.$x||t.$y||t.$value||t.$max}function pT(e){Vo.call(this,null,e),this.modified(!0)}function mT(e,t,n){et(e[t])&&e[t](n)}function gT(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var i,a,o,s,l,u,c,d,f,h=e._root,p={data:r},m=e._x0,g=e._y0,y=e._x1,_=e._y1;if(!h)return e._root=p,e;for(;h.length;)if((u=t>=(a=(m+y)/2))?m=a:y=a,(c=n>=(o=(g+_)/2))?g=o:_=o,i=h,!(h=h[d=c<<1|u]))return i[d]=p,e;if(s=+e._x.call(null,h.data),l=+e._y.call(null,h.data),t===s&&n===l)return p.next=h,i?i[d]=p:e._root=p,e;do{i=i?i[d]=new Array(4):e._root=new Array(4),(u=t>=(a=(m+y)/2))?m=a:y=a,(c=n>=(o=(g+_)/2))?g=o:_=o}while((d=c<<1|u)==(f=(l>=o)<<1|s>=a));return i[f]=h,i[d]=p,e}function yT(e,t,n,r,i){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=i}function _T(e){return e[0]}function vT(e){return e[1]}function bT(e,t,n){var r=new xT(null==t?_T:t,null==n?vT:n,NaN,NaN,NaN,NaN);return null==e?r:r.addAll(e)}function xT(e,t,n,r,i,a){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function ET(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}sT.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},pt(sT,Vo,{transform(e,t){var n,r=this._features,i=this._points,a=e.fields,o=a&&a[0],s=a&&a[1],l=e.geojson||!a&&Ee,u=t.ADD;n=e.modified()||t.changed(t.REM)||t.modified(pe(l))||o&&t.modified(pe(o))||s&&t.modified(pe(s)),this.value&&!n||(u=t.SOURCE,this._features=r=[],this._points=i=[]),l&&t.visit(u,(e=>r.push(l(e)))),o&&s&&(t.visit(u,(e=>{var t=o(e),n=s(e);null!=t&&null!=n&&(t=+t)===t&&(n=+n)===n&&i.push([t,n])})),r=r.concat({type:aT,geometry:{type:"MultiPoint",coordinates:i}})),this.value={type:oT,features:r}}}),lT.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]},pt(lT,Vo,{transform(e,t){var n=t.fork(t.ALL),r=this.value,i=e.field||Ee,a=e.as||"path",o=n.SOURCE;!r||e.modified()?(this.value=r=F$(e.projection),n.materialize().reflow()):o=i===Ee||t.modified(i.fields)?n.ADD_MOD:n.ADD;const s=function(e,t){const n=e.pointRadius();return e.context(null),null!=t&&e.pointRadius(t),n}(r,e.pointRadius);return n.visit(o,(e=>e[a]=r(i(e)))),r.pointRadius(s),n.modifies(a)}}),uT.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]},pt(uT,Vo,{transform(e,t){var n,r=e.projection,i=e.fields[0],a=e.fields[1],o=e.as||["x","y"],s=o[0],l=o[1];function u(e){const t=r([i(e),a(e)]);t?(e[s]=t[0],e[l]=t[1]):(e[s]=void 0,e[l]=void 0)}return e.modified()?t=t.materialize().reflow(!0).visit(t.SOURCE,u):(n=t.modified(i.fields)||t.modified(a.fields),t.visit(n?t.ADD_MOD:t.ADD,u)),t.modifies(o)}}),cT.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]},pt(cT,Vo,{transform(e,t){var n=t.fork(t.ALL),r=this.value,i=e.as||"shape",a=n.ADD;return r&&!e.modified()||(this.value=r=function(e,t,n){const r=null==n?n=>e(t(n)):r=>{var i=e.pointRadius(),a=e.pointRadius(n)(t(r));return e.pointRadius(i),a};return r.context=t=>(e.context(t),r),r}(F$(e.projection),e.field||be("datum"),e.pointRadius),n.materialize().reflow(),a=n.SOURCE),n.visit(a,(e=>e[i]=r)),n.modifies(i)}}),dT.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]},pt(dT,Vo,{transform(e,t){var n,r=this.value,i=this.generator;if(!r.length||e.modified())for(const t in e)et(i[t])&&i[t](e[t]);return n=i(),r.length?t.mod.push(yo(r[0],n)):t.add.push(po(n)),r[0]=n,t}}),fT.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]},pt(fT,Vo,{transform(e,t){if(!t.changed()&&!e.modified())return t.StopPropagation;var n=t.materialize(t.SOURCE).source,r="shared"===e.resolve,i=e.field||Ee,a=function(e,t){let n;return et(e)?(n=n=>e(n,t),n.dep=hT(e)):e?n=st(e):(n=e=>e.$value/e.$max||0,n.dep=!0),n}(e.opacity,e),o=function(e,t){let n;return et(e)?(n=n=>Xc(e(n,t)),n.dep=hT(e)):n=st(Xc(e||"#888")),n}(e.color,e),s=e.as||"image",l={$x:0,$y:0,$value:0,$max:r?Go(n.map((e=>Go(i(e).values)))):0};return n.forEach((e=>{const t=i(e),n=ut({},e,l);r||(n.$max=Go(t.values||[])),e[s]=function(e,t,n,r){const i=e.width,a=e.height,o=e.x1||0,s=e.y1||0,l=e.x2||i,u=e.y2||a,c=e.values,d=c?e=>c[e]:Se,f=Sc(l-o,u-s),h=f.getContext("2d"),p=h.getImageData(0,0,l-o,u-s),m=p.data;for(let e=s,a=0;e<u;++e){t.$y=e-s;for(let s=o,u=e*i;s<l;++s,a+=4){t.$x=s-o,t.$value=d(s+u);const e=n(t);m[a+0]=e.r,m[a+1]=e.g,m[a+2]=e.b,m[a+3]=~~(255*r(t))}}return h.putImageData(p,0,0),f}(t,n,o.dep?o:st(o(n)),a.dep?a:st(a(n)))})),t.reflow(!0).modifies(s)}}),pt(pT,Vo,{transform(e,t){let n=this.value;return!n||e.modified("type")?(this.value=n=function(e){const t=N$((e||"mercator").toLowerCase());return t||_e("Unrecognized projection type: "+e),t()}(e.type),L$.forEach((t=>{null!=e[t]&&mT(n,t,e[t])}))):L$.forEach((t=>{e.modified(t)&&mT(n,t,e[t])})),null!=e.pointRadius&&n.path.pointRadius(e.pointRadius),e.fit&&function(e,t){const n=function(e){return 1===(e=Qe(e)).length?e[0]:{type:oT,features:e.reduce(((e,t)=>e.concat(function(e){return e.type===oT?e.features:Qe(e).filter((e=>null!=e)).map((e=>e.type===aT?e:{type:aT,geometry:e}))}(t))),[])}}(t.fit);t.extent?e.fitExtent(t.extent,n):t.size&&e.fitSize(t.size,n)}(n,e),t.fork(t.NO_SOURCE|t.NO_FIELDS)}});var ST=bT.prototype=xT.prototype;function AT(e){return function(){return e}}function $T(e){return 1e-6*(e()-.5)}function TT(e){return e.x+e.vx}function OT(e){return e.y+e.vy}ST.copy=function(){var e,t,n=new xT(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=ET(r),n;for(e=[{source:r,target:n._root=new Array(4)}];r=e.pop();)for(var i=0;i<4;++i)(t=r.source[i])&&(t.length?e.push({source:t,target:r.target[i]=new Array(4)}):r.target[i]=ET(t));return n},ST.add=function(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return gT(this.cover(t,n),t,n,e)},ST.addAll=function(e){var t,n,r,i,a=e.length,o=new Array(a),s=new Array(a),l=1/0,u=1/0,c=-1/0,d=-1/0;for(n=0;n<a;++n)isNaN(r=+this._x.call(null,t=e[n]))||isNaN(i=+this._y.call(null,t))||(o[n]=r,s[n]=i,r<l&&(l=r),r>c&&(c=r),i<u&&(u=i),i>d&&(d=i));if(l>c||u>d)return this;for(this.cover(l,u).cover(c,d),n=0;n<a;++n)gT(this,o[n],s[n],e[n]);return this},ST.cover=function(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,i=this._x1,a=this._y1;if(isNaN(n))i=(n=Math.floor(e))+1,a=(r=Math.floor(t))+1;else{for(var o,s,l=i-n||1,u=this._root;n>e||e>=i||r>t||t>=a;)switch(s=(t<r)<<1|e<n,(o=new Array(4))[s]=u,u=o,l*=2,s){case 0:i=n+l,a=r+l;break;case 1:n=i-l,a=r+l;break;case 2:i=n+l,r=a-l;break;case 3:n=i-l,r=a-l}this._root&&this._root.length&&(this._root=u)}return this._x0=n,this._y0=r,this._x1=i,this._y1=a,this},ST.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},ST.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},ST.find=function(e,t,n){var r,i,a,o,s,l,u,c=this._x0,d=this._y0,f=this._x1,h=this._y1,p=[],m=this._root;for(m&&p.push(new yT(m,c,d,f,h)),null==n?n=1/0:(c=e-n,d=t-n,f=e+n,h=t+n,n*=n);l=p.pop();)if(!(!(m=l.node)||(i=l.x0)>f||(a=l.y0)>h||(o=l.x1)<c||(s=l.y1)<d))if(m.length){var g=(i+o)/2,y=(a+s)/2;p.push(new yT(m[3],g,y,o,s),new yT(m[2],i,y,g,s),new yT(m[1],g,a,o,y),new yT(m[0],i,a,g,y)),(u=(t>=y)<<1|e>=g)&&(l=p[p.length-1],p[p.length-1]=p[p.length-1-u],p[p.length-1-u]=l)}else{var _=e-+this._x.call(null,m.data),v=t-+this._y.call(null,m.data),b=_*_+v*v;if(b<n){var x=Math.sqrt(n=b);c=e-x,d=t-x,f=e+x,h=t+x,r=m.data}}return r},ST.remove=function(e){if(isNaN(a=+this._x.call(null,e))||isNaN(o=+this._y.call(null,e)))return this;var t,n,r,i,a,o,s,l,u,c,d,f,h=this._root,p=this._x0,m=this._y0,g=this._x1,y=this._y1;if(!h)return this;if(h.length)for(;;){if((u=a>=(s=(p+g)/2))?p=s:g=s,(c=o>=(l=(m+y)/2))?m=l:y=l,t=h,!(h=h[d=c<<1|u]))return this;if(!h.length)break;(t[d+1&3]||t[d+2&3]||t[d+3&3])&&(n=t,f=d)}for(;h.data!==e;)if(r=h,!(h=h.next))return this;return(i=h.next)&&delete h.next,r?(i?r.next=i:delete r.next,this):t?(i?t[d]=i:delete t[d],(h=t[0]||t[1]||t[2]||t[3])&&h===(t[3]||t[2]||t[1]||t[0])&&!h.length&&(n?n[f]=h:this._root=h),this):(this._root=i,this)},ST.removeAll=function(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this},ST.root=function(){return this._root},ST.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},ST.visit=function(e){var t,n,r,i,a,o,s=[],l=this._root;for(l&&s.push(new yT(l,this._x0,this._y0,this._x1,this._y1));t=s.pop();)if(!e(l=t.node,r=t.x0,i=t.y0,a=t.x1,o=t.y1)&&l.length){var u=(r+a)/2,c=(i+o)/2;(n=l[3])&&s.push(new yT(n,u,c,a,o)),(n=l[2])&&s.push(new yT(n,r,c,u,o)),(n=l[1])&&s.push(new yT(n,u,i,a,c)),(n=l[0])&&s.push(new yT(n,r,i,u,c))}return this},ST.visitAfter=function(e){var t,n=[],r=[];for(this._root&&n.push(new yT(this._root,this._x0,this._y0,this._x1,this._y1));t=n.pop();){var i=t.node;if(i.length){var a,o=t.x0,s=t.y0,l=t.x1,u=t.y1,c=(o+l)/2,d=(s+u)/2;(a=i[0])&&n.push(new yT(a,o,s,c,d)),(a=i[1])&&n.push(new yT(a,c,s,l,d)),(a=i[2])&&n.push(new yT(a,o,d,c,u)),(a=i[3])&&n.push(new yT(a,c,d,l,u))}r.push(t)}for(;t=r.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this},ST.x=function(e){return arguments.length?(this._x=e,this):this._x},ST.y=function(e){return arguments.length?(this._y=e,this):this._y};var DT={value:()=>{}};function MT(){for(var e,t=0,n=arguments.length,r={};t<n;++t){if(!(e=arguments[t]+"")||e in r||/[\s.]/.test(e))throw new Error("illegal type: "+e);r[e]=[]}return new wT(r)}function wT(e){this._=e}function IT(e,t){for(var n,r=0,i=e.length;r<i;++r)if((n=e[r]).name===t)return n.value}function CT(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=DT,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=n&&e.push({name:t,value:n}),e}wT.prototype=MT.prototype={constructor:wT,on:function(e,t){var n,r,i=this._,a=(r=i,(e+"").trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");if(n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!r.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}}))),o=-1,s=a.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++o<s;)if(n=(e=a[o]).type)i[n]=CT(i[n],e.name,t);else if(null==t)for(n in i)i[n]=CT(i[n],e.name,null);return this}for(;++o<s;)if((n=(e=a[o]).type)&&(n=IT(i[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new wT(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,r,i=new Array(n),a=0;a<n;++a)i[a]=arguments[a+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(a=0,n=(r=this._[e]).length;a<n;++a)r[a].value.apply(t,i)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};const RT=MT;var kT,LT,NT=0,FT=0,BT=0,jT=1e3,HT=0,zT=0,PT=0,UT="object"==typeof performance&&performance.now?performance:Date,VT="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function WT(){return zT||(VT(GT),zT=UT.now()+PT)}function GT(){zT=0}function qT(){this._call=this._time=this._next=null}function YT(e,t,n){var r=new qT;return r.restart(e,t,n),r}function KT(){zT=(HT=UT.now())+PT,NT=FT=0;try{!function(){WT(),++NT;for(var e,t=kT;t;)(e=zT-t._time)>=0&&t._call.call(void 0,e),t=t._next;--NT}()}finally{NT=0,function(){for(var e,t,n=kT,r=1/0;n;)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:kT=t);LT=e,XT(r)}(),zT=0}}function JT(){var e=UT.now(),t=e-HT;t>jT&&(PT-=t,HT=e)}function XT(e){NT||(FT&&(FT=clearTimeout(FT)),e-zT>24?(e<1/0&&(FT=setTimeout(KT,e-UT.now()-PT)),BT&&(BT=clearInterval(BT))):(BT||(HT=UT.now(),BT=setInterval(JT,jT)),NT=1,VT(KT)))}qT.prototype=YT.prototype={constructor:qT,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?WT():+n)+(null==t?0:+t),this._next||LT===this||(LT?LT._next=this:kT=this,LT=this),this._call=e,this._time=n,XT()},stop:function(){this._call&&(this._call=null,this._time=1/0,XT())}};const ZT=4294967296;function QT(e){return e.x}function eO(e){return e.y}var tO=Math.PI*(3-Math.sqrt(5));function nO(e){return e.index}function rO(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}const iO={center:function(e,t){var n,r=1;function i(){var i,a,o=n.length,s=0,l=0;for(i=0;i<o;++i)s+=(a=n[i]).x,l+=a.y;for(s=(s/o-e)*r,l=(l/o-t)*r,i=0;i<o;++i)(a=n[i]).x-=s,a.y-=l}return null==e&&(e=0),null==t&&(t=0),i.initialize=function(e){n=e},i.x=function(t){return arguments.length?(e=+t,i):e},i.y=function(e){return arguments.length?(t=+e,i):t},i.strength=function(e){return arguments.length?(r=+e,i):r},i},collide:function(e){var t,n,r,i=1,a=1;function o(){for(var e,o,l,u,c,d,f,h=t.length,p=0;p<a;++p)for(o=bT(t,TT,OT).visitAfter(s),e=0;e<h;++e)l=t[e],d=n[l.index],f=d*d,u=l.x+l.vx,c=l.y+l.vy,o.visit(m);function m(e,t,n,a,o){var s=e.data,h=e.r,p=d+h;if(!s)return t>u+p||a<u-p||n>c+p||o<c-p;if(s.index>l.index){var m=u-s.x-s.vx,g=c-s.y-s.vy,y=m*m+g*g;y<p*p&&(0===m&&(y+=(m=$T(r))*m),0===g&&(y+=(g=$T(r))*g),y=(p-(y=Math.sqrt(y)))/y*i,l.vx+=(m*=y)*(p=(h*=h)/(f+h)),l.vy+=(g*=y)*p,s.vx-=m*(p=1-p),s.vy-=g*p)}}}function s(e){if(e.data)return e.r=n[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function l(){if(t){var r,i,a=t.length;for(n=new Array(a),r=0;r<a;++r)i=t[r],n[i.index]=+e(i,r,t)}}return"function"!=typeof e&&(e=AT(null==e?1:+e)),o.initialize=function(e,n){t=e,r=n,l()},o.iterations=function(e){return arguments.length?(a=+e,o):a},o.strength=function(e){return arguments.length?(i=+e,o):i},o.radius=function(t){return arguments.length?(e="function"==typeof t?t:AT(+t),l(),o):e},o},nbody:function(){var e,t,n,r,i,a=AT(-30),o=1,s=1/0,l=.81;function u(n){var i,a=e.length,o=bT(e,QT,eO).visitAfter(d);for(r=n,i=0;i<a;++i)t=e[i],o.visit(f)}function c(){if(e){var t,n,r=e.length;for(i=new Array(r),t=0;t<r;++t)n=e[t],i[n.index]=+a(n,t,e)}}function d(e){var t,n,r,a,o,s=0,l=0;if(e.length){for(r=a=o=0;o<4;++o)(t=e[o])&&(n=Math.abs(t.value))&&(s+=t.value,l+=n,r+=n*t.x,a+=n*t.y);e.x=r/l,e.y=a/l}else{(t=e).x=t.data.x,t.y=t.data.y;do{s+=i[t.data.index]}while(t=t.next)}e.value=s}function f(e,a,u,c){if(!e.value)return!0;var d=e.x-t.x,f=e.y-t.y,h=c-a,p=d*d+f*f;if(h*h/l<p)return p<s&&(0===d&&(p+=(d=$T(n))*d),0===f&&(p+=(f=$T(n))*f),p<o&&(p=Math.sqrt(o*p)),t.vx+=d*e.value*r/p,t.vy+=f*e.value*r/p),!0;if(!(e.length||p>=s)){(e.data!==t||e.next)&&(0===d&&(p+=(d=$T(n))*d),0===f&&(p+=(f=$T(n))*f),p<o&&(p=Math.sqrt(o*p)));do{e.data!==t&&(h=i[e.data.index]*r/p,t.vx+=d*h,t.vy+=f*h)}while(e=e.next)}}return u.initialize=function(t,r){e=t,n=r,c()},u.strength=function(e){return arguments.length?(a="function"==typeof e?e:AT(+e),c(),u):a},u.distanceMin=function(e){return arguments.length?(o=e*e,u):Math.sqrt(o)},u.distanceMax=function(e){return arguments.length?(s=e*e,u):Math.sqrt(s)},u.theta=function(e){return arguments.length?(l=e*e,u):Math.sqrt(l)},u},link:function(e){var t,n,r,i,a,o,s=nO,l=function(e){return 1/Math.min(i[e.source.index],i[e.target.index])},u=AT(30),c=1;function d(r){for(var i=0,s=e.length;i<c;++i)for(var l,u,d,f,h,p,m,g=0;g<s;++g)u=(l=e[g]).source,f=(d=l.target).x+d.vx-u.x-u.vx||$T(o),h=d.y+d.vy-u.y-u.vy||$T(o),f*=p=((p=Math.sqrt(f*f+h*h))-n[g])/p*r*t[g],h*=p,d.vx-=f*(m=a[g]),d.vy-=h*m,u.vx+=f*(m=1-m),u.vy+=h*m}function f(){if(r){var o,l,u=r.length,c=e.length,d=new Map(r.map(((e,t)=>[s(e,t,r),e])));for(o=0,i=new Array(u);o<c;++o)(l=e[o]).index=o,"object"!=typeof l.source&&(l.source=rO(d,l.source)),"object"!=typeof l.target&&(l.target=rO(d,l.target)),i[l.source.index]=(i[l.source.index]||0)+1,i[l.target.index]=(i[l.target.index]||0)+1;for(o=0,a=new Array(c);o<c;++o)l=e[o],a[o]=i[l.source.index]/(i[l.source.index]+i[l.target.index]);t=new Array(c),h(),n=new Array(c),p()}}function h(){if(r)for(var n=0,i=e.length;n<i;++n)t[n]=+l(e[n],n,e)}function p(){if(r)for(var t=0,i=e.length;t<i;++t)n[t]=+u(e[t],t,e)}return null==e&&(e=[]),d.initialize=function(e,t){r=e,o=t,f()},d.links=function(t){return arguments.length?(e=t,f(),d):e},d.id=function(e){return arguments.length?(s=e,d):s},d.iterations=function(e){return arguments.length?(c=+e,d):c},d.strength=function(e){return arguments.length?(l="function"==typeof e?e:AT(+e),h(),d):l},d.distance=function(e){return arguments.length?(u="function"==typeof e?e:AT(+e),p(),d):u},d},x:function(e){var t,n,r,i=AT(.1);function a(e){for(var i,a=0,o=t.length;a<o;++a)(i=t[a]).vx+=(r[a]-i.x)*n[a]*e}function o(){if(t){var a,o=t.length;for(n=new Array(o),r=new Array(o),a=0;a<o;++a)n[a]=isNaN(r[a]=+e(t[a],a,t))?0:+i(t[a],a,t)}}return"function"!=typeof e&&(e=AT(null==e?0:+e)),a.initialize=function(e){t=e,o()},a.strength=function(e){return arguments.length?(i="function"==typeof e?e:AT(+e),o(),a):i},a.x=function(t){return arguments.length?(e="function"==typeof t?t:AT(+t),o(),a):e},a},y:function(e){var t,n,r,i=AT(.1);function a(e){for(var i,a=0,o=t.length;a<o;++a)(i=t[a]).vy+=(r[a]-i.y)*n[a]*e}function o(){if(t){var a,o=t.length;for(n=new Array(o),r=new Array(o),a=0;a<o;++a)n[a]=isNaN(r[a]=+e(t[a],a,t))?0:+i(t[a],a,t)}}return"function"!=typeof e&&(e=AT(null==e?0:+e)),a.initialize=function(e){t=e,o()},a.strength=function(e){return arguments.length?(i="function"==typeof e?e:AT(+e),o(),a):i},a.y=function(t){return arguments.length?(e="function"==typeof t?t:AT(+t),o(),a):e},a}},aO="forces",oO=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],sO=["static","iterations"],lO=["x","y","vx","vy"];function uO(e){Vo.call(this,null,e)}function cO(e,t,n,r){var i,a,o,s,l=Qe(t.forces);for(i=0,a=oO.length;i<a;++i)(o=oO[i])!==aO&&t.modified(o)&&e[o](t[o]);for(i=0,a=l.length;i<a;++i)s=aO+i,(o=n||t.modified(aO,i)?fO(l[i]):r&&dO(l[i],r)?e.force(s):null)&&e.force(s,o);for(a=e.numForces||0;i<a;++i)e.force(aO+i,null);return e.numForces=l.length,e}function dO(e,t){var n,r;for(n in e)if(et(r=e[n])&&t.modified(pe(r)))return 1;return 0}function fO(e){var t,n;for(n in dt(iO,e.force)||_e("Unrecognized force: "+e.force),t=iO[e.force](),e)et(t[n])&&hO(t[n],e[n],e);return t}function hO(e,t,n){e(et(t)?e=>t(e,n):t)}function pO(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function mO(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=yO)):void 0===t&&(t=gO);for(var n,r,i,a,o,s=new bO(e),l=[s];n=l.pop();)if((i=t(n.data))&&(o=(i=Array.from(i)).length))for(n.children=i,a=o-1;a>=0;--a)l.push(r=i[a]=new bO(i[a])),r.parent=n,r.depth=n.depth+1;return s.eachBefore(vO)}function gO(e){return e.children}function yO(e){return Array.isArray(e)?e[1]:null}function _O(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function vO(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function bO(e){this.data=e,this.depth=this.height=0,this.parent=null}function xO(e){return null==e?null:EO(e)}function EO(e){if("function"!=typeof e)throw new Error;return e}function SO(){return 0}function AO(e){return function(){return e}}uO.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30,expr:!0},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:lO}]},pt(uO,Vo,{transform(e,t){var n,r,i=this.value,a=t.changed(t.ADD_REM),o=e.modified(oO),s=e.iterations||300;if(i?(a&&(t.modifies("index"),i.nodes(t.source)),(o||t.changed(t.MOD))&&cO(i,e,0,t)):(this.value=i=function(e,t){const n=function(e){var t,n=1,r=.001,i=1-Math.pow(r,1/300),a=0,o=.6,s=new Map,l=YT(d),u=RT("tick","end"),c=function(){let e=1;return()=>(e=(1664525*e+1013904223)%ZT)/ZT}();function d(){f(),u.call("tick",t),n<r&&(l.stop(),u.call("end",t))}function f(r){var l,u,c=e.length;void 0===r&&(r=1);for(var d=0;d<r;++d)for(n+=(a-n)*i,s.forEach((function(e){e(n)})),l=0;l<c;++l)null==(u=e[l]).fx?u.x+=u.vx*=o:(u.x=u.fx,u.vx=0),null==u.fy?u.y+=u.vy*=o:(u.y=u.fy,u.vy=0);return t}function h(){for(var t,n=0,r=e.length;n<r;++n){if((t=e[n]).index=n,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var i=10*Math.sqrt(.5+n),a=n*tO;t.x=i*Math.cos(a),t.y=i*Math.sin(a)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function p(t){return t.initialize&&t.initialize(e,c),t}return null==e&&(e=[]),h(),t={tick:f,restart:function(){return l.restart(d),t},stop:function(){return l.stop(),t},nodes:function(n){return arguments.length?(e=n,h(),s.forEach(p),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(r=+e,t):r},alphaDecay:function(e){return arguments.length?(i=+e,t):+i},alphaTarget:function(e){return arguments.length?(a=+e,t):a},velocityDecay:function(e){return arguments.length?(o=1-e,t):1-o},randomSource:function(e){return arguments.length?(c=e,s.forEach(p),t):c},force:function(e,n){return arguments.length>1?(null==n?s.delete(e):s.set(e,p(n)),t):s.get(e)},find:function(t,n,r){var i,a,o,s,l,u=0,c=e.length;for(null==r?r=1/0:r*=r,u=0;u<c;++u)(o=(i=t-(s=e[u]).x)*i+(a=n-s.y)*a)<r&&(l=s,r=o);return l},on:function(e,n){return arguments.length>1?(u.on(e,n),t):u.on(e)}}}(e),r=n.stop,i=n.restart;let a=!1;return n.stopped=()=>a,n.restart=()=>(a=!1,i()),n.stop=()=>(a=!0,r()),cO(n,t,!0).on("end",(()=>a=!0))}(t.source,e),i.on("tick",(n=t.dataflow,r=this,()=>n.touch(r).run())),e.static||(a=!0,i.tick()),t.modifies("index")),o||a||e.modified(sO)||t.changed()&&e.restart)if(i.alpha(Math.max(i.alpha(),e.alpha||1)).alphaDecay(1-Math.pow(i.alphaMin(),1/s)),e.static)for(i.stop();--s>=0;)i.tick();else if(i.stopped()&&i.restart(),!a)return t.StopPropagation;return this.finish(e,t)},finish(e,t){const n=t.dataflow;for(let e,t=this._argops,s=0,l=t.length;s<l;++s)if(e=t[s],e.name===aO&&"link"===e.op._argval.force)for(var r,i=e.op._argops,a=0,o=i.length;a<o;++a)if("links"===i[a].name&&(r=i[a].op.source)){n.pulse(r,n.changeset().reflow());break}return t.reflow(e.modified()).modifies(lO)}}),bO.prototype=mO.prototype={constructor:bO,count:function(){return this.eachAfter(pO)},each:function(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this},eachAfter:function(e,t){for(var n,r,i,a=this,o=[a],s=[],l=-1;a=o.pop();)if(s.push(a),n=a.children)for(r=0,i=n.length;r<i;++r)o.push(n[r]);for(;a=s.pop();)e.call(t,a,++l,this);return this},eachBefore:function(e,t){for(var n,r,i=this,a=[i],o=-1;i=a.pop();)if(e.call(t,i,++o,this),n=i.children)for(r=n.length-1;r>=0;--r)a.push(n[r]);return this},find:function(e,t){let n=-1;for(const r of this)if(e.call(t,r,++n,this))return r},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,i=r&&r.length;--i>=0;)n+=r[i].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return mO(this).eachBefore(_O)},[Symbol.iterator]:function*(){var e,t,n,r,i=this,a=[i];do{for(e=a.reverse(),a=[];i=e.pop();)if(yield i,t=i.children)for(n=0,r=t.length;n<r;++n)a.push(t[n])}while(a.length)}};const $O=4294967296;function TO(e,t){var n,r;if(MO(t,e))return[t];for(n=0;n<e.length;++n)if(OO(t,e[n])&&MO(IO(e[n],t),e))return[e[n],t];for(n=0;n<e.length-1;++n)for(r=n+1;r<e.length;++r)if(OO(IO(e[n],e[r]),t)&&OO(IO(e[n],t),e[r])&&OO(IO(e[r],t),e[n])&&MO(CO(e[n],e[r],t),e))return[e[n],e[r],t];throw new Error}function OO(e,t){var n=e.r-t.r,r=t.x-e.x,i=t.y-e.y;return n<0||n*n<r*r+i*i}function DO(e,t){var n=e.r-t.r+1e-9*Math.max(e.r,t.r,1),r=t.x-e.x,i=t.y-e.y;return n>0&&n*n>r*r+i*i}function MO(e,t){for(var n=0;n<t.length;++n)if(!DO(e,t[n]))return!1;return!0}function wO(e){switch(e.length){case 1:return{x:(t=e[0]).x,y:t.y,r:t.r};case 2:return IO(e[0],e[1]);case 3:return CO(e[0],e[1],e[2])}var t}function IO(e,t){var n=e.x,r=e.y,i=e.r,a=t.x,o=t.y,s=t.r,l=a-n,u=o-r,c=s-i,d=Math.sqrt(l*l+u*u);return{x:(n+a+l/d*c)/2,y:(r+o+u/d*c)/2,r:(d+i+s)/2}}function CO(e,t,n){var r=e.x,i=e.y,a=e.r,o=t.x,s=t.y,l=t.r,u=n.x,c=n.y,d=n.r,f=r-o,h=r-u,p=i-s,m=i-c,g=l-a,y=d-a,_=r*r+i*i-a*a,v=_-o*o-s*s+l*l,b=_-u*u-c*c+d*d,x=h*p-f*m,E=(p*b-m*v)/(2*x)-r,S=(m*g-p*y)/x,A=(h*v-f*b)/(2*x)-i,$=(f*y-h*g)/x,T=S*S+$*$-1,O=2*(a+E*S+A*$),D=E*E+A*A-a*a,M=-(Math.abs(T)>1e-6?(O+Math.sqrt(O*O-4*T*D))/(2*T):D/O);return{x:r+E+S*M,y:i+A+$*M,r:M}}function RO(e,t,n){var r,i,a,o,s=e.x-t.x,l=e.y-t.y,u=s*s+l*l;u?(i=t.r+n.r,i*=i,o=e.r+n.r,i>(o*=o)?(r=(u+o-i)/(2*u),a=Math.sqrt(Math.max(0,o/u-r*r)),n.x=e.x-r*s-a*l,n.y=e.y-r*l+a*s):(r=(u+i-o)/(2*u),a=Math.sqrt(Math.max(0,i/u-r*r)),n.x=t.x+r*s-a*l,n.y=t.y+r*l+a*s)):(n.x=t.x+n.r,n.y=t.y)}function kO(e,t){var n=e.r+t.r-1e-6,r=t.x-e.x,i=t.y-e.y;return n>0&&n*n>r*r+i*i}function LO(e){var t=e._,n=e.next._,r=t.r+n.r,i=(t.x*n.r+n.x*t.r)/r,a=(t.y*n.r+n.y*t.r)/r;return i*i+a*a}function NO(e){this._=e,this.next=null,this.previous=null}function FO(e,t){if(!(a=(e=function(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}(e)).length))return 0;var n,r,i,a,o,s,l,u,c,d,f;if((n=e[0]).x=0,n.y=0,!(a>1))return n.r;if(r=e[1],n.x=-r.r,r.x=n.r,r.y=0,!(a>2))return n.r+r.r;RO(r,n,i=e[2]),n=new NO(n),r=new NO(r),i=new NO(i),n.next=i.previous=r,r.next=n.previous=i,i.next=r.previous=n;e:for(l=3;l<a;++l){RO(n._,r._,i=e[l]),i=new NO(i),u=r.next,c=n.previous,d=r._.r,f=n._.r;do{if(d<=f){if(kO(u._,i._)){r=u,n.next=r,r.previous=n,--l;continue e}d+=u._.r,u=u.next}else{if(kO(c._,i._)){(n=c).next=r,r.previous=n,--l;continue e}f+=c._.r,c=c.previous}}while(u!==c.next);for(i.previous=n,i.next=r,n.next=r.previous=r=i,o=LO(n);(i=i.next)!==r;)(s=LO(i))<o&&(n=i,o=s);r=n.next}for(n=[r._],i=r;(i=i.next)!==r;)n.push(i._);for(i=function(e,t){for(var n,r,i=0,a=(e=function(e,t){let n,r,i=e.length;for(;i;)r=t()*i--|0,n=e[i],e[i]=e[r],e[r]=n;return e}(Array.from(e),t)).length,o=[];i<a;)n=e[i],r&&DO(r,n)?++i:(r=wO(o=TO(o,n)),i=0);return r}(n,t),l=0;l<a;++l)(n=e[l]).x-=i.x,n.y-=i.y;return i.r}function BO(e){return Math.sqrt(e.value)}function jO(e){return function(t){t.children||(t.r=Math.max(0,+e(t)||0))}}function HO(e,t,n){return function(r){if(i=r.children){var i,a,o,s=i.length,l=e(r)*t||0;if(l)for(a=0;a<s;++a)i[a].r+=l;if(o=FO(i,n),l)for(a=0;a<s;++a)i[a].r-=l;r.r=o+l}}}function zO(e){return function(t){var n=t.parent;t.r*=e,n&&(t.x=n.x+e*t.x,t.y=n.y+e*t.y)}}function PO(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function UO(e,t,n,r,i){for(var a,o=e.children,s=-1,l=o.length,u=e.value&&(r-t)/e.value;++s<l;)(a=o[s]).y0=n,a.y1=i,a.x0=t,a.x1=t+=a.value*u}var VO={depth:-1},WO={},GO={};function qO(e){return e.id}function YO(e){return e.parentId}function KO(){var e,t=qO,n=YO;function r(r){var i,a,o,s,l,u,c,d,f=Array.from(r),h=t,p=n,m=new Map;if(null!=e){const t=f.map(((t,n)=>function(e){let t=(e=`${e}`).length;return XO(e,t-1)&&!XO(e,t-2)&&(e=e.slice(0,-1)),"/"===e[0]?e:`/${e}`}(e(t,n,r)))),n=t.map(JO),i=new Set(t).add("");for(const e of n)i.has(e)||(i.add(e),t.push(e),n.push(JO(e)),f.push(GO));h=(e,n)=>t[n],p=(e,t)=>n[t]}for(o=0,i=f.length;o<i;++o)a=f[o],u=f[o]=new bO(a),null!=(c=h(a,o,r))&&(c+="")&&(d=u.id=c,m.set(d,m.has(d)?WO:u)),null!=(c=p(a,o,r))&&(c+="")&&(u.parent=c);for(o=0;o<i;++o)if(c=(u=f[o]).parent){if(!(l=m.get(c)))throw new Error("missing: "+c);if(l===WO)throw new Error("ambiguous: "+c);l.children?l.children.push(u):l.children=[u],u.parent=l}else{if(s)throw new Error("multiple roots");s=u}if(!s)throw new Error("no root");if(null!=e){for(;s.data===GO&&1===s.children.length;)s=s.children[0],--i;for(let e=f.length-1;e>=0&&(u=f[e]).data===GO;--e)u.data=null}if(s.parent=VO,s.eachBefore((function(e){e.depth=e.parent.depth+1,--i})).eachBefore(vO),s.parent=null,i>0)throw new Error("cycle");return s}return r.id=function(e){return arguments.length?(t=xO(e),r):t},r.parentId=function(e){return arguments.length?(n=xO(e),r):n},r.path=function(t){return arguments.length?(e=xO(t),r):e},r}function JO(e){let t=e.length;if(t<2)return"";for(;--t>1&&!XO(e,t););return e.slice(0,t)}function XO(e,t){if("/"===e[t]){let n=0;for(;t>0&&"\\"===e[--t];)++n;if(0==(1&n))return!0}return!1}function ZO(e,t){return e.parent===t.parent?1:2}function QO(e){var t=e.children;return t?t[0]:e.t}function eD(e){var t=e.children;return t?t[t.length-1]:e.t}function tD(e,t,n){var r=n/(t.i-e.i);t.c-=r,t.s+=n,e.c+=r,t.z+=n,t.m+=n}function nD(e,t,n){return e.a.parent===t.parent?e.a:n}function rD(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function iD(e,t){return e.parent===t.parent?1:2}function aD(e,t){return e+t.x}function oD(e,t){return Math.max(e,t.y)}function sD(e,t,n,r,i){for(var a,o=e.children,s=-1,l=o.length,u=e.value&&(i-n)/e.value;++s<l;)(a=o[s]).x0=t,a.x1=r,a.y0=n,a.y1=n+=a.value*u}rD.prototype=Object.create(bO.prototype);var lD=(1+Math.sqrt(5))/2;function uD(e,t,n,r,i,a){for(var o,s,l,u,c,d,f,h,p,m,g,y=[],_=t.children,v=0,b=0,x=_.length,E=t.value;v<x;){l=i-n,u=a-r;do{c=_[b++].value}while(!c&&b<x);for(d=f=c,g=c*c*(m=Math.max(u/l,l/u)/(E*e)),p=Math.max(f/g,g/d);b<x;++b){if(c+=s=_[b].value,s<d&&(d=s),s>f&&(f=s),g=c*c*m,(h=Math.max(f/g,g/d))>p){c-=s;break}p=h}y.push(o={value:c,dice:l<u,children:_.slice(v,b)}),o.dice?UO(o,n,r,i,E?r+=u*c/E:a):sD(o,n,r,E?n+=l*c/E:i,a),E-=c,v=b}return y}const cD=function e(t){function n(e,n,r,i,a){uD(t,e,n,r,i,a)}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(lD),dD=function e(t){function n(e,n,r,i,a){if((o=e._squarify)&&o.ratio===t)for(var o,s,l,u,c,d=-1,f=o.length,h=e.value;++d<f;){for(l=(s=o[d]).children,u=s.value=0,c=l.length;u<c;++u)s.value+=l[u].value;s.dice?UO(s,n,r,i,h?r+=(a-r)*s.value/h:a):sD(s,n,r,h?n+=(i-n)*s.value/h:i,a),h-=s.value}else e._squarify=o=uD(t,e,n,r,i,a),o.ratio=t}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(lD);function fD(e,t,n){const r={};return e.each((e=>{const i=e.data;n(i)&&(r[t(i)]=e)})),e.lookup=r,e}function hD(e){Vo.call(this,null,e)}hD.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const pD=e=>e.values;function mD(){const e=[],t={entries:e=>r(n(e,0),0),key:n=>(e.push(n),t)};function n(t,r){if(r>=e.length)return t;const i=t.length,a=e[r++],o={},s={};let l,u,c,d=-1;for(;++d<i;)l=a(u=t[d])+"",(c=o[l])?c.push(u):o[l]=[u];for(l in o)s[l]=n(o[l],r);return s}function r(t,n){if(++n>e.length)return t;const i=[];for(const e in t)i.push({key:e,values:r(t[e],n)});return i}return t}function gD(e){Vo.call(this,null,e)}pt(hD,Vo,{transform(e,t){t.source||_e("Nest transform requires an upstream data source.");var n=e.generate,r=e.modified(),i=t.clone(),a=this.value;return(!a||r||t.changed())&&(a&&a.each((e=>{e.children&&co(e.data)&&i.rem.push(e.data)})),this.value=a=mO({values:Qe(e.keys).reduce(((e,t)=>(e.key(t),e)),mD()).entries(i.source)},pD),n&&a.each((e=>{e.children&&(e=po(e.data),i.add.push(e),i.source.push(e))})),fD(a,fo,fo)),i.source.root=a,i}});const yD=(e,t)=>e.parent===t.parent?1:2;pt(gD,Vo,{transform(e,t){t.source&&t.source.root||_e(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(e.method),r=this.fields,i=t.source.root,a=e.as||r;e.field?i.sum(e.field):i.count(),e.sort&&i.sort(_o(e.sort,(e=>e.data))),function(e,t,n){for(let r,i=0,a=t.length;i<a;++i)r=t[i],r in n&&e[r](n[r])}(n,this.params,e),n.separation&&n.separation(!1!==e.separation?yD:Ae);try{this.value=n(i)}catch(e){_e(e)}return i.each((e=>function(e,t,n){const r=e.data,i=t.length-1;for(let a=0;a<i;++a)r[n[a]]=e[t[a]];r[n[i]]=e.children?e.children.length:0}(e,r,a))),t.reflow(e.modified()).modifies(a).modifies("leaf")}});const _D=["x","y","r","depth","children"];function vD(e){gD.call(this,e)}vD.Definition={type:"Pack",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"radius",type:"field",default:null},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:_D.length,default:_D}]},pt(vD,gD,{layout:function(){var e=null,t=1,n=1,r=SO;function i(i){const a=function(){let e=1;return()=>(e=(1664525*e+1013904223)%$O)/$O}();return i.x=t/2,i.y=n/2,e?i.eachBefore(jO(e)).eachAfter(HO(r,.5,a)).eachBefore(zO(1)):i.eachBefore(jO(BO)).eachAfter(HO(SO,1,a)).eachAfter(HO(r,i.r/Math.min(t,n),a)).eachBefore(zO(Math.min(t,n)/(2*i.r))),i}return i.radius=function(t){return arguments.length?(e=xO(t),i):e},i.size=function(e){return arguments.length?(t=+e[0],n=+e[1],i):[t,n]},i.padding=function(e){return arguments.length?(r="function"==typeof e?e:AO(+e),i):r},i},params:["radius","size","padding"],fields:_D});const bD=["x0","y0","x1","y1","depth","children"];function xD(e){gD.call(this,e)}function ED(e){Vo.call(this,null,e)}xD.Definition={type:"Partition",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"padding",type:"number",default:0},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:bD.length,default:bD}]},pt(xD,gD,{layout:function(){var e=1,t=1,n=0,r=!1;function i(i){var a=i.height+1;return i.x0=i.y0=n,i.x1=e,i.y1=t/a,i.eachBefore(function(e,t){return function(r){r.children&&UO(r,r.x0,e*(r.depth+1)/t,r.x1,e*(r.depth+2)/t);var i=r.x0,a=r.y0,o=r.x1-n,s=r.y1-n;o<i&&(i=o=(i+o)/2),s<a&&(a=s=(a+s)/2),r.x0=i,r.y0=a,r.x1=o,r.y1=s}}(t,a)),r&&i.eachBefore(PO),i}return i.round=function(e){return arguments.length?(r=!!e,i):r},i.size=function(n){return arguments.length?(e=+n[0],t=+n[1],i):[e,t]},i.padding=function(e){return arguments.length?(n=+e,i):n},i},params:["size","round","padding"],fields:bD}),ED.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},pt(ED,Vo,{transform(e,t){t.source||_e("Stratify transform requires an upstream data source.");let n=this.value;const r=e.modified(),i=t.fork(t.ALL).materialize(t.SOURCE),a=!n||r||t.changed(t.ADD_REM)||t.modified(e.key.fields)||t.modified(e.parentKey.fields);return i.source=i.source.slice(),a&&(n=i.source.length?fD(KO().id(e.key).parentId(e.parentKey)(i.source),e.key,$e):fD(KO()([{}]),e.key,e.key)),i.source.root=this.value=n,i}});const SD={tidy:function(){var e=ZO,t=1,n=1,r=null;function i(i){var l=function(e){for(var t,n,r,i,a,o=new rD(e,0),s=[o];t=s.pop();)if(r=t._.children)for(t.children=new Array(a=r.length),i=a-1;i>=0;--i)s.push(n=t.children[i]=new rD(r[i],i)),n.parent=t;return(o.parent=new rD(null,0)).children=[o],o}(i);if(l.eachAfter(a),l.parent.m=-l.z,l.eachBefore(o),r)i.eachBefore(s);else{var u=i,c=i,d=i;i.eachBefore((function(e){e.x<u.x&&(u=e),e.x>c.x&&(c=e),e.depth>d.depth&&(d=e)}));var f=u===c?1:e(u,c)/2,h=f-u.x,p=t/(c.x+f+h),m=n/(d.depth||1);i.eachBefore((function(e){e.x=(e.x+h)*p,e.y=e.depth*m}))}return i}function a(t){var n=t.children,r=t.parent.children,i=t.i?r[t.i-1]:null;if(n){!function(e){for(var t,n=0,r=0,i=e.children,a=i.length;--a>=0;)(t=i[a]).z+=n,t.m+=n,n+=t.s+(r+=t.c)}(t);var a=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+e(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+e(t._,i._));t.parent.A=function(t,n,r){if(n){for(var i,a=t,o=t,s=n,l=a.parent.children[0],u=a.m,c=o.m,d=s.m,f=l.m;s=eD(s),a=QO(a),s&&a;)l=QO(l),(o=eD(o)).a=t,(i=s.z+d-a.z-u+e(s._,a._))>0&&(tD(nD(s,t,r),t,i),u+=i,c+=i),d+=s.m,u+=a.m,f+=l.m,c+=o.m;s&&!eD(o)&&(o.t=s,o.m+=d-c),a&&!QO(l)&&(l.t=a,l.m+=u-f,r=t)}return r}(t,i,t.parent.A||r[0])}function o(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function s(e){e.x*=t,e.y=e.depth*n}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],i):r?null:[t,n]},i.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],i):r?[t,n]:null},i},cluster:function(){var e=iD,t=1,n=1,r=!1;function i(i){var a,o=0;i.eachAfter((function(t){var n=t.children;n?(t.x=function(e){return e.reduce(aD,0)/e.length}(n),t.y=function(e){return 1+e.reduce(oD,0)}(n)):(t.x=a?o+=e(t,a):0,t.y=0,a=t)}));var s=function(e){for(var t;t=e.children;)e=t[0];return e}(i),l=function(e){for(var t;t=e.children;)e=t[t.length-1];return e}(i),u=s.x-e(s,l)/2,c=l.x+e(l,s)/2;return i.eachAfter(r?function(e){e.x=(e.x-i.x)*t,e.y=(i.y-e.y)*n}:function(e){e.x=(e.x-u)/(c-u)*t,e.y=(1-(i.y?e.y/i.y:1))*n})}return i.separation=function(t){return arguments.length?(e=t,i):e},i.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],i):r?null:[t,n]},i.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],i):r?[t,n]:null},i}},AD=["x","y","depth","children"];function $D(e){gD.call(this,e)}function TD(e){Vo.call(this,[],e)}$D.Definition={type:"Tree",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"tidy",values:["tidy","cluster"]},{name:"size",type:"number",array:!0,length:2},{name:"nodeSize",type:"number",array:!0,length:2},{name:"separation",type:"boolean",default:!0},{name:"as",type:"string",array:!0,length:AD.length,default:AD}]},pt($D,gD,{layout(e){const t=e||"tidy";if(dt(SD,t))return SD[t]();_e("Unrecognized Tree layout method: "+t)},params:["size","nodeSize"],fields:AD}),TD.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},pt(TD,Vo,{transform(e,t){const n=this.value,r=t.source&&t.source.root,i=t.fork(t.NO_SOURCE),a={};return r||_e("TreeLinks transform requires a tree data source."),t.changed(t.ADD_REM)?(i.rem=n,t.visit(t.SOURCE,(e=>a[fo(e)]=1)),r.each((e=>{const t=e.data,n=e.parent&&e.parent.data;n&&a[fo(t)]&&a[fo(n)]&&i.add.push(po({source:n,target:t}))})),this.value=i.add):t.changed(t.MOD)&&(t.visit(t.MOD,(e=>a[fo(e)]=1)),n.forEach((e=>{(a[fo(e.source)]||a[fo(e.target)])&&i.mod.push(e)}))),i}});const OD={binary:function(e,t,n,r,i){var a,o,s=e.children,l=s.length,u=new Array(l+1);for(u[0]=o=a=0;a<l;++a)u[a+1]=o+=s[a].value;!function e(t,n,r,i,a,o,l){if(t>=n-1){var c=s[t];return c.x0=i,c.y0=a,c.x1=o,void(c.y1=l)}for(var d=u[t],f=r/2+d,h=t+1,p=n-1;h<p;){var m=h+p>>>1;u[m]<f?h=m+1:p=m}f-u[h-1]<u[h]-f&&t+1<h&&--h;var g=u[h]-d,y=r-g;if(o-i>l-a){var _=r?(i*y+o*g)/r:o;e(t,h,g,i,a,_,l),e(h,n,y,_,a,o,l)}else{var v=r?(a*y+l*g)/r:l;e(t,h,g,i,a,o,v),e(h,n,y,i,v,o,l)}}(0,l,e.value,t,n,r,i)},dice:UO,slice:sD,slicedice:function(e,t,n,r,i){(1&e.depth?sD:UO)(e,t,n,r,i)},squarify:cD,resquarify:dD},DD=["x0","y0","x1","y1","depth","children"];function MD(e){gD.call(this,e)}MD.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:DD.length,default:DD}]},pt(MD,gD,{layout(){const e=function(){var e=cD,t=!1,n=1,r=1,i=[0],a=SO,o=SO,s=SO,l=SO,u=SO;function c(e){return e.x0=e.y0=0,e.x1=n,e.y1=r,e.eachBefore(d),i=[0],t&&e.eachBefore(PO),e}function d(t){var n=i[t.depth],r=t.x0+n,c=t.y0+n,d=t.x1-n,f=t.y1-n;d<r&&(r=d=(r+d)/2),f<c&&(c=f=(c+f)/2),t.x0=r,t.y0=c,t.x1=d,t.y1=f,t.children&&(n=i[t.depth+1]=a(t)/2,r+=u(t)-n,c+=o(t)-n,(d-=s(t)-n)<r&&(r=d=(r+d)/2),(f-=l(t)-n)<c&&(c=f=(c+f)/2),e(t,r,c,d,f))}return c.round=function(e){return arguments.length?(t=!!e,c):t},c.size=function(e){return arguments.length?(n=+e[0],r=+e[1],c):[n,r]},c.tile=function(t){return arguments.length?(e=EO(t),c):e},c.padding=function(e){return arguments.length?c.paddingInner(e).paddingOuter(e):c.paddingInner()},c.paddingInner=function(e){return arguments.length?(a="function"==typeof e?e:AO(+e),c):a},c.paddingOuter=function(e){return arguments.length?c.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):c.paddingTop()},c.paddingTop=function(e){return arguments.length?(o="function"==typeof e?e:AO(+e),c):o},c.paddingRight=function(e){return arguments.length?(s="function"==typeof e?e:AO(+e),c):s},c.paddingBottom=function(e){return arguments.length?(l="function"==typeof e?e:AO(+e),c):l},c.paddingLeft=function(e){return arguments.length?(u="function"==typeof e?e:AO(+e),c):u},c}();return e.ratio=t=>{const n=e.tile();n.ratio&&e.tile(n.ratio(t))},e.method=t=>{dt(OD,t)?e.tile(OD[t]):_e("Unrecognized Treemap layout method: "+t)},e},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:DD});const wD=4278190080;function ID(e,t,n){return new Uint32Array(e.getImageData(0,0,t,n).data.buffer)}function CD(e,t,n){if(!t.length)return;const r=t[0].mark.marktype;"group"===r?t.forEach((t=>{t.items.forEach((t=>CD(e,t.items,n)))})):qy[r].draw(e,{items:n?t.map(RD):t})}function RD(e){const t=go(e,{});return t.stroke&&0!==t.strokeOpacity||t.fill&&0!==t.fillOpacity?{...t,strokeOpacity:1,stroke:"#000",fillOpacity:0}:t}const kD=5,LD=31,ND=32,FD=new Uint32Array(ND+1),BD=new Uint32Array(ND+1);BD[0]=0,FD[0]=~BD[0];for(let e=1;e<=ND;++e)BD[e]=BD[e-1]<<1|1,FD[e]=~BD[e];function jD(e,t,n,r,i,a){let o=n/2;return e-o<0||e+o>i||t-(o=r/2)<0||t+o>a}function HD(e,t,n,r,i,a,o,s){const l=i*a/(2*r),u=e(t-l),c=e(t+l),d=e(n-(a/=2)),f=e(n+a);return o.outOfBounds(u,d,c,f)||o.getRange(u,d,c,f)||s&&s.getRange(u,d,c,f)}const zD=[-1,-1,1,1],PD=[-1,1,-1,1],UD=["right","center","left"],VD=["bottom","middle","top"];function WD(e,t,n,r,i,a,o,s,l,u,c,d){return!(i.outOfBounds(e,n,t,r)||(d&&a||i).getRange(e,n,t,r))}const GD={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},qD={naive:function(e,t,n,r){const i=e.width,a=e.height;return function(e){const t=e.datum.datum.items[r].items,n=t.length,o=e.datum.fontSize,s=Oy.width(e.datum,e.datum.text);let l,u,c,d,f,h,p,m=0;for(let r=0;r<n;++r)l=t[r].x,c=t[r].y,u=void 0===t[r].x2?l:t[r].x2,d=void 0===t[r].y2?c:t[r].y2,f=(l+u)/2,h=(c+d)/2,p=Math.abs(u-l+d-c),p>=m&&(m=p,e.x=f,e.y=h);return f=s/2,h=o/2,l=e.x-f,u=e.x+f,c=e.y-h,d=e.y+h,e.align="center",l<0&&u<=i?e.align="left":0<=l&&i<u&&(e.align="right"),e.baseline="middle",c<0&&d<=a?e.baseline="top":0<=c&&a<d&&(e.baseline="bottom"),!0}},"reduced-search":function(e,t,n,r){const i=e.width,a=e.height,o=t[0],s=t[1];function l(t,n,r,l,u){const c=e.invert(t),d=e.invert(n);let f,h=r,p=a;if(!jD(c,d,l,u,i,a)&&!HD(e,c,d,u,l,h,o,s)&&!HD(e,c,d,u,l,u,o,null)){for(;p-h>=1;)f=(h+p)/2,HD(e,c,d,u,l,f,o,s)?p=f:h=f;if(h>r)return[c,d,h,!0]}}return function(t){const s=t.datum.datum.items[r].items,u=s.length,c=t.datum.fontSize,d=Oy.width(t.datum,t.datum.text);let f,h,p,m,g,y,_,v,b,x,E,S,A,$,T,O,D,M=n?c:0,w=!1,I=!1,C=0;for(let r=0;r<u;++r){for(f=s[r].x,p=s[r].y,h=void 0===s[r].x2?f:s[r].x2,m=void 0===s[r].y2?p:s[r].y2,f>h&&(D=f,f=h,h=D),p>m&&(D=p,p=m,m=D),b=e(f),E=e(h),x=~~((b+E)/2),S=e(p),$=e(m),A=~~((S+$)/2),_=x;_>=b;--_)for(v=A;v>=S;--v)O=l(_,v,M,d,c),O&&([t.x,t.y,M,w]=O);for(_=x;_<=E;++_)for(v=A;v<=$;++v)O=l(_,v,M,d,c),O&&([t.x,t.y,M,w]=O);w||n||(T=Math.abs(h-f+m-p),g=(f+h)/2,y=(p+m)/2,T>=C&&!jD(g,y,d,c,i,a)&&!HD(e,g,y,c,d,c,o,null)&&(C=T,t.x=g,t.y=y,I=!0))}return!(!w&&!I||(g=d/2,y=c/2,o.setRange(e(t.x-g),e(t.y-y),e(t.x+g),e(t.y+y)),t.align="center",t.baseline="middle",0))}},floodfill:function(e,t,n,r){const i=e.width,a=e.height,o=t[0],s=t[1],l=e.bitmap();return function(t){const u=t.datum.datum.items[r].items,c=u.length,d=t.datum.fontSize,f=Oy.width(t.datum,t.datum.text),h=[];let p,m,g,y,_,v,b,x,E,S,A,$,T=n?d:0,O=!1,D=!1,M=0;for(let r=0;r<c;++r){for(p=u[r].x,g=u[r].y,m=void 0===u[r].x2?p:u[r].x2,y=void 0===u[r].y2?g:u[r].y2,h.push([e((p+m)/2),e((g+y)/2)]);h.length;)if([b,x]=h.pop(),!(o.get(b,x)||s.get(b,x)||l.get(b,x))){l.set(b,x);for(let e=0;e<4;++e)_=b+zD[e],v=x+PD[e],l.outOfBounds(_,v,_,v)||h.push([_,v]);if(_=e.invert(b),v=e.invert(x),E=T,S=a,!jD(_,v,f,d,i,a)&&!HD(e,_,v,d,f,E,o,s)&&!HD(e,_,v,d,f,d,o,null)){for(;S-E>=1;)A=(E+S)/2,HD(e,_,v,d,f,A,o,s)?S=A:E=A;E>T&&(t.x=_,t.y=v,T=E,O=!0)}}O||n||($=Math.abs(m-p+y-g),_=(p+m)/2,v=(g+y)/2,$>=M&&!jD(_,v,f,d,i,a)&&!HD(e,_,v,d,f,d,o,null)&&(M=$,t.x=_,t.y=v,D=!0))}return!(!O&&!D||(_=f/2,v=d/2,o.setRange(e(t.x-_),e(t.y-v),e(t.x+_),e(t.y+v)),t.align="center",t.baseline="middle",0))}}};function YD(e,t,n,r,i,a,o,s,l,u,c){if(!e.length)return e;const d=Math.max(r.length,i.length),f=function(e,t){const n=new Float64Array(t),r=e.length;for(let t=0;t<r;++t)n[t]=e[t]||0;for(let e=r;e<t;++e)n[e]=n[r-1];return n}(r,d),h=function(e,t){const n=new Int8Array(t),r=e.length;for(let t=0;t<r;++t)n[t]|=GD[e[t]];for(let e=r;e<t;++e)n[e]=n[r-1];return n}(i,d),p=(b=e[0].datum)&&b.mark&&b.mark.marktype,m="group"===p&&e[0].datum.items[l].marktype,g="area"===m,y=function(e,t,n,r){const i=e=>[e.x,e.x,e.x,e.y,e.y,e.y];return e?"line"===e||"area"===e?e=>i(e.datum):"line"===t?e=>{const t=e.datum.items[r].items;return i(t.length?t["start"===n?0:t.length-1]:{x:NaN,y:NaN})}:e=>{const t=e.datum.bounds;return[t.x1,(t.x1+t.x2)/2,t.x2,t.y1,(t.y1+t.y2)/2,t.y2]}:i}(p,m,s,l),_=null===u||u===1/0,v=g&&"naive"===c;var b;let x=-1,E=-1;const S=e.map((e=>{const t=_?Oy.width(e,e.text):void 0;return x=Math.max(x,t),E=Math.max(E,e.fontSize),{datum:e,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(e),textWidth:t}}));u=null===u||u===1/0?Math.max(x,E)+Math.max(...r):u;const A=function(e,t,n){const r=Math.max(1,Math.sqrt(e*t/1e6)),i=~~((e+2*n+r)/r),a=~~((t+2*n+r)/r),o=e=>~~((e+n)/r);return o.invert=e=>e*r-n,o.bitmap=()=>function(e,t){const n=new Uint32Array(~~((e*t+ND)/ND));function r(e,t){n[e]|=t}function i(e,t){n[e]&=t}return{array:n,get:(t,r)=>{const i=r*e+t;return n[i>>>kD]&1<<(i&LD)},set:(t,n)=>{const i=n*e+t;r(i>>>kD,1<<(i&LD))},clear:(t,n)=>{const r=n*e+t;i(r>>>kD,~(1<<(r&LD)))},getRange:(t,r,i,a)=>{let o,s,l,u,c=a;for(;c>=r;--c)if(o=c*e+t,s=c*e+i,l=o>>>kD,u=s>>>kD,l===u){if(n[l]&FD[o&LD]&BD[1+(s&LD)])return!0}else{if(n[l]&FD[o&LD])return!0;if(n[u]&BD[1+(s&LD)])return!0;for(let e=l+1;e<u;++e)if(n[e])return!0}return!1},setRange:(t,n,i,a)=>{let o,s,l,u,c;for(;n<=a;++n)if(o=n*e+t,s=n*e+i,l=o>>>kD,u=s>>>kD,l===u)r(l,FD[o&LD]&BD[1+(s&LD)]);else for(r(l,FD[o&LD]),r(u,BD[1+(s&LD)]),c=l+1;c<u;++c)r(c,4294967295)},clearRange:(t,n,r,a)=>{let o,s,l,u,c;for(;n<=a;++n)if(o=n*e+t,s=n*e+r,l=o>>>kD,u=s>>>kD,l===u)i(l,BD[o&LD]|FD[1+(s&LD)]);else for(i(l,BD[o&LD]),i(u,FD[1+(s&LD)]),c=l+1;c<u;++c)i(c,0)},outOfBounds:(n,r,i,a)=>n<0||r<0||a>=t||i>=e}}(i,a),o.ratio=r,o.padding=n,o.width=e,o.height=t,o}(t[0],t[1],u);let $;if(!v){n&&S.sort(((e,t)=>n(e.datum,t.datum)));let t=!1;for(let e=0;e<h.length&&!t;++e)t=5===h[e]||f[e]<0;const r=(p&&o||g)&&e.map((e=>e.datum));$=a.length||r?function(e,t,n,r,i){const a=e.width,o=e.height,s=r||i,l=Sc(a,o).getContext("2d"),u=Sc(a,o).getContext("2d"),c=s&&Sc(a,o).getContext("2d");n.forEach((e=>CD(l,e,!1))),CD(u,t,!1),s&&CD(c,t,!0);const d=ID(l,a,o),f=ID(u,a,o),h=s&&ID(c,a,o),p=e.bitmap(),m=s&&e.bitmap();let g,y,_,v,b,x,E,S;for(y=0;y<o;++y)for(g=0;g<a;++g)b=y*a+g,x=d[b]&wD,S=f[b]&wD,E=s&&h[b]&wD,(x||E||S)&&(_=e(g),v=e(y),i||!x&&!S||p.set(_,v),s&&(x||E)&&m.set(_,v));return[p,m]}(A,r||[],a,t,g):function(e,t){const n=e.bitmap();return(t||[]).forEach((t=>n.set(e(t.boundary[0]),e(t.boundary[3])))),[n,void 0]}(A,o&&S)}const T=g?qD[c](A,$,o,l):function(e,t,n,r){const i=e.width,a=e.height,o=t[0],s=t[1],l=r.length;return function(t){const u=t.boundary,c=t.datum.fontSize;if(u[2]<0||u[5]<0||u[0]>i||u[3]>a)return!1;let d,f,h,p,m,g,y,_,v,b,x,E,S,A,$,T=t.textWidth??0;for(let i=0;i<l;++i){if(d=(3&n[i])-1,f=(n[i]>>>2&3)-1,h=0===d&&0===f||r[i]<0,p=d&&f?Math.SQRT1_2:1,m=r[i]<0?-1:1,g=u[1+d]+r[i]*d*p,x=u[4+f]+m*c*f/2+r[i]*f*p,_=x-c/2,v=x+c/2,E=e(g),A=e(_),$=e(v),!T){if(!WD(E,E,A,$,o,s,0,0,0,0,0,h))continue;T=Oy.width(t.datum,t.datum.text)}if(b=g+m*T*d/2,g=b-T/2,y=b+T/2,E=e(g),S=e(y),WD(E,S,A,$,o,s,0,0,0,0,0,h))return t.x=d?d*m<0?y:g:b,t.y=f?f*m<0?v:_:x,t.align=UD[d*m+1],t.baseline=VD[f*m+1],o.setRange(E,A,S,$),!0}return!1}}(A,$,h,f);return S.forEach((e=>e.opacity=+T(e))),S}const KD=["x","y","opacity","align","baseline"],JD=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function XD(e){Vo.call(this,null,e)}function ZD(e,t){var n,r,i,a,o,s,l=[],u=function(e){return e(a)};if(null==t)l.push(e);else for(n={},r=0,i=e.length;r<i;++r)a=e[r],(s=n[o=t.map(u)])||(n[o]=s=[],s.dims=o,l.push(s)),s.push(a);return l}function QD(e){Vo.call(this,null,e)}XD.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:JD},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:KD.length,default:KD}]},pt(XD,Vo,{transform(e,t){const n=e.modified();if(!(n||t.changed(t.ADD_REM)||function(n){const r=e.sort;return et(r)&&t.modified(r.fields)}()))return;e.size&&2===e.size.length||_e("Size parameter should be specified as a [width, height] array.");const r=e.as||KD;return YD(t.materialize(t.SOURCE).source||[],e.size,e.sort,Qe(null==e.offset?1:e.offset),Qe(e.anchor||JD),e.avoidMarks||[],!1!==e.avoidBaseMark,e.lineAnchor||"end",e.markIndex||0,void 0===e.padding?0:e.padding,e.method||"naive").forEach((e=>{const t=e.datum;t[r[0]]=e.x,t[r[1]]=e.y,t[r[2]]=e.opacity,t[r[3]]=e.align,t[r[4]]=e.baseline})),t.reflow(n).modifies(r)}}),QD.Definition={type:"Loess",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"bandwidth",type:"number",default:.3},{name:"as",type:"string",array:!0}]},pt(QD,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const r=ZD(t.materialize(t.SOURCE).source,e.groupby),i=(e.groupby||[]).map(he),a=i.length,o=e.as||[he(e.x),he(e.y)],s=[];r.forEach((t=>{(function(e,t,n,r){const[i,a,o,s]=Ts(e,t,n,!0),l=i.length,u=Math.max(2,~~(r*l)),c=new Float64Array(l),d=new Float64Array(l),f=new Float64Array(l).fill(1);for(let e=-1;++e<=2;){const t=[0,u-1];for(let e=0;e<l;++e){const n=i[e],r=t[0],o=t[1],s=n-i[r]>i[o]-n?r:o;let l=0,u=0,h=0,p=0,m=0;const g=1/Math.abs(i[s]-n||1);for(let e=r;e<=o;++e){const t=i[e],r=a[e],o=Cs(Math.abs(n-t)*g)*f[e],s=t*o;l+=o,u+=s,h+=r*o,p+=r*s,m+=t*s}const[y,_]=$s(u/l,h/l,p/l,m/l);c[e]=y+_*n,d[e]=Math.abs(a[e]-c[e]),Rs(i,e+1,t)}if(2===e)break;const n=es(d);if(Math.abs(n)<1e-12)break;for(let e,t,r=0;r<l;++r)e=d[r]/(6*n),f[r]=e>=1?1e-12:(t=1-e*e)*t}return function(e,t,n,r){const i=e.length,a=[];let o,s=0,l=0,u=[];for(;s<i;++s)o=e[s]+n,u[0]===o?u[1]+=(t[s]-u[1])/++l:(l=0,u[1]+=r,u=[o,t[s]],a.push(u));return u[1]+=r,a}(i,c,o,s)})(t,e.x,e.y,e.bandwidth||.3).forEach((e=>{const n={};for(let e=0;e<a;++e)n[i[e]]=t.dims[e];n[o[0]]=e[0],n[o[1]]=e[1],s.push(po(n))}))})),this.value&&(n.rem=this.value),this.value=n.add=n.source=s}return n}});const eM={constant:As,linear:Ms,log:function(e,t,n){let r=0,i=0,a=0,o=0,s=0;Os(e,t,n,((e,t)=>{++s,e=Math.log(e),r+=(e-r)/s,i+=(t-i)/s,a+=(e*t-a)/s,o+=(e*e-o)/s}));const l=$s(r,i,a,o),u=e=>l[0]+l[1]*Math.log(e);return{coef:l,predict:u,rSquared:Ds(e,t,n,i,u)}},exp:function(e,t,n){const[r,i,a,o]=Ts(e,t,n);let s,l,u,c=0,d=0,f=0,h=0,p=0;Os(e,t,n,((e,t)=>{s=r[p++],l=Math.log(t),u=s*t,c+=(t*l-c)/p,d+=(u-d)/p,f+=(u*l-f)/p,h+=(s*u-h)/p}));const[m,g]=$s(d/o,c/o,f/o,h/o),y=e=>Math.exp(m+g*(e-a));return{coef:[Math.exp(m-g*a),g],predict:y,rSquared:Ds(e,t,n,o,y)}},pow:function(e,t,n){let r=0,i=0,a=0,o=0,s=0,l=0;Os(e,t,n,((e,t)=>{const n=Math.log(e),u=Math.log(t);++l,r+=(n-r)/l,i+=(u-i)/l,a+=(n*u-a)/l,o+=(n*n-o)/l,s+=(t-s)/l}));const u=$s(r,i,a,o),c=e=>u[0]*Math.pow(e,u[1]);return u[0]=Math.exp(u[0]),{coef:u,predict:c,rSquared:Ds(e,t,n,s,c)}},quad:ws,poly:function(e,t,n,r){if(0===r)return As(e,t,n);if(1===r)return Ms(e,t,n);if(2===r)return ws(e,t,n);const[i,a,o,s]=Ts(e,t,n),l=i.length,u=[],c=[],d=r+1;let f,h,p,m,g;for(f=0;f<d;++f){for(p=0,m=0;p<l;++p)m+=Math.pow(i[p],f)*a[p];for(u.push(m),g=new Float64Array(d),h=0;h<d;++h){for(p=0,m=0;p<l;++p)m+=Math.pow(i[p],f+h);g[h]=m}c.push(g)}c.push(u);const y=function(e){const t=e.length-1,n=[];let r,i,a,o,s;for(r=0;r<t;++r){for(o=r,i=r+1;i<t;++i)Math.abs(e[r][i])>Math.abs(e[r][o])&&(o=i);for(a=r;a<t+1;++a)s=e[a][r],e[a][r]=e[a][o],e[a][o]=s;for(i=r+1;i<t;++i)for(a=t;a>=r;a--)e[a][i]-=e[a][r]*e[r][i]/e[r][r]}for(i=t-1;i>=0;--i){for(s=0,a=i+1;a<t;++a)s+=e[a][i]*n[a];n[i]=(e[t][i]-s)/e[i][i]}return n}(c),_=e=>{e-=o;let t=s+y[0]+y[1]*e+y[2]*e*e;for(f=3;f<d;++f)t+=y[f]*Math.pow(e,f);return t};return{coef:Is(d,y,-o,s),predict:_,rSquared:Ds(e,t,n,s,_)}}};function tM(e){Vo.call(this,null,e)}tM.Definition={type:"Regression",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"string",default:"linear",values:Object.keys(eM)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:!0,length:2},{name:"params",type:"boolean",default:!1},{name:"as",type:"string",array:!0}]},pt(tM,Vo,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const r=ZD(t.materialize(t.SOURCE).source,e.groupby),i=(e.groupby||[]).map(he),a=e.method||"linear",o=null==e.order?3:e.order,s=((e,t)=>"poly"===e?t:"quad"===e?2:1)(a,o),l=e.as||[he(e.x),he(e.y)],u=eM[a],c=[];let d=e.extent;dt(eM,a)||_e("Invalid regression method: "+a),null!=d&&"log"===a&&d[0]<=0&&(t.dataflow.warn("Ignoring extent with values <= 0 for log regression."),d=null),r.forEach((n=>{if(n.length<=s)return void t.dataflow.warn("Skipping regression with more parameters than data points.");const r=u(n,e.x,e.y,o);if(e.params)return void c.push(po({keys:n.dims,coef:r.coef,rSquared:r.rSquared}));const f=d||ct(n,e.x),h=e=>{const t={};for(let e=0;e<i.length;++e)t[i[e]]=n.dims[e];t[l[0]]=e[0],t[l[1]]=e[1],c.push(po(t))};"linear"===a||"constant"===a?f.forEach((e=>h([e,r.predict(e)]))):Ls(r.predict,f,25,200).forEach(h)})),this.value&&(n.rem=this.value),this.value=n.add=n.source=c}return n}});const nM=134217729;function rM(e,t,n,r,i){let a,o,s,l,u=t[0],c=r[0],d=0,f=0;c>u==c>-u?(a=u,u=t[++d]):(a=c,c=r[++f]);let h=0;if(d<e&&f<n)for(c>u==c>-u?(o=u+a,s=a-(o-u),u=t[++d]):(o=c+a,s=a-(o-c),c=r[++f]),a=o,0!==s&&(i[h++]=s);d<e&&f<n;)c>u==c>-u?(o=a+u,l=o-a,s=a-(o-l)+(u-l),u=t[++d]):(o=a+c,l=o-a,s=a-(o-l)+(c-l),c=r[++f]),a=o,0!==s&&(i[h++]=s);for(;d<e;)o=a+u,l=o-a,s=a-(o-l)+(u-l),u=t[++d],a=o,0!==s&&(i[h++]=s);for(;f<n;)o=a+c,l=o-a,s=a-(o-l)+(c-l),c=r[++f],a=o,0!==s&&(i[h++]=s);return 0===a&&0!==h||(i[h++]=a),h}function iM(e){return new Float64Array(e)}const aM=iM(4),oM=iM(8),sM=iM(12),lM=iM(16),uM=iM(4);function cM(e,t,n,r,i,a){const o=(t-a)*(n-i),s=(e-i)*(r-a),l=o-s,u=Math.abs(o+s);return Math.abs(l)>=33306690738754716e-32*u?l:-function(e,t,n,r,i,a,o){let s,l,u,c,d,f,h,p,m,g,y,_,v,b,x,E,S,A;const $=e-i,T=n-i,O=t-a,D=r-a;b=$*D,f=nM*$,h=f-(f-$),p=$-h,f=nM*D,m=f-(f-D),g=D-m,x=p*g-(b-h*m-p*m-h*g),E=O*T,f=nM*O,h=f-(f-O),p=O-h,f=nM*T,m=f-(f-T),g=T-m,S=p*g-(E-h*m-p*m-h*g),y=x-S,d=x-y,aM[0]=x-(y+d)+(d-S),_=b+y,d=_-b,v=b-(_-d)+(y-d),y=v-E,d=v-y,aM[1]=v-(y+d)+(d-E),A=_+y,d=A-_,aM[2]=_-(A-d)+(y-d),aM[3]=A;let M=function(e,t){let n=t[0];for(let e=1;e<4;e++)n+=t[e];return n}(0,aM),w=22204460492503146e-32*o;if(M>=w||-M>=w)return M;if(d=e-$,s=e-($+d)+(d-i),d=n-T,u=n-(T+d)+(d-i),d=t-O,l=t-(O+d)+(d-a),d=r-D,c=r-(D+d)+(d-a),0===s&&0===l&&0===u&&0===c)return M;if(w=11093356479670487e-47*o+33306690738754706e-32*Math.abs(M),M+=$*c+D*s-(O*u+T*l),M>=w||-M>=w)return M;b=s*D,f=nM*s,h=f-(f-s),p=s-h,f=nM*D,m=f-(f-D),g=D-m,x=p*g-(b-h*m-p*m-h*g),E=l*T,f=nM*l,h=f-(f-l),p=l-h,f=nM*T,m=f-(f-T),g=T-m,S=p*g-(E-h*m-p*m-h*g),y=x-S,d=x-y,uM[0]=x-(y+d)+(d-S),_=b+y,d=_-b,v=b-(_-d)+(y-d),y=v-E,d=v-y,uM[1]=v-(y+d)+(d-E),A=_+y,d=A-_,uM[2]=_-(A-d)+(y-d),uM[3]=A;const I=rM(4,aM,4,uM,oM);b=$*c,f=nM*$,h=f-(f-$),p=$-h,f=nM*c,m=f-(f-c),g=c-m,x=p*g-(b-h*m-p*m-h*g),E=O*u,f=nM*O,h=f-(f-O),p=O-h,f=nM*u,m=f-(f-u),g=u-m,S=p*g-(E-h*m-p*m-h*g),y=x-S,d=x-y,uM[0]=x-(y+d)+(d-S),_=b+y,d=_-b,v=b-(_-d)+(y-d),y=v-E,d=v-y,uM[1]=v-(y+d)+(d-E),A=_+y,d=A-_,uM[2]=_-(A-d)+(y-d),uM[3]=A;const C=rM(I,oM,4,uM,sM);b=s*c,f=nM*s,h=f-(f-s),p=s-h,f=nM*c,m=f-(f-c),g=c-m,x=p*g-(b-h*m-p*m-h*g),E=l*u,f=nM*l,h=f-(f-l),p=l-h,f=nM*u,m=f-(f-u),g=u-m,S=p*g-(E-h*m-p*m-h*g),y=x-S,d=x-y,uM[0]=x-(y+d)+(d-S),_=b+y,d=_-b,v=b-(_-d)+(y-d),y=v-E,d=v-y,uM[1]=v-(y+d)+(d-E),A=_+y,d=A-_,uM[2]=_-(A-d)+(y-d),uM[3]=A;const R=rM(C,sM,4,uM,lM);return lM[R-1]}(e,t,n,r,i,a,u)}iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(8),iM(8),iM(8),iM(4),iM(8),iM(8),iM(8),iM(12),iM(192),iM(192),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(8),iM(8),iM(8),iM(8),iM(8),iM(8),iM(8),iM(8),iM(8),iM(4),iM(4),iM(4),iM(8),iM(16),iM(16),iM(16),iM(32),iM(32),iM(48),iM(64),iM(1152),iM(1152),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(4),iM(24),iM(24),iM(24),iM(24),iM(24),iM(24),iM(24),iM(24),iM(24),iM(24),iM(1152),iM(1152),iM(1152),iM(1152),iM(1152),iM(2304),iM(2304),iM(3456),iM(5760),iM(8),iM(8),iM(8),iM(16),iM(24),iM(48),iM(48),iM(96),iM(192),iM(384),iM(384),iM(384),iM(768),iM(96),iM(96),iM(96),iM(1152);const dM=Math.pow(2,-52),fM=new Uint32Array(512);class hM{static from(e,t=vM,n=bM){const r=e.length,i=new Float64Array(2*r);for(let a=0;a<r;a++){const r=e[a];i[2*a]=t(r),i[2*a+1]=n(r)}return new hM(i)}constructor(e){const t=e.length>>1;if(t>0&&"number"!=typeof e[0])throw new Error("Expected coords to contain numbers.");this.coords=e;const n=Math.max(2*t-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(t)),this._hullPrev=new Uint32Array(t),this._hullNext=new Uint32Array(t),this._hullTri=new Uint32Array(t),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(t),this._dists=new Float64Array(t),this.update()}update(){const{coords:e,_hullPrev:t,_hullNext:n,_hullTri:r,_hullHash:i}=this,a=e.length>>1;let o=1/0,s=1/0,l=-1/0,u=-1/0;for(let t=0;t<a;t++){const n=e[2*t],r=e[2*t+1];n<o&&(o=n),r<s&&(s=r),n>l&&(l=n),r>u&&(u=r),this._ids[t]=t}const c=(o+l)/2,d=(s+u)/2;let f,h,p,m=1/0;for(let t=0;t<a;t++){const n=pM(c,d,e[2*t],e[2*t+1]);n<m&&(f=t,m=n)}const g=e[2*f],y=e[2*f+1];m=1/0;for(let t=0;t<a;t++){if(t===f)continue;const n=pM(g,y,e[2*t],e[2*t+1]);n<m&&n>0&&(h=t,m=n)}let _=e[2*h],v=e[2*h+1],b=1/0;for(let t=0;t<a;t++){if(t===f||t===h)continue;const n=gM(g,y,_,v,e[2*t],e[2*t+1]);n<b&&(p=t,b=n)}let x=e[2*p],E=e[2*p+1];if(b===1/0){for(let t=0;t<a;t++)this._dists[t]=e[2*t]-e[0]||e[2*t+1]-e[1];yM(this._ids,this._dists,0,a-1);const t=new Uint32Array(a);let n=0;for(let e=0,r=-1/0;e<a;e++){const i=this._ids[e];this._dists[i]>r&&(t[n++]=i,r=this._dists[i])}return this.hull=t.subarray(0,n),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(cM(g,y,_,v,x,E)<0){const e=h,t=_,n=v;h=p,_=x,v=E,p=e,x=t,E=n}const S=function(e,t,n,r,i,a){const o=n-e,s=r-t,l=i-e,u=a-t,c=o*o+s*s,d=l*l+u*u,f=.5/(o*u-s*l);return{x:e+(u*c-s*d)*f,y:t+(o*d-l*c)*f}}(g,y,_,v,x,E);this._cx=S.x,this._cy=S.y;for(let t=0;t<a;t++)this._dists[t]=pM(e[2*t],e[2*t+1],S.x,S.y);yM(this._ids,this._dists,0,a-1),this._hullStart=f;let A=3;n[f]=t[p]=h,n[h]=t[f]=p,n[p]=t[h]=f,r[f]=0,r[h]=1,r[p]=2,i.fill(-1),i[this._hashKey(g,y)]=f,i[this._hashKey(_,v)]=h,i[this._hashKey(x,E)]=p,this.trianglesLen=0,this._addTriangle(f,h,p,-1,-1,-1);for(let a,o,s=0;s<this._ids.length;s++){const l=this._ids[s],u=e[2*l],c=e[2*l+1];if(s>0&&Math.abs(u-a)<=dM&&Math.abs(c-o)<=dM)continue;if(a=u,o=c,l===f||l===h||l===p)continue;let d=0;for(let e=0,t=this._hashKey(u,c);e<this._hashSize&&(d=i[(t+e)%this._hashSize],-1===d||d===n[d]);e++);d=t[d];let m,g=d;for(;m=n[g],cM(u,c,e[2*g],e[2*g+1],e[2*m],e[2*m+1])>=0;)if(g=m,g===d){g=-1;break}if(-1===g)continue;let y=this._addTriangle(g,l,n[g],-1,-1,r[g]);r[l]=this._legalize(y+2),r[g]=y,A++;let _=n[g];for(;m=n[_],cM(u,c,e[2*_],e[2*_+1],e[2*m],e[2*m+1])<0;)y=this._addTriangle(_,l,m,r[l],-1,r[_]),r[l]=this._legalize(y+2),n[_]=_,A--,_=m;if(g===d)for(;m=t[g],cM(u,c,e[2*m],e[2*m+1],e[2*g],e[2*g+1])<0;)y=this._addTriangle(m,l,g,-1,r[g],r[m]),this._legalize(y+2),r[m]=y,n[g]=g,A--,g=m;this._hullStart=t[l]=g,n[g]=t[_]=l,n[l]=_,i[this._hashKey(u,c)]=l,i[this._hashKey(e[2*g],e[2*g+1])]=g}this.hull=new Uint32Array(A);for(let e=0,t=this._hullStart;e<A;e++)this.hull[e]=t,t=n[t];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,t){return Math.floor(function(e,t){const n=e/(Math.abs(e)+Math.abs(t));return(t>0?3-n:1+n)/4}(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:t,_halfedges:n,coords:r}=this;let i=0,a=0;for(;;){const o=n[e],s=e-e%3;if(a=s+(e+2)%3,-1===o){if(0===i)break;e=fM[--i];continue}const l=o-o%3,u=s+(e+1)%3,c=l+(o+2)%3,d=t[a],f=t[e],h=t[u],p=t[c];if(mM(r[2*d],r[2*d+1],r[2*f],r[2*f+1],r[2*h],r[2*h+1],r[2*p],r[2*p+1])){t[e]=p,t[o]=d;const r=n[c];if(-1===r){let t=this._hullStart;do{if(this._hullTri[t]===c){this._hullTri[t]=e;break}t=this._hullPrev[t]}while(t!==this._hullStart)}this._link(e,r),this._link(o,n[a]),this._link(a,c);const s=l+(o+1)%3;i<fM.length&&(fM[i++]=s)}else{if(0===i)break;e=fM[--i]}}return a}_link(e,t){this._halfedges[e]=t,-1!==t&&(this._halfedges[t]=e)}_addTriangle(e,t,n,r,i,a){const o=this.trianglesLen;return this._triangles[o]=e,this._triangles[o+1]=t,this._triangles[o+2]=n,this._link(o,r),this._link(o+1,i),this._link(o+2,a),this.trianglesLen+=3,o}}function pM(e,t,n,r){const i=e-n,a=t-r;return i*i+a*a}function mM(e,t,n,r,i,a,o,s){const l=e-o,u=t-s,c=n-o,d=r-s,f=i-o,h=a-s,p=c*c+d*d,m=f*f+h*h;return l*(d*m-p*h)-u*(c*m-p*f)+(l*l+u*u)*(c*h-d*f)<0}function gM(e,t,n,r,i,a){const o=n-e,s=r-t,l=i-e,u=a-t,c=o*o+s*s,d=l*l+u*u,f=.5/(o*u-s*l),h=(u*c-s*d)*f,p=(o*d-l*c)*f;return h*h+p*p}function yM(e,t,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){const r=e[i],a=t[r];let o=i-1;for(;o>=n&&t[e[o]]>a;)e[o+1]=e[o--];e[o+1]=r}else{let i=n+1,a=r;_M(e,n+r>>1,i),t[e[n]]>t[e[r]]&&_M(e,n,r),t[e[i]]>t[e[r]]&&_M(e,i,r),t[e[n]]>t[e[i]]&&_M(e,n,i);const o=e[i],s=t[o];for(;;){do{i++}while(t[e[i]]<s);do{a--}while(t[e[a]]>s);if(a<i)break;_M(e,i,a)}e[n+1]=e[a],e[a]=o,r-i+1>=a-n?(yM(e,t,i,r),yM(e,t,n,a-1)):(yM(e,t,n,a-1),yM(e,t,i,r))}}function _M(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function vM(e){return e[0]}function bM(e){return e[1]}const xM=1e-6;class EM{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,t){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,t){this._+=`L${this._x1=+e},${this._y1=+t}`}arc(e,t,n){const r=(e=+e)+(n=+n),i=t=+t;if(n<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${i}`:(Math.abs(this._x1-r)>xM||Math.abs(this._y1-i)>xM)&&(this._+="L"+r+","+i),n&&(this._+=`A${n},${n},0,1,1,${e-n},${t}A${n},${n},0,1,1,${this._x1=r},${this._y1=i}`)}rect(e,t,n,r){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${+n}v${+r}h${-n}Z`}value(){return this._||null}}class SM{constructor(){this._=[]}moveTo(e,t){this._.push([e,t])}closePath(){this._.push(this._[0].slice())}lineTo(e,t){this._.push([e,t])}value(){return this._.length?this._:null}}class AM{constructor(e,[t,n,r,i]=[0,0,960,500]){if(!((r=+r)>=(t=+t)&&(i=+i)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(2*e.points.length),this.vectors=new Float64Array(2*e.points.length),this.xmax=r,this.xmin=t,this.ymax=i,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:t,triangles:n},vectors:r}=this;let i,a;const o=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let r,s,l=0,u=0,c=n.length;l<c;l+=3,u+=2){const c=2*n[l],d=2*n[l+1],f=2*n[l+2],h=e[c],p=e[c+1],m=e[d],g=e[d+1],y=e[f],_=e[f+1],v=m-h,b=g-p,x=y-h,E=_-p,S=2*(v*E-b*x);if(Math.abs(S)<1e-9){if(void 0===i){i=a=0;for(const n of t)i+=e[2*n],a+=e[2*n+1];i/=t.length,a/=t.length}const n=1e9*Math.sign((i-h)*E-(a-p)*x);r=(h+y)/2-n*E,s=(p+_)/2+n*x}else{const e=1/S,t=v*v+b*b,n=x*x+E*E;r=h+(E*t-b*n)*e,s=p+(v*n-x*t)*e}o[u]=r,o[u+1]=s}let s,l,u,c=t[t.length-1],d=4*c,f=e[2*c],h=e[2*c+1];r.fill(0);for(let n=0;n<t.length;++n)c=t[n],s=d,l=f,u=h,d=4*c,f=e[2*c],h=e[2*c+1],r[s+2]=r[d]=u-h,r[s+3]=r[d+1]=f-l}render(e){const t=null==e?e=new EM:void 0,{delaunay:{halfedges:n,inedges:r,hull:i},circumcenters:a,vectors:o}=this;if(i.length<=1)return null;for(let t=0,r=n.length;t<r;++t){const r=n[t];if(r<t)continue;const i=2*Math.floor(t/3),o=2*Math.floor(r/3),s=a[i],l=a[i+1],u=a[o],c=a[o+1];this._renderSegment(s,l,u,c,e)}let s,l=i[i.length-1];for(let t=0;t<i.length;++t){s=l,l=i[t];const n=2*Math.floor(r[l]/3),u=a[n],c=a[n+1],d=4*s,f=this._project(u,c,o[d+2],o[d+3]);f&&this._renderSegment(u,c,f[0],f[1],e)}return t&&t.value()}renderBounds(e){const t=null==e?e=new EM:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),t&&t.value()}renderCell(e,t){const n=null==t?t=new EM:void 0,r=this._clip(e);if(null===r||!r.length)return;t.moveTo(r[0],r[1]);let i=r.length;for(;r[0]===r[i-2]&&r[1]===r[i-1]&&i>1;)i-=2;for(let e=2;e<i;e+=2)r[e]===r[e-2]&&r[e+1]===r[e-1]||t.lineTo(r[e],r[e+1]);return t.closePath(),n&&n.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let t=0,n=e.length/2;t<n;++t){const e=this.cellPolygon(t);e&&(e.index=t,yield e)}}cellPolygon(e){const t=new SM;return this.renderCell(e,t),t.value()}_renderSegment(e,t,n,r,i){let a;const o=this._regioncode(e,t),s=this._regioncode(n,r);0===o&&0===s?(i.moveTo(e,t),i.lineTo(n,r)):(a=this._clipSegment(e,t,n,r,o,s))&&(i.moveTo(a[0],a[1]),i.lineTo(a[2],a[3]))}contains(e,t,n){return(t=+t)==t&&(n=+n)==n&&this.delaunay._step(e,t,n)===e}*neighbors(e){const t=this._clip(e);if(t)for(const n of this.delaunay.neighbors(e)){const e=this._clip(n);if(e)e:for(let r=0,i=t.length;r<i;r+=2)for(let a=0,o=e.length;a<o;a+=2)if(t[r]===e[a]&&t[r+1]===e[a+1]&&t[(r+2)%i]===e[(a+o-2)%o]&&t[(r+3)%i]===e[(a+o-1)%o]){yield n;break e}}}_cell(e){const{circumcenters:t,delaunay:{inedges:n,halfedges:r,triangles:i}}=this,a=n[e];if(-1===a)return null;const o=[];let s=a;do{const n=Math.floor(s/3);if(o.push(t[2*n],t[2*n+1]),s=s%3==2?s-2:s+1,i[s]!==e)break;s=r[s]}while(s!==a&&-1!==s);return o}_clip(e){if(0===e&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const t=this._cell(e);if(null===t)return null;const{vectors:n}=this,r=4*e;return this._simplify(n[r]||n[r+1]?this._clipInfinite(e,t,n[r],n[r+1],n[r+2],n[r+3]):this._clipFinite(e,t))}_clipFinite(e,t){const n=t.length;let r,i,a,o,s=null,l=t[n-2],u=t[n-1],c=this._regioncode(l,u),d=0;for(let f=0;f<n;f+=2)if(r=l,i=u,l=t[f],u=t[f+1],a=c,c=this._regioncode(l,u),0===a&&0===c)o=d,d=0,s?s.push(l,u):s=[l,u];else{let t,n,f,h,p;if(0===a){if(null===(t=this._clipSegment(r,i,l,u,a,c)))continue;[n,f,h,p]=t}else{if(null===(t=this._clipSegment(l,u,r,i,c,a)))continue;[h,p,n,f]=t,o=d,d=this._edgecode(n,f),o&&d&&this._edge(e,o,d,s,s.length),s?s.push(n,f):s=[n,f]}o=d,d=this._edgecode(h,p),o&&d&&this._edge(e,o,d,s,s.length),s?s.push(h,p):s=[h,p]}if(s)o=d,d=this._edgecode(s[0],s[1]),o&&d&&this._edge(e,o,d,s,s.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return s}_clipSegment(e,t,n,r,i,a){const o=i<a;for(o&&([e,t,n,r,i,a]=[n,r,e,t,a,i]);;){if(0===i&&0===a)return o?[n,r,e,t]:[e,t,n,r];if(i&a)return null;let s,l,u=i||a;8&u?(s=e+(n-e)*(this.ymax-t)/(r-t),l=this.ymax):4&u?(s=e+(n-e)*(this.ymin-t)/(r-t),l=this.ymin):2&u?(l=t+(r-t)*(this.xmax-e)/(n-e),s=this.xmax):(l=t+(r-t)*(this.xmin-e)/(n-e),s=this.xmin),i?(e=s,t=l,i=this._regioncode(e,t)):(n=s,r=l,a=this._regioncode(n,r))}}_clipInfinite(e,t,n,r,i,a){let o,s=Array.from(t);if((o=this._project(s[0],s[1],n,r))&&s.unshift(o[0],o[1]),(o=this._project(s[s.length-2],s[s.length-1],i,a))&&s.push(o[0],o[1]),s=this._clipFinite(e,s))for(let t,n=0,r=s.length,i=this._edgecode(s[r-2],s[r-1]);n<r;n+=2)t=i,i=this._edgecode(s[n],s[n+1]),t&&i&&(n=this._edge(e,t,i,s,n),r=s.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(e,t,n,r,i){for(;t!==n;){let n,a;switch(t){case 5:t=4;continue;case 4:t=6,n=this.xmax,a=this.ymin;break;case 6:t=2;continue;case 2:t=10,n=this.xmax,a=this.ymax;break;case 10:t=8;continue;case 8:t=9,n=this.xmin,a=this.ymax;break;case 9:t=1;continue;case 1:t=5,n=this.xmin,a=this.ymin}r[i]===n&&r[i+1]===a||!this.contains(e,n,a)||(r.splice(i,0,n,a),i+=2)}return i}_project(e,t,n,r){let i,a,o,s=1/0;if(r<0){if(t<=this.ymin)return null;(i=(this.ymin-t)/r)<s&&(o=this.ymin,a=e+(s=i)*n)}else if(r>0){if(t>=this.ymax)return null;(i=(this.ymax-t)/r)<s&&(o=this.ymax,a=e+(s=i)*n)}if(n>0){if(e>=this.xmax)return null;(i=(this.xmax-e)/n)<s&&(a=this.xmax,o=t+(s=i)*r)}else if(n<0){if(e<=this.xmin)return null;(i=(this.xmin-e)/n)<s&&(a=this.xmin,o=t+(s=i)*r)}return[a,o]}_edgecode(e,t){return(e===this.xmin?1:e===this.xmax?2:0)|(t===this.ymin?4:t===this.ymax?8:0)}_regioncode(e,t){return(e<this.xmin?1:e>this.xmax?2:0)|(t<this.ymin?4:t>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let t=0;t<e.length;t+=2){const n=(t+2)%e.length,r=(t+4)%e.length;(e[t]===e[n]&&e[n]===e[r]||e[t+1]===e[n+1]&&e[n+1]===e[r+1])&&(e.splice(n,2),t-=2)}e.length||(e=null)}return e}}const $M=2*Math.PI,TM=Math.pow;function OM(e){return e[0]}function DM(e){return e[1]}function MM(e,t,n){return[e+Math.sin(e+t)*n,t+Math.cos(e-t)*n]}class wM{static from(e,t=OM,n=DM,r){return new wM("length"in e?function(e,t,n,r){const i=e.length,a=new Float64Array(2*i);for(let o=0;o<i;++o){const i=e[o];a[2*o]=t.call(r,i,o,e),a[2*o+1]=n.call(r,i,o,e)}return a}(e,t,n,r):Float64Array.from(function*(e,t,n,r){let i=0;for(const a of e)yield t.call(r,a,i,e),yield n.call(r,a,i,e),++i}(e,t,n,r)))}constructor(e){this._delaunator=new hM(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,t=this.points;if(e.hull&&e.hull.length>2&&function(e){const{triangles:t,coords:n}=e;for(let e=0;e<t.length;e+=3){const r=2*t[e],i=2*t[e+1],a=2*t[e+2];if((n[a]-n[r])*(n[i+1]-n[r+1])-(n[i]-n[r])*(n[a+1]-n[r+1])>1e-10)return!1}return!0}(e)){this.collinear=Int32Array.from({length:t.length/2},((e,t)=>t)).sort(((e,n)=>t[2*e]-t[2*n]||t[2*e+1]-t[2*n+1]));const e=this.collinear[0],n=this.collinear[this.collinear.length-1],r=[t[2*e],t[2*e+1],t[2*n],t[2*n+1]],i=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let e=0,n=t.length/2;e<n;++e){const n=MM(t[2*e],t[2*e+1],i);t[2*e]=n[0],t[2*e+1]=n[1]}this._delaunator=new hM(t)}else delete this.collinear;const n=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,i=this.triangles=this._delaunator.triangles,a=this.inedges.fill(-1),o=this._hullIndex.fill(-1);for(let e=0,t=n.length;e<t;++e){const t=i[e%3==2?e-2:e+1];-1!==n[e]&&-1!==a[t]||(a[t]=e)}for(let e=0,t=r.length;e<t;++e)o[r[e]]=e;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],a[r[0]]=1,2===r.length&&(a[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(e){return new AM(this,e)}*neighbors(e){const{inedges:t,hull:n,_hullIndex:r,halfedges:i,triangles:a,collinear:o}=this;if(o){const t=o.indexOf(e);return t>0&&(yield o[t-1]),void(t<o.length-1&&(yield o[t+1]))}const s=t[e];if(-1===s)return;let l=s,u=-1;do{if(yield u=a[l],l=l%3==2?l-2:l+1,a[l]!==e)return;if(l=i[l],-1===l){const t=n[(r[e]+1)%n.length];return void(t!==u&&(yield t))}}while(l!==s)}find(e,t,n=0){if((e=+e)!=e||(t=+t)!=t)return-1;const r=n;let i;for(;(i=this._step(n,e,t))>=0&&i!==n&&i!==r;)n=i;return i}_step(e,t,n){const{inedges:r,hull:i,_hullIndex:a,halfedges:o,triangles:s,points:l}=this;if(-1===r[e]||!l.length)return(e+1)%(l.length>>1);let u=e,c=TM(t-l[2*e],2)+TM(n-l[2*e+1],2);const d=r[e];let f=d;do{let r=s[f];const d=TM(t-l[2*r],2)+TM(n-l[2*r+1],2);if(d<c&&(c=d,u=r),f=f%3==2?f-2:f+1,s[f]!==e)break;if(f=o[f],-1===f){if(f=i[(a[e]+1)%i.length],f!==r&&TM(t-l[2*f],2)+TM(n-l[2*f+1],2)<c)return f;break}}while(f!==d);return u}render(e){const t=null==e?e=new EM:void 0,{points:n,halfedges:r,triangles:i}=this;for(let t=0,a=r.length;t<a;++t){const a=r[t];if(a<t)continue;const o=2*i[t],s=2*i[a];e.moveTo(n[o],n[o+1]),e.lineTo(n[s],n[s+1])}return this.renderHull(e),t&&t.value()}renderPoints(e,t){void 0!==t||e&&"function"==typeof e.moveTo||(t=e,e=null),t=null==t?2:+t;const n=null==e?e=new EM:void 0,{points:r}=this;for(let n=0,i=r.length;n<i;n+=2){const i=r[n],a=r[n+1];e.moveTo(i+t,a),e.arc(i,a,t,0,$M)}return n&&n.value()}renderHull(e){const t=null==e?e=new EM:void 0,{hull:n,points:r}=this,i=2*n[0],a=n.length;e.moveTo(r[i],r[i+1]);for(let t=1;t<a;++t){const i=2*n[t];e.lineTo(r[i],r[i+1])}return e.closePath(),t&&t.value()}hullPolygon(){const e=new SM;return this.renderHull(e),e.value()}renderTriangle(e,t){const n=null==t?t=new EM:void 0,{points:r,triangles:i}=this,a=2*i[e*=3],o=2*i[e+1],s=2*i[e+2];return t.moveTo(r[a],r[a+1]),t.lineTo(r[o],r[o+1]),t.lineTo(r[s],r[s+1]),t.closePath(),n&&n.value()}*trianglePolygons(){const{triangles:e}=this;for(let t=0,n=e.length/3;t<n;++t)yield this.trianglePolygon(t)}trianglePolygon(e){const t=new SM;return this.renderTriangle(e,t),t.value()}}function IM(e){Vo.call(this,null,e)}IM.Definition={type:"Voronoi",metadata:{modifies:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"size",type:"number",array:!0,length:2},{name:"extent",type:"array",array:!0,length:2,default:[[-1e5,-1e5],[1e5,1e5]],content:{type:"number",array:!0,length:2}},{name:"as",type:"string",default:"path"}]};const CM=[-1e5,-1e5,1e5,1e5];function RM(e){const t=e[0][0],n=e[0][1];let r=e.length-1;for(;e[r][0]===t&&e[r][1]===n;--r);return"M"+e.slice(0,r+1).join("L")+"Z"}pt(IM,Vo,{transform(e,t){const n=e.as||"path",r=t.source;if(!r||!r.length)return t;let i=e.size;i=i?[0,0,i[0],i[1]]:(i=e.extent)?[i[0][0],i[0][1],i[1][0],i[1][1]]:CM;const a=this.value=wM.from(r,e.x,e.y).voronoi(i);for(let e=0,t=r.length;e<t;++e){const t=a.cellPolygon(e);r[e][n]=!t||2===(o=t).length&&o[0][0]===o[1][0]&&o[0][1]===o[1][1]?null:RM(t)}var o;return t.reflow(e.modified()).modifies(n)}});var kM=Math.PI/180,LM=64,NM=2048;function FM(e,t,n,r){if(!t.sprite){var i=e.context,a=e.ratio;i.clearRect(0,0,(LM<<5)/a,NM/a);var o,s,l,u,c,d=0,f=0,h=0,p=n.length;for(--r;++r<p;){if(t=n[r],i.save(),i.font=t.style+" "+t.weight+" "+~~((t.size+1)/a)+"px "+t.font,o=i.measureText(t.text+"m").width*a,l=t.size<<1,t.rotate){var m=Math.sin(t.rotate*kM),g=Math.cos(t.rotate*kM),y=o*g,_=o*m,v=l*g,b=l*m;o=Math.max(Math.abs(y+b),Math.abs(y-b))+31>>5<<5,l=~~Math.max(Math.abs(_+v),Math.abs(_-v))}else o=o+31>>5<<5;if(l>h&&(h=l),d+o>=LM<<5&&(d=0,f+=h,h=0),f+l>=NM)break;i.translate((d+(o>>1))/a,(f+(l>>1))/a),t.rotate&&i.rotate(t.rotate*kM),i.fillText(t.text,0,0),t.padding&&(i.lineWidth=2*t.padding,i.strokeText(t.text,0,0)),i.restore(),t.width=o,t.height=l,t.xoff=d,t.yoff=f,t.x1=o>>1,t.y1=l>>1,t.x0=-t.x1,t.y0=-t.y1,t.hasText=!0,d+=o}for(var x=i.getImageData(0,0,(LM<<5)/a,NM/a).data,E=[];--r>=0;)if((t=n[r]).hasText){for(s=(o=t.width)>>5,l=t.y1-t.y0,u=0;u<l*s;u++)E[u]=0;if(null==(d=t.xoff))return;f=t.yoff;var S=0,A=-1;for(c=0;c<l;c++){for(u=0;u<o;u++){var $=s*c+(u>>5),T=x[(f+c)*(LM<<5)+(d+u)<<2]?1<<31-u%32:0;E[$]|=T,S|=T}S?A=c:(t.y0++,l--,c--,f++)}t.y1=t.y0+A,t.sprite=E.slice(0,(t.y1-t.y0)*s)}}}function BM(e,t,n){n>>=5;for(var r,i=e.sprite,a=e.width>>5,o=e.x-(a<<4),s=127&o,l=32-s,u=e.y1-e.y0,c=(e.y+e.y0)*n+(o>>5),d=0;d<u;d++){r=0;for(var f=0;f<=a;f++)if((r<<l|(f<a?(r=i[d*a+f])>>>s:0))&t[c+f])return!0;c+=n}return!1}function jM(e,t){var n=e[0],r=e[1];t.x+t.x0<n.x&&(n.x=t.x+t.x0),t.y+t.y0<n.y&&(n.y=t.y+t.y0),t.x+t.x1>r.x&&(r.x=t.x+t.x1),t.y+t.y1>r.y&&(r.y=t.y+t.y1)}function HM(e,t){return e.x+e.x1>t[0].x&&e.x+e.x0<t[1].x&&e.y+e.y1>t[0].y&&e.y+e.y0<t[1].y}function zM(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function PM(e){return"function"==typeof e?e:function(){return e}}var UM={archimedean:zM,rectangular:function(e){var t=4*e[0]/e[1],n=0,r=0;return function(e){var i=e<0?-1:1;switch(Math.sqrt(1+4*i*e)-i&3){case 0:n+=t;break;case 1:r+=4;break;case 2:n-=t;break;default:r-=4}return[n,r]}}};const VM=["x","y","font","fontSize","fontStyle","fontWeight","angle"],WM=["text","font","rotate","fontSize","fontStyle","fontWeight"];function GM(e){Vo.call(this,function(){var e,t,n,r,i,a,o,s=[256,256],l=zM,u=[],c=Math.random,d={};function f(e,t,n){for(var r,i,a,o=t.x,u=t.y,d=Math.hypot(s[0],s[1]),f=l(s),h=c()<.5?1:-1,p=-h;(r=f(p+=h))&&(i=~~r[0],a=~~r[1],!(Math.min(Math.abs(i),Math.abs(a))>=d));)if(t.x=o+i,t.y=u+a,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>s[0]||t.y+t.y1>s[1])&&(!n||!BM(t,e,s[0]))&&(!n||HM(t,n))){for(var m,g=t.sprite,y=t.width>>5,_=s[0]>>5,v=t.x-(y<<4),b=127&v,x=32-b,E=t.y1-t.y0,S=(t.y+t.y0)*_+(v>>5),A=0;A<E;A++){m=0;for(var $=0;$<=y;$++)e[S+$]|=m<<x|($<y?(m=g[A*y+$])>>>b:0);S+=_}return t.sprite=null,!0}return!1}return d.layout=function(){for(var l=function(e){e.width=e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);e.width=(LM<<5)/t,e.height=NM/t;var n=e.getContext("2d");return n.fillStyle=n.strokeStyle="red",n.textAlign="center",{context:n,ratio:t}}(Sc()),d=function(e){for(var t=[],n=-1;++n<e;)t[n]=0;return t}((s[0]>>5)*s[1]),h=null,p=u.length,m=-1,g=[],y=u.map((s=>({text:e(s),font:t(s),style:r(s),weight:i(s),rotate:a(s),size:~~(n(s)+1e-14),padding:o(s),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:s}))).sort(((e,t)=>t.size-e.size));++m<p;){var _=y[m];_.x=s[0]*(c()+.5)>>1,_.y=s[1]*(c()+.5)>>1,FM(l,_,y,m),_.hasText&&f(d,_,h)&&(g.push(_),h?jM(h,_):h=[{x:_.x+_.x0,y:_.y+_.y0},{x:_.x+_.x1,y:_.y+_.y1}],_.x-=s[0]>>1,_.y-=s[1]>>1)}return g},d.words=function(e){return arguments.length?(u=e,d):u},d.size=function(e){return arguments.length?(s=[+e[0],+e[1]],d):s},d.font=function(e){return arguments.length?(t=PM(e),d):t},d.fontStyle=function(e){return arguments.length?(r=PM(e),d):r},d.fontWeight=function(e){return arguments.length?(i=PM(e),d):i},d.rotate=function(e){return arguments.length?(a=PM(e),d):a},d.text=function(t){return arguments.length?(e=PM(t),d):e},d.spiral=function(e){return arguments.length?(l=UM[e]||e,d):l},d.fontSize=function(e){return arguments.length?(n=PM(e),d):n},d.padding=function(e){return arguments.length?(o=PM(e),d):o},d.random=function(e){return arguments.length?(c=e,d):c},d}(),e)}GM.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:VM}]},pt(GM,Vo,{transform(e,t){!e.size||e.size[0]&&e.size[1]||_e("Wordcloud size dimensions must be non-zero.");const n=e.modified();if(!(n||t.changed(t.ADD_REM)||WM.some((function(n){const r=e[n];return et(r)&&t.modified(r.fields)}))))return;const r=t.materialize(t.SOURCE).source,i=this.value,a=e.as||VM;let o,s=e.fontSize||14;if(et(s)?o=e.fontSizeRange:s=st(s),o){const e=s,t=yp("sqrt")().domain(ct(r,e)).range(o);s=n=>t(e(n))}r.forEach((e=>{e[a[0]]=NaN,e[a[1]]=NaN,e[a[3]]=0}));const l=i.words(r).text(e.text).size(e.size||[500,500]).padding(e.padding||1).spiral(e.spiral||"archimedean").rotate(e.rotate||0).font(e.font||"sans-serif").fontStyle(e.fontStyle||"normal").fontWeight(e.fontWeight||"normal").fontSize(s).random(as).layout(),u=i.size(),c=u[0]>>1,d=u[1]>>1,f=l.length;for(let e,t,n=0;n<f;++n)e=l[n],t=e.datum,t[a[0]]=e.x+c,t[a[1]]=e.y+d,t[a[2]]=e.font,t[a[3]]=e.size,t[a[4]]=e.style,t[a[5]]=e.weight,t[a[6]]=e.rotate;return t.reflow(n).modifies(a)}});const qM=e=>new Uint8Array(e),YM=e=>new Uint16Array(e),KM=e=>new Uint32Array(e);function JM(e,t,n){const r=(t<257?qM:t<65537?YM:KM)(e);return n&&r.set(n),r}function XM(e,t,n){const r=1<<t;return{one:r,zero:~r,range:n.slice(),bisect:e.bisect,index:e.index,size:e.size,onAdd(e,t){const n=this,i=n.bisect(n.range,e.value),a=e.index,o=i[0],s=i[1],l=a.length;let u;for(u=0;u<o;++u)t[a[u]]|=r;for(u=s;u<l;++u)t[a[u]]|=r;return n}}}function ZM(){let e=KM(0),t=[],n=0;return{insert:function(r,i,a){if(!i.length)return[];const o=n,s=i.length,l=KM(s);let u,c,d,f=Array(s);for(d=0;d<s;++d)f[d]=r(i[d]),l[d]=d;if(f=function(e,t){return e.sort.call(t,((t,n)=>{const r=e[t],i=e[n];return r<i?-1:r>i?1:0})),function(e,t){return Array.from(t,(t=>e[t]))}(e,t)}(f,l),o)u=t,c=e,t=Array(o+s),e=KM(o+s),function(e,t,n,r,i,a,o,s,l){let u,c=0,d=0;for(u=0;c<r&&d<o;++u)t[c]<i[d]?(s[u]=t[c],l[u]=n[c++]):(s[u]=i[d],l[u]=a[d++]+e);for(;c<r;++c,++u)s[u]=t[c],l[u]=n[c];for(;d<o;++d,++u)s[u]=i[d],l[u]=a[d]+e}(a,u,c,o,f,l,s,t,e);else{if(a>0)for(d=0;d<s;++d)l[d]+=a;t=f,e=l}return n=o+s,{index:l,value:f}},remove:function(r,i){const a=n;let o,s,l;for(s=0;!i[e[s]]&&s<a;++s);for(l=s;s<a;++s)i[o=e[s]]||(e[l]=o,t[l]=t[s],++l);n=a-r},bisect:function(e,r){let i;return r?i=r.length:(r=t,i=n),[Oc(r,e[0],0,i),Tc(r,e[1],0,i)]},reindex:function(t){for(let r=0,i=n;r<i;++r)e[r]=t[e[r]]},index:()=>e,size:()=>n}}function QM(e){Vo.call(this,function(){let e=8,t=[],n=KM(0),r=JM(0,e),i=JM(0,e);return{data:()=>t,seen:()=>n=function(e,t,n){return e.length>=t?e:((n=n||new e.constructor(t)).set(e),n)}(n,t.length),add(e){for(let n,r=0,i=t.length,a=e.length;r<a;++r)n=e[r],n._index=i++,t.push(n)},remove(e,n){const a=t.length,o=Array(a-e),s=t;let l,u,c;for(u=0;!n[u]&&u<a;++u)o[u]=t[u],s[u]=u;for(c=u;u<a;++u)l=t[u],n[u]?s[u]=-1:(s[u]=c,r[c]=r[u],i[c]=i[u],o[c]=l,l._index=c++),r[u]=0;return t=o,s},size:()=>t.length,curr:()=>r,prev:()=>i,reset:e=>i[e]=r[e],all:()=>e<257?255:e<65537?65535:4294967295,set(e,t){r[e]|=t},clear(e,t){r[e]&=~t},resize(t,n){(t>r.length||n>e)&&(e=Math.max(n,e),r=JM(t,e,r),i=JM(t,e))}}}(),e),this._indices=null,this._dims=null}function ew(e){Vo.call(this,null,e)}QM.Definition={type:"CrossFilter",metadata:{},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"query",type:"array",array:!0,required:!0,content:{type:"number",array:!0,length:2}}]},pt(QM,Vo,{transform(e,t){return this._dims?e.modified("fields")||e.fields.some((e=>t.modified(e.fields)))?this.reinit(e,t):this.eval(e,t):this.init(e,t)},init(e,t){const n=e.fields,r=e.query,i=this._indices={},a=this._dims=[],o=r.length;let s,l,u=0;for(;u<o;++u)s=n[u].fname,l=i[s]||(i[s]=ZM()),a.push(XM(l,u,r[u]));return this.eval(e,t)},reinit(e,t){const n=t.materialize().fork(),r=e.fields,i=e.query,a=this._indices,o=this._dims,s=this.value,l=s.curr(),u=s.prev(),c=s.all(),d=n.rem=n.add,f=n.mod,h=i.length,p={};let m,g,y,_,v,b,x,E,S;if(u.set(l),t.rem.length&&(v=this.remove(e,t,n)),t.add.length&&s.add(t.add),t.mod.length)for(b={},_=t.mod,x=0,E=_.length;x<E;++x)b[_[x]._index]=1;for(x=0;x<h;++x)S=r[x],(!o[x]||e.modified("fields",x)||t.modified(S.fields))&&(y=S.fname,(m=p[y])||(a[y]=g=ZM(),p[y]=m=g.insert(S,t.source,0)),o[x]=XM(g,x,i[x]).onAdd(m,l));for(x=0,E=s.data().length;x<E;++x)v[x]||(u[x]!==l[x]?d.push(x):b[x]&&l[x]!==c&&f.push(x));return s.mask=(1<<h)-1,n},eval(e,t){const n=t.materialize().fork(),r=this._dims.length;let i=0;return t.rem.length&&(this.remove(e,t,n),i|=(1<<r)-1),e.modified("query")&&!e.modified("fields")&&(i|=this.update(e,t,n)),t.add.length&&(this.insert(e,t,n),i|=(1<<r)-1),t.mod.length&&(this.modify(t,n),i|=(1<<r)-1),this.value.mask=i,n},insert(e,t,n){const r=t.add,i=this.value,a=this._dims,o=this._indices,s=e.fields,l={},u=n.add,c=i.size()+r.length,d=a.length;let f,h,p,m=i.size();i.resize(c,d),i.add(r);const g=i.curr(),y=i.prev(),_=i.all();for(f=0;f<d;++f)h=s[f].fname,p=l[h]||(l[h]=o[h].insert(s[f],r,m)),a[f].onAdd(p,g);for(;m<c;++m)y[m]=_,g[m]!==_&&u.push(m)},modify(e,t){const n=t.mod,r=this.value,i=r.curr(),a=r.all(),o=e.mod;let s,l,u;for(s=0,l=o.length;s<l;++s)u=o[s]._index,i[u]!==a&&n.push(u)},remove(e,t,n){const r=this._indices,i=this.value,a=i.curr(),o=i.prev(),s=i.all(),l={},u=n.rem,c=t.rem;let d,f,h,p;for(d=0,f=c.length;d<f;++d)h=c[d]._index,l[h]=1,o[h]=p=a[h],a[h]=s,p!==s&&u.push(h);for(h in r)r[h].remove(f,l);return this.reindex(t,f,l),l},reindex(e,t,n){const r=this._indices,i=this.value;e.runAfter((()=>{const e=i.remove(t,n);for(const t in r)r[t].reindex(e)}))},update(e,t,n){const r=this._dims,i=e.query,a=t.stamp,o=r.length;let s,l,u=0;for(n.filters=0,l=0;l<o;++l)e.modified("query",l)&&(s=l,++u);if(1===u)u=r[s].one,this.incrementOne(r[s],i[s],n.add,n.rem);else for(l=0,u=0;l<o;++l)e.modified("query",l)&&(u|=r[l].one,this.incrementAll(r[l],i[l],a,n.add),n.rem=n.add);return u},incrementAll(e,t,n,r){const i=this.value,a=i.seen(),o=i.curr(),s=i.prev(),l=e.index(),u=e.bisect(e.range),c=e.bisect(t),d=c[0],f=c[1],h=u[0],p=u[1],m=e.one;let g,y,_;if(d<h)for(g=d,y=Math.min(h,f);g<y;++g)_=l[g],a[_]!==n&&(s[_]=o[_],a[_]=n,r.push(_)),o[_]^=m;else if(d>h)for(g=h,y=Math.min(d,p);g<y;++g)_=l[g],a[_]!==n&&(s[_]=o[_],a[_]=n,r.push(_)),o[_]^=m;if(f>p)for(g=Math.max(d,p),y=f;g<y;++g)_=l[g],a[_]!==n&&(s[_]=o[_],a[_]=n,r.push(_)),o[_]^=m;else if(f<p)for(g=Math.max(h,f),y=p;g<y;++g)_=l[g],a[_]!==n&&(s[_]=o[_],a[_]=n,r.push(_)),o[_]^=m;e.range=t.slice()},incrementOne(e,t,n,r){const i=this.value.curr(),a=e.index(),o=e.bisect(e.range),s=e.bisect(t),l=s[0],u=s[1],c=o[0],d=o[1],f=e.one;let h,p,m;if(l<c)for(h=l,p=Math.min(c,u);h<p;++h)m=a[h],i[m]^=f,n.push(m);else if(l>c)for(h=c,p=Math.min(l,d);h<p;++h)m=a[h],i[m]^=f,r.push(m);if(u>d)for(h=Math.max(l,d),p=u;h<p;++h)m=a[h],i[m]^=f,n.push(m);else if(u<d)for(h=Math.max(c,u),p=d;h<p;++h)m=a[h],i[m]^=f,r.push(m);e.range=t.slice()}}),ew.Definition={type:"ResolveFilter",metadata:{},params:[{name:"ignore",type:"number",required:!0,description:"A bit mask indicating which filters to ignore."},{name:"filter",type:"object",required:!0,description:"Per-tuple filter bitmaps from a CrossFilter transform."}]},pt(ew,Vo,{transform(e,t){const n=~(e.ignore||0),r=e.filter,i=r.mask;if(0==(i&n))return t.StopPropagation;const a=t.fork(t.ALL),o=r.data(),s=r.curr(),l=r.prev(),u=e=>s[e]&n?null:o[e];return a.filter(a.MOD,u),i&i-1?(a.filter(a.ADD,(e=>{const t=s[e]&n;return!t&&t^l[e]&n?o[e]:null})),a.filter(a.REM,(e=>{const t=s[e]&n;return!t||t^t^l[e]&n?null:o[e]}))):(a.filter(a.ADD,u),a.filter(a.REM,(e=>(s[e]&n)===i?o[e]:null))),a.filter(a.SOURCE,(e=>u(e._index)))}});const tw="Literal",nw="CallExpression";function rw(e){this.type=e}var iw,aw,ow,sw,lw;rw.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=function(e){switch(e.type){case"ArrayExpression":return e.elements;case"BinaryExpression":case"LogicalExpression":return[e.left,e.right];case nw:return[e.callee].concat(e.arguments);case"ConditionalExpression":return[e.test,e.consequent,e.alternate];case"MemberExpression":return[e.object,e.property];case"ObjectExpression":return e.properties;case"Property":return[e.key,e.value];case"UnaryExpression":return[e.argument];default:return[]}}(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};var uw=1,cw=2,dw=3,fw=4,hw=5,pw=6,mw=7,gw=8;(iw={})[uw]="Boolean",iw[cw]="<end>",iw[dw]="Identifier",iw[fw]="Keyword",iw[hw]="Null",iw[pw]="Numeric",iw[mw]="Punctuator",iw[gw]="String",iw[9]="RegularExpression";var yw="ArrayExpression",_w="BinaryExpression",vw="CallExpression",bw="ConditionalExpression",xw="Identifier",Ew="Literal",Sw="LogicalExpression",Aw="MemberExpression",$w="ObjectExpression",Tw="Property",Ow="UnaryExpression",Dw="Unexpected token %0",Mw="Unexpected number",ww="Unexpected string",Iw="Unexpected identifier",Cw="Unexpected reserved word",Rw="Unexpected end of input",kw="Invalid regular expression",Lw="Invalid regular expression: missing /",Nw="Octal literals are not allowed in strict mode.",Fw="Duplicate data property in object literal not allowed in strict mode",Bw="ILLEGAL",jw="Disabled.",Hw=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),zw=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function Pw(e,t){if(!e)throw new Error("ASSERT: "+t)}function Uw(e){return e>=48&&e<=57}function Vw(e){return"0123456789abcdefABCDEF".includes(e)}function Ww(e){return"01234567".includes(e)}function Gw(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].includes(e)}function qw(e){return 10===e||13===e||8232===e||8233===e}function Yw(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&Hw.test(String.fromCharCode(e))}function Kw(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&zw.test(String.fromCharCode(e))}const Jw={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Xw(){for(;ow<sw;){const e=aw.charCodeAt(ow);if(!Gw(e)&&!qw(e))break;++ow}}function Zw(e){var t,n,r,i=0;for(n="u"===e?4:2,t=0;t<n;++t)ow<sw&&Vw(aw[ow])?(r=aw[ow++],i=16*i+"0123456789abcdef".indexOf(r.toLowerCase())):fI({},Dw,Bw);return String.fromCharCode(i)}function Qw(){var e,t,n,r;for(t=0,"}"===(e=aw[ow])&&fI({},Dw,Bw);ow<sw&&Vw(e=aw[ow++]);)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&fI({},Dw,Bw),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),r=56320+(t-65536&1023),String.fromCharCode(n,r))}function eI(){var e,t;for(e=aw.charCodeAt(ow++),t=String.fromCharCode(e),92===e&&(117!==aw.charCodeAt(ow)&&fI({},Dw,Bw),++ow,(e=Zw("u"))&&"\\"!==e&&Yw(e.charCodeAt(0))||fI({},Dw,Bw),t=e);ow<sw&&Kw(e=aw.charCodeAt(ow));)++ow,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==aw.charCodeAt(ow)&&fI({},Dw,Bw),++ow,(e=Zw("u"))&&"\\"!==e&&Kw(e.charCodeAt(0))||fI({},Dw,Bw),t+=e);return t}function tI(){var e,t,n,r,i=ow,a=aw.charCodeAt(ow),o=aw[ow];switch(a){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++ow,{type:mw,value:String.fromCharCode(a),start:i,end:ow};default:if(61===(e=aw.charCodeAt(ow+1)))switch(a){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return ow+=2,{type:mw,value:String.fromCharCode(a)+String.fromCharCode(e),start:i,end:ow};case 33:case 61:return ow+=2,61===aw.charCodeAt(ow)&&++ow,{type:mw,value:aw.slice(i,ow),start:i,end:ow}}}return">>>="===(r=aw.substr(ow,4))?{type:mw,value:r,start:i,end:ow+=4}:">>>"===(n=r.substr(0,3))||"<<="===n||">>="===n?{type:mw,value:n,start:i,end:ow+=3}:o===(t=n.substr(0,2))[1]&&"+-<>&|".includes(o)||"=>"===t?{type:mw,value:t,start:i,end:ow+=2}:("//"===t&&fI({},Dw,Bw),"<>=!+-*%&|^/".includes(o)?(++ow,{type:mw,value:o,start:i,end:ow}):void fI({},Dw,Bw))}function nI(){var e,t,n;if(Pw(Uw((n=aw[ow]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),t=ow,e="","."!==n){if(e=aw[ow++],n=aw[ow],"0"===e){if("x"===n||"X"===n)return++ow,function(e){let t="";for(;ow<sw&&Vw(aw[ow]);)t+=aw[ow++];return 0===t.length&&fI({},Dw,Bw),Yw(aw.charCodeAt(ow))&&fI({},Dw,Bw),{type:pw,value:parseInt("0x"+t,16),start:e,end:ow}}(t);if(Ww(n))return function(e){let t="0"+aw[ow++];for(;ow<sw&&Ww(aw[ow]);)t+=aw[ow++];return(Yw(aw.charCodeAt(ow))||Uw(aw.charCodeAt(ow)))&&fI({},Dw,Bw),{type:pw,value:parseInt(t,8),octal:!0,start:e,end:ow}}(t);n&&Uw(n.charCodeAt(0))&&fI({},Dw,Bw)}for(;Uw(aw.charCodeAt(ow));)e+=aw[ow++];n=aw[ow]}if("."===n){for(e+=aw[ow++];Uw(aw.charCodeAt(ow));)e+=aw[ow++];n=aw[ow]}if("e"===n||"E"===n)if(e+=aw[ow++],"+"!==(n=aw[ow])&&"-"!==n||(e+=aw[ow++]),Uw(aw.charCodeAt(ow)))for(;Uw(aw.charCodeAt(ow));)e+=aw[ow++];else fI({},Dw,Bw);return Yw(aw.charCodeAt(ow))&&fI({},Dw,Bw),{type:pw,value:parseFloat(e),start:t,end:ow}}function rI(){if(Xw(),ow>=sw)return{type:cw,start:ow,end:ow};const e=aw.charCodeAt(ow);return Yw(e)?function(){var e,t;return e=ow,t=92===aw.charCodeAt(ow)?eI():function(){var e,t;for(e=ow++;ow<sw;){if(92===(t=aw.charCodeAt(ow)))return ow=e,eI();if(!Kw(t))break;++ow}return aw.slice(e,ow)}(),{type:1===t.length?dw:Jw.hasOwnProperty(t)?fw:"null"===t?hw:"true"===t||"false"===t?uw:dw,value:t,start:e,end:ow}}():40===e||41===e||59===e?tI():39===e||34===e?function(){var e,t,n,r,i="",a=!1;for(Pw("'"===(e=aw[ow])||'"'===e,"String literal must starts with a quote"),t=ow,++ow;ow<sw;){if((n=aw[ow++])===e){e="";break}if("\\"===n)if((n=aw[ow++])&&qw(n.charCodeAt(0)))"\r"===n&&"\n"===aw[ow]&&++ow;else switch(n){case"u":case"x":"{"===aw[ow]?(++ow,i+=Qw()):i+=Zw(n);break;case"n":i+="\n";break;case"r":i+="\r";break;case"t":i+="\t";break;case"b":i+="\b";break;case"f":i+="\f";break;case"v":i+="\v";break;default:Ww(n)?(0!==(r="01234567".indexOf(n))&&(a=!0),ow<sw&&Ww(aw[ow])&&(a=!0,r=8*r+"01234567".indexOf(aw[ow++]),"0123".includes(n)&&ow<sw&&Ww(aw[ow])&&(r=8*r+"01234567".indexOf(aw[ow++]))),i+=String.fromCharCode(r)):i+=n}else{if(qw(n.charCodeAt(0)))break;i+=n}}return""!==e&&fI({},Dw,Bw),{type:gw,value:i,octal:a,start:t,end:ow}}():46===e?Uw(aw.charCodeAt(ow+1))?nI():tI():Uw(e)?nI():tI()}function iI(){const e=lw;return ow=e.end,lw=rI(),ow=e.end,e}function aI(){const e=ow;lw=rI(),ow=e}function oI(e,t,n){const r=new rw("||"===e||"&&"===e?Sw:_w);return r.operator=e,r.left=t,r.right=n,r}function sI(e,t){const n=new rw(vw);return n.callee=e,n.arguments=t,n}function lI(e){const t=new rw(xw);return t.name=e,t}function uI(e){const t=new rw(Ew);return t.value=e.value,t.raw=aw.slice(e.start,e.end),e.regex&&("//"===t.raw&&(t.raw="/(?:)/"),t.regex=e.regex),t}function cI(e,t,n){const r=new rw(Aw);return r.computed="["===e,r.object=t,r.property=n,r.computed||(n.member=!0),r}function dI(e,t,n){const r=new rw(Tw);return r.key=t,r.value=n,r.kind=e,r}function fI(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,((e,t)=>(Pw(t<r.length,"Message reference must be in range"),r[t])));throw(n=new Error(i)).index=ow,n.description=i,n}function hI(e){e.type===cw&&fI(e,Rw),e.type===pw&&fI(e,Mw),e.type===gw&&fI(e,ww),e.type===dw&&fI(e,Iw),e.type===fw&&fI(e,Cw),fI(e,Dw,e.value)}function pI(e){const t=iI();t.type===mw&&t.value===e||hI(t)}function mI(e){return lw.type===mw&&lw.value===e}function gI(e){return lw.type===fw&&lw.value===e}function yI(){ow=lw.start;const e=iI();return e.type===gw||e.type===pw?(e.octal&&fI(e,Nw),uI(e)):lI(e.value)}function _I(){var e,t,n;return ow=lw.start,(e=lw).type===dw?(n=yI(),pI(":"),dI("init",n,OI())):e.type!==cw&&e.type!==mw?(t=yI(),pI(":"),dI("init",t,OI())):void hI(e)}const vI={if:1};function bI(){var e,t,n;if(mI("("))return function(){pI("(");const e=DI();return pI(")"),e}();if(mI("["))return function(){const e=[];for(ow=lw.start,pI("[");!mI("]");)mI(",")?(iI(),e.push(null)):(e.push(OI()),mI("]")||pI(","));return iI(),function(e){const t=new rw(yw);return t.elements=e,t}(e)}();if(mI("{"))return function(){var e,t,n=[],r={},i=String;for(ow=lw.start,pI("{");!mI("}");)t="$"+((e=_I()).key.type===xw?e.key.name:i(e.key.value)),Object.prototype.hasOwnProperty.call(r,t)?fI({},Fw):r[t]=!0,n.push(e),mI("}")||pI(",");return pI("}"),function(e){const t=new rw($w);return t.properties=e,t}(n)}();if(e=lw.type,ow=lw.start,e===dw||vI[lw.value])n=lI(iI().value);else if(e===gw||e===pw)lw.octal&&fI(lw,Nw),n=uI(iI());else{if(e===fw)throw new Error(jw);e===uw?((t=iI()).value="true"===t.value,n=uI(t)):e===hw?((t=iI()).value=null,n=uI(t)):mI("/")||mI("/=")?(n=uI(function(){var e,t,n,r;return lw=null,Xw(),e=ow,t=function(){var e,t,n,r;for(Pw("/"===(e=aw[ow]),"Regular expression literal must start with a slash"),t=aw[ow++],n=!1,r=!1;ow<sw;)if(t+=e=aw[ow++],"\\"===e)qw((e=aw[ow++]).charCodeAt(0))&&fI({},Lw),t+=e;else if(qw(e.charCodeAt(0)))fI({},Lw);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}return r||fI({},Lw),{value:t.substr(1,t.length-2),literal:t}}(),n=function(){var e,t,n;for(t="",n="";ow<sw&&Kw((e=aw[ow]).charCodeAt(0));)++ow,"\\"===e&&ow<sw?fI({},Dw,Bw):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&fI({},kw,n),{value:n,literal:t}}(),r=function(e,t){let n=e;t.includes("u")&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,((e,t)=>{if(parseInt(t,16)<=1114111)return"x";fI({},kw)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch(e){fI({},kw)}try{return new RegExp(e,t)}catch(e){return null}}(t.value,n.value),{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:ow}}()),aI()):hI(iI())}return n}function xI(){const e=[];if(pI("("),!mI(")"))for(;ow<sw&&(e.push(OI()),!mI(")"));)pI(",");return pI(")"),e}function EI(){ow=lw.start;const e=iI();return function(e){return e.type===dw||e.type===fw||e.type===uw||e.type===hw}(e)||hI(e),lI(e.value)}function SI(){pI("[");const e=DI();return pI("]"),e}function AI(){const e=function(){var e;for(e=bI();;)if(mI("."))pI("."),e=cI(".",e,EI());else if(mI("("))e=sI(e,xI());else{if(!mI("["))break;e=cI("[",e,SI())}return e}();if(lw.type===mw&&(mI("++")||mI("--")))throw new Error(jw);return e}function $I(){var e,t;if(lw.type!==mw&&lw.type!==fw)t=AI();else{if(mI("++")||mI("--"))throw new Error(jw);if(mI("+")||mI("-")||mI("~")||mI("!"))e=iI(),t=$I(),t=function(e,t){const n=new rw(Ow);return n.operator=e,n.argument=t,n.prefix=!0,n}(e.value,t);else{if(gI("delete")||gI("void")||gI("typeof"))throw new Error(jw);t=AI()}}return t}function TI(e){let t=0;if(e.type!==mw&&e.type!==fw)return 0;switch(e.value){case"||":t=1;break;case"&&":t=2;break;case"|":t=3;break;case"^":t=4;break;case"&":t=5;break;case"==":case"!=":case"===":case"!==":t=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11}return t}function OI(){var e,t;return e=function(){var e,t,n,r,i,a,o,s,l,u;if(e=lw,l=$I(),0===(i=TI(r=lw)))return l;for(r.prec=i,iI(),t=[e,lw],a=[l,r,o=$I()];(i=TI(lw))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,l=a.pop(),t.pop(),n=oI(s,l,o),a.push(n);(r=iI()).prec=i,a.push(r),t.push(lw),n=$I(),a.push(n)}for(n=a[u=a.length-1],t.pop();u>1;)t.pop(),n=oI(a[u-1].value,a[u-2],n),u-=2;return n}(),mI("?")&&(iI(),t=OI(),pI(":"),e=function(e,t,n){const r=new rw(bw);return r.test=e,r.consequent=t,r.alternate=n,r}(e,t,OI())),e}function DI(){const e=OI();if(mI(","))throw new Error(jw);return e}var MI={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function wI(e){function t(t,n,r){return i=>function(t,n,r,i){let a=e(n[0]);return r&&(a=r+"("+a+")",0===r.lastIndexOf("new ",0)&&(a="("+a+")")),a+"."+t+(i<0?"":0===i?"()":"("+n.slice(1).map(e).join(",")+")")}(t,i,n,r)}const n="new Date",r="String",i="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",hypot:"Math.hypot",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(t){t.length<3&&_e("Missing arguments to clamp function."),t.length>3&&_e("Too many arguments to clamp function.");const n=t.map(e);return"Math.max("+n[1]+", Math.min("+n[2]+","+n[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:n,date:t("getDate",n,0),day:t("getDay",n,0),year:t("getFullYear",n,0),month:t("getMonth",n,0),hours:t("getHours",n,0),minutes:t("getMinutes",n,0),seconds:t("getSeconds",n,0),milliseconds:t("getMilliseconds",n,0),time:t("getTime",n,0),timezoneoffset:t("getTimezoneOffset",n,0),utcdate:t("getUTCDate",n,0),utcday:t("getUTCDay",n,0),utcyear:t("getUTCFullYear",n,0),utcmonth:t("getUTCMonth",n,0),utchours:t("getUTCHours",n,0),utcminutes:t("getUTCMinutes",n,0),utcseconds:t("getUTCSeconds",n,0),utcmilliseconds:t("getUTCMilliseconds",n,0),length:t("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:t("toUpperCase",r,0),lower:t("toLowerCase",r,0),substring:t("substring",r),split:t("split",r),trim:t("trim",r,0),btoa:"btoa",atob:"atob",regexp:i,test:t("test",i),if:function(t){t.length<3&&_e("Missing arguments to if function."),t.length>3&&_e("Too many arguments to if function.");const n=t.map(e);return"("+n[0]+"?"+n[1]+":"+n[2]+")"}}}var II,CI,RI,kI,LI,NI,FI,BI,jI,HI,zI,PI,UI,VI,WI,GI,qI=new Sx,YI=new Sx,KI={point:qx,lineStart:qx,lineEnd:qx,polygonStart:function(){qI=new Sx,KI.lineStart=JI,KI.lineEnd=XI},polygonEnd:function(){var e=+qI;YI.add(e<0?Mx+e:e),this.lineStart=this.lineEnd=this.point=qx},sphere:function(){YI.add(Mx)}};function JI(){KI.point=ZI}function XI(){QI(II,CI)}function ZI(e,t){KI.point=QI,II=e,CI=t,RI=e*=Ix,kI=Lx(t=(t*=Ix)/2+Dx),LI=zx(t)}function QI(e,t){var n=(e*=Ix)-RI,r=n>=0?1:-1,i=r*n,a=Lx(t=(t*=Ix)/2+Dx),o=zx(t),s=LI*o,l=kI*a+s*Lx(i),u=s*r*zx(i);qI.add(kx(u,l)),RI=e,kI=a,LI=o}var eC,tC,nC,rC,iC,aC,oC,sC,lC,uC,cC,dC,fC,hC,pC,mC,gC={point:yC,lineStart:vC,lineEnd:bC,polygonStart:function(){gC.point=xC,gC.lineStart=EC,gC.lineEnd=SC,VI=new Sx,KI.polygonStart()},polygonEnd:function(){KI.polygonEnd(),gC.point=yC,gC.lineStart=vC,gC.lineEnd=bC,qI<0?(NI=-(BI=180),FI=-(jI=90)):VI>Ax?jI=90:VI<-Ax&&(FI=-90),GI[0]=NI,GI[1]=BI},sphere:function(){NI=-(BI=180),FI=-(jI=90)}};function yC(e,t){WI.push(GI=[NI=e,BI=e]),t<FI&&(FI=t),t>jI&&(jI=t)}function _C(e,t){var n=oS([e*Ix,t*Ix]);if(UI){var r=lS(UI,n),i=lS([r[1],-r[0],0],r);dS(i),i=aS(i);var a,o=e-HI,s=o>0?1:-1,l=i[0]*wx*s,u=Cx(o)>180;u^(s*HI<l&&l<s*e)?(a=i[1]*wx)>jI&&(jI=a):u^(s*HI<(l=(l+360)%360-180)&&l<s*e)?(a=-i[1]*wx)<FI&&(FI=a):(t<FI&&(FI=t),t>jI&&(jI=t)),u?e<HI?AC(NI,e)>AC(NI,BI)&&(BI=e):AC(e,BI)>AC(NI,BI)&&(NI=e):BI>=NI?(e<NI&&(NI=e),e>BI&&(BI=e)):e>HI?AC(NI,e)>AC(NI,BI)&&(BI=e):AC(e,BI)>AC(NI,BI)&&(NI=e)}else WI.push(GI=[NI=e,BI=e]);t<FI&&(FI=t),t>jI&&(jI=t),UI=n,HI=e}function vC(){gC.point=_C}function bC(){GI[0]=NI,GI[1]=BI,gC.point=yC,UI=null}function xC(e,t){if(UI){var n=e-HI;VI.add(Cx(n)>180?n+(n>0?360:-360):n)}else zI=e,PI=t;KI.point(e,t),_C(e,t)}function EC(){KI.lineStart()}function SC(){xC(zI,PI),KI.lineEnd(),Cx(VI)>Ax&&(NI=-(BI=180)),GI[0]=NI,GI[1]=BI,UI=null}function AC(e,t){return(t-=e)<0?t+360:t}function $C(e,t){return e[0]-t[0]}function TC(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}var OC={sphere:qx,point:DC,lineStart:wC,lineEnd:RC,polygonStart:function(){OC.lineStart=kC,OC.lineEnd=LC},polygonEnd:function(){OC.lineStart=wC,OC.lineEnd=RC}};function DC(e,t){e*=Ix;var n=Lx(t*=Ix);MC(n*Lx(e),n*zx(e),zx(t))}function MC(e,t,n){++eC,nC+=(e-nC)/eC,rC+=(t-rC)/eC,iC+=(n-iC)/eC}function wC(){OC.point=IC}function IC(e,t){e*=Ix;var n=Lx(t*=Ix);hC=n*Lx(e),pC=n*zx(e),mC=zx(t),OC.point=CC,MC(hC,pC,mC)}function CC(e,t){e*=Ix;var n=Lx(t*=Ix),r=n*Lx(e),i=n*zx(e),a=zx(t),o=kx(Ux((o=pC*a-mC*i)*o+(o=mC*r-hC*a)*o+(o=hC*i-pC*r)*o),hC*r+pC*i+mC*a);tC+=o,aC+=o*(hC+(hC=r)),oC+=o*(pC+(pC=i)),sC+=o*(mC+(mC=a)),MC(hC,pC,mC)}function RC(){OC.point=DC}function kC(){OC.point=NC}function LC(){FC(dC,fC),OC.point=DC}function NC(e,t){dC=e,fC=t,e*=Ix,t*=Ix,OC.point=FC;var n=Lx(t);hC=n*Lx(e),pC=n*zx(e),mC=zx(t),MC(hC,pC,mC)}function FC(e,t){e*=Ix;var n=Lx(t*=Ix),r=n*Lx(e),i=n*zx(e),a=zx(t),o=pC*a-mC*i,s=mC*r-hC*a,l=hC*i-pC*r,u=Bx(o,s,l),c=Gx(u),d=u&&-c/u;lC.add(d*o),uC.add(d*s),cC.add(d*l),tC+=c,aC+=c*(hC+(hC=r)),oC+=c*(pC+(pC=i)),sC+=c*(mC+(mC=a)),MC(hC,pC,mC)}function BC(e){return e instanceof Tf?e:new Tf(e)}const jC=Symbol("vega_selection_getter");function HC(e){return e.getter&&e.getter[jC]||(e.getter=be(e.field),e.getter[jC]=!0),e.getter}const zC="intersect",PC="union",UC="_vgsid_",VC=be(UC),WC="index:unit";function GC(e,t){for(var n,r,i=t.fields,a=t.values,o=i.length,s=0;s<o;++s)if(gt(n=HC(r=i[s])(e))&&(n=ze(n)),gt(a[s])&&(a[s]=ze(a[s])),Le(a[s])&>(a[s][0])&&(a[s]=a[s].map(ze)),"E"===r.type){if(Le(a[s])?!a[s].includes(n):n!==a[s])return!1}else if("R"===r.type){if(!mt(n,a[s]))return!1}else if("R-RE"===r.type){if(!mt(n,a[s],!0,!1))return!1}else if("R-E"===r.type){if(!mt(n,a[s],!1,!1))return!1}else if("R-LE"===r.type){if(!mt(n,a[s],!1,!0))return!1}else if("E-LT"===r.type){if(n>=a[s])return!1}else if("E-LTE"===r.type){if(n>a[s])return!1}else if("E-GT"===r.type){if(n<=a[s])return!1}else if("E-GTE"===r.type){if(n<a[s])return!1}else if("E-VALID"===r.type){if(null===n||isNaN(n))return!1}else if("E-ONE"===r.type&&-1===a[s].indexOf(n))return!1;return!0}const qC=ir(VC),YC=qC.left,KC=qC.right;var JC={[`${UC}_union`]:function(...e){const t=new Tf;for(const n of e)for(const e of n)t.add(e);return t},[`${UC}_intersect`]:function(e,...t){e=new Tf(e),t=t.map(BC);e:for(const n of e)for(const r of t)if(!r.has(n)){e.delete(n);continue e}return e},E_union:function(e,t){if(!e.length)return t;for(var n=0,r=t.length;n<r;++n)e.includes(t[n])||e.push(t[n]);return e},E_intersect:function(e,t){return e.length?e.filter((e=>t.includes(e))):t},R_union:function(e,t){var n=ze(t[0]),r=ze(t[1]);return n>r&&(n=t[1],r=t[0]),e.length?(e[0]>n&&(e[0]=n),e[1]<r&&(e[1]=r),e):[n,r]},R_intersect:function(e,t){var n=ze(t[0]),r=ze(t[1]);return n>r&&(n=t[1],r=t[0]),e.length?r<e[0]||e[1]<n?[]:(e[0]<n&&(e[0]=n),e[1]>r&&(e[1]=r),e):[n,r]}};function XC(e,t,n,r){t[0].type!==tw&&_e("First argument to selection functions must be a string literal.");const i=t[0].value,a="unit",o="@"+a,s=":"+i;(t.length>=2&&He(t).value)!==zC||dt(r,o)||(r[o]=n.getData(i).indataRef(n,a)),dt(r,s)||(r[s]=n.getData(i).tuplesRef())}function ZC(e){const t=this.context.data[e];return t?t.values.value:[]}const QC=e=>function(t,n){const r=this.context.dataflow.locale();return null===t?"null":r[e](n)(t)},eR=QC("format"),tR=QC("timeFormat"),nR=QC("utcFormat"),rR=QC("timeParse"),iR=QC("utcParse"),aR=new Date(2e3,0,1);function oR(e,t,n){return Number.isInteger(e)&&Number.isInteger(t)?(aR.setYear(2e3),aR.setMonth(e),aR.setDate(t),tR.call(this,aR,n)):""}const sR="%",lR="$";function uR(e,t,n,r){t[0].type!==tw&&_e("First argument to data functions must be a string literal.");const i=t[0].value,a=":"+i;if(!dt(a,r))try{r[a]=n.getData(i).tuplesRef()}catch(e){}}function cR(e,t,n,r){if(t[0].type===tw)dR(n,r,t[0].value);else for(e in n.scales)dR(n,r,e)}function dR(e,t,n){const r=sR+n;if(!dt(t,r))try{t[r]=e.scaleRef(n)}catch(e){}}function fR(e,t){if(vt(e)){const n=t.scales[e];return n&&gp(n.value)?n.value:void 0}if(et(e))return gp(e)?e:void 0}function hR(e,t){return function(n,r,i){if(n){const t=fR(n,(i||this).context);return t&&t.path[e](r)}return t(r)}}const pR=hR("area",(function(e){return YI=new Sx,Ex(e,KI),2*YI})),mR=hR("bounds",(function(e){var t,n,r,i,a,o,s;if(jI=BI=-(NI=FI=1/0),WI=[],Ex(e,gC),n=WI.length){for(WI.sort($C),t=1,a=[r=WI[0]];t<n;++t)TC(r,(i=WI[t])[0])||TC(r,i[1])?(AC(r[0],i[1])>AC(r[0],r[1])&&(r[1]=i[1]),AC(i[0],r[1])>AC(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(o=-1/0,t=0,r=a[n=a.length-1];t<=n;r=i,++t)i=a[t],(s=AC(r[1],i[0]))>o&&(o=s,NI=i[0],BI=r[1])}return WI=GI=null,NI===1/0||FI===1/0?[[NaN,NaN],[NaN,NaN]]:[[NI,FI],[BI,jI]]})),gR=hR("centroid",(function(e){eC=tC=nC=rC=iC=aC=oC=sC=0,lC=new Sx,uC=new Sx,cC=new Sx,Ex(e,OC);var t=+lC,n=+uC,r=+cC,i=Bx(t,n,r);return i<$x&&(t=aC,n=oC,r=sC,tC<Ax&&(t=nC,n=rC,r=iC),(i=Bx(t,n,r))<$x)?[NaN,NaN]:[kx(n,t)*wx,Gx(r/i)*wx]}));function yR(e,t,n){try{e[t].apply(e,["EXPRESSION"].concat([].slice.call(n)))}catch(t){e.warn(t)}return n[n.length-1]}function _R(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function vR(e){const t=Xc(e);return.2126*_R(t.r)+.7152*_R(t.g)+.0722*_R(t.b)}function bR(e,t){return e===t||e!=e&&t!=t||(Le(e)?!(!Le(t)||e.length!==t.length)&&function(e,t){for(let n=0,r=e.length;n<r;++n)if(!bR(e[n],t[n]))return!1;return!0}(e,t):!(!Ne(e)||!Ne(t))&&xR(e,t))}function xR(e,t){for(const n in e)if(!bR(e[n],t[n]))return!1;return!0}function ER(e){return t=>xR(e,t)}const SR={};function AR(e){return Le(e)||ArrayBuffer.isView(e)?e:null}function $R(e){return AR(e)||(vt(e)?e:null)}const TR=e=>e.data;function OR(e,t){const n=ZC.call(t,e);return n.root&&n.root.lookup||{}}const DR=()=>"undefined"!=typeof window&&window||null;function MR(e,t,n){if(!e)return[];const[r,i]=e,a=(new Xm).set(r[0],r[1],i[0],i[1]);return function(e,t,n){const r=[],i=(new Xm).union(t),a=e.marktype;return a?Dv(e,i,n,r):"group"===a?Mv(e,i,n,r):_e("Intersect scene must be mark node or group item.")}(n||this.context.dataflow.scenegraph().root,a,function(e){let t=null;if(e){const n=Qe(e.marktype),r=Qe(e.markname);t=e=>(!n.length||n.some((t=>e.marktype===t)))&&(!r.length||r.some((t=>e.name===t)))}return t}(t))}const wR={random:()=>as(),cumulativeNormal:fs,cumulativeLogNormal:_s,cumulativeUniform:Es,densityNormal:ds,densityLogNormal:ys,densityUniform:xs,quantileNormal:hs,quantileLogNormal:vs,quantileUniform:Ss,sampleNormal:cs,sampleLogNormal:gs,sampleUniform:bs,isArray:Le,isBoolean:function(e){return"boolean"==typeof e},isDate:gt,isDefined:e=>void 0!==e,isNumber:yt,isObject:Ne,isRegExp:_t,isString:vt,isTuple:co,isValid:e=>null!=e&&e==e,toBoolean:At,toDate:e=>Tt(e),toNumber:ze,toString:Ot,indexof:function(e,...t){return $R(e).indexOf(...t)},join:function(e,...t){return AR(e).join(...t)},lastindexof:function(e,...t){return $R(e).lastIndexOf(...t)},replace:function(e,t,n){return et(n)&&_e("Function argument passed to replace."),vt(t)||_t(t)||_e("Please pass a string or RegExp argument to replace."),String(e).replace(t,n)},reverse:function(e){return AR(e).slice().reverse()},sort:function(e){return AR(e).slice().sort(rt)},slice:function(e,...t){return $R(e).slice(...t)},flush:function(e,t,n,r,i,a){if(!n&&0!==n)return a;const o=+n;let s,l=e[0],u=He(e);u<l&&(s=l,l=u,u=s),s=Math.abs(t-l);const c=Math.abs(u-t);return s<c&&s<=o?r:c<=o?i:a},lerp:function(e,t){const n=e[0],r=He(e),i=+t;return i?1===i?r:n+i*(r-n):n},merge:function(){const e=[].slice.call(arguments);return e.unshift({}),ut(...e)},pad:function(e,t,n,r){const i=n||" ",a=e+"",o=t-a.length;return o<=0?a:"left"===r?xt(i,o)+a:"center"===r?xt(i,~~(o/2))+a+xt(i,Math.ceil(o/2)):a+xt(i,o)},peek:He,pluck:function(e,t){const n=SR[t]||(SR[t]=be(t));return Le(e)?e.map(n):n(e)},span:Et,inrange:mt,truncate:function(e,t,n,r){const i=null!=r?r:"…",a=e+"",o=a.length,s=Math.max(0,t-i.length);return o<=t?a:"left"===n?i+a.slice(o-s):"center"===n?a.slice(0,Math.ceil(s/2))+i+a.slice(o-~~(s/2)):a.slice(0,s)+i},rgb:Xc,lab:rh,hcl:uh,hsl:od,luminance:vR,contrast:function(e,t){const n=vR(e),r=vR(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)},sequence:Fs,format:eR,utcFormat:nR,utcParse:iR,utcOffset:function(e,t,n){return Ur(Pr(e),t,n)},utcSequence:function(e,t,n,r){return Vr(Pr(e),t,n,r)},timeFormat:tR,timeParse:rR,timeOffset:function(e,t,n){return Ur(zr(e),t,n)},timeSequence:function(e,t,n,r){return Vr(zr(e),t,n,r)},timeUnitSpecifier:function(e,t){const n=ut({},br,t),r=vr(e),i=r.length;let a,o,s="",l=0;for(l=0;l<i;)for(a=r.length;a>l;--a)if(o=r.slice(l,a).join("-"),null!=n[o]){s+=n[o],l=a;break}return s.trim()},monthFormat:function(e){return oR.call(this,e,1,"%B")},monthAbbrevFormat:function(e){return oR.call(this,e,1,"%b")},dayFormat:function(e){return oR.call(this,0,2+e,"%A")},dayAbbrevFormat:function(e){return oR.call(this,0,2+e,"%a")},quarter:function(e){return 1+~~(new Date(e).getMonth()/3)},utcquarter:function(e){return 1+~~(new Date(e).getUTCMonth()/3)},week:function(e){return Ar(new Date(e))},utcweek:function(e){return Dr(new Date(e))},dayofyear:function(e){return Sr(new Date(e))},utcdayofyear:function(e){return Or(new Date(e))},warn:function(){return yR(this.context.dataflow,"warn",arguments)},info:function(){return yR(this.context.dataflow,"info",arguments)},debug:function(){return yR(this.context.dataflow,"debug",arguments)},extent:e=>ct(e),inScope:function(e){const t=this.context.group;let n=!1;if(t)for(;e;){if(e===t){n=!0;break}e=e.mark.group}return n},intersect:MR,clampRange:function(e,t,n){let r,i=e[0],a=e[1];return a<i&&(r=a,a=i,i=r),r=a-i,r>=n-t?[t,n]:[i=Math.min(Math.max(i,t),n-r),i+r]},pinchDistance:function(e){const t=e.touches,n=t[0].clientX-t[1].clientX,r=t[0].clientY-t[1].clientY;return Math.hypot(n,r)},pinchAngle:function(e){const t=e.touches;return Math.atan2(t[0].clientY-t[1].clientY,t[0].clientX-t[1].clientX)},screen:function(){const e=DR();return e?e.screen:{}},containerSize:function(){const e=this.context.dataflow,t=e.container&&e.container();return t?[t.clientWidth,t.clientHeight]:[void 0,void 0]},windowSize:function(){const e=DR();return e?[e.innerWidth,e.innerHeight]:[void 0,void 0]},bandspace:function(e,t,n){return zh(e||0,t||0,n||0)},setdata:function(e,t){const n=this.context.dataflow,r=this.context.data[e].input;return n.pulse(r,n.changeset().remove($e).insert(t)),1},pathShape:function(e){let t=null;return function(n){return n?Am(n,t=t||hm(e)):e}},panLinear:function(e,t){return qe(e,t,ze,Ee)},panLog:function(e,t){var n=Math.sign(e[0]);return qe(e,t,Ue(n),Pe(n))},panPow:function(e,t,n){return qe(e,t,Ge(n),Ge(1/n))},panSymlog:function(e,t,n){return qe(e,t,Ve(n),We(n))},zoomLinear:Ke,zoomLog:Je,zoomPow:Xe,zoomSymlog:Ze,encode:function(e,t,n){if(e){const n=this.context.dataflow,r=e.mark.source;n.pulse(r,n.changeset().encode(e,t))}return void 0!==n?n:e},modify:function(e,t,n,r,i,a){const o=this.context.dataflow,s=this.context.data[e],l=s.input,u=o.stamp();let c,d,f=s.changes;if(!1===o._trigger||!(l.value.length||t||r))return 0;if((!f||f.stamp<u)&&(s.changes=f=o.changeset(),f.stamp=u,o.runAfter((()=>{s.modified=!0,o.pulse(l,f).run()}),!0,1)),n&&(c=!0===n?$e:Le(n)||co(n)?n:ER(n),f.remove(c)),t&&f.insert(t),r&&(c=ER(r),l.value.some(c)?f.remove(c):f.insert(r)),i){if(et(i))throw Error("modify parameter must be a data tuple, not a function");for(d in a)f.modify(i,d,a[d])}return 1},lassoAppend:function(e,t,n,r=5){const i=(e=Qe(e))[e.length-1];return void 0===i||Math.hypot(i[0]-t,i[1]-n)>r?[...e,[t,n]]:e},lassoPath:function(e){return Qe(e).reduce(((t,[n,r],i)=>t+(0==i?`M ${n},${r} `:i===e.length-1?" Z":`L ${n},${r} `)),"")},intersectLasso:function(e,t,n){const{x:r,y:i,mark:a}=n,o=(new Xm).set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[e,n]of t)e<o.x1&&(o.x1=e),e>o.x2&&(o.x2=e),n<o.y1&&(o.y1=n),n>o.y2&&(o.y2=n);return o.translate(r,i),MR([[o.x1,o.y1],[o.x2,o.y2]],e,a).filter((e=>function(e,t,n){let r=0;for(let i=0,a=n.length-1;i<n.length;a=i++){const[o,s]=n[a],[l,u]=n[i];u>t!=s>t&&e<(o-l)*(t-u)/(s-u)+l&&r++}return 1&r}(e.x,e.y,t)))}},IR=["view","item","group","xy","x","y"],CR="this.",RR={},kR={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:e=>`_[${St(lR+e)}]`,functions:function(e){const t=wI(e);IR.forEach((e=>t[e]="event.vega."+e));for(const e in wR)t[e]=CR+e;return ut(t,function(e,t,n){t.__bandwidth=e=>e&&e.bandwidth?e.bandwidth():0,n._bandwidth=cR,n._range=cR,n._scale=cR;const r=t=>"_["+(t.type===tw?St(sR+t.value):St(sR)+"+"+e(t))+"]";return{_bandwidth:e=>`this.__bandwidth(${r(e[0])})`,_range:e=>`${r(e[0])}.range()`,_scale:t=>`${r(t[0])}(${e(t[1])})`}}(e,wR,RR)),t},constants:MI,visitors:RR},LR=function(e){const t=(e=e||{}).allowed?Dt(e.allowed):{},n=e.forbidden?Dt(e.forbidden):{},r=e.constants||MI,i=(e.functions||wI)(d),a=e.globalvar,o=e.fieldvar,s=et(a)?a:e=>`${a}["${e}"]`;new Set([...Object.getOwnPropertyNames(Object.prototype).filter((e=>"function"==typeof Object.prototype[e])),"__proto__"]);let l={},u={},c=0;function d(e){if(vt(e))return e;const t=f[e.type];return null==t&&_e("Unsupported type: "+e.type),t(e)}const f={Literal:e=>e.raw,Identifier:e=>{const i=e.name;return c>0?i:dt(n,i)?_e("Illegal identifier: "+i):dt(r,i)?r[i]:dt(t,i)?i:(l[i]=1,s(i))},MemberExpression:e=>{const t=!e.computed,n=d(e.object);t&&(c+=1);const r=d(e.property);return n===o&&(u[function(e){const t=e&&e.length-1;return t&&('"'===e[0]&&'"'===e[t]||"'"===e[0]&&"'"===e[t])?e.slice(1,-1):e}(r)]=1),t&&(c-=1),n+(t?"."+r:"["+r+"]")},CallExpression:e=>{"Identifier"!==e.callee.type&&_e("Illegal callee type: "+e.callee.type);const t=e.callee.name,n=e.arguments,r=dt(i,t)&&i[t];return r||_e("Unrecognized function: "+t),et(r)?r(n):r+"("+n.map(d).join(",")+")"},ArrayExpression:e=>"["+e.elements.map(d).join(",")+"]",BinaryExpression:e=>"("+d(e.left)+" "+e.operator+" "+d(e.right)+")",UnaryExpression:e=>"("+e.operator+d(e.argument)+")",ConditionalExpression:e=>"("+d(e.test)+"?"+d(e.consequent)+":"+d(e.alternate)+")",LogicalExpression:e=>"("+d(e.left)+e.operator+d(e.right)+")",ObjectExpression:e=>{for(const t of e.properties){const e=t.key.name;Oe.has(e)&&_e("Illegal property: "+e)}return"{"+e.properties.map(d).join(",")+"}"},Property:e=>{c+=1;const t=d(e.key);return c-=1,t+":"+d(e.value)}};function h(e){const t={code:d(e),globals:Object.keys(l),fields:Object.keys(u)};return l={},u={},t}return h.functions=i,h.constants=r,h}(kR);function NR(e,t,n){return 1===arguments.length?wR[e]:(wR[e]=t,n&&(RR[e]=n),LR&&(LR.functions[e]=CR+e),this)}function FR(e,t){const n={};let r;try{r=function(e){ow=0,sw=(aw=e).length,lw=null,aI();const t=DI();if(lw.type!==cw)throw new Error("Unexpect token after expression.");return t}(e=vt(e)?e:St(e)+"")}catch(t){_e("Expression parse error: "+e)}r.visit((e=>{if(e.type!==nw)return;const r=e.callee.name,i=kR.visitors[r];i&&i(r,e.arguments,t,n)}));const i=LR(r);return i.globals.forEach((e=>{const r=lR+e;!dt(n,r)&&t.getSignal(e)&&(n[r]=t.signalRef(e))})),{$expr:ut({code:i.code},t.options.ast?{ast:r}:null),$fields:i.fields,$params:n}}NR("bandwidth",(function(e,t){const n=fR(e,(t||this).context);return n&&n.bandwidth?n.bandwidth():0}),cR),NR("copy",(function(e,t){const n=fR(e,(t||this).context);return n?n.copy():void 0}),cR),NR("domain",(function(e,t){const n=fR(e,(t||this).context);return n?n.domain():[]}),cR),NR("range",(function(e,t){const n=fR(e,(t||this).context);return n&&n.range?n.range():[]}),cR),NR("invert",(function(e,t,n){const r=fR(e,(n||this).context);return r?Le(t)?(r.invertRange||r.invert)(t):(r.invert||r.invertExtent)(t):void 0}),cR),NR("scale",(function(e,t,n){const r=fR(e,(n||this).context);return r?r(t):void 0}),cR),NR("gradient",(function(e,t,n,r,i){e=fR(e,(i||this).context);const a=function(e,t){var n,r=[];return n={gradient:"linear",x1:e?e[0]:0,y1:e?e[1]:0,x2:t?t[0]:1,y2:t?t[1]:0,stops:r,stop:function(e,t){return r.push({offset:e,color:t}),n}}}(t,n);let o=e.domain(),s=o[0],l=He(o),u=Ee;return l-s?u=Dp(e,s,l):e=(e.interpolator?yp("sequential")().interpolator(e.interpolator()):yp("linear")().interpolate(e.interpolate()).range(e.range())).domain([s=0,l=1]),e.ticks&&(o=e.ticks(+r||15),s!==o[0]&&o.unshift(s),l!==He(o)&&o.push(l)),o.forEach((t=>a.stop(u(t),e(t)))),a}),cR),NR("geoArea",pR,cR),NR("geoBounds",mR,cR),NR("geoCentroid",gR,cR),NR("geoShape",(function(e,t,n){const r=fR(e,(n||this).context);return function(e){return r?r.path.context(e)(t):""}}),cR),NR("geoScale",(function(e,t){const n=fR(e,(t||this).context);return n&&n.scale()}),cR),NR("indata",(function(e,t,n){const r=this.context.data[e]["index:"+t],i=r?r.value.get(n):void 0;return i?i.count:i}),(function(e,t,n,r){t[0].type!==tw&&_e("First argument to indata must be a string literal."),t[1].type!==tw&&_e("Second argument to indata must be a string literal.");const i=t[0].value,a=t[1].value,o="@"+a;dt(o,r)||(r[o]=n.getData(i).indataRef(n,a))})),NR("data",ZC,uR),NR("treePath",(function(e,t,n){const r=OR(e,this),i=r[t],a=r[n];return i&&a?i.path(a).map(TR):void 0}),uR),NR("treeAncestors",(function(e,t){const n=OR(e,this)[t];return n?n.ancestors().map(TR):void 0}),uR),NR("vlSelectionTest",(function(e,t,n){for(var r,i,a,o,s,l=this.context.data[e],u=l?l.values.value:[],c=l?l[WC]&&l[WC].value:void 0,d=n===zC,f=u.length,h=0;h<f;++h)if(r=u[h],c&&d){if(-1===(a=(i=i||{})[o=r.unit]||0))continue;if(s=GC(t,r),i[o]=s?-1:++a,s&&1===c.size)return!0;if(!s&&a===c.get(o).count)return!1}else if(d^(s=GC(t,r)))return s;return f&&d}),XC),NR("vlSelectionIdTest",(function(e,t,n){const r=this.context.data[e],i=r?r.values.value:[],a=r?r[WC]&&r[WC].value:void 0,o=n===zC,s=VC(t),l=YC(i,s);if(l===i.length)return!1;if(VC(i[l])!==s)return!1;if(a&&o){if(1===a.size)return!0;if(KC(i,s)-l<a.size)return!1}return!0}),XC),NR("vlSelectionResolve",(function(e,t,n,r){for(var i,a,o,s,l,u,c,d,f,h,p,m,g=this.context.data[e],y=g?g.values.value:[],_={},v={},b={},x=y.length,E=0;E<x;++E)if(s=(i=y[E]).unit,a=i.fields,o=i.values,a&&o){for(p=0,m=a.length;p<m;++p)l=a[p],d=(c=_[l.field]||(_[l.field]={}))[s]||(c[s]=[]),b[l.field]=f=l.type.charAt(0),h=JC[`${f}_union`],c[s]=h(d,Qe(o[p]));n&&(d=v[s]||(v[s]=[])).push(Qe(o).reduce(((e,t,n)=>(e[a[n].field]=t,e)),{}))}else l=UC,u=VC(i),(d=(c=_[l]||(_[l]={}))[s]||(c[s]=[])).push(u),n&&(d=v[s]||(v[s]=[])).push({[UC]:u});return t=t||PC,_[UC]?_[UC]=JC[`${UC}_${t}`](...Object.values(_[UC])):Object.keys(_).forEach((e=>{_[e]=Object.keys(_[e]).map((t=>_[e][t])).reduce(((n,r)=>void 0===n?r:JC[`${b[e]}_${t}`](n,r)))})),y=Object.keys(v),n&&y.length&&(_[r?"vlPoint":"vlMulti"]=t===PC?{or:y.reduce(((e,t)=>(e.push(...v[t]),e)),[])}:{and:y.map((e=>({or:v[e]})))}),_}),XC),NR("vlSelectionTuples",(function(e,t){return Le(e)||_e("First argument to selectionTuples must be an array."),Ne(t)||_e("Second argument to selectionTuples must be an object."),e.map((e=>ut(t.fields?{values:t.fields.map((t=>HC(t)(e.datum)))}:{[UC]:VC(e.datum)},t)))}));const BR=Dt(["rule"]),jR=Dt(["group","image","rect"]);function HR(e){return(e+"").toLowerCase()}function zR(e,t,n){n.endsWith(";")||(n="return("+n+");");const r=Function(...t.concat(n));return e&&e.functions?r.bind(e.functions):r}var PR={operator:(e,t)=>zR(e,["_"],t.code),parameter:(e,t)=>zR(e,["datum","_"],t.code),event:(e,t)=>zR(e,["event"],t.code),handler:(e,t)=>zR(e,["_","event"],`var datum=event.item&&event.item.datum;return ${t.code};`),encode:(e,t)=>{const{marktype:n,channels:r}=t;let i="var o=item,datum=o.datum,m=0,$;";for(const e in r){const t="o["+St(e)+"]";i+=`$=${r[e].code};if(${t}!==$)${t}=$,m=1;`}return i+=function(e,t){let n="";return BR[t]||(e.x2&&(e.x?(jR[t]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),e.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),e.y2&&(e.y?(jR[t]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),e.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}(r,n),i+="return m;",zR(e,["item","_"],i)},codegen:{get(e){const t=`[${e.map(St).join("][")}]`,n=Function("_",`return _${t};`);return n.path=t,n},comparator(e,t){let n;const r=Function("a","b","var u, v; return "+e.map(((e,r)=>{const i=t[r];let a,o;return e.path?(a=`a${e.path}`,o=`b${e.path}`):((n=n||{})["f"+r]=e,a=`this.f${r}(a)`,o=`this.f${r}(b)`),function(e,t,n,r){return`((u = ${e}) < (v = ${t}) || u == null) && v != null ? ${n}\n : (u > v || v == null) && u != null ? ${r}\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}\n : v !== v && u === u ? ${r} : `}(a,o,-i,i)})).join("")+"0;");return n?r.bind(n):r}}};function UR(e,t,n){if(!e||!Ne(e))return e;for(let r,i=0,a=VR.length;i<a;++i)if(r=VR[i],dt(e,r.key))return r.parse(e,t,n);return e}var VR=[{key:"$ref",parse:function(e,t){return t.get(e.$ref)||_e("Operator not defined: "+e.$ref)}},{key:"$key",parse:function(e,t){const n="k:"+e.$key+"_"+!!e.$flat;return t.fn[n]||(t.fn[n]=bt(e.$key,e.$flat,t.expr.codegen))}},{key:"$expr",parse:function(e,t,n){e.$params&&t.parseParameters(e.$params,n);const r="e:"+e.$expr.code;return t.fn[r]||(t.fn[r]=fe(t.parameterExpression(e.$expr),e.$fields))}},{key:"$field",parse:function(e,t){if(!e.$field)return null;const n="f:"+e.$field+"_"+e.$name;return t.fn[n]||(t.fn[n]=be(e.$field,e.$name,t.expr.codegen))}},{key:"$encode",parse:function(e,t){const n=e.$encode,r={};for(const e in n){const i=n[e];r[e]=fe(t.encodeExpression(i.$expr),i.$fields),r[e].output=i.$output}return r}},{key:"$compare",parse:function(e,t){const n="c:"+e.$compare+"_"+e.$order,r=Qe(e.$compare).map((e=>e&&e.$tupleid?fo:e));return t.fn[n]||(t.fn[n]=nt(r,e.$order,t.expr.codegen))}},{key:"$context",parse:function(e,t){return t}},{key:"$subflow",parse:function(e,t){const n=e.$subflow;return function(e,r,i){const a=t.fork().parse(n),o=a.get(n.operators[0].id),s=a.signals.parent;return s&&s.set(i),o.detachSubflow=()=>t.detach(a),o}}},{key:"$tupleid",parse:function(){return fo}}];const WR={skip:!0};function GR(e,t,n,r){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=r||PR,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function qR(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}function YR(e,t){e&&(null==t?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}GR.prototype=qR.prototype={fork(){const e=new qR(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter((t=>t!==e));const t=Object.keys(e.nodes);for(const n of t)e.nodes[n]._targets=null;for(const n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){const n=this,r=n.dataflow,i=e.value;if(n.set(e.id,t),"collect"===HR(e.type)&&i&&(i.$ingest?r.ingest(t,i.$ingest,i.$format):i.$request?r.preload(t,i.$request,i.$format):r.pulse(t,r.changeset().insert(i))),e.root&&(n.root=t),e.parent){let i=n.get(e.parent.$ref);i?(r.connect(i,[t]),t.targets().add(i)):(n.unresolved=n.unresolved||[]).push((()=>{i=n.get(e.parent.$ref),r.connect(i,[t]),t.targets().add(i)}))}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(const r in e.data){const i=n.data[r]||(n.data[r]={});e.data[r].forEach((e=>i[e]=t))}},resolve(){return(this.unresolved||[]).forEach((e=>e())),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[HR(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,r,i){this.dataflow.on(t,n,r,i,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:function(e){const t=this,n=e.operators||[];return e.background&&(t.background=e.background),e.eventConfig&&(t.eventConfig=e.eventConfig),e.locale&&(t.locale=e.locale),n.forEach((e=>t.parseOperator(e))),n.forEach((e=>t.parseOperatorParameters(e))),(e.streams||[]).forEach((e=>t.parseStream(e))),(e.updates||[]).forEach((e=>t.parseUpdate(e))),t.resolve()},parseOperator:function(e){const t=this;"operator"!==HR(e.type)&&e.type?t.transform(e,e.type):t.operator(e,e.update?t.operatorExpression(e.update):null)},parseOperatorParameters:function(e){const t=this;if(e.params){const n=t.get(e.id);n||_e("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}},parseParameters:function(e,t){t=t||{};const n=this;for(const r in e){const i=e[r];t[r]=Le(i)?i.map((e=>UR(e,n,t))):UR(i,n,t)}return t},parseStream:function(e){var t,n=this,r=null!=e.filter?n.eventExpression(e.filter):void 0,i=null!=e.stream?n.get(e.stream):void 0;e.source?i=n.events(e.source,e.type,r):e.merge&&(t=e.merge.map((e=>n.get(e))),i=t[0].merge.apply(t[0],t.slice(1))),e.between&&(t=e.between.map((e=>n.get(e))),i=i.between(t[0],t[1])),e.filter&&(i=i.filter(r)),null!=e.throttle&&(i=i.throttle(+e.throttle)),null!=e.debounce&&(i=i.debounce(+e.debounce)),null==i&&_e("Invalid stream definition: "+JSON.stringify(e)),e.consume&&i.consume(!0),n.stream(e,i)},parseUpdate:function(e){var t,n=this,r=Ne(r=e.source)?r.$ref:r,i=n.get(r),a=e.update,o=void 0;i||_e("Source not defined: "+e.source),t=e.target&&e.target.$expr?n.eventExpression(e.target.$expr):n.get(e.target),a&&a.$expr&&(a.$params&&(o=n.parseParameters(a.$params)),a=n.handlerExpression(a.$expr)),n.update(e,i,t,a,o)},getState:function(e){var t=this,n={};if(e.signals){var r=n.signals={};Object.keys(t.signals).forEach((n=>{const i=t.signals[n];e.signals(n,i)&&(r[n]=i.value)}))}if(e.data){var i=n.data={};Object.keys(t.data).forEach((n=>{const r=t.data[n];e.data(n,r)&&(i[n]=r.input.value)}))}return t.subcontext&&!1!==e.recurse&&(n.subcontext=t.subcontext.map((t=>t.getState(e)))),n},setState:function(e){var t=this,n=t.dataflow,r=e.data,i=e.signals;Object.keys(i||{}).forEach((e=>{n.update(t.signals[e],i[e],WR)})),Object.keys(r||{}).forEach((e=>{n.pulse(t.data[e].input,n.changeset().remove($e).insert(r[e]))})),(e.subcontext||[]).forEach(((e,n)=>{const r=t.subcontext[n];r&&r.setState(e)}))}};const KR="default";function JR(e,t){const n=e.globalCursor()?"undefined"!=typeof document&&document.body:e.container();if(n)return null==t?n.style.removeProperty("cursor"):n.style.cursor=t}function XR(e,t){var n=e._runtime.data;return dt(n,t)||_e("Unrecognized data set: "+t),n[t]}function ZR(e,t){vo(t)||_e("Second argument to changes must be a changeset.");const n=XR(this,e);return n.modified=!0,this.pulse(n.input,t)}function QR(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function ek(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function tk(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}const nk="view",rk={trap:!1};function ik(e,t,n,r){e._eventListeners.push({type:n,sources:Qe(t),handler:r})}function ak(e,t,n){const r=e._eventConfig&&e._eventConfig[t];return!(!1===r||Ne(r)&&!r[n])||(e.warn(`Blocked ${t} ${n} event listener.`),!1)}function ok(e){return e.item}function sk(e){return e.item.mark.source}function lk(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function uk(e,t,n){const r=document.createElement(e);for(const e in t)r.setAttribute(e,t[e]);return null!=n&&(r.textContent=n),r}const ck="vega-bind-radio";function dk(e,t,n,r){const i=n.event||"input",a=()=>e.update(t.value);r.signal(n.signal,t.value),t.addEventListener(i,a),ik(r,t,i,a),e.set=e=>{t.value=e,t.dispatchEvent(function(e){return"undefined"!=typeof Event?new Event(e):{type:e}}(i))}}function fk(e,t,n,r){const i=r.signal(n.signal),a=uk("div",{class:"vega-bind"}),o="radio"===n.input?a:a.appendChild(uk("label"));o.appendChild(uk("span",{class:"vega-bind-name"},n.name||n.signal)),t.appendChild(a);let s=hk;switch(n.input){case"checkbox":s=pk;break;case"select":s=mk;break;case"radio":s=gk;break;case"range":s=yk}s(e,o,n,i)}function hk(e,t,n,r){const i=uk("input");for(const e in n)"signal"!==e&&"element"!==e&&i.setAttribute("input"===e?"type":e,n[e]);i.setAttribute("name",n.signal),i.value=r,t.appendChild(i),i.addEventListener("input",(()=>e.update(i.value))),e.elements=[i],e.set=e=>i.value=e}function pk(e,t,n,r){const i={type:"checkbox",name:n.signal};r&&(i.checked=!0);const a=uk("input",i);t.appendChild(a),a.addEventListener("change",(()=>e.update(a.checked))),e.elements=[a],e.set=e=>a.checked=!!e||null}function mk(e,t,n,r){const i=uk("select",{name:n.signal}),a=n.labels||[];n.options.forEach(((e,t)=>{const n={value:e};_k(e,r)&&(n.selected=!0),i.appendChild(uk("option",n,(a[t]||e)+""))})),t.appendChild(i),i.addEventListener("change",(()=>{e.update(n.options[i.selectedIndex])})),e.elements=[i],e.set=e=>{for(let t=0,r=n.options.length;t<r;++t)if(_k(n.options[t],e))return void(i.selectedIndex=t)}}function gk(e,t,n,r){const i=uk("span",{class:ck}),a=n.labels||[];t.appendChild(i),e.elements=n.options.map(((t,o)=>{const s={type:"radio",name:n.signal,value:t};_k(t,r)&&(s.checked=!0);const l=uk("input",s);l.addEventListener("change",(()=>e.update(t)));const u=uk("label",{},(a[o]||t)+"");return u.prepend(l),i.appendChild(u),l})),e.set=t=>{const n=e.elements,r=n.length;for(let e=0;e<r;++e)_k(n[e].value,t)&&(n[e].checked=!0)}}function yk(e,t,n,r){r=void 0!==r?r:(+n.max+ +n.min)/2;const i=null!=n.max?n.max:Math.max(100,+r)||100,a=n.min||Math.min(0,i,+r)||0,o=n.step||Zt(a,i,100),s=uk("input",{type:"range",name:n.signal,min:a,max:i,step:o});s.value=r;const l=uk("span",{},+r);t.appendChild(s),t.appendChild(l);const u=()=>{l.textContent=s.value,e.update(+s.value)};s.addEventListener("input",u),s.addEventListener("change",u),e.elements=[s],e.set=e=>{s.value=e,l.textContent=e}}function _k(e,t){return e===t||e+""==t+""}function vk(e,t,n,r,i,a){return(t=t||new r(e.loader())).initialize(n,QR(e),ek(e),tk(e),i,a).background(e.background())}function bk(e,t){return t?function(){try{t.apply(this,arguments)}catch(t){e.error(t)}}:null}function xk(e,t,n){if("string"==typeof t){if("undefined"==typeof document)return e.error("DOM document instance not found."),null;if(!(t=document.querySelector(t)))return e.error("Signal bind element not found: "+t),null}if(t&&n)try{t.textContent=""}catch(n){t=null,e.error(n)}return t}const Ek=e=>+e||0;function Sk(e){return Ne(e)?{top:Ek(e.top),bottom:Ek(e.bottom),left:Ek(e.left),right:Ek(e.right)}:(e=>({top:e,bottom:e,left:e,right:e}))(Ek(e))}async function Ak(e,t,n,r){const i=Ov(t),a=i&&i.headless;return a||_e("Unrecognized renderer type: "+t),await e.runAsync(),vk(e,null,null,a,n,r).renderAsync(e._scenegraph.root)}var $k="width",Tk="height",Ok="padding",Dk={skip:!0};function Mk(e,t){var n=e.autosize(),r=e.padding();return t-(n&&n.contains===Ok?r.left+r.right:0)}function wk(e,t){var n=e.autosize(),r=e.padding();return t-(n&&n.contains===Ok?r.top+r.bottom:0)}function Ik(e,t){return t.modified&&Le(t.input.value)&&!e.startsWith("_:vega:_")}function Ck(e,t){return!("parent"===e||t instanceof Wo.proxy)}function Rk(e,t,n,r){const i=e.element();i&&i.setAttribute("title",function(e){return null==e?"":Le(e)?kk(e):Ne(e)&&!gt(e)?(t=e,Object.keys(t).map((e=>{const n=t[e];return e+": "+(Le(n)?kk(n):Lk(n))})).join("\n")):e+"";var t}(r))}function kk(e){return"["+e.map(Lk).join(", ")+"]"}function Lk(e){return Le(e)?"[…]":Ne(e)&&!gt(e)?"{…}":e}function Nk(e,t){return dt(e._signals,t)?e._signals[t]:_e("Unrecognized signal name: "+St(t))}function Fk(e,t){const n=(e._targets||[]).filter((e=>e._update&&e._update.handler===t));return n.length?n[0]:null}function Bk(e,t,n,r){let i=Fk(n,r);return i||(i=bk(e,(()=>r(t,n.value))),i.handler=r,e.on(n,null,i)),e}function jk(e,t,n){const r=Fk(t,n);return r&&t._targets.remove(r),e}pt((function(e,t){const n=this;if(t=t||{},Po.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),null!=t.logLevel&&n.logLevel(t.logLevel),t.locale||e.locale){const r=ut({},e.locale,t.locale);n.locale(function(e,t){const n=e?wa(e):Ia(),r=t?ka(t):La();return Na(n,r)}(r.number,r.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||Av,n._scenegraph=new Qy;const r=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||Rk,n._redraw=!0,n._handler=(new w_).scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=function(e){const t=ut({defaults:{}},e),n=(e,t)=>{t.forEach((t=>{Le(e[t])&&(e[t]=Dt(e[t]))}))};return n(t.defaults,["prevent","allow"]),n(t,["view","window","selector"]),t}(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=function(e,t,n){return function(e,t,n,r){return new GR(e,t,n,r)}(e,Wo,wR,n).parse(t)}(n,e,t.expr);n._runtime=i,n._signals=i.signals,n._bind=(e.bindings||[]).map((e=>({state:null,param:ut({},e)}))),i.root&&i.root.set(r),r.source=i.data.root.input,n.pulse(i.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=Mk(n,n._width),n._viewHeight=wk(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,function(e){var t=e._signals,n=t[$k],r=t[Tk],i=t[Ok];function a(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,(t=>{e._width=t.size,e._viewWidth=Mk(e,t.size),a()}),{size:n}),e._resizeHeight=e.add(null,(t=>{e._height=t.size,e._viewHeight=wk(e,t.size),a()}),{size:r});const o=e.add(null,a,{pad:i});e._resizeWidth.rank=n.rank+1,e._resizeHeight.rank=r.rank+1,o.rank=i.rank+1}(n),function(e){e.add(null,(t=>(e._background=t.bg,e._resize=1,t.bg)),{bg:e._signals.background})}(n),function(e){const t=e._signals.cursor||(e._signals.cursor=e.add({user:KR,item:null}));e.on(e.events("view","pointermove"),t,((e,n)=>{const r=t.value,i=r?vt(r)?r:r.user:KR,a=n.item&&n.item.cursor||null;return r&&i===r.user&&a==r.item?r:{user:i,item:a}})),e.add(null,(function(t){let n=t.cursor,r=this.value;return vt(n)||(r=n.item,n=n.user),JR(e,n&&n!==KR?n:r||n),r}),{cursor:t})}(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind),t.watchPixelRatio&&n._watchPixelRatio()}),Po,{async evaluate(e,t,n){if(await Po.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,i=tk(r=this),a=QR(r),o=ek(r),r._renderer.background(r.background()),r._renderer.resize(a,o,i),r._handler.origin(i),r._resizeListeners.forEach((e=>{try{e(a,o)}catch(e){r.error(e)}}))),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(e){this.error(e)}var r,i,a,o;return n&&so(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){const t=null!=e?e+"":null;return t!==this._desc&&YR(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){const r=Nk(this,e);return 1===arguments.length?r.value:this.update(r,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",Sk(e)):Sk(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(Ov(e)||_e("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(Po.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(Nk(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(e,t,n,r,i,a){this.runAfter((o=>{let s=0;o._autosize=0,o.width()!==n&&(s=1,o.signal($k,n,Dk),o._resizeWidth.skip(!0)),o.height()!==r&&(s=1,o.signal(Tk,r,Dk),o._resizeHeight.skip(!0)),o._viewWidth!==e&&(o._resize=1,o._viewWidth=e),o._viewHeight!==t&&(o._resize=1,o._viewHeight=t),o._origin[0]===i[0]&&o._origin[1]===i[1]||(o._resize=1,o._origin=i),s&&o.run("enter"),a&&o.runAfter((e=>e.resize()))}),!1,1)},addEventListener(e,t,n){let r=t;return n&&!1===n.trap||(r=bk(this,t),r.raw=t),this._handler.on(e,r),this},removeEventListener(e,t){for(var n,r,i=this._handler.handlers(e),a=i.length;--a>=0;)if(r=i[a].type,n=i[a].handler,e===r&&(t===n||t===n.raw)){this._handler.off(r,n);break}return this},addResizeListener(e){const t=this._resizeListeners;return t.includes(e)||t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return Bk(this,e,Nk(this,e),t)},removeSignalListener(e,t){return jk(this,Nk(this,e),t)},addDataListener(e,t){return Bk(this,e,XR(this,e).values,t)},removeDataListener(e,t){return jk(this,XR(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=JR(this,null);this._globalCursor=!!e,t&&JR(this,t)}return this}return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:function(e,t){this._timers.push(function(e,t,n){var r=new qT,i=t;return null==t?(r.restart(e,t,n),r):(r._restart=r.restart,r.restart=function(e,t,n){t=+t,n=null==n?WT():+n,r._restart((function a(o){o+=i,r._restart(a,i+=t,n),e(o)}),t,n)},r.restart(e,t,n),r)}((function(t){e({timestamp:Date.now(),elapsed:t})}),t))},events:function(e,t,n){var r,i=this,a=new Do(n),o=function(n,r){i.runAsync(null,(()=>{e===nk&&function(e,t){var n=e._eventConfig.defaults,r=n.prevent,i=n.allow;return!1!==r&&!0!==i&&(!0===r||!1===i||(r?r[t]:i?!i[t]:e.preventDefault()))}(i,t)&&n.preventDefault(),a.receive(function(e,t,n){var r,i,a=e._renderer,o=a&&a.canvas();return o&&(i=tk(e),(r=o_(t.changedTouches?t.changedTouches[0]:t,o))[0]-=i[0],r[1]-=i[1]),t.dataflow=e,t.item=n,t.vega=function(e,t,n){const r=t?"group"===t.mark.marktype?t:t.mark.group:null;function i(e){var n,i=r;if(e)for(n=t;n;n=n.mark.group)if(n.mark.name===e){i=n;break}return i&&i.mark&&i.mark.interactive?i:{}}function a(e){if(!e)return n;vt(e)&&(e=i(e));const t=n.slice();for(;e;)t[0]-=e.x||0,t[1]-=e.y||0,e=e.mark&&e.mark.group;return t}return{view:st(e),item:st(t||{}),group:i,xy:a,x:e=>a(e)[0],y:e=>a(e)[1]}}(e,n,r),t}(i,n,r))}))};if("timer"===e)ak(i,"timer",t)&&i.timer(o,t);else if(e===nk)ak(i,"view",t)&&i.addEventListener(t,o,rk);else if("window"===e?ak(i,"window",t)&&"undefined"!=typeof window&&(r=[window]):"undefined"!=typeof document&&ak(i,"selector",t)&&(r=Array.from(document.querySelectorAll(e))),r){for(var s=0,l=r.length;s<l;++s)r[s].addEventListener(t,o);ik(i,r,t,o)}else i.warn("Can not resolve event source: "+e);return a},finalize:function(){var e,t,n,r,i,a=this._tooltip,o=this._timers,s=this._handler.handlers(),l=this._eventListeners;for(e=o.length;--e>=0;)o[e].stop();for(e=l.length;--e>=0;)for(t=(n=l[e]).sources.length;--t>=0;)n.sources[t].removeEventListener(n.type,n.handler);for(a&&a.call(this,this._handler,null,null,null),e=s.length;--e>=0;)i=s[e].type,r=s[e].handler,this._handler.off(i,r);return this},hover:function(e,t){return t=[t||"update",(e=[e||"hover"])[0]],this.on(this.events("view","pointerover",ok),sk,lk(e)),this.on(this.events("view","pointerout",ok),sk,lk(t)),this},data:function(e,t){return arguments.length<2?XR(this,e).values.value:ZR.call(this,e,bo().remove($e).insert(t))},change:ZR,insert:function(e,t){return ZR.call(this,e,bo().insert(t))},remove:function(e,t){return ZR.call(this,e,bo().remove(t))},scale:function(e){var t=this._runtime.scales;return dt(t,e)||_e("Unrecognized scale or projection: "+e),t[e].value},initialize:function(e,t){const n=this,r=n._renderType,i=n._eventConfig.bind,a=Ov(r);e=n._el=e?xk(n,e,!0):null,function(e){const t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),YR(t,e.description()))}(n),a||n.error("Unrecognized renderer type: "+r);const o=a.handler||w_,s=e?a.renderer:a.headless;return n._renderer=s?vk(n,n._renderer,e,s):null,n._handler=function(e,t,n,r){const i=new r(e.loader(),bk(e,e.tooltip())).scene(e.scenegraph().root).initialize(n,tk(e),e);return t&&t.handlers().forEach((e=>{i.on(e.type,e.handler)})),i}(n,n._handler,e,o),n._redraw=!0,e&&"none"!==i&&(t=t?n._elBind=xk(n,t,!0):e.appendChild(uk("form",{class:"vega-bindings"})),n._bind.forEach((e=>{e.param.element&&"container"!==i&&(e.element=xk(n,e.param.element,!!e.param.input))})),n._bind.forEach((e=>{!function(e,t,n){if(!t)return;const r=n.param;let i=n.state;i||(i=n.state={elements:null,active:!1,set:null,update:t=>{t!=e.signal(r.signal)&&e.runAsync(null,(()=>{i.source=!0,e.signal(r.signal,t)}))}},r.debounce&&(i.update=lt(r.debounce,i.update))),(null==r.input&&r.element?dk:fk)(i,t,r,e),i.active||(e.on(e._signals[r.signal],null,(()=>{i.source?i.source=!1:i.set(e.signal(r.signal))})),i.active=!0)}(n,e.element||t,e)}))),n},toImageURL:async function(e,t){e!==Av&&e!==$v&&"png"!==e&&_e("Unrecognized image type: "+e);const n=await Ak(this,e,t);return e===$v?function(e,t){const n=new Blob([e],{type:"image/svg+xml"});return window.URL.createObjectURL(n)}(n.svg()):n.canvas().toDataURL("image/png")},toCanvas:async function(e,t){return(await Ak(this,Av,e,t)).canvas()},toSVG:async function(e){return(await Ak(this,$v,e)).svg()},getState:function(e){return this._runtime.getState(e||{data:Ik,signals:Ck,recurse:!0})},setState:function(e){return this.runAsync(null,(t=>{t._trigger=!1,t._runtime.setState(e)}),(e=>{e._trigger=!0})),this},_watchPixelRatio:function(){if("canvas"===this.renderer()&&this._renderer._canvas){let e=null;const t=()=>{null!=e&&e();const n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener("change",t),e=()=>{n.removeEventListener("change",t)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};t()}}});const Hk="view",zk="[",Pk="]",Uk="{",Vk="}",Wk=":",Gk=",",qk="@",Yk=">",Kk=/[[\]{}]/,Jk={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let Xk,Zk;function Qk(e,t,n,r,i){const a=e.length;let o,s=0;for(;t<a;++t){if(o=e[t],!s&&o===n)return t;i&&i.includes(o)?--s:r&&r.includes(o)&&++s}return t}function eL(e){const t=[],n=e.length;let r=0,i=0;for(;i<n;)i=Qk(e,i,Gk,zk+Uk,Pk+Vk),t.push(e.substring(r,i).trim()),r=++i;if(0===t.length)throw"Empty event selector: "+e;return t}function tL(e){return"["===e[0]?function(e){const t=e.length;let n,r=1;if(r=Qk(e,r,Pk,zk,Pk),r===t)throw"Empty between selector: "+e;if(n=eL(e.substring(1,r)),2!==n.length)throw"Between selector must have two elements: "+e;if((e=e.slice(r+1).trim())[0]!==Yk)throw"Expected '>' after between selector: "+e;n=n.map(tL);const i=tL(e.slice(1).trim());return i.between?{between:n,stream:i}:(i.between=n,i)}(e):function(e){const t={source:Xk},n=[];let r,i,a=[0,0],o=0,s=0,l=e.length,u=0;if(e[l-1]===Vk){if(u=e.lastIndexOf(Uk),!(u>=0))throw"Unmatched right brace: "+e;try{a=function(e){const t=e.split(Gk);if(!e.length||t.length>2)throw e;return t.map((t=>{const n=+t;if(n!=n)throw e;return n}))}(e.substring(u+1,l-1))}catch(t){throw"Invalid throttle specification: "+e}l=(e=e.slice(0,u).trim()).length,u=0}if(!l)throw e;if(e[0]===qk&&(o=++u),r=Qk(e,u,Wk),r<l&&(n.push(e.substring(s,r).trim()),s=u=++r),u=Qk(e,u,zk),u===l)n.push(e.substring(s,l).trim());else if(n.push(e.substring(s,u).trim()),i=[],s=++u,s===l)throw"Unmatched left bracket: "+e;for(;u<l;){if(u=Qk(e,u,Pk),u===l)throw"Unmatched left bracket: "+e;if(i.push(e.substring(s,u).trim()),u<l-1&&e[++u]!==zk)throw"Expected left bracket: "+e;s=++u}if(!(l=n.length)||Kk.test(n[l-1]))throw"Invalid event selector: "+e;var c;return l>1?(t.type=n[1],o?t.markname=n[0].slice(1):(c=n[0],Zk[c]?t.marktype=n[0]:t.source=n[0])):t.type=n[0],"!"===t.type.slice(-1)&&(t.consume=!0,t.type=t.type.slice(0,-1)),null!=i&&(t.filter=i),a[0]&&(t.throttle=a[0]),a[1]&&(t.debounce=a[1]),t}(e)}const nL=e=>Ne(e)&&!Le(e)?ut({},e):{value:e};function rL(e,t,n,r){return null!=n?(Ne(n)&&!Le(n)||Le(n)&&n.length&&Ne(n[0])?e.update[t]=n:e[r||"enter"][t]={value:n},1):0}function iL(e,t,n){for(const n in t)rL(e,n,t[n]);for(const t in n)rL(e,t,n[t],"update")}function aL(e,t,n){for(const r in t)n&&dt(n,r)||(e[r]=ut(e[r]||{},t[r]));return e}function oL(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const sL="mark",lL="frame",uL="scope",cL="axis",dL="axis-domain",fL="axis-grid",hL="axis-label",pL="axis-tick",mL="axis-title",gL="legend",yL="legend-band",_L="legend-entry",vL="legend-gradient",bL="legend-label",xL="legend-symbol",EL="legend-title",SL="title",AL="title-text",$L="title-subtitle";function TL(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const OL=e=>vt(e)?St(e):e.signal?`(${e.signal})`:IL(e);function DL(e){if(null!=e.gradient)return function(e){const t=[e.start,e.stop,e.count].map((e=>null==e?null:St(e)));for(;t.length&&null==He(t);)t.pop();return t.unshift(OL(e.gradient)),`gradient(${t.join(",")})`}(e);let t=e.signal?`(${e.signal})`:e.color?function(e){return e.c?ML("hcl",e.h,e.c,e.l):e.h||e.s?ML("hsl",e.h,e.s,e.l):e.l||e.a?ML("lab",e.l,e.a,e.b):e.r||e.g||e.b?ML("rgb",e.r,e.g,e.b):null}(e.color):null!=e.field?IL(e.field):void 0!==e.value?St(e.value):void 0;return null!=e.scale&&(t=function(e,t){const n=OL(e.scale);return null!=e.range?t=`lerp(_range(${n}), ${+e.range})`:(void 0!==t&&(t=`_scale(${n}, ${t})`),e.band&&(t=(t?t+"+":"")+`_bandwidth(${n})`+(1==+e.band?"":"*"+wL(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),null==t&&(t="0")),t}(e,t)),void 0===t&&(t=null),null!=e.exponent&&(t=`pow(${t},${wL(e.exponent)})`),null!=e.mult&&(t+=`*${wL(e.mult)}`),null!=e.offset&&(t+=`+${wL(e.offset)}`),e.round&&(t=`round(${t})`),t}const ML=(e,t,n,r)=>`(${e}(${[t,n,r].map(DL).join(",")})+'')`;function wL(e){return Ne(e)?"("+DL(e)+")":e}function IL(e){return CL(Ne(e)?e:{datum:e})}function CL(e){let t,n,r;if(e.signal)t="datum",r=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(r=e.parent,t+=".datum"):r=e.group}else e.datum?(t="datum",r=e.datum):_e("Invalid field reference: "+St(e));return e.signal||(r=vt(r)?ve(r).map(St).join("]["):CL(r)),t+"["+r+"]"}function RL(e,t,n,r){const i={},a={};for(const t in e)null!=e[t]&&(i[t]=kL((o=e[t],Le(o)?function(e){let t="";return e.forEach((e=>{const n=DL(e);t+=e.test?`(${e.test})?${n}:`:n})),":"===He(t)&&(t+="null"),t}(o):DL(o)),r,n,a));var o;return{$expr:{marktype:t,channels:i},$fields:Object.keys(a),$output:Object.keys(e)}}function kL(e,t,n,r){const i=FR(e,t);return i.$fields.forEach((e=>r[e]=1)),ut(n,i.$params),i.$expr}const LL="outer",NL=["value","update","init","react","bind"];function FL(e,t){_e(e+' for "outer" push: '+St(t))}function BL(e,t,n,r){this.id=-1,this.type=e,this.value=t,this.params=n,r&&(this.parent=r)}function jL(e,t,n,r){return new BL(e,t,n,r)}function HL(e,t){return jL("operator",e,t)}function zL(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function PL(e,t){return t?{$field:e,$name:t}:{$field:e}}const UL=PL("key");function VL(e,t){return{$compare:e,$order:t}}function WL(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const GL="scope",qL="view";function YL(e){return e&&e.signal}function KL(e){if(YL(e))return!0;if(Ne(e))for(const t in e)if(KL(e[t]))return!0;return!1}function JL(e,t){return null!=e?e:t}function XL(e){return e&&e.signal||e}const ZL="timer";function QL(e,t){return(e.merge?eN:e.stream?tN:e.type?nN:_e("Invalid stream specification: "+St(e)))(e,t)}function eN(e,t){const n=rN({merge:e.merge.map((e=>QL(e,t)))},e,t);return t.addStream(n).id}function tN(e,t){const n=rN({stream:QL(e.stream,t)},e,t);return t.addStream(n).id}function nN(e,t){let n;var r;e.type===ZL?(n=t.event(ZL,e.throttle),e={between:e.between,filter:e.filter}):n=t.event((r=e.source)===GL?qL:r||qL,e.type);const i=rN({stream:n},e,t);return 1===Object.keys(i).length?n:t.addStream(i).id}function rN(e,t,n){let r=t.between;return r&&(2!==r.length&&_e('Stream "between" parameter must have 2 entries: '+St(t)),e.between=[QL(r[0],n),QL(r[1],n)]),r=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&r.push(function(e,t,n){const r="event.item";return r+(e&&"*"!==e?"&&"+r+".mark.marktype==='"+e+"'":"")+(n?"&&"+r+".mark.role==='"+n+"'":"")+(t?"&&"+r+".mark.name==='"+t+"'":"")}(t.marktype,t.markname,t.markrole)),t.source===GL&&r.push("inScope(event.item)"),r.length&&(e.filter=FR("("+r.join(")&&(")+")",n).$expr),null!=(r=t.throttle)&&(e.throttle=+r),null!=(r=t.debounce)&&(e.debounce=+r),t.consume&&(e.consume=!0),e}const iN={code:"_.$value",ast:{type:"Identifier",value:"value"}};function aN(e){return{signal:"["+e.map((e=>e.scale?'scale("'+e.scale+'")':e.signal))+"]"}}const oN=e=>(t,n,r)=>jL(e,n,t||void 0,r),sN=oN("aggregate"),lN=oN("axisticks"),uN=oN("bound"),cN=oN("collect"),dN=oN("compare"),fN=oN("datajoin"),hN=oN("encode"),pN=oN("expression"),mN=oN("facet"),gN=oN("field"),yN=oN("key"),_N=oN("legendentries"),vN=oN("load"),bN=oN("mark"),xN=oN("multiextent"),EN=oN("multivalues"),SN=oN("overlap"),AN=oN("params"),$N=oN("prefacet"),TN=oN("projection"),ON=oN("proxy"),DN=oN("relay"),MN=oN("render"),wN=oN("scale"),IN=oN("sieve"),CN=oN("sortitems"),RN=oN("viewlayout"),kN=oN("values");let LN=0;const NN={min:"min",max:"max",count:"sum"};function FN(e,t){const n=t.getScale(e.name).params;let r;for(r in n.domain=zN(e.domain,e,t),null!=e.range&&(n.range=KN(e,t,n)),null!=e.interpolate&&function(e,t){t.interpolate=BN(e.type||e),null!=e.gamma&&(t.interpolateGamma=BN(e.gamma))}(e.interpolate,n),null!=e.nice&&(n.nice=function(e,t){return e.signal?t.signalRef(e.signal):Ne(e)?{interval:BN(e.interval),step:BN(e.step)}:BN(e)}(e.nice,t)),null!=e.bins&&(n.bins=function(e,t){return e.signal||Le(e)?jN(e,t):t.objectProperty(e)}(e.bins,t)),e)dt(n,r)||"name"===r||(n[r]=BN(e[r],t))}function BN(e,t){return Ne(e)?e.signal?t.signalRef(e.signal):_e("Unsupported object: "+St(e)):e}function jN(e,t){return e.signal?t.signalRef(e.signal):e.map((e=>BN(e,t)))}function HN(e){_e("Can not find data set: "+St(e))}function zN(e,t,n){if(e)return e.signal?n.signalRef(e.signal):(Le(e)?PN:e.fields?VN:UN)(e,t,n);null==t.domainMin&&null==t.domainMax||_e("No scale domain defined for domainMin/domainMax to override.")}function PN(e,t,n){return e.map((e=>BN(e,n)))}function UN(e,t,n){const r=n.getData(e.data);return r||HN(e.data),xp(t.type)?r.valuesRef(n,e.field,GN(e.sort,!1)):$p(t.type)?r.domainRef(n,e.field):r.extentRef(n,e.field)}function VN(e,t,n){const r=e.data,i=e.fields.reduce(((e,t)=>(t=vt(t)?{data:r,field:t}:Le(t)||t.signal?function(e,t){const n="_:vega:_"+LN++,r=cN({});if(Le(e))r.value={$ingest:e};else if(e.signal){const i="setdata("+St(n)+","+e.signal+")";r.params.input=t.signalRef(i)}return t.addDataPipeline(n,[r,IN({})]),{data:n,field:"data"}}(t,n):t,e.push(t),e)),[]);return(xp(t.type)?WN:$p(t.type)?qN:YN)(e,n,i)}function WN(e,t,n){const r=GN(e.sort,!0);let i,a;const o=n.map((e=>{const n=t.getData(e.data);return n||HN(e.data),n.countsRef(t,e.field,r)})),s={groupby:UL,pulse:o};r&&(i=r.op||"count",a=r.field?WL(i,r.field):"count",s.ops=[NN[i]],s.fields=[t.fieldRef(a)],s.as=[a]),i=t.add(sN(s));const l=t.add(cN({pulse:zL(i)}));return a=t.add(kN({field:UL,sort:t.sortRef(r),pulse:zL(l)})),zL(a)}function GN(e,t){return e&&(e.field||e.op?e.field||"count"===e.op?t&&e.field&&e.op&&!NN[e.op]&&_e("Multiple domain scales can not be sorted using "+e.op):_e("No field provided for sort aggregate op: "+e.op):Ne(e)?e.field="key":e={field:"key"}),e}function qN(e,t,n){const r=n.map((e=>{const n=t.getData(e.data);return n||HN(e.data),n.domainRef(t,e.field)}));return zL(t.add(EN({values:r})))}function YN(e,t,n){const r=n.map((e=>{const n=t.getData(e.data);return n||HN(e.data),n.extentRef(t,e.field)}));return zL(t.add(xN({extents:r})))}function KN(e,t,n){const r=t.config.range;let i=e.range;if(i.signal)return t.signalRef(i.signal);if(vt(i)){if(r&&dt(r,i))return KN(e=ut({},e,{range:r[i]}),t,n);"width"===i?i=[0,{signal:"width"}]:"height"===i?i=xp(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:_e("Unrecognized scale range value: "+St(i))}else{if(i.scheme)return n.scheme=Le(i.scheme)?jN(i.scheme,t):BN(i.scheme,t),i.extent&&(n.schemeExtent=jN(i.extent,t)),void(i.count&&(n.schemeCount=BN(i.count,t)));if(i.step)return void(n.rangeStep=BN(i.step,t));if(xp(e.type)&&!Le(i))return zN(i,e,t);Le(i)||_e("Unsupported range type: "+St(i))}return i.map((e=>(Le(e)?jN:BN)(e,t)))}function JN(e,t,n){return Le(e)?e.map((e=>JN(e,t,n))):Ne(e)?e.signal?n.signalRef(e.signal):"fit"===t?e:_e("Unsupported parameter object: "+St(e)):e}const XN="top",ZN="left",QN="right",eF="bottom",tF="center",nF="vertical",rF="start",iF="end",aF="index",oF="label",sF="offset",lF="perc",uF="perc2",cF="value",dF="guide-label",fF="guide-title",hF="group-title",pF="group-subtitle",mF="symbol",gF="gradient",yF="discrete",_F="size",vF=[_F,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],bF={name:1,style:1,interactive:1},xF={value:0},EF={value:1},SF="group",AF="rect",$F="rule",TF="symbol",OF="text";function DF(e){return e.type=SF,e.interactive=e.interactive||!1,e}function MF(e,t){const n=(n,r)=>JL(e[n],JL(t[n],r));return n.isVertical=n=>nF===JL(e.direction,t.direction||(n?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>JL(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>JL(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>JL(e.columns,JL(t.columns,+n.isVertical(!0))),n}function wF(e,t){const n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function IF(e,t,n){return`item.anchor === '${rF}' ? ${e} : item.anchor === '${iF}' ? ${t} : ${n}`}const CF=IF(St(ZN),St(QN),St(tF));function RF(e,t){return t?e?Ne(e)?Object.assign({},e,{offset:RF(e.offset,t)}):{value:e,offset:t}:t:e}function kF(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=aL(e.encode,t,bF)):e.interactive=!1,e}function LF(e,t,n,r){const i=MF(e,n),a=i.isVertical(),o=i.gradientThickness(),s=i.gradientLength();let l,u,c,d,f;a?(u=[0,1],c=[0,0],d=o,f=s):(u=[0,0],c=[1,0],d=s,f=o);const h={enter:l={opacity:xF,x:xF,y:xF,width:nL(d),height:nL(f)},update:ut({},l,{opacity:EF,fill:{gradient:t,start:u,stop:c}}),exit:{opacity:xF}};return iL(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),kF({type:AF,role:vL,encode:h},r)}function NF(e,t,n,r,i){const a=MF(e,n),o=a.isVertical(),s=a.gradientThickness(),l=a.gradientLength();let u,c,d,f,h="";o?(u="y",d="y2",c="x",f="width",h="1-"):(u="x",d="x2",c="y",f="height");const p={opacity:xF,fill:{scale:t,field:cF}};p[u]={signal:h+"datum."+lF,mult:l},p[c]=xF,p[d]={signal:h+"datum."+uF,mult:l},p[f]=nL(s);const m={enter:p,update:ut({},p,{opacity:EF}),exit:{opacity:xF}};return iL(m,{stroke:a("gradientStrokeColor"),strokeWidth:a("gradientStrokeWidth")},{opacity:a("gradientOpacity")}),kF({type:AF,role:yL,key:cF,from:i,encode:m},r)}const FF=`datum.${lF}<=0?"${ZN}":datum.${lF}>=1?"${QN}":"${tF}"`,BF=`datum.${lF}<=0?"${eF}":datum.${lF}>=1?"${XN}":"middle"`;function jF(e,t,n,r){const i=MF(e,t),a=i.isVertical(),o=nL(i.gradientThickness()),s=i.gradientLength();let l,u,c,d,f=i("labelOverlap"),h="";const p={enter:l={opacity:xF},update:u={opacity:EF,text:{field:oF}},exit:{opacity:xF}};return iL(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:JL(e.labelLimit,t.gradientLabelLimit)}),a?(l.align={value:"left"},l.baseline=u.baseline={signal:BF},c="y",d="x",h="1-"):(l.align=u.align={signal:FF},l.baseline={value:"top"},c="x",d="y"),l[c]=u[c]={signal:h+"datum."+lF,mult:s},l[d]=u[d]=o,o.offset=JL(e.labelOffset,t.gradientLabelOffset)||0,f=f?{separation:i("labelSeparation"),method:f,order:"datum."+aF}:void 0,kF({type:OF,role:bL,style:dF,key:cF,from:r,encode:p,overlap:f},n)}function HF(e,t,n,r,i){const a=MF(e,t),o=n.entries,s=!(!o||!o.interactive),l=o?o.name:void 0,u=a("clipHeight"),c=a("symbolOffset"),d={data:"value"},f=`(${i}) ? datum.${sF} : datum.${_F}`,h=u?nL(u):{field:_F},p=`datum.${aF}`,m=`max(1, ${i})`;let g,y,_,v,b;h.mult=.5,g={enter:y={opacity:xF,x:{signal:f,mult:.5,offset:c},y:h},update:_={opacity:EF,x:y.x,y:y.y},exit:{opacity:xF}};let x=null,E=null;e.fill||(x=t.symbolBaseFillColor,E=t.symbolBaseStrokeColor),iL(g,{fill:a("symbolFillColor",x),shape:a("symbolType"),size:a("symbolSize"),stroke:a("symbolStrokeColor",E),strokeDash:a("symbolDash"),strokeDashOffset:a("symbolDashOffset"),strokeWidth:a("symbolStrokeWidth")},{opacity:a("symbolOpacity")}),vF.forEach((t=>{e[t]&&(_[t]=y[t]={scale:e[t],field:cF})}));const S=kF({type:TF,role:xL,key:cF,from:d,clip:!!u||void 0,encode:g},n.symbols),A=nL(c);A.offset=a("labelOffset"),g={enter:y={opacity:xF,x:{signal:f,offset:A},y:h},update:_={opacity:EF,text:{field:oF},x:y.x,y:y.y},exit:{opacity:xF}},iL(g,{align:a("labelAlign"),baseline:a("labelBaseline"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontStyle:a("labelFontStyle"),fontWeight:a("labelFontWeight"),limit:a("labelLimit")});const $=kF({type:OF,role:bL,style:dF,key:cF,from:d,encode:g},n.labels);return g={enter:{noBound:{value:!u},width:xF,height:u?nL(u):xF,opacity:xF},exit:{opacity:xF},update:_={opacity:EF,row:{signal:null},column:{signal:null}}},a.isVertical(!0)?(v=`ceil(item.mark.items.length / ${m})`,_.row.signal=`${p}%${v}`,_.column.signal=`floor(${p} / ${v})`,b={field:["row",p]}):(_.row.signal=`floor(${p} / ${m})`,_.column.signal=`${p} % ${m}`,b={field:p}),_.column.signal=`(${i})?${_.column.signal}:${p}`,DF({role:uL,from:r={facet:{data:r,name:"value",groupby:aF}},encode:aL(g,o,bF),marks:[S,$],name:l,interactive:s,sort:b})}const zF='item.orient === "left"',PF='item.orient === "right"',UF=`(${zF} || ${PF})`,VF=`datum.vgrad && ${UF}`,WF=IF('"top"','"bottom"','"middle"'),GF=`datum.vgrad && ${PF} ? (${IF('"right"','"left"','"center"')}) : (${UF} && !(datum.vgrad && ${zF})) ? "left" : ${CF}`,qF=`item._anchor || (${UF} ? "middle" : "start")`,YF=`${VF} ? (${zF} ? -90 : 90) : 0`,KF=`${UF} ? (datum.vgrad ? (${PF} ? "bottom" : "top") : ${WF}) : "top"`;function JF(e,t){let n;return Ne(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+XF(e.path)+")":e.sphere&&(n="geoShape("+XF(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function XF(e){return Ne(e)&&e.signal?e.signal:St(e)}function ZF(e){const t=e.role||"";return t.startsWith("axis")||t.startsWith("legend")||t.startsWith("title")?t:e.type===SF?uL:t||sL}function QF(e){return{marktype:e.type,name:e.name||void 0,role:e.role||ZF(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function eB(e,t){return e&&e.signal?t.signalRef(e.signal):!1!==e}function tB(e,t){const n=function(e){const t=function(e){return e=e&&e.toLowerCase(),dt(Wo,e)?Wo[e]:null}(e);return t&&t.Definition||null}(e.type);n||_e("Unrecognized transform type: "+St(e.type));const r=jL(n.type.toLowerCase(),null,nB(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(r)),r.metadata=n.metadata||{},r}function nB(e,t,n){const r={},i=e.params.length;for(let a=0;a<i;++a){const i=e.params[a];r[i.name]=rB(i,t,n)}return r}function rB(e,t,n){const r=e.type,i=t[e.name];return"index"===r?function(e,t,n){return vt(t.from)||_e('Lookup "from" parameter must be a string literal.'),n.getData(t.from).lookupRef(n,t.key)}(0,t,n):void 0!==i?"param"===r?function(e,t,n){const r=t[e.name];return e.array?(Le(r)||_e("Expected an array of sub-parameters. Instead: "+St(r)),r.map((t=>aB(e,t,n)))):aB(e,r,n)}(e,t,n):"projection"===r?n.projectionRef(t[e.name]):e.array&&!YL(i)?i.map((t=>iB(e,t,n))):iB(e,i,n):void(e.required&&_e("Missing required "+St(t.type)+" parameter: "+St(e.name)))}function iB(e,t,n){const r=e.type;if(YL(t))return uB(r)?_e("Expression references can not be signals."):cB(r)?n.fieldRef(t):dB(r)?n.compareRef(t):n.signalRef(t.signal);{const i=e.expr||cB(r);return i&&oB(t)?n.exprRef(t.expr,t.as):i&&sB(t)?PL(t.field,t.as):uB(r)?FR(t,n):lB(r)?zL(n.getData(t).values):cB(r)?PL(t):dB(r)?n.compareRef(t):t}}function aB(e,t,n){const r=e.params.length;let i;for(let n=0;n<r;++n){i=e.params[n];for(const e in i.key)if(i.key[e]!==t[e]){i=null;break}if(i)break}i||_e("Unsupported parameter: "+St(t));const a=ut(nB(i,t,n),i.key);return zL(n.add(AN(a)))}const oB=e=>e&&e.expr,sB=e=>e&&e.field,lB=e=>"data"===e,uB=e=>"expr"===e,cB=e=>"field"===e,dB=e=>"compare"===e;function fB(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:zL(t.getData(e.data).output)}function hB(e,t,n,r,i){this.scope=e,this.input=t,this.output=n,this.values=r,this.aggregate=i,this.index={}}function pB(e){return vt(e)?e:null}function mB(e,t,n){const r=WL(n.op,n.field);let i;if(t.ops){for(let e=0,n=t.as.length;e<n;++e)if(t.as[e]===r)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((i=n.op.signal)?e.signalRef(i):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(r))}function gB(e,t,n,r,i,a,o){const s=t[n]||(t[n]={}),l=function(e){return Ne(e)?("descending"===e.order?"-":"+")+WL(e.op,e.field):""}(a);let u,c,d=pB(i);if(null!=d&&(e=t.scope,d+=l?"|"+l:"",u=s[d]),!u){const n=a?{field:UL,pulse:t.countsRef(e,i,a)}:{field:e.fieldRef(i),pulse:zL(t.output)};l&&(n.sort=e.sortRef(a)),c=e.add(jL(r,void 0,n)),o&&(t.index[i]=c),u=zL(c),null!=d&&(s[d]=u)}return u}function yB(e,t,n){const r=e.remove,i=e.insert,a=e.toggle,o=e.modify,s=e.values,l=t.add(HL()),u="if("+e.trigger+',modify("'+n+'",'+[i,r,a,o,s].map((e=>null==e?"null":e)).join(",")+"),0)",c=FR(u,t);l.update=c.$expr,l.params=c.$params}function _B(e,t){const n=ZF(e),r=e.type===SF,i=e.from&&e.from.facet,a=e.overlap;let o,s,l,u,c,d,f,h=e.layout||n===uL||n===lL;const p=n===sL||h||i,m=function(e,t,n){let r,i,a,o,s;return e?(r=e.facet)&&(t||_e("Only group marks can be faceted."),null!=r.field?o=s=fB(r,n):(e.data?s=zL(n.getData(e.data).aggregate):(a=tB(ut({type:"aggregate",groupby:Qe(r.groupby)},r.aggregate),n),a.params.key=n.keyRef(r.groupby),a.params.pulse=fB(r,n),o=s=zL(n.add(a))),i=n.keyRef(r.groupby,!0))):o=zL(n.add(cN(null,[{}]))),o||(o=fB(e,n)),{key:i,pulse:o,parent:s}}(e.from,r,t);s=t.add(fN({key:m.key||(e.key?PL(e.key):void 0),pulse:m.pulse,clean:!r}));const g=zL(s);s=l=t.add(cN({pulse:g})),s=t.add(bN({markdef:QF(e),interactive:eB(e.interactive,t),clip:JF(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:zL(s)}));const y=zL(s);s=u=t.add(hN(function(e,t,n,r,i,a){const o={};(a=a||{}).encoders={$encode:o},e=function(e,t,n,r,i){const a={},o={};let s,l,u,c;for(l in l="lineBreak","text"!==t||null==i[l]||oL(l,e)||TL(a,l,i[l]),("legend"==n||String(n).startsWith("axis"))&&(n=null),c=n===lL?i.group:n===sL?ut({},i.mark,i[t]):null,c)u=oL(l,e)||("fill"===l||"stroke"===l)&&(oL("fill",e)||oL("stroke",e)),u||TL(a,l,c[l]);for(l in Qe(r).forEach((t=>{const n=i.style&&i.style[t];for(const t in n)oL(t,e)||TL(a,t,n[t])})),e=ut({},e),a)c=a[l],c.signal?(s=s||{})[l]=c:o[l]=c;return e.enter=ut(o,e.enter),s&&(e.update=ut(s,e.update)),e}(e,t,n,r,i.config);for(const n in e)o[n]=RL(e[n],t,a,i);return a}(e.encode,e.type,n,e.style,t,{mod:!1,pulse:y}))),s.params.parent=t.encode(),e.transform&&e.transform.forEach((e=>{const n=tB(e,t),r=n.metadata;(r.generates||r.changes)&&_e("Mark transforms should not generate new data."),r.nomod||(u.params.mod=!0),n.params.pulse=zL(s),t.add(s=n)})),e.sort&&(s=t.add(CN({sort:t.compareRef(e.sort),pulse:zL(s)})));const _=zL(s);(i||h)&&(h=t.add(RN({layout:t.objectProperty(e.layout),legends:t.legends,mark:y,pulse:_})),d=zL(h));const v=t.add(uN({mark:y,pulse:d||_}));f=zL(v),r&&(p&&(o=t.operators,o.pop(),h&&o.pop()),t.pushState(_,d||f,g),i?function(e,t,n){const r=e.from.facet,i=r.name,a=fB(r,t);let o;r.name||_e("Facet must have a name: "+St(r)),r.data||_e("Facet must reference a data set: "+St(r)),r.field?o=t.add($N({field:t.fieldRef(r.field),pulse:a})):r.groupby?o=t.add(mN({key:t.keyRef(r.groupby),group:zL(t.proxy(n.parent)),pulse:a})):_e("Facet must specify groupby or field: "+St(r));const s=t.fork(),l=s.add(cN()),u=s.add(IN({pulse:zL(l)}));s.addData(i,new hB(s,l,l,u)),s.addSignal("parent",null),o.params.subflow={$subflow:s.parse(e).toRuntime()}}(e,t,m):p?function(e,t,n){const r=t.add($N({pulse:n.pulse})),i=t.fork();i.add(IN()),i.addSignal("parent",null),r.params.subflow={$subflow:i.parse(e).toRuntime()}}(e,t,m):t.parse(e),t.popState(),p&&(h&&o.push(h),o.push(v))),a&&(f=function(e,t,n){const r=e.method,i=e.bound,a=e.separation,o={separation:YL(a)?n.signalRef(a.signal):a,method:YL(r)?n.signalRef(r.signal):r,pulse:t};if(e.order&&(o.sort=n.compareRef({field:e.order})),i){const e=i.tolerance;o.boundTolerance=YL(e)?n.signalRef(e.signal):+e,o.boundScale=n.scaleRef(i.scale),o.boundOrient=i.orient}return zL(n.add(SN(o)))}(a,f,t));const b=t.add(MN({pulse:f})),x=t.add(IN({pulse:zL(b)},void 0,t.parent()));null!=e.name&&(c=e.name,t.addData(c,new hB(t,l,b,x)),e.on&&e.on.forEach((e=>{(e.insert||e.remove||e.toggle)&&_e("Marks only support modify triggers."),yB(e,t,c)})))}function vB(e,t,n){const r={enter:{},update:{}};return iL(r,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),r}function bB(e,t,n){return t[e]?`scale("${t[e]}",datum)`:wF(e,n[0].encode)}hB.fromEntries=function(e,t){const n=t.length,r=t[n-1],i=t[n-2];let a=t[0],o=null,s=1;for(a&&"load"===a.type&&(a=t[1]),e.add(t[0]);s<n;++s)t[s].params.pulse=zL(t[s-1]),e.add(t[s]),"aggregate"===t[s].type&&(o=t[s]);return new hB(e,a,i,r,o)},hB.prototype={countsRef(e,t,n){const r=this,i=r.counts||(r.counts={}),a=pB(t);let o,s,l;return null!=a&&(e=r.scope,o=i[a]),o?n&&n.field&&mB(e,o.agg.params,n):(l={groupby:e.fieldRef(t,"key"),pulse:zL(r.output)},n&&n.field&&mB(e,l,n),s=e.add(sN(l)),o=e.add(cN({pulse:zL(s)})),o={agg:s,ref:zL(o)},null!=a&&(i[a]=o)),o.ref},tuplesRef(){return zL(this.values)},extentRef(e,t){return gB(e,this,"extent","extent",t,!1)},domainRef(e,t){return gB(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return gB(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return gB(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return gB(e,this,"indata","tupleindex",t,!0,!0)}};const xB=`item.orient==="${ZN}"?-90:item.orient==="${QN}"?90:0`;function EB(e,t){const n={enter:{},update:{}};return iL(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:CF},angle:{signal:xB},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),aL(n,t,bF)}function SB(e){const t=cN({},e);return t.metadata={source:!0},t}function AB(e,t){return vN({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}const $B=e=>e===eF||e===XN,TB=(e,t,n)=>YL(e)?RB(e.signal,t,n):e===ZN||e===XN?t:n,OB=(e,t,n)=>YL(e)?IB(e.signal,t,n):$B(e)?t:n,DB=(e,t,n)=>YL(e)?CB(e.signal,t,n):$B(e)?n:t,MB=(e,t,n)=>YL(e)?kB(e.signal,t,n):e===XN?{value:t}:{value:n},wB=(e,t,n)=>YL(e)?LB(e.signal,t,n):e===QN?{value:t}:{value:n},IB=(e,t,n)=>NB(`${e} === '${XN}' || ${e} === '${eF}'`,t,n),CB=(e,t,n)=>NB(`${e} !== '${XN}' && ${e} !== '${eF}'`,t,n),RB=(e,t,n)=>BB(`${e} === '${ZN}' || ${e} === '${XN}'`,t,n),kB=(e,t,n)=>BB(`${e} === '${XN}'`,t,n),LB=(e,t,n)=>BB(`${e} === '${QN}'`,t,n),NB=(e,t,n)=>(t=null!=t?nL(t):t,n=null!=n?nL(n):n,FB(t)&&FB(n)?{signal:`${e} ? (${t=t?t.signal||St(t.value):null}) : (${n=n?n.signal||St(n.value):null})`}:[ut({test:e},t)].concat(n||[])),FB=e=>null==e||1===Object.keys(e).length,BB=(e,t,n)=>({signal:`${e} ? (${HB(t)}) : (${HB(n)})`}),jB=(e,t,n,r,i)=>({signal:(null!=r?`${e} === '${ZN}' ? (${HB(r)}) : `:"")+(null!=n?`${e} === '${eF}' ? (${HB(n)}) : `:"")+(null!=i?`${e} === '${QN}' ? (${HB(i)}) : `:"")+(null!=t?`${e} === '${XN}' ? (${HB(t)}) : `:"")+"(null)"}),HB=e=>YL(e)?e.signal:null==e?null:St(e),zB=(e,t)=>0===t?0:YL(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},PB=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function UB(e,t,n,r){let i;if(t&&dt(t,e))return t[e];if(dt(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=e[5].toLowerCase()+e.slice(6)}return r[fF][i]}if(e.startsWith("label")){switch(e){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=e[5].toLowerCase()+e.slice(6)}return r[dF][i]}return null}function VB(e){const t={};for(const n of e)if(n)for(const e in n)t[e]=1;return Object.keys(t)}function WB(e,t){return{scale:e.scale,range:t}}function GB(e,t,n,r,i){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+r+","+i+")"}}function qB(e,t){const n=function(e,t){var n,r,i,a=t.config,o=a.style,s=a.axis,l="band"===t.scaleType(e.scale)&&a.axisBand,u=e.orient;if(YL(u)){const e=VB([a.axisX,a.axisY]),t=VB([a.axisTop,a.axisBottom,a.axisLeft,a.axisRight]);for(i of(n={},e))n[i]=OB(u,UB(i,a.axisX,s,o),UB(i,a.axisY,s,o));for(i of(r={},t))r[i]=jB(u.signal,UB(i,a.axisTop,s,o),UB(i,a.axisBottom,s,o),UB(i,a.axisLeft,s,o),UB(i,a.axisRight,s,o))}else n=u===XN||u===eF?a.axisX:a.axisY,r=a["axis"+u[0].toUpperCase()+u.slice(1)];return n||r||l?ut({},s,n,r,l):s}(e,t),r=e.encode||{},i=r.axis||{},a=i.name||void 0,o=i.interactive,s=i.style,l=MF(e,n),u=function(e){const t=e("tickBand");let n,r,i=e("tickOffset");return t?t.signal?(n={signal:`(${t.signal}) === 'extent' ? 1 : 0.5`},r={signal:`(${t.signal}) === 'extent'`},Ne(i)||(i={signal:`(${t.signal}) === 'extent' ? 0 : ${i}`})):"extent"===t?(n=1,r=!0,i=0):(n=.5,r=!1):(n=e("bandPosition"),r=e("tickExtra")),{extra:r,band:n,offset:i}}(l),c={scale:e.scale,ticks:!!l("ticks"),labels:!!l("labels"),grid:!!l("grid"),domain:!!l("domain"),title:null!=e.title},d=zL(t.add(cN({},[c]))),f=zL(t.add(lN({scale:t.scaleRef(e.scale),extra:t.property(u.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),h=[];let p;return c.grid&&h.push(function(e,t,n,r,i){const a=MF(e,t),o=e.orient,s=e.gridScale,l=TB(o,1,-1),u=function(e,t){if(1===t);else if(Ne(e)){let n=e=ut({},e);for(;null!=n.mult;){if(!Ne(n.mult))return n.mult=YL(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n=n.mult=ut({},n.mult)}n.mult=t}else e=YL(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);return e}(e.offset,l);let c,d,f;const h={enter:c={opacity:xF},update:f={opacity:EF},exit:d={opacity:xF}};iL(h,{stroke:a("gridColor"),strokeCap:a("gridCap"),strokeDash:a("gridDash"),strokeDashOffset:a("gridDashOffset"),strokeOpacity:a("gridOpacity"),strokeWidth:a("gridWidth")});const p={scale:e.scale,field:cF,band:i.band,extra:i.extra,offset:i.offset,round:a("tickRound")},m=OB(o,{signal:"height"},{signal:"width"}),g=s?{scale:s,range:0,mult:l,offset:u}:{value:0,offset:u},y=s?{scale:s,range:1,mult:l,offset:u}:ut(m,{mult:l,offset:u});return c.x=f.x=OB(o,p,g),c.y=f.y=DB(o,p,g),c.x2=f.x2=DB(o,y),c.y2=f.y2=OB(o,y),d.x=OB(o,p),d.y=DB(o,p),kF({type:$F,role:fL,key:cF,from:r,encode:h},n)}(e,n,r.grid,f,u)),c.ticks&&(p=l("tickSize"),h.push(function(e,t,n,r,i,a){const o=MF(e,t),s=e.orient,l=TB(s,-1,1);let u,c,d;const f={enter:u={opacity:xF},update:d={opacity:EF},exit:c={opacity:xF}};iL(f,{stroke:o("tickColor"),strokeCap:o("tickCap"),strokeDash:o("tickDash"),strokeDashOffset:o("tickDashOffset"),strokeOpacity:o("tickOpacity"),strokeWidth:o("tickWidth")});const h=nL(i);h.mult=l;const p={scale:e.scale,field:cF,band:a.band,extra:a.extra,offset:a.offset,round:o("tickRound")};return d.y=u.y=OB(s,xF,p),d.y2=u.y2=OB(s,h),c.x=OB(s,p),d.x=u.x=DB(s,xF,p),d.x2=u.x2=DB(s,h),c.y=DB(s,p),kF({type:$F,role:pL,key:cF,from:r,encode:f},n)}(e,n,r.ticks,f,p,u))),c.labels&&(p=c.ticks?p:0,h.push(function(e,t,n,r,i,a){const o=MF(e,t),s=e.orient,l=e.scale,u=TB(s,-1,1),c=XL(o("labelFlush")),d=XL(o("labelFlushOffset")),f=o("labelAlign"),h=o("labelBaseline");let p,m=0===c||!!c;const g=nL(i);g.mult=u,g.offset=nL(o("labelPadding")||0),g.offset.mult=u;const y={scale:l,field:cF,band:.5,offset:RF(a.offset,o("labelOffset"))},_=OB(s,m?GB(l,c,'"left"','"right"','"center"'):{value:"center"},wB(s,"left","right")),v=OB(s,MB(s,"bottom","top"),m?GB(l,c,'"top"','"bottom"','"middle"'):{value:"middle"}),b=GB(l,c,`-(${d})`,d,0);m=m&&d;const x={opacity:xF,x:OB(s,y,g),y:DB(s,y,g)},E={enter:x,update:p={opacity:EF,text:{field:oF},x:x.x,y:x.y,align:_,baseline:v},exit:{opacity:xF,x:x.x,y:x.y}};iL(E,{dx:!f&&m?OB(s,b):null,dy:!h&&m?DB(s,b):null}),iL(E,{angle:o("labelAngle"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontWeight:o("labelFontWeight"),fontStyle:o("labelFontStyle"),limit:o("labelLimit"),lineHeight:o("labelLineHeight")},{align:f,baseline:h});const S=o("labelBound");let A=o("labelOverlap");return A=A||S?{separation:o("labelSeparation"),method:A,order:"datum.index",bound:S?{scale:l,orient:s,tolerance:S}:null}:void 0,p.align!==_&&(p.align=PB(p.align,_)),p.baseline!==v&&(p.baseline=PB(p.baseline,v)),kF({type:OF,role:hL,style:dF,key:cF,from:r,encode:E,overlap:A},n)}(e,n,r.labels,f,p,u))),c.domain&&h.push(function(e,t,n,r){const i=MF(e,t),a=e.orient;let o,s;const l={enter:o={opacity:xF},update:s={opacity:EF},exit:{opacity:xF}};iL(l,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const u=WB(e,0),c=WB(e,1);return o.x=s.x=OB(a,u,xF),o.x2=s.x2=OB(a,c),o.y=s.y=DB(a,u,xF),o.y2=s.y2=DB(a,c),kF({type:$F,role:dL,from:r,encode:l},n)}(e,n,r.domain,d)),c.title&&h.push(function(e,t,n,r){const i=MF(e,t),a=e.orient,o=TB(a,-1,1);let s,l;const u={enter:s={opacity:xF,anchor:nL(i("titleAnchor",null)),align:{signal:CF}},update:l=ut({},s,{opacity:EF,text:nL(e.title)}),exit:{opacity:xF}},c={signal:`lerp(range("${e.scale}"), ${IF(0,1,.5)})`};return l.x=OB(a,c),l.y=DB(a,c),s.angle=OB(a,xF,zB(o,90)),s.baseline=OB(a,MB(a,eF,XN),{value:eF}),l.angle=s.angle,l.baseline=s.baseline,iL(u,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),function(e,t,n,r){const i=(e,t)=>null!=e?(n.update[t]=PB(nL(e),n.update[t]),!1):!oL(t,r),a=i(e("titleX"),"x"),o=i(e("titleY"),"y");n.enter.auto=o===a?nL(o):OB(t,nL(o),nL(a))}(i,a,u,n),u.update.align=PB(u.update.align,s.align),u.update.angle=PB(u.update.angle,s.angle),u.update.baseline=PB(u.update.baseline,s.baseline),kF({type:OF,role:mL,style:fF,from:r,encode:u},n)}(e,n,r.title,d)),_B(DF({role:cL,from:d,encode:aL(YB(l,e),i,bF),marks:h,aria:l("aria"),description:l("description"),zindex:l("zindex"),name:a,interactive:o,style:s}),t)}function YB(e,t){const n={enter:{},update:{}};return iL(n,{orient:e("orient"),offset:e("offset")||0,position:JL(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function KB(e,t,n){const r=Qe(e.signals),i=Qe(e.scales);return n||r.forEach((e=>function(e,t){const n=e.name;if(e.push===LL)t.signals[n]||FL("No prior signal definition",n),NL.forEach((t=>{void 0!==e[t]&&FL("Invalid property ",t)}));else{const r=t.addSignal(n,e.value);!1===e.react&&(r.react=!1),e.bind&&t.addBinding(n,e.bind)}}(e,t))),Qe(e.projections).forEach((e=>function(e,t){const n=t.config.projection||{},r={};for(const n in e)"name"!==n&&(r[n]=JN(e[n],n,t));for(const e in n)null==r[e]&&(r[e]=JN(n[e],e,t));t.addProjection(e.name,r)}(e,t))),i.forEach((e=>function(e,t){const n=e.type||"linear";_p(n)||_e("Unrecognized scale type: "+St(n)),t.addScale(e.name,{type:n,domain:void 0})}(e,t))),Qe(e.data).forEach((e=>function(e,t){const n=[];e.transform&&e.transform.forEach((e=>{n.push(tB(e,t))})),e.on&&e.on.forEach((n=>{yB(n,t,e.name)})),t.addDataPipeline(e.name,function(e,t,n){const r=[];let i,a,o,s,l,u=null,c=!1,d=!1;for(e.values?YL(e.values)||KL(e.format)?(r.push(AB(t,e)),r.push(u=SB())):r.push(u=SB({$ingest:e.values,$format:e.format})):e.url?KL(e.url)||KL(e.format)?(r.push(AB(t,e)),r.push(u=SB())):r.push(u=SB({$request:e.url,$format:e.format})):e.source&&(u=i=Qe(e.source).map((e=>zL(t.getData(e).output))),r.push(null)),a=0,o=n.length;a<o;++a)s=n[a],l=s.metadata,u||l.source||r.push(u=SB()),r.push(s),l.generates&&(d=!0),l.modifies&&!d&&(c=!0),l.source?u=s:l.changes&&(u=null);return i&&(o=i.length-1,r[0]=DN({derive:c,pulse:o?i:i[0]}),(c||o)&&r.splice(1,0,SB())),u||r.push(SB()),r.push(IN({})),r}(e,t,n))}(e,t))),i.forEach((e=>FN(e,t))),(n||r).forEach((e=>function(e,t){const n=t.getSignal(e.name);let r=e.update;e.init&&(r?_e("Signals can not include both init and update expressions."):(r=e.init,n.initonly=!0)),r&&(r=FR(r,t),n.update=r.$expr,n.params=r.$params),e.on&&e.on.forEach((e=>function(e,t,n){const r=e.encode,i={target:n};let a=e.events,o=e.update,s=[];var l,u;a||_e("Signal update missing events specification."),vt(a)&&(l=a,u=t.isSubscope()?GL:qL,Xk=u||Hk,Zk=Jk,a=eL(l.trim()).map(tL)),a=Qe(a).filter((e=>e.signal||e.scale?(s.push(e),0):1)),s.length>1&&(s=[aN(s)]),a.length&&s.push(a.length>1?{merge:a}:a[0]),null!=r&&(o&&_e("Signal encode and update are mutually exclusive."),o="encode(item(),"+St(r)+")"),i.update=vt(o)?FR(o,t):null!=o.expr?FR(o.expr,t):null!=o.value?o.value:null!=o.signal?{$expr:iN,$params:{$value:t.signalRef(o.signal)}}:_e("Invalid signal update specification."),e.force&&(i.options={force:!0}),s.forEach((e=>t.addUpdate(ut(function(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):QL(e,t)}}(e,t),i))))}(e,t,n.id)))}(e,t))),Qe(e.axes).forEach((e=>qB(e,t))),Qe(e.marks).forEach((e=>_B(e,t))),Qe(e.legends).forEach((e=>function(e,t){const n=t.config.legend,r=e.encode||{},i=MF(e,n),a=r.legend||{},o=a.name||void 0,s=a.interactive,l=a.style,u={};let c,d,f,h=0;vF.forEach((t=>e[t]?(u[t]=e[t],h=h||e[t]):0)),h||_e("Missing valid scale for legend.");const p=function(e,t){let n=e.type||mF;return e.type||1!==function(e){return vF.reduce(((t,n)=>t+(e[n]?1:0)),0)}(e)||!e.fill&&!e.stroke||(n=bp(t)?gF:Ep(t)?yF:mF),n!==gF?n:Ep(t)?yF:gF}(e,t.scaleType(h)),m={title:null!=e.title,scales:u,type:p,vgrad:"symbol"!==p&&i.isVertical()},g=zL(t.add(cN(null,[m]))),y=zL(t.add(_N(d={type:p,scale:t.scaleRef(h),count:t.objectProperty(i("tickCount")),limit:t.property(i("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return p===gF?(f=[LF(e,h,n,r.gradient),jF(e,n,r.labels,y)],d.count=d.count||t.signalRef(`max(2,2*floor((${XL(i.gradientLength())})/100))`)):p===yF?f=[NF(e,h,n,r.gradient,y),jF(e,n,r.labels,y)]:(c=function(e,t){const n=MF(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}(e,n),f=[HF(e,n,r,y,XL(c.columns))],d.size=function(e,t,n){const r=XL(bB("size",e,n)),i=XL(bB("strokeWidth",e,n)),a=XL(function(e,t,n){return wF("fontSize",e)||function(e,t,n){const r=t.config.style[n];return r&&r.fontSize}(0,t,n)}(n[1].encode,t,dF));return FR(`max(ceil(sqrt(${r})+${i}),${a})`,t)}(e,t,f[0].marks)),f=[DF({role:_L,from:g,encode:{enter:{x:{value:0},y:{value:0}}},marks:f,layout:c,interactive:s})],m.title&&f.push(function(e,t,n,r){const i=MF(e,t),a={enter:{opacity:xF},update:{opacity:EF,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:xF}};return iL(a,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:qF},angle:{signal:YF},align:{signal:GF},baseline:{signal:KF},text:e.title,fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),baseline:i("titleBaseline")}),kF({type:OF,role:EL,style:fF,from:r,encode:a},n)}(e,n,r.title,g)),_B(DF({role:gL,from:g,encode:aL(vB(i,e,n),a,bF),marks:f,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:s,style:l}),t)}(e,t))),e.title&&function(e,t){const n=MF(e=vt(e)?{text:e}:e,t.config.title),r=e.encode||{},i=r.group||{},a=i.name||void 0,o=i.interactive,s=i.style,l=[],u=zL(t.add(cN(null,[{}])));l.push(function(e,t,n,r){const i={value:0},a={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return iL(a,{text:e.text,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),kF({type:OF,role:AL,style:hF,from:r,encode:a},n)}(e,n,function(e){const t=e.encode;return t&&t.title||ut({name:e.name,interactive:e.interactive,style:e.style},t)}(e),u)),e.subtitle&&l.push(function(e,t,n,r){const i={value:0},a={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return iL(a,{text:e.subtitle,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),kF({type:OF,role:$L,style:pF,from:r,encode:a},n)}(e,n,r.subtitle,u)),_B(DF({role:SL,from:u,encode:EB(n,i),marks:l,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:a,interactive:o,style:s}),t)}(e.title,t),t.parseLambdas(),t}function JB(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}function XB(e){return(Le(e)?ZB:QB)(e)}function ZB(e){const t=e.length;let n="[";for(let r=0;r<t;++r){const t=e[r];n+=(r>0?",":"")+(Ne(t)?t.signal||XB(t):St(t))}return n+"]"}function QB(e){let t,n,r="{",i=0;for(t in e)n=e[t],r+=(++i>1?",":"")+St(t)+":"+(Ne(n)?n.signal||XB(n):St(n));return r+"}"}JB.prototype={parse(e){return KB(e,this)},fork(){return new JB(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach((t=>{t.$ref=e.id})),e.refs=null),e},proxy(e){const t=e instanceof BL?zL(e):e;return this.add(ON({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(e,t,n){let r,i;e&&(r=e.data||(e.data={}),i=r[t]||(r[t]=[]),i.push(n))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(const r in t.index)n(t.index[r],e,"index:"+r)}return this},pushState(e,t,n){this._encode.push(zL(this.add(IN({pulse:e})))),this._parent.push(t),this._lookup.push(n?zL(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return He(this._parent)},encode(){return He(this._encode)},lookup(){return He(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(vt(e))return PL(e,t);e.signal||_e("Unsupported field reference: "+St(e));const n=e.signal;let r=this.field[n];if(!r){const e={name:this.signalRef(n)};t&&(e.as=t),this.field[n]=r=zL(this.add(gN(e)))}return r},compareRef(e){let t=!1;const n=e=>YL(e)?(t=!0,this.signalRef(e.signal)):function(e){return e&&e.expr}(e)?(t=!0,this.exprRef(e.expr)):e,r=Qe(e.field).map(n),i=Qe(e.order).map(n);return t?zL(this.add(dN({fields:r,orders:i}))):VL(r,i)},keyRef(e,t){let n=!1;const r=this.signals;return e=Qe(e).map((e=>YL(e)?(n=!0,zL(r[e.signal])):e)),n?zL(this.add(yN({fields:e,flat:t}))):function(e,t){const n={$key:e};return t&&(n.$flat=!0),n}(e,t)},sortRef(e){if(!e)return e;const t=WL(e.op,e.field),n=e.order||"ascending";return n.signal?zL(this.add(dN({fields:t,orders:this.signalRef(n.signal)}))):VL(t,n)},event(e,t){const n=e+":"+t;if(!this.events[n]){const r=this.id();this.streams.push({id:r,source:e,type:t}),this.events[n]=r}return this.events[n]},hasOwnSignal(e){return dt(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&_e("Duplicate signal name: "+St(e));const n=t instanceof BL?t:this.add(HL(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||_e("Unrecognized signal name: "+St(e)),this.signals[e]},signalRef(e){return this.signals[e]?zL(this.signals[e]):(dt(this.lambdas,e)||(this.lambdas[e]=this.add(HL(null))),zL(this.lambdas[e]))},parseLambdas(){const e=Object.keys(this.lambdas);for(let t=0,n=e.length;t<n;++t){const n=e[t],r=FR(n,this),i=this.lambdas[n];i.params=r.$params,i.update=r.$expr}},property(e){return e&&e.signal?this.signalRef(e.signal):e},objectProperty(e){return e&&Ne(e)?this.signalRef(e.signal||XB(e)):e},exprRef(e,t){const n={expr:FR(e,this)};return t&&(n.expr.$name=t),zL(this.add(pN(n)))},addBinding(e,t){this.bindings||_e("Nested signals do not support binding: "+St(e)),this.bindings.push(ut({signal:e},t))},addScaleProj(e,t){dt(this.scales,e)&&_e("Duplicate scale or projection name: "+St(e)),this.scales[e]=this.add(t)},addScale(e,t){this.addScaleProj(e,wN(t))},addProjection(e,t){this.addScaleProj(e,TN(t))},getScale(e){return this.scales[e]||_e("Unrecognized scale name: "+St(e)),this.scales[e]},scaleRef(e){return zL(this.getScale(e))},scaleType(e){return this.getScale(e).params.type},projectionRef(e){return this.scaleRef(e)},projectionType(e){return this.scaleType(e)},addData(e,t){return dt(this.data,e)&&_e("Duplicate data set name: "+St(e)),this.data[e]=t},getData(e){return this.data[e]||_e("Undefined data set name: "+St(e)),this.data[e]},addDataPipeline(e,t){return dt(this.data,e)&&_e("Duplicate data set name: "+St(e)),this.addData(e,hB.fromEntries(this,t))}},ut(Wo,e,n,r,i,s,u,l,c,d,f,h);const ej=({color:e,lineType:t,opacity:n,size:r})=>{let i=[e,t,n,r].map((e=>Array.isArray(e)?e[0]:e)).filter((e=>"string"==typeof e));i=[...new Set(i)];let a=[e,t,n].map((e=>Array.isArray(e)?e[1]:void 0)).filter((e=>"string"==typeof e));return a=[...new Set(a)],{facets:i,secondaryFacets:a}},tj=(e=[])=>{const t=[re.COLOR_SCALE,re.LINE_TYPE_SCALE,re.OPACITY_SCALE,"secondaryColor","secondaryLineType","secondaryOpacity"].reduce(((t,n)=>{const r=e.find((e=>e.name===n));return(null==r?void 0:r.domain)&&"fields"in r.domain&&r.domain.fields.length?[...t,r.domain.fields[0].toString()]:t}),[]);return[...new Set(t)]},nj=e=>{if(Array.isArray(e))return e;switch(e){case"dashed":return[7,4];case"dotted":return[0,4];case"dotDash":return[2,3,7,4];case"shortDash":return[3,4];case"longDash":return[11,4];case"twoDash":return[5,2,11,2];default:return[]}},rj=e=>{if("number"==typeof e)return e;switch(e){case"XS":return 1;case"S":return 1.5;case"L":return 3;case"XL":return 4;default:return 2}},ij=e=>"rounded-square"===e?re.ROUNDED_SQUARE_PATH:"visibility-off"===e?re.VISIBILITY_OFF_PATH:e,aj=e=>({date:re.DATE_PATH,sentimentNegative:re.SENTIMENT_NEGATIVE_PATH,sentimentNeutral:re.SENTIMENT_NEUTRAL_PATH,sentimentPositive:re.SENTIMENT_POSITIVE_PATH}[e]||e),oj=e=>Math.pow(sj(e),2),sj=e=>{if("number"==typeof e)return e;switch(e){case"XS":return 6;case"S":return 8;case"L":return 12;case"XL":return 16;default:return 10}},lj=[{name:re.TABLE,values:[],transform:[{type:"identifier",as:re.MARK_ID}]},{name:re.FILTERED_TABLE,source:re.TABLE}],uj=(e={},t={})=>{const{backgroundColor:n,colorScheme:r="light",description:i,title:a}=t,o={usermeta:{},title:a||void 0,description:i,data:lj,background:n?(0,ie.getS2ColorValue)(n,r):void 0};return Object.assign(Object.assign({},o),e||{})},cj=(e,t)=>e.map((e=>{const n=t[e.name];return n&&(e.values=n),e})),dj=(e,t)=>"time"===t?re.DEFAULT_TRANSFORMED_TIME_DIMENSION:e,fj=e=>{switch(e){case"currency":return"$,.2f";case"standardNumber":return",";case"percentage":return"~%";default:return e}},hj=e=>e.replaceAll("\\",String.raw`\\`).replaceAll('"',String.raw`\"`);function pj(e,t){const n=(0,ie.getSpectrum2VegaConfig)(t);return e?function(...e){return e.reduce(((e,t)=>{for(const n in t)if("signals"===n)e.signals=je(e.signals,t.signals);else{const r="legend"===n?{layout:1}:"style"===n||null;Be(e,n,t[n],r)}return e}),{})}(n,e):n}const mj=ne(((e,t,n)=>{var r;e.interactiveMarks=[...null!==(r=e.interactiveMarks)&&void 0!==r?r:[],...t?[{name:t,dimension:n}]:[]]})),gj=ne(((e,t,n,r)=>{var i;e.divergingBarMarks=[...null!==(i=e.divergingBarMarks)&&void 0!==i?i:[],{name:t,dimension:n,metric:r}]})),yj=ne(((e,t)=>{var n;e.animatedMarks=[...null!==(n=e.animatedMarks)&&void 0!==n?n:[],...t?[t]:[]]})),_j=(e,t,n,r,i)=>{const a=r||(0,ae.toCamelCase)(`${n} ${t}`);let o=e.findIndex((e=>e.name===a));return-1===o&&(o=e.length,e.push($j(t,n,Object.assign({name:a},i?{domain:{data:i,fields:[]}}:{})))),o},vj=(e,t,n)=>{let r=e.findIndex((e=>e.name===t));return-1===r&&(r=e.length,e.push({name:t,type:n})),r},bj=ne(((e,t)=>(t.forEach((t=>{Ij(e.domain)?e.domain.fields.includes(t)||e.domain.fields.push(t):e.domain={data:re.TABLE,fields:[t]}})),e))),xj=(e,{scaleType:t,dimension:n,padding:r})=>{const i=_j(e,t,"x"),a=[dj(n,t)];e[i]=bj(e[i],a),void 0!==r&&(e[i]=Ej(e[i],r))},Ej=ne(((e,t)=>{"padding"in e&&(e.padding=t),"paddingOuter"in e&&(e.paddingOuter=t)})),Sj=(e,t,n="y",r,i)=>{const a=_j(e,"linear",n,r,i);e[a]=bj(e[a],t)},Aj=(e,t,n)=>{if("string"==typeof n||Array.isArray(n)&&n.length){const r=vj(e,t),i=Array.isArray(n)?n[0]:n;e[r]=bj(e[r],[i])}},$j=(e,t,n)=>Object.assign(Object.assign({},Tj(e,t)),n),Tj=(e,t,n="vertical")=>{const r=t==={vertical:"x",horizontal:"y"}[n],i=Object.assign({name:(0,ae.toCamelCase)(`${t} ${e}`),type:e,range:"x"===t?"width":"height",domain:{data:re.FILTERED_TABLE,fields:[]}},r?Oj(e):{});if("ordinal"===i.type){const{name:e,type:t,domain:n}=i;return{name:e,type:t,domain:n}}return"linear"!==i.type||r?i:Object.assign(Object.assign({},i),{nice:!0,zero:!0})},Oj=e=>{switch(e){case"band":{const{paddingInner:e,paddingOuter:t}=Dj(re.PADDING_RATIO);return{paddingInner:e,paddingOuter:t}}case"linear":case"time":return{padding:re.LINEAR_PADDING};case"point":return{paddingOuter:re.DISCRETE_PADDING};default:return{}}},Dj=(e,t)=>{const n=e;return{paddingInner:n,paddingOuter:void 0===t?re.DISCRETE_PADDING-(1-n)/2:t}},Mj=(e,t)=>(0,ae.toCamelCase)(`${e} ${t}`),wj=(e,t)=>({name:e,type:"ordinal",range:t,domain:{data:re.TABLE,fields:[]}}),Ij=e=>Boolean(e&&!Array.isArray(e)&&"data"in e&&"fields"in e),Cj=(e,t)=>{if(t||e.length)return{value:"pointer"}};function Rj(e,t,n,r){if(e.length){const i={signal:`merge(${n?"datum.datum":"datum"}, {'${re.COMPONENT_NAME}': '${t}'}${r?`, ${JSON.stringify(r)}`:""})`},a=e[0].excludeDataKeys;return(null==a?void 0:a.length)?[...a.map((e=>({test:`datum.${e}`,signal:"false"}))),i]:i}}const kj=(e,t=!1)=>e?{stroke:{signal:re.BACKGROUND_COLOR},strokeWidth:{value:t?1.5:1},strokeJoin:{value:"round"}}:{},Lj=e=>{const t="hasOnClick"in e&&e.hasOnClick,n="hasOnContextMenu"in e&&e.hasOnContextMenu,r="metricRanges"in e&&e.metricRanges||[],i="trendlines"in e&&e.trendlines||[];return t||n||Nj(e)||Fj(e)||i.some((e=>e.displayOnHover))||r.some((e=>e.displayOnHover))},Nj=e=>{var t;return Boolean("chartPopovers"in e&&(null===(t=e.chartPopovers)||void 0===t?void 0:t.length))},Fj=e=>{var t;return Boolean("chartInspects"in e&&(null===(t=e.chartInspects)||void 0===t?void 0:t.length))},Bj=(e,t,n="ordinal")=>{const r="linear"===n?re.LINEAR_COLOR_SCALE:re.COLOR_SCALE;return Array.isArray(e)?{signal:`scale('colors', datum.${e[0]})[indexof(domain('secondaryColor'), datum.${e[1]})% length(scale('colors', datum.${e[0]}))]`}:"string"==typeof e?{scale:r,field:e}:{value:(0,ie.getS2ColorValue)(e.value,t)}},jj=(e,t,n="ordinal")=>{const r=Bj(e,t,n);return"signal"in r?r.signal:"scale"in r&&"field"in r?`scale('${r.scale}', datum.${r.field})`:"value"in r&&r.value?`'${r.value}'`:""},Hj=e=>{if(e)return Array.isArray(e)?{signal:`scale('lineWidths', datum.${e[0]})[indexof(domain('secondaryLineWidth'), datum.${e[1]})% length(scale('lineWidths', datum.${e[0]}))]`}:"string"==typeof e?{scale:re.LINE_WIDTH_SCALE,field:e}:{value:rj(e.value)}},zj=e=>Array.isArray(e)?{signal:`scale('opacities', datum.${e[0]})[indexof(domain('secondaryOpacity'), datum.${e[1]})% length(scale('opacities', datum.${e[0]}))]`}:"string"==typeof e?{signal:`scale('${re.OPACITY_SCALE}', datum.${e})`}:{value:e.value},Pj=e=>"string"==typeof e?{scale:re.SYMBOL_SIZE_SCALE,field:e}:{value:oj(e.value)},Uj=e=>Array.isArray(e)?{signal:`scale('lineTypes', datum.${e[0]})[indexof(domain('secondaryLineType'), datum.${e[1]})% length(scale('lineTypes', datum.${e[0]}))]`}:"string"==typeof e?{scale:re.LINE_TYPE_SCALE,field:e}:{value:nj(e.value)},Vj=e=>null==e?{signal:re.CHART_SIZE_FONT_SIZE}:{value:e},Wj=(e,t)=>{const n=Mj("x",e);return"time"===e?{scale:n,field:re.DEFAULT_TRANSFORMED_TIME_DIMENSION}:{scale:n,field:t}},Gj=(e,t)=>({scale:e||"yLinear",field:t}),qj=(e,t,n,r,i,a)=>({name:`${r}_pointsForVoronoi`,description:`${r}_pointsForVoronoi`,type:"symbol",from:{data:e},interactive:!1,encode:{enter:{y:Gj(a,n),fill:{value:"transparent"},stroke:{value:"transparent"}},update:{x:Wj(i,t)}}}),Yj=(e,t)=>{const{chartPopovers:n,chartInspects:r,name:i}=e,a="hasOnClick"in e&&e.hasOnClick;return{name:`${i}_voronoi`,description:`${i}_voronoi`,type:"path",from:{data:t},encode:{enter:{fill:{value:"transparent"},stroke:{value:"transparent"},isVoronoi:{value:!0},tooltip:Rj(null!=r?r:[],i,!0)},update:{cursor:Cj(null!=n?n:[],a)}},transform:[{type:"voronoi",x:"datum.x",y:"datum.y",size:[{signal:"max(width, 1)"},{signal:"max(height, 1)"}]}]}},Kj=(e,t,n,r,i,a,o)=>({name:`${i}_hoverGroup`,type:"group",marks:Xj().map(((r,s)=>({name:Jj(i,s),type:"symbol",from:{data:t},encode:{enter:{shape:{value:re.HOVER_SHAPE},y:o,fill:{value:"transparent"},stroke:{value:"transparent"},tooltip:Rj(e,i,!1),size:Qj(r)},update:{x:Wj(a,n)}}})))}),Jj=(e,t)=>`${e}_hover${t}`,Xj=()=>new Array(re.HOVER_SHAPE_COUNT).fill(0).map(((e,t)=>re.HOVER_SIZE/2**t)),Zj=e=>new Array(re.HOVER_SHAPE_COUNT).fill(0).map(((t,n)=>Jj(e,n))),Qj=e=>({signal:`${e} * max(width, 1) / 1000`}),eH=e=>{const{highlightedItem:t,idKey:n,name:r}=e,i=[re.DEFAULT_OPACITY_RULE];return Lj(e)||void 0!==t?(cH(i,e),Nj(e)?[{test:`isValid(${re.SELECTED_ITEM})`,signal:`${re.SELECTED_ITEM} === datum.${n} ? 1 : ${re.FADE_FACTOR}`},{test:`isValid(${re.SELECTED_GROUP})`,signal:`${re.SELECTED_GROUP} === datum.${r}_selectedGroupId ? 1 : ${re.FADE_FACTOR}`},...i]:i):i},tH=(e,t)=>{var n;return Lj(e)||void 0!==e.highlightedItem?t:"trendlines"in e&&(null===(n=e.trendlines)||void 0===n?void 0:n.some((e=>Lj(e))))?`${t}Trendline`:void 0};const nH=e=>e.chartInspects.map((t=>rH(t,e.name))),rH=(e,t)=>{var{highlightBy:n="item",targets:r=["item"]}=e,i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["highlightBy","targets"]);return Object.assign({highlightBy:n,markName:t,targets:r},i)},iH=(e,t,n=!0)=>{const r=nH(t);for(const{highlightBy:i,markName:a}of r){if("item"===i)return;const r=ue(e);r.transform||(r.transform=[]),"dimension"===i&&"donut"!==t.markType&&"venn"!==t.markType?r.transform.push(aH([t.dimension],a)):"series"===i?r.transform.push(aH([re.SERIES_ID],a)):Array.isArray(i)&&r.transform.push(aH(i,a)),n&&e.push(oH(a))}},aH=(e,t)=>({type:"formula",as:`${t}_${re.GROUP_ID}`,expr:e.map((e=>`datum.${e}`)).join(' + " | " + ')}),oH=e=>({name:`${e}_highlightedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`${re.HIGHLIGHTED_GROUP} === datum.${e}_${re.GROUP_ID}`}]}),sH=e=>nH(e).some((({highlightBy:e})=>e&&"item"!==e)),lH=(e,t)=>{if(sH(t)){const n=e.find((e=>e.name===re.HIGHLIGHTED_GROUP));let r=t.name,i=`datum.${r}_${re.GROUP_ID}`;if("interactionMode"in t&&t.interactionMode===re.INTERACTION_MODE.ITEM)for(const e of Zj(r))uH(n,e,i);["scatter","line"].includes(t.markType)&&(i=`datum.${i}`,r+="_voronoi"),uH(n,r,i)}},uH=(e,t,n)=>{void 0===e.on&&(e.on=[]),e.on.push({events:`@${t}:mouseover`,update:n},{events:`@${t}:mouseout`,update:"null"})},cH=(e,t)=>{var n;const{name:r}=t,i=e.findIndex((e=>{var t;return null===(t=e.test)||void 0===t?void 0:t.includes(re.HOVERED_ITEM)}))+1,a=`${r}_${re.HOVERED_ITEM}`;let o=t.idKey;sH(t)&&(o=`${r}_${re.GROUP_ID}`);const s=[{test:`isValid(${a})`,signal:`${a}.${o} === datum.${o} ? 1 : ${re.FADE_FACTOR}`},{test:`isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) && length(${re.CONTROLLED_HIGHLIGHTED_ITEM}) > 0 && indexof(${re.CONTROLLED_HIGHLIGHTED_ITEM}, datum.${t.idKey}) === -1`,value:re.FADE_FACTOR}];if(dH(s,t),"comboSiblingNames"in t&&(null===(n=t.comboSiblingNames)||void 0===n?void 0:n.length)){const e=t.comboSiblingNames.map((e=>`isValid(${e}_${re.HOVERED_ITEM})`)).join(" || ");console.log("test",e),s.push({test:e,value:re.FADE_FACTOR})}e.splice(i,0,...s)},dH=(e,t)=>{if("bar"!==t.markType||!("dimension"in t))return;const{name:n,dimension:r}=t,i=`${n}_${re.DIMENSION_HOVER_AREA}_${re.HOVERED_ITEM}`;e.push({test:`isValid(${i})`,signal:`${i}.${r} === datum.${r} ? 1 : ${re.FADE_FACTOR}`})},fH=(e,t)=>e.some((e=>e.name===t)),hH=(e,t,n)=>{const r=`domain("${e}Entries")[datum.index]`;return t?(null==n?void 0:n.length)?`indexof(pluck(data("${re.FILTERED_TABLE}"),"${e}_${re.GROUP_ID}"), ${r}) !== -1 ? ${r} : null`:`indexof(hiddenSeries, ${r}) === -1 ? ${r} : null`:r},pH=(e,t=null)=>({name:e,value:t}),mH=()=>({name:`${re.FIRST_RSC_SERIES_ID}`,value:null,update:`length(domain("${re.COLOR_SCALE}")) > 0 ? domain("${re.COLOR_SCALE}")[0] : null`}),gH=()=>({name:`${re.LAST_RSC_SERIES_ID}`,value:null,update:`length(domain("${re.COLOR_SCALE}")) > 0 ? peek(domain("${re.COLOR_SCALE}")) : null`}),yH=(e,t,n,r=1,i,a)=>{n=n||t;const o=`${t}_${re.HOVERED_ITEM}`;let s=e.find((e=>e.name===o));s||(s={description:`Tracks the hovered item for ${t}`,name:o,value:null,on:[]},e.push(s)),void 0===s.on&&(s.on=[]);const l=new Array(r).fill("datum").join("."),u=[null==i?void 0:i.map((e=>`${l}.${e}`)).join(" || "),a].filter(Boolean).join(" || "),c=u?`(${u}) ? null : ${l}`:l;s.on.push({events:`@${n}:mouseover`,update:c},{events:`@${n}:mouseout`,update:"null"})},_H=(e,t=`${e.name}_facet`)=>{const{name:n,chartPopovers:r,chartInspects:i,color:a,colorScheme:o,metricStart:s,metricEnd:l,isStacked:u,scaleType:c,dimension:d,opacity:f}=e;return{name:n,description:n,type:"area",from:{data:t},interactive:Lj(e),encode:{enter:Object.assign({y:{scale:"yLinear",field:s},y2:{scale:"yLinear",field:l},fill:Bj(a,o),tooltip:Rj(null!=i?i:[],n)},kj(u,!0)),update:{x:bH(c,d),cursor:Cj(null!=r?r:[]),fillOpacity:{value:f},opacity:vH(e)}}}};function vH(e){const{chartPopovers:t,displayOnHover:n,interactiveMarkName:r,isHighlightedByGroup:i,isMetricRange:a,highlightedItem:o,name:s}=e;if(a&&n){const e=[{test:`isValid(${r}_${re.HOVERED_ITEM})`,signal:`${r}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},{test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'))`,signal:`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1 ? 1 : ${re.FADE_FACTOR}`},{test:`isValid(${re.SELECTED_SERIES})`,signal:`${re.SELECTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},{value:1}];return r&&e.unshift({test:`isValid(${r}_${re.HOVERED_ITEM})`,signal:`${r}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}),e}if(!Lj(e)&&!o)return[re.DEFAULT_OPACITY_RULE];const l=[];return i&&l.push({test:`indexof(pluck(data('${s}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1`,value:1}),!a&&(null==t?void 0:t.length)?[...l,{test:`isValid(${re.SELECTED_SERIES})`,signal:`${re.SELECTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},{test:`length(data('${s}_highlightedData'))`,signal:`indexof(pluck(data('${s}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? 1 : ${re.FADE_FACTOR}`},{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},re.DEFAULT_OPACITY_RULE]:[...l,{test:`isValid(${s}_${re.HOVERED_ITEM})`,signal:`${s}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},{test:`length(data('${s}_highlightedData'))`,signal:`indexof(pluck(data('${s}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? 1 : ${re.FADE_FACTOR}`},{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},re.DEFAULT_OPACITY_RULE]}const bH=(e,t)=>"time"===e?{scale:"xTime",field:re.DEFAULT_TRANSFORMED_TIME_DIMENSION}:"linear"===e?{scale:"xLinear",field:t}:{scale:"xPoint",field:t};const xH=ne(((e,t)=>{var n,r,i,a,o,{chartPopovers:s=[],chartInspects:l=[],color:u=re.DEFAULT_COLOR,colorScheme:c=re.DEFAULT_COLOR_SCHEME,dimension:d=re.DEFAULT_TIME_DIMENSION,index:f=0,metric:h=re.DEFAULT_METRIC,metricStart:p,metricEnd:m,name:g,opacity:y=.8,scaleType:_="time"}=t,v=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["chartPopovers","chartInspects","color","colorScheme","dimension","index","metric","metricStart","metricEnd","name","opacity","scaleType"]);const b=(0,ae.toCamelCase)(g||`area${f}`),x=Object.assign({chartPopovers:s,chartInspects:l,color:u,colorScheme:c,dimension:d,index:f,interactiveMarkName:tH({chartPopovers:s,chartInspects:l,highlightedItem:v.highlightedItem},b),metric:h,name:b,scaleType:_,opacity:y,metricStart:p,metricEnd:m},v);return!p&&!m||p&&m||(console.error(`${m?"metricEnd":"metricStart"} is defined but ${m?"metricStart":"metricEnd"} is not. Both must be defined in order to use the "start and end" method. Defaulting back to 'metric = ${h}'`),x.metricEnd=void 0,x.metricStart=void 0),e.usermeta=mj(null!==(n=e.usermeta)&&void 0!==n?n:{},x.interactiveMarkName),e.data=EH(null!==(r=e.data)&&void 0!==r?r:[],x),e.signals=AH(null!==(i=e.signals)&&void 0!==i?i:[],x),e.scales=TH(null!==(a=e.scales)&&void 0!==a?a:[],x),e.marks=OH(null!==(o=e.marks)&&void 0!==o?o:[],x),e})),EH=ne(((e,t)=>{var n,r;const{color:i,dimension:a,highlightedItem:o,metric:s,metricEnd:l,metricStart:u,name:c,order:d,scaleType:f}=t;if("time"===f){const t=le(e);t.transform=oe(null!==(n=t.transform)&&void 0!==n?n:[],a)}if(!l||!u){const t=ue(e);t.transform=[...null!==(r=t.transform)&&void 0!==r?r:[],{type:"stack",groupby:[a],field:s,sort:se(d),as:[`${s}0`,`${s}1`]}]}if(Lj(t)||void 0!==o){const n=Nj(t),r=Fj(t);e.push(SH(c,t.idKey,r,n,sH(t))),n&&e.push({name:`${c}_selectedDataSeries`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`isValid(${re.SELECTED_SERIES}) && ${re.SELECTED_SERIES} === datum.${i}`}]})}iH(e,t,!1)})),SH=(e,t,n,r,i)=>{let a="";return i?a+=`${e}_controlledHoveredGroup === datum.${e}_${re.GROUP_ID}`:(a+=`isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) && indexof(${re.CONTROLLED_HIGHLIGHTED_ITEM}, datum.${t}) > -1 || ${re.CONTROLLED_HIGHLIGHTED_ITEM} === datum.${t}`,n&&(a=`${e}_controlledHoveredId === datum.${t} || ${a}`)),r&&(a=`isValid(${re.SELECTED_ITEM}) && ${re.SELECTED_ITEM} === datum.${t} || !isValid(${re.SELECTED_ITEM}) && ${a}`),{name:`${e}_highlightedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:a}]}},AH=ne(((e,t)=>{var n;const{chartInspects:r,name:i}=t;Lj(t)&&(yH(e,i,void 0,1,null===(n=r[0])||void 0===n?void 0:n.excludeDataKeys),t.highlightedItem&&$H(e,i),sH(t)?e.push((e=>({name:`${e}_controlledHoveredGroup`,value:null,on:[{events:`@${e}:mouseout`,update:"null"}]}))(i)):e.push((e=>({name:`${e}_controlledHoveredId`,value:null,on:[{events:`@${e}:mouseout`,update:"null"}]}))(i)),lH(e,t))})),$H=(e,t)=>{const n=e.find((e=>e.name===re.CONTROLLED_HIGHLIGHTED_ITEM));n&&(void 0===n.on&&(n.on=[]),n.on.push({events:`@${t}:mouseover`,update:"null"}))},TH=ne(((e,{metric:t,metricEnd:n,metricStart:r,dimension:i,color:a,scaleType:o,padding:s})=>(xj(e,{scaleType:o,dimension:i,padding:s}),Aj(e,re.COLOR_SCALE,a),n&&r||(r=`${t}0`,n=`${t}1`),Sj(e,[r,n]),e))),OH=ne(((e,t)=>{const{chartPopovers:n,chartInspects:r,color:i,colorScheme:a,dimension:o,highlightedItem:s,metric:l,name:u,opacity:c,scaleType:d}=t;let{metricStart:f,metricEnd:h}=t,p=!1;return h&&f||(p=!0,f=`${l}0`,h=`${l}1`),e.push({name:`${u}_group`,type:"group",from:{facet:{name:`${u}_facet`,data:re.FILTERED_TABLE,groupby:i}},marks:[_H({chartPopovers:n,chartInspects:r,color:i,colorScheme:a,dimension:o,isHighlightedByGroup:sH(t),isStacked:p,highlightedItem:s,metricStart:f,metricEnd:h,name:u,opacity:c,scaleType:d}),...DH(t)]},...wH({chartPopovers:n,name:u,scaleType:d,color:i,dimension:o,metricEnd:h,metricStart:f}),...MH(t)),e})),DH=e=>{const{name:t,dimension:n,metric:r,scaleType:i}=e;return Lj(e)?[{name:`${t}_anchorPoint`,type:"symbol",from:{data:`${t}_highlightedData`},interactive:!1,encode:{enter:{y:{scale:"yLinear",field:`${r}1`},stroke:{value:"transparent"},fill:{value:"transparent"}},update:{x:bH(i,n)}}}]:[]},MH=e=>{const{name:t,dimension:n,highlightedItem:r,metric:i,scaleType:a,color:o}=e;if(!Lj(e)&&void 0===r)return[];const s=[{name:`${t}_point`,type:"symbol",from:{data:`${t}_highlightedData`},interactive:!1,encode:{enter:{y:{scale:"yLinear",field:`${i}1`},stroke:{scale:re.COLOR_SCALE,field:o},fill:{signal:re.BACKGROUND_COLOR}},update:{x:bH(a,n)}}}];return(nH(e).some((({highlightBy:e})=>"string"==typeof e&&["dimension","item"].includes(e)))||r)&&s.unshift({name:`${t}_rule`,type:"rule",from:{data:`${t}_highlightedData`},interactive:!1,encode:{enter:{y:{value:0},y2:{signal:"height"},strokeWidth:{value:1}},update:{x:bH(a,n)}}}),s},wH=({chartPopovers:e,name:t,scaleType:n,color:r,dimension:i,metricEnd:a,metricStart:o})=>e.length?[{name:`${t}_selectBorder`,type:"area",from:{data:`${t}_selectedDataSeries`},interactive:!1,encode:{enter:{y:{scale:"yLinear",field:o},y2:{scale:"yLinear",field:a},fill:{scale:re.COLOR_SCALE,field:r},stroke:{value:ie.spectrumColors.light["static-blue"]},strokeWidth:{value:2},strokeJoin:{value:"round"}},update:{x:bH(n,i)}}}]:[];var IH=a(743),CH=a.n(IH);const RH=(e,{name:t,dataKey:n,color:r,colorScheme:i,options:a,format:o})=>{e.push(kH(t,a,i)),"summary"===o?e.push(NH(t,n,r,i)):e.push(LH(t,n,r,i),FH(t))},kH=(e,t,n)=>({name:`${e}_details`,values:t.map((e=>Object.assign(Object.assign({},e),{color:(0,ie.getS2ColorValue)(e.color,n)})))}),LH=(e,t,n,r)=>({name:`${e}_aggregate`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${t}`},{type:"flatten",fields:[t],as:[`${e}_id`]},{type:"aggregate",groupby:[`${e}_id`],fields:["datetime","datetime"],ops:["min","max"]},{type:"formula",expr:"datum.max_datetime - datum.min_datetime",as:"width"},{type:"formula",expr:"datum.width / 2 + datum.min_datetime",as:"center"},{type:"aggregate",groupby:["center"],fields:["min_datetime","max_datetime","width",t,t],ops:["min","max","max","count","values"],as:["lower","upper","width","number","annotations"]},{type:"formula",expr:`datum.annotations[0].${e}_id`,as:"id"},{type:"lookup",from:`${e}_details`,key:"id",values:["color"],fields:["id"]},{type:"formula",expr:`datum.number > 1 || datum.color == null ? '${(0,ie.getS2ColorValue)(n,r)}' : datum.color`,as:"color"}]}),NH=(e,t,n,r)=>({name:`${e}_summary`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${t}`},{type:"flatten",fields:[t],as:[`${e}_id`]},{type:"aggregate",groupby:[`${e}_id`]},{type:"aggregate",groupby:["center"],fields:[t,t],ops:["count","values"],as:["number","annotations"]},{type:"formula",expr:`datum.annotations[0].${e}_id`,as:"id"},{type:"lookup",from:`${e}_details`,key:"id",values:["color"],fields:["id"]},{type:"formula",expr:`datum.number > 1 || datum.color == null ? '${(0,ie.getS2ColorValue)(n,r)}' : datum.color`,as:"color"}]}),FH=e=>({name:`${e}_range`,source:`${e}_aggregate`,transform:[{type:"filter",expr:`${e}_highlighted && datum.center == ${e}_highlighted.center && ${e}_highlighted.width > 0`}]}),BH=(e,{name:t,format:n})=>{"span"===n&&e.push(jH(t),HH(t),zH(t))},jH=e=>({name:`${e}_highlighted`,value:null,on:[{events:`@${e}_icon:mouseover`,update:"datum"},{events:`@${e}_icon:mouseout`,update:`${e}_clicked`}]}),HH=e=>({name:`${e}_clicked`,value:{},on:[{events:{markname:`${e}_icon`,type:"mousedown",between:[{type:"mousedown"},{type:"mouseup"}]},update:"datum"},{events:"window:mouseup",update:"{}"}]}),zH=e=>({name:`${e}_selected`,update:`${e}_clicked.center`}),PH=(e,t,n)=>{const{format:r}=t;"summary"===r?e.push(UH(t)):e.push(VH(t,n))},UH=({chartPopovers:e,name:t,offset:n})=>({name:`${t}_group`,type:"group",from:{data:`${t}_summary`},marks:[{name:`${t}_icon`,type:"path",from:{data:`${t}_summary`},zindex:2,encode:{enter:{stroke:{value:"transparent"},strokeWidth:{value:2},cursor:Cj(e)},update:{path:{signal:`'${re.ANNOTATION_SINGLE_ICON_SVG}'`},fill:{field:"color"},xc:{signal:"width - 12"},yc:{signal:`height + ${n}`}}}}]}),VH=({chartPopovers:e,name:t,offset:n},r)=>({name:`${t}_group`,type:"group",marks:[{name:`${t}_range`,type:"group",marks:[{type:"rect",from:{data:`${t}_range`},encode:{update:{x:{scale:r,field:"lower",band:.5},y:{signal:`height + ${n}`},width:{value:2},height:{value:-4},fill:{field:"color"},fillOpacity:{signal:`${t}_selected ? 1.0 : 0.2`}}}},{type:"rect",from:{data:`${t}_range`},encode:{update:{x:{scale:r,field:"lower",band:.5},y:{signal:`height + ${n}`},x2:{scale:r,field:"upper",band:.5},height:{value:2},fill:{field:"color"},fillOpacity:{signal:`${t}_selected ? 1.0 : 0.2`}}}},{type:"rect",from:{data:`${t}_range`},encode:{update:{x:{scale:r,field:"upper",band:.5},y:{signal:`height + ${n} + 2`},width:{value:2},height:{value:-6},fill:{field:"color"},fillOpacity:{signal:`${t}_selected ? 1.0 : 0.2`}}}}]},{name:`${t}_icon`,type:"path",from:{data:`${t}_aggregate`},encode:{enter:{stroke:{value:"transparent"},strokeWidth:{value:2},cursor:Cj(e)},update:{path:{signal:`datum.width > 0 ? '${re.ANNOTATION_RANGED_ICON_SVG}' : '${re.ANNOTATION_SINGLE_ICON_SVG}'`},fill:{field:"color"},xc:{scale:r,field:"center",band:.5},yc:{signal:`height + ${n}`},fillOpacity:{signal:`(${t}_selected && ${t}_selected != datum.center) ? 0.0 : 1.0`}}}}]}),WH=(e,{offset:t},n)=>{e.push({scale:n,orient:"bottom",values:[],offset:t})},GH=({axisAnnotations:e,colorScheme:t,name:n,position:r,scaleType:i})=>"bottom"!==r?[]:e.map(((e,r)=>qH(e,r,n,t,i))),qH=({chartPopovers:e=[],chartInspects:t=[],name:n,format:r,offset:i=re.DEFAULT_AXIS_ANNOTATION_OFFSET,color:a=re.DEFAULT_AXIS_ANNOTATION_COLOR,dataKey:o="annotations",options:s=[]},l,u,c,d)=>({chartPopovers:e,chartInspects:t,color:a,colorScheme:c,dataKey:o,name:null!=n?n:`${u}Annotation${l}`,offset:i,options:s,axisName:u,format:null!=r?r:"time"===d?"span":"summary"});function YH(e){const t=`${e}Primary`,n=`${e}Secondary`;return{primaryScale:t,secondaryScale:n,primaryDomain:`${t}Domain`,secondaryDomain:`${n}Domain`}}const KH=e=>{var t;if(e.domain){if("field"in e.domain)return e.domain.field.toString();if("fields"in e.domain)return null===(t=e.domain.fields[0])||void 0===t?void 0:t.toString()}},JH=e=>`${e}_labelHover`,XH=(e,t=[])=>e?t.filter((t=>t.dimension===e)):[],ZH=e=>{const t=e.map((({name:e,dimension:t})=>{const n=`${e}_${re.DIMENSION_HOVER_AREA}_${re.HOVERED_ITEM}`;return{test:`isValid(${n})`,signal:`${n}.${t} === datum.value ? 1 : ${re.FADE_FACTOR}`}}));return t.push({value:1}),t},QH=(e,t="value",n,r)=>{const i=`isNumber(datum['${t}'])`;return"shortNumber"===e?[{test:i,signal:`formatShortNumber(datum['${t}'])`}]:"shortCurrency"===e?[{test:`${i} && abs(datum['${t}']) >= 1000`,signal:`upper(replace(format(datum['${t}'], '$.3~s'), /(\\d+)G/, '$1B'))`},{test:i,signal:`format(datum['${t}'], '$')`}]:r&&n?[{test:i,signal:`formatLocaleCurrency(datum, "${n}", "${r}", "${e}")`}]:[{test:i,signal:`format(datum['${t}'], '${fj(e)}')`}]},ez=(e,t)=>{const{grid:n,hideDefaultLabels:r,labelAlign:i,labelFontWeight:a,labelLimit:o,labelOrientation:s,tickCountLimit:l,tickCountMinimum:u,position:c,scaleType:d,ticks:f,tickMinStep:h,title:p,vegaLabelAlign:m,vegaLabelBaseline:g,vegaLabelOffset:y,vegaLabelPadding:_,hasTooltip:v}=e;return Object.assign(Object.assign(Object.assign(Object.assign({scale:t,orient:c,grid:n,ticks:f,tickCount:pz(c,u,l,n),tickMinStep:"linear"!==d?void 0:h,title:p,labelAngle:xz(s),labelFontWeight:a},void 0!==o&&{labelLimit:o}),{labelOffset:Ez(i,t,y),labelPadding:_,labels:!r}),_z(c,s,i,m,g)),{encode:{labels:{interactive:Boolean(v),update:Object.assign({text:Sz(e,t)},v?{tooltip:{signal:"datum.value"}}:{})}}})},tz=(e,{granularity:t,grid:n,labelAlign:r,labelOrientation:i,position:a,tickCountLimit:o,tickCountMinimum:s,ticks:l,title:u,vegaLabelAlign:c,vegaLabelBaseline:d})=>{const{tickCount:f}=gz(t),h=void 0!==o||void 0!==s?pz(a,s,o,n):f;return Object.assign(Object.assign({scale:e,orient:a,grid:n,ticks:l,tickCount:e.includes("Time")?h:void 0,title:u,formatType:"time",labelAngle:xz(i),labelSeparation:12},nz(t,a)),_z(a,i,r,c,d))},nz=(e,t)=>{const{secondaryLabelFormat:n,primaryLabelFormat:r}=gz(e);return["left","right"].includes(t)?{format:`${r} ${n}`,encode:{labels:{interactive:!1,update:{text:{signal:"formatVerticalAxisTimeLabels(datum)"}}}}}:{format:n}},rz=(e,{granularity:t,labelAlign:n,labelOrientation:r,labelFontWeight:i,position:a,tickCountLimit:o,tickCountMinimum:s,ticks:l,vegaLabelAlign:u,vegaLabelBaseline:c})=>{if(["left","right"].includes(a))return[];const{primaryLabelFormat:d,tickCount:f}=gz(t),h=void 0!==o||void 0!==s?pz(a,s,o):f;return[Object.assign(Object.assign({scale:e,orient:a,format:d,tickCount:e.includes("Time")?h:void 0,formatType:"time",labelOverlap:"greedy",labelFontWeight:i,labelAngle:xz(r)},_z(a,r,n,u,c)),{encode:{labels:{interactive:!1,enter:{dy:{value:(l?28:20)*("top"===a?-1:1)}},update:{text:{signal:"formatHorizontalTimeAxisLabels(datum)"}}}}})]},iz=(e,t)=>{var n;const r=e.filter((e=>"range"in e&&e.range===az(t)));let i;return i=r.length>1&&null!==(n=e.find((e=>e.name.includes("Trellis"))))&&void 0!==n?n:r[0],i||(i={name:fz(t),type:"linear",range:az(t),zero:!0},e.push(i),i)},az=e=>"left"===e||"right"===e?"height":"width",oz=e=>"left"===e||"right"===e?"width":"height",sz=({dataName:e,dimension:t,metric:n})=>`data('${e}')[indexof(pluck(data('${e}'), '${t}'), datum.value)]['${n}'] < 0`,lz=e=>"object"==typeof e&&null!==e,uz=e=>lz(e)?void 0!==e.signal?e.signal:JSON.stringify(e.value):JSON.stringify(e),cz=e=>{if(!Array.isArray(e))return uz(e);const[t,...n]=e;return lz(t)&&t.test&&0!==n.length?`(${t.test} ? (${uz(t)}) : (${cz(n)}))`:uz(t)},dz=e=>["left","right"].includes(e),fz=e=>dz(e)?"yLinear":"xLinear",hz=e=>dz(e)?"xLinear":"yLinear",pz=(e,t,n,r)=>{const i=["top","bottom"].includes(e)?"width":"height";return void 0!==n?void 0!==t?{signal:`clamp(ceil(${i}/100), ${t}, ${n})`}:{signal:`clamp(ceil(${i}/100), 2, ${n})`}:void 0!==t?{signal:`clamp(ceil(${i}/100), ${t}, 10)`}:r?{signal:`clamp(ceil(${i}/100), 2, 10)`}:void 0},mz=({subLabels:e,labelOrientation:t})=>Boolean(e.length&&"horizontal"===t),gz=e=>{switch(e){case"second":return{secondaryLabelFormat:":%S",primaryLabelFormat:"%-I:%M %p",tickCount:"second"};case"minute":return{secondaryLabelFormat:"%-I:%M %p",primaryLabelFormat:"%b %-d",tickCount:"minute"};case"hour":return{secondaryLabelFormat:"%-I %p",primaryLabelFormat:"%b %-d",tickCount:"hour"};case"day":default:return{secondaryLabelFormat:"%-d",primaryLabelFormat:"%b",tickCount:"day"};case"week":return{secondaryLabelFormat:"%-d",primaryLabelFormat:"%b",tickCount:"week"};case"month":return{secondaryLabelFormat:"%b",primaryLabelFormat:"%Y",tickCount:"month"};case"quarter":return{secondaryLabelFormat:"Q%q",primaryLabelFormat:"%Y",tickCount:{interval:"month",step:3}};case"year":return{secondaryLabelFormat:"%Y",primaryLabelFormat:"",tickCount:"year"}}},yz=(e,t,n)=>n?vz(e,t,n):{align:void 0,baseline:void 0},_z=(e,t,n,r,i)=>{const{align:a,baseline:o}=vz(e,t,n);return{labelAlign:null!=r?r:a,labelBaseline:null!=i?i:o}},vz=(e,t,n)=>{let r,i;return bz(e,t)?(r={start:"left",center:"center",end:"right"}[n],i=["top","left"].includes(e)?"bottom":"top"):(i={start:"top",center:"middle",end:"bottom"}[n],r=["bottom","left"].includes(e)?"right":"left"),{align:r,baseline:i}},bz=(e,t)=>(["top","bottom"].includes(e)?"horizontal":"vertical")===t,xz=e=>"horizontal"===e?0:270,Ez=(e,t,n)=>{if(void 0!==n)return n;switch(e){case"start":return{signal:`bandwidth('${t}') / -2`};case"end":return{signal:`bandwidth('${t}') / 2`};default:return}},Sz=({labelFormat:e,labelOrientation:t,numberFormat:n,position:r,truncateLabels:i,currencyLocale:a,currencyCode:o},s)=>"percentage"===e?[{test:"isNumber(datum.value)",signal:"format(datum.value, '~%')"},{signal:"datum.value"}]:"duration"===e?{signal:"formatTimeDurationLabels(datum)"}:[...QH(n,void 0,a,o),...i&&s.includes("Band")&&bz(r,t)?[{signal:'truncateText(datum.value, bandwidth("xBand")/(1- paddingInner), "normal", 14)'}]:[{signal:"datum.value"}]],Az=(e,t,n,r,i,a)=>({update:Object.assign({text:[{test:`indexof(pluck(${a}, 'value'), datum.value) !== -1 && ${a}[indexof(pluck(${a}, 'value'), datum.value)].${n}`,signal:`${a}[indexof(pluck(${a}, 'value'), datum.value)].${n}`},{signal:"datum.value"}],fontWeight:[{test:`indexof(pluck(${a}, 'value'), datum.value) !== -1 && ${a}[indexof(pluck(${a}, 'value'), datum.value)].fontWeight`,signal:`${a}[indexof(pluck(${a}, 'value'), datum.value)].fontWeight`},{value:t}]},$z(i,a,r,e))}),$z=(e,t,n,r)=>{const i=`indexof(pluck(${t}, 'value'), datum.value) !== -1 && ${t}[indexof(pluck(${t}, 'value'), datum.value)]`,a=`${t}[indexof(pluck(${t}, 'value'), datum.value)]`,{align:o,baseline:s}=vz(e,n,r);return{align:[{test:`${i}.align`,signal:`${a}.align`},{value:o}],baseline:[{test:`${i}.baseline`,signal:`${a}.baseline`},{value:s}]}},Tz=(e,t)=>{if(!dz(e.position))return[];const n=[];for(const r of(e=>e.referenceLines.map(((t,n)=>((e,t,n)=>Object.assign(Object.assign({},e),{colorScheme:t.colorScheme,name:`${t.name}ReferenceLine${n}`}))(t,e,n))))(e)){const i=Oz(e,r,t);n.push(wz(e,r,i),...Iz(e,r,i),...Cz(e,r,i),...Rz(r,i))}return n},Oz=({scaleType:e},{value:t,position:n},r)=>{const i="string"==typeof t?`'${t}'`:t,a=`paddingInner * bandwidth('${r}') / (2 * (1 - paddingInner))`;return"band"===e?"before"===n?{signal:`scale('${r}', ${i}) - ${a}`}:"after"===n?{signal:`scale('${r}', ${i}) + bandwidth('${r}') + ${a}`}:{signal:`scale('${r}', ${i}) + bandwidth('${r}') / 2`}:{scale:r,value:t}},Dz=e=>"S"===e?`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? 1 : 0`:"L"===e?`rscContainerWidth(width) >= ${re.CHART_SIZE_BREAKPOINTS.L} ? 1 : 0`:`rscContainerWidth(width) >= ${re.CHART_SIZE_BREAKPOINTS.M} && rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? 1 : 0`,Mz=(e,t)=>(0,ie.getS2ColorValue)(re.REFERENCE_LINE_SECONDARY_COLORS[null!=e?e:"M"],t),wz=({colorScheme:e},{name:t,secondary:n,size:r},i)=>{const a=n?{value:Mz(r,e)}:{value:(0,ie.getS2ColorValue)(re.DEFAULT_FONT_COLOR,e)},o=void 0===r?{signal:re.CHART_SIZE_STROKE_WIDTH}:{value:re.REFERENCE_LINE_SIZE_STROKE_WIDTHS[r]},s=n?{value:re.REFERENCE_LINE_SECONDARY_STROKE_WIDTH}:o,l=void 0===r?{signal:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.REFERENCE_LINE_AUTO_RULE_X_START.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.REFERENCE_LINE_AUTO_RULE_X_START.M} : ${re.REFERENCE_LINE_AUTO_RULE_X_START.L}`}:{value:re.REFERENCE_LINE_RULE_X_START[r]},u=n?{value:0}:l,c=void 0===r?{signal:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? width - ${re.REFERENCE_LINE_AUTO_RULE_X2_OFFSET.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? width - ${re.REFERENCE_LINE_AUTO_RULE_X2_OFFSET.M} : width - ${re.REFERENCE_LINE_AUTO_RULE_X2_OFFSET.L}`}:{signal:`width - ${re.REFERENCE_LINE_RULE_X2_OFFSET[r]}`};return{name:t,type:"rule",interactive:!1,encode:{enter:{stroke:a,strokeWidth:s,strokeCap:{value:"round"},strokeJoin:{value:"round"}},update:{x:u,x2:n?{signal:"width"}:c,y:i}}}},Iz=(e,{colorScheme:t,name:n,secondary:r,size:i},a)=>{if(r)return[];const o={value:(0,ie.getS2ColorValue)(re.DEFAULT_FONT_COLOR,t)},s={x:{value:5},y:a};return void 0===i?["S","M","L"].map((e=>({name:`${n}_startCap_${e}`,type:"path",interactive:!1,encode:{enter:{path:{value:re.REFERENCE_LINE_START_CAP_PATHS[e]},fill:o},update:Object.assign(Object.assign({},s),{opacity:{signal:Dz(e)}})}}))):[{name:`${n}_startCap`,type:"path",interactive:!1,encode:{enter:{path:{value:re.REFERENCE_LINE_START_CAP_PATHS[i]},fill:o},update:s}}]},Cz=(e,{colorScheme:t,name:n,secondary:r,size:i},a)=>{if(r)return[];const o={value:(0,ie.getS2ColorValue)(re.DEFAULT_FONT_COLOR,t)};return void 0===i?["S","M","L"].map((e=>({name:`${n}_endCap_${e}`,type:"path",interactive:!1,encode:{enter:{path:{value:re.REFERENCE_LINE_END_CAP_PATHS[e]},fill:o},update:{x:{signal:`width - ${re.REFERENCE_LINE_END_CAP_ANCHOR_OFFSET[e]}`},y:a,opacity:{signal:Dz(e)}}}}))):[{name:`${n}_endCap`,type:"path",interactive:!1,encode:{enter:{path:{value:re.REFERENCE_LINE_END_CAP_PATHS[i]},fill:o},update:{x:{signal:`width - ${re.REFERENCE_LINE_END_CAP_ANCHOR_OFFSET[i]}`},y:a}}}]},Rz=({colorScheme:e,label:t,name:n,secondary:r,size:i},a)=>{if(!t)return[];const o={text:{value:t},x:{signal:"width"},y:a,dy:{value:re.REFERENCE_LINE_LABEL_OFFSET_FROM_LINE},baseline:{value:"top"},align:{value:"right"}},s={fontWeight:{value:re.REFERENCE_LINE_LABEL_FONT_WEIGHT},fontSize:{signal:re.CHART_SIZE_FONT_SIZE}};return[{name:`${n}_labelBackground`,type:"text",interactive:!1,encode:{enter:Object.assign(Object.assign({},o),{fill:{value:"transparent"},stroke:{signal:re.REFERENCE_LINE_LABEL_BACKGROUND_STROKE},strokeWidth:{value:re.REFERENCE_LINE_LABEL_BACKGROUND_STROKE_WIDTH}}),update:s}},{name:`${n}_label`,type:"text",interactive:!1,encode:{enter:Object.assign(Object.assign({},o),{fill:{value:r?Mz(i,e):(0,ie.getS2ColorValue)(re.DEFAULT_FONT_COLOR,e)}}),update:s}}]},kz=e=>e.axisThumbnails.map(((t,n)=>Lz(t,e,n))),Lz=(e,t,n)=>{var r;return Object.assign(Object.assign({},e),{name:`${t.name}AxisThumbnail${n}`,urlKey:null!==(r=e.urlKey)&&void 0!==r?r:"thumbnail"})},Nz=e=>Boolean(e&&["band"].includes(e)),Fz=(e,t,n)=>{var r,i;e.push((r=`${t}ThumbnailSize`,i=`min(bandwidth('${n}'), ${re.MAX_THUMBNAIL_SIZE})`,{name:r,update:i}))},Bz=(e,t,n,r,i)=>{const a={signal:`scale('${e}', datum.${t}) + bandwidth('${e}') / 2`},o=`${r}ThumbnailSize`,s=null==i?void 0:i.zeroLine,l=(e,t,n)=>i?[{test:i.isNegativeBarExpr,signal:n},{signal:t}]:{signal:e};switch(n){case"left":return{x:l(`-${re.THUMBNAIL_OFFSET} - ${o}`,`${s} - ${re.THUMBNAIL_OFFSET} - ${o}`,`${s} + ${re.THUMBNAIL_OFFSET}`),yc:a};case"right":return{x:l(`width + ${re.THUMBNAIL_OFFSET}`,`${s} + ${re.THUMBNAIL_OFFSET}`,`${s} - ${re.THUMBNAIL_OFFSET} - ${o}`),yc:a};case"top":return{xc:a,y:l(`-${re.THUMBNAIL_OFFSET} - ${o}`,`${s} - ${re.THUMBNAIL_OFFSET} - ${o}`,`${s} + ${re.THUMBNAIL_OFFSET}`)};default:return{xc:a,y:l(`height + ${re.THUMBNAIL_OFFSET}`,`${s} + ${re.THUMBNAIL_OFFSET}`,`${s} - ${re.THUMBNAIL_OFFSET} - ${o}`)}}},jz=(e,t,n)=>{const r={test:`${e}ThumbnailSize < ${re.MIN_THUMBNAIL_SIZE}`,value:0},i=`${e}ThumbnailSize`,a=(e,t)=>n?[r,{test:n,signal:t},{signal:e}]:[r,{signal:e}];switch(t){case"left":return{dx:a(`-${i}`,i)};case"right":return{dx:a(i,`-${i}`)};case"top":return{dy:a(`-${i}`,i)};default:return{dy:a(i,`-${i}`)}}},Hz=e=>/[xy]TrellisGroup/g.test(JSON.stringify(e));var zz=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n};const Pz=ne(((e,t)=>{var n,r,i,a,o,s,l,u,c,{name:d,axisAnnotations:f=[],axisThumbnails:h=[],baseline:p=!1,baselineOffset:m=0,colorScheme:g=re.DEFAULT_COLOR_SCHEME,granularity:y=re.DEFAULT_GRANULARITY,grid:_=!1,hasOnClick:v=!1,hideDefaultLabels:b=!1,index:x=0,labelAlign:E=re.DEFAULT_LABEL_ALIGN,labelFontWeight:S=re.DEFAULT_LABEL_FONT_WEIGHT,labelLimit:A,labelOrientation:$=re.DEFAULT_LABEL_ORIENTATION,labels:T=[],numberFormat:O="shortNumber",position:D,range:M,referenceLines:w=[],subLabels:I=[],ticks:C=!1}=t,R=zz(t,["name","axisAnnotations","axisThumbnails","baseline","baselineOffset","colorScheme","granularity","grid","hasOnClick","hideDefaultLabels","index","labelAlign","labelFontWeight","labelLimit","labelOrientation","labels","numberFormat","position","range","referenceLines","subLabels","ticks"]);const k=iz(null!==(n=e.scales)&&void 0!==n?n:[],D),L=d||k.name,N=k.type,F=KH(k),B=((e,t)=>{let n=e.find((e=>"range"in e&&e.range===oz(t)));return n||(n={name:hz(t),type:"linear",range:oz(t)},e.push(n)),n.type})(null!==(r=e.scales)&&void 0!==r?r:[],D),j=((e,t)=>{var n;const r=e.find((e=>"range"in e&&e.range===oz(t)));return null!==(n=null==r?void 0:r.name)&&void 0!==n?n:hz(t)})(null!==(i=e.scales)&&void 0!==i?i:[],D),H=Object.assign({axisAnnotations:f,axisThumbnails:h,baseline:p,baselineOffset:m,colorScheme:g,granularity:y,grid:_,hasOnClick:v,hideDefaultLabels:b,index:x,labelAlign:E,labelFontWeight:S,labelLimit:A,labelOrientation:$,labels:T,name:`axis${x}`,numberFormat:O,position:D,range:M,referenceLines:w,subLabels:I,ticks:C,scaleType:null!=N?N:"linear"},R),z=null===(a=e.signals)||void 0===a?void 0:a.some((e=>"firstRscSeriesId"===e.name));e.data=Uz(null!==(o=e.data)&&void 0!==o?o:[],Object.assign(Object.assign({},H),{scaleType:null!=N?N:"linear"})),e.signals=Vz(null!==(s=e.signals)&&void 0!==s?s:[],H,L),!M||"linear"!==N&&"time"!==N||(k.domain=M,k.nice=!1,"linear"===N&&(k.zero=!1));const P=e.usermeta,U=Hz(e)||mz(H)?void 0:((e,t=[])=>{const n=t.find((t=>t.dimension===e));if(n)return{dataName:re.FILTERED_TABLE,dimension:n.dimension,metric:n.metric}})(F,null==P?void 0:P.divergingBarMarks);if(e.axes=Gz(null!==(l=e.axes)&&void 0!==l?l:[],Object.assign(Object.assign({},H),{scaleName:L,scaleField:F,opposingScaleType:B,opposingScaleName:j,divergingContext:U,usermeta:P,grid:H.grid&&!Hz(e),dualMetricAxis:z})),e.marks=Yz(null!==(u=e.marks)&&void 0!==u?u:[],Object.assign(Object.assign({},H),{usermeta:P,scaleName:L,scaleField:F,opposingScaleType:B,opposingScaleName:j,divergingContext:U,dualMetricAxis:z})),!b){const t=XH(function(e,t,n){var r,i,a;const o=null===(r=e.marks)||void 0===r?void 0:r.find((e=>{var t;return null===(t=e.name)||void 0===t?void 0:t.includes("Trellis")}));if(!o)return n;if(((null===(i=o.name)||void 0===i?void 0:i.startsWith("x"))?"horizontal":"vertical")!==("bottom"===t||"top"===t?"horizontal":"vertical"))return n;const s=iz(null!==(a=o.scales)&&void 0!==a?a:[],t);return KH(s)}(e,D,F),null==P?void 0:P.interactiveMarks);e.signals=((e,t,n)=>{var r;for(const{name:i,dimension:a}of t){const t=`${i}_${re.DIMENSION_HOVER_AREA}_${re.HOVERED_ITEM}`,o=e.find((e=>e.name===t));if(!o)continue;o.on=null!==(r=o.on)&&void 0!==r?r:[];o.on.some((e=>e.events===`@${n}:mouseover`))||o.on.push({events:`@${n}:mouseover`,update:`{ ${a}: datum.value }`},{events:`@${n}:mouseout`,update:"null"})}return e})(null!==(c=e.signals)&&void 0!==c?c:[],t,JH(H.name))}return e})),Uz=ne(((e,t)=>{const n=GH(t);for(const t of n)RH(e,t)})),Vz=ne(((e,t,n)=>{const{name:r,labels:i,position:a,subLabels:o,labelOrientation:s}=t;(null==i?void 0:i.length)&&e.push(pH(`${r}_labels`,Wz(i,a,s))),mz(t)&&e.push(pH(`${r}_subLabels`,o.map((e=>Object.assign(Object.assign({},e),yz(a,s,e.align))))));for(const n of GH(t))BH(e,n);for(const r of kz(t))Fz(e,r.name,n)})),Wz=(e,t,n)=>e.map((e=>{if("object"==typeof e)return Object.assign(Object.assign({},e),yz(t,n,e.align))})).filter(Boolean);const Gz=ne(((e,t)=>{var{scaleName:n,scaleField:r,opposingScaleType:i,opposingScaleName:a,divergingContext:o,dualMetricAxis:s}=t,l=zz(t,["scaleName","scaleField","opposingScaleType","opposingScaleName","divergingContext","dualMetricAxis"]);const u=[];l=Object.assign(Object.assign({},l),(e=>{let t={};if(e.includes("TrellisBand")){const n=`bandwidth('${e}') / -2`,r=e.startsWith("x")?"x":"y";t={position:"x"===r?"top":"left",labelFontWeight:"bold",labelAlign:void 0,title:void 0,vegaLabelAlign:"left",vegaLabelBaseline:"bottom",vegaLabelOffset:"x"===r?{signal:n}:{signal:`${n} - 8`},vegaLabelPadding:"x"===r?8:0}}return t})(n));const{baseline:c,labelFormat:d,position:f}=l;if("time"===d?u.push(...((e,t)=>[tz(e,t),...rz(e,t)])(n,l)):function(e,t,n,r,i){const{colorScheme:a,position:o,usermeta:s}=t,l=ez(t,n);if(function(e,t,n,r){var i;const{hasOnClick:a,hideDefaultLabels:o,labelAlign:s,labelFontWeight:l,labelOrientation:u,name:c,position:d,hasTooltip:f}=t,h=o?[]:XH(r,n),p=h.length>0,m=a&&!o,g=Cj([],m);if((p||m)&&(e.encode=CH()(null!==(i=e.encode)&&void 0!==i?i:{},{labels:{name:JH(c),interactive:!0,update:Object.assign(Object.assign({},p&&{fillOpacity:ZH(h)}),g&&{cursor:g})}})),!t.labels.length)return;const y=t.labels,_=`${c}_labels`;e.values=y.map((e=>(e=>"object"==typeof e?e.value:e)(e)));const v=Az(s,l,"label",u,d,_),b=f?Object.assign(Object.assign({},v),{update:Object.assign(Object.assign({},v.update),{tooltip:{signal:"datum.value"}})}):v;e.encode={labels:Object.assign(Object.assign({name:JH(c),interactive:f||p||m},b),(p||g)&&{update:Object.assign(Object.assign(Object.assign({},b.update),p&&{fillOpacity:ZH(h)}),g&&{cursor:g})})}}(l,t,null==s?void 0:s.interactiveMarks,r),mz(t)){l.titlePadding=24;const r=((e,t)=>{const{labelAlign:n,labelFontWeight:r,labelOrientation:i,name:a,position:o,ticks:s}=e,l=`${a}_subLabels`,u=e.subLabels.map((e=>e.value));let c=ez(e,t);return c=Object.assign(Object.assign({},c),{domain:!1,domainWidth:void 0,grid:!1,labelPadding:s?32:24,ticks:!1,title:void 0,values:u.length?u:void 0,encode:{labels:Object.assign({interactive:!1},Az(n,r,"subLabel",i,o,l))}}),c})(t,n);qz({dualMetricAxis:i,axis:r,usermeta:s,scaleName:n,colorScheme:a,position:o,incrementMetricAxisCount:!1}),e.push(r)}qz({dualMetricAxis:i,axis:l,usermeta:s,scaleName:n,colorScheme:a,position:o,incrementMetricAxisCount:!0}),e.unshift(l)}(u,l,n,r,s),"linear"!==i&&(u[0]=function(e,t=!1){return Object.assign(Object.assign({},e),{domain:t,domainWidth:2})}(u[0],c)),o&&"linear"===i&&a){const e=sz(o),t=((e,t)=>"left"===e||"top"===e?{signal:`-scale('${t}', 0)`}:{signal:`scale('${t}', 0) - ${"right"===e?"width":"height"}`})(f,a),n=dz(f)?"align":"baseline",r=dz(f)?"dx":"dy";u.forEach(((i,a)=>{var o,s,l,c,d,h;const p="number"==typeof i.labelPadding?i.labelPadding:void 0,m=null===(l=null===(s=null===(o=i.encode)||void 0===o?void 0:o.labels)||void 0===s?void 0:s.enter)||void 0===l?void 0:l[r],g=m&&"object"==typeof m&&"value"in m?Number(m.value):0,y=((e,t,n=8,r=0)=>{const i=2*n;if(dz(e)){const n="left"===e?i:-i;return{update:{align:[{test:t,value:"left"},{value:"right"}],dx:"left"===e?[{test:t,value:n-r},{value:r}]:[{test:t,value:r},{value:n-r}]}}}const a="top"===e?i:-i;return{update:{baseline:[{test:t,value:"bottom"},{value:"top"}],dy:"top"===e?[{test:t,value:r},{value:a-r}]:[{test:t,value:a-r},{value:r}]}}})(f,e,p,g),_=null===(h=null===(d=null===(c=i.encode)||void 0===c?void 0:c.labels)||void 0===d?void 0:d.update)||void 0===h?void 0:h[n],v=_?((e,t)=>{const n=(Array.isArray(e)?e:[e]).filter((e=>lz(e)&&Boolean(e.test))),r=Array.isArray(t)?t:[t];return{signal:cz([...n,...r])}})(_,y.update[n]):y.update[n],b={labels:{update:Object.assign(Object.assign({},y.update),{[n]:v})}};u[a]=Object.assign(Object.assign({},i),{offset:t,encode:i.encode?CH()(i.encode,b):b})}))}!function(e,t,n,r,i,a){var o,s,l;if(!Nz(t.scaleType))return;const u=r&&"linear"===i&&a?sz(r):void 0,c=dz(n)?"dx":"dy";for(const r of kz(t)){const t=jz(r.name,n,u)[c];for(const n of e){const e=null===(l=null===(s=null===(o=n.encode)||void 0===o?void 0:o.labels)||void 0===s?void 0:s.update)||void 0===l?void 0:l[c],r={labels:{update:{[c]:e?{signal:`${cz(e)} + ${cz(t)}`}:t}}};n.encode=n.encode?CH()(n.encode,r):r}}}(u,l,f,o,i,a);const h=GH(l);for(const e of h)WH(u,e,n);e.push(...u)})),qz=({dualMetricAxis:e,axis:t,usermeta:n,scaleName:r,colorScheme:i,position:a,incrementMetricAxisCount:o})=>{var s,l;const u=null!==(s=null==n?void 0:n.chartOrientation)&&void 0!==s?s:"vertical";e&&function(e,t){return"vertical"===t?dz(e):!dz(e)}(a,u)&&(n.metricAxisCount||(n.metricAxisCount=0),function(e,t,n,r,i=re.DEFAULT_COLOR_SCHEME){const a=YH(n),{primaryScale:o,secondaryScale:s}=a;t?(e.scale=o,function(e,t,n=re.DEFAULT_COLOR_SCHEME){const r=ie.spectrum2Colors[n][re.DEFAULT_FONT_COLOR],i=[{test:`length(domain('${re.COLOR_SCALE}')) -1 === 1`,signal:`scale('${re.COLOR_SCALE}', ${re.FIRST_RSC_SERIES_ID})`},{value:r}],a=t.map((e=>({test:`isValid(${e}_${re.HOVERED_ITEM})`,signal:`${e}_${re.HOVERED_ITEM}.${re.SERIES_ID} !== ${re.LAST_RSC_SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}))),o={labels:{update:{fill:i,fillOpacity:a}},title:{update:{fill:i,fillOpacity:a}}};e.encode?e.encode=CH()(e.encode,o):e.encode=o}(e,r,i)):(e.scale=s,function(e,t){const n=[{signal:`scale('${re.COLOR_SCALE}', ${re.LAST_RSC_SERIES_ID})`}],r=t.map((e=>({test:`isValid(${e}_${re.HOVERED_ITEM})`,signal:`${e}_${re.HOVERED_ITEM}.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}))),i={labels:{enter:{fill:n},update:{fillOpacity:r}},title:{enter:{fill:n},update:{fillOpacity:r}}};e.encode?e.encode=CH()(e.encode,i):e.encode=i}(e,r))}(t,0===n.metricAxisCount,r,(null!==(l=n.interactiveMarks)&&void 0!==l?l:[]).map((e=>e.name)),i),o&&n.metricAxisCount++)},Yz=ne(((e,t)=>{const{baseline:n,baselineOffset:r,opposingScaleType:i,position:a,scaleField:o,scaleName:s,scaleType:l,usermeta:u}=t;(e=>Boolean(e&&["band","linear","point","time","utc"].includes(e)))(l)&&e.push(...Tz(t,s));const c=e.find((e=>{var t;return null===(t=e.name)||void 0===t?void 0:t.includes("Trellis")})),d=Boolean(c);n&&"linear"===i&&function(e,t,n,r){var i,a;const o=((e,t)=>{const n=dz(t)?"y":"x",r={x:{x:{value:0},x2:{signal:"width"},y:{scale:"yLinear",value:e}},y:{x:{scale:"xLinear",value:e},y:{value:0},y2:{signal:"height"}}};return{name:`${n}Baseline`,description:`${n}Baseline`,type:"rule",interactive:!1,encode:{update:Object.assign({},r[n])}}})(t,n);r&&"marks"in r?0===t?null===(i=r.marks)||void 0===i||i.push(o):null===(a=r.marks)||void 0===a||a.unshift(o):0===t?e.push(o):e.unshift(o)}(e,r,a,c),d&&function(e,t,n,r,i){var a,o,s,l;const u=(null===(a=t.name)||void 0===a?void 0:a.startsWith("x"))?"horizontal":"vertical",c="bottom"===e.position||"top"===e.position?"horizontal":"vertical",d=e.hideDefaultLabels||u!==c;let f=e.scaleType;if(u===c){const r=iz(null!==(o=t.scales)&&void 0!==o?o:[],e.position);n=r.name,f=null!==(s=r.type)&&void 0!==s?s:"linear",i=KH(r)}else e.title=void 0;let h=Gz([],Object.assign(Object.assign({},e),{hideDefaultLabels:d,scaleName:n,scaleField:i,scaleType:f,dualMetricAxis:!1,usermeta:r,divergingContext:void 0}));h=((e,t)=>{const{facetName:n,facetGroupBy:r,trellisScaleName:i}=(e=>{var t;const n=`${(null!==(t=e.name)&&void 0!==t?t:"x")[0]}TrellisBand`,r=e.from;return{facetGroupBy:r.facet.groupby,facetName:r.facet.name,trellisScaleName:n}})(t);return e.map((e=>e.title?Object.assign(Object.assign({},e),{encode:Object.assign(Object.assign({},e.encode),{title:{update:{opacity:[{test:`info(domain('${i}')[0] === data('${n}')[0].${r})`,value:1},{value:0}]}}})}):e))})(h,t),t.axes=[...null!==(l=t.axes)&&void 0!==l?l:[],...h]}(t,c,s,u,o);for(const n of GH(t))PH(e,n,s);if(Nz(l)&&o){const n=((e,t,n)=>{const{position:r,opposingScaleType:i,opposingScaleName:a,divergingContext:o}=e,s=o&&"linear"===i&&a?{zeroLine:`scale('${a}', 0)`,isNegativeBarExpr:`datum['${o.metric}'] < 0`}:void 0,l=[],u=kz(e);for(const{name:e,urlKey:i}of u)l.push({type:"image",name:e,from:{data:re.FILTERED_TABLE},encode:{enter:{url:{field:i}},update:Object.assign(Object.assign({},Bz(t,n,r,e,s)),{width:{signal:`${e}ThumbnailSize`},height:{signal:`${e}ThumbnailSize`},opacity:[{test:`${e}ThumbnailSize < ${re.MIN_THUMBNAIL_SIZE}`,value:0},{value:1}]})}});return l})(t,s,o);e.push(...n)}}));const Kz=(e,t)=>e.map((e=>Jz(e,t))),Jz=(e,t)=>{var{UNSAFE_highlightBy:n="item"}=e,r=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["UNSAFE_highlightBy"]);return Object.assign({UNSAFE_highlightBy:n,markName:t},r)},Xz=(e,t,n=!0)=>{const r=Kz(t.chartPopovers,t.name);for(const{UNSAFE_highlightBy:i,markName:a}of r){const r=ue(e);r.transform||(r.transform=[]),"dimension"===i&&"donut"!==t.markType?r.transform.push(Zz([t.dimension],a)):"series"===i?r.transform.push(Zz([re.SERIES_ID],a)):Array.isArray(i)?r.transform.push(Zz(i,a)):r.transform.push(Zz([t.idKey],a)),n&&e.push(Qz(a))}},Zz=(e,t)=>({type:"formula",as:`${t}_selectedGroupId`,expr:e.map((e=>`datum.${e}`)).join(' + " | " + ')}),Qz=e=>({name:`${e}_selectedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`${re.SELECTED_GROUP} === datum.${e}_selectedGroupId`}]}),eP=({trellisOrientation:e,name:t,trellisPadding:n})=>{const r="horizontal"===e?"x":"y";return{facetName:`${t}_trellis`,scaleName:`${r}TrellisBand`,markName:`${r}TrellisGroup`,dimensionSizeSignal:"x"===r?"width":"height",axis:r,paddingInner:n}},tP=e=>Boolean(e.trellis),nP=({color:e,lineType:t,opacity:n})=>[e,t,n].some((e=>Array.isArray(e)&&2===e.length)),rP=e=>{const{dualMetricAxis:t,type:n}=e;return Boolean(t&&!tP(e)&&"dodged"===n&&!nP(e))},iP=e=>{const{dimension:t,groupedPadding:n,orientation:r,name:i,paddingRatio:a}=e,{dimensionScaleKey:o,dimensionAxis:s,dimensionSizeSignal:l}=TP(r);return{name:`${i}_group`,type:"group",from:{facet:{data:tP(e)?eP(e).facetName:re.FILTERED_TABLE,name:`${i}_facet`,groupby:t}},encode:{enter:{[s]:{scale:o,field:t}}},signals:[{name:l,update:`bandwidth("${o}")`}],scales:[{name:`${i}_position`,type:"band",range:l,domain:{data:re.FILTERED_TABLE,field:`${i}_dodgeGroup`},paddingInner:null!=n?n:a}]}},aP=e=>{const{dimensionAxis:t,dimensionSizeSignal:n}=TP(e.orientation),r=`${e.name}_position`;return{[t]:{scale:r,field:`${e.name}_dodgeGroup`},[n]:{scale:r,band:1}}},oP=e=>{const{metric:t,type:n}=e,{metricAxis:r,metricScaleKey:i}=TP(e.orientation,e.metricAxis),a=`${r}2`;return"stacked"===n||nP(e)?sP(e):rP(e)?{[r]:[{test:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`,scale:`${i}Secondary`,value:0},{scale:`${i}Primary`,value:0}],[a]:[{test:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`,scale:`${i}Secondary`,field:t},{scale:`${i}Primary`,field:t}]}:{[r]:{scale:i,value:0},[a]:{scale:i,field:t}}},sP=e=>{const{metric:t,orientation:n}=e,{metricAxis:r,metricScaleKey:i}=TP(e.orientation,e.metricAxis),a=`${r}2`,o=`datum.${t}0`,s=`datum.${t}1`;return"vertical"===n?{[r]:[{test:`${o} === 0`,signal:`scale('${i}', ${o})`},{test:`${s} > 0`,signal:`max(scale('${i}', ${o}) - 1.5, scale('${i}', ${s}))`},{signal:`min(scale('${i}', ${o}) + 1.5, scale('${i}', ${s}))`}],[a]:{scale:i,field:`${t}1`}}:{[r]:[{test:`${o} === 0`,signal:`scale('${i}', ${o})`},{test:`${s} > 0`,signal:`min(scale('${i}', ${o}) + 1.5, scale('${i}', ${s}))`},{signal:`max(scale('${i}', ${o}) - 1.5, scale('${i}', ${s}))`}],[a]:{scale:i,field:`${t}1`}}},lP=e=>{const{type:t,metric:n,hasSquareCorners:r}=e,i=r?0:4;let a;return a="dodged"!==t||nP(e)?uP(e):{cornerRadiusTopLeft:[{test:`datum.${n} > 0`,value:i},{value:0}],cornerRadiusTopRight:[{test:`datum.${n} > 0`,value:i},{value:0}],cornerRadiusBottomLeft:[{test:`datum.${n} < 0`,value:i},{value:0}],cornerRadiusBottomRight:[{test:`datum.${n} < 0`,value:i},{value:0}]},cP(a,e)},uP=({name:e,metric:t,hasSquareCorners:n})=>{const r=`datum.${t}1 > 0 && data('${e}_stacks')[indexof(pluck(data('${e}_stacks'), '${re.STACK_ID}'), datum.${re.STACK_ID})].max_${t}1 === datum.${t}1`,i=`datum.${t}1 < 0 && data('${e}_stacks')[indexof(pluck(data('${e}_stacks'), '${re.STACK_ID}'), datum.${re.STACK_ID})].min_${t}1 === datum.${t}1`,a=n?0:4;return{cornerRadiusTopLeft:[{test:r,value:a},{value:0}],cornerRadiusTopRight:[{test:r,value:a},{value:0}],cornerRadiusBottomLeft:[{test:i,value:a},{value:0}],cornerRadiusBottomRight:[{test:i,value:a},{value:0}]}},cP=(e,{orientation:t})=>"vertical"===t?e:{cornerRadiusTopLeft:e.cornerRadiusBottomLeft,cornerRadiusTopRight:e.cornerRadiusTopLeft,cornerRadiusBottomLeft:e.cornerRadiusBottomRight,cornerRadiusBottomRight:e.cornerRadiusTopRight},dP=e=>Object.assign(Object.assign({},oP(e)),lP(e)),fP=e=>{const{colorOverride:t,color:n,colorScheme:r}=e;return t?{signal:`datum[${JSON.stringify(t)}]`}:Bj(n,r)},hP=e=>({fill:fP(e),fillOpacity:zj(e.opacity),tooltip:Rj(e.chartInspects,e.name)}),pP=e=>({cursor:Cj(e.chartPopovers,e.hasOnClick),opacity:eH(e),stroke:mP(e),strokeDash:EP(e),strokeWidth:SP(e)}),mP=e=>{const{name:t,chartPopovers:n,colorScheme:r,idKey:i}=e,a=fP(e);return Nj({chartPopovers:n})?[{test:`(${re.SELECTED_ITEM} && ${re.SELECTED_ITEM} === datum.${i}) || (${re.SELECTED_GROUP} && ${re.SELECTED_GROUP} === datum.${t}_selectedGroupId)`,value:(0,ie.getS2ColorValue)("static-blue",r)},a]:[a]},gP=e=>{const{chartPopovers:t,name:n}=e,r=Kz(t,n);return r.length>0&&!r.some((({UNSAFE_highlightBy:e})=>"dimension"===e))},yP=e=>{const t=lP(e),n=e=>e.map((e=>Object.assign(Object.assign({},e),{value:e.value+2})));return{cornerRadiusTopLeft:n(t.cornerRadiusTopLeft),cornerRadiusTopRight:n(t.cornerRadiusTopRight),cornerRadiusBottomLeft:n(t.cornerRadiusBottomLeft),cornerRadiusBottomRight:n(t.cornerRadiusBottomRight)}},_P=e=>{const t=e=>{if("signal"in e)return e.signal;if("scale"in e){const t=e.scale;if("field"in e)return`scale('${t}', datum.${e.field})`;if("band"in e)return`bandwidth('${t}') * ${e.band}`;if("value"in e)return`scale('${t}', ${JSON.stringify(e.value)})`}else if("value"in e)return`${e.value}`;throw new Error(`getBarItemSelectionRing: unsupported numeric production rule ${JSON.stringify(e)}`)};if(!Array.isArray(e))return t(e);const n=e,r=n.at(-1);if(void 0===r)throw new Error("getBarItemSelectionRing: empty production rule array");let i=t(r);for(let e=n.length-2;e>=0;e--)i=`${n[e].test} ? ${t(n[e])} : ${i}`;return i},vP=(e,t)=>{const{idKey:n,orientation:r}=e,{metricAxis:i,dimensionAxis:a,dimensionSizeSignal:o}=TP(r),s=`${i}2`,l=oP(e),u=_P(l[i]),c=_P(l[s]);return{[i]:{signal:`min(${u}, ${c}) - 3`},[s]:{signal:`max(${u}, ${c}) + 3`},[a]:{signal:`${_P(t[a])} - 3`},[o]:{signal:`${_P(t[o])} + 6`},opacity:[{test:`isValid(${re.SELECTED_ITEM}) && ${re.SELECTED_ITEM} === datum.${n}`,value:1},{value:0}]}},bP=(e,t,n)=>({name:`${e.name}_itemSelectionBackdrop`,type:"rect",from:{data:t},interactive:!1,encode:{enter:Object.assign(Object.assign({},yP(e)),{fill:{signal:re.BACKGROUND_COLOR}}),update:vP(e,n)}}),xP=(e,t,n)=>({name:`${e.name}_itemSelectionRing`,type:"rect",from:{data:t},interactive:!1,encode:{enter:Object.assign(Object.assign({},yP(e)),{fill:{value:"transparent"},stroke:{value:(0,ie.getS2ColorValue)("blue-800",e.colorScheme)},strokeWidth:{value:2}}),update:vP(e,n)}}),EP=({chartPopovers:e,idKey:t,lineType:n})=>{const r=Uj(n);return Nj({chartPopovers:e})?[{test:`isValid(${re.SELECTED_ITEM}) && ${re.SELECTED_ITEM} === datum.${t}`,value:[]},r]:[r]},SP=({chartPopovers:e,idKey:t,lineWidth:n,name:r})=>{const i=rj(n),a={value:i},o=Kz(e,r),s=o.some((({UNSAFE_highlightBy:e})=>"dimension"===e));return 0===o.length||s?[a]:[{test:`(isValid(${re.SELECTED_ITEM}) && ${re.SELECTED_ITEM} === datum.${t}) || (isValid(${re.SELECTED_GROUP}) && ${re.SELECTED_GROUP} === datum.${r}_selectedGroupId)`,value:Math.max(i,2)},a]},AP=(e,t)=>Dj(e,t),$P=e=>"stacked"===e.type||nP(e)?[`${e.metric}1`]:[e.metric],TP=(e,t)=>"vertical"===e?{metricAxis:"y",dimensionAxis:"x",metricScaleKey:t||"yLinear",dimensionScaleKey:"xBand",dimensionSizeSignal:"width",metricSizeSignal:"height"}:{metricAxis:"x",dimensionAxis:"y",metricScaleKey:t||"xLinear",dimensionScaleKey:"yBand",dimensionSizeSignal:"height",metricSizeSignal:"width"},OP=e=>{const{metricAxis:t,orientation:n}=e,{metricScaleKey:r}=TP(n);return t||r},DP=(e,t)=>{var n,r;const{dimension:i,name:a}=e;return{name:`${a}_${re.DIMENSION_HOVER_AREA}`,description:`hover area for ${a} dimensions`,type:"rect",from:{data:`${a}_${"stacked"===t?"stacks":"groups"}`},interactive:!0,clip:!0,encode:{enter:{fill:{value:"transparent"},tooltip:(o=null!==(n=e.chartInspects)&&void 0!==n?n:[],o.some((({targets:e})=>null==e?void 0:e.includes("dimensionArea")))?Rj(null!==(r=e.chartInspects)&&void 0!==r?r:[],`${a}_${re.DIMENSION_HOVER_AREA}`,!1,{dimension:i}):void 0)},update:Object.assign({},MP(e))}};var o},MP=e=>{const{dimension:t,orientation:n}=e,{dimensionScaleKey:r,metricAxis:i,dimensionAxis:a,dimensionSizeSignal:o,metricSizeSignal:s}=TP(n);return{[i]:{value:0},[`${i}2`]:{signal:`${s}`},[a]:{signal:`scale('${r}', datum.${t}) - bandwidth('${r}') * paddingInner / 2 / (1 - paddingInner)`},[o]:{signal:`bandwidth('${r}') * ( 1 + paddingInner / (1 - paddingInner))`}}},wP=(e,t)=>{const{barName:n,color:r,colorOverride:i,colorScheme:a,dimension:o,format:s,index:l,metric:u,metricAxis:c,orientation:d,position:f}=e,{metricScaleKey:h,dimensionScaleKey:p}=TP(d,c),m="vertical"===d,g=i?{signal:`datum[${JSON.stringify(i)}]`}:Bj(r,a),y=Vj(),_=fj(s||",.2~f"),v=`format(datum["${u}"], "${hj(_)}")`,b={scale:p,field:o,band:.5},{metricAxisEncoding:x,verticalBaseline:E,horizontalAlign:S,seriesFill:A,isInsideTest:$}=((e,t,n,r,i,a)=>{if("middle"===e)return{metricAxisEncoding:{signal:`(scale('${r}', 0) + scale('${r}', datum['${n}'])) / 2`},verticalBaseline:{value:"middle"},horizontalAlign:{value:"center"},seriesFill:{signal:re.BACKGROUND_COLOR},isInsideTest:void 0};if("start"===e)return((e,t,n,r,i)=>{const a=`abs(scale('${n}', datum["${t}"]) - scale('${n}', 0)) > ${e?`${re.DEFAULT_FONT_SIZE+16}`:`(getLabelWidth(${i}, ${re.DIRECT_LABEL_FONT_WEIGHT}, ${re.DEFAULT_FONT_SIZE}) + 16)`}`,o=`datum["${t}"] < 0 && ${a}`,s=`datum["${t}"] < 0`,l=[{test:a,signal:re.BACKGROUND_COLOR},r];return e?{metricAxisEncoding:[{test:o,scale:n,value:0,offset:8},{test:s,scale:n,field:t,offset:6},{test:a,scale:n,value:0,offset:-8},{scale:n,field:t,offset:-6}],verticalBaseline:[{test:s,value:"top"},{value:"bottom"}],horizontalAlign:{value:"center"},seriesFill:l,isInsideTest:a}:{metricAxisEncoding:[{test:o,scale:n,value:0,offset:-8},{test:s,scale:n,field:t,offset:-8},{test:a,scale:n,value:0,offset:8},{scale:n,field:t,offset:8}],verticalBaseline:{value:"middle"},horizontalAlign:[{test:s,value:"right"},{value:"left"}],seriesFill:l,isInsideTest:a}})(t,n,r,i,a);const o="end"===e,s="end-outside"===e,l=o?-1:1,u=s?6:8,c={field:n},[d,f]=o?["bottom","top"]:["top","bottom"],[h,p]=o?["left","right"]:["right","left"];return{metricAxisEncoding:t?[Object.assign(Object.assign({test:`datum["${n}"] < 0`,scale:r},c),{offset:l*u}),Object.assign(Object.assign({scale:r},c),{offset:-l*u})]:[Object.assign(Object.assign({test:`datum["${n}"] < 0`,scale:r},c),{offset:8*-l}),Object.assign(Object.assign({scale:r},c),{offset:8*l})],verticalBaseline:[{test:`datum["${n}"] < 0`,value:d},{value:f}],horizontalAlign:[{test:`datum["${n}"] < 0`,value:h},{value:p}],seriesFill:s?i:{signal:re.BACKGROUND_COLOR},isInsideTest:void 0}})(f,m,u,h,g,v),T=m?{x:b,y:x,align:{value:"center"},baseline:E,text:{signal:v},fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT}}:{y:b,x,baseline:{value:"middle"},align:S,text:{signal:v},fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT}},O={name:`${n}DirectLabel${l}_bg`,type:"text",from:{data:re.FILTERED_TABLE},interactive:!1,encode:{enter:Object.assign(Object.assign({},T),{stroke:{signal:re.BACKGROUND_COLOR},strokeWidth:$?[{test:$,value:0},{value:re.DIRECT_LABEL_BACKGROUND_STROKE_WIDTH}]:{value:re.DIRECT_LABEL_BACKGROUND_STROKE_WIDTH},fill:{value:"transparent"}}),update:{fontSize:y}}},D={name:`${n}DirectLabel${l}`,type:"text",from:{data:re.FILTERED_TABLE},interactive:!1,encode:{enter:Object.assign(Object.assign({},T),{fill:A}),update:{opacity:eH(t),fontSize:y}}};return"end-outside"===f||Boolean($)?[O,D]:[D]},IP=(e,t,n)=>{var r,i;return{barName:n.name,color:n.color,colorOverride:n.colorOverride,colorScheme:n.colorScheme,dimension:n.dimension,format:null!==(r=e.format)&&void 0!==r?r:"",index:t,metric:n.metric,metricAxis:n.metricAxis,orientation:n.orientation,position:null!==(i=e.position)&&void 0!==i?i:"end-outside"}};const CP=e=>e.trendlines.map(((t,n)=>RP(e,t,n))),RP=(e,t,n)=>{var{chartInspects:r=[],color:i,dimensionExtent:a,dimensionRange:o=[null,null],displayOnHover:s=!1,hidePartialWindows:l=!1,highlightRawPoint:u=!1,lineType:c="dashed",lineWidth:d="M",method:f="linear",opacity:h=1,orientation:p="horizontal",trendlineAnnotations:m=[]}=t,g=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["chartInspects","color","dimensionExtent","dimensionRange","displayOnHover","hidePartialWindows","highlightRawPoint","lineType","lineWidth","method","opacity","orientation","trendlineAnnotations"]);const y=VP(e,p),_="time"===y&&jP(f)&&"horizontal"===p,{trendlineDimension:v,trendlineMetric:b}=NP(e.dimension,e.metric,p,_),x=i?{value:i}:kP(e.color);return Object.assign({chartInspects:r,colorScheme:e.colorScheme,displayOnHover:s,dimensionExtent:null!=a?a:o,dimensionRange:o,dimensionScaleType:y,hidePartialWindows:l,highlightRawPoint:u,isDimensionNormalized:_,lineType:c,lineWidth:d,method:f,metric:re.TRENDLINE_VALUE,name:`${e.name}Trendline${n}`,opacity:h,orientation:p,trendlineAnnotations:m,trendlineColor:x,trendlineDimension:v,trendlineMetric:b},g)},kP=e=>Array.isArray(e)?e[0]:e,LP=e=>Array.isArray(e)?e[0]:e,NP=(e,t,n,r)=>"horizontal"===n?{trendlineDimension:FP(e,r),trendlineMetric:t}:{trendlineDimension:t,trendlineMetric:e},FP=(e,t)=>t?`${e}Normalized`:e,BP=e=>["average","median"].includes(e),jP=e=>zP(e)||["exponential","logarithmic","power"].includes(e),HP=e=>e.startsWith("movingAverage-"),zP=e=>e.startsWith("polynomial-")||["linear","quadratic"].includes(e),PP=e=>{switch(e){case"linear":return 1;case"quadratic":return 2}const t=parseInt(e.split("-")[1]);if(t<1)throw new Error(`Invalid polynomial order: ${t}, order must be an interger greater than 0`);return t},UP=(e,t,n)=>{const r=`${t}_extent`,i=e.map(((e,t)=>{switch(e){case null:return`${r}[${t}]`;case"domain":return`${r}[${t}] ${0===t?"-":"+"} (${r}[1] - ${r}[0]) * 0.3`;default:return n?`(${e} - data('${re.FILTERED_TABLE}')[0].datetimeMin + ${re.MS_PER_DAY}) / ${re.MS_PER_DAY}`:e}})).join(", ");return{signal:`[${i}]`}},VP=(e,t)=>"vertical"===t?"linear":"scaleType"in e?e.scaleType:e.dimensionScaleType,WP=(e,{method:t,trendlineDimension:n,trendlineMetric:r},i)=>{const{color:a,lineType:o}=e,{facets:s}=ej({color:a,lineType:o}),l={average:"mean",median:"median"};return i?{type:"aggregate",groupby:s,ops:[l[t],"min","max"],fields:[r,n,n],as:[re.TRENDLINE_VALUE,`${n}Min`,`${n}Max`]}:{type:"joinaggregate",groupby:s,ops:[l[t]],fields:[r],as:[re.TRENDLINE_VALUE]}},GP=(e,t,n)=>{const{color:r,lineType:i}=e,{dimensionExtent:a,isDimensionNormalized:o,method:s,name:l,trendlineDimension:u,trendlineMetric:c}=t,{facets:d}=ej({color:r,lineType:i});let f,h;switch(s){case"exponential":f="exp";break;case"logarithmic":f="log";break;case"power":f="pow";break;default:h=PP(s),f="poly"}return{type:"regression",method:f,order:h,groupby:d,x:u,y:c,as:n?[u,re.TRENDLINE_VALUE]:void 0,params:!n,extent:n?UP(a,l,o):void 0}},qP=(e,{method:t,trendlineMetric:n})=>{const r=Number.parseInt(t.split("-")[1]),{color:i,lineType:a}=e,{facets:o}=ej({color:i,lineType:a});if(Number.isNaN(r)||r<1)throw new Error(`Invalid moving average frame width: ${r}, frame width must be an integer greater than 0`);return{type:"window",ops:["mean"],groupby:o,fields:[n],as:[re.TRENDLINE_VALUE],frame:[r-1,0]}},YP=e=>[{type:"joinaggregate",fields:[e],as:[`${e}Min`],ops:["min"]},{type:"formula",expr:`(datum.${e} - datum.${e}Min + ${re.MS_PER_DAY}) / ${re.MS_PER_DAY}`,as:`${e}Normalized`}],KP=(e,t)=>({type:"extent",field:e,signal:`${t}_extent`}),JP=e=>({type:"filter",expr:`isValid(datum["${e}"])`}),XP=(e,t)=>{const n=[];return null!==t[0]&&n.push(`datum.${e} >= ${t[0]}`),null!==t[1]&&n.push(`datum.${e} <= ${t[1]}`),n.length?[{type:"filter",expr:n.join(" && ")}]:[]},ZP=(e,t)=>{let n="";if(zP(t)){const r=PP(t);n=["datum.coef[0]",...new Array(r).fill(0).map(((t,n)=>`datum.coef[${n+1}] * pow(datum.${e}, ${n+1})`))].join(" + ")}else"exponential"===t?n=`datum.coef[0] + exp(datum.coef[1] * datum.${e})`:"logarithmic"===t?n=`datum.coef[0] + datum.coef[1] * log(datum.${e})`:"power"===t&&(n=`datum.coef[0] * pow(datum.${e}, datum.coef[1])`);return n?[{type:"formula",expr:n,as:re.TRENDLINE_VALUE}]:[]},QP=({color:e,lineType:t},{name:n})=>{const{facets:r}=ej({color:e,lineType:t});return{type:"lookup",from:`${n}_params`,key:"keys",fields:r,values:["coef"]}},eU=(e,t)=>{var n;e.push(...tU(t));const r=le(e);r.transform=sU(null!==(n=r.transform)&&void 0!==n?n:[],t)},tU=e=>{const t=[],{color:n,idKey:r,lineType:i,name:a,interactiveMarkName:o}=e,s=CP(e),l={name:`${a}_allTrendlineData`,source:[]};for(const r of s){const{displayOnHover:a,method:s,name:u}=r,{facets:c}=ej({color:n,lineType:i});jP(s)?t.push(...rU(e,r,c)):BP(s)?t.push(...nU(e,r,c)):HP(s)&&t.push(iU(e,r)),a&&t.push(lU(u,s,o)),Lj(r)&&l.source.push(`${u}_data`)}return s.some((e=>Lj(e)))&&t.push(l,aU(a,r)),t},nU=(e,t,n)=>{const r=[],{dimensionRange:i,name:a,trendlineDimension:o,trendlineMetric:s}=t,l=XP(o,i);return r.push({name:`${a}_highResolutionData`,source:re.FILTERED_TABLE,transform:[...uU(t.excludeDataKeys),JP(s),...l,...oU(e,t,!0),...ce(n)]}),Lj(t)&&r.push({name:`${a}_data`,source:re.FILTERED_TABLE,transform:[JP(s),...l,...oU(e,t,!1)]}),r},rU=(e,t,n)=>{const r=[],{dimension:i,metric:a}=e,{dimensionRange:o,method:s,name:l,orientation:u,trendlineDimension:c,trendlineMetric:d}=t,{trendlineDimension:f}=NP(i,a,u,!1),h=XP(f,o);return r.push({name:`${l}_highResolutionData`,source:re.FILTERED_TABLE,transform:[...uU(t.excludeDataKeys),JP(d),...h,...oU(e,t,!0),JP(re.TRENDLINE_VALUE),...ce(n)]}),Lj(t)&&r.push({name:`${l}_params`,source:re.FILTERED_TABLE,transform:[JP(d),...h,...oU(e,t,!1)]},{name:`${l}_data`,source:re.FILTERED_TABLE,transform:[...h,QP(e,t),...ZP(c,s)]}),r},iU=(e,t)=>({name:`${t.name}_data`,source:re.FILTERED_TABLE,transform:[...uU(t.excludeDataKeys),...oU(e,t,!1),JP(re.TRENDLINE_VALUE),...XP(e.dimension,t.dimensionRange)]}),aU=(e,t)=>({name:`${e}Trendline_highlightedData`,source:`${e}_allTrendlineData`,transform:[{type:"filter",expr:`${re.SELECTED_ITEM} === datum.${t} || !isValid(${re.SELECTED_ITEM}) && (isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) && indexof(${re.CONTROLLED_HIGHLIGHTED_ITEM}, datum.${t}) || isValid(${e}Trendline_${re.HOVERED_ITEM}) && ${e}Trendline_${re.HOVERED_ITEM}.${t} === datum.${t})`}]}),oU=(e,t,n)=>{const{method:r,trendlineDimension:i}=t;if(BP(r))return[WP(e,t,n)];if(jP(r))return[GP(e,t,n)];if(HP(r)){const n=Number.parseInt(r.split("-")[1]),o=[(a=i,{type:"collect",sort:{field:a}}),qP(e,t)];return t.hidePartialWindows&&o.push(...((e,t)=>{const{color:n,lineType:r}=e,{facets:i}=ej({color:n,lineType:r});return[{type:"window",groupby:i,ops:["row_number"],as:["_maRowNumber"]},{type:"filter",expr:"datum._maRowNumber > "+(t-1)}]})(e,n)),o}var a;return[]},sU=ne(((e,t)=>{const{dimension:n,metric:r}=t,i=CP(t);for(const{isDimensionNormalized:t,method:a,name:o,orientation:s,trendlineDimension:l}of i)if(jP(a)){const{trendlineDimension:i}=NP(n,r,s,!1);t&&(e.some((e=>"as"in e&&e.as===`${i}Normalized`))||e.push(...YP(i))),e.push(KP(l,o))}})),lU=(e,t,n)=>{const r=HP(t)?`${e}_data`:`${e}_highResolutionData`,i=`${null!=n?n:e}_${re.HOVERED_ITEM}`;return{name:`${e}_highlightedData`,source:r,transform:[{type:"filter",expr:`datum.${re.SERIES_ID} === ${re.CONTROLLED_HIGHLIGHTED_SERIES} || datum.${re.SERIES_ID} === ${re.SELECTED_SERIES} || isValid(${i}) && ${i}.${re.SERIES_ID} === datum.${re.SERIES_ID}`}]}},uU=e=>{var t;return null!==(t=null==e?void 0:e.map((e=>({type:"filter",expr:`!datum.${e}`}))))&&void 0!==t?t:[]},cU=e=>`clamp(${e} / ${re.HOVER_NEUTRAL_TARGET}, 0, 1)`,dU=(e,t)=>{if(e.length)return t},fU=e=>Boolean(e.dualMetricAxis),hU=(e,t,n)=>"time"===e?re.DRAW_IN_TIME_MS_FIELD:"point"===e?`${n}_${re.DRAW_IN_POINT_INDEX_FIELD}`:t,pU=ne(((e,t)=>{((e,t)=>e.some((e=>"as"in e&&e.as===t)))(e,re.DRAW_IN_TIME_MS_FIELD)||e.push({type:"formula",expr:`toNumber(datum.${t})`,as:re.DRAW_IN_TIME_MS_FIELD})})),mU=(e,t)=>{var n;const{dimension:r,metric:i,name:a,scaleType:o}=t,s=hU(o,r,a),l="point"===o?[s,r,i]:[s,i],u="point"===o?[`${a}_${re.DRAW_IN_NEXT_DIM_FIELD}`,`${a}_${re.DRAW_IN_NEXT_CATEGORY_FIELD}`,`${a}_${re.DRAW_IN_NEXT_METRIC_FIELD}`]:[`${a}_${re.DRAW_IN_NEXT_DIM_FIELD}`,`${a}_${re.DRAW_IN_NEXT_METRIC_FIELD}`];e.transform=null!==(n=e.transform)&&void 0!==n?n:[];const c=e.transform.some((e=>"window"===e.type&&Array.isArray(e.as)&&e.as.length===u.length&&e.as.every(((e,t)=>e===u[t]))));c||e.transform.push({type:"window",sort:{field:s,order:"ascending"},groupby:[re.SERIES_ID],ops:l.map((()=>"lead")),fields:l,as:u})},gU=e=>{const{dimension:t,name:n,scaleType:r}=e,i=hU(r,t,n),a=(({name:e,scaleType:t})=>"point"===t?`${e}_${re.DRAW_IN_POINT_INDEX_DATA}`:re.FILTERED_TABLE)(e),o=`${n}_${re.DRAW_IN_ANIM_CUTOFF}`,s=`${n}_${re.DRAW_IN_NEXT_DIM_FIELD}`,l={name:`${n}_${re.DRAW_IN_PREV_DATA}`,source:a,transform:[{type:"filter",expr:`datum.${i} <= ${o}`}]},u={name:`${n}_${re.DRAW_IN_TIP_DATA}`,source:a,transform:[{type:"filter",expr:`datum.${i} <= ${o} && isValid(datum.${s}) && datum.${s} > ${o}`},{type:"formula",as:re.DRAW_IN_TIP_FLAG,expr:"true"}]};return[l,u,{name:`${n}_${re.DRAW_IN_LERP_DATA}`,source:[l.name,u.name]}]},yU=(e,t)=>{const n=`${e}_${re.DRAW_IN_NEXT_DIM_FIELD}`;return`clamp((${e}_${re.DRAW_IN_ANIM_CUTOFF} - datum.${t}) / (datum.${n} - datum.${t}), 0, 1)`},_U=({dimension:e,name:t,scaleType:n})=>{const r=Mj("x",n),i="time"===n?re.DEFAULT_TRANSFORMED_TIME_DIMENSION:e,a=hU(n,e,t),o=`scale('${r}', datum.${i})`,s=`scale('${r}', datum.${"point"===n?`${t}_${re.DRAW_IN_NEXT_CATEGORY_FIELD}`:`${t}_${re.DRAW_IN_NEXT_DIM_FIELD}`})`,l=yU(t,a);return{signal:`isValid(datum.${re.DRAW_IN_TIP_FLAG}) ? lerp([${o}, ${s}], ${l}) : ${o}`}},vU=e=>{const{dimension:t,metric:n,metricAxis:r,name:i,scaleType:a}=e,o=hU(a,t,i),s=yU(i,o),l=e=>{const t=`scale('${e}', datum.${n})`,r=`scale('${e}', datum.${i}_${re.DRAW_IN_NEXT_METRIC_FIELD})`;return`isValid(datum.${re.DRAW_IN_TIP_FLAG}) ? lerp([${t}, ${r}], ${s}) : ${t}`};return fU(e)?((e,t)=>{const{primaryScale:n,secondaryScale:r}=YH(e);return[{test:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`,signal:t(r)},{signal:t(n)}]})(r||"yLinear",l):{signal:l(r||"yLinear")}},bU=re.CHART_SIZE_LABEL_GAP,xU=(e,t,n)=>{const r=n?`_${n}_`:"_",i=`${r}metricRank`,a=`${r}scaledY`,o=`${r}adjustedY`;return[{type:"joinaggregate",fields:[t],ops:["count"],as:[`${r}seriesCount`]},{type:"window",sort:{field:[t],order:["descending"]},ops:["rank"],as:[i]},{type:"formula",as:a,expr:`scale('${e}', datum["${t}"])`},{type:"formula",as:o,expr:`datum.${a} - datum.${i} * ${bU}`},{type:"window",sort:{field:[i],order:["ascending"]},frame:[null,0],ops:["max"],fields:[o],as:[`${r}cumMaxAdjusted`]}]},EU={fill:{value:"transparent"},stroke:{signal:re.BACKGROUND_COLOR},strokeWidth:{value:re.DIRECT_LABEL_BACKGROUND_STROKE_WIDTH},fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT},fontSize:{signal:re.CHART_SIZE_FONT_SIZE}},SU=(e,t)=>null!=t?t:{value:(0,ie.getS2ColorValue)("gray-900",e)},AU=({alternateSegmentKey:e,forecasts:t,metric:n,name:r})=>!e&&t.length>0?`${r}_effectiveValue`:n,$U=(e,t,n)=>{var r;return{color:n.color,colorScheme:n.colorScheme,dimension:n.dimension,index:t,label:null!==(r=e.label)&&void 0!==r?r:"Forecast",lineName:n.name,metric:e.metric,metricAxis:n.metricAxis,scaleType:n.scaleType,start:e.start}},TU=e=>{const{index:t,lineName:n,scaleType:r,start:i}=e;return{name:`${n}_forecast${t}_boundary`,description:`${n}_forecast${t}_boundary`,type:"rule",interactive:!1,encode:{enter:{y:{value:0},y2:{signal:"height"},stroke:{value:"#909090"},strokeWidth:{value:1}},update:{x:{signal:`scale('${Mj("x",r)}', ${JSON.stringify(i)})`}}}}},OU=e=>{const{index:t,label:n,lineName:r,scaleType:i,start:a}=e,o=`scale('${Mj("x",i)}', ${JSON.stringify(a)})`,s=`${o} + 8`,l=[{test:`width - ${o} < 80`,value:0},{value:1}],u={text:{value:n},fontSize:{value:14},baseline:{value:"top"}};return[{name:`${r}_forecast${t}_label_bg`,description:`${r}_forecast${t}_label_bg`,type:"text",interactive:!1,encode:{enter:Object.assign(Object.assign({},u),{stroke:{signal:re.BACKGROUND_COLOR},strokeWidth:{value:2},fill:{value:"transparent"}}),update:{x:{signal:s},y:{value:4},opacity:l}}},{name:`${r}_forecast${t}_label`,description:`${r}_forecast${t}_label`,type:"text",interactive:!1,encode:{enter:Object.assign(Object.assign({},u),{fill:{value:"#505050"}}),update:{x:{signal:s},y:{value:4},opacity:l}}}]},DU=(e,t)=>`indexof(${Array.isArray(e)?JSON.stringify(e):`slice(domain('color'), 0, ${e})`}, ${t}.${re.SERIES_ID}) < 0`,MU=(e,t,n,r,i)=>({name:`${e}_staticPointData`,source:n,transform:[{type:"filter",expr:r&&i?"datum === data('table')[data('table').length - 1]":`datum.${t} === true`}]}),wU=({interactiveMarkName:e,popoverMarkName:t,comboSiblingNames:n,isHighlightedByGroup:r})=>{const i=[];if(e){const t=`length(data('${e}_highlightedData')) ? (indexof(pluck(data('${e}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? 1 : 0) : null`,n=`isValid(${e}_${re.HOVERED_ITEM}) ? (${e}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : 0) : null`,a=r?t:n;i.push({as:"hoveredMatch",expr:a})}const a=`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}')) ? (indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1 ? 1 : 0) : null`,o=`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES}) ? (${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? 1 : 0) : null`;if(i.push({as:"controlledTableMatch",expr:a},{as:"controlledSeriesMatch",expr:o}),t){const e=`isValid(${re.SELECTED_SERIES}) ? (${re.SELECTED_SERIES} === datum.${re.SERIES_ID} ? 1 : 0) : null`;i.push({as:"popoverMatch",expr:e})}if(null==n?void 0:n.length){const e=`(${n.map((e=>`isValid(${e}_${re.HOVERED_ITEM})`)).join(" || ")}) ? 1 : 0`;i.push({as:"comboSiblingMatch",expr:e})}return i},IU=e=>void 0===e?{signal:re.CHART_SIZE_POINT_SIZE}:{value:e},CU=e=>{const{name:t,interactiveMarkName:n,isHoverAnimate:r,isHighlightedByGroup:i}=e;if(r)return WU(t);const a=[];return n&&(i?a.push({test:`length(data('${n}_highlightedData'))`,signal:`indexof(pluck(data('${n}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? 1 : ${re.FADE_FACTOR}`}):a.push({test:`isValid(${n}_${re.HOVERED_ITEM})`,signal:`${n}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`})),a.push(re.DEFAULT_OPACITY_RULE),a},RU=(e,t=!0)=>{const{color:n,colorScheme:r,dimension:i,metric:a,name:o,pointSize:s,scaleType:l}=e;return{name:`${o}_point_${t?"highlight":"select"}`,description:`${o}_point_${t?"highlight":"select"}`,type:"symbol",from:{data:`${o}${t?"_highlightedData":"_selectedData"}`},interactive:!1,encode:{enter:{size:IU(s),fill:{signal:re.BACKGROUND_COLOR},stroke:Bj(n,r),strokeWidth:{signal:re.CHART_SIZE_HOVER_STROKE_WIDTH},y:FU(e,a)},update:{x:Wj(l,i)}}}},kU=e=>RU(e,!0),LU=e=>RU(e,!1),NU=(e,t)=>{const{color:n,colorScheme:r,dimension:i,name:a,scaleType:o}=e;return{name:`${a}_secondaryPoint`,description:`${a}_secondaryPoint`,type:"symbol",from:{data:`${a}_highlightedData`},interactive:!1,encode:{enter:{y:FU(e,t),fill:{signal:re.BACKGROUND_COLOR},stroke:Bj(n,r)},update:{x:Wj(o,i)}}}},FU=(e,t)=>{const{metricAxis:n}=e;if(fU(e)){const e=YH(n||"yLinear");return[{test:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`,scale:e.secondaryScale,field:t},{scale:e.primaryScale,field:t}]}return[{scale:n||"yLinear",field:t}]},BU=(e,t,n,r)=>{const i=Bj(n,r);if(!e)return i;const a=(0,ie.getS2ColorValue)(t||"gray-400",r);return[{test:DU(e,"datum"),value:a},i]},jU=(e,t)=>{const{dimension:n,metric:r,name:i,scaleType:a,interpolate:o}=e;return{name:`${i}_gradient`,description:`${i}_gradient`,type:"area",from:{data:t},interactive:!1,encode:{enter:Object.assign({y:FU(e,r),y2:{signal:"height"},defined:{signal:`isValid(datum["${r}"])`}},HU(e)),update:Object.assign({x:Wj(a,n),opacity:[{test:`length(domain('${re.COLOR_SCALE}')) > 1 || length(domain('${re.LINE_TYPE_SCALE}')) > 1 || length(domain('${re.OPACITY_SCALE}')) > 1`,value:0},...[GU(e)].flat()]},o?{interpolate:{value:o}}:{})}}},HU=({color:e,colorScheme:t,name:n,opacity:r,alternateSegmentKey:i})=>({fill:{signal:`{gradient: 'linear', stops: [{offset: 0, color: ${jj(e,t)}}, {offset: 1, color: 'transparent'}], x1: 0, y1: 0, x2: 0, y2: 1}`},fillOpacity:zU(n,r,i)}),zU=(e,t,n)=>{if(!n)return PU(t);const r="string"==typeof t?`scale('${re.OPACITY_SCALE}', datum.${t}) * 0.2`:String(.2*t.value);return{signal:`datum.${e}_alternateFlag ? ${"string"==typeof t?`scale('${re.OPACITY_SCALE}', datum.${t}) * 0.08000000000000002`:String(.08000000000000002*t.value)} : ${r}`}},PU=e=>"string"==typeof e?{signal:`scale('${re.OPACITY_SCALE}', datum.${e}) * 0.2`}:{value:.2*e.value},UU=(e,t,n)=>{var r;if(n)return{signal:`datum.${e}_alternateFlag ? ${JSON.stringify(nj(n))} : ${"string"==typeof(r=t)?`scale('${re.LINE_TYPE_SCALE}', datum['${r}'])`:JSON.stringify(nj(r.value))}`}},VU=(e,t)=>{const{alternateSegmentKey:n,alternateSegmentLineType:r,chartPopovers:i,color:a,colorScheme:o,dimension:s,otherSeriesColor:l,lineCap:u="round",lineType:c,metric:d,name:f,opacity:h,scaleType:p,primarySeries:m,interpolate:g,isDrawInAnimate:y}=e,_=Kz(null!=i?i:[],f).some((({UNSAFE_highlightBy:e})=>"dimension"===e));return{name:f,description:f,type:"line",from:{data:t},interactive:!1,encode:{enter:Object.assign(Object.assign({},y?{}:{y:FU(e,d)}),{stroke:BU(m,l,a,o),strokeCap:{value:u},strokeDash:n?UU(f,c,r):Uj(c),strokeOpacity:zj(h)}),update:Object.assign(Object.assign(Object.assign(Object.assign({x:y?_U(e):Wj(p,s)},y?{y:vU(e)}:{}),_?{}:{opacity:GU(e)}),g?{interpolate:{value:g}}:{}),{strokeWidth:YU(e)})}}},WU=e=>{const t=cU(((e,t=re.SERIES_ID)=>{const n=`data('${e}_${re.HOVER_FRACTION_DATA}')`;return`(${n}[indexof(pluck(${n}, '${t}'), datum.${t})] || {fraction: ${re.HOVER_NEUTRAL_TARGET}}).fraction`})(e));return{signal:`${re.FADE_FACTOR} + (1 - ${re.FADE_FACTOR}) * ${t}`}},GU=e=>{const{displayOnHover:t,isHoverAnimate:n,name:r}=e;return t?[re.DEFAULT_OPACITY_RULE]:n?WU(r):qU(e)},qU=({comboSiblingNames:e,interactiveMarkName:t,popoverMarkName:n,isHighlightedByGroup:r,highlightedItem:i})=>{if(!t&&void 0===i)return[re.DEFAULT_OPACITY_RULE];const a=[];if(t&&(r?a.push({test:`length(data('${t}_highlightedData'))`,signal:`indexof(pluck(data('${t}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? 1 : ${re.FADE_FACTOR}`}):a.push({test:`isValid(${t}_${re.HOVERED_ITEM})`,signal:`${t}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`})),a.push({test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'))`,signal:`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1 ? 1 : ${re.FADE_FACTOR}`},{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}),n&&a.push({test:`isValid(${re.SELECTED_SERIES})`,signal:`${re.SELECTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}),null==e?void 0:e.length){const t=e.map((e=>`isValid(${e}_${re.HOVERED_ITEM})`)).join(" || ");a.push({test:t,value:re.FADE_FACTOR})}return a.push(re.DEFAULT_OPACITY_RULE),a},YU=({displayOnHover:e,comboSiblingNames:t,interactiveMarkName:n,popoverMarkName:r,isHighlightedByGroup:i,highlightedItem:a})=>{if((!n||e)&&void 0===a)return[re.DEFAULT_STROKE_WIDTH_RULE];const o=[];if(n&&(i?o.push({test:`length(data('${n}_highlightedData'))`,signal:`indexof(pluck(data('${n}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1 ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`}):o.push({test:`isValid(${n}_${re.HOVERED_ITEM})`,signal:`${n}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`})),o.push({test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'))`,signal:`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1 ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`},{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`}),r&&o.push({test:`isValid(${re.SELECTED_SERIES})`,signal:`${re.SELECTED_SERIES} === datum.${re.SERIES_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`}),null==t?void 0:t.length){const e=t.map((e=>`isValid(${e}_${re.HOVERED_ITEM})`)).join(" || ");o.push({test:e,signal:re.CHART_SIZE_STROKE_WIDTH})}return o.push(re.DEFAULT_STROKE_WIDTH_RULE),o},KU=(e,t,n)=>{const{dimension:r,name:i,scaleType:a,showHoverLabel:o=!0}=e;return[XU(r,i,a),...Nj(e)?[LU(e)]:[],kU(e),...n?[NU(e,n)]:[],...o?JU(e):[],...ZU(t,e)]},JU=e=>{const{color:t,colorScheme:n,dimension:r,hoverLabelKey:i,metric:a,metricAxis:o,name:s,scaleType:l}=e,u=null!=i?i:a,c=o||"yLinear",d=`scale('${Mj("x",l)}', datum['${"time"===l?re.DEFAULT_TRANSFORMED_TIME_DIMENSION:r}']) + getLabelWidth(datum["${u}"], 'bold', ${re.CHART_SIZE_FONT_SIZE}) + 9 > width`,f=`datum._hover_cumMaxAdjusted + datum._hover_metricRank * ${bU} - datum._hover_scaledY`;return((e,t,n,r,i,a,o)=>{const{x:s,y:l,additional:u={}}=i;return[{name:e,type:"text",interactive:!1,from:{data:n},encode:{enter:Object.assign({text:{signal:r}},EU),update:Object.assign({x:s,y:l},u)}},{name:t,type:"text",interactive:!1,from:{data:n},encode:{enter:{text:{signal:r},fill:SU(a,o),fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT},fontSize:{signal:re.CHART_SIZE_FONT_SIZE}},update:Object.assign({x:s,y:l},u)}}]})(`${s}_hoverLabelBg`,`${s}_hoverLabel`,`${s}_hoverLabelData`,`datum["${u}"]`,{x:Wj(l,r),y:[{scale:c,field:a,offset:{signal:f}}],additional:{dx:{signal:`${d} ? -9 : 9`},align:{signal:`${d} ? 'right' : 'left'`},baseline:{value:"middle"}}},n,{signal:jj(t,n)})},XU=(e,t,n)=>({name:`${t}_hoverRule`,description:`${t}_hoverRule`,type:"rule",from:{data:`${t}_highlightedData`},interactive:!1,encode:{enter:{y:{value:0},y2:{signal:"height"},strokeWidth:{value:1}},update:{x:Wj(n,e),opacity:{signal:`length(data('${t}_selectedData')) > 0 ? 0 : 1`}}}}),ZU=(e,t)=>{const{interactionMode:n=re.DEFAULT_INTERACTION_MODE}=t;return{nearest:QU,item:tV}[n](t,e)},QU=(e,t)=>{const{name:n}=e;return[eV(e,t),Yj(e,`${n}_pointsForVoronoi`)]},eV=(e,t)=>{const{dimension:n,metric:r,name:i,scaleType:a}=e;return{name:`${i}_pointsForVoronoi`,description:`${i}_pointsForVoronoi`,type:"symbol",from:{data:t},interactive:!1,encode:{enter:{y:FU(e,r),fill:{value:"transparent"},stroke:{value:"transparent"}},update:{x:Wj(a,n)}}}},tV=(e,t)=>{const{chartInspects:n=[],dimension:r,metric:i,name:a,scaleType:o}=e;return[Kj(n,t,r,0,a,o,FU(e,i))]},nV=e=>{const{interactiveMarkName:t,isHighlightedByGroup:n,legendHighlightSignals:r}=e;return[...t?[n?{test:`length(data('${t}_highlightedData')) && indexof(pluck(data('${t}_highlightedData'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) !== -1`,value:1}:{test:`isValid(${t}_${re.HOVERED_ITEM}) && ${t}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID}`,value:1}]:[],{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES}) && ${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID}`,value:1},{test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}')) && indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1`,value:1},...(null!=r?r:[]).map((e=>({test:`isValid(${e}) && ${e} === datum.${re.SERIES_ID}`,value:1}))),{value:0}]},rV=(e,t)=>{const n=[],r=((e,t)=>e.trendlineAnnotations.map(((n,r)=>(({badge:e=!1,dimensionValue:t="end",numberFormat:n="",prefix:r=""},i,{colorScheme:a,dimensionExtent:o,dimensionScaleType:s,displayOnHover:l,lineWidth:u,orientation:c,trendlineColor:d,trendlineDimension:f,name:h},p)=>({badge:e,colorScheme:a,dimensionValue:t,displayOnHover:l,markName:p,name:`${h}Annotation${i}`,numberFormat:n,prefix:r,trendlineColor:d,trendlineDimension:f,trendlineDimensionExtent:o,trendlineDimensionScaleType:s,trendlineName:h,trendlineOrientation:c,trendlineWidth:rj(u)}))(n,r,e,t))))(e,t);for(const e of r)n.push({name:`${e.name}_group`,type:"group",interactive:!1,marks:[iV(e),sV(e),...uV(e)]});return n},iV=e=>{const{name:t,trendlineName:n,trendlineWidth:r,displayOnHover:i}=e;return{name:`${t}_points`,type:"symbol",from:{data:i?`${n}_highlightedData`:`${n}_highResolutionData`},interactive:!1,encode:{enter:{opacity:{value:0},size:{value:Math.pow(r,2)},x:aV(e),y:oV(e)}}}},aV=({dimensionValue:e,trendlineDimension:t,trendlineDimensionExtent:n,trendlineDimensionScaleType:r,trendlineOrientation:i})=>{const a=Mj("x",r);if("vertical"===i)return{scale:a,field:re.TRENDLINE_VALUE};switch(e){case"start":return gV(n[0],t,a,"x");case"end":return yV(n[1],t,a,"x");default:return{scale:a,value:e}}},oV=({dimensionValue:e,trendlineDimension:t,trendlineDimensionExtent:n,trendlineOrientation:r})=>{const i="yLinear";if("horizontal"===r)return{scale:i,field:re.TRENDLINE_VALUE};switch(e){case"start":return gV(n[0],t,i,"y");case"end":return yV(n[1],t,i,"y");default:return{scale:i,value:e}}},sV=e=>{const{name:t,numberFormat:n,prefix:r,trendlineName:i,markName:a}=e,o=r?`'${r} ' + `:"",s=lV(Object.assign({},e));return{name:t,type:"text",from:{data:`${t}_points`},zindex:1,interactive:!1,encode:{enter:{text:{signal:`${o}format(datum.datum.${re.TRENDLINE_VALUE}, '${n}')`},fill:s}},transform:[{type:"label",size:{signal:"[width, height]"},avoidMarks:[i,`${a}_group`],offset:[6,6,6,6,8.49,8.49,8.49,8.49],anchor:["top","bottom","right","left","top-right","top-left","bottom-right","bottom-left"]}]}},lV=({badge:e,colorScheme:t,trendlineColor:n})=>{if(!e)return;const r=cV(n),i=jj(r,t),a=[(0,ie.getS2ColorValue)("gray-50",t),(0,ie.getS2ColorValue)("gray-900",t)];return[{test:`contrast(${i}, '${a[0]}') >= 4.5`,value:a[0]},{value:a[1]}]},uV=({badge:e,colorScheme:t,name:n,trendlineColor:r})=>{if(!e)return[];const i=cV(r,2);return[{name:`${n}_badge`,description:`${n}_badge`,type:"rect",from:{data:`${n}`},interactive:!1,encode:{enter:{cornerRadius:{value:2},fill:Bj(i,t),opacity:{field:"opacity"},x:{signal:"datum.bounds.x1 - 3"},x2:{signal:"datum.bounds.x2 + 3"},y:{signal:"datum.bounds.y1 - 3"},y2:{signal:"datum.bounds.y2 + 3"}}}}]},cV=(e,t=1)=>"string"==typeof e?`${new Array(t).fill("datum.").join("")}${e}`:e,dV=e=>{const{color:t,lineType:n}=e,{facets:r}=ej({color:t,lineType:n}),i=[],a=CP(e);for(const t of a){const{displayOnHover:n,method:a,name:o}=t;if(BP(a))i.push(hV(e,t));else{const s=fV(o,a,n);i.push({name:`${o}_group`,type:"group",clip:!0,from:{facet:{name:`${o}_facet`,data:s,groupby:r}},marks:[_V(e,t)]})}i.push(...rV(t,e.name))}return a.some((e=>Fj(e)))&&i.push(xV(e,a.some((e=>e.highlightRawPoint)))),i},fV=(e,t,n)=>n?`${e}_highlightedData`:jP(t)?`${e}_highResolutionData`:`${e}_data`,hV=(e,t)=>{const{colorScheme:n}=e,{dimensionExtent:r,dimensionScaleType:i,displayOnHover:a,lineType:o,lineWidth:s,name:l,orientation:u,trendlineColor:c,trendlineDimension:d}=t;return{name:l,type:"rule",clip:!0,from:{data:a?`${l}_highlightedData`:`${l}_highResolutionData`},interactive:!1,encode:{enter:Object.assign(Object.assign({},pV(r,d,u)),{stroke:Bj(c,n),strokeDash:Uj({value:o}),strokeOpacity:zj({value:t.opacity}),strokeWidth:Hj({value:s})}),update:Object.assign(Object.assign({},mV(r,d,i,u)),{opacity:GU(EV(e,t))})}}},pV=(e,t,n)=>"horizontal"===n?{y:{scale:"yLinear",field:re.TRENDLINE_VALUE}}:{y:gV(e[0],t,"yLinear","y"),y2:yV(e[1],t,"yLinear","y")},mV=(e,t,n,r)=>{const i=Mj("x",n);return"vertical"===r?{x:{scale:i,field:re.TRENDLINE_VALUE}}:{x:gV(e[0],t,i,"x"),x2:yV(e[1],t,i,"x")}},gV=(e,t,n,r)=>{switch(e){case null:return{scale:n,field:`${t}Min`};case"domain":return"x"===r?{value:0}:{signal:"height"};default:return{scale:n,value:e}}},yV=(e,t,n,r)=>{switch(e){case null:return{scale:n,field:`${t}Max`};case"domain":return"x"===r?{signal:"width"}:{value:0};default:return{scale:n,value:e}}},_V=(e,t)=>{const{colorScheme:n}=e,{dimensionScaleType:r,isDimensionNormalized:i,lineType:a,lineWidth:o,name:s,orientation:l,trendlineColor:u,trendlineDimension:c}=t;return{name:s,type:"line",from:{data:`${s}_facet`},interactive:!1,encode:{enter:{y:vV(c,l),stroke:Bj(u,n),strokeDash:Uj({value:a}),strokeOpacity:zj({value:t.opacity}),strokeWidth:Hj({value:o})},update:{x:bV(c,r,l,i),opacity:GU(EV(e,t))}}}},vV=(e,t)=>{const n="yLinear";return"horizontal"===t?{scale:n,field:re.TRENDLINE_VALUE}:{scale:n,field:e}},bV=(e,t,n,r)=>{const i=Mj("x",t);return"vertical"===n?{scale:i,field:re.TRENDLINE_VALUE}:r?{scale:"xTrendline",field:e}:{scale:i,field:e}},xV=(e,t)=>{const{metric:n,name:r}=e,i=CP(e),a=EV(e,i[0],{name:`${r}Trendline`,chartInspects:i.flatMap((e=>e.chartInspects)),metric:re.TRENDLINE_VALUE,showHoverLabel:!1});return{name:`${r}Trendline_hoverGroup`,type:"group",clip:!0,marks:KU(a,`${r}_allTrendlineData`,t?n:void 0)}},EV=(e,{dimensionScaleType:t,displayOnHover:n,lineWidth:r,metric:i,name:a,opacity:o},s)=>{const{color:l,lineType:u}=e,c="popoverMarkName"in e?e.popoverMarkName:void 0,d="staticPoint"in e?e.staticPoint:void 0;return Object.assign(Object.assign(Object.assign({},e),{color:kP(l),displayOnHover:n,lineType:LP(u),lineWidth:{value:r},metric:i,name:a,opacity:{value:o},popoverMarkName:c,scaleType:t,staticPoint:d,isHoverAnimate:!1}),s)},SV=e=>{const{dimension:t}=e;return CP(e).some((({dimensionScaleType:e,method:t})=>jP(t)&&"time"===e))?[{name:"xTrendline",type:"linear",range:"width",domain:{data:re.FILTERED_TABLE,fields:[`${t}Normalized`]},padding:re.LINEAR_PADDING,zero:!1,nice:!1}]:[]},AV=(e,t)=>{const{name:n}=t;CP(t).some((e=>Fj(e)))&&yH(e,`${n}Trendline`,`${n}Trendline_voronoi`,2)};const $V=(e,t,n,r,i)=>{var{textKey:a,padding:o}=e,s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["textKey","padding"]);return Object.assign({barOptions:t,textKey:a||t.metric,padding:null!=o?o:re.ANNOTATION_PADDING,dataName:n,dimensionScaleName:r,dimensionField:i},s)},TV=(e,t,n,r)=>{const i=((e,t,n,r)=>{const i=e.barAnnotations[0];if(i)return $V(i,e,t,n,r)})(e,t,n,r);return i?[{type:"group",name:`${e.name}_annotationGroup`,marks:[OV(i),DV(i)]}]:[]},OV=({padding:e,barOptions:t,dataName:n,dimensionField:r,dimensionScaleName:i,textKey:a,style:o})=>{const{metricAxis:s,dimensionAxis:l}=TP(t.orientation),u=IV(a,e,o),c=CV(t,u,e);return{name:`${t.name}_annotationText`,type:"text",from:{data:n},interactive:!1,zindex:1,encode:{enter:{[l]:{scale:i,field:r,band:.5},[s]:c,text:[{test:`bandwidth('${i}') > ${MV(t.orientation,e)}`,field:a}],fontSize:{value:re.ANNOTATION_FONT_SIZE},fontWeight:{value:re.ANNOTATION_FONT_WEIGHT},baseline:{value:"middle"},align:{value:"center"}}}}},DV=({barOptions:e,dimensionScaleName:t,padding:n,textKey:r,style:i})=>({name:`${e.name}_annotationBackground`,description:`${e.name}_annotationBackground`,type:"rect",from:{data:`${e.name}_annotationText`},interactive:!1,encode:{enter:Object.assign(Object.assign({},wV(n,null==i?void 0:i.width)),{y:{signal:`datum.bounds.y1 - ${n}`},y2:{signal:`datum.bounds.y2 + ${n}`},cornerRadius:{value:4},fill:[{test:`datum.datum.${r} && bandwidth('${t}') > ${MV(e.orientation,n)}`,signal:re.BACKGROUND_COLOR}]})}}),MV=(e,t)=>"vertical"===e?48:re.ANNOTATION_FONT_SIZE+2*t,wV=(e,t)=>t?{xc:{signal:"(datum.bounds.x1 + datum.bounds.x2) / 2"},width:{value:t}}:{x:{signal:`datum.bounds.x1 - ${e}`},x2:{signal:`datum.bounds.x2 + ${e}`}},IV=(e,t,n)=>(null==n?void 0:n.width)?{value:n.width}:{signal:`getLabelWidth(datum.${e}, '${re.ANNOTATION_FONT_WEIGHT}', ${re.ANNOTATION_FONT_SIZE}) + ${2*t}`},CV=(e,t,n)=>{const{type:r,metric:i,orientation:a}=e,o="stacked"===r||nP(e)?`${i}1`:i,{metricScaleKey:s}=TP(a),l=(({orientation:e},t,n)=>"vertical"===e?""+((2*n+re.ANNOTATION_FONT_SIZE)/2+2.5):"value"in t?""+(t.value/2+2.5):`((${t.signal}) / 2 + 2.5)`)(e,t,n);return"vertical"===a?[{test:`datum.${o} < 0`,signal:`max(scale('${s}', datum.${o}), scale('${s}', 0) + ${l})`},{signal:`min(scale('${s}', datum.${o}), scale('${s}', 0) - ${l})`}]:[{test:`datum.${o} < 0`,signal:`min(scale('${s}', datum.${o}), scale('${s}', 0) - ${l})`},{signal:`max(scale('${s}', datum.${o}), scale('${s}', 0) + ${l})`}]},RV=e=>{const{name:t}=e;return{name:`${t}_background`,description:`${t}_background`,type:"rect",from:{data:nP(e)?`${t}_facet`:NV(e)},interactive:!1,encode:{enter:Object.assign(Object.assign({},dP(e)),{fill:{signal:re.BACKGROUND_COLOR}}),update:Object.assign({},LV(e))}}},kV=e=>{const{name:t}=e;return{name:t,description:t,type:"rect",from:{data:nP(e)?`${t}_facet`:NV(e)},interactive:Lj(e),encode:{enter:Object.assign(Object.assign({},dP(e)),hP(e)),update:Object.assign(Object.assign({},LV(e)),pP(e))}}},LV=e=>{const{dimension:t,orientation:n}=e;if(nP(e))return aP(e);const{dimensionAxis:r,dimensionSizeSignal:i,dimensionScaleKey:a}=TP(n);return{[r]:{scale:a,field:t},[i]:{scale:a,band:1}}},NV=e=>tP(e)?eP(e).facetName:re.FILTERED_TABLE;const FV=ne(((e,t)=>{var n,r,i,a,{barAnnotations:o=[],barDirectLabels:s=[],chartPopovers:l=[],chartInspects:u=[],color:c={value:"categorical-100"},colorScheme:d=re.DEFAULT_COLOR_SCHEME,dimension:f=re.DEFAULT_CATEGORICAL_DIMENSION,diverging:h=!1,dualMetricAxis:p=!1,hasOnClick:m=!1,hasSquareCorners:g=!1,index:y=0,lineType:_={value:"solid"},lineWidth:v=0,metric:b=re.DEFAULT_METRIC,metricAxis:x,name:E,opacity:S={value:1},orientation:A="vertical",paddingRatio:$=re.PADDING_RATIO,trellisOrientation:T="horizontal",trellisPadding:O=re.TRELLIS_PADDING,type:D="stacked",trendlines:M=[]}=t,w=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["barAnnotations","barDirectLabels","chartPopovers","chartInspects","color","colorScheme","dimension","diverging","dualMetricAxis","hasOnClick","hasSquareCorners","index","lineType","lineWidth","metric","metricAxis","name","opacity","orientation","paddingRatio","trellisOrientation","trellisPadding","type","trendlines"]);const I=(0,ae.toCamelCase)(E||`bar${y}`),C=Object.assign({barAnnotations:o,barDirectLabels:s,chartPopovers:l,chartInspects:u,dimensionScaleType:"band",diverging:h,dualMetricAxis:p,orientation:A,color:c,colorScheme:d,dimension:f,hasOnClick:m,hasSquareCorners:g,index:y,interactiveMarkName:tH({chartPopovers:l,chartInspects:u,hasOnClick:m,highlightedItem:w.highlightedItem,trendlines:M},I),lineType:_,lineWidth:v,metric:b,metricAxis:x,name:I,opacity:S,paddingRatio:$,trellisOrientation:T,trellisPadding:O,trendlines:M,type:D},w);e.usermeta=Object.assign(Object.assign({},e.usermeta),{chartOrientation:C.orientation}),e.usermeta=mj(e.usermeta,C.interactiveMarkName,Lj(C)?C.dimension:void 0);const R=ej({color:c,lineType:_,opacity:S}).facets.length>0;h&&"dodged"!==D&&!R&&(e.usermeta=gj(e.usermeta,C.name,C.dimension,C.metric)),e.data=jV(null!==(n=e.data)&&void 0!==n?n:[],C),e.signals=BV(null!==(r=e.signals)&&void 0!==r?r:[],C),e.scales=GV(null!==(i=e.scales)&&void 0!==i?i:[],C),e.marks=KV(null!==(a=e.marks)&&void 0!==a?a:[],C)})),BV=ne(((e,t)=>{var n;const{barAnnotations:r,chartInspects:i,chartPopovers:a,hasOnClick:o,name:s,paddingRatio:l,paddingOuter:u,trendlines:c}=t,{paddingInner:d}=AP(l,u);e.push(pH("paddingInner",d)),rP(t)&&e.push(mH(),gH()),(r.length||a.length||i.length||c.length||o)&&(yH(e,s,void 0,1,null===(n=i[0])||void 0===n?void 0:n.excludeDataKeys),Lj(t)&&(yH(e,`${s}_${re.DIMENSION_HOVER_AREA}`),yH(e,`${s}_${re.DIMENSION_HOVER_AREA}`,s)),lH(e,t),AV(e,t))})),jV=ne(((e,t)=>{var n,r,i,a,o;const{dimension:s,dimensionDataType:l,metric:u,order:c,type:d}=t;if(l===re.TIME){const t=le(e);t.transform=oe(null!==(n=t.transform)&&void 0!==n?n:[],s)}const f=e.findIndex((e=>e.name===re.FILTERED_TABLE));e[f].transform=null!==(r=e[f].transform)&&void 0!==r?r:[],("stacked"===d||nP(t))&&(null===(i=e[f].transform)||void 0===i||i.push({type:"stack",groupby:PV(t),field:u,sort:se(c),as:[`${u}0`,`${u}1`]}),null===(a=e[f].transform)||void 0===a||a.push(zV(t)),e.push(HV(t))),("dodged"===d||nP(t))&&(e.push(UV(t)),null===(o=e[f].transform)||void 0===o||o.push(VV(t))),WV(e,t),eU(e,t),iH(e,t),Xz(e,t)})),HV=e=>{const{metric:t,name:n}=e;return{name:`${n}_stacks`,source:re.FILTERED_TABLE,transform:[{type:"aggregate",groupby:PV(e),fields:[`${t}1`,`${t}1`],ops:["min","max"]},zV(e)]}},zV=e=>({type:"formula",as:re.STACK_ID,expr:PV(e).map((e=>`datum.${e}`)).join(' + "," + ')}),PV=({trellis:e,color:t,dimension:n,lineType:r,opacity:i,type:a})=>{const{facets:o,secondaryFacets:s}=ej({color:t,lineType:r,opacity:i});return[...e?[e]:[],n,..."dodged"===a?o:[],..."stacked"===a?s:[]]},UV=e=>{const{dimension:t,name:n}=e;return{name:`${n}_groups`,source:re.FILTERED_TABLE,transform:[{type:"aggregate",groupby:[t]}]}},VV=({color:e,lineType:t,name:n,opacity:r,type:i})=>{const{facets:a,secondaryFacets:o}=ej({color:e,lineType:t,opacity:r});return{type:"formula",as:`${n}_dodgeGroup`,expr:("dodged"===i?a:o).map((e=>`datum.${e}`)).join(' + "," + ')}},WV=(e,t)=>{if(rP(t)){const n=YH(OP(t));n.primaryDomain&&n.secondaryDomain&&e.push({name:n.primaryDomain,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${re.SERIES_ID} !== ${re.LAST_RSC_SERIES_ID}`}]},{name:n.secondaryDomain,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`}]})}},GV=ne(((e,t)=>{const{color:n,lineType:r,opacity:i,metricAxis:a}=t,{metricAxis:o}=TP(t.orientation);if(Sj(e,$P(t),o),a&&Sj(e,$P(t),o,a),rP(t)){const n=YH(OP(t));Sj(e,$P(t),o,n.primaryScale,n.primaryDomain),Sj(e,$P(t),o,n.secondaryScale,n.secondaryDomain)}qV(e,t),((e,t)=>{if(!t.trellis)return;const{scaleName:n,dimensionSizeSignal:r,paddingInner:i}=eP(t),a=vj(e,n,"band");e[a]=bj(e[a],[t.trellis]),e[a]=Object.assign(Object.assign({},e[a]),{range:r,paddingInner:i})})(e,t),Aj(e,re.COLOR_SCALE,n),Aj(e,re.LINE_TYPE_SCALE,r),Aj(e,re.OPACITY_SCALE,i),YV(e,t)})),qV=(e,{dimension:t,paddingRatio:n,paddingOuter:r,orientation:i})=>{const{dimensionAxis:a}=TP(i),o=_j(e,"band",a);e[o]=bj(e[o],[t]);const{paddingInner:s,paddingOuter:l}=AP(n,r);e[o]=Object.assign(Object.assign({},e[o]),{paddingInner:s,paddingOuter:l})},YV=(e,t)=>{const{color:n,lineType:r,opacity:i}=t;nP(t)&&[{value:n,scaleName:"colors",secondaryScaleName:"secondaryColor"},{value:r,scaleName:"lineTypes",secondaryScaleName:"secondaryLineType"},{value:i,scaleName:"opacities",secondaryScaleName:"secondaryOpacity"}].forEach((({value:t,scaleName:n,secondaryScaleName:r})=>{if(Array.isArray(t)&&2===t.length){const i=vj(e,r,"ordinal");e[i]=bj(e[i],[t[1]]);const a=vj(e,n,"ordinal"),o=e[a];o.range={signal:n},e[a]=bj(o,[t[0]])}}))},KV=ne(((e,t)=>{const{chartPopovers:n,name:r,type:i}=t,a=[];if(nP(t)?a.push((e=>{const t=[],n=gP(e),r=`${e.name}_facet`,i=LV(e);return n&&t.push(bP(e,r,i)),t.push(RV(e),kV(e),...TV(e,`${e.name}_facet`,`${e.name}_position`,`${e.name}_dodgeGroup`)),n&&t.push(xP(e,r,i)),Object.assign(Object.assign({},iP(e)),{marks:t})})(t)):"stacked"===i?a.push(...(e=>{const t=[];Lj(e)&&t.push(DP(e,"stacked"));const n=gP(e),r=NV(e),i=LV(e);return n&&t.push(bP(e,r,i)),t.push(RV(e),kV(e),...TV(e,NV(e),TP(e.orientation).dimensionScaleKey,e.dimension)),n&&t.push(xP(e,r,i)),t})(t)):a.push(...(e=>{const{name:t}=e,n=gP(e),r=aP(e),i=[Object.assign(Object.assign({},iP(e)),{marks:[...n?[bP(e,`${t}_facet`,r)]:[],{name:`${t}_background`,from:{data:`${t}_facet`},type:"rect",interactive:!1,encode:{enter:Object.assign(Object.assign({},dP(e)),{fill:{signal:re.BACKGROUND_COLOR}}),update:Object.assign({},aP(e))}},{name:t,from:{data:`${t}_facet`},type:"rect",interactive:Lj(e),encode:{enter:Object.assign(Object.assign({},dP(e)),hP(e)),update:Object.assign(Object.assign({},aP(e)),pP(e))}},...TV(e,`${t}_facet`,`${t}_position`,`${t}_dodgeGroup`),...n?[xP(e,`${t}_facet`,r)]:[]]})];return Lj(e)&&i.unshift(DP(e,"dodged")),i})(t)),Kz(n,r).some((e=>"dimension"===e.UNSAFE_highlightBy))&&a.push((e=>{const{name:t,colorScheme:n,paddingRatio:r,orientation:i}=e,a="vertical"===i?{y:{value:0},y2:{signal:"height"},xc:{signal:`scale('xBand', datum.${t}_selectedGroupId) + bandwidth('xBand')/2`},width:{signal:`bandwidth('xBand')/(1 - ${r} / 2)`}}:{x:{value:0},x2:{signal:"width"},yc:{signal:`scale('yBand', datum.${t}_selectedGroupId) + bandwidth('yBand')/2`},height:{signal:`bandwidth('yBand')/(1 - ${r} / 2)`}};return{name:`${t}_selectionRing`,type:"rect",from:{data:`${t}_selectedData`},interactive:!1,encode:{enter:{fill:{value:"transparent"},strokeWidth:{value:2},stroke:{value:(0,ie.getS2ColorValue)("static-blue",n)},cornerRadius:{value:4}},update:a}}})(t)),tP(t)){const n=JV(t);e.push(((e,t,n)=>{const{trellisOrientation:r}=e,i=e.trellis,{markName:a,facetName:o,scaleName:s,axis:l,dimensionSizeSignal:u}=eP(e);return{name:a,type:"group",from:{facet:{data:re.FILTERED_TABLE,name:o,groupby:i}},signals:[{name:u,update:`bandwidth('${s}')`}],encode:{enter:{[l]:{scale:s,field:i},height:{signal:"vertical"===r?`bandwidth('${s}')`:"height"},width:{signal:"horizontal"===r?`bandwidth('${s}')`:"width"}}},scales:[n],marks:t}})(t,a,n))}else e.push(...a);e.push(...dV(t));for(const[n,r]of t.barDirectLabels.entries())e.push(...wP(IP(r,n,t),t))})),JV=e=>{const{orientation:t,trellisOrientation:n}=e;if(t===n){const{metricAxis:n}=TP(t);return((e,t,n)=>{let r=Tj("linear",t,n);return r=bj(r,e),r})($P(e),n,t)}return XV(e)},XV=({dimension:e,orientation:t,paddingRatio:n,paddingOuter:r})=>{const{dimensionAxis:i}=TP(t);let a=Tj("band",i,t);a=bj(a,[e]);const{paddingInner:o,paddingOuter:s}=AP(n,r);return Object.assign(Object.assign({},a),{paddingInner:o,paddingOuter:s})};function ZV(e,t,n){var r;if(!e||0===e.length)return`'${n}'`;const i=e.slice().sort(((e,t)=>(void 0===e.thresholdMin?-1e12:e.thresholdMin)-(void 0===t.thresholdMin?-1e12:t.thresholdMin))),a=[];a.push(`(datum.${t} < ${void 0===i[0].thresholdMin?-1e12:i[0].thresholdMin}) ? '${n}' : `);for(let e=0;e<i.length-1;e++){const n=void 0===i[e+1].thresholdMin?-1e12:i[e+1].thresholdMin;a.push(`(datum.${t} < ${n}) ? '${i[e].fill}' : `)}return a.push(`'${null===(r=i.at(-1))||void 0===r?void 0:r.fill}'`),a.join("")}const QV=ne(((e,t)=>{var n,r,i,a,o,s,l;const u="column"===t.direction?"y":"x",c="column"===t.direction?"width":"bulletGroupWidth",d={name:"bulletGroup",type:"group",from:{facet:{data:"table",name:"bulletGroups",groupby:`${t.dimension}`}},encode:{update:{[u]:{scale:"groupScale",field:`${t.dimension}`},height:{signal:"bulletGroupHeight"},width:{signal:c}}},marks:[]},f=t.thresholds;Array.isArray(f)&&f.length>0?(d.data=[{name:"thresholds",values:f,transform:[{type:"identifier",as:"id"}]}],null===(n=d.marks)||void 0===n||n.push(function(e){const t="bulletGroupHeight - 3 - bulletThresholdHeight",n=e.showTarget&&e.showTargetValue?`${t} - targetValueLabelHeight`:t;return{name:`${e.name}Threshold`,description:`${e.name}Threshold`,type:"rect",from:{data:"thresholds"},clip:!0,encode:{enter:{cornerRadiusTopLeft:[{test:"!isDefined(datum.thresholdMin) && domain('xscale')[0] !== 0",value:3}],cornerRadiusBottomLeft:[{test:"!isDefined(datum.thresholdMin) && domain('xscale')[0] !== 0",value:3}],cornerRadiusTopRight:[{test:"!isDefined(datum.thresholdMax) && domain('xscale')[1] !== 0",value:3}],cornerRadiusBottomRight:[{test:"!isDefined(datum.thresholdMax) && domain('xscale')[1] !== 0",value:3}],fill:{field:"fill"},fillOpacity:{value:.2}},update:{x:{signal:"isDefined(datum.thresholdMin) ? scale('xscale', datum.thresholdMin) : 0"},x2:{signal:"isDefined(datum.thresholdMax) ? scale('xscale', datum.thresholdMax) : width"},height:{signal:"bulletThresholdHeight"},y:{signal:n}}}}}(t))):t.track&&(null===(r=d.marks)||void 0===r||r.push(function(e){const t=(0,ie.getS2ColorValue)("gray-200",e.colorScheme),n="column"===e.direction?"width":"bulletGroupWidth",r=e.showTarget&&e.showTargetValue?"bulletGroupHeight - 3 - 2 * bulletHeight - 20":"bulletGroupHeight - 3 - 2 * bulletHeight";return{name:`${e.name}Track`,description:`${e.name}Track`,type:"rect",from:{data:"bulletGroups"},encode:{enter:{fill:{value:t},cornerRadiusTopRight:[{test:"domain('xscale')[1] !== 0",value:3}],cornerRadiusBottomRight:[{test:"domain('xscale')[1] !== 0",value:3}],cornerRadiusTopLeft:[{test:"domain('xscale')[0] !== 0",value:3}],cornerRadiusBottomLeft:[{test:"domain('xscale')[0] !== 0",value:3}]},update:{x:{value:0},width:{signal:n},height:{signal:"bulletHeight"},y:{signal:r}}}}}(t))),null===(i=d.marks)||void 0===i||i.push(function(e){var t,n;const r=e.showTarget&&e.showTargetValue?"bulletGroupHeight - targetValueLabelHeight - 3 - 2 * bulletHeight":"bulletGroupHeight - 3 - 2 * bulletHeight",i=e.thresholdBarColor&&(null!==(n=null===(t=e.thresholds)||void 0===t?void 0:t.length)&&void 0!==n?n:0)>0?[{field:"barColor"}]:[{value:e.color}];return{name:`${e.name}Rect`,description:`${e.name}Rect`,type:"rect",from:{data:"bulletGroups"},encode:{enter:{cornerRadiusTopLeft:[{test:`datum.${e.metric} < 0`,value:3}],cornerRadiusBottomLeft:[{test:`datum.${e.metric} < 0`,value:3}],cornerRadiusTopRight:[{test:`datum.${e.metric} > 0`,value:3}],cornerRadiusBottomRight:[{test:`datum.${e.metric} > 0`,value:3}],fill:i},update:{x:{scale:"xscale",value:0},x2:{scale:"xscale",field:`${e.metric}`},height:{signal:"bulletHeight"},y:{signal:r}}}}}(t)),t.target&&!1!==t.showTarget&&(null===(a=d.marks)||void 0===a||a.push(function(e){const t=(0,ie.getS2ColorValue)("gray-900",e.colorScheme),n=e.showTarget&&e.showTargetValue?"bulletGroupHeight - targetValueLabelHeight - targetHeight":"bulletGroupHeight - targetHeight",r=e.showTarget&&e.showTargetValue?"bulletGroupHeight - targetValueLabelHeight":"bulletGroupHeight";return{name:`${e.name}Target`,description:`${e.name}Target`,type:"rule",from:{data:"bulletGroups"},encode:{enter:{stroke:{value:`${t}`},strokeWidth:{value:2}},update:{x:{scale:"xscale",field:`${e.target}`},y:{signal:n},y2:{signal:r}}}}}(t)),t.showTargetValue&&(null===(o=d.marks)||void 0===o||o.push(function(e){const t=(0,ie.getS2ColorValue)("gray-900",e.colorScheme),n=`datum.${e.target}`,r=e.targetLabel?`${n} != null ? 'Target: ' + datum.${e.targetLabel} : 'No Target'`:`${n} != null ? 'Target: ' + (${eW(n,e.numberFormat||"standardNumber")}) : 'No Target'`;return{name:`${e.name}TargetValueLabel`,description:`${e.name}TargetValueLabel`,type:"text",from:{data:"bulletGroups"},encode:{enter:{text:{signal:r},align:{value:"center"},baseline:{value:"top"},fill:{value:`${t}`}},update:{x:{scale:"xscale",field:`${e.target}`},y:{signal:"bulletGroupHeight - targetValueLabelHeight + 6"}}}}}(t)))),"top"!==t.labelPosition&&"row"!==t.direction||(null===(s=d.marks)||void 0===s||s.push(function(e){const t=(0,ie.getS2ColorValue)("gray-600",e.colorScheme);return{name:`${e.name}Label`,description:`${e.name}Label`,type:"text",from:{data:"bulletGroups"},encode:{enter:{text:{signal:`datum.${e.dimension}`},align:{value:"left"},baseline:{value:"top"},fill:{value:`${t}`}},update:{x:{value:0},y:{value:0}}}}}(t)),null===(l=d.marks)||void 0===l||l.push(function(e){var t,n;const r=(0,ie.getS2ColorValue)(e.color,e.colorScheme),i=(0,ie.getS2ColorValue)("gray-900",e.colorScheme),a="column"===e.direction?"width":"bulletGroupWidth",o=e.thresholdBarColor&&(null!==(n=null===(t=e.thresholds)||void 0===t?void 0:t.length)&&void 0!==n?n:0)>0?`datum.barColor === '${r}' ? '${i}' : datum.barColor`:`'${i}'`,s=e.metricLabel?[{field:e.metricLabel}]:(l=e.numberFormat||"standardNumber",u=e.metric,[...QH(l||"standardNumber",u)]);var l,u;return{name:`${e.name}ValueLabel`,description:`${e.name}ValueLabel`,type:"text",from:{data:"bulletGroups"},encode:{enter:{text:s,align:{value:"right"},baseline:{value:"top"},fill:{signal:o}},update:{x:{signal:a},y:{value:0}}}}}(t))),e.push(d)}));function eW(e,t){return"shortNumber"===t?`formatShortNumber(${e})`:"shortCurrency"===t?String.raw`abs(${e}) >= 1000 ? upper(replace(format(${e}, '$.3~s'), /(\d+)G/, '$1B')) : format(${e}, '$')`:"currency"===t?`format(${e}, '$,.2f')`:"standardNumber"===t?`format(${e}, ',')`:`format(${e}, '${t}')`}const tW=ne(((e,t)=>{if(t.metricAxis&&"column"===t.direction&&!t.showTargetValue&&e.push(function(e){return{labelOffset:2,scale:"xscale",orient:"bottom",ticks:!1,labelColor:"gray",domain:!1,tickCount:5,offset:{signal:"axisOffset"},encode:{labels:{update:{text:{signal:`(${eW("datum.value",e.numberFormat||"standardNumber")})`}}}}}}(t)),"side"===t.labelPosition&&"column"===t.direction){const n=t.showTargetValue&&t.showTarget?-8:2;e.push(function(e){return{scale:"groupScale",orient:"left",tickSize:0,labelOffset:e,labelPadding:10,labelColor:"#797979",domain:!1}}(n),function(e,t){const n=`info(data('table')[datum.index * (length(data('table')) - 1)].${e.metric})`;return{scale:"groupScale",orient:"right",tickSize:0,labelOffset:t,labelPadding:10,domain:!1,encode:{labels:{update:{text:{signal:e.metricLabel?`data('table')[datum.index * (length(data('table')) - 1)].${e.metricLabel}`:`${n} != null ? (${eW(n,e.numberFormat||"standardNumber")}) : ''`}}}}}}(t,n))}}));const nW=ie.spectrum2Colors.light["blue-900"],rW=ne(((e,t)=>{var n,r,i,a,o,{colorScheme:s=re.DEFAULT_COLOR_SCHEME,index:l=0,name:u,metric:c,dimension:d,target:f,color:h=nW,direction:p=re.DEFAULT_BULLET_DIRECTION,numberFormat:m,showTarget:g=!0,showTargetValue:y=!1,labelPosition:_=re.DEFAULT_LABEL_POSITION,scaleType:v=re.DEFAULT_SCALE_TYPE,maxScaleValue:b=re.DEFAULT_SCALE_VALUE,thresholds:x=[],track:E=!1,thresholdBarColor:S=!1,metricAxis:A=!1}=t,$=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["colorScheme","index","name","metric","dimension","target","color","direction","numberFormat","showTarget","showTargetValue","labelPosition","scaleType","maxScaleValue","thresholds","track","thresholdBarColor","metricAxis"]);const T=Object.assign({colorScheme:s,index:l,color:(0,ie.getS2ColorValue)(h,s),metric:null!=c?c:"currentAmount",dimension:null!=d?d:"graphLabel",target:null!=f?f:"target",name:(0,ae.toCamelCase)(null!=u?u:`bullet${l}`),direction:p,numberFormat:null!=m?m:"",showTarget:g,showTargetValue:y,labelPosition:_,scaleType:v,maxScaleValue:b,track:E,thresholds:x,thresholdBarColor:S,metricAxis:A},$);e.data=sW(null!==(n=e.data)&&void 0!==n?n:[],T),e.marks=QV(null!==(r=e.marks)&&void 0!==r?r:[],T),e.scales=iW(null!==(i=e.scales)&&void 0!==i?i:[],T),e.signals=aW(null!==(a=e.signals)&&void 0!==a?a:[],T),e.axes=tW(null!==(o=e.axes)&&void 0!==o?o:[],T)})),iW=ne(((e,t)=>{const n="column"===t.direction?"bulletChartHeight":"width",r="column"===t.direction?"width":[0,{signal:"bulletGroupWidth"}];let i;i="flexible"===t.scaleType&&t.maxScaleValue>0?{data:"table",fields:["xPaddingForTarget",t.metric,"flexibleScaleValue"]}:"fixed"===t.scaleType&&t.maxScaleValue>0?[0,`${t.maxScaleValue}`]:{data:"table",fields:["xPaddingForTarget",t.metric]},e.push({name:"groupScale",type:"band",domain:{data:"table",field:t.dimension},range:[0,{signal:n}],paddingInner:{signal:"paddingRatio"}},{name:"xscale",type:"linear",domain:i,range:r,round:!0,clamp:!0,zero:!0})})),aW=ne(((e,t)=>{e.push({name:"gap",value:12},{name:"bulletHeight",value:8},{name:"bulletThresholdHeight",update:"bulletHeight * 3"},{name:"targetHeight",update:"bulletThresholdHeight + 6"}),t.showTargetValue&&t.showTarget&&e.push({name:"targetValueLabelHeight",update:"20"}),e.push({name:"bulletGroupHeight",update:oW(t)}),"column"===t.direction?(e.push({name:"paddingRatio",update:"gap / (gap + bulletGroupHeight)"}),t.metricAxis&&!t.showTargetValue?e.push({name:"bulletChartHeight",update:"length(data('table')) * bulletGroupHeight + (length(data('table')) - 1) * gap + 10"},{name:"axisOffset",update:"bulletChartHeight - height - 10"}):e.push({name:"bulletChartHeight",update:"length(data('table')) * bulletGroupHeight + (length(data('table')) - 1) * gap"})):e.push({name:"bulletGroupWidth",update:"(width / length(data('table'))) - gap"},{name:"paddingRatio",update:"gap / (gap + bulletGroupWidth)"},{name:"bulletChartHeight",update:"bulletGroupHeight"})}));function oW(e){return e.showTargetValue&&e.showTarget?"side"===e.labelPosition&&"column"===e.direction?"bulletThresholdHeight + targetValueLabelHeight + 10":"bulletThresholdHeight + targetValueLabelHeight + 24":"side"===e.labelPosition&&"column"===e.direction?"bulletThresholdHeight + 10":"bulletThresholdHeight + 24"}const sW=ne(((e,t)=>{const n=(e=>{let t=le(e);return t||(t={name:re.TABLE,values:[],transform:[]},e.push(t)),t})(e);n.transform=(e=>{var t,n,r;const i=[{type:"formula",expr:`isValid(datum.${e.target}) ? round(datum.${e.target} * 1.05) : 0`,as:"xPaddingForTarget"}];return"flexible"===e.scaleType&&i.push({type:"formula",expr:`${e.maxScaleValue}`,as:"flexibleScaleValue"}),e.thresholdBarColor&&(null!==(n=null===(t=e.thresholds)||void 0===t?void 0:t.length)&&void 0!==n?n:0)>0&&i.push({type:"formula",expr:ZV(null!==(r=e.thresholds)&&void 0!==r?r:[],e.metric,e.color),as:"barColor"}),i})(t)})),lW=(e,t,n)=>{const{color:r,dimension:i,excludeSeries:a,metric:o,position:s,scaleType:l,value:u}=t,c=dj(i,l),d="start"===s,f=n.metricAxis||"yLinear",{facets:h}=ej({color:n.color,lineType:n.lineType,opacity:n.opacity}),p=function(e,t,n,r){const i=function(e){return'"'+hj(e||uW)+'"'}(r);switch(e){case"last":return'format(datum["'+t+'"], '+i+")";case"average":return"format(datum.directLabel_avg, "+i+")";case"series":return n?'datum["'+n+'"]':"''"}}(u,o,"string"==typeof r?r:void 0,t.format||""),m=[..."average"===u?[{type:"joinaggregate",groupby:h,fields:[o],ops:["mean"],as:["directLabel_avg"]}]:[],{type:"joinaggregate",groupby:h,fields:[c],ops:[d?"min":"max"],as:["_extremeDim"]},{type:"filter",expr:`datum["${c}"] === datum._extremeDim`},{type:"formula",as:"directLabel_text",expr:p},...a.length?[{type:"filter",expr:`indexof(${JSON.stringify(a)}, datum.${re.SERIES_ID}) === -1`}]:[],...n.primarySeries?[{type:"filter",expr:`!(${DU(n.primarySeries,"datum")})`}]:[],...xU(f,o,"")];return{name:`${e}DirectLabel${t.index}_data`,source:re.FILTERED_TABLE,transform:m}},uW=",.2~f",cW=(e,t,n,r,i,a)=>{const o=(0,ie.getS2ColorValue)("transparent"!==r&&r?r:"gray-25",i),s=`${e}DirectLabel${t.index}_data`,{prefix:l=""}=t,u=(l?"'"+l.replaceAll("'",String.raw`\'`)+" ' + ":"")+"datum.directLabel_text",{dimension:c,metric:d,position:f,scaleType:h}=t,p="start"===f,m=dj(c,h),g=Mj("x",h),y=n.metricAxis||"yLinear",_=GU(n),v=Vj(t.fontSize),b={text:{signal:u},align:{value:p?"left":"right"},limit:{signal:p?`scale('${g}', datum["${m}"])`:`width - scale('${g}', datum["${m}"])`},x:p?{value:0}:{signal:"width"},y:{scale:y,field:d,offset:{signal:`datum._seriesCount === 2 ? (datum._metricRank === 1 ? -12 : 22) : (datum._cumMaxAdjusted + datum._metricRank * ${bU} - 12 - datum._scaledY)`}}},x=[{name:`${e}DirectLabel${t.index}_bg`,type:"text",from:{data:s},interactive:!1,encode:{enter:Object.assign(Object.assign({},b),{stroke:{value:o},strokeWidth:{value:re.DIRECT_LABEL_BACKGROUND_STROKE_WIDTH},fill:{value:o}}),update:{fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT},fontSize:v,opacity:{value:1}}}},{name:`${e}DirectLabel${t.index}`,type:"text",from:{data:s},interactive:!1,encode:{enter:Object.assign(Object.assign({},b),{fill:Bj(t.color,t.colorScheme)}),update:{fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT},fontSize:v,opacity:_}}}];return a?x.map((e=>{var t;return Object.assign(Object.assign({},e),{name:`${e.name}_fg`,encode:Object.assign(Object.assign({},e.encode),{update:Object.assign(Object.assign({},null===(t=e.encode)||void 0===t?void 0:t.update),{opacity:a})})})})):x},dW=(e,t,n)=>{var r,i,a,o,s;return{color:n.color,colorScheme:n.colorScheme,dimension:n.dimension,excludeSeries:null!==(r=e.excludeSeries)&&void 0!==r?r:[],format:null!==(i=e.format)&&void 0!==i?i:"",index:t,lineName:n.name,metric:AU(n),position:null!==(a=e.position)&&void 0!==a?a:"end",prefix:null!==(o=e.prefix)&&void 0!==o?o:"",scaleType:n.scaleType,value:null!==(s=e.value)&&void 0!==s?s:"last",fontSize:e.fontSize}};const fW=e=>e.metricRanges.map(((t,n)=>hW(t,e.name,n))),hW=(e,t,n)=>{var{chartInspects:r=[],lineType:i="dashed",lineWidth:a="S",rangeOpacity:o=.2,metric:s=re.DEFAULT_METRIC,displayOnHover:l=!1}=e,u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["chartInspects","lineType","lineWidth","rangeOpacity","metric","displayOnHover"]);return Object.assign({chartInspects:r,lineType:i,lineWidth:a,name:`${t}MetricRange${n}`,rangeOpacity:o,metric:s,displayOnHover:l},u)},pW=(e,t)=>{const n={name:`${t.name}_area`,color:e.color,colorScheme:e.colorScheme,opacity:t.rangeOpacity,metricStart:t.metricStart,metricEnd:t.metricEnd,isStacked:!1,scaleType:e.scaleType,dimension:e.dimension,isMetricRange:!0,parentName:e.name,displayOnHover:t.displayOnHover,interactiveMarkName:e.interactiveMarkName},r=Object.assign(Object.assign({},e),{name:`${t.name}_line`,color:t.color?{value:t.color}:e.color,metric:t.metric,lineType:{value:t.lineType},lineWidth:{value:t.lineWidth},displayOnHover:t.displayOnHover,isHoverAnimate:!1}),i=`${t.name}_facet`;return[VU(r,i),_H(n,i)]};const mW=ne(((e,t)=>{var n,r,i,a,{animations:o,animationTypes:s,chartPopovers:l=[],chartInspects:u=[],color:c={value:"categorical-100"},colorScheme:d=re.DEFAULT_COLOR_SCHEME,dimension:f=re.DEFAULT_TIME_DIMENSION,dualMetricAxis:h=!1,forecasts:p=[],gradient:m=!1,hasOnClick:g=!1,hasOnContextMenu:y=!1,index:_=0,lineCap:v="round",lineDirectLabels:b=[],linePointAnnotations:x=[],lineType:E={value:"solid"},metric:S=re.DEFAULT_METRIC,metricAxis:A,metricRanges:$=[],name:T,opacity:O={value:1},scaleType:D="time",trendlines:M=[],interpolate:w,alternateSegmentKey:I,alternateSegmentLineType:C="dotted",alternateSegmentLabel:R,primarySeries:k,otherSeriesColor:L,showHoverLabel:N=!0,dimensionHover:F=!1,data:B}=t,j=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["animations","animationTypes","chartPopovers","chartInspects","color","colorScheme","dimension","dualMetricAxis","forecasts","gradient","hasOnClick","hasOnContextMenu","index","lineCap","lineDirectLabels","linePointAnnotations","lineType","metric","metricAxis","metricRanges","name","opacity","scaleType","trendlines","interpolate","alternateSegmentKey","alternateSegmentLineType","alternateSegmentLabel","primarySeries","otherSeriesColor","showHoverLabel","dimensionHover","data"]);const H=(0,ae.toCamelCase)(T||`line${_}`),z=!(u.length>0)&&N,{facets:P}=ej({color:c,lineType:E,opacity:O}),U=_W(B,P),V=Object.assign({chartPopovers:l,chartInspects:u,color:c,colorScheme:d,dimension:f,dualMetricAxis:h,forecasts:p,gradient:m,hasOnClick:g,hasOnContextMenu:y,index:_,lineCap:v,lineDirectLabels:b,linePointAnnotations:x,interactiveMarkName:tH({chartPopovers:l,chartInspects:u,hasOnClick:g,hasOnContextMenu:y,highlightedItem:j.highlightedItem,metricRanges:$,trendlines:M},H),lineType:E,metric:S,metricAxis:A,metricRanges:$,name:H,opacity:O,popoverMarkName:dU(l,H),scaleType:D,trendlines:M,interpolate:w,alternateSegmentKey:I,alternateSegmentLineType:C,alternateSegmentLabel:R,primarySeries:k,otherSeriesColor:L,showHoverLabel:z,dimensionHover:F,seriesIds:U},j);return V.isHighlightedByGroup=sH(V)||F,V.isHoverAnimate=gW(o,s,V),V.isDrawInAnimate=yW(o,s,V),e.usermeta=mj(e.usermeta,V.interactiveMarkName),V.isHoverAnimate&&(e.usermeta=yj(e.usermeta,H)),e.data=vW(null!==(n=e.data)&&void 0!==n?n:[],V),e.signals=AW(null!==(r=e.signals)&&void 0!==r?r:[],V),e.scales=$W(null!==(i=e.scales)&&void 0!==i?i:[],V),e.marks=TW(null!==(a=e.marks)&&void 0!==a?a:[],V),e})),gW=(e,t,n)=>{var r,i;return!1!==e&&(null!=t?t:re.DEFAULT_ANIMATION_TYPES).includes("hover")&&(Lj(n)||void 0!==n.highlightedItem||void 0!==n.highlightedSeries||(null!==(i=null===(r=n.legendHighlightSignals)||void 0===r?void 0:r.length)&&void 0!==i?i:0)>0)},yW=(e,t,n)=>!1!==e&&(null!=t?t:re.DEFAULT_ANIMATION_TYPES).includes("drawIn")&&("time"===n.scaleType||"linear"===n.scaleType||"point"===n.scaleType),_W=(e,t)=>(null==e?void 0:e.length)&&t.length?[...new Set(e.map((e=>t.map((t=>e[t])).join(" | "))))]:[],vW=ne(((e,t)=>{var n,r,i;const{chartInspects:a,dimension:o,dimensionHover:s,isSparkline:l,isMethodLast:u,name:c,scaleType:d,staticPoint:f}=t,h=le(e);if("time"===d&&(h.transform=oe(null!==(n=h.transform)&&void 0!==n?n:[],o),t.isDrawInAnimate&&(h.transform=pU(null!==(r=h.transform)&&void 0!==r?r:[],o))),bW(h,a,s,o,c),xW(e,h,t),EW(e,t),t.isDrawInAnimate)if("point"===d){const n=(e=>{const{dimension:t,name:n,scaleType:r}=e,i=Mj("x",r);return{name:`${n}_${re.DRAW_IN_POINT_INDEX_DATA}`,source:re.FILTERED_TABLE,transform:[{type:"formula",as:`${n}_${re.DRAW_IN_POINT_INDEX_FIELD}`,expr:`indexof(domain('${i}'), datum.${t})`}]}})(t);mU(n,t),e.push(n,...gU(t))}else mU(ue(e),t),e.push(...gU(t));(f||l)&&(t.isDrawInAnimate?e.push(MU(c,f,`${c}_${re.DRAW_IN_PREV_DATA}`,l,u)):e.push(MU(c,f,re.FILTERED_TABLE,l,u))),SW(e,t),eU(e,t),iH(e,t,!1),Xz(e,t),e.push(...(e=>{const t=[],n=fW(e);for(const r of n){const{displayOnHover:n,name:i}=r;if(n){const n=`isValid(${e.interactiveMarkName}_${re.HOVERED_ITEM}) && ${e.interactiveMarkName}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.${re.SERIES_ID}`,r=`isValid(${re.SELECTED_SERIES}) && ${re.SELECTED_SERIES} === datum.${re.SERIES_ID}`,a=`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'),'${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1`,o=`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES}) && ${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID}`;t.push({name:`${i}_highlightedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:[n,r,a,o].join(" || ")}]})}}return t})(t));for(const[n,r]of(null!==(i=t.lineDirectLabels)&&void 0!==i?i:[]).entries()){const i=dW(r,n,t);e.push(lW(t.name,i,t))}})),bW=(e,t,n,r,i)=>{var a;const o=t.some((({highlightBy:e})=>"dimension"===e));n&&!o&&(e.transform=null!==(a=e.transform)&&void 0!==a?a:[],e.transform.push(aH([r],i)))},xW=(e,t,n)=>{var r,i;const{alternateSegmentKey:a,dimension:o,forecasts:s,metric:l,name:u,primarySeries:c,scaleType:d}=n,f="time"===d?`${o}0`:o;a?(t.transform=null!==(r=t.transform)&&void 0!==r?r:[],t.transform.push({type:"formula",as:`${u}_alternateFlag`,expr:`datum["${a}"]`}),e.push(...NW(u,f))):s.length>0?(t.transform=null!==(i=t.transform)&&void 0!==i?i:[],t.transform.push(((e,t,n)=>({type:"formula",as:`${e}_alternateFlag`,expr:`datum['${t}'] >= ${JSON.stringify(n)}`}))(u,o,s[0].start),((e,t,n)=>({type:"formula",as:`${e}_effectiveValue`,expr:`isValid(datum['${t}']) ? datum['${t}'] : datum['${n}']`}))(u,l,s[0].metric)),e.push(...NW(u,f))):c&&e.push(((e,t)=>({name:`${e}_primarySeriesFacetData`,source:re.FILTERED_TABLE,transform:[{type:"formula",as:`${e}_isOther`,expr:`${DU(t,"datum")} ? 1 : 0`},{type:"collect",sort:{field:`${e}_isOther`,order:"descending"}}]}))(u,c))},EW=(e,t)=>{const{chartInspects:n,highlightedItem:r,isHoverAnimate:i,name:a,seriesIds:o,showHoverLabel:s}=t;(Lj(t)||void 0!==r)&&(e.push((e=>{const{name:t,idKey:n}=e;let r=`isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) && indexof(${re.CONTROLLED_HIGHLIGHTED_ITEM}, datum.${n}) > -1`;if(Lj(e)){const i=`${t}_${re.HOVERED_ITEM}`,a=`${t}_${re.GROUP_ID}`;e.isHighlightedByGroup?r+=` || isValid(${i}) && ${i}.${a} === datum.${a}`:r+=` || isValid(${i}) && ${i}.${n} === datum.${n}`,Nj(e)&&(r=`${re.SELECTED_ITEM} && ${re.SELECTED_ITEM} === datum.${n} || !${re.SELECTED_ITEM} && ${r}`)}return{name:`${t}_highlightedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:r}]}})(t),de(n)),s&&e.push((e=>{const{name:t,metricAxis:n}=e;return{name:`${t}_hoverLabelData`,source:`${t}_highlightedData`,transform:xU(n||"yLinear",AU(e),"hover")}})(t))),i&&(e.push((({name:e,groupby:t,rules:n,source:r=re.TABLE})=>{const i=[{type:"aggregate",groupby:t},...n.map((e=>({type:"formula",as:e.as,expr:e.expr})))],a=n.map((e=>`isValid(datum.${e.as}) ? datum.${e.as}`)).join(" : ")+` : ${re.HOVER_NEUTRAL_TARGET}`;return i.push({type:"formula",as:"target",expr:a}),{name:`${e}_${re.HOVER_TARGET_DATA}`,source:r,transform:i}})({name:a,groupby:[re.SERIES_ID],rules:wU(t)}),(({name:e,keys:t,keyField:n=re.SERIES_ID})=>({name:`${e}_${re.HOVER_ANIM_STATE_DATA}`,values:t.map((e=>({[n]:e,startTime:0,startValue:1,target:1}))),on:t.map(((t,n)=>((e,t)=>{const n=`data('${e}_${re.HOVER_ANIM_STATE_DATA}')[${t}]`,r=`${e}_${re.HOVER_TARGETS}[${t}]`,i=`${r} !== ${n}.target`,a=`((data('${e}_${re.HOVER_FRACTION_DATA}') || [])[${t}] || {fraction: 1}).fraction`;return{trigger:`${e}_${re.HOVER_TARGETS}`,modify:n,values:`{startTime: ${i} ? now() : ${n}.startTime, startValue: ${i} ? ${a} : ${n}.startValue, target: ${r}}`}})(e,n)))}))({name:a,keys:null!=o?o:[]}),(e=>({name:`${e}_${re.HOVER_FRACTION_DATA}`,source:`${e}_${re.HOVER_ANIM_STATE_DATA}`,transform:[{type:"formula",as:"fraction",expr:`lerp([datum.startValue, datum.target], datum.target === datum.startValue ? 1 : clamp((${re.HOVER_ACTIVE_TIMER} - datum.startTime) / (${re.ANIMATION_HOVER_SPEED} * abs(datum.target - datum.startValue)), 0, 1))`}]}))(a)),((e,t)=>{let n=e.find((e=>e.name===re.HOVER_ANIM_LAST_CHANGE_DATA));n||(n={name:re.HOVER_ANIM_LAST_CHANGE_DATA,values:[{lastChange:0}],on:[]},e.push(n)),void 0===n.on&&(n.on=[]),n.on.push({trigger:`${t}_${re.HOVER_TARGETS}`,modify:`data('${re.HOVER_ANIM_LAST_CHANGE_DATA}')[0]`,values:"{lastChange: now()}"})})(e,a))},SW=(e,t)=>{if(fU(t)){const{metricAxis:n}=t,r=YH(n||"yLinear");r.primaryDomain&&r.secondaryDomain&&e.push({name:r.primaryDomain,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${re.SERIES_ID} !== ${re.LAST_RSC_SERIES_ID}`}]},{name:r.secondaryDomain,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`datum.${re.SERIES_ID} === ${re.LAST_RSC_SERIES_ID}`}]})}},AW=ne(((e,t)=>{const{name:n}=t;if(AV(e,t),fU(t)&&e.push(mH(),gH()),t.isHoverAnimate&&((e,t)=>{fH(e,re.ANIMATION_TIMER)||e.push({name:re.ANIMATION_TIMER,value:0,on:[{events:{type:"timer",throttle:re.ANIMATION_THROTTLE},update:"now()"}]}),fH(e,re.HOVER_ANIMATING)||e.push({name:re.HOVER_ANIMATING,value:!1,update:`(${re.ANIMATION_TIMER} - data('${re.HOVER_ANIM_LAST_CHANGE_DATA}')[0].lastChange) < ${re.ANIMATION_HOVER_SPEED+re.ANIMATION_THROTTLE}`}),fH(e,re.HOVER_IDLE_TICKS)||e.push({name:re.HOVER_IDLE_TICKS,value:0,update:`${re.HOVER_ANIMATING} ? 0 : min(${re.ANIMATION_TIMER} - ${re.ANIMATION_TIMER} + ${re.HOVER_IDLE_TICKS} + 1, 2)`}),fH(e,re.HOVER_ACTIVE_TIMER)||e.push({name:re.HOVER_ACTIVE_TIMER,value:0,update:`${re.HOVER_ANIMATING} || ${re.HOVER_IDLE_TICKS} <= 1 ? ${re.ANIMATION_TIMER} : ${re.HOVER_ACTIVE_TIMER}`}),e.push({name:`${t}_${re.HOVER_TARGETS}`,update:`pluck(data('${t}_${re.HOVER_TARGET_DATA}'), 'target')`})})(e,n),t.isDrawInAnimate&&((e,t)=>{const{name:n,scaleType:r}=t,i=Mj("x",r),a="point"===r;(e=>{fH(e,re.ANIMATION_TIMER)||e.push({name:re.ANIMATION_TIMER,value:0,on:[{events:{type:"timer",throttle:re.ANIMATION_THROTTLE},update:"now()"}]}),fH(e,re.DRAW_IN_START)||e.push({name:re.DRAW_IN_START,init:"now()"}),fH(e,re.DRAW_IN_ANIM_T)||e.push({name:re.DRAW_IN_ANIM_T,value:0,update:`clamp((${re.ANIMATION_TIMER} - ${re.DRAW_IN_START}) / ${re.DRAW_IN_ANIMATION_DURATION_MS}, 0, 1)`}),fH(e,re.DRAW_IN_ANIM_T_EASED)||e.push({name:re.DRAW_IN_ANIM_T_EASED,update:`${re.DRAW_IN_ANIM_T} < 0.5 ? 2 * pow(${re.DRAW_IN_ANIM_T}, 2) : 1 - pow(-2 * ${re.DRAW_IN_ANIM_T} + 2, 2) / 2`})})(e);const o=`${n}_${re.DRAW_IN_DOMAIN_MIN}`,s=`${n}_${re.DRAW_IN_DOMAIN_MAX}`,l=`${n}_${re.DRAW_IN_ANIM_CUTOFF}`;e.push({name:o,init:a?"0":`toNumber(extent(domain('${i}'))[0])`},{name:s,init:a?`length(domain('${i}')) - 1`:`toNumber(extent(domain('${i}'))[1])`},{name:l,update:`${re.DRAW_IN_ANIM_T_EASED} * (${s} - ${o}) + ${o}`})})(e,t),!Lj(t))return;const{primarySeries:r}=t;yH(e,n,`${n}_voronoi`,2,void 0,BW(r,"datum.datum")),FW(e,t),lH(e,t)})),$W=ne(((e,t)=>{const{metricAxis:n,dimension:r,color:i,lineType:a,opacity:o,padding:s,scaleType:l}=t;if(xj(e,{scaleType:l,dimension:r,padding:s}),Aj(e,re.COLOR_SCALE,i),Aj(e,re.LINE_TYPE_SCALE,a),Aj(e,re.OPACITY_SCALE,o),Sj(e,LW(t)),n&&Sj(e,LW(t),"y",n),fU(t)){const r=YH(n||"yLinear");Sj(e,LW(t),"y",r.primaryScale,r.primaryDomain),Sj(e,LW(t),"y",r.secondaryScale,r.secondaryDomain)}return e.push(...SV(t)),e})),TW=ne(((e,t)=>{var n,r;const{highlightedItem:i,legendHighlightSignals:a,name:o}=t,s=null!==(n=t.forecasts)&&void 0!==n?n:[],{facetData:l,facetGroupby:u,markOptions:c}=OW(t),d=Lj(t)||void 0!==i,f=d||(null!==(r=null==a?void 0:a.length)&&void 0!==r?r:0)>0;DW(e,s,t),MW(e,o,c,l,u),wW(e,t),e.push(...(e=>{const{color:t,lineType:n}=e,{facets:r}=ej({color:t,lineType:n}),i=[],a=fW(e);for(const t of a){const{displayOnHover:n,name:a}=t,o=n?`${a}_highlightedData`:re.FILTERED_TABLE;i.push({name:`${a}_group`,type:"group",clip:!0,from:{facet:{name:`${a}_facet`,data:o,groupby:r}},marks:pW(e,t)})}return i})(t),...dV(t));const h=IW(t);CW(e,t,h),f&&RW(e,t,c,l,u,h),d&&e.push(...KU(c,`${re.FILTERED_TABLE}ForInspect`)),kW(e,s,t)})),OW=e=>{var t;const{alternateSegmentKey:n,color:r,lineType:i,name:a,opacity:o,primarySeries:s}=e,l=null!==(t=e.forecasts)&&void 0!==t?t:[],u=!n&&l.length>0,{facets:c}=ej({color:r,lineType:i,opacity:o}),d=!!n||u,f=s?`${a}_primarySeriesFacetData`:re.FILTERED_TABLE,h=d?`${a}_with_bridges`:f;return{facetData:e.isDrawInAnimate?`${a}_drawInLerp`:h,facetGroupby:d?[...c,`${a}_segmentId`]:c,markOptions:u?Object.assign(Object.assign({},e),{metric:AU(e),alternateSegmentKey:`${a}_alternateFlag`}):e}},DW=(e,t,n)=>{for(const[r,i]of t.entries())e.push(TU($U(i,r,n)))},MW=(e,t,n,r,i)=>{e.push({name:`${t}_group`,type:"group",from:{facet:{name:`${t}_facet`,data:r,groupby:i}},marks:[...n.gradient?[jU(n,`${t}_facet`)]:[],VU(n,`${t}_facet`)]})},wW=(e,t)=>{const{isSparkline:n,linePointAnnotations:r,staticPoint:i}=t;(i||n)&&(e.push((e=>{const{name:t,metric:n,scaleType:r,dimension:i,pointSize:a}=e;return{name:`${t}_staticPointBackground`,description:`${t}_staticPointBackground`,type:"symbol",from:{data:`${t}_staticPointData`},interactive:!1,encode:{enter:{size:IU(a),fill:{signal:re.BACKGROUND_COLOR},stroke:{signal:re.BACKGROUND_COLOR},y:FU(e,n)},update:{x:Wj(r,i)}}}})(t),(e=>{const{name:t,metric:n,color:r,colorScheme:i,scaleType:a,dimension:o,pointSize:s}=e;return{name:`${t}_staticPoints`,description:`${t}_staticPoints`,type:"symbol",from:{data:`${t}_staticPointData`},interactive:!1,encode:{enter:{size:IU(s),fill:Bj(r,i),y:FU(e,n)},update:{x:Wj(a,o),opacity:CU(e)}}}})(t)),r.length>0&&e.push(...(e=>{const t=(({interactiveMarkName:e,isHighlightedByGroup:t,legendHighlightSignals:n,popoverMarkName:r})=>{const i=`datum.datum.datum.${re.SERIES_ID}`,a=e=>`${e} ? datum.opacity : datum.opacity * ${re.FADE_FACTOR}`,o=[];e&&o.push(t?{test:`length(data('${e}_highlightedData'))`,signal:a(`indexof(pluck(data('${e}_highlightedData'), '${re.SERIES_ID}'), ${i}) !== -1`)}:{test:`isValid(${e}_${re.HOVERED_ITEM})`,signal:a(`${e}_${re.HOVERED_ITEM}.${re.SERIES_ID} === ${i}`)}),o.push({test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'))`,signal:a(`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), ${i}) > -1`)},{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:a(`${re.CONTROLLED_HIGHLIGHTED_SERIES} === ${i}`)}),r&&o.push({test:`isValid(${re.SELECTED_SERIES})`,signal:a(`${re.SELECTED_SERIES} === ${i}`)});for(const e of null!=n?n:[])o.push({test:`isValid(${e})`,signal:a(`${e} === ${i}`)});return o.push({field:"opacity"}),o})(e);return(e=>e.linePointAnnotations.map(((t,n)=>(({anchor:e=["right","top","bottom","left"],matchLineColor:t=!1,textKey:n},r,i)=>({anchor:e,matchLineColor:t,textKey:null!=n?n:i.metric,index:r,name:`${i.name}Annotation${r}`,lineOptions:i}))(t,n,e))))(e).flatMap((n=>{var r;const{anchor:i,matchLineColor:a,name:o,textKey:s}=n,l=a?{field:"datum.fill"}:void 0,[u,c]=(d=`${o}_bg`,f=o,h=`${e.name}_staticPoints`,p=`datum.datum.${s}`,m=e.colorScheme,g={type:"label",size:{signal:"[width, height]"},anchor:Array.isArray(i)?i:[i],offset:[re.LINE_POINT_ANNOTATION_OFFSET]},y=l,[{name:d,type:"text",interactive:!1,from:{data:h},encode:{enter:Object.assign({text:{signal:p}},EU),update:{fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT}}},transform:[g]},{name:f,type:"text",interactive:!1,from:{data:d},encode:{enter:{fill:SU(m,y),fontSize:{signal:re.CHART_SIZE_FONT_SIZE}},update:{text:{field:"text"},x:{field:"x"},y:{field:"y"},align:{field:"align"},baseline:{field:"baseline"},opacity:{field:"opacity"},fontWeight:{value:re.DIRECT_LABEL_FONT_WEIGHT}}}}]);var d,f,h,p,m,g,y;return[u,Object.assign(Object.assign({},c),{encode:Object.assign(Object.assign({},c.encode),{update:Object.assign(Object.assign({},null===(r=c.encode)||void 0===r?void 0:r.update),{opacity:t})})})]}))})(t)))},IW=e=>{var t;return(null!==(t=e.lineDirectLabels)&&void 0!==t?t:[]).map(((t,n)=>dW(t,n,e)))},CW=(e,t,n)=>{for(const r of n)e.push(...cW(t.name,r,t,t.backgroundColor,t.colorScheme))},RW=(e,t,n,r,i,a)=>{if(!a.length)return;const o=nV(n);e.push(((e,t,n)=>{var r;const{name:i}=e,a=nV(e),o=VU(Object.assign(Object.assign({},e),{name:`${i}_highlightOverlayLine`,isHoverAnimate:!1,isDrawInAnimate:!1}),`${i}_highlightOverlay_facet`);return{name:`${i}_highlightOverlay_group`,type:"group",interactive:!1,from:{facet:{name:`${i}_highlightOverlay_facet`,data:t,groupby:n}},marks:[Object.assign(Object.assign({},o),{encode:Object.assign(Object.assign({},o.encode),{update:Object.assign(Object.assign({},null===(r=o.encode)||void 0===r?void 0:r.update),{opacity:a})})})]}})(n,r,i),...a.flatMap((e=>cW(t.name,e,t,t.backgroundColor,t.colorScheme,o))))},kW=(e,t,n)=>{for(const[r,i]of t.entries())e.push(...OU($U(i,r,n)))},LW=e=>{const t=[AU(e)];return fW(e).forEach((e=>{e.scaleAxisToFit&&t.push(e.metricStart,e.metricEnd)})),t},NW=(e,t)=>[{name:`${e}_segmented`,source:re.FILTERED_TABLE,transform:[{type:"window",groupby:[re.SERIES_ID],sort:{field:t,order:"ascending"},ops:["lag"],fields:[`${e}_alternateFlag`],params:[1],as:[`${e}_prevAlternateFlag`]},{type:"formula",as:`${e}_isSegmentBreak`,expr:`datum.${e}_prevAlternateFlag !== null && datum.${e}_alternateFlag !== datum.${e}_prevAlternateFlag ? 1 : 0`},{type:"window",groupby:[re.SERIES_ID],sort:{field:t,order:"ascending"},ops:["sum"],fields:[`${e}_isSegmentBreak`],frame:[null,0],as:[`${e}_segmentId`]}]},{name:`${e}_bridge`,source:`${e}_segmented`,transform:[{type:"filter",expr:`datum.${e}_isSegmentBreak === 1`},{type:"formula",as:`${e}_segmentId`,expr:`datum.${e}_segmentId - 1`},{type:"formula",as:`${e}_alternateFlag`,expr:`!datum.${e}_alternateFlag`}]},{name:`${e}_with_bridges`,source:[`${e}_segmented`,`${e}_bridge`],transform:[{type:"collect",sort:{field:t,order:"ascending"}}]}],FW=(e,t)=>{const{interactionMode:n,name:r,primarySeries:i}=t;if(n!==re.INTERACTION_MODE.ITEM)return;const a=BW(i,"datum");for(const t of Zj(r))yH(e,r,t,1,void 0,a)},BW=(e,t)=>e?DU(e,t):void 0,jW=ne(((e,{colorScheme:t=re.DEFAULT_COLOR_SCHEME,highlightedItem:n,idKey:r,index:i=0,name:a,marks:o=[],dimension:s=re.DEFAULT_TIME_DIMENSION})=>{let{barCount:l,lineCount:u}=HW();const c=(0,ae.toCamelCase)(a||`combo${i}`),d=o.map((e=>{switch(e.markType){case"bar":return l++,zW(e,c,l);case"line":return u++,zW(e,c,u);default:return""}}));return l=-1,u=-1,e=[...o].reduce(((e,i,a)=>{let o;const c=d.filter(((e,t)=>t!==a));return"bar"===i.markType?(l++,o=d[a],FV(e,Object.assign(Object.assign({},i),{colorScheme:t,comboSiblingNames:c,highlightedItem:n,idKey:r,index:l,name:o,dimension:UW(i,s)}))):(u++,o=d[a],mW(e,Object.assign(Object.assign({},i),{colorScheme:t,comboSiblingNames:c,highlightedItem:n,idKey:r,index:u,name:o,dimension:UW(i,s)})))}),e),e})),HW=()=>({barCount:-1,lineCount:-1}),zW=(e,t,n)=>{if(e.name)return e.name;const r=PW(e.markType);return(0,ae.combineNames)(t,`${r}${n}`)},PW=e=>e?e.charAt(0).toUpperCase()+e.slice(1):"",UW=(e,t)=>{var n;return null!==(n=e.dimension)&&void 0!==n?n:t};const VW=e=>{if(e.donutSummaries.length)return WW(e.donutSummaries[0],e)},WW=(e,t)=>{var{numberFormat:n="shortNumber",hideValue:r=!1}=e,i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["numberFormat","hideValue"]);return Object.assign({donutOptions:t,hideValue:r,numberFormat:n},i)},GW=e=>{const{donutOptions:t,label:n}=e;return{update:{x:{signal:"width / 2"},y:{signal:"height / 2"},text:qW(e),fontSize:[{test:`${re.DONUT_RADIUS} * ${t.holeRatio} < ${re.DONUT_SUMMARY_MIN_RADIUS}`,value:0},{signal:`${t.name}_summaryFontSize`}],fontWeight:{value:800},align:{value:"center"},baseline:YW(n),limit:KW(e)}}},qW=({donutOptions:e,numberFormat:t})=>e.isBoolean?{signal:`format(datum['${e.metric}'], '.0%')`}:[...QH(t,"sum"),{field:"sum"}],YW=e=>e?{value:"alphabetic"}:{value:"middle"},KW=({donutOptions:e,label:t})=>{const{holeRatio:n,name:r}=e,i=t?`${r}_summaryFontSize`:`${r}_summaryFontSize * 0.5`;return{signal:`2 * sqrt(pow(${re.DONUT_RADIUS} * ${n}, 2) - pow(${i}, 2))`}},JW=({donutOptions:e,hideValue:t,label:n})=>{const r=t?.25:.75,i=`2 * sqrt(pow(${re.DONUT_RADIUS} * ${e.holeRatio}, 2) - pow(${e.name}_summaryFontSize * ${r}, 2))`;return{update:Object.assign(Object.assign({x:{signal:"width / 2"},y:{signal:"height / 2"}},!t&&{dy:{signal:`ceil(${e.name}_summaryFontSize * 0.25)`}}),{text:{value:n},fontSize:[{test:`${re.DONUT_RADIUS} * ${e.holeRatio} < ${re.DONUT_SUMMARY_MIN_RADIUS}`,value:0},{signal:`ceil(${e.name}_summaryFontSize * 0.5)`}],fontWeight:{value:700},align:{value:"center"},baseline:{value:t?"middle":"top"},limit:{signal:i}})}},XW=e=>`length(data('${re.FILTERED_TABLE}')) === 0 || !data('${e}_sumData')[0]['sum']`;const ZW=(e,t)=>{var{percent:n=!1,percentFormat:r=".0%",value:i=!1,valueFormat:a="standardNumber"}=e,o=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["percent","percentFormat","value","valueFormat"]);return Object.assign({donutOptions:t,percent:n,percentFormat:r,value:i,valueFormat:a},o)},QW=({labelKey:e,value:t,percent:n,donutOptions:r})=>{const{name:i,color:a}=r;return{type:"text",name:`${i}_segmentLabel`,from:{data:re.FILTERED_TABLE},encode:{enter:Object.assign(Object.assign({},tG(i)),{text:[{test:XW(i),value:""},{field:null!=e?e:a}],fill:{value:(0,ie.getS2ColorValue)("gray-700",r.colorScheme)},dy:t||n?{signal:`datum['${i}_arcTheta'] <= 0.5 * PI || datum['${i}_arcTheta'] >= 1.5 * PI ? -16 : 0`}:void 0}),update:nG}}},eG=e=>{var t;if(!e.value&&!e.percent)return[];const{donutOptions:n}=e,r=null!==(t=rG(e))&&void 0!==t?t:[],i=Array.isArray(r)?r:[r];return[{type:"text",name:`${n.name}_segmentLabelValue`,from:{data:re.FILTERED_TABLE},encode:{enter:Object.assign(Object.assign({},tG(n.name,16)),{text:[{test:XW(n.name),value:""},...i],fontWeight:{value:"bold"},fill:{value:(0,ie.getS2ColorValue)("gray-700",n.colorScheme)},dy:{signal:`datum['${n.name}_arcTheta'] <= 0.5 * PI || datum['${n.name}_arcTheta'] >= 1.5 * PI ? 0 : 16`}}),update:nG}}]},tG=(e,t=14)=>({radius:{signal:`${re.DONUT_RADIUS} + 6`},theta:{field:`${e}_arcTheta`},fontSize:iG(e,t),align:{signal:`datum['${e}_arcTheta'] <= PI ? 'left' : 'right'`},baseline:{signal:`datum['${e}_arcTheta'] <= 0.5 * PI || datum['${e}_arcTheta'] >= 1.5 * PI ? 'bottom' : 'top'`}}),nG={x:{signal:"width / 2"},y:{signal:"height / 2"}},rG=({donutOptions:e,percent:t,percentFormat:n,value:r,valueFormat:i})=>{const a=`format(datum['${e.name}_arcPercent'], '${n}')`;if(r){const n=QH(i,e.metric);return t?n.map((e=>Object.assign(Object.assign({},e),{signal:`${a} + "\\u00a0\\u00a0" + ${e.signal}`}))):n}if(t)return{signal:a}},iG=(e,t=14)=>[{test:XW(e),value:0},{test:`datum['${e}_arcLength'] < ${re.DONUT_SEGMENT_LABEL_MIN_ANGLE}`,value:0},{value:t}];const aG=ne(((e,t)=>{var n,r,i,a,{chartPopovers:o=[],chartInspects:s=[],color:l=re.DEFAULT_COLOR,colorScheme:u=re.DEFAULT_COLOR_SCHEME,donutSummaries:c=[],index:d=0,metric:f=re.DEFAULT_METRIC,name:h,startAngle:p=0,holeRatio:m=.85,isBoolean:g=!1,segmentLabels:y=[]}=t,_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["chartPopovers","chartInspects","color","colorScheme","donutSummaries","index","metric","name","startAngle","holeRatio","isBoolean","segmentLabels"]);const v=Object.assign({chartPopovers:o,chartInspects:s,color:l,colorScheme:u,donutSummaries:c,holeRatio:m,index:d,isBoolean:g,metric:f,name:(0,ae.toCamelCase)(null!=h?h:`donut${d}`),segmentLabels:y,startAngle:p},_);Lj(v)&&(e.usermeta=mj(e.usermeta,v.name)),e.data=oG(null!==(n=e.data)&&void 0!==n?n:[],v),e.scales=lG(null!==(r=e.scales)&&void 0!==r?r:[],v),e.marks=uG(null!==(i=e.marks)&&void 0!==i?i:[],v),e.signals=cG(null!==(a=e.signals)&&void 0!==a?a:[],v)})),oG=ne(((e,t)=>{var n,r;const{name:i,isBoolean:a}=t,o=e.findIndex((e=>e.name===re.FILTERED_TABLE));var s;e[o].transform=null!==(n=e[o].transform)&&void 0!==n?n:[],null===(r=e[o].transform)||void 0===r||r.push(...sG(t)),a&&e.push({name:`${i}_booleanData`,source:re.FILTERED_TABLE,transform:[{type:"window",ops:["row_number"],as:[`${i}_rscRowIndex`]},{type:"filter",expr:`datum.${i}_rscRowIndex === 1`}]}),e.push((({metric:e,name:t})=>({name:`${t}_sumData`,source:re.FILTERED_TABLE,transform:[{type:"aggregate",fields:[e],ops:["sum"],as:["sum"]}]}))(t)),e.push(...(s=t,!VW(s)||s.isBoolean?[]:[{name:`${s.name}_summaryData`,source:re.FILTERED_TABLE,transform:[{type:"aggregate",fields:[s.metric],ops:["sum"],as:["sum"]}]}]))})),sG=({startAngle:e,metric:t,name:n})=>[{type:"pie",field:t,startAngle:e,endAngle:{signal:`${e} + 2 * PI`},as:[`${n}_startAngle`,`${n}_endAngle`]},{type:"formula",as:`${n}_arcTheta`,expr:`(datum['${n}_startAngle'] + datum['${n}_endAngle']) / 2`},{type:"formula",as:`${n}_arcLength`,expr:`datum['${n}_endAngle'] - datum['${n}_startAngle']`},{type:"formula",as:`${n}_arcPercent`,expr:`datum['${n}_arcLength'] / (2 * PI)`}],lG=ne(((e,t)=>{const{color:n}=t;var r;Aj(e,re.COLOR_SCALE,n),e.push(...(r=t,VW(r)?[{name:`${r.name}_summaryFontSizeScale`,type:"threshold",domain:[32,36,40,45,50,60],range:[28,32,36,40,45,50,60]}]:[]))})),uG=ne(((e,t)=>{e.push((e=>{const{colorScheme:t,holeRatio:n,name:r}=e;return{type:"arc",name:`${r}_emptyState`,description:`${r}_emptyState`,interactive:!1,encode:{enter:{fill:{value:(0,ie.getS2ColorValue)("gray-200",t)},x:{signal:"width / 2"},y:{signal:"height / 2"},startAngle:{value:0},endAngle:{signal:"2 * PI"}},update:{innerRadius:{signal:`${n} * ${re.DONUT_RADIUS}`},outerRadius:{signal:re.DONUT_RADIUS},opacity:[{test:XW(r),value:1},{value:0}]}}}})(t),(e=>{const{chartPopovers:t,chartInspects:n,color:r,colorScheme:i,holeRatio:a,idKey:o,name:s}=e;return{type:"arc",name:s,description:s,from:{data:re.FILTERED_TABLE},encode:{enter:{fill:Bj(r,i),x:{signal:"width / 2"},y:{signal:"height / 2"},tooltip:Rj(n,s),stroke:{value:(0,ie.getS2ColorValue)("static-blue",i)}},update:{startAngle:{field:`${s}_startAngle`},endAngle:{field:`${s}_endAngle`},padAngle:{value:.01},innerRadius:{signal:`${a} * ${re.DONUT_RADIUS}`},outerRadius:{signal:re.DONUT_RADIUS},opacity:[{test:XW(s),value:0},...eH(e)],cursor:Cj(t),strokeWidth:[{test:`${re.SELECTED_ITEM} === datum.${o}`,value:2},{value:0}]}}}})(t),...(e=>{const t=VW(e);if(!t)return[];const n=[];return e.isBoolean?n.push((e=>{var t,n;const{donutOptions:r,hideValue:i,label:a}=e,o={type:"group",name:`${r.name}_percentText`,marks:[]};return i||null===(t=o.marks)||void 0===t||t.push({type:"text",name:`${r.name}_booleanSummaryValue`,from:{data:`${r.name}_booleanData`},encode:GW(e)}),a&&(null===(n=o.marks)||void 0===n||n.push({type:"text",name:`${r.name}_booleanSummaryLabel`,from:{data:`${r.name}_booleanData`},encode:JW(Object.assign(Object.assign({},e),{label:a}))})),o})(t)):n.push((e=>{var t,n;const{donutOptions:r,hideValue:i,label:a}=e,o={type:"group",name:`${r.name}_summaryGroup`,marks:[]};return i||null===(t=o.marks)||void 0===t||t.push({type:"text",name:`${r.name}_summaryValue`,from:{data:`${r.name}_summaryData`},encode:GW(e)}),a&&(null===(n=o.marks)||void 0===n||n.push({type:"text",name:`${r.name}_summaryLabel`,from:{data:`${r.name}_summaryData`},encode:JW(Object.assign(Object.assign({},e),{label:a}))})),o})(t)),n})(t),...(e=>{const{isBoolean:t,name:n}=e;if(t)return[];const r=(e=>{if(e.segmentLabels.length)return ZW(e.segmentLabels[0],e)})(e);return r?[{name:`${n}_segmentLabelGroup`,type:"group",marks:[QW(r),...eG(r)]}]:[]})(t))})),cG=ne(((e,t)=>{var n;const{chartInspects:r,name:i}=t;e.push(...(e=>{if(!VW(e))return[];const{name:t,holeRatio:n}=e;return[{name:`${t}_summaryFontSize`,update:`scale('${t}_summaryFontSizeScale', ${re.DONUT_RADIUS} * ${n} * ${re.DONUT_SUMMARY_FONT_SIZE_RATIO})`}]})(t)),Lj(t)&&yH(e,i,void 0,1,null===(n=r[0])||void 0===n?void 0:n.excludeDataKeys)})),dG=e=>e.map(((e,t)=>{var n;return Object.assign(Object.assign({},e),{name:null!==(n=e.name)&&void 0!==n?n:`legend${t}`})})).filter((e=>e.highlight)).map((e=>`${e.name}_${re.HOVERED_SERIES}`)),fG=(e,t,n,r,i)=>{if(null==i?void 0:i.length){const t=e.find((e=>"aggregate"===e.type));t&&Array.isArray(t.groupby)&&t.groupby.push(r)}const a=e.find((e=>"formula"===e.type&&"target"===e.as));a&&(a.as="conditions"),e.push({type:"formula",as:"legendHoverMatch",expr:`(isValid(${t}_${re.HOVERED_SERIES})) ? ((${n}) ? 1 : 0) : null`},{type:"formula",as:"target",expr:"isValid(datum.hoveredMatch) ? datum.hoveredMatch : isValid(datum.legendHoverMatch) ? datum.legendHoverMatch : datum.conditions"})},hG=(e,t,n,r)=>{const i=e.replace("_hoverFractionData","");t.push({type:"lookup",from:`${i}_hoverTargetData`,key:re.SERIES_ID,fields:[re.SERIES_ID],values:[r],as:[r]}),n.push({name:`${i}_hoverGroupFractionData`,source:`${i}_hoverFractionData`,transform:[{type:"aggregate",groupby:[r],fields:["fraction"],ops:["max"],as:["fraction"]}]})},pG=(e,t,n,r=!1)=>{t.length&&xG(t).filter(vG).forEach((t=>{var i,a;if((e=>(Array.isArray(e)?e:[e]).some((e=>"string"==typeof(null==e?void 0:e.signal)&&e.signal.includes(re.HOVER_FRACTION_DATA))))(null===(a=null===(i=t.encode)||void 0===i?void 0:i.update)||void 0===a?void 0:a.opacity))return;t.encode||(t.encode={update:{}}),t.encode.update||(t.encode.update={});const{update:o}=t.encode,{opacity:s}=o;if(void 0!==s){const t=Array.isArray(s)?s.at(-1):s;if(0===(null==t?void 0:t.value))return;const i=yG(e,r,n);Array.isArray(o.opacity)||(o.opacity=[]);const a=Math.max(o.opacity.length-1,0);o.opacity.splice(a,0,i)}}))},mG=(e,t,n,r=!1)=>{t.length&&xG(t).filter(_G).forEach((t=>{var i;if(!(null===(i=t.encode)||void 0===i?void 0:i.update))return;const{update:a}=t.encode;if(void 0===a.strokeWidth)return;const o=gG(e,r,n);Array.isArray(a.strokeWidth)||(a.strokeWidth=[]);const s=Math.max(a.strokeWidth.length-1,0);a.strokeWidth.splice(s,0,o)}))},gG=(e,t,n)=>t?{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`}:(null==n?void 0:n.length)?{test:`isValid(${e}_${re.HOVERED_SERIES})`,signal:`${e}_${re.HOVERED_SERIES} === datum.${e}_${re.GROUP_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`}:{test:`isValid(${e}_${re.HOVERED_SERIES})`,signal:`${e}_${re.HOVERED_SERIES} === datum.${re.SERIES_ID} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTH} : ${re.CHART_SIZE_STROKE_WIDTH}`},yG=(e,t,n)=>t?{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES})`,signal:`${re.CONTROLLED_HIGHLIGHTED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`}:(null==n?void 0:n.length)?{test:`isValid(${e}_${re.HOVERED_SERIES})`,signal:`${e}_${re.HOVERED_SERIES} === datum.${e}_${re.GROUP_ID} ? 1 : ${re.FADE_FACTOR}`}:{test:`isValid(${e}_${re.HOVERED_SERIES})`,signal:`${e}_${re.HOVERED_SERIES} === datum.${re.SERIES_ID} ? 1 : ${re.FADE_FACTOR}`},_G=e=>{var t;const n=null===(t=e.encode)||void 0===t?void 0:t.enter;if(!n)return!1;const{fill:r,fillOpacity:i,stroke:a,strokeDash:o,strokeOpacity:s}=n,l=[r,i,a,o,s];for(const e of l)if(bG(e))return!0;return!1},vG=e=>_G(e)||(e=>Boolean(e.name)&&/(Trendline\d+|MetricRange\d+_line)$/.test(e.name))(e),bG=e=>!!(e&&"object"==typeof e&&("scale"in e||"signal"in e&&"string"==typeof e.signal&&e.signal.includes("scale("))),xG=e=>{let t=e;for(const n of e)EG(n)&&n.marks&&(t=[...t,...xG(n.marks)]);return t},EG=e=>"group"===e.type,SG=new Set([re.COLOR_SCALE,re.LINE_TYPE_SCALE,re.LINEAR_COLOR_SCALE,re.OPACITY_SCALE,"secondaryColor","secondaryLineType","secondaryOpacity","secondarySymbolShape",re.SYMBOL_SHAPE_SCALE,re.SYMBOL_SIZE_SCALE]),AG=(e,t)=>e.domain.fields.some((e=>t.includes(e.toString()))),$G=e=>Boolean("domain"in e&&e.domain&&"fields"in e.domain),TG=(e,t,n)=>{if(["left","right"].includes(e))return;const r=re.DEFAULT_LEGEND_SYMBOL_WIDTH+re.DEFAULT_LEGEND_COLUMN_PADDING,i=null!=n?n:re.DEFAULT_LEGEND_LABEL_LIMIT;return{signal:`max(1, floor(width / (min(length(data('${t}_maxLabelWidth')) > 0 ? data('${t}_maxLabelWidth')[0].maxLabelWidth : ${i}, ${i}) + ${r})))`}},OG=(e,t)=>e.length?[{type:"filter",expr:`indexof(${JSON.stringify(e)}, datum.${t}Entries) === -1`}]:[],DG=(e,t,n)=>{const r=kG(e,t),i=wG(t,n),a=MG(t.name,t.legendLabels),o=FG(t),s=BG(t);return jG([r,a,i,o,s])},MG=(e,t)=>t?{labels:{update:{text:[{test:`indexof(pluck(${e}_labels, 'seriesName'), datum.value) > -1`,signal:`${e}_labels[indexof(pluck(${e}_labels, 'seriesName'), datum.value)].label`},{signal:"datum.value"}]}}}:{},wG=(e,t)=>{var n;const{highlight:r,highlightedSeries:i,name:a,hasMouseInteraction:o,descriptions:s,chartPopovers:l}=e;return r||i||s||(null==l?void 0:l.length)||(null===(n=t.interactiveMarks)||void 0===n?void 0:n.length)?{entries:{name:`${a}_legendEntry`,interactive:!0,enter:{tooltip:CG(s,a)},update:{fill:{value:"transparent"}}},labels:{update:{opacity:IG(e,t)}},symbols:{update:{opacity:IG(e,t)}}}:o?{entries:{name:`${a}_legendEntry`,interactive:!0,enter:{fill:{value:"transparent"}}}}:{}},IG=(e,t)=>{var n;const r=[];for(const i of t.animatedMarks||[]){const t=!!(null===(n=e.keys)||void 0===n?void 0:n.length),a=t?`data('${i}_hoverGroupFractionData')`:`data('${i}_hoverFractionData')`,o=`(${a}[indexof(pluck(${a}, '${t?`${e.name}_${re.GROUP_ID}`:re.SERIES_ID}'), datum.value)] || {fraction: ${re.FADE_FACTOR}}).fraction`,s=cU(o);r.push({test:`length(${a})`,signal:`${re.FADE_FACTOR} + (1 - ${re.FADE_FACTOR}) * ${s}`})}return r.length?[...r,re.DEFAULT_OPACITY_RULE]:RG(e,t)},CG=(e,t)=>{if(null==e?void 0:e.length)return{signal:`merge(datum, {'${re.COMPONENT_NAME}': '${t}'})`}},RG=({highlight:e,highlightedItem:t,highlightedSeries:n,keys:r,chartPopovers:i,name:a},o)=>{const s=(null==r?void 0:r.length)?re.HIGHLIGHTED_GROUP:re.CONTROLLED_HIGHLIGHTED_SERIES,l=(null==r?void 0:r.length)?re.SELECTED_GROUP:re.SELECTED_SERIES,u=[];(null==i?void 0:i.length)&&u.push({test:`isValid(${l})`,signal:`${l} === datum.value ? 1 : ${re.FADE_FACTOR}`}),e&&u.push({test:`isValid(${a}_${re.HOVERED_SERIES})`,signal:`${a}_${re.HOVERED_SERIES} === datum.value ? 1 : ${re.FADE_FACTOR}`}),t&&u.push({test:`length(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'))`,signal:`indexof(pluck(data('${re.CONTROLLED_HIGHLIGHTED_TABLE}'), '${re.SERIES_ID}'), datum.${re.SERIES_ID}) > -1 ? 1 : ${re.FADE_FACTOR}`}),n&&u.push({test:`isValid(${s})`,signal:`${s} === datum.value ? 1 : ${re.FADE_FACTOR}`});for(const{name:e}of o.interactiveMarks||[])u.push({test:`isValid(${e}_${re.HOVERED_ITEM})`,signal:`${e}_${re.HOVERED_ITEM}.${re.SERIES_ID} === datum.value ? 1 : ${re.FADE_FACTOR}`});if(u.length)return[...u,re.DEFAULT_OPACITY_RULE]},kG=(e,t)=>{var n;const{color:r,lineType:i,lineWidth:a,name:o,opacity:s,symbolShape:l,colorScheme:u,isToggleable:c,hiddenSeries:d,keys:f}=t,h=LG({facets:e,facetType:re.SYMBOL_SHAPE_SCALE,customValue:l,name:o}),p={fillOpacity:LG({facets:e,facetType:re.OPACITY_SCALE,customValue:s,name:o}),shape:h,size:LG({facets:e,facetType:re.SYMBOL_SIZE_SCALE,name:o}),strokeDash:LG({facets:e,facetType:re.LINE_TYPE_SCALE,customValue:i,name:o}),strokeWidth:LG({facets:e,facetType:re.LINE_WIDTH_SCALE,customValue:a,name:o})},m=null!==(n=LG({facets:e,facetType:re.COLOR_SCALE,customValue:r,name:o}))&&void 0!==n?n:{value:ie.spectrum2Colors[u]["categorical-100"]},g=c||d.length>0,y=(null==f?void 0:f.length)?`indexof(pluck(data('${re.FILTERED_TABLE}'), '${o}_${re.GROUP_ID}'), datum.value) === -1`:"indexof(hiddenSeries, datum.value) !== -1",_={test:y,value:(0,ie.getS2ColorValue)(c?"gray-700":"gray-500",u)},v={test:y,value:"transparent"},b={test:y,value:ij("visibility-off")},x={fill:g?[_,m]:[m],stroke:g?[v,m]:[m],shape:g?[b,null!=h?h:{value:ij("rounded-square")}]:void 0};return{entries:{name:`${o}_legendEntry`},symbols:JSON.parse(JSON.stringify({enter:p,update:x}))}},LG=({customValue:e,facets:t,facetType:n,name:r})=>{if(e)return"string"==typeof e?{signal:`scale('${n}', data('${r}Aggregate')[datum.index].${e})`}:{value:e.value};if(!t)return;const i={color:{scale:"secondaryColor",signal:"colors"},linearColor:{scale:"secondaryColor",signal:"colors"},lineType:{scale:"secondaryLineType",signal:"lineTypes"},lineWidth:{scale:"secondaryLineWidth",signal:"lineWidths"},opacity:{scale:"secondaryOpacity",signal:"opacities"},symbolShape:{scale:"secondarySymbolShape",signal:"symbolShapes"},symbolSize:{scale:"secondarySymbolSize",signal:"symbolSizes"},symbolPathWidth:{scale:"secondarySymbolPathWidth",signal:"symbolPathWidths"}},a=t.find((e=>e.facetType===n));if(!a)return;const o=t.find((e=>e.facetType===i[n].scale));if(o){const{scale:e,signal:t}=i[n];return{signal:`scale('${t}', data('${r}Aggregate')[datum.index].${a.field})[indexof(domain('${e}'), data('${r}Aggregate')[datum.index].${o.field})% length(scale('${t}', data('${r}Aggregate')[datum.index].${a.field}))]`}}return{signal:`scale('${n}', data('${r}Aggregate')[datum.index].${a.field})`}},NG=({colorScheme:e,hiddenSeries:t,isToggleable:n,keys:r,name:i},a)=>n||t.length?(null==r?void 0:r.length)?[{test:`indexof(pluck(data('${re.FILTERED_TABLE}'), '${i}_${re.GROUP_ID}'), datum.value) === -1`,value:(0,ie.getS2ColorValue)(a,e)}]:[{test:"indexof(hiddenSeries, datum.value) !== -1",value:(0,ie.getS2ColorValue)(a,e)}]:[],FG=e=>{const{colorScheme:t,isToggleable:n}=e;return{labels:{update:{fill:n?[{value:(0,ie.getS2ColorValue)("gray-700",t)}]:[...NG(e,"gray-500"),{value:(0,ie.getS2ColorValue)("gray-700",t)}]}}}},BG=e=>{const{isToggleable:t,keys:n,name:r,hasOnClick:i,chartPopovers:a}=e;let o={};return(t&&!n||i||(null==a?void 0:a.length))&&(o={entries:{name:`${r}_legendEntry`,interactive:!0,enter:{fill:{value:"transparent"},cursor:{value:"pointer"}}}}),o},jG=e=>{let t={};for(const n of e)t=CH()(t,n);return t},HG=e=>e&&"object"==typeof e&&"value"in e?ij(e.value):"circle";const zG=ne(((e,t)=>{var n,r,i,a,o,s,{align:l,color:u,hasMouseInteraction:c=!1,hasOnClick:d=!1,hiddenEntries:f=[],hiddenSeries:h=[],highlight:p=!1,index:m=0,isToggleable:g=!1,lineType:y,lineWidth:_,position:v="bottom",symbolShape:b,colorScheme:x=re.DEFAULT_COLOR_SCHEME}=t,E=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["align","color","hasMouseInteraction","hasOnClick","hiddenEntries","hiddenSeries","highlight","index","isToggleable","lineType","lineWidth","position","symbolShape","colorScheme"]);const{formattedColor:S,formattedLineType:A,formattedLineWidth:$,formattedSymbolShape:T}=PG(u,y,_,b,x),O=`legend${m}`,D=Object.assign({align:l,color:S,hasMouseInteraction:c,hasOnClick:d,hiddenEntries:f,hiddenSeries:h,highlight:p,index:m,isToggleable:g,lineType:A,lineWidth:$,name:O,position:v,symbolShape:T,colorScheme:x},E);void 0!==l&&(e.usermeta||(e.usermeta={}),e.usermeta.patches||(e.usermeta.patches=[]),e.usermeta.patches.push({legend:{layout:{[v]:{anchor:l}}}})),e.scales=GG(null!==(n=e.scales)&&void 0!==n?n:[],D);const{ordinalFacets:M,continuousFacets:w}=E.keys?((e,t)=>{var n,r;const i=[],a=[];for(const o of t)$G(o)&&AG(o,e)&&("ordinal"===o.type||"point"===o.type?i.push({facetType:o.name,field:null===(n=o.domain.fields.find((t=>e.includes(t.toString()))))||void 0===n?void 0:n.toString()}):a.push({facetType:o.name,field:null===(r=o.domain.fields.find((t=>e.includes(t.toString()))))||void 0===r?void 0:r.toString()}));return{ordinalFacets:i,continuousFacets:a}})(E.keys,null!==(r=e.scales)&&void 0!==r?r:[]):(e=>{const t=[],n=[];for(const r of e)SG.has(r.name)&&$G(r)&&r.domain.fields.length&&("ordinal"===r.type||"point"===r.type?t.push({facetType:r.name,field:r.domain.fields[0].toString()}):n.push({facetType:r.name,field:r.domain.fields[0].toString()}));return{ordinalFacets:t,continuousFacets:n}})(null!==(i=e.scales)&&void 0!==i?i:[]),I=[];if(M.length){e.scales.push({name:`${O}Entries`,type:"ordinal",domain:{data:`${O}Aggregate`,field:`${O}Entries`}});const t=[...new Set(M.map((e=>e.field)))];e.data=YG(null!==(a=e.data)&&void 0!==a?a:[],Object.assign(Object.assign({},D),{facets:t})),e.signals=KG(null!==(o=e.signals)&&void 0!==o?o:[],D),e.marks=qG(null!==(s=e.marks)&&void 0!==s?s:[],D),I.push(UG(M,D,e.usermeta))}for(const e of w)I.push(VG(e,D));void 0===e.legends&&(e.legends=[]),e.legends.push(...I)})),PG=(e,t,n,r,i)=>{let a,o,s,l;return a=e&&"object"==typeof e?{value:(0,ie.getS2ColorValue)(e.value,i)}:e,o=t&&"object"==typeof t?{value:nj(t.value)}:t,s=n&&"object"==typeof n?{value:rj(n.value)}:n,l=r&&"object"==typeof r?{value:ij(r.value)}:r,{formattedColor:a,formattedLineType:o,formattedLineWidth:s,formattedSymbolShape:l}},UG=(e,t,n)=>{const{name:r,position:i,title:a,labelLimit:o,titleLimit:s}=t,l={fill:`${r}Entries`,direction:["top","bottom"].includes(i)?"horizontal":"vertical",orient:i,title:a,encode:DG(e,t,n),columns:TG(i,r,o),labelLimit:o};return void 0!==s&&(l.titleLimit=s),l},VG=(e,t)=>{const{symbolShape:n}=t;return e.facetType===re.SYMBOL_SIZE_SCALE?Object.assign(Object.assign({size:re.SYMBOL_SIZE_SCALE},WG(t)),{symbolType:HG(n)}):Object.assign({fill:re.LINEAR_COLOR_SCALE,gradientThickness:10},WG(t))},WG=({position:e,title:t,titleLimit:n})=>{const r={direction:["top","bottom"].includes(e)?"horizontal":"vertical",orient:e,title:t};return void 0!==n&&(r.titleLimit=n),r},GG=ne(((e,{color:t,lineType:n,opacity:r,symbolShape:i})=>{Aj(e,re.COLOR_SCALE,t),Aj(e,re.LINE_TYPE_SCALE,n),Aj(e,re.OPACITY_SCALE,r),Aj(e,re.SYMBOL_SHAPE_SCALE,i)})),qG=ne(((e,{highlight:t,keys:n,name:r})=>{t&&(pG(r,e,n),mG(r,e,n))})),YG=ne(((e,{facets:t,hiddenEntries:n,highlight:r,keys:i,name:a})=>{var o;const s=t.map((e=>`datum.${e}`)).join(' + " | " + ');e.push({name:`${a}Aggregate`,source:"table",transform:[{type:"aggregate",groupby:t},{type:"formula",as:`${a}Entries`,expr:s},...OG(n,a)]});const l=`indexof(pluck(${a}_labels, 'seriesName'), datum.${a}Entries) > -1 ? ${a}_labels[indexof(pluck(${a}_labels, 'seriesName'), datum.${a}Entries)].label : datum.${a}Entries`;if(e.push({name:`${a}_maxLabelWidth`,source:`${a}Aggregate`,transform:[{type:"formula",as:"displayLabel",expr:l},{type:"formula",as:"labelWidth",expr:"getLabelWidth(datum.displayLabel, 'normal', 14)"},{type:"aggregate",fields:["labelWidth"],ops:["max"],as:["maxLabelWidth"]}]}),null==i?void 0:i.length){const t=le(e);t.transform||(t.transform=[]),t.transform.push({type:"formula",as:`${a}_${re.GROUP_ID}`,expr:i.map((e=>`datum.${e}`)).join(' + " | " + ')})}const u=e.filter((e=>/.*(Trendline|MetricRange).*highlightedData$/.test(e.name)));for(const e of u)(null===(o=e.transform)||void 0===o?void 0:o[0])&&"expr"in e.transform[0]&&(e.transform[0].expr+=` || datum.${re.SERIES_ID} === ${a}_${re.HOVERED_SERIES}`);r&&((e,t,n)=>{const r=`${e}_${re.GROUP_ID}`,i=(null==n?void 0:n.length)?`${e}_${re.HOVERED_SERIES} === datum.${e}_${re.GROUP_ID} ? 1 : 0`:`${e}_${re.HOVERED_SERIES} === datum.${re.SERIES_ID} ? 1 : 0`;for(const a of t){const{name:o,transform:s}=a;Array.isArray(s)&&"string"==typeof o&&(o.endsWith("_hoverTargetData")&&fG(s,e,i,r,n),o.endsWith("_hoverFractionData")&&(null==n?void 0:n.length)&&hG(o,s,t,r))}})(a,e,i)})),KG=ne(((e,{hiddenSeries:t,highlight:n,isToggleable:r,keys:i,legendLabels:a,name:o})=>{n&&((e,t,n,r)=>{e.push({name:`${t}_${re.HOVERED_SERIES}`,value:null,on:[{events:`@${t}_legendEntry:mouseover`,update:hH(t,n,r)},{events:`@${t}_legendEntry:mouseout`,update:"null"}]})})(e,o,Boolean(r||t),i),e.push(pH(`${o}_labels`,null!=a?a:[]))}));const JG=e=>e.scatterPaths.map(((t,n)=>((e,t,n)=>{var{color:r="gray-500",groupBy:i,pathWidth:a={value:"M"},opacity:o=.5}=e,s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(e,["color","groupBy","pathWidth","opacity"]),l=n.color,u=n.colorScheme,c=n.dimension,d=n.dimensionScaleType,f=n.lineType,h=n.metric,p=n.name,m=n.opacity,g=n.size;const{facets:y}=ej({color:l,lineType:f,size:g,opacity:m});return Object.assign({color:r,colorScheme:u,dimension:c,dimensionScaleType:d,groupBy:null!=i?i:y,metric:h,index:t,pathWidth:a,name:`${p}Path${t}`,opacity:o},s)})(t,n,e))),XG=({color:e,colorScheme:t,dimension:n,dimensionScaleType:r,pathWidth:i,metric:a,name:o,opacity:s})=>({name:o,type:"trail",from:{data:`${o}_facet`},encode:{enter:{fill:{value:(0,ie.getS2ColorValue)(e,t)},fillOpacity:{value:s},size:QG(i)},update:{opacity:ZG(),x:Wj(r,n),y:{scale:"yLinear",field:a}}}}),ZG=()=>[{test:`isValid(${re.CONTROLLED_HIGHLIGHTED_SERIES}) || isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) || isValid(${re.SELECTED_SERIES}) || isValid(${re.SELECTED_ITEM})`,value:re.FADE_FACTOR},re.DEFAULT_OPACITY_RULE],QG=e=>"string"==typeof e?{scale:re.SYMBOL_PATH_WIDTH_SCALE,field:e}:{value:rj(e.value)},eq=e=>{const t=(e=>e.scatterAnnotations.map(((t,n)=>(({anchor:e=["right","top","bottom","left"],textKey:t},n,r)=>({anchor:e,textKey:null!=t?t:r.metric,index:n,name:`${r.name}Annotation${n}`,scatterOptions:r}))(t,n,e))))(e),n=[];for(const e of t){const{anchor:t,name:r,textKey:i}=e;n.push({name:r,type:"text",from:{data:e.scatterOptions.name},encode:{enter:{text:{signal:`datum.datum.${i}`}},update:{fillOpacity:{signal:"datum.opacity"}}},transform:[{type:"label",size:{signal:"[width, height]"},anchor:Array.isArray(t)?t:[t]}]})}return n},tq=ne(((e,t)=>{var n;const{name:r}=t,i={name:`${r}_group`,type:"group",clip:null!==(n=t.clip)&&void 0!==n&&n,marks:[nq(t),...eq(t),...iq(t),...aq(t)]};e.push(...(e=>{const t=[],n=JG(e);for(const e of n){const{groupBy:n,name:r}=e;t.push({name:`${r}_group`,type:"group",from:{facet:{name:`${r}_facet`,data:re.FILTERED_TABLE,groupby:n}},marks:[XG(e)]})}return t})(t),i,...dV(t))})),nq=e=>{const{blend:t,color:n,colorScaleType:r,colorScheme:i,dimension:a,dimensionScaleType:o,lineType:s,lineWidth:l,metric:u,name:c,opacity:d,size:f,stroke:h}=e,p=((e,t)=>{if("normal"!==e)return e?{value:e}:{value:"light"===t?"multiply":"screen"}})(t,i);return{name:c,description:c,type:"symbol",from:{data:re.FILTERED_TABLE},encode:{enter:Object.assign(Object.assign({},p&&{blend:p}),{fill:Bj(n,i,r),fillOpacity:zj(d),shape:{value:"circle"},size:Pj(f),strokeDash:Uj(s),strokeWidth:Hj(l),stroke:Bj(null!=h?h:n,i,r)}),update:{opacity:rq(e),x:Wj(o,a),y:{scale:"yLinear",field:u}}}}},rq=e=>{const{highlightedItem:t,idKey:n}=e;if(!Lj(e)&&void 0===t)return[re.DEFAULT_OPACITY_RULE];const r=[];return cH(r,e),Nj(e)&&r.push({test:`isValid(${re.SELECTED_ITEM})`,signal:`${re.SELECTED_ITEM} === datum.${n} ? 1 : ${re.FADE_FACTOR}`}),[...r,re.DEFAULT_OPACITY_RULE]},iq=e=>{const{dimension:t,dimensionScaleType:n,highlightedItem:r,metric:i,name:a}=e;return Lj(e)||void 0!==r?[qj(`${re.FILTERED_TABLE}ForInspect`,t,i,a,n),Yj(e,`${a}_pointsForVoronoi`)]:[]},aq=e=>{const{dimension:t,dimensionScaleType:n,metric:r,name:i,size:a}=e;return Nj(e)?[{name:`${i}_selectRing`,type:"symbol",from:{data:`${i}_selectedData`},encode:{enter:{fill:{value:"transparent"},shape:{value:"circle"},size:oq(a),strokeWidth:{value:2},stroke:{value:ie.spectrumColors.light["static-blue"]}},update:{x:Wj(n,t),y:{scale:"yLinear",field:r}}}}]:[]},oq=e=>{const t=Pj(e);return"value"in t&&"number"==typeof t.value?{value:Math.pow(Math.sqrt(t.value)+4,2)}:"scale"in t&&"field"in t?{signal:`pow(sqrt(scale('${t.scale}', datum.${t.field})) + 4, 2)`}:t};const sq=ne(((e,t)=>{var n,r,i,a,{chartPopovers:o=[],chartInspects:s=[],color:l={value:"categorical-100"},colorScaleType:u="ordinal",colorScheme:c=re.DEFAULT_COLOR_SCHEME,dimension:d=re.DEFAULT_LINEAR_DIMENSION,dimensionScaleType:f=re.DEFAULT_DIMENSION_SCALE_TYPE,index:h=0,lineType:p={value:"solid"},lineWidth:m={value:0},metric:g=re.DEFAULT_METRIC,name:y,opacity:_={value:1},scatterAnnotations:v=[],scatterPaths:b=[],size:x={value:"M"},trendlines:E=[],stroke:S,blend:A}=t,$=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["chartPopovers","chartInspects","color","colorScaleType","colorScheme","dimension","dimensionScaleType","index","lineType","lineWidth","metric","name","opacity","scatterAnnotations","scatterPaths","size","trendlines","stroke","blend"]);const T=(0,ae.toCamelCase)(y||`scatter${h}`),O=Object.assign({blend:A,chartPopovers:o,chartInspects:s,color:l,colorScaleType:u,colorScheme:c,dimension:d,dimensionScaleType:f,index:h,interactiveMarkName:tH({chartPopovers:o,chartInspects:s,highlightedItem:$.highlightedItem,trendlines:E},T),lineType:p,lineWidth:m,metric:g,stroke:S,name:T,opacity:_,scatterAnnotations:v,scatterPaths:b,size:x,trendlines:E},$);e.usermeta=mj(e.usermeta,O.interactiveMarkName),e.data=lq(null!==(n=e.data)&&void 0!==n?n:[],O),e.signals=uq(null!==(r=e.signals)&&void 0!==r?r:[],O),e.scales=cq(null!==(i=e.scales)&&void 0!==i?i:[],O),e.marks=tq(null!==(a=e.marks)&&void 0!==a?a:[],O)})),lq=ne(((e,t)=>{var n;const{chartInspects:r,dimension:i,dimensionScaleType:a,highlightedItem:o,idKey:s,name:l}=t;if("time"===a){const t=le(e);t.transform=oe(null!==(n=t.transform)&&void 0!==n?n:[],i)}(Lj(t)||void 0!==o)&&e.push(de(r)),Nj(t)&&e.push({name:`${l}_selectedData`,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`${re.SELECTED_ITEM} === datum.${s}`}]}),iH(e,t),eU(e,t)})),uq=ne(((e,t)=>{const{name:n}=t;AV(e,t),Lj(t)&&(yH(e,n,`${n}_voronoi`,2),lH(e,t))})),cq=ne(((e,t)=>{const{color:n,colorScaleType:r,dimension:i,dimensionScaleType:a,lineType:o,lineWidth:s,metric:l,opacity:u,size:c}=t;xj(e,{scaleType:a,dimension:i}),Sj(e,[l]),Aj(e,"linear"===r?re.LINEAR_COLOR_SCALE:re.COLOR_SCALE,n),Aj(e,re.LINE_TYPE_SCALE,o),Aj(e,re.LINE_WIDTH_SCALE,s),Aj(e,re.OPACITY_SCALE,u),Aj(e,re.SYMBOL_SIZE_SCALE,c),((e,t)=>{const n=JG(t);for(const t of n)Aj(e,re.SYMBOL_PATH_WIDTH_SCALE,t.pathWidth)})(e,t),e.push(...SV(t))})),dq={fontWeight:re.DEFAULT_TITLE_FONT_WEIGHT,fontSize:18,position:"middle",orient:"top"},fq={fontWeight:700,fontSize:24,position:"start"},hq=ne(((e,t)=>{const{text:n,fontWeight:r,fontSize:i,position:a,orient:o}=(e=>Object.assign(Object.assign(Object.assign({},dq),fq),e))(t);return e.title={text:n,fontWeight:r,fontSize:i,anchor:a,frame:"group",orient:o},e}));var pq=a(561);function mq(e){var t,n=function(e){for(var t=[],n=0;n<e.length;++n)for(var r=n+1;r<e.length;++r){let o=e[n],s=e[r];if(o&&s)for(var i=vq(o,s),a=0;a<i.length;++a){let e=i[a];e&&t.push({...e,parentIndex:[n,r]})}}return t}(e),r=n.filter((function(t){return function(e,t){for(var n=0;n<t.length;++n){let r=t[n];if(void 0!==r&&yq(e,r)>r.radius+1e-10)return!1}return!0}(t,e)})),i=0,a=0,o=[];if(r.length>1){var s=bq(r);r=r.map((e=>({...e,angle:Math.atan2(e.x-s.x,e.y-s.y)}))).sort(((e,t)=>t.angle-e.angle));var l=r[r.length-1];for(t=0;t<r.length;++t){var u=r[t];a+=(l.x+u.x)*(u.y-l.y);for(var c={x:(u.x+l.x)/2,y:(u.y+l.y)/2},d=null,f=0;f<u.parentIndex.length;++f)if(l.parentIndex.indexOf(u.parentIndex[f])>-1){var h=e[u.parentIndex[f]],p=Math.atan2(u.x-h.x,u.y-h.y),m=Math.atan2(l.x-h.x,l.y-h.y),g=m-p;g<0&&(g+=2*Math.PI);var y=m-g/2,_=yq(c,{x:h.x+h.radius*Math.sin(y),y:h.y+h.radius*Math.cos(y)});_>2*h.radius&&(_=2*h.radius),(null===d||d.width>_)&&(d={circle:h,width:_,p1:u,p2:l})}null!==d&&(o.push(d),i+=gq(d.circle.radius,d.width),l=u)}}else{var v=e[0];for(t=1;t<e.length;++t){let n=e[t];(null==v||n.radius<v.radius)&&(v=n)}var b=!1;for(t=0;t<e.length;++t){let n=e[t];if(void 0!==n&&yq(n,v)>Math.abs(v.radius-n.radius)){b=!0;break}}b?i=a=0:(i=v.radius*v.radius*Math.PI,o.push({circle:v,p1:{x:v.x,y:v.y+v.radius},p2:{x:v.x-1e-10,y:v.y+v.radius},width:2*v.radius}))}return{overlap:i+(a/=2),stats:{area:i+a,arcArea:i,polygonArea:a,arcs:o,innerPoints:r,intersectionPoints:n}}}function gq(e,t){return e*e*Math.acos(1-t/e)-(e-t)*Math.sqrt(t*(2*e-t))}function yq(e,t){return Math.sqrt((e.x-t.x)*(e.x-t.x)+(e.y-t.y)*(e.y-t.y))}function _q(e,t,n){if(n>=e+t)return 0;if(n<=Math.abs(e-t))return Math.PI*Math.min(e,t)*Math.min(e,t);var r=t-(n*n-e*e+t*t)/(2*n);return gq(e,e-(n*n-t*t+e*e)/(2*n))+gq(t,r)}function vq(e,t){var n=yq(e,t),r=e.radius,i=t.radius;if(n>=r+i||n<=Math.abs(r-i))return[];var a=(r*r-i*i+n*n)/(2*n),o=Math.sqrt(r*r-a*a),s=e.x+a*(t.x-e.x)/n,l=e.y+a*(t.y-e.y)/n,u=-(t.y-e.y)*(o/n),c=-(t.x-e.x)*(o/n);return[{x:s+u,y:l-c},{x:s-u,y:l+c}]}function bq(e){let t=e.reduce(((e,t)=>({x:e.x+t.x,y:e.y+t.y})),{x:0,y:0});return t.x/=e.length,t.y/=e.length,t}var xq=new Map([["greedy",Tq],["MDS",$q],["best",function(e,t){var n=Tq(e),r=Oq;if(e.length>=8){var i=$q(e,t);r(i,e)+1e-8<r(n,e)&&(n=i)}return n}]]),Eq=1e-10;function Sq(e,t,n){return Math.min(e,t)*Math.min(e,t)*Math.PI<=n+Eq?Math.abs(e-t):(0,pq.bisect)((function(r){return _q(e,t,r)-n}),0,e+t)}function Aq(e,t,n,r){var i,a=0;for(i=0;i<t.length;++i)t[i]=0;for(i=0;i<n.length;++i)for(var o=e[2*i],s=e[2*i+1],l=i+1;l<n.length;++l){var u=e[2*l],c=e[2*l+1],d=n[i][l],f=r[i][l],h=(u-o)*(u-o)+(c-s)*(c-s),p=Math.sqrt(h),m=h-d*d;f>0&&p<=d||f<0&&p>=d||(a+=2*m*m,t[2*i]+=4*m*(o-u),t[2*i+1]+=4*m*(s-c),t[2*l]+=4*m*(u-o),t[2*l+1]+=4*m*(c-s))}return a}function $q(e,t){var n,r=t.restarts||10,i=[],a={};for(n=0;n<e.length;++n){var o=e[n];1===o?.sets.length&&(o.sets[0]&&(a[o.sets[0]]=i.length),i.push(o))}var s=function(e,t,n){var r=(0,pq.zerosM)(t.length,t.length),i=(0,pq.zerosM)(t.length,t.length);return e.filter((function(e){return 2===e.sets.length})).map((function(e){var a=n[e.sets[0]],o=n[e.sets[1]];if(void 0===a||void 0===o)return e;var s=Sq(Math.sqrt(t[a].size/Math.PI),Math.sqrt(t[o].size/Math.PI),e.size);r[a][o]=r[o][a]=s;var l=0;e.size+1e-10>=Math.min(t[a].size,t[o].size)?l=1:e.size<=1e-10&&(l=-1),i[a][o]=i[o][a]=l})),{distances:r,constraints:i}}(e,i,a),l=s.distances,u=s.constraints,c=(0,pq.norm2)(l.map(pq.norm2))/l.length;l=l.map((function(e){return e.map((function(e){return e/c}))}));let d=function(e=1){return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}((t.seed??Math.random())*2**32>>>0);var f,h;for(n=0;n<r;++n){var p=(0,pq.zeros)(2*l.length).map((()=>d()));h=(0,pq.conjugateGradient)(((e,t)=>Aq(e,t,l,u)),p,t),(!f||h.fx<f.fx)&&(f=h)}var m=f?.x,g={};for(n=0;n<i.length;++n){var y=i[n];let e=y?.sets[0];void 0===y||void 0===e||(g[e]={x:m[2*n]*c,y:m[2*n+1]*c,radius:Math.sqrt(y.size/Math.PI),setid:e,size:y.size,rowid:Object.keys(g).length})}if(t.history)for(let e of t.history)(0,pq.scale)(e.x,c);return g}function Tq(e,t){for(var n,r=Oq,i={},a={},o=0;o<e.length;++o){var s=e[o];1==s.sets.length&&(n=s.sets[0],i[n]={x:1e10,y:1e10,rowid:Object.keys(i).length,size:s.size,setid:n,radius:Math.sqrt(s.size/Math.PI)},a[n]=[])}for(e=e.filter((function(e){return 2==e.sets.length})),o=0;o<e.length;++o){var l=e[o],u=l.weight?l.weight:1,c=l.sets[0],d=l.sets[1];if(void 0===c||void 0===d)continue;let t=i[c],n=i[d];!t.size||!n.size||(l.size+Eq>=Math.min(t.size,n.size)&&(u=0),a[c]?.push({set:d,size:l.size,weight:u}),a[d]?.push({set:c,size:l.size,weight:u}))}var f=[];for(n in a){let e=a[n];if(e){var h=0;for(o=0;o<e.length;++o){let t=e[o];t&&(h+=t.size*t.weight)}f.push({set:n,size:h})}}f.sort(((e,t)=>t.size-e.size));var p={};function m(e){return e.set in p}function g(e,t){let n=i[t];n&&(n.x=e.x,n.y=e.y),p[t]=!0}for(g({x:0,y:0},f[0]?.set??""),o=1;o<f.length;++o){var y=f[o]?.set,_=y?a[y]?.filter(m):null;let t=y?i[y]:null;if(_?.sort(((e,t)=>t.size-e.size)),0===_?.length||!_)throw"ERROR: missing pairwise overlap information";for(var v=[],b=0;b<_.length;++b){let e=_[b];if(!e)continue;var x=i[_[b].set];if(!x)continue;let n=Sq(t.radius,x.radius,e.size);v.push({x:x.x+n,y:x.y}),v.push({x:x.x-n,y:x.y}),v.push({y:x.y+n,x:x.x}),v.push({y:x.y-n,x:x.x});for(var E=b+1;E<_.length;++E)for(var S=i[_[E].set],A=Sq(t.radius,S.radius,_[E].size),$=vq({x:x.x,y:x.y,radius:n},{x:S.x,y:S.y,radius:A}),T=0;T<$.length;++T)v.push($[T])}var O=1e50,D=v[0];for(b=0;b<v.length;++b){i[y].x=v[b].x,i[y].y=v[b].y;var M=r(i,e);M<O&&(O=M,D=v[b])}g(D,y)}return i}function Oq(e,t){for(var n,r=0,i=0;i<t.length;++i){var a,o=t[i];if(o&&1!==o.sets.length){if(2===o.sets.length){var s=e[o.sets[0]],l=e[o.sets[1]];if(void 0===s||void 0===l)continue;a=_q(s.radius,l.radius,yq(s,l))}else a=mq((n=o.sets,n.map((function(t){return e[t]})))).overlap;r+=(o.weight?o.weight:1)*(a-o.size)*(a-o.size)}}return r}function Dq(e,t,n){var r;if(null===n?e.sort((function(e,t){return t.radius-e.radius})):e.sort(n),e.length>0){var i=e[0].x,a=e[0].y;for(r=0;r<e.length;++r)e[r].x-=i,e[r].y-=a}if(2==e.length){let t=e[0],n=e[1];t&&n&&yq(t,n)<Math.abs(n.radius-t.radius)&&(n.x=t.x+t.radius-n.radius-1e-10,n.y=n.y)}if(e.length>1){var o,s,l=Math.atan2(e[1].x,e[1].y)-(t??0),u=Math.cos(l),c=Math.sin(l);for(r=0;r<e.length;++r){let t=e[r];t&&(o=t.x,s=t.y,t.x=u*o-c*s,t.y=c*o+u*s)}}if(e.length>2){for(var d=Math.atan2(e[2].x,e[2].y)-(t??0);d<0;)d+=2*Math.PI;for(;d>2*Math.PI;)d-=2*Math.PI;if(d>Math.PI){var f=e[1].y/(1e-10+e[1].x);for(r=0;r<e.length;++r){let t=e[r];if(t){var h=(t.x+f*t.y)/(1+f*f);t.x=2*h-t.x,t.y=2*h*f-t.y}}}}}function Mq(e){var t=function(t){return{max:Math.max.apply(null,e.map((function(e){return e[t]+e.radius}))),min:Math.min.apply(null,e.map((function(e){return e[t]-e.radius})))}};return{xRange:t("x"),yRange:t("y")}}function wq(e,{layout:t,height:n,width:r,padding:i,seed:a,orientation:o,set_id_delimiter:s,orientationOrder:l}){let u=e.filter((e=>0!==e.size&&e.sets.length>0));if(0===u.length)return{circles:[],intersections:[]};let c=function(e,t){(t=t??{}).maxIterations=t.maxIterations||500,t.seed=t.seed??Math.random();let n=xq.get(t.layout??"best");var r=Oq;e=function(e){e=e.slice();var t,n,r,i,a=[],o={};for(let t of e)1==t.sets.length?a.push(t.sets[0]):2==t.sets.length&&(o[`${r=t.sets[0]},${i=t.sets[1]}`]=!0,o[`${i},${r}`]=!0);for(a.sort(((e,t)=>e.toString().localeCompare(t.toString()))),t=0;t<a.length;++t)for(r=a[t],n=t+1;n<a.length;++n)`${r},${i=a[n]}`in o||e.push({sets:[r,i],size:0});return e}(e);var i=n(e,t),a=[],o=[];for(let e of Object.keys(i)){let t=i[e];t&&(a.push(t.x),a.push(t.y),o.push(e))}for(var s=(0,pq.nelderMead)((function(t){for(var n={},a=0;a<o.length;++a){var s=o[a];let e=i[s];n[s]={x:t[2*a],y:t[2*a+1],radius:e.radius,setid:s,size:e.size,rowid:e.rowid}}return r(n,e)}),a,t),l=s.x,u=0;u<o.length;++u){let e=o[u],t=i[e];t.x=l[2*u],t.y=l[2*u+1]}return i}(u,{layout:t,seed:a});o!==Math.PI/2&&(c=function(e,t,n){null===t&&(t=Math.PI/2);var r,i,a=[];for(i in e){var o=e[i];o&&a.push({...o,setid:i})}var s=function(e){function t(e){if(e)return e.parent!==e&&(e.parent=t(e.parent)),e.parent}function n(e,n){var r=t(e),i=t(n);r&&(r.parent=i)}e.map((function(e){e.parent=e}));for(var r=0;r<e.length;++r)for(var i=r+1;i<e.length;++i){let t=e[r],o=e[i];if(t&&o){var a=t.radius+o.radius;yq(t,o)+1e-10<a&&n(o,t)}}var o,s={};for(r=0;r<e.length;++r){let n=e[r];if(!n)continue;let i=t(e[r])?.parent?.setid;i&&(i in s||(s[i]=[]),s[i]&&s[i].push(n))}e.map((function(e){delete e.parent}));var l=[];for(o in s){let e=s[o];e&&l.push(e)}return l}(a);for(r=0;r<s.length;++r){let e=s[r];if(e){Dq(e,t,n);var l=Mq(e);e.size=(l.xRange.max-l.xRange.min)*(l.yRange.max-l.yRange.min),e.bounds=l}}s.sort((function(e,t){return e.size&&t.size?t.size-e.size:0}));var u=s[0].bounds,c=(u.xRange.max-u.xRange.min)/50;function d(e,t,n){if(e&&e.size&&e.bounds){var r,i,o,s=e.bounds;t?r=u.xRange.max-s.xRange.min+c:(r=u.xRange.max-s.xRange.max,(o=(s.xRange.max-s.xRange.min)/2-(u.xRange.max-u.xRange.min)/2)<0&&(r+=o)),n?i=u.yRange.max-s.yRange.min+c:(i=u.yRange.max-s.yRange.max,(o=(s.yRange.max-s.yRange.min)/2-(u.yRange.max-u.yRange.min)/2)<0&&(i+=o));for(var l=0;l<e.length;++l){let t=e[l];t&&(t.x+=r,t.y+=i,a.push(t))}}}for(var f=1;f<s.length;)d(s[f],!0,!1),d(s[f+1],!1,!0),d(s[f+2],!0,!0),f+=3,u=Mq(a);var h={};for(let e of a)h[e.setid]=e;return h}(c,o,l)),c=function(e,t,n,r){var i=[],a=[];for(var o in e){let t=e[o];t&&(a.push(o),i.push(t))}t-=2*r,n-=2*r;var s=Mq(i),l=s.xRange,u=s.yRange;if(l.max==l.min||u.max==u.min)return e;for(var c=t/(l.max-l.min),d=n/(u.max-u.min),f=Math.min(d,c),h=(t-(l.max-l.min)*f)/2,p=(n-(u.max-u.min)*f)/2,m={},g=0;g<i.length;++g){var y=i[g];let e=a[g];!y||!e||(m[e]={...y,radius:f*y.radius,x:r+h+(y.x-l.min)*f,y:r+p+(y.y-u.min)*f})}return m}(c,r,n,i);let d=function(e,t,n=","){for(var r={},i=function(e){var t={},n=Object.keys(e);n.forEach((e=>t[e]=[]));for(var r=0;r<n.length;r++)for(var i=e[n[r]],a=r+1;a<n.length;++a){var o=e[n[a]],s=yq(i,o);s+o.radius<=i.radius+1e-10?t[n[a]].push(n[r]):s+i.radius<=o.radius+1e-10&&t[n[r]].push(n[a])}return t}(e),a=0;a<t.length;++a){for(var o=t[a].sets,s={},l={},u=0;u<o.length;++u){s[o[u]]=!0;var c=i[o[u]];if(c)for(var d=0;d<c.length;++d)l[c[d]]=!0}var f=[],h=[];for(var p in e)p in s?f.push(e[p]):p in l||h.push(e[p]);var m=Cq(f,h);r[o.join(n)]=m,m.disjoint&&t[a].size>0&&console.log("WARNING: area "+o+" not represented on screen")}return r}(c,u),f=u.map((e=>{let t=e.sets.join(","),{x:n,y:r,disjoint:i}=d[t];return{set_id:e.sets.join(s),sets:e.sets,path:Iq(e.sets.map((e=>c[e]))),textX:i?void 0:n,textY:i?void 0:r,size:e.size}})).filter((e=>e.sets.length>1));return{circles:Object.entries(c).map((([e,t])=>({set_id:e,x:t.x,y:t.y,size:Math.pow(2*t.radius,2),textX:d[e].x,textY:d[e].y}))),intersections:f}}function Iq(e){let{stats:t}=mq(e);var n=t.arcs;if(0===n.length)return"M 0 0";if(1===n.length){var r=n[0].circle;return function(e,t,n){var r=[];return r.push("\nM",e.toString(),t.toString()),r.push("\nm",-n,0),r.push("\na",n,n,0,1,0,2*n,0),r.push("\na",n,n,0,1,0,2*-n,0),r.join(" ")}(r.x,r.y,r.radius)}var i=["\nM",n[0].p2.x,n[0].p2.y];for(let e of n){let t=e.circle.radius,n=e.width>t;i.push("\nA",t,t,0,n?1:0,1,e.p1.x,e.p1.y)}return i.join(" ")}function Cq(e,t){var n,r=[];for(n=0;n<e.length;++n){var i=e[n];i&&(r.push({x:i.x,y:i.y}),r.push({x:i.x+i.radius/2,y:i.y}),r.push({x:i.x-i.radius/2,y:i.y}),r.push({x:i.x,y:i.y+i.radius/2}),r.push({x:i.x,y:i.y-i.radius/2}))}var a=r[0],o=Rq(r[0],e,t);for(n=1;n<r.length;++n){var s=Rq(r[n],e,t);s>=o&&(a=r[n],o=s)}var l=(0,pq.nelderMead)((function(n){return-1*Rq({x:n[0],y:n[1]},e,t)}),[a.x,a.y],{maxIterations:500,minErrorDelta:1e-10}).x,u={x:l[0],y:l[1]},c=!0;for(n=0;n<e.length;++n)if(yq(u,e[n])>e[n].radius){c=!1;break}for(n=0;n<t.length;++n)if(yq(u,t[n])<t[n].radius){c=!1;break}if(!c)if(1==e.length)u={x:e[0].x,y:e[0].y};else{let{stats:n}=mq(e);u=0===n.arcs.length?{x:0,y:-1e3,disjoint:!0}:1===n.arcs.length?{x:n.arcs[0].circle.x,y:n.arcs[0].circle.y}:t.length?Cq(e,[]):bq(n.arcs.map((function(e){return e.p1})))}return u}function Rq(e,t,n){var r,i,a=t[0].radius-yq(t[0],e);for(r=1;r<t.length;++r)(i=t[r].radius-yq(t[r],e))<=a&&(a=i);for(r=0;r<n.length;++r)(i=yq(n[r],e)-n[r].radius)<=a&&(a=i);return a}const kq=(e,t)=>{const{label:n}=e;return{type:"text",from:{data:t},interactive:!1,encode:{enter:{x:{field:"textX"},y:{field:"textY"},text:{field:`table_data.${n}`},align:{value:"center"},baseline:{value:"middle"}},update:{opacity:eH(e)}}}},Lq=new Map([["0deg",Math.PI/2],["90deg",0],["180deg",-3*Math.PI/2],["270deg",-Math.PI]]);const Nq=ne(((e,t)=>{var n,r,i,a,{chartPopovers:o=[],chartInspects:s=[],color:l=re.DEFAULT_VENN_COLOR,colorScheme:u=re.DEFAULT_COLOR_SCHEME,index:c=0,label:d=re.DEFAULT_VENN_LABEL,metric:f=re.DEFAULT_VENN_METRIC,name:h,orientation:p="0deg",chartHeight:m=100,chartWidth:g=100,data:y=[]}=t,_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["chartPopovers","chartInspects","color","colorScheme","index","label","metric","name","orientation","chartHeight","chartWidth","data"]);const v=Object.assign({chartPopovers:o,chartInspects:s,chartWidth:g,chartHeight:m,data:y,index:c,colorScheme:u,color:l,label:d,orientation:p,metric:f,name:(0,ae.toCamelCase)(null!=h?h:`venn${c}`)},_);e.data=Fq(null!==(n=e.data)&&void 0!==n?n:[],v),e.signals=Uq(null!==(r=e.signals)&&void 0!==r?r:[],v),e.scales=jq(null!==(i=e.scales)&&void 0!==i?i:[]),e.marks=Bq(null!==(a=e.marks)&&void 0!==a?a:[],v)})),Fq=ne(((e,t)=>{var n,r;const{circles:i,intersections:a}=(e=>{const{orientation:t,chartWidth:n,chartHeight:r}=e;return wq((e=>{const{data:t,metric:n,color:r}=e,i=t.map((e=>{const t=Object.assign({},e);if(void 0===t[n])throw new Error("set the metric prop to the default 'size' or set your own");if(n!==re.DEFAULT_VENN_METRIC&&"number"==typeof t[n]&&(t.size=e[n]),void 0===t[r])throw new Error("set the color prop to the default 'sets' or set your own");return r!==re.DEFAULT_VENN_COLOR&&Array.isArray(t[r])&&(t.sets=structuredClone(e[r])),{size:t.size,sets:t.sets}})).filter((e=>e.sets.length>0));return i})(e),{orientation:Lq.get(t),layout:"greedy",width:n,height:r,set_id_delimiter:"∩",padding:0})})(t);e.push({name:"circles",values:i,transform:[...zq(),{type:"formula",as:"strokeSize",expr:"datum.size * 1"},{type:"filter",expr:"indexof(hiddenSeries, datum.table_data.rscSeriesId) === -1"}]},{name:"intersections",values:a,transform:[...zq(),...Pq()]});const o=e.findIndex((e=>e.name===re.TABLE));e[o].transform=null!==(n=e[o].transform)&&void 0!==n?n:[],null===(r=e[o].transform)||void 0===r||r.push(...Hq(t))})),Bq=ne(((e,t)=>{e.push((e=>{const{colorScheme:t,idKey:n}=e;return{type:"symbol",name:`${e.name}_circle_strokes`,from:{data:"circles"},interactive:!1,encode:{enter:{x:{field:"x"},y:{field:"y"},size:{field:"size"},shape:{value:"circle"},stroke:{value:(0,ie.getS2ColorValue)("static-blue",t)},strokeWidth:{value:6}},update:{strokeOpacity:[{test:`${re.SELECTED_ITEM} === datum.${n}`,value:1},{value:0}]}}}})(t),(e=>{const{name:t,colorScheme:n,chartInspects:r,chartPopovers:i}=e;return{type:"symbol",name:t,from:{data:"circles"},encode:{enter:{x:{field:"x"},y:{field:"y"},tooltip:Rj(r,t),size:{field:"size"},shape:{value:"circle"},fill:Bj("set_id",n),stroke:{signal:"chartBackgroundColor"},strokeWidth:{value:2}},update:{opacity:eH(e),cursor:Cj(i)}}}})(t),(e=>{const{name:t,idKey:n,colorScheme:r}=e;return{type:"path",from:{data:"intersections"},name:`${t}_intersections_strokes`,interactive:!1,encode:{enter:{path:{field:"path"},strokeWidth:{value:6},strokeCap:{value:"round"},stroke:{value:(0,ie.getS2ColorValue)("static-blue",r)}},update:{strokeOpacity:[{test:`${re.SELECTED_ITEM} === datum.${n}`,value:1},{value:0}]}}}})(t),(e=>{const{name:t,chartInspects:n,colorScheme:r,chartPopovers:i}=e;return{type:"path",from:{data:"intersections"},name:`${t}_intersections`,encode:{enter:{path:{field:"path"},fill:Bj("set_id",r),strokeWidth:{value:2},stroke:{signal:"chartBackgroundColor"},strokeCap:{value:"square"},tooltip:Rj(n,`${t}`)},update:{opacity:eH(e),cursor:Cj(i)}}}})(t),kq(t,"circles"),kq(t,"intersections"))})),jq=ne((e=>{Aj(e,re.COLOR_SCALE,"set_legend"),Aj(e,re.COLOR_SCALE,"set_id")})),Hq=e=>[{type:"formula",as:"set_id",expr:`join(datum.${e.color}, '∩')`},{type:"formula",as:"set_legend",expr:`length(datum.${e.color}) > 1 ? datum.${e.color}[0]: join(datum.${e.color}, '∩')`}],zq=()=>[{type:"lookup",key:"set_id",fields:["set_id"],from:re.TABLE,as:["table_data"]},{type:"formula",as:"rscSeriesId",expr:"datum.table_data.set_id"},{type:"formula",expr:"datum.table_data.rscMarkId",as:"rscMarkId"}],Pq=()=>[{type:"formula",as:"hidden",expr:"hiddenSeries"},{type:"flatten",fields:["sets"],as:["intersect_set"]},{type:"formula",as:"hide_intersection",expr:"indexof(datum.hidden, datum.intersect_set) === -1 ? 0 : 1"},{type:"joinaggregate",groupby:["set_id"],fields:["hide_intersection"],ops:["sum"]},{type:"filter",expr:"datum.sum_hide_intersection === 0"},{type:"window",groupby:["set_id"],ops:["row_number"],as:["row_num"]},{type:"filter",expr:"datum.row_num === 1"}],Uq=ne(((e,t)=>{var n,r;const{chartInspects:i,name:a}=t;Lj(t)&&(yH(e,a,void 0,1,null===(n=i[0])||void 0===n?void 0:n.excludeDataKeys),yH(e,a,`${a}_intersections`,1,null===(r=i[0])||void 0===r?void 0:r.excludeDataKeys))})),Vq=e=>{const{offset:t}=e;return"object"==typeof t&&null!==t&&"signal"in t&&/scale\(.*,\s*0\)/.test(String(t.signal))};function Wq({animations:e,animationTypes:t,axes:n=[],backgroundColor:r=re.DEFAULT_BACKGROUND_COLOR,chartHeight:i,chartWidth:a,colors:o="categorical12",colorScheme:s=re.DEFAULT_COLOR_SCHEME,data:l,description:u,hiddenSeries:c=[],highlightedItem:d,highlightedSeries:f,idKey:h=re.MARK_ID,legends:p=[],lineTypes:m=re.DEFAULT_LINE_TYPES,lineWidths:g=["M"],marks:y=[],opacities:_,symbolShapes:v=["rounded-square"],symbolSizes:b=["XS","XL"],title:x,titles:E=[]}){var S,A,$,T,O;const D={axes:n,backgroundColor:r,chartHeight:i,chartWidth:a,colors:o,colorScheme:s,data:l,description:u,hiddenSeries:c,highlightedItem:d,highlightedSeries:f,idKey:h,legends:p,lineTypes:m,lineWidths:g,marks:y,opacities:_,symbolShapes:v,symbolSizes:b,title:x,titles:E};let M=uj(null,{backgroundColor:r,colorScheme:s,description:u,title:x});M.signals=Yq(D),M.scales=Zq(o,s,m,g,_,v,b);let{areaCount:w,barCount:I,bulletCount:C,comboCount:R,donutCount:k,lineCount:L,scatterCount:N,vennCount:F}=qq();const B=dG(p),j={animations:e,animationTypes:t,backgroundColor:r,colorScheme:s,idKey:h,highlightedItem:d,highlightedSeries:f,legendHighlightSignals:B};return M=[...y].reduce(((e,t)=>{switch(t.markType){case"area":return w++,xH(e,Object.assign(Object.assign(Object.assign({},t),j),{index:w}));case"bar":return I++,FV(e,Object.assign(Object.assign(Object.assign({},t),j),{index:I}));case"bullet":return C++,rW(e,Object.assign(Object.assign(Object.assign({},t),j),{index:C}));case"combo":return R++,jW(e,Object.assign(Object.assign(Object.assign({},t),j),{index:R}));case"donut":return k++,aG(e,Object.assign(Object.assign(Object.assign({},t),j),{index:k}));case"line":return L++,mW(e,Object.assign(Object.assign(Object.assign({},t),j),{index:L,data:l}));case"scatter":return N++,sq(e,Object.assign(Object.assign(Object.assign({},t),j),{index:N}));case"venn":return F++,Nq(e,Object.assign(Object.assign(Object.assign({},t),j),{index:F,data:l,chartWidth:a,chartHeight:i}));case"bigNumber":return e;default:return console.error(`Invalid component type: ${t} is not a supported chart mark option child`),e}}),M),M=[...p].reduce(((e,t,n)=>zG(e,Object.assign(Object.assign(Object.assign({},t),j),{index:n,hiddenSeries:c,highlightedItem:d,highlightedSeries:f}))),M),M=[...n].reduce(((e,t,n)=>Pz(e,Object.assign(Object.assign(Object.assign({},t),j),{index:n}))),M),E.length&&(M=hq(M,E[0])),M=JSON.parse(JSON.stringify(M)),M.data=uY(null!==(S=M.data)&&void 0!==S?S:[],{facets:tj(M.scales)}),(null===($=null===(A=M.usermeta)||void 0===A?void 0:A.divergingBarMarks)||void 0===$?void 0:$.length)&&M.axes&&(M.axes=[...M.axes].sort(((e,t)=>Number(Vq(e))-Number(Vq(t))))),f&&(pG("",null!==(T=M.marks)&&void 0!==T?T:[],void 0,!0),mG("",null!==(O=M.marks)&&void 0!==O?O:[],void 0,!0)),M=Gq(M),gY(M)}const Gq=ne((e=>{var t;e.scales=null===(t=e.scales)||void 0===t?void 0:t.filter((e=>!("domain"in e&&e.domain&&"fields"in e.domain&&0===e.domain.fields.length)))})),qq=()=>({areaCount:-1,barCount:-1,comboCount:-1,donutCount:-1,bulletCount:-1,lineCount:-1,scatterCount:-1,vennCount:-1}),Yq=({backgroundColor:e,colors:t,colorScheme:n,lineTypes:r,opacities:i,hiddenSeries:a,highlightedItem:o,highlightedSeries:s})=>{const l="transparent"===e?"gray-25":e,u="transparent"!==e&&e?(0,ie.getS2ColorValue)(l,n):(0,ie.getS2ColorValue)("gray-25",n),c=void 0===o||Array.isArray(o)?o:[o],d={name:re.CHART_SIZE_STROKE_WIDTH,update:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.CHART_SIZE_STROKE_WIDTHS.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.CHART_SIZE_STROKE_WIDTHS.M} : ${re.CHART_SIZE_STROKE_WIDTHS.L}`},f={name:re.CHART_SIZE_HOVER_STROKE_WIDTH,update:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTHS.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.CHART_SIZE_HOVER_STROKE_WIDTHS.M} : ${re.CHART_SIZE_HOVER_STROKE_WIDTHS.L}`},h={name:re.CHART_SIZE_POINT_SIZE,update:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.CHART_SIZE_POINT_SIZES.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.CHART_SIZE_POINT_SIZES.M} : ${re.CHART_SIZE_POINT_SIZES.L}`},p={name:re.CHART_SIZE_FONT_SIZE,update:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.DIRECT_LABEL_FONT_SIZE_S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.DIRECT_LABEL_FONT_SIZE_M} : ${re.DIRECT_LABEL_FONT_SIZE_L}`},m={name:re.CHART_SIZE_LABEL_GAP,update:`rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.M} ? ${re.CHART_SIZE_LABEL_GAPS.S} : rscContainerWidth(width) < ${re.CHART_SIZE_BREAKPOINTS.L} ? ${re.CHART_SIZE_LABEL_GAPS.M} : ${re.CHART_SIZE_LABEL_GAPS.L}`};return[pH(re.BACKGROUND_COLOR,(0,ie.getS2ColorValue)(l,n)),pH(re.REFERENCE_LINE_LABEL_BACKGROUND_STROKE,u),pH("colors",Kq(t,n)),pH("lineTypes",Jq(r)),pH("opacities",Xq(i)),pH("hiddenSeries",null!=a?a:[]),pH(re.CONTROLLED_HIGHLIGHTED_ITEM,c),pH(re.HIGHLIGHTED_GROUP),pH(re.CONTROLLED_HIGHLIGHTED_SERIES,s),pH(re.SELECTED_ITEM),pH(re.SELECTED_SERIES),pH(re.SELECTED_GROUP),d,f,h,p,m]},Kq=(e,t)=>dY(e)?sY(e,t).map((e=>[e])):e.map((e=>sY(e,t))),Jq=e=>fY(e)?lY(e).map((e=>[e])):e.map((e=>lY(e))),Xq=e=>e?pY(e)?e.map((e=>[e])):e:[[1]],Zq=(e,t,n,r,i,a,o)=>[Qq(e,t),eY(e,t),tY(n),aY(r),oY(i),nY(a),rY(o),iY(o)],Qq=(e,t)=>{const n=dY(e)?sY(e,t):e.map((e=>sY(e,t)[0]));return wj("color",n)},eY=(e,t)=>{const n=dY(e)?sY(e,t):e.map((e=>sY(e,t)[0]));return{name:re.LINEAR_COLOR_SCALE,type:"linear",range:n,domain:{data:re.TABLE,fields:[]}}},tY=e=>{const t=fY(e)?lY(e):e.map((e=>nj(e[0])));return wj(re.LINE_TYPE_SCALE,t)},nY=e=>{const t=mY(e)?function(e){return e.map((e=>ij(e)))}(e):e.map((e=>ij(e[0])));return wj(re.SYMBOL_SHAPE_SCALE,t)},rY=e=>({name:re.SYMBOL_SIZE_SCALE,type:"linear",zero:!1,range:e.map((e=>oj(e))),domain:{data:re.TABLE,fields:[]}}),iY=e=>({name:re.SYMBOL_PATH_WIDTH_SCALE,type:"linear",zero:!1,range:e.map((e=>sj(e))),domain:{data:re.TABLE,fields:[]}}),aY=e=>{const t=e.map((e=>rj(e)));return wj(re.LINE_WIDTH_SCALE,t)},oY=e=>{if(null==e?void 0:e.length){const t=pY(e)?e:e.map((e=>e[0]));return wj(re.OPACITY_SCALE,t)}return{name:re.OPACITY_SCALE,type:"point",range:[1,0],padding:1,align:1,domain:{data:re.TABLE,fields:[]}}};function sY(e,t){return Array.isArray(e)?e.map((e=>(0,ie.getS2ColorValue)(e,t))):ie.colorSchemes[e]}function lY(e){return e.map((e=>nj(e)))}const uY=ne(((e,{facets:t})=>{var n,r,i;if(e.splice(2,0,{name:re.CONTROLLED_HIGHLIGHTED_TABLE,source:re.FILTERED_TABLE,transform:[{type:"filter",expr:`isArray(${re.CONTROLLED_HIGHLIGHTED_ITEM}) && indexof(${re.CONTROLLED_HIGHLIGHTED_ITEM}, datum.${re.MARK_ID}) > -1`}]}),0===t.length)return;null===(r=null===(n=e[0])||void 0===n?void 0:n.transform)||void 0===r||r.push(...ce(t));const a=e.findIndex((e=>e.name===re.FILTERED_TABLE));-1!==a&&(e[a].transform=[{type:"filter",expr:`indexof(hiddenSeries, datum.${re.SERIES_ID}) === -1`},...null!==(i=e[a].transform)&&void 0!==i?i:[]])})),cY=e=>Boolean(!Array.isArray(e)&&e in ie.colorSchemes),dY=e=>cY(e)||e.some((e=>!cY(e)&&"string"==typeof e)),fY=e=>e.some((e=>"string"==typeof e||hY(e))),hY=e=>Array.isArray(e)&&!e.some((e=>"number"!=typeof e)),pY=e=>!e.some((e=>Array.isArray(e))),mY=e=>!e.some((e=>Array.isArray(e))),gY=e=>"function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e));re.MARK_ID,re.SERIES_ID,re.TRENDLINE_VALUE,re.GROUP_DATA;var yY=a(542);const _Y=(e="en-US")=>{const{number:t}=(0,yY.getLocale)(e),n="string"==typeof e?e:null==e?void 0:e.number;return{formatTimeDurationLabels:SY(t),formatLocaleCurrency:bY(t),formatShortNumber:vY(n),consoleLog:AY,formatHorizontalTimeAxisLabels:xY(),formatVerticalAxisTimeLabels:EY(),getLabelWidth:$Y,truncateText:TY}},vY=e=>{const t="string"==typeof e?e:navigator.language,n="object"==typeof e?e.decimal:void 0;return e=>{const r=new Intl.NumberFormat(t,{minimumFractionDigits:1,maximumFractionDigits:1}).format(1.1).replaceAll(/\d/g,""),i=Intl.NumberFormat(t,{notation:"compact"}).format(e);return n?i.replace(r,n):i}},bY=(e=yY.numberLocales["en-US"])=>({value:t},n,r,i)=>{if("string"==typeof t)return t;try{const a={style:"currency",currency:r,maximumFractionDigits:0},o=new Intl.NumberFormat(n,a).format(0);let s=2;"currency"!==i&&(s=Number.parseInt(i.split(".")[1].replace("f","")));const l=yn(e);return o.replace("0",l.format(`,.${s}f`)(t))}catch(n){return console.error("Error formatting currency: ",n),yn(e).format("$,.2f")(t)}},xY=()=>{let e;return t=>{const n=0===t.index||e!==t.label;return e=t.label,n?t.label:""}},EY=()=>{let e;return t=>{const n=t.label.split(" "),r=n[0],i=0===t.index||e!==r;return e=r,i?t.label:n[1]}},SY=(e=yY.numberLocales["en-US"])=>{const t=yn(e),n=t.format("02,d"),r=t.format(",d");return({value:e})=>{if("string"==typeof e)return e;const t=e<0?"-":"",i=Math.abs(e),a=n(Math.floor(i%60));return i<3600?`${t}${r(Math.floor(i/60))}:${a}`:`${t}${r(Math.floor(i/60/60))}:${n(Math.floor(i/60%60))}:${a}`}},AY=e=>(console.log(e),e),$Y=(e,t="bold",n=12)=>{const r=document.createElement("canvas").getContext("2d");return null===r?0:(r.font=`${t} ${n}px ${ie.ADOBE_CLEAN_FONT}`,r.measureText(e).width)},TY=(e,t,n="normal",r=12)=>{t-=4;const i=$Y(e,n,r),a=$Y("…",n,r);if(i<=t)return e;let o=e.slice(0,-1).trim();for(let e=o.length;e>0&&(o=o.slice(0,-1).trim(),!($Y(o,n,r)+a<=t));e--);return 0===o.length?e:o+"…"},OY={consoleLog:AY,formatHorizontalTimeAxisLabels:xY(),formatVerticalAxisTimeLabels:EY(),getLabelWidth:$Y,truncateText:TY},DY=(e,t)=>(null==e?void 0:e.length)?e.reduce(((e,t)=>MY(e,t)),t):t,MY=(e,t)=>{const n=Object.assign({},e);for(const[r,i]of Object.entries(t)){const t=e[r],a=null!==i&&"object"==typeof i&&!Array.isArray(i)&&!("signal"in i),o=null!==t&&"object"==typeof t&&!Array.isArray(t)&&!("signal"in t);n[r]=a&&o?MY(t,i):i}return n},wY=({locale:e="en-US",height:t=400,width:n=600,padding:r=0,renderer:i="svg",config:a,colorScheme:o=re.DEFAULT_COLOR_SCHEME})=>{const s=_Y(e),{number:l,time:u}=(0,yY.getLocale)(e);return{actions:!1,ast:!0,expressionFunctions:s,formatLocale:l,height:t,width:n,padding:r,renderer:i,timeFormatLocale:u,config:null!=a?a:pj(void 0,o)}}})(),o})()));
|
|
3
3
|
//# sourceMappingURL=index.js.map
|