File: //opt/textanalyse/web_console/node_modules/vega/build/vega-core.min.js
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-dsv"),require("topojson-client"),require("d3-array"),require("d3-format"),require("d3-time"),require("d3-time-format"),require("d3-shape"),require("d3-path"),require("d3-scale"),require("d3-interpolate"),require("d3-geo"),require("d3-color"),require("d3-force"),require("d3-hierarchy"),require("d3-delaunay"),require("d3-timer")):"function"==typeof define&&define.amd?define(["exports","d3-dsv","topojson-client","d3-array","d3-format","d3-time","d3-time-format","d3-shape","d3-path","d3-scale","d3-interpolate","d3-geo","d3-color","d3-force","d3-hierarchy","d3-delaunay","d3-timer"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).vega={},e.d3,e.topojson,e.d3,e.d3,e.d3,e.d3,e.d3,e.d3,e.d3,e.d3,e.d3,e.d3,e.d3,e.d3,e.d3,e.d3)}(this,(function(e,t,n,r,i,a,o,s,u,l,c,d,f,h,p,m,g){"use strict";function y(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var v=y(l),b=y(c);function x(e,t,n){return e.fields=t||[],e.fname=n,e}function _(e){return null==e?null:e.fname}function k(e){return null==e?null:e.fields}function A(e){return 1===e.length?w(e[0]):D(e)}const w=e=>function(t){return t[e]},D=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 C(e){const t=[],n=e.length;let r,i,a,o=null,s=0,u="";function l(){t.push(u+e.substring(r,i)),u="",r=i+1}for(e+="",r=i=0;i<n;++i)if(a=e[i],"\\"===a)u+=e.substring(r,i++),r=i;else if(a===o)l(),o=null,s=-1;else{if(o)continue;r===s&&'"'===a||r===s&&"'"===a?(r=i+1,o=a):"."!==a||s?"["===a?(i>r&&l(),s=r=i+1):"]"===a&&(s||E("Access path missing open bracket: "+e),s>0&&l(),s=0,r=i+1):i>r?l():r=i+1}return s&&E("Access path missing closing bracket: "+e),o&&E("Access path missing closing quote: "+e),i>r&&(i++,l()),t}function F(e,t,n){const r=C(e);return e=1===r.length?r[0]:e,x((n&&n.get||A)(r),[e],t||e)}const M=F("id"),S=x((e=>e),[],"identity"),B=x((()=>0),[],"zero"),O=x((()=>1),[],"one"),R=x((()=>!0),[],"true"),z=x((()=>!1),[],"false");function $(e,t,n){const r=[t].concat([].slice.call(n));console[e].apply(console,r)}const T=0,q=1,L=2,N=3,P=4;function U(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$,r=e||T;return{level(e){return arguments.length?(r=+e,this):r},error(){return r>=q&&n(t||"error","ERROR",arguments),this},warn(){return r>=L&&n(t||"warn","WARN",arguments),this},info(){return r>=N&&n(t||"log","INFO",arguments),this},debug(){return r>=P&&n(t||"log","DEBUG",arguments),this}}}var j=Array.isArray;function I(e){return e===Object(e)}const W=e=>"__proto__"!==e;function G(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce(((e,t)=>{for(const n in t)if("signals"===n)e.signals=V(e.signals,t.signals);else{const r="legend"===n?{layout:1}:"style"===n||null;H(e,n,t[n],r)}return e}),{})}function H(e,t,n,r){if(!W(t))return;let i,a;if(I(n)&&!j(n))for(i in a=I(e[t])?e[t]:e[t]={},n)r&&(!0===r||r[i])?H(a,i,n[i]):W(i)&&(a[i]=n[i]);else e[t]=n}function V(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 Y(e){return e[e.length-1]}function X(e){return null==e||""===e?null:+e}const J=e=>t=>e*Math.exp(t),Q=e=>t=>Math.log(e*t),K=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),Z=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,ee=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function te(e,t,n,r){const i=n(e[0]),a=n(Y(e)),o=(a-i)*t;return[r(i-o),r(a-o)]}function ne(e,t){return te(e,t,X,S)}function re(e,t){var n=Math.sign(e[0]);return te(e,t,Q(n),J(n))}function ie(e,t,n){return te(e,t,ee(n),ee(1/n))}function ae(e,t,n){return te(e,t,K(n),Z(n))}function oe(e,t,n,r,i){const a=r(e[0]),o=r(Y(e)),s=null!=t?r(t):(a+o)/2;return[i(s+(a-s)*n),i(s+(o-s)*n)]}function se(e,t,n){return oe(e,t,n,X,S)}function ue(e,t,n){const r=Math.sign(e[0]);return oe(e,t,n,Q(r),J(r))}function le(e,t,n,r){return oe(e,t,n,ee(r),ee(1/r))}function ce(e,t,n,r){return oe(e,t,n,K(r),Z(r))}function de(e){return 1+~~(new Date(e).getMonth()/3)}function fe(e){return 1+~~(new Date(e).getUTCMonth()/3)}function he(e){return null!=e?j(e)?e:[e]:[]}function pe(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]}function me(e){return"function"==typeof e}const ge="descending";function ye(e,t,n){n=n||{},t=he(t)||[];const r=[],i=[],a={},o=n.comparator||be;return he(e).forEach(((e,o)=>{null!=e&&(r.push(t[o]===ge?-1:1),i.push(e=me(e)?e:F(e,null,n)),(k(e)||[]).forEach((e=>a[e]=1)))})),0===i.length?null:x(o(i,r),Object.keys(a))}const ve=(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),be=(e,t)=>1===e.length?xe(e[0],t[0]):_e(e,t,e.length),xe=(e,t)=>function(n,r){return ve(e(n),e(r))*t},_e=(e,t,n)=>(t.push(0),function(r,i){let a,o=0,s=-1;for(;0===o&&++s<n;)a=e[s],o=ve(a(r),a(i));return o*t[s]});function ke(e){return me(e)?e:()=>e}function Ae(e,t){let n;return r=>{n&&clearTimeout(n),n=setTimeout((()=>(t(r),n=null)),e)}}function we(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 De(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 Ee(e,t){const n=e.length;let r,i,a,o,s,u=-1;if(null==t){for(;++u<n;)if(i=e[u],null!=i&&i>=i){r=a=i;break}if(u===n)return[-1,-1];for(o=s=u;++u<n;)i=e[u],null!=i&&(r>i&&(r=i,o=u),a<i&&(a=i,s=u))}else{for(;++u<n;)if(i=t(e[u],u,e),null!=i&&i>=i){r=a=i;break}if(u===n)return[-1,-1];for(o=s=u;++u<n;)i=t(e[u],u,e),null!=i&&(r>i&&(r=i,o=u),a<i&&(a=i,s=u))}return[o,s]}const Ce=Object.prototype.hasOwnProperty;function Fe(e,t){return Ce.call(e,t)}const Me={};function Se(e){let t,n={};function r(e){return Fe(n,e)&&n[e]!==Me}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]===Me&&--i.empty),n[e]=t,this},delete(e){return r(e)&&(--i.size,++i.empty,n[e]=Me),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===Me||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 Be(e,t,n,r,i,a){if(!n&&0!==n)return a;const o=+n;let s,u=e[0],l=Y(e);l<u&&(s=u,u=l,l=s),s=Math.abs(t-u);const c=Math.abs(l-t);return s<c&&s<=o?r:c<=o?i:a}function Oe(e,t,n){const r=e.prototype=Object.create(t.prototype);return Object.defineProperty(r,"constructor",{value:e,writable:!0,enumerable:!0,configurable:!0}),we(r,n)}function Re(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 ze(e){return"boolean"==typeof e}function $e(e){return"[object Date]"===Object.prototype.toString.call(e)}function Te(e){return e&&me(e[Symbol.iterator])}function qe(e){return"number"==typeof e}function Le(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function Ne(e){return"string"==typeof e}function Pe(e,t,n){e&&(e=t?he(e).map((e=>e.replace(/\\(.)/g,"$1"))):he(e));const r=e&&e.length,i=n&&n.get||A,a=e=>i(t?[e]:C(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 x(o,e,"key")}function Ue(e,t){const n=e[0],r=Y(e),i=+t;return i?1===i?r:n+i*(r-n):n}function je(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=>Fe(t,e)||Fe(n,e),get:e=>Fe(t,e)?t[e]:Fe(n,e)?a(e,n[e]):void 0,set:(e,n)=>Fe(t,e)?t[e]=n:a(e,n)}}function Ie(e,t,n,r){const i=t.length,a=n.length;if(!a)return t;if(!i)return n;const o=r||new t.constructor(i+a);let s=0,u=0,l=0;for(;s<i&&u<a;++l)o[l]=e(t[s],n[u])>0?n[u++]:t[s++];for(;s<i;++s,++l)o[l]=t[s];for(;u<a;++u,++l)o[l]=n[u];return o}function We(e,t){let n="";for(;--t>=0;)n+=e;return n}function Ge(e,t,n,r){const i=n||" ",a=e+"",o=t-a.length;return o<=0?a:"left"===r?We(i,o)+a:"center"===r?We(i,~~(o/2))+a+We(i,Math.ceil(o/2)):a+We(i,o)}function He(e){return e&&Y(e)-e[0]||0}function Ve(e){return j(e)?"["+e.map(Ve)+"]":I(e)||Ne(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function Ye(e){return null==e||""===e?null:!(!e||"false"===e||"0"===e)&&!!e}const Xe=e=>qe(e)||$e(e)?e:Date.parse(e);function Je(e,t){return t=t||Xe,null==e||""===e?null:t(e)}function Qe(e){return null==e||""===e?null:e+""}function Ke(e){const t={},n=e.length;for(let r=0;r<n;++r)t[e[r]]=!0;return t}function Ze(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}function et(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)}const tt="year",nt="quarter",rt="month",it="week",at="date",ot="day",st="dayofyear",ut="hours",lt="minutes",ct="seconds",dt="milliseconds",ft=[tt,nt,rt,it,at,ot,st,ut,lt,ct,dt],ht=ft.reduce(((e,t,n)=>(e[t]=1+n,e)),{});function pt(e){const t=he(e).slice(),n={};t.length||E("Missing time unit."),t.forEach((e=>{Fe(ht,e)?n[e]=1:E(`Invalid time unit: ${e}.`)}));return(n[it]||n[ot]?1:0)+(n[nt]||n[rt]||n[at]?1:0)+(n[st]?1:0)>1&&E(`Incompatible time units: ${e}`),t.sort(((e,t)=>ht[e]-ht[t])),t}const mt={[tt]:"%Y ",[nt]:"Q%q ",[rt]:"%b ",[at]:"%d ",[it]:"W%U ",[ot]:"%a ",[st]:"%j ",[ut]:"%H:00",[lt]:"00:%M",[ct]:":%S",[dt]:".%L",[`${tt}-${rt}`]:"%Y-%m ",[`${tt}-${rt}-${at}`]:"%Y-%m-%d ",[`${ut}-${lt}`]:"%H:%M"};function gt(e,t){const n=we({},mt,t),r=pt(e),i=r.length;let a,o,s="",u=0;for(u=0;u<i;)for(a=r.length;a>u;--a)if(o=r.slice(u,a).join("-"),null!=n[o]){s+=n[o],u=a;break}return s.trim()}const yt=new Date;function vt(e){return yt.setFullYear(e),yt.setMonth(0),yt.setDate(1),yt.setHours(0,0,0,0),yt}function bt(e){return _t(new Date(e))}function xt(e){return kt(new Date(e))}function _t(e){return a.timeDay.count(vt(e.getFullYear())-1,e)}function kt(e){return a.timeWeek.count(vt(e.getFullYear())-1,e)}function At(e){return vt(e).getDay()}function wt(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 Dt(e){return Ct(new Date(e))}function Et(e){return Ft(new Date(e))}function Ct(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return a.utcDay.count(t-1,e)}function Ft(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return a.utcWeek.count(t-1,e)}function Mt(e){return yt.setTime(Date.UTC(e,0,1)),yt.getUTCDay()}function St(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 Bt(e,t,n,r,i){const a=t||1,o=Y(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),u=new Date,l=Ke(e),c=l[tt]?s(tt):ke(2012),d=l[rt]?s(rt):l[nt]?s(nt):B,f=l[it]&&l[ot]?s(ot,1,it+ot):l[it]?s(it,1):l[ot]?s(ot,1):l[at]?s(at,1):l[st]?s(st,1):O,h=l[ut]?s(ut):B,p=l[lt]?s(lt):B,m=l[ct]?s(ct):B,g=l[dt]?s(dt):B;return function(e){u.setTime(+e);const t=c(u);return i(t,d(u),f(u,t),h(u),p(u),m(u),g(u))}}function Ot(e,t,n){return t+7*e-(n+6)%7}const Rt={[tt]:e=>e.getFullYear(),[nt]:e=>Math.floor(e.getMonth()/3),[rt]:e=>e.getMonth(),[at]:e=>e.getDate(),[ut]:e=>e.getHours(),[lt]:e=>e.getMinutes(),[ct]:e=>e.getSeconds(),[dt]:e=>e.getMilliseconds(),[st]:e=>_t(e),[it]:e=>kt(e),[it+ot]:(e,t)=>Ot(kt(e),e.getDay(),At(t)),[ot]:(e,t)=>Ot(1,e.getDay(),At(t))},zt={[nt]:e=>3*e,[it]:(e,t)=>Ot(e,0,At(t))};function $t(e,t){return Bt(e,t||1,Rt,zt,wt)}const Tt={[tt]:e=>e.getUTCFullYear(),[nt]:e=>Math.floor(e.getUTCMonth()/3),[rt]:e=>e.getUTCMonth(),[at]:e=>e.getUTCDate(),[ut]:e=>e.getUTCHours(),[lt]:e=>e.getUTCMinutes(),[ct]:e=>e.getUTCSeconds(),[dt]:e=>e.getUTCMilliseconds(),[st]:e=>Ct(e),[it]:e=>Ft(e),[ot]:(e,t)=>Ot(1,e.getUTCDay(),Mt(t)),[it+ot]:(e,t)=>Ot(Ft(e),e.getUTCDay(),Mt(t))},qt={[nt]:e=>3*e,[it]:(e,t)=>Ot(e,0,Mt(t))};function Lt(e,t){return Bt(e,t||1,Tt,qt,St)}const Nt={[tt]:a.timeYear,[nt]:a.timeMonth.every(3),[rt]:a.timeMonth,[it]:a.timeWeek,[at]:a.timeDay,[ot]:a.timeDay,[st]:a.timeDay,[ut]:a.timeHour,[lt]:a.timeMinute,[ct]:a.timeSecond,[dt]:a.timeMillisecond},Pt={[tt]:a.utcYear,[nt]:a.utcMonth.every(3),[rt]:a.utcMonth,[it]:a.utcWeek,[at]:a.utcDay,[ot]:a.utcDay,[st]:a.utcDay,[ut]:a.utcHour,[lt]:a.utcMinute,[ct]:a.utcSecond,[dt]:a.utcMillisecond};function Ut(e){return Nt[e]}function jt(e){return Pt[e]}function It(e,t,n){return e?e.offset(t,n):void 0}function Wt(e,t,n){return It(Ut(e),t,n)}function Gt(e,t,n){return It(jt(e),t,n)}function Ht(e,t,n,r){return e?e.range(t,n,r):void 0}function Vt(e,t,n,r){return Ht(Ut(e),t,n,r)}function Yt(e,t,n,r){return Ht(jt(e),t,n,r)}const Xt=1e3,Jt=6e4,Qt=36e5,Kt=864e5,Zt=2592e6,en=31536e6,tn=[tt,rt,at,ut,lt,ct,dt],nn=tn.slice(0,-1),rn=nn.slice(0,-1),an=rn.slice(0,-1),on=an.slice(0,-1),sn=[tt,rt],un=[tt],ln=[[nn,1,Xt],[nn,5,5e3],[nn,15,15e3],[nn,30,3e4],[rn,1,Jt],[rn,5,3e5],[rn,15,9e5],[rn,30,18e5],[an,1,Qt],[an,3,108e5],[an,6,216e5],[an,12,432e5],[on,1,Kt],[[tt,it],1,6048e5],[sn,1,Zt],[sn,3,7776e6],[un,1,en]];function cn(e){const t=e.extent,n=e.maxbins||40,i=Math.abs(He(t))/n;let a,o,s=r.bisector((e=>e[2])).right(ln,i);return s===ln.length?(a=un,o=r.tickStep(t[0]/en,t[1]/en,n)):s?(s=ln[i/ln[s-1][2]<ln[s][2]/i?s-1:s],a=s[0],o=s[1]):(a=tn,o=Math.max(r.tickStep(t[0],t[1],n),1)),{units:a,step:o}}function dn(e){const t={};return n=>t[n]||(t[n]=e(n))}function fn(e){const t=dn(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(e){const n=i.formatSpecifier(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),a=t(".1f")(1)[1],e=>{const t=r(e),n=t.indexOf(a);if(n<0)return t;let i=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=i<t.length?t.slice(i):"";for(;--i>n;)if("0"!==t[i]){++i;break}return t.slice(0,i)+o}}return t(n);var r,a},formatSpan(e,a,o,s){s=i.formatSpecifier(null==s?",f":s);const u=r.tickStep(e,a,o),l=Math.max(Math.abs(e),Math.abs(a));let c;if(null==s.precision)switch(s.type){case"s":return isNaN(c=i.precisionPrefix(u,l))||(s.precision=c),n(s,l);case"":case"e":case"g":case"p":case"r":isNaN(c=i.precisionRound(u,l))||(s.precision=c-("e"===s.type));break;case"f":case"%":isNaN(c=i.precisionFixed(u))||(s.precision=c-2*("%"===s.type))}return t(s)}}}let hn,pn;function mn(){return hn=fn({format:i.format,formatPrefix:i.formatPrefix})}function gn(e){return fn(i.formatLocale(e))}function yn(e){return arguments.length?hn=gn(e):hn}function vn(e,t,n){I(n=n||{})||E(`Invalid time multi-format specifier: ${n}`);const r=t(ct),i=t(lt),a=t(ut),o=t(at),s=t(it),u=t(rt),l=t(nt),c=t(tt),d=e(n[dt]||".%L"),f=e(n[ct]||":%S"),h=e(n[lt]||"%I:%M"),p=e(n[ut]||"%I %p"),m=e(n[at]||n[ot]||"%a %d"),g=e(n[it]||"%b %d"),y=e(n[rt]||"%B"),v=e(n[nt]||"%B"),b=e(n[tt]||"%Y");return e=>(r(e)<e?d:i(e)<e?f:a(e)<e?h:o(e)<e?p:u(e)<e?s(e)<e?m:g:c(e)<e?l(e)<e?y:v:b)(e)}function bn(e){const t=dn(e.format),n=dn(e.utcFormat);return{timeFormat:e=>Ne(e)?t(e):vn(t,Ut,e),utcFormat:e=>Ne(e)?n(e):vn(n,jt,e),timeParse:dn(e.parse),utcParse:dn(e.utcParse)}}function xn(){return pn=bn({format:o.timeFormat,parse:o.timeParse,utcFormat:o.utcFormat,utcParse:o.utcParse})}function _n(e){return bn(o.timeFormatLocale(e))}function kn(e){return arguments.length?pn=_n(e):pn}mn(),xn();const An=(e,t)=>we({},e,t);function wn(e,t){const n=e?gn(e):yn(),r=t?_n(t):kn();return An(n,r)}function Dn(e,t){const n=arguments.length;return n&&2!==n&&E("defaultLocale expects either zero or two arguments."),n?An(yn(e),kn(t)):An(yn(),kn())}const En=/^(data:|([A-Za-z]+:)?\/\/)/,Cn=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,Fn=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Mn="file://";async function Sn(e,t){const n=await this.sanitize(e,t),r=n.href;return n.localFile?this.file(r):this.http(r,t)}async function Bn(e,t){t=we({},this.options,t);const n=this.fileAccess,r={href:null};let i,a,o;const s=Cn.test(e.replace(Fn,""));null!=e&&"string"==typeof e&&s||E("Sanitize failure, invalid URI: "+Ve(e));const u=En.test(e);return(o=t.baseURL)&&!u&&(e.startsWith("/")||o.endsWith("/")||(e="/"+e),e=o+e),a=(i=e.startsWith(Mn))||"file"===t.mode||"http"!==t.mode&&!u&&n,i?e=e.slice(Mn.length):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}function On(e){return e?t=>new Promise(((n,r)=>{e.readFile(t,((e,t)=>{e?r(e):n(t)}))})):Rn}async function Rn(){E("No file system access.")}function zn(e){return e?async function(t,n){const r=we({},this.options.http,n),i=n&&n.response,a=await e(t,r);return a.ok?me(a[i])?a[i]():a.text():E(a.status+""+a.statusText)}:$n}async function $n(){E("No HTTP fetch method available.")}const Tn=e=>null!=e&&e==e,qn=e=>!(Number.isNaN(+e)||e instanceof Date),Ln={boolean:Ye,integer:X,number:X,date:Je,string:Qe,unknown:S},Nn=[e=>"true"===e||"false"===e||!0===e||!1===e,e=>qn(e)&&Number.isInteger(+e),qn,e=>!Number.isNaN(Date.parse(e))],Pn=["boolean","integer","number","date"];function Un(e,t){if(!e||!e.length)return"unknown";const n=e.length,r=Nn.length,i=Nn.map(((e,t)=>t+1));for(let a,o,s=0,u=0;s<n;++s)for(o=t?e[s][t]:e[s],a=0;a<r;++a)if(i[a]&&Tn(o)&&!Nn[a](o)&&(i[a]=0,++u,u===Nn.length))return"string";return Pn[i.reduce(((e,t)=>0===e?t:e),0)-1]}function jn(e,t){return t.reduce(((t,n)=>(t[n]=Un(e,n),t)),{})}function In(e){const t=function(t,n){const r={delimiter:e};return Wn(t,n?we(n,r):r)};return t.responseType="text",t}function Wn(e,n){return n.header&&(e=n.header.map(Ve).join(n.delimiter)+"\n"+e),t.dsvFormat(n.delimiter).parse(e+"")}function Gn(e,t){const n=t&&t.property?F(t.property):S;return!I(e)||(r=e,"function"==typeof Buffer&&me(Buffer.isBuffer)&&Buffer.isBuffer(r))?n(JSON.parse(e)):function(e,t){!j(e)&&Te(e)&&(e=[...e]);return t&&t.copy?JSON.parse(JSON.stringify(e)):e}(n(e),t);var r}Wn.responseType="text",Gn.responseType="json";const Hn={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function Vn(e,t){let r,i,a,o;return e=Gn(e,t),t&&t.feature?(r=n.feature,a=t.feature):t&&t.mesh?(r=n.mesh,a=t.mesh,o=Hn[t.filter]):E("Missing TopoJSON feature or mesh parameter."),i=(i=e.objects[a])?r(e,i,o):E("Invalid TopoJSON object: "+a),i&&i.features||[i]}Vn.responseType="json";const Yn={dsv:Wn,csv:In(","),tsv:In("\t"),json:Gn,topojson:Vn};function Xn(e,t){return arguments.length>1?(Yn[e]=t,this):Fe(Yn,e)?Yn[e]:null}function Jn(e){const t=Xn(e);return t&&t.responseType||"text"}function Qn(e,t,n,r){const i=Xn((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=kn();n=n||i.timeParse,r=r||i.utcParse;let a,o,s,u,l,c,d=e.columns||Object.keys(e[0]);"auto"===t&&(t=jn(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:"))){a=i.split(/:(.+)?/,2),o=a[1],("'"===o[0]&&"'"===o[o.length-1]||'"'===o[0]&&'"'===o[o.length-1])&&(o=o.slice(1,-1));return("utc"===a[0]?r:n)(o)}if(!Ln[i])throw Error("Illegal format pattern: "+e+":"+i);return Ln[i]}));for(s=0,l=e.length,c=d.length;s<l;++s)for(a=e[s],u=0;u<c;++u)o=d[u],a[o]=f[u](a[o])}(e,t.parse,n,r),Fe(e,"columns")&&delete e.columns,e}const Kn=function(e,t){return n=>({options:n||{},sanitize:Bn,load:Sn,fileAccess:!!t,file:On(t),http:zn(e)})}("undefined"!=typeof fetch&&fetch,null);function Zn(e){const t=e||S,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 er(e,t){try{await t(e)}catch(t){e.error(t)}}const tr=Symbol("vega_id");let nr=1;function rr(e){return!(!e||!ir(e))}function ir(e){return e[tr]}function ar(e,t){return e[tr]=t,e}function or(e){const t=e===Object(e)?e:{data:e};return ir(t)?t:ar(t,nr++)}function sr(e){return ur(e,or({}))}function ur(e,t){for(const n in e)t[n]=e[n];return t}function lr(e,t){return ar(t,ir(e))}function cr(e,t){return e?t?(n,r)=>e(n,r)||ir(t(n))-ir(t(r)):(t,n)=>e(t,n)||ir(t)-ir(n):null}function dr(e){return e&&e.constructor===fr}function fr(){const e=[],t=[],n=[],r=[],i=[];let a=null,o=!1;return{constructor:fr,insert(t){const n=he(t),r=n.length;for(let t=0;t<r;++t)e.push(n[t]);return this},remove(e){const n=me(e)?r:t,i=he(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:ke(r)};return me(e)?(a.filter=e,i.push(a)):(a.tuple=e,n.push(a)),this},encode(e,t){return me(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,u){const l={},c={};let d,f,h,p,m,g;for(d=0,f=u.length;d<f;++d)l[ir(u[d])]=1;for(d=0,f=t.length;d<f;++d)m=t[d],l[ir(m)]=-1;for(d=0,f=r.length;d<f;++d)p=r[d],u.forEach((e=>{p(e)&&(l[ir(e)]=-1)}));for(d=0,f=e.length;d<f;++d)m=e[d],g=ir(m),l[g]?l[g]=1:s.add.push(or(e[d]));for(d=0,f=u.length;d<f;++d)m=u[d],l[ir(m)]<0&&s.rem.push(m);function y(e,t,n){n?e[t]=n(e):s.encode=t,o||(c[ir(e)]=e)}for(d=0,f=n.length;d<f;++d)h=n[d],m=h.tuple,p=h.field,g=l[ir(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,u.forEach((e=>{p(e)&&l[ir(e)]>0&&y(e,h.field,h.value)})),s.modifies(h.field);if(o)s.mod=t.length||r.length?u.filter((e=>l[ir(e)]>0)):u.slice();else for(g in c)s.mod.push(c[g]);return(a||null==a&&(t.length||r.length))&&s.clean(!0),s}}}const hr="_:mod:_";function pr(){Object.defineProperty(this,hr,{writable:!0,value:{}})}pr.prototype={set(e,t,n,r){const i=this,a=i[e],o=i[hr];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]=j(n)?1+n.length:-1),i},modified(e,t){const n=this[hr];if(!arguments.length){for(const e in n)if(n[e])return!0;return!1}if(j(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[hr]={},this}};let mr=0;const gr=new pr;function yr(e,t,n,r){this.id=++mr,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 vr(e){return function(t){const n=this.flags;return 0===arguments.length?!!(n&e):(this.flags=t?n|e:n&~e,this)}}yr.prototype={targets(){return this._targets||(this._targets=Zn(M))},set(e){return this.value!==e?(this.value=e,1):0},skip:vr(1),modified:vr(2),parameters(e,t,n){t=!1!==t;const r=this._argval=this._argval||new pr,i=this._argops=this._argops||[],a=[];let o,s,u,l;const c=(e,n,o)=>{o instanceof yr?(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)he(s).forEach((e=>{e instanceof yr?e!==this&&(e.targets().add(this),a.push(e)):E("Pulse parameters must be operator instances.")})),this.source=s;else if(j(s))for(r.set(o,-1,Array(u=s.length)),l=0;l<u;++l)c(o,l,s[l]);else c(o,-1,s);return this.marshall().clear(),n&&(i.initonly=!0),a},marshall(e){const t=this._argval||gr,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 br=0;function xr(e,t,n){this.id=++br,this.value=null,n&&(this.receive=n),e&&(this._filter=e),t&&(this._apply=t)}function _r(e,t,n){return new xr(e,t,n)}xr.prototype={_filter:R,_apply:S,targets(){return this._targets||(this._targets=Zn(M))},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=_r(e);return this.targets().add(t),t},apply(e){const t=_r(null,e);return this.targets().add(t),t},merge(){const e=_r();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=_r();return this.targets().add(_r(null,null,Ae(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(_r(null,null,(()=>n=!0))),t.targets().add(_r(null,null,(()=>n=!1))),this.filter((()=>n))},detach(){this._filter=R,this._targets=null}};const kr={skip:!0};function Ar(e,t,n,r,i,a){const o=we({},a,kr);let s,u;me(n)||(n=ke(n)),void 0===r?s=t=>e.touch(n(t)):me(r)?(u=new yr(null,r,i,!1),s=t=>{u.evaluate(t);const r=n(t),i=u.value;dr(i)?e.pulse(r,i,a):e.update(r,i,o)}):s=t=>e.update(n(t),r,o),t.apply(s)}function wr(e,t,n,r,i,a){if(void 0===r)t.targets().add(n);else{const o=a||{},s=new yr(null,function(e,t){return t=me(t)?t:ke(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 Dr={};function Er(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 Cr(e,t){const n=[];return et(e,t,(e=>n.push(e))),n}function Fr(e,t){const n={};return e.visit(t,(e=>{n[ir(e)]=1})),e=>n[ir(e)]?null:e}function Mr(e,t){return e?(n,r)=>e(n,r)&&t(n,r):t}function Sr(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 Br(e){return e.error("Dataflow already running. Use runAsync() to chain invocations."),e}Er.prototype={StopPropagation:Dr,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 Er(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 Er(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,Fr(this,1))),this},clean(e){return arguments.length?(this.cleans=!!e,this):this.cleans},modifies(e){const t=this.fields||(this.fields={});return j(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?j(e)?e.some((e=>n[e])):n[e]:!!n)},filter(e,t){const n=this;return 1&e&&(n.addF=Mr(n.addF,t)),2&e&&(n.remF=Mr(n.remF,t)),4&e&&(n.modF=Mr(n.modF,t)),16&e&&(n.srcF=Mr(n.srcF,t)),n},materialize(e){const t=this;return 1&(e=e||7)&&t.addF&&(t.add=Cr(t.add,t.addF),t.addF=null),2&e&&t.remF&&(t.rem=Cr(t.rem,t.remF),t.remF=null),4&e&&t.modF&&(t.mod=Cr(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 et(n.source,n.srcF,r),n;1&e&&et(n.add,n.addF,r),2&e&&et(n.rem,n.remF,r),4&e&&et(n.mod,n.modF,r);const i=n.source;if(8&e&&i){const e=n.add.length+n.mod.length;e===i.length||et(i,e?Fr(n,5):n.srcF,r)}return n}},Oe(Sr,Er,{fork(e){const t=new Er(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?j(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 Or={skip:!1,force:!1};function Rr(e){let t=[];return{clear:()=>t=[],size:()=>t.length,peek:()=>t[0],push:n=>(t.push(n),zr(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,zr(e,r,t,n)}(t,0,e)):r=n,r}}}function zr(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 $r(){this.logger(U()),this.logLevel(q),this._clock=0,this._rank=0,this._locale=Dn();try{this._loader=Kn()}catch(e){}this._touched=Zn(M),this._input={},this._pulse=null,this._heap=Rr(((e,t)=>e.qrank-t.qrank)),this._postrun=[]}function Tr(e){return function(){return this._log[e].apply(this,arguments)}}function qr(e,t){yr.call(this,e,null,t)}$r.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:Tr("error"),warn:Tr("warn"),info:Tr("info"),debug:Tr("debug"),logLevel:Tr("level"),cleanThreshold:1e4,add:function(e,t,n,r){let i,a=1;return e instanceof yr?i=e:e&&e.prototype instanceof yr?i=new e:me(e)?i=new yr(null,e):(a=0,i=new yr(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||Or);const r=new Er(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||Or;return this._pulse?this._enqueue(e):this._touched.add(e),n.skip&&e.skip(!0),this},update:function(e,t,n){const r=n||Or;return(e.set(t)||r.force)&&this.touch(e,r),this},changeset:fr,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 Qn(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(R).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:Jn(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=_r(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):he(e);const u=s.length;for(let e=0;e<u;++e)s[e].addEventListener(t,o);return a},on:function(e,t,n,r,i){return(e instanceof yr?wr:Ar)(this,e,t,n,r,i),this},evaluate:async function(e,t,n){const r=this,i=[];if(r._pulse)return Br(r);if(r._pending&&await r._pending,t&&await er(r,t),!r._touched.length)return r.debug("Dataflow invoked, but nothing to do."),r;const a=++r._clock;r._pulse=new Er(r,a,e),r._touched.forEach((e=>r._enqueue(e,!0))),r._touched=Zn(M);let o,s,u,l=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=Dr),s!==Dr&&o._targets&&o._targets.forEach((e=>r._enqueue(e))),++l):r._enqueue(o,!0)}catch(e){r._heap.clear(),u=e}if(r._input={},r._pulse=null,r.debug(`Pulse ${a}: ${l} operators`),u&&(r._postrun=[],r.error(u)),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 er(r,e[t].callback)}return n&&await er(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?Br(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&&j(n)?new Sr(this,r,n.map((e=>e.pulse)),t):this._input[e.id]||function(e,t){if(t&&t.stamp===e.stamp)return t;e=e.fork(),t&&t!==Dr&&(e.source=t.source);return e}(this._pulse,n&&n.pulse)}},Oe(qr,yr,{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 Lr={};function Nr(e){const t=Pr(e);return t&&t.Definition||null}function Pr(e){return e=e&&e.toLowerCase(),Fe(Lr,e)?Lr[e]:null}function*Ur(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 jr(e,t,n){const i=Float64Array.from(Ur(e,n));return i.sort(r.ascending),t.map((e=>r.quantileSorted(i,e)))}function Ir(e,t){return jr(e,[.25,.5,.75],t)}function Wr(e,t){const n=e.length,i=r.deviation(e,t),a=Ir(e,t),o=(a[2]-a[0])/1.34;return 1.06*(Math.min(i,o)||i||Math.abs(a[0])||1)*Math.pow(n,-.2)}function Gr(e){const t=e.maxbins||20,n=e.base||10,r=Math.log(n),i=e.divide||[5,2];let a,o,s,u,l,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(u=h/t,l=0,c=e.steps.length;l<c&&e.steps[l]<u;++l);a=e.steps[Math.max(0,l-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(l=0,c=i.length;l<c;++l)u=a/i[l],u>=s&&h/u<=t&&(a=u)}u=Math.log(a);const p=u>=0?0:1+~~(-u/r),m=Math.pow(n,-p-1);return(e.nice||void 0===e.nice)&&(u=Math.floor(d/a+m)*a,d=d<u?u-a:u,f=Math.ceil(f/a)*a),{start:d,stop:f===d?d+a:f,step:a}}function Hr(t,n,i,a){if(!t.length)return[void 0,void 0];const o=Float64Array.from(Ur(t,a)),s=o.length,u=n;let l,c,d,f;for(d=0,f=Array(u);d<u;++d){for(l=0,c=0;c<s;++c)l+=o[~~(e.random()*s)];f[d]=l/s}return f.sort(r.ascending),[r.quantile(f,i/2),r.quantile(f,1-i/2)]}function Vr(e,t,n,r){r=r||(e=>e);const i=e.length,a=new Float64Array(i);let o,s=0,u=1,l=r(e[0]),c=l,d=l+t;for(;u<i;++u){if(o=r(e[u]),o>=d){for(c=(l+c)/2;s<u;++s)a[s]=c;d=o+t,l=o}c=o}for(c=(l+c)/2;s<u;++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}e.random=Math.random;const Yr=Math.sqrt(2*Math.PI),Xr=Math.SQRT2;let Jr=NaN;function Qr(t,n){t=t||0,n=null==n?1:n;let r,i,a=0,o=0;if(Jr==Jr)a=Jr,Jr=NaN;else{do{a=2*e.random()-1,o=2*e.random()-1,r=a*a+o*o}while(0===r||r>1);i=Math.sqrt(-2*Math.log(r)/r),a*=i,Jr=o*i}return t+a*n}function Kr(e,t,n){const r=(e-(t||0))/(n=null==n?1:n);return Math.exp(-.5*r*r)/(n*Yr)}function Zr(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 ei(e,t,n){return e<0||e>1?NaN:(t||0)+(null==n?1:n)*Xr*function(e){let t,n=-Math.log((1-e)*(1+e));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;return t*e}(2*e-1)}function ti(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:()=>Qr(n,r),pdf:e=>Kr(e,n,r),cdf:e=>Zr(e,n,r),icdf:e=>ei(e,n,r)};return i.mean(e).stdev(t)}function ni(t,n){const r=ti();let i=0;const a={data(e){return arguments.length?(t=e,i=e?e.length:0,a.bandwidth(n)):t},bandwidth(e){return arguments.length?(!(n=e)&&t&&(n=Wr(t)),a):n},sample:()=>t[~~(e.random()*i)]+n*r.sample(),pdf(e){let a=0,o=0;for(;o<i;++o)a+=r.pdf((e-t[o])/n);return a/n/i},cdf(e){let a=0,o=0;for(;o<i;++o)a+=r.cdf((e-t[o])/n);return a/i},icdf(){throw Error("KDE icdf not supported.")}};return a.data(t)}function ri(e,t){return e=e||0,t=null==t?1:t,Math.exp(e+Qr()*t)}function ii(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*Yr*e)}function ai(e,t,n){return Zr(Math.log(e),t,n)}function oi(e,t,n){return Math.exp(ei(e,t,n))}function si(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:()=>ri(n,r),pdf:e=>ii(e,n,r),cdf:e=>ai(e,n,r),icdf:e=>oi(e,n,r)};return i.mean(e).stdev(t)}function ui(t,n){let r,i=0;const a={weights(e){return arguments.length?(r=function(e){const t=[];let n,r=0;for(n=0;n<i;++n)r+=t[n]=null==e[n]?1:+e[n];for(n=0;n<i;++n)t[n]/=r;return t}(n=e||[]),a):n},distributions(e){return arguments.length?(e?(i=e.length,t=e):(i=0,t=[]),a.weights(n)):t},sample(){const n=e.random();let a=t[i-1],o=r[0],s=0;for(;s<i-1;o+=r[++s])if(n<o){a=t[s];break}return a.sample()},pdf(e){let n=0,a=0;for(;a<i;++a)n+=r[a]*t[a].pdf(e);return n},cdf(e){let n=0,a=0;for(;a<i;++a)n+=r[a]*t[a].cdf(e);return n},icdf(){throw Error("Mixture icdf not supported.")}};return a.distributions(t).weights(n)}function li(t,n){return null==n&&(n=null==t?1:t,t=0),t+(n-t)*e.random()}function ci(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=t&&e<=n?1/(n-t):0}function di(e,t,n){return null==n&&(n=null==t?1:t,t=0),e<t?0:e>n?1:(e-t)/(n-t)}function fi(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=0&&e<=1?t+e*(n-t):NaN}function hi(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:()=>li(n,r),pdf:e=>ci(e,n,r),cdf:e=>di(e,n,r),icdf:e=>fi(e,n,r)};return null==t&&(t=null==e?1:e,e=0),i.min(e).max(t)}function pi(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 mi(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 gi(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,u,l,c=0,d=0,f=0;for(l of e)a[c]=s=+t(l),o[c]=u=+n(l),++c,d+=(s-d)/c,f+=(u-f)/c;for(c=0;c<i;++c)a[c]-=d,o[c]-=f;return[a,o,d,f]}function yi(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 vi(e,t,n,r,i){let a=0,o=0;return yi(e,t,n,((e,t)=>{const n=t-i(e),s=t-r;a+=n*n,o+=s*s})),1-a/o}function bi(e,t,n){let r=0,i=0,a=0,o=0,s=0;yi(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 u=mi(r,i,a,o),l=e=>u[0]+u[1]*e;return{coef:u,predict:l,rSquared:vi(e,t,n,i,l)}}function xi(e,t,n){let r=0,i=0,a=0,o=0,s=0;yi(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 u=mi(r,i,a,o),l=e=>u[0]+u[1]*Math.log(e);return{coef:u,predict:l,rSquared:vi(e,t,n,i,l)}}function _i(e,t,n){const[r,i,a,o]=gi(e,t,n);let s,u,l,c=0,d=0,f=0,h=0,p=0;yi(e,t,n,((e,t)=>{s=r[p++],u=Math.log(t),l=s*t,c+=(t*u-c)/p,d+=(l-d)/p,f+=(l*u-f)/p,h+=(s*l-h)/p}));const[m,g]=mi(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:vi(e,t,n,o,y)}}function ki(e,t,n){let r=0,i=0,a=0,o=0,s=0,u=0;yi(e,t,n,((e,t)=>{const n=Math.log(e),l=Math.log(t);++u,r+=(n-r)/u,i+=(l-i)/u,a+=(n*l-a)/u,o+=(n*n-o)/u,s+=(t-s)/u}));const l=mi(r,i,a,o),c=e=>l[0]*Math.pow(e,l[1]);return l[0]=Math.exp(l[0]),{coef:l,predict:c,rSquared:vi(e,t,n,s,c)}}function Ai(e,t,n){const[r,i,a,o]=gi(e,t,n),s=r.length;let u,l,c,d,f=0,h=0,p=0,m=0,g=0;for(u=0;u<s;)l=r[u],c=i[u++],d=l*l,f+=(d-f)/u,h+=(d*l-h)/u,p+=(d*d-p)/u,m+=(l*c-m)/u,g+=(d*c-g)/u;const y=p-f*f,v=f*y-h*h,b=(g*f-m*h)/v,x=(m*y-g*h)/v,_=-b*f,k=e=>b*(e-=a)*e+x*e+_+o;return{coef:[_-x*a+b*a*a+o,x-2*b*a,b],predict:k,rSquared:vi(e,t,n,o,k)}}function wi(e,t,n,r){if(0===r)return pi(e,t,n);if(1===r)return bi(e,t,n);if(2===r)return Ai(e,t,n);const[i,a,o,s]=gi(e,t,n),u=i.length,l=[],c=[],d=r+1;let f,h,p,m,g;for(f=0;f<d;++f){for(p=0,m=0;p<u;++p)m+=Math.pow(i[p],f)*a[p];for(l.push(m),g=new Float64Array(d),h=0;h<d;++h){for(p=0,m=0;p<u;++p)m+=Math.pow(i[p],f+h);g[h]=m}c.push(g)}c.push(l);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),v=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:Di(d,y,-o,s),predict:v,rSquared:vi(e,t,n,s,v)}}function Di(e,t,n,r){const i=Array(e);let a,o,s,u;for(a=0;a<e;++a)i[a]=0;for(a=e-1;a>=0;--a)for(s=t[a],u=1,i[a]+=s,o=1;o<=a;++o)u*=(a+1-o)/o,i[a-o]+=s*Math.pow(n,o)*u;return i[0]+=r,i}function Ei(e,t,n,i){const[a,o,s,u]=gi(e,t,n,!0),l=a.length,c=Math.max(2,~~(i*l)),d=new Float64Array(l),f=new Float64Array(l),h=new Float64Array(l).fill(1);for(let e=-1;++e<=2;){const t=[0,c-1];for(let e=0;e<l;++e){const n=a[e],r=t[0],i=t[1],s=n-a[r]>a[i]-n?r:i;let u=0,l=0,c=0,p=0,m=0;const g=1/Math.abs(a[s]-n||1);for(let e=r;e<=i;++e){const t=a[e],r=o[e],i=Ci(Math.abs(n-t)*g)*h[e],s=t*i;u+=i,l+=s,c+=r*i,p+=r*s,m+=t*s}const[y,v]=mi(l/u,c/u,p/u,m/u);d[e]=y+v*n,f[e]=Math.abs(o[e]-d[e]),Fi(a,e+1,t)}if(2===e)break;const n=r.median(f);if(Math.abs(n)<1e-12)break;for(let e,t,r=0;r<l;++r)e=f[r]/(6*n),h[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,u=0,l=[];for(;s<i;++s)o=e[s]+n,l[0]===o?l[1]+=(t[s]-l[1])/++u:(u=0,l[1]+=r,l=[o,t[s]],a.push(l));return l[1]+=r,a}(a,d,s,u)}function Ci(e){return(e=1-e*e*e)*e*e}function Fi(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 Mi=.5*Math.PI/180;function Si(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,u=s/r,l=[i(a)],c=[];if(n===r){for(let e=1;e<r;++e)l.push(i(a+e/n*s));return l.push(i(o)),l}c.push(i(o));for(let e=n;--e>0;)c.push(i(a+e/n*s));let d=l[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]>=u&&Bi(d,e,f,h,p)>Mi?c.push(e):(d=f,l.push(f),c.pop()),f=c[c.length-1]}return l}function Bi(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 Oi(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 Ri(e,t,n){return n||e+(t?"_"+t:"")}const zi=()=>{},$i={init:zi,add:zi,rem:zi,idx:0},Ti={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}},qi=Object.keys(Ti).filter((e=>"__count__"!==e));function Li(e,t,n){return Ti[e](n,t)}function Ni(e,t){return e.idx-t.idx}function Pi(){this.valid=0,this.missing=0,this._ops.forEach((e=>null==e.aggregate_param?e.init(this):e.init(this,e.aggregate_param)))}function Ui(e,t){null!=e&&""!==e?e==e&&(++this.valid,this._ops.forEach((n=>n.add(this,e,t)))):++this.missing}function ji(e,t){null!=e&&""!==e?e==e&&(--this.valid,this._ops.forEach((n=>n.rem(this,e,t)))):--this.missing}function Ii(e){return this._out.forEach((t=>e[t.out]=t.value(this))),e}function Wi(e,t){const n=t||S,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]=Ti[e]())}))};return e.forEach(n),Object.values(t).sort(Ni)}(e),i=e.slice().sort(Ni);function a(e){this._ops=r,this._out=i,this.cell=e,this.init()}return a.prototype.init=Pi,a.prototype.add=Ui,a.prototype.rem=ji,a.prototype.set=Ii,a.prototype.get=n,a.fields=e.map((e=>e.out)),a}function Gi(e){this._key=e?F(e):ir,this.reset()}[...qi,"__count__"].forEach((e=>{Ti[e]=function(e,t){return(n,r)=>we({name:e,aggregate_param:r,out:n||e},$i,t)}(e,Ti[e])}));const Hi=Gi.prototype;function Vi(e){qr.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}Hi.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},Hi.add=function(e){this._add.push(e)},Hi.rem=function(e){this._rem.push(e)},Hi.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,u,l;for(s=0;s<i;++s)o[n(t[s])]=1;for(s=0,u=0;s<r;++s)o[n(l=e[s])]?o[n(l)]=0:a[u++]=l;return this._rem=[],this._add=a},Hi.distinct=function(e){const t=this.values(),n={};let r,i=t.length,a=0;for(;--i>=0;)r=e(t[i])+"",Fe(n,r)||(n[r]=1,++a);return a},Hi.extent=function(e){if(this._get!==e||!this._ext){const t=this.values(),n=Ee(t,e);this._ext=[t[n[0]],t[n[1]]],this._get=e}return this._ext},Hi.argmin=function(e){return this.extent(e)[0]||{}},Hi.argmax=function(e){return this.extent(e)[1]||{}},Hi.min=function(e){const t=this.extent(e)[0];return null!=t?e(t):void 0},Hi.max=function(e){const t=this.extent(e)[1];return null!=t?e(t):void 0},Hi.quartile=function(e){return this._get===e&&this._q||(this._q=Ir(this.values(),e),this._get=e),this._q},Hi.q1=function(e){return this.quartile(e)[0]},Hi.q2=function(e){return this.quartile(e)[1]},Hi.q3=function(e){return this.quartile(e)[2]},Hi.ci=function(e){return this._get===e&&this._ci||(this._ci=Hr(this.values(),1e3,.05,e),this._get=e),this._ci},Hi.ci0=function(e){return this.ci(e)[0]},Hi.ci1=function(e){return this.ci(e)[1]},Vi.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:qi},{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"}]},Oe(Vi,qr,{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,u){const l=n[u],c=r[u++];for(const n in c){const r=o?o+"|"+n:n;s[l]=c[n],u<i?a(r,s,u):t[r]||e.cell(r,s)}}("",{},0)},init(e){const t=this._inputs=[],n=this._outputs=[],r={};function i(e){const n=he(k(e)),i=n.length;let a,o=0;for(;o<i;++o)r[a=n[o]]||(r[a]=1,t.push(a))}this._dims=he(e.groupby),this._dnames=this._dims.map((e=>{const t=_(e);return i(e),n.push(t),t})),this.cellkey=e.key?e.key:Oi(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const a=e.fields||[null],o=e.ops||["count"],s=e.aggregate_params||[null],u=e.as||[],l=a.length,c={};let d,f,h,p,m,g,y;for(l!==o.length&&E("Unmatched number of fields and aggregate ops."),y=0;y<l;++y)d=a[y],f=o[y],h=s[y]||null,null==d&&"count"!==f&&E("Null aggregate field specified."),m=_(d),g=Ri(f,m,u[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(Li(f,h,g))):this._counts.push(g);return this._measures=this._measures.map((e=>Wi(e,e.field))),Object.create(null)},cellkey:Oi(),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 Gi),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?lr(t.tuple,a):or(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 u,l,c,d;if(r)for(l in r)u=r[l],i&&!u.num||o.push(u.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)u=n[c],(0===u.num&&i?o:s).push(this.celltuple(u)),n[c]=null;return this._alen=this._mlen=0,this._prev=null,e}});function Yi(e){qr.call(this,null,e)}function Xi(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?Ie(e,i,a.sort(e)):i.concat(a),a=[]),i)}}function Ji(e){qr.call(this,[],e)}function Qi(e){yr.call(this,null,Ki,e)}function Ki(e){return this.value&&!e.modified()?this.value:ye(e.fields,e.orders)}function Zi(e){qr.call(this,null,e)}function ea(e){qr.call(this,null,e)}Yi.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"]}]},Oe(Yi,qr,{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],u=o[1];let l;return l=e.modified()?(t=t.reflow(!0)).SOURCE:t.modified(k(e.field))?t.ADD_MOD:t.ADD,t.visit(l,n?e=>{const t=r(e);e[s]=t,e[u]=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=Gr(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 u=function(e){let n=X(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 u.start=o,u.stop=n.stop,u.step=r,this.value=x(u,k(t),e.name||"bin_"+_(t))}}),Ji.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},Oe(Ji,qr,{transform(e,t){const n=t.fork(t.ALL),r=Xi(ir,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(cr(i),a),t.source&&t.source.root&&(this.value.root=t.source.root),n}}),Oe(Qi,yr),Zi.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"]}]},Oe(Zi,qr,{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)||[],u=0,l=i.length;u<l;++u)o.test(r=i[u])||t(r)},r=this._parameterCheck(e,t),i=this._counts,a=this._match,o=this._stop,s=e.field,u=e.as||["text","count"],l=n((e=>i[e]=1+(i[e]||0))),c=n((e=>i[e]-=1));return r?t.visit(t.SOURCE,l):(t.visit(t.ADD,l),t.visit(t.REM,c)),this._finish(t,u)},_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,u,l;for(s in n)u=r[s],l=n[s]||0,!u&&l?(r[s]=u=or({}),u[i]=s,u[a]=l,o.add.push(u)):0===l?(u&&o.rem.push(u),n[s]=null,r[s]=null):u[a]!==l&&(u[a]=l,o.mod.push(u));return o.modifies(t)}}),ea.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},Oe(ea,qr,{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={},u=e.length,l=0;l<u;++l)for(s[t]=a=e[l],i=0;i<u;++i)s[n]=e[i],r(s)&&(o.push(or(s)),(s={})[t]=a);return o}(s,i,a,e.filter||R)):n.mod=s,n.source=this.value,n.modifies(r)}});const ta={kde:ni,mixture:ui,normal:ti,lognormal:si,uniform:hi},na="function";function ra(e,t){const n=e[na];Fe(ta,n)||E("Unknown distribution function: "+n);const r=ta[n]();for(const n in e)"field"===n?r.data((e.from||t()).map(e[n])):"distributions"===n?r[n](e[n].map((e=>ra(e,t)))):typeof r[n]===na&&r[n](e[n]);return r}function ia(e){qr.call(this,null,e)}const aa=[{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}]}],oa={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:aa},{name:"weights",type:"number",array:!0}]};function sa(e,t){return e?e.map(((e,n)=>t[n]||_(e))):null}function ua(e,t,n){const r=[],i=e=>e(u);let a,o,s,u,l,c;if(null==t)r.push(e.map(n));else for(a={},o=0,s=e.length;o<s;++o)u=e[o],l=t.map(i),c=a[l],c||(a[l]=c=[],c.dims=l,r.push(c)),c.push(n(u));return r}ia.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:aa.concat(oa)},{name:"as",type:"string",array:!0,default:["value","density"]}]},Oe(ia,qr,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const r=ra(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"],u=Si(o,e.extent||De(r.data()),i,a).map((e=>{const t={};return t[s[0]]=e[0],t[s[1]]=e[1],or(t)}));this.value&&(n.rem=this.value),this.value=n.add=n.source=u}return n}});function la(e){qr.call(this,null,e)}la.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"}]};function ca(e){yr.call(this,null,da,e),this.modified(!0)}function da(e){const t=e.expr;return this.value&&!e.modified("expr")?this.value:x((n=>t(n,e)),k(t),_(t))}function fa(e){qr.call(this,[void 0,void 0],e)}function ha(e,t){yr.call(this,e),this.parent=t,this.count=0}function pa(e){qr.call(this,{},e),this._keys=Se();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 ma(e){yr.call(this,null,ga,e)}function ga(e){return this.value&&!e.modified()?this.value:j(e.name)?he(e.name).map((e=>F(e))):F(e.name,e.as)}function ya(e){qr.call(this,Se(),e)}function va(e){qr.call(this,[],e)}function ba(e){qr.call(this,[],e)}function xa(e){qr.call(this,null,e)}function _a(e){qr.call(this,[],e)}Oe(la,qr,{transform(e,t){if(this.value&&!e.modified()&&!t.changed())return t;const n=t.materialize(t.SOURCE).source,r=ua(t.source,e.groupby,S),i=e.smooth||!1,a=e.field,o=e.step||((e,t)=>He(De(e,t))/30)(n,a),s=cr(((e,t)=>a(e)-a(t))),u=e.as||"bin",l=r.length;let c,d=1/0,f=-1/0,h=0;for(;h<l;++h){const e=r[h].sort(s);c=-1;for(const t of Vr(e,o,i,a))t<d&&(d=t),t>f&&(f=t),e[++c][u]=t}return this.value={start:d,stop:f,step:o},t.reflow(!0).modifies(u)}}),Oe(ca,yr),fa.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},Oe(fa,qr,{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=X(r(e));null!=t&&(t<a&&(a=t),t>o&&(o=t))})),!Number.isFinite(a)||!Number.isFinite(o)){let e=_(r);e&&(e=` for field "${e}"`),t.dataflow.warn(`Infinite extent${e}: [${a}, ${o}]`),a=o=void 0}this.value=[a,o]}}),Oe(ha,yr,{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}}),Oe(pa,qr,{activate(e){this._targets[this._targets.active++]=e},subflow(e,t,n,r){const i=this.value;let a,o,s=Fe(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 ha(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=ir(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(ir(e),t),s(t).add(e)})),o||t.modified(r.fields)?t.visit(t.MOD,(e=>{const t=ir(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(ir(e))).mod(e)})),o&&t.visit(t.REFLOW,(e=>{const t=ir(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}}),Oe(ma,yr),ya.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},Oe(ya,qr,{transform(e,t){const n=t.dataflow,r=this.value,i=t.fork(),a=i.add,o=i.rem,s=i.mod,u=e.expr;let l=!0;function c(t){const n=ir(t),i=u(t,e),c=r.get(n);i&&c?(r.delete(n),a.push(t)):i||c?l&&i&&!c&&s.push(t):(r.set(n,1),o.push(t))}return t.visit(t.REM,(e=>{const t=ir(e);r.has(t)?r.delete(t):o.push(e)})),t.visit(t.ADD,(t=>{u(t,e)?a.push(t):r.set(ir(t),1)})),t.visit(t.MOD,c),e.modified()&&(l=!1,t.visit(t.REFLOW,c)),r.empty>n.cleanThreshold&&n.runAfter(r.clean),i}}),va.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}]},Oe(va,qr,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.fields,i=sa(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 u,l,c,d=0;for(;d<s;++d){for(l=sr(e),u=0;u<o;++u)l[i[u]]=null==(c=t[u][d])?null:c;a&&(l[a]=d),n.add.push(l)}})),this.value=n.source=n.add,a&&n.modifies(a),n.modifies(i)}}),ba.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"]}]},Oe(ba,qr,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.fields,i=r.map(_),a=e.as||["key","value"],o=a[0],s=a[1],u=r.length;return n.rem=this.value,t.visit(t.SOURCE,(e=>{for(let t,a=0;a<u;++a)t=sr(e),t[o]=i[a],t[s]=r[a](e),n.add.push(t)})),this.value=n.source=n.add,n.modifies(a)}}),xa.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},Oe(xa,qr,{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)))}}),Oe(_a,qr,{transform(e,t){const n=t.fork(t.ALL),r=e.generator;let i,a,o,s=this.value,u=e.size-s.length;if(u>0){for(i=[];--u>=0;)i.push(o=or(r(e))),s.push(o);n.add=n.add.length?n.materialize(n.ADD).add.concat(i):i}else a=s.slice(0,-u),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(a):a,s=s.slice(-u);return n.source=this.value=s,n}});const ka={value:"value",median:r.median,mean:r.mean,min:r.min,max:r.max},Aa=[];function wa(e){qr.call(this,[],e)}function Da(e){Vi.call(this,e)}function Ea(e){qr.call(this,null,e)}function Ca(e){yr.call(this,null,Fa,e)}function Fa(e){return this.value&&!e.modified()?this.value:Pe(e.fields,e.flat)}function Ma(e){qr.call(this,[],e),this._pending=null}function Sa(e,t,n){n.forEach(or);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 Ba(e){qr.call(this,{},e)}function Oa(e){yr.call(this,null,Ra,e)}function Ra(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 za(e){yr.call(this,null,$a,e)}function $a(e){return this.value&&!e.modified()?this.value:e.values.reduce(((e,t)=>e.concat(t)),[])}function Ta(e){qr.call(this,null,e)}function qa(e){Vi.call(this,e)}function La(e){pa.call(this,e)}function Na(e){qr.call(this,null,e)}function Pa(e){qr.call(this,null,e)}function Ua(e){qr.call(this,null,e)}wa.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}]},Oe(wa,qr,{transform(e,t){var n,r,i,a,o,s,u,l,c,d,f=t.fork(t.ALL),h=function(e){var t,n=e.method||ka.value;if(null!=ka[n])return n===ka.value?(t=void 0!==e.value?e.value:0,()=>t):ka[n];E("Unrecognized imputation method: "+n)}(e),p=function(e){const t=e.field;return e=>e?t(e):NaN}(e),m=_(e.field),g=_(e.key),y=(e.groupby||[]).map(_),v=function(e,t,n,r){var i,a,o,s,u,l,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)l=n(d=e[s]),u=m[l]||(m[l]=p.push(l)),(o=g[a=(i=t?t.map(f):Aa)+""])||(o=g[a]=[],h.push(o),o.values=i),o[u-1]=d;return h.domain=p,h}(t.source,e.groupby,e.key,e.keyvals),b=[],x=this.value,k=v.domain.length;for(o=0,l=v.length;o<l;++o)for(i=(n=v[o]).values,r=NaN,u=0;u<k;++u)if(null==n[u]){for(a=v.domain[u],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,b.push(or(d))}return b.length&&(f.add=f.materialize(f.ADD).add.concat(b)),x.length&&(f.rem=f.materialize(f.REM).rem.concat(x)),this.value=b,f}}),Da.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:qi},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]},Oe(Da,Vi,{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=>{we(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}}),Ea.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"]}]},Oe(Ea,qr,{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=ua(r,e.groupby,e.field),a=(e.groupby||[]).map(_),o=e.bandwidth,s=e.cumulative?"cdf":"pdf",u=e.as||["value","density"],l=[];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=De(r,e.field)),d=f=e.steps||f),i.forEach((t=>{const n=ni(t,o)[s],r=e.counts?t.length:1;Si(n,c||De(t),d,f).forEach((e=>{const n={};for(let e=0;e<a.length;++e)n[a[e]]=t.dims[e];n[u[0]]=e[0],n[u[1]]=e[1]*r,l.push(or(n))}))})),this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}}),Oe(Ca,yr),Oe(Ma,qr,{transform(e,t){const n=t.dataflow;if(this._pending)return Sa(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 Sa(this,t,n.parse(e.values,e.format));if(e.async){const t=n.request(e.url,e.format).then((e=>(this._pending=he(e.data),e=>e.touch(this))));return{async:t}}return n.request(e.url,e.format).then((e=>Sa(this,t,he(e.data))))}}),Ba.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}]},Oe(Ba,qr,{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 u,l,c,d=o?t.SOURCE:t.ADD,f=t,h=e.as;return i?(l=i.length,s>1&&!h&&E('Multi-field lookup requires explicit "as" parameter.'),h&&h.length!==s*l&&E('The "as" parameter has too few output field names.'),h=h||i.map(_),u=function(e){for(var t,o,u=0,c=0;u<s;++u)if(null==(o=r.get(n[u](e))))for(t=0;t<l;++t,++c)e[h[c]]=a;else for(t=0;t<l;++t,++c)e[h[c]]=i[t](o)}):(h||E("Missing output field names."),u=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,u),f.modifies(h)}}),Oe(Oa,yr),Oe(za,yr),Oe(Ta,qr,{transform(e,t){return this.modified(e.modified()),this.value=e,t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),qa.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:qi,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},Oe(qa,Vi,{_transform:Vi.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=k(n).concat(k(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(ve),t?i.slice(0,t):i}(n,e.limit||0,t);t.changed()&&e.set("__pivot__",null,null,!0);return{key:e.key,groupby:e.groupby,ops:o.map((()=>i)),fields:o.map((e=>function(e,t,n,r){return x((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)}}),Oe(La,pa,{transform(e,t){const n=e.subflow,r=e.field,i=e=>this.subflow(ir(e),n,t,e);return(e.modified("field")||r&&t.modified(k(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(or(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}}),Na.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},Oe(Na,qr,{transform(e,t){const n=t.fork(t.NO_SOURCE),r=e.fields,i=sa(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):ur;let o;return this.value?o=this.value:(t=t.addAll(),o=this.value={}),t.visit(t.REM,(e=>{const t=ir(e);n.rem.push(o[t]),o[t]=null})),t.visit(t.ADD,(e=>{const t=a(e,or({}));o[ir(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{n.mod.push(a(e,o[ir(e)]))})),n}}),Oe(Pa,qr,{transform(e,t){return this.value=e.value,e.modified("value")?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}}),Ua.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"]}]};function ja(e){qr.call(this,null,e)}function Ia(e){qr.call(this,[],e),this.count=0}function Wa(e){qr.call(this,null,e)}function Ga(e){qr.call(this,null,e),this.modified(!0)}function Ha(e){qr.call(this,null,e)}Oe(Ua,qr,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.as||["prob","value"];if(this.value&&!e.modified()&&!t.changed())return n.source=this.value,n;const a=ua(t.materialize(t.SOURCE).source,e.groupby,e.field),o=(e.groupby||[]).map(_),s=[],u=e.step||.01,l=e.probs||r.range(u/2,1-1e-14,u),c=l.length;return a.forEach((e=>{const t=jr(e,l);for(let n=0;n<c;++n){const r={};for(let t=0;t<o.length;++t)r[o[t]]=e.dims[t];r[i[0]]=l[n],r[i[1]]=t[n],s.push(or(r))}})),this.value&&(n.rem=this.value),this.value=n.add=n.source=s,n}}),Oe(ja,qr,{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=ir(e);n.rem.push(r[t]),r[t]=null})),t.visit(t.ADD,(e=>{const t=sr(e);r[ir(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{const t=r[ir(e)];for(const r in e)t[r]=e[r],n.modifies(r);n.mod.push(t)}))),n}}),Ia.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},Oe(Ia,qr,{transform(t,n){const r=n.fork(n.NO_SOURCE),i=t.modified("size"),a=t.size,o=this.value.reduce(((e,t)=>(e[ir(t)]=1,e)),{});let s=this.value,u=this.count,l=0;function c(t){let n,i;s.length<a?s.push(t):(i=~~((u+1)*e.random()),i<s.length&&i>=l&&(n=s[i],o[ir(n)]&&r.rem.push(n),s[i]=t)),++u}if(n.rem.length&&(n.visit(n.REM,(e=>{const t=ir(e);o[t]&&(o[t]=-1,r.rem.push(e)),--u})),s=s.filter((e=>-1!==o[ir(e)]))),(n.rem.length||i)&&s.length<a&&n.source&&(l=u=s.length,n.visit(n.SOURCE,(e=>{o[ir(e)]||c(e)})),l=-1),i&&s.length>a){const e=s.length-a;for(let t=0;t<e;++t)o[ir(s[t])]=-1,r.rem.push(s[t]);s=s.slice(e)}return n.mod.length&&n.visit(n.MOD,(e=>{o[ir(e)]&&r.mod.push(e)})),n.add.length&&n.visit(n.ADD,c),(n.add.length||l<0)&&(r.add=s.filter((e=>!o[ir(e)]))),this.count=u,this.value=r.source=s,r}}),Wa.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"}]},Oe(Wa,qr,{transform(e,t){if(this.value&&!e.modified())return;const n=t.materialize().fork(t.MOD),i=e.as||"data";return n.rem=this.value?t.rem.concat(this.value):t.rem,this.value=r.range(e.start,e.stop,e.step||1).map((e=>{const t={};return t[i]=e,or(t)})),n.add=t.add.concat(this.value),n}}),Oe(Ga,qr,{transform(e,t){return this.value=t.source,t.changed()?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});const Va=["unit0","unit1"];function Ya(e){qr.call(this,Se(),e)}function Xa(e){qr.call(this,null,e)}Ha.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:ft,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:Va}]},Oe(Ha,qr,{transform(e,t){const n=e.field,r=!1!==e.interval,i="utc"===e.timezone,a=this._floor(e,t),o=(i?jt:Ut)(a.unit).offset,s=e.as||Va,u=s[0],l=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(k(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[u]=null,r&&(e[l]=null)):(e[u]=i=s=a(t),r&&(e[l]=s=o(i,c)),i<d&&(d=i),s>f&&(f=s))})),a.start=d,a.stop=f,t.modifies(r?s:u)},_floor(e,t){const n="utc"===e.timezone,{units:r,step:i}=e.units?{units:e.units,step:e.step||1}:cn({extent:e.extent||De(t.materialize(t.SOURCE).source,e.field),maxbins:e.maxbins}),a=pt(r),o=this.value||{},s=(n?Lt:$t)(a,i);return s.unit=Y(a),s.units=a,s.step=i,s.start=o.start,s.stop=o.stop,this.value=s}}),Oe(Ya,qr,{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()}}),Oe(Xa,qr,{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(cr(e.sort)):t.source).map(e.field))}});const Ja={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=Ja.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=Ja.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])}}}};const Qa=Object.keys(Ja);function Ka(e){const t=he(e.ops),n=he(e.fields),r=he(e.params),i=he(e.aggregate_params),a=he(e.as),o=this.outputs=[],s=this.windows=[],u={},l={},c=[],d=[];let f=!0;function h(e){he(k(e)).forEach((e=>u[e]=1))}h(e.sort),t.forEach(((e,t)=>{const u=n[t],p=r[t],m=i[t]||null,g=_(u),y=Ri(e,g,a[t]);if(h(u),o.push(y),Fe(Ja,e))s.push(function(e,t,n,r){const i=Ja[e](t,n);return{init:i.init||B,update:function(e,t){t[r]=i.next(e)}}}(e,u,p,y));else{if(null==u&&"count"!==e&&E("Null aggregate field specified."),"count"===e)return void c.push(y);f=!1;let t=l[g];t||(t=l[g]=[],t.field=u,d.push(t)),t.push(Li(e,m,y))}})),(c.length||d.length)&&(this.cell=function(e,t,n){e=e.map((e=>Wi(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 Gi;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(u)}const Za=Ka.prototype;function eo(e){qr.call(this,{},e),this._mlen=0,this._mods=[]}function to(e,t,n,i){const a=i.sort,o=a&&!i.ignorePeers,s=i.frame||[null,0],u=e.data(n),l=u.length,c=o?r.bisector(a):null,d={i0:0,i1:0,p0:0,p1:0,index:0,data:u,compare:a||ke(-1)};t.init();for(let e=0;e<l;++e)no(d,s,e,l),o&&ro(d,c),t.update(d,u[e])}function no(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 ro(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]))}Za.init=function(){this.windows.forEach((e=>e.init())),this.cell&&this.cell.init()},Za.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)},eo.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Qa.concat(qi)},{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}]},Oe(eo,qr,{transform(e,t){this.stamp=t.stamp;const n=e.modified(),r=cr(e.sort),i=Oi(e.groupby),a=e=>this.group(i(e));let o=this.state;o&&!n||(o=this.state=new Ka(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)to(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]=Xi(ir),t.stamp=-1),t.stamp<this.stamp&&(t.stamp=this.stamp,this._mods[this._mlen++]=t),t}});var io=Object.freeze({__proto__:null,aggregate:Vi,bin:Yi,collect:Ji,compare:Qi,countpattern:Zi,cross:ea,density:ia,dotbin:la,expression:ca,extent:fa,facet:pa,field:ma,filter:ya,flatten:va,fold:ba,formula:xa,generate:_a,impute:wa,joinaggregate:Da,kde:Ea,key:Ca,load:Ma,lookup:Ba,multiextent:Oa,multivalues:za,params:Ta,pivot:qa,prefacet:La,project:Na,proxy:Pa,quantile:Ua,relay:ja,sample:Ia,sequence:Wa,sieve:Ga,subflow:ha,timeunit:Ha,tupleindex:Ya,values:Xa,window:eo});function ao(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}const oo=()=>"undefined"!=typeof Image?Image:null;function so(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}var uo=so("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),lo=so("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),co=so("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),fo=so("4269d0efb118ff725c6cc5b03ca951ff8ab7a463f297bbf59c6b4e9498a0"),ho=so("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),po=so("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),mo=so("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),go=so("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),yo=so("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),vo=so("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function bo(e,t,n){const r=e-t+2*n;return e?r>0?r:1:0}const xo="linear",_o="log",ko="pow",Ao="sqrt",wo="symlog",Do="time",Eo="utc",Co="sequential",Fo="diverging",Mo="quantile",So="quantize",Bo="threshold",Oo="ordinal",Ro="point",zo="band",$o="bin-ordinal",To="continuous",qo="discrete",Lo="discretizing",No="interpolating",Po="temporal";function Uo(){const e=l.scaleOrdinal().unknown(void 0),t=e.domain,n=e.range;let i,a,o=[0,1],s=!1,u=0,c=0,d=.5;function f(){const e=t().length,l=o[1]<o[0],f=o[1-l],h=bo(e,u,c);let p=o[l-0];i=(f-p)/(h||1),s&&(i=Math.floor(i)),p+=(f-p-i*(e-u))*d,a=i*(1-u),s&&(p=Math.round(p),a=Math.round(a));const m=r.range(e).map((e=>p+i*e));return n(l?m.reverse():m)}return delete e.unknown,e.domain=function(e){return arguments.length?(t(e),f()):t()},e.range=function(e){return arguments.length?(o=[+e[0],+e[1]],f()):o.slice()},e.rangeRound=function(e){return o=[+e[0],+e[1]],s=!0,f()},e.bandwidth=function(){return a},e.step=function(){return i},e.round=function(e){return arguments.length?(s=!!e,f()):s},e.padding=function(e){return arguments.length?(c=Math.max(0,Math.min(1,e)),u=c,f()):u},e.paddingInner=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),f()):u},e.paddingOuter=function(e){return arguments.length?(c=Math.max(0,Math.min(1,e)),f()):c},e.align=function(e){return arguments.length?(d=Math.max(0,Math.min(1,e)),f()):d},e.invertRange=function(e){if(null==e[0]||null==e[1])return;const i=o[1]<o[0],s=i?n().reverse():n(),u=s.length-1;let l,c,d,f=+e[0],h=+e[1];return f!=f||h!=h||(h<f&&(d=f,f=h,h=d),h<s[0]||f>o[1-i])?void 0:(l=Math.max(0,r.bisectRight(s,f)-1),c=f===h?l:r.bisectRight(s,h)-1,f-s[l]>a+1e-10&&++l,i&&(d=l,l=u-c,c=u-d),l>c?void 0:t().slice(l,c+1))},e.invert=function(t){const n=e.invertRange([t,t]);return n?n[0]:n},e.copy=function(){return Uo().domain(t()).range(o).round(s).paddingInner(u).paddingOuter(c).align(d)},f()}function jo(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return jo(t())},e}var Io=Array.prototype.map;const Wo=Array.prototype.slice;const Go=new Map,Ho=Symbol("vega_scale");function Vo(e){return e[Ho]=!0,e}function Yo(e,t,n){return arguments.length>1?(Go.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],u=t[1],l=-1;for(u<s&&(i=s,s=u,u=i),a=0,o=n.length;a<o;++a)n[a]>=s&&n[a]<=u&&(l<0&&(l=a),r=a);if(!(l<0))return s=e.invertExtent(n[l]),u=e.invertExtent(n[r]),[void 0===s[0]?s[1]:s[0],void 0===u[1]?u[0]:u[1]]}}(n):void 0),n.type=e,Vo(n)};return r.metadata=Ke(he(n)),r}(e,t,n)),this):Xo(e)?Go.get(e):void 0}function Xo(e){return Go.has(e)}function Jo(e,t){const n=Go.get(e);return n&&n.metadata[t]}function Qo(e){return Jo(e,To)}function Ko(e){return Jo(e,qo)}function Zo(e){return Jo(e,Lo)}function es(e){return Jo(e,_o)}function ts(e){return Jo(e,No)}function ns(e){return Jo(e,Mo)}Yo("identity",v.scaleIdentity),Yo(xo,v.scaleLinear,To),Yo(_o,v.scaleLog,[To,_o]),Yo(ko,v.scalePow,To),Yo(Ao,v.scaleSqrt,To),Yo(wo,v.scaleSymlog,To),Yo(Do,v.scaleTime,[To,Po]),Yo(Eo,v.scaleUtc,[To,Po]),Yo(Co,v.scaleSequential,[To,No]),Yo(`${Co}-${xo}`,v.scaleSequential,[To,No]),Yo(`${Co}-${_o}`,v.scaleSequentialLog,[To,No,_o]),Yo(`${Co}-${ko}`,v.scaleSequentialPow,[To,No]),Yo(`${Co}-${Ao}`,v.scaleSequentialSqrt,[To,No]),Yo(`${Co}-${wo}`,v.scaleSequentialSymlog,[To,No]),Yo(`${Fo}-${xo}`,v.scaleDiverging,[To,No]),Yo(`${Fo}-${_o}`,v.scaleDivergingLog,[To,No,_o]),Yo(`${Fo}-${ko}`,v.scaleDivergingPow,[To,No]),Yo(`${Fo}-${Ao}`,v.scaleDivergingSqrt,[To,No]),Yo(`${Fo}-${wo}`,v.scaleDivergingSymlog,[To,No]),Yo(Mo,v.scaleQuantile,[Lo,Mo]),Yo(So,v.scaleQuantize,Lo),Yo(Bo,v.scaleThreshold,Lo),Yo($o,(function e(){let t=[],n=[];function i(e){return null==e||e!=e?void 0:n[(r.bisect(t,e)-1)%n.length]}return i.domain=function(e){return arguments.length?(t=function(e){return Io.call(e,X)}(e),i):t.slice()},i.range=function(e){return arguments.length?(n=Wo.call(e),i):n.slice()},i.tickFormat=function(e,n){return l.tickFormat(t[0],Y(t),null==e?10:e,n)},i.copy=function(){return e().domain(i.domain()).range(i.range())},i}),[qo,Lo]),Yo(Oo,v.scaleOrdinal,qo),Yo(zo,Uo,qo),Yo(Ro,(function(){return jo(Uo().paddingInner(1))}),qo);const rs=["clamp","base","constant","exponent"];function is(e,t){const n=t[0],r=Y(t)-n;return function(t){return e(n+t*r)}}function as(e,t,n){return b.piecewise(us(t||"rgb",n),e)}function os(e,t){const n=new Array(t),r=t+1;for(let i=0;i<t;)n[i]=e(++i/r);return n}function ss(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=Yo(a)().domain([t,n]).range([0,1]),rs.forEach((t=>e[t]?o[t](e[t]()):0)),o):ke(.5)}function us(e,t){const n=b[function(e){return"interpolate"+e.toLowerCase().split("-").map((e=>e[0].toUpperCase()+e.slice(1))).join("")}(e)];return null!=t&&n&&n.gamma?n.gamma(t):n}function ls(e){if(j(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 cs(e,t){for(const n in e)fs(n,t(e[n]))}const ds={};function fs(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(ds[e]=t,this):ds[e]}cs({accent:lo,category10:uo,category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",dark2:co,observable10:fo,paired:ho,pastel1:po,pastel2:mo,set1:go,set2:yo,set3:vo,tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5"},ls),cs({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=>as(ls(e))));const hs="symbol",ps="discrete",ms=e=>j(e)?e.map((e=>String(e))):String(e),gs=(e,t)=>e[1]-t[1],ys=(e,t)=>t[1]-e[1];function vs(e,t,n){let r;return qe(t)&&(e.bins&&(t=Math.max(t,e.bins.length)),null!=n&&(t=Math.min(t,Math.floor(He(e.domain())/n||1)+1))),I(t)&&(r=t.step,t=t.interval),Ne(t)&&(t=e.type===Do?Ut(t):e.type==Eo?jt(t):E("Only time and utc scales accept interval strings."),r&&(t=t.every(r))),t}function bs(e,t,n){let r=e.range(),i=r[0],a=Y(r),o=gs;if(i>a&&(r=a,a=i,i=r,o=ys),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],Y(t)];for(;t.length>n&&t.length>=3;)t=t.filter(((e,t)=>!(t%2)));t.length<3&&(t=e)}return t}function xs(e,t){return e.bins?bs(e,e.bins,t):e.ticks?e.ticks(t):e.domain()}function _s(e,t,n,r,i,a){const o=t.type;let s=ms;if(o===Do||i===Do)s=e.timeFormat(r);else if(o===Eo||i===Eo)s=e.utcFormat(r);else if(es(o)){const i=e.formatFloat(r);if(a||t.bins)s=i;else{const e=ks(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 ks(e,t,n){const r=xs(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 As={[Mo]:"quantiles",[So]:"thresholds",[Bo]:"domain"},ws={[Mo]:"quantiles",[So]:"domain"};function Ds(e,t){return e.bins?function(e){const t=e.slice(0,-1);return t.max=Y(e),t}(e.bins):e.type===_o?ks(e,t,!0):As[e.type]?function(e){const t=[-1/0].concat(e);return t.max=1/0,t}(e[As[e.type]]()):xs(e,t)}const Es=e=>As[e.type]||e.bins;function Cs(e,t,n,r,i,a,o){const s=ws[t.type]&&a!==Do&&a!==Eo?function(e,t,n){const r=t[ws[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):_s(e,t,n,i,a,o);return r===hs&&Es(t)?Fs(s):r===ps?Ss(s):Bs(s)}const Fs=e=>(t,n,r)=>{const i=Ms(r[n+1],Ms(r.max,1/0)),a=Os(t,e),o=Os(i,e);return a&&o?a+" – "+o:o?"< "+o:"≥ "+a},Ms=(e,t)=>null!=e?e:t,Ss=e=>(t,n)=>n?e(t):null,Bs=e=>t=>e(t),Os=(e,t)=>Number.isFinite(e)?t(e):null;function Rs(e,t,n,r){const i=r||t.type;return Ne(n)&&function(e){return Jo(e,Po)}(i)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),n||i!==Do?n||i!==Eo?Cs(e,t,5,null,n,r,!0):e.utcFormat("%A, %d %B %Y, %X UTC"):e.timeFormat("%A, %d %B %Y, %X")}function zs(e,t,n){n=n||{};const r=Math.max(3,n.maxlen||7),i=Rs(e,t,n.format,n.formatType);if(Zo(t.type)){const e=Ds(t).slice(1).map(i),n=e.length;return`${n} boundar${1===n?"y":"ies"}: ${e.join(", ")}`}if(Ko(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(Y(e))}`}}let $s=0;const Ts="p_";function qs(e){return e&&e.gradient}function Ls(e,t,n){const r=e.gradient;let i=e.id,a="radial"===r?Ts:"";return i||(i=e.id="gradient_"+$s++,"radial"===r?(e.x1=Ns(e.x1,.5),e.y1=Ns(e.y1,.5),e.r1=Ns(e.r1,0),e.x2=Ns(e.x2,.5),e.y2=Ns(e.y2,.5),e.r2=Ns(e.r2,.5),a=Ts):(e.x1=Ns(e.x1,0),e.y1=Ns(e.y1,0),e.x2=Ns(e.x2,1),e.y2=Ns(e.y2,0))),t[i]=e,"url("+(n||"")+"#"+a+i+")"}function Ns(e,t){return null!=e?e:t}function Ps(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}}}const Us={basis:{curve:s.curveBasis},"basis-closed":{curve:s.curveBasisClosed},"basis-open":{curve:s.curveBasisOpen},bundle:{curve:s.curveBundle,tension:"beta",value:.85},cardinal:{curve:s.curveCardinal,tension:"tension",value:0},"cardinal-open":{curve:s.curveCardinalOpen,tension:"tension",value:0},"cardinal-closed":{curve:s.curveCardinalClosed,tension:"tension",value:0},"catmull-rom":{curve:s.curveCatmullRom,tension:"alpha",value:.5},"catmull-rom-closed":{curve:s.curveCatmullRomClosed,tension:"alpha",value:.5},"catmull-rom-open":{curve:s.curveCatmullRomOpen,tension:"alpha",value:.5},linear:{curve:s.curveLinear},"linear-closed":{curve:s.curveLinearClosed},monotone:{horizontal:s.curveMonotoneY,vertical:s.curveMonotoneX},natural:{curve:s.curveNatural},step:{curve:s.curveStep},"step-after":{curve:s.curveStepAfter},"step-before":{curve:s.curveStepBefore}};function js(e,t,n){var r=Fe(Us,e)&&Us[e],i=null;return r&&(i=r.curve||r[t||"vertical"],r.tension&&null!=n&&(i=i[r.tension](n))),i}const Is={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},Ws=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,Gs=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,Hs=/^((\s+,?\s*)|(,\s*))/,Vs=/^[01]/;function Ys(e){const t=[];return(e.match(Ws)||[]).forEach((e=>{let n=e[0];const r=n.toLowerCase(),i=Is[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?Gs:Vs,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(Hs);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 Xs=Math.PI/180,Js=Math.PI/2,Qs=2*Math.PI,Ks=Math.sqrt(3)/2;var Zs={},eu={},tu=[].join;function nu(e){const t=tu.call(e);if(eu[t])return eu[t];var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],s=e[5],u=e[6],l=e[7];const c=l*o,d=-u*s,f=u*o,h=l*s,p=Math.cos(i),m=Math.sin(i),g=Math.cos(a),y=Math.sin(a),v=.5*(a-i),b=Math.sin(.5*v),x=8/3*b*b/Math.sin(v),_=n+p-x*m,k=r+m+x*p,A=n+g,w=r+y,D=A+x*y,E=w-x*g;return eu[t]=[c*_+d*k,f*_+h*k,c*D+d*E,f*D+h*E,c*A+d*w,f*A+h*w]}const ru=["l",0,0,0,0,0,0,0];function iu(e,t,n){const r=ru[0]=e[0];if("a"===r||"A"===r)ru[1]=t*e[1],ru[2]=n*e[2],ru[3]=e[3],ru[4]=e[4],ru[5]=e[5],ru[6]=t*e[6],ru[7]=n*e[7];else if("h"===r||"H"===r)ru[1]=t*e[1];else if("v"===r||"V"===r)ru[1]=n*e[1];else for(var i=1,a=e.length;i<a;++i)ru[i]=(i%2==1?t:n)*e[i];return ru}function au(e,t,n,r,i,a){var o,s,u,l,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 v=0,b=t.length;v<b;++v){switch(o=t[v],1===i&&1===a||(o=iu(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],u=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,u+r),f=s,h=u;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],u=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,u+r),p=f+o[1],m=h+o[2],f=s,h=u;break;case"S":s=o[3],u=o[4],p=2*f-p,m=2*h-m,e.bezierCurveTo(p+n,m+r,o[1]+n,o[2]+r,s+n,u+r),f=s,h=u,p=o[1],m=o[2];break;case"q":s=f+o[3],u=h+o[4],p=f+o[1],m=h+o[2],e.quadraticCurveTo(p+n,m+r,s+n,u+r),f=s,h=u;break;case"Q":s=o[3],u=o[4],e.quadraticCurveTo(o[1]+n,o[2]+r,s+n,u+r),f=s,h=u,p=o[1],m=o[2];break;case"t":s=f+o[1],u=h+o[2],null===d[0].match(/[QqTt]/)?(p=f,m=h):"t"===d[0]?(p=2*f-l,m=2*h-c):"q"===d[0]&&(p=2*f-p,m=2*h-m),l=p,c=m,e.quadraticCurveTo(p+n,m+r,s+n,u+r),h=u,p=(f=s)+o[1],m=h+o[2];break;case"T":s=o[1],u=o[2],p=2*f-p,m=2*h-m,e.quadraticCurveTo(p+n,m+r,s+n,u+r),f=s,h=u;break;case"a":ou(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":ou(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 ou(e,t,n,r){const i=function(e,t,n,r,i,a,o,s,u){const l=tu.call(arguments);if(Zs[l])return Zs[l];const c=o*Xs,d=Math.sin(c),f=Math.cos(c),h=f*(s-e)*.5+d*(u-t)*.5,p=f*(u-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,v=-d/r,b=f/r,x=g*s+y*u,_=v*s+b*u,k=g*e+y*t,A=v*e+b*t;let w=1/((k-x)*(k-x)+(A-_)*(A-_))-.25;w<0&&(w=0);let D=Math.sqrt(w);a==i&&(D=-D);const E=.5*(x+k)-D*(A-_),C=.5*(_+A)+D*(k-x),F=Math.atan2(_-C,x-E);let M=Math.atan2(A-C,k-E)-F;M<0&&1===a?M+=Qs:M>0&&0===a&&(M-=Qs);const S=Math.ceil(Math.abs(M/(Js+.001))),B=[];for(let e=0;e<S;++e){const t=F+e*M/S,i=F+(e+1)*M/S;B[e]=[E,C,t,i,n,r,d,f]}return Zs[l]=B}(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=nu(i[t]);e.bezierCurveTo(n[0],n[1],n[2],n[3],n[4],n[5])}}const su=.5773502691896257,uu={circle:{draw:function(e,t){const n=Math.sqrt(t)/2;e.moveTo(n,0),e.arc(0,0,n,0,Qs)}},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=Ks*n,i=r-n*su,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=Ks*n,i=r-n*su;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=Ks*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=Ks*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=Ks*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=Ks*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)}}};function lu(e){return Fe(uu,e)?uu[e]:function(e){if(!Fe(cu,e)){const t=Ys(e);cu[e]={draw:function(e,n){au(e,t,0,0,Math.sqrt(n)/2)}}}return cu[e]}(e)}var cu={};const du=.448084975506;function fu(e){return e.x}function hu(e){return e.y}function pu(e){return e.width}function mu(e){return e.height}function gu(e){return"function"==typeof e?e:()=>+e}function yu(e,t,n){return Math.max(t,Math.min(e,n))}function vu(){var e=fu,t=hu,n=pu,r=mu,i=gu(0),a=i,o=i,s=i,l=null;function c(c,d,f){var h,p=null!=d?d:+e.call(this,c),m=null!=f?f:+t.call(this,c),g=+n.call(this,c),y=+r.call(this,c),v=Math.min(g,y)/2,b=yu(+i.call(this,c),0,v),x=yu(+a.call(this,c),0,v),_=yu(+o.call(this,c),0,v),k=yu(+s.call(this,c),0,v);if(l||(l=h=u.path()),b<=0&&x<=0&&_<=0&&k<=0)l.rect(p,m,g,y);else{var A=p+g,w=m+y;l.moveTo(p+b,m),l.lineTo(A-x,m),l.bezierCurveTo(A-du*x,m,A,m+du*x,A,m+x),l.lineTo(A,w-k),l.bezierCurveTo(A,w-du*k,A-du*k,w,A-k,w),l.lineTo(p+_,w),l.bezierCurveTo(p+du*_,w,p,w-du*_,p,w-_),l.lineTo(p,m+b),l.bezierCurveTo(p,m+du*b,p+du*b,m,p+b,m),l.closePath()}if(h)return l=null,h+""||null}return c.x=function(t){return arguments.length?(e=gu(t),c):e},c.y=function(e){return arguments.length?(t=gu(e),c):t},c.width=function(e){return arguments.length?(n=gu(e),c):n},c.height=function(e){return arguments.length?(r=gu(e),c):r},c.cornerRadius=function(e,t,n,r){return arguments.length?(i=gu(e),a=null!=t?gu(t):i,s=null!=n?gu(n):i,o=null!=r?gu(r):a,c):i},c.context=function(e){return arguments.length?(l=null==e?null:e,c):l},c}function bu(){var e,t,n,r,i,a,o,s,l=null;function c(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,Qs);l.closePath()}else i=1;a=e,o=t,s=r}function d(a){var o,s,d,f=a.length,h=!1;for(null==l&&(l=d=u.path()),o=0;o<=f;++o)!(o<f&&r(s=a[o],o,a))===h&&(h=!h)&&(i=0),h&&c(+e(s,o,a),+t(s,o,a),+n(s,o,a));if(d)return l=null,d+""||null}return d.x=function(t){return arguments.length?(e=t,d):e},d.y=function(e){return arguments.length?(t=e,d):t},d.size=function(e){return arguments.length?(n=e,d):n},d.defined=function(e){return arguments.length?(r=e,d):r},d.context=function(e){return arguments.length?(l=null==e?null:e,d):l},d}function xu(e,t){return null!=e?e:t}const _u=e=>e.x||0,ku=e=>e.y||0,Au=e=>!(!1===e.defined),wu=s.arc().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)),Du=s.area().x(_u).y1(ku).y0((e=>(e.y||0)+(e.height||0))).defined(Au),Eu=s.area().y(ku).x1(_u).x0((e=>(e.x||0)+(e.width||0))).defined(Au),Cu=s.line().x(_u).y(ku).defined(Au),Fu=vu().x(_u).y(ku).width((e=>e.width||0)).height((e=>e.height||0)).cornerRadius((e=>xu(e.cornerRadiusTopLeft,e.cornerRadius)||0),(e=>xu(e.cornerRadiusTopRight,e.cornerRadius)||0),(e=>xu(e.cornerRadiusBottomRight,e.cornerRadius)||0),(e=>xu(e.cornerRadiusBottomLeft,e.cornerRadius)||0)),Mu=s.symbol().type((e=>lu(e.shape||"circle"))).size((e=>xu(e.size,64))),Su=bu().x(_u).y(ku).defined(Au).size((e=>e.size||1));function Bu(e){return e.cornerRadius||e.cornerRadiusTopLeft||e.cornerRadiusTopRight||e.cornerRadiusBottomRight||e.cornerRadiusBottomLeft}function Ou(e,t,n,r){return Fu.context(e)(t,n,r)}var Ru=1;function zu(){Ru=1}function $u(e,t,n){var r=t.clip,i=e._defs,a=t.clip_id||(t.clip_id="clip"+Ru++),o=i.clipping[a]||(i.clipping[a]={id:a});return me(r)?o.path=r(null):Bu(n)?o.path=Ou(null,n,0,0):(o.width=n.width||0,o.height=n.height||0),"url(#"+a+")"}function Tu(e){this.clear(),e&&this.union(e)}function qu(e){this.mark=e,this.bounds=this.bounds||new Tu}function Lu(e){qu.call(this,e),this.items=this.items||[]}Tu.prototype={clone(){return new Tu(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),u=Math.sin(e),l=t-t*s+n*u,c=n-t*u-n*s;return[s*r-u*i+l,u*r+s*i+c,s*r-u*o+l,u*r+s*o+c,s*a-u*i+l,u*a+s*i+c,s*a-u*o+l,u*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}},Oe(Lu,qu);class Nu{constructor(e){this._pending=0,this._loader=e||Kn()}pending(){return this._pending}sanitizeURL(e){const t=this;return Pu(t),t._loader.sanitize(e,{context:"href"}).then((e=>(Uu(t),e))).catch((()=>(Uu(t),null)))}loadImage(e){const t=this,n=oo();return Pu(t),t._loader.sanitize(e,{context:"image"}).then((e=>{const r=e.href;if(!r||!n)throw{url:r};const i=new n,a=Fe(e,"crossOrigin")?e.crossOrigin:"anonymous";return null!=a&&(i.crossOrigin=a),i.onload=()=>Uu(t),i.onerror=()=>Uu(t),i.src=r,i})).catch((e=>(Uu(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 Pu(e){e._pending+=1}function Uu(e){e._pending-=1}function ju(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 Iu=Qs-1e-8;let Wu,Gu,Hu,Vu,Yu,Xu,Ju,Qu;const Ku=(e,t)=>Wu.add(e,t),Zu=(e,t)=>Ku(Gu=e,Hu=t),el=e=>Ku(e,Wu.y1),tl=e=>Ku(Wu.x1,e),nl=(e,t)=>Yu*e+Ju*t,rl=(e,t)=>Xu*e+Qu*t,il=(e,t)=>Ku(nl(e,t),rl(e,t)),al=(e,t)=>Zu(nl(e,t),rl(e,t));function ol(e,t){return Wu=e,t?(Vu=t*Xs,Yu=Qu=Math.cos(Vu),Xu=Math.sin(Vu),Ju=-Xu):(Yu=Qu=1,Vu=Xu=Ju=0),sl}const sl={beginPath(){},closePath(){},moveTo:al,lineTo:al,rect(e,t,n,r){Vu?(il(e+n,t),il(e+n,t+r),il(e,t+r),al(e,t)):(Ku(e+n,t+r),Zu(e,t))},quadraticCurveTo(e,t,n,r){const i=nl(e,t),a=rl(e,t),o=nl(n,r),s=rl(n,r);ul(Gu,i,o,el),ul(Hu,a,s,tl),Zu(o,s)},bezierCurveTo(e,t,n,r,i,a){const o=nl(e,t),s=rl(e,t),u=nl(n,r),l=rl(n,r),c=nl(i,a),d=rl(i,a);ll(Gu,o,u,c,el),ll(Hu,s,l,d,tl),Zu(c,d)},arc(e,t,n,r,i,a){if(r+=Vu,i+=Vu,Gu=n*Math.cos(i)+e,Hu=n*Math.sin(i)+t,Math.abs(i-r)>Iu)Ku(e-n,t-n),Ku(e+n,t+n);else{const o=r=>Ku(n*Math.cos(r)+e,n*Math.sin(r)+t);let s,u;if(o(r),o(i),i!==r)if((r%=Qs)<0&&(r+=Qs),(i%=Qs)<0&&(i+=Qs),i<r&&(a=!a,s=r,r=i,i=s),a)for(i-=Qs,s=r-r%Js,u=0;u<4&&s>i;++u,s-=Js)o(s);else for(s=r-r%Js+Js,u=0;u<4&&s<i;++u,s+=Js)o(s)}}};function ul(e,t,n,r){const i=(e-t)/(e+n-2*t);0<i&&i<1&&r(e+(t-e)*i)}function ll(e,t,n,r,i){const a=r-e+3*t-3*n,o=e+n-2*t,s=e-t;let u,l=0,c=0;Math.abs(a)>1e-14?(u=o*o+s*a,u>=0&&(u=Math.sqrt(u),l=(-o+u)/a,c=(-o-u)/a)):l=.5*s/o,0<l&&l<1&&i(cl(l,e,t,n,r)),0<c&&c<1&&i(cl(c,e,t,n,r))}function cl(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 dl=(dl=ao(1,1))?dl.getContext("2d"):null;const fl=new Tu;function hl(e){return function(t,n){if(!dl)return!0;e(dl,t),fl.clear().union(t.bounds).intersect(n).round();const{x1:r,y1:i,x2:a,y2:o}=fl;for(let e=i;e<=o;++e)for(let t=r;t<=a;++t)if(dl.isPointInPath(t,e))return!0;return!1}}function pl(e,t){return t.contains(e.x||0,e.y||0)}function ml(e,t){const n=e.x||0,r=e.y||0,i=e.width||0,a=e.height||0;return t.intersects(fl.set(n,r,n+i,r+a))}function gl(e,t){const n=e.x||0,r=e.y||0;return yl(t,n,r,null!=e.x2?e.x2:n,null!=e.y2?e.y2:r)}function yl(e,t,n,r,i){const{x1:a,y1:o,x2:s,y2:u}=e,l=r-t,c=i-n;let d,f,h,p,m=0,g=1;for(p=0;p<4;++p){if(0===p&&(d=-l,f=-(a-t)),1===p&&(d=l,f=s-t),2===p&&(d=-c,f=-(o-n)),3===p&&(d=c,f=u-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 vl(e,t){e.globalCompositeOperation=t.blend||"source-over"}function bl(e,t){return null==e?t:e}function xl(e,t){const n=t.length;for(let r=0;r<n;++r)e.addColorStop(t[r].offset,t[r].color);return e}function _l(e,t,n){return qs(n)?function(e,t,n){const r=n.width(),i=n.height();let a;if("radial"===t.gradient)a=e.createRadialGradient(n.x1+bl(t.x1,.5)*r,n.y1+bl(t.y1,.5)*i,Math.max(r,i)*bl(t.r1,0),n.x1+bl(t.x2,.5)*r,n.y1+bl(t.y2,.5)*i,Math.max(r,i)*bl(t.r2,.5));else{const o=bl(t.x1,0),s=bl(t.y1,0),u=bl(t.x2,1),l=bl(t.y2,0);if(o!==u&&s!==l&&r!==i){const n=ao(Math.ceil(r),Math.ceil(i)),a=n.getContext("2d");return a.scale(r,i),a.fillStyle=xl(a.createLinearGradient(o,s,u,l),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+u*r,n.y1+l*i)}return xl(a,t.stops)}(e,n,t.bounds):n}function kl(e,t,n){return(n*=null==t.fillOpacity?1:t.fillOpacity)>0&&(e.globalAlpha=n,e.fillStyle=_l(e,t,t.fill),!0)}var Al=[];function wl(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=_l(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||Al),e.lineDashOffset=t.strokeDashOffset||0),!0))}function Dl(e,t){return e.zindex-t.zindex||e.index-t.index}function El(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(Dl)}function Cl(e,t){var n,r,i=e.items;if(!i||!i.length)return;const a=El(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 Fl(e,t){var n,r,i=e.items;if(!i||!i.length)return null;const a=El(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 Ml(e){return function(t,n,r){Cl(n,(n=>{r&&!r.intersects(n.bounds)||Bl(e,t,n,n)}))}}function Sl(e){return function(t,n,r){!n.items.length||r&&!r.intersects(n.bounds)||Bl(e,t,n.items[0],n.items)}}function Bl(e,t,n,r){var i=null==n.opacity?1:n.opacity;0!==i&&(e(t,r)||(vl(t,n),n.fill&&kl(t,n,i)&&t.fill(),n.stroke&&wl(t,n,i)&&t.stroke()))}function Ol(e){return e=e||R,function(t,n,r,i,a,o){return r*=t.pixelRatio,i*=t.pixelRatio,Fl(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 Rl(e,t){return function(n,r,i,a){var o,s,u=Array.isArray(r)?r[0]:r,l=null==t?u.fill:t,c=u.stroke&&n.isPointInStroke;return c&&(o=u.strokeWidth,s=u.strokeCap,n.lineWidth=null!=o?o:1,n.lineCap=null!=s?s:"butt"),!e(n,r)&&(l&&n.isPointInPath(i,a)||c&&n.isPointInStroke(i,a))}}function zl(e){return Ol(Rl(e))}function $l(e,t){return"translate("+e+","+t+")"}function Tl(e){return"rotate("+e+")"}function ql(e){return $l(e.x||0,e.y||0)}function Ll(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*=Xs),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 $l(e.x||0,e.y||0)+(e.angle?" "+Tl(e.angle):"")}(n)),e("d",t(null,n))},bound:function(e,n){return t(ol(e,n.angle),n),ju(e,n).translate(n.x||0,n.y||0)},draw:Ml(r),pick:zl(r),isect:n||hl(r)}}var Nl=Ll("arc",(function(e,t){return wu.context(e)(t)}));function Pl(e,t,n){function r(e,n){e.beginPath(),t(e,n)}const i=Rl(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(ol(e),r),ju(e,r[0]))},draw:Sl(r),pick:function(e,t,n,r,a,o){var s=t.items,u=t.bounds;return!s||!s.length||u&&!u.contains(a,o)?null:(n*=e.pixelRatio,r*=e.pixelRatio,i(e,s,n,r)?s[0]:null)},isect:pl,tip:n}}var Ul=Pl("area",(function(e,t){const n=t[0],r=n.interpolate||"linear";return("horizontal"===n.orient?Eu:Du).curve(js(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 jl(e,t){e.beginPath(),Bu(t)?Ou(e,t,0,0):e.rect(0,0,t.width||0,t.height||0),e.clip()}function Il(e){const t=bl(e.strokeWidth,1);return null!=e.strokeOffset?e.strokeOffset:e.stroke&&t>.5&&t<1.5?.5-Math.abs(t-1):0}function Wl(e,t){const n=Il(t);e("d",Ou(null,t,n,n))}function Gl(e,t,n,r){const i=Il(t);e.beginPath(),Ou(e,t,(n||0)+i,(r||0)+i)}const Hl=Rl(Gl),Vl=Rl(Gl,!1),Yl=Rl(Gl,!0);var Xl={type:"group",tag:"g",nested:!1,attr:function(e,t){e("transform",ql(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),ju(e,t),e.translate(t.x||0,t.y||0)},draw:function(e,t,n,r){Cl(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&&(Gl(e,t,i,a),vl(e,t),t.fill&&kl(e,t,s)&&e.fill(),t.stroke&&!o&&wl(e,t,s)&&e.stroke()),e.save(),e.translate(i,a),t.clip&&jl(e,t),n&&n.translate(-i,-a),Cl(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&&(Gl(e,t,i,a),vl(e,t),wl(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 Fl(t,(u=>{let l,c,d;const f=u.bounds;if(f&&!f.contains(i,a))return;c=u.x||0,d=u.y||0;const h=c+(u.width||0),p=d+(u.height||0),m=u.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&&Bu(u)&&!Yl(e,u,o,s))return e.restore(),null;const g=u.strokeForeground,y=!1!==t.interactive;return y&&g&&u.stroke&&Vl(e,u,o,s)?(e.restore(),u):(l=Fl(u,(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)),!l&&y&&(u.fill||!g&&u.stroke)&&Hl(e,u,o,s)&&(l=u),e.restore(),l||null)}))},isect:ml,content:function(e,t,n){e("clip-path",t.clip?$u(n,t,t):null)},background:function(e,t){e("class","background"),e("aria-hidden",!0),Wl(e,t)},foreground:function(e,t){e("class","foreground"),e("aria-hidden",!0),t.strokeForeground?Wl(e,t):e("d","")}},Jl={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function Ql(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 Kl(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 Zl(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 ec(e,t){return"center"===e?t/2:"right"===e?t:0}function tc(e,t){return"middle"===e?t/2:"bottom"===e?t:0}var nc={type:"image",tag:"image",nested:!1,attr:function(e,t,n){const r=Ql(t,n),i=Kl(t,r),a=Zl(t,r),o=(t.x||0)-ec(t.align,i),s=(t.y||0)-tc(t.baseline,a);e("href",!r.src&&r.toDataURL?r.toDataURL():r.src||"",Jl["xmlns:xlink"],"xlink:href"),e("transform",$l(o,s)),e("width",i),e("height",a),e("preserveAspectRatio",!1===t.aspect?"none":"xMidYMid")},bound:function(e,t){const n=t.image,r=Kl(t,n),i=Zl(t,n),a=(t.x||0)-ec(t.align,r),o=(t.y||0)-tc(t.baseline,i);return e.set(a,o,a+r,o+i)},draw:function(e,t,n){Cl(t,(t=>{if(n&&!n.intersects(t.bounds))return;const r=Ql(t,this);let i=Kl(t,r),a=Zl(t,r);if(0===i||0===a)return;let o,s,u,l,c=(t.x||0)-ec(t.align,i),d=(t.y||0)-tc(t.baseline,a);!1!==t.aspect&&(s=r.width/r.height,u=t.width/t.height,s==s&&u==u&&s!==u&&(u<s?(l=i/s,d+=(a-l)/2,a=l):(l=a*s,c+=(i-l)/2,i=l))),(r.complete||r.toDataURL)&&(vl(e,t),e.globalAlpha=null!=(o=t.opacity)?o:1,e.imageSmoothingEnabled=!1!==t.smooth,e.drawImage(r,c,d,i,a))}))},pick:Ol(),isect:R,get:Ql,xOffset:ec,yOffset:tc},rc=Pl("line",(function(e,t){const n=t[0],r=n.interpolate||"linear";return Cu.curve(js(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 ic(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)*Xs,u=t.pathCache;u&&u.path===n||((t.pathCache=u=Ys(n)).path=n),s&&e.rotate&&e.translate?(e.translate(r,i),e.rotate(s),au(e,u,0,0,a,o),e.rotate(-s),e.translate(-r,-i)):au(e,u,r,i,a,o)}var ac={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 $l(e.x||0,e.y||0)+(e.angle?" "+Tl(e.angle):"")+(e.scaleX||e.scaleY?" "+function(e,t){return"scale("+e+","+t+")"}(e.scaleX||1,e.scaleY||1):"")}(t)),e("d",t.path)},bound:function(e,t){return ic(ol(e,t.angle),t)?e.set(0,0,0,0):ju(e,t,!0)},draw:Ml(ic),pick:zl(ic),isect:hl(ic)};function oc(e,t){e.beginPath(),Ou(e,t)}var sc={type:"rect",tag:"path",nested:!1,attr:function(e,t){e("d",Ou(null,t))},bound:function(e,t){var n,r;return ju(e.set(n=t.x||0,r=t.y||0,n+t.width||0,r+t.height||0),t)},draw:Ml(oc),pick:zl(oc),isect:ml};function uc(e,t,n){var r,i,a,o;return!(!t.stroke||!wl(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 lc={type:"rule",tag:"line",nested:!1,attr:function(e,t){e("transform",ql(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 ju(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){Cl(t,(t=>{if(!n||n.intersects(t.bounds)){var r=null==t.opacity?1:t.opacity;r&&uc(e,t,r)&&(vl(e,t),e.stroke())}}))},pick:Ol((function(e,t,n,r){return!!e.isPointInStroke&&(uc(e,t,1)&&e.isPointInStroke(n,r))})),isect:gl},cc=Ll("shape",(function(e,t){return(t.mark.shape||t.shape).context(e)(t)})),dc=Ll("symbol",(function(e,t){return Mu.context(e)(t)}),pl);const fc=je();var hc={height:bc,measureWidth:yc,estimateWidth:mc,width:mc,canvas:pc};function pc(e){hc.width=e&&dl?yc:mc}function mc(e,t){return gc(Ac(e,t),bc(e))}function gc(e,t){return~~(.8*e.length*t)}function yc(e,t){return bc(e)<=0||!(t=Ac(e,t))?0:vc(t,Dc(e))}function vc(e,t){const n=`(${t}) ${e}`;let r=fc.get(n);return void 0===r&&(dl.font=t,r=dl.measureText(e).width,fc.set(n,r)),r}function bc(e){return null!=e.fontSize?+e.fontSize||0:11}function xc(e){return null!=e.lineHeight?e.lineHeight:bc(e)+2}function _c(e){return t=e.lineBreak&&e.text&&!j(e.text)?e.text.split(e.lineBreak):e.text,j(t)?t.length>1?t:t[0]:t;var t}function kc(e){const t=_c(e);return(j(t)?t.length-1:0)*xc(e)}function Ac(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(hc.width===yc){const t=Dc(e);return e=>vc(e,t)}if(hc.width===mc){const t=bc(e);return e=>gc(e,t)}return t=>hc.width(e,t)}(e);if(r(t)<n)return t;var i,a=e.ellipsis||"…",o="rtl"===e.dir,s=0,u=t.length;if(n-=r(a),o){for(;s<u;)i=s+u>>>1,r(t.slice(i))>n?s=i+1:u=i;return a+t.slice(s)}for(;s<u;)i=1+(s+u>>>1),r(t.slice(0,i))<n?s=i:u=i-1;return t.slice(0,s)+a}(e,n):n}function wc(e,t){var n=e.font;return(t&&n?String(n).replace(/"/g,"'"):n)||"sans-serif"}function Dc(e,t){return(e.fontStyle?e.fontStyle+" ":"")+(e.fontVariant?e.fontVariant+" ":"")+(e.fontWeight?e.fontWeight+" ":"")+bc(e)+"px "+wc(e,t)}function Ec(e){var t=e.baseline,n=bc(e);return Math.round("top"===t?.79*n:"middle"===t?.3*n:"bottom"===t?-.21*n:"line-top"===t?.29*n+.5*xc(e):"line-bottom"===t?.29*n-.5*xc(e):0)}pc(!0);const Cc={left:"start",center:"middle",right:"end"},Fc=new Tu;function Mc(e){var t,n=e.x||0,r=e.y||0,i=e.radius||0;return i&&(t=(e.theta||0)-Js,n+=i*Math.cos(t),r+=i*Math.sin(t)),Fc.x1=n,Fc.y1=r,Fc}function Sc(e,t,n){var r,i=hc.height(t),a=t.align,o=Mc(t),s=o.x1,u=o.y1,l=t.dx||0,c=(t.dy||0)+Ec(t)-Math.round(.8*i),d=_c(t);if(j(d)?(i+=xc(t)*(d.length-1),r=d.reduce(((e,n)=>Math.max(e,hc.width(t,n))),0)):r=hc.width(t,d),"center"===a?l-=r/2:"right"===a&&(l-=r),e.set(l+=s,c+=u,l+r,c+i),t.angle&&!n)e.rotate(t.angle*Xs,s,u);else if(2===n)return e.rotatedPoints(t.angle*Xs,s,u);return e}var Bc={type:"text",tag:"text",nested:!1,attr:function(e,t){var n,r=t.dx||0,i=(t.dy||0)+Ec(t),a=Mc(t),o=a.x1,s=a.y1,u=t.angle||0;e("text-anchor",Cc[t.align]||"start"),u?(n=$l(o,s)+" "+Tl(u),(r||i)&&(n+=" "+$l(r,i))):n=$l(o+r,s+i),e("transform",n)},bound:Sc,draw:function(e,t,n){Cl(t,(t=>{var r,i,a,o,s,u,l,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=Dc(t),e.textAlign=t.align||"left",i=(r=Mc(t)).x1,a=r.y1,t.angle&&(e.save(),e.translate(i,a),e.rotate(t.angle*Xs),i=a=0),i+=t.dx||0,a+=(t.dy||0)+Ec(t),u=_c(t),vl(e,t),j(u))for(s=xc(t),o=0;o<u.length;++o)l=Ac(t,u[o]),t.fill&&kl(e,t,c)&&e.fillText(l,i,a),t.stroke&&wl(e,t,c)&&e.strokeText(l,i,a),a+=s;else l=Ac(t,u),t.fill&&kl(e,t,c)&&e.fillText(l,i,a),t.stroke&&wl(e,t,c)&&e.strokeText(l,i,a);t.angle&&e.restore()}}))},pick:Ol((function(e,t,n,r,i,a){if(t.fontSize<=0)return!1;if(!t.angle)return!0;var o=Mc(t),s=o.x1,u=o.y1,l=Sc(Fc,t,1),c=-t.angle*Xs,d=Math.cos(c),f=Math.sin(c),h=d*i-f*a+(s-d*s+f*u),p=f*i+d*a+(u-f*s-d*u);return l.contains(h,p)})),isect:function(e,t){const n=Sc(Fc,e,2);return yl(t,n[0],n[1],n[2],n[3])||yl(t,n[0],n[1],n[4],n[5])||yl(t,n[4],n[5],n[6],n[7])||yl(t,n[2],n[3],n[6],n[7])}},Oc=Pl("trail",(function(e,t){return Su.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})),Rc={arc:Nl,area:Ul,group:Xl,image:nc,line:rc,path:ac,rect:sc,rule:lc,shape:cc,symbol:dc,text:Bc,trail:Oc};function zc(e,t,n){var r=Rc[e.mark.marktype],i=t||r.bound;return r.nested&&(e=e.mark),i(e.bounds||(e.bounds=new Tu),e,n)}var $c={mark:null};function Tc(e,t,n){var r,i,a,o,s=Rc[e.marktype],u=s.bound,l=e.items,c=l&&l.length;if(s.nested)return c?a=l[0]:($c.mark=e,a=$c),o=zc(a,u,n),t=t&&t.union(o)||o;if(t=t||e.bounds&&e.bounds.clear()||new Tu,c)for(r=0,i=l.length;r<i;++r)t.union(zc(l[r],u,n));return e.bounds=t}const qc=["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 Lc(e,t){return JSON.stringify(e,qc,t)}function Nc(e){return Pc("string"==typeof e?JSON.parse(e):e)}function Pc(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)&&Pc(a[n]);return i&&Tc(e),e}class Uc{constructor(e){arguments.length?this.root=Nc(e):(this.root=jc({marktype:"group",name:"root",role:"frame"}),this.root.items=[new Lu(this.root)])}toJSON(e){return Lc(this.root,e||0)}mark(e,t,n){const r=jc(e,t=t||this.root.items[0]);return t.items[n]=r,r.zindex&&(r.group.zdirty=!0),r}}function jc(e,t){const n={bounds:new Tu,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 Ic(e,t,n){return!e&&"undefined"!=typeof document&&document.createElement&&(e=document),e?n?e.createElementNS(n,t):e.createElement(t):null}function Wc(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 Gc(e,t,n,r){var i,a=e.childNodes[t];return a&&a.tagName.toLowerCase()===n.toLowerCase()||(i=a||null,a=Ic(e.ownerDocument,n,r),e.insertBefore(a,i)),a}function Hc(e,t){for(var n=e.childNodes,r=n.length;r>t;)e.removeChild(n[--r]);return e}function Vc(e){return"mark-"+e.marktype+(e.role?" role-"+e.role:"")+(e.name?" "+e.name:"")}function Yc(e,t){const n=t.getBoundingClientRect();return[e.clientX-n.left-(t.clientLeft||0),e.clientY-n.top-(t.clientTop||0)]}class Xc{constructor(e,t){this._active=null,this._handlers={},this._loader=e||Kn(),this._tooltip=t||Jc}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=Ic(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=Rc[o.marktype]).tip){for((a=Yc(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,u=i.y1+r[1]+n.top;for(;e.mark&&(e=e.mark.group);)s+=e.x||0,u+=e.y||0;return{x:s,y:u,width:a,height:o,left:s,top:u,right:s+a,bottom:u+o}}}function Jc(e,t,n,r){e.element().setAttribute("title",r||"")}class Qc{constructor(e){this._el=null,this._bgcolor=null,this._loader=new Nu(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 Kc="dragenter",Zc="dragleave",ed="dragover",td="pointerdown",nd="pointermove",rd="pointerout",id="pointerover",ad="mousedown",od="mousemove",sd="mouseout",ud="mouseover",ld="click",cd="mousewheel",dd="touchstart",fd="touchmove",hd="touchend",pd=["keydown","keypress","keyup",Kc,Zc,ed,td,"pointerup",nd,rd,id,ad,"mouseup",od,sd,ud,ld,"dblclick","wheel",cd,dd,fd,hd],md=nd,gd=sd,yd=ld;class vd extends Xc{constructor(e,t){super(e,t),this._down=null,this._touch=null,this._first=!0,this._events={},this.events=pd,this.pointermove=kd([nd,od],[id,ud],[rd,sd]),this.dragover=kd([ed],[Kc],[Zc]),this.pointerout=Ad([rd,sd]),this.dragleave=Ad([Zc])}initialize(e,t,n){return this._canvas=e&&Wc(e,"canvas"),[ld,ad,td,nd,rd,Zc].forEach((e=>xd(this,e))),super.initialize(e,t,n)}canvas(){return this._canvas}context(){return this._canvas.getContext("2d")}DOMMouseScroll(e){this.fire(cd,e)}pointerdown(e){this._down=this._active,this.fire(td,e)}mousedown(e){this._down=this._active,this.fire(ad,e)}click(e){this._down===this._active&&(this.fire(ld,e),this._down=null)}touchstart(e){this._touch=this.pickEvent(e.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(dd,e,!0)}touchmove(e){this.fire(fd,e,!0)}touchend(e){this.fire(hd,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===yd&&r&&r.href?this.handleHref(t,r,r.href):e!==md&&e!==gd||this.handleTooltip(t,r,e!==gd),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&&(xd(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=Yc(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 Rc[e.marktype].pick.call(this,a,e,t,n,r,i)}}const bd=e=>e===dd||e===fd||e===hd?[dd,fd,hd]:[e];function xd(e,t){bd(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 _d(e,t,n){t.forEach((t=>e.fire(t,n)))}function kd(e,t,n){return function(r){const i=this._active,a=this.pickEvent(r);a===i||(i&&i.exit||_d(this,n,r),this._active=a,_d(this,t,r)),_d(this,e,r)}}function Ad(e){return function(t){_d(this,e,t),this._active=null}}function wd(e,t,n,r,i,a){const o="undefined"!=typeof HTMLElement&&e instanceof HTMLElement&&null!=e.parentNode,s=e.getContext("2d"),u=o?"undefined"!=typeof window&&window.devicePixelRatio||1:i;e.width=t*u,e.height=n*u;for(const e in a)s[e]=a[e];return o&&1!==u&&(e.style.width=t+"px",e.style.height=n+"px"),s.pixelRatio=u,s.setTransform(u,0,0,u,u*r[0],u*r[1]),e}class Dd extends Qc{constructor(e){super(e),this._options={},this._redraw=!1,this._dirty=new Tu,this._tempb=new Tu}initialize(e,t,n,r,i,a){return this._options=a||{},this._canvas=this._options.externalContext?null:ao(1,1,this._options.type),e&&this._canvas&&(Hc(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)wd(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=Ed(r,i,a);n.save();const u=this._redraw||o.empty()?(this._redraw=!1,s.expand(1)):function(e,t,n){t.expand(1).round(),e.pixelRatio%1&&t.scale(e.pixelRatio).round().scale(1/e.pixelRatio);return 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,u,t),n.restore(),o.clear(),this}draw(e,t,n,r){if("group"!==t.marktype&&null!=r&&!r.includes(t.marktype))return;const i=Rc[t.marktype];t.clip&&function(e,t){var n=t.clip;e.save(),me(n)?(e.beginPath(),n(e),e.clip()):jl(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 Ed=(e,t,n)=>(new Tu).set(0,0,t,n).translate(-e[0],-e[1]);class Cd extends Xc{constructor(e,t){super(e,t);const n=this;n._hrefHandler=Fd(n,((e,t)=>{t&&t.href&&n.handleHref(e,t,t.href)})),n._tooltipHandler=Fd(n,((e,t)=>{n.handleTooltip(e,t,e.type!==gd)}))}initialize(e,t,n){let r=this._svg;return r&&(r.removeEventListener(yd,this._hrefHandler),r.removeEventListener(md,this._tooltipHandler),r.removeEventListener(gd,this._tooltipHandler)),this._svg=r=e&&Wc(e,"svg"),r&&(r.addEventListener(yd,this._hrefHandler),r.addEventListener(md,this._tooltipHandler),r.addEventListener(gd,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:Fd(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}}const Fd=(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)},Md="aria-hidden",Sd="aria-label",Bd="role",Od="aria-roledescription",Rd="graphics-object",zd="graphics-symbol",$d=(e,t,n)=>({[Bd]:e,[Od]:t,[Sd]:n||void 0}),Td=Ke(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),qd={axis:{desc:"axis",caption:function(e){const t=e.datum,n=e.orient,r=t.title?jd(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 ${Ko(s)?"discrete":s} scale`+` with ${zs(o,a,e)}`}},legend:{desc:"legend",caption:function(e){const t=e.datum,n=t.title?jd(e):null,r=`${t.type||""} legend`.trim(),i=t.scales,a=Object.keys(i),o=e.context,s=o.scales[i[a[0]]].value,u=o.dataflow.locale();return l=r,(l.length?l[0].toUpperCase()+l.slice(1):l)+(n?` titled '${n}'`:"")+` for ${function(e){return e=e.map((e=>e+("fill"===e||"stroke"===e?" color":""))),e.length<2?e[0]:e.slice(0,-1).join(", ")+" and "+Y(e)}(a)}`+` with ${zs(u,s,e)}`;var l}},"title-text":{desc:"title",caption:e=>`Title text '${Ud(e)}'`},"title-subtitle":{desc:"subtitle",caption:e=>`Subtitle text '${Ud(e)}'`}},Ld={ariaRole:Bd,ariaRoleDescription:Od,description:Sd};function Nd(e,t){const n=!1===t.aria;if(e(Md,n||void 0),n||null==t.description)for(const t in Ld)e(Ld[t],void 0);else{const n=t.mark.marktype;e(Sd,t.description),e(Bd,t.ariaRole||("group"===n?Rd:zd)),e(Od,t.ariaRoleDescription||`${n} mark`)}}function Pd(e){return!1===e.aria?{[Md]:!0}:Td[e.role]?null:qd[e.role]?function(e,t){try{const n=e.items[0],r=t.caption||(()=>"");return $d(t.role||zd,t.desc,n.description||r(n))}catch(e){return null}}(e,qd[e.role]):function(e){const t=e.marktype,n="group"===t||"text"===t||e.items.some((e=>null!=e.description&&!1!==e.aria));return $d(n?Rd:zd,`${t} mark container`,e.description)}(e)}function Ud(e){return he(e.text).join(" ")}function jd(e){try{return he(Y(e.items).items[0].text).join(" ")}catch(e){return null}}const Id=e=>(e+"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");function Wd(){let e="",t="",n="";const r=[],i=()=>t=n="",a=(e,n)=>{var r;return null!=n&&(t+=` ${e}="${r=n,Id(r).replace(/"/g,""").replace(/\t/g,"	").replace(/\n/g,"
").replace(/\r/g,"
")}"`),o},o={open(s){(a=>{t&&(e+=`${t}>${n}`,i()),r.push(a)})(s),t="<"+s;for(var u=arguments.length,l=new Array(u>1?u-1:0),c=1;c<u;c++)l[c-1]=arguments[c];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+=Id(e),o),toString:()=>e};return o}const Gd=e=>Hd(Wd(),e)+"";function Hd(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):Hd(e,t)}return e.close()}const Vd={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"},Yd={blend:"mix-blend-mode"},Xd={fill:"none","stroke-miterlimit":10},Jd="http://www.w3.org/2000/xmlns/",Qd=Jl.xmlns;class Kd extends Qc{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=Gc(e,0,"svg",Qd),this._svg.setAttributeNS(Jd,"xmlns",Qd),this._svg.setAttributeNS(Jd,"xmlns:xlink",Jl["xmlns:xlink"]),this._svg.setAttribute("version",Jl.version),this._svg.setAttribute("class","marks"),Hc(e,1),this._root=Gc(this._svg,0,"g",Qd),lf(this._root,Xd),Hc(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&&(lf(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=Gc(e,0,"rect",Qd),lf(n,{width:this._width,height:this._height,fill:t}));const r=Gd(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),Hc(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,u;for(o=0,s=e.length;o<s;++o)n=e[o],r=n.mark,r.marktype!==i&&(i=r.marktype,a=Rc[i]),r.zdirty&&r.dirty!==t&&(this._dirtyAll=!1,Zd(n,t),r.items.forEach((e=>{e.dirty=t}))),r.zdirty||(n.exit?(a.nested&&r.items.length?(u=r.items[0],u._svg&&this._update(a,u._svg,u)):n._svg&&(u=n._svg.parentNode,u&&u.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,Zd(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=Rc[a],s=!1===t.interactive?"none":null,u="g"===o.tag,l=nf(t,e,n,"g",i);if("group"!==a&&null!=r&&!r.includes(a))return Hc(l,0),t._svg;l.setAttribute("class",Vc(t));const c=Pd(t);for(const e in c)cf(l,e,c[e]);u||cf(l,"pointer-events",s),cf(l,"clip-path",t.clip?$u(this,t,t.group):null);let d=null,f=0;const h=e=>{const t=this.isDirty(e),n=nf(e,l,d,o.tag,i);t&&(this._update(o,n,e),u&&function(e,t,n,r){t=t.lastChild.previousSibling;let i,a=0;Cl(n,(n=>{i=e.mark(t,n,i,r),++a})),Hc(t,1+a)}(this,n,e,r)),d=n,++f};return o.nested?t.items.length&&h(t.items[0]):Cl(t,h),Hc(l,f),l}_update(e,t,n){rf=t,af=t.__values__,Nd(sf,n),e.attr(sf,n,this);const r=of[e.type];r&&r.call(this,e,t,n),rf&&this.style(rf,n)}style(e,t){if(null!=t){for(const n in Vd){let r="font"===n?wc(t):t[n];if(r===af[n])continue;const i=Vd[n];null==r?e.removeAttribute(i):(qs(r)&&(r=Ls(r,this._defs.gradient,df())),e.setAttribute(i,r+"")),af[n]=r}for(const n in Yd)uf(e,Yd[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=Gc(e,1,"defs",Qd)),r=ef(n,t.gradient[i],r);for(const i in t.clipping)n||(t.el=n=Gc(e,1,"defs",Qd)),r=tf(n,t.clipping[i],r);n&&(0===r?(e.removeChild(n),t.el=null):Hc(n,r))}_clearDefs(){const e=this._defs;e.gradient={},e.clipping={}}}function Zd(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 ef(e,t,n){let r,i,a;if("radial"===t.gradient){let r=Gc(e,n++,"pattern",Qd);lf(r,{id:Ts+t.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),r=Gc(r,0,"rect",Qd),lf(r,{width:1,height:1,fill:`url(${df()}#${t.id})`}),lf(e=Gc(e,n++,"radialGradient",Qd),{id:t.id,fx:t.x1,fy:t.y1,fr:t.r1,cx:t.x2,cy:t.y2,r:t.r2})}else lf(e=Gc(e,n++,"linearGradient",Qd),{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=Gc(e,r,"stop",Qd),a.setAttribute("offset",t.stops[r].offset),a.setAttribute("stop-color",t.stops[r].color);return Hc(e,r),n}function tf(e,t,n){let r;return(e=Gc(e,n,"clipPath",Qd)).setAttribute("id",t.id),t.path?(r=Gc(e,0,"path",Qd),r.setAttribute("d",t.path)):(r=Gc(e,0,"rect",Qd),lf(r,{x:0,y:0,width:t.width,height:t.height})),Hc(e,1),n+1}function nf(e,t,n,r,i){let a,o=e._svg;if(!o&&(a=t.ownerDocument,o=Ic(a,r,Qd),e._svg=o,e.mark&&(o.__data__=e,o.__values__={fill:"default"},"g"===r))){const t=Ic(a,"path",Qd);o.appendChild(t),t.__data__=e;const n=Ic(a,"g",Qd);o.appendChild(n),n.__data__=e;const r=Ic(a,"path",Qd);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 rf=null,af=null;const of={group(e,t,n){const r=rf=t.childNodes[2];af=r.__values__,e.foreground(sf,n,this),af=t.__values__,rf=t.childNodes[1],e.content(sf,n,this);const i=rf=t.childNodes[0];e.background(sf,n,this);const a=!1===n.mark.interactive?"none":null;if(a!==af.events&&(cf(r,"pointer-events",a),cf(i,"pointer-events",a),af.events=a),n.strokeForeground&&n.stroke){const e=n.fill;cf(r,"display",null),this.style(i,n),cf(i,"stroke",null),e&&(n.fill=null),af=r.__values__,this.style(r,n),e&&(n.fill=e),rf=null}else cf(r,"display","none")},image(e,t,n){!1===n.smooth?(uf(t,"image-rendering","optimizeSpeed"),uf(t,"image-rendering","pixelated")):uf(t,"image-rendering",null)},text(e,t,n){const r=_c(n);let i,a,o,s;j(r)?(a=r.map((e=>Ac(n,e))),i=a.join("\n"),i!==af.text&&(Hc(t,0),o=t.ownerDocument,s=xc(n),a.forEach(((e,r)=>{const i=Ic(o,"tspan",Qd);i.__data__=n,i.textContent=e,r&&(i.setAttribute("x",0),i.setAttribute("dy",s)),t.appendChild(i)})),af.text=i)):(a=Ac(n,r),a!==af.text&&(t.textContent=a,af.text=a)),cf(t,"font-family",wc(n)),cf(t,"font-size",bc(n)+"px"),cf(t,"font-style",n.fontStyle),cf(t,"font-variant",n.fontVariant),cf(t,"font-weight",n.fontWeight)}};function sf(e,t,n){t!==af[e]&&(n?function(e,t,n,r){null!=n?e.setAttributeNS(r,t,n):e.removeAttributeNS(r,t)}(rf,e,t,n):cf(rf,e,t),af[e]=t)}function uf(e,t,n){n!==af[t]&&(null==n?e.style.removeProperty(t):e.style.setProperty(t,n+""),af[t]=n)}function lf(e,t){for(const n in t)cf(e,n,t[n])}function cf(e,t,n){null!=n?e.setAttribute(t,n):e.removeAttribute(t)}function df(){let e;return"undefined"==typeof window?"":(e=window.location).hash?e.href.slice(0,-e.hash.length):e.href}class ff extends Qc{constructor(e){super(e),this._text=null,this._defs={gradient:{},clipping:{}}}svg(){return this._text}_render(e){const t=Wd();t.open("svg",we({},Jl,{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",Xd,{transform:"translate("+this._origin+")"}),this.mark(t,e),t.close(),this.defs(t),this._text=t.close()+"",this}mark(e,t){const n=Rc[t.marktype],r=n.tag,i=[Nd,n.attr];e.open("g",{class:Vc(t),"clip-path":t.clip?$u(this,t,t.group):null},Pd(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=_c(a);if(j(t)){const n={x:0,dy:xc(a)};for(let r=0;r<t.length;++r)e.open("tspan",r?n:null).text(Ac(a,t[r])).close()}else e.text(Ac(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)),Cl(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]):Cl(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;"bgrect"===r&&!1===n.interactive&&(e["pointer-events"]="none");if("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"]=wc(t),e["font-size"]=bc(t)+"px",e["font-style"]=t.fontStyle,e["font-variant"]=t.fontVariant,e["font-weight"]=t.fontWeight);for(const n in Vd){let r=t[n];const a=Vd[n];("transparent"!==r||"fill"!==a&&"stroke"!==a)&&null!=r&&(qs(r)&&(r=Ls(r,i.gradient,"")),e[a]=r)}for(const e in Yd){const n=t[e];null!=n&&(a=a||[],a.push(`${Yd[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:Ts+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()}}}const hf={svgMarkTypes:["text"],svgOnTop:!0,debug:!1};class pf extends Qc{constructor(e){super(e),this._svgRenderer=new Kd(e),this._canvasRenderer=new Dd(e)}initialize(e,t,n,r,i){this._root_el=Gc(e,0,"div");const a=Gc(this._root_el,0,"div"),o=Gc(this._root_el,1,"div");return this._root_el.style.position="relative",hf.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=hf.svgOnTop?o:a,this._canvasEl=hf.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 hf.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=>!hf.svgMarkTypes.includes(e)));this._svgRenderer.render(e,hf.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 hf.svgOnTop?this._canvasRenderer.background(e):this._svgRenderer.background(e),this}}class mf extends vd{constructor(e,t){super(e,t)}initialize(e,t,n){const r=Gc(Gc(e,0,"div"),hf.svgOnTop?0:1,"div");return super.initialize(r,t,n)}}const gf="canvas",yf="hybrid",vf="none",bf={Canvas:gf,PNG:"png",SVG:"svg",Hybrid:yf,None:vf},xf={};function _f(e,t){return e=String(e||"").toLowerCase(),arguments.length>1?(xf[e]=t,this):xf[e]}function kf(e,t,n){const r=[],i=(new Tu).union(t),a=e.marktype;return a?Af(e,i,n,r):"group"===a?wf(e,i,n,r):E("Intersect scene must be mark node or group item.")}function Af(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)wf(i[s],t,n,r);else for(const e=Rc[a].isect;s<o;++s){const n=i[s];Df(n,t,e)&&r.push(n)}}return r}function wf(e,t,n,r){n&&n(e.mark)&&Df(e,t,Rc.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)Af(i[e],t,n,r);t.translate(o,s)}return r}function Df(e,t,n){const r=e.bounds;return t.encloses(r)||t.intersects(r)&&n(e,t)}xf[gf]=xf.png={renderer:Dd,headless:Dd,handler:vd},xf.svg={renderer:Kd,headless:ff,handler:Cd},xf[yf]={renderer:pf,headless:pf,handler:mf},xf[vf]={};const Ef=new Tu;function Cf(e){const t=e.clip;if(me(t))t(ol(Ef.clear()));else{if(!t)return;Ef.set(0,0,e.group.width,e.group.height)}e.bounds.intersect(Ef)}const Ff=1e-9;function Mf(e,t,n){return e===t||("path"===n?Sf(e,t):e instanceof Date&&t instanceof Date?+e==+t:qe(e)&&qe(t)?Math.abs(e-t)<=Ff:e&&t&&(I(e)||I(t))?function(e,t){var n,r,i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(i.sort(),a.sort(),r=i.length-1;r>=0;r--)if(i[r]!=a[r])return!1;for(r=i.length-1;r>=0;r--)if(!Mf(e[n=i[r]],t[n],n))return!1;return typeof e==typeof t}(e,t):e==t)}function Sf(e,t){return Mf(Ys(e),Ys(t))}const Bf="top",Of="left",Rf="right",zf="bottom",$f="top-left",Tf="top-right",qf="bottom-left",Lf="bottom-right",Nf="start",Pf="middle",Uf="end",jf="x",If="y",Wf="group",Gf="axis",Hf="title",Vf="frame",Yf="scope",Xf="legend",Jf="row-header",Qf="row-footer",Kf="row-title",Zf="column-header",eh="column-footer",th="column-title",nh="padding",rh="symbol",ih="fit",ah="fit-x",oh="fit-y",sh="pad",uh="none",lh="all",ch="each",dh="flush",fh="column",hh="row";function ph(e){qr.call(this,null,e)}function mh(e,t,n){return t(e.bounds.clear(),e,n)}Oe(ph,qr,{transform(e,t){const n=t.dataflow,r=e.mark,i=r.marktype,a=Rc[i],o=a.bound;let s,u=r.bounds;if(a.nested)r.items.length&&n.dirty(r.items[0]),u=mh(r,o),r.items.forEach((e=>{e.bounds.clear().union(u)}));else if(i===Wf||e.modified())switch(t.visit(t.MOD,(e=>n.dirty(e))),u.clear(),r.items.forEach((e=>u.union(mh(e,o)))),r.role){case Gf:case Xf:case Hf:t.reflow()}else s=t.changed(t.REM),t.visit(t.ADD,(e=>{u.union(mh(e,o))})),t.visit(t.MOD,(e=>{s=s||u.alignsWith(e.bounds),n.dirty(e),u.union(mh(e,o))})),s&&(u.clear(),r.items.forEach((e=>u.union(e.bounds))));return Cf(r),t.modifies("bounds")}});const gh=":vega_identifier:";function yh(e){qr.call(this,0,e)}function vh(e){qr.call(this,null,e)}function bh(e){qr.call(this,null,e)}yh.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},Oe(yh,qr,{transform(e,t){const n=(i=t.dataflow)._signals[gh]||(i._signals[gh]=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}}),Oe(vh,qr,{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===Wf?Lu:qu;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 xh={parity:e=>e.filter(((e,t)=>t%2?e.opacity=0:1)),greedy:(e,t)=>{let n;return e.filter(((e,r)=>r&&_h(n.bounds,e.bounds,t)?e.opacity=0:(n=e,1)))}},_h=(e,t,n)=>n>Math.max(t.x1-e.x2,e.x1-t.x2,t.y1-e.y2,e.y1-t.y2),kh=(e,t)=>{for(var n,r=1,i=e.length,a=e[0].bounds;r<i;a=n,++r)if(_h(a,n=e[r].bounds,t))return!0},Ah=e=>{const t=e.bounds;return t.width()>1&&t.height()>1},wh=e=>(e.forEach((e=>e.opacity=1)),e),Dh=(e,t)=>e.reflow(t.modified()).modifies("opacity");function Eh(e){qr.call(this,null,e)}Oe(bh,qr,{transform(e,t){const n=xh[e.method]||xh.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")&&(wh(o),t=Dh(t,e)),t;if(o=o.filter(Ah),!o.length)return;if(e.sort&&(o=o.slice().sort(e.sort)),i=wh(o),t=Dh(t,e),i.length>=3&&kh(i,r)){do{i=n(i,r)}while(i.length>=3&&kh(i,r));i.length<3&&!Y(o).opacity&&(i.length>1&&(Y(i).opacity=0),Y(o).opacity=1)}e.boundScale&&e.boundTolerance>=0&&(a=((e,t,n)=>{var r=e.range(),i=new Tu;return t===Bf||t===zf?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}}),Oe(Eh,qr,{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 Ch=new Tu;function Fh(e,t,n){return e[t]===n?0:(e[t]=n,1)}function Mh(e){var t=e.items[0].orient;return t===Of||t===Rf}function Sh(e,t,n,r){var i,a,o=t.items[0],s=o.datum,u=null!=o.translate?o.translate:.5,l=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,v=o.bounds,b=g&&kc(g),x=0,_=0;switch(Ch.clear().union(v),v.clear(),(i=c[0])>-1&&v.union(o.items[i].bounds),(i=c[1])>-1&&v.union(o.items[i].bounds),l){case Bf:x=h||0,_=-f,a=Math.max(p,Math.min(m,-v.y1)),v.add(0,-a).add(d,0),g&&Bh(e,g,a,y,b,0,-1,v);break;case Of:x=-f,_=h||0,a=Math.max(p,Math.min(m,-v.x1)),v.add(-a,0).add(0,d),g&&Bh(e,g,a,y,b,1,-1,v);break;case Rf:x=n+f,_=h||0,a=Math.max(p,Math.min(m,v.x2)),v.add(0,0).add(a,d),g&&Bh(e,g,a,y,b,1,1,v);break;case zf:x=h||0,_=r+f,a=Math.max(p,Math.min(m,v.y2)),v.add(0,0).add(d,a),g&&Bh(e,g,a,y,0,0,1,v);break;default:x=o.x,_=o.y}return ju(v.translate(x,_),o),Fh(o,"x",x+u)|Fh(o,"y",_+u)&&(o.bounds=Ch,e.dirty(o),o.bounds=v,e.dirty(o)),o.mark.bounds.clear().union(v)}function Bh(e,t,n,r,i,a,o,s){const u=t.bounds;if(t.auto){const s=o*(n+i+r);let l=0,c=0;e.dirty(t),a?l=(t.x||0)-(t.x=s):c=(t.y||0)-(t.y=s),t.mark.bounds.clear().union(u.translate(-l,-c)),e.dirty(t)}s.union(u)}const Oh=(e,t)=>Math.floor(Math.min(e,t)),Rh=(e,t)=>Math.ceil(Math.max(e,t));function zh(e){return(new Tu).set(0,0,e.width||0,e.height||0)}function $h(e){const t=e.bounds.clone();return t.empty()?t.set(0,0,0,0):t.translate(-(e.x||0),-(e.y||0))}function Th(e,t,n){const r=I(e)?e[t]:e;return null!=r?r:void 0!==n?n:0}function qh(e){return e<0?Math.ceil(-e):0}function Lh(e,t,n){var r,i,a,o,s,u,l,c,d,f,h,p=!n.nodirty,m=n.bounds===dh?zh:$h,g=Ch.set(0,0,0,0),y=Th(n.align,fh),v=Th(n.align,hh),b=Th(n.padding,fh),x=Th(n.padding,hh),_=n.columns||t.length,k=_<=0?1:Math.ceil(t.length/_),A=t.length,w=Array(A),D=Array(_),E=0,C=Array(A),F=Array(k),M=0,S=Array(A),B=Array(A),O=Array(A);for(i=0;i<_;++i)D[i]=0;for(i=0;i<k;++i)F[i]=0;for(i=0;i<A;++i)u=t[i],s=O[i]=m(u),u.x=u.x||0,S[i]=0,u.y=u.y||0,B[i]=0,a=i%_,o=~~(i/_),E=Math.max(E,l=Math.ceil(s.x2)),M=Math.max(M,c=Math.ceil(s.y2)),D[a]=Math.max(D[a],l),F[o]=Math.max(F[o],c),w[i]=b+qh(s.x1),C[i]=x+qh(s.y1),p&&e.dirty(t[i]);for(i=0;i<A;++i)i%_==0&&(w[i]=0),i<_&&(C[i]=0);if(y===ch)for(a=1;a<_;++a){for(h=0,i=a;i<A;i+=_)h<w[i]&&(h=w[i]);for(i=a;i<A;i+=_)w[i]=h+D[a-1]}else if(y===lh){for(h=0,i=0;i<A;++i)i%_&&h<w[i]&&(h=w[i]);for(i=0;i<A;++i)i%_&&(w[i]=h+E)}else for(y=!1,a=1;a<_;++a)for(i=a;i<A;i+=_)w[i]+=D[a-1];if(v===ch)for(o=1;o<k;++o){for(h=0,r=(i=o*_)+_;i<r;++i)h<C[i]&&(h=C[i]);for(i=o*_;i<r;++i)C[i]=h+F[o-1]}else if(v===lh){for(h=0,i=_;i<A;++i)h<C[i]&&(h=C[i]);for(i=_;i<A;++i)C[i]=h+M}else for(v=!1,o=1;o<k;++o)for(r=(i=o*_)+_;i<r;++i)C[i]+=F[o-1];for(d=0,i=0;i<A;++i)d=w[i]+(i%_?d:0),S[i]+=d-t[i].x;for(a=0;a<_;++a)for(f=0,i=a;i<A;i+=_)f+=C[i],B[i]+=f-t[i].y;if(y&&Th(n.center,fh)&&k>1)for(i=0;i<A;++i)(d=(s=y===lh?E:D[i%_])-O[i].x2-t[i].x-S[i])>0&&(S[i]+=d/2);if(v&&Th(n.center,hh)&&1!==_)for(i=0;i<A;++i)(f=(s=v===lh?M:F[~~(i/_)])-O[i].y2-t[i].y-B[i])>0&&(B[i]+=f/2);for(i=0;i<A;++i)g.union(O[i].translate(S[i],B[i]));switch(d=Th(n.anchor,jf),f=Th(n.anchor,If),Th(n.anchor,fh)){case Uf:d-=g.width();break;case Pf:d-=g.width()/2}switch(Th(n.anchor,hh)){case Uf:f-=g.height();break;case Pf:f-=g.height()/2}for(d=Math.round(d),f=Math.round(f),g.clear(),i=0;i<A;++i)t[i].mark.bounds.clear();for(i=0;i<A;++i)(u=t[i]).x+=S[i]+=d,u.y+=B[i]+=f,g.union(u.mark.bounds.union(u.bounds.translate(S[i],B[i]))),p&&e.dirty(u);return g}function Nh(e,t,n){var r,i,a,o,s,u,l,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===Wf)switch(t.role){case Gf:case Xf:case Hf:break;case Jf:o.rowheaders.push(...n);break;case Qf:o.rowfooters.push(...n);break;case Zf:o.colheaders.push(...n);break;case eh:o.colfooters.push(...n);break;case Kf:o.rowtitle=n[0];break;case th:o.coltitle=n[0];break;default:o.marks.push(...n)}return o}(t),d=c.marks,f=n.bounds===dh?Ph:Uh,h=n.offset,p=n.columns||d.length,m=p<=0?1:Math.ceil(d.length/p),g=m*p;const y=Lh(e,d,n);y.empty()&&y.set(0,0,0,0),c.rowheaders&&(u=Th(n.headerBand,hh,null),r=jh(e,c.rowheaders,d,p,m,-Th(h,"rowHeader"),Oh,0,f,"x1",0,p,1,u)),c.colheaders&&(u=Th(n.headerBand,fh,null),i=jh(e,c.colheaders,d,p,p,-Th(h,"columnHeader"),Oh,1,f,"y1",0,1,p,u)),c.rowfooters&&(u=Th(n.footerBand,hh,null),a=jh(e,c.rowfooters,d,p,m,Th(h,"rowFooter"),Rh,0,f,"x2",p-1,p,1,u)),c.colfooters&&(u=Th(n.footerBand,fh,null),o=jh(e,c.colfooters,d,p,p,Th(h,"columnFooter"),Rh,1,f,"y2",g-p,1,p,u)),c.rowtitle&&(s=Th(n.titleAnchor,hh),l=Th(h,"rowTitle"),l=s===Uf?a+l:r-l,u=Th(n.titleBand,hh,.5),Ih(e,c.rowtitle,l,0,y,u)),c.coltitle&&(s=Th(n.titleAnchor,fh),l=Th(h,"columnTitle"),l=s===Uf?o+l:i-l,u=Th(n.titleBand,fh,.5),Ih(e,c.coltitle,l,1,y,u))}function Ph(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 Uh(e,t){return e.bounds[t]}function jh(e,t,n,r,i,a,o,s,u,l,c,d,f,h){var p,m,g,y,v,b,x,_,k,A=n.length,w=0,D=0;if(!A)return w;for(p=c;p<A;p+=d)n[p]&&(w=o(w,u(n[p],l)));if(!t.length)return w;for(t.length>i&&(e.warn("Grid headers exceed limit: "+i),t=t.slice(0,i)),w+=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=(b=t[m]).mark.bounds,g=p;g>=0&&null==(x=n[g]);g-=f);s?(_=null==h?x.x:Math.round(x.bounds.x1+h*x.bounds.width()),k=w):(_=w,k=null==h?x.y:Math.round(x.bounds.y1+h*x.bounds.height())),v.union(b.bounds.translate(_-(b.x||0),k-(b.y||0))),b.x=_,b.y=k,e.dirty(b),D=o(D,v[l])}return D}function Ih(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 Wh(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),u=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)),l=s("anchor",Nf),c=l===Uf?1:l===Pf?.5:0,d={align:ch,bounds:s("bounds",dh),columns:"vertical"===s("direction")?1:e.length,padding:s("margin",8),center:s("center"),nodirty:!0};switch(t){case Of:d.anchor={x:Math.floor(r.x1)-u,column:Uf,y:c*(o||r.height()+2*r.y1),row:l};break;case Rf:d.anchor={x:Math.ceil(r.x2)+u,y:c*(o||r.height()+2*r.y1),row:l};break;case Bf:d.anchor={y:Math.floor(i.y1)-u,row:Uf,x:c*(a||i.width()+2*i.x1),column:l};break;case zf:d.anchor={y:Math.ceil(i.y2)+u,x:c*(a||i.width()+2*i.x1),column:l};break;case $f:d.anchor={x:u,y:u};break;case Tf:d.anchor={x:a-u,y:u,column:Uf};break;case qf:d.anchor={x:u,y:o-u,row:Uf};break;case Lf:d.anchor={x:a-u,y:o-u,column:Uf,row:Uf}}return d}function Gh(e,t){var n,r,i=t.items[0],a=i.datum,o=i.orient,s=i.bounds,u=i.x,l=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,u=t.titlePadding||0,l=r-o.x,c=r-o.y;switch(o.orient){case Of:i+=Math.ceil(o.bounds.width())+u;break;case Rf:case zf:break;default:a+=o.bounds.height()+u}switch((i||a)&&Vh(e,n,i,a),o.orient){case Of:c+=Hh(t,n,o,s,1,1);break;case Rf:l+=Hh(t,n,o,Uf,0,0)+u,c+=Hh(t,n,o,s,1,1);break;case zf:l+=Hh(t,n,o,s,0,0),c+=Hh(t,n,o,Uf,-1,0,1)+u;break;default:l+=Hh(t,n,o,s,0,0)}(l||c)&&Vh(e,o,l,c),(l=Math.round(o.bounds.x1-r))<0&&(Vh(e,n,-l,0),Vh(e,o,-l,0))}else(i||a)&&Vh(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)),a.type===rh&&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!==uh&&(i.x=u=0,i.y=l=0),i.width=n,i.height=r,ju(s.set(u,l,u+n,l+r),i),i.mark.bounds.clear().union(s),i}function Hh(e,t,n,r,i,a,o){const s="symbol"!==e.datum.type,u=n.datum.vgrad,l=(!s||!a&&u||o?t:t.items[0]).bounds[i?"y2":"x2"]-e.padding,c=u&&a?l:0,d=u&&a?0:l,f=i<=0?0:kc(n);return Math.round(r===Nf?c:r===Uf?d-f:.5*(l-f))}function Vh(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 Yh(e){qr.call(this,null,e)}Oe(Yh,qr,{transform(e,t){const n=t.dataflow;return e.mark.items.forEach((t=>{e.layout&&Nh(n,t,e.layout),function(e,t,n){var r,i,a,o,s,u=t.items,l=Math.max(0,t.width||0),c=Math.max(0,t.height||0),d=(new Tu).set(0,0,l,c),f=d.clone(),h=d.clone(),p=[];for(o=0,s=u.length;o<s;++o)switch((i=u[o]).role){case Gf:(Mh(i)?f:h).union(Sh(e,i,l,c));break;case Hf:r=i;break;case Xf:p.push(Gh(e,i));break;case Vf:case Yf:case Jf:case Qf:case Kf:case Zf:case eh:case th: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||Rf)!==uh&&(t[a]||(t[a]=[])).push(e)}));for(const r in t){const i=t[r];Lh(e,i,Wh(i,r,n.legends,f,h,l,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||n.autosize.type!==ih&&n.autosize.type!==ah&&n.autosize.type!==oh)d.union(r);else switch(t.orient){case Of:case Rf:d.add(r.x1,0).add(r.x2,0);break;case Bf:case zf: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,u=o.orient,l=o.anchor,c=o.offset,d=o.padding,f=o.items[0].items[0],h=o.items[1]&&o.items[1].items[0],p=u===Of||u===Rf?r:n,m=0,g=0,y=0,v=0,b=0;if(s!==Wf?u===Of?(m=i.y2,p=i.y1):u===Rf?(m=i.y1,p=i.y2):(m=i.x1,p=i.x2):u===Of&&(m=r,p=0),a=l===Nf?m:l===Uf?p:(m+p)/2,h&&h.text){switch(u){case Bf:case zf:b=f.bounds.height()+d;break;case Of:v=f.bounds.width()+d;break;case Rf:v=-f.bounds.width()-d}Ch.clear().union(h.bounds),Ch.translate(v-(h.x||0),b-(h.y||0)),Fh(h,"x",v)|Fh(h,"y",b)&&(e.dirty(h),h.bounds.clear().union(Ch),h.mark.bounds.clear().union(Ch),e.dirty(h)),Ch.clear().union(h.bounds)}else Ch.clear();switch(Ch.union(f.bounds),u){case Bf:g=a,y=i.y1-Ch.height()-c;break;case Of:g=i.x1-Ch.width()-c,y=a;break;case Rf:g=i.x2+Ch.width()+c,y=a;break;case zf:g=a,y=i.y2+c;break;default:g=o.x,y=o.y}return Fh(o,"x",g)|Fh(o,"y",y)&&(Ch.translate(g,y),e.dirty(o),o.bounds.clear().union(Ch),t.bounds.clear().union(Ch),e.dirty(o)),o.bounds}(e,r,l,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,u=Math.max(0,t.width||0),l=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-u)),h=Math.max(0,Math.ceil(n.y2-c));if(i.contains===nh){const t=e.padding();o-=t.left+t.right,s-=t.top+t.bottom}a===uh?(l=0,d=0,u=o,c=s):a===ih?(u=Math.max(0,o-l-f),c=Math.max(0,s-d-h)):a===ah?(u=Math.max(0,o-l-f),s=c+d+h):a===oh?(o=u+l+f,c=Math.max(0,s-d-h)):a===sh&&(o=u+l+f,s=c+d+h);e._resizeView(o,s,u,c,[l,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}});var Xh=Object.freeze({__proto__:null,bound:ph,identifier:yh,mark:vh,overlap:bh,render:Eh,viewlayout:Yh});function Jh(e){qr.call(this,null,e)}function Qh(e){qr.call(this,null,e)}function Kh(){return or({})}function Zh(e){qr.call(this,null,e)}function ep(e){qr.call(this,[],e)}Oe(Jh,qr,{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=vs(a,null==e.count?e.values?e.values.length:10:e.count,e.minstep),s=e.format||_s(n,a,o,e.formatSpecifier,e.formatType,!!e.values),u=e.values?bs(a,e.values,o):xs(a,o);return i&&(r.rem=i),i=u.map(((e,t)=>or({index:t/(u.length-1||1),value:e,label:s(e)}))),e.extra&&i.length&&i.push(or({index:-1,extra:{value:i[0].value},label:""})),r.source=i,r.add=i,this.value=i,r}}),Oe(Qh,qr,{transform(e,t){var n=t.dataflow,r=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.item||Kh,a=e.key||ir,o=this.value;return j(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=Se().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}}),Oe(Zh,qr,{transform(e,t){var n=t.fork(t.ADD_REM),r=e.mod||!1,i=e.encoders,a=t.encode;if(j(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||z,u=i.enter||z,l=i.exit||z,c=(a&&!o?i[a]:s)||z;if(t.changed(t.ADD)&&(t.visit(t.ADD,(t=>{u(t,e),s(t,e)})),n.modifies(u.output),n.modifies(s.output),c!==z&&c!==s&&(t.visit(t.ADD,(t=>{c(t,e)})),n.modifies(c.output))),t.changed(t.REM)&&l!==z&&(t.visit(t.REM,(t=>{l(t,e)})),n.modifies(l.output)),o||c!==z){const i=t.MOD|(e.modified()?t.REFLOW:0);o?(t.visit(i,(t=>{const i=u(t,e)||r;(c(t,e)||i)&&n.mod.push(t)})),n.mod.length&&n.modifies(u.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}}),Oe(ep,qr,{transform(e,t){if(null!=this.value&&!e.modified())return t.StopPropagation;var n,r,i,a,o,s=t.dataflow.locale(),u=t.fork(t.NO_SOURCE|t.NO_FIELDS),l=this.value,c=e.type||hs,d=e.scale,f=+e.limit,h=vs(d,null==e.count?5:e.count,e.minstep),p=!!e.values||c===hs,m=e.format||Cs(s,d,h,c,e.formatSpecifier,e.formatType,p),g=e.values||Ds(d,h);return l&&(u.rem=l),c===hs?(f&&g.length>f?(t.dataflow.warn("Symbol legend count exceeds limit, filtering items."),l=g.slice(0,f-1),o=!0):l=g,me(i=e.size)?(e.values||0!==d(l[0])||(l=l.slice(1)),a=l.reduce(((t,n)=>Math.max(t,i(n,e))),0)):i=ke(a=i||8),l=l.map(((t,n)=>or({index:n,label:m(t,n,l),value:t,offset:a,size:i(t,e)}))),o&&(o=g[l.length],l.push(or({index:l.length,label:`…${g.length-l.length} entries`,value:o,offset:a,size:i(o,e)})))):"gradient"===c?(n=d.domain(),r=ss(d,n[0],Y(n)),g.length<3&&!e.values&&n[0]!==Y(n)&&(g=[n[0],Y(n)]),l=g.map(((e,t)=>or({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=+Y(t),a=i-r;if(e.type===Bo){const e=n?a/n:.1;r-=e,i+=e,a=i-r}return e=>(e-r)/a}(d),l=g.map(((e,t)=>or({index:t,label:m(e,t,g),value:e,perc:t?r(e):0,perc2:t===i?1:r(g[t+1])})))),u.source=l,u.add=l,this.value=l,u}});const tp=e=>e.source.x,np=e=>e.source.y,rp=e=>e.target.x,ip=e=>e.target.y;function ap(e){qr.call(this,{},e)}ap.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"}]},Oe(ap,qr,{transform(e,t){var n=e.sourceX||tp,r=e.sourceY||np,i=e.targetX||rp,a=e.targetY||ip,o=e.as||"path",s=e.orient||"vertical",u=e.shape||"line",l=lp.get(u+"-"+s)||lp.get(u);return l||E("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,(e=>{e[o]=l(n(e),r(e),i(e),a(e))})),t.reflow(e.modified()).modifies(o)}});const op=(e,t,n,r)=>"M"+e+","+t+"L"+n+","+r,sp=(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},up=(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},lp=Se({line:op,"line-radial":(e,t,n,r)=>op(t*Math.cos(e),t*Math.sin(e),r*Math.cos(n),r*Math.sin(n)),arc:sp,"arc-radial":(e,t,n,r)=>sp(t*Math.cos(e),t*Math.sin(e),r*Math.cos(n),r*Math.sin(n)),curve:up,"curve-radial":(e,t,n,r)=>up(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),u=(t+r)/2;return"M"+t*i+","+t*a+"C"+u*i+","+u*a+" "+u*o+","+u*s+" "+r*o+","+r*s}});function cp(e){qr.call(this,null,e)}cp.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"]}]},Oe(cp,qr,{transform(e,t){var n,i,a,o=e.as||["startAngle","endAngle"],s=o[0],u=o[1],l=e.field||O,c=e.startAngle||0,d=null!=e.endAngle?e.endAngle:2*Math.PI,f=t.source,h=f.map(l),p=h.length,m=c,g=(d-c)/r.sum(h),y=r.range(p);for(e.sort&&y.sort(((e,t)=>h[e]-h[t])),n=0;n<p;++n)a=h[y[n]],(i=f[y[n]])[s]=m,i[u]=m+=a*g;return this.value=h,t.reflow(e.modified()).modifies(o)}});const dp=5;function fp(e){return Qo(e)&&e!==Co}const hp=Ke(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function pp(e){qr.call(this,null,e),this.modified(!0)}function mp(e,t,n){es(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: "+Ve(t)));return t}function gp(e,t,n){return me(e)&&(t||n)?is(e,yp(t||[0,1],n)):e}function yp(e,t){return t?e.slice().reverse():e}function vp(e){qr.call(this,null,e)}Oe(pp,qr,{transform(e,t){var n=t.dataflow,i=this.value,a=function(e){var t,n=e.type,r="";if(n===Co)return Co+"-"+xo;(function(e){const t=e.type;return Qo(t)&&t!==Do&&t!==Eo&&(e.scheme||e.range&&e.range.length&&e.range.every(Ne))})(e)&&(r=2===(t=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(null!=e.domainMid):0)?Co+"-":3===t?Fo+"-":"");return(r+n||xo).toLowerCase()}(e);for(a in i&&a===i.type||(this.value=i=Yo(a)()),e)if(!hp[a]){if("padding"===a&&fp(i.type))continue;me(i[a])?i[a](e[a]):n.warn("Unsupported scale property: "+a)}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!==zo&&e!==Ro&&E("Only band and point scales support rangeStep.");var r=(null!=t.paddingOuter?t.paddingOuter:t.padding)||0,i=e===Ro?1:(null!=t.paddingInner?t.paddingInner:t.padding)||0;return[0,t.rangeStep*bo(n,i,r)]}(r,t,n);else if(t.scheme&&(a=function(e,t,n){var r,i=t.schemeExtent;j(t.scheme)?r=as(t.scheme,t.interpolate,t.interpolateGamma):(r=fs(t.scheme.toLowerCase()))||E(`Unrecognized scheme name: ${t.scheme}`);return n=e===Bo?n+1:e===$o?n-1:e===Mo||e===So?+t.schemeCount||dp:n,ts(e)?gp(r,i,t.reverse):me(r)?os(gp(r,i),n):e===Oo?r:r.slice(0,n)}(r,t,n),me(a))){if(e.interpolator)return e.interpolator(a);E(`Scale type ${r} does not support interpolating color schemes.`)}if(a&&ts(r))return e.interpolator(as(yp(a,t.reverse),t.interpolate,t.interpolateGamma));a&&t.interpolate&&e.interpolate?e.interpolate(us(t.interpolate,t.interpolateGamma)):me(e.round)?e.round(i):me(e.rangeRound)&&e.interpolate(i?c.interpolateRound:c.interpolate);a&&e.range(yp(a,t.reverse))}(i,e,function(e,t,n){let i=t.bins;if(i&&!j(i)){const t=e.domain(),n=t[0],a=Y(t),o=i.step;let s=null==i.start?n:i.start,u=null==i.stop?a:i.stop;o||E("Scale bins parameter missing step property."),s<n&&(s=o*Math.ceil(n/o)),u>a&&(u=o*Math.floor(a/o)),i=r.range(s,u+o/2,o)}i?e.bins=i:e.bins&&delete e.bins;e.type===$o&&(i?t.domain||t.domainRaw||(e.domain(i),n=i.length):e.bins=e.domain());return n}(i,e,function(e,t,n){const r=function(e,t,n){return t?(e.domain(mp(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,u=t.zero||void 0===t.zero&&function(e){const t=e.type;return!e.bins&&(t===xo||t===ko||t===Ao)}(e);if(!o)return 0;if((u||null!=t.domainMin||null!=t.domainMax||null!=t.domainMid)&&(i=(o=o.slice()).length-1||1,u&&(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)}fp(s)&&t.padding&&o[0]!==Y(o)&&(o=function(e,t,n,r,i,a){var o=Math.abs(Y(n)-n[0]),s=o/(o-2*r),u=e===_o?ue(t,null,s):e===Ao?le(t,null,s,.5):e===ko?le(t,null,s,i||1):e===wo?ce(t,null,s,a||1):se(t,null,s);return t=t.slice(),t[0]=u[0],t[t.length-1]=u[1],t}(s,o,t.range,t.padding,t.exponent,t.constant));e.domain(mp(s,o,n)),s===Oo&&e.unknown(t.domainImplicit?l.scaleImplicit:void 0);t.nice&&e.nice&&e.nice(!0!==t.nice&&vs(e,t.nice)||null);return o.length}(i,e,n))),t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),Oe(vp,qr,{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(cr(e.sort)),this.modified(n),t}});const bp="zero",xp="center",_p="normalize",kp=["y0","y1"];function Ap(e){qr.call(this,null,e)}function wp(e,t,n,r,i){for(var a,o=(t-e.sum)/2,s=e.length,u=0;u<s;++u)(a=e[u])[r]=o,a[i]=o+=Math.abs(n(a))}function Dp(e,t,n,r,i){for(var a,o=1/e.sum,s=0,u=e.length,l=0,c=0;l<u;++l)(a=e[l])[r]=s,a[i]=s=o*(c+=Math.abs(n(a)))}function Ep(e,t,n,r,i){for(var a,o,s=0,u=0,l=e.length,c=0;c<l;++c)(a=+n(o=e[c]))<0?(o[r]=u,o[i]=u+=a):(o[r]=s,o[i]=s+=a)}Ap.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:bp,values:[bp,xp,_p]},{name:"as",type:"string",array:!0,length:2,default:kp}]},Oe(Ap,qr,{transform(e,t){var n,r,i,a,o=e.as||kp,s=o[0],u=o[1],l=cr(e.sort),c=e.field||O,d=e.offset===xp?wp:e.offset===_p?Dp:Ep;for(n=function(e,t,n,r){var i,a,o,s,u,l,c,d,f,h=[],p=e=>e(u);if(null==t)h.push(e.slice());else for(i={},a=0,o=e.length;a<o;++a)u=e[a],(c=i[l=t.map(p)])||(i[l]=c=[],h.push(c)),c.push(u);for(l=0,f=0,s=h.length;l<s;++l){for(a=0,d=0,o=(c=h[l]).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,l,c),r=0,i=n.length,a=n.max;r<i;++r)d(n[r],a,c,s,u);return t.reflow(e.modified()).modifies(o)}});var Cp=Object.freeze({__proto__:null,axisticks:Jh,datajoin:Qh,encode:Zh,legendentries:ep,linkpath:ap,pie:cp,scale:pp,sortitems:vp,stack:Ap}),Fp=Math.abs,Mp=Math.cos,Sp=Math.sin,Bp=1e-6,Op=Math.PI,Rp=Op/2,zp=function(e){return e>0?Math.sqrt(e):0}(2);function $p(e){return e>1?Rp:e<-1?-Rp:Math.asin(e)}function Tp(e,t){var n,r=e*Sp(t),i=30;do{t-=n=(t+Sp(t)-r)/(1+Mp(t))}while(Fp(n)>Bp&&--i>0);return t/2}var qp=function(e,t,n){function r(r,i){return[e*r*Mp(i=Tp(n,i)),t*Sp(i)]}return r.invert=function(r,i){return i=$p(i/t),[r/(e*Mp(i)),$p((2*i+Sp(2*i))/n)]},r}(zp/Rp,zp,Op);const Lp=d.geoPath(),Np=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function Pp(e,t){if(!e||"string"!=typeof e)throw new Error("Projection type must be a name string.");return e=e.toLowerCase(),arguments.length>1?(jp[e]=function(e,t){return function n(){const r=t();return r.type=e,r.path=d.geoPath().projection(r),r.copy=r.copy||function(){const e=n();return Np.forEach((t=>{r[t]&&e[t](r[t]())})),e.path.pointRadius(r.path.pointRadius()),e},Vo(r)}}(e,t),this):jp[e]||null}function Up(e){return e&&e.path||Lp}const jp={albers:d.geoAlbers,albersusa:d.geoAlbersUsa,azimuthalequalarea:d.geoAzimuthalEqualArea,azimuthalequidistant:d.geoAzimuthalEquidistant,conicconformal:d.geoConicConformal,conicequalarea:d.geoConicEqualArea,conicequidistant:d.geoConicEquidistant,equalEarth:d.geoEqualEarth,equirectangular:d.geoEquirectangular,gnomonic:d.geoGnomonic,identity:d.geoIdentity,mercator:d.geoMercator,mollweide:function(){return d.geoProjection(qp).scale(169.529)},naturalEarth1:d.geoNaturalEarth1,orthographic:d.geoOrthographic,stereographic:d.geoStereographic,transversemercator:d.geoTransverseMercator};for(const e in jp)Pp(e,jp[e]);function Ip(){}const Wp=[[],[[[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 Gp(){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,u,l,c,d,f=[],h=[];o=s=-1,l=n[0]>=r,Wp[l<<1].forEach(p);for(;++o<e-1;)u=l,l=n[o+1]>=r,Wp[u|l<<1].forEach(p);Wp[l<<0].forEach(p);for(;++s<t-1;){for(o=-1,l=n[s*e+e]>=r,c=n[s*e]>=r,Wp[l<<1|c<<2].forEach(p);++o<e-1;)u=l,l=n[s*e+e+o+1]>=r,d=c,c=n[s*e+o+1]>=r,Wp[u|l<<1|c<<2|d<<3].forEach(p);Wp[l|c<<3].forEach(p)}o=-1,c=n[s*e]>=r,Wp[c<<2].forEach(p);for(;++o<e-1;)d=c,c=n[s*e+o+1]>=r,Wp[c<<2|d<<3].forEach(p);function p(e){var t,n,r=[e[0][0]+o,e[0][1]+s],u=[e[1][0]+o,e[1][1]+s],l=a(r),c=a(u);(t=h[l])?(n=f[c])?(delete h[t.end],delete f[n.start],t===n?(t.ring.push(u),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(u),h[t.end=c]=t):(t=f[c])?(n=h[l])?(delete f[t.start],delete h[n.end],t===n?(t.ring.push(u),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=l]=t):f[l]=h[c]={start:l,end:c,ring:[r,u]}}Wp[c<<3].forEach(p)}(r,i,(e=>{n(e,r,i),function(e){var t=0,n=e.length,r=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];for(;++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!==Hp((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],u=0|o,l=0|s,c=r[l*e+u];o>0&&o<e&&u===o&&(a=r[l*e+u-1],n[0]=o+(i-a)/(c-a)-.5),s>0&&s<t&&l===s&&(a=r[(l-1)*e+u],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:Ip,r):n===o},r}function Hp(e,t){for(var n,r=-1,i=t.length;++r<i;)if(n=Vp(e,t[r]))return n;return 0}function Vp(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 u=e[a],l=u[0],c=u[1],d=e[s],f=d[0],h=d[1];if(Yp(u,d,t))return 0;c>r!=h>r&&n<(f-l)*(r-c)/(h-c)+l&&(i=-i)}return i}function Yp(e,t,n){var r,i,a,o;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)&&(i=e[r=+(e[0]===t[0])],a=n[r],o=t[r],i<=a&&a<=o||o<=a&&a<=i)}function Xp(e,t,n){return function(i){var a=De(i),o=n?Math.min(a[0],0):a[0],s=a[1],u=s-o,l=t?r.tickStep(o,s,e):u/(e+1);return r.range(o+l,s,l)}}function Jp(e){qr.call(this,null,e)}function Qp(e,t,n,r,i){const a=e.x1||0,o=e.y1||0,s=t*n<0;function u(e){e.forEach(l)}function l(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(u),e}}function Kp(e,t,n){const r=e>=0?e:Wr(t,n);return Math.round((Math.sqrt(4*r*r+1)-1)/2)}function Zp(e){return me(e)?e:ke(+e)}function em(){var e=e=>e[0],t=e=>e[1],n=O,i=[-1,-1],a=960,o=500,s=2;function u(u,l){const c=Kp(i[0],u,e)>>s,d=Kp(i[1],u,t)>>s,f=c?c+2:0,h=d?d+2:0,p=2*f+(a>>s),m=2*h+(o>>s),g=new Float32Array(p*m),y=new Float32Array(p*m);let v=g;u.forEach((r=>{const i=f+(+e(r)>>s),a=h+(+t(r)>>s);i>=0&&i<p&&a>=0&&a<m&&(g[i+a*p]+=+n(r))})),c>0&&d>0?(tm(p,m,g,y,c),nm(p,m,y,g,d),tm(p,m,g,y,c),nm(p,m,y,g,d),tm(p,m,g,y,c),nm(p,m,y,g,d)):c>0?(tm(p,m,g,y,c),tm(p,m,y,g,c),tm(p,m,g,y,c),v=y):d>0&&(nm(p,m,g,y,d),nm(p,m,y,g,d),nm(p,m,g,y,d),v=y);const b=l?Math.pow(2,-2*s):1/r.sum(v);for(let e=0,t=p*m;e<t;++e)v[e]*=b;return{values:v,scale:1<<s,width:p,height:m,x1:f,y1:h,x2:f+(a>>s),y2:h+(o>>s)}}return u.x=function(t){return arguments.length?(e=Zp(t),u):e},u.y=function(e){return arguments.length?(t=Zp(e),u):t},u.weight=function(e){return arguments.length?(n=Zp(e),u):n},u.size=function(e){if(!arguments.length)return[a,o];var t=+e[0],n=+e[1];return t>=0&&n>=0||E("invalid size"),a=t,o=n,u},u.cellSize=function(e){return arguments.length?((e=+e)>=1||E("invalid cell size"),s=Math.floor(Math.log(e)/Math.LN2),u):1<<s},u.bandwidth=function(e){return arguments.length?(1===(e=he(e)).length&&(e=[+e[0],+e[0]]),2!==e.length&&E("invalid bandwidth"),i=e,u):i},u}function tm(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 nm(e,t,n,r,i){const a=1+(i<<1);for(let o=0;o<e;++o)for(let s=0,u=0;s<t+i;++s)s<t&&(u+=n[o+s*e]),s>=i&&(s>=a&&(u-=n[o+(s-a)*e]),r[o+(s-i)*e]=u/Math.min(s+1,t-1+a-s,a))}function rm(e){qr.call(this,null,e)}Jp.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"}]},Oe(Jp,qr,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=t.materialize(t.SOURCE).source,a=e.field||S,o=Gp().smooth(!1!==e.smooth),s=e.thresholds||function(e,t,n){const i=Xp(n.levels||10,n.nice,!1!==n.zero);return"shared"!==n.resolve?i:i(e.map((e=>r.max(t(e).values))))}(i,a,e),u=null===e.as?null:e.as||"contour",l=[];return i.forEach((t=>{const n=a(t),r=o.size([n.width,n.height])(n.values,j(s)?s:s(n.values));!function(e,t,n,r){let i=r.scale||t.scale,a=r.translate||t.translate;me(i)&&(i=i(n,r));me(a)&&(a=a(n,r));if((1===i||null==i)&&!a)return;const o=(qe(i)?i:i[0])||1,s=(qe(i)?i:i[1])||1,u=a&&a[0]||0,l=a&&a[1]||0;e.forEach(Qp(t,o,s,u,l))}(r,n,t,e),r.forEach((e=>{l.push(ur(t,or(null!=u?{[u]:e}:e)))}))})),this.value&&(n.rem=this.value),this.value=n.source=n.add=l,n}}),rm.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 im=["x","y","weight","size","cellSize","bandwidth"];function am(e,t){return im.forEach((n=>null!=t[n]?e[n](t[n]):0)),e}function om(e){qr.call(this,null,e)}Oe(rm,qr,{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,u=[],l=e=>e(a);if(null==t)u.push(e);else for(n={},r=0,i=e.length;r<i;++r)a=e[r],(s=n[o=t.map(l)])||(n[o]=s=[],s.dims=o,u.push(s)),s.push(a);return u}(t.materialize(t.SOURCE).source,e.groupby),a=(e.groupby||[]).map(_),o=am(em(),e),s=e.as||"grid";return n=i.map((t=>or(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}}),om.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}]},Oe(om,qr,{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=Gp().smooth(!1!==e.smooth),o=e.values,s=e.thresholds||Xp(e.count||10,e.nice,!!o),u=e.size;return o||(o=t.materialize(t.SOURCE).source,r=Qp(n=am(em(),e)(o,!0),n.scale||1,n.scale||1,0,0),u=[n.width,n.height],o=n.values),s=j(s)?s:s(o),o=a.size(u)(o,s),r&&o.forEach(r),this.value&&(i.rem=this.value),this.value=i.source=i.add=(o||[]).map(or),i}});const sm="Feature",um="FeatureCollection";function lm(e){qr.call(this,null,e)}function cm(e){qr.call(this,null,e)}function dm(e){qr.call(this,null,e)}function fm(e){qr.call(this,null,e)}function hm(e){qr.call(this,[],e),this.generator=d.geoGraticule()}function pm(e){qr.call(this,null,e)}function mm(e){if(!me(e))return!1;const t=Ke(k(e));return t.$x||t.$y||t.$value||t.$max}function gm(e){qr.call(this,null,e),this.modified(!0)}function ym(e,t,n){me(e[t])&&e[t](n)}lm.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},Oe(lm,qr,{transform(e,t){var n,r=this._features,i=this._points,a=e.fields,o=a&&a[0],s=a&&a[1],u=e.geojson||!a&&S,l=t.ADD;n=e.modified()||t.changed(t.REM)||t.modified(k(u))||o&&t.modified(k(o))||s&&t.modified(k(s)),this.value&&!n||(l=t.SOURCE,this._features=r=[],this._points=i=[]),u&&t.visit(l,(e=>r.push(u(e)))),o&&s&&(t.visit(l,(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:sm,geometry:{type:"MultiPoint",coordinates:i}})),this.value={type:um,features:r}}}),cm.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"}]},Oe(cm,qr,{transform(e,t){var n=t.fork(t.ALL),r=this.value,i=e.field||S,a=e.as||"path",o=n.SOURCE;!r||e.modified()?(this.value=r=Up(e.projection),n.materialize().reflow()):o=i===S||t.modified(i.fields)?n.ADD_MOD:n.ADD;const s=function(e,t){const n=e.pointRadius();e.context(null),null!=t&&e.pointRadius(t);return n}(r,e.pointRadius);return n.visit(o,(e=>e[a]=r(i(e)))),r.pointRadius(s),n.modifies(a)}}),dm.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"]}]},Oe(dm,qr,{transform(e,t){var n,r=e.projection,i=e.fields[0],a=e.fields[1],o=e.as||["x","y"],s=o[0],u=o[1];function l(e){const t=r([i(e),a(e)]);t?(e[s]=t[0],e[u]=t[1]):(e[s]=void 0,e[u]=void 0)}return e.modified()?t=t.materialize().reflow(!0).visit(t.SOURCE,l):(n=t.modified(i.fields)||t.modified(a.fields),t.visit(n?t.ADD_MOD:t.ADD,l)),t.modifies(o)}}),fm.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"}]},Oe(fm,qr,{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}(Up(e.projection),e.field||F("datum"),e.pointRadius),n.materialize().reflow(),a=n.SOURCE),n.visit(a,(e=>e[i]=r)),n.modifies(i)}}),hm.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}]},Oe(hm,qr,{transform(e,t){var n,r=this.value,i=this.generator;if(!r.length||e.modified())for(const t in e)me(i[t])&&i[t](e[t]);return n=i(),r.length?t.mod.push(lr(r[0],n)):t.add.push(or(n)),r[0]=n,t}}),pm.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"}]},Oe(pm,qr,{transform(e,t){if(!t.changed()&&!e.modified())return t.StopPropagation;var n=t.materialize(t.SOURCE).source,i="shared"===e.resolve,a=e.field||S,o=function(e,t){let n;me(e)?(n=n=>e(n,t),n.dep=mm(e)):e?n=ke(e):(n=e=>e.$value/e.$max||0,n.dep=!0);return n}(e.opacity,e),s=function(e,t){let n;me(e)?(n=n=>f.rgb(e(n,t)),n.dep=mm(e)):n=ke(f.rgb(e||"#888"));return n}(e.color,e),u=e.as||"image",l={$x:0,$y:0,$value:0,$max:i?r.max(n.map((e=>r.max(a(e).values)))):0};return n.forEach((e=>{const t=a(e),n=we({},e,l);i||(n.$max=r.max(t.values||[])),e[u]=function(e,t,n,r){const i=e.width,a=e.height,o=e.x1||0,s=e.y1||0,u=e.x2||i,l=e.y2||a,c=e.values,d=c?e=>c[e]:B,f=ao(u-o,l-s),h=f.getContext("2d"),p=h.getImageData(0,0,u-o,l-s),m=p.data;for(let e=s,a=0;e<l;++e){t.$y=e-s;for(let s=o,l=e*i;s<u;++s,a+=4){t.$x=s-o,t.$value=d(s+l);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,s.dep?s:ke(s(n)),o.dep?o:ke(o(n)))})),t.reflow(!0).modifies(u)}}),Oe(gm,qr,{transform(e,t){let n=this.value;return!n||e.modified("type")?(this.value=n=function(e){const t=Pp((e||"mercator").toLowerCase());t||E("Unrecognized projection type: "+e);return t()}(e.type),Np.forEach((t=>{null!=e[t]&&ym(n,t,e[t])}))):Np.forEach((t=>{e.modified(t)&&ym(n,t,e[t])})),null!=e.pointRadius&&n.path.pointRadius(e.pointRadius),e.fit&&function(e,t){const n=function(e){return e=he(e),1===e.length?e[0]:{type:um,features:e.reduce(((e,t)=>e.concat(function(e){return e.type===um?e.features:he(e).filter((e=>null!=e)).map((e=>e.type===sm?e:{type:sm,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 vm=Object.freeze({__proto__:null,contour:om,geojson:lm,geopath:cm,geopoint:dm,geoshape:fm,graticule:hm,heatmap:pm,isocontour:Jp,kde2d:rm,projection:gm});const bm={center:h.forceCenter,collide:h.forceCollide,nbody:h.forceManyBody,link:h.forceLink,x:h.forceX,y:h.forceY},xm="forces",_m=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],km=["static","iterations"],Am=["x","y","vx","vy"];function wm(e){qr.call(this,null,e)}function Dm(e,t,n,r){var i,a,o,s,u=he(t.forces);for(i=0,a=_m.length;i<a;++i)(o=_m[i])!==xm&&t.modified(o)&&e[o](t[o]);for(i=0,a=u.length;i<a;++i)s=xm+i,(o=n||t.modified(xm,i)?Cm(u[i]):r&&Em(u[i],r)?e.force(s):null)&&e.force(s,o);for(a=e.numForces||0;i<a;++i)e.force(xm+i,null);return e.numForces=u.length,e}function Em(e,t){var n,r;for(n in e)if(me(r=e[n])&&t.modified(k(r)))return 1;return 0}function Cm(e){var t,n;for(n in Fe(bm,e.force)||E("Unrecognized force: "+e.force),t=bm[e.force](),e)me(t[n])&&Fm(t[n],e[n],e);return t}function Fm(e,t,n){e(me(t)?e=>t(e,n):t)}wm.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:Am}]},Oe(wm,qr,{transform(e,t){var n,r,i=this.value,a=t.changed(t.ADD_REM),o=e.modified(_m),s=e.iterations||300;if(i?(a&&(t.modifies("index"),i.nodes(t.source)),(o||t.changed(t.MOD))&&Dm(i,e,0,t)):(this.value=i=function(e,t){const n=h.forceSimulation(e),r=n.stop,i=n.restart;let a=!1;return n.stopped=()=>a,n.restart=()=>(a=!1,i()),n.stop=()=>(a=!0,r()),Dm(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(km)||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,u=t.length;s<u;++s)if(e=t[s],e.name===xm&&"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(Am)}});var Mm=Object.freeze({__proto__:null,force:wm});function Sm(e,t,n){const r={};return e.each((e=>{const i=e.data;n(i)&&(r[t(i)]=e)})),e.lookup=r,e}function Bm(e){qr.call(this,null,e)}Bm.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const Om=e=>e.values;function Rm(){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 u,l,c,d=-1;for(;++d<i;)u=a(l=t[d])+"",(c=o[u])?c.push(l):o[u]=[l];for(u in o)s[u]=n(o[u],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 zm(e){qr.call(this,null,e)}Oe(Bm,qr,{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&&rr(e.data)&&i.rem.push(e.data)})),this.value=a=p.hierarchy({values:he(e.keys).reduce(((e,t)=>(e.key(t),e)),Rm()).entries(i.source)},Om),n&&a.each((e=>{e.children&&(e=or(e.data),i.add.push(e),i.source.push(e))})),Sm(a,ir,ir)),i.source.root=a,i}});const $m=(e,t)=>e.parent===t.parent?1:2;Oe(zm,qr,{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(cr(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?$m:O);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 Tm=["x","y","r","depth","children"];function qm(e){zm.call(this,e)}qm.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:Tm.length,default:Tm}]},Oe(qm,zm,{layout:p.pack,params:["radius","size","padding"],fields:Tm});const Lm=["x0","y0","x1","y1","depth","children"];function Nm(e){zm.call(this,e)}function Pm(e){qr.call(this,null,e)}Nm.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:Lm.length,default:Lm}]},Oe(Nm,zm,{layout:p.partition,params:["size","round","padding"],fields:Lm}),Pm.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},Oe(Pm,qr,{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?Sm(p.stratify().id(e.key).parentId(e.parentKey)(i.source),e.key,R):Sm(p.stratify()([{}]),e.key,e.key)),i.source.root=this.value=n,i}});const Um={tidy:p.tree,cluster:p.cluster},jm=["x","y","depth","children"];function Im(e){zm.call(this,e)}function Wm(e){qr.call(this,[],e)}Im.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:jm.length,default:jm}]},Oe(Im,zm,{layout(e){const t=e||"tidy";if(Fe(Um,t))return Um[t]();E("Unrecognized Tree layout method: "+t)},params:["size","nodeSize"],fields:jm}),Wm.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},Oe(Wm,qr,{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[ir(e)]=1)),r.each((e=>{const t=e.data,n=e.parent&&e.parent.data;n&&a[ir(t)]&&a[ir(n)]&&i.add.push(or({source:n,target:t}))})),this.value=i.add):t.changed(t.MOD)&&(t.visit(t.MOD,(e=>a[ir(e)]=1)),n.forEach((e=>{(a[ir(e.source)]||a[ir(e.target)])&&i.mod.push(e)}))),i}});const Gm={binary:p.treemapBinary,dice:p.treemapDice,slice:p.treemapSlice,slicedice:p.treemapSliceDice,squarify:p.treemapSquarify,resquarify:p.treemapResquarify},Hm=["x0","y0","x1","y1","depth","children"];function Vm(e){zm.call(this,e)}Vm.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:Hm.length,default:Hm}]},Oe(Vm,zm,{layout(){const e=p.treemap();return e.ratio=t=>{const n=e.tile();n.ratio&&e.tile(n.ratio(t))},e.method=t=>{Fe(Gm,t)?e.tile(Gm[t]):E("Unrecognized Treemap layout method: "+t)},e},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:Hm});var Ym=Object.freeze({__proto__:null,nest:Bm,pack:qm,partition:Nm,stratify:Pm,tree:Im,treelinks:Wm,treemap:Vm});const Xm=4278190080;function Jm(e,t,n){return new Uint32Array(e.getImageData(0,0,t,n).data.buffer)}function Qm(e,t,n){if(!t.length)return;const r=t[0].mark.marktype;"group"===r?t.forEach((t=>{t.items.forEach((t=>Qm(e,t.items,n)))})):Rc[r].draw(e,{items:n?t.map(Km):t})}function Km(e){const t=ur(e,{});return t.stroke&&0!==t.strokeOpacity||t.fill&&0!==t.fillOpacity?{...t,strokeOpacity:1,stroke:"#000",fillOpacity:0}:t}const Zm=5,eg=31,tg=32,ng=new Uint32Array(tg+1),rg=new Uint32Array(tg+1);rg[0]=0,ng[0]=~rg[0];for(let e=1;e<=tg;++e)rg[e]=rg[e-1]<<1|1,ng[e]=~rg[e];function ig(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+tg)/tg));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>>>Zm]&1<<(i&eg)},set:(t,n)=>{const i=n*e+t;r(i>>>Zm,1<<(i&eg))},clear:(t,n)=>{const r=n*e+t;i(r>>>Zm,~(1<<(r&eg)))},getRange:(t,r,i,a)=>{let o,s,u,l,c=a;for(;c>=r;--c)if(o=c*e+t,s=c*e+i,u=o>>>Zm,l=s>>>Zm,u===l){if(n[u]&ng[o&eg]&rg[1+(s&eg)])return!0}else{if(n[u]&ng[o&eg])return!0;if(n[l]&rg[1+(s&eg)])return!0;for(let e=u+1;e<l;++e)if(n[e])return!0}return!1},setRange:(t,n,i,a)=>{let o,s,u,l,c;for(;n<=a;++n)if(o=n*e+t,s=n*e+i,u=o>>>Zm,l=s>>>Zm,u===l)r(u,ng[o&eg]&rg[1+(s&eg)]);else for(r(u,ng[o&eg]),r(l,rg[1+(s&eg)]),c=u+1;c<l;++c)r(c,4294967295)},clearRange:(t,n,r,a)=>{let o,s,u,l,c;for(;n<=a;++n)if(o=n*e+t,s=n*e+r,u=o>>>Zm,l=s>>>Zm,u===l)i(u,rg[o&eg]|ng[1+(s&eg)]);else for(i(u,rg[o&eg]),i(l,ng[1+(s&eg)]),c=u+1;c<l;++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}function ag(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 og(e,t,n,r,i,a,o,s){const u=i*a/(2*r),l=e(t-u),c=e(t+u),d=e(n-(a/=2)),f=e(n+a);return o.outOfBounds(l,d,c,f)||o.getRange(l,d,c,f)||s&&s.getRange(l,d,c,f)}const sg=[-1,-1,1,1],ug=[-1,1,-1,1];const lg=["right","center","left"],cg=["bottom","middle","top"];function dg(e,t,n,r,i,a,o,s,u,l,c,d){return!(i.outOfBounds(e,n,t,r)||(d&&a||i).getRange(e,n,t,r))}const fg={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},hg={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=hc.width(e.datum,e.datum.text);let u,l,c,d,f,h,p,m=0;for(let r=0;r<n;++r)u=t[r].x,c=t[r].y,l=void 0===t[r].x2?u:t[r].x2,d=void 0===t[r].y2?c:t[r].y2,f=(u+l)/2,h=(c+d)/2,p=Math.abs(l-u+d-c),p>=m&&(m=p,e.x=f,e.y=h);return f=s/2,h=o/2,u=e.x-f,l=e.x+f,c=e.y-h,d=e.y+h,e.align="center",u<0&&l<=i?e.align="left":0<=u&&i<l&&(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 u(t,n,r,u,l){const c=e.invert(t),d=e.invert(n);let f,h=r,p=a;if(!ag(c,d,u,l,i,a)&&!og(e,c,d,l,u,h,o,s)&&!og(e,c,d,l,u,l,o,null)){for(;p-h>=1;)f=(h+p)/2,og(e,c,d,l,u,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,l=s.length,c=t.datum.fontSize,d=hc.width(t.datum,t.datum.text);let f,h,p,m,g,y,v,b,x,_,k,A,w,D,E,C,F,M=n?c:0,S=!1,B=!1,O=0;for(let r=0;r<l;++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&&(F=f,f=h,h=F),p>m&&(F=p,p=m,m=F),x=e(f),k=e(h),_=~~((x+k)/2),A=e(p),D=e(m),w=~~((A+D)/2),v=_;v>=x;--v)for(b=w;b>=A;--b)C=u(v,b,M,d,c),C&&([t.x,t.y,M,S]=C);for(v=_;v<=k;++v)for(b=w;b<=D;++b)C=u(v,b,M,d,c),C&&([t.x,t.y,M,S]=C);S||n||(E=Math.abs(h-f+m-p),g=(f+h)/2,y=(p+m)/2,E>=O&&!ag(g,y,d,c,i,a)&&!og(e,g,y,c,d,c,o,null)&&(O=E,t.x=g,t.y=y,B=!0))}return!(!S&&!B)&&(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],u=e.bitmap();return function(t){const l=t.datum.datum.items[r].items,c=l.length,d=t.datum.fontSize,f=hc.width(t.datum,t.datum.text),h=[];let p,m,g,y,v,b,x,_,k,A,w,D,E=n?d:0,C=!1,F=!1,M=0;for(let r=0;r<c;++r){for(p=l[r].x,g=l[r].y,m=void 0===l[r].x2?p:l[r].x2,y=void 0===l[r].y2?g:l[r].y2,h.push([e((p+m)/2),e((g+y)/2)]);h.length;)if([x,_]=h.pop(),!(o.get(x,_)||s.get(x,_)||u.get(x,_))){u.set(x,_);for(let e=0;e<4;++e)v=x+sg[e],b=_+ug[e],u.outOfBounds(v,b,v,b)||h.push([v,b]);if(v=e.invert(x),b=e.invert(_),k=E,A=a,!ag(v,b,f,d,i,a)&&!og(e,v,b,d,f,k,o,s)&&!og(e,v,b,d,f,d,o,null)){for(;A-k>=1;)w=(k+A)/2,og(e,v,b,d,f,w,o,s)?A=w:k=w;k>E&&(t.x=v,t.y=b,E=k,C=!0)}}C||n||(D=Math.abs(m-p+y-g),v=(p+m)/2,b=(g+y)/2,D>=M&&!ag(v,b,f,d,i,a)&&!og(e,v,b,d,f,d,o,null)&&(M=D,t.x=v,t.y=b,F=!0))}return!(!C&&!F)&&(v=f/2,b=d/2,o.setRange(e(t.x-v),e(t.y-b),e(t.x+v),e(t.y+b)),t.align="center",t.baseline="middle",!0)}}};function pg(e,t,n,r,i,a,o,s,u,l,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]|=fg[e[t]];for(let e=r;e<t;++e)n[e]=n[r-1];return n}(i,d),p=(x=e[0].datum)&&x.mark&&x.mark.marktype,m="group"===p&&e[0].datum.items[u].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,u),v=null===l||l===1/0,b=g&&"naive"===c;var x;let _=-1,k=-1;const A=e.map((e=>{const t=v?hc.width(e,e.text):void 0;return _=Math.max(_,t),k=Math.max(k,e.fontSize),{datum:e,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(e),textWidth:t}}));l=null===l||l===1/0?Math.max(_,k)+Math.max(...r):l;const w=ig(t[0],t[1],l);let D;if(!b){n&&A.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));D=a.length||r?function(e,t,n,r,i){const a=e.width,o=e.height,s=r||i,u=ao(a,o).getContext("2d"),l=ao(a,o).getContext("2d"),c=s&&ao(a,o).getContext("2d");n.forEach((e=>Qm(u,e,!1))),Qm(l,t,!1),s&&Qm(c,t,!0);const d=Jm(u,a,o),f=Jm(l,a,o),h=s&&Jm(c,a,o),p=e.bitmap(),m=s&&e.bitmap();let g,y,v,b,x,_,k,A;for(y=0;y<o;++y)for(g=0;g<a;++g)x=y*a+g,_=d[x]&Xm,A=f[x]&Xm,k=s&&h[x]&Xm,(_||k||A)&&(v=e(g),b=e(y),i||!_&&!A||p.set(v,b),s&&(_||k)&&m.set(v,b));return[p,m]}(w,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]}(w,o&&A)}const E=g?hg[c](w,D,o,u):function(e,t,n,r){const i=e.width,a=e.height,o=t[0],s=t[1],u=r.length;return function(t){const l=t.boundary,c=t.datum.fontSize;if(l[2]<0||l[5]<0||l[0]>i||l[3]>a)return!1;let d,f,h,p,m,g,y,v,b,x,_,k,A,w,D,E=t.textWidth??0;for(let i=0;i<u;++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=l[1+d]+r[i]*d*p,_=l[4+f]+m*c*f/2+r[i]*f*p,v=_-c/2,b=_+c/2,k=e(g),w=e(v),D=e(b),!E){if(!dg(k,k,w,D,o,s,0,0,0,0,0,h))continue;E=hc.width(t.datum,t.datum.text)}if(x=g+m*E*d/2,g=x-E/2,y=x+E/2,k=e(g),A=e(y),dg(k,A,w,D,o,s,0,0,0,0,0,h))return t.x=d?d*m<0?y:g:x,t.y=f?f*m<0?b:v:_,t.align=lg[d*m+1],t.baseline=cg[f*m+1],o.setRange(k,w,A,D),!0}return!1}}(w,D,h,f);return A.forEach((e=>e.opacity=+E(e))),A}const mg=["x","y","opacity","align","baseline"],gg=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function yg(e){qr.call(this,null,e)}yg.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:gg},{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:mg.length,default:mg}]},Oe(yg,qr,{transform(e,t){const n=e.modified();if(!(n||t.changed(t.ADD_REM)||function(n){const r=e[n];return me(r)&&t.modified(r.fields)}("sort")))return;e.size&&2===e.size.length||E("Size parameter should be specified as a [width, height] array.");const r=e.as||mg;return pg(t.materialize(t.SOURCE).source||[],e.size,e.sort,he(null==e.offset?1:e.offset),he(e.anchor||gg),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)}});var vg=Object.freeze({__proto__:null,label:yg});function bg(e,t){var n,r,i,a,o,s,u=[],l=function(e){return e(a)};if(null==t)u.push(e);else for(n={},r=0,i=e.length;r<i;++r)a=e[r],(s=n[o=t.map(l)])||(n[o]=s=[],s.dims=o,u.push(s)),s.push(a);return u}function xg(e){qr.call(this,null,e)}xg.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}]},Oe(xg,qr,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const r=bg(t.materialize(t.SOURCE).source,e.groupby),i=(e.groupby||[]).map(_),a=i.length,o=e.as||[_(e.x),_(e.y)],s=[];r.forEach((t=>{Ei(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(or(n))}))})),this.value&&(n.rem=this.value),this.value=n.add=n.source=s}return n}});const _g={constant:pi,linear:bi,log:xi,exp:_i,pow:ki,quad:Ai,poly:wi};function kg(e){qr.call(this,null,e)}kg.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(_g)},{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}]},Oe(kg,qr,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const r=bg(t.materialize(t.SOURCE).source,e.groupby),i=(e.groupby||[]).map(_),a=e.method||"linear",o=null==e.order?3:e.order,s=((e,t)=>"poly"===e?t:"quad"===e?2:1)(a,o),u=e.as||[_(e.x),_(e.y)],l=_g[a],c=[];let d=e.extent;Fe(_g,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=l(n,e.x,e.y,o);if(e.params)return void c.push(or({keys:n.dims,coef:r.coef,rSquared:r.rSquared}));const f=d||De(n,e.x),h=e=>{const t={};for(let e=0;e<i.length;++e)t[i[e]]=n.dims[e];t[u[0]]=e[0],t[u[1]]=e[1],c.push(or(t))};"linear"===a||"constant"===a?f.forEach((e=>h([e,r.predict(e)]))):Si(r.predict,f,25,200).forEach(h)})),this.value&&(n.rem=this.value),this.value=n.add=n.source=c}return n}});var Ag=Object.freeze({__proto__:null,loess:xg,regression:kg});function wg(e){qr.call(this,null,e)}wg.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 Dg=[-1e5,-1e5,1e5,1e5];function Eg(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"}Oe(wg,qr,{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]]:Dg;const a=this.value=m.Delaunay.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])?Eg(t):null}var o;return t.reflow(e.modified()).modifies(n)}});var Cg=Object.freeze({__proto__:null,voronoi:wg}),Fg=Math.PI/180,Mg=64,Sg=2048;function Bg(){var e,t,n,r,i,a,o,s=[256,256],u=Tg,l=[],c=Math.random,d={};function f(e,t,n){for(var r,i,a,o=t.x,l=t.y,d=Math.hypot(s[0],s[1]),f=u(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=l+a,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>s[0]||t.y+t.y1>s[1])&&(!n||!Rg(t,e,s[0]))&&(!n||$g(t,n))){for(var m,g=t.sprite,y=t.width>>5,v=s[0]>>5,b=t.x-(y<<4),x=127&b,_=32-x,k=t.y1-t.y0,A=(t.y+t.y0)*v+(b>>5),w=0;w<k;w++){m=0;for(var D=0;D<=y;D++)e[A+D]|=m<<_|(D<y?(m=g[w*y+D])>>>x:0);A+=v}return t.sprite=null,!0}return!1}return d.layout=function(){for(var u=function(e){e.width=e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);e.width=(Mg<<5)/t,e.height=Sg/t;var n=e.getContext("2d");return n.fillStyle=n.strokeStyle="red",n.textAlign="center",{context:n,ratio:t}}(ao()),d=function(e){var t=[],n=-1;for(;++n<e;)t[n]=0;return t}((s[0]>>5)*s[1]),h=null,p=l.length,m=-1,g=[],y=l.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 v=y[m];v.x=s[0]*(c()+.5)>>1,v.y=s[1]*(c()+.5)>>1,Og(u,v,y,m),v.hasText&&f(d,v,h)&&(g.push(v),h?zg(h,v):h=[{x:v.x+v.x0,y:v.y+v.y0},{x:v.x+v.x1,y:v.y+v.y1}],v.x-=s[0]>>1,v.y-=s[1]>>1)}return g},d.words=function(e){return arguments.length?(l=e,d):l},d.size=function(e){return arguments.length?(s=[+e[0],+e[1]],d):s},d.font=function(e){return arguments.length?(t=qg(e),d):t},d.fontStyle=function(e){return arguments.length?(r=qg(e),d):r},d.fontWeight=function(e){return arguments.length?(i=qg(e),d):i},d.rotate=function(e){return arguments.length?(a=qg(e),d):a},d.text=function(t){return arguments.length?(e=qg(t),d):e},d.spiral=function(e){return arguments.length?(u=Lg[e]||e,d):u},d.fontSize=function(e){return arguments.length?(n=qg(e),d):n},d.padding=function(e){return arguments.length?(o=qg(e),d):o},d.random=function(e){return arguments.length?(c=e,d):c},d}function Og(e,t,n,r){if(!t.sprite){var i=e.context,a=e.ratio;i.clearRect(0,0,(Mg<<5)/a,Sg/a);var o,s,u,l,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,u=t.size<<1,t.rotate){var m=Math.sin(t.rotate*Fg),g=Math.cos(t.rotate*Fg),y=o*g,v=o*m,b=u*g,x=u*m;o=Math.max(Math.abs(y+x),Math.abs(y-x))+31>>5<<5,u=~~Math.max(Math.abs(v+b),Math.abs(v-b))}else o=o+31>>5<<5;if(u>h&&(h=u),d+o>=Mg<<5&&(d=0,f+=h,h=0),f+u>=Sg)break;i.translate((d+(o>>1))/a,(f+(u>>1))/a),t.rotate&&i.rotate(t.rotate*Fg),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=u,t.xoff=d,t.yoff=f,t.x1=o>>1,t.y1=u>>1,t.x0=-t.x1,t.y0=-t.y1,t.hasText=!0,d+=o}for(var _=i.getImageData(0,0,(Mg<<5)/a,Sg/a).data,k=[];--r>=0;)if((t=n[r]).hasText){for(s=(o=t.width)>>5,u=t.y1-t.y0,l=0;l<u*s;l++)k[l]=0;if(null==(d=t.xoff))return;f=t.yoff;var A=0,w=-1;for(c=0;c<u;c++){for(l=0;l<o;l++){var D=s*c+(l>>5),E=_[(f+c)*(Mg<<5)+(d+l)<<2]?1<<31-l%32:0;k[D]|=E,A|=E}A?w=c:(t.y0++,u--,c--,f++)}t.y1=t.y0+w,t.sprite=k.slice(0,(t.y1-t.y0)*s)}}}function Rg(e,t,n){n>>=5;for(var r,i=e.sprite,a=e.width>>5,o=e.x-(a<<4),s=127&o,u=32-s,l=e.y1-e.y0,c=(e.y+e.y0)*n+(o>>5),d=0;d<l;d++){r=0;for(var f=0;f<=a;f++)if((r<<u|(f<a?(r=i[d*a+f])>>>s:0))&t[c+f])return!0;c+=n}return!1}function zg(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 $g(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 Tg(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function qg(e){return"function"==typeof e?e:function(){return e}}var Lg={archimedean:Tg,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 Ng=["x","y","font","fontSize","fontStyle","fontWeight","angle"],Pg=["text","font","rotate","fontSize","fontStyle","fontWeight"];function Ug(e){qr.call(this,Bg(),e)}Ug.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:Ng}]},Oe(Ug,qr,{transform(t,n){!t.size||t.size[0]&&t.size[1]||E("Wordcloud size dimensions must be non-zero.");const r=t.modified();if(!(r||n.changed(n.ADD_REM)||Pg.some((function(e){const r=t[e];return me(r)&&n.modified(r.fields)}))))return;const i=n.materialize(n.SOURCE).source,a=this.value,o=t.as||Ng;let s,u=t.fontSize||14;if(me(u)?s=t.fontSizeRange:u=ke(u),s){const e=u,t=Yo("sqrt")().domain(De(i,e)).range(s);u=n=>t(e(n))}i.forEach((e=>{e[o[0]]=NaN,e[o[1]]=NaN,e[o[3]]=0}));const l=a.words(i).text(t.text).size(t.size||[500,500]).padding(t.padding||1).spiral(t.spiral||"archimedean").rotate(t.rotate||0).font(t.font||"sans-serif").fontStyle(t.fontStyle||"normal").fontWeight(t.fontWeight||"normal").fontSize(u).random(e.random).layout(),c=a.size(),d=c[0]>>1,f=c[1]>>1,h=l.length;for(let e,t,n=0;n<h;++n)e=l[n],t=e.datum,t[o[0]]=e.x+d,t[o[1]]=e.y+f,t[o[2]]=e.font,t[o[3]]=e.size,t[o[4]]=e.style,t[o[5]]=e.weight,t[o[6]]=e.rotate;return n.reflow(r).modifies(o)}});var jg=Object.freeze({__proto__:null,wordcloud:Ug});const Ig=e=>new Uint8Array(e),Wg=e=>new Uint16Array(e),Gg=e=>new Uint32Array(e);function Hg(e,t,n){const r=(t<257?Ig:t<65537?Wg:Gg)(e);return n&&r.set(n),r}function Vg(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],u=a.length;let l;for(l=0;l<o;++l)t[a[l]]|=r;for(l=s;l<u;++l)t[a[l]]|=r;return n}}}function Yg(){let e=Gg(0),t=[],n=0;return{insert:function(i,a,o){if(!a.length)return[];const s=n,u=a.length,l=Gg(u);let c,d,f,h=Array(u);for(f=0;f<u;++f)h[f]=i(a[f]),l[f]=f;if(h=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})),r.permute(e,t)}(h,l),s)c=t,d=e,t=Array(s+u),e=Gg(s+u),function(e,t,n,r,i,a,o,s,u){let l,c=0,d=0;for(l=0;c<r&&d<o;++l)t[c]<i[d]?(s[l]=t[c],u[l]=n[c++]):(s[l]=i[d],u[l]=a[d++]+e);for(;c<r;++c,++l)s[l]=t[c],u[l]=n[c];for(;d<o;++d,++l)s[l]=i[d],u[l]=a[d]+e}(o,c,d,s,h,l,u,t,e);else{if(o>0)for(f=0;f<u;++f)l[f]+=o;t=h,e=l}return n=s+u,{index:l,value:h}},remove:function(r,i){const a=n;let o,s,u;for(s=0;!i[e[s]]&&s<a;++s);for(u=s;s<a;++s)i[o=e[s]]||(e[u]=o,t[u]=t[s],++u);n=a-r},bisect:function(e,i){let a;return i?a=i.length:(i=t,a=n),[r.bisectLeft(i,e[0],0,a),r.bisectRight(i,e[1],0,a)]},reindex:function(t){for(let r=0,i=n;r<i;++r)e[r]=t[e[r]]},index:()=>e,size:()=>n}}function Xg(e){qr.call(this,function(){let e=8,t=[],n=Gg(0),r=Hg(0,e),i=Hg(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 u,l,c;for(l=0;!n[l]&&l<a;++l)o[l]=t[l],s[l]=l;for(c=l;l<a;++l)u=t[l],n[l]?s[l]=-1:(s[l]=c,r[c]=r[l],i[c]=i[l],o[c]=u,u._index=c++),r[l]=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=Hg(t,e,r),i=Hg(t,e))}}}(),e),this._indices=null,this._dims=null}function Jg(e){qr.call(this,null,e)}Xg.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}}]},Oe(Xg,qr,{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,u,l=0;for(;l<o;++l)s=n[l].fname,u=i[s]||(i[s]=Yg()),a.push(Vg(u,l,r[l]));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,u=s.curr(),l=s.prev(),c=s.all(),d=n.rem=n.add,f=n.mod,h=i.length,p={};let m,g,y,v,b,x,_,k,A;if(l.set(u),t.rem.length&&(b=this.remove(e,t,n)),t.add.length&&s.add(t.add),t.mod.length)for(x={},v=t.mod,_=0,k=v.length;_<k;++_)x[v[_]._index]=1;for(_=0;_<h;++_)A=r[_],(!o[_]||e.modified("fields",_)||t.modified(A.fields))&&(y=A.fname,(m=p[y])||(a[y]=g=Yg(),p[y]=m=g.insert(A,t.source,0)),o[_]=Vg(g,_,i[_]).onAdd(m,u));for(_=0,k=s.data().length;_<k;++_)b[_]||(l[_]!==u[_]?d.push(_):x[_]&&u[_]!==c&&f.push(_));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,u={},l=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(),v=i.all();for(f=0;f<d;++f)h=s[f].fname,p=u[h]||(u[h]=o[h].insert(s[f],r,m)),a[f].onAdd(p,g);for(;m<c;++m)y[m]=v,g[m]!==v&&l.push(m)},modify(e,t){const n=t.mod,r=this.value,i=r.curr(),a=r.all(),o=e.mod;let s,u,l;for(s=0,u=o.length;s<u;++s)l=o[s]._index,i[l]!==a&&n.push(l)},remove(e,t,n){const r=this._indices,i=this.value,a=i.curr(),o=i.prev(),s=i.all(),u={},l=n.rem,c=t.rem;let d,f,h,p;for(d=0,f=c.length;d<f;++d)h=c[d]._index,u[h]=1,o[h]=p=a[h],a[h]=s,p!==s&&l.push(h);for(h in r)r[h].remove(f,u);return this.reindex(t,f,u),u},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,u,l=0;for(n.filters=0,u=0;u<o;++u)e.modified("query",u)&&(s=u,++l);if(1===l)l=r[s].one,this.incrementOne(r[s],i[s],n.add,n.rem);else for(u=0,l=0;u<o;++u)e.modified("query",u)&&(l|=r[u].one,this.incrementAll(r[u],i[u],a,n.add),n.rem=n.add);return l},incrementAll(e,t,n,r){const i=this.value,a=i.seen(),o=i.curr(),s=i.prev(),u=e.index(),l=e.bisect(e.range),c=e.bisect(t),d=c[0],f=c[1],h=l[0],p=l[1],m=e.one;let g,y,v;if(d<h)for(g=d,y=Math.min(h,f);g<y;++g)v=u[g],a[v]!==n&&(s[v]=o[v],a[v]=n,r.push(v)),o[v]^=m;else if(d>h)for(g=h,y=Math.min(d,p);g<y;++g)v=u[g],a[v]!==n&&(s[v]=o[v],a[v]=n,r.push(v)),o[v]^=m;if(f>p)for(g=Math.max(d,p),y=f;g<y;++g)v=u[g],a[v]!==n&&(s[v]=o[v],a[v]=n,r.push(v)),o[v]^=m;else if(f<p)for(g=Math.max(h,f),y=p;g<y;++g)v=u[g],a[v]!==n&&(s[v]=o[v],a[v]=n,r.push(v)),o[v]^=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),u=s[0],l=s[1],c=o[0],d=o[1],f=e.one;let h,p,m;if(u<c)for(h=u,p=Math.min(c,l);h<p;++h)m=a[h],i[m]^=f,n.push(m);else if(u>c)for(h=c,p=Math.min(u,d);h<p;++h)m=a[h],i[m]^=f,r.push(m);if(l>d)for(h=Math.max(u,d),p=l;h<p;++h)m=a[h],i[m]^=f,n.push(m);else if(l<d)for(h=Math.max(c,l),p=d;h<p;++h)m=a[h],i[m]^=f,r.push(m);e.range=t.slice()}}),Jg.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."}]},Oe(Jg,qr,{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(),u=r.prev(),l=e=>s[e]&n?null:o[e];return a.filter(a.MOD,l),i&i-1?(a.filter(a.ADD,(e=>{const t=s[e]&n;return!t&&t^u[e]&n?o[e]:null})),a.filter(a.REM,(e=>{const t=s[e]&n;return t&&!(t^t^u[e]&n)?o[e]:null}))):(a.filter(a.ADD,l),a.filter(a.REM,(e=>(s[e]&n)===i?o[e]:null))),a.filter(a.SOURCE,(e=>l(e._index)))}});var Qg=Object.freeze({__proto__:null,crossfilter:Xg,resolvefilter:Jg});const Kg="Literal",Zg="Property",ey="ArrayExpression",ty="BinaryExpression",ny="CallExpression",ry="ConditionalExpression",iy="LogicalExpression",ay="MemberExpression",oy="ObjectExpression",sy="UnaryExpression";function uy(e){this.type=e}var ly,cy,dy,fy,hy;uy.prototype.visit=function(e){let t,n,r;if(e(this))return 1;for(t=function(e){switch(e.type){case ey:return e.elements;case ty:case iy:return[e.left,e.right];case ny:return[e.callee].concat(e.arguments);case ry:return[e.test,e.consequent,e.alternate];case ay:return[e.object,e.property];case oy:return e.properties;case Zg:return[e.key,e.value];case sy:return[e.argument];default:return[]}}(this),n=0,r=t.length;n<r;++n)if(t[n].visit(e))return 1};var py=1,my=2,gy=3,yy=4,vy=5,by=6,xy=7,_y=8;(ly={})[py]="Boolean",ly[my]="<end>",ly[gy]="Identifier",ly[yy]="Keyword",ly[vy]="Null",ly[by]="Numeric",ly[xy]="Punctuator",ly[_y]="String",ly[9]="RegularExpression";var ky="ArrayExpression",Ay="BinaryExpression",wy="CallExpression",Dy="ConditionalExpression",Ey="Identifier",Cy="Literal",Fy="LogicalExpression",My="MemberExpression",Sy="ObjectExpression",By="Property",Oy="UnaryExpression",Ry="Unexpected token %0",zy="Unexpected number",$y="Unexpected string",Ty="Unexpected identifier",qy="Unexpected reserved word",Ly="Unexpected end of input",Ny="Invalid regular expression",Py="Invalid regular expression: missing /",Uy="Octal literals are not allowed in strict mode.",jy="Duplicate data property in object literal not allowed in strict mode",Iy="ILLEGAL",Wy="Disabled.",Gy=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]"),Hy=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 Vy(e,t){if(!e)throw new Error("ASSERT: "+t)}function Yy(e){return e>=48&&e<=57}function Xy(e){return"0123456789abcdefABCDEF".includes(e)}function Jy(e){return"01234567".includes(e)}function Qy(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 Ky(e){return 10===e||13===e||8232===e||8233===e}function Zy(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&Gy.test(String.fromCharCode(e))}function ev(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&Hy.test(String.fromCharCode(e))}const tv={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 nv(){for(;dy<fy;){const e=cy.charCodeAt(dy);if(!Qy(e)&&!Ky(e))break;++dy}}function rv(e){var t,n,r,i=0;for(n="u"===e?4:2,t=0;t<n;++t)dy<fy&&Xy(cy[dy])?(r=cy[dy++],i=16*i+"0123456789abcdef".indexOf(r.toLowerCase())):bv({},Ry,Iy);return String.fromCharCode(i)}function iv(){var e,t,n,r;for(t=0,"}"===(e=cy[dy])&&bv({},Ry,Iy);dy<fy&&Xy(e=cy[dy++]);)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&bv({},Ry,Iy),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),r=56320+(t-65536&1023),String.fromCharCode(n,r))}function av(){var e,t;for(e=cy.charCodeAt(dy++),t=String.fromCharCode(e),92===e&&(117!==cy.charCodeAt(dy)&&bv({},Ry,Iy),++dy,(e=rv("u"))&&"\\"!==e&&Zy(e.charCodeAt(0))||bv({},Ry,Iy),t=e);dy<fy&&ev(e=cy.charCodeAt(dy));)++dy,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==cy.charCodeAt(dy)&&bv({},Ry,Iy),++dy,(e=rv("u"))&&"\\"!==e&&ev(e.charCodeAt(0))||bv({},Ry,Iy),t+=e);return t}function ov(){var e,t;return e=dy,t=92===cy.charCodeAt(dy)?av():function(){var e,t;for(e=dy++;dy<fy;){if(92===(t=cy.charCodeAt(dy)))return dy=e,av();if(!ev(t))break;++dy}return cy.slice(e,dy)}(),{type:1===t.length?gy:tv.hasOwnProperty(t)?yy:"null"===t?vy:"true"===t||"false"===t?py:gy,value:t,start:e,end:dy}}function sv(){var e,t,n,r,i=dy,a=cy.charCodeAt(dy),o=cy[dy];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++dy,{type:xy,value:String.fromCharCode(a),start:i,end:dy};default:if(61===(e=cy.charCodeAt(dy+1)))switch(a){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return dy+=2,{type:xy,value:String.fromCharCode(a)+String.fromCharCode(e),start:i,end:dy};case 33:case 61:return dy+=2,61===cy.charCodeAt(dy)&&++dy,{type:xy,value:cy.slice(i,dy),start:i,end:dy}}}return">>>="===(r=cy.substr(dy,4))?{type:xy,value:r,start:i,end:dy+=4}:">>>"===(n=r.substr(0,3))||"<<="===n||">>="===n?{type:xy,value:n,start:i,end:dy+=3}:o===(t=n.substr(0,2))[1]&&"+-<>&|".includes(o)||"=>"===t?{type:xy,value:t,start:i,end:dy+=2}:("//"===t&&bv({},Ry,Iy),"<>=!+-*%&|^/".includes(o)?(++dy,{type:xy,value:o,start:i,end:dy}):void bv({},Ry,Iy))}function uv(){var e,t,n;if(Vy(Yy((n=cy[dy]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),t=dy,e="","."!==n){if(e=cy[dy++],n=cy[dy],"0"===e){if("x"===n||"X"===n)return++dy,function(e){let t="";for(;dy<fy&&Xy(cy[dy]);)t+=cy[dy++];return 0===t.length&&bv({},Ry,Iy),Zy(cy.charCodeAt(dy))&&bv({},Ry,Iy),{type:by,value:parseInt("0x"+t,16),start:e,end:dy}}(t);if(Jy(n))return function(e){let t="0"+cy[dy++];for(;dy<fy&&Jy(cy[dy]);)t+=cy[dy++];return(Zy(cy.charCodeAt(dy))||Yy(cy.charCodeAt(dy)))&&bv({},Ry,Iy),{type:by,value:parseInt(t,8),octal:!0,start:e,end:dy}}(t);n&&Yy(n.charCodeAt(0))&&bv({},Ry,Iy)}for(;Yy(cy.charCodeAt(dy));)e+=cy[dy++];n=cy[dy]}if("."===n){for(e+=cy[dy++];Yy(cy.charCodeAt(dy));)e+=cy[dy++];n=cy[dy]}if("e"===n||"E"===n)if(e+=cy[dy++],"+"!==(n=cy[dy])&&"-"!==n||(e+=cy[dy++]),Yy(cy.charCodeAt(dy)))for(;Yy(cy.charCodeAt(dy));)e+=cy[dy++];else bv({},Ry,Iy);return Zy(cy.charCodeAt(dy))&&bv({},Ry,Iy),{type:by,value:parseFloat(e),start:t,end:dy}}function lv(){var e,t,n,r;return hy=null,nv(),e=dy,t=function(){var e,t,n,r;for(Vy("/"===(e=cy[dy]),"Regular expression literal must start with a slash"),t=cy[dy++],n=!1,r=!1;dy<fy;)if(t+=e=cy[dy++],"\\"===e)Ky((e=cy[dy++]).charCodeAt(0))&&bv({},Py),t+=e;else if(Ky(e.charCodeAt(0)))bv({},Py);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}return r||bv({},Py),{value:t.substr(1,t.length-2),literal:t}}(),n=function(){var e,t,n;for(t="",n="";dy<fy&&ev((e=cy[dy]).charCodeAt(0));)++dy,"\\"===e&&dy<fy?bv({},Ry,Iy):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&bv({},Ny,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";bv({},Ny)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch(e){bv({},Ny)}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:dy}}function cv(){if(nv(),dy>=fy)return{type:my,start:dy,end:dy};const e=cy.charCodeAt(dy);return Zy(e)?ov():40===e||41===e||59===e?sv():39===e||34===e?function(){var e,t,n,r,i="",a=!1;for(Vy("'"===(e=cy[dy])||'"'===e,"String literal must starts with a quote"),t=dy,++dy;dy<fy;){if((n=cy[dy++])===e){e="";break}if("\\"===n)if((n=cy[dy++])&&Ky(n.charCodeAt(0)))"\r"===n&&"\n"===cy[dy]&&++dy;else switch(n){case"u":case"x":"{"===cy[dy]?(++dy,i+=iv()):i+=rv(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:Jy(n)?(0!==(r="01234567".indexOf(n))&&(a=!0),dy<fy&&Jy(cy[dy])&&(a=!0,r=8*r+"01234567".indexOf(cy[dy++]),"0123".includes(n)&&dy<fy&&Jy(cy[dy])&&(r=8*r+"01234567".indexOf(cy[dy++]))),i+=String.fromCharCode(r)):i+=n}else{if(Ky(n.charCodeAt(0)))break;i+=n}}return""!==e&&bv({},Ry,Iy),{type:_y,value:i,octal:a,start:t,end:dy}}():46===e?Yy(cy.charCodeAt(dy+1))?uv():sv():Yy(e)?uv():sv()}function dv(){const e=hy;return dy=e.end,hy=cv(),dy=e.end,e}function fv(){const e=dy;hy=cv(),dy=e}function hv(e,t,n){const r=new uy("||"===e||"&&"===e?Fy:Ay);return r.operator=e,r.left=t,r.right=n,r}function pv(e,t){const n=new uy(wy);return n.callee=e,n.arguments=t,n}function mv(e){const t=new uy(Ey);return t.name=e,t}function gv(e){const t=new uy(Cy);return t.value=e.value,t.raw=cy.slice(e.start,e.end),e.regex&&("//"===t.raw&&(t.raw="/(?:)/"),t.regex=e.regex),t}function yv(e,t,n){const r=new uy(My);return r.computed="["===e,r.object=t,r.property=n,r.computed||(n.member=!0),r}function vv(e,t,n){const r=new uy(By);return r.key=t,r.value=n,r.kind=e,r}function bv(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,((e,t)=>(Vy(t<r.length,"Message reference must be in range"),r[t])));throw(n=new Error(i)).index=dy,n.description=i,n}function xv(e){e.type===my&&bv(e,Ly),e.type===by&&bv(e,zy),e.type===_y&&bv(e,$y),e.type===gy&&bv(e,Ty),e.type===yy&&bv(e,qy),bv(e,Ry,e.value)}function _v(e){const t=dv();t.type===xy&&t.value===e||xv(t)}function kv(e){return hy.type===xy&&hy.value===e}function Av(e){return hy.type===yy&&hy.value===e}function wv(){const e=[];for(dy=hy.start,_v("[");!kv("]");)kv(",")?(dv(),e.push(null)):(e.push(Tv()),kv("]")||_v(","));return dv(),function(e){const t=new uy(ky);return t.elements=e,t}(e)}function Dv(){dy=hy.start;const e=dv();return e.type===_y||e.type===by?(e.octal&&bv(e,Uy),gv(e)):mv(e.value)}function Ev(){var e,t,n;return dy=hy.start,(e=hy).type===gy?(n=Dv(),_v(":"),vv("init",n,Tv())):e.type!==my&&e.type!==xy?(t=Dv(),_v(":"),vv("init",t,Tv())):void xv(e)}function Cv(){var e,t,n=[],r={},i=String;for(dy=hy.start,_v("{");!kv("}");)t="$"+((e=Ev()).key.type===Ey?e.key.name:i(e.key.value)),Object.prototype.hasOwnProperty.call(r,t)?bv({},jy):r[t]=!0,n.push(e),kv("}")||_v(",");return _v("}"),function(e){const t=new uy(Sy);return t.properties=e,t}(n)}const Fv={if:1};function Mv(){var e,t,n;if(kv("("))return function(){_v("(");const e=qv();return _v(")"),e}();if(kv("["))return wv();if(kv("{"))return Cv();if(e=hy.type,dy=hy.start,e===gy||Fv[hy.value])n=mv(dv().value);else if(e===_y||e===by)hy.octal&&bv(hy,Uy),n=gv(dv());else{if(e===yy)throw new Error(Wy);e===py?((t=dv()).value="true"===t.value,n=gv(t)):e===vy?((t=dv()).value=null,n=gv(t)):kv("/")||kv("/=")?(n=gv(lv()),fv()):xv(dv())}return n}function Sv(){const e=[];if(_v("("),!kv(")"))for(;dy<fy&&(e.push(Tv()),!kv(")"));)_v(",");return _v(")"),e}function Bv(){dy=hy.start;const e=dv();return function(e){return e.type===gy||e.type===yy||e.type===py||e.type===vy}(e)||xv(e),mv(e.value)}function Ov(){_v("[");const e=qv();return _v("]"),e}function Rv(){const e=function(){var e;for(e=Mv();;)if(kv("."))_v("."),e=yv(".",e,Bv());else if(kv("("))e=pv(e,Sv());else{if(!kv("["))break;e=yv("[",e,Ov())}return e}();if(hy.type===xy&&(kv("++")||kv("--")))throw new Error(Wy);return e}function zv(){var e,t;if(hy.type!==xy&&hy.type!==yy)t=Rv();else{if(kv("++")||kv("--"))throw new Error(Wy);if(kv("+")||kv("-")||kv("~")||kv("!"))e=dv(),t=zv(),t=function(e,t){const n=new uy(Oy);return n.operator=e,n.argument=t,n.prefix=!0,n}(e.value,t);else{if(Av("delete")||Av("void")||Av("typeof"))throw new Error(Wy);t=Rv()}}return t}function $v(e){let t=0;if(e.type!==xy&&e.type!==yy)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 Tv(){var e,t;return e=function(){var e,t,n,r,i,a,o,s,u,l;if(e=hy,u=zv(),0===(i=$v(r=hy)))return u;for(r.prec=i,dv(),t=[e,hy],a=[u,r,o=zv()];(i=$v(hy))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,u=a.pop(),t.pop(),n=hv(s,u,o),a.push(n);(r=dv()).prec=i,a.push(r),t.push(hy),n=zv(),a.push(n)}for(n=a[l=a.length-1],t.pop();l>1;)t.pop(),n=hv(a[l-1].value,a[l-2],n),l-=2;return n}(),kv("?")&&(dv(),t=Tv(),_v(":"),e=function(e,t,n){const r=new uy(Dy);return r.test=e,r.consequent=t,r.alternate=n,r}(e,t,Tv())),e}function qv(){const e=Tv();if(kv(","))throw new Error(Wy);return e}function Lv(e){dy=0,fy=(cy=e).length,hy=null,fv();const t=qv();if(hy.type!==my)throw new Error("Unexpect token after expression.");return t}var Nv={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 Pv(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),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]+")"}}}function Uv(e){const t=(e=e||{}).allowed?Ke(e.allowed):{},n=e.forbidden?Ke(e.forbidden):{},r=e.constants||Nv,i=(e.functions||Pv)(d),a=e.globalvar,o=e.fieldvar,s=me(a)?a:e=>`${a}["${e}"]`;let u={},l={},c=0;function d(e){if(Ne(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:Fe(n,i)?E("Illegal identifier: "+i):Fe(r,i)?r[i]:Fe(t,i)?i:(u[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&&(l[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=Fe(i,t)&&i[t];return r||E("Unrecognized function: "+t),me(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=>"{"+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(u),fields:Object.keys(l)};return u={},l={},t}return h.functions=i,h.constants=r,h}const jv=Symbol("vega_selection_getter");function Iv(e){return e.getter&&e.getter[jv]||(e.getter=F(e.field),e.getter[jv]=!0),e.getter}const Wv="intersect",Gv="union",Hv="_vgsid_",Vv=F(Hv),Yv="E",Xv="R",Jv="R-E",Qv="R-LE",Kv="R-RE",Zv="index:unit";function eb(e,t){for(var n,r,i=t.fields,a=t.values,o=i.length,s=0;s<o;++s)if($e(n=Iv(r=i[s])(e))&&(n=X(n)),$e(a[s])&&(a[s]=X(a[s])),j(a[s])&&$e(a[s][0])&&(a[s]=a[s].map(X)),r.type===Yv){if(j(a[s])?!a[s].includes(n):n!==a[s])return!1}else if(r.type===Xv){if(!Re(n,a[s]))return!1}else if(r.type===Kv){if(!Re(n,a[s],!0,!1))return!1}else if(r.type===Jv){if(!Re(n,a[s],!1,!1))return!1}else if(r.type===Qv&&!Re(n,a[s],!1,!0))return!1;return!0}const tb=r.bisector(Vv),nb=tb.left,rb=tb.right;var ib={[`${Hv}_union`]:r.union,[`${Hv}_intersect`]:r.intersection,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=X(t[0]),r=X(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=X(t[0]),r=X(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 ab(e,t,n,r){t[0].type!==Kg&&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&&Y(t).value)!==Wv||Fe(r,o)||(r[o]=n.getData(i).indataRef(n,a)),Fe(r,s)||(r[s]=n.getData(i).tuplesRef())}function ob(e){const t=this.context.data[e];return t?t.values.value:[]}const sb=e=>function(t,n){const r=this.context.dataflow.locale();return null===t?"null":r[e](n)(t)},ub=sb("format"),lb=sb("timeFormat"),cb=sb("utcFormat"),db=sb("timeParse"),fb=sb("utcParse"),hb=new Date(2e3,0,1);function pb(e,t,n){return Number.isInteger(e)&&Number.isInteger(t)?(hb.setYear(2e3),hb.setMonth(e),hb.setDate(t),lb.call(this,hb,n)):""}const mb="%",gb="$";function yb(e,t,n,r){t[0].type!==Kg&&E("First argument to data functions must be a string literal.");const i=t[0].value,a=":"+i;if(!Fe(a,r))try{r[a]=n.getData(i).tuplesRef()}catch(e){}}function vb(e,t,n,r){if(t[0].type===Kg)bb(n,r,t[0].value);else for(e in n.scales)bb(n,r,e)}function bb(e,t,n){const r=mb+n;if(!Fe(t,r))try{t[r]=e.scaleRef(n)}catch(e){}}function xb(e,t){if(me(e))return e;if(Ne(e)){const n=t.scales[e];return n&&function(e){return e&&!0===e[Ho]}(n.value)?n.value:void 0}}function _b(e,t,n){t.__bandwidth=e=>e&&e.bandwidth?e.bandwidth():0,n._bandwidth=vb,n._range=vb,n._scale=vb;const r=t=>"_["+(t.type===Kg?Ve(mb+t.value):Ve(mb)+"+"+e(t))+"]";return{_bandwidth:e=>`this.__bandwidth(${r(e[0])})`,_range:e=>`${r(e[0])}.range()`,_scale:t=>`${r(t[0])}(${e(t[1])})`}}function kb(e,t){return function(n,r,i){if(n){const t=xb(n,(i||this).context);return t&&t.path[e](r)}return t(r)}}const Ab=kb("area",d.geoArea),wb=kb("bounds",d.geoBounds),Db=kb("centroid",d.geoCentroid);function Eb(e,t,n){try{e[t].apply(e,["EXPRESSION"].concat([].slice.call(n)))}catch(t){e.warn(t)}return n[n.length-1]}function Cb(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Fb(e){const t=f.rgb(e);return.2126*Cb(t.r)+.7152*Cb(t.g)+.0722*Cb(t.b)}function Mb(e,t){return e===t||e!=e&&t!=t||(j(e)?!(!j(t)||e.length!==t.length)&&function(e,t){for(let n=0,r=e.length;n<r;++n)if(!Mb(e[n],t[n]))return!1;return!0}(e,t):!(!I(e)||!I(t))&&Sb(e,t))}function Sb(e,t){for(const n in e)if(!Mb(e[n],t[n]))return!1;return!0}function Bb(e){return t=>Sb(e,t)}const Ob={};function Rb(e){return j(e)||ArrayBuffer.isView(e)?e:null}function zb(e){return Rb(e)||(Ne(e)?e:null)}const $b=e=>e.data;function Tb(e,t){const n=ob.call(t,e);return n.root&&n.root.lookup||{}}const qb=()=>"undefined"!=typeof window&&window||null;function Lb(e,t,n){if(!e)return[];const[r,i]=e,a=(new Tu).set(r[0],r[1],i[0],i[1]);return kf(n||this.context.dataflow.scenegraph().root,a,function(e){let t=null;if(e){const n=he(e.marktype),r=he(e.markname);t=e=>(!n.length||n.some((t=>e.marktype===t)))&&(!r.length||r.some((t=>e.name===t)))}return t}(t))}const Nb={random:()=>e.random(),cumulativeNormal:Zr,cumulativeLogNormal:ai,cumulativeUniform:di,densityNormal:Kr,densityLogNormal:ii,densityUniform:ci,quantileNormal:ei,quantileLogNormal:oi,quantileUniform:fi,sampleNormal:Qr,sampleLogNormal:ri,sampleUniform:li,isArray:j,isBoolean:ze,isDate:$e,isDefined:e=>void 0!==e,isNumber:qe,isObject:I,isRegExp:Le,isString:Ne,isTuple:rr,isValid:e=>null!=e&&e==e,toBoolean:Ye,toDate:e=>Je(e),toNumber:X,toString:Qe,indexof:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return zb(e).indexOf(...n)},join:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return Rb(e).join(...n)},lastindexof:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return zb(e).lastIndexOf(...n)},replace:function(e,t,n){return me(n)&&E("Function argument passed to replace."),String(e).replace(t,n)},reverse:function(e){return Rb(e).slice().reverse()},slice:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return zb(e).slice(...n)},flush:Be,lerp:Ue,merge:function(){const e=[].slice.call(arguments);return e.unshift({}),we(...e)},pad:Ge,peek:Y,pluck:function(e,t){const n=Ob[t]||(Ob[t]=F(t));return j(e)?e.map(n):n(e)},span:He,inrange:Re,truncate:Ze,rgb:f.rgb,lab:f.lab,hcl:f.hcl,hsl:f.hsl,luminance:Fb,contrast:function(e,t){const n=Fb(e),r=Fb(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)},sequence:r.range,format:ub,utcFormat:cb,utcParse:fb,utcOffset:Gt,utcSequence:Yt,timeFormat:lb,timeParse:db,timeOffset:Wt,timeSequence:Vt,timeUnitSpecifier:gt,monthFormat:function(e){return pb.call(this,e,1,"%B")},monthAbbrevFormat:function(e){return pb.call(this,e,1,"%b")},dayFormat:function(e){return pb.call(this,0,2+e,"%A")},dayAbbrevFormat:function(e){return pb.call(this,0,2+e,"%a")},quarter:de,utcquarter:fe,week:xt,utcweek:Et,dayofyear:bt,utcdayofyear:Dt,warn:function(){return Eb(this.context.dataflow,"warn",arguments)},info:function(){return Eb(this.context.dataflow,"info",arguments)},debug:function(){return Eb(this.context.dataflow,"debug",arguments)},extent:e=>De(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:Lb,clampRange:pe,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=qb();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=qb();return e?[e.innerWidth,e.innerHeight]:[void 0,void 0]},bandspace:function(e,t,n){return bo(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(R).insert(t)),1},pathShape:function(e){let t=null;return function(n){return n?au(n,t=t||Ys(e)):e}},panLinear:ne,panLog:re,panPow:ie,panSymlog:ae,zoomLinear:se,zoomLog:ue,zoomPow:le,zoomSymlog:ce,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],u=s.input,l=o.stamp();let c,d,f=s.changes;if(!1===o._trigger||!(u.value.length||t||r))return 0;if((!f||f.stamp<l)&&(s.changes=f=o.changeset(),f.stamp=l,o.runAfter((()=>{s.modified=!0,o.pulse(u,f).run()}),!0,1)),n&&(c=!0===n?R:j(n)||rr(n)?n:Bb(n),f.remove(c)),t&&f.insert(t),r&&(c=Bb(r),u.value.some(c)?f.remove(c):f.insert(r)),i)for(d in a)f.modify(i,d,a[d]);return 1},lassoAppend:function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5;const i=(e=he(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 he(e).reduce(((t,n,r)=>{let[i,a]=n;return t+(0==r?`M ${i},${a} `:r===e.length-1?" Z":`L ${i},${a} `)}),"")},intersectLasso:function(e,t,n){const{x:r,y:i,mark:a}=n,o=(new Tu).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),Lb([[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],[u,l]=n[i];l>t!=s>t&&e<(o-u)*(t-l)/(s-l)+u&&r++}return 1&r}(e.x,e.y,t)))}},Pb=["view","item","group","xy","x","y"],Ub="this.",jb={},Ib={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:e=>`_[${Ve(gb+e)}]`,functions:function(e){const t=Pv(e);Pb.forEach((e=>t[e]="event.vega."+e));for(const e in Nb)t[e]=Ub+e;return we(t,_b(e,Nb,jb)),t},constants:Nv,visitors:jb},Wb=Uv(Ib);function Gb(e,t,n){return 1===arguments.length?Nb[e]:(Nb[e]=t,n&&(jb[e]=n),Wb&&(Wb.functions[e]=Ub+e),this)}function Hb(e,t){const n={};let r;try{r=Lv(e=Ne(e)?e:Ve(e)+"")}catch(t){E("Expression parse error: "+e)}r.visit((e=>{if(e.type!==ny)return;const r=e.callee.name,i=Ib.visitors[r];i&&i(r,e.arguments,t,n)}));const i=Wb(r);return i.globals.forEach((e=>{const r=gb+e;!Fe(n,r)&&t.getSignal(e)&&(n[r]=t.signalRef(e))})),{$expr:we({code:i.code},t.options.ast?{ast:r}:null),$fields:i.fields,$params:n}}Gb("bandwidth",(function(e,t){const n=xb(e,(t||this).context);return n&&n.bandwidth?n.bandwidth():0}),vb),Gb("copy",(function(e,t){const n=xb(e,(t||this).context);return n?n.copy():void 0}),vb),Gb("domain",(function(e,t){const n=xb(e,(t||this).context);return n?n.domain():[]}),vb),Gb("range",(function(e,t){const n=xb(e,(t||this).context);return n&&n.range?n.range():[]}),vb),Gb("invert",(function(e,t,n){const r=xb(e,(n||this).context);return r?j(t)?(r.invertRange||r.invert)(t):(r.invert||r.invertExtent)(t):void 0}),vb),Gb("scale",(function(e,t,n){const r=xb(e,(n||this).context);return r?r(t):void 0}),vb),Gb("gradient",(function(e,t,n,r,i){e=xb(e,(i||this).context);const a=Ps(t,n);let o=e.domain(),s=o[0],u=Y(o),l=S;return u-s?l=ss(e,s,u):e=(e.interpolator?Yo("sequential")().interpolator(e.interpolator()):Yo("linear")().interpolate(e.interpolate()).range(e.range())).domain([s=0,u=1]),e.ticks&&(o=e.ticks(+r||15),s!==o[0]&&o.unshift(s),u!==Y(o)&&o.push(u)),o.forEach((t=>a.stop(l(t),e(t)))),a}),vb),Gb("geoArea",Ab,vb),Gb("geoBounds",wb,vb),Gb("geoCentroid",Db,vb),Gb("geoShape",(function(e,t,n){const r=xb(e,(n||this).context);return function(e){return r?r.path.context(e)(t):""}}),vb),Gb("geoScale",(function(e,t){const n=xb(e,(t||this).context);return n&&n.scale()}),vb),Gb("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!==Kg&&E("First argument to indata must be a string literal."),t[1].type!==Kg&&E("Second argument to indata must be a string literal.");const i=t[0].value,a=t[1].value,o="@"+a;Fe(o,r)||(r[o]=n.getData(i).indataRef(n,a))})),Gb("data",ob,yb),Gb("treePath",(function(e,t,n){const r=Tb(e,this),i=r[t],a=r[n];return i&&a?i.path(a).map($b):void 0}),yb),Gb("treeAncestors",(function(e,t){const n=Tb(e,this)[t];return n?n.ancestors().map($b):void 0}),yb),Gb("vlSelectionTest",(function(e,t,n){for(var r,i,a,o,s,u=this.context.data[e],l=u?u.values.value:[],c=u?u[Zv]&&u[Zv].value:void 0,d=n===Wv,f=l.length,h=0;h<f;++h)if(r=l[h],c&&d){if(-1===(a=(i=i||{})[o=r.unit]||0))continue;if(s=eb(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=eb(t,r)))return s;return f&&d}),ab),Gb("vlSelectionIdTest",(function(e,t,n){const r=this.context.data[e],i=r?r.values.value:[],a=r?r[Zv]&&r[Zv].value:void 0,o=n===Wv,s=Vv(t),u=nb(i,s);if(u===i.length)return!1;if(Vv(i[u])!==s)return!1;if(a&&o){if(1===a.size)return!0;if(rb(i,s)-u<a.size)return!1}return!0}),ab),Gb("vlSelectionResolve",(function(e,t,n,r){for(var i,a,o,s,u,l,c,d,f,h,p,m,g=this.context.data[e],y=g?g.values.value:[],v={},b={},x={},_=y.length,k=0;k<_;++k)if(s=(i=y[k]).unit,a=i.fields,o=i.values,a&&o){for(p=0,m=a.length;p<m;++p)u=a[p],d=(c=v[u.field]||(v[u.field]={}))[s]||(c[s]=[]),x[u.field]=f=u.type.charAt(0),h=ib[`${f}_union`],c[s]=h(d,he(o[p]));n&&(d=b[s]||(b[s]=[])).push(he(o).reduce(((e,t,n)=>(e[a[n].field]=t,e)),{}))}else u=Hv,l=Vv(i),(d=(c=v[u]||(v[u]={}))[s]||(c[s]=[])).push(l),n&&(d=b[s]||(b[s]=[])).push({[Hv]:l});if(t=t||Gv,v[Hv]?v[Hv]=ib[`${Hv}_${t}`](...Object.values(v[Hv])):Object.keys(v).forEach((e=>{v[e]=Object.keys(v[e]).map((t=>v[e][t])).reduce(((n,r)=>void 0===n?r:ib[`${x[e]}_${t}`](n,r)))})),y=Object.keys(b),n&&y.length){v[r?"vlPoint":"vlMulti"]=t===Gv?{or:y.reduce(((e,t)=>(e.push(...b[t]),e)),[])}:{and:y.map((e=>({or:b[e]})))}}return v}),ab),Gb("vlSelectionTuples",(function(e,t){return e.map((e=>we(t.fields?{values:t.fields.map((t=>Iv(t)(e.datum)))}:{[Hv]:Vv(e.datum)},t)))}));const Vb=Ke(["rule"]),Yb=Ke(["group","image","rect"]);function Xb(e){return(e+"").toLowerCase()}function Jb(e,t,n){n.endsWith(";")||(n="return("+n+");");const r=Function(...t.concat(n));return e&&e.functions?r.bind(e.functions):r}var Qb={operator:(e,t)=>Jb(e,["_"],t.code),parameter:(e,t)=>Jb(e,["datum","_"],t.code),event:(e,t)=>Jb(e,["event"],t.code),handler:(e,t)=>Jb(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["+Ve(e)+"]";i+=`$=${r[e].code};if(${t}!==$)${t}=$,m=1;`}return i+=function(e,t){let n="";return Vb[t]||(e.x2&&(e.x?(Yb[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?(Yb[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;",Jb(e,["item","_"],i)},codegen:{get(e){const t=`[${e.map(Ve).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 Kb(e,t,n){if(!e||!I(e))return e;for(let r,i=0,a=Zb.length;i<a;++i)if(r=Zb[i],Fe(e,r.key))return r.parse(e,t,n);return e}var Zb=[{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]=Pe(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]=x(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]=F(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]=x(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=he(e.$compare).map((e=>e&&e.$tupleid?ir:e));return t.fn[n]||(t.fn[n]=ye(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 ir}}];const ex={skip:!0};function tx(e,t,n,r){return new nx(e,t,n,r)}function nx(e,t,n,r){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=r||Qb,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function rx(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 ix(e,t){e&&(null==t?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}nx.prototype=rx.prototype={fork(){const e=new rx(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),function(e){return"collect"===Xb(e)}(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[Xb(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;!function(e){return"operator"===Xb(e)}(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]=j(i)?i.map((e=>Kb(e,n,t))):Kb(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&&(i=(t=e.merge.map((e=>n.get(e))))[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=I(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],ex)})),Object.keys(r||{}).forEach((e=>{n.pulse(t.data[e].input,n.changeset().remove(R).insert(r[e]))})),(e.subcontext||[]).forEach(((e,n)=>{const r=t.subcontext[n];r&&r.setState(e)}))}};const ax="default";function ox(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 sx(e,t){var n=e._runtime.data;return Fe(n,t)||E("Unrecognized data set: "+t),n[t]}function ux(e,t){dr(t)||E("Second argument to changes must be a changeset.");const n=sx(this,e);return n.modified=!0,this.pulse(n.input,t)}function lx(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function cx(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function dx(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}function fx(e,t,n){var r,i,a=e._renderer,o=a&&a.canvas();return o&&(i=dx(e),(r=Yc(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;Ne(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:ke(e),item:ke(t||{}),group:i,xy:a,x:e=>a(e)[0],y:e=>a(e)[1]}}(e,n,r),t}const hx="view",px={trap:!1};function mx(e,t,n,r){e._eventListeners.push({type:n,sources:he(t),handler:r})}function gx(e,t,n){const r=e._eventConfig&&e._eventConfig[t];return!(!1===r||I(r)&&!r[n])||(e.warn(`Blocked ${t} ${n} event listener.`),!1)}function yx(e){return e.item}function vx(e){return e.item.mark.source}function bx(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function xx(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 _x="vega-bind",kx="vega-bind-name",Ax="vega-bind-radio";function wx(e,t,n,r){const i=n.event||"input",a=()=>e.update(t.value);r.signal(n.signal,t.value),t.addEventListener(i,a),mx(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 Dx(e,t,n,r){const i=r.signal(n.signal),a=xx("div",{class:_x}),o="radio"===n.input?a:a.appendChild(xx("label"));o.appendChild(xx("span",{class:kx},n.name||n.signal)),t.appendChild(a);let s=Ex;switch(n.input){case"checkbox":s=Cx;break;case"select":s=Fx;break;case"radio":s=Mx;break;case"range":s=Sx}s(e,o,n,i)}function Ex(e,t,n,r){const i=xx("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 Cx(e,t,n,r){const i={type:"checkbox",name:n.signal};r&&(i.checked=!0);const a=xx("input",i);t.appendChild(a),a.addEventListener("change",(()=>e.update(a.checked))),e.elements=[a],e.set=e=>a.checked=!!e||null}function Fx(e,t,n,r){const i=xx("select",{name:n.signal}),a=n.labels||[];n.options.forEach(((e,t)=>{const n={value:e};Bx(e,r)&&(n.selected=!0),i.appendChild(xx("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(Bx(n.options[t],e))return void(i.selectedIndex=t)}}function Mx(e,t,n,r){const i=xx("span",{class:Ax}),a=n.labels||[];t.appendChild(i),e.elements=n.options.map(((t,o)=>{const s={type:"radio",name:n.signal,value:t};Bx(t,r)&&(s.checked=!0);const u=xx("input",s);u.addEventListener("change",(()=>e.update(t)));const l=xx("label",{},(a[o]||t)+"");return l.prepend(u),i.appendChild(l),u})),e.set=t=>{const n=e.elements,r=n.length;for(let e=0;e<r;++e)Bx(n[e].value,t)&&(n[e].checked=!0)}}function Sx(e,t,n,i){i=void 0!==i?i:(+n.max+ +n.min)/2;const a=null!=n.max?n.max:Math.max(100,+i)||100,o=n.min||Math.min(0,a,+i)||0,s=n.step||r.tickStep(o,a,100),u=xx("input",{type:"range",name:n.signal,min:o,max:a,step:s});u.value=i;const l=xx("span",{},+i);t.appendChild(u),t.appendChild(l);const c=()=>{l.textContent=u.value,e.update(+u.value)};u.addEventListener("input",c),u.addEventListener("change",c),e.elements=[u],e.set=e=>{u.value=e,l.textContent=e}}function Bx(e,t){return e===t||e+""==t+""}function Ox(e,t,n,r,i,a){return(t=t||new r(e.loader())).initialize(n,lx(e),cx(e),dx(e),i,a).background(e.background())}function Rx(e,t){return t?function(){try{t.apply(this,arguments)}catch(t){e.error(t)}}:null}function zx(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 $x=e=>+e||0;function Tx(e){return I(e)?{top:$x(e.top),bottom:$x(e.bottom),left:$x(e.left),right:$x(e.right)}:(e=>({top:e,bottom:e,left:e,right:e}))($x(e))}async function qx(e,t,n,r){const i=_f(t),a=i&&i.headless;return a||E("Unrecognized renderer type: "+t),await e.runAsync(),Ox(e,null,null,a,n,r).renderAsync(e._scenegraph.root)}var Lx="width",Nx="height",Px="padding",Ux={skip:!0};function jx(e,t){var n=e.autosize(),r=e.padding();return t-(n&&n.contains===Px?r.left+r.right:0)}function Ix(e,t){var n=e.autosize(),r=e.padding();return t-(n&&n.contains===Px?r.top+r.bottom:0)}function Wx(e,t){return t.modified&&j(t.input.value)&&!e.startsWith("_:vega:_")}function Gx(e,t){return!("parent"===e||t instanceof Lr.proxy)}function Hx(e,t,n,r){const i=e.element();i&&i.setAttribute("title",function(e){return null==e?"":j(e)?Vx(e):I(e)&&!$e(e)?(t=e,Object.keys(t).map((e=>{const n=t[e];return e+": "+(j(n)?Vx(n):Yx(n))})).join("\n")):e+"";var t}(r))}function Vx(e){return"["+e.map(Yx).join(", ")+"]"}function Yx(e){return j(e)?"[…]":I(e)&&!$e(e)?"{…}":e}function Xx(e,t){const n=this;if(t=t||{},$r.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=we({},e.locale,t.locale);n.locale(wn(r.number,r.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||bf.Canvas,n._scenegraph=new Uc;const r=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||Hx,n._redraw=!0,n._handler=(new vd).scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=function(e){const t=we({defaults:{}},e),n=(e,t)=>{t.forEach((t=>{j(e[t])&&(e[t]=Ke(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 tx(e,Lr,Nb,n).parse(t)}(n,e,t.expr);n._runtime=i,n._signals=i.signals,n._bind=(e.bindings||[]).map((e=>({state:null,param:we({},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=jx(n,n._width),n._viewHeight=Ix(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,function(e){var t=e._signals,n=t[Lx],r=t[Nx],i=t[Px];function a(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,(t=>{e._width=t.size,e._viewWidth=jx(e,t.size),a()}),{size:n}),e._resizeHeight=e.add(null,(t=>{e._height=t.size,e._viewHeight=Ix(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:ax,item:null}));e.on(e.events("view","pointermove"),t,((e,n)=>{const r=t.value,i=r?Ne(r)?r:r.user:ax,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 Ne(n)||(r=n.item,n=n.user),ox(e,n&&n!==ax?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()}function Jx(e,t){return Fe(e._signals,t)?e._signals[t]:E("Unrecognized signal name: "+Ve(t))}function Qx(e,t){const n=(e._targets||[]).filter((e=>e._update&&e._update.handler===t));return n.length?n[0]:null}function Kx(e,t,n,r){let i=Qx(n,r);return i||(i=Rx(e,(()=>r(t,n.value))),i.handler=r,e.on(n,null,i)),e}function Zx(e,t,n){const r=Qx(t,n);return r&&t._targets.remove(r),e}Oe(Xx,$r,{async evaluate(e,t,n){if(await $r.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,function(e){var t=dx(e),n=lx(e),r=cx(e);e._renderer.background(e.background()),e._renderer.resize(n,r,t),e._handler.origin(t),e._resizeListeners.forEach((t=>{try{t(n,r)}catch(t){e.error(t)}}))}(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(e){this.error(e)}return n&&er(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&&ix(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=Jx(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",Tx(e)):Tx(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?(_f(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&&($r.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(Jx(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(Lx,n,Ux),o._resizeWidth.skip(!0)),o.height()!==r&&(s=1,o.signal(Nx,r,Ux),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=Rx(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 Kx(this,e,Jx(this,e),t)},removeSignalListener(e,t){return Zx(this,Jx(this,e),t)},addDataListener(e,t){return Kx(this,e,sx(this,e).values,t)},removeDataListener(e,t){return Zx(this,sx(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=ox(this,null);this._globalCursor=!!e,t&&ox(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(g.interval((function(t){e({timestamp:Date.now(),elapsed:t})}),t))},events:function(e,t,n){var r,i=this,a=new xr(n),o=function(n,r){i.runAsync(null,(()=>{e===hx&&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(fx(i,n,r))}))};if("timer"===e)gx(i,"timer",t)&&i.timer(o,t);else if(e===hx)gx(i,"view",t)&&i.addEventListener(t,o,px);else if("window"===e?gx(i,"window",t)&&"undefined"!=typeof window&&(r=[window]):"undefined"!=typeof document&&gx(i,"selector",t)&&(r=Array.from(document.querySelectorAll(e))),r){for(var s=0,u=r.length;s<u;++s)r[s].addEventListener(t,o);mx(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(),u=this._eventListeners;for(e=o.length;--e>=0;)o[e].stop();for(e=u.length;--e>=0;)for(t=(n=u[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",yx),vx,bx(e)),this.on(this.events("view","pointerout",yx),vx,bx(t)),this},data:function(e,t){return arguments.length<2?sx(this,e).values.value:ux.call(this,e,fr().remove(R).insert(t))},change:ux,insert:function(e,t){return ux.call(this,e,fr().insert(t))},remove:function(e,t){return ux.call(this,e,fr().remove(t))},scale:function(e){var t=this._runtime.scales;return Fe(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=_f(r);e=n._el=e?zx(n,e,!0):null,function(e){const t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),ix(t,e.description()))}(n),a||n.error("Unrecognized renderer type: "+r);const o=a.handler||vd,s=e?a.renderer:a.headless;return n._renderer=s?Ox(n,n._renderer,e,s):null,n._handler=function(e,t,n,r){const i=new r(e.loader(),Rx(e,e.tooltip())).scene(e.scenegraph().root).initialize(n,dx(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=zx(n,t,!0):e.appendChild(xx("form",{class:"vega-bindings"})),n._bind.forEach((e=>{e.param.element&&"container"!==i&&(e.element=zx(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=Ae(r.debounce,i.update))),(null==r.input&&r.element?wx:Dx)(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!==bf.Canvas&&e!==bf.SVG&&e!==bf.PNG&&E("Unrecognized image type: "+e);const n=await qx(this,e,t);return e===bf.SVG?function(e,t){const n=new Blob([e],{type:t});return window.URL.createObjectURL(n)}(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")},toCanvas:async function(e,t){return(await qx(this,bf.Canvas,e,t)).canvas()},toSVG:async function(e){return(await qx(this,bf.SVG,e)).svg()},getState:function(e){return this._runtime.getState(e||{data:Wx,signals:Gx,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 e_="view",t_="[",n_="]",r_="{",i_="}",a_=":",o_=",",s_="@",u_=">",l_=/[[\]{}]/,c_={"*":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 d_,f_;function h_(e,t,n){return d_=t||e_,f_=n||c_,m_(e.trim()).map(g_)}function p_(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 m_(e){const t=[],n=e.length;let r=0,i=0;for(;i<n;)i=p_(e,i,o_,t_+r_,n_+i_),t.push(e.substring(r,i).trim()),r=++i;if(0===t.length)throw"Empty event selector: "+e;return t}function g_(e){return"["===e[0]?function(e){const t=e.length;let n,r=1;if(r=p_(e,r,n_,t_,n_),r===t)throw"Empty between selector: "+e;if(n=m_(e.substring(1,r)),2!==n.length)throw"Between selector must have two elements: "+e;if(e=e.slice(r+1).trim(),e[0]!==u_)throw"Expected '>' after between selector: "+e;n=n.map(g_);const i=g_(e.slice(1).trim());if(i.between)return{between:n,stream:i};i.between=n;return i}(e):function(e){const t={source:d_},n=[];let r,i,a=[0,0],o=0,s=0,u=e.length,l=0;if(e[u-1]===i_){if(l=e.lastIndexOf(r_),!(l>=0))throw"Unmatched right brace: "+e;try{a=function(e){const t=e.split(o_);if(!e.length||t.length>2)throw e;return t.map((t=>{const n=+t;if(n!=n)throw e;return n}))}(e.substring(l+1,u-1))}catch(t){throw"Invalid throttle specification: "+e}u=(e=e.slice(0,l).trim()).length,l=0}if(!u)throw e;e[0]===s_&&(o=++l);r=p_(e,l,a_),r<u&&(n.push(e.substring(s,r).trim()),s=l=++r);if(l=p_(e,l,t_),l===u)n.push(e.substring(s,u).trim());else if(n.push(e.substring(s,l).trim()),i=[],s=++l,s===u)throw"Unmatched left bracket: "+e;for(;l<u;){if(l=p_(e,l,n_),l===u)throw"Unmatched left bracket: "+e;if(i.push(e.substring(s,l).trim()),l<u-1&&e[++l]!==t_)throw"Expected left bracket: "+e;s=++l}if(!(u=n.length)||l_.test(n[u-1]))throw"Invalid event selector: "+e;u>1?(t.type=n[1],o?t.markname=n[0].slice(1):!function(e){return f_[e]}(n[0])?t.source=n[0]:t.marktype=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]);return t}(e)}function y_(e){return I(e)?e:{type:e||"pad"}}const v_=e=>+e||0,b_=e=>({top:e,bottom:e,left:e,right:e});function x_(e){return I(e)?e.signal?e:{top:v_(e.top),bottom:v_(e.bottom),left:v_(e.left),right:v_(e.right)}:b_(v_(e))}const __=e=>I(e)&&!j(e)?we({},e):{value:e};function k_(e,t,n,r){if(null!=n){return I(n)&&!j(n)||j(n)&&n.length&&I(n[0])?e.update[t]=n:e[r||"enter"][t]={value:n},1}return 0}function A_(e,t,n){for(const n in t)k_(e,n,t[n]);for(const t in n)k_(e,t,n[t],"update")}function w_(e,t,n){for(const r in t)n&&Fe(n,r)||(e[r]=we(e[r]||{},t[r]));return e}function D_(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const E_="mark",C_="frame",F_="scope",M_="axis",S_="axis-domain",B_="axis-grid",O_="axis-label",R_="axis-tick",z_="axis-title",$_="legend",T_="legend-band",q_="legend-entry",L_="legend-gradient",N_="legend-label",P_="legend-symbol",U_="legend-title",j_="title",I_="title-text",W_="title-subtitle";function G_(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const H_=e=>Ne(e)?Ve(e):e.signal?`(${e.signal})`:J_(e);function V_(e){if(null!=e.gradient)return function(e){const t=[e.start,e.stop,e.count].map((e=>null==e?null:Ve(e)));for(;t.length&&null==Y(t);)t.pop();return t.unshift(H_(e.gradient)),`gradient(${t.join(",")})`}(e);let t=e.signal?`(${e.signal})`:e.color?function(e){return e.c?Y_("hcl",e.h,e.c,e.l):e.h||e.s?Y_("hsl",e.h,e.s,e.l):e.l||e.a?Y_("lab",e.l,e.a,e.b):e.r||e.g||e.b?Y_("rgb",e.r,e.g,e.b):null}(e.color):null!=e.field?J_(e.field):void 0!==e.value?Ve(e.value):void 0;return null!=e.scale&&(t=function(e,t){const n=H_(e.scale);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?"":"*"+X_(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),null==t&&(t="0"));return t}(e,t)),void 0===t&&(t=null),null!=e.exponent&&(t=`pow(${t},${X_(e.exponent)})`),null!=e.mult&&(t+=`*${X_(e.mult)}`),null!=e.offset&&(t+=`+${X_(e.offset)}`),e.round&&(t=`round(${t})`),t}const Y_=(e,t,n,r)=>`(${e}(${[t,n,r].map(V_).join(",")})+'')`;function X_(e){return I(e)?"("+V_(e)+")":e}function J_(e){return Q_(I(e)?e:{datum:e})}function Q_(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: "+Ve(e));return e.signal||(r=Ne(r)?C(r).map(Ve).join("]["):Q_(r)),t+"["+r+"]"}function K_(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,u,l,c;for(u in u="lineBreak","text"!==t||null==i[u]||D_(u,e)||G_(a,u,i[u]),("legend"==n||String(n).startsWith("axis"))&&(n=null),c=n===C_?i.group:n===E_?we({},i.mark,i[t]):null,c)l=D_(u,e)||("fill"===u||"stroke"===u)&&(D_("fill",e)||D_("stroke",e)),l||G_(a,u,c[u]);for(u in he(r).forEach((t=>{const n=i.style&&i.style[t];for(const t in n)D_(t,e)||G_(a,t,n[t])})),e=we({},e),a)c=a[u],c.signal?(s=s||{})[u]=c:o[u]=c;return e.enter=we(o,e.enter),s&&(e.update=we(s,e.update)),e}(e,t,n,r,i.config);for(const n in e)o[n]=Z_(e[n],t,a,i);return a}function Z_(e,t,n,r){const i={},a={};for(const t in e)null!=e[t]&&(i[t]=ek((o=e[t],j(o)?function(e){let t="";return e.forEach((e=>{const n=V_(e);t+=e.test?`(${e.test})?${n}:`:n})),":"===Y(t)&&(t+="null"),t}(o):V_(o)),r,n,a));var o;return{$expr:{marktype:t,channels:i},$fields:Object.keys(a),$output:Object.keys(e)}}function ek(e,t,n,r){const i=Hb(e,t);return i.$fields.forEach((e=>r[e]=1)),we(n,i.$params),i.$expr}const tk="outer",nk=["value","update","init","react","bind"];function rk(e,t){E(e+' for "outer" push: '+Ve(t))}function ik(e,t){const n=e.name;if(e.push===tk)t.signals[n]||rk("No prior signal definition",n),nk.forEach((t=>{void 0!==e[t]&&rk("Invalid property ",t)}));else{const r=t.addSignal(n,e.value);!1===e.react&&(r.react=!1),e.bind&&t.addBinding(n,e.bind)}}function ak(e,t,n,r){this.id=-1,this.type=e,this.value=t,this.params=n,r&&(this.parent=r)}function ok(e,t,n,r){return new ak(e,t,n,r)}function sk(e,t){return ok("operator",e,t)}function uk(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function lk(e,t){return t?{$field:e,$name:t}:{$field:e}}const ck=lk("key");function dk(e,t){return{$compare:e,$order:t}}const fk="descending";function hk(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const pk="scope",mk="view";function gk(e){return e&&e.signal}function yk(e){if(gk(e))return!0;if(I(e))for(const t in e)if(yk(e[t]))return!0;return!1}function vk(e,t){return null!=e?e:t}function bk(e){return e&&e.signal||e}const xk="timer";function _k(e,t){return(e.merge?kk:e.stream?Ak:e.type?wk:E("Invalid stream specification: "+Ve(e)))(e,t)}function kk(e,t){const n=Dk({merge:e.merge.map((e=>_k(e,t)))},e,t);return t.addStream(n).id}function Ak(e,t){const n=Dk({stream:_k(e.stream,t)},e,t);return t.addStream(n).id}function wk(e,t){let n;e.type===xk?(n=t.event(xk,e.throttle),e={between:e.between,filter:e.filter}):n=t.event(function(e){return e===pk?mk:e||mk}(e.source),e.type);const r=Dk({stream:n},e,t);return 1===Object.keys(r).length?n:t.addStream(r).id}function Dk(e,t,n){let r=t.between;return r&&(2!==r.length&&E('Stream "between" parameter must have 2 entries: '+Ve(t)),e.between=[_k(r[0],n),_k(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===pk&&r.push("inScope(event.item)"),r.length&&(e.filter=Hb("("+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 Ek={code:"_.$value",ast:{type:"Identifier",value:"value"}};function Ck(e,t,n){const r=e.encode,i={target:n};let a=e.events,o=e.update,s=[];a||E("Signal update missing events specification."),Ne(a)&&(a=h_(a,t.isSubscope()?pk:mk)),a=he(a).filter((e=>e.signal||e.scale?(s.push(e),0):1)),s.length>1&&(s=[Fk(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(),"+Ve(r)+")"),i.update=Ne(o)?Hb(o,t):null!=o.expr?Hb(o.expr,t):null!=o.value?o.value:null!=o.signal?{$expr:Ek,$params:{$value:t.signalRef(o.signal)}}:E("Invalid signal update specification."),e.force&&(i.options={force:!0}),s.forEach((e=>t.addUpdate(we(function(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):_k(e,t)}}(e,t),i))))}function Fk(e){return{signal:"["+e.map((e=>e.scale?'scale("'+e.scale+'")':e.signal))+"]"}}const Mk=e=>(t,n,r)=>ok(e,n,t||void 0,r),Sk=Mk("aggregate"),Bk=Mk("axisticks"),Ok=Mk("bound"),Rk=Mk("collect"),zk=Mk("compare"),$k=Mk("datajoin"),Tk=Mk("encode"),qk=Mk("expression"),Lk=Mk("facet"),Nk=Mk("field"),Pk=Mk("key"),Uk=Mk("legendentries"),jk=Mk("load"),Ik=Mk("mark"),Wk=Mk("multiextent"),Gk=Mk("multivalues"),Hk=Mk("overlap"),Vk=Mk("params"),Yk=Mk("prefacet"),Xk=Mk("projection"),Jk=Mk("proxy"),Qk=Mk("relay"),Kk=Mk("render"),Zk=Mk("scale"),eA=Mk("sieve"),tA=Mk("sortitems"),nA=Mk("viewlayout"),rA=Mk("values");let iA=0;const aA={min:"min",max:"max",count:"sum"};function oA(e,t){const n=t.getScale(e.name).params;let r;for(r in n.domain=cA(e.domain,e,t),null!=e.range&&(n.range=vA(e,t,n)),null!=e.interpolate&&function(e,t){t.interpolate=sA(e.type||e),null!=e.gamma&&(t.interpolateGamma=sA(e.gamma))}(e.interpolate,n),null!=e.nice&&(n.nice=function(e,t){return e.signal?t.signalRef(e.signal):I(e)?{interval:sA(e.interval),step:sA(e.step)}:sA(e)}(e.nice,t)),null!=e.bins&&(n.bins=function(e,t){return e.signal||j(e)?uA(e,t):t.objectProperty(e)}(e.bins,t)),e)Fe(n,r)||"name"===r||(n[r]=sA(e[r],t))}function sA(e,t){return I(e)?e.signal?t.signalRef(e.signal):E("Unsupported object: "+Ve(e)):e}function uA(e,t){return e.signal?t.signalRef(e.signal):e.map((e=>sA(e,t)))}function lA(e){E("Can not find data set: "+Ve(e))}function cA(e,t,n){if(e)return e.signal?n.signalRef(e.signal):(j(e)?dA:e.fields?hA:fA)(e,t,n);null==t.domainMin&&null==t.domainMax||E("No scale domain defined for domainMin/domainMax to override.")}function dA(e,t,n){return e.map((e=>sA(e,n)))}function fA(e,t,n){const r=n.getData(e.data);return r||lA(e.data),Ko(t.type)?r.valuesRef(n,e.field,mA(e.sort,!1)):ns(t.type)?r.domainRef(n,e.field):r.extentRef(n,e.field)}function hA(e,t,n){const r=e.data,i=e.fields.reduce(((e,t)=>(t=Ne(t)?{data:r,field:t}:j(t)||t.signal?function(e,t){const n="_:vega:_"+iA++,r=Rk({});if(j(e))r.value={$ingest:e};else if(e.signal){const i="setdata("+Ve(n)+","+e.signal+")";r.params.input=t.signalRef(i)}return t.addDataPipeline(n,[r,eA({})]),{data:n,field:"data"}}(t,n):t,e.push(t),e)),[]);return(Ko(t.type)?pA:ns(t.type)?gA:yA)(e,n,i)}function pA(e,t,n){const r=mA(e.sort,!0);let i,a;const o=n.map((e=>{const n=t.getData(e.data);return n||lA(e.data),n.countsRef(t,e.field,r)})),s={groupby:ck,pulse:o};r&&(i=r.op||"count",a=r.field?hk(i,r.field):"count",s.ops=[aA[i]],s.fields=[t.fieldRef(a)],s.as=[a]),i=t.add(Sk(s));const u=t.add(Rk({pulse:uk(i)}));return a=t.add(rA({field:ck,sort:t.sortRef(r),pulse:uk(u)})),uk(a)}function mA(e,t){return e&&(e.field||e.op?e.field||"count"===e.op?t&&e.field&&e.op&&!aA[e.op]&&E("Multiple domain scales can not be sorted using "+e.op):E("No field provided for sort aggregate op: "+e.op):I(e)?e.field="key":e={field:"key"}),e}function gA(e,t,n){const r=n.map((e=>{const n=t.getData(e.data);return n||lA(e.data),n.domainRef(t,e.field)}));return uk(t.add(Gk({values:r})))}function yA(e,t,n){const r=n.map((e=>{const n=t.getData(e.data);return n||lA(e.data),n.extentRef(t,e.field)}));return uk(t.add(Wk({extents:r})))}function vA(e,t,n){const r=t.config.range;let i=e.range;if(i.signal)return t.signalRef(i.signal);if(Ne(i)){if(r&&Fe(r,i))return vA(e=we({},e,{range:r[i]}),t,n);"width"===i?i=[0,{signal:"width"}]:"height"===i?i=Ko(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:E("Unrecognized scale range value: "+Ve(i))}else{if(i.scheme)return n.scheme=j(i.scheme)?uA(i.scheme,t):sA(i.scheme,t),i.extent&&(n.schemeExtent=uA(i.extent,t)),void(i.count&&(n.schemeCount=sA(i.count,t)));if(i.step)return void(n.rangeStep=sA(i.step,t));if(Ko(e.type)&&!j(i))return cA(i,e,t);j(i)||E("Unsupported range type: "+Ve(i))}return i.map((e=>(j(e)?uA:sA)(e,t)))}function bA(e,t,n){return j(e)?e.map((e=>bA(e,t,n))):I(e)?e.signal?n.signalRef(e.signal):"fit"===t?e:E("Unsupported parameter object: "+Ve(e)):e}const xA="top",_A="left",kA="right",AA="bottom",wA="center",DA="vertical",EA="start",CA="end",FA="index",MA="label",SA="offset",BA="perc",OA="perc2",RA="value",zA="guide-label",$A="guide-title",TA="group-title",qA="group-subtitle",LA="symbol",NA="gradient",PA="discrete",UA="size",jA=[UA,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],IA={name:1,style:1,interactive:1},WA={value:0},GA={value:1},HA="group",VA="rect",YA="rule",XA="symbol",JA="text";function QA(e){return e.type=HA,e.interactive=e.interactive||!1,e}function KA(e,t){const n=(n,r)=>vk(e[n],vk(t[n],r));return n.isVertical=n=>DA===vk(e.direction,t.direction||(n?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>vk(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>vk(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>vk(e.columns,vk(t.columns,+n.isVertical(!0))),n}function ZA(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 ew(e,t,n){return`item.anchor === '${EA}' ? ${e} : item.anchor === '${CA}' ? ${t} : ${n}`}const tw=ew(Ve(_A),Ve(kA),Ve(wA));function nw(e,t){return t?e?I(e)?Object.assign({},e,{offset:nw(e.offset,t)}):{value:e,offset:t}:t:e}function rw(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=w_(e.encode,t,IA)):e.interactive=!1,e}function iw(e,t,n,r){const i=KA(e,n),a=i.isVertical(),o=i.gradientThickness(),s=i.gradientLength();let u,l,c,d,f;a?(l=[0,1],c=[0,0],d=o,f=s):(l=[0,0],c=[1,0],d=s,f=o);const h={enter:u={opacity:WA,x:WA,y:WA,width:__(d),height:__(f)},update:we({},u,{opacity:GA,fill:{gradient:t,start:l,stop:c}}),exit:{opacity:WA}};return A_(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),rw({type:VA,role:L_,encode:h},r)}function aw(e,t,n,r,i){const a=KA(e,n),o=a.isVertical(),s=a.gradientThickness(),u=a.gradientLength();let l,c,d,f,h="";o?(l="y",d="y2",c="x",f="width",h="1-"):(l="x",d="x2",c="y",f="height");const p={opacity:WA,fill:{scale:t,field:RA}};p[l]={signal:h+"datum."+BA,mult:u},p[c]=WA,p[d]={signal:h+"datum."+OA,mult:u},p[f]=__(s);const m={enter:p,update:we({},p,{opacity:GA}),exit:{opacity:WA}};return A_(m,{stroke:a("gradientStrokeColor"),strokeWidth:a("gradientStrokeWidth")},{opacity:a("gradientOpacity")}),rw({type:VA,role:T_,key:RA,from:i,encode:m},r)}const ow=`datum.${BA}<=0?"${_A}":datum.${BA}>=1?"${kA}":"${wA}"`,sw=`datum.${BA}<=0?"${AA}":datum.${BA}>=1?"${xA}":"middle"`;function uw(e,t,n,r){const i=KA(e,t),a=i.isVertical(),o=__(i.gradientThickness()),s=i.gradientLength();let u,l,c,d,f=i("labelOverlap"),h="";const p={enter:u={opacity:WA},update:l={opacity:GA,text:{field:MA}},exit:{opacity:WA}};return A_(p,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:vk(e.labelLimit,t.gradientLabelLimit)}),a?(u.align={value:"left"},u.baseline=l.baseline={signal:sw},c="y",d="x",h="1-"):(u.align=l.align={signal:ow},u.baseline={value:"top"},c="x",d="y"),u[c]=l[c]={signal:h+"datum."+BA,mult:s},u[d]=l[d]=o,o.offset=vk(e.labelOffset,t.gradientLabelOffset)||0,f=f?{separation:i("labelSeparation"),method:f,order:"datum."+FA}:void 0,rw({type:JA,role:N_,style:zA,key:RA,from:r,encode:p,overlap:f},n)}function lw(e,t,n,r,i){const a=KA(e,t),o=n.entries,s=!(!o||!o.interactive),u=o?o.name:void 0,l=a("clipHeight"),c=a("symbolOffset"),d={data:"value"},f=`(${i}) ? datum.${SA} : datum.${UA}`,h=l?__(l):{field:UA},p=`datum.${FA}`,m=`max(1, ${i})`;let g,y,v,b,x;h.mult=.5,g={enter:y={opacity:WA,x:{signal:f,mult:.5,offset:c},y:h},update:v={opacity:GA,x:y.x,y:y.y},exit:{opacity:WA}};let _=null,k=null;e.fill||(_=t.symbolBaseFillColor,k=t.symbolBaseStrokeColor),A_(g,{fill:a("symbolFillColor",_),shape:a("symbolType"),size:a("symbolSize"),stroke:a("symbolStrokeColor",k),strokeDash:a("symbolDash"),strokeDashOffset:a("symbolDashOffset"),strokeWidth:a("symbolStrokeWidth")},{opacity:a("symbolOpacity")}),jA.forEach((t=>{e[t]&&(v[t]=y[t]={scale:e[t],field:RA})}));const A=rw({type:XA,role:P_,key:RA,from:d,clip:!!l||void 0,encode:g},n.symbols),w=__(c);w.offset=a("labelOffset"),g={enter:y={opacity:WA,x:{signal:f,offset:w},y:h},update:v={opacity:GA,text:{field:MA},x:y.x,y:y.y},exit:{opacity:WA}},A_(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 D=rw({type:JA,role:N_,style:zA,key:RA,from:d,encode:g},n.labels);return g={enter:{noBound:{value:!l},width:WA,height:l?__(l):WA,opacity:WA},exit:{opacity:WA},update:v={opacity:GA,row:{signal:null},column:{signal:null}}},a.isVertical(!0)?(b=`ceil(item.mark.items.length / ${m})`,v.row.signal=`${p}%${b}`,v.column.signal=`floor(${p} / ${b})`,x={field:["row",p]}):(v.row.signal=`floor(${p} / ${m})`,v.column.signal=`${p} % ${m}`,x={field:p}),v.column.signal=`(${i})?${v.column.signal}:${p}`,QA({role:F_,from:r={facet:{data:r,name:"value",groupby:FA}},encode:w_(g,o,IA),marks:[A,D],name:u,interactive:s,sort:x})}const cw='item.orient === "left"',dw='item.orient === "right"',fw=`(${cw} || ${dw})`,hw=`datum.vgrad && ${fw}`,pw=ew('"top"','"bottom"','"middle"'),mw=`datum.vgrad && ${dw} ? (${ew('"right"','"left"','"center"')}) : (${fw} && !(datum.vgrad && ${cw})) ? "left" : ${tw}`,gw=`item._anchor || (${fw} ? "middle" : "start")`,yw=`${hw} ? (${cw} ? -90 : 90) : 0`,vw=`${fw} ? (datum.vgrad ? (${dw} ? "bottom" : "top") : ${pw}) : "top"`;function bw(e,t){let n;return I(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+xw(e.path)+")":e.sphere&&(n="geoShape("+xw(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function xw(e){return I(e)&&e.signal?e.signal:Ve(e)}function _w(e){const t=e.role||"";return t.startsWith("axis")||t.startsWith("legend")||t.startsWith("title")?t:e.type===HA?F_:t||E_}function kw(e){return{marktype:e.type,name:e.name||void 0,role:e.role||_w(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function Aw(e,t){return e&&e.signal?t.signalRef(e.signal):!1!==e}function ww(e,t){const n=Nr(e.type);n||E("Unrecognized transform type: "+Ve(e.type));const r=ok(n.type.toLowerCase(),null,Dw(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(r)),r.metadata=n.metadata||{},r}function Dw(e,t,n){const r={},i=e.params.length;for(let a=0;a<i;++a){const i=e.params[a];r[i.name]=Ew(i,t,n)}return r}function Ew(e,t,n){const r=e.type,i=t[e.name];return"index"===r?function(e,t,n){Ne(t.from)||E('Lookup "from" parameter must be a string literal.');return 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?(j(r)||E("Expected an array of sub-parameters. Instead: "+Ve(r)),r.map((t=>Fw(e,t,n)))):Fw(e,r,n)}(e,t,n):"projection"===r?n.projectionRef(t[e.name]):e.array&&!gk(i)?i.map((t=>Cw(e,t,n))):Cw(e,i,n):void(e.required&&E("Missing required "+Ve(t.type)+" parameter: "+Ve(e.name)))}function Cw(e,t,n){const r=e.type;if(gk(t))return Ow(r)?E("Expression references can not be signals."):Rw(r)?n.fieldRef(t):zw(r)?n.compareRef(t):n.signalRef(t.signal);{const i=e.expr||Rw(r);return i&&Mw(t)?n.exprRef(t.expr,t.as):i&&Sw(t)?lk(t.field,t.as):Ow(r)?Hb(t,n):Bw(r)?uk(n.getData(t).values):Rw(r)?lk(t):zw(r)?n.compareRef(t):t}}function Fw(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: "+Ve(t));const a=we(Dw(i,t,n),i.key);return uk(n.add(Vk(a)))}const Mw=e=>e&&e.expr,Sw=e=>e&&e.field,Bw=e=>"data"===e,Ow=e=>"expr"===e,Rw=e=>"field"===e,zw=e=>"compare"===e;function $w(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:uk(t.getData(e.data).output)}function Tw(e,t,n,r,i){this.scope=e,this.input=t,this.output=n,this.values=r,this.aggregate=i,this.index={}}function qw(e){return Ne(e)?e:null}function Lw(e,t,n){const r=hk(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 Nw(e,t,n,r,i,a,o){const s=t[n]||(t[n]={}),u=function(e){return I(e)?(e.order===fk?"-":"+")+hk(e.op,e.field):""}(a);let l,c,d=qw(i);if(null!=d&&(e=t.scope,d+=u?"|"+u:"",l=s[d]),!l){const n=a?{field:ck,pulse:t.countsRef(e,i,a)}:{field:e.fieldRef(i),pulse:uk(t.output)};u&&(n.sort=e.sortRef(a)),c=e.add(ok(r,void 0,n)),o&&(t.index[i]=c),l=uk(c),null!=d&&(s[d]=l)}return l}function Pw(e,t,n){const r=e.remove,i=e.insert,a=e.toggle,o=e.modify,s=e.values,u=t.add(sk()),l=Hb("if("+e.trigger+',modify("'+n+'",'+[i,r,a,o,s].map((e=>null==e?"null":e)).join(",")+"),0)",t);u.update=l.$expr,u.params=l.$params}function Uw(e,t){const n=_w(e),r=e.type===HA,i=e.from&&e.from.facet,a=e.overlap;let o,s,u,l,c,d,f,h=e.layout||n===F_||n===C_;const p=n===E_||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=$w(r,n):(e.data?s=uk(n.getData(e.data).aggregate):(a=ww(we({type:"aggregate",groupby:he(r.groupby)},r.aggregate),n),a.params.key=n.keyRef(r.groupby),a.params.pulse=$w(r,n),o=s=uk(n.add(a))),i=n.keyRef(r.groupby,!0))):o=uk(n.add(Rk(null,[{}]))),o||(o=$w(e,n)),{key:i,pulse:o,parent:s}}(e.from,r,t);s=t.add($k({key:m.key||(e.key?lk(e.key):void 0),pulse:m.pulse,clean:!r}));const g=uk(s);s=u=t.add(Rk({pulse:g})),s=t.add(Ik({markdef:kw(e),interactive:Aw(e.interactive,t),clip:bw(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:uk(s)}));const y=uk(s);s=l=t.add(Tk(K_(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=ww(e,t),r=n.metadata;(r.generates||r.changes)&&E("Mark transforms should not generate new data."),r.nomod||(l.params.mod=!0),n.params.pulse=uk(s),t.add(s=n)})),e.sort&&(s=t.add(tA({sort:t.compareRef(e.sort),pulse:uk(s)})));const v=uk(s);(i||h)&&(h=t.add(nA({layout:t.objectProperty(e.layout),legends:t.legends,mark:y,pulse:v})),d=uk(h));const b=t.add(Ok({mark:y,pulse:d||v}));f=uk(b),r&&(p&&(o=t.operators,o.pop(),h&&o.pop()),t.pushState(v,d||f,g),i?function(e,t,n){const r=e.from.facet,i=r.name,a=$w(r,t);let o;r.name||E("Facet must have a name: "+Ve(r)),r.data||E("Facet must reference a data set: "+Ve(r)),r.field?o=t.add(Yk({field:t.fieldRef(r.field),pulse:a})):r.groupby?o=t.add(Lk({key:t.keyRef(r.groupby),group:uk(t.proxy(n.parent)),pulse:a})):E("Facet must specify groupby or field: "+Ve(r));const s=t.fork(),u=s.add(Rk()),l=s.add(eA({pulse:uk(u)}));s.addData(i,new Tw(s,u,u,l)),s.addSignal("parent",null),o.params.subflow={$subflow:s.parse(e).toRuntime()}}(e,t,m):p?function(e,t,n){const r=t.add(Yk({pulse:n.pulse})),i=t.fork();i.add(eA()),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(b))),a&&(f=function(e,t,n){const r=e.method,i=e.bound,a=e.separation,o={separation:gk(a)?n.signalRef(a.signal):a,method:gk(r)?n.signalRef(r.signal):r,pulse:t};e.order&&(o.sort=n.compareRef({field:e.order}));if(i){const e=i.tolerance;o.boundTolerance=gk(e)?n.signalRef(e.signal):+e,o.boundScale=n.scaleRef(i.scale),o.boundOrient=i.orient}return uk(n.add(Hk(o)))}(a,f,t));const x=t.add(Kk({pulse:f})),_=t.add(eA({pulse:uk(x)},void 0,t.parent()));null!=e.name&&(c=e.name,t.addData(c,new Tw(t,u,x,_)),e.on&&e.on.forEach((e=>{(e.insert||e.remove||e.toggle)&&E("Marks only support modify triggers."),Pw(e,t,c)})))}function jw(e,t){const n=t.config.legend,r=e.encode||{},i=KA(e,n),a=r.legend||{},o=a.name||void 0,s=a.interactive,u=a.style,l={};let c,d,f,h=0;jA.forEach((t=>e[t]?(l[t]=e[t],h=h||e[t]):0)),h||E("Missing valid scale for legend.");const p=function(e,t){let n=e.type||LA;e.type||1!==function(e){return jA.reduce(((t,n)=>t+(e[n]?1:0)),0)}(e)||!e.fill&&!e.stroke||(n=Qo(t)?NA:Zo(t)?PA:LA);return n!==NA?n:Zo(t)?PA:NA}(e,t.scaleType(h)),m={title:null!=e.title,scales:l,type:p,vgrad:"symbol"!==p&&i.isVertical()},g=uk(t.add(Rk(null,[m]))),y=uk(t.add(Uk(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===NA?(f=[iw(e,h,n,r.gradient),uw(e,n,r.labels,y)],d.count=d.count||t.signalRef(`max(2,2*floor((${bk(i.gradientLength())})/100))`)):p===PA?f=[aw(e,h,n,r.gradient,y),uw(e,n,r.labels,y)]:(c=function(e,t){const n=KA(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}(e,n),f=[lw(e,n,r,y,bk(c.columns))],d.size=function(e,t,n){const r=bk(Ww("size",e,n)),i=bk(Ww("strokeWidth",e,n)),a=bk(function(e,t,n){return ZA("fontSize",e)||function(e,t,n){const r=t.config.style[n];return r&&r[e]}("fontSize",t,n)}(n[1].encode,t,zA));return Hb(`max(ceil(sqrt(${r})+${i}),${a})`,t)}(e,t,f[0].marks)),f=[QA({role:q_,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=KA(e,t),a={enter:{opacity:WA},update:{opacity:GA,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:WA}};return A_(a,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:gw},angle:{signal:yw},align:{signal:mw},baseline:{signal:vw},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")}),rw({type:JA,role:U_,style:$A,from:r,encode:a},n)}(e,n,r.title,g)),Uw(QA({role:$_,from:g,encode:w_(Iw(i,e,n),a,IA),marks:f,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:o,interactive:s,style:u}),t)}function Iw(e,t,n){const r={enter:{},update:{}};return A_(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 Ww(e,t,n){return t[e]?`scale("${t[e]}",datum)`:ZA(e,n[0].encode)}Tw.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=uk(t[s-1]),e.add(t[s]),"aggregate"===t[s].type&&(o=t[s]);return new Tw(e,a,i,r,o)},Tw.prototype={countsRef(e,t,n){const r=this,i=r.counts||(r.counts={}),a=qw(t);let o,s,u;return null!=a&&(e=r.scope,o=i[a]),o?n&&n.field&&Lw(e,o.agg.params,n):(u={groupby:e.fieldRef(t,"key"),pulse:uk(r.output)},n&&n.field&&Lw(e,u,n),s=e.add(Sk(u)),o=e.add(Rk({pulse:uk(s)})),o={agg:s,ref:uk(o)},null!=a&&(i[a]=o)),o.ref},tuplesRef(){return uk(this.values)},extentRef(e,t){return Nw(e,this,"extent","extent",t,!1)},domainRef(e,t){return Nw(e,this,"domain","values",t,!1)},valuesRef(e,t,n){return Nw(e,this,"vals","values",t,n||!0)},lookupRef(e,t){return Nw(e,this,"lookup","tupleindex",t,!1)},indataRef(e,t){return Nw(e,this,"indata","tupleindex",t,!0,!0)}};const Gw=`item.orient==="${_A}"?-90:item.orient==="${kA}"?90:0`;function Hw(e,t){const n=KA(e=Ne(e)?{text:e}:e,t.config.title),r=e.encode||{},i=r.group||{},a=i.name||void 0,o=i.interactive,s=i.style,u=[],l=uk(t.add(Rk(null,[{}])));return u.push(function(e,t,n,r){const i={value:0},a=e.text,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return A_(o,{text:a,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")}),rw({type:JA,role:I_,style:TA,from:r,encode:o},n)}(e,n,function(e){const t=e.encode;return t&&t.title||we({name:e.name,interactive:e.interactive,style:e.style},t)}(e),l)),e.subtitle&&u.push(function(e,t,n,r){const i={value:0},a=e.subtitle,o={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return A_(o,{text:a,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")}),rw({type:JA,role:W_,style:qA,from:r,encode:o},n)}(e,n,r.subtitle,l)),Uw(QA({role:j_,from:l,encode:Vw(n,i),marks:u,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:a,interactive:o,style:s}),t)}function Vw(e,t){const n={enter:{},update:{}};return A_(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:tw},angle:{signal:Gw},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),w_(n,t,IA)}function Yw(e,t){const n=[];e.transform&&e.transform.forEach((e=>{n.push(ww(e,t))})),e.on&&e.on.forEach((n=>{Pw(n,t,e.name)})),t.addDataPipeline(e.name,function(e,t,n){const r=[];let i,a,o,s,u,l=null,c=!1,d=!1;e.values?gk(e.values)||yk(e.format)?(r.push(Jw(t,e)),r.push(l=Xw())):r.push(l=Xw({$ingest:e.values,$format:e.format})):e.url?yk(e.url)||yk(e.format)?(r.push(Jw(t,e)),r.push(l=Xw())):r.push(l=Xw({$request:e.url,$format:e.format})):e.source&&(l=i=he(e.source).map((e=>uk(t.getData(e).output))),r.push(null));for(a=0,o=n.length;a<o;++a)s=n[a],u=s.metadata,l||u.source||r.push(l=Xw()),r.push(s),u.generates&&(d=!0),u.modifies&&!d&&(c=!0),u.source?l=s:u.changes&&(l=null);i&&(o=i.length-1,r[0]=Qk({derive:c,pulse:o?i:i[0]}),(c||o)&&r.splice(1,0,Xw()));l||r.push(Xw());return r.push(eA({})),r}(e,t,n))}function Xw(e){const t=Rk({},e);return t.metadata={source:!0},t}function Jw(e,t){return jk({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 Qw=e=>e===AA||e===xA,Kw=(e,t,n)=>gk(e)?aD(e.signal,t,n):e===_A||e===xA?t:n,Zw=(e,t,n)=>gk(e)?rD(e.signal,t,n):Qw(e)?t:n,eD=(e,t,n)=>gk(e)?iD(e.signal,t,n):Qw(e)?n:t,tD=(e,t,n)=>gk(e)?oD(e.signal,t,n):e===xA?{value:t}:{value:n},nD=(e,t,n)=>gk(e)?sD(e.signal,t,n):e===kA?{value:t}:{value:n},rD=(e,t,n)=>uD(`${e} === '${xA}' || ${e} === '${AA}'`,t,n),iD=(e,t,n)=>uD(`${e} !== '${xA}' && ${e} !== '${AA}'`,t,n),aD=(e,t,n)=>cD(`${e} === '${_A}' || ${e} === '${xA}'`,t,n),oD=(e,t,n)=>cD(`${e} === '${xA}'`,t,n),sD=(e,t,n)=>cD(`${e} === '${kA}'`,t,n),uD=(e,t,n)=>(t=null!=t?__(t):t,n=null!=n?__(n):n,lD(t)&&lD(n)?{signal:`${e} ? (${t=t?t.signal||Ve(t.value):null}) : (${n=n?n.signal||Ve(n.value):null})`}:[we({test:e},t)].concat(n||[])),lD=e=>null==e||1===Object.keys(e).length,cD=(e,t,n)=>({signal:`${e} ? (${fD(t)}) : (${fD(n)})`}),dD=(e,t,n,r,i)=>({signal:(null!=r?`${e} === '${_A}' ? (${fD(r)}) : `:"")+(null!=n?`${e} === '${AA}' ? (${fD(n)}) : `:"")+(null!=i?`${e} === '${kA}' ? (${fD(i)}) : `:"")+(null!=t?`${e} === '${xA}' ? (${fD(t)}) : `:"")+"(null)"}),fD=e=>gk(e)?e.signal:null==e?null:Ve(e),hD=(e,t)=>0===t?0:gk(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},pD=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function mD(e,t,n,r){let i;if(t&&Fe(t,e))return t[e];if(Fe(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[$A][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[zA][i]}return null}function gD(e){const t={};for(const n of e)if(n)for(const e in n)t[e]=1;return Object.keys(t)}function yD(e,t){return{scale:e.scale,range:t}}function vD(e,t,n,r,i){const a=KA(e,t),o=e.orient,s=e.gridScale,u=Kw(o,1,-1),l=function(e,t){if(1===t);else if(I(e)){let n=e=we({},e);for(;null!=n.mult;){if(!I(n.mult))return n.mult=gk(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n=n.mult=we({},n.mult)}n.mult=t}else e=gk(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);return e}(e.offset,u);let c,d,f;const h={enter:c={opacity:WA},update:f={opacity:GA},exit:d={opacity:WA}};A_(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:RA,band:i.band,extra:i.extra,offset:i.offset,round:a("tickRound")},m=Zw(o,{signal:"height"},{signal:"width"}),g=s?{scale:s,range:0,mult:u,offset:l}:{value:0,offset:l},y=s?{scale:s,range:1,mult:u,offset:l}:we(m,{mult:u,offset:l});return c.x=f.x=Zw(o,p,g),c.y=f.y=eD(o,p,g),c.x2=f.x2=eD(o,y),c.y2=f.y2=Zw(o,y),d.x=Zw(o,p),d.y=eD(o,p),rw({type:YA,role:B_,key:RA,from:r,encode:h},n)}function bD(e,t,n,r,i){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+r+","+i+")"}}function xD(e,t,n,r){const i=KA(e,t),a=e.orient,o=Kw(a,-1,1);let s,u;const l={enter:s={opacity:WA,anchor:__(i("titleAnchor",null)),align:{signal:tw}},update:u=we({},s,{opacity:GA,text:__(e.title)}),exit:{opacity:WA}},c={signal:`lerp(range("${e.scale}"), ${ew(0,1,.5)})`};return u.x=Zw(a,c),u.y=eD(a,c),s.angle=Zw(a,WA,hD(o,90)),s.baseline=Zw(a,tD(a,AA,xA),{value:AA}),u.angle=s.angle,u.baseline=s.baseline,A_(l,{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]=pD(__(e),n.update[t]),!1):!D_(t,r),a=i(e("titleX"),"x"),o=i(e("titleY"),"y");n.enter.auto=o===a?__(o):Zw(t,__(o),__(a))}(i,a,l,n),l.update.align=pD(l.update.align,s.align),l.update.angle=pD(l.update.angle,s.angle),l.update.baseline=pD(l.update.baseline,s.baseline),rw({type:JA,role:z_,style:$A,from:r,encode:l},n)}function _D(e,t){const n=function(e,t){var n,r,i,a=t.config,o=a.style,s=a.axis,u="band"===t.scaleType(e.scale)&&a.axisBand,l=e.orient;if(gk(l)){const e=gD([a.axisX,a.axisY]),t=gD([a.axisTop,a.axisBottom,a.axisLeft,a.axisRight]);for(i of(n={},e))n[i]=Zw(l,mD(i,a.axisX,s,o),mD(i,a.axisY,s,o));for(i of(r={},t))r[i]=dD(l.signal,mD(i,a.axisTop,s,o),mD(i,a.axisBottom,s,o),mD(i,a.axisLeft,s,o),mD(i,a.axisRight,s,o))}else n=l===xA||l===AA?a.axisX:a.axisY,r=a["axis"+l[0].toUpperCase()+l.slice(1)];return n||r||u?we({},s,n,r,u):s}(e,t),r=e.encode||{},i=r.axis||{},a=i.name||void 0,o=i.interactive,s=i.style,u=KA(e,n),l=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'`},I(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}}(u),c={scale:e.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:null!=e.title},d=uk(t.add(Rk({},[c]))),f=uk(t.add(Bk({scale:t.scaleRef(e.scale),extra:t.property(l.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(vD(e,n,r.grid,f,l)),c.ticks&&(p=u("tickSize"),h.push(function(e,t,n,r,i,a){const o=KA(e,t),s=e.orient,u=Kw(s,-1,1);let l,c,d;const f={enter:l={opacity:WA},update:d={opacity:GA},exit:c={opacity:WA}};A_(f,{stroke:o("tickColor"),strokeCap:o("tickCap"),strokeDash:o("tickDash"),strokeDashOffset:o("tickDashOffset"),strokeOpacity:o("tickOpacity"),strokeWidth:o("tickWidth")});const h=__(i);h.mult=u;const p={scale:e.scale,field:RA,band:a.band,extra:a.extra,offset:a.offset,round:o("tickRound")};return d.y=l.y=Zw(s,WA,p),d.y2=l.y2=Zw(s,h),c.x=Zw(s,p),d.x=l.x=eD(s,WA,p),d.x2=l.x2=eD(s,h),c.y=eD(s,p),rw({type:YA,role:R_,key:RA,from:r,encode:f},n)}(e,n,r.ticks,f,p,l))),c.labels&&(p=c.ticks?p:0,h.push(function(e,t,n,r,i,a){const o=KA(e,t),s=e.orient,u=e.scale,l=Kw(s,-1,1),c=bk(o("labelFlush")),d=bk(o("labelFlushOffset")),f=o("labelAlign"),h=o("labelBaseline");let p,m=0===c||!!c;const g=__(i);g.mult=l,g.offset=__(o("labelPadding")||0),g.offset.mult=l;const y={scale:u,field:RA,band:.5,offset:nw(a.offset,o("labelOffset"))},v=Zw(s,m?bD(u,c,'"left"','"right"','"center"'):{value:"center"},nD(s,"left","right")),b=Zw(s,tD(s,"bottom","top"),m?bD(u,c,'"top"','"bottom"','"middle"'):{value:"middle"}),x=bD(u,c,`-(${d})`,d,0);m=m&&d;const _={opacity:WA,x:Zw(s,y,g),y:eD(s,y,g)},k={enter:_,update:p={opacity:GA,text:{field:MA},x:_.x,y:_.y,align:v,baseline:b},exit:{opacity:WA,x:_.x,y:_.y}};A_(k,{dx:!f&&m?Zw(s,x):null,dy:!h&&m?eD(s,x):null}),A_(k,{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 A=o("labelBound");let w=o("labelOverlap");return w=w||A?{separation:o("labelSeparation"),method:w,order:"datum.index",bound:A?{scale:u,orient:s,tolerance:A}:null}:void 0,p.align!==v&&(p.align=pD(p.align,v)),p.baseline!==b&&(p.baseline=pD(p.baseline,b)),rw({type:JA,role:O_,style:zA,key:RA,from:r,encode:k,overlap:w},n)}(e,n,r.labels,f,p,l))),c.domain&&h.push(function(e,t,n,r){const i=KA(e,t),a=e.orient;let o,s;const u={enter:o={opacity:WA},update:s={opacity:GA},exit:{opacity:WA}};A_(u,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const l=yD(e,0),c=yD(e,1);return o.x=s.x=Zw(a,l,WA),o.x2=s.x2=Zw(a,c),o.y=s.y=eD(a,l,WA),o.y2=s.y2=eD(a,c),rw({type:YA,role:S_,from:r,encode:u},n)}(e,n,r.domain,d)),c.title&&h.push(xD(e,n,r.title,d)),Uw(QA({role:M_,from:d,encode:w_(kD(u,e),i,IA),marks:h,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:a,interactive:o,style:s}),t)}function kD(e,t){const n={enter:{},update:{}};return A_(n,{orient:e("orient"),offset:e("offset")||0,position:vk(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 AD(e,t,n){const r=he(e.signals),i=he(e.scales);return n||r.forEach((e=>ik(e,t))),he(e.projections).forEach((e=>function(e,t){const n=t.config.projection||{},r={};for(const n in e)"name"!==n&&(r[n]=bA(e[n],n,t));for(const e in n)null==r[e]&&(r[e]=bA(n[e],e,t));t.addProjection(e.name,r)}(e,t))),i.forEach((e=>function(e,t){const n=e.type||"linear";Xo(n)||E("Unrecognized scale type: "+Ve(n)),t.addScale(e.name,{type:n,domain:void 0})}(e,t))),he(e.data).forEach((e=>Yw(e,t))),i.forEach((e=>oA(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=Hb(r,t),n.update=r.$expr,n.params=r.$params),e.on&&e.on.forEach((e=>Ck(e,t,n.id)))}(e,t))),he(e.axes).forEach((e=>_D(e,t))),he(e.marks).forEach((e=>Uw(e,t))),he(e.legends).forEach((e=>jw(e,t))),e.title&&Hw(e.title,t),t.parseLambdas(),t}const wD=e=>w_({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e);function DD(e,t){const n=t.config,r=uk(t.root=t.add(sk())),i=function(e,t){const n=n=>vk(e[n],t[n]),r=[ED("background",n("background")),ED("autosize",y_(n("autosize"))),ED("padding",x_(n("padding"))),ED("width",n("width")||0),ED("height",n("height")||0)],i=r.reduce(((e,t)=>(e[t.name]=t,e)),{}),a={};return he(e.signals).forEach((e=>{Fe(i,e.name)?e=we(i[e.name],e):r.push(e),a[e.name]=e})),he(t.signals).forEach((e=>{Fe(a,e.name)||Fe(i,e.name)||r.push(e)})),r}(e,n);i.forEach((e=>ik(e,t))),t.description=e.description||n.description,t.eventConfig=n.events,t.legends=t.objectProperty(n.legend&&n.legend.layout),t.locale=n.locale;const a=t.add(Rk()),o=t.add(Tk(K_(wD(e.encode),HA,C_,e.style,t,{pulse:uk(a)}))),s=t.add(nA({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:r,pulse:uk(o)}));t.operators.pop(),t.pushState(uk(o),uk(s),null),AD(e,t,i),t.operators.push(s);let u=t.add(Ok({mark:r,pulse:uk(s)}));return u=t.add(Kk({pulse:uk(u)})),u=t.add(eA({pulse:uk(u)})),t.addData("root",new Tw(t,a,a,u)),t}function ED(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function CD(e,t){this.config=e||{},this.options=t||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function FD(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 MD(e){return(j(e)?SD:BD)(e)}function SD(e){const t=e.length;let n="[";for(let r=0;r<t;++r){const t=e[r];n+=(r>0?",":"")+(I(t)?t.signal||MD(t):Ve(t))}return n+"]"}function BD(e){let t,n,r="{",i=0;for(t in e)n=e[t],r+=(++i>1?",":"")+Ve(t)+":"+(I(n)?n.signal||MD(n):Ve(n));return r+"}"}CD.prototype=FD.prototype={parse(e){return AD(e,this)},fork(){return new FD(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 ak?uk(e):e;return this.add(Jk({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(uk(this.add(eA({pulse:e})))),this._parent.push(t),this._lookup.push(n?uk(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return Y(this._parent)},encode(){return Y(this._encode)},lookup(){return Y(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(Ne(e))return lk(e,t);e.signal||E("Unsupported field reference: "+Ve(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=uk(this.add(Nk(e)))}return r},compareRef(e){let t=!1;const n=e=>gk(e)?(t=!0,this.signalRef(e.signal)):function(e){return e&&e.expr}(e)?(t=!0,this.exprRef(e.expr)):e,r=he(e.field).map(n),i=he(e.order).map(n);return t?uk(this.add(zk({fields:r,orders:i}))):dk(r,i)},keyRef(e,t){let n=!1;const r=this.signals;return e=he(e).map((e=>gk(e)?(n=!0,uk(r[e.signal])):e)),n?uk(this.add(Pk({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=hk(e.op,e.field),n=e.order||"ascending";return n.signal?uk(this.add(zk({fields:t,orders:this.signalRef(n.signal)}))):dk(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 Fe(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&E("Duplicate signal name: "+Ve(e));const n=t instanceof ak?t:this.add(sk(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||E("Unrecognized signal name: "+Ve(e)),this.signals[e]},signalRef(e){return this.signals[e]?uk(this.signals[e]):(Fe(this.lambdas,e)||(this.lambdas[e]=this.add(sk(null))),uk(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=Hb(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&&I(e)?this.signalRef(e.signal||MD(e)):e},exprRef(e,t){const n={expr:Hb(e,this)};return t&&(n.expr.$name=t),uk(this.add(qk(n)))},addBinding(e,t){this.bindings||E("Nested signals do not support binding: "+Ve(e)),this.bindings.push(we({signal:e},t))},addScaleProj(e,t){Fe(this.scales,e)&&E("Duplicate scale or projection name: "+Ve(e)),this.scales[e]=this.add(t)},addScale(e,t){this.addScaleProj(e,Zk(t))},addProjection(e,t){this.addScaleProj(e,Xk(t))},getScale(e){return this.scales[e]||E("Unrecognized scale name: "+Ve(e)),this.scales[e]},scaleRef(e){return uk(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 Fe(this.data,e)&&E("Duplicate data set name: "+Ve(e)),this.data[e]=t},getData(e){return this.data[e]||E("Undefined data set name: "+Ve(e)),this.data[e]},addDataPipeline(e,t){return Fe(this.data,e)&&E("Duplicate data set name: "+Ve(e)),this.addData(e,Tw.fromEntries(this,t))}},we(Lr,io,Xh,Cp,vm,Mm,vg,Ym,Ag,Cg,jg,Qg),Object.defineProperty(e,"path",{enumerable:!0,get:function(){return u.path}}),e.Bounds=Tu,e.CanvasHandler=vd,e.CanvasRenderer=Dd,e.DATE=at,e.DAY=ot,e.DAYOFYEAR=st,e.Dataflow=$r,e.Debug=P,e.Error=q,e.EventStream=xr,e.Gradient=Ps,e.GroupItem=Lu,e.HOURS=ut,e.Handler=Xc,e.HybridHandler=mf,e.HybridRenderer=pf,e.Info=N,e.Item=qu,e.MILLISECONDS=dt,e.MINUTES=lt,e.MONTH=rt,e.Marks=Rc,e.MultiPulse=Sr,e.None=T,e.Operator=yr,e.Parameters=pr,e.Pulse=Er,e.QUARTER=nt,e.RenderType=bf,e.Renderer=Qc,e.ResourceLoader=Nu,e.SECONDS=ct,e.SVGHandler=Cd,e.SVGRenderer=Kd,e.SVGStringRenderer=ff,e.Scenegraph=Uc,e.TIME_UNITS=ft,e.Transform=qr,e.View=Xx,e.WEEK=it,e.Warn=L,e.YEAR=tt,e.accessor=x,e.accessorFields=k,e.accessorName=_,e.array=he,e.ascending=ve,e.bandwidthNRD=Wr,e.bin=Gr,e.bootstrapCI=Hr,e.boundClip=Cf,e.boundContext=ol,e.boundItem=zc,e.boundMark=Tc,e.boundStroke=ju,e.changeset=fr,e.clampRange=pe,e.codegenExpression=Uv,e.compare=ye,e.constant=ke,e.cumulativeLogNormal=ai,e.cumulativeNormal=Zr,e.cumulativeUniform=di,e.dayofyear=bt,e.debounce=Ae,e.defaultLocale=Dn,e.definition=Nr,e.densityLogNormal=ii,e.densityNormal=Kr,e.densityUniform=ci,e.domChild=Gc,e.domClear=Hc,e.domCreate=Ic,e.domFind=Wc,e.dotbin=Vr,e.error=E,e.expressionFunction=Gb,e.extend=we,e.extent=De,e.extentIndex=Ee,e.falsy=z,e.fastmap=Se,e.field=F,e.flush=Be,e.font=Dc,e.fontFamily=wc,e.fontSize=bc,e.format=Yn,e.formatLocale=yn,e.formats=Xn,e.hasOwnProperty=Fe,e.id=M,e.identity=S,e.inferType=Un,e.inferTypes=jn,e.ingest=or,e.inherits=Oe,e.inrange=Re,e.interpolate=us,e.interpolateColors=as,e.interpolateRange=is,e.intersect=kf,e.intersectBoxLine=yl,e.intersectPath=hl,e.intersectPoint=pl,e.intersectRule=gl,e.isArray=j,e.isBoolean=ze,e.isDate=$e,e.isFunction=me,e.isIterable=Te,e.isNumber=qe,e.isObject=I,e.isRegExp=Le,e.isString=Ne,e.isTuple=rr,e.key=Pe,e.lerp=Ue,e.lineHeight=xc,e.loader=Kn,e.locale=wn,e.logger=U,e.lruCache=je,e.markup=Wd,e.merge=Ie,e.mergeConfig=G,e.multiLineOffset=kc,e.one=O,e.pad=Ge,e.panLinear=ne,e.panLog=re,e.panPow=ie,e.panSymlog=ae,e.parse=function(e,t,n){return I(e)||E("Input Vega specification must be an object."),DD(e,new CD(t=G(function(){const e="sans-serif",t="#4c78a8",n="#000",r="#888",i="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:t},area:{fill:t},image:null,line:{stroke:t,strokeWidth:2},path:{stroke:t},rect:{fill:t},rule:{stroke:n},shape:{stroke:t},symbol:{fill:t,size:64},text:{fill:n,font:e,fontSize:11},trail:{fill:t,size:2},style:{"guide-label":{fill:n,font:e,fontSize:10},"guide-title":{fill:n,font:e,fontSize:11,fontWeight:"bold"},"group-title":{fill:n,font:e,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:n,font:e,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:i},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:r,grid:!1,gridWidth:1,gridColor:i,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:r,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:i,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:r,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}(),t,e.config),n)).toRuntime()},e.parseExpression=Lv,e.parseSelector=h_,e.pathCurves=js,e.pathEqual=Sf,e.pathParse=Ys,e.pathRectangle=vu,e.pathRender=au,e.pathSymbols=lu,e.pathTrail=bu,e.peek=Y,e.point=Yc,e.projection=Pp,e.quantileLogNormal=oi,e.quantileNormal=ei,e.quantileUniform=fi,e.quantiles=jr,e.quantizeInterpolator=os,e.quarter=de,e.quartiles=Ir,e.randomInteger=function(t,n){let r,i,a;null==n&&(n=t,t=0);const o={min(e){return arguments.length?(r=e||0,a=i-r,o):r},max(e){return arguments.length?(i=e||0,a=i-r,o):i},sample:()=>r+Math.floor(a*e.random()),pdf:e=>e===Math.floor(e)&&e>=r&&e<i?1/a:0,cdf(e){const t=Math.floor(e);return t<r?0:t>=i?1:(t-r+1)/a},icdf:e=>e>=0&&e<=1?r-1+Math.floor(e*a):NaN};return o.min(t).max(n)},e.randomKDE=ni,e.randomLCG=function(e){return function(){return(e=(1103515245*e+12345)%2147483647)/2147483647}},e.randomLogNormal=si,e.randomMixture=ui,e.randomNormal=ti,e.randomUniform=hi,e.read=Qn,e.regressionConstant=pi,e.regressionExp=_i,e.regressionLinear=bi,e.regressionLoess=Ei,e.regressionLog=xi,e.regressionPoly=wi,e.regressionPow=ki,e.regressionQuad=Ai,e.renderModule=_f,e.repeat=We,e.resetDefaultLocale=function(){return mn(),xn(),Dn()},e.resetSVGClipId=zu,e.resetSVGDefIds=function(){zu(),$s=0},e.responseType=Jn,e.runtimeContext=tx,e.sampleCurve=Si,e.sampleLogNormal=ri,e.sampleNormal=Qr,e.sampleUniform=li,e.scale=Yo,e.sceneEqual=Mf,e.sceneFromJSON=Nc,e.scenePickVisit=Fl,e.sceneToJSON=Lc,e.sceneVisit=Cl,e.sceneZOrder=El,e.scheme=fs,e.serializeXML=Gd,e.setHybridRendererOptions=function(e){hf.svgMarkTypes=e.svgMarkTypes??["text"],hf.svgOnTop=e.svgOnTop??!0,hf.debug=e.debug??!1},e.setRandom=function(t){e.random=t},e.span=He,e.splitAccessPath=C,e.stringValue=Ve,e.textMetrics=hc,e.timeBin=cn,e.timeFloor=$t,e.timeFormatLocale=kn,e.timeInterval=Ut,e.timeOffset=Wt,e.timeSequence=Vt,e.timeUnitSpecifier=gt,e.timeUnits=pt,e.toBoolean=Ye,e.toDate=Je,e.toNumber=X,e.toSet=Ke,e.toString=Qe,e.transform=Pr,e.transforms=Lr,e.truncate=Ze,e.truthy=R,e.tupleid=ir,e.typeParsers=Ln,e.utcFloor=Lt,e.utcInterval=jt,e.utcOffset=Gt,e.utcSequence=Yt,e.utcdayofyear=Dt,e.utcquarter=fe,e.utcweek=Et,e.version="5.30.0",e.visitArray=et,e.week=xt,e.writeConfig=H,e.zero=B,e.zoomLinear=se,e.zoomLog=ue,e.zoomPow=le,e.zoomSymlog=ce}));
//# sourceMappingURL=vega-core.min.js.map