diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,8 @@
+0.7, released 2020-03-26
+
+* Use native interactive legend in new version of vega-lite
+* Update to latest vega, vega-lite and vega-embed versions
+
 0.6, released 2019-10-22
 
 * Revamp how cost centre profiles are displayed.
diff --git a/eventlog2html.cabal b/eventlog2html.cabal
--- a/eventlog2html.cabal
+++ b/eventlog2html.cabal
@@ -1,5 +1,5 @@
 Name:                eventlog2html
-Version:             0.6.0
+Version:             0.7.0
 Synopsis:            Visualise an eventlog
 Description:         eventlog2html is a library for visualising eventlogs.
                      At the moment, the intended use is to visualise eventlogs
@@ -21,9 +21,9 @@
 Category:            Development
 Build-type:          Simple
 Extra-source-files:
-  javascript/vega-lite@3.3.0
-  javascript/vega-embed@4.2.0
-  javascript/vega@5.4.0
+  javascript/vega-lite@4.7.0
+  javascript/vega-embed@6.3.2
+  javascript/vega@5.10.0
   javascript/stylesheet.css
   javascript/tablogic.js
   javascript/ccmap.vg
@@ -45,11 +45,11 @@
     containers           >= 0.5.0 && < 0.7,
     file-embed           >= 0.0.11 && < 0.1,
     filepath             >= 1.4.2 && < 1.5,
-    ghc-events           >= 0.10.0 && < 0.11,
+    ghc-events           >= 0.10.0 && < 0.13,
     hashtables           >= 1.2.3 && < 1.3,
-    hvega                >= 0.4.0 && < 0.5,
+    hvega                >= 0.6.0 && < 0.7,
     mtl                  >= 2.2.2 && < 2.3,
-    optparse-applicative >= 0.14.3 && < 0.15,
+    optparse-applicative >= 0.14.3 && < 0.16,
     semigroups           >= 0.18 && < 0.20,
     text                 >= 1.2.3 && < 1.3,
     time                 >= 1.8.0 && < 2.0,
@@ -73,6 +73,7 @@
                        Eventlog.Vega
                        Eventlog.HtmlTemplate
                        Eventlog.VegaTemplate
+                       Eventlog.VegaVersions
   other-modules:       Paths_eventlog2html
 
 Executable eventlog2html
diff --git a/javascript/vega-embed@4.2.0 b/javascript/vega-embed@4.2.0
deleted file mode 100644
--- a/javascript/vega-embed@4.2.0
+++ /dev/null
@@ -1,1 +0,0 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vega"),require("vega-lite")):"function"==typeof define&&define.amd?define(["vega","vega-lite"],t):(e=e||self).vegaEmbed=t(e.vega,e.vl)}(this,function(e,t){"use strict";var n="http://www.w3.org/1999/xhtml",r={svg:"http://www.w3.org/2000/svg",xhtml:n,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function i(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),r.hasOwnProperty(t)?{space:r[t],local:e}:e}function o(e){var t=i(e);return(t.local?function(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}:function(e){return function(){var t=this.ownerDocument,r=this.namespaceURI;return r===n&&t.documentElement.namespaceURI===n?t.createElement(e):t.createElementNS(r,e)}})(t)}function a(){}function s(e){return null==e?a:function(){return this.querySelector(e)}}function l(){return[]}function c(e){return new Array(e.length)}function u(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}u.prototype={constructor:u,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var f="$";function p(e,t,n,r,i,o){for(var a,s=0,l=t.length,c=o.length;s<c;++s)(a=t[s])?(a.__data__=o[s],r[s]=a):n[s]=new u(e,o[s]);for(;s<l;++s)(a=t[s])&&(i[s]=a)}function h(e,t,n,r,i,o,a){var s,l,c,p={},h=t.length,d=o.length,g=new Array(h);for(s=0;s<h;++s)(l=t[s])&&(g[s]=c=f+a.call(l,l.__data__,s,t),c in p?i[s]=l:p[c]=l);for(s=0;s<d;++s)(l=p[c=f+a.call(e,o[s],s,o)])?(r[s]=l,l.__data__=o[s],p[c]=null):n[s]=new u(e,o[s]);for(s=0;s<h;++s)(l=t[s])&&p[g[s]]===l&&(i[s]=l)}function d(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function g(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function m(e){return e.trim().split(/^|\s+/)}function v(e){return e.classList||new b(e)}function b(e){this._node=e,this._names=m(e.getAttribute("class")||"")}function y(e,t){for(var n=v(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function w(e,t){for(var n=v(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function x(){this.textContent=""}function _(){this.innerHTML=""}function S(){this.nextSibling&&this.parentNode.appendChild(this)}function k(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function C(){return null}function E(){var e=this.parentNode;e&&e.removeChild(this)}function A(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function O(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}b.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var j={},z=null;"undefined"!=typeof document&&("onmouseenter"in document.documentElement||(j={mouseenter:"mouseover",mouseleave:"mouseout"}));function N(e,t,n){return e=T(e,t,n),function(t){var n=t.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||e.call(this,t)}}function T(e,t,n){return function(r){var i=z;z=r;try{e.call(this,this.__data__,t,n)}finally{z=i}}}function $(e){return function(){var t=this.__on;if(t){for(var n,r=0,i=-1,o=t.length;r<o;++r)n=t[r],e.type&&n.type!==e.type||n.name!==e.name?t[++i]=n:this.removeEventListener(n.type,n.listener,n.capture);++i?t.length=i:delete this.__on}}}function F(e,t,n){var r=j.hasOwnProperty(e.type)?N:T;return function(i,o,a){var s,l=this.__on,c=r(t,o,a);if(l)for(var u=0,f=l.length;u<f;++u)if((s=l[u]).type===e.type&&s.name===e.name)return this.removeEventListener(s.type,s.listener,s.capture),this.addEventListener(s.type,s.listener=c,s.capture=n),void(s.value=t);this.addEventListener(e.type,c,n),s={type:e.type,name:e.name,value:t,listener:c,capture:n},l?l.push(s):this.__on=[s]}}function P(e,t,n){var r=g(e),i=r.CustomEvent;"function"==typeof i?i=new i(t,n):(i=r.document.createEvent("Event"),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}var I=[null];function W(e,t){this._groups=e,this._parents=t}function L(){return new W([[document.documentElement]],I)}W.prototype=L.prototype={constructor:W,select:function(e){"function"!=typeof e&&(e=s(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var o,a,l=t[i],c=l.length,u=r[i]=new Array(c),f=0;f<c;++f)(o=l[f])&&(a=e.call(o,o.__data__,f,l))&&("__data__"in o&&(a.__data__=o.__data__),u[f]=a);return new W(r,this._parents)},selectAll:function(e){var t;"function"!=typeof e&&(e=null==(t=e)?l:function(){return this.querySelectorAll(t)});for(var n=this._groups,r=n.length,i=[],o=[],a=0;a<r;++a)for(var s,c=n[a],u=c.length,f=0;f<u;++f)(s=c[f])&&(i.push(e.call(s,s.__data__,f,c)),o.push(s));return new W(i,o)},filter:function(e){var t;"function"!=typeof e&&(t=e,e=function(){return this.matches(t)});for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o)for(var a,s=n[o],l=s.length,c=i[o]=[],u=0;u<l;++u)(a=s[u])&&e.call(a,a.__data__,u,s)&&c.push(a);return new W(i,this._parents)},data:function(e,t){if(!e)return m=new Array(this.size()),u=-1,this.each(function(e){m[++u]=e}),m;var n,r=t?h:p,i=this._parents,o=this._groups;"function"!=typeof e&&(n=e,e=function(){return n});for(var a=o.length,s=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var f=i[u],d=o[u],g=d.length,m=e.call(f,f&&f.__data__,u,i),v=m.length,b=l[u]=new Array(v),y=s[u]=new Array(v);r(f,d,b,y,c[u]=new Array(g),m,t);for(var w,x,_=0,S=0;_<v;++_)if(w=b[_]){for(_>=S&&(S=_+1);!(x=y[S])&&++S<v;);w._next=x||null}}return(s=new W(s,i))._enter=l,s._exit=c,s},enter:function(){return new W(this._enter||this._groups.map(c),this._parents)},exit:function(){return new W(this._exit||this._groups.map(c),this._parents)},join:function(e,t,n){var r=this.enter(),i=this,o=this.exit();return r="function"==typeof e?e(r):r.append(e+""),null!=t&&(i=t(i)),null==n?o.remove():n(o),r&&i?r.merge(i).order():i},merge:function(e){for(var t=this._groups,n=e._groups,r=t.length,i=n.length,o=Math.min(r,i),a=new Array(r),s=0;s<o;++s)for(var l,c=t[s],u=n[s],f=c.length,p=a[s]=new Array(f),h=0;h<f;++h)(l=c[h]||u[h])&&(p[h]=l);for(;s<r;++s)a[s]=t[s];return new W(a,this._parents)},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r,i=e[t],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=d);for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o){for(var a,s=n[o],l=s.length,c=i[o]=new Array(l),u=0;u<l;++u)(a=s[u])&&(c[u]=a);c.sort(t)}return new W(i,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){var e=new Array(this.size()),t=-1;return this.each(function(){e[++t]=this}),e},node:function(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){var e=0;return this.each(function(){++e}),e},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i,o=t[n],a=0,s=o.length;a<s;++a)(i=o[a])&&e.call(i,i.__data__,a,o);return this},attr:function(e,t){var n=i(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==t?n.local?function(e){return function(){this.removeAttributeNS(e.space,e.local)}}:function(e){return function(){this.removeAttribute(e)}}:"function"==typeof t?n.local?function(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}:function(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}:n.local?function(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}:function(e,t){return function(){this.setAttribute(e,t)}})(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?function(e){return function(){this.style.removeProperty(e)}}:"function"==typeof t?function(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}:function(e,t,n){return function(){this.style.setProperty(e,t,n)}})(e,t,null==n?"":n)):function(e,t){return e.style.getPropertyValue(t)||g(e).getComputedStyle(e,null).getPropertyValue(t)}(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?function(e){return function(){delete this[e]}}:"function"==typeof t?function(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}:function(e,t){return function(){this[e]=t}})(e,t)):this.node()[e]},classed:function(e,t){var n=m(e+"");if(arguments.length<2){for(var r=v(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each(("function"==typeof t?function(e,t){return function(){(t.apply(this,arguments)?y:w)(this,e)}}:t?function(e){return function(){y(this,e)}}:function(e){return function(){w(this,e)}})(n,t))},text:function(e){return arguments.length?this.each(null==e?x:("function"==typeof e?function(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}:function(e){return function(){this.textContent=e}})(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?_:("function"==typeof e?function(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}:function(e){return function(){this.innerHTML=e}})(e)):this.node().innerHTML},raise:function(){return this.each(S)},lower:function(){return this.each(k)},append:function(e){var t="function"==typeof e?e:o(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})},insert:function(e,t){var n="function"==typeof e?e:o(e),r=null==t?C:"function"==typeof t?t:s(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(E)},clone:function(e){return this.select(e?O:A)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var r,i,o=function(e){return e.trim().split(/^|\s+/).map(function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}(e+""),a=o.length;if(!(arguments.length<2)){for(s=t?F:$,null==n&&(n=!1),r=0;r<a;++r)this.each(s(o[r],t,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(r=0,l=s[c];r<a;++r)if((i=o[r]).type===l.type&&i.name===l.name)return l.value},dispatch:function(e,t){return this.each(("function"==typeof t?function(e,t){return function(){return P(this,e,t.apply(this,arguments))}}:function(e,t){return function(){return P(this,e,t)}})(e,t))}};var B="4.2.0";function D(e,t,n,r){return new(n||(n=Promise))(function(i,o){function a(e){try{l(r.next(e))}catch(e){o(e)}}function s(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){e.done?i(e.value):new n(function(t){t(e.value)}).then(a,s)}l((r=r.apply(e,t||[])).next())})}var R=/("(?:[^\\"]|\\.)*")|[:,]/g,V=function(e,t){var n,r,i;return t=t||{},n=JSON.stringify([1],void 0,void 0===t.indent?2:t.indent).slice(2,-3),r=""===n?1/0:void 0===t.maxLength?80:t.maxLength,i=t.replacer,function e(t,o,a){var s,l,c,u,f,p,h,d,g,m,v,b;if(t&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0===(v=JSON.stringify(t,i)))return v;if(h=r-o.length-a,v.length<=h&&(g=v.replace(R,function(e,t){return t||e+" "})).length<=h)return g;if(null!=i&&(t=JSON.parse(v),i=void 0),"object"==typeof t&&null!==t){if(d=o+n,c=[],l=0,Array.isArray(t))for(m="[",s="]",h=t.length;l<h;l++)c.push(e(t[l],d,l===h-1?0:1)||"null");else for(m="{",s="}",h=(p=Object.keys(t)).length;l<h;l++)u=p[l],f=JSON.stringify(u)+": ",void 0!==(b=e(t[u],d,f.length+(l===h-1?0:1)))&&c.push(f+b);if(c.length>0)return[m,n+c.join(",\n"+d),s].join("\n"+o)}return v}(e,"",0)};function M(e,t){return e(t={exports:{}},t.exports),t.exports}var q,X=M(function(e,t){var n;t=e.exports=J,n="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:function(){},t.SEMVER_SPEC_VERSION="2.0.0";var r=256,i=Number.MAX_SAFE_INTEGER||9007199254740991,o=t.re=[],a=t.src=[],s=0,l=s++;a[l]="0|[1-9]\\d*";var c=s++;a[c]="[0-9]+";var u=s++;a[u]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var f=s++;a[f]="("+a[l]+")\\.("+a[l]+")\\.("+a[l]+")";var p=s++;a[p]="("+a[c]+")\\.("+a[c]+")\\.("+a[c]+")";var h=s++;a[h]="(?:"+a[l]+"|"+a[u]+")";var d=s++;a[d]="(?:"+a[c]+"|"+a[u]+")";var g=s++;a[g]="(?:-("+a[h]+"(?:\\."+a[h]+")*))";var m=s++;a[m]="(?:-?("+a[d]+"(?:\\."+a[d]+")*))";var v=s++;a[v]="[0-9A-Za-z-]+";var b=s++;a[b]="(?:\\+("+a[v]+"(?:\\."+a[v]+")*))";var y=s++,w="v?"+a[f]+a[g]+"?"+a[b]+"?";a[y]="^"+w+"$";var x="[v=\\s]*"+a[p]+a[m]+"?"+a[b]+"?",_=s++;a[_]="^"+x+"$";var S=s++;a[S]="((?:<|>)?=?)";var k=s++;a[k]=a[c]+"|x|X|\\*";var C=s++;a[C]=a[l]+"|x|X|\\*";var E=s++;a[E]="[v=\\s]*("+a[C]+")(?:\\.("+a[C]+")(?:\\.("+a[C]+")(?:"+a[g]+")?"+a[b]+"?)?)?";var A=s++;a[A]="[v=\\s]*("+a[k]+")(?:\\.("+a[k]+")(?:\\.("+a[k]+")(?:"+a[m]+")?"+a[b]+"?)?)?";var O=s++;a[O]="^"+a[S]+"\\s*"+a[E]+"$";var j=s++;a[j]="^"+a[S]+"\\s*"+a[A]+"$";var z=s++;a[z]="(?:^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])";var N=s++;a[N]="(?:~>?)";var T=s++;a[T]="(\\s*)"+a[N]+"\\s+",o[T]=new RegExp(a[T],"g");var $=s++;a[$]="^"+a[N]+a[E]+"$";var F=s++;a[F]="^"+a[N]+a[A]+"$";var P=s++;a[P]="(?:\\^)";var I=s++;a[I]="(\\s*)"+a[P]+"\\s+",o[I]=new RegExp(a[I],"g");var W=s++;a[W]="^"+a[P]+a[E]+"$";var L=s++;a[L]="^"+a[P]+a[A]+"$";var B=s++;a[B]="^"+a[S]+"\\s*("+x+")$|^$";var D=s++;a[D]="^"+a[S]+"\\s*("+w+")$|^$";var R=s++;a[R]="(\\s*)"+a[S]+"\\s*("+x+"|"+a[E]+")",o[R]=new RegExp(a[R],"g");var V=s++;a[V]="^\\s*("+a[E]+")\\s+-\\s+("+a[E]+")\\s*$";var M=s++;a[M]="^\\s*("+a[A]+")\\s+-\\s+("+a[A]+")\\s*$";var q=s++;a[q]="(<|>)?=?\\s*\\*";for(var X=0;X<35;X++)n(X,a[X]),o[X]||(o[X]=new RegExp(a[X]));function H(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof J)return e;if("string"!=typeof e)return null;if(e.length>r)return null;if(!(t.loose?o[_]:o[y]).test(e))return null;try{return new J(e,t)}catch(e){return null}}function J(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof J){if(e.loose===t.loose)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>r)throw new TypeError("version is longer than "+r+" characters");if(!(this instanceof J))return new J(e,t);n("SemVer",e,t),this.options=t,this.loose=!!t.loose;var a=e.trim().match(t.loose?o[_]:o[y]);if(!a)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+a[1],this.minor=+a[2],this.patch=+a[3],this.major>i||this.major<0)throw new TypeError("Invalid major version");if(this.minor>i||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>i||this.patch<0)throw new TypeError("Invalid patch version");a[4]?this.prerelease=a[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t<i)return t}return e}):this.prerelease=[],this.build=a[5]?a[5].split("."):[],this.format()}t.parse=H,t.valid=function(e,t){var n=H(e,t);return n?n.version:null},t.clean=function(e,t){var n=H(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null},t.SemVer=J,J.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},J.prototype.toString=function(){return this.version},J.prototype.compare=function(e){return n("SemVer.compare",this.version,this.options,e),e instanceof J||(e=new J(e,this.options)),this.compareMain(e)||this.comparePre(e)},J.prototype.compareMain=function(e){return e instanceof J||(e=new J(e,this.options)),G(this.major,e.major)||G(this.minor,e.minor)||G(this.patch,e.patch)},J.prototype.comparePre=function(e){if(e instanceof J||(e=new J(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;var t=0;do{var r=this.prerelease[t],i=e.prerelease[t];if(n("prerelease compare",t,r,i),void 0===r&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===r)return-1;if(r!==i)return G(r,i)}while(++t)},J.prototype.inc=function(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{for(var n=this.prerelease.length;--n>=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);-1===n&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this},t.inc=function(e,t,n,r){"string"==typeof n&&(r=n,n=void 0);try{return new J(e,n).inc(t,r).version}catch(e){return null}},t.diff=function(e,t){if(Q(e,t))return null;var n=H(e),r=H(t),i="";if(n.prerelease.length||r.prerelease.length){i="pre";var o="prerelease"}for(var a in n)if(("major"===a||"minor"===a||"patch"===a)&&n[a]!==r[a])return i+a;return o},t.compareIdentifiers=G;var U=/^[0-9]+$/;function G(e,t){var n=U.test(e),r=U.test(t);return n&&r&&(e=+e,t=+t),e===t?0:n&&!r?-1:r&&!n?1:e<t?-1:1}function Y(e,t,n){return new J(e,n).compare(new J(t,n))}function Z(e,t,n){return Y(e,t,n)>0}function K(e,t,n){return Y(e,t,n)<0}function Q(e,t,n){return 0===Y(e,t,n)}function ee(e,t,n){return 0!==Y(e,t,n)}function te(e,t,n){return Y(e,t,n)>=0}function ne(e,t,n){return Y(e,t,n)<=0}function re(e,t,n,r){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return Q(e,n,r);case"!=":return ee(e,n,r);case">":return Z(e,n,r);case">=":return te(e,n,r);case"<":return K(e,n,r);case"<=":return ne(e,n,r);default:throw new TypeError("Invalid operator: "+t)}}function ie(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof ie){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof ie))return new ie(e,t);n("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===oe?this.value="":this.value=this.operator+this.semver.version,n("comp",this)}t.rcompareIdentifiers=function(e,t){return G(t,e)},t.major=function(e,t){return new J(e,t).major},t.minor=function(e,t){return new J(e,t).minor},t.patch=function(e,t){return new J(e,t).patch},t.compare=Y,t.compareLoose=function(e,t){return Y(e,t,!0)},t.rcompare=function(e,t,n){return Y(t,e,n)},t.sort=function(e,n){return e.sort(function(e,r){return t.compare(e,r,n)})},t.rsort=function(e,n){return e.sort(function(e,r){return t.rcompare(e,r,n)})},t.gt=Z,t.lt=K,t.eq=Q,t.neq=ee,t.gte=te,t.lte=ne,t.cmp=re,t.Comparator=ie;var oe={};function ae(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof ae)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new ae(e.raw,t);if(e instanceof ie)return new ae(e.value,t);if(!(this instanceof ae))return new ae(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);this.format()}function se(e,t){for(var n=!0,r=e.slice(),i=r.pop();n&&r.length;)n=r.every(function(e){return i.intersects(e,t)}),i=r.pop();return n}function le(e){return!e||"x"===e.toLowerCase()||"*"===e}function ce(e,t,n,r,i,o,a,s,l,c,u,f,p){return((t=le(n)?"":le(r)?">="+n+".0.0":le(i)?">="+n+"."+r+".0":">="+t)+" "+(s=le(l)?"":le(c)?"<"+(+l+1)+".0.0":le(u)?"<"+l+"."+(+c+1)+".0":f?"<="+l+"."+c+"."+u+"-"+f:"<="+s)).trim()}function ue(e,t,r){for(var i=0;i<e.length;i++)if(!e[i].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(i=0;i<e.length;i++)if(n(e[i].semver),e[i].semver!==oe&&e[i].semver.prerelease.length>0){var o=e[i].semver;if(o.major===t.major&&o.minor===t.minor&&o.patch===t.patch)return!0}return!1}return!0}function fe(e,t,n){try{t=new ae(t,n)}catch(e){return!1}return t.test(e)}function pe(e,t,n,r){var i,o,a,s,l;switch(e=new J(e,r),t=new ae(t,r),n){case">":i=Z,o=ne,a=K,s=">",l=">=";break;case"<":i=K,o=te,a=Z,s="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(fe(e,t,r))return!1;for(var c=0;c<t.set.length;++c){var u=t.set[c],f=null,p=null;if(u.forEach(function(e){e.semver===oe&&(e=new ie(">=0.0.0")),f=f||e,p=p||e,i(e.semver,f.semver,r)?f=e:a(e.semver,p.semver,r)&&(p=e)}),f.operator===s||f.operator===l)return!1;if((!p.operator||p.operator===s)&&o(e,p.semver))return!1;if(p.operator===l&&a(e,p.semver))return!1}return!0}ie.prototype.parse=function(e){var t=this.options.loose?o[B]:o[D],n=e.match(t);if(!n)throw new TypeError("Invalid comparator: "+e);this.operator=n[1],"="===this.operator&&(this.operator=""),n[2]?this.semver=new J(n[2],this.options.loose):this.semver=oe},ie.prototype.toString=function(){return this.value},ie.prototype.test=function(e){return n("Comparator.test",e,this.options.loose),this.semver===oe||("string"==typeof e&&(e=new J(e,this.options)),re(e,this.operator,this.semver,this.options))},ie.prototype.intersects=function(e,t){if(!(e instanceof ie))throw new TypeError("a Comparator is required");var n;if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return n=new ae(e.value,t),fe(this.value,n,t);if(""===e.operator)return n=new ae(this.value,t),fe(e.semver,n,t);var r=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),i=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,a=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),s=re(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),l=re(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return r||i||o&&a||s||l},t.Range=ae,ae.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range},ae.prototype.toString=function(){return this.range},ae.prototype.parseRange=function(e){var t=this.options.loose;e=e.trim();var r=t?o[M]:o[V];e=e.replace(r,ce),n("hyphen replace",e),e=e.replace(o[R],"$1$2$3"),n("comparator trim",e,o[R]),e=(e=(e=e.replace(o[T],"$1~")).replace(o[I],"$1^")).split(/\s+/).join(" ");var i=t?o[B]:o[D],a=e.split(" ").map(function(e){return function(e,t){return n("comp",e,t),e=function(e,t){return e.trim().split(/\s+/).map(function(e){return function(e,t){n("caret",e,t);var r=t.loose?o[L]:o[W];return e.replace(r,function(t,r,i,o,a){var s;return n("caret",e,t,r,i,o,a),le(r)?s="":le(i)?s=">="+r+".0.0 <"+(+r+1)+".0.0":le(o)?s="0"===r?">="+r+"."+i+".0 <"+r+"."+(+i+1)+".0":">="+r+"."+i+".0 <"+(+r+1)+".0.0":a?(n("replaceCaret pr",a),s="0"===r?"0"===i?">="+r+"."+i+"."+o+"-"+a+" <"+r+"."+i+"."+(+o+1):">="+r+"."+i+"."+o+"-"+a+" <"+r+"."+(+i+1)+".0":">="+r+"."+i+"."+o+"-"+a+" <"+(+r+1)+".0.0"):(n("no pr"),s="0"===r?"0"===i?">="+r+"."+i+"."+o+" <"+r+"."+i+"."+(+o+1):">="+r+"."+i+"."+o+" <"+r+"."+(+i+1)+".0":">="+r+"."+i+"."+o+" <"+(+r+1)+".0.0"),n("caret return",s),s})}(e,t)}).join(" ")}(e,t),n("caret",e),e=function(e,t){return e.trim().split(/\s+/).map(function(e){return function(e,t){var r=t.loose?o[F]:o[$];return e.replace(r,function(t,r,i,o,a){var s;return n("tilde",e,t,r,i,o,a),le(r)?s="":le(i)?s=">="+r+".0.0 <"+(+r+1)+".0.0":le(o)?s=">="+r+"."+i+".0 <"+r+"."+(+i+1)+".0":a?(n("replaceTilde pr",a),s=">="+r+"."+i+"."+o+"-"+a+" <"+r+"."+(+i+1)+".0"):s=">="+r+"."+i+"."+o+" <"+r+"."+(+i+1)+".0",n("tilde return",s),s})}(e,t)}).join(" ")}(e,t),n("tildes",e),e=function(e,t){return n("replaceXRanges",e,t),e.split(/\s+/).map(function(e){return function(e,t){e=e.trim();var r=t.loose?o[j]:o[O];return e.replace(r,function(t,r,i,o,a,s){n("xRange",e,t,r,i,o,a,s);var l=le(i),c=l||le(o),u=c||le(a),f=u;return"="===r&&f&&(r=""),l?t=">"===r||"<"===r?"<0.0.0":"*":r&&f?(c&&(o=0),a=0,">"===r?(r=">=",c?(i=+i+1,o=0,a=0):(o=+o+1,a=0)):"<="===r&&(r="<",c?i=+i+1:o=+o+1),t=r+i+"."+o+"."+a):c?t=">="+i+".0.0 <"+(+i+1)+".0.0":u&&(t=">="+i+"."+o+".0 <"+i+"."+(+o+1)+".0"),n("xRange return",t),t})}(e,t)}).join(" ")}(e,t),n("xrange",e),e=function(e,t){return n("replaceStars",e,t),e.trim().replace(o[q],"")}(e,t),n("stars",e),e}(e,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(a=a.filter(function(e){return!!e.match(i)})),a=a.map(function(e){return new ie(e,this.options)},this)},ae.prototype.intersects=function(e,t){if(!(e instanceof ae))throw new TypeError("a Range is required");return this.set.some(function(n){return se(n,t)&&e.set.some(function(e){return se(e,t)&&n.every(function(n){return e.every(function(e){return n.intersects(e,t)})})})})},t.toComparators=function(e,t){return new ae(e,t).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})},ae.prototype.test=function(e){if(!e)return!1;"string"==typeof e&&(e=new J(e,this.options));for(var t=0;t<this.set.length;t++)if(ue(this.set[t],e,this.options))return!0;return!1},t.satisfies=fe,t.maxSatisfying=function(e,t,n){var r=null,i=null;try{var o=new ae(t,n)}catch(e){return null}return e.forEach(function(e){o.test(e)&&(r&&-1!==i.compare(e)||(i=new J(r=e,n)))}),r},t.minSatisfying=function(e,t,n){var r=null,i=null;try{var o=new ae(t,n)}catch(e){return null}return e.forEach(function(e){o.test(e)&&(r&&1!==i.compare(e)||(i=new J(r=e,n)))}),r},t.minVersion=function(e,t){e=new ae(e,t);var n=new J("0.0.0");if(e.test(n))return n;if(n=new J("0.0.0-0"),e.test(n))return n;n=null;for(var r=0;r<e.set.length;++r){var i=e.set[r];i.forEach(function(e){var t=new J(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":n&&!Z(n,t)||(n=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}})}if(n&&e.test(n))return n;return null},t.validRange=function(e,t){try{return new ae(e,t).range||"*"}catch(e){return null}},t.ltr=function(e,t,n){return pe(e,t,"<",n)},t.gtr=function(e,t,n){return pe(e,t,">",n)},t.outside=pe,t.prerelease=function(e,t){var n=H(e,t);return n&&n.prerelease.length?n.prerelease:null},t.intersects=function(e,t,n){return e=new ae(e,n),t=new ae(t,n),e.intersects(t)},t.coerce=function(e){if(e instanceof J)return e;if("string"!=typeof e)return null;var t=e.match(o[z]);if(null==t)return null;return H(t[1]+"."+(t[2]||"0")+"."+(t[3]||"0"))}}),H=(X.SEMVER_SPEC_VERSION,X.re,X.src,X.parse,X.valid,X.clean,X.SemVer,X.inc,X.diff,X.compareIdentifiers,X.rcompareIdentifiers,X.major,X.minor,X.patch,X.compare,X.compareLoose,X.rcompare,X.sort,X.rsort,X.gt,X.lt,X.eq,X.neq,X.gte,X.lte,X.cmp,X.Comparator,X.Range,X.toComparators,X.satisfies),J=(X.maxSatisfying,X.minSatisfying,X.minVersion,X.validRange,X.ltr,X.gtr,X.outside,X.prerelease,X.intersects,X.coerce,M(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=/\/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(e).slice(1,3);return{library:t[0],version:t[1]}}})),U=(q=J)&&q.__esModule&&Object.prototype.hasOwnProperty.call(q,"default")?q.default:q;const G={background:"#fff",arc:{fill:"#4572a7"},area:{fill:"#4572a7"},line:{stroke:"#4572a7",strokeWidth:2},path:{stroke:"#4572a7"},rect:{fill:"#4572a7"},shape:{stroke:"#4572a7"},symbol:{fill:"#4572a7",strokeWidth:1.5,size:50},axis:{bandPosition:.5,grid:!0,gridColor:"#000000",gridOpacity:1,gridWidth:.5,labelPadding:10,tickSize:5,tickWidth:.5},axisBand:{grid:!1,tickExtra:!0},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:50,symbolType:"square"},range:{category:["#4572a7","#aa4643","#8aa453","#71598e","#4598ae","#d98445","#94aace","#d09393","#b9cc98","#a99cbc"]}},Y={group:{fill:"#e5e5e5"},arc:{fill:"#000"},area:{fill:"#000"},line:{stroke:"#000"},path:{stroke:"#000"},rect:{fill:"#000"},shape:{stroke:"#000"},symbol:{fill:"#000",size:40},axis:{domain:!1,grid:!0,gridColor:"#FFFFFF",gridOpacity:1,labelColor:"#7F7F7F",labelPadding:4,tickColor:"#7F7F7F",tickSize:5.67,titleFontSize:16,titleFontWeight:"normal"},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:40},range:{category:["#000000","#7F7F7F","#1A1A1A","#999999","#333333","#B0B0B0","#4D4D4D","#C9C9C9","#666666","#DCDCDC"]}},Z={background:"#f9f9f9",arc:{fill:"#ab5787"},area:{fill:"#ab5787"},line:{stroke:"#ab5787"},path:{stroke:"#ab5787"},rect:{fill:"#ab5787"},shape:{stroke:"#ab5787"},symbol:{fill:"#ab5787",size:30},axis:{domainColor:"#979797",domainWidth:.5,gridWidth:.2,labelColor:"#979797",tickColor:"#979797",tickWidth:.2,titleColor:"#979797"},axisBand:{grid:!1},axisX:{grid:!0,tickSize:10},axisY:{domain:!1,grid:!0,tickSize:0},legend:{labelFontSize:11,padding:1,symbolSize:30,symbolType:"square"},range:{category:["#ab5787","#51b2e5","#703c5c","#168dd9","#d190b6","#00609f","#d365ba","#154866","#666666","#c4c4c4"]}},K={background:"#fff",arc:{fill:"#3e5c69"},area:{fill:"#3e5c69"},line:{stroke:"#3e5c69"},path:{stroke:"#3e5c69"},rect:{fill:"#3e5c69"},shape:{stroke:"#3e5c69"},symbol:{fill:"#3e5c69"},axis:{domainWidth:.5,grid:!0,labelPadding:2,tickSize:5,tickWidth:.5,titleFontWeight:"normal"},axisBand:{grid:!1},axisX:{gridWidth:.2},axisY:{gridDash:[3],gridWidth:.4},legend:{labelFontSize:11,padding:1,symbolType:"square"},range:{category:["#3e5c69","#6793a6","#182429","#0570b0","#3690c0","#74a9cf","#a6bddb","#e2ddf2"]}},Q={background:"#333",title:{color:"#fff"},style:{"guide-label":{fill:"#fff"},"guide-title":{fill:"#fff"}},axis:{domainColor:"#fff",gridColor:"#888",tickColor:"#fff"}},ee={arc:{fill:"#30a2da"},area:{fill:"#30a2da"},axisBand:{grid:!1},axisBottom:{domain:!1,domainColor:"#333",domainWidth:3,grid:!0,gridColor:"#cbcbcb",gridWidth:1,labelColor:"#999",labelFontSize:10,labelPadding:4,tickColor:"#cbcbcb",tickSize:10,titleFontSize:14,titlePadding:10},axisLeft:{domainColor:"#cbcbcb",domainWidth:1,grid:!0,gridColor:"#cbcbcb",gridWidth:1,labelColor:"#999",labelFontSize:10,labelPadding:4,tickColor:"#cbcbcb",tickSize:10,ticks:!0,titleFontSize:14,titlePadding:10},axisRight:{domainColor:"#333",domainWidth:1,grid:!0,gridColor:"#cbcbcb",gridWidth:1,labelColor:"#999",labelFontSize:10,labelPadding:4,tickColor:"#cbcbcb",tickSize:10,ticks:!0,titleFontSize:14,titlePadding:10},axisTop:{domain:!1,domainColor:"#333",domainWidth:3,grid:!0,gridColor:"#cbcbcb",gridWidth:1,labelColor:"#999",labelFontSize:10,labelPadding:4,tickColor:"#cbcbcb",tickSize:10,titleFontSize:14,titlePadding:10},background:"#f0f0f0",group:{fill:"#f0f0f0"},legend:{labelColor:"#333",labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:"#333",titleFontSize:14,titlePadding:10},line:{stroke:"#30a2da",strokeWidth:2},path:{stroke:"#30a2da",strokeWidth:.5},rect:{fill:"#30a2da"},range:{category:["#30a2da","#fc4f30","#e5ae38","#6d904f","#8b8b8b","#b96db8","#ff9e27","#56cc60","#52d2ca","#52689e","#545454","#9fe4f8"],diverging:["#cc0020","#e77866","#f6e7e1","#d6e8ed","#91bfd9","#1d78b5"],heatmap:["#d6e8ed","#cee0e5","#91bfd9","#549cc6","#1d78b5"]},symbol:{filled:!0,shape:"circle"},shape:{stroke:"#30a2da"},style:{bar:{binSpacing:2,fill:"#30a2da",stroke:null}},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}},te="Benton Gothic Bold, sans",ne={"category-6":["#ec8431","#829eb1","#c89d29","#3580b1","#adc839","#ab7fb4"],"fire-7":["#fbf2c7","#f9e39c","#f8d36e","#f4bb6a","#e68a4f","#d15a40","#ab4232"],"fireandice-6":["#e68a4f","#f4bb6a","#f9e39c","#dadfe2","#a6b7c6","#849eae"],"ice-7":["#edefee","#dadfe2","#c4ccd2","#a6b7c6","#849eae","#607785","#47525d"]},re={background:"#ffffff",title:{anchor:"start",font:te,fontColor:"#000000",fontSize:22,fontWeight:"normal"},arc:{fill:"#82c6df"},area:{fill:"#82c6df"},line:{stroke:"#82c6df",strokeWidth:2},path:{stroke:"#82c6df"},rect:{fill:"#82c6df"},shape:{stroke:"#82c6df"},symbol:{fill:"#82c6df",size:30},axis:{labelFont:"Benton Gothic, sans",labelFontSize:11.5,labelFontWeight:"normal",titleFont:te,titleFontSize:13,titleFontWeight:"normal"},axisX:{labelAngle:0,labelPadding:4,tickSize:3},axisY:{labelBaseline:"middle",maxExtent:45,minExtent:45,tickSize:2,titleAlign:"left",titleAngle:0,titleX:-45,titleY:-11},legend:{labelFont:"Benton Gothic, sans",labelFontSize:11.5,symbolType:"square",titleFont:te,titleFontSize:13,titleFontWeight:"normal"},range:{category:ne["category-6"],diverging:ne["fireandice-6"],heatmap:ne["fire-7"],ordinal:ne["fire-7"],ramp:ne["fire-7"]}};var ie=Object.freeze({excel:G,ggplot2:Y,quartz:Z,vox:K,dark:Q,fivethirtyeight:ee,latimes:re}),oe="#vg-tooltip-element {\n  visibility: hidden;\n  padding: 8px;\n  position: fixed;\n  z-index: 1000;\n  font-family: sans-serif;\n  font-size: 11px;\n  border-radius: 3px;\n  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n  /* The default theme is the light theme. */\n  background-color: rgba(255, 255, 255, 0.95);\n  border: 1px solid #d9d9d9;\n  color: black; }\n  #vg-tooltip-element.visible {\n    visibility: visible; }\n  #vg-tooltip-element h2 {\n    margin-top: 0;\n    margin-bottom: 10px;\n    font-size: 13px; }\n  #vg-tooltip-element table {\n    border-spacing: 0; }\n    #vg-tooltip-element table tr {\n      border: none; }\n      #vg-tooltip-element table tr td {\n        overflow: hidden;\n        text-overflow: ellipsis;\n        padding-top: 2px;\n        padding-bottom: 2px; }\n        #vg-tooltip-element table tr td.key {\n          color: #808080;\n          max-width: 150px;\n          text-align: right;\n          padding-right: 4px; }\n        #vg-tooltip-element table tr td.value {\n          display: block;\n          max-width: 300px;\n          max-height: 7em;\n          text-align: left; }\n  #vg-tooltip-element.dark-theme {\n    background-color: rgba(32, 32, 32, 0.9);\n    border: 1px solid #f5f5f5;\n    color: white; }\n    #vg-tooltip-element.dark-theme td.key {\n      color: #bfbfbf; }\n";const ae="vg-tooltip-element",se={offsetX:10,offsetY:10,id:ae,styleId:"vega-tooltip-style",theme:"light",disableDefaultStyle:!1,sanitize:function(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;")},maxDepth:2};function le(e,t,n){return e.fields=t||[],e.fname=n,e}function ce(e){throw Error(e)}var ue=Array.isArray;function fe(e){return e===Object(e)}function pe(e){return"string"==typeof e}function he(e){return ue(e)?"["+e.map(he)+"]":fe(e)||pe(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}var de=[],ge=(function(e,t){var n=function(e){var t,n,r,i=[],o=null,a=0,s=e.length,l="";function c(){i.push(l+e.substring(t,n)),l="",t=n+1}for(e+="",t=n=0;n<s;++n)if("\\"===(r=e[n]))l+=e.substring(t,n),t=++n;else if(r===o)c(),o=null,a=-1;else{if(o)continue;t===a&&'"'===r?(t=n+1,o=r):t===a&&"'"===r?(t=n+1,o=r):"."!==r||a?"["===r?(n>t&&c(),a=t=n+1):"]"===r&&(a||ce("Access path missing open bracket: "+e),a>0&&c(),a=0,t=n+1):n>t?c():t=n+1}return a&&ce("Access path missing closing bracket: "+e),o&&ce("Access path missing closing quote: "+e),n>t&&(n++,c()),i}(e),r="return _["+n.map(he).join("][")+"];";le(Function("_",r),[e=1===n.length?n[0]:e],t||e)}("id"),le(function(e){return e},de,"identity"),le(function(){return 0},de,"zero"),le(function(){return 1},de,"one"),le(function(){return!0},de,"true"),le(function(){return!1},de,"false"),function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&(n[r[i]]=e[r[i]])}return n});function me(e,t){return JSON.stringify(e,function(e){const t=[];return function(n,r){if("object"!=typeof r||null===r)return r;const i=t.indexOf(this)+1;return t.length=i,t.length>e?"[Object]":t.indexOf(r)>=0?"[Circular]":(t.push(r),r)}}(t))}class ve{constructor(e){this.options=Object.assign({},se,e);const t=this.options.id;if(this.call=this.tooltip_handler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){const e=document.createElement("style");e.setAttribute("id",this.options.styleId),e.innerHTML=function(e){if(!/^[A-Za-z]+[-:.\w]*$/.test(e))throw new Error("Invalid HTML ID");return oe.toString().replace(ae,e)}(t);const n=document.head;n.childNodes.length>0?n.insertBefore(e,n.childNodes[0]):n.appendChild(e)}this.el=document.getElementById(t),this.el||(this.el=document.createElement("div"),this.el.setAttribute("id",t),this.el.classList.add("vg-tooltip"),document.body.appendChild(this.el))}tooltip_handler(e,t,n,r){if(null==r||""===r)return void this.el.classList.remove("visible",`${this.options.theme}-theme`);this.el.innerHTML=function(e,t,n){if(ue(e))return`[${e.map(e=>t(pe(e)?e:me(e,n))).join(", ")}]`;if(fe(e)){let r="";const i=e,{title:o}=i,a=ge(i,["title"]);o&&(r+=`<h2>${t(o)}</h2>`);const s=Object.keys(a);if(s.length>0){r+="<table>";for(const e of s){let i=a[e];fe(i)&&(i=me(i,n)),r+=`<tr><td class="key">${t(e)}:</td><td class="value">${t(i)}</td></tr>`}r+="</table>"}return r||"{}"}return t(e)}(r,this.options.sanitize,this.options.maxDepth),this.el.classList.add("visible",`${this.options.theme}-theme`);const{x:i,y:o}=function(e,t,n,r){let i=e.clientX+n;i+t.width>window.innerWidth&&(i=+e.clientX-n-t.width);let o=e.clientY+r;return o+t.height>window.innerHeight&&(o=+e.clientY-r-t.height),{x:i,y:o}}(t,this.el.getBoundingClientRect(),this.options.offsetX,this.options.offsetY);this.el.setAttribute("style",`top: ${o}px; left: ${i}px`)}}var be='.vega-embed {\n  position: relative;\n  display: inline-block;\n  padding-right: 38px; }\n  .vega-embed details:not([open]) > :not(summary) {\n    display: none !important; }\n  .vega-embed summary {\n    list-style: none;\n    display: flex;\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: 6px;\n    z-index: 1000;\n    background: white;\n    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n    color: #1b1e23;\n    border: 1px solid #aaa;\n    border-radius: 999px;\n    opacity: 0.2;\n    transition: opacity 0.4s ease-in;\n    outline: none;\n    cursor: pointer; }\n    .vega-embed summary::-webkit-details-marker {\n      display: none; }\n  .vega-embed details[open] summary {\n    opacity: 0.7; }\n  .vega-embed:hover summary,\n  .vega-embed:focus summary {\n    opacity: 1 !important;\n    transition: opacity 0.2s ease; }\n  .vega-embed .vega-actions {\n    position: absolute;\n    top: 35px;\n    right: -9px;\n    display: flex;\n    flex-direction: column;\n    padding-bottom: 8px;\n    padding-top: 8px;\n    border-radius: 4px;\n    box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n    border: 1px solid #d9d9d9;\n    background: white;\n    animation-duration: 0.15s;\n    animation-name: scale-in;\n    animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5); }\n    .vega-embed .vega-actions a {\n      padding: 8px 16px;\n      font-family: sans-serif;\n      font-size: 14px;\n      font-weight: 600;\n      white-space: nowrap;\n      color: #434a56;\n      text-decoration: none; }\n      .vega-embed .vega-actions a:hover {\n        background-color: #f7f7f9;\n        color: black; }\n    .vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n      content: "";\n      display: inline-block;\n      position: absolute; }\n    .vega-embed .vega-actions::before {\n      left: auto;\n      right: 14px;\n      top: -16px;\n      border: 8px solid #0000;\n      border-bottom-color: #d9d9d9; }\n    .vega-embed .vega-actions::after {\n      left: auto;\n      right: 15px;\n      top: -14px;\n      border: 7px solid #0000;\n      border-bottom-color: #fff; }\n\n.vega-embed-wrapper {\n  max-width: 100%;\n  overflow: scroll;\n  padding-right: 14px; }\n\n@keyframes scale-in {\n  from {\n    opacity: 0;\n    transform: scale(0.6); }\n  to {\n    opacity: 1;\n    transform: scale(1); } }\n';function ye(t,n){if("object"!=typeof n||null===n)return t;for(const r in n)n.hasOwnProperty(r)&&void 0!==n[r]&&("object"!=typeof n[r]||e.isArray(n[r])||null===n[r]?t[r]=n[r]:"object"!=typeof t[r]||null===t[r]?t[r]=we(e.isArray(n[r].constructor)?[]:{},n[r]):we(t[r],n[r]));return t}function we(e,...t){for(const n of t)e=ye(e,n);return e}String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return this.substr(!t||t<0?0:+t,e.length)===e});const xe=e,_e=t,Se={CLICK_TO_VIEW_ACTIONS:"Click to view actions",COMPILED_ACTION:"View Compiled Vega",EDITOR_ACTION:"Open in Vega Editor",PNG_ACTION:"Save as PNG",SOURCE_ACTION:"View Source",SVG_ACTION:"Save as SVG"},ke={vega:"Vega","vega-lite":"Vega-Lite"},Ce={vega:xe.version,"vega-lite":_e?_e.version:"not available"},Ee={vega:e=>e,"vega-lite":(e,t)=>_e.compile(e,{config:t}).spec},Ae='\n<svg viewBox="0 0 16 16" fill="currentColor" stroke="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" width="14" height="14">\n  <circle r="2" cy="8" cx="2"></circle>\n  <circle r="2" cy="8" cx="8"></circle>\n  <circle r="2" cy="8" cx="14"></circle>\n</svg>';function Oe(e,t,n,r){const i=`<html><head>${t}</head><body><pre><code class="json">`,o=`</code></pre>${n}</body></html>`,a=window.open("");a.document.write(i+e+o),a.document.title=`${ke[r]} JSON Source`}function je(e,t,n={}){return D(this,void 0,void 0,function*(){const r=(i=n.loader)&&"load"in i?n.loader:xe.loader(n.loader);var i;if(xe.isString(t)){const i=yield r.load(t);return je(e,JSON.parse(i),n)}const o=(n=we(n,t.usermeta&&t.usermeta.embedOptions)).patch||n.onBeforeParse,a=!0===n.actions||!1===n.actions?n.actions:we({},{export:{svg:!0,png:!0},source:!0,compiled:!0,editor:!0},n.actions||{}),s=Object.assign({},Se,n.i18n),l=n.renderer||"canvas",c=n.logLevel||xe.Warn,u=n.downloadFileName||"visualization";let f=n.config||{};if(xe.isString(f)){const i=yield r.load(f);return je(e,t,Object.assign({},n,{config:JSON.parse(i)}))}if(!1!==n.defaultStyle){const e="vega-embed-style";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.innerText=void 0===n.defaultStyle||!0===n.defaultStyle?be.toString():n.defaultStyle,document.head.appendChild(t)}}n.theme&&(f=we({},ie[n.theme],f));const p=function(e,t){if(e.$schema){const n=U(e.$schema);t&&t!==n.library&&console.warn(`The given visualization spec is written in ${ke[n.library]}, but mode argument sets ${ke[t]||t}.`);const r=n.library;return H(Ce[r],`^${n.version.slice(1)}`)||console.warn(`The input spec uses ${r} ${n.version}, but the current version of ${ke[r]} is ${Ce[r]}.`),r}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":t||"vega"}(t,n.mode);let h=Ee[p](t,f);if("vega-lite"===p&&h.$schema){const e=U(h.$schema);H(Ce.vega,`^${e.version.slice(1)}`)||console.warn(`The compiled spec uses Vega ${e.version}, but current version is ${Ce.vega}.`)}const d=(g=e,"string"==typeof g?new W([[document.querySelector(g)]],[document.documentElement]):new W([[g]],I)).classed("vega-embed",!0).html("");var g;if(o)if(o instanceof Function)h=o(h);else if(xe.isString(o)){const e=yield r.load(o);h=we(h,JSON.parse(e))}else h=we(h,o);const m=xe.parse(h,"vega-lite"===p?{}:f),v=new xe.View(m,{loader:r,logLevel:c,renderer:l});if(!1!==n.tooltip){let e;e="function"==typeof n.tooltip?n.tooltip:new ve(!0===n.tooltip?{}:n.tooltip).call,v.tooltip(e)}let{hover:b}=n;if(void 0===b&&(b="vega-lite"!==p),b){const{hoverSet:e,updateSet:t}="boolean"==typeof b?{}:b;v.hover(e,t)}if(n&&(n.width&&v.width(n.width),n.height&&v.height(n.height),n.padding&&v.padding(n.padding)),yield v.initialize(e).runAsync(),!1!==a){let e=d;if(!1!==n.defaultStyle){const t=d.append("details").attr("title",s.CLICK_TO_VIEW_ACTIONS);e=t,t.insert("summary").html(Ae);const n=t.node();document.addEventListener("click",e=>{n.contains(e.target)||n.removeAttribute("open")})}const r=e.insert("div").attr("class","vega-actions");if(!0===a||!1!==a.export)for(const e of["svg","png"])if(!0===a||!0===a.export||a.export[e]){const t=s[`${e.toUpperCase()}_ACTION`];r.append("a").text(t).attr("href","#").attr("target","_blank").attr("download",`${u}.${e}`).on("mousedown",function(){v.toImageURL(e,n.scaleFactor).then(e=>{this.href=e}).catch(e=>{throw e}),z.preventDefault()})}if(!0!==a&&!1===a.source||r.append("a").text(s.SOURCE_ACTION).attr("href","#").on("mousedown",()=>{Oe(V(t),n.sourceHeader||"",n.sourceFooter||"",p),z.preventDefault()}),"vega-lite"!==p||!0!==a&&!1===a.compiled||r.append("a").text(s.COMPILED_ACTION).attr("href","#").on("mousedown",()=>{Oe(V(h),n.sourceHeader||"",n.sourceFooter||"","vega"),z.preventDefault()}),!0===a||!1!==a.editor){const e=n.editorUrl||"https://vega.github.io/editor/";r.append("a").text(s.EDITOR_ACTION).attr("href","#").on("mousedown",()=>{!function(e,t,n){const r=e.open(t),i=250;let o=~~(1e4/i);e.addEventListener("message",function t(n){n.source===r&&(o=0,e.removeEventListener("message",t,!1))},!1),setTimeout(function e(){o<=0||(r.postMessage(n,"*"),setTimeout(e,i),o-=1)},i)}(window,e,{config:f,mode:p,renderer:l,spec:V(t)}),z.preventDefault()})}}return{view:v,spec:t,vgSpec:h}})}function ze(e,t={}){return D(this,void 0,void 0,function*(){const n=document.createElement("div");n.classList.add("vega-embed-wrapper");const r=document.createElement("div");n.appendChild(r);const i=!0===t.actions||!1===t.actions?t.actions:Object.assign({export:!0,source:!1,compiled:!0,editor:!0},t.actions||{}),o=yield je(r,e,Object.assign({actions:i},t||{}));return n.value=o.view,n})}const Ne=(...t)=>t.length>1&&(e.isString(t[0])&&!function(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")}(t[0])||function(e){return e instanceof L||"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&null!==e&&1===e.nodeType&&"string"==typeof e.nodeName}(t[0])||3===t.length)?je(t[0],t[1],t[2]):ze(t[0],t[1]);return Ne.vl=_e,Ne.container=ze,Ne.embed=je,Ne.vega=xe,Ne.default=je,Ne.version=B,Ne});
diff --git a/javascript/vega-embed@6.3.2 b/javascript/vega-embed@6.3.2
new file mode 100644
--- /dev/null
+++ b/javascript/vega-embed@6.3.2
@@ -0,0 +1,26 @@
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vega"),require("vega-lite")):"function"==typeof define&&define.amd?define(["vega","vega-lite"],t):(e=e||self).vegaEmbed=t(e.vega,e.vegaLite)}(this,(function(e,t){"use strict";var r="6.3.2";
+/*! *****************************************************************************
+    Copyright (c) Microsoft Corporation. All rights reserved.
+    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+    this file except in compliance with the License. You may obtain a copy of the
+    License at http://www.apache.org/licenses/LICENSE-2.0
+
+    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+    MERCHANTABLITY OR NON-INFRINGEMENT.
+
+    See the Apache Version 2.0 License for specific language governing permissions
+    and limitations under the License.
+    ***************************************************************************** */
+function n(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{l(n.next(e))}catch(e){i(e)}}function s(e){try{l(n.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}l((n=n.apply(e,t||[])).next())}))}
+/*!
+     * https://github.com/Starcounter-Jack/JSON-Patch
+     * (c) 2017 Joachim Wester
+     * MIT license
+     */var o,i=(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=Object.prototype.hasOwnProperty;function s(e,t){return a.call(e,t)}function l(e){if(Array.isArray(e)){for(var t=new Array(e.length),r=0;r<t.length;r++)t[r]=""+r;return t}if(Object.keys)return Object.keys(e);t=[];for(var n in e)s(e,n)&&t.push(n);return t}function c(e){switch(typeof e){case"object":return JSON.parse(JSON.stringify(e));case"undefined":return null;default:return e}}function d(e){for(var t,r=0,n=e.length;r<n;){if(!((t=e.charCodeAt(r))>=48&&t<=57))return!1;r++}return!0}function p(e){return-1===e.indexOf("/")&&-1===e.indexOf("~")?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function f(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function u(e,t){var r=[e];for(var n in t){var o="object"==typeof t[n]?JSON.stringify(t[n],null,2):t[n];void 0!==o&&r.push(n+": "+o)}return r.join("\n")}var h=function(e){function t(t,r,n,o,i){var a=this.constructor,s=e.call(this,u(t,{name:r,index:n,operation:o,tree:i}))||this;return s.name=r,s.index=n,s.operation=o,s.tree=i,Object.setPrototypeOf(s,a.prototype),s.message=u(t,{name:r,index:n,operation:o,tree:i}),s}return i(t,e),t}(Error),v=h,g=c,m={add:function(e,t,r){return e[t]=this.value,{newDocument:r}},remove:function(e,t,r){var n=e[t];return delete e[t],{newDocument:r,removed:n}},replace:function(e,t,r){var n=e[t];return e[t]=this.value,{newDocument:r,removed:n}},move:function(e,t,r){var n=b(r,this.path);n&&(n=c(n));var o=y(r,{op:"remove",path:this.from}).removed;return y(r,{op:"add",path:this.path,value:o}),{newDocument:r,removed:n}},copy:function(e,t,r){var n=b(r,this.from);return y(r,{op:"add",path:this.path,value:c(n)}),{newDocument:r}},test:function(e,t,r){return{newDocument:r,test:A(e[t],this.value)}},_get:function(e,t,r){return this.value=e[t],{newDocument:r}}},E={add:function(e,t,r){return d(t)?e.splice(t,0,this.value):e[t]=this.value,{newDocument:r,index:t}},remove:function(e,t,r){return{newDocument:r,removed:e.splice(t,1)[0]}},replace:function(e,t,r){var n=e[t];return e[t]=this.value,{newDocument:r,removed:n}},move:m.move,copy:m.copy,test:m.test,_get:m._get};function b(e,t){if(""==t)return e;var r={op:"_get",path:t};return y(e,r),r.value}function y(e,t,r,n,o,i){if(void 0===r&&(r=!1),void 0===n&&(n=!0),void 0===o&&(o=!0),void 0===i&&(i=0),r&&("function"==typeof r?r(t,0,e,t.path):w(t,0)),""===t.path){var a={newDocument:e};if("add"===t.op)return a.newDocument=t.value,a;if("replace"===t.op)return a.newDocument=t.value,a.removed=e,a;if("move"===t.op||"copy"===t.op)return a.newDocument=b(e,t.from),"move"===t.op&&(a.removed=e),a;if("test"===t.op){if(a.test=A(e,t.value),!1===a.test)throw new v("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return a.newDocument=e,a}if("remove"===t.op)return a.removed=e,a.newDocument=null,a;if("_get"===t.op)return t.value=e,a;if(r)throw new v("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",i,t,e);return a}n||(e=c(e));var s=(t.path||"").split("/"),l=e,p=1,u=s.length,h=void 0,g=void 0,y=void 0;for(y="function"==typeof r?r:w;;){if(g=s[p],o&&"__proto__"==g)throw new TypeError("JSON-Patch: modifying `__proto__` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(r&&void 0===h&&(void 0===l[g]?h=s.slice(0,p).join("/"):p==u-1&&(h=t.path),void 0!==h&&y(t,0,e,h)),p++,Array.isArray(l)){if("-"===g)g=l.length;else{if(r&&!d(g))throw new v("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",i,t,e);d(g)&&(g=~~g)}if(p>=u){if(r&&"add"===t.op&&g>l.length)throw new v("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",i,t,e);if(!1===(a=E[t.op].call(t,l,g,e)).test)throw new v("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return a}}else if(g&&-1!=g.indexOf("~")&&(g=f(g)),p>=u){if(!1===(a=m[t.op].call(t,l,g,e)).test)throw new v("Test operation failed","TEST_OPERATION_FAILED",i,t,e);return a}l=l[g]}}function O(e,t,r,n,o){if(void 0===n&&(n=!0),void 0===o&&(o=!0),r&&!Array.isArray(t))throw new v("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");n||(e=c(e));for(var i=new Array(t.length),a=0,s=t.length;a<s;a++)i[a]=y(e,t[a],r,!0,o,a),e=i[a].newDocument;return i.newDocument=e,i}function w(e,t,r,n){if("object"!=typeof e||null===e||Array.isArray(e))throw new v("Operation is not an object","OPERATION_NOT_AN_OBJECT",t,e,r);if(!m[e.op])throw new v("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",t,e,r);if("string"!=typeof e.path)throw new v("Operation `path` property is not a string","OPERATION_PATH_INVALID",t,e,r);if(0!==e.path.indexOf("/")&&e.path.length>0)throw new v('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,r);if(("move"===e.op||"copy"===e.op)&&"string"!=typeof e.from)throw new v("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,r);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&void 0===e.value)throw new v("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,r);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&function e(t){if(void 0===t)return!0;if(t)if(Array.isArray(t)){for(var r=0,n=t.length;r<n;r++)if(e(t[r]))return!0}else if("object"==typeof t){var o=l(t),i=o.length;for(r=0;r<i;r++)if(e(t[o[r]]))return!0}return!1}(e.value))throw new v("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,r);if(r)if("add"==e.op){var o=e.path.split("/").length,i=n.split("/").length;if(o!==i+1&&o!==i)throw new v("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,r)}else if("replace"===e.op||"remove"===e.op||"_get"===e.op){if(e.path!==n)throw new v("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,r)}else if("move"===e.op||"copy"===e.op){var a=I([{op:"_get",path:e.from,value:void 0}],r);if(a&&"OPERATION_PATH_UNRESOLVABLE"===a.name)throw new v("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,r)}}function I(e,t,r){try{if(!Array.isArray(e))throw new v("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)O(c(t),c(e),r||!0);else{r=r||w;for(var n=0;n<e.length;n++)r(e[n],n,t,void 0)}}catch(e){if(e instanceof v)return e;throw e}}function A(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){var r,n,o,i=Array.isArray(e),a=Array.isArray(t);if(i&&a){if((n=e.length)!=t.length)return!1;for(r=n;0!=r--;)if(!A(e[r],t[r]))return!1;return!0}if(i!=a)return!1;var s=Object.keys(e);if((n=s.length)!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!t.hasOwnProperty(s[r]))return!1;for(r=n;0!=r--;)if(!A(e[o=s[r]],t[o]))return!1;return!0}return e!=e&&t!=t}var N=Object.freeze({__proto__:null,JsonPatchError:v,deepClone:g,getValueByPointer:b,applyOperation:y,applyPatch:O,applyReducer:function(e,t,r){var n=y(e,t);if(!1===n.test)throw new v("Test operation failed","TEST_OPERATION_FAILED",r,t,e);return n.newDocument},validator:w,validate:I,_areEquals:A}),R=new WeakMap,$=function(e){this.observers=new Map,this.obj=e},L=function(e,t){this.callback=e,this.observer=t};
+/*!
+     * https://github.com/Starcounter-Jack/JSON-Patch
+     * (c) 2017 Joachim Wester
+     * MIT license
+     */function T(e,t){void 0===t&&(t=!1);var r=R.get(e.object);S(r.value,e.object,e.patches,"",t),e.patches.length&&O(r.value,e.patches);var n=e.patches;return n.length>0&&(e.patches=[],e.callback&&e.callback(n)),n}function S(e,t,r,n,o){if(t!==e){"function"==typeof t.toJSON&&(t=t.toJSON());for(var i=l(t),a=l(e),d=!1,f=a.length-1;f>=0;f--){var u=e[v=a[f]];if(!s(t,v)||void 0===t[v]&&void 0!==u&&!1===Array.isArray(t))Array.isArray(e)===Array.isArray(t)?(o&&r.push({op:"test",path:n+"/"+p(v),value:c(u)}),r.push({op:"remove",path:n+"/"+p(v)}),d=!0):(o&&r.push({op:"test",path:n,value:e}),r.push({op:"replace",path:n,value:t}));else{var h=t[v];"object"==typeof u&&null!=u&&"object"==typeof h&&null!=h?S(u,h,r,n+"/"+p(v),o):u!==h&&(o&&r.push({op:"test",path:n+"/"+p(v),value:c(u)}),r.push({op:"replace",path:n+"/"+p(v),value:c(h)}))}}if(d||i.length!=a.length)for(f=0;f<i.length;f++){var v;s(e,v=i[f])||void 0===t[v]||r.push({op:"add",path:n+"/"+p(v),value:c(t[v])})}}}var C=Object.freeze({__proto__:null,unobserve:function(e,t){t.unobserve()},observe:function(e,t){var r,n=function(e){return R.get(e)}(e);if(n){var o=function(e,t){return e.observers.get(t)}(n,t);r=o&&o.observer}else n=new $(e),R.set(e,n);if(r)return r;if(r={},n.value=c(e),t){r.callback=t,r.next=null;var i=function(){T(r)},a=function(){clearTimeout(r.next),r.next=setTimeout(i)};"undefined"!=typeof window&&(window.addEventListener("mouseup",a),window.addEventListener("keyup",a),window.addEventListener("mousedown",a),window.addEventListener("keydown",a),window.addEventListener("change",a))}return r.patches=[],r.object=e,r.unobserve=function(){T(r),clearTimeout(r.next),function(e,t){e.observers.delete(t.callback)}(n,r),"undefined"!=typeof window&&(window.removeEventListener("mouseup",a),window.removeEventListener("keyup",a),window.removeEventListener("mousedown",a),window.removeEventListener("keydown",a),window.removeEventListener("change",a))},n.observers.set(t,new L(t,r)),r},generate:T,compare:function(e,t,r){void 0===r&&(r=!1);var n=[];return S(e,t,n,"",r),n}});Object.assign({},N,C,{JsonPatchError:h,deepClone:c,escapePathComponent:p,unescapePathComponent:f});var x=/("(?:[^\\"]|\\.)*")|[:,]/g,D=function(e,t){var r,n,o;return t=t||{},r=JSON.stringify([1],void 0,void 0===t.indent?2:t.indent).slice(2,-3),n=""===r?1/0:void 0===t.maxLength?80:t.maxLength,o=t.replacer,function e(t,i,a){var s,l,c,d,p,f,u,h,v,g,m,E;if(t&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0===(m=JSON.stringify(t,o)))return m;if(u=n-i.length-a,m.length<=u&&(v=m.replace(x,(function(e,t){return t||e+" "}))).length<=u)return v;if(null!=o&&(t=JSON.parse(m),o=void 0),"object"==typeof t&&null!==t){if(h=i+r,c=[],l=0,Array.isArray(t))for(g="[",s="]",u=t.length;l<u;l++)c.push(e(t[l],h,l===u-1?0:1)||"null");else for(g="{",s="}",u=(f=Object.keys(t)).length;l<u;l++)d=f[l],p=JSON.stringify(d)+": ",void 0!==(E=e(t[d],h,p.length+(l===u-1?0:1)))&&c.push(p+E);if(c.length>0)return[g,r+c.join(",\n"+h),s].join("\n"+i)}return m}(e,"",0)};function F(e,t){return e(t={exports:{}},t.exports),t.exports}var _={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16};var P="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{},k=F((function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:r}=_,n=(t=e.exports={}).re=[],o=t.src=[],i=t.t={};let a=0;const s=(e,t,r)=>{const s=a++;P(s,t),i[e]=s,o[s]=t,n[s]=new RegExp(t,r?"g":void 0)};s("NUMERICIDENTIFIER","0|[1-9]\\d*"),s("NUMERICIDENTIFIERLOOSE","[0-9]+"),s("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),s("MAINVERSION",`(${o[i.NUMERICIDENTIFIER]})\\.`+`(${o[i.NUMERICIDENTIFIER]})\\.`+`(${o[i.NUMERICIDENTIFIER]})`),s("MAINVERSIONLOOSE",`(${o[i.NUMERICIDENTIFIERLOOSE]})\\.`+`(${o[i.NUMERICIDENTIFIERLOOSE]})\\.`+`(${o[i.NUMERICIDENTIFIERLOOSE]})`),s("PRERELEASEIDENTIFIER",`(?:${o[i.NUMERICIDENTIFIER]}|${o[i.NONNUMERICIDENTIFIER]})`),s("PRERELEASEIDENTIFIERLOOSE",`(?:${o[i.NUMERICIDENTIFIERLOOSE]}|${o[i.NONNUMERICIDENTIFIER]})`),s("PRERELEASE",`(?:-(${o[i.PRERELEASEIDENTIFIER]}(?:\\.${o[i.PRERELEASEIDENTIFIER]})*))`),s("PRERELEASELOOSE",`(?:-?(${o[i.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${o[i.PRERELEASEIDENTIFIERLOOSE]})*))`),s("BUILDIDENTIFIER","[0-9A-Za-z-]+"),s("BUILD",`(?:\\+(${o[i.BUILDIDENTIFIER]}(?:\\.${o[i.BUILDIDENTIFIER]})*))`),s("FULLPLAIN",`v?${o[i.MAINVERSION]}${o[i.PRERELEASE]}?${o[i.BUILD]}?`),s("FULL",`^${o[i.FULLPLAIN]}$`),s("LOOSEPLAIN",`[v=\\s]*${o[i.MAINVERSIONLOOSE]}${o[i.PRERELEASELOOSE]}?${o[i.BUILD]}?`),s("LOOSE",`^${o[i.LOOSEPLAIN]}$`),s("GTLT","((?:<|>)?=?)"),s("XRANGEIDENTIFIERLOOSE",`${o[i.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),s("XRANGEIDENTIFIER",`${o[i.NUMERICIDENTIFIER]}|x|X|\\*`),s("XRANGEPLAIN",`[v=\\s]*(${o[i.XRANGEIDENTIFIER]})`+`(?:\\.(${o[i.XRANGEIDENTIFIER]})`+`(?:\\.(${o[i.XRANGEIDENTIFIER]})`+`(?:${o[i.PRERELEASE]})?${o[i.BUILD]}?`+")?)?"),s("XRANGEPLAINLOOSE",`[v=\\s]*(${o[i.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${o[i.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${o[i.XRANGEIDENTIFIERLOOSE]})`+`(?:${o[i.PRERELEASELOOSE]})?${o[i.BUILD]}?`+")?)?"),s("XRANGE",`^${o[i.GTLT]}\\s*${o[i.XRANGEPLAIN]}$`),s("XRANGELOOSE",`^${o[i.GTLT]}\\s*${o[i.XRANGEPLAINLOOSE]}$`),s("COERCE",`(^|[^\\d])(\\d{1,${r}})`+`(?:\\.(\\d{1,${r}}))?`+`(?:\\.(\\d{1,${r}}))?`+"(?:$|[^\\d])"),s("COERCERTL",o[i.COERCE],!0),s("LONETILDE","(?:~>?)"),s("TILDETRIM",`(\\s*)${o[i.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",s("TILDE",`^${o[i.LONETILDE]}${o[i.XRANGEPLAIN]}$`),s("TILDELOOSE",`^${o[i.LONETILDE]}${o[i.XRANGEPLAINLOOSE]}$`),s("LONECARET","(?:\\^)"),s("CARETTRIM",`(\\s*)${o[i.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",s("CARET",`^${o[i.LONECARET]}${o[i.XRANGEPLAIN]}$`),s("CARETLOOSE",`^${o[i.LONECARET]}${o[i.XRANGEPLAINLOOSE]}$`),s("COMPARATORLOOSE",`^${o[i.GTLT]}\\s*(${o[i.LOOSEPLAIN]})$|^$`),s("COMPARATOR",`^${o[i.GTLT]}\\s*(${o[i.FULLPLAIN]})$|^$`),s("COMPARATORTRIM",`(\\s*)${o[i.GTLT]}\\s*(${o[i.LOOSEPLAIN]}|${o[i.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",s("HYPHENRANGE",`^\\s*(${o[i.XRANGEPLAIN]})`+"\\s+-\\s+"+`(${o[i.XRANGEPLAIN]})`+"\\s*$"),s("HYPHENRANGELOOSE",`^\\s*(${o[i.XRANGEPLAINLOOSE]})`+"\\s+-\\s+"+`(${o[i.XRANGEPLAINLOOSE]})`+"\\s*$"),s("STAR","(<|>)?=?\\s*\\*")}));k.re,k.src,k.t,k.tildeTrimReplace,k.caretTrimReplace,k.comparatorTrimReplace;const j=/^[0-9]+$/,z=(e,t)=>{const r=j.test(e),n=j.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1};var M={compareIdentifiers:z,rcompareIdentifiers:(e,t)=>z(t,e)};const{MAX_LENGTH:B,MAX_SAFE_INTEGER:G}=_,{re:U,t:X}=k,{compareIdentifiers:V}=M;class W{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof W){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid Version: ${e}`);if(e.length>B)throw new TypeError(`version is longer than ${B} characters`);P("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?U[X.LOOSE]:U[X.FULL]);if(!r)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>G||this.major<0)throw new TypeError("Invalid major version");if(this.minor>G||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>G||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<G)return t}return e}):this.prerelease=[],this.build=r[5]?r[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(P("SemVer.compare",this.version,this.options,e),!(e instanceof W)){if("string"==typeof e&&e===this.version)return 0;e=new W(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof W||(e=new W(e,this.options)),V(this.major,e.major)||V(this.minor,e.minor)||V(this.patch,e.patch)}comparePre(e){if(e instanceof W||(e=new W(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const r=this.prerelease[t],n=e.prerelease[t];if(P("prerelease compare",t,r,n),void 0===r&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===r)return-1;if(r!==n)return V(r,n)}while(++t)}compareBuild(e){e instanceof W||(e=new W(e,this.options));let t=0;do{const r=this.build[t],n=e.build[t];if(P("prerelease compare",t,r,n),void 0===r&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===r)return-1;if(r!==n)return V(r,n)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{let e=this.prerelease.length;for(;--e>=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}}var H=W;const{MAX_LENGTH:q}=_,{re:J,t:Y}=k;var Q=(e,t)=>{if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof H)return e;if("string"!=typeof e)return null;if(e.length>q)return null;if(!(t.loose?J[Y.LOOSE]:J[Y.FULL]).test(e))return null;try{return new H(e,t)}catch(e){return null}};var Z=(e,t)=>{const r=Q(e,t);return r?r.version:null};var K=(e,t)=>{const r=Q(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};var ee=(e,t,r,n)=>{"string"==typeof r&&(n=r,r=void 0);try{return new H(e,r).inc(t,n).version}catch(e){return null}};var te=(e,t,r)=>new H(e,r).compare(new H(t,r));var re=(e,t,r)=>0===te(e,t,r);var ne=(e,t)=>{if(re(e,t))return null;{const r=Q(e),n=Q(t),o=r.prerelease.length||n.prerelease.length,i=o?"pre":"",a=o?"prerelease":"";for(const e in r)if(("major"===e||"minor"===e||"patch"===e)&&r[e]!==n[e])return i+e;return a}};var oe=(e,t)=>new H(e,t).major;var ie=(e,t)=>new H(e,t).minor;var ae=(e,t)=>new H(e,t).patch;var se=(e,t)=>{const r=Q(e,t);return r&&r.prerelease.length?r.prerelease:null};var le=(e,t,r)=>te(t,e,r);var ce=(e,t)=>te(e,t,!0);var de=(e,t,r)=>{const n=new H(e,r),o=new H(t,r);return n.compare(o)||n.compareBuild(o)};var pe=(e,t)=>e.sort((e,r)=>de(e,r,t));var fe=(e,t)=>e.sort((e,r)=>de(r,e,t));var ue=(e,t,r)=>te(e,t,r)>0;var he=(e,t,r)=>te(e,t,r)<0;var ve=(e,t,r)=>0!==te(e,t,r);var ge=(e,t,r)=>te(e,t,r)>=0;var me=(e,t,r)=>te(e,t,r)<=0;var Ee=(e,t,r,n)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return re(e,r,n);case"!=":return ve(e,r,n);case">":return ue(e,r,n);case">=":return ge(e,r,n);case"<":return he(e,r,n);case"<=":return me(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};const{re:be,t:ye}=k;var Oe=(e,t)=>{if(e instanceof H)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let r=null;if((t=t||{}).rtl){let t;for(;(t=be[ye.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&t.index+t[0].length===r.index+r[0].length||(r=t),be[ye.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;be[ye.COERCERTL].lastIndex=-1}else r=e.match(be[ye.COERCE]);return null===r?null:Q(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,t)};class we{constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof we)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new we(e.raw,t);if(e instanceof Ue)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){const t=this.options.loose;e=e.trim();const r=t?Ae[Ne.HYPHENRANGELOOSE]:Ae[Ne.HYPHENRANGE];e=e.replace(r,ze),P("hyphen replace",e),e=e.replace(Ae[Ne.COMPARATORTRIM],Re),P("comparator trim",e,Ae[Ne.COMPARATORTRIM]),e=(e=(e=e.replace(Ae[Ne.TILDETRIM],$e)).replace(Ae[Ne.CARETTRIM],Le)).split(/\s+/).join(" ");const n=t?Ae[Ne.COMPARATORLOOSE]:Ae[Ne.COMPARATOR];return e.split(" ").map(e=>Se(e,this.options)).join(" ").split(/\s+/).filter(this.options.loose?e=>!!e.match(n):()=>!0).map(e=>new Ue(e,this.options))}intersects(e,t){if(!(e instanceof we))throw new TypeError("a Range is required");return this.set.some(r=>Te(r,t)&&e.set.some(e=>Te(e,t)&&r.every(r=>e.every(e=>r.intersects(e,t)))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new H(e,this.options)}catch(e){return!1}for(let t=0;t<this.set.length;t++)if(Me(this.set[t],e,this.options))return!0;return!1}}var Ie=we;const{re:Ae,t:Ne,comparatorTrimReplace:Re,tildeTrimReplace:$e,caretTrimReplace:Le}=k,Te=(e,t)=>{let r=!0;const n=e.slice();let o=n.pop();for(;r&&n.length;)r=n.every(e=>o.intersects(e,t)),o=n.pop();return r},Se=(e,t)=>(P("comp",e,t),e=Fe(e,t),P("caret",e),e=xe(e,t),P("tildes",e),e=Pe(e,t),P("xrange",e),e=je(e,t),P("stars",e),e),Ce=e=>!e||"x"===e.toLowerCase()||"*"===e,xe=(e,t)=>e.trim().split(/\s+/).map(e=>De(e,t)).join(" "),De=(e,t)=>{const r=t.loose?Ae[Ne.TILDELOOSE]:Ae[Ne.TILDE];return e.replace(r,(t,r,n,o,i)=>{let a;return P("tilde",e,t,r,n,o,i),Ce(r)?a="":Ce(n)?a=`>=${r}.0.0 <${+r+1}.0.0`:Ce(o)?a=`>=${r}.${n}.0 <${r}.${+n+1}.0`:i?(P("replaceTilde pr",i),a=`>=${r}.${n}.${o}-${i} <${r}.${+n+1}.0`):a=`>=${r}.${n}.${o} <${r}.${+n+1}.0`,P("tilde return",a),a})},Fe=(e,t)=>e.trim().split(/\s+/).map(e=>_e(e,t)).join(" "),_e=(e,t)=>{P("caret",e,t);const r=t.loose?Ae[Ne.CARETLOOSE]:Ae[Ne.CARET];return e.replace(r,(t,r,n,o,i)=>{let a;return P("caret",e,t,r,n,o,i),Ce(r)?a="":Ce(n)?a=`>=${r}.0.0 <${+r+1}.0.0`:Ce(o)?a="0"===r?`>=${r}.${n}.0 <${r}.${+n+1}.0`:`>=${r}.${n}.0 <${+r+1}.0.0`:i?(P("replaceCaret pr",i),a="0"===r?"0"===n?`>=${r}.${n}.${o}-${i} <${r}.${n}.${+o+1}`:`>=${r}.${n}.${o}-${i} <${r}.${+n+1}.0`:`>=${r}.${n}.${o}-${i} <${+r+1}.0.0`):(P("no pr"),a="0"===r?"0"===n?`>=${r}.${n}.${o} <${r}.${n}.${+o+1}`:`>=${r}.${n}.${o} <${r}.${+n+1}.0`:`>=${r}.${n}.${o} <${+r+1}.0.0`),P("caret return",a),a})},Pe=(e,t)=>(P("replaceXRanges",e,t),e.split(/\s+/).map(e=>ke(e,t)).join(" ")),ke=(e,t)=>{e=e.trim();const r=t.loose?Ae[Ne.XRANGELOOSE]:Ae[Ne.XRANGE];return e.replace(r,(r,n,o,i,a,s)=>{P("xRange",e,r,n,o,i,a,s);const l=Ce(o),c=l||Ce(i),d=c||Ce(a),p=d;return"="===n&&p&&(n=""),s=t.includePrerelease?"-0":"",l?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&p?(c&&(i=0),a=0,">"===n?(n=">=",c?(o=+o+1,i=0,a=0):(i=+i+1,a=0)):"<="===n&&(n="<",c?o=+o+1:i=+i+1),r=`${n+o}.${i}.${a}${s}`):c?r=`>=${o}.0.0${s} <${+o+1}.0.0${s}`:d&&(r=`>=${o}.${i}.0${s} <${o}.${+i+1}.0${s}`),P("xRange return",r),r})},je=(e,t)=>(P("replaceStars",e,t),e.trim().replace(Ae[Ne.STAR],"")),ze=(e,t,r,n,o,i,a,s,l,c,d,p,f)=>`${t=Ce(r)?"":Ce(n)?`>=${r}.0.0`:Ce(o)?`>=${r}.${n}.0`:`>=${t}`} ${s=Ce(l)?"":Ce(c)?`<${+l+1}.0.0`:Ce(d)?`<${l}.${+c+1}.0`:p?`<=${l}.${c}.${d}-${p}`:`<=${s}`}`.trim(),Me=(e,t,r)=>{for(let r=0;r<e.length;r++)if(!e[r].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(let r=0;r<e.length;r++)if(P(e[r].semver),e[r].semver!==Ue.ANY&&e[r].semver.prerelease.length>0){const n=e[r].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0}return!1}return!0},Be=Symbol("SemVer ANY");class Ge{static get ANY(){return Be}constructor(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof Ge){if(e.loose===!!t.loose)return e;e=e.value}P("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Be?this.value="":this.value=this.operator+this.semver.version,P("comp",this)}parse(e){const t=this.options.loose?Xe[Ve.COMPARATORLOOSE]:Xe[Ve.COMPARATOR],r=e.match(t);if(!r)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new H(r[2],this.options.loose):this.semver=Be}toString(){return this.value}test(e){if(P("Comparator.test",e,this.options.loose),this.semver===Be||e===Be)return!0;if("string"==typeof e)try{e=new H(e,this.options)}catch(e){return!1}return Ee(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Ge))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new Ie(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new Ie(this.value,t).test(e.semver);const r=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),n=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,i=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),a=Ee(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),s=Ee(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return r||n||o&&i||a||s}}var Ue=Ge;const{re:Xe,t:Ve}=k;var We=(e,t,r)=>{try{t=new Ie(t,r)}catch(e){return!1}return t.test(e)};var He=(e,t)=>new Ie(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "));var qe=(e,t,r)=>{let n=null,o=null,i=null;try{i=new Ie(t,r)}catch(e){return null}return e.forEach(e=>{i.test(e)&&(n&&-1!==o.compare(e)||(n=e,o=new H(n,r)))}),n};var Je=(e,t,r)=>{let n=null,o=null,i=null;try{i=new Ie(t,r)}catch(e){return null}return e.forEach(e=>{i.test(e)&&(n&&1!==o.compare(e)||(n=e,o=new H(n,r)))}),n};var Ye=(e,t)=>{e=new Ie(e,t);let r=new H("0.0.0");if(e.test(r))return r;if(r=new H("0.0.0-0"),e.test(r))return r;r=null;for(let t=0;t<e.set.length;++t){e.set[t].forEach(e=>{const t=new H(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!ue(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})}return r&&e.test(r)?r:null};var Qe=(e,t)=>{try{return new Ie(e,t).range||"*"}catch(e){return null}};const{ANY:Ze}=Ue;var Ke=(e,t,r,n)=>{let o,i,a,s,l;switch(e=new H(e,n),t=new Ie(t,n),r){case">":o=ue,i=me,a=he,s=">",l=">=";break;case"<":o=he,i=ge,a=ue,s="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(We(e,t,n))return!1;for(let r=0;r<t.set.length;++r){const c=t.set[r];let d=null,p=null;if(c.forEach(e=>{e.semver===Ze&&(e=new Ue(">=0.0.0")),d=d||e,p=p||e,o(e.semver,d.semver,n)?d=e:a(e.semver,p.semver,n)&&(p=e)}),d.operator===s||d.operator===l)return!1;if((!p.operator||p.operator===s)&&i(e,p.semver))return!1;if(p.operator===l&&a(e,p.semver))return!1}return!0};var et=(e,t,r)=>Ke(e,t,">",r);var tt=(e,t,r)=>Ke(e,t,"<",r);var rt,nt=(e,t,r)=>(e=new Ie(e,r),t=new Ie(t,r),e.intersects(t)),ot={re:k.re,src:k.src,tokens:k.t,SEMVER_SPEC_VERSION:_.SEMVER_SPEC_VERSION,SemVer:H,compareIdentifiers:M.compareIdentifiers,rcompareIdentifiers:M.rcompareIdentifiers,parse:Q,valid:Z,clean:K,inc:ee,diff:ne,major:oe,minor:ie,patch:ae,prerelease:se,compare:te,rcompare:le,compareLoose:ce,compareBuild:de,sort:pe,rsort:fe,gt:ue,lt:he,eq:re,neq:ve,gte:ge,lte:me,cmp:Ee,coerce:Oe,Comparator:Ue,Range:Ie,satisfies:We,toComparators:He,maxSatisfying:qe,minSatisfying:Je,minVersion:Ye,validRange:Qe,outside:Ke,gtr:et,ltr:tt,intersects:nt}.satisfies,it=F((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=/\/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(e).slice(1,3);return{library:t[0],version:t[1]}}})),at=(rt=it)&&rt.__esModule&&Object.prototype.hasOwnProperty.call(rt,"default")?rt.default:rt;const st={background:"#333",title:{color:"#fff"},style:{"guide-label":{fill:"#fff"},"guide-title":{fill:"#fff"}},axis:{domainColor:"#fff",gridColor:"#888",tickColor:"#fff"}},lt={background:"#fff",arc:{fill:"#4572a7"},area:{fill:"#4572a7"},line:{stroke:"#4572a7",strokeWidth:2},path:{stroke:"#4572a7"},rect:{fill:"#4572a7"},shape:{stroke:"#4572a7"},symbol:{fill:"#4572a7",strokeWidth:1.5,size:50},axis:{bandPosition:.5,grid:!0,gridColor:"#000000",gridOpacity:1,gridWidth:.5,labelPadding:10,tickSize:5,tickWidth:.5},axisBand:{grid:!1,tickExtra:!0},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:50,symbolType:"square"},range:{category:["#4572a7","#aa4643","#8aa453","#71598e","#4598ae","#d98445","#94aace","#d09393","#b9cc98","#a99cbc"]}},ct={arc:{fill:"#30a2da"},area:{fill:"#30a2da"},axis:{domainColor:"#cbcbcb",grid:!0,gridColor:"#cbcbcb",gridWidth:1,labelColor:"#999",labelFontSize:10,titleColor:"#333",tickColor:"#cbcbcb",tickSize:10,titleFontSize:14,titlePadding:10,labelPadding:4},axisBand:{grid:!1},background:"#f0f0f0",group:{fill:"#f0f0f0"},legend:{labelColor:"#333",labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:"#333",titleFontSize:14,titlePadding:10},line:{stroke:"#30a2da",strokeWidth:2},path:{stroke:"#30a2da",strokeWidth:.5},rect:{fill:"#30a2da"},range:{category:["#30a2da","#fc4f30","#e5ae38","#6d904f","#8b8b8b","#b96db8","#ff9e27","#56cc60","#52d2ca","#52689e","#545454","#9fe4f8"],diverging:["#cc0020","#e77866","#f6e7e1","#d6e8ed","#91bfd9","#1d78b5"],heatmap:["#d6e8ed","#cee0e5","#91bfd9","#549cc6","#1d78b5"]},point:{filled:!0,shape:"circle"},shape:{stroke:"#30a2da"},style:{bar:{binSpacing:2,fill:"#30a2da",stroke:null}},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}},dt={group:{fill:"#e5e5e5"},arc:{fill:"#000"},area:{fill:"#000"},line:{stroke:"#000"},path:{stroke:"#000"},rect:{fill:"#000"},shape:{stroke:"#000"},symbol:{fill:"#000",size:40},axis:{domain:!1,grid:!0,gridColor:"#FFFFFF",gridOpacity:1,labelColor:"#7F7F7F",labelPadding:4,tickColor:"#7F7F7F",tickSize:5.67,titleFontSize:16,titleFontWeight:"normal"},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:40},range:{category:["#000000","#7F7F7F","#1A1A1A","#999999","#333333","#B0B0B0","#4D4D4D","#C9C9C9","#666666","#DCDCDC"]}},pt="Benton Gothic Bold, sans-serif",ft={"category-6":["#ec8431","#829eb1","#c89d29","#3580b1","#adc839","#ab7fb4"],"fire-7":["#fbf2c7","#f9e39c","#f8d36e","#f4bb6a","#e68a4f","#d15a40","#ab4232"],"fireandice-6":["#e68a4f","#f4bb6a","#f9e39c","#dadfe2","#a6b7c6","#849eae"],"ice-7":["#edefee","#dadfe2","#c4ccd2","#a6b7c6","#849eae","#607785","#47525d"]},ut={background:"#ffffff",title:{anchor:"start",color:"#000000",font:pt,fontSize:22,fontWeight:"normal"},arc:{fill:"#82c6df"},area:{fill:"#82c6df"},line:{stroke:"#82c6df",strokeWidth:2},path:{stroke:"#82c6df"},rect:{fill:"#82c6df"},shape:{stroke:"#82c6df"},symbol:{fill:"#82c6df",size:30},axis:{labelFont:"Benton Gothic, sans-serif",labelFontSize:11.5,labelFontWeight:"normal",titleFont:pt,titleFontSize:13,titleFontWeight:"normal"},axisX:{labelAngle:0,labelPadding:4,tickSize:3},axisY:{labelBaseline:"middle",maxExtent:45,minExtent:45,tickSize:2,titleAlign:"left",titleAngle:0,titleX:-45,titleY:-11},legend:{labelFont:"Benton Gothic, sans-serif",labelFontSize:11.5,symbolType:"square",titleFont:pt,titleFontSize:13,titleFontWeight:"normal"},range:{category:ft["category-6"],diverging:ft["fireandice-6"],heatmap:ft["fire-7"],ordinal:ft["fire-7"],ramp:ft["fire-7"]}},ht={background:"#f9f9f9",arc:{fill:"#ab5787"},area:{fill:"#ab5787"},line:{stroke:"#ab5787"},path:{stroke:"#ab5787"},rect:{fill:"#ab5787"},shape:{stroke:"#ab5787"},symbol:{fill:"#ab5787",size:30},axis:{domainColor:"#979797",domainWidth:.5,gridWidth:.2,labelColor:"#979797",tickColor:"#979797",tickWidth:.2,titleColor:"#979797"},axisBand:{grid:!1},axisX:{grid:!0,tickSize:10},axisY:{domain:!1,grid:!0,tickSize:0},legend:{labelFontSize:11,padding:1,symbolSize:30,symbolType:"square"},range:{category:["#ab5787","#51b2e5","#703c5c","#168dd9","#d190b6","#00609f","#d365ba","#154866","#666666","#c4c4c4"]}},vt={background:"#fff",arc:{fill:"#3e5c69"},area:{fill:"#3e5c69"},line:{stroke:"#3e5c69"},path:{stroke:"#3e5c69"},rect:{fill:"#3e5c69"},shape:{stroke:"#3e5c69"},symbol:{fill:"#3e5c69"},axis:{domainWidth:.5,grid:!0,labelPadding:2,tickSize:5,tickWidth:.5,titleFontWeight:"normal"},axisBand:{grid:!1},axisX:{gridWidth:.2},axisY:{gridDash:[3],gridWidth:.4},legend:{labelFontSize:11,padding:1,symbolType:"square"},range:{category:["#3e5c69","#6793a6","#182429","#0570b0","#3690c0","#74a9cf","#a6bddb","#e2ddf2"]}},gt={"main-colors":["#1696d2","#d2d2d2","#000000","#fdbf11","#ec008b","#55b748","#5c5859","#db2b27"],"shades-blue":["#CFE8F3","#A2D4EC","#73BFE2","#46ABDB","#1696D2","#12719E","#0A4C6A","#062635"],"shades-gray":["#F5F5F5","#ECECEC","#E3E3E3","#DCDBDB","#D2D2D2","#9D9D9D","#696969","#353535"],"shades-yellow":["#FFF2CF","#FCE39E","#FDD870","#FCCB41","#FDBF11","#E88E2D","#CA5800","#843215"],"shades-magenta":["#F5CBDF","#EB99C2","#E46AA7","#E54096","#EC008B","#AF1F6B","#761548","#351123"],"shades-green":["#DCEDD9","#BCDEB4","#98CF90","#78C26D","#55B748","#408941","#2C5C2D","#1A2E19"],"shades-black":["#D5D5D4","#ADABAC","#848081","#5C5859","#332D2F","#262223","#1A1717","#0E0C0D"],"shades-red":["#F8D5D4","#F1AAA9","#E9807D","#E25552","#DB2B27","#A4201D","#6E1614","#370B0A"],"one-group":["#1696d2","#000000"],"two-groups-cat-1":["#1696d2","#000000"],"two-groups-cat-2":["#1696d2","#fdbf11"],"two-groups-cat-3":["#1696d2","#db2b27"],"two-groups-seq":["#a2d4ec","#1696d2"],"three-groups-cat":["#1696d2","#fdbf11","#000000"],"three-groups-seq":["#a2d4ec","#1696d2","#0a4c6a"],"four-groups-cat-1":["#000000","#d2d2d2","#fdbf11","#1696d2"],"four-groups-cat-2":["#1696d2","#ec0008b","#fdbf11","#5c5859"],"four-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a"],"five-groups-cat-1":["#1696d2","#fdbf11","#d2d2d2","#ec008b","#000000"],"five-groups-cat-2":["#1696d2","#0a4c6a","#d2d2d2","#fdbf11","#332d2f"],"five-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a","#000000"],"six-groups-cat-1":["#1696d2","#ec008b","#fdbf11","#000000","#d2d2d2","#55b748"],"six-groups-cat-2":["#1696d2","#d2d2d2","#ec008b","#fdbf11","#332d2f","#0a4c6a"],"six-groups-seq":["#cfe8f3","#a2d4ec","#73bfe2","#46abdb","#1696d2","#12719e"],"diverging-colors":["#ca5800","#fdbf11","#fdd870","#fff2cf","#cfe8f3","#73bfe2","#1696d2","#0a4c6a"]},mt={background:"#FFFFFF",title:{anchor:"start",fontSize:18,font:"Lato"},axisX:{domain:!0,domainColor:"#000000",domainWidth:1,grid:!1,labelFontSize:12,labelFont:"Lato",labelAngle:0,tickColor:"#000000",tickSize:5,titleFontSize:12,titlePadding:10,titleFont:"Lato"},axisY:{domain:!1,domainWidth:1,grid:!0,gridColor:"#DEDDDD",gridWidth:1,labelFontSize:12,labelFont:"Lato",labelPadding:8,ticks:!1,titleFontSize:12,titlePadding:10,titleFont:"Lato",titleAngle:0,titleY:-10,titleX:18},legend:{labelFontSize:12,labelFont:"Lato",symbolSize:100,titleFontSize:12,titlePadding:10,titleFont:"Lato",orient:"right",offset:10},view:{stroke:"transparent"},range:{category:gt["six-groups-cat-1"],diverging:gt["diverging-colors"],heatmap:gt["diverging-colors"],ordinal:gt["six-groups-seq"],ramp:gt["shades-blue"]},area:{fill:"#1696d2"},rect:{fill:"#1696d2"},line:{color:"#1696d2",stroke:"#1696d2",strokeWidth:5},trail:{color:"#1696d2",stroke:"#1696d2",strokeWidth:0,size:1},path:{stroke:"#1696d2",strokeWidth:.5},point:{filled:!0},text:{font:"Lato",color:"#1696d2",fontSize:11,align:"center",fontWeight:400,size:11},style:{bar:{fill:"#1696d2",stroke:null}},arc:{fill:"#1696d2"},shape:{stroke:"#1696d2"},symbol:{fill:"#1696d2",size:30}},Et={arc:{fill:"#3366CC"},area:{fill:"#3366CC"},path:{stroke:"#3366CC"},rect:{fill:"#3366CC"},shape:{stroke:"#3366CC"},symbol:{stroke:"#3366CC"},circle:{fill:"#3366CC"},background:"#fff",padding:{top:10,right:10,bottom:10,left:10},style:{"guide-label":{font:"Arial, sans-serif",fontSize:12},"guide-title":{font:"Arial, sans-serif",fontSize:12},"group-title":{font:"Arial, sans-serif",fontSize:12}},title:{font:"Arial, sans-serif",fontSize:14,fontWeight:"bold",dy:-3,anchor:"start"},axis:{gridColor:"#ccc",tickColor:"#ccc",domain:!1,grid:!0},range:{category:["#4285F4","#DB4437","#F4B400","#0F9D58","#AB47BC","#00ACC1","#FF7043","#9E9D24","#5C6BC0","#F06292","#00796B","#C2185B"],heatmap:["#c6dafc","#5e97f6","#2a56c6"]}},bt="2.7.1";var yt=Object.freeze({__proto__:null,version:bt,dark:st,excel:lt,fivethirtyeight:ct,ggplot2:dt,latimes:ut,quartz:ht,vox:vt,urbaninstitute:mt,googlecharts:Et}),Ot="#vg-tooltip-element {\n  visibility: hidden;\n  padding: 8px;\n  position: fixed;\n  z-index: 1000;\n  font-family: sans-serif;\n  font-size: 11px;\n  border-radius: 3px;\n  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n  /* The default theme is the light theme. */\n  background-color: rgba(255, 255, 255, 0.95);\n  border: 1px solid #d9d9d9;\n  color: black; }\n  #vg-tooltip-element.visible {\n    visibility: visible; }\n  #vg-tooltip-element h2 {\n    margin-top: 0;\n    margin-bottom: 10px;\n    font-size: 13px; }\n  #vg-tooltip-element table {\n    border-spacing: 0; }\n    #vg-tooltip-element table tr {\n      border: none; }\n      #vg-tooltip-element table tr td {\n        overflow: hidden;\n        text-overflow: ellipsis;\n        padding-top: 2px;\n        padding-bottom: 2px; }\n        #vg-tooltip-element table tr td.key {\n          color: #808080;\n          max-width: 150px;\n          text-align: right;\n          padding-right: 4px; }\n        #vg-tooltip-element table tr td.value {\n          display: block;\n          max-width: 300px;\n          max-height: 7em;\n          text-align: left; }\n  #vg-tooltip-element.dark-theme {\n    background-color: rgba(32, 32, 32, 0.9);\n    border: 1px solid #f5f5f5;\n    color: white; }\n    #vg-tooltip-element.dark-theme td.key {\n      color: #bfbfbf; }\n";const wt="vg-tooltip-element",It={offsetX:10,offsetY:10,id:wt,styleId:"vega-tooltip-style",theme:"light",disableDefaultStyle:!1,sanitize:function(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;")},maxDepth:2};function At(e,t,r){return e.fields=t||[],e.fname=r,e}function Nt(e){throw Error(e)}var Rt=Array.isArray;function $t(e){return e===Object(e)}function Lt(e){return"string"==typeof e}function Tt(e){return Rt(e)?"["+e.map(Tt)+"]":$t(e)||Lt(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}var St=[];(function(e,t){var r=function(e){var t,r,n,o=[],i=null,a=0,s=e.length,l="";function c(){o.push(l+e.substring(t,r)),l="",t=r+1}for(e+="",t=r=0;r<s;++r)if("\\"===(n=e[r]))l+=e.substring(t,r),l+=e.substring(++r,++r),t=r;else if(n===i)c(),i=null,a=-1;else{if(i)continue;t===a&&'"'===n?(t=r+1,i=n):t===a&&"'"===n?(t=r+1,i=n):"."!==n||a?"["===n?(r>t&&c(),a=t=r+1):"]"===n&&(a||Nt("Access path missing open bracket: "+e),a>0&&c(),a=0,t=r+1):r>t?c():t=r+1}return a&&Nt("Access path missing closing bracket: "+e),i&&Nt("Access path missing closing quote: "+e),r>t&&(r++,c()),o}(e),n="return _["+r.map(Tt).join("][")+"];";At(Function("_",n),[e=1===r.length?r[0]:e],t||e)})("id"),At((function(e){return e}),St,"identity"),At((function(){return 0}),St,"zero"),At((function(){return 1}),St,"one"),At((function(){return!0}),St,"true"),At((function(){return!1}),St,"false");function Ct(...e){return e.reduce((e,t)=>{for(var r in t)if("signals"===r)e.signals=Dt(e.signals,t.signals);else{var n="legend"===r?{layout:1}:"style"===r||null;xt(e,r,t[r],n)}return e},{})}function xt(e,t,r,n){var o,i;if($t(r)&&!Rt(r))for(o in i=$t(e[t])?e[t]:e[t]={},r)n&&(!0===n||n[o])?xt(i,o,r[o]):i[o]=r[o];else e[t]=r}function Dt(e,t){if(null==e)return t;const r={},n=[];function o(e){r[e.name]||(r[e.name]=1,n.push(e))}return t.forEach(o),e.forEach(o),n}var Ft=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r};function _t(e,t){return JSON.stringify(e,function(e){const t=[];return function(r,n){if("object"!=typeof n||null===n)return n;const o=t.indexOf(this)+1;return t.length=o,t.length>e?"[Object]":t.indexOf(n)>=0?"[Circular]":(t.push(n),n)}}(t))}class Pt{constructor(e){this.options=Object.assign(Object.assign({},It),e);const t=this.options.id;if(this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){const e=document.createElement("style");e.setAttribute("id",this.options.styleId),e.innerHTML=function(e){if(!/^[A-Za-z]+[-:.\w]*$/.test(e))throw new Error("Invalid HTML ID");return Ot.toString().replace(wt,e)}(t);const r=document.head;r.childNodes.length>0?r.insertBefore(e,r.childNodes[0]):r.appendChild(e)}this.el=document.getElementById(t),this.el||(this.el=document.createElement("div"),this.el.setAttribute("id",t),this.el.classList.add("vg-tooltip"),document.body.appendChild(this.el))}tooltipHandler(e,t,r,n){if(null==n||""===n)return void this.el.classList.remove("visible",`${this.options.theme}-theme`);this.el.innerHTML=function(e,t,r){if(Rt(e))return`[${e.map(e=>t(Lt(e)?e:_t(e,r))).join(", ")}]`;if($t(e)){let n="";const o=e,{title:i}=o,a=Ft(o,["title"]);i&&(n+=`<h2>${t(i)}</h2>`);const s=Object.keys(a);if(s.length>0){n+="<table>";for(const e of s){let o=a[e];void 0!==o&&($t(o)&&(o=_t(o,r)),n+=`<tr><td class="key">${t(e)}:</td><td class="value">${t(o)}</td></tr>`)}n+="</table>"}return n||"{}"}return t(e)}(n,this.options.sanitize,this.options.maxDepth),this.el.classList.add("visible",`${this.options.theme}-theme`);const{x:o,y:i}=function(e,t,r,n){let o=e.clientX+r;o+t.width>window.innerWidth&&(o=+e.clientX-r-t.width);let i=e.clientY+n;return i+t.height>window.innerHeight&&(i=+e.clientY-n-t.height),{x:o,y:i}}(t,this.el.getBoundingClientRect(),this.options.offsetX,this.options.offsetY);this.el.setAttribute("style",`top: ${i}px; left: ${o}px`)}}var kt,jt='.vega-embed {\n  position: relative;\n  display: inline-block; }\n  .vega-embed.has-actions {\n    padding-right: 38px; }\n  .vega-embed details:not([open]) > :not(summary) {\n    display: none !important; }\n  .vega-embed summary {\n    list-style: none;\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: 6px;\n    z-index: 1000;\n    background: white;\n    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n    color: #1b1e23;\n    border: 1px solid #aaa;\n    border-radius: 999px;\n    opacity: 0.2;\n    transition: opacity 0.4s ease-in;\n    outline: none;\n    cursor: pointer;\n    line-height: 0px; }\n    .vega-embed summary::-webkit-details-marker {\n      display: none; }\n    .vega-embed summary:active {\n      box-shadow: #aaa 0px 0px 0px 1px inset; }\n    .vega-embed summary svg {\n      width: 14px;\n      height: 14px; }\n  .vega-embed details[open] summary {\n    opacity: 0.7; }\n  .vega-embed:hover summary,\n  .vega-embed:focus summary {\n    opacity: 1 !important;\n    transition: opacity 0.2s ease; }\n  .vega-embed .vega-actions {\n    position: absolute;\n    z-index: 1001;\n    top: 35px;\n    right: -9px;\n    display: flex;\n    flex-direction: column;\n    padding-bottom: 8px;\n    padding-top: 8px;\n    border-radius: 4px;\n    box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n    border: 1px solid #d9d9d9;\n    background: white;\n    animation-duration: 0.15s;\n    animation-name: scale-in;\n    animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);\n    text-align: left; }\n    .vega-embed .vega-actions a {\n      padding: 8px 16px;\n      font-family: sans-serif;\n      font-size: 14px;\n      font-weight: 600;\n      white-space: nowrap;\n      color: #434a56;\n      text-decoration: none; }\n      .vega-embed .vega-actions a:hover {\n        background-color: #f7f7f9;\n        color: black; }\n    .vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n      content: "";\n      display: inline-block;\n      position: absolute; }\n    .vega-embed .vega-actions::before {\n      left: auto;\n      right: 14px;\n      top: -16px;\n      border: 8px solid #0000;\n      border-bottom-color: #d9d9d9; }\n    .vega-embed .vega-actions::after {\n      left: auto;\n      right: 15px;\n      top: -14px;\n      border: 7px solid #0000;\n      border-bottom-color: #fff; }\n\n.vega-embed-wrapper {\n  max-width: 100%;\n  overflow: scroll;\n  padding-right: 14px; }\n\n@keyframes scale-in {\n  from {\n    opacity: 0;\n    transform: scale(0.6); }\n  to {\n    opacity: 1;\n    transform: scale(1); } }\n';function zt(e,...t){for(const r of t)Mt(e,r);return e}function Mt(t,r){for(const n of Object.keys(r))e.writeConfig(t,n,r[n],!0)}String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return this.substr(!t||t<0?0:+t,e.length)===e});const Bt=e;let Gt=t;const Ut="undefined"!=typeof window?window:void 0;void 0===Gt&&(null===(kt=null==Ut?void 0:Ut.vl)||void 0===kt?void 0:kt.compile)&&(Gt=Ut.vl);const Xt={export:{svg:!0,png:!0},source:!0,compiled:!0,editor:!0},Vt={CLICK_TO_VIEW_ACTIONS:"Click to view actions",COMPILED_ACTION:"View Compiled Vega",EDITOR_ACTION:"Open in Vega Editor",PNG_ACTION:"Save as PNG",SOURCE_ACTION:"View Source",SVG_ACTION:"Save as SVG"},Wt={vega:"Vega","vega-lite":"Vega-Lite"},Ht={vega:Bt.version,"vega-lite":Gt?Gt.version:"not available"},qt={vega:e=>e,"vega-lite":(e,t)=>Gt.compile(e,{config:t}).spec};function Jt(e,t,r,n){const o=`<html><head>${t}</head><body><pre><code class="json">`,i=`</code></pre>${r}</body></html>`,a=window.open("");a.document.write(o+e+i),a.document.title=`${Wt[n]} JSON Source`}function Yt(e,t,r={}){var o,i,a;return n(this,void 0,void 0,(function*(){const s=(l=r.loader)&&"load"in l?r.loader:Bt.loader(r.loader);var l;const c=Lt(t)?JSON.parse(yield s.load(t)):t,d=yield Qt(null!==(o=c.usermeta&&c.usermeta.embedOptions)&&void 0!==o?o:{},s),p=yield Qt(r,s),f=Object.assign(Object.assign({},zt(p,d)),{config:Ct(null!==(i=p.config)&&void 0!==i?i:{},null!==(a=d.config)&&void 0!==a?a:{})});return yield function(e,t,r={},o){var i,a,s,l,c,d;return n(this,void 0,void 0,(function*(){const p=r.theme?Ct(yt[r.theme],null!==(i=r.config)&&void 0!==i?i:{}):r.config,f="boolean"==typeof r.actions?r.actions:zt({},Xt,null!==(a=r.actions)&&void 0!==a?a:{});const u=Object.assign(Object.assign({},Vt),r.i18n),h=null!==(s=r.renderer)&&void 0!==s?s:"canvas",v=null!==(l=r.logLevel)&&void 0!==l?l:Bt.Warn,g=null!==(c=r.downloadFileName)&&void 0!==c?c:"visualization";if(!1!==r.defaultStyle){const e="vega-embed-style";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.innerText=void 0===r.defaultStyle||!0===r.defaultStyle?jt.toString():r.defaultStyle,document.head.appendChild(t)}}const m=function(e,t){var r;if(e.$schema){const n=at(e.$schema);t&&t!==n.library&&console.warn(`The given visualization spec is written in ${Wt[n.library]}, but mode argument sets ${null!==(r=Wt[t])&&void 0!==r?r:t}.`);const o=n.library;return ot(Ht[o],`^${n.version.slice(1)}`)||console.warn(`The input spec uses ${Wt[o]} ${n.version}, but the current version of ${Wt[o]} is v${Ht[o]}.`),o}return"mark"in e||"encoding"in e||"layer"in e||"hconcat"in e||"vconcat"in e||"facet"in e||"repeat"in e?"vega-lite":"marks"in e||"signals"in e||"scales"in e||"axes"in e?"vega":null!=t?t:"vega"}(t,r.mode);let E=qt[m](t,p);if("vega-lite"===m&&E.$schema){const e=at(E.$schema);ot(Ht.vega,`^${e.version.slice(1)}`)||console.warn(`The compiled spec uses Vega ${e.version}, but current version is v${Ht.vega}.`)}const b="string"==typeof e?document.querySelector(e):e;if(!b)throw Error(`${e} does not exist`);b.classList.add("vega-embed"),f&&b.classList.add("has-actions"),b.innerHTML="";const y=r.patch;y&&(E=y instanceof Function?y(E):O(E,y,!0,!1).newDocument),r.formatLocale&&Bt.formatLocale(r.formatLocale),r.timeFormatLocale&&Bt.timeFormatLocale(r.timeFormatLocale);const w=Bt.parse(E,"vega-lite"===m?{}:p),I=new Bt.View(w,{loader:o,logLevel:v,renderer:h});if(!1!==r.tooltip){let e;e="function"==typeof r.tooltip?r.tooltip:new Pt(!0===r.tooltip?{}:r.tooltip).call,I.tooltip(e)}let A,{hover:N}=r;if(void 0===N&&(N="vega"===m),N){const{hoverSet:e,updateSet:t}="boolean"==typeof N?{}:N;I.hover(e,t)}if(r&&(r.width&&I.width(r.width),r.height&&I.height(r.height),r.padding&&I.padding(r.padding)),yield I.initialize(e).runAsync(),!1!==f){let e=b;if(!1!==r.defaultStyle){const t=document.createElement("details");t.title=u.CLICK_TO_VIEW_ACTIONS,b.append(t),e=t;const r=document.createElement("summary");r.innerHTML='\n<svg viewBox="0 0 16 16" fill="currentColor" stroke="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round">\n  <circle r="2" cy="8" cx="2"></circle>\n  <circle r="2" cy="8" cx="8"></circle>\n  <circle r="2" cy="8" cx="14"></circle>\n</svg>',t.append(r),A=e=>{t.contains(e.target)||t.removeAttribute("open")},document.addEventListener("click",A)}const o=document.createElement("div");if(e.append(o),o.classList.add("vega-actions"),!0===f||!1!==f.export)for(const e of["svg","png"])if(!0===f||!0===f.export||f.export[e]){const t=u[`${e.toUpperCase()}_ACTION`],i=document.createElement("a");i.text=t,i.href="#",i.target="_blank",i.download=`${g}.${e}`,i.addEventListener("mousedown",(function(t){return n(this,void 0,void 0,(function*(){t.preventDefault();const n=yield I.toImageURL(e,r.scaleFactor);this.href=n}))})),o.append(i)}if(!0===f||!1!==f.source){const e=document.createElement("a");e.text=u.SOURCE_ACTION,e.href="#",e.addEventListener("mousedown",(function(e){var n,o;Jt(D(t),null!==(n=r.sourceHeader)&&void 0!==n?n:"",null!==(o=r.sourceFooter)&&void 0!==o?o:"",m),e.preventDefault()})),o.append(e)}if("vega-lite"===m&&(!0===f||!1!==f.compiled)){const e=document.createElement("a");e.text=u.COMPILED_ACTION,e.href="#",e.addEventListener("mousedown",(function(e){var t,n;Jt(D(E),null!==(t=r.sourceHeader)&&void 0!==t?t:"",null!==(n=r.sourceFooter)&&void 0!==n?n:"","vega"),e.preventDefault()})),o.append(e)}if(!0===f||!1!==f.editor){const e=null!==(d=r.editorUrl)&&void 0!==d?d:"https://vega.github.io/editor/",n=document.createElement("a");n.text=u.EDITOR_ACTION,n.href="#",n.addEventListener("mousedown",(function(r){!function(e,t,r){const n=e.open(t);let o=40;e.addEventListener("message",(function t(r){r.source===n&&(o=0,e.removeEventListener("message",t,!1))}),!1),setTimeout((function e(){o<=0||(n.postMessage(r,"*"),setTimeout(e,250),o-=1)}),250)}(window,e,{config:p,mode:m,renderer:h,spec:D(t)}),r.preventDefault()})),o.append(n)}}return{view:I,spec:t,vgSpec:E,finalize:function(){A&&document.removeEventListener("click",A),I.finalize()}}}))}(e,c,f,s)}))}function Qt(e,t){var r;return n(this,void 0,void 0,(function*(){const n=Lt(e.config)?JSON.parse(yield t.load(e.config)):null!==(r=e.config)&&void 0!==r?r:{},o=Lt(e.patch)?JSON.parse(yield t.load(e.patch)):e.patch;return Object.assign(Object.assign(Object.assign({},e),o?{patch:o}:{}),n?{config:n}:{})}))}function Zt(e,t={}){var r;return n(this,void 0,void 0,(function*(){const n=document.createElement("div");n.classList.add("vega-embed-wrapper");const o=document.createElement("div");n.appendChild(o);const i=!0===t.actions||!1===t.actions?t.actions:Object.assign({export:!0,source:!1,compiled:!0,editor:!0},null!==(r=t.actions)&&void 0!==r?r:{}),a=yield Yt(o,e,Object.assign({actions:i},null!=t?t:{}));return n.value=a.view,n}))}const Kt=(...t)=>{return t.length>1&&(e.isString(t[0])&&!((r=t[0]).startsWith("http://")||r.startsWith("https://")||r.startsWith("//"))||t[0]instanceof HTMLElement||3===t.length)?Yt(t[0],t[1],t[2]):Zt(t[0],t[1]);var r};return Kt.vegaLite=Gt,Kt.vl=Gt,Kt.container=Zt,Kt.embed=Yt,Kt.vega=Bt,Kt.default=Yt,Kt.version=r,Kt}));
diff --git a/javascript/vega-lite@3.3.0 b/javascript/vega-lite@3.3.0
deleted file mode 100644
--- a/javascript/vega-lite@3.3.0
+++ /dev/null
@@ -1,1 +0,0 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).vl={})}(this,function(e){"use strict";var t="3.3.0";function n(e,t,n){return e.fields=t||[],e.fname=n,e}function i(e){throw Error(e)}function r(e){var t,n,r,o=[],a=null,s=0,u=e.length,c="";function l(){o.push(c+e.substring(t,n)),c="",t=n+1}for(e+="",t=n=0;n<u;++n)if("\\"===(r=e[n]))c+=e.substring(t,n),t=++n;else if(r===a)l(),a=null,s=-1;else{if(a)continue;t===s&&'"'===r?(t=n+1,a=r):t===s&&"'"===r?(t=n+1,a=r):"."!==r||s?"["===r?(n>t&&l(),s=t=n+1):"]"===r&&(s||i("Access path missing open bracket: "+e),s>0&&l(),s=0,t=n+1):n>t?l():t=n+1}return s&&i("Access path missing closing bracket: "+e),a&&i("Access path missing closing quote: "+e),n>t&&(n++,l()),o}var o=Array.isArray;function a(e){return e===Object(e)}function s(e){return"string"==typeof e}function u(e){return o(e)?"["+e.map(u)+"]":a(e)||s(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}var c=[],l=(function(e,t){var i=r(e),o="return _["+i.map(u).join("][")+"];";n(Function("_",o),[e=1===i.length?i[0]:e],t||e)}("id"),n(function(e){return e},c,"identity"));n(function(){return 0},c,"zero"),n(function(){return 1},c,"one"),n(function(){return!0},c,"true"),n(function(){return!1},c,"false");function f(e,t,n){var i=[t].concat([].slice.call(n));console[e](...i)}var d=0,p=1,h=2,m=3,g=4;function y(e){return null!=e?o(e)?e:[e]:[]}function b(e){return"boolean"==typeof e}function v(e){return"number"==typeof e}function x(e){for(var t={},n=0,i=e.length;n<i;++n)t[e[n]]=!0;return t}var A=function(e,t){return e(t={exports:{}},t.exports),t.exports}(function(e){var t=function(){function e(e,t){return null!=t&&e instanceof t}var t,n,i;try{t=Map}catch(e){t=function(){}}try{n=Set}catch(e){n=function(){}}try{i=Promise}catch(e){i=function(){}}function r(o,s,u,c,l){"object"==typeof s&&(u=s.depth,c=s.prototype,l=s.includeNonEnumerable,s=s.circular);var f=[],d=[],p="undefined"!=typeof Buffer;return void 0===s&&(s=!0),void 0===u&&(u=1/0),function o(u,h){if(null===u)return null;if(0===h)return u;var m,g;if("object"!=typeof u)return u;if(e(u,t))m=new t;else if(e(u,n))m=new n;else if(e(u,i))m=new i(function(e,t){u.then(function(t){e(o(t,h-1))},function(e){t(o(e,h-1))})});else if(r.__isArray(u))m=[];else if(r.__isRegExp(u))m=new RegExp(u.source,a(u)),u.lastIndex&&(m.lastIndex=u.lastIndex);else if(r.__isDate(u))m=new Date(u.getTime());else{if(p&&Buffer.isBuffer(u))return m=Buffer.allocUnsafe?Buffer.allocUnsafe(u.length):new Buffer(u.length),u.copy(m),m;e(u,Error)?m=Object.create(u):void 0===c?(g=Object.getPrototypeOf(u),m=Object.create(g)):(m=Object.create(c),g=c)}if(s){var y=f.indexOf(u);if(-1!=y)return d[y];f.push(u),d.push(m)}for(var b in e(u,t)&&u.forEach(function(e,t){var n=o(t,h-1),i=o(e,h-1);m.set(n,i)}),e(u,n)&&u.forEach(function(e){var t=o(e,h-1);m.add(t)}),u){var v;g&&(v=Object.getOwnPropertyDescriptor(g,b)),v&&null==v.set||(m[b]=o(u[b],h-1))}if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(u);for(b=0;b<x.length;b++){var A=x[b];(!(C=Object.getOwnPropertyDescriptor(u,A))||C.enumerable||l)&&(m[A]=o(u[A],h-1),C.enumerable||Object.defineProperty(m,A,{enumerable:!1}))}}if(l){var w=Object.getOwnPropertyNames(u);for(b=0;b<w.length;b++){var C,F=w[b];(C=Object.getOwnPropertyDescriptor(u,F))&&C.enumerable||(m[F]=o(u[F],h-1),Object.defineProperty(m,F,{enumerable:!1}))}}return m}(o,u)}function o(e){return Object.prototype.toString.call(e)}function a(e){var t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),t}return r.clonePrototype=function(e){if(null===e)return null;var t=function(){};return t.prototype=e,new t},r.__objToStr=o,r.__isDate=function(e){return"object"==typeof e&&"[object Date]"===o(e)},r.__isArray=function(e){return"object"==typeof e&&"[object Array]"===o(e)},r.__isRegExp=function(e){return"object"==typeof e&&"[object RegExp]"===o(e)},r.__getRegExpFlags=a,r}();e.exports&&(e.exports=t)}),w=Array.isArray,C=Object.keys,F=Object.prototype.hasOwnProperty,E=function(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});var n,i="boolean"==typeof t.cycles&&t.cycles,r=t.cmp&&(n=t.cmp,function(e){return function(t,i){var r={key:t,value:e[t]},o={key:i,value:e[i]};return n(r,o)}}),o=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var n,a;if(Array.isArray(t)){for(a="[",n=0;n<t.length;n++)n&&(a+=","),a+=e(t[n])||"null";return a+"]"}if(null===t)return"null";if(-1!==o.indexOf(t)){if(i)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var s=o.push(t)-1,u=Object.keys(t).sort(r&&r(t));for(a="",n=0;n<u.length;n++){var c=u[n],l=e(t[c]);l&&(a&&(a+=","),a+=JSON.stringify(c)+":"+l)}return o.splice(s,1),"{"+a+"}"}}(e)};function D(e){return!!e.or}function S(e){return!!e.and}function k(e){return!!e.not}function O(e,t){return k(e)?{not:O(e.not,t)}:S(e)?{and:e.and.map(e=>O(e,t))}:D(e)?{or:e.or.map(e=>O(e,t))}:t(e)}const $=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){var i,r,o,a=w(t),s=w(n);if(a&&s){if((r=t.length)!=n.length)return!1;for(i=r;0!=i--;)if(!e(t[i],n[i]))return!1;return!0}if(a!=s)return!1;var u=t instanceof Date,c=n instanceof Date;if(u!=c)return!1;if(u&&c)return t.getTime()==n.getTime();var l=t instanceof RegExp,f=n instanceof RegExp;if(l!=f)return!1;if(l&&f)return t.toString()==n.toString();var d=C(t);if((r=d.length)!==C(n).length)return!1;for(i=r;0!=i--;)if(!F.call(n,d[i]))return!1;for(i=r;0!=i--;)if(!e(t[o=d[i]],n[o]))return!1;return!0}return t!=t&&n!=n},B=A;function N(e,t){const n={};for(const i of t)e.hasOwnProperty(i)&&(n[i]=e[i]);return n}function j(e,t){const n=Object.assign({},e);for(const e of t)delete n[e];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>E(e)).join(",")})`};const _=E;function T(e){if(v(e))return e;const t=s(e)?e:E(e);if(t.length<250)return t;let n=0;for(let e=0;e<t.length;e++){n=(n<<5)-n+t.charCodeAt(e),n&=n}return n}function z(e){return!1===e||null===e}function R(e,t){return e.indexOf(t)>-1}function P(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function U(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function M(e){return[].concat(...e)}function L(e,...t){for(const n of t)e=I(e,n);return e}function I(e,t){if("object"!=typeof t||null===t)return e;for(const n in t)t.hasOwnProperty(n)&&void 0!==t[n]&&("object"!=typeof t[n]||o(t[n])||null===t[n]?e[n]=t[n]:"object"!=typeof e[n]||null===e[n]?e[n]=L(o(t[n].constructor)?[]:{},t[n]):L(e[n],t[n]));return e}function q(e,t){const n=[],i={};let r;for(const o of e)(r=t(o))in i||(i[r]=1,n.push(o));return n}function W(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function H(e,t){for(const n of e)if(t.has(n))return!0;return!1}function G(e){const t=new Set;for(const n of e){const e=r(n).map((e,t)=>0===t?e:`[${e}]`);e.map((t,n)=>e.slice(0,n+1).join("")).forEach(e=>t.add(e))}return t}function Y(e,t){return H(G(e),G(t))}const V=Object.keys;function Q(e){const t=[];for(const n in e)e.hasOwnProperty(n)&&t.push(e[n]);return t}function X(e){return V(e)}function J(e){return!0===e||!1===e}function Z(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function K(e,t){return k(e)?"!("+K(e.not,t)+")":S(e)?"("+e.and.map(e=>K(e,t)).join(") && (")+")":D(e)?"("+e.or.map(e=>K(e,t)).join(") || (")+")":t(e)}function ee(e,t){if(0===t.length)return!0;const n=t.shift();return ee(e[n],t)&&delete e[n],0===V(e).length}function te(e){return e.charAt(0).toUpperCase()+e.substr(1)}function ne(e,t="datum"){const n=r(e),i=[];for(let e=1;e<=n.length;e++){const r=`[${n.slice(0,e).map(u).join("][")}]`;i.push(`${t}${r}`)}return i.join(" && ")}function ie(e,t="datum"){return`${t}[${u(r(e).join("."))}]`}function re(e){return`${r(e).map(e=>e.replace(".","\\.")).join("\\.")}`}function oe(e){return`${r(e).join(".")}`}function ae(e){return e?r(e).length:0}function se(...e){for(const t of e)if(void 0!==t)return t}let ue=42;function ce(e){const t=++ue;return e?String(e)+t:t}function le(e){return fe(e)?e:`__${e}`}function fe(e){return 0===e.indexOf("__")}function de(e){return(e%360+360)%360}const pe="area",he="bar",me="line",ge="point",ye="rect",be="rule",ve="text",xe="tick",Ae="trail",we="circle",Ce="square",Fe="geoshape";function Ee(e){return R(["line","area","trail"],e)}const De=X({area:1,bar:1,line:1,point:1,text:1,tick:1,trail:1,rect:1,geoshape:1,rule:1,circle:1,square:1});function Se(e){return e.type}x(De);const ke=[].concat(["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],["fill","fillOpacity"]),Oe=["filled","color","tooltip"];function $e(e){return!!e.mark}class Be{constructor(e,t){this.name=e,this.run=t}hasMatchingType(e){return!!$e(e)&&(Se(t=e.mark)?t.type:t)===this.name;var t}}function Ne(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&(n[i[r]]=e[i[r]])}return n}const je={argmax:1,argmin:1,average:1,count:1,distinct:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1};function _e(e){return!!e&&!!e.argmin}function Te(e){return!!e&&!!e.argmax}function ze(e){return s(e)&&!!je[e]}const Re=["count","valid","missing","distinct"];function Pe(e){return e&&s(e)&&R(Re,e)}const Ue=["count","sum","distinct","valid","missing"],Me=x(["mean","average","median","q1","q3","min","max"]),Le="row",Ie="column",qe="facet",We="x",He="y",Ge="x2",Ye="y2",Ve="latitude",Qe="longitude",Xe="latitude2",Je="longitude2",Ze="color",Ke="fill",et="stroke",tt="shape",nt="size",it="opacity",rt="fillOpacity",ot="strokeOpacity",at="strokeWidth",st="text",ut="order",ct="detail",lt="key",ft="tooltip",dt="href";const pt={longitude:1,longitude2:1,latitude:1,latitude2:1},ht=X(pt),mt=Object.assign({x:1,y:1,x2:1,y2:1},pt,{color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,size:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1});function gt(e){return"color"===e||"fill"===e||"stroke"===e}const yt={row:1,column:1,facet:1},bt=X(yt),vt=Object.assign({},mt,yt),xt=X(vt),At=(Ne(vt,["order","detail"]),Ne(vt,["order","detail","row","column","facet"]));function wt(e){return!!At[e]}function Ct(e){return!!vt[e]}const Ft=["x2","y2","latitude2","longitude2"];function Et(e){return Dt(e)!==e}function Dt(e){switch(e){case"x2":return"x";case"y2":return"y";case"latitude2":return"latitude";case"longitude2":return"longitude"}return e}const St=Ne(mt,["x","y","x2","y2","latitude","longitude","latitude2","longitude2"]),kt=X(St),Ot={x:1,y:1},$t=X(Ot),Bt=Ne(St,["text","tooltip","href","detail","key","order"]),Nt=X(Bt);const jt=Object.assign({},Ot,Bt),_t=X(jt);function Tt(e){return!!jt[e]}function zt(e,t){return function(e){switch(e){case Ze:case Ke:case et:case ct:case lt:case ft:case dt:case ut:case it:case rt:case ot:case at:case qe:case Le:case Ie:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",rect:"always",line:"always",trail:"always",area:"always",text:"always",geoshape:"always"};case We:case He:case Ve:case Qe:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",rect:"always",line:"always",trail:"always",area:"always",text:"always"};case Ge:case Ye:case Xe:case Je:return{rule:"always",bar:"always",rect:"always",area:"always",circle:"binned",point:"binned",square:"binned",tick:"binned"};case nt:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case tt:return{point:"always",geoshape:"always"};case st:return{text:"always"}}}(e)[t]}function Rt(e){switch(e){case We:case He:case nt:case at:case it:case rt:case ot:case Ge:case Ye:return;case qe:case Le:case Ie:case tt:case st:case ft:case dt:return"discrete";case Ze:case Ke:case et:return"flexible";case Ve:case Qe:case Xe:case Je:case ct:case lt:case ut:return}throw new Error("rangeType not implemented for "+e)}const Pt=Object.freeze({INVALID_SPEC:"Invalid spec",FIT_NON_SINGLE:'Autosize "fit" only works for single views and layered views.',CANNOT_FIX_RANGE_STEP_WITH_FIT:'Cannot use a fixed value of "rangeStep" when "autosize" is "fit".',cannotProjectOnChannelWithoutField:function(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`},nearestNotSupportForContinuous:function(e){return`The "nearest" transform is not supported for ${e} marks.`},selectionNotSupported:function(e){return`Selection not supported for ${e} yet`},selectionNotFound:function(e){return`Cannot find a selection named "${e}"`},SCALE_BINDINGS_CONTINUOUS:"Scale bindings are currently only supported for scales with unbinned, continuous domains.",NO_INIT_SCALE_BINDINGS:"Selections bound to scales cannot be separately initialized.",noSuchRepeatedValue:function(e){return`Unknown repeated value "${e}".`},columnsNotSupportByRowCol:function(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`},CONCAT_CANNOT_SHARE_AXIS:"Axes cannot be shared in concatenated views yet (https://github.com/vega/vega-lite/issues/2415).",REPEAT_CANNOT_SHARE_AXIS:"Axes cannot be shared in repeated views yet (https://github.com/vega/vega-lite/issues/2415).",unrecognizedParse:function(e){return`Unrecognized parse "${e}".`},differentParse:function(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`},invalidTransformIgnored:function(e){return`Ignoring an invalid transform: ${_(e)}.`},NO_FIELDS_NEEDS_AS:'If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.',encodingOverridden:function(e){return`Layer's shared ${e.join(",")} channel ${1===e.length?"is":"are"} overriden`},projectionOverridden:function(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${_(t)} is overridden by a child projection ${_(n)}.`},primitiveChannelDef:function(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${_(n)}}.`},invalidFieldType:function(e){return`Invalid field type "${e}"`},nonZeroScaleUsedWithLengthMark:function(e,t,n){return`A ${n.scaleType?`${n.scaleType} scale`:n.zeroFalse?"scale with zero=false":"scale with custom domain that excludes zero"} is used to encode ${e}'s ${t}. This can be misleading as the ${"x"===t?"width":"height"} of the ${e} can be arbitrary based on the scale domain. You may want to use point mark instead.`},invalidFieldTypeForCountAggregate:function(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`},invalidAggregate:function(e){return`Invalid aggregation operator "${e}"`},missingFieldType:function(e,t){return`Missing type for channel "${e}", using "${t}" instead.`},droppingColor:function(e,t){const{fill:n,stroke:i}=t;return`Dropping color ${e} as the plot also has `+(n&&i?"fill and stroke":n?"fill":"stroke")},emptyFieldDef:function(e,t){return`Dropping ${_(e)} from channel "${t}" since it does not contain data field or value.`},latLongDeprecated:function(e,t,n){return`${e}-encoding with type ${t} is deprecated. Replacing with ${n}-encoding.`},LINE_WITH_VARYING_SIZE:"Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.",incompatibleChannel:function(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`},invalidEncodingChannel:function(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`},facetChannelShouldBeDiscrete:function(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`},facetChannelDropped:function(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`},discreteChannelCannotEncode:function(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${"ordinal"===t?"order":"magnitude"}.`},BAR_WITH_POINT_SCALE_AND_RANGESTEP_NULL:"Bar mark should not be used with point scale when rangeStep is null. Please use band scale instead.",lineWithRange:function(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`},orientOverridden:function(e,t){return`Specified orient "${e}" overridden with "${t}"`},CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN:"custom domain scale cannot be unioned with default field-based domain",cannotUseScalePropertyWithNonColor:function(e){return`Cannot use the scale property "${e}" with non-color channel.`},unaggregateDomainHasNoEffectForRawField:function(e){return`Using unaggregated domain with raw field has no effect (${_(e)}).`},unaggregateDomainWithNonSharedDomainOp:function(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`},unaggregatedDomainWithLogScale:function(e){return`Unaggregated domain is currently unsupported for log scale (${_(e)}).`},cannotApplySizeToNonOrientedMark:function(e){return`Cannot apply size to non-oriented mark "${e}".`},rangeStepDropped:function(e){return`rangeStep for "${e}" is dropped as top-level ${"x"===e?"width":"height"} is provided.`},scaleTypeNotWorkWithChannel:function(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`},scaleTypeNotWorkWithFieldDef:function(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`},scalePropertyNotWorkWithScaleType:function(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`},scaleTypeNotWorkWithMark:function(e,t){return`Scale type "${t}" does not work with mark "${e}".`},mergeConflictingProperty:function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${_(n)} and ${_(i)}).  Using ${_(n)}.`},independentScaleMeansIndependentGuide:function(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`},domainSortDropped:function(e){return`Dropping sort property ${_(e)} as unioned domains only support boolean or op 'count'.`},UNABLE_TO_MERGE_DOMAINS:"Unable to merge domains",MORE_THAN_ONE_SORT:"Domains that should be unioned has conflicting sort properties. Sort will be set to true.",INVALID_CHANNEL_FOR_AXIS:"Invalid channel for axis.",cannotStackRangedMark:function(e){return`Cannot stack "${e}" if there is already "${e}2"`},cannotStackNonLinearScale:function(e){return`Cannot stack non-linear scale (${e})`},stackNonSummativeAggregate:function(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}")`},invalidTimeUnit:function(e,t){return`Invalid ${e}: ${_(t)}`},dayReplacedWithDate:function(e){return`Time unit "${e}" is not supported. We are replacing it with ${e.replace("day","date")}.`},droppedDay:function(e){return`Dropping day from datetime ${_(e)} as day cannot be combined with other units.`},errorBarCenterAndExtentAreNotNeeded:function(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`},errorBarCenterIsUsedWithWrongExtent:function(e,t,n){return`${e} is not usually used with ${t} for ${n}.`},errorBarContinuousAxisHasCustomizedAggregate:function(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`},errorBarCenterIsNotNeeded:function(e,t){return`Center is not needed to be specified in ${t} when extent is ${e}.`},errorBand1DNotSupport:function(e){return`1D error band does not support ${e}`},channelRequiredForBinned:function(e){return`Channel ${e} is required for "binned" bin`},domainRequiredForThresholdScale:function(e){return`Domain for ${e} is required for threshold scale`}}),Ut=(Lt=h||d,{level:function(e){return arguments.length?(Lt=+e,this):Lt},error:function(){return Lt>=p&&f(Mt||"error","ERROR",arguments),this},warn:function(){return Lt>=h&&f(Mt||"warn","WARN",arguments),this},info:function(){return Lt>=m&&f(Mt||"log","INFO",arguments),this},debug:function(){return Lt>=g&&f(Mt||"log","DEBUG",arguments),this}});var Mt,Lt;let It=Ut;function qt(e){return It=e}function Wt(){return It=Ut}function Ht(...e){It.warn.apply(It,arguments)}function Gt(...e){It.debug.apply(It,arguments)}const Yt=2006;function Vt(e){return!!(e&&(e.year||e.quarter||e.month||e.date||e.day||e.hours||e.minutes||e.seconds||e.milliseconds))}const Qt=["january","february","march","april","may","june","july","august","september","october","november","december"],Xt=Qt.map(e=>e.substr(0,3)),Jt=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Zt=Jt.map(e=>e.substr(0,3));function Kt(e,t=!1){const n=[];if(t&&void 0!==e.day&&V(e).length>1&&(Ht(Pt.droppedDay(e)),delete(e=B(e)).day),void 0!==e.year?n.push(e.year):void 0!==e.day?n.push(Yt):n.push(0),void 0!==e.month){const i=t?function(e){if(v(e))return(e-1).toString();{const t=e.toLowerCase(),n=Qt.indexOf(t);if(-1!==n)return n+"";const i=t.substr(0,3),r=Xt.indexOf(i);if(-1!==r)return r+"";throw new Error(Pt.invalidTimeUnit("month",e))}}(e.month):e.month;n.push(i)}else if(void 0!==e.quarter){const i=t?function(e){if(v(e))return e>4&&Ht(Pt.invalidTimeUnit("quarter",e)),(e-1).toString();throw new Error(Pt.invalidTimeUnit("quarter",e))}(e.quarter):e.quarter;n.push(i+"*3")}else n.push(0);if(void 0!==e.date)n.push(e.date);else if(void 0!==e.day){const i=t?function(e){if(v(e))return e%7+"";{const t=e.toLowerCase(),n=Jt.indexOf(t);if(-1!==n)return n+"";const i=t.substr(0,3),r=Zt.indexOf(i);if(-1!==r)return r+"";throw new Error(Pt.invalidTimeUnit("day",e))}}(e.day):e.day;n.push(i+"+1")}else n.push(1);for(const t of["hours","minutes","seconds","milliseconds"])void 0!==e[t]?n.push(e[t]):n.push(0);return e.utc?`utc(${n.join(", ")})`:`datetime(${n.join(", ")})`}function en(e){return!!e.row||!!e.column}function tn(e){return void 0!==e.facet}var nn;!function(e){e.YEAR="year",e.MONTH="month",e.DAY="day",e.DATE="date",e.HOURS="hours",e.MINUTES="minutes",e.SECONDS="seconds",e.MILLISECONDS="milliseconds",e.YEARMONTH="yearmonth",e.YEARMONTHDATE="yearmonthdate",e.YEARMONTHDATEHOURS="yearmonthdatehours",e.YEARMONTHDATEHOURSMINUTES="yearmonthdatehoursminutes",e.YEARMONTHDATEHOURSMINUTESSECONDS="yearmonthdatehoursminutesseconds",e.MONTHDATE="monthdate",e.MONTHDATEHOURS="monthdatehours",e.HOURSMINUTES="hoursminutes",e.HOURSMINUTESSECONDS="hoursminutesseconds",e.MINUTESSECONDS="minutesseconds",e.SECONDSMILLISECONDS="secondsmilliseconds",e.QUARTER="quarter",e.YEARQUARTER="yearquarter",e.QUARTERMONTH="quartermonth",e.YEARQUARTERMONTH="yearquartermonth",e.UTCYEAR="utcyear",e.UTCMONTH="utcmonth",e.UTCDAY="utcday",e.UTCDATE="utcdate",e.UTCHOURS="utchours",e.UTCMINUTES="utcminutes",e.UTCSECONDS="utcseconds",e.UTCMILLISECONDS="utcmilliseconds",e.UTCYEARMONTH="utcyearmonth",e.UTCYEARMONTHDATE="utcyearmonthdate",e.UTCYEARMONTHDATEHOURS="utcyearmonthdatehours",e.UTCYEARMONTHDATEHOURSMINUTES="utcyearmonthdatehoursminutes",e.UTCYEARMONTHDATEHOURSMINUTESSECONDS="utcyearmonthdatehoursminutesseconds",e.UTCMONTHDATE="utcmonthdate",e.UTCMONTHDATEHOURS="utcmonthdatehours",e.UTCHOURSMINUTES="utchoursminutes",e.UTCHOURSMINUTESSECONDS="utchoursminutesseconds",e.UTCMINUTESSECONDS="utcminutesseconds",e.UTCSECONDSMILLISECONDS="utcsecondsmilliseconds",e.UTCQUARTER="utcquarter",e.UTCYEARQUARTER="utcyearquarter",e.UTCQUARTERMONTH="utcquartermonth",e.UTCYEARQUARTERMONTH="utcyearquartermonth"}(nn||(nn={}));const rn={year:1,quarter:1,month:1,day:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},on=X(rn);const an={utcyear:1,utcquarter:1,utcmonth:1,utcday:1,utcdate:1,utchours:1,utcminutes:1,utcseconds:1,utcmilliseconds:1};const sn={utcyearquarter:1,utcyearquartermonth:1,utcyearmonth:1,utcyearmonthdate:1,utcyearmonthdatehours:1,utcyearmonthdatehoursminutes:1,utcyearmonthdatehoursminutesseconds:1,utcquartermonth:1,utcmonthdate:1,utcmonthdatehours:1,utchoursminutes:1,utchoursminutesseconds:1,utcminutesseconds:1,utcsecondsmilliseconds:1},un=Object.assign({},an,sn);Object.assign({},rn,an,{yearquarter:1,yearquartermonth:1,yearmonth:1,yearmonthdate:1,yearmonthdatehours:1,yearmonthdatehoursminutes:1,yearmonthdatehoursminutesseconds:1,quartermonth:1,monthdate:1,monthdatehours:1,hoursminutes:1,hoursminutesseconds:1,minutesseconds:1,secondsmilliseconds:1},sn);function cn(e,t){const n=e.indexOf(t);return n>-1&&(t!==nn.SECONDS||0===n||"i"!==e.charAt(n-1))}function ln(e,t){const n=ne(t),i=un[e]?"utc":"";return Kt(on.reduce((t,r)=>(cn(e,r)&&(t[r]=function(e){return e===nn.QUARTER?`(${i}quarter(${n})-1)`:`${i}${e}(${n})`}(r)),t),{}))}function fn(e,t){if(!e)return;const n=[],i=cn(e,nn.YEAR);cn(e,nn.MONTH)&&n.push(!1!==t?"%b":"%B"),cn(e,nn.DAY)?n.push(t?"%a":"%A"):cn(e,nn.DATE)&&n.push("%d"+(i?",":"")),i&&n.push(t?"%y":"%Y");const r=[];cn(e,nn.HOURS)&&r.push("%H"),cn(e,nn.MINUTES)&&r.push("%M"),cn(e,nn.SECONDS)&&r.push("%S"),cn(e,nn.MILLISECONDS)&&r.push("%L");const o=[];return n.length>0&&o.push(n.join(" ")),r.length>0&&o.push(r.join(":")),o}function dn(e){return"day"!==e&&e.indexOf("day")>=0?(Ht(Pt.dayReplacedWithDate(e)),e.replace("day","date")):e}const pn={quantitative:1,ordinal:1,temporal:1,nominal:1,geojson:1},hn="quantitative",mn="ordinal",gn="temporal",yn="nominal",bn="geojson";function vn(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return Object.assign({},n?{timeUnit:n}:{},i?{bin:i}:{},r?{aggregate:r}:{},{field:t})}function xn(e){return!!e&&!!e.condition}function An(e){return!!e&&!!e.condition&&!o(e.condition)&&wn(e.condition)}function wn(e){return!(!e||!e.field&&"count"!==e.aggregate)}function Cn(e){return!!e&&(!!e.field&&!!e.type||"count"===e.aggregate)}function Fn(e){return wn(e)&&s(e.field)}function En(e){return e&&"value"in e&&void 0!==e.value}function Dn(e){return!(!e||!e.scale&&!e.sort)}function Sn(e){return!(!e||!e.axis&&!e.stack&&!e.impute)}function kn(e){return!!e&&!!e.legend}function On(e){return!!e&&!!e.format}function $n(e,t={}){let n=e.field;const i=t.prefix;let r=t.suffix,o="";if(function(e){return"count"===e.aggregate}(e))n=le("count");else{let i;if(!t.nofn)if(function(e){return!!e.op}(e))i=e.op;else{const{bin:a,aggregate:s,timeUnit:u}=e;Xn(a)?(i=Qn(a),r=(t.binSuffix||"")+(t.suffix||"")):s?Te(s)?(o=`.${n}`,n=`argmax_${s.argmax}`):_e(s)?(o=`.${n}`,n=`argmin_${s.argmin}`):i=String(s):u&&(i=String(u))}i&&(n=n?`${i}_${n}`:i)}return r&&(n=`${n}_${r}`),i&&(n=`${i}_${n}`),t.forAs?n:t.expr?ie(n,t.expr)+o:re(n)+o}function Bn(e){return!function(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return!!e.bin;case"temporal":return!1}throw new Error(Pt.invalidFieldType(e.type))}(e)}function Nn(e,t){const{field:n,bin:i,timeUnit:r,aggregate:o}=e;if("count"===o)return t.countTitle;if(Xn(i))return`${n} (binned)`;if(r){return`${n} (${function(e){return on.reduce((t,n)=>cn(e,n)?[...t,n]:t,[])}(r).join("-")})`}return o?Te(o)?`${n} for max ${o.argmax}`:_e(o)?`${n} for min ${o.argmin}`:`${te(o)} of ${n}`:n}const jn=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return function(e){const{aggregate:t,bin:n,timeUnit:i,field:r}=e;if(Te(t))return`${r} for argmax(${t.argmax})`;if(_e(t))return`${r} for argmin(${t.argmin})`;const o=t||i||Xn(n)&&"bin";return o?o.toUpperCase()+"("+r+")":r}(e);default:return Nn(e,t)}};let _n=jn;function Tn(e){_n=e}function zn(e,t,{allowDisabling:n,includeDefault:i=!0}){const r=(Rn(e)||{}).title,o=i?Pn(e,t):void 0;return n?se(r,e.title,o):r||e.title||o}function Rn(e){return Sn(e)&&e.axis?e.axis:kn(e)&&e.legend?e.legend:(t=e)&&t.header&&e.header?e.header:void 0;var t}function Pn(e,t){return _n(e,t)}function Un(e){return wn(e)?e:An(e)?e.condition:void 0}function Mn(e){return wn(e)?e:An(e)?e.condition:void 0}function Ln(e,t){if(s(e)||v(e)||b(e)){const n=s(e)?"string":v(e)?"number":"boolean";return Ht(Pt.primitiveChannelDef(t,n,e)),{value:e}}return wn(e)?In(e,t):An(e)?Object.assign({},e,{condition:In(e.condition,t)}):e}function In(e,t){const{aggregate:n,timeUnit:i,bin:r}=e;if(n&&!ze(n)&&!Te(n)&&!_e(n)){const t=Ne(e,["aggregate"]);Ht(Pt.invalidAggregate(n)),e=t}if(i&&(e=Object.assign({},e,{timeUnit:dn(i)})),Xn(r)&&(e=Object.assign({},e,{bin:qn(r,t)})),Jn(r)&&!R($t,t)&&Ht(`Channel ${t} should not be used with "binned" bin`),Cn(e)){const{type:t}=e,i=function(e){if(e)switch(e=e.toLowerCase()){case"q":case hn:return"quantitative";case"t":case gn:return"temporal";case"o":case mn:return"ordinal";case"n":case yn:return"nominal";case bn:return"geojson"}}(t);t!==i&&(e=Object.assign({},e,{type:i})),"quantitative"!==t&&Pe(n)&&(Ht(Pt.invalidFieldTypeForCountAggregate(t,n)),e=Object.assign({},e,{type:"quantitative"}))}else if(!Et(t)){const n=function(e,t){if(e.timeUnit)return"temporal";if(Xn(e.bin))return"quantitative";switch(Rt(t)){case"continuous":return"quantitative";case"discrete":case"flexible":return"nominal";default:return"quantitative"}}(e,t);Ht(Pt.missingFieldType(t,n)),e=Object.assign({},e,{type:n})}if(Cn(e)){const{compatible:n,warning:i}=function(e,t){const n=e.type;if("geojson"===n&&"shape"!==t)return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case"row":case"column":case"facet":return Bn(e)?{compatible:!1,warning:Pt.facetChannelShouldBeDiscrete(t)}:Wn;case"x":case"y":case"color":case"fill":case"stroke":case"text":case"detail":case"key":case"tooltip":case"href":return Wn;case"longitude":case"longitude2":case"latitude":case"latitude2":return n!==hn?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:Wn;case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeWidth":case"size":case"x2":case"y2":return"nominal"!==n||e.sort?Wn:{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`};case"shape":return R(["ordinal","nominal","geojson"],e.type)?Wn:{compatible:!1,warning:"Shape channel should be used with only either discrete or geojson data."};case"order":return"nominal"!==e.type||"sort"in e?Wn:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}throw new Error("channelCompatability not implemented for channel "+t)}(e,t);n||Ht(i)}return e}function qn(e,t){return b(e)?{maxbins:Kn(t)}:"binned"===e?{binned:!0}:e.maxbins||e.step?e:Object.assign({},e,{maxbins:Kn(t)})}const Wn={compatible:!0};function Hn(e){const t=Sn(e)&&e.axis&&e.axis.formatType||kn(e)&&e.legend&&e.legend.formatType||On(e)&&e.formatType;return"time"===t||!t&&function(e){return"temporal"===e.type||!!e.timeUnit}(e)}function Gn(e,{timeUnit:t,type:n,time:i,undefinedIfExprNotRequired:r}){let o;var a;return Vt(e)?o=Kt(e,!0):(s(e)||v(e))&&(t||"temporal"===n)&&(o=function(e){return!!rn[e]}(t)?Kt({[t]:e},!0):function(e){return!!an[e]}(t)?Gn(e,{timeUnit:(a=t,a.substr(3))}):`datetime(${JSON.stringify(e)})`),o?i?`time(${o})`:o:r?void 0:JSON.stringify(e)}function Yn(e,t){const{timeUnit:n,type:i}=e;return t.map(e=>{const t=Gn(e,{timeUnit:n,type:i,undefinedIfExprNotRequired:!0});return void 0!==t?{signal:t}:e})}function Vn(e,t){return Xn(e.bin)?Tt(t)&&R(["ordinal","nominal"],e.type):(console.warn("Only use this method with binned field defs"),!1)}function Qn(e){return b(e)&&(e=qn(e,void 0)),"bin"+V(e).map(t=>Z(`_${t}_${e[t]}`)).join("")}function Xn(e){return!0===e||Zn(e)&&!e.binned}function Jn(e){return"binned"===e||Zn(e)&&e.binned}function Zn(e){return a(e)}function Kn(e){switch(e){case Le:case Ie:case nt:case Ze:case Ke:case et:case at:case it:case rt:case ot:case tt:return 6;default:return 10}}function ei(e,t){const n=e&&e[t];return!!n&&(o(n)?P(n,e=>!!e.field):wn(n)||An(n))}function ti(e){return P(xt,t=>{if(ei(e,t)){const n=e[t];if(o(n))return P(n,e=>!!e.aggregate);{const e=Un(n);return e&&!!e.aggregate}}return!1})}function ni(e,t){const n=[],i=[],r=[],o=[],a={};return oi(e,(s,u)=>{if(wn(s)){const{field:c,aggregate:l,timeUnit:f,bin:d}=s,p=Ne(s,["field","aggregate","timeUnit","bin"]);if(l||f||d){const e=Rn(s),h=e&&e.title;let m=$n(s,{forAs:!0});const g=Object.assign({},h?[]:{title:zn(s,t,{allowDisabling:!0})},p,{field:m}),y="x"===u||"y"===u;if(l){let e;if(Te(l)?(e="argmax",m=$n({aggregate:"argmax",field:l.argmax},{forAs:!0}),g.field=`${m}.${c}`):_e(l)?(e="argmin",m=$n({aggregate:"argmin",field:l.argmin},{forAs:!0}),g.field=`${m}.${c}`):"boxplot"!==l&&"errorbar"!==l&&"errorband"!==l&&(e=l),e){const t={op:e,as:m};c&&(t.field=c),o.push(t)}}else if(Cn(s)&&Xn(d)){if(i.push({bin:d,field:c,as:m}),n.push($n(s,{binSuffix:"end"})),Vn(s,u)&&n.push($n(s,{binSuffix:"range"})),y){const e={field:m+"_end"};a[u+"2"]=e}g.bin="binned",Et(u)||(g.type="quantitative")}else if(f){r.push({timeUnit:f,field:c,as:m});const e=fn(f,t.axis.shortTimeLabels).join(" "),n=Cn(s)&&s.type!==gn&&"time";"text"===u||"tooltip"===u?(g.format=g.format||e,n&&(g.formatType=n)):!function(e){return!!St[e]}(u)?y&&(g.axis=Object.assign({format:e},n?{formatType:n}:{},g.axis)):g.legend=Object.assign({format:e},n?{formatType:n}:{},g.legend)}l||n.push(m),a[u]=g}else n.push(c),a[u]=e[u]}else a[u]=e[u]}),{bins:i,timeUnits:r,aggregate:o,groupby:n,encoding:a}}function ii(e,t){return V(e).reduce((n,i)=>{if(!Ct(i))return Ht(Pt.invalidEncodingChannel(i)),n;if(!function(e,t,n){const i=zt(t,n);if(!i)return!1;if("binned"===i){const n=e["x2"===t?"x":"y"];return!(!wn(n)||!wn(e[t])||"binned"!==n.bin)}return!0}(e,i,t))return Ht(Pt.incompatibleChannel(i,t)),n;if("size"===i&&"line"===t){const t=Mn(e[i]);if(t&&t.aggregate)return Ht(Pt.LINE_WITH_VARYING_SIZE),n}if("color"===i&&("fill"in e||"stroke"in e))return Ht(Pt.droppingColor("encoding",{fill:"fill"in e,stroke:"stroke"in e})),n;const r=e[i];if("detail"===i||"order"===i&&!o(r)&&!En(r)||"tooltip"===i&&o(r))r&&(n[i]=(o(r)?r:[r]).reduce((e,t)=>(wn(t)?e.push(In(t,i)):Ht(Pt.emptyFieldDef(t,i)),e),[]));else{if("tooltip"===i&&null===r)n[i]=null;else if(!wn(r)&&!En(r)&&!xn(r))return Ht(Pt.emptyFieldDef(r,i)),n;n[i]=Ln(r,i)}return n},{})}function ri(e){const t=[];for(const n of V(e))if(ei(e,n)){const i=e[n];(o(i)?i:[i]).forEach(e=>{wn(e)?t.push(e):An(e)&&t.push(e.condition)})}return t}function oi(e,t,n){if(e)for(const i of V(e)){const r=e[i];o(r)?r.forEach(e=>{t.call(n,e,i)}):t.call(n,r,i)}}function ai(e,t,n,i){return e?V(e).reduce((n,r)=>{const a=e[r];return o(a)?a.reduce((e,n)=>t.call(i,e,n,r),n):t.call(i,n,a,r)},n):n}function si(e,t,n,i=!0){return{tooltip:[...e.map(({fieldPrefix:e,titlePrefix:n})=>({field:e+t.field,type:t.type,title:n+(i?" of "+t.field:"")})),...ri(n)]}}function ui(e,t,n,i,r){const{scale:o,axis:a}=n;return({partName:u,mark:c,positionPrefix:l,endPositionPrefix:f,extraEncoding:d={}})=>{const p=a&&void 0!==a.title?void 0:void 0!==n.title?n.title:n.field;return ci(e,u,r,{mark:c,encoding:Object.assign({[t]:Object.assign({field:l+"_"+n.field,type:n.type},p?{title:p}:{},o?{scale:o}:{},a?{axis:a}:{})},s(f)?{[t+"2"]:{field:f+"_"+n.field,type:n.type}}:{},i,d)})}}function ci(e,t,n,i){const{clip:r,color:o,opacity:a}=e,s=e.type;return e[t]||void 0===e[t]&&n[t]?[Object.assign({},i,{mark:Object.assign({},n[t],r?{clip:r}:{},o?{color:o}:{},a?{opacity:a}:{},Se(i.mark)?i.mark:{type:i.mark},{style:`${s}-${t}`},b(e[t])?{}:e[t])})]:[]}function li(e,t,n){const{encoding:i}=e,r="vertical"===t?"y":"x",o=i[r],a=i[r+"2"],s=i[r+"Error"],u=i[r+"Error2"];return{continuousAxisChannelDef:fi(o,n),continuousAxisChannelDef2:fi(a,n),continuousAxisChannelDefError:fi(s,n),continuousAxisChannelDefError2:fi(u,n),continuousAxis:r}}function fi(e,t){if(e&&e.aggregate){const{aggregate:n}=e,i=Ne(e,["aggregate"]);return n!==t&&Ht(Pt.errorBarContinuousAxisHasCustomizedAggregate(n,t)),i}return e}function di(e,t){const{mark:n,encoding:i}=e;if(wn(i.x)&&Bn(i.x)){if(wn(i.y)&&Bn(i.y)){if(void 0===i.x.aggregate&&i.y.aggregate===t)return"vertical";if(void 0===i.y.aggregate&&i.x.aggregate===t)return"horizontal";if(i.x.aggregate===t&&i.y.aggregate===t)throw new Error("Both x and y cannot have aggregate");return Se(n)&&n.orient?n.orient:"vertical"}return"horizontal"}if(wn(i.y)&&Bn(i.y))return"vertical";throw new Error("Need a valid continuous axis for "+t+"s")}const pi="boxplot",hi=V({box:1,median:1,outliers:1,rule:1,ticks:1}),mi=new Be(pi,yi);function gi(e){return v(e)?"tukey":e}function yi(e,{config:t}){const{mark:n,encoding:i,selection:r,projection:s}=e,u=Ne(e,["mark","encoding","selection","projection"]),c=Se(n)?n:{type:n};r&&Ht(Pt.selectionNotSupported("boxplot"));const l=c.extent||t.boxplot.extent,f=se(c.size,t.boxplot.size),d=gi(l),{transform:p,continuousAxisChannelDef:h,continuousAxis:m,groupby:g,aggregate:y,encodingWithoutContinuousAxis:b,ticksOrient:v,customTooltipWithoutAggregatedField:x}=function(e,t,n){const i=di(e,pi),{continuousAxisChannelDef:r,continuousAxis:a}=li(e,i,pi),s=r.field,u=gi(t),c=[...bi(s),{op:"median",field:s,as:"mid_box_"+s},{op:"min",field:s,as:("min-max"===u?"lower_whisker_":"min_")+s},{op:"max",field:s,as:("min-max"===u?"upper_whisker_":"max_")+s}],l="min-max"===u||"tukey"===u?[]:[{calculate:`datum["upper_box_${s}"] - datum["lower_box_${s}"]`,as:"iqr_"+s},{calculate:`min(datum["upper_box_${s}"] + datum["iqr_${s}"] * ${t}, datum["max_${s}"])`,as:"upper_whisker_"+s},{calculate:`max(datum["lower_box_${s}"] - datum["iqr_${s}"] * ${t}, datum["min_${s}"])`,as:"lower_whisker_"+s}],f=e.encoding,d=a,p=(f[d],Ne(f,["symbol"==typeof d?d:d+""])),{customTooltipWithoutAggregatedField:h,filteredEncoding:m}=function(e){const{tooltip:t}=e,n=Ne(e,["tooltip"]);if(!t)return{filteredEncoding:e};let i,r;return o(t)?(t.forEach(e=>{e.aggregate?(i||(i=[]),i.push(e)):(r||(r=[]),r.push(e))}),i&&(n.tooltip=i)):t.aggregate?n.tooltip=t:r=t,o(r)&&1===r.length&&(r=r[0]),{customTooltipWithoutAggregatedField:r,filteredEncoding:n}}(p),{bins:g,timeUnits:y,aggregate:b,groupby:v,encoding:x}=ni(m,n),A="vertical"===i?"horizontal":"vertical";return{transform:[...g,...y,{aggregate:[...b,...c],groupby:v},...l],groupby:v,aggregate:b,continuousAxisChannelDef:r,continuousAxis:a,encodingWithoutContinuousAxis:x,ticksOrient:A,customTooltipWithoutAggregatedField:h}}(e,l,t),{color:A,size:w}=b,C=Ne(b,["color","size"]),F=e=>ui(c,m,h,e,t.boxplot),E=F(C),D=F(b),S=F(Object.assign({},C,w?{size:w}:{})),k=si([{fieldPrefix:"min-max"===d?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:"min-max"===d?"lower_whisker_":"min_",titlePrefix:"Min"}],h,b),O={type:"tick",color:"black",opacity:1,orient:v},$="min-max"===d?k:si([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],h,b),B=[...E({partName:"rule",mark:"rule",positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:$}),...E({partName:"rule",mark:"rule",positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:$}),...E({partName:"ticks",mark:O,positionPrefix:"lower_whisker",extraEncoding:$}),...E({partName:"ticks",mark:O,positionPrefix:"upper_whisker",extraEncoding:$})],N=[..."tukey"!==d?B:[],...D({partName:"box",mark:Object.assign({type:"bar"},f?{size:f}:{}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:k}),...S({partName:"median",mark:Object.assign({type:"tick"},a(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},f?{size:f}:{},{orient:v}),positionPrefix:"mid_box",extraEncoding:k})];let j;if("min-max"!==d){const e=`datum["lower_box_${h.field}"]`,n=`datum["upper_box_${h.field}"]`,i=`(${n} - ${e})`,r=`${e} - ${l} * ${i}`,o=`${n} + ${l} * ${i}`,a=`datum["${h.field}"]`,s={joinaggregate:bi(h.field),groupby:g};let u=void 0;"tukey"===d&&(u={transform:[{filter:`(${r} <= ${a}) && (${a} <= ${o})`},{aggregate:[{op:"min",field:h.field,as:"lower_whisker_"+h.field},{op:"max",field:h.field,as:"upper_whisker_"+h.field},{op:"min",field:"lower_box_"+h.field,as:"lower_box_"+h.field},{op:"max",field:"upper_box_"+h.field,as:"upper_box_"+h.field},...y],groupby:g}],layer:B});const f=Ne(C,["tooltip"]),p=ci(c,"outliers",t.boxplot,{transform:[{filter:`(${a} < ${r}) || (${a} > ${o})`}],mark:"point",encoding:Object.assign({[m]:{field:h.field,type:h.type}},f,x?{tooltip:x}:{})})[0];p&&u?j={transform:[s],layer:[p,u]}:p?(j=p).transform.unshift(s):u&&(j=u).transform.unshift(s)}return j?Object.assign({},u,{layer:[...j?[j]:[],{transform:p,layer:N}]}):Object.assign({},u,{transform:(u.transform||[]).concat(p),layer:N})}function bi(e){return[{op:"q1",field:e,as:"lower_box_"+e},{op:"q3",field:e,as:"upper_box_"+e}]}const vi="errorbar",xi=V({ticks:1,rule:1}),Ai=new Be(vi,wi);function wi(e,{config:t}){const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:a,markDef:s,outerSpec:u,tooltipEncoding:c}=Fi(e,vi,t),l=ui(s,r,i,o,t.errorbar),f={type:"tick",orient:a};return Object.assign({},u,{transform:n,layer:[...l({partName:"ticks",mark:f,positionPrefix:"lower",extraEncoding:c}),...l({partName:"ticks",mark:f,positionPrefix:"upper",extraEncoding:c}),...l({partName:"rule",mark:"rule",positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:c})]})}function Ci(e,t){const{encoding:n}=e;if(function(e){return(wn(e.x)||wn(e.y))&&!wn(e.x2)&&!wn(e.y2)&&!wn(e.xError)&&!wn(e.xError2)&&!wn(e.yError)&&!wn(e.yError2)}(n))return{orient:di(e,t),inputType:"raw"};const i=function(e){return wn(e.x2)||wn(e.y2)}(n),r=function(e){return wn(e.xError)||wn(e.xError2)||wn(e.yError)||wn(e.yError2)}(n),o=n.x,a=n.y;if(i){if(r)throw new Error(t+" cannot be both type aggregated-upper-lower and aggregated-error");const e=n.x2,i=n.y2;if(wn(e)&&wn(i))throw new Error(t+" cannot have both x2 and y2");if(wn(e)){if(wn(o)&&Bn(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error("Both x and x2 have to be quantitative in "+t)}if(wn(i)){if(wn(a)&&Bn(a))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error("Both y and y2 have to be quantitative in "+t)}throw new Error("No ranged axis")}{const e=n.xError,i=n.xError2,r=n.yError,s=n.yError2;if(wn(i)&&!wn(e))throw new Error(t+" cannot have xError2 without xError");if(wn(s)&&!wn(r))throw new Error(t+" cannot have yError2 without yError");if(wn(e)&&wn(r))throw new Error(t+" cannot have both xError and yError with both are quantiative");if(wn(e)){if(wn(o)&&Bn(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(wn(r)){if(wn(a)&&Bn(a))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function Fi(e,t,n){const{mark:i,encoding:r,selection:o,projection:a}=e,s=Ne(e,["mark","encoding","selection","projection"]),u=Se(i)?i:{type:i};o&&Ht(Pt.selectionNotSupported(t));const{orient:c,inputType:l}=Ci(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:h,continuousAxis:m}=li(e,c,t),{errorBarSpecificAggregate:g,postAggregateCalculates:y,tooltipSummary:b,tooltipTitleWithFieldName:v}=function(e,t,n,i,r,o,a,s){let u=[],c=[];const l=t.field;let f,d=!1;if("raw"===o){const t=e.center?e.center:e.extent?"iqr"===e.extent?"median":"mean":s.errorbar.center,n=e.extent?e.extent:"mean"===t?"stderr":"iqr";if("median"===t!=("iqr"===n)&&Ht(Pt.errorBarCenterIsUsedWithWrongExtent(t,n,a)),"stderr"===n||"stdev"===n)u=[{op:n,field:l,as:"extent_"+l},{op:t,field:l,as:"center_"+l}],c=[{calculate:`datum["center_${l}"] + datum["extent_${l}"]`,as:"upper_"+l},{calculate:`datum["center_${l}"] - datum["extent_${l}"]`,as:"lower_"+l}],f=[{fieldPrefix:"center_",titlePrefix:te(t)},{fieldPrefix:"upper_",titlePrefix:Ei(t,n,"+")},{fieldPrefix:"lower_",titlePrefix:Ei(t,n,"-")}],d=!0;else{let t,i,r;e.center&&e.extent&&Ht(Pt.errorBarCenterIsNotNeeded(e.extent,a)),"ci"===n?(t="mean",i="ci0",r="ci1"):(t="median",i="q1",r="q3"),u=[{op:i,field:l,as:"lower_"+l},{op:r,field:l,as:"upper_"+l},{op:t,field:l,as:"center_"+l}],f=[{fieldPrefix:"upper_",titlePrefix:zn({field:l,aggregate:r,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:zn({field:l,aggregate:i,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:zn({field:l,aggregate:t,type:"quantitative"},s,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&Ht(Pt.errorBarCenterAndExtentAreNotNeeded(e.center,e.extent)),"aggregated-upper-lower"===o?(f=[],c=[{calculate:`datum["${n.field}"]`,as:"upper_"+l},{calculate:`datum["${l}"]`,as:"lower_"+l}]):"aggregated-error"===o&&(f=[{fieldPrefix:"",titlePrefix:l}],c=[{calculate:`datum["${l}"] + datum["${i.field}"]`,as:"upper_"+l}],r?c.push({calculate:`datum["${l}"] + datum["${r.field}"]`,as:"lower_"+l}):c.push({calculate:`datum["${l}"] - datum["${i.field}"]`,as:"lower_"+l}));for(const e of c)f.push({fieldPrefix:e.as.substring(0,6),titlePrefix:e.calculate.replace(new RegExp('datum\\[\\"',"g"),"").replace(new RegExp('\\"\\]',"g"),"")})}return{postAggregateCalculates:c,errorBarSpecificAggregate:u,tooltipSummary:f,tooltipTitleWithFieldName:d}}(u,f,d,p,h,l,t,n),x=m,A=(r[x],"x"===m?"x2":"y2"),w=(r[A],"x"===m?"xError":"yError"),C=(r[w],"x"===m?"xError2":"yError2"),F=(r[C],Ne(r,["symbol"==typeof x?x:x+"","symbol"==typeof A?A:A+"","symbol"==typeof w?w:w+"","symbol"==typeof C?C:C+""])),{bins:E,timeUnits:D,aggregate:S,groupby:k,encoding:O}=ni(F,n),$=[...S,...g],B="raw"!==l?[]:k,N=si(b,f,O,v);return{transform:[...s.transform||[],...E,...D,...$.length?[{aggregate:$,groupby:B}]:[],...y],groupby:B,continuousAxisChannelDef:f,continuousAxis:m,encodingWithoutContinuousAxis:O,ticksOrient:"vertical"===c?"horizontal":"vertical",markDef:u,outerSpec:s,tooltipEncoding:N}}function Ei(e,t,n){return te(e)+" "+n+" "+t}const Di="errorband",Si=V({band:1,borders:1}),ki=new Be(Di,Oi);function Oi(e,{config:t}){const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:a,outerSpec:s,tooltipEncoding:u}=Fi(e,Di,t),c=a,l=ui(c,r,i,o,t.errorband),f=void 0!==e.encoding.x&&void 0!==e.encoding.y;let d={type:f?"area":"rect"},p={type:f?"line":"rule"};const h=Object.assign({},c.interpolate?{interpolate:c.interpolate}:{},c.tension&&c.interpolate?{interpolate:c.tension}:{});return f?(d=Object.assign({},d,h),p=Object.assign({},p,h)):c.interpolate?Ht(Pt.errorBand1DNotSupport("interpolate")):c.tension&&Ht(Pt.errorBand1DNotSupport("tension")),Object.assign({},s,{transform:n,layer:[...l({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...l({partName:"borders",mark:p,positionPrefix:"lower",extraEncoding:u}),...l({partName:"borders",mark:p,positionPrefix:"upper",extraEncoding:u})]})}const $i={};function Bi(e,t,n){const i=new Be(e,t);$i[e]={normalizer:i,parts:n}}Bi(pi,yi,hi),Bi(vi,wi,xi),Bi(Di,Oi,Si);const Ni=["shortTimeLabels"],ji=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength"],_i={clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1},Ti=Object.assign({},_i,{opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,encode:1}),zi=X(_i),Ri=X(Ti);var Pi;!function(e){e.LINEAR="linear",e.LOG="log",e.POW="pow",e.SQRT="sqrt",e.SYMLOG="symlog",e.TIME="time",e.UTC="utc",e.QUANTILE="quantile",e.QUANTIZE="quantize",e.THRESHOLD="threshold",e.BIN_ORDINAL="bin-ordinal",e.ORDINAL="ordinal",e.POINT="point",e.BAND="band"}(Pi||(Pi={}));const Ui={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"},Mi=V(Ui);function Li(e,t){const n=Ui[e],i=Ui[t];return n===i||"ordinal-position"===n&&"time"===i||"ordinal-position"===i&&"time"===n}const Ii={linear:0,log:1,pow:1,sqrt:1,symlog:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function qi(e){return Ii[e]}const Wi=["linear","log","pow","sqrt","symlog","time","utc"],Hi=x(Wi),Gi=x(["quantile","quantize","threshold"]),Yi=x(Wi.concat(["quantile","quantize","threshold"])),Vi=x(["ordinal","bin-ordinal","point","band"]);function Qi(e){return e in Vi}function Xi(e){return e in Yi}function Ji(e){return e in Hi}function Zi(e){return e in Gi}const Ki={textXRangeStep:90,rangeStep:20,pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4};function er(e){return e&&e.selection}const tr=X(Ne({type:1,domain:1,range:1,rangeStep:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},["type","domain","range","rangeStep","scheme"]));!function(){const e={};for(const t of xt)for(const n of V(pn))for(const i of Mi){const r=ar(t,n);or(t,i)&&rr(i,n)&&(e[r]=e[r]||[],e[r].push(i))}}();function nr(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!R(["point","band","identity"],e);case"bins":return!R(["point","band","identity","ordinal"],e);case"round":return Ji(e)||"band"===e||"point"===e;case"padding":return Ji(e)||R(["point","band"],e);case"paddingOuter":case"rangeStep":return R(["point","band"],e);case"paddingInner":return"band"===e;case"clamp":return Ji(e);case"nice":return Ji(e)||"quantize"===e||"threshold"===e;case"exponent":return"pow"===e;case"base":return"log"===e;case"constant":return"symlog"===e;case"zero":return Xi(e)&&!R(["log","time","utc","threshold","quantile"],e)}throw new Error(`Invalid scale property ${t}.`)}function ir(e,t){switch(t){case"interpolate":case"scheme":return gt(e)?void 0:Pt.cannotUseScalePropertyWithNonColor(e);case"type":case"bins":case"domain":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeStep":case"reverse":case"round":case"clamp":case"zero":return}throw new Error(`Invalid scale property "${t}".`)}function rr(e,t){return R([mn,yn],t)?void 0===e||Qi(e):t===gn?R([Pi.TIME,Pi.UTC,void 0],e):t!==hn||R([Pi.LOG,Pi.POW,Pi.SQRT,Pi.SYMLOG,Pi.QUANTILE,Pi.QUANTIZE,Pi.THRESHOLD,Pi.LINEAR,void 0],e)}function or(e,t){switch(e){case We:case He:return Ji(t)||R(["band","point"],t);case nt:case at:case it:case rt:case ot:return Ji(t)||Zi(t)||R(["band","point"],t);case Ze:case Ke:case et:return"band"!==t;case tt:return"ordinal"===t}return!1}function ar(e,t){return e+"_"+t}const sr="_vgsid_";function ur(e){return"interval"===e.type}const cr={single:{on:"click",fields:[sr],resolve:"global",empty:"all",clear:"dblclick"},multi:{on:"click",fields:[sr],toggle:"event.shiftKey",resolve:"global",empty:"all",clear:"dblclick"},interval:{on:"[mousedown, window:mouseup] > window:mousemove!",encodings:["x","y"],translate:"[mousedown, window:mouseup] > window:mousemove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function lr(e){return void 0!==e.concat}function fr(e){return void 0!==e.vconcat}function dr(e){return void 0!==e.hconcat}function pr(e){return void 0!==e.repeat}const hr=X({align:1,bounds:1,center:1,columns:1,spacing:1});function mr(e){const{anchor:t,frame:n,offset:i,orient:r,color:o}=e,a=Ne(e,["anchor","frame","offset","orient","color"]);return{mark:Object.assign({},a,o?{fill:o}:{}),nonMark:Object.assign({},t?{anchor:t}:{},n?{frame:n}:{},i?{offset:i}:{},r?{orient:r}:{})}}const gr={padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",invalidValues:"filter",view:{width:200,height:200},mark:{color:"#4c78a8",tooltip:{content:"encoding"}},area:{},bar:{binSpacing:1,continuousBandSize:5},circle:{},geoshape:{},line:{},point:{},rect:{},rule:{color:"black"},square:{},text:{color:"black"},tick:{thickness:1},trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:Ki,projection:{},axis:{},axisX:{},axisY:{},axisLeft:{},axisRight:{},axisTop:{},axisBottom:{},axisBand:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:cr,style:{},title:{},facet:{spacing:20},repeat:{spacing:20},concat:{spacing:20}};function yr(e){return L(B(gr),e)}const br=["view",...De],vr=["padding","facet","concat","repeat","numberFormat","timeFormat","countTitle","header","stack","scale","selection","invalidValues","overlay"],xr=Object.assign({view:["width","height"]},{area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],text:["shortTimeLabels"],tick:["bandSize","thickness"]});function Ar(e){e=B(e);for(const t of vr)delete e[t];if(e.axis)for(const t of Ni)delete e.axis[t];if(e.legend){for(const t of Ni)delete e.legend[t];for(const t of ji)delete e.legend[t]}if(e.mark)for(const t of Oe)delete e.mark[t];for(const t of br){for(const n of Oe)delete e[t][n];const n=xr[t];if(n)for(const i of n)delete e[t][i];wr(e,t)}for(const t of V($i))delete e[t];wr(e,"title","group-title");for(const t in e)a(e[t])&&0===V(e[t]).length&&delete e[t];return V(e).length>0?e:void 0}function wr(e,t,n,i){const r="title"===t?mr(e.title).mark:i?e[t][i]:e[t];"view"===t&&(n="cell");const o=Object.assign({},r,e.style[t]);V(o).length>0&&(e.style[n||t]=o),i||delete e[t]}function Cr(e){return void 0!==e.layer}class Fr{map(e,t){return tn(e)?this.mapFacet(e,t):pr(e)?this.mapRepeat(e,t):dr(e)?this.mapHConcat(e,t):fr(e)?this.mapVConcat(e,t):lr(e)?this.mapConcat(e,t):this.mapLayerOrUnit(e,t)}mapLayerOrUnit(e,t){if(Cr(e))return this.mapLayer(e,t);if($e(e))return this.mapUnit(e,t);throw new Error(Pt.INVALID_SPEC)}mapLayer(e,t){return Object.assign({},e,{layer:e.layer.map(e=>this.mapLayerOrUnit(e,t))})}mapHConcat(e,t){return Object.assign({},e,{hconcat:e.hconcat.map(e=>this.map(e,t))})}mapVConcat(e,t){return Object.assign({},e,{vconcat:e.vconcat.map(e=>this.map(e,t))})}mapConcat(e,t){const{concat:n}=e,i=Ne(e,["concat"]);return Object.assign({},i,{concat:n.map(e=>this.map(e,t))})}mapFacet(e,t){return Object.assign({},e,{spec:this.map(e.spec,t)})}mapRepeat(e,t){return Object.assign({},e,{spec:this.map(e.spec,t)})}}const Er={zero:1,center:1,normalize:1};const Dr=[he,pe,be,ge,we,Ce,me,ve,xe],Sr=[he,pe];function kr(e,t,n,i={}){const r=Se(e)?e.type:e;if(!R(Dr,r))return null;const a=function(e){const t=e.x,n=e.y;if(wn(t)&&wn(n))if("quantitative"===t.type&&"quantitative"===n.type){if(t.stack)return"x";if(n.stack)return"y";if(!!t.aggregate!=!!n.aggregate)return t.aggregate?"x":"y"}else{if("quantitative"===t.type)return"x";if("quantitative"===n.type)return"y"}else{if(wn(t)&&"quantitative"===t.type)return"x";if(wn(n)&&"quantitative"===n.type)return"y"}}(t);if(!a)return null;const s=t[a],u=Fn(s)?$n(s,{}):void 0,c="x"===a?"y":"x",l=t[c],f=Fn(l)?$n(l,{}):void 0,d=kt.reduce((e,n)=>{if("tooltip"!==n&&ei(t,n)){const i=t[n];(o(i)?i:[i]).forEach(t=>{const i=Mn(t);if(i.aggregate)return;const r=Fn(i)?$n(i,{}):void 0;(!r||r!==f&&r!==u)&&e.push({channel:n,fieldDef:i})})}return e},[]);if(0===d.length)return null;let p;if(!(p=void 0!==s.stack?b(s.stack)?s.stack?"zero":null:s.stack:R(Sr,r)?se(n,"zero"):n)||!Er[p])return null;if(s.scale&&s.scale.type&&s.scale.type!==Pi.LINEAR){if(i.disallowNonLinearStack)return null;Ht(Pt.cannotStackNonLinearScale(s.scale.type))}return ei(t,a===We?Ge:Ye)?(void 0!==s.stack&&Ht(Pt.cannotStackRangedMark(a)),null):(s.aggregate&&!R(Ue,s.aggregate)&&Ht(Pt.stackNonSummativeAggregate(s.aggregate)),{groupbyChannel:l?c:void 0,fieldChannel:a,impute:Ee(r),stackBy:d,offset:p})}function Or(e){const t=Ne(e,["point","line"]);return V(t).length>1?t:t.type}function $r(e){for(const t of["line","area","rule","trail"])e[t]&&(e=Object.assign({},e,{[t]:j(e[t],["point","line"])}));return e}function Br(e,t={},n){return"transparent"===e.point?{opacity:0}:e.point?a(e.point)?e.point:{}:void 0!==e.point?null:t.point||n.shape?a(t.point)?t.point:{}:void 0}function Nr(e,t={}){return e.line?!0===e.line?{}:e.line:void 0!==e.line?null:t.line?!0===t.line?{}:t.line:void 0}class jr{constructor(){this.name="path-overlay"}hasMatchingType(e,t){if($e(e)){const{mark:n,encoding:i}=e,r=Se(n)?n:{type:n};switch(r.type){case"line":case"rule":case"trail":return!!Br(r,t[r.type],i);case"area":return!!Br(r,t[r.type],i)||!!Nr(r,t[r.type])}}return!1}run(e,t,n){const{config:i}=t,{selection:r,projection:o,encoding:a,mark:s}=e,u=Ne(e,["selection","projection","encoding","mark"]),c=Se(s)?s:{type:s},l=Br(c,i[c.type],a),f="area"===c.type&&Nr(c,i[c.type]),d=[Object.assign({},r?{selection:r}:{},{mark:Or(Object.assign({},c,"area"===c.type?{opacity:.7}:{})),encoding:j(a,["shape"])})],p=kr(c,a,i?i.stack:void 0);let h=a;if(p){const{fieldChannel:e,offset:t}=p;h=Object.assign({},a,{[e]:Object.assign({},a[e],t?{stack:t}:{})})}return f&&d.push(Object.assign({},o?{projection:o}:{},{mark:Object.assign({type:"line"},N(c,["clip","interpolate","tension"]),f),encoding:h})),l&&d.push(Object.assign({},o?{projection:o}:{},{mark:Object.assign({type:"point",opacity:1,filled:!0},N(c,["clip"]),l),encoding:h})),n(Object.assign({},u,{layer:d}),Object.assign({},t,{config:$r(i)}))}}class _r{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if($e(e)){const{encoding:t,mark:n}=e;if("line"===n)for(const e of Ft){const n=t[Dt(e)];if(t[e]&&wn(n)&&"binned"!==n.bin)return!0}}return!1}run(e,t,n){const{encoding:i}=e;return Ht(Pt.lineWithRange(!!i.x2,!!i.y2)),n(Object.assign({},e,{mark:"rule"}),t)}}function Tr(e){const{parentEncoding:t,encoding:n}=e;if(t&&n){const e=V(t).reduce((e,t)=>(n[t]&&e.push(t),e),[]);e.length>0&&Ht(Pt.encodingOverridden(e))}const i=Object.assign({},t||{},n||{});return V(i).length>0?i:void 0}function zr(e){const{parentProjection:t,projection:n}=e;return t&&n&&Ht(Pt.projectionOverridden({parentProjection:t,projection:n})),n||t}function Rr(e,t){return void 0===t&&(t=yr(e.config)),function(e,t={}){return Pr.map(e,{config:t})}(e,t)}const Pr=new class extends Fr{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[mi,Ai,ki,new jr,new _r]}map(e,t){if($e(e)){const n=ei(e.encoding,Le),i=ei(e.encoding,Ie),r=ei(e.encoding,qe);if(n||i||r)return this.mapFacetedUnit(e,t)}return super.map(e,t)}mapUnit(e,t){const{parentEncoding:n,parentProjection:i}=t;if(n||i)return this.mapUnitWithParentEncodingOrProjection(e,t);const r=this.mapLayerOrUnit.bind(this);for(const n of this.nonFacetUnitNormalizers)if(n.hasMatchingType(e,t.config))return n.run(e,t,r);return e}mapRepeat(e,t){const{repeat:n}=e;return!o(n)&&e.columns&&(e=j(e,["columns"]),Ht(Pt.columnsNotSupportByRowCol("repeat"))),Object.assign({},e,{spec:this.map(e.spec,t)})}mapFacet(e,t){const{facet:n}=e;return en(n)&&e.columns&&(e=j(e,["columns"]),Ht(Pt.columnsNotSupportByRowCol("facet"))),super.mapFacet(e,t)}mapUnitWithParentEncodingOrProjection(e,t){const{encoding:n,projection:i}=e,{parentEncoding:r,parentProjection:o,config:a}=t,s=zr({parentProjection:o,projection:i}),u=Tr({parentEncoding:r,encoding:n});return this.mapUnit(Object.assign({},e,s?{projection:s}:{},u?{encoding:u}:{}),{config:a})}mapFacetedUnit(e,t){const n=e.encoding,{row:i,column:r,facet:o}=n,a=Ne(n,["row","column","facet"]),{mark:s,width:u,projection:c,height:l,selection:f,encoding:d}=e,p=Ne(e,["mark","width","projection","height","selection","encoding"]);return o&&(i||r)&&Ht(Pt.facetChannelDropped([...i?[Le]:[],...r?[Ie]:[]])),this.mapFacet(Object.assign({},p,{facet:i||r?Object.assign({},i?{row:i}:{},r?{column:r}:{}):o,spec:Object.assign({},c?{projection:c}:{},{mark:s},u?{width:u}:{},l?{height:l}:{},{encoding:a},f?{selection:f}:{})}),t)}mapLayer(e,t){var{parentEncoding:n,parentProjection:i}=t,r=Ne(t,["parentEncoding","parentProjection"]);const{encoding:o,projection:a}=e,s=Ne(e,["encoding","projection"]),u=Object.assign({},r,{parentEncoding:Tr({parentEncoding:n,encoding:o}),parentProjection:zr({parentProjection:i,projection:a})});return super.mapLayer(s,u)}};function Ur(e){return s(e)?{type:e}:e||{}}const Mr=["background","padding"];function Lr(e){return Mr.reduce((t,n)=>(e&&void 0!==e[n]&&(t[n]=e[n]),t),{})}function Ir(e){return!!e.url}function qr(e){return!!e.values}function Wr(e){return!(!e.name||Ir(e)||qr(e)||Hr(e))}function Hr(e){return e&&(Gr(e)||Yr(e)||Vr(e))}function Gr(e){return!!e.sequence}function Yr(e){return!!e.sphere}function Vr(e){return!!e.graticule}const Qr="main",Xr="raw";function Jr(e){return e&&!!e.field&&void 0!==e.equal}function Zr(e){return e&&!!e.field&&void 0!==e.lt}function Kr(e){return e&&!!e.field&&void 0!==e.lte}function eo(e){return e&&!!e.field&&void 0!==e.gt}function to(e){return e&&!!e.field&&void 0!==e.gte}function no(e){return!!(e&&e.field&&o(e.range)&&2===e.range.length)}function io(e){return e&&!!e.field&&(o(e.oneOf)||o(e.in))}function ro(e){return io(e)||Jr(e)||no(e)||Zr(e)||eo(e)||Kr(e)||to(e)}function oo(e,t){return Gn(e,{timeUnit:t,time:!0})}function ao(e,t=!0){const{field:n,timeUnit:i}=e,r=i?"time("+ln(i,n)+")":$n(e,{expr:"datum"});if(Jr(e))return r+"==="+oo(e.equal,i);if(Zr(e)){return`${r}<${oo(e.lt,i)}`}if(eo(e)){return`${r}>${oo(e.gt,i)}`}if(Kr(e)){return`${r}<=${oo(e.lte,i)}`}if(to(e)){return`${r}>=${oo(e.gte,i)}`}if(io(e))return`indexof([${function(e,t){return e.map(e=>oo(e,t))}(e.oneOf,i).join(",")}], ${r}) !== -1`;if(function(e){return e&&!!e.field&&void 0!==e.valid}(e))return e.valid?`${r}!==null&&!isNaN(${r})`:`${r}===null||isNaN(${r})`;if(no(e)){const n=e.range[0],o=e.range[1];if(null!==n&&null!==o&&t)return"inrange("+r+", ["+oo(n,i)+", "+oo(o,i)+"])";const a=[];return null!==n&&a.push(`${r} >= ${oo(n,i)}`),null!==o&&a.push(`${r} <= ${oo(o,i)}`),a.length>0?a.join(" && "):"true"}throw new Error(`Invalid field predicate: ${JSON.stringify(e)}`)}function so(e){return ro(e)&&e.timeUnit?Object.assign({},e,{timeUnit:dn(e.timeUnit)}):e}function uo(e){return void 0!==e.filter}function co(e){return void 0!==e.lookup}function lo(e){return void 0!==e.sample}function fo(e){return void 0!==e.window}function po(e){return void 0!==e.joinaggregate}function ho(e){return void 0!==e.flatten}function mo(e){return void 0!==e.calculate}function go(e){return!!e.bin}function yo(e){return void 0!==e.impute}function bo(e){return void 0!==e.timeUnit}function vo(e){return void 0!==e.aggregate}function xo(e){return void 0!==e.stack}function Ao(e){return void 0!==e.fold}function wo(e){return!!e.signal}function Co(e){return!!e.step}function Fo(e){return!o(e)&&("field"in e&&"data"in e)}const Eo=X({opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeMiterLimit:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,cursor:1,href:1,tooltip:1,cornerRadius:1,x:1,y:1,x2:1,y2:1}),Do=["domain","grid","labels","ticks","title"],So={grid:"grid",gridColor:"grid",gridDash:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",domain:"main",domainColor:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontWeight:"main",labelLimit:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",maxExtent:"main",minExtent:"main",offset:"main",position:"main",tickColor:"main",tickExtra:"main",tickOffset:"both",tickOpacity:"main",tickRound:"main",ticks:"main",tickSize:"main",title:"main",titleAlign:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontWeight:"main",titleLimit:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",tickWidth:"both",tickCount:"both",values:"both",scale:"both",zindex:"both"},ko={orient:1,bandPosition:1,domain:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,values:1,zindex:1},Oo=Object.assign({},ko,{encoding:1});const $o=X(Object.assign({gridScale:1,scale:1},ko,{encode:1}));function Bo(e,t,n,i={header:!1}){const r=e.combine(),{orient:a,scale:s,title:u,zindex:c}=r,l=Ne(r,["orient","scale","title","zindex"]);if(V(l).forEach(e=>{const n=So[e];n&&n!==t&&"both"!==n&&delete l[e]}),"grid"===t){if(!l.grid)return;if(l.encode){const{grid:e}=l.encode;l.encode=Object.assign({},e?{grid:e}:{}),0===V(l.encode).length&&delete l.encode}return Object.assign({scale:s,orient:a},l,{domain:!1,labels:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:se(c,0)})}{if(!i.header&&e.mainExtracted)return;if(l.encode){for(const t of Do)e.hasAxisPart(t)||delete l.encode[t];0===V(l.encode).length&&delete l.encode}const t=function(e,t){return o(e)?e.map(e=>Pn(e,t)).join(", "):e}(u,n);return Object.assign({scale:s,orient:a,grid:!1},t?{title:t}:{},l,{zindex:se(c,1)})}}function No(e){const{axes:t}=e.component;for(const n of $t)if(t[n])for(const i of t[n])if(!i.get("gridScale")){const t="x"===n?"height":"width";return[{name:t,update:e.getSizeSignalRef(t).signal}]}return[]}const jo={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontWeight:"fontWeight",titleLimit:"limit",titleOrient:"orient",titlePadding:"offset"},_o={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelLimit:"limit",labelOrient:"orient",labelPadding:"offset"},To=V(jo),zo=V(_o),Ro="mean";function Po(e){return!(!e||"count"!==e.op&&!e.field)}function Uo(e){return!!e&&o(e)}function Mo(e,t,n,i,r){const o=[..."band"===r?["axisBand"]:[],"x"===n?"axisX":"axisY",...i?["axis"+i.substr(0,1).toUpperCase()+i.substr(1)]:[],"axis"];for(const n of o)if(t[n]&&void 0!==t[n][e])return t[n][e]}function Lo(e,t){return!Qi(e)&&!Xn(t.bin)}function Io(e,t){const n="x"===t?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n)}function qo(e,t,n,i){if(void 0!==t.labelAngle)return de(t.labelAngle);{const t=Mo("labelAngle",e.config,n,Vo(n),e.getScaleComponent(n).get("type"));return void 0!==t?de(t):n===We&&R([yn,mn],i.type)?270:void 0}}function Wo(e,t){if(void 0!==e)return e=de(e),"top"===t||"bottom"===t?e<=45||315<=e?"top"===t?"bottom":"top":135<=e&&e<=225?"top"===t?"top":"bottom":"middle":e<=45||315<=e||135<=e&&e<=225?"middle":45<=e&&e<=135?"left"===t?"top":"bottom":"left"===t?"bottom":"top"}function Ho(e,t){if(void 0!==e)return e=de(e),"top"===t||"bottom"===t?e%180==0?"center":0<e&&e<180?"top"===t?"right":"left":"top"===t?"left":"right":(e+90)%180==0?"center":90<=e&&e<270?"left"===t?"left":"right":"left"===t?"right":"left"}function Go(e,t){if("x"===t&&R(["quantitative","temporal"],e.type))return!0}function Yo(e,t){if("nominal"!==e.type)return"log"!==t||"greedy"}function Vo(e){switch(e){case We:return"bottom";case He:return"left"}throw new Error(Pt.INVALID_CHANNEL_FOR_AXIS)}function Qo({fieldDef:e,scaleType:t,size:n}){if(!Qi(t)&&"log"!==t&&!R(["month","hours","day","quarter"],e.timeUnit))return Xn(e.bin)?{signal:`ceil(${n.signal}/10)`}:{signal:`ceil(${n.signal}/40)`}}function Xo(e,t,n){const i=e.values;if(i)return Yn(n,i)}function Jo(e){return[].concat(e.type,e.style||[])}function Zo(e,t,n,{vgChannel:i}={}){return se(i?Ko(e,t,n.style):void 0,Ko(e,t,n.style),i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function Ko(e,t,n){const i=Jo(t);let r;for(const t of i){const i=n[t],o=e;i&&void 0!==i[o]&&(r=i[o])}return r}function ea(e,t,n,i){if(Hn(e)){const r=Dn(e)&&e.scale&&e.scale.type===Pi.UTC;return{signal:oa($n(e,{expr:n}),e.timeUnit,t,i.text.shortTimeLabels,i.timeFormat,r,!0)}}{const r=ta(e,t,i);if(Xn(e.bin)){return{signal:ra($n(e,{expr:n}),$n(e,{expr:n,binSuffix:"end"}),r,i)}}return"quantitative"===e.type?{signal:`${na($n(e,{expr:n,binSuffix:"range"}),r)}`}:{signal:`''+${$n(e,{expr:n})}`}}}function ta(e,t,n){return t||(e.type===hn?n.numberFormat:void 0)}function na(e,t){return`format(${e}, "${t||""}")`}function ia(e,t,n){return na(e,t||n.numberFormat)}function ra(e,t,n,i){return`${e} === null || isNaN(${e}) ? "null" : ${ia(e,n,i)} + " - " + ${ia(t,n,i)}`}function oa(e,t,n,i,r,o,a=!1){return!t||n?(n=n||r)||a?`${o?"utc":"time"}Format(${e}, '${n}')`:void 0:function(e,t,n,i){if(!e)return;const r=fn(e,n);let o="";return cn(e,nn.QUARTER)&&(o=`'Q' + quarter(${t})`),r.length>0&&(o&&(o+=" + ' ' + "),o+=i?`utcFormat(${t}, '${r.join(" ")}')`:`timeFormat(${t}, '${r.join(" ")}')`),o||void 0}(t,e,i,o)}function aa(e,t){return(o(e)?e:[e]).reduce((e,n)=>(e.field.push($n(n,t)),e.order.push(n.sort||"ascending"),e),{field:[],order:[]})}function sa(e,t){const n=[...e];return t.forEach(e=>{for(const t of n)if(_(t)===_(e))return;n.push(e)}),n}function ua(e,t){return e!==t&&t?e?e+", "+t:t:e}function ca(e,t){if(o(e.value)&&o(t.value))return{explicit:e.explicit,value:sa(e.value,t.value)};if(!o(e.value)&&!o(t.value))return{explicit:e.explicit,value:ua(e.value,t.value)};throw new Error("It should never reach here")}class la{constructor(e,t){this.debugName=t,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}hash(){return void 0===this._hash&&(this._hash=ce()),this._hash}producedFields(){return new Set}dependentFields(){return new Set}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,t){this._children.indexOf(e)>-1?console.warn("Attempt to add the same child twice."):void 0!==t?this._children.splice(t,0,e):this._children.push(e)}removeChild(e){const t=this._children.indexOf(e);return this._children.splice(t,1),t}remove(){let e=this._parent.removeChild(this);for(const t of this._children)t._parent=this._parent,this._parent.addChild(t,e++)}insertAsParentOf(e){const t=e.parent;t.removeChild(this),this.parent=t,e.parent=this}swapWithParent(){const e=this._parent,t=e.parent;for(const t of this._children)t.parent=e;this._children=[],e.removeChild(this),e.parent.removeChild(e),this.parent=t,e.parent=this}}class fa extends la{constructor(e,t,n,i){super(e,t),this.type=n,this.refCounts=i,this._source=this._name=t,!this.refCounts||this._name in this.refCounts||(this.refCounts[this._name]=0)}clone(){const e=new this.constructor;return e.debugName="clone_"+this.debugName,e._source=this._source,e._name="clone_"+this._name,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}var da,pa,ha,ma,ga,ya="RawCode",ba="Literal",va="Property",xa="Identifier",Aa="ArrayExpression",wa="BinaryExpression",Ca="CallExpression",Fa="ConditionalExpression",Ea="LogicalExpression",Da="MemberExpression",Sa="ObjectExpression",ka="UnaryExpression";function Oa(e){this.type=e}Oa.prototype.visit=function(e){var t,n,i;if(e(this))return 1;for(n=0,i=(t=function(e){switch(e.type){case Aa:return e.elements;case wa:case Ea:return[e.left,e.right];case Ca:var t=e.arguments.slice();return t.unshift(e.callee),t;case Fa:return[e.test,e.consequent,e.alternate];case Da:return[e.object,e.property];case Sa:return e.properties;case va:return[e.key,e.value];case ka:return[e.argument];case xa:case ba:case ya:default:return[]}}(this)).length;n<i;++n)if(t[n].visit(e))return 1};var $a=1,Ba=2,Na=3,ja=4,_a=5,Ta=6,za=7,Ra=8;(da={})[$a]="Boolean",da[Ba]="<end>",da[Na]="Identifier",da[ja]="Keyword",da[_a]="Null",da[Ta]="Numeric",da[za]="Punctuator",da[Ra]="String",da[9]="RegularExpression";var Pa="ArrayExpression",Ua="BinaryExpression",Ma="CallExpression",La="ConditionalExpression",Ia="Identifier",qa="Literal",Wa="LogicalExpression",Ha="MemberExpression",Ga="ObjectExpression",Ya="Property",Va="UnaryExpression",Qa="Unexpected token %0",Xa="Unexpected number",Ja="Unexpected string",Za="Unexpected identifier",Ka="Unexpected reserved word",es="Unexpected end of input",ts="Invalid regular expression",ns="Invalid regular expression: missing /",is="Octal literals are not allowed in strict mode.",rs="Duplicate data property in object literal not allowed in strict mode",os="ILLEGAL",as="Disabled.",ss=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]"),us=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 cs(e,t){if(!e)throw new Error("ASSERT: "+t)}function ls(e){return e>=48&&e<=57}function fs(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function ds(e){return"01234567".indexOf(e)>=0}function ps(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].indexOf(e)>=0}function hs(e){return 10===e||13===e||8232===e||8233===e}function ms(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&ss.test(String.fromCharCode(e))}function gs(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&us.test(String.fromCharCode(e))}var ys={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 bs(){for(var e;ha<ma&&(ps(e=pa.charCodeAt(ha))||hs(e));)++ha}function vs(e){var t,n,i,r=0;for(n="u"===e?4:2,t=0;t<n;++t)ha<ma&&fs(pa[ha])?(i=pa[ha++],r=16*r+"0123456789abcdef".indexOf(i.toLowerCase())):Ts({},Qa,os);return String.fromCharCode(r)}function xs(){var e,t,n,i;for(t=0,"}"===(e=pa[ha])&&Ts({},Qa,os);ha<ma&&fs(e=pa[ha++]);)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&Ts({},Qa,os),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),i=56320+(t-65536&1023),String.fromCharCode(n,i))}function As(){var e,t;for(e=pa.charCodeAt(ha++),t=String.fromCharCode(e),92===e&&(117!==pa.charCodeAt(ha)&&Ts({},Qa,os),++ha,(e=vs("u"))&&"\\"!==e&&ms(e.charCodeAt(0))||Ts({},Qa,os),t=e);ha<ma&&gs(e=pa.charCodeAt(ha));)++ha,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==pa.charCodeAt(ha)&&Ts({},Qa,os),++ha,(e=vs("u"))&&"\\"!==e&&gs(e.charCodeAt(0))||Ts({},Qa,os),t+=e);return t}function ws(){var e,t;return e=ha,{type:1===(t=92===pa.charCodeAt(ha)?As():function(){var e,t;for(e=ha++;ha<ma;){if(92===(t=pa.charCodeAt(ha)))return ha=e,As();if(!gs(t))break;++ha}return pa.slice(e,ha)}()).length?Na:ys.hasOwnProperty(t)?ja:"null"===t?_a:"true"===t||"false"===t?$a:Na,value:t,start:e,end:ha}}function Cs(){var e,t,n,i,r=ha,o=pa.charCodeAt(ha),a=pa[ha];switch(o){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++ha,{type:za,value:String.fromCharCode(o),start:r,end:ha};default:if(61===(e=pa.charCodeAt(ha+1)))switch(o){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return ha+=2,{type:za,value:String.fromCharCode(o)+String.fromCharCode(e),start:r,end:ha};case 33:case 61:return ha+=2,61===pa.charCodeAt(ha)&&++ha,{type:za,value:pa.slice(r,ha),start:r,end:ha}}}return">>>="===(i=pa.substr(ha,4))?{type:za,value:i,start:r,end:ha+=4}:">>>"===(n=i.substr(0,3))||"<<="===n||">>="===n?{type:za,value:n,start:r,end:ha+=3}:a===(t=n.substr(0,2))[1]&&"+-<>&|".indexOf(a)>=0||"=>"===t?{type:za,value:t,start:r,end:ha+=2}:"<>=!+-*%&|^/".indexOf(a)>=0?{type:za,value:a,start:r,end:++ha}:void Ts({},Qa,os)}function Fs(){var e,t,n;if(cs(ls((n=pa[ha]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),t=ha,e="","."!==n){if(e=pa[ha++],n=pa[ha],"0"===e){if("x"===n||"X"===n)return++ha,function(e){for(var t="";ha<ma&&fs(pa[ha]);)t+=pa[ha++];return 0===t.length&&Ts({},Qa,os),ms(pa.charCodeAt(ha))&&Ts({},Qa,os),{type:Ta,value:parseInt("0x"+t,16),start:e,end:ha}}(t);if(ds(n))return function(e){for(var t="0"+pa[ha++];ha<ma&&ds(pa[ha]);)t+=pa[ha++];return(ms(pa.charCodeAt(ha))||ls(pa.charCodeAt(ha)))&&Ts({},Qa,os),{type:Ta,value:parseInt(t,8),octal:!0,start:e,end:ha}}(t);n&&ls(n.charCodeAt(0))&&Ts({},Qa,os)}for(;ls(pa.charCodeAt(ha));)e+=pa[ha++];n=pa[ha]}if("."===n){for(e+=pa[ha++];ls(pa.charCodeAt(ha));)e+=pa[ha++];n=pa[ha]}if("e"===n||"E"===n)if(e+=pa[ha++],"+"!==(n=pa[ha])&&"-"!==n||(e+=pa[ha++]),ls(pa.charCodeAt(ha)))for(;ls(pa.charCodeAt(ha));)e+=pa[ha++];else Ts({},Qa,os);return ms(pa.charCodeAt(ha))&&Ts({},Qa,os),{type:Ta,value:parseFloat(e),start:t,end:ha}}function Es(){var e,t,n,i;return ga=null,bs(),e=ha,t=function(){var e,t,n,i;for(cs("/"===(e=pa[ha]),"Regular expression literal must start with a slash"),t=pa[ha++],n=!1,i=!1;ha<ma;)if(t+=e=pa[ha++],"\\"===e)hs((e=pa[ha++]).charCodeAt(0))&&Ts({},ns),t+=e;else if(hs(e.charCodeAt(0)))Ts({},ns);else if(n)"]"===e&&(n=!1);else{if("/"===e){i=!0;break}"["===e&&(n=!0)}return i||Ts({},ns),{value:t.substr(1,t.length-2),literal:t}}(),n=function(){var e,t,n;for(t="",n="";ha<ma&&gs((e=pa[ha]).charCodeAt(0));)++ha,"\\"===e&&ha<ma?Ts({},Qa,os):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&Ts({},ts,n),{value:n,literal:t}}(),i=function(e,t){var n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(e,t){if(parseInt(t,16)<=1114111)return"x";Ts({},ts)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{return new RegExp(e,t)}catch(e){return null}}(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:ha}}function Ds(){var e;return bs(),ha>=ma?{type:Ba,start:ha,end:ha}:ms(e=pa.charCodeAt(ha))?ws():40===e||41===e||59===e?Cs():39===e||34===e?function(){var e,t,n,i,r="",o=!1;for(cs("'"===(e=pa[ha])||'"'===e,"String literal must starts with a quote"),t=ha,++ha;ha<ma;){if((n=pa[ha++])===e){e="";break}if("\\"===n)if((n=pa[ha++])&&hs(n.charCodeAt(0)))"\r"===n&&"\n"===pa[ha]&&++ha;else switch(n){case"u":case"x":"{"===pa[ha]?(++ha,r+=xs()):r+=vs(n);break;case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+="\t";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;default:ds(n)?(0!==(i="01234567".indexOf(n))&&(o=!0),ha<ma&&ds(pa[ha])&&(o=!0,i=8*i+"01234567".indexOf(pa[ha++]),"0123".indexOf(n)>=0&&ha<ma&&ds(pa[ha])&&(i=8*i+"01234567".indexOf(pa[ha++]))),r+=String.fromCharCode(i)):r+=n}else{if(hs(n.charCodeAt(0)))break;r+=n}}return""!==e&&Ts({},Qa,os),{type:Ra,value:r,octal:o,start:t,end:ha}}():46===e?ls(pa.charCodeAt(ha+1))?Fs():Cs():ls(e)?Fs():Cs()}function Ss(){var e;return ha=(e=ga).end,ga=Ds(),ha=e.end,e}function ks(){var e;e=ha,ga=Ds(),ha=e}function Os(e,t,n){var i=new Oa("||"===e||"&&"===e?Wa:Ua);return i.operator=e,i.left=t,i.right=n,i}function $s(e,t){var n=new Oa(Ma);return n.callee=e,n.arguments=t,n}function Bs(e){var t=new Oa(Ia);return t.name=e,t}function Ns(e){var t=new Oa(qa);return t.value=e.value,t.raw=pa.slice(e.start,e.end),e.regex&&("//"===t.raw&&(t.raw="/(?:)/"),t.regex=e.regex),t}function js(e,t,n){var i=new Oa(Ha);return i.computed="["===e,i.object=t,i.property=n,i.computed||(n.member=!0),i}function _s(e,t,n){var i=new Oa(Ya);return i.key=t,i.value=n,i.kind=e,i}function Ts(e,t){var n,i=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,function(e,t){return cs(t<i.length,"Message reference must be in range"),i[t]});throw(n=new Error(r)).index=ha,n.description=r,n}function zs(e){e.type===Ba&&Ts(e,es),e.type===Ta&&Ts(e,Xa),e.type===Ra&&Ts(e,Ja),e.type===Na&&Ts(e,Za),e.type===ja&&Ts(e,Ka),Ts(e,Qa,e.value)}function Rs(e){var t=Ss();t.type===za&&t.value===e||zs(t)}function Ps(e){return ga.type===za&&ga.value===e}function Us(e){return ga.type===ja&&ga.value===e}function Ms(){var e=[];for(ha=ga.start,Rs("[");!Ps("]");)Ps(",")?(Ss(),e.push(null)):(e.push(Zs()),Ps("]")||Rs(","));return Ss(),function(e){var t=new Oa(Pa);return t.elements=e,t}(e)}function Ls(){var e;return ha=ga.start,(e=Ss()).type===Ra||e.type===Ta?(e.octal&&Ts(e,is),Ns(e)):Bs(e.value)}function Is(){var e,t,n;return ha=ga.start,(e=ga).type===Na?(n=Ls(),Rs(":"),_s("init",n,Zs())):e.type!==Ba&&e.type!==za?(t=Ls(),Rs(":"),_s("init",t,Zs())):void zs(e)}function qs(){var e,t,n=[],i={},r=String;for(ha=ga.start,Rs("{");!Ps("}");)t="$"+((e=Is()).key.type===Ia?e.key.name:r(e.key.value)),Object.prototype.hasOwnProperty.call(i,t)?Ts({},rs):i[t]=!0,n.push(e),Ps("}")||Rs(",");return Rs("}"),function(e){var t=new Oa(Ga);return t.properties=e,t}(n)}var Ws={if:1,this:1};function Hs(){var e,t,n;if(Ps("("))return function(){var e;return Rs("("),e=Ks(),Rs(")"),e}();if(Ps("["))return Ms();if(Ps("{"))return qs();if(e=ga.type,ha=ga.start,e===Na||Ws[ga.value])n=Bs(Ss().value);else if(e===Ra||e===Ta)ga.octal&&Ts(ga,is),n=Ns(Ss());else{if(e===ja)throw new Error(as);e===$a?((t=Ss()).value="true"===t.value,n=Ns(t)):e===_a?((t=Ss()).value=null,n=Ns(t)):Ps("/")||Ps("/=")?(n=Ns(Es()),ks()):zs(Ss())}return n}function Gs(){var e=[];if(Rs("("),!Ps(")"))for(;ha<ma&&(e.push(Zs()),!Ps(")"));)Rs(",");return Rs(")"),e}function Ys(){var e;return ha=ga.start,function(e){return e.type===Na||e.type===ja||e.type===$a||e.type===_a}(e=Ss())||zs(e),Bs(e.value)}function Vs(){var e;return Rs("["),e=Ks(),Rs("]"),e}function Qs(){var e=function(){var e;for(e=Hs();;)if(Ps("."))Rs("."),e=js(".",e,Ys());else if(Ps("("))e=$s(e,Gs());else{if(!Ps("["))break;e=js("[",e,Vs())}return e}();if(ga.type===za&&(Ps("++")||Ps("--")))throw new Error(as);return e}function Xs(){var e,t,n,i,r;if(ga.type!==za&&ga.type!==ja)t=Qs();else{if(Ps("++")||Ps("--"))throw new Error(as);if(Ps("+")||Ps("-")||Ps("~")||Ps("!"))e=Ss(),t=Xs(),n=e.value,i=t,(r=new Oa(Va)).operator=n,r.argument=i,r.prefix=!0,t=r;else{if(Us("delete")||Us("void")||Us("typeof"))throw new Error(as);t=Qs()}}return t}function Js(e){var t=0;if(e.type!==za&&e.type!==ja)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 Zs(){var e,t;return e=function(){var e,t,n,i,r,o,a,s,u,c;if(e=ga,u=Xs(),0===(r=Js(i=ga)))return u;for(i.prec=r,Ss(),t=[e,ga],o=[u,i,a=Xs()];(r=Js(ga))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,u=o.pop(),t.pop(),n=Os(s,u,a),o.push(n);(i=Ss()).prec=r,o.push(i),t.push(ga),n=Xs(),o.push(n)}for(n=o[c=o.length-1],t.pop();c>1;)t.pop(),n=Os(o[c-1].value,o[c-2],n),c-=2;return n}(),Ps("?")&&(Ss(),t=Zs(),Rs(":"),e=function(e,t,n){var i=new Oa(La);return i.test=e,i.consequent=t,i.alternate=n,i}(e,t,Zs())),e}function Ks(){var e=Zs();if(Ps(","))throw new Error(as);return e}function eu(e){const t=function(e){ha=0,ma=(pa=e).length,ga=null,ks();var t=Ks();if(ga.type!==Ba)throw new Error("Unexpect token after expression.");return t}(e),n=new Set;return t.visit(e=>{"MemberExpression"===e.type&&function e(t){return"MemberExpression"===t.object.type?e(t.object):"datum"===t.object.name}(e)&&n.add(function e(t){const n=[];return"Identifier"===t.type?[t.name]:"Literal"===t.type?[t.value]:("MemberExpression"===t.type&&(n.push(...e(t.object)),n.push(...e(t.property))),n)}(e).slice(1).join("."))}),n}class tu extends la{constructor(e,t){super(e),this.transform=t,this._dependentFields=eu(this.transform.calculate)}clone(){return new tu(null,B(this.transform))}static parseAllForSortIndex(e,t){return t.forEachFieldDef((t,n)=>{if(Dn(t)&&Uo(t.sort)){const{field:i,timeUnit:r}=t,o=t.sort,a=o.map((e,t)=>`${ao({field:i,timeUnit:r,equal:e})} ? ${t} : `).join("")+o.length;e=new tu(e,{calculate:a,as:nu(t,n,{forAs:!0})})}}),e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${T(this.transform)}`}}function nu(e,t,n){return $n(e,Object.assign({prefix:t,suffix:"sort_index"},n||{}))}function iu(e,t){return R(["top","bottom"],t)?"column":R(["left","right"],t)?"row":"row"===e?"row":"column"}function ru(e,t,n,i){const r="row"===i?n.headerRow:"column"===i?n.headerColumn:n.headerFacet;return se(t&&t.header?t.header[e]:void 0,r[e],n.header[e])}function ou(e,t,n,i){const r={};for(const o of e){const e=ru(o,t,n,i);void 0!==e&&(r[o]=e)}return r}const au=["row","column"],su=["header","footer"];function uu(e,t){const n=e.component.layoutHeaders[t].title,i=e.config?e.config:void 0,r=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,{titleAnchor:o,titleAngle:a,titleOrient:s}=ou(["titleAnchor","titleAngle","titleOrient"],r,i,t),u=iu(t,s);return{name:`${t}-title`,type:"group",role:`${u}-title`,title:Object.assign({text:n},"row"===t?{orient:"left"}:{},{style:"guide-title"},lu(a,u),cu(u,a,o),yu(i,r,t,To,jo))}}function cu(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=Ho(t,"row"===e?"left":"top");return i?{align:i}:{}}function lu(e,t){const n=Wo(e,"row"===t?"left":"top");return n?{baseline:n}:{}}function fu(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of su)if(n[r])for(const o of n[r])i.push(hu(e,t,r,n,o));return i}function du(e,t){const{sort:n}=e;return Po(n)?{field:$n(n,{expr:"datum"}),order:n.order||"ascending"}:o(n)?{field:nu(e,t,{expr:"datum"}),order:"ascending"}:{field:$n(e,{expr:"datum"}),order:n||"ascending"}}function pu(e,t,n){const{format:i,labelAngle:r,labelAnchor:o,labelOrient:a}=ou(["format","labelAngle","labelAnchor","labelOrient"],e,n,t),s=iu(t,a);return Object.assign({text:ea(e,i,"parent",n)},"row"===t?{orient:"left"}:{},{style:"guide-label",frame:"group"},lu(r,s),cu(s,r,o),yu(n,e,t,zo,_o))}function hu(e,t,n,i,r){if(r){let o=null;const{facetFieldDef:a}=i,s=e.config?e.config:void 0;if(a&&r.labels){const{labelOrient:e}=ou(["labelOrient"],a,s,t);("row"===t&&!R(["top","bottom"],e)||"column"===t&&!R(["left","right"],e))&&(o=pu(a,t,s))}const u=Rf(e)&&!en(e.facet),c=r.axes,l=c&&c.length>0;if(o||l){const s="row"===t?"height":"width";return Object.assign({name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`},i.facetFieldDef?{from:{data:e.getName(t+"_domain")},sort:du(a,t)}:{},l&&u?{from:{data:e.getName(`facet_domain_${t}`)}}:{},o?{title:o}:{},r.sizeSignal?{encode:{update:{[s]:r.sizeSignal}}}:{},l?{axes:c}:{})}}return null}const mu={column:{start:0,end:1},row:{start:1,end:0}};function gu(e,t){return mu[t][e]}function yu(e,t,n,i,r){const o={};for(const a of i){if(!r[a])continue;const i=ru(a,t,e,n);void 0!==i&&(o[r[a]]=i)}return o}function bu(e){return[...vu(e,"width"),...vu(e,"height")]}function vu(e,t){const n="width"===t?"x":"y",i=e.component.layoutSize.get(t);if(!i||"merged"===i)return[];const r=e.getSizeSignalRef(t).signal;if("range-step"===i){const t=e.getScaleComponent(n);if(t){const i=t.get("type"),o=t.get("range");if(Qi(i)&&Co(o)){const i=e.scaleName(n);if(Rf(e.parent)){if("independent"===e.parent.component.resolve.scale[n])return[xu(i,o)]}return[xu(i,o),{name:r,update:Au(i,t,`domain('${i}').length`)}]}}throw new Error("layout size is range step although there is no rangeStep.")}return[{name:r,value:i}]}function xu(e,t){return{name:e+"_step",value:t.step}}function Au(e,t,n){const i=t.get("type"),r=t.get("padding"),o=se(t.get("paddingOuter"),r);let a=t.get("paddingInner");return`bandspace(${n}, ${a="band"===i?void 0!==a?a:r:1}, ${o}) * ${e}_step`}function wu(e,t,n){return Cu=t||Eu,Fu=n||Tu,Ru(e.trim()).map(Pu)}var Cu,Fu,Eu="view",Du="[",Su="]",ku="{",Ou="}",$u=":",Bu=",",Nu="@",ju=">",_u=/[[\]{}]/,Tu={"*":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};function zu(e,t,n,i,r){for(var o,a=0,s=e.length;t<s;++t){if(o=e[t],!a&&o===n)return t;r&&r.indexOf(o)>=0?--a:i&&i.indexOf(o)>=0&&++a}return t}function Ru(e){for(var t=[],n=0,i=e.length,r=0;r<i;)r=zu(e,r,Bu,Du+ku,Su+Ou),t.push(e.substring(n,r).trim()),n=++r;if(0===t.length)throw"Empty event selector: "+e;return t}function Pu(e){return"["===e[0]?function(e){var t,n,i=e.length,r=1;if((r=zu(e,r,Su,Du,Su))===i)throw"Empty between selector: "+e;if(2!==(t=Ru(e.substring(1,r))).length)throw"Between selector must have two elements: "+e;if((e=e.slice(r+1).trim())[0]!==ju)throw"Expected '>' after between selector: "+e;if(t=t.map(Pu),(n=Pu(e.slice(1).trim())).between)return{between:t,stream:n};n.between=t;return n}(e):function(e){var t,n,i={source:Cu},r=[],o=[0,0],a=0,s=0,u=e.length,c=0;if(e[u-1]===Ou){if(!((c=e.lastIndexOf(ku))>=0))throw"Unmatched right brace: "+e;try{o=function(e){var t=e.split(Bu);if(!e.length||t.length>2)throw e;return t.map(function(t){var n=+t;if(n!=n)throw e;return n})}(e.substring(c+1,u-1))}catch(t){throw"Invalid throttle specification: "+e}e=e.slice(0,c).trim(),u=e.length,c=0}if(!u)throw e;e[0]===Nu&&(a=++c);(t=zu(e,c,$u))<u&&(r.push(e.substring(s,t).trim()),s=c=++t);if((c=zu(e,c,Du))===u)r.push(e.substring(s,u).trim());else if(r.push(e.substring(s,c).trim()),n=[],(s=++c)===u)throw"Unmatched left bracket: "+e;for(;c<u;){if((c=zu(e,c,Su))===u)throw"Unmatched left bracket: "+e;if(n.push(e.substring(s,c).trim()),c<u-1&&e[++c]!==Du)throw"Expected left bracket: "+e;s=++c}if(!(u=r.length)||_u.test(r[u-1]))throw"Invalid event selector: "+e;u>1?(i.type=r[1],a?i.markname=r[0].slice(1):!function(e){return Fu.hasOwnProperty(e)}(r[0])?i.source=r[0]:i.marktype=r[0]):i.type=r[0];"!"===i.type.slice(-1)&&(i.consume=!0,i.type=i.type.slice(0,-1));null!=n&&(i.filter=n);o[0]&&(i.throttle=o[0]);o[1]&&(i.debounce=o[1]);return i}(e)}class Uu extends la{constructor(e,t){super(e),this.formula=t}clone(){return new Uu(null,B(this.formula))}static makeFromEncoding(e,t){const n=t.reduceFieldDef((e,t)=>{if(t.timeUnit){const n=$n(t,{forAs:!0});e[n]={as:n,timeUnit:t.timeUnit,field:t.field}}return e},{});return 0===V(n).length?null:new Uu(e,n)}static makeFromTransform(e,t){return new Uu(e,{[t.field]:{as:t.as,timeUnit:t.timeUnit,field:t.field}})}merge(e){this.formula=Object.assign({},this.formula,e.formula),e.remove()}producedFields(){return new Set(Q(this.formula).map(e=>e.as))}dependentFields(){return new Set(Q(this.formula).map(e=>e.field))}hash(){return`TimeUnit ${T(this.formula)}`}assemble(){return Q(this.formula).map(e=>({type:"formula",as:e.as,expr:ln(e.timeUnit,e.field)}))}}const Mu={has:e=>"interval"===e.type&&"global"===e.resolve&&e.bind&&"scales"===e.bind,parse:(e,t,n)=>{const i=Z(n.name),r=n.scales=[];for(const t of n.project.items){const n=t.channel;if(!Tt(n))continue;const o=e.getScaleComponent(n),a=o?o.get("type"):void 0;if(o&&Xi(a)){if(o.set("domainRaw",{signal:ne(t.field,i)},!0),r.push(t),e.repeater&&e.repeater.row===e.repeater.column){e.getScaleComponent(n===We?He:We).set("domainRaw",{signal:ne(t.field,i)},!0)}}else Ht(Pt.SCALE_BINDINGS_CONTINUOUS)}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter(e=>!n.filter(t=>t.name===e.signals.data).length);if(!e.parent||!i.length)return n;const r=n.filter(e=>e.name===t.name)[0],o=r.update;if(o.indexOf(ec)>=0)r.update=`{${i.map(e=>`${u(e.field)}: ${e.signals.data}`).join(", ")}}`;else for(const e of i){const t=`, ${u(e.field)}: ${e.signals.data}`;o.indexOf(t)<0&&(r.update=o.substring(0,o.length-1)+t+"}")}return n.concat(i.map(e=>({name:e.signals.data})))},signals:(e,t,n)=>{if(e.parent)for(const e of t.scales){const t=n.filter(t=>t.name===e.signals.data)[0];t.push="outer",delete t.value,delete t.update}return n}};function Lu(e,t){return`domain(${u(e.scaleName(t))})`}const Iu="_tuple_fields";class qu{constructor(...e){this.items=e,this.has={}}}const Wu="_scale_trigger",Hu={signals:(e,t)=>{const n=t.name,i=n+Iu,r=Mu.has(t),o=[],a=[],s=[];if(t.translate&&!r){const e=`!event.item || event.item.mark.name !== ${u(n+"_brush")}`;Gu(t,(t,n)=>{const i=n.between[0].filter||(n.between[0].filter=[]);i.indexOf(e)<0&&i.push(e)})}t.project.items.forEach((n,i)=>{const r=n.channel;if(r!==We&&r!==He)return void Ht("Interval selections only support x and y encoding channels.");const c=t.init?t.init[i]:null,l=function(e,t,n,i){const r=n.channel,o=n.signals.visual,a=n.signals.data,s=Mu.has(t),c=u(e.scaleName(r)),l=e.getScaleComponent(r),f=l?l.get("type"):void 0,d=e=>`scale(${c}, ${e})`,p=e.getSizeSignalRef(r===We?"width":"height").signal,h=`${r}(unit)`,m=Gu(t,(e,t)=>[...e,{events:t.between[0],update:`[${h}, ${h}]`},{events:t,update:`[${o}[0], clamp(${h}, 0, ${p})]`}]);return m.push({events:{signal:t.name+Wu},update:Xi(f)?`[${d(`${a}[0]`)}, ${d(`${a}[1]`)}]`:"[0, 0]"}),s?[{name:a,on:[]}]:[Object.assign({name:o},i?{init:vc(i,d)}:{value:[]},{on:m}),Object.assign({name:a},i?{init:vc(i)}:{},{on:[{events:{signal:o},update:`${o}[0] === ${o}[1] ? null : invert(${c}, ${o})`}]})]}(e,t,n,c),f=n.signals.data,d=n.signals.visual,p=u(e.scaleName(r)),h=Xi(e.getScaleComponent(r).get("type"))?"+":"";o.push(...l),a.push(f),s.push({scaleName:e.scaleName(r),expr:`(!isArray(${f}) || `+`(${h}invert(${p}, ${d})[0] === ${h}${f}[0] && `+`${h}invert(${p}, ${d})[1] === ${h}${f}[1]))`})}),r||o.push({name:n+Wu,value:{},on:[{events:s.map(e=>({scale:e.scaleName})),update:s.map(e=>e.expr).join(" && ")+` ? ${n+Wu} : {}`}]});const c=t.init,l=`unit: ${ic(e)}, fields: ${i}, values`;return o.concat(Object.assign({name:n+Ju},c?{init:`{${l}: ${vc(c)}}`}:{},{on:[{events:[{signal:a.join(" || ")}],update:a.join(" && ")+` ? {${l}: [${a}]} : null`}]}))},modifyExpr:(e,t)=>{return t.name+Ju+", "+("global"===t.resolve?"true":`{unit: ${ic(e)}}`)},marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.has,a=r&&r.signals.visual,s=o&&o.signals.visual,c=`data(${u(t.name+Xu)})`;if(Mu.has(t))return n;const l={x:void 0!==r?{signal:`${a}[0]`}:{value:0},y:void 0!==o?{signal:`${s}[0]`}:{value:0},x2:void 0!==r?{signal:`${a}[1]`}:{field:{group:"width"}},y2:void 0!==o?{signal:`${s}[1]`}:{field:{group:"height"}}};if("global"===t.resolve)for(const t of V(l))l[t]=[Object.assign({test:`${c}.length && ${c}[0].unit === ${ic(e)}`},l[t]),{value:0}];const f=t.mark,{fill:d,fillOpacity:p}=f,h=Ne(f,["fill","fillOpacity"]),m=V(h).reduce((e,t)=>(e[t]=[{test:[void 0!==r&&`${a}[0] !== ${a}[1]`,void 0!==o&&`${s}[0] !== ${s}[1]`].filter(e=>e).join(" && "),value:h[t]},{value:null}],e),{});return[{name:i+"_brush_bg",type:"rect",clip:!0,encode:{enter:{fill:{value:d},fillOpacity:{value:p}},update:l}},...n,{name:i+"_brush",type:"rect",clip:!0,encode:{enter:{fill:{value:"transparent"}},update:Object.assign({},l,m)}}]}};function Gu(e,t){return e.events.reduce((e,n)=>n.between?t(e,n):(Ht(`${n} is not an ordered event stream for interval selections`),e),[])}function Yu(e,t){const n=t.name,i=n+Iu,r=t.project,o="(item().isVoronoi ? datum.datum : datum)",a=r.items.map(t=>{const n=e.fieldDef(t.channel);return n&&n.bin?`[${ne(e.vgField(t.channel,{}),o)}, `+`${ne(e.vgField(t.channel,{binSuffix:"end"}),o)}]`:`${ne(t.field,o)}`}).join(", "),s=`unit: ${ic(e)}, fields: ${i}, values`,c=[{name:n+Ju,on:[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? {${s}: [${a}]} : null`,force:!0}]}];if(t.init){const e=t.init.map(e=>{const t=vc(e);return`{${s}: ${t}}`});c.push({name:`${n}_init`,init:`modify(${u(t.name+Xu)}, [${e}])`})}return c}const Vu={signals:Yu,modifyExpr:(e,t)=>{return t.name+Ju+", "+("global"===t.resolve?"null":`{unit: ${ic(e)}}`)}},Qu={signals:Yu,modifyExpr:(e,t)=>{return t.name+Ju+", "+("global"===t.resolve?"true":`{unit: ${ic(e)}}`)}},Xu="_store",Ju="_tuple",Zu="_modify",Ku="_selection_domain_",ec="vlSelectionResolve",tc={single:Qu,multi:Vu,interval:Hu};function nc(e,t){const n=e.component.selection;for(const e in n)if(n.hasOwnProperty(e)){const i=n[e];t(i,tc[i.type])}}function ic(e){let t=u(e.name);const n=function(e){let t=e.parent;for(;t&&!Rf(t);)t=t.parent;return t}(e);if(n){const{facet:e}=n;for(const i of bt)e[i]&&(t+=` + '__facet_${i}_' + (${ne(n.vgField(i),"facet")})`)}return t}function rc(e){let t=!1;return nc(e,e=>{t=t||e.project.items.some(e=>e.field===sr)}),t}const oc={has:e=>"interval"!==e.type&&e.nearest,marks:(e,t,n)=>{const{x:i,y:r}=t.project.has,o=e.mark;if(Ee(o))return Ht(Pt.nearestNotSupportForContinuous(o)),n;const a={name:e.getName("voronoi"),type:"path",from:{data:e.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0}},Vc(e,{reactiveGeom:!0}))},transform:[{type:"voronoi",x:{expr:i||!i&&!r?"datum.datum.x || 0":"0"},y:{expr:r||!i&&!r?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let s=0,u=!1;return n.forEach((t,n)=>{const i=t.name||"";i===e.component.mark[0].name?s=n:i.indexOf("voronoi")>=0&&(u=!0)}),u||n.splice(s+1,0,a),n}},ac={has:e=>"single"===e.type&&"global"===e.resolve&&e.bind&&"scales"!==e.bind,topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,a=t.init&&t.init[0],s=oc.has(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach((e,r)=>{const u=Z(`${i}_${e.field}`);n.filter(e=>e.name===u).length||n.unshift(Object.assign({name:u},a?{init:vc(a[r])}:{value:null},{on:[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${ne(e.field,s)} : null`}],bind:o[e.field]||o[e.channel]||o}))}),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.filter(e=>e.name===i+Ju)[0],a=i+Iu,s=r.items.map(e=>Z(`${i}_${e.field}`)),u=s.map(e=>`${e} !== null`).join(" && ");return s.length&&(o.update=`${u} ? {fields: ${a}, values: [${s.join(", ")}]} : null`),delete o.value,delete o.on,n}},sc={has:e=>"multi"===e.type&&e.toggle,signals:(e,t,n)=>n.concat({name:t.name+"_toggle",value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+Ju,i=t.name+"_toggle";return`${i} ? null : ${n}, `+("global"===t.resolve?`${i} ? null : true, `:`${i} ? null : {unit: ${ic(e)}}, `)+`${i} ? ${n} : null`}},uc={has:e=>!1!==e.clear,parse:(e,t,n)=>{t.clear&&(n.clear=wu(t.clear,"scope"))},topLevelSignals:(e,t,n)=>(ac.has(t)&&t.project.items.forEach(e=>{const i=n.findIndex(n=>n.name===Z(`${t.name}_${e.field}`));-1!==i&&n[i].on.push({events:t.clear,update:"null"})}),n),signals:(e,t,n)=>{function i(e,i){-1!==e&&n[e].on&&n[e].on.push({events:t.clear,update:i})}if("interval"===t.type)t.project.items.forEach(e=>{const t=n.findIndex(t=>t.name===e.signals.visual);if(i(t,"[0, 0]"),-1===t){i(n.findIndex(t=>t.name===e.signals.data),"null")}});else{let e=n.findIndex(e=>e.name===t.name+Ju);i(e,"null"),sc.has(t)&&i(e=n.findIndex(e=>e.name===t.name+"_toggle"),"false")}return n}},cc="_translate_anchor",lc="_translate_delta",fc={has:e=>"interval"===e.type&&e.translate,signals:(e,t,n)=>{const i=t.name,r=Mu.has(t),o=i+cc,{x:a,y:s}=t.project.has;let u=wu(t.translate,"scope");return r||(u=u.map(e=>(e.between[0].markname=i+"_brush",e))),n.push({name:o,value:{},on:[{events:u.map(e=>e.between[0]),update:"{x: x(unit), y: y(unit)"+(void 0!==a?", extent_x: "+(r?Lu(e,We):`slice(${a.signals.visual})`):"")+(void 0!==s?", extent_y: "+(r?Lu(e,He):`slice(${s.signals.visual})`):"")+"}"}]},{name:i+lc,value:{},on:[{events:u,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),void 0!==a&&dc(e,t,a,"width",n),void 0!==s&&dc(e,t,s,"height",n),n}};function dc(e,t,n,i,r){const o=t.name,a=o+cc,s=o+lc,u=n.channel,c=Mu.has(t),l=r.filter(e=>e.name===n.signals[c?"data":"visual"])[0],f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(u),p=d.get("type"),h=`${a}.extent_${u}`,m=`${c?"log"===p?"panLog":"pow"===p?"panPow":"panLinear":"panLinear"}(${h}, ${`${c&&u===We?"-":""}${s}.${u} / `+(c?`${f}`:`span(${h})`)}`+(c&&"pow"===p?`, ${d.get("exponent")||1}`:"")+")";l.on.push({events:{signal:s},update:c?m:`clampRange(${m}, 0, ${f})`})}const pc="_zoom_anchor",hc="_zoom_delta",mc={has:e=>"interval"===e.type&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=Mu.has(t),o=i+hc,{x:a,y:s}=t.project.has,c=u(e.scaleName(We)),l=u(e.scaleName(He));let f=wu(t.zoom,"scope");return r||(f=f.map(e=>(e.markname=i+"_brush",e))),n.push({name:i+pc,on:[{events:f,update:r?"{"+[c?`x: invert(${c}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(e=>!!e).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:f,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),void 0!==a&&gc(e,t,a,"width",n),void 0!==s&&gc(e,t,s,"height",n),n}};function gc(e,t,n,i,r){const o=t.name,a=n.channel,s=Mu.has(t),u=r.filter(e=>e.name===n.signals[s?"data":"visual"])[0],c=e.getSizeSignalRef(i).signal,l=e.getScaleComponent(a),f=l.get("type"),d=s?Lu(e,a):u.name,p=o+hc,h=`${s?"log"===f?"zoomLog":"pow"===f?"zoomPow":"zoomLinear":"zoomLinear"}(${d}, ${`${o}${pc}.${a}`}, ${p}`+(s&&"pow"===f?`, ${l.get("exponent")||1}`:"")+")";u.on.push({events:{signal:p},update:s?h:`clampRange(${h}, 0, ${c})`})}const yc=[{has:()=>!0,parse:(e,t,n)=>{const i=n.name,r=n.project||(n.project=new qu),a={},s={},u=new Set,c=(e,t)=>{const n="visual"===t?e.channel:e.field;let r=Z(`${i}_${n}`);for(let e=1;u.has(r);e++)r=Z(`${i}_${n}_${e}`);return u.add(r),{[t]:r}};if(!t.fields&&!t.encodings){const n=e.config.selection[t.type];if(t.init)for(const e of y(t.init))for(const i of V(e))wt(i)?(t.encodings||(t.encodings=[])).push(i):ur(t)?(Ht('Interval selections should be initialized using "x" and/or "y" keys.'),t.encodings=n.encodings):(t.fields||(t.fields=[])).push(i);else t.encodings=n.encodings,t.fields=n.fields}for(const e of t.fields||[]){const t={type:"E",field:e};t.signals=Object.assign({},c(t,"data")),r.items.push(t)}for(const i of t.encodings||[]){const t=e.fieldDef(i);if(t){let o=t.field;if(t.timeUnit&&(s[o=e.vgField(i)]={as:o,field:t.field,timeUnit:t.timeUnit}),!a[o]){let s="E";if("interval"===n.type){Xi(e.getScaleComponent(i).get("type"))&&(s="R")}else t.bin&&(s="R-RE");const u={field:o,channel:i,type:s};u.signals=Object.assign({},c(u,"data"),c(u,"visual")),r.items.push(a[o]=u),r.has[i]=a[o]}}else Ht(Pt.cannotProjectOnChannelWithoutField(i))}if(t.init)if(Mu.has(n))Ht(Pt.NO_INIT_SCALE_BINDINGS);else{const e=e=>r.items.map(t=>void 0!==e[t.channel]?e[t.channel]:e[t.field]);if(ur(t))n.init=e(t.init);else{const i=o(t.init)?t.init:[t.init];n.init=i.map(e)}}V(s).length&&(r.timeUnit=new Uu(null,s))},signals:(e,t,n)=>{const i=t.name+Iu;return n.filter(e=>e.name===i).length?n:n.concat({name:i,value:t.project.items.map(e=>{return Ne(e,["signals"])})})}},sc,Mu,fc,mc,ac,oc,uc];function bc(e,t){for(const n of yc)n.has(e)&&t(n)}function vc(e,t=l){if(o(e)){return`[${e.map(e=>vc(e,t)).join(", ")}]`}return Vt(e)?t(Kt(e)):t(JSON.stringify(e))}function xc(e,t){return nc(e,(n,i)=>{t=i.marks?i.marks(e,n,t):t,bc(n,i=>{i.marks&&(t=i.marks(e,n,t))})}),t}function Ac(e,t,n){const i=[];const r=K(t,function(t){const r=Z(t),o=e.getSelectionComponent(r,t),a=u(r+Xu);if(o.project.timeUnit){const t=n||e.component.data.raw,i=o.project.timeUnit.clone();t.parent?i.insertAsParentOf(t):t.parent=i}return"none"!==o.empty&&i.push(a),`vlSelectionTest(${a}, datum`+("global"===o.resolve?")":`, ${u(o.resolve)})`)});return(i.length?"!("+i.map(e=>`length(data(${e}))`).join(" || ")+") || ":"")+`(${r})`}function wc(e,t,n){return K(t,t=>s(t)?t:function(e){return e&&e.selection}(t)?Ac(e,t.selection,n):ao(t))}function Cc(e){const{channel:t,channelDef:n,mark:i,scale:r}=e,o=_c(e);return wn(n)&&!Pe(n.aggregate)&&r&&Ji(r.get("type"))&&!1===r.get("zero")?Fc({fieldDef:n,channel:t,mark:i,ref:o}):o}function Fc({fieldDef:e,channel:t,mark:n,ref:i}){return Ee(n)?i:[Ec(e,t),i]}function Ec(e,t){const n=Dc(e,!0),i="x"===Dt(t)?{value:0}:{field:{group:"height"}};return Object.assign({test:n},i)}function Dc(e,t=!0){return`${e=s(e)?e:$n(e,{expr:"datum"})} ${t?"===":"!=="} null ${t?"||":"&&"} ${t?"":"!"}isNaN(${e})`}function Sc(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o}=e;return wn(n)&&r&&t===r.fieldChannel?Bc(n,i,{suffix:"end"},{offset:o}):Cc(e)}function kc({channel:e,channelDef:t,channel2Def:n,scaleName:i,scale:r,stack:o,mark:a,offset:s,defaultRef:u}){return wn(t)&&o&&e.charAt(0)===o.fieldChannel.charAt(0)?Bc(t,i,{suffix:"start"},{offset:s}):Cc({channel:e,channelDef:n,scaleName:i,scale:r,stack:o,mark:a,offset:s,defaultRef:u})}function Oc(e,t){const n=t[e+"Offset"];if(n)return n}function $c({channel:e,fieldDef:t,scaleName:n,mark:i,side:r,offset:o}){return Fc({fieldDef:t,channel:e,mark:i,ref:Bc(t,n,{binSuffix:"start"===r?void 0:"end"},o?{offset:o}:{})})}function Bc(e,t,n,i){const r=Object.assign({},t?{scale:t}:{},{field:$n(e,n)});if(i){const{offset:e,band:t}=i;return Object.assign({},r,e?{offset:e}:{},t?{band:t}:{})}return r}function Nc(e,t=!0){return{scale:e,band:t}}function jc({scaleName:e,fieldDef:t,fieldDef2:n,offset:i}){const r=$n(t,{expr:"datum"}),o=void 0!==n?$n(n,{expr:"datum"}):$n(t,{binSuffix:"end",expr:"datum"});return Object.assign({signal:`scale("${e}", (${r} + ${o}) / 2)`},i?{offset:i}:{})}function _c({channel:e,channelDef:t,channel2Def:n,scaleName:i,scale:r,stack:o,offset:a,defaultRef:s}){if(t){if(wn(t)){if(Cn(t)){if(Xn(t.bin))return R([We,He],e)&&t.type===hn?o&&o.impute?Bc(t,i,{binSuffix:"mid"},{offset:a}):jc({scaleName:i,fieldDef:t,offset:a}):Bc(t,i,Vn(t,e)?{binSuffix:"range"}:{},{offset:a});if(Jn(t.bin)){if(wn(n))return jc({scaleName:i,fieldDef:t,fieldDef2:n,offset:a});{const t=e===We?Ge:Ye;Ht(Pt.channelRequiredForBinned(t))}}}if(r){const e=r.get("type");if(Qi(e))return Bc(t,i,{binSuffix:"range"},"band"===e?{band:.5,offset:a}:{offset:a})}return Bc(t,i,{},{offset:a})}if(En(t)){const n=t.value,i=a?{offset:a}:{};return R(["x","x2"],e)&&"width"===n?Object.assign({field:{group:"width"}},i):R(["y","y2"],e)&&"height"===n?Object.assign({field:{group:"height"}},i):Object.assign({value:n},i)}}return function(e){return"function"==typeof e}(s)?s():s}function Tc(e,t,{reactiveGeom:n}){const i=[],r={};function o(o,a){const s=Dt(a);a!==s&&(o=Object.assign({},o,{type:e[s].type}));const c=zn(o,t,{allowDisabling:!1}),l=zc(o,t,n?"datum.datum":"datum").signal;r[c]||i.push(`${u(c)}: ${l}`),r[c]=!0}return oi(e,(e,t)=>{wn(e)?o(e,t):An(e)&&o(e.condition,t)}),i.length?{signal:`{${i.join(", ")}}`}:void 0}function zc(e,t,n="datum"){if(e){if(En(e))return{value:e.value};if(Cn(e))return ea(e,On(i=e)&&i.format?i.format:(Rn(i)||{}).format,n,t)}var i}function Rc(e){return Object.assign({},e,{mult:.5})}function Pc({markDef:e,config:t,defaultRef:n,channel:i,scaleName:r,scale:o,mark:a,checkBarAreaWithoutZero:u}){return()=>{const c=Dt(i),l=se(e[i],Zo(i,e,t));if(void 0!==l)return{value:l};if(s(n)){if(r){const e=o.get("type");if(R([Pi.LOG,Pi.TIME,Pi.UTC],e))!u||"bar"!==a&&"area"!==a||Ht(Pt.nonZeroScaleUsedWithLengthMark(a,c,{scaleType:e}));else{if(o.domainDefinitelyIncludesZero)return{scale:r,value:0};!u||"bar"!==a&&"area"!==a||Ht(Pt.nonZeroScaleUsedWithLengthMark(a,c,{zeroFalse:!1===o.explicit.zero}))}}return"zeroOrMin"===n?"x"===c?{value:0}:{field:{group:"height"}}:"x"===c?{field:{group:"width"}}:{value:0}}return n}}function Uc(e){return"transparent"!==e&&null!=e}function Mc(e){const{markDef:t,encoding:n,config:i}=e,{filled:r,type:o}=t,a={fill:Zo("fill",t,i),stroke:Zo("stroke",t,i),color:Zo("color",t,i)},s=R(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,u=se(t.fill,a.fill,s),c=se(t.stroke,a.stroke),l=r?"fill":"stroke",f=Object.assign({},u?{fill:{value:u}}:{},c?{stroke:{value:c}}:{});return n.fill||n.stroke?(t.color&&Ht(Pt.droppingColor("property",{fill:"fill"in n,stroke:"stroke"in n})),Object.assign({},Gc("fill",e,{defaultValue:se(u,s)}),Gc("stroke",e,{defaultValue:c}))):n.color?Object.assign({},f,Gc("color",e,{vgChannel:l,defaultValue:se(t[l],t.color,a[l],a.color,r?s:void 0)})):Uc(t.fill)||Uc(t.stroke)?(t.color&&Ht(Pt.droppingColor("property",{fill:"fill"in t,stroke:"stroke"in t})),f):t.color?Object.assign({},f,{[l]:{value:t.color}}):Uc(a.fill)||Uc(a.stroke)?f:a.color?Object.assign({},s?{fill:{value:"transparent"}}:{},{[l]:{value:a.color}}):{}}function Lc(e,t){const{fill:n,stroke:i}=Mc(e);return Object.assign({},function(e,t){return Eo.reduce((n,i)=>(void 0!==e[i]&&"ignore"!==t[i]&&(n[i]={value:e[i]}),n),{})}(e.markDef,t),Ic(e,"fill",n),Ic(e,"stroke",i),Gc("opacity",e),Gc("fillOpacity",e),Gc("strokeOpacity",e),Gc("strokeWidth",e),Vc(e),Qc(e,"href"))}function Ic(e,t,n){const{config:i,mark:r}=e;if("hide"===i.invalidValues&&n&&!Ee(r)){const i=Wc(e,{invalid:!0,channels:_t});if(i)return{[t]:[{test:i,value:null},...y(n)]}}return n?{[t]:n}:{}}function qc(e,t){if(void 0!==t)return{[e]:{value:t}}}function Wc(e,{invalid:t=!1,channels:n}){const i=n.reduce((t,n)=>{const i=e.getScaleComponent(n);if(i){const r=i.get("type"),o=e.vgField(n,{expr:"datum"});o&&Xi(r)&&(t[o]=!0)}return t},{}),r=V(i);if(r.length>0){const e=t?"||":"&&";return r.map(e=>Dc(e,t)).join(` ${e} `)}}function Hc(e){if(e.config.invalidValues){const t=Wc(e,{channels:["x","y"]});if(t)return{defined:{signal:t}}}return{}}function Gc(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:a=e}=n;let{defaultRef:s,defaultValue:u}=n;void 0===s&&(u=u||(a===e?i[e]:se(i[e],i[a],Zo(e,i,o,{vgChannel:a}))),s=u?{value:u}:void 0);const c=r[e];return Yc(t,c,a,n=>_c({channel:e,channelDef:n,scaleName:t.scaleName(e),scale:t.getScaleComponent(e),stack:null,defaultRef:s}))}function Yc(e,t,n,i){const r=t&&t.condition,a=i(t);if(r){return{[n]:[...(o(r)?r:[r]).map(t=>{const n=i(t),r=function(e){return e.selection}(t)?Ac(e,t.selection):wc(e,t.test);return Object.assign({test:r},n)}),...void 0!==a?[a]:[]]}}return void 0!==a?{[n]:a}:{}}function Vc(e,t={}){const{encoding:n,markDef:i,config:r}=e,u=n.tooltip;return o(u)?{tooltip:Tc({tooltip:u},r,t)}:Yc(e,u,"tooltip",o=>{const u=zc(o,e.config,t.reactiveGeom?"datum.datum":"datum");if(u)return u;if(null===o)return;const c=se(i.tooltip,Zo("tooltip",i,r));return s(c)?{value:c}:a(c)?"encoding"===c.content?Tc(n,r,t):{signal:"datum"}:void 0})}function Qc(e,t="text"){const n=e.encoding[t];return Yc(e,n,t,t=>zc(t,e.config))}function Xc(e,t,n,i){const r=n.scaleName(t),o="x"===t?"width":"height";if(n.encoding.size||void 0!==n.markDef.size||i&&void 0!==i.value){if(n.markDef.orient){const a={[t+"c"]:Bc(e,r,{},{band:.5})};if(Mn(n.encoding.size))return Object.assign({},a,Gc("size",n,{vgChannel:o}));if(En(n.encoding.size))return Object.assign({},a,Gc("size",n,{vgChannel:o}));if(void 0!==n.markDef.size)return Object.assign({},a,{[o]:{value:n.markDef.size}});if(i&&void 0!==i.value)return Object.assign({},a,{[o]:i})}else Ht(Pt.cannotApplySizeToNonOrientedMark(n.markDef.type))}return{[t]:Bc(e,r,{binSuffix:"range"},{}),[o]:i||Nc(r)}}function Jc(e,t,n,i){const r="x"===e?"xc":"yc",o="x"===e?"width":"height";return Object.assign({},Kc(e,t,n,r),Gc("size",t,{defaultRef:i,vgChannel:o}))}function Zc({fieldDef:e,fieldDef2:t,channel:n,scaleName:i,mark:r,spacing:o=0,reverse:a}){const s={x:a?o:0,x2:a?0:o,y:a?0:o,y2:a?o:0},u=n===We?Ge:Ye;return Xn(e.bin)?{[u]:$c({channel:n,fieldDef:e,scaleName:i,mark:r,side:"start",offset:s[`${n}2`]}),[n]:$c({channel:n,fieldDef:e,scaleName:i,mark:r,side:"end",offset:s[n]})}:Jn(e.bin)&&wn(t)?{[u]:Bc(e,i,{},{offset:s[`${n}2`]}),[n]:Bc(t,i,{},{offset:s[n]})}:void Ht(Pt.channelRequiredForBinned(u))}function Kc(e,t,n,i){const{encoding:r,mark:o,markDef:a,config:s,stack:u}=t,c=r[e],l=r[e===We?Ge:Ye],f=t.scaleName(e),d=t.getScaleComponent(e),p=Oc(e,t.markDef);return{[i||e]:c||!r.latitude&&!r.longitude?Sc({channel:e,channelDef:c,channel2Def:l,scaleName:f,scale:d,stack:u,mark:o,offset:p,defaultRef:Pc({markDef:a,config:s,defaultRef:n,channel:e,scaleName:f,scale:d,mark:o,checkBarAreaWithoutZero:!l})}):{field:t.getName(e)}}}function el(e,t,n){const{encoding:i,mark:r,markDef:o,stack:a,config:s}=e,u="x2"===n?"x":"y",c=i[u],l=e.scaleName(u),f=e.getScaleComponent(u),d=Oc(n,e.markDef);return{[n]:c||!i.latitude&&!i.longitude?kc({channel:n,channelDef:c,channel2Def:i[n],scaleName:l,scale:f,stack:a,mark:r,offset:d,defaultRef:Pc({markDef:o,config:s,defaultRef:t,channel:n,scaleName:l,scale:f,mark:r,checkBarAreaWithoutZero:!i[n]})}):{field:e.getName(n)}}}function tl(e,t){return V(e).reduce((n,i)=>{const r=e[i];return Object.assign({},n,Yc(t,r,i,e=>({value:e.value})))},{})}function nl(e,t){if(Mf(t)||Rf(t))return"shared";if(Uf(t)||Pf(t))return R($t,e)?"independent":"shared";throw new Error("invalid model type for resolve")}function il(e,t){const n=e.scale[t],i=R($t,t)?"axis":"legend";return"independent"===n?("shared"===e[i][t]&&Ht(Pt.independentScaleMeansIndependentGuide(t)),"independent"):e[i][t]||"shared"}class rl{constructor(e={},t={}){this.explicit=e,this.implicit=t}clone(){return new rl(B(this.explicit),B(this.implicit))}combine(){return Object.assign({},this.explicit,this.implicit)}get(e){return se(this.explicit[e],this.implicit[e])}getWithExplicit(e){return void 0!==this.explicit[e]?{explicit:!0,value:this.explicit[e]}:void 0!==this.implicit[e]?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,t){void 0!==t.value&&this.set(e,t.value,t.explicit)}set(e,t,n){return delete this[n?"implicit":"explicit"][e],this[n?"explicit":"implicit"][e]=t,this}copyKeyFromSplit(e,t){void 0!==t.explicit[e]?this.set(e,t.explicit[e],!0):void 0!==t.implicit[e]&&this.set(e,t.implicit[e],!1)}copyKeyFromObject(e,t){void 0!==t[e]&&this.set(e,t[e],!0)}copyAll(e){for(const t of V(e.combine())){const n=e.getWithExplicit(t);this.setWithExplicit(t,n)}}}function ol(e){return{explicit:!0,value:e}}function al(e){return{explicit:!1,value:e}}function sl(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:ul(t,n,i,r)}}function ul(e,t,n,i){return e.explicit&&t.explicit&&Ht(Pt.mergeConflictingProperty(n,i,e.value,t.value)),e}function cl(e,t,n,i,r=ul){return void 0===e||void 0===e.value?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:_(e.value)===_(t.value)?e:r(e,t,n,i)}class ll extends rl{}function fl(e,t){const n=e.values;if(n)return Yn(t,n)}function dl(e){return"line"===e?"stroke":"circle"}function pl(e){const{legend:t}=e;return se(t.type,hl(e))}function hl({channel:e,timeUnit:t,scaleType:n,alwaysReturn:i}){if(gt(e)){if(R(["quarter","month","day"],t))return"symbol";if(Ji(n))return i?"gradient":void 0}return i?"symbol":void 0}function ml({legend:e,legendConfig:t,timeUnit:n,channel:i,scaleType:r}){const o=se(e.orient,t.orient,"right"),a=pl({legend:e,channel:i,timeUnit:n,scaleType:r,alwaysReturn:!0});return se(e.direction,t[a?"gradientDirection":"symbolDirection"],function(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return"gradient"===t?"horizontal":void 0}}(o,a))}function gl({legend:e,legendConfig:t,model:n,channel:i,scaleType:r}){const{gradientHorizontalMaxLength:o,gradientHorizontalMinLength:a,gradientVerticalMaxLength:s,gradientVerticalMinLength:u}=t;if("horizontal"===ml({legend:e,legendConfig:t,channel:i,scaleType:r})){const i=se(e.orient,t.orient);return"top"===i||"bottom"===i?yl(n,"width",a,o):a}return yl(n,"height",u,s)}function yl(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function bl(e){if(R(["quantile","threshold","log"],e))return"greedy"}function vl(e,t,n){const i=t.getScaleComponent(n).get("type");return se(e.get("type"),hl({channel:n,scaleType:i,alwaysReturn:!0}))}function xl(e){return wl(e,(e,t)=>Math.max(e,t.value))}function Al(e){return wl(e,(e,t)=>se(e,t.value))}function wl(e,t){return function(e){return!!e&&!!e.condition&&(o(e.condition)||En(e.condition))}(e)?(o(e.condition)?e.condition:[e.condition]).reduce(t,e.value):En(e)?e.value:void 0}var Cl=Object.freeze({symbols:function(e,t,n,i,r){if("symbol"!==vl(r,n,i))return;let a=Object.assign({},function(e,t,n){for(const i of n){const n=Zo(i,t.markDef,t.config);void 0!==n&&(e[i]={value:n})}return e}({},n,ke),Mc(n));switch(n.mark){case he:case xe:case ve:a.shape={value:"square"};break;case we:case Ce:a.shape={value:n.mark}}const{markDef:s,encoding:u,config:c}=n,l=s.filled,f=xl(u.opacity)||s.opacity;if(a.fill)if("fill"===i||l&&i===Ze)delete a.fill;else if(a.fill.field)r.get("symbolFillColor")?delete a.fill:(a.fill={value:c.legend.symbolBaseFillColor||"black"},a.fillOpacity={value:f||1});else if(o(a.fill)){const e=Al(u.fill||u.color)||s.fill||l&&s.color;e&&(a.fill={value:e})}if(a.stroke)if("stroke"===i||!l&&i===Ze)delete a.stroke;else if(a.stroke.field)delete a.stroke;else if(o(a.stroke)){const e=se(Al(u.stroke||u.color),s.stroke,l?s.color:void 0);e&&(a.stroke={value:e})}if(i!==tt){const e=Al(u.shape)||s.shape;e&&(a.shape={value:e})}return i!==it&&f&&(a.opacity={value:f}),a=Object.assign({},a,t),V(a).length>0?a:void 0},gradient:function(e,t,n,i,r){if("gradient"!==vl(r,n,i))return;let o={};const a=xl(n.encoding.opacity)||n.markDef.opacity;return a&&(o.opacity={value:a}),o=Object.assign({},o,t),V(o).length>0?o:void 0},labels:function(e,t,n,i){const r=n.legend(i),o=n.config;let a={};if(Hn(e)){const a=n.getScaleComponent(i).get("type")===Pi.UTC,s=oa("datum.value",e.timeUnit,r.format,o.legend.shortTimeLabels,o.timeFormat,a);t=Object.assign({},s?{text:{signal:s}}:{},t)}return a=Object.assign({},a,t),V(a).length>0?a:void 0}});function Fl(e){zf(e)?e.component.legends=function(e){const{encoding:t}=e;return[Ze,Ke,et,at,nt,tt,it,rt,ot].reduce((n,i)=>{const r=t[i];return!e.legend(i)||!e.getScaleComponent(i)||wn(r)&&i===tt&&r.type===bn||(n[i]=function(e,t){const n=e.fieldDef(t),i=e.legend(t),r=new ll({},function(e,t){const n=e.scaleName(Ze);if("color"===t)return e.markDef.filled?{fill:n}:{stroke:n};return{[t]:e.scaleName(t)}}(e,t));for(const o of zi){const a=Dl(o,i,t,e);if(void 0!==a){const t=El(a,o,i,n);(t||void 0===e.config.legend[o])&&r.set(o,a,t)}}const o=i.encoding||{},a=["labels","legend","title","symbols","gradient"].reduce((i,a)=>{const s=tl(o[a]||{},e),u=Cl[a]?Cl[a](n,s,e,t,r):s;return void 0!==u&&V(u).length>0&&(i[a]={update:u}),i},{});V(a).length>0&&r.set("encode",a,!!i.encoding);return r}(e,i)),n},{})}(e):e.component.legends=function(e){const{legends:t,resolve:n}=e.component;for(const i of e.children)Fl(i),V(i.component.legends).forEach(r=>{n.legend[r]=il(e.component.resolve,r),"shared"===n.legend[r]&&(t[r]=Sl(t[r],i.component.legends[r]),t[r]||(n.legend[r]="independent",delete t[r]))});return V(t).forEach(t=>{for(const i of e.children)i.component.legends[t]&&"shared"===n.legend[t]&&delete i.component.legends[t]}),t}(e)}function El(e,t,n,i){switch(t){case"values":return!!n.values;case"title":if("title"===t&&e===i.title)return!0}return e===n[t]}function Dl(e,t,n,i){const{encoding:r,mark:o}=i,a=Mn(r[n]),s=i.config.legend,{timeUnit:u}=a,c=i.getScaleComponent(n).get("type");switch(e){case"direction":return ml({legend:t,legendConfig:s,timeUnit:u,channel:n,scaleType:c});case"format":if(Hn(a))return;return ta(a,t.format,i.config);case"formatType":if(Hn(a))return;return t.formatType;case"gradientLength":return se(t.gradientLength,s.gradientLength,gl({model:i,legend:t,legendConfig:s,channel:n,scaleType:c}));case"labelOverlap":return se(t.labelOverlap,bl(c));case"symbolType":return se(t.symbolType,dl(o));case"title":return zn(a,i.config,{allowDisabling:!0})||void 0;case"type":return pl({legend:t,channel:n,timeUnit:u,scaleType:c,alwaysReturn:!1});case"values":return fl(t,a)}return t[e]}function Sl(e,t){if(!e)return t.clone();const n=e.getWithExplicit("orient"),i=t.getWithExplicit("orient");if(n.explicit&&i.explicit&&n.value!==i.value)return;let r=!1;for(const n of Ri){const i=cl(e.getWithExplicit(n),t.getWithExplicit(n),n,"legend",(e,t)=>{switch(n){case"symbolType":return kl(e,t);case"title":return ca(e,t);case"type":return r=!0,al("symbol")}return ul(e,t,n,"legend")});e.setWithExplicit(n,i)}return r&&(((e.implicit||{}).encode||{}).gradient&&ee(e.implicit,["encode","gradient"]),((e.explicit||{}).encode||{}).gradient&&ee(e.explicit,["encode","gradient"])),e}function kl(e,t){return"circle"===t.value?t:e}function Ol(e){const t=e.component.legends,n={};for(const i of V(t)){const r=e.getScaleComponent(i),o=_(r.domains);if(n[o])for(const e of n[o]){Sl(e,t[i])||n[o].push(t[i])}else n[o]=[t[i].clone()]}return M(Q(n)).map(e=>{const t=e.combine();if(t.encode&&t.encode.symbols){const e=t.encode.symbols.update;!e.fill||"transparent"===e.fill.value||e.stroke||t.stroke||(e.stroke={value:"transparent"}),t.fill&&delete e.fill}return t})}function $l(e){return Mf(e)||Uf(e)||Pf(e)?function(e){return e.children.reduce((e,t)=>e.concat(t.assembleProjections()),Bl(e))}(e):Bl(e)}function Bl(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:i}=n,r=Ne(n,["name"]);if(t.data){const n={signal:`[${t.size.map(e=>e.signal).join(", ")}]`},o=t.data.reduce((t,n)=>{const i=wo(n)?n.signal:`data('${e.lookupDataSource(n)}')`;return R(t,i)||t.push(i),t},[]);if(o.length<=0)throw new Error("Projection's fit didn't find any data sources");return[Object.assign({name:i,size:n,fit:{signal:o.length>1?`[${o.join(", ")}]`:o[0]}},r)]}return[Object.assign({name:i},{translate:{signal:"[width / 2, height / 2]"}},r)]}const Nl=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class jl extends rl{constructor(e,t,n,i){super(Object.assign({},t),{name:e}),this.specifiedProjection=t,this.size=n,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function _l(e){e.component.projection=zf(e)?function(e){if(e.hasProjection){const t=e.specifiedProjection,n=!(t&&(null!=t.scale||null!=t.translate)),i=n?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,r=n?function(e){const t=[];[[Qe,Ve],[Je,Xe]].forEach(n=>{(e.channelHasField(n[0])||e.channelHasField(n[1]))&&t.push({signal:e.getName(`geojson_${t.length}`)})}),e.channelHasField(tt)&&e.fieldDef(tt).type===bn&&t.push({signal:e.getName(`geojson_${t.length}`)});0===t.length&&t.push(e.requestDataName(Qr));return t}(e):void 0;return new jl(e.projectionName(!0),Object.assign({},e.config.projection||{},t||{}),i,r)}return}(e):function(e){if(0===e.children.length)return;let t;e.children.forEach(e=>_l(e));const n=U(e.children,e=>{const n=e.component.projection;if(n){if(t){const e=function(e,t){const n=U(Nl,n=>!e.explicit.hasOwnProperty(n)&&!t.explicit.hasOwnProperty(n)||!(!e.explicit.hasOwnProperty(n)||!t.explicit.hasOwnProperty(n)||_(e.get(n))!==_(t.get(n))));if(_(e.size)===_(t.size)){if(n)return e;if(_(e.explicit)===_({}))return t;if(_(t.explicit)===_({}))return e}return null}(t,n);return e&&(t=e),!!e}return t=n,!0}return!0});if(t&&n){const n=e.projectionName(!0),i=new jl(n,t.specifiedProjection,t.size,B(t.data));return e.children.forEach(e=>{const t=e.component.projection;t&&(t.isFit&&i.data.push(...e.component.projection.data),e.renameProjection(t.get("name"),n),t.merged=!0)}),i}return}(e)}class Tl extends la{constructor(e){let t;if(super(null),Hr(e=e||{name:"source"})||(t=e.format?Object.assign({},j(e.format,["parse"])):{}),qr(e))this._data={values:e.values};else if(Ir(e)){if(this._data={url:e.url},!t.type){let n=/(?:\.([^.]+))?$/.exec(e.url)[1];R(["json","csv","tsv","dsv","topojson"],n)||(n="json"),t.type=n}}else Yr(e)?this._data={values:[{type:"Sphere"}]}:(Wr(e)||Hr(e))&&(this._data={});this._generator=Hr(e),e.name&&(this._name=e.name),t&&V(t).length>0&&(this._data.format=t)}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return Object.assign({name:this._name},this._data,{transform:[]})}}function zl(e){for(const t of e){for(const e of t.children)if(e.parent!==t)return console.error("Dataflow graph is inconsistent.",t,e),!1;if(!zl(t.children))return!1}return!0}class Rl{constructor(){this._mutated=!1}setMutated(){this._mutated=!0}get mutatedFlag(){return this._mutated}}class Pl extends Rl{constructor(){super(),this._continue=!1}setContinue(){this._continue=!0}get continueFlag(){return this._continue}get flags(){return{continueFlag:this.continueFlag,mutatedFlag:this.mutatedFlag}}set flags({continueFlag:e,mutatedFlag:t}){e&&this.setContinue(),t&&this.setMutated()}reset(){}optimizeNextFromLeaves(e){if(e instanceof Tl)return!1;const t=e.parent,{continueFlag:n}=this.run(e);return n&&this.optimizeNextFromLeaves(t),this.mutatedFlag}}class Ul extends Rl{}function Ml(e,t,n,i){if(Cn(n)&&Xn(n.bin))e.add($n(n,{})),e.add($n(n,{binSuffix:"end"})),Vn(n,t)&&e.add($n(n,{binSuffix:"range"}));else if(function(e){switch(e){case Ve:case Xe:case Qe:case Je:return!0}return!1}(t)){const n=function(e){switch(e){case Ve:return"y";case Xe:return"y2";case Qe:return"x";case Je:return"x2"}}(t);e.add(i.getName(n))}else e.add($n(n));return e}class Ll extends la{constructor(e,t,n){super(e),this.dimensions=t,this.measures=n}clone(){return new Ll(null,new Set(this.dimensions),B(this.measures))}get groupBy(){return this.dimensions}static makeFromEncoding(e,t){let n=!1;t.forEachFieldDef(e=>{e.aggregate&&(n=!0)});const i={},r=new Set;return n?(t.forEachFieldDef((e,n)=>{const{aggregate:o,field:a}=e;if(o)if("count"===o)i["*"]=i["*"]||{},i["*"].count=new Set([$n(e,{forAs:!0})]);else{if(_e(o)||Te(o)){const e=_e(o)?"argmin":"argmax",t=o[e];i[t]=i[t]||{},i[t][e]=new Set([$n({op:e,field:t},{forAs:!0})])}else i[a]=i[a]||{},i[a][o]=new Set([$n(e,{forAs:!0})]);Tt(n)&&"unaggregated"===t.scaleDomain(n)&&(i[a]=i[a]||{},i[a].min=new Set([$n({field:a,aggregate:"min"},{forAs:!0})]),i[a].max=new Set([$n({field:a,aggregate:"max"},{forAs:!0})]))}else Ml(r,n,e,t)}),r.size+V(i).length===0?null:new Ll(e,r,i)):null}static makeFromTransform(e,t){const n=new Set,i={};for(const e of t.aggregate){const{op:t,field:n,as:r}=e;t&&("count"===t?(i["*"]=i["*"]||{},i["*"].count=new Set([r||$n(e,{forAs:!0})])):(i[n]=i[n]||{},i[n][t]=new Set([r||$n(e,{forAs:!0})])))}for(const e of t.groupby||[])n.add(e);return n.size+V(i).length===0?null:new Ll(e,n,i)}merge(e){return W(this.dimensions,e.dimensions)?(function(e,t){for(const n of V(t)){const i=t[n];for(const t of V(i))n in e?e[n][t]=new Set([...e[n][t]||[],...i[t]]):e[n]={[t]:i[t]}}}(this.measures,e.measures),!0):(Gt("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...V(this.measures)])}producedFields(){const e=new Set;for(const t of V(this.measures))for(const n of V(this.measures[t])){const i=this.measures[t][n];0===i.size?e.add(`${n}_${t}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${T({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],t=[],n=[];for(const i of V(this.measures))for(const r of V(this.measures[i]))for(const o of this.measures[i][r])n.push(o),e.push(r),t.push("*"===i?null:re(i));return{type:"aggregate",groupby:[...this.dimensions],ops:e,fields:t,as:n}}}function Il(e,t,n){let i;i=function(e){return"as"in e}(e)?s(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:[$n(e,{forAs:!0}),$n(e,{binSuffix:"end",forAs:!0})];const r=qn(t,void 0)||{},o=function(e,t){return`${Qn(e)}_${t}`}(r,e.field),{signal:a,extentSignal:u}=function(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}(n,o);return{key:o,binComponent:Object.assign({bin:r,field:e.field,as:[i]},a?{signal:a}:{},u?{extentSignal:u}:{})}}class ql extends la{constructor(e,t){super(e),this.bins=t}clone(){return new ql(null,B(this.bins))}static makeFromEncoding(e,t){const n=t.reduceFieldDef((e,n,i)=>{if(Cn(n)&&Xn(n.bin)){const{key:r,binComponent:o}=Il(n,n.bin,t);e[r]=Object.assign({},o,e[r],function(e,t,n,i){if(Vn(t,n)){const r=zf(e)&&(e.axis(n)||e.legend(n))||{},o=$n(t,{expr:"datum"}),a=$n(t,{expr:"datum",binSuffix:"end"});return{formulaAs:$n(t,{binSuffix:"range",forAs:!0}),formula:ra(o,a,r.format,i)}}return{}}(t,n,i,t.config))}return e},{});return 0===V(n).length?null:new ql(e,n)}static makeFromTransform(e,t,n){const{key:i,binComponent:r}=Il(t,t.bin,n);return new ql(e,{[i]:r})}merge(e,t){for(const n of V(e.bins))n in this.bins?(t(e.bins[n].signal,this.bins[n].signal),this.bins[n].as=q([...this.bins[n].as,...e.bins[n].as],T)):this.bins[n]=e.bins[n];for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}producedFields(){return new Set(M(M(Q(this.bins).map(e=>e.as))))}dependentFields(){return new Set(Q(this.bins).map(e=>e.field))}hash(){return`Bin ${T(this.bins)}`}assemble(){return M(Q(this.bins).map(e=>{const t=[],[n,...i]=e.as,r=Object.assign({type:"bin",field:e.field,as:n,signal:e.signal},e.bin);!e.bin.extent&&e.extentSignal&&(t.push({type:"extent",field:e.field,signal:e.extentSignal}),r.extent={signal:e.extentSignal}),t.push(r);for(const e of i)for(let i=0;i<2;i++)t.push({type:"formula",expr:$n({field:n[i]},{expr:"datum"}),as:e[i]});return e.formula&&t.push({type:"formula",expr:e.formula,as:e.formulaAs}),t}))}}class Wl extends la{constructor(e,t,n,i){super(e),this.model=t,this.name=n,this.data=i;for(const e of bt){const n=t.facet[e];if(n){const{bin:i,sort:r}=n;this[e]=Object.assign({name:t.getName(`${e}_domain`),fields:[$n(n),...Xn(i)?[$n(n,{binSuffix:"end"})]:[]]},Po(r)?{sortField:r}:o(r)?{sortIndexField:nu(n,e)}:{})}}this.childModel=t.child}hash(){let e="Facet";for(const t of bt)this[t]&&(e+=` ${t.charAt(0)}:${T(this[t])}`);return e}get fields(){const e=[];for(const t of bt)this[t]&&this[t].fields&&e.push(...this[t].fields);return e}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const t of["x","y"]){const n=this.childModel.component.scales[t];if(n&&!n.merged){const i=n.get("type"),r=n.get("range");if(Qi(i)&&Co(r)){const n=bf(vf(this.childModel,t));n?e[t]=n:Ht("Unknown field for ${channel}.  Cannot calculate view size.")}}}return e}assembleRowColumnHeaderData(e,t,n){const i={row:"y",column:"x"}[e],r=[],o=[],a=[];n&&n[i]&&(t?(r.push(`distinct_${n[i]}`),o.push("max")):(r.push(n[i]),o.push("distinct")),a.push(`distinct_${n[i]}`));const{sortField:s,sortIndexField:u}=this[e];if(s){const{op:e=Ro,field:t}=s;r.push(t),o.push(e),a.push($n(s,{forAs:!0}))}else u&&(r.push(u),o.push("max"),a.push(u));return{name:this[e].name,source:t||this.data,transform:[Object.assign({type:"aggregate",groupby:this[e].fields},r.length?{fields:r,ops:o,as:a}:{})]}}assembleFacetHeaderData(e){const{columns:t}=this.model.layout,{layoutHeaders:n}=this.model.component,i=[],r={};for(const e of au){for(const t of su){const i=n[e]&&n[e][t]||[];for(const t of i)if(t.axes&&t.axes.length>0){r[e]=!0;break}}if(r[e]){const n=`length(data("${this.facet.name}"))`,r="row"===e?t?{signal:`ceil(${n} / ${t})`}:1:t?{signal:`min(${n}, ${t})`}:{signal:n};i.push({name:`${this.facet.name}_${e}`,transform:[{type:"sequence",start:0,stop:r}]})}}const{row:o,column:a}=r;return(o||a)&&i.unshift(this.assembleRowColumnHeaderData("facet",null,e)),i}assemble(){const e=[];let t=null;const n=this.getChildIndependentFieldsWithStep(),{column:i,row:r,facet:o}=this;if(i&&r&&(n.x||n.y)){t=`cross_${this.column.name}_${this.row.name}`;const i=[].concat(n.x||[],n.y||[]),r=i.map(()=>"distinct");e.push({name:t,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:i,ops:r}]})}for(const i of[Ie,Le])this[i]&&e.push(this.assembleRowColumnHeaderData(i,t,n));if(o){const t=this.assembleFacetHeaderData(n);t&&e.push(...t)}return e}}class Hl extends la{constructor(e,t,n){super(e),this.model=t,this.filter=n,this.expr=wc(this.model,this.filter,this),this._dependentFields=eu(this.expr)}clone(){return new Hl(null,this.model,B(this.filter))}dependentFields(){return this._dependentFields}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Gl(e){return"'"===e[0]&&"'"===e[e.length-1]||'"'===e[0]&&'"'===e[e.length-1]?e.slice(1,-1):e}class Yl extends la{clone(){return new Yl(null,B(this._parse))}constructor(e,t){super(e),this._parse=t}hash(){return`Parse ${T(this._parse)}`}static makeExplicit(e,t,n){let i={};const r=t.data;return!Hr(r)&&r&&r.format&&r.format.parse&&(i=r.format.parse),this.makeWithAncestors(e,i,{},n)}static makeImplicitFromFilterTransform(e,t,n){const i={};return function e(t,n){if(k(t))e(t.not,n);else if(S(t))for(const i of t.and)e(i,n);else if(D(t))for(const i of t.or)e(i,n);else n(t)}(t.filter,e=>{if(ro(e)){let t=null;Jr(e)?t=e.equal:no(e)?t=e.range[0]:io(e)&&(t=(e.oneOf||e.in)[0]),t&&(Vt(t)?i[e.field]="date":v(t)?i[e.field]="number":s(t)&&(i[e.field]="string")),e.timeUnit&&(i[e.field]="date")}}),0===V(i).length?null:this.makeWithAncestors(e,{},i,n)}static makeImplicitFromEncoding(e,t,n){const i={};function r(e){var t;Hn(e)?i[e.field]="date":function(e){return"quantitative"===e.type||Xn(e.bin)}(e)&&((t=e.aggregate)&&s(t)&&R(["min","max"],t))?i[e.field]="number":ae(e.field)>1?e.field in i||(i[e.field]="flatten"):Dn(e)&&Po(e.sort)&&ae(e.sort.field)>1&&(e.sort.field in i||(i[e.sort.field]="flatten"))}return(zf(t)||Rf(t))&&t.forEachFieldDef((e,n)=>{if(Cn(e))r(e);else{const i=Dt(n);if(i===n)throw new Error(`Non-secondary channel ${n} must have type in its field definition ${JSON.stringify(e)}`);{const n=t.fieldDef(i);r(Object.assign({},e,{type:n.type}))}}}),this.makeWithAncestors(e,{},i,n)}static makeWithAncestors(e,t,n,i){for(const e of V(n)){const t=i.getWithExplicit(e);void 0!==t.value&&(t.explicit||t.value===n[e]||"derived"===t.value||"flatten"===n[e]?delete n[e]:Ht(Pt.differentParse(e,n[e],t.value)))}for(const e of V(t)){const n=i.get(e);void 0!==n&&(n===t[e]?delete t[e]:Ht(Pt.differentParse(e,t[e],n)))}const r=new rl(t,n);i.copyAll(r);const o={};for(const e of V(r.combine())){const t=r.get(e);null!==t&&(o[e]=t)}return 0===V(o).length||i.parseNothing?null:new Yl(e,o)}get parse(){return this._parse}merge(e){this._parse=Object.assign({},this._parse,e.parse),e.remove()}assembleFormatParse(){const e={};for(const t of V(this._parse)){const n=this._parse[t];1===ae(t)&&(e[t]=n)}return e}producedFields(){return new Set(V(this._parse))}dependentFields(){return new Set(V(this._parse))}assembleTransforms(e=!1){return V(this._parse).filter(t=>!e||ae(t)>1).map(e=>{const t=function(e,t){const n=ne(e);if("number"===t)return`toNumber(${n})`;if("boolean"===t)return`toBoolean(${n})`;if("string"===t)return`toString(${n})`;if("date"===t)return`toDate(${n})`;if("flatten"===t)return n;if(0===t.indexOf("date:"))return`timeParse(${n},'${Gl(t.slice(5,t.length))}')`;if(0===t.indexOf("utc:"))return`utcParse(${n},'${Gl(t.slice(4,t.length))}')`;return Ht(Pt.unrecognizedParse(t)),null}(e,this._parse[e]);return t?{type:"formula",expr:t,as:oe(e)}:null}).filter(e=>null!==e)}}class Vl extends la{constructor(e,t){super(e),this.transform=t}clone(){return new Vl(null,B(this.transform))}addDimensions(e){this.transform.groupby=q(this.transform.groupby.concat(e),e=>e)}dependentFields(){const e=new Set;return this.transform.groupby.forEach(t=>e.add(t)),this.transform.joinaggregate.map(e=>e.field).filter(e=>void 0!==e).forEach(t=>e.add(t)),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){return e.as||$n(e)}hash(){return`JoinAggregateTransform ${T(this.transform)}`}assemble(){const e=[],t=[],n=[];for(const i of this.transform.joinaggregate)t.push(i.op),n.push(this.getDefaultName(i)),e.push(void 0===i.field?null:i.field);const i=this.transform.groupby;return Object.assign({type:"joinaggregate",as:n,ops:t,fields:e},void 0!==i?{groupby:i}:{})}}class Ql extends la{clone(){return new Ql(null,B(this._stack))}constructor(e,t){super(e),this._stack=t}static makeFromTransform(e,t){const{stack:n,groupby:i,as:r,offset:a="zero"}=t,u=[],c=[];if(void 0!==t.sort)for(const e of t.sort)u.push(e.field),c.push(se(e.order,"ascending"));const l={field:u,order:c};let f;return f=function(e){return o(e)&&e.every(e=>s(e))&&e.length>1}(r)?r:s(r)?[r,r+"_end"]:[t.stack+"_start",t.stack+"_end"],new Ql(e,{stackField:n,groupby:i,offset:a,sort:l,facetby:[],as:f})}static makeFromEncoding(e,t){const n=t.stack,{encoding:i}=t;if(!n)return null;let r;if(n.groupbyChannel){r=Mn(i[n.groupbyChannel])}const a=function(e){return e.stack.stackBy.reduce((e,t)=>{const n=$n(t.fieldDef);return n&&e.push(n),e},[])}(t),s=t.encoding.order;let u;return u=o(s)||wn(s)?aa(s):a.reduce((e,t)=>(e.field.push(t),e.order.push("descending"),e),{field:[],order:[]}),new Ql(e,{dimensionFieldDef:r,stackField:t.vgField(n.fieldChannel),facetby:[],stackby:a,sort:u,offset:n.offset,impute:n.impute,as:[t.vgField(n.fieldChannel,{suffix:"start",forAs:!0}),t.vgField(n.fieldChannel,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;e.add(this._stack.stackField),this.getGroupbyFields().forEach(e.add),this._stack.facetby.forEach(e.add);const t=this._stack.sort.field;return o(t)?t.forEach(e.add):e.add(t),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${T(this._stack)}`}getGroupbyFields(){const{dimensionFieldDef:e,impute:t,groupby:n}=this._stack;return e?e.bin?t?[$n(e,{binSuffix:"mid"})]:[$n(e,{}),$n(e,{binSuffix:"end"})]:[$n(e)]:n||[]}assemble(){const e=[],{facetby:t,dimensionFieldDef:n,stackField:i,stackby:r,sort:o,offset:a,impute:s,as:u}=this._stack;return s&&n&&(n.bin&&e.push({type:"formula",expr:"("+$n(n,{expr:"datum"})+"+"+$n(n,{expr:"datum",binSuffix:"end"})+")/2",as:$n(n,{binSuffix:"mid",forAs:!0})}),e.push({type:"impute",field:i,groupby:[...r,...t],key:$n(n,{binSuffix:"mid"}),method:"value",value:0})),e.push({type:"stack",groupby:[...this.getGroupbyFields(),...t],field:i,sort:o,as:u,offset:a}),e}}class Xl extends la{constructor(e,t){super(e),this.transform=t}clone(){return new Xl(null,B(this.transform))}addDimensions(e){this.transform.groupby=q(this.transform.groupby.concat(e),e=>e)}dependentFields(){const e=new Set;return this.transform.groupby.forEach(t=>e.add(t)),this.transform.sort.forEach(t=>e.add(t.field)),this.transform.window.map(e=>e.field).filter(e=>void 0!==e).forEach(t=>e.add(t)),e}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){return e.as||$n(e)}hash(){return`WindowTransform ${T(this.transform)}`}assemble(){const e=[],t=[],n=[],i=[];for(const r of this.transform.window)t.push(r.op),n.push(this.getDefaultName(r)),i.push(void 0===r.param?null:r.param),e.push(void 0===r.field?null:r.field);const r=this.transform.frame,o=this.transform.groupby;if(r&&null===r[0]&&null===r[1]&&t.every(e=>ze(e)))return Object.assign({type:"joinaggregate",as:n,ops:t,fields:e},void 0!==o?{groupby:o}:{});const a=[],s=[];if(void 0!==this.transform.sort)for(const e of this.transform.sort)a.push(e.field),s.push(e.order||"ascending");const u={field:a,order:s},c=this.transform.ignorePeers;return Object.assign({type:"window",params:i,as:n,ops:t,fields:e,sort:u},void 0!==c?{ignorePeers:c}:{},void 0!==o?{groupby:o}:{},void 0!==r?{frame:r}:{})}}class Jl extends Pl{run(e){const t=e.parent;if(e instanceof Yl){if(t instanceof Tl)return this.flags;if(t.numChildren()>1)return this.setContinue(),this.flags;if(t instanceof Yl)this.setMutated(),t.merge(e);else{if(Y(t.producedFields(),e.dependentFields()))return this.setContinue(),this.flags;this.setMutated(),e.swapWithParent()}}return this.setContinue(),this.flags}}class Zl extends Ul{mergeNodes(e,t){const n=t.shift();for(const i of t)e.removeChild(i),i.parent=n,i.remove()}run(e){const t=e.children.map(e=>e.hash()),n={};for(let i=0;i<t.length;i++)void 0===n[t[i]]?n[t[i]]=[e.children[i]]:n[t[i]].push(e.children[i]);for(const t of V(n))n[t].length>1&&(this.setMutated(),this.mergeNodes(e,n[t]));for(const t of e.children)this.run(t);return this.mutatedFlag}}class Kl extends Pl{run(e){return e instanceof fa||e.numChildren()>0||e instanceof Wl?this.flags:(this.setMutated(),e.remove(),this.flags)}}class ef extends Pl{constructor(){super(...arguments),this.fields=new Set}run(e){if(this.setContinue(),e instanceof Uu){const t=e.producedFields();H(t,this.fields)?(this.setMutated(),e.remove()):this.fields=new Set([...this.fields,...t])}return this.flags}reset(){this.fields.clear()}}function tf(e){if(e instanceof Wl)if(1!==e.numChildren()||e.children[0]instanceof fa){const n=e.model.component.data.main;!function e(t){if(t instanceof fa&&t.type===Qr&&1===t.numChildren()){const n=t.children[0];n instanceof Wl||(n.swapWithParent(),e(t))}}(n);const i=(t=e,function e(n){if(!(n instanceof Wl)){const i=n.clone();if(i instanceof fa){const e=sf+i.getSource();i.setSource(e),t.model.component.data.outputNodes[e]=i}else(i instanceof Ll||i instanceof Ql||i instanceof Xl||i instanceof Vl)&&i.addDimensions(t.fields);return M(n.children.map(e)).forEach(e=>e.parent=i),[i]}return M(n.children.map(e))}),r=M(e.children.map(i));for(const e of r)e.parent=n}else{const t=e.children[0];(t instanceof Ll||t instanceof Ql||t instanceof Xl||t instanceof Vl)&&t.addDimensions(e.fields),t.swapWithParent(),tf(e)}else e.children.map(tf);var t}class nf extends Ul{run(e){e instanceof fa&&!e.isRequired()&&(this.setMutated(),e.remove());for(const t of e.children)this.run(t);return this.mutatedFlag}}class rf extends Pl{run(e){const t=e.parent,n=t.children.filter(e=>e instanceof Yl);if(n.length>1){const e={};for(const t of n){const n=t.parse;for(const t of V(n))void 0===e[t]?e[t]=n[t]:e[t]!==n[t]&&delete e[t]}if(0!==V(e).length){this.setMutated();const i=new Yl(t,e);for(const r of n){for(const t of V(e))delete r.parse[t];t.removeChild(r),r.parent=i,0===V(r.parse).length&&r.remove()}}}return this.setContinue(),this.flags}}class of extends Pl{run(e){const t=e.parent,n=t.children.filter(e=>e instanceof Ll),i={};for(const e of n){const t=T(V(e.groupBy).sort());t in i||(i[t]=[]),i[t].push(e)}for(const e of V(i)){const n=i[e];if(n.length>1){const e=n.pop();for(const i of n)e.merge(i)&&(t.removeChild(i),i.parent=e,i.remove(),this.setMutated())}}return this.setContinue(),this.flags}}class af extends Pl{constructor(e){super(),this.model=e}run(e){const t=e.parent,n=!(t instanceof Tl||t instanceof Hl||t instanceof Yl),i=[],r=[];for(const e of t.children)e instanceof ql&&(n&&!Y(t.producedFields(),e.dependentFields())?i.push(e):r.push(e));if(i.length>0){const e=i.pop();for(const t of i)e.merge(t,this.model.renameSignal.bind(this.model));this.setMutated(),t instanceof ql?t.merge(e,this.model.renameSignal.bind(this.model)):e.swapWithParent()}if(r.length>1){const e=r.pop();for(const t of r)e.merge(t,this.model.renameSignal.bind(this.model));this.setMutated()}return this.setContinue(),this.flags}}const sf="scale_",uf=5;function cf(e){const t=[];return e.forEach(function e(n){0===n.numChildren()?t.push(n):n.children.forEach(e)}),t}function lf(e){return e}function ff(e,t,n){return t.map(t=>{if(e instanceof Pl){const n=e.optimizeNextFromLeaves(t);return e.reset(),n}return e.run(t)}).some(lf)||n}function df(e,t){let n=e.sources,i=!1;return i=ff(new nf,n,i),n=n.filter(e=>e.numChildren()>0),i=ff(new Kl,cf(n),i),n=n.filter(e=>e.numChildren()>0),i=ff(new Jl,cf(n),i),i=ff(new af(t),cf(n),i),i=ff(new ef,cf(n),i),i=ff(new rf,cf(n),i),i=ff(new of,cf(n),i),i=ff(new Zl,n,i),e.sources=n,i}class pf{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,t){return new pf(()=>e(t))}}function hf(e){zf(e)?function(e){const t=e.specifiedScales,n=e.component.scales;V(n).forEach(i=>{const r=t[i],o=r?r.domain:void 0,a=function(e,t){const n=e.getScaleComponent(t).get("type"),i=function(e,t,n,i){if("unaggregated"===e){const{valid:e,reason:i}=yf(t,n);if(!e)return void Ht(i)}else if(void 0===e&&i.useUnaggregatedDomain){const{valid:e}=yf(t,n);if(e)return"unaggregated"}return e}(e.scaleDomain(t),e.fieldDef(t),n,e.config.scale);i!==e.scaleDomain(t)&&(e.specifiedScales[t]=Object.assign({},e.specifiedScales[t],{domain:i}));if("x"===t&&e.channelHasField("x2"))return e.channelHasField("x")?mf(n,i,e,"x").concat(mf(n,i,e,"x2")):mf(n,i,e,"x2");if("y"===t&&e.channelHasField("y2"))return e.channelHasField("y")?mf(n,i,e,"y").concat(mf(n,i,e,"y2")):mf(n,i,e,"y2");return mf(n,i,e,t)}(e,i),s=n[i];if(s.domains=a,er(o)&&s.set("domainRaw",{signal:Ku+T(o)},!0),e.component.data.isFaceted){let t=e;for(;!Rf(t)&&t.parent;)t=t.parent;const n=t.component.resolve.scale[i];if("shared"===n)for(const e of a)Fo(e)&&(e.data=sf+e.data.replace(sf,""))}})}(e):function(e){for(const t of e.children)hf(t);const t=e.component.scales;V(t).forEach(n=>{let i,r=null;for(const t of e.children){const e=t.component.scales[n];if(e){i=void 0===i?e.domains:i.concat(e.domains);const t=e.get("domainRaw");r&&t&&r.signal!==t.signal&&Ht("The same selection must be used to override scale domains in a layered view."),r=t}}t[n].domains=i,r&&t[n].set("domainRaw",r,!0)})}(e)}function mf(e,t,n,i){const r=n.fieldDef(i);if(t&&"unaggregated"!==t&&!er(t)){const{type:e,timeUnit:n}=r;return"temporal"===e||n?function(e,t,n){return e.map(e=>({signal:`{data: ${Gn(e,{timeUnit:n,type:t})}}`}))}(t,e,n):[t]}const o=n.stack;if(o&&i===o.fieldChannel){if("normalize"===o.offset)return[[0,1]];const e=n.requestDataName(Qr);return[{data:e,field:n.vgField(i,{suffix:"start"})},{data:e,field:n.vgField(i,{suffix:"end"})}]}const s=Tt(i)?function(e,t,n){if(!Qi(n))return;const i=e.fieldDef(t),r=i.sort;if(Uo(r))return{op:"min",field:nu(i,t),order:"ascending"};const o=null!==e.stack;if(Po(r))return gf(r,o);if(function(e){return!!e&&!!e.encoding}(r)){const{encoding:t,order:n}=r,{aggregate:i,field:a}=e.fieldDef(t),s={op:i,field:a,order:n};return gf(s,o)}if("descending"===r)return{op:"min",field:e.vgField(t),order:"descending"};if(R(["ascending",void 0],r))return!0;return}(n,i,e):void 0;if("unaggregated"===t){const e=n.requestDataName(Qr),{field:t}=r;return[{data:e,field:$n({field:t,aggregate:"min"})},{data:e,field:$n({field:t,aggregate:"max"})}]}if(Xn(r.bin)){if(Qi(e))return"bin-ordinal"===e?[]:[{data:J(s)?n.requestDataName(Qr):n.requestDataName(Xr),field:n.vgField(i,Vn(r,i)?{binSuffix:"range"}:{}),sort:!0!==s&&a(s)?s:{field:n.vgField(i,{}),op:"min"}}];if(Xn(r.bin)){const e=n.getName($n(r,{suffix:"bins"}));return[new pf(()=>{const t=n.getSignalName(e);return`[${t}.start, ${t}.stop]`})]}return[{data:n.requestDataName(Qr),field:n.vgField(i,{})}]}return s?[{data:J(s)?n.requestDataName(Qr):n.requestDataName(Xr),field:n.vgField(i),sort:s}]:[{data:n.requestDataName(Qr),field:n.vgField(i)}]}function gf(e,t){const{op:n,field:i,order:r}=e;return Object.assign({op:n||(t?"sum":Ro)},i?{field:re(i)}:{},r?{order:r}:{})}function yf(e,t){const{aggregate:n,type:i}=e;return n?s(n)&&!Me[n]?{valid:!1,reason:Pt.unaggregateDomainWithNonSharedDomainOp(n)}:"quantitative"===i&&"log"===t?{valid:!1,reason:Pt.unaggregatedDomainWithLogScale(e)}:{valid:!0}:{valid:!1,reason:Pt.unaggregateDomainHasNoEffectForRawField(e)}}function bf(e){if(Fo(e)&&s(e.field))return e.field;if(function(e){return!o(e)&&"fields"in e&&!("data"in e)}(e)){let t;for(const n of e.fields)if(Fo(n)&&s(n.field))if(t){if(t!==n.field)return Ht("Detected faceted independent scales that union domain of multiple fields from different data sources.  We will use the first field.  The result view size may be incorrect."),t}else t=n.field;return Ht("Detected faceted independent scales that union domain of identical fields from different source detected.  We will assume that this is the same field from a different fork of the same data source.  However, if this is not case, the result view size maybe incorrect."),t}if(function(e){return!o(e)&&"fields"in e&&"data"in e}(e)){Ht("Detected faceted independent scales that union domain of multiple fields from the same data source.  We will use the first field.  The result view size may be incorrect.");const t=e.fields[0];return s(t)?t:void 0}}function vf(e,t){return function(e){const t=q(e.map(e=>Fo(e)?Ne(e,["sort"]):e),T),n=q(e.map(e=>{if(Fo(e)){const t=e.sort;return void 0===t||J(t)||("count"===t.op&&delete t.field,"ascending"===t.order&&delete t.order),t}}).filter(e=>void 0!==e),T);if(0===t.length)return;if(1===t.length){const t=e[0];if(Fo(t)&&n.length>0){let e=n[0];return n.length>1&&(Ht(Pt.MORE_THAN_ONE_SORT),e=!0),Object.assign({},t,{sort:e})}return t}const i=q(n.map(e=>J(e)?e:"count"===e.op?e:(Ht(Pt.domainSortDropped(e)),!0)),T);let r;1===i.length?r=i[0]:i.length>1&&(Ht(Pt.MORE_THAN_ONE_SORT),r=!0);const o=q(e.map(e=>Fo(e)?e.data:null),e=>e);if(1===o.length&&null!==o[0])return Object.assign({data:o[0],fields:t.map(e=>e.field)},r?{sort:r}:{});return Object.assign({fields:t},r?{sort:r}:{})}(e.component.scales[t].domains.map(t=>(Fo(t)&&(t.data=e.lookupDataSource(t.data)),t)))}function xf(e){return V(e.component.scales).reduce((t,n)=>{const i=e.component.scales[n];if(i.merged)return t;const r=i.combine();let{domainRaw:o}=r;const{name:a,type:s,domainRaw:c,range:l}=r,f=Ne(r,["name","type","domainRaw","range"]),d=function(e,t,n){if(("x"===n||"y"===n)&&Co(e))return{step:{signal:t+"_step"}};return e}(r.range,a,n);o&&function(e){return e.signal.indexOf(Ku)>=0}(o)&&(o=function(e,t){const n=JSON.parse(t.signal.replace(Ku,"")),i=Z(n.selection),r=n.encoding;let o=n.field,a=e.component.selection&&e.component.selection[i];if(!a){if(a=e.getSelectionComponent(i,n.selection),r||o){if(r&&!o){const e=a.project.items.filter(e=>e.channel===r);!e.length||e.length>1?(o=a.project.items[0].field,Ht((e.length?"Multiple ":"No ")+`matching ${u(r)} encoding found for selection ${u(n.selection)}. `+`Using "field": ${u(o)}.`)):o=e[0].field}}else o=a.project.items[0].field,a.project.items.length>1&&Ht('A "field" or "encoding" must be specified when using a selection as a scale domain. '+`Using "field": ${u(o)}.`);return{signal:ne(o,i)}}return Ht('Use "bind": "scales" to setup a binding for scales and selections within the same view.'),{signal:"null"}}(e,o));const p=vf(e,n);return t.push(Object.assign({name:a,type:s},p?{domain:p}:{},o?{domainRaw:o}:{},{range:d},f)),t},[])}class Af extends rl{constructor(e,t){super({},{name:e}),this.merged=!1,this.domains=[],this.setWithExplicit("type",t)}get domainDefinitelyIncludesZero(){if(!1!==this.get("zero"))return!0;const e=this.domains;return!!o(e)&&P(e,e=>o(e)&&2===e.length&&e[0]<=0&&e[1]>=0)}}const wf=["range","rangeStep","scheme"];function Cf(e){return"x"===e?"width":"y"===e?"height":void 0}function Ff(e){const t=e.component.scales;_t.forEach(n=>{const i=t[n];if(!i)return;const r=e.getScaleComponent(n),a=e.specifiedScales[n],s=e.fieldDef(n),u=Cf(n);let c=u?!!e.component.layoutSize.get(u):void 0;const l=r.get("type"),f=R(["point","band"],l)||!!a.rangeStep;u&&e.fit&&!c&&f&&(Ht(Pt.CANNOT_FIX_RANGE_STEP_WITH_FIT),c=!0);const d=function(e){const t=[];for(const n of $t){const i=Ef(e,n);void 0!==i&&t.push(i)}return t}(e),p=function(e,t,n,i,r,a,s,u,c,l,f){const d=c||null===r.rangeStep;for(const t of wf)if(void 0!==r[t]){const i=nr(n,t),o=ir(e,t);if(i)if(o)Ht(o);else switch(t){case"range":return ol(r[t]);case"scheme":return ol(Df(r[t]));case"rangeStep":{const n=r[t];if(null!==n){if(!c)return ol({step:n});Ht(Pt.rangeStepDropped(e))}}}else Ht(Pt.scalePropertyNotWorkWithScaleType(n,t,e))}return al(function(e,t,n,i,r,a,s,u,c,l,f){switch(e){case We:case He:if(R(["point","band"],n)&&!l)if(e===We&&"text"===s){if(r.scale.textXRangeStep)return{step:r.scale.textXRangeStep}}else if(r.scale.rangeStep)return{step:r.scale.rangeStep};return e===He&&Xi(n)?[pf.fromName(t,u),0]:[0,pf.fromName(t,u)];case nt:{const t=function(e,t,n){if(t)return 0;switch(e){case"bar":case"tick":return n.scale.minBandSize;case"line":case"trail":case"rule":return n.scale.minStrokeWidth;case"text":return n.scale.minFontSize;case"point":case"square":case"circle":return n.scale.minSize}throw new Error(Pt.incompatibleChannel("size",e))}(s,a,r),i=function(e,t,n){const i=n.scale;switch(e){case"bar":case"tick":{if(void 0!==n.scale.maxBandSize)return n.scale.maxBandSize;const e=kf(t,n.scale);return v(e)?e-1:new pf(()=>`${e.signal} - 1`)}case"line":case"trail":case"rule":return n.scale.maxStrokeWidth;case"text":return n.scale.maxFontSize;case"point":case"square":case"circle":{if(n.scale.maxSize)return n.scale.maxSize;const e=kf(t,i);return v(e)?Math.pow(Sf*e,2):new pf(()=>`pow(${Sf} * ${e.signal}, 2)`)}}throw new Error(Pt.incompatibleChannel("size",e))}(s,c,r);return Zi(n)?function(e,t,n){const i=()=>{const i=wo(t)?t.signal:t,r=`(${i} - ${e}) / (${n} - 1)`;return`sequence(${e}, ${t} + ${r}, ${r})`};return wo(t)?new pf(i):{signal:i()}}(t,i,function(e,t,n,i){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return void 0!==n&&o(n)?n.length+1:(Ht(Pt.domainRequiredForThresholdScale(i)),3)}}(n,r,f,e)):[t,i]}case at:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case tt:return"symbol";case Ze:case Ke:case et:return"ordinal"===n?"nominal"===i?"category":"ordinal":"rect"===s||"geoshape"===s?"heatmap":"ramp";case it:case rt:case ot:return[r.scale.minOpacity,r.scale.maxOpacity]}throw new Error(`Scale range undefined for channel ${e}`)}(e,t,n,i,a,s,u,l,f,d,r.domain))}(n,e.getSignalName.bind(e),l,s.type,a,e.config,i.get("zero"),e.mark,c,e.getName(u),d);i.setWithExplicit("range",p)})}function Ef(e,t){const n=e.getScaleComponent(t);if(!n)return;const i=n.get("type"),r=e.fieldDef(t);if(Qi(i)){const e=n&&n.get("range");if(e&&Co(e)&&v(e.step))return e.step}else if(r&&r.bin&&Xn(r.bin)){const n=e.getName($n(r,{suffix:"bins"})),i=Cf(t),o=e.getName(i);return new pf(()=>{const t=e.getSignalName(n),i=`(${t}.stop - ${t}.start) / ${t}.step`;return`${e.getSignalName(o)} / (${i})`})}}function Df(e){return function(e){return e&&!!e.name}(e)?Object.assign({scheme:e.name},j(e,["name"])):{scheme:e}}const Sf=.95;function kf(e,t){if(e.length>0){let t=1/0;for(const n of e)wo(n)?t=void 0:void 0!==t&&n<t&&(t=n);return void 0!==t?t:new pf(()=>{return`min(${e.map(e=>wo(e)?e.signal:e).join(", ")})`})}return t.rangeStep?t.rangeStep:21}function Of(e,t){zf(e)?function(e,t){const n=e.component.scales;V(n).forEach(i=>{const r=e.specifiedScales[i],a=n[i],s=e.getScaleComponent(i),u=e.fieldDef(i),c=e.config,l=r[t],f=s.get("type"),d=nr(f,t),p=ir(i,t);if(void 0!==l&&(d?p&&Ht(p):Ht(Pt.scalePropertyNotWorkWithScaleType(f,t,i))),d&&void 0===p)if(void 0!==l)a.copyKeyFromObject(t,r);else{const n=function(e,t,n,i,r,a,s,u,c,l){const f=l.scale,{type:d,sort:p}=i;switch(e){case"bins":return function(e,t){const n=t.bin;if(Xn(n)){const n=e.getName($n(t,{suffix:"bins"}));return new pf(()=>e.getSignalName(n))}if(Jn(n)&&Zn(n)&&void 0!==n.step)return{step:n.step};return}(t,i);case"interpolate":return function(e,t){if(R([Ze,Ke,et],e)&&"nominal"!==t)return"hcl";return}(n,d);case"nice":return function(e,t,n){if(n.bin||R([Pi.TIME,Pi.UTC],e))return;return!!R([We,He],t)||void 0}(r,n,i);case"padding":return function(e,t,n,i,r,o){if(R([We,He],e)){if(Ji(t)){if(void 0!==n.continuousPadding)return n.continuousPadding;const{type:t,orient:a}=r;if("bar"===t&&!i.bin&&("vertical"===a&&"x"===e||"horizontal"===a&&"y"===e))return o.continuousBandSize}if(t===Pi.POINT)return n.pointPadding}return}(n,r,f,i,c,l.bar);case"paddingInner":return function(e,t,n,i){if(void 0!==e)return;if(R([We,He],t)){const{bandPaddingInner:e,barBandPaddingInner:t,rectBandPaddingInner:r}=i;return se(e,"bar"===n?t:r)}return}(a,n,c.type,f);case"paddingOuter":return function(e,t,n,i,r,o){if(void 0!==e)return;if(R([We,He],t)&&n===Pi.BAND){const{bandPaddingOuter:e,barBandPaddingOuter:t,rectBandPaddingOuter:n}=o;return se(e,"bar"===i?t:n,r/2)}return}(a,n,r,c.type,s,f);case"reverse":return function(e,t){if(Xi(e)&&"descending"===t)return!0;return}(r,p);case"zero":return function(e,t,n,i,r){if(n&&"unaggregated"!==n&&Xi(r)){if(o(n)){const e=n[0],t=n[n.length-1];if(e<=0&&t>=0)return!0}return!1}if("size"===e&&"quantitative"===t.type&&!Zi(r))return!0;if(!t.bin&&R([We,He],e)){const{orient:t,type:n}=i;return!R(["bar","area","line","trail"],n)||!("horizontal"===t&&"y"===e||"vertical"===t&&"x"===e)}return!1}(n,i,u,c,r)}return f[e]}(t,e,i,u,s.get("type"),s.get("padding"),s.get("paddingInner"),r.domain,e.markDef,c);void 0!==n&&a.set(t,n,!1)}})}(e,t):Bf(e,t)}function $f(e){zf(e)?Ff(e):Bf(e,"range")}function Bf(e,t){const n=e.component.scales;for(const n of e.children)"range"===t?$f(n):Of(n,t);V(n).forEach(i=>{let r;for(const n of e.children){const e=n.component.scales[i];if(e){r=cl(r,e.getWithExplicit(t),t,"scale",sl((e,n)=>{switch(t){case"range":return e.step&&n.step?e.step-n.step:0}return 0}))}}n[i].setWithExplicit(t,r)})}function Nf(e,t,n,i){const r=function(e,t,n){switch(t.type){case"nominal":case"ordinal":if(gt(e)||"discrete"===Rt(e))return"shape"===e&&"ordinal"===t.type&&Ht(Pt.discreteChannelCannotEncode(e,"ordinal")),"ordinal";if(R(["x","y"],e)){if(R(["rect","bar","rule"],n))return"band";if("bar"===n)return"band"}return"point";case"temporal":return gt(e)?"time":"discrete"===Rt(e)?(Ht(Pt.discreteChannelCannotEncode(e,"temporal")),"ordinal"):"time";case"quantitative":return gt(e)?Xn(t.bin)?"bin-ordinal":"linear":"discrete"===Rt(e)?(Ht(Pt.discreteChannelCannotEncode(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(Pt.invalidFieldType(t.type))}(t,n,i),{type:o}=e;return Tt(t)?void 0!==o?or(t,o)?rr(o,n.type)?o:(Ht(Pt.scaleTypeNotWorkWithFieldDef(o,r)),r):(Ht(Pt.scaleTypeNotWorkWithChannel(t,o,r)),r):r:null}function jf(e){zf(e)?e.component.scales=function(e){const{encoding:t,mark:n}=e;return _t.reduce((i,r)=>{let o,a;const s=t[r];if(wn(s)&&n===Fe&&r===tt&&s.type===bn)return i;if(wn(s)?(o=s,a=s.scale):An(s)&&(o=s.condition,a=s.condition.scale),o&&null!==a&&!1!==a){const t=Nf(a=a||{},r,o,n);i[r]=new Af(e.scaleName(r+"",!0),{value:t,explicit:a.type===t})}return i},{})}(e):e.component.scales=function(e){const t=e.component.scales={},n={},i=e.component.resolve;for(const t of e.children)jf(t),V(t.component.scales).forEach(r=>{if(i.scale[r]=i.scale[r]||nl(r,e),"shared"===i.scale[r]){const e=n[r],o=t.component.scales[r].getWithExplicit("type");e?Li(e.value,o.value)?n[r]=cl(e,o,"type","scale",_f):(i.scale[r]="independent",delete n[r]):n[r]=o}});return V(n).forEach(i=>{const r=e.scaleName(i,!0),o=n[i];t[i]=new Af(r,o);for(const t of e.children){const e=t.component.scales[i];e&&(t.renameScale(e.get("name"),r),e.merged=!0)}}),t}(e)}const _f=sl((e,t)=>qi(e)-qi(t));class Tf{constructor(){this.nameMap={}}rename(e,t){this.nameMap[e]=t}has(e){return void 0!==this.nameMap[e]}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function zf(e){return e&&"unit"===e.type}function Rf(e){return e&&"facet"===e.type}function Pf(e){return e&&"repeat"===e.type}function Uf(e){return e&&"concat"===e.type}function Mf(e){return e&&"layer"===e.type}class Lf{constructor(e,t,n,i,r,a,u,c){this.type=t,this.parent=n,this.config=r,this.repeater=a,this.view=c,this.children=[],this.correctDataNames=e=>(e.from&&e.from.data&&(e.from.data=this.lookupDataSource(e.from.data)),e.from&&e.from.facet&&e.from.facet.data&&(e.from.facet.data=this.lookupDataSource(e.from.facet.data)),e),this.parent=n,this.config=r,this.repeater=a,this.name=e.name||i,this.title=s(e.title)?{text:e.title}:e.title,this.scaleNameMap=n?n.scaleNameMap:new Tf,this.projectionNameMap=n?n.projectionNameMap:new Tf,this.signalNameMap=n?n.signalNameMap:new Tf,this.data=e.data,this.description=e.description,this.transforms=(e.transform||[]).map(e=>uo(e)?{filter:O(e.filter,so)}:e),this.layout=$e(e)||Cr(e)?{}:function(e,t,n){const i=n[t],r={},{spacing:a,columns:s}=i;void 0!==a&&(r.spacing=a),void 0!==s&&(tn(e)&&!en(e.facet)||pr(e)&&o(e.repeat)||lr(e))&&(r.columns=s);for(const t of hr)if(void 0!==e[t])if("spacing"===t){const n=e[t];r[t]=v(n)?n:{row:n.row||a,column:n.column||a}}else r[t]=e[t];return r}(e,t,r),this.component={data:{sources:n?n.component.data.sources:[],outputNodes:n?n.component.data.outputNodes:{},outputNodeRefCounts:n?n.component.data.outputNodeRefCounts:{},isFaceted:tn(e)||n&&n.component.data.isFaceted&&!e.data},layoutSize:new rl,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},u?B(u):{}),selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}initSize(e){const{width:t,height:n}=e;t&&this.component.layoutSize.set("width",t,!0),n&&this.component.layoutSize.set("height",n,!0)}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){!function(e){jf(e),hf(e);for(const t of tr)Of(e,t);$f(e)}(this)}parseProjection(){_l(this)}renameTopLevelLayoutSizeSignal(){"width"!==this.getName("width")&&this.renameSignal(this.getName("width"),"width"),"height"!==this.getName("height")&&this.renameSignal(this.getName("height"),"height")}parseLegends(){Fl(this)}assembleGroupStyle(){if("unit"===this.type||"layer"===this.type)return this.view&&this.view.style||"cell"}assembleEncodeFromView(e){const t=Ne(e,["style"]),n={};for(const e in t)if(t.hasOwnProperty(e)){const i=t[e];void 0!==i&&(n[e]={value:i})}return n}assembleGroupEncodeEntry(e){let t=void 0;return this.view&&(t=this.assembleEncodeFromView(this.view)),e||"unit"!==this.type&&"layer"!==this.type?t:Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},t||{})}assembleLayout(){if(!this.layout)return;const e=this.layout,{spacing:t}=e,n=Ne(e,["spacing"]),{component:i,config:r}=this,o=function(e,t){const n={};for(const i of bt){const r=e[i];if(r&&r.facetFieldDef){const{titleAnchor:e,titleOrient:o}=ou(["titleAnchor","titleOrient"],r.facetFieldDef,t,i),a=iu(i,o),s=gu(e,a);void 0!==s&&(n[a]=s)}}return V(n).length>0?n:void 0}(i.layoutHeaders,r);return Object.assign({padding:t},this.assembleDefaultLayout(),n,o?{titleBand:o}:{})}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let t=[];for(const n of bt)e[n].title&&t.push(uu(this,n));for(const e of au)t=t.concat(fu(this,e));return t}assembleAxes(){return function(e,t){const{x:n=[],y:i=[]}=e;return[...n.map(e=>Bo(e,"main",t)),...n.map(e=>Bo(e,"grid",t)),...i.map(e=>Bo(e,"main",t)),...i.map(e=>Bo(e,"grid",t))].filter(e=>e)}(this.component.axes,this.config)}assembleLegends(){return Ol(this)}assembleProjections(){return $l(this)}assembleTitle(){const e=this.title||{},{encoding:t}=e,n=Ne(e,["encoding"]),i=Object.assign({},mr(this.config.title).nonMark,n,t?{encode:{update:t}}:{});if(i.text)return R(["unit","layer"],this.type)?R(["middle",void 0],i.anchor)&&(i.frame=i.frame||"group"):i.anchor=i.anchor||"start",V(i).length>0?i:void 0}assembleGroup(e=[]){const t={};(e=e.concat(this.assembleSignals())).length>0&&(t.signals=e);const n=this.assembleLayout();n&&(t.layout=n),t.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||Rf(this.parent)?function e(t){return Mf(t)||Uf(t)||Pf(t)?t.children.reduce((t,n)=>t.concat(e(n)),xf(t)):xf(t)}(this):[];i.length>0&&(t.scales=i);const r=this.assembleAxes();r.length>0&&(t.axes=r);const o=this.assembleLegends();return o.length>0&&(t.legends=o),t}hasDescendantWithFieldOnChannel(e){for(const t of this.children)if(zf(t)){if(t.channelHasField(e))return!0}else if(t.hasDescendantWithFieldOnChannel(e))return!0;return!1}getName(e){return Z((this.name?this.name+"_":"")+e)}requestDataName(e){const t=this.getName(e),n=this.component.data.outputNodeRefCounts;return n[t]=(n[t]||0)+1,t}getSizeSignalRef(e){if(Rf(this.parent)){const t="width"===e?"x":"y",n=this.component.scales[t];if(n&&!n.merged){const e=n.get("type"),i=n.get("range");if(Qi(e)&&Co(i)){const e=n.get("name"),i=bf(vf(this,t));if(i){return{signal:Au(e,n,$n({aggregate:"distinct",field:i},{expr:"datum"}))}}return Ht("Unknown field for ${channel}.  Cannot calculate view size."),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const t=this.component.data.outputNodes[e];return t?t.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,t){this.signalNameMap.rename(e,t)}renameScale(e,t){this.scaleNameMap.rename(e,t)}renameProjection(e,t){this.projectionNameMap.rename(e,t)}scaleName(e,t){return t?this.getName(e):Ct(e)&&Tt(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e))?this.scaleNameMap.get(this.getName(e)):void 0}projectionName(e){return e?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale().  Make sure you have called parseScale or use parseUnitModelWithScale().");const t=this.component.scales[e];return t&&!t.merged?t:this.parent?this.parent.getScaleComponent(e):void 0}getSelectionComponent(e,t){let n=this.component.selection[e];if(!n&&this.parent&&(n=this.parent.getSelectionComponent(e,t)),!n)throw new Error(Pt.selectionNotFound(t));return n}}class If extends Lf{vgField(e,t={}){const n=this.fieldDef(e);if(n)return $n(n,t)}reduceFieldDef(e,t,n){return ai(this.getMapping(),(t,n,i)=>{const r=Un(n);return r?e(t,r,i):t},t,n)}forEachFieldDef(e,t){oi(this.getMapping(),(t,n)=>{const i=Un(t);i&&e(i,n)},t)}}class qf extends la{constructor(e,t){super(e),this.fieldDefs=t}clone(){return new qf(null,Object.assign({},this.fieldDefs))}static make(e,t){const{config:n,mark:i}=t;if("filter"!==n.invalidValues)return null;const r=t.reduceFieldDef((e,n,r)=>{const o=Tt(r)&&t.getScaleComponent(r);if(o){!Xi(o.get("type"))||n.aggregate||Ee(i)||(e[n.field]=n)}return e},{});return V(r).length?new qf(e,r):null}get filter(){return this.fieldDefs}assemble(){const e=V(this.filter).reduce((e,t)=>{const n=this.fieldDefs[t],i=$n(n,{expr:"datum"});return null!==n&&(e.push(`${i} !== null`),e.push(`!isNaN(${i})`)),e},[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}class Wf extends la{constructor(e,t){super(e),this.transform=t,this.transform=B(t);const{flatten:n,as:i=[]}=this.transform;this.transform.as=n.map((e,t)=>i[t]||e)}clone(){return new Wf(this.parent,B(this.transform))}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${T(this.transform)}`}assemble(){const{flatten:e,as:t}=this.transform;return{type:"flatten",fields:e,as:t}}}class Hf extends la{constructor(e,t){super(e),this.transform=t,this.transform=B(t);const n=this.transform.as||[void 0,void 0];this.transform.as=[n[0]||"key",n[1]||"value"]}clone(){return new Hf(null,B(this.transform))}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${T(this.transform)}`}assemble(){const{fold:e,as:t}=this.transform;return{type:"fold",fields:e,as:t}}}class Gf extends la{constructor(e,t,n,i){super(e),this.fields=t,this.geojson=n,this.signal=i}clone(){return new Gf(null,B(this.fields),this.geojson,this.signal)}static parseAll(e,t){if(t.component.projection&&!t.component.projection.isFit)return e;let n=0;if([[Qe,Ve],[Je,Xe]].forEach(i=>{const r=i.map(e=>t.channelHasField(e)?t.fieldDef(e).field:En(t.encoding[e])?{expr:t.encoding[e].value+""}:void 0);(r[0]||r[1])&&(e=new Gf(e,r,null,t.getName(`geojson_${n++}`)))}),t.channelHasField(tt)){const i=t.fieldDef(tt);i.type===bn&&(e=new Gf(e,null,i.field,t.getName(`geojson_${n++}`)))}return e}assemble(){return Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{},this.geojson?{geojson:this.geojson}:{},{signal:this.signal})}}class Yf extends la{constructor(e,t,n,i){super(e),this.projection=t,this.fields=n,this.as=i}clone(){return new Yf(null,this.projection,B(this.fields),B(this.as))}static parseAll(e,t){return t.projectionName()?([[Qe,Ve],[Je,Xe]].forEach(n=>{const i=n.map(e=>t.channelHasField(e)?t.fieldDef(e).field:En(t.encoding[e])?{expr:t.encoding[e].value+""}:void 0),r=n[0]===Je?"2":"";(i[0]||i[1])&&(e=new Yf(e,t.projectionName(),i,[t.getName("x"+r),t.getName("y"+r)]))}),e):e}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Vf extends la{constructor(e,t){super(e),this.params=t}clone(){return new Vf(null,this.params)}assemble(){return Object.assign({type:"graticule"},!0===this.params?{}:this.params)}}class Qf extends la{clone(){return new Qf(null)}constructor(e){super(e)}producedFields(){return new Set([sr])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:sr}}}function Xf(e,t){const{config:n,encoding:i,markDef:r}=e,o=r.orient,a=i.size,s="x"===t?"horizontal"===o:"vertical"===o,u="x"===t?"x2":"y2",c=i[t],l=i[u],f=e.scaleName(t),d=e.getScaleComponent(t),p=se(r.binSpacing,n.bar.binSpacing),h=d?d.get("reverse"):void 0;if(wn(c)&&Jn(c.bin))return Zc({fieldDef:c,fieldDef2:l,channel:t,mark:"bar",scaleName:f,spacing:p,reverse:h});if(s||l)return Object.assign({},Kc(t,e,"zeroOrMin"),el(e,"zeroOrMin",u));{const i="x"===t?"width":"height";if(wn(c)){const o=d.get("type");if(Xn(c.bin)&&!a&&!Qi(o))return Zc({fieldDef:c,channel:t,scaleName:f,mark:"bar",spacing:p,reverse:h});if(o===Pi.BAND)return Xc(c,t,e,Jf(r,i,f,d,n))}return Jc(t,e,Rc(e[i]),Jf(r,i,f,d,n))}}function Jf(e,t,n,i,r){const o=se(e[t],e.size,Zo("size",e,r,{vgChannel:t}));if(void 0!==o)return{value:o};if(i){const e=i.get("type");if("point"!==e&&"band"!==e)return{value:r.bar.continuousBandSize};if(void 0!==r.bar.discreteBandSize)return{value:r.bar.discreteBandSize};if(e!==Pi.POINT)return Nc(n);{const e=i.get("range");if(Co(e)&&v(e.step))return{value:e.step-1};Ht(Pt.BAR_WITH_POINT_SCALE_AND_RANGESTEP_NULL)}}return{value:se(r.bar.discreteBandSize,r.scale.rangeStep?r.scale.rangeStep-1:void 0,20)}}function Zf(e,t){const{config:n,width:i,height:r}=e;return Object.assign({},Lc(e,{size:"include",orient:"ignore"}),Kc("x",e,Rc(i)),Kc("y",e,Rc(r)),Gc("size",e),function(e,t,n){if(n)return{shape:{value:n}};return Gc("shape",e)}(e,0,t))}function Kf(e,t){const n="x"===t?"x2":"y2",i=e.encoding[t],r=e.encoding[n],o=e.getScaleComponent(t),a=o?o.get("type"):void 0,s=e.scaleName(t);if(wn(i)&&(Xn(i.bin)||Jn(i.bin)))return Zc({fieldDef:i,fieldDef2:r,channel:t,mark:"rect",scaleName:s,spacing:0,reverse:o.get("reverse")});if(wn(i)&&o&&Qi(a)){if(a===Pi.BAND)return Xc(i,t,e);throw new Error(Pt.scaleTypeNotWorkWithMark(ye,a))}return Object.assign({},Kc(t,e,"zeroOrMax"),el(e,"zeroOrMin",n))}function ed(e){const{config:t,markDef:n}=e,{orient:i}=n,r="horizontal"===i?"width":"height",o=e.getScaleComponent("horizontal"===i?"x":"y"),a=se(n[r],n.size,Zo("size",n,t,{vgChannel:r}),t.tick.bandSize);if(void 0!==a)return a;{const e=o?o.get("range"):void 0,n=e&&Co(e)?e.step:t.scale.rangeStep;if("number"!=typeof n)throw new Error("Function does not handle non-numeric rangeStep");return 3*n/4}}const td={area:{vgMark:"area",encodeEntry:e=>Object.assign({},Lc(e,{size:"ignore",orient:"include"}),Kc("x",e,"zeroOrMin"),Kc("y",e,"zeroOrMin"),el(e,"zeroOrMin","horizontal"===e.markDef.orient?"x2":"y2"),Hc(e))},bar:{vgMark:"rect",encodeEntry:e=>Object.assign({},Lc(e,{size:"ignore",orient:"ignore"}),Xf(e,"x"),Xf(e,"y"))},circle:{vgMark:"symbol",encodeEntry:e=>Zf(e,"circle")},geoshape:{vgMark:"shape",encodeEntry:e=>Object.assign({},Lc(e,{size:"ignore",orient:"ignore"})),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[Object.assign({type:"geoshape",projection:e.projectionName()},n&&wn(n)&&n.type===bn?{field:$n(n,{expr:"datum"})}:{})]}},line:{vgMark:"line",encodeEntry:e=>{const{width:t,height:n}=e;return Object.assign({},Lc(e,{size:"ignore",orient:"ignore"}),Kc("x",e,Rc(t)),Kc("y",e,Rc(n)),Gc("size",e,{vgChannel:"strokeWidth"}),Hc(e))}},point:{vgMark:"symbol",encodeEntry:e=>Zf(e)},rect:{vgMark:"rect",encodeEntry:e=>Object.assign({},Lc(e,{size:"ignore",orient:"ignore"}),Kf(e,"x"),Kf(e,"y"))},rule:{vgMark:"rule",encodeEntry:e=>{const{markDef:t,width:n,height:i}=e,r=t.orient;return e.encoding.x||e.encoding.y||e.encoding.latitude||e.encoding.longitude?Object.assign({},Lc(e,{size:"ignore",orient:"ignore"}),Kc("x",e,"horizontal"===r?"zeroOrMin":Rc(n)),Kc("y",e,"vertical"===r?"zeroOrMin":Rc(i)),"vertical"!==r?el(e,"zeroOrMax","x2"):{},"horizontal"!==r?el(e,"zeroOrMax","y2"):{},Gc("size",e,{vgChannel:"strokeWidth"})):{}}},square:{vgMark:"symbol",encodeEntry:e=>Zf(e,"square")},text:{vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n,width:i,height:r}=e;return Object.assign({},Lc(e,{size:"ignore",orient:"ignore"}),Kc("x",e,Rc(i)),Kc("y",e,Rc(r)),Qc(e),Gc("size",e,{vgChannel:"fontSize"}),qc("align",function(e,t,n){if(void 0===(e.align||Zo("align",e,n)))return"center";return}(e.markDef,0,t)),qc("baseline",function(e,t,n){if(void 0===(e.baseline||Zo("baseline",e,n)))return"middle";return}(e.markDef,0,t)))}},tick:{vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n,width:i,height:r}=e,o=n.orient,a="horizontal"===o?"width":"height",s="horizontal"===o?"height":"width";return Object.assign({},Lc(e,{size:"ignore",orient:"ignore"}),Kc("x",e,Rc(i),"xc"),Kc("y",e,Rc(r),"yc"),Gc("size",e,{defaultValue:ed(e),vgChannel:a}),{[s]:{value:se(n.thickness,t.tick.thickness)}})}},trail:{vgMark:"trail",encodeEntry:e=>{const{width:t,height:n}=e;return Object.assign({},Lc(e,{size:"include",orient:"ignore"}),Kc("x",e,Rc(t)),Kc("y",e,Rc(n)),Gc("size",e),Hc(e))}}};function nd(e){return R([me,pe,Ae],e.mark)?function(e){const t=od(e.mark,e.encoding),n=rd(e,{fromPrefix:t.length>0?id:""});return t.length>0?[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:id+e.requestDataName(Qr),data:e.requestDataName(Qr),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:n}]:n}(e):rd(e)}const id="faceted_path_";function rd(e,t={fromPrefix:""}){const n=e.mark,i=se(e.markDef.clip,function(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return!!(t&&t.get("domainRaw")||n&&n.get("domainRaw"))||void 0}(e),function(e){const t=e.component.projection;return!(!t||t.isFit)||void 0}(e)),r=Jo(e.markDef),a=e.encoding.key,s=function(e){const{encoding:t,stack:n,mark:i,markDef:r,config:a}=e,s=t.order;if(!(!o(s)&&En(s)&&z(s.value)||!s&&z(r.order)||z(Zo("order",r,a)))){if((o(s)||wn(s))&&!n)return aa(s,{expr:"datum"});if(Ee(i)){const n=t["horizontal"===r.orient?"y":"x"];if(wn(n)){const t=n.sort;return{field:Po(t)?$n({aggregate:ti(e.encoding)?t.op:void 0,field:t.field},{expr:"datum"}):$n(n,{binSuffix:e.stack&&e.stack.impute?"mid":void 0,expr:"datum"}),order:"descending"}}}}}(e),u=td[n].postEncodingTransform?td[n].postEncodingTransform(e):null;return[Object.assign({name:e.getName("marks"),type:td[n].vgMark},i?{clip:!0}:{},r?{style:r}:{},a?{key:{field:a.field}}:{},s?{sort:s}:{},{from:{data:t.fromPrefix+e.requestDataName(Qr)},encode:{update:td[n].encodeEntry(e)}},u?{transform:u}:{})]}function od(e,t){return V(t).reduce((n,i)=>{switch(i){case"x":case"y":case"order":case"href":case"x2":case"y2":case"latitude":case"longitude":case"latitude2":case"longitude2":case"text":case"shape":case"tooltip":return n;case"detail":case"key":{const e=t[i];return(o(e)||wn(e))&&(o(e)?e:[e]).forEach(e=>{e.aggregate||n.push($n(e,{}))}),n}case"size":if("trail"===e)return n;case"color":case"fill":case"stroke":case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeWidth":{const e=Mn(t[i]);return e&&!e.aggregate&&n.push($n(e,{})),n}default:throw new Error(`Bug: Channel ${i} unimplemented for line mark`)}},[])}class ad extends la{constructor(e,t){super(e),this.transform=t}clone(){return new ad(null,B(this.transform))}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:t=0,stop:n,step:i}=e;return{signal:`sequence(${[t,n,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,t){return new ad(e,t)}static makeFromEncoding(e,t){const n=t.encoding,i=n.x,r=n.y;if(wn(i)&&wn(r)){const o=i.impute?i:r.impute?r:void 0;if(void 0===o)return;const a=i.impute?r:r.impute?i:void 0,{method:s,value:u,frame:c,keyvals:l}=o.impute,f=od(t.mark,n);return new ad(e,Object.assign({impute:o.field,key:a.field},s?{method:s}:{},void 0!==u?{value:u}:{},c?{frame:c}:{},void 0!==l?{keyvals:l}:{},f.length?{groupby:f}:{}))}return null}hash(){return`Impute ${T(this.transform)}`}assemble(){const{impute:e,key:t,keyvals:n,method:i,groupby:r,value:o,frame:a=[null,null]}=this.transform,s=Object.assign({type:"impute",field:e,key:t},n?{keyvals:(u=n,u&&void 0!==u.start&&void 0!==u.stop?this.processSequence(n):n)}:{},{method:"value"},r?{groupby:r}:{},{value:null});var u;let c;if(i&&"value"!==i){c=[Object.assign({type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:a,ignorePeers:!1},r?{groupby:r}:{}),{type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e}]}else{c=[{type:"formula",expr:`datum.${e} === null ? ${o} : datum.${e}`,as:e}]}return[s,...c]}}class sd extends rl{constructor(e={},t={},n=!1){super(e,t),this.explicit=e,this.implicit=t,this.parseNothing=n}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}class ud extends la{constructor(e,t,n){super(e),this.transform=t,this.secondary=n}clone(){return new ud(null,B(this.transform),this.secondary)}static make(e,t,n,i){const r=t.component.data.sources;let o=kd(n.from.data,r);o||(o=new Tl(n.from.data),r.push(o));const a=t.getName(`lookup_${i}`),s=new fa(o,a,"lookup",t.component.data.outputNodeRefCounts);return t.component.data.outputNodes[a]=s,new ud(e,n,s.getSource())}producedFields(){return new Set(this.transform.from.fields||(this.transform.as instanceof Array?this.transform.as:[this.transform.as]))}hash(){return`Lookup ${T({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e=Object.assign({values:this.transform.from.fields},this.transform.as?{as:this.transform.as instanceof Array?this.transform.as:[this.transform.as]}:{});else{let t=this.transform.as;s(t)||(Ht(Pt.NO_FIELDS_NEEDS_AS),t="_lookup"),e={as:[t]}}return Object.assign({type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup]},e,this.transform.default?{default:this.transform.default}:{})}}class cd extends la{constructor(e,t){super(e),this.transform=t}clone(){return new cd(null,B(this.transform))}hash(){return`SampleTransform ${T(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}class ld extends la{constructor(e,t){super(e),this.params=t}clone(){return new ld(null,this.params)}assemble(){return Object.assign({type:"sequence"},this.params)}}function fd(e){let t=0;return function n(i,r){i instanceof Tl&&!i.isGenerator&&!Ir(i.data)&&(e.push(r),r={name:null,source:r.name,transform:[]});if(i instanceof Yl&&(i.parent instanceof Tl&&!r.source?(r.format=Object.assign({},r.format||{},{parse:i.assembleFormatParse()}),r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof Wl)return r.name||(r.name=`data_${t++}`),!r.source||r.transform.length>0?(e.push(r),i.data=r.name):i.data=r.source,void i.assemble().forEach(t=>e.push(t));(i instanceof Vf||i instanceof ld||i instanceof qf||i instanceof Hl||i instanceof tu||i instanceof Yf||i instanceof Gf||i instanceof Ll||i instanceof ud||i instanceof Xl||i instanceof Vl||i instanceof Hf||i instanceof Wf||i instanceof Qf||i instanceof cd)&&r.transform.push(i.assemble()),(i instanceof ql||i instanceof Uu||i instanceof ad||i instanceof Ql)&&(r.transform=r.transform.concat(i.assemble())),i instanceof fa&&(r.source&&0===r.transform.length?i.setSource(r.source):i.parent instanceof fa?i.setSource(r.name):(r.name||(r.name=`data_${t++}`),i.setSource(r.name),1===i.numChildren()&&(e.push(r),r={name:null,source:r.name,transform:[]})));switch(i.numChildren()){case 0:i instanceof fa&&(!r.source||r.transform.length>0)&&e.push(r);break;case 1:n(i.children[0],r);break;default:{r.name||(r.name=`data_${t++}`);let o=r.name;!r.source||r.transform.length>0?e.push(r):o=r.source,i.children.forEach(e=>{n(e,{name:null,source:o,transform:[]})});break}}}}function dd(e){return"top"===e||"left"===e?"header":"footer"}function pd(e,t){if(e.channelHasField(t)){const n=e.facet[t],i=ru("title",null,e.config,t);let r=zn(n,e.config,{allowDisabling:!0,includeDefault:void 0===i||!!i});e.child.component.layoutHeaders[t].title&&(r+=" / "+e.child.component.layoutHeaders[t].title,e.child.component.layoutHeaders[t].title=null);const o=R(["bottom","right"],ru("labelOrient",n,e.config,t))?"footer":"header";e.component.layoutHeaders[t]={title:r,facetFieldDef:n,[o]:"facet"===t?[]:[hd(e,t,!0)]}}}function hd(e,t,n){const i="row"===t?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(i)?e.child.getSizeSignalRef(i):void 0,axes:[]}}function md(e,t){const{child:n}=e;if(n.component.axes[t]){const{layoutHeaders:i,resolve:r}=e.component;if(r.axis[t]=il(r,t),"shared"===r.axis[t]){const r="x"===t?"column":"row",o=i[r];for(const i of n.component.axes[t]){const t=dd(i.get("orient"));o[t]=o[t]||[hd(e,r,!1)];const n=Bo(i,"main",e.config,{header:!0});o[t][0].axes.push(n),i.mainExtracted=!0}}}}function gd(e){vd(e);const t=e.component.layoutSize;t.setWithExplicit("width",xd(e,"width")),t.setWithExplicit("height",xd(e,"height"))}const yd=gd,bd={vconcat:"width",hconcat:"height"};function vd(e){for(const t of e.children)t.parseLayoutSize()}function xd(e,t){const n="width"===t?"x":"y",i=e.component.resolve;let r;for(const o of e.children){const e=o.component.layoutSize.getWithExplicit(t),a=i.scale[n];if("independent"===a&&"range-step"===e.value){r=void 0;break}if(r){if("independent"===a&&r.value!==e.value){r=void 0;break}r=cl(r,e,t,"")}else r=e}if(r){for(const n of e.children)e.renameSignal(n.getName(t),e.getName(t)),n.component.layoutSize.set(t,"merged",!1);return r}return{explicit:!1,value:void 0}}function Ad(e,t){const n="width"===t?"x":"y",i=e.config,r=e.getScaleComponent(n);if(r){const e=r.get("type"),n=r.get("range");return Qi(e)&&Co(n)?"range-step":i.view[t]}return e.hasProjection?i.view[t]:"width"===t&&"text"===e.mark?i.scale.textXRangeStep:i.scale.rangeStep||Ki.rangeStep}function wd(e,t){return function(e){return e&&!s(e)&&"repeat"in e}(e.field)?e.field.repeat in t?Object.assign({},e,{field:t[e.field.repeat]}):void Ht(Pt.noSuchRepeatedValue(e.field.repeat)):e}function Cd(e,t){if(void 0!==(e=wd(e,t))){if(null===e)return null;if(function(e){return Cn(e)&&!!e.sort}(e)&&Po(e.sort)){const n=wd(e.sort,t);e=Object.assign({},e,n?{sort:n}:{})}return e}}function Fd(e,t){if(!wn(e)){if(An(e)){const n=Cd(e.condition,t);if(n)return Object.assign({},e,{condition:n});return Ne(e,["condition"])}return e}{const n=Cd(e,t);if(n)return n;if(xn(e))return{condition:e.condition}}}function Ed(e,t){const n={};for(const i in e)if(e.hasOwnProperty(i)){const r=e[i];if(o(r))n[i]=r.map(e=>Fd(e,t)).filter(e=>e);else{const e=Fd(r,t);void 0!==e&&(n[i]=e)}}return n}function Dd(e,t,n){return $n(t,Object.assign({suffix:`by_${$n(e)}`},n||{}))}class Sd extends If{constructor(e,t,n,i,r){super(e,"facet",t,n,r,i,e.resolve),this.child=Id(e.spec,this,this.getName("child"),void 0,i,r,!1),this.children=[this.child];const o=function(e,t){return en(e)?Ed(e,t):Cd(e,t)}(e.facet,i);this.facet=this.initFacet(o)}initFacet(e){return en(e)?ai(e,(e,t,n)=>R([Le,Ie],n)?void 0===t.field?(Ht(Pt.emptyFieldDef(t,n)),e):(e[n]=Ln(t,n),e):(Ht(Pt.incompatibleChannel(n,"facet")),e),{}):{facet:Ln(e,"facet")}}channelHasField(e){return!!this.facet[e]}fieldDef(e){return this.facet[e]}parseData(){this.component.data=Od(this),this.child.parseData()}parseLayoutSize(){vd(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(e){for(const t of bt)pd(e,t);md(e,"x"),md(e,"y")}(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){const e={};for(const t of bt)for(const n of su){const i=this.component.layoutHeaders[t],r=i[n],{facetFieldDef:o}=i;if(o){const n=ru("titleOrient",o,this.config,t);if(R(["right","bottom"],n)){const i=iu(t,n);e.titleAnchor=e.titleAnchor||{},e.titleAnchor[i]="end"}}if(r&&r[0]){const r="row"===t?"height":"width",o="header"===n?"headerBand":"footerBand";"facet"===t||this.child.component.layoutSize.get(r)||(e[o]=e[o]||{},e[o][t]=.5),i.title&&(e.offset=e.offset||{},e.offset["row"===t?"rowTitle":"columnTitle"]=10)}}return e}assembleDefaultLayout(){const{column:e,row:t}=this.facet,n=e?this.columnDistinctSignal():t?1:void 0;let i="all";return(t||"independent"!==this.component.resolve.scale.x)&&(e||"independent"!==this.component.resolve.scale.y)||(i="none"),Object.assign({},this.getHeaderLayoutMixins(),n?{columns:n}:{},{bounds:"full",align:i})}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof Sd)){return{signal:`length(data('${this.getName("column_domain")}'))`}}}assembleGroup(e){return this.parent&&this.parent instanceof Sd?Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:$n(this.facet.column,{prefix:"distinct"})}}}}:{},super.assembleGroup(e)):super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],t=[],n=[];if(this.child instanceof Sd){if(this.child.channelHasField("column")){const i=$n(this.child.facet.column);e.push(i),t.push("distinct"),n.push(`distinct_${i}`)}}else for(const i of["x","y"]){const r=this.child.component.scales[i];if(r&&!r.merged){const o=r.get("type"),a=r.get("range");if(Qi(o)&&Co(a)){const r=bf(vf(this.child,i));r?(e.push(r),t.push("distinct"),n.push(`distinct_${r}`)):Ht("Unknown field for ${channel}.  Cannot calculate view size.")}}}return{fields:e,ops:t,as:n}}assembleFacet(){const{name:e,data:t}=this.component.data.facetRoot,{row:n,column:i}=this.facet,{fields:r,ops:a,as:s}=this.getCardinalityAggregateForChild(),u=[];for(const e of bt){const t=this.facet[e];if(t){u.push($n(t));const{bin:c,sort:l}=t;if(Xn(c)&&u.push($n(t,{binSuffix:"end"})),Po(l)){const{field:e,op:o=Ro}=l,u=Dd(t,l);n&&i?(r.push(u),a.push("max"),s.push(u)):(r.push(e),a.push(o),s.push(u))}else if(o(l)){const n=nu(t,e);r.push(n),a.push("max"),s.push(n)}}}const c=!!n&&!!i;return Object.assign({name:e,data:t,groupby:u},c||r.length?{aggregate:Object.assign({},c?{cross:c}:{},r.length?{fields:r,ops:a,as:s}:{})}:{})}facetSortFields(e){const{facet:t}=this,n=t[e];return n?Po(n.sort)?[Dd(n,n.sort,{expr:"datum"})]:o(n.sort)?[nu(n,e,{expr:"datum"})]:[$n(n,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:t}=this,n=t[e];if(n){const{sort:e}=n;return[(Po(e)?e.order:!o(e)&&e)||"ascending"]}return[]}assembleLabelTitle(){const{facet:e,config:t}=this;if(e.facet)return pu(e.facet,"facet",t);const n={row:["top","bottom"],column:["left","right"]};for(const i of au)if(e[i]){const r=ru("labelOrient",e[i],t,i);if(R(n[i],r))return pu(e[i],i,t)}}assembleMarks(){const{child:e}=this,t=function(e){const t=[],n=fd(t);return e.children.forEach(t=>n(t,{source:e.name,name:null,transform:[]})),t}(this.component.data.facetRoot),n=e.assembleGroupEncodeEntry(!1),i=this.assembleLabelTitle()||e.assembleTitle(),r=e.assembleGroupStyle();return[Object.assign({name:this.getName("cell"),type:"group"},i?{title:i}:{},r?{style:r}:{},{from:{facet:this.assembleFacet()},sort:{field:M(bt.map(e=>this.facetSortFields(e))),order:M(bt.map(e=>this.facetSortOrder(e)))}},t.length>0?{data:t}:{},n?{encode:{update:n}}:{},e.assembleGroup(function(e,t){if(e.component.selection&&V(e.component.selection).length){const n=u(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:wu("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return t}(this,[])))]}getMapping(){return this.facet}}function kd(e,t){for(const n of t){const t=n.data;if((!e.name||!n.hasName()||e.name===n.dataName)&&!(e.format&&e.format.mesh&&t.format&&t.format.feature))if(qr(e)&&qr(t)){if($(e.values,t.values))return n}else if(Ir(e)&&Ir(t)){if(e.url===t.url)return n}else if(Wr(e)&&e.name===n.dataName)return n}return null}function Od(e){let t=function(e,t){if(e.data||!e.parent){const n=kd(e.data,t);if(n)return Hr(e.data)||(n.data.format=L({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const n=new Tl(e.data);return t.push(n),n}}return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}(e,e.component.data.sources);const{outputNodes:n,outputNodeRefCounts:i}=e.component.data,r=e.parent?e.parent.component.data.ancestorParse.clone():new sd,o=e.data;Hr(o)?(Gr(o)?t=new ld(t,o.sequence):Vr(o)&&(t=new Vf(t,o.graticule)),r.parseNothing=!0):o&&o.format&&null===o.format.parse&&(r.parseNothing=!0),t=Yl.makeExplicit(t,e,r)||t,!rc(e)||!zf(e)&&!Mf(e)||e.parent&&Mf(e.parent)||(t=new Qf(t));const a=e.parent&&Mf(e.parent);(zf(e)||Rf(e))&&a&&(t=ql.makeFromEncoding(t,e)||t),e.transforms.length>0&&(t=function(e,t,n){let i=0;for(const r of t.transforms){let o,a=void 0;if(mo(r))o=e=new tu(e,r),a="derived";else if(uo(r))o=e=Yl.makeImplicitFromFilterTransform(e,r,n)||e,e=new Hl(e,t,r.filter);else if(go(r))o=e=ql.makeFromTransform(e,r,t),a="number";else if(bo(r))o=e=Uu.makeFromTransform(e,r),a="date",void 0===n.getWithExplicit(r.field).value&&(e=new Yl(e,{[r.field]:a}),n.set(r.field,a,!1));else if(vo(r))o=e=Ll.makeFromTransform(e,r),a="number",rc(t)&&(e=new Qf(e));else if(co(r))o=e=ud.make(e,t,r,i++),a="derived";else if(fo(r))o=e=new Xl(e,r),a="number";else if(po(r))o=e=new Vl(e,r),a="number";else if(xo(r))o=e=Ql.makeFromTransform(e,r),a="derived";else if(Ao(r))o=e=new Hf(e,r),a="derived";else if(ho(r))o=e=new Wf(e,r),a="derived";else if(lo(r))e=new cd(e,r);else{if(!yo(r)){Ht(Pt.invalidTransformIgnored(r));continue}o=e=ad.makeFromTransform(e,r),a="derived"}if(o&&void 0!==a)for(const e of o.producedFields())n.set(e,a,!1)}return e}(t,e,r)),t=Yl.makeImplicitFromEncoding(t,e,r)||t,zf(e)&&(t=Gf.parseAll(t,e),t=Yf.parseAll(t,e)),(zf(e)||Rf(e))&&(a||(t=ql.makeFromEncoding(t,e)||t),t=Uu.makeFromEncoding(t,e)||t,t=tu.parseAllForSortIndex(t,e));const s=e.getName(Xr),u=new fa(t,s,Xr,i);if(n[s]=u,t=u,zf(e)){const n=Ll.makeFromEncoding(t,e);n&&(t=n,rc(e)&&(t=new Qf(t))),t=ad.makeFromEncoding(t,e)||t,t=Ql.makeFromEncoding(t,e)||t}zf(e)&&(t=qf.make(t,e)||t);const c=e.getName(Qr),l=new fa(t,c,Qr,i);n[c]=l,t=l;let f=null;if(Rf(e)){const i=e.getName("facet");t=function(e,t){const{row:n,column:i}=t;if(n&&i){let t=null;for(const r of[n,i])if(Po(r.sort)){const{field:n,op:i=Ro}=r.sort;e=t=new Vl(e,{joinaggregate:[{op:i,field:n,as:Dd(r,r.sort,{forAs:!0})}],groupby:[$n(r)]})}return t}return null}(t=tu.parseAllForSortIndex(t,e),e.facet)||t,f=new Wl(t,e,i,l.getSource()),n[i]=f,t=f}return Object.assign({},e.component.data,{outputNodes:n,outputNodeRefCounts:i,raw:u,main:l,facetRoot:f,ancestorParse:r})}class $d extends Lf{constructor(e,t,n,i,r,o,a){super(e,t,n,i,r,o,a)}parseData(){this.component.data=Od(this),this.children.forEach(e=>{e.parseData()})}parseSelections(){this.component.selection={};for(const e of this.children)e.parseSelections(),V(e.component.selection).forEach(t=>{this.component.selection[t]=e.component.selection[t]})}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}assembleSelectionTopLevelSignals(e){return this.children.reduce((e,t)=>t.assembleSelectionTopLevelSignals(e),e)}assembleSignals(){return this.children.forEach(e=>e.assembleSignals()),[]}assembleLayoutSignals(){return this.children.reduce((e,t)=>[...e,...t.assembleLayoutSignals()],bu(this))}assembleSelectionData(e){return this.children.reduce((e,t)=>t.assembleSelectionData(e),e)}assembleMarks(){return this.children.map(e=>{const t=e.assembleTitle(),n=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return Object.assign({type:"group",name:e.getName("group")},t?{title:t}:{},n?{style:n}:{},i?{encode:{update:i}}:{},e.assembleGroup())})}}class Bd extends $d{constructor(e,t,n,i,r){super(e,"concat",t,n,r,i,e.resolve),e.resolve&&e.resolve.axis&&("shared"===e.resolve.axis.x||"shared"===e.resolve.axis.y)&&Ht(Pt.CONCAT_CANNOT_SHARE_AXIS),this.concatType=fr(e)?"vconcat":dr(e)?"hconcat":"concat",this.children=this.getChildren(e).map((e,t)=>Id(e,this,this.getName("concat_"+t),void 0,i,r,!1))}getChildren(e){return fr(e)?e.vconcat:dr(e)?e.hconcat:e.concat}parseLayoutSize(){!function(e){vd(e);const t=e.component.layoutSize,n=bd[e.concatType];n&&t.setWithExplicit(n,xd(e,n))}(this)}parseAxisGroup(){return null}assembleDefaultLayout(){return Object.assign({},"vconcat"===this.concatType?{columns:1}:{},{bounds:"full",align:"each"})}}class Nd extends rl{constructor(e={},t={},n=!1){super(),this.explicit=e,this.implicit=t,this.mainExtracted=n}clone(){return new Nd(B(this.explicit),B(this.implicit),this.mainExtracted)}hasAxisPart(e){return"axis"===e||("grid"===e||"title"===e?!!this.get(e):!(!1===(t=this.get(e))||null===t));var t}}const jd={bottom:"top",top:"bottom",left:"right",right:"left"};function _d(e,t){if(!e)return t.map(e=>e.clone());{if(e.length!==t.length)return;const n=e.length;for(let i=0;i<n;i++){const n=e[i],r=t[i];if(!!n!=!!r)return;if(n&&r){const t=n.getWithExplicit("orient"),o=r.getWithExplicit("orient");if(t.explicit&&o.explicit&&t.value!==o.value)return;e[i]=Td(n,r)}}}return e}function Td(e,t){for(const n of $o){const i=cl(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",(e,t)=>{switch(n){case"title":return ca(e,t);case"gridScale":return{explicit:e.explicit,value:se(e.value,t.value)}}return ul(e,t,n,"axis")});e.setWithExplicit(n,i)}return e}function zd(e,t){const n="x"===t?"x2":"y2",i=e.fieldDef(t),r=e.fieldDef(n),o=i?i.title:void 0,a=r?r.title:void 0;return o&&a?ua(o,a):o||(a||(void 0!==o?o:void 0!==a?a:void 0))}function Rd(e,t){const n=t.axis(e),i=new Nd;$o.forEach(r=>{const o=function(e,t,n,i){const r=i.fieldDef(n),o=qo(i,t,n,r),a=se(t.orient,Vo(n));switch(e){case"scale":return i.scaleName(n);case"gridScale":return Io(i,n);case"format":if(Hn(r))return;return ta(r,t.format,i.config);case"formatType":if(Hn(r))return;return t.formatType;case"grid":if(Jn(i.fieldDef(n).bin))return!1;{const e=i.getScaleComponent(n).get("type");return se(t.grid,Lo(e,r))}case"labelAlign":return se(t.labelAlign,Ho(o,a));case"labelAngle":return o;case"labelBaseline":return se(t.labelBaseline,Wo(o,a));case"labelFlush":return se(t.labelFlush,Go(r,n));case"labelOverlap":{const e=i.getScaleComponent(n).get("type");return se(t.labelOverlap,Yo(r,e))}case"orient":return a;case"tickCount":{const e=i.getScaleComponent(n).get("type"),o="x"===n?"width":"y"===n?"height":void 0,a=o?i.getSizeSignalRef(o):void 0;return se(t.tickCount,Qo({fieldDef:r,scaleType:e,size:a}))}case"title":{const e="x"===n?"x2":"y2",o=i.fieldDef(e);return se(t.title,zd(i,n),sa([vn(r)],o?[vn(o)]:[]))}case"values":return Xo(t,0,r)}return s=e,Oo[s]?t[e]:void 0;var s}(r,n,e,t);if(void 0!==o){const a=function(e,t,n,i,r){switch(t){case"titleAngle":case"labelAngle":return e===de(n[t]);case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===zd(i,r))return!0}return e===n[t]}(o,r,n,t,e),s=Mo(r,t.config,e,i.get("orient"),t.getScaleComponent(e).get("type"));a||void 0===s?i.set(r,o,a):R(["grid","orient"],r)&&s&&i.set(r,s,!1)}});const r=n.encoding||{},o=Do.reduce((n,o)=>{if(!i.hasAxisPart(o))return n;const a=tl(r[o]||{},t),s="labels"===o?function(e,t,n){const i=e.fieldDef(t)||("x"===t?e.fieldDef("x2"):"y"===t?e.fieldDef("y2"):void 0),r=e.axis(t),o=e.config;let a={};if(Hn(i)){const n=e.getScaleComponent(t).get("type")===Pi.UTC,s=oa("datum.value",i.timeUnit,r.format,o.axis.shortTimeLabels,null,n);s&&(a.text={signal:s})}return a=Object.assign({},a,n),0===V(a).length?void 0:a}(t,e,a):a;return void 0!==s&&V(s).length>0&&(n[o]={update:s}),n},{});return V(o).length>0&&i.set("encode",o,!!n.encoding||void 0!==n.labelAngle),i}function Pd(e,t,n){const i=Se(e)?Object.assign({},e):{type:e},r=i.orient||Zo("orient",i,n);return i.orient=function(e,t,n){switch(e){case ge:case we:case Ce:case ve:case ye:return}const{x:i,y:r,x2:o,y2:a}=t;switch(e){case he:if(wn(i)&&Jn(i.bin))return"vertical";if(wn(r)&&Jn(r.bin))return"horizontal";if(a||o){if(n)return n;if(!o&&wn(i)&&i.type===hn&&!Xn(i.bin))return"horizontal";if(!a&&wn(r)&&r.type===hn&&!Xn(r.bin))return"vertical"}case be:if(o&&a)return;case pe:if(a)return wn(r)&&Jn(r.bin)?"horizontal":"vertical";if(o)return wn(i)&&Jn(i.bin)?"vertical":"horizontal";if(e===be){if(t.x&&!t.y)return"vertical";if(t.y&&!t.x)return"horizontal"}case me:case xe:{const i=wn(t.x)&&Bn(t.x),r=wn(t.y)&&Bn(t.y);if(i&&!r)return"tick"!==e?"horizontal":"vertical";if(!i&&r)return"tick"!==e?"vertical":"horizontal";if(i&&r){const i=t.x,r=t.y,o=i.type===gn,a=r.type===gn;return o&&!a?"tick"!==e?"vertical":"horizontal":!o&&a?"tick"!==e?"horizontal":"vertical":!i.aggregate&&r.aggregate?"tick"!==e?"vertical":"horizontal":i.aggregate&&!r.aggregate?"tick"!==e?"horizontal":"vertical":n||"vertical"}return n||void 0}}return"vertical"}(i.type,t,r),void 0!==r&&r!==i.orient&&Ht(Pt.orientOverridden(i.orient,r)),void 0===se(i.opacity,Zo("opacity",i,n))&&(i.opacity=function(e,t){if(R([ge,xe,we,Ce],e)&&!ti(t))return.7;return}(i.type,t)),void 0===i.filled&&(i.filled=function(e,t){const n=Zo("filled",e,t),i=e.type;return se(n,i!==ge&&i!==me&&i!==be)}(i,n)),void 0===(i.cursor||Zo("cursor",i,n))&&(i.cursor=function(e,t,n){if(t.href||e.href||Zo("href",e,n))return"pointer";return e.cursor}(i,t,n)),i}class Ud extends If{constructor(e,t,n,i={},r,o,a){super(e,"unit",t,n,o,r,void 0,e.view),this.fit=a,this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection={},this.children=[],this.initSize(Object.assign({},i,e.width?{width:e.width}:{},e.height?{height:e.height}:{}));const s=Se(e.mark)?e.mark.type:e.mark,u=this.encoding=ii(function(e,t){return Ed(e,t)}(e.encoding||{},r),s);this.markDef=Pd(e.mark,u,o),this.stack=kr(s,u,this.config.stack),this.specifiedScales=this.initScales(s,u),this.specifiedAxes=this.initAxes(u),this.specifiedLegends=this.initLegend(u),this.specifiedProjection=e.projection,this.selection=e.selection}get hasProjection(){const{encoding:e}=this,t=this.mark===Fe,n=e&&ht.some(t=>wn(e[t]));return t||n}scaleDomain(e){const t=this.specifiedScales[e];return t?t.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,t){return _t.reduce((e,n)=>{let i,r;const o=t[n];return wn(o)?(i=o,r=o.scale):An(o)&&(i=o.condition,r=o.condition.scale),i&&(e[n]=r||{}),e},{})}initAxes(e){return[We,He].reduce((t,n)=>{const i=e[n];if(wn(i)||n===We&&wn(e.x2)||n===He&&wn(e.y2)){const e=wn(i)?i.axis:null;null!==e&&(t[n]=Object.assign({},e))}return t},{})}initLegend(e){return Nt.reduce((t,n)=>{const i=e[n];if(i){const e=wn(i)?i.legend:An(i)?i.condition.legend:null;null!==e&&!1!==e&&function(e){switch(e){case Ze:case Ke:case et:case nt:case tt:case it:return!0;case rt:case ot:case at:return!1}}(n)&&(t[n]=Object.assign({},e))}return t},{})}parseData(){this.component.data=Od(this)}parseLayoutSize(){!function(e){const t=e.component.layoutSize;if(!t.explicit.width){const n=Ad(e,"width");t.set("width",n,!1)}if(!t.explicit.height){const n=Ad(e,"height");t.set("height",n,!1)}}(this)}parseSelections(){this.component.selection=function(e,t){const n={},i=e.config.selection;t&&(t=B(t));for(let r in t){if(!t.hasOwnProperty(r))continue;const o=t[r],a=Ne(i[o.type],["fields","encodings"]);for(const e in a)"encodings"===e&&o.fields||"fields"===e&&o.encodings||("mark"===e&&(o[e]=Object.assign({},a[e],o[e])),void 0!==o[e]&&!0!==o[e]||(o[e]=a[e]||o[e]));const u=n[r=Z(r)]=Object.assign({},o,{name:r,events:s(o.on)?wu(o.on,"scope"):o.on});bc(u,t=>{t.parse&&t.parse(e,o,u)})}return n}(this,this.selection)}parseMarkGroup(){this.component.mark=nd(this)}parseAxesAndHeaders(){var e;this.component.axes=(e=this,$t.reduce((t,n)=>(e.component.scales[n]&&e.axis(n)&&(t[n]=[Rd(n,e)]),t),{}))}assembleSelectionTopLevelSignals(e){return function(e,t){let n=!1;nc(e,(i,r)=>{const o=i.name,a=u(o+Xu);t.filter(e=>e.name===o).length||t.push({name:i.name,update:`${ec}(${a}`+("global"===i.resolve?")":`, ${u(i.resolve)})`)}),n=!0,r.topLevelSignals&&(t=r.topLevelSignals(e,i,t)),bc(i,n=>{n.topLevelSignals&&(t=n.topLevelSignals(e,i,t))})}),n&&(t.filter(e=>"unit"===e.name).length||t.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]}));return t}(this,e)}assembleSignals(){return[...No(this),...(e=this,t=[],nc(e,(n,i)=>{const r=n.name;let o=i.modifyExpr(e,n);t.push(...i.signals(e,n)),bc(n,i=>{i.signals&&(t=i.signals(e,n,t)),i.modifyExpr&&(o=i.modifyExpr(e,n,o))}),t.push({name:r+Zu,update:`modify(${u(n.name+Xu)}, ${o})`})}),t)];var e,t}assembleSelectionData(e){return function(e,t){return nc(e,e=>{t.filter(t=>t.name===e.name+Xu).length||t.push({name:e.name+Xu})}),t}(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return bu(this)}assembleMarks(){let e=this.component.mark||[];return this.parent&&Mf(this.parent)||(e=xc(this,e)),e.map(this.correctDataNames)}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return ei(this.encoding,e)}fieldDef(e){return Mn(this.encoding[e])}}class Md extends Lf{constructor(e,t,n,i,r,o,a){super(e,"layer",t,n,o,r,e.resolve,e.view);const s=Object.assign({},i,e.width?{width:e.width}:{},e.height?{height:e.height}:{});this.initSize(s),this.children=e.layer.map((e,t)=>{if(Cr(e))return new Md(e,this,this.getName("layer_"+t),s,r,o,a);if($e(e))return new Ud(e,this,this.getName("layer_"+t),s,r,o,a);throw new Error(Pt.INVALID_SPEC)})}parseData(){this.component.data=Od(this);for(const e of this.children)e.parseData()}parseLayoutSize(){gd(this)}parseSelections(){this.component.selection={};for(const e of this.children)e.parseSelections(),V(e.component.selection).forEach(t=>{this.component.selection[t]=e.component.selection[t]})}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){!function(e){const{axes:t,resolve:n}=e.component,i={top:0,bottom:0,right:0,left:0};for(const i of e.children){i.parseAxesAndHeaders();for(const r of V(i.component.axes))n.axis[r]=il(e.component.resolve,r),"shared"===n.axis[r]&&(t[r]=_d(t[r],i.component.axes[r]),t[r]||(n.axis[r]="independent",delete t[r]))}for(const r of[We,He]){for(const o of e.children)if(o.component.axes[r]){if("independent"===n.axis[r]){t[r]=(t[r]||[]).concat(o.component.axes[r]);for(const e of o.component.axes[r]){const{value:t,explicit:n}=e.getWithExplicit("orient");if(i[t]>0&&!n){const n=jd[t];i[t]>i[n]&&e.set("orient",n,!1)}i[t]++}}delete o.component.axes[r]}if("independent"===n.axis[r]&&t[r]&&t[r].length>1)for(const e of t[r])e.get("grid")&&!e.explicit.grid&&(e.implicit.grid=!1)}}(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce((e,t)=>t.assembleSelectionTopLevelSignals(e),e)}assembleSignals(){return this.children.reduce((e,t)=>e.concat(t.assembleSignals()),No(this))}assembleLayoutSignals(){return this.children.reduce((e,t)=>e.concat(t.assembleLayoutSignals()),bu(this))}assembleSelectionData(e){return this.children.reduce((e,t)=>t.assembleSelectionData(e),e)}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const t of this.children)if(e=t.assembleTitle())return e}assembleLayout(){return null}assembleMarks(){return function(e,t){for(const n of e.children)zf(n)&&(t=xc(n,t));return t}(this,M(this.children.map(e=>e.assembleMarks())))}assembleLegends(){return this.children.reduce((e,t)=>e.concat(t.assembleLegends()),Ol(this))}}class Ld extends $d{constructor(e,t,n,i,r){super(e,"repeat",t,n,r,i,e.resolve),e.resolve&&e.resolve.axis&&("shared"===e.resolve.axis.x||"shared"===e.resolve.axis.y)&&Ht(Pt.REPEAT_CANNOT_SHARE_AXIS),this.repeat=e.repeat,this.children=this._initChildren(e,this.repeat,i,r)}_initChildren(e,t,n,i){const r=[],a=!o(t)&&t.row||[n?n.row:null],s=!o(t)&&t.column||[n?n.column:null],u=o(t)&&t||[n?n.repeat:null];for(const t of u)for(const n of a)for(const o of s){const a=(t?`__repeat_repeat_${t}`:"")+(n?`__repeat_row_${n}`:"")+(o?`__repeat_column_${o}`:""),s={repeat:t,row:n,column:o};r.push(Id(e.spec,this,this.getName("child"+a),void 0,s,i,!1))}return r}parseLayoutSize(){yd(this)}assembleDefaultLayout(){const{repeat:e}=this,t=o(e)?void 0:e.column?e.column.length:1;return Object.assign({},t?{columns:t}:{},{bounds:"full",align:"all"})}}function Id(e,t,n,i,r,o,a){if(tn(e))return new Sd(e,t,n,r,o);if(Cr(e))return new Md(e,t,n,i,r,o,a);if($e(e))return new Ud(e,t,n,i,r,o,a);if(pr(e))return new Ld(e,t,n,r,o);if(function(e){return fr(e)||dr(e)||lr(e)}(e))return new Bd(e,t,n,r,o);throw new Error(Pt.INVALID_SPEC)}const qd=new class extends Fr{mapUnit(e,{config:t}){if(e.encoding){const{encoding:n,transform:i}=e,{bins:r,timeUnits:o,aggregate:a,groupby:s,encoding:u}=ni(n,t),c=[...i||[],...r,...o,...a.length?[{aggregate:a,groupby:s}]:[]];return Object.assign({},e,c.length>0?{transform:c}:{},{encoding:u})}return e}};const Wd=t;e.compile=function(e,t={}){t.logger&&qt(t.logger),t.fieldTitle&&Tn(t.fieldTitle);try{const n=yr(L({},t.config,e.config)),i=Rr(e,n),r=function(e,t,n=!0){const i=Object.assign({type:"pad"},Ur(t),Ur(e));return"fit"===i.type&&(n||(Ht(Pt.FIT_NON_SINGLE),i.type="pad")),i}(e.autosize,n.autosize,Cr(i)||$e(i)),o=Id(i,null,"",void 0,void 0,n,"fit"===r.type);return o.parse(),function(e,t){zl(e.sources);let n=0,i=0;for(let i=0;i<uf&&df(e,t);i++)n++;e.sources.map(tf);for(let n=0;n<uf&&df(e,t);n++)i++;zl(e.sources),Math.max(n,i)===uf&&Ht(`Maximum optimization runs(${uf}) reached.`)}(o.component.data,o),function(e,t,n={},i){const r=e.config?Ar(e.config):void 0,o=[].concat(e.assembleSelectionData([]),function(e,t){const n=[],i=fd(n);let r=0;e.sources.forEach(e=>{e.hasName()||(e.dataName=`source_${r++}`);const t=e.assemble();i(e,t)}),n.forEach(e=>{0===e.transform.length&&delete e.transform});let o=0;for(const[e,t]of n.entries())0!==(t.transform||[]).length||t.source||n.splice(o++,0,n.splice(e,1)[0]);for(const t of n)for(const n of t.transform||[])"lookup"===n.type&&(n.from=e.outputNodes[n.from].getSource());for(const e of n)e.name in t&&(e.values=t[e.name]);return n}(e.component.data,n)),a=e.assembleProjections(),s=e.assembleTitle(),u=e.assembleGroupStyle(),c=e.assembleGroupEncodeEntry(!0);let l=e.assembleLayoutSignals();return l=l.filter(e=>"width"!==e.name&&"height"!==e.name||void 0===e.value||(t[e.name]=+e.value,!1)),{spec:Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},e.description?{description:e.description}:{},t,s?{title:s}:{},u?{style:u}:{},c?{encode:{update:c}}:{},{data:o},a.length>0?{projections:a}:{},e.assembleGroup([...l,...e.assembleSelectionTopLevelSignals([])]),r?{config:r}:{},i?{usermeta:i}:{})}}(o,function(e,t,n){return Object.assign({autosize:1===V(n).length&&n.type?n.type:n},Lr(t),Lr(e))}(e,n,r),e.datasets,e.usermeta)}finally{t.logger&&Wt(),t.fieldTitle&&Tn(jn)}},e.extractTransforms=function(e,t){return qd.map(e,{config:t})},e.normalize=Rr,e.version=Wd,Object.defineProperty(e,"__esModule",{value:!0})});
diff --git a/javascript/vega-lite@4.7.0 b/javascript/vega-lite@4.7.0
new file mode 100644
--- /dev/null
+++ b/javascript/vega-lite@4.7.0
@@ -0,0 +1,15 @@
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).vegaLite={})}(this,(function(e){"use strict";var t="4.7.0";function n(e,t,n){return e.fields=t||[],e.fname=n,e}function i(e){throw Error(e)}function r(e){var t,n,r,o=[],a=null,s=0,u=e.length,c="";function l(){o.push(c+e.substring(t,n)),c="",t=n+1}for(e+="",t=n=0;n<u;++n)if("\\"===(r=e[n]))c+=e.substring(t,n),c+=e.substring(++n,++n),t=n;else if(r===a)l(),a=null,s=-1;else{if(a)continue;t===s&&'"'===r||t===s&&"'"===r?(t=n+1,a=r):"."!==r||s?"["===r?(n>t&&l(),s=t=n+1):"]"===r&&(s||i("Access path missing open bracket: "+e),s>0&&l(),s=0,t=n+1):n>t?l():t=n+1}return s&&i("Access path missing closing bracket: "+e),a&&i("Access path missing closing quote: "+e),n>t&&(n++,l()),o}var o=Array.isArray;function a(e){return e===Object(e)}function s(e){return"string"==typeof e}function u(e){return o(e)?"["+e.map(u)+"]":a(e)||s(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}var c=[],l=(function(e,t){var i=r(e),o="return _["+i.map(u).join("][")+"];";n(Function("_",o),[e=1===i.length?i[0]:e],t||e)}("id"),n((function(e){return e}),c,"identity"));n((function(){return 0}),c,"zero"),n((function(){return 1}),c,"one"),n((function(){return!0}),c,"true"),n((function(){return!1}),c,"false");function f(e,t,n){var i=[t].concat([].slice.call(n));console[e].apply(console,i)}function d(...e){return e.reduce((e,t)=>{for(var n in t)if("signals"===n)e.signals=p(e.signals,t.signals);else{var i="legend"===n?{layout:1}:"style"===n||null;g(e,n,t[n],i)}return e},{})}function g(e,t,n,i){var r,s;if(a(n)&&!o(n))for(r in s=a(e[t])?e[t]:e[t]={},n)i&&(!0===i||i[r])?g(s,r,n[r]):s[r]=n[r];else e[t]=n}function p(e,t){if(null==e)return t;const n={},i=[];function r(e){n[e.name]||(n[e.name]=1,i.push(e))}return t.forEach(r),e.forEach(r),i}function h(e){return null!=e?o(e)?e:[e]:[]}const m=Object.prototype.hasOwnProperty;function b(e,t){return m.call(e,t)}function v(e){return"boolean"==typeof e}function y(e){return"number"==typeof e}function x(e){for(var t={},n=0,i=e.length;n<i;++n)t[e[n]]=!0;return t}
+/*! *****************************************************************************
+    Copyright (c) Microsoft Corporation. All rights reserved.
+    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+    this file except in compliance with the License. You may obtain a copy of the
+    License at http://www.apache.org/licenses/LICENSE-2.0
+
+    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+    MERCHANTABLITY OR NON-INFRINGEMENT.
+
+    See the Apache Version 2.0 License for specific language governing permissions
+    and limitations under the License.
+    ***************************************************************************** */function w(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}const A="log",O="continuous";function C(e,t,n){return e.fields=t||[],e.fname=n,e}function F(e){throw Error(e)}var D=Array.isArray;function j(e){return D(e)?"["+e.map(j)+"]":(t=e)===Object(t)||function(e){return"string"==typeof e}(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e;var t}var k=[];(function(e,t){var n=function(e){var t,n,i,r=[],o=null,a=0,s=e.length,u="";function c(){r.push(u+e.substring(t,n)),u="",t=n+1}for(e+="",t=n=0;n<s;++n)if("\\"===(i=e[n]))u+=e.substring(t,n),u+=e.substring(++n,++n),t=n;else if(i===o)c(),o=null,a=-1;else{if(o)continue;t===a&&'"'===i||t===a&&"'"===i?(t=n+1,o=i):"."!==i||a?"["===i?(n>t&&c(),a=t=n+1):"]"===i&&(a||F("Access path missing open bracket: "+e),a>0&&c(),a=0,t=n+1):n>t?c():t=n+1}return a&&F("Access path missing closing bracket: "+e),o&&F("Access path missing closing quote: "+e),n>t&&(n++,c()),r}(e),i="return _["+n.map(j).join("][")+"];";C(Function("_",i),[e=1===n.length?n[0]:e],t||e)})("id"),C((function(e){return e}),k,"identity"),C((function(){return 0}),k,"zero"),C((function(){return 1}),k,"one"),C((function(){return!0}),k,"true"),C((function(){return!1}),k,"false");const E=Object.prototype.hasOwnProperty;function S(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function $(e){var t;return 1===e.length&&(t=e,e=function(e,n){return S(t(e),n)}),{left:function(t,n,i,r){for(null==i&&(i=0),null==r&&(r=t.length);i<r;){var o=i+r>>>1;e(t[o],n)<0?i=o+1:r=o}return i},right:function(t,n,i,r){for(null==i&&(i=0),null==r&&(r=t.length);i<r;){var o=i+r>>>1;e(t[o],n)>0?r=o:i=o+1}return i}}}var N=$(S).right;var M=Math.sqrt(50),B=Math.sqrt(10),_=Math.sqrt(2);function T(e,t,n){var i,r,o,a,s=-1;if(n=+n,(e=+e)===(t=+t)&&n>0)return[e];if((i=t<e)&&(r=e,e=t,t=r),0===(a=z(e,t,n))||!isFinite(a))return[];if(a>0)for(e=Math.ceil(e/a),t=Math.floor(t/a),o=new Array(r=Math.ceil(t-e+1));++s<r;)o[s]=(e+s)*a;else for(e=Math.floor(e*a),t=Math.ceil(t*a),o=new Array(r=Math.ceil(e-t+1));++s<r;)o[s]=(e-s)/a;return i&&o.reverse(),o}function z(e,t,n){var i=(t-e)/Math.max(0,n),r=Math.floor(Math.log(i)/Math.LN10),o=i/Math.pow(10,r);return r>=0?(o>=M?10:o>=B?5:o>=_?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(o>=M?10:o>=B?5:o>=_?2:1)}function U(e,t,n){var i=Math.abs(t-e)/Math.max(0,n),r=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),o=i/r;return o>=M?r*=10:o>=B?r*=5:o>=_&&(r*=2),t<e?-r:r}function P(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n<t||void 0===n&&t>=t)&&(n=t);else{let i=-1;for(let r of e)null!=(r=t(r,++i,e))&&(n<r||void 0===n&&r>=r)&&(n=r)}return n}function L(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n>t||void 0===n&&t>=t)&&(n=t);else{let i=-1;for(let r of e)null!=(r=t(r,++i,e))&&(n>r||void 0===n&&r>=r)&&(n=r)}return n}function R(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function q(e,t,n){if(i=(e=Float64Array.from(function*(e,t){if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(yield t);else{let n=-1;for(let i of e)null!=(i=t(i,++n,e))&&(i=+i)>=i&&(yield i)}}(e,n))).length){if((t=+t)<=0||i<2)return L(e);if(t>=1)return P(e);var i,r=(i-1)*t,o=Math.floor(r),a=P(function e(t,n,i=0,r=t.length-1,o=S){for(;r>i;){if(r-i>600){const a=r-i+1,s=n-i+1,u=Math.log(a),c=.5*Math.exp(2*u/3),l=.5*Math.sqrt(u*c*(a-c)/a)*(s-a/2<0?-1:1);e(t,n,Math.max(i,Math.floor(n-s*c/a+l)),Math.min(r,Math.floor(n+(a-s)*c/a+l)),o)}const a=t[n];let s=i,u=r;for(R(t,i,n),o(t[r],a)>0&&R(t,i,r);s<u;){for(R(t,s,u),++s,--u;o(t[s],a)<0;)++s;for(;o(t[u],a)>0;)--u}0===o(t[i],a)?R(t,i,u):(++u,R(t,u,r)),u<=n&&(i=u+1),n<=u&&(r=u-1)}return t}(e,o).subarray(0,o+1));return a+(L(e.subarray(o+1))-a)*(r-o)}}function I(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function W(e,t){switch(arguments.length){case 0:break;case 1:"function"==typeof e?this.interpolator(e):this.range(e);break;default:this.domain(e),"function"==typeof t?this.interpolator(t):this.range(t)}return this}const H=Symbol("implicit");function G(){var e=new Map,t=[],n=[],i=H;function r(r){var o=r+"",a=e.get(o);if(!a){if(i!==H)return i;e.set(o,a=t.push(r))}return n[(a-1)%n.length]}return r.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new Map;for(const i of n){const n=i+"";e.has(n)||e.set(n,t.push(i))}return r},r.range=function(e){return arguments.length?(n=Array.from(e),r):n.slice()},r.unknown=function(e){return arguments.length?(i=e,r):i},r.copy=function(){return G(t,n).unknown(i)},I.apply(r,arguments),r}function Y(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function V(e,t){var n=Object.create(e.prototype);for(var i in t)n[i]=t[i];return n}function X(){}var J="\\s*([+-]?\\d+)\\s*",Q="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Z="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",K=/^#([0-9a-f]{3,8})$/,ee=new RegExp("^rgb\\("+[J,J,J]+"\\)$"),te=new RegExp("^rgb\\("+[Z,Z,Z]+"\\)$"),ne=new RegExp("^rgba\\("+[J,J,J,Q]+"\\)$"),ie=new RegExp("^rgba\\("+[Z,Z,Z,Q]+"\\)$"),re=new RegExp("^hsl\\("+[Q,Z,Z]+"\\)$"),oe=new RegExp("^hsla\\("+[Q,Z,Z,Q]+"\\)$"),ae={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function se(){return this.rgb().formatHex()}function ue(){return this.rgb().formatRgb()}function ce(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=K.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?le(t):3===n?new pe(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?new pe(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?new pe(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=ee.exec(e))?new pe(t[1],t[2],t[3],1):(t=te.exec(e))?new pe(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=ne.exec(e))?fe(t[1],t[2],t[3],t[4]):(t=ie.exec(e))?fe(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=re.exec(e))?ve(t[1],t[2]/100,t[3]/100,1):(t=oe.exec(e))?ve(t[1],t[2]/100,t[3]/100,t[4]):ae.hasOwnProperty(e)?le(ae[e]):"transparent"===e?new pe(NaN,NaN,NaN,0):null}function le(e){return new pe(e>>16&255,e>>8&255,255&e,1)}function fe(e,t,n,i){return i<=0&&(e=t=n=NaN),new pe(e,t,n,i)}function de(e){return e instanceof X||(e=ce(e)),e?new pe((e=e.rgb()).r,e.g,e.b,e.opacity):new pe}function ge(e,t,n,i){return 1===arguments.length?de(e):new pe(e,t,n,null==i?1:i)}function pe(e,t,n,i){this.r=+e,this.g=+t,this.b=+n,this.opacity=+i}function he(){return"#"+be(this.r)+be(this.g)+be(this.b)}function me(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?")":", "+e+")")}function be(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function ve(e,t,n,i){return i<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new we(e,t,n,i)}function ye(e){if(e instanceof we)return new we(e.h,e.s,e.l,e.opacity);if(e instanceof X||(e=ce(e)),!e)return new we;if(e instanceof we)return e;var t=(e=e.rgb()).r/255,n=e.g/255,i=e.b/255,r=Math.min(t,n,i),o=Math.max(t,n,i),a=NaN,s=o-r,u=(o+r)/2;return s?(a=t===o?(n-i)/s+6*(n<i):n===o?(i-t)/s+2:(t-n)/s+4,s/=u<.5?o+r:2-o-r,a*=60):s=u>0&&u<1?0:a,new we(a,s,u,e.opacity)}function xe(e,t,n,i){return 1===arguments.length?ye(e):new we(e,t,n,null==i?1:i)}function we(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}function Ae(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}Y(X,ce,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:se,formatHex:se,formatHsl:function(){return ye(this).formatHsl()},formatRgb:ue,toString:ue}),Y(pe,ge,V(X,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new pe(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new pe(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:he,formatHex:he,formatRgb:me,toString:me})),Y(we,xe,V(X,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new we(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new we(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*t,r=2*n-i;return new pe(Ae(e>=240?e-240:e+120,r,i),Ae(e,r,i),Ae(e<120?e+240:e-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}));var Oe=Math.PI/180,Ce=180/Math.PI,Fe=6/29,De=3*Fe*Fe;function je(e){if(e instanceof Ee)return new Ee(e.l,e.a,e.b,e.opacity);if(e instanceof Te)return ze(e);e instanceof pe||(e=de(e));var t,n,i=Me(e.r),r=Me(e.g),o=Me(e.b),a=Se((.2225045*i+.7168786*r+.0606169*o)/1);return i===r&&r===o?t=n=a:(t=Se((.4360747*i+.3850649*r+.1430804*o)/.96422),n=Se((.0139322*i+.0971045*r+.7141733*o)/.82521)),new Ee(116*a-16,500*(t-a),200*(a-n),e.opacity)}function ke(e,t,n,i){return 1===arguments.length?je(e):new Ee(e,t,n,null==i?1:i)}function Ee(e,t,n,i){this.l=+e,this.a=+t,this.b=+n,this.opacity=+i}function Se(e){return e>.008856451679035631?Math.pow(e,1/3):e/De+4/29}function $e(e){return e>Fe?e*e*e:De*(e-4/29)}function Ne(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Me(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Be(e){if(e instanceof Te)return new Te(e.h,e.c,e.l,e.opacity);if(e instanceof Ee||(e=je(e)),0===e.a&&0===e.b)return new Te(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*Ce;return new Te(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function _e(e,t,n,i){return 1===arguments.length?Be(e):new Te(e,t,n,null==i?1:i)}function Te(e,t,n,i){this.h=+e,this.c=+t,this.l=+n,this.opacity=+i}function ze(e){if(isNaN(e.h))return new Ee(e.l,0,0,e.opacity);var t=e.h*Oe;return new Ee(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}Y(Ee,ke,V(X,{brighter:function(e){return new Ee(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker:function(e){return new Ee(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb:function(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new pe(Ne(3.1338561*(t=.96422*$e(t))-1.6168667*(e=1*$e(e))-.4906146*(n=.82521*$e(n))),Ne(-.9787684*t+1.9161415*e+.033454*n),Ne(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),Y(Te,_e,V(X,{brighter:function(e){return new Te(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker:function(e){return new Te(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb:function(){return ze(this).rgb()}}));var Ue=-.14861,Pe=1.78277,Le=-.29227,Re=-.90649,qe=1.97294,Ie=qe*Re,We=qe*Pe,He=Pe*Le-Re*Ue;function Ge(e){if(e instanceof Ve)return new Ve(e.h,e.s,e.l,e.opacity);e instanceof pe||(e=de(e));var t=e.r/255,n=e.g/255,i=e.b/255,r=(He*i+Ie*t-We*n)/(He+Ie-We),o=i-r,a=(qe*(n-r)-Le*o)/Re,s=Math.sqrt(a*a+o*o)/(qe*r*(1-r)),u=s?Math.atan2(a,o)*Ce-120:NaN;return new Ve(u<0?u+360:u,s,r,e.opacity)}function Ye(e,t,n,i){return 1===arguments.length?Ge(e):new Ve(e,t,n,null==i?1:i)}function Ve(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}function Xe(e,t,n,i,r){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*i+a*r)/6}function Je(e){var t=e.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),r=e[i],o=e[i+1],a=i>0?e[i-1]:2*r-o,s=i<t-1?e[i+2]:2*o-r;return Xe((n-i/t)*t,a,r,o,s)}}function Qe(e){var t=e.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*t),r=e[(i+t-1)%t],o=e[i%t],a=e[(i+1)%t],s=e[(i+2)%t];return Xe((n-i/t)*t,r,o,a,s)}}function Ze(e){return function(){return e}}function Ke(e,t){return function(n){return e+n*t}}function et(e,t){var n=t-e;return n?Ke(e,n>180||n<-180?n-360*Math.round(n/360):n):Ze(isNaN(e)?t:e)}function tt(e){return 1==(e=+e)?nt:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(i){return Math.pow(e+i*t,n)}}(t,n,e):Ze(isNaN(t)?n:t)}}function nt(e,t){var n=t-e;return n?Ke(e,n):Ze(isNaN(e)?t:e)}Y(Ve,Ye,V(X,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new Ve(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new Ve(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=isNaN(this.h)?0:(this.h+120)*Oe,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),i=Math.cos(e),r=Math.sin(e);return new pe(255*(t+n*(Ue*i+Pe*r)),255*(t+n*(Le*i+Re*r)),255*(t+n*(qe*i)),this.opacity)}}));var it=function e(t){var n=tt(t);function i(e,t){var i=n((e=ge(e)).r,(t=ge(t)).r),r=n(e.g,t.g),o=n(e.b,t.b),a=nt(e.opacity,t.opacity);return function(t){return e.r=i(t),e.g=r(t),e.b=o(t),e.opacity=a(t),e+""}}return i.gamma=e,i}(1);function rt(e){return function(t){var n,i,r=t.length,o=new Array(r),a=new Array(r),s=new Array(r);for(n=0;n<r;++n)i=ge(t[n]),o[n]=i.r||0,a[n]=i.g||0,s[n]=i.b||0;return o=e(o),a=e(a),s=e(s),i.opacity=1,function(e){return i.r=o(e),i.g=a(e),i.b=s(e),i+""}}}var ot=rt(Je),at=rt(Qe);function st(e,t){t||(t=[]);var n,i=e?Math.min(t.length,e.length):0,r=t.slice();return function(o){for(n=0;n<i;++n)r[n]=e[n]*(1-o)+t[n]*o;return r}}function ut(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function ct(e,t){var n,i=t?t.length:0,r=e?Math.min(i,e.length):0,o=new Array(r),a=new Array(i);for(n=0;n<r;++n)o[n]=mt(e[n],t[n]);for(;n<i;++n)a[n]=t[n];return function(e){for(n=0;n<r;++n)a[n]=o[n](e);return a}}function lt(e,t){var n=new Date;return e=+e,t=+t,function(i){return n.setTime(e*(1-i)+t*i),n}}function ft(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function dt(e,t){var n,i={},r={};for(n in null!==e&&"object"==typeof e||(e={}),null!==t&&"object"==typeof t||(t={}),t)n in e?i[n]=mt(e[n],t[n]):r[n]=t[n];return function(e){for(n in i)r[n]=i[n](e);return r}}var gt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,pt=new RegExp(gt.source,"g");function ht(e,t){var n,i,r,o=gt.lastIndex=pt.lastIndex=0,a=-1,s=[],u=[];for(e+="",t+="";(n=gt.exec(e))&&(i=pt.exec(t));)(r=i.index)>o&&(r=t.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,u.push({i:a,x:ft(n,i)})),o=pt.lastIndex;return o<t.length&&(r=t.slice(o),s[a]?s[a]+=r:s[++a]=r),s.length<2?u[0]?function(e){return function(t){return e(t)+""}}(u[0].x):function(e){return function(){return e}}(t):(t=u.length,function(e){for(var n,i=0;i<t;++i)s[(n=u[i]).i]=n.x(e);return s.join("")})}function mt(e,t){var n,i=typeof t;return null==t||"boolean"===i?Ze(t):("number"===i?ft:"string"===i?(n=ce(t))?(t=n,it):ht:t instanceof ce?it:t instanceof Date?lt:ut(t)?st:Array.isArray(t)?ct:"function"!=typeof t.valueOf&&"function"!=typeof t.toString||isNaN(t)?dt:ft)(e,t)}function bt(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var vt,yt,xt,wt,At=180/Math.PI,Ot={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ct(e,t,n,i,r,o){var a,s,u;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(u=e*n+t*i)&&(n-=e*u,i-=t*u),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,u/=s),e*i<t*n&&(e=-e,t=-t,u=-u,a=-a),{translateX:r,translateY:o,rotate:Math.atan2(t,e)*At,skewX:Math.atan(u)*At,scaleX:a,scaleY:s}}function Ft(e,t,n,i){function r(e){return e.length?e.pop()+" ":""}return function(o,a){var s=[],u=[];return o=e(o),a=e(a),function(e,i,r,o,a,s){if(e!==r||i!==o){var u=a.push("translate(",null,t,null,n);s.push({i:u-4,x:ft(e,r)},{i:u-2,x:ft(i,o)})}else(r||o)&&a.push("translate("+r+t+o+n)}(o.translateX,o.translateY,a.translateX,a.translateY,s,u),function(e,t,n,o){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),o.push({i:n.push(r(n)+"rotate(",null,i)-2,x:ft(e,t)})):t&&n.push(r(n)+"rotate("+t+i)}(o.rotate,a.rotate,s,u),function(e,t,n,o){e!==t?o.push({i:n.push(r(n)+"skewX(",null,i)-2,x:ft(e,t)}):t&&n.push(r(n)+"skewX("+t+i)}(o.skewX,a.skewX,s,u),function(e,t,n,i,o,a){if(e!==n||t!==i){var s=o.push(r(o)+"scale(",null,",",null,")");a.push({i:s-4,x:ft(e,n)},{i:s-2,x:ft(t,i)})}else 1===n&&1===i||o.push(r(o)+"scale("+n+","+i+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,u),o=a=null,function(e){for(var t,n=-1,i=u.length;++n<i;)s[(t=u[n]).i]=t.x(e);return s.join("")}}}var Dt=Ft((function(e){return"none"===e?Ot:(vt||(vt=document.createElement("DIV"),yt=document.documentElement,xt=document.defaultView),vt.style.transform=e,e=xt.getComputedStyle(yt.appendChild(vt),null).getPropertyValue("transform"),yt.removeChild(vt),Ct(+(e=e.slice(7,-1).split(","))[0],+e[1],+e[2],+e[3],+e[4],+e[5]))}),"px, ","px)","deg)"),jt=Ft((function(e){return null==e?Ot:(wt||(wt=document.createElementNS("http://www.w3.org/2000/svg","g")),wt.setAttribute("transform",e),(e=wt.transform.baseVal.consolidate())?Ct((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):Ot)}),", ",")",")"),kt=Math.SQRT2;function Et(e){return((e=Math.exp(e))+1/e)/2}function St(e){return function(t,n){var i=e((t=xe(t)).h,(n=xe(n)).h),r=nt(t.s,n.s),o=nt(t.l,n.l),a=nt(t.opacity,n.opacity);return function(e){return t.h=i(e),t.s=r(e),t.l=o(e),t.opacity=a(e),t+""}}}var $t=St(et),Nt=St(nt);function Mt(e){return function(t,n){var i=e((t=_e(t)).h,(n=_e(n)).h),r=nt(t.c,n.c),o=nt(t.l,n.l),a=nt(t.opacity,n.opacity);return function(e){return t.h=i(e),t.c=r(e),t.l=o(e),t.opacity=a(e),t+""}}}var Bt=Mt(et),_t=Mt(nt);function Tt(e){return function t(n){function i(t,i){var r=e((t=Ye(t)).h,(i=Ye(i)).h),o=nt(t.s,i.s),a=nt(t.l,i.l),s=nt(t.opacity,i.opacity);return function(e){return t.h=r(e),t.s=o(e),t.l=a(Math.pow(e,n)),t.opacity=s(e),t+""}}return n=+n,i.gamma=t,i}(1)}var zt=Tt(et),Ut=Tt(nt);function Pt(e,t){for(var n=0,i=t.length-1,r=t[0],o=new Array(i<0?0:i);n<i;)o[n]=e(r,r=t[++n]);return function(e){var t=Math.max(0,Math.min(i-1,Math.floor(e*=i)));return o[t](e-t)}}var Lt=Object.freeze({__proto__:null,interpolate:mt,interpolateArray:function(e,t){return(ut(t)?st:ct)(e,t)},interpolateBasis:Je,interpolateBasisClosed:Qe,interpolateDate:lt,interpolateDiscrete:function(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}},interpolateHue:function(e,t){var n=et(+e,+t);return function(e){var t=n(e);return t-360*Math.floor(t/360)}},interpolateNumber:ft,interpolateNumberArray:st,interpolateObject:dt,interpolateRound:bt,interpolateString:ht,interpolateTransformCss:Dt,interpolateTransformSvg:jt,interpolateZoom:function(e,t){var n,i,r=e[0],o=e[1],a=e[2],s=t[0],u=t[1],c=t[2],l=s-r,f=u-o,d=l*l+f*f;if(d<1e-12)i=Math.log(c/a)/kt,n=function(e){return[r+e*l,o+e*f,a*Math.exp(kt*e*i)]};else{var g=Math.sqrt(d),p=(c*c-a*a+4*d)/(2*a*2*g),h=(c*c-a*a-4*d)/(2*c*2*g),m=Math.log(Math.sqrt(p*p+1)-p),b=Math.log(Math.sqrt(h*h+1)-h);i=(b-m)/kt,n=function(e){var t,n=e*i,s=Et(m),u=a/(2*g)*(s*(t=kt*n+m,((t=Math.exp(2*t))-1)/(t+1))-function(e){return((e=Math.exp(e))-1/e)/2}(m));return[r+u*l,o+u*f,a*s/Et(kt*n+m)]}}return n.duration=1e3*i,n},interpolateRgb:it,interpolateRgbBasis:ot,interpolateRgbBasisClosed:at,interpolateHsl:$t,interpolateHslLong:Nt,interpolateLab:function(e,t){var n=nt((e=ke(e)).l,(t=ke(t)).l),i=nt(e.a,t.a),r=nt(e.b,t.b),o=nt(e.opacity,t.opacity);return function(t){return e.l=n(t),e.a=i(t),e.b=r(t),e.opacity=o(t),e+""}},interpolateHcl:Bt,interpolateHclLong:_t,interpolateCubehelix:zt,interpolateCubehelixLong:Ut,piecewise:Pt,quantize:function(e,t){for(var n=new Array(t),i=0;i<t;++i)n[i]=e(i/(t-1));return n}});function Rt(e){return+e}var qt=[0,1];function It(e){return e}function Wt(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:(n=isNaN(t)?NaN:.5,function(){return n});var n}function Ht(e,t,n){var i=e[0],r=e[1],o=t[0],a=t[1];return r<i?(i=Wt(r,i),o=n(a,o)):(i=Wt(i,r),o=n(o,a)),function(e){return o(i(e))}}function Gt(e,t,n){var i=Math.min(e.length,t.length)-1,r=new Array(i),o=new Array(i),a=-1;for(e[i]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<i;)r[a]=Wt(e[a],e[a+1]),o[a]=n(t[a],t[a+1]);return function(t){var n=N(e,t,1,i)-1;return o[n](r[n](t))}}function Yt(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Vt(){var e,t,n,i,r,o,a=qt,s=qt,u=mt,c=It;function l(){var e,t,n,u=Math.min(a.length,s.length);return c!==It&&(e=a[0],t=a[u-1],e>t&&(n=e,e=t,t=n),c=function(n){return Math.max(e,Math.min(t,n))}),i=u>2?Gt:Ht,r=o=null,f}function f(t){return isNaN(t=+t)?n:(r||(r=i(a.map(e),s,u)))(e(c(t)))}return f.invert=function(n){return c(t((o||(o=i(s,a.map(e),ft)))(n)))},f.domain=function(e){return arguments.length?(a=Array.from(e,Rt),l()):a.slice()},f.range=function(e){return arguments.length?(s=Array.from(e),l()):s.slice()},f.rangeRound=function(e){return s=Array.from(e),u=bt,l()},f.clamp=function(e){return arguments.length?(c=!!e||It,l()):c!==It},f.interpolate=function(e){return arguments.length?(u=e,l()):u},f.unknown=function(e){return arguments.length?(n=e,f):n},function(n,i){return e=n,t=i,l()}}function Xt(){return Vt()(It,It)}function Jt(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,i=e.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+e.slice(n+1)]}function Qt(e){return(e=Jt(Math.abs(e)))?e[1]:NaN}var Zt,Kt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function en(e){if(!(t=Kt.exec(e)))throw new Error("invalid format: "+e);var t;return new tn({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function tn(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function nn(e,t){var n=Jt(e,t);if(!n)return e+"";var i=n[0],r=n[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}en.prototype=tn.prototype,tn.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var rn={"%":function(e,t){return(100*e).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:function(e){return Math.round(e).toString(10)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return nn(100*e,t)},r:nn,s:function(e,t){var n=Jt(e,t);if(!n)return e+"";var i=n[0],r=n[1],o=r-(Zt=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,a=i.length;return o===a?i:o>a?i+new Array(o-a+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+Jt(e,Math.max(0,t+o-1))[0]},X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function on(e){return e}var an,sn,un,cn=Array.prototype.map,ln=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function fn(e){var t,n,i=void 0===e.grouping||void 0===e.thousands?on:(t=cn.call(e.grouping,Number),n=e.thousands+"",function(e,i){for(var r=e.length,o=[],a=0,s=t[0],u=0;r>0&&s>0&&(u+s+1>i&&(s=Math.max(1,i-u)),o.push(e.substring(r-=s,r+s)),!((u+=s+1)>i));)s=t[a=(a+1)%t.length];return o.reverse().join(n)}),r=void 0===e.currency?"":e.currency[0]+"",o=void 0===e.currency?"":e.currency[1]+"",a=void 0===e.decimal?".":e.decimal+"",s=void 0===e.numerals?on:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(cn.call(e.numerals,String)),u=void 0===e.percent?"%":e.percent+"",c=void 0===e.minus?"-":e.minus+"",l=void 0===e.nan?"NaN":e.nan+"";function f(e){var t=(e=en(e)).fill,n=e.align,f=e.sign,d=e.symbol,g=e.zero,p=e.width,h=e.comma,m=e.precision,b=e.trim,v=e.type;"n"===v?(h=!0,v="g"):rn[v]||(void 0===m&&(m=12),b=!0,v="g"),(g||"0"===t&&"="===n)&&(g=!0,t="0",n="=");var y="$"===d?r:"#"===d&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",x="$"===d?o:/[%p]/.test(v)?u:"",w=rn[v],A=/[defgprs%]/.test(v);function O(e){var r,o,u,d=y,O=x;if("c"===v)O=w(e)+O,e="";else{var C=(e=+e)<0;if(e=isNaN(e)?l:w(Math.abs(e),m),b&&(e=function(e){e:for(var t,n=e.length,i=1,r=-1;i<n;++i)switch(e[i]){case".":r=t=i;break;case"0":0===r&&(r=i),t=i;break;default:if(!+e[i])break e;r>0&&(r=0)}return r>0?e.slice(0,r)+e.slice(t+1):e}(e)),C&&0==+e&&(C=!1),d=(C?"("===f?f:c:"-"===f||"("===f?"":f)+d,O=("s"===v?ln[8+Zt/3]:"")+O+(C&&"("===f?")":""),A)for(r=-1,o=e.length;++r<o;)if(48>(u=e.charCodeAt(r))||u>57){O=(46===u?a+e.slice(r+1):e.slice(r))+O,e=e.slice(0,r);break}}h&&!g&&(e=i(e,1/0));var F=d.length+e.length+O.length,D=F<p?new Array(p-F+1).join(t):"";switch(h&&g&&(e=i(D+e,D.length?p-O.length:1/0),D=""),n){case"<":e=d+e+O+D;break;case"=":e=d+D+e+O;break;case"^":e=D.slice(0,F=D.length>>1)+d+e+O+D.slice(F);break;default:e=D+d+e+O}return s(e)}return m=void 0===m?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),O.toString=function(){return e+""},O}return{format:f,formatPrefix:function(e,t){var n=f(((e=en(e)).type="f",e)),i=3*Math.max(-8,Math.min(8,Math.floor(Qt(t)/3))),r=Math.pow(10,-i),o=ln[8+i/3];return function(e){return n(r*e)+o}}}}function dn(e,t,n,i){var r,o=U(e,t,n);switch((i=en(null==i?",f":i)).type){case"s":var a=Math.max(Math.abs(e),Math.abs(t));return null!=i.precision||isNaN(r=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Qt(t)/3)))-Qt(Math.abs(e)))}(o,a))||(i.precision=r),un(i,a);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(r=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Qt(t)-Qt(e))+1}(o,Math.max(Math.abs(e),Math.abs(t))))||(i.precision=r-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(r=function(e){return Math.max(0,-Qt(Math.abs(e)))}(o))||(i.precision=r-2*("%"===i.type))}return sn(i)}function gn(e){var t=e.domain;return e.ticks=function(e){var n=t();return T(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var i=t();return dn(i[0],i[i.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var i,r=t(),o=0,a=r.length-1,s=r[o],u=r[a];return u<s&&(i=s,s=u,u=i,i=o,o=a,a=i),(i=z(s,u,n))>0?i=z(s=Math.floor(s/i)*i,u=Math.ceil(u/i)*i,n):i<0&&(i=z(s=Math.ceil(s*i)/i,u=Math.floor(u*i)/i,n)),i>0?(r[o]=Math.floor(s/i)*i,r[a]=Math.ceil(u/i)*i,t(r)):i<0&&(r[o]=Math.ceil(s*i)/i,r[a]=Math.floor(u*i)/i,t(r)),e},e}function pn(e,t){var n,i=0,r=(e=e.slice()).length-1,o=e[i],a=e[r];return a<o&&(n=i,i=r,r=n,n=o,o=a,a=n),e[i]=t.floor(o),e[r]=t.ceil(a),e}function hn(e){return Math.log(e)}function mn(e){return Math.exp(e)}function bn(e){return-Math.log(-e)}function vn(e){return-Math.exp(-e)}function yn(e){return isFinite(e)?+("1e"+e):e<0?0:e}function xn(e){return function(t){return-e(-t)}}function wn(e){var t,n,i=e(hn,mn),r=i.domain,o=10;function a(){return t=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),function(t){return Math.log(t)/e})}(o),n=function(e){return 10===e?yn:e===Math.E?Math.exp:function(t){return Math.pow(e,t)}}(o),r()[0]<0?(t=xn(t),n=xn(n),e(bn,vn)):e(hn,mn),i}return i.base=function(e){return arguments.length?(o=+e,a()):o},i.domain=function(e){return arguments.length?(r(e),a()):r()},i.ticks=function(e){var i,a=r(),s=a[0],u=a[a.length-1];(i=u<s)&&(d=s,s=u,u=d);var c,l,f,d=t(s),g=t(u),p=null==e?10:+e,h=[];if(!(o%1)&&g-d<p){if(d=Math.floor(d),g=Math.ceil(g),s>0){for(;d<=g;++d)for(l=1,c=n(d);l<o;++l)if(!((f=c*l)<s)){if(f>u)break;h.push(f)}}else for(;d<=g;++d)for(l=o-1,c=n(d);l>=1;--l)if(!((f=c*l)<s)){if(f>u)break;h.push(f)}2*h.length<p&&(h=T(s,u,p))}else h=T(d,g,Math.min(g-d,p)).map(n);return i?h.reverse():h},i.tickFormat=function(e,r){if(null==r&&(r=10===o?".0e":","),"function"!=typeof r&&(r=sn(r)),e===1/0)return r;null==e&&(e=10);var a=Math.max(1,o*e/i.ticks().length);return function(e){var i=e/n(Math.round(t(e)));return i*o<o-.5&&(i*=o),i<=a?r(e):""}},i.nice=function(){return r(pn(r(),{floor:function(e){return n(Math.floor(t(e)))},ceil:function(e){return n(Math.ceil(t(e)))}}))},i}function An(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function On(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Cn(e){var t=1,n=e(An(t),On(t));return n.constant=function(n){return arguments.length?e(An(t=+n),On(t)):t},gn(n)}function Fn(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Dn(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function jn(e){return e<0?-e*e:e*e}function kn(e){var t=e(It,It),n=1;function i(){return 1===n?e(It,It):.5===n?e(Dn,jn):e(Fn(n),Fn(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,i()):n},gn(t)}function En(){var e=kn(Vt());return e.copy=function(){return Yt(e,En()).exponent(e.exponent())},I.apply(e,arguments),e}an=fn({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),sn=an.format,un=an.formatPrefix;var Sn=new Date,$n=new Date;function Nn(e,t,n,i){function r(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return r.floor=function(t){return e(t=new Date(+t)),t},r.ceil=function(n){return e(n=new Date(n-1)),t(n,1),e(n),n},r.round=function(e){var t=r(e),n=r.ceil(e);return e-t<n-e?t:n},r.offset=function(e,n){return t(e=new Date(+e),null==n?1:Math.floor(n)),e},r.range=function(n,i,o){var a,s=[];if(n=r.ceil(n),o=null==o?1:Math.floor(o),!(n<i&&o>0))return s;do{s.push(a=new Date(+n)),t(n,o),e(n)}while(a<n&&n<i);return s},r.filter=function(n){return Nn((function(t){if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),(function(e,i){if(e>=e)if(i<0)for(;++i<=0;)for(;t(e,-1),!n(e););else for(;--i>=0;)for(;t(e,1),!n(e););}))},n&&(r.count=function(t,i){return Sn.setTime(+t),$n.setTime(+i),e(Sn),e($n),Math.floor(n(Sn,$n))},r.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?r.filter(i?function(t){return i(t)%e==0}:function(t){return r.count(0,t)%e==0}):r:null}),r}var Mn=Nn((function(){}),(function(e,t){e.setTime(+e+t)}),(function(e,t){return t-e}));Mn.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?Nn((function(t){t.setTime(Math.floor(t/e)*e)}),(function(t,n){t.setTime(+t+n*e)}),(function(t,n){return(n-t)/e})):Mn:null};var Bn=Nn((function(e){e.setTime(e-e.getMilliseconds())}),(function(e,t){e.setTime(+e+1e3*t)}),(function(e,t){return(t-e)/1e3}),(function(e){return e.getUTCSeconds()})),_n=Nn((function(e){e.setTime(e-e.getMilliseconds()-1e3*e.getSeconds())}),(function(e,t){e.setTime(+e+6e4*t)}),(function(e,t){return(t-e)/6e4}),(function(e){return e.getMinutes()})),Tn=Nn((function(e){e.setTime(e-e.getMilliseconds()-1e3*e.getSeconds()-6e4*e.getMinutes())}),(function(e,t){e.setTime(+e+36e5*t)}),(function(e,t){return(t-e)/36e5}),(function(e){return e.getHours()})),zn=Nn((function(e){e.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+t)}),(function(e,t){return(t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5}),(function(e){return e.getDate()-1}));function Un(e){return Nn((function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/6048e5}))}var Pn=Un(0),Ln=Un(1),Rn=(Un(2),Un(3),Un(4)),qn=(Un(5),Un(6),Nn((function(e){e.setDate(1),e.setHours(0,0,0,0)}),(function(e,t){e.setMonth(e.getMonth()+t)}),(function(e,t){return t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())}),(function(e){return e.getMonth()}))),In=Nn((function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()}));In.every=function(e){return isFinite(e=Math.floor(e))&&e>0?Nn((function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,n){t.setFullYear(t.getFullYear()+n*e)})):null};var Wn=Nn((function(e){e.setUTCSeconds(0,0)}),(function(e,t){e.setTime(+e+6e4*t)}),(function(e,t){return(t-e)/6e4}),(function(e){return e.getUTCMinutes()})),Hn=Nn((function(e){e.setUTCMinutes(0,0,0)}),(function(e,t){e.setTime(+e+36e5*t)}),(function(e,t){return(t-e)/36e5}),(function(e){return e.getUTCHours()})),Gn=Nn((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/864e5}),(function(e){return e.getUTCDate()-1}));function Yn(e){return Nn((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/6048e5}))}var Vn=Yn(0),Xn=Yn(1),Jn=(Yn(2),Yn(3),Yn(4)),Qn=(Yn(5),Yn(6),Nn((function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCMonth(e.getUTCMonth()+t)}),(function(e,t){return t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return e.getUTCMonth()}))),Zn=Nn((function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()}));function Kn(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function ei(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function ti(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}Zn.every=function(e){return isFinite(e=Math.floor(e))&&e>0?Nn((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null};var ni,ii,ri,oi={"-":"",_:" ",0:"0"},ai=/^\s*\d+/,si=/^%/,ui=/[\\^$*+?|[\]().{}]/g;function ci(e,t,n){var i=e<0?"-":"",r=(i?-e:e)+"",o=r.length;return i+(o<n?new Array(n-o+1).join(t)+r:r)}function li(e){return e.replace(ui,"\\$&")}function fi(e){return new RegExp("^(?:"+e.map(li).join("|")+")","i")}function di(e){for(var t={},n=-1,i=e.length;++n<i;)t[e[n].toLowerCase()]=n;return t}function gi(e,t,n){var i=ai.exec(t.slice(n,n+1));return i?(e.w=+i[0],n+i[0].length):-1}function pi(e,t,n){var i=ai.exec(t.slice(n,n+1));return i?(e.u=+i[0],n+i[0].length):-1}function hi(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.U=+i[0],n+i[0].length):-1}function mi(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.V=+i[0],n+i[0].length):-1}function bi(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.W=+i[0],n+i[0].length):-1}function vi(e,t,n){var i=ai.exec(t.slice(n,n+4));return i?(e.y=+i[0],n+i[0].length):-1}function yi(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function xi(e,t,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return i?(e.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function wi(e,t,n){var i=ai.exec(t.slice(n,n+1));return i?(e.q=3*i[0]-3,n+i[0].length):-1}function Ai(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.m=i[0]-1,n+i[0].length):-1}function Oi(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.d=+i[0],n+i[0].length):-1}function Ci(e,t,n){var i=ai.exec(t.slice(n,n+3));return i?(e.m=0,e.d=+i[0],n+i[0].length):-1}function Fi(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.H=+i[0],n+i[0].length):-1}function Di(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.M=+i[0],n+i[0].length):-1}function ji(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.S=+i[0],n+i[0].length):-1}function ki(e,t,n){var i=ai.exec(t.slice(n,n+3));return i?(e.L=+i[0],n+i[0].length):-1}function Ei(e,t,n){var i=ai.exec(t.slice(n,n+6));return i?(e.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function Si(e,t,n){var i=si.exec(t.slice(n,n+1));return i?n+i[0].length:-1}function $i(e,t,n){var i=ai.exec(t.slice(n));return i?(e.Q=+i[0],n+i[0].length):-1}function Ni(e,t,n){var i=ai.exec(t.slice(n));return i?(e.s=+i[0],n+i[0].length):-1}function Mi(e,t){return ci(e.getDate(),t,2)}function Bi(e,t){return ci(e.getHours(),t,2)}function _i(e,t){return ci(e.getHours()%12||12,t,2)}function Ti(e,t){return ci(1+zn.count(In(e),e),t,3)}function zi(e,t){return ci(e.getMilliseconds(),t,3)}function Ui(e,t){return zi(e,t)+"000"}function Pi(e,t){return ci(e.getMonth()+1,t,2)}function Li(e,t){return ci(e.getMinutes(),t,2)}function Ri(e,t){return ci(e.getSeconds(),t,2)}function qi(e){var t=e.getDay();return 0===t?7:t}function Ii(e,t){return ci(Pn.count(In(e)-1,e),t,2)}function Wi(e,t){var n=e.getDay();return e=n>=4||0===n?Rn(e):Rn.ceil(e),ci(Rn.count(In(e),e)+(4===In(e).getDay()),t,2)}function Hi(e){return e.getDay()}function Gi(e,t){return ci(Ln.count(In(e)-1,e),t,2)}function Yi(e,t){return ci(e.getFullYear()%100,t,2)}function Vi(e,t){return ci(e.getFullYear()%1e4,t,4)}function Xi(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ci(t/60|0,"0",2)+ci(t%60,"0",2)}function Ji(e,t){return ci(e.getUTCDate(),t,2)}function Qi(e,t){return ci(e.getUTCHours(),t,2)}function Zi(e,t){return ci(e.getUTCHours()%12||12,t,2)}function Ki(e,t){return ci(1+Gn.count(Zn(e),e),t,3)}function er(e,t){return ci(e.getUTCMilliseconds(),t,3)}function tr(e,t){return er(e,t)+"000"}function nr(e,t){return ci(e.getUTCMonth()+1,t,2)}function ir(e,t){return ci(e.getUTCMinutes(),t,2)}function rr(e,t){return ci(e.getUTCSeconds(),t,2)}function or(e){var t=e.getUTCDay();return 0===t?7:t}function ar(e,t){return ci(Vn.count(Zn(e)-1,e),t,2)}function sr(e,t){var n=e.getUTCDay();return e=n>=4||0===n?Jn(e):Jn.ceil(e),ci(Jn.count(Zn(e),e)+(4===Zn(e).getUTCDay()),t,2)}function ur(e){return e.getUTCDay()}function cr(e,t){return ci(Xn.count(Zn(e)-1,e),t,2)}function lr(e,t){return ci(e.getUTCFullYear()%100,t,2)}function fr(e,t){return ci(e.getUTCFullYear()%1e4,t,4)}function dr(){return"+0000"}function gr(){return"%"}function pr(e){return+e}function hr(e){return Math.floor(+e/1e3)}!function(e){ni=function(e){var t=e.dateTime,n=e.date,i=e.time,r=e.periods,o=e.days,a=e.shortDays,s=e.months,u=e.shortMonths,c=fi(r),l=di(r),f=fi(o),d=di(o),g=fi(a),p=di(a),h=fi(s),m=di(s),b=fi(u),v=di(u),y={a:function(e){return a[e.getDay()]},A:function(e){return o[e.getDay()]},b:function(e){return u[e.getMonth()]},B:function(e){return s[e.getMonth()]},c:null,d:Mi,e:Mi,f:Ui,H:Bi,I:_i,j:Ti,L:zi,m:Pi,M:Li,p:function(e){return r[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:pr,s:hr,S:Ri,u:qi,U:Ii,V:Wi,w:Hi,W:Gi,x:null,X:null,y:Yi,Y:Vi,Z:Xi,"%":gr},x={a:function(e){return a[e.getUTCDay()]},A:function(e){return o[e.getUTCDay()]},b:function(e){return u[e.getUTCMonth()]},B:function(e){return s[e.getUTCMonth()]},c:null,d:Ji,e:Ji,f:tr,H:Qi,I:Zi,j:Ki,L:er,m:nr,M:ir,p:function(e){return r[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:pr,s:hr,S:rr,u:or,U:ar,V:sr,w:ur,W:cr,x:null,X:null,y:lr,Y:fr,Z:dr,"%":gr},w={a:function(e,t,n){var i=g.exec(t.slice(n));return i?(e.w=p[i[0].toLowerCase()],n+i[0].length):-1},A:function(e,t,n){var i=f.exec(t.slice(n));return i?(e.w=d[i[0].toLowerCase()],n+i[0].length):-1},b:function(e,t,n){var i=b.exec(t.slice(n));return i?(e.m=v[i[0].toLowerCase()],n+i[0].length):-1},B:function(e,t,n){var i=h.exec(t.slice(n));return i?(e.m=m[i[0].toLowerCase()],n+i[0].length):-1},c:function(e,n,i){return C(e,t,n,i)},d:Oi,e:Oi,f:Ei,H:Fi,I:Fi,j:Ci,L:ki,m:Ai,M:Di,p:function(e,t,n){var i=c.exec(t.slice(n));return i?(e.p=l[i[0].toLowerCase()],n+i[0].length):-1},q:wi,Q:$i,s:Ni,S:ji,u:pi,U:hi,V:mi,w:gi,W:bi,x:function(e,t,i){return C(e,n,t,i)},X:function(e,t,n){return C(e,i,t,n)},y:yi,Y:vi,Z:xi,"%":Si};function A(e,t){return function(n){var i,r,o,a=[],s=-1,u=0,c=e.length;for(n instanceof Date||(n=new Date(+n));++s<c;)37===e.charCodeAt(s)&&(a.push(e.slice(u,s)),null!=(r=oi[i=e.charAt(++s)])?i=e.charAt(++s):r="e"===i?" ":"0",(o=t[i])&&(i=o(n,r)),a.push(i),u=s+1);return a.push(e.slice(u,s)),a.join("")}}function O(e,t){return function(n){var i,r,o=ti(1900,void 0,1);if(C(o,e,n+="",0)!=n.length)return null;if("Q"in o)return new Date(o.Q);if("s"in o)return new Date(1e3*o.s+("L"in o?o.L:0));if(!t||"Z"in o||(o.Z=0),"p"in o&&(o.H=o.H%12+12*o.p),void 0===o.m&&(o.m="q"in o?o.q:0),"V"in o){if(o.V<1||o.V>53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=ei(ti(o.y,0,1))).getUTCDay(),i=r>4||0===r?Xn.ceil(i):Xn(i),i=Gn.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=Kn(ti(o.y,0,1))).getDay(),i=r>4||0===r?Ln.ceil(i):Ln(i),i=zn.offset(i,7*(o.V-1)),o.y=i.getFullYear(),o.m=i.getMonth(),o.d=i.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),r="Z"in o?ei(ti(o.y,0,1)).getUTCDay():Kn(ti(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(r+5)%7:o.w+7*o.U-(r+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,ei(o)):Kn(o)}}function C(e,t,n,i){for(var r,o,a=0,s=t.length,u=n.length;a<s;){if(i>=u)return-1;if(37===(r=t.charCodeAt(a++))){if(r=t.charAt(a++),!(o=w[r in oi?t.charAt(a++):r])||(i=o(e,n,i))<0)return-1}else if(r!=n.charCodeAt(i++))return-1}return i}return(y.x=A(n,y),y.X=A(i,y),y.c=A(t,y),x.x=A(n,x),x.X=A(i,x),x.c=A(t,x),{format:function(e){var t=A(e+="",y);return t.toString=function(){return e},t},parse:function(e){var t=O(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=A(e+="",x);return t.toString=function(){return e},t},utcParse:function(e){var t=O(e+="",!0);return t.toString=function(){return e},t}})}(e),ii=ni.format,ni.parse,ri=ni.utcFormat,ni.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function mr(e){return new Date(e)}function br(e){return e instanceof Date?+e:+new Date(+e)}function vr(e,t,n,i,r,o,a,s,u){var c=Xt(),l=c.invert,f=c.domain,d=u(".%L"),g=u(":%S"),p=u("%I:%M"),h=u("%I %p"),m=u("%a %d"),b=u("%b %d"),v=u("%B"),y=u("%Y"),x=[[a,1,1e3],[a,5,5e3],[a,15,15e3],[a,30,3e4],[o,1,6e4],[o,5,3e5],[o,15,9e5],[o,30,18e5],[r,1,36e5],[r,3,108e5],[r,6,216e5],[r,12,432e5],[i,1,864e5],[i,2,1728e5],[n,1,6048e5],[t,1,2592e6],[t,3,7776e6],[e,1,31536e6]];function w(s){return(a(s)<s?d:o(s)<s?g:r(s)<s?p:i(s)<s?h:t(s)<s?n(s)<s?m:b:e(s)<s?v:y)(s)}function A(t,n,i){if(null==t&&(t=10),"number"==typeof t){var r,o=Math.abs(i-n)/t,a=$((function(e){return e[2]})).right(x,o);return a===x.length?(r=U(n/31536e6,i/31536e6,t),t=e):a?(r=(a=x[o/x[a-1][2]<x[a][2]/o?a-1:a])[1],t=a[0]):(r=Math.max(U(n,i,t),1),t=s),t.every(r)}return t}return c.invert=function(e){return new Date(l(e))},c.domain=function(e){return arguments.length?f(Array.from(e,br)):f().map(mr)},c.ticks=function(e){var t,n=f(),i=n[0],r=n[n.length-1],o=r<i;return o&&(t=i,i=r,r=t),t=(t=A(e,i,r))?t.range(i,r+1):[],o?t.reverse():t},c.tickFormat=function(e,t){return null==t?w:u(t)},c.nice=function(e){var t=f();return(e=A(e,t[0],t[t.length-1]))?f(pn(t,e)):c},c.copy=function(){return Yt(c,vr(e,t,n,i,r,o,a,s,u))},c}function yr(){var e,t,n,i,r,o=0,a=1,s=It,u=!1;function c(t){return isNaN(t=+t)?r:s(0===n?.5:(t=(i(t)-e)*n,u?Math.max(0,Math.min(1,t)):t))}function l(e){return function(t){var n,i;return arguments.length?([n,i]=t,s=e(n,i),c):[s(0),s(1)]}}return c.domain=function(r){return arguments.length?([o,a]=r,e=i(o=+o),t=i(a=+a),n=e===t?0:1/(t-e),c):[o,a]},c.clamp=function(e){return arguments.length?(u=!!e,c):u},c.interpolator=function(e){return arguments.length?(s=e,c):s},c.range=l(mt),c.rangeRound=l(bt),c.unknown=function(e){return arguments.length?(r=e,c):r},function(r){return i=r,e=r(o),t=r(a),n=e===t?0:1/(t-e),c}}function xr(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function wr(){var e=gn(yr()(It));return e.copy=function(){return xr(e,wr())},W.apply(e,arguments)}function Ar(){var e=kn(yr());return e.copy=function(){return xr(e,Ar()).exponent(e.exponent())},W.apply(e,arguments)}function Or(){var e,t,n,i,r,o,a,s=0,u=.5,c=1,l=1,f=It,d=!1;function g(e){return isNaN(e=+e)?a:(e=.5+((e=+o(e))-t)*(l*e<l*t?i:r),f(d?Math.max(0,Math.min(1,e)):e))}function p(e){return function(t){var n,i,r;return arguments.length?([n,i,r]=t,f=Pt(e,[n,i,r]),g):[f(0),f(.5),f(1)]}}return g.domain=function(a){return arguments.length?([s,u,c]=a,e=o(s=+s),t=o(u=+u),n=o(c=+c),i=e===t?0:.5/(t-e),r=t===n?0:.5/(n-t),l=t<e?-1:1,g):[s,u,c]},g.clamp=function(e){return arguments.length?(d=!!e,g):d},g.interpolator=function(e){return arguments.length?(f=e,g):f},g.range=p(mt),g.rangeRound=p(bt),g.unknown=function(e){return arguments.length?(a=e,g):a},function(a){return o=a,e=a(s),t=a(u),n=a(c),i=e===t?0:.5/(t-e),r=t===n?0:.5/(n-t),l=t<e?-1:1,g}}function Cr(){var e=kn(Or());return e.copy=function(){return xr(e,Cr()).exponent(e.exponent())},W.apply(e,arguments)}function Fr(){var e,t,n=G().unknown(void 0),i=n.domain,r=n.range,o=[0,1],a=!1,s=0,u=0,c=.5;function l(){var n=i().length,l=o[1]<o[0],f=o[l-0],d=o[1-l],g=function(e,t,n){var i=e-t+2*n;return e?i>0?i:1:0}(n,s,u);e=(d-f)/(g||1),a&&(e=Math.floor(e)),f+=(d-f-e*(n-s))*c,t=e*(1-s),a&&(f=Math.round(f),t=Math.round(t));var p=function(e,t,n){e=+e,t=+t,n=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+n;for(var i=-1,r=0|Math.max(0,Math.ceil((t-e)/n)),o=new Array(r);++i<r;)o[i]=e+i*n;return o}(n).map((function(t){return f+e*t}));return r(l?p.reverse():p)}return delete n.unknown,n.domain=function(e){return arguments.length?(i(e),l()):i()},n.range=function(e){return arguments.length?(o=[+e[0],+e[1]],l()):o.slice()},n.rangeRound=function(e){return o=[+e[0],+e[1]],a=!0,l()},n.bandwidth=function(){return t},n.step=function(){return e},n.round=function(e){return arguments.length?(a=!!e,l()):a},n.padding=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),s=u,l()):s},n.paddingInner=function(e){return arguments.length?(s=Math.max(0,Math.min(1,e)),l()):s},n.paddingOuter=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),l()):u},n.align=function(e){return arguments.length?(c=Math.max(0,Math.min(1,e)),l()):c},n.invertRange=function(e){if(null!=e[0]&&null!=e[1]){var n,a,s,u=+e[0],c=+e[1],l=o[1]<o[0],f=l?r().reverse():r(),d=f.length-1;if(u==u&&c==c&&(c<u&&(s=u,u=c,c=s),!(c<f[0]||u>o[1-l])))return n=Math.max(0,N(f,u)-1),a=u===c?n:N(f,c)-1,u-f[n]>t+1e-10&&++n,l&&(s=n,n=d-a,a=d-s),n>a?void 0:i().slice(n,a+1)}},n.invert=function(e){var t=n.invertRange([e,e]);return t?t[0]:t},n.copy=function(){return Fr().domain(i()).range(o).round(a).paddingInner(s).paddingOuter(u).align(c)},l()}var Dr=Array.prototype.map;function jr(e){return Dr.call(e,(function(e){return+e}))}var kr=Array.prototype.slice;const Er={};function Sr(e,t,n){const i=function(){var n=t();return n.invertRange||(n.invertRange=n.invert?function(e){return function(t){var n,i=t[0],r=t[1];return r<i&&(n=i,i=r,r=n),[e.invert(i),e.invert(r)]}}(n):n.invertExtent?function(e){return function(t){var n,i,r,o,a=e.range(),s=t[0],u=t[1],c=-1;for(u<s&&(i=s,s=u,u=i),r=0,o=a.length;r<o;++r)a[r]>=s&&a[r]<=u&&(c<0&&(c=r),n=r);if(!(c<0))return s=e.invertExtent(a[c]),u=e.invertExtent(a[n]),[void 0===s[0]?s[1]:s[0],void 0===u[1]?u[0]:u[1]]}}(n):void 0),n.type=e,n};var r;return i.metadata=function(e){for(var t={},n=0,i=e.length;n<i;++n)t[e[n]]=!0;return t}(null!=(r=n)?D(r)?r:[r]:[]),i}function $r(e,t,n){return arguments.length>1?(Er[e]=Sr(e,t,n),this):Nr(e)?Er[e]:void 0}function Nr(e){return function(e,t){return E.call(e,t)}(Er,e)}function Mr(e,t,n){return Pt(function(e,t){var n=Lt[function(e){return"interpolate"+e.toLowerCase().split("-").map((function(e){return e[0].toUpperCase()+e.slice(1)})).join("")}(e)];return null!=t&&n&&n.gamma?n.gamma(t):n}(t||"rgb",n),e)}$r("identity",(function e(t){var n;function i(e){return isNaN(e=+e)?n:e}return i.invert=i,i.domain=i.range=function(e){return arguments.length?(t=Array.from(e,Rt),i):t.slice()},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return e(t).unknown(n)},t=arguments.length?Array.from(t,Rt):[0,1],gn(i)})),$r("linear",(function e(){var t=Xt();return t.copy=function(){return Yt(t,e())},I.apply(t,arguments),gn(t)}),O),$r(A,(function e(){var t=wn(Vt()).domain([1,10]);return t.copy=function(){return Yt(t,e()).base(t.base())},I.apply(t,arguments),t}),[O,A]),$r("pow",En,O),$r("sqrt",(function(){return En.apply(null,arguments).exponent(.5)}),O),$r("symlog",(function e(){var t=Cn(Vt());return t.copy=function(){return Yt(t,e()).constant(t.constant())},I.apply(t,arguments)}),O),$r("time",(function(){return I.apply(vr(In,qn,Pn,zn,Tn,_n,Bn,Mn,ii).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}),[O,"temporal"]),$r("utc",(function(){return I.apply(vr(Zn,Qn,Vn,Gn,Hn,Wn,Bn,Mn,ri).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}),[O,"temporal"]),$r("sequential",wr,[O,"interpolating"]),$r("sequential-linear",wr,[O,"interpolating"]),$r("sequential-log",(function e(){var t=wn(yr()).domain([1,10]);return t.copy=function(){return xr(t,e()).base(t.base())},W.apply(t,arguments)}),[O,"interpolating",A]),$r("sequential-pow",Ar,[O,"interpolating"]),$r("sequential-sqrt",(function(){return Ar.apply(null,arguments).exponent(.5)}),[O,"interpolating"]),$r("sequential-symlog",(function e(){var t=Cn(yr());return t.copy=function(){return xr(t,e()).constant(t.constant())},W.apply(t,arguments)}),[O,"interpolating"]),$r("diverging-linear",(function e(){var t=gn(Or()(It));return t.copy=function(){return xr(t,e())},W.apply(t,arguments)}),[O,"interpolating"]),$r("diverging-log",(function e(){var t=wn(Or()).domain([.1,1,10]);return t.copy=function(){return xr(t,e()).base(t.base())},W.apply(t,arguments)}),[O,"interpolating",A]),$r("diverging-pow",Cr,[O,"interpolating"]),$r("diverging-sqrt",(function(){return Cr.apply(null,arguments).exponent(.5)}),[O,"interpolating"]),$r("diverging-symlog",(function e(){var t=Cn(Or());return t.copy=function(){return xr(t,e()).constant(t.constant())},W.apply(t,arguments)}),[O,"interpolating"]),$r("quantile",(function e(){var t,n=[],i=[],r=[];function o(){var e=0,t=Math.max(1,i.length);for(r=new Array(t-1);++e<t;)r[e-1]=q(n,e/t);return a}function a(e){return isNaN(e=+e)?t:i[N(r,e)]}return a.invertExtent=function(e){var t=i.indexOf(e);return t<0?[NaN,NaN]:[t>0?r[t-1]:n[0],t<r.length?r[t]:n[n.length-1]]},a.domain=function(e){if(!arguments.length)return n.slice();n=[];for(let t of e)null==t||isNaN(t=+t)||n.push(t);return n.sort(S),o()},a.range=function(e){return arguments.length?(i=Array.from(e),o()):i.slice()},a.unknown=function(e){return arguments.length?(t=e,a):t},a.quantiles=function(){return r.slice()},a.copy=function(){return e().domain(n).range(i).unknown(t)},I.apply(a,arguments)}),["discretizing","quantile"]),$r("quantize",(function e(){var t,n=0,i=1,r=1,o=[.5],a=[0,1];function s(e){return e<=e?a[N(o,e,0,r)]:t}function u(){var e=-1;for(o=new Array(r);++e<r;)o[e]=((e+1)*i-(e-r)*n)/(r+1);return s}return s.domain=function(e){return arguments.length?([n,i]=e,n=+n,i=+i,u()):[n,i]},s.range=function(e){return arguments.length?(r=(a=Array.from(e)).length-1,u()):a.slice()},s.invertExtent=function(e){var t=a.indexOf(e);return t<0?[NaN,NaN]:t<1?[n,o[0]]:t>=r?[o[r-1],i]:[o[t-1],o[t]]},s.unknown=function(e){return arguments.length?(t=e,s):s},s.thresholds=function(){return o.slice()},s.copy=function(){return e().domain([n,i]).range(a).unknown(t)},I.apply(gn(s),arguments)}),"discretizing"),$r("threshold",(function e(){var t,n=[.5],i=[0,1],r=1;function o(e){return e<=e?i[N(n,e,0,r)]:t}return o.domain=function(e){return arguments.length?(n=Array.from(e),r=Math.min(n.length,i.length-1),o):n.slice()},o.range=function(e){return arguments.length?(i=Array.from(e),r=Math.min(n.length,i.length-1),o):i.slice()},o.invertExtent=function(e){var t=i.indexOf(e);return[n[t-1],n[t]]},o.unknown=function(e){return arguments.length?(t=e,o):t},o.copy=function(){return e().domain(n).range(i).unknown(t)},I.apply(o,arguments)}),"discretizing"),$r("bin-ordinal",(function e(){var t=[],n=[];function i(e){return null==e||e!=e?void 0:n[(N(t,e)-1)%n.length]}return i.domain=function(e){return arguments.length?(t=jr(e),i):t.slice()},i.range=function(e){return arguments.length?(n=kr.call(e),i):n.slice()},i.tickFormat=function(e,n){return dn(t[0],function(e){return e[e.length-1]}(t),null==e?10:e,n)},i.copy=function(){return e().domain(i.domain()).range(i.range())},i}),["discrete","discretizing"]),$r("ordinal",G,"discrete"),$r("band",Fr,"discrete"),$r("point",(function(){return function e(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return e(n())},t}(Fr().paddingInner(1))}),"discrete");function Br(e){for(var t=e.length/6|0,n=new Array(t),i=0;i<t;)n[i]="#"+e.slice(6*i,6*++i);return n}function _r(e,t){for(let n in e)zr(n,t(e[n]))}const Tr={};function zr(e,t){return e=e&&e.toLowerCase(),arguments.length>1?(Tr[e]=t,this):Tr[e]}_r({category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"},Br),_r({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",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",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=>Mr(Br(e))),Array.prototype.flat||Object.defineProperty(Array.prototype,"flat",{configurable:!0,value:function e(){var t=isNaN(arguments[0])?1:Number(arguments[0]);return t?Array.prototype.reduce.call(this,(function(n,i){return Array.isArray(i)?n.push.apply(n,e.call(i,t-1)):n.push(i),n}),[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,"flatMap",{configurable:!0,value:function(e){return Array.prototype.map.apply(this,arguments).flat()},writable:!0});var Ur=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t=function(){function e(e,t){return null!=t&&e instanceof t}var t,n,i;try{t=Map}catch(e){t=function(){}}try{n=Set}catch(e){n=function(){}}try{i=Promise}catch(e){i=function(){}}function r(o,s,u,c,l){"object"==typeof s&&(u=s.depth,c=s.prototype,l=s.includeNonEnumerable,s=s.circular);var f=[],d=[],g="undefined"!=typeof Buffer;return void 0===s&&(s=!0),void 0===u&&(u=1/0),function o(u,p){if(null===u)return null;if(0===p)return u;var h,m;if("object"!=typeof u)return u;if(e(u,t))h=new t;else if(e(u,n))h=new n;else if(e(u,i))h=new i((function(e,t){u.then((function(t){e(o(t,p-1))}),(function(e){t(o(e,p-1))}))}));else if(r.__isArray(u))h=[];else if(r.__isRegExp(u))h=new RegExp(u.source,a(u)),u.lastIndex&&(h.lastIndex=u.lastIndex);else if(r.__isDate(u))h=new Date(u.getTime());else{if(g&&Buffer.isBuffer(u))return h=Buffer.allocUnsafe?Buffer.allocUnsafe(u.length):new Buffer(u.length),u.copy(h),h;e(u,Error)?h=Object.create(u):void 0===c?(m=Object.getPrototypeOf(u),h=Object.create(m)):(h=Object.create(c),m=c)}if(s){var b=f.indexOf(u);if(-1!=b)return d[b];f.push(u),d.push(h)}for(var v in e(u,t)&&u.forEach((function(e,t){var n=o(t,p-1),i=o(e,p-1);h.set(n,i)})),e(u,n)&&u.forEach((function(e){var t=o(e,p-1);h.add(t)})),u){var y;m&&(y=Object.getOwnPropertyDescriptor(m,v)),y&&null==y.set||(h[v]=o(u[v],p-1))}if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(u);for(v=0;v<x.length;v++){var w=x[v];(!(O=Object.getOwnPropertyDescriptor(u,w))||O.enumerable||l)&&(h[w]=o(u[w],p-1),O.enumerable||Object.defineProperty(h,w,{enumerable:!1}))}}if(l){var A=Object.getOwnPropertyNames(u);for(v=0;v<A.length;v++){var O,C=A[v];(O=Object.getOwnPropertyDescriptor(u,C))&&O.enumerable||(h[C]=o(u[C],p-1),Object.defineProperty(h,C,{enumerable:!1}))}}return h}(o,u)}function o(e){return Object.prototype.toString.call(e)}function a(e){var t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),t}return r.clonePrototype=function(e){if(null===e)return null;var t=function(){};return t.prototype=e,new t},r.__objToStr=o,r.__isDate=function(e){return"object"==typeof e&&"[object Date]"===o(e)},r.__isArray=function(e){return"object"==typeof e&&"[object Array]"===o(e)},r.__isRegExp=function(e){return"object"==typeof e&&"[object RegExp]"===o(e)},r.__getRegExpFlags=a,r}();e.exports&&(e.exports=t)})),Pr=function(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});var n,i="boolean"==typeof t.cycles&&t.cycles,r=t.cmp&&(n=t.cmp,function(e){return function(t,i){var r={key:t,value:e[t]},o={key:i,value:e[i]};return n(r,o)}}),o=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var n,a;if(Array.isArray(t)){for(a="[",n=0;n<t.length;n++)n&&(a+=","),a+=e(t[n])||"null";return a+"]"}if(null===t)return"null";if(-1!==o.indexOf(t)){if(i)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var s=o.push(t)-1,u=Object.keys(t).sort(r&&r(t));for(a="",n=0;n<u.length;n++){var c=u[n],l=e(t[c]);l&&(a&&(a+=","),a+=JSON.stringify(c)+":"+l)}return o.splice(s,1),"{"+a+"}"}}(e)};function Lr(e){return!!e.or}function Rr(e){return!!e.and}function qr(e){return!!e.not}function Ir(e,t){return qr(e)?{not:Ir(e.not,t)}:Rr(e)?{and:e.and.map(e=>Ir(e,t))}:Lr(e)?{or:e.or.map(e=>Ir(e,t))}:t(e)}const Wr=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var i,r,o;if(Array.isArray(t)){if((i=t.length)!=n.length)return!1;for(r=i;0!=r--;)if(!e(t[r],n[r]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((i=(o=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(r=i;0!=r--;)if(!Object.prototype.hasOwnProperty.call(n,o[r]))return!1;for(r=i;0!=r--;){var a=o[r];if(!e(t[a],n[a]))return!1}return!0}return t!=t&&n!=n},Hr=Ur;function Gr(e,t){const n={};for(const i of t)b(e,i)&&(n[i]=e[i]);return n}function Yr(e,t){const n=Object.assign({},e);for(const e of t)delete n[e];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>Pr(e)).join(",")})`};const Vr=Pr;function Xr(e){if(y(e))return e;const t=s(e)?e:Pr(e);if(t.length<250)return t;let n=0;for(let e=0;e<t.length;e++){n=(n<<5)-n+t.charCodeAt(e),n&=n}return n}function Jr(e){return!1===e||null===e}function Qr(e,t){return e.indexOf(t)>-1}function Zr(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function Kr(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function eo(e,t){for(const n of Object.keys(t))g(e,n,t[n],!0)}function to(e,t){const n=[],i={};let r;for(const o of e)r=t(o),r in i||(i[r]=1,n.push(o));return n}function no(e,t){for(const n of e)if(t.has(n))return!0;return!1}function io(e){const t=new Set;for(const n of e){const e=r(n).map((e,t)=>0===t?e:`[${e}]`);e.map((t,n)=>e.slice(0,n+1).join("")).forEach(e=>t.add(e))}return t}function ro(e,t){return void 0===e||void 0===t||no(io(e),io(t))}const oo=Object.keys,ao=Object.values;function so(e){return!0===e||!1===e}function uo(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function co(e,t){return qr(e)?"!("+co(e.not,t)+")":Rr(e)?"("+e.and.map(e=>co(e,t)).join(") && (")+")":Lr(e)?"("+e.or.map(e=>co(e,t)).join(") || (")+")":t(e)}function lo(e,t){if(0===t.length)return!0;const n=t.shift();return lo(e[n],t)&&delete e[n],0===oo(e).length}function fo(e){return e.charAt(0).toUpperCase()+e.substr(1)}function go(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function po(e,t="datum"){const n=r(e),i=[];for(let e=1;e<=n.length;e++){const r=`[${n.slice(0,e).map(u).join("][")}]`;i.push(`${t}${r}`)}return i.join(" && ")}function ho(e){return`${r(e).map(go).join("\\.")}`}function mo(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function bo(e){return e?r(e).length:0}function vo(...e){for(const t of e)if(void 0!==t)return t}let yo=42;function xo(e){return(e%360+360)%360}function wo(e){return!!y(e)||!isNaN(e)&&!isNaN(parseFloat(e))}const Ao={domainColor:{part:"domain",vgProp:"stroke"},labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDash"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDash"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"},titleColor:{part:"title",vgProp:"fill"},title:null};function Oo(e){return e&&e.condition}const Co=["domain","grid","labels","ticks","title"],Fo={grid:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",domain:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOpacity:"main",labelOffset:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"main",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},Do={orient:1,bandPosition:1,domain:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,values:1,translate:1,zindex:1},jo=Object.assign(Object.assign({},Do),{style:1,labelExpr:1,encoding:1});function ko(e){return!!jo[e]}function Eo(e){return Qr(["line","area","trail"],e)}function So(e){return Qr(["rect","bar","image"],e)}const $o=oo({area:1,bar:1,image:1,line:1,point:1,text:1,tick:1,trail:1,rect:1,geoshape:1,rule:1,circle:1,square:1});function No(e){return e.type}x($o);const Mo=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],Bo=["filled","color","tooltip","invalid","timeUnitBandPosition","timeUnitBand"],_o={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},To={binSpacing:1,continuousBandSize:5,timeUnitBandPosition:.5},zo={binSpacing:0,continuousBandSize:5,timeUnitBandPosition:.5};function Uo(e){return!!e.mark}class Po{constructor(e,t){this.name=e,this.run=t}hasMatchingType(e){return!!Uo(e)&&(No(t=e.mark)?t.type:t)===this.name;var t}}const Lo={argmax:1,argmin:1,average:1,count:1,distinct:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},Ro={count:1,min:1,max:1};function qo(e){return!!e&&!!e.argmin}function Io(e){return!!e&&!!e.argmax}function Wo(e){return s(e)&&!!Lo[e]}const Ho=["count","valid","missing","distinct"];function Go(e){return s(e)&&Qr(Ho,e)}const Yo=["count","sum","distinct","valid","missing"],Vo=x(["mean","average","median","q1","q3","min","max"]),Xo="row",Jo="x",Qo="y",Zo="x2",Ko="y2",ea="color",ta="fill",na="stroke",ia="shape",ra="size",oa="opacity",aa="fillOpacity",sa="strokeOpacity",ua="strokeWidth",ca="strokeDash";const la={longitude:1,longitude2:1,latitude:1,latitude2:1};const fa=oo(la),da=Object.assign(Object.assign(Object.assign({},{x:1,y:1,x2:1,y2:1}),la),{color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1});function ga(e){return"color"===e||"fill"===e||"stroke"===e}const pa={row:1,column:1,facet:1},ha=oo(pa),ma=Object.assign(Object.assign({},da),pa),ba=oo(ma),va=w(ma,["order","detail","tooltip"]),ya=w(va,["row","column","facet"]);function xa(e){return!!ma[e]}const wa=["x2","y2","latitude2","longitude2"];function Aa(e){return Oa(e)!==e}function Oa(e){switch(e){case"x2":return"x";case"y2":return"y";case"latitude2":return"latitude";case"longitude2":return"longitude"}return e}function Ca(e){switch(e){case"x":return"x2";case"y":return"y2";case"latitude":return"latitude2";case"longitude":return"longitude2"}}const Fa=w(da,["x","y","x2","y2","latitude","longitude","latitude2","longitude2"]),Da=oo(Fa),ja={x:1,y:1},ka=oo(ja);function Ea(e){return"x"===e?"width":"height"}function Sa(e){return"width"===e?"x":"y"}const $a=w(Fa,["text","tooltip","href","url","detail","key","order"]),Na=oo($a);const Ma=Object.assign(Object.assign({},ja),$a),Ba=oo(Ma);function _a(e){return!!Ma[e]}function Ta(e,t){return function(e){switch(e){case ea:case ta:case na:case"detail":case"key":case"tooltip":case"href":case"order":case oa:case aa:case sa:case ua:case"facet":case Xo:case"column":return za;case Jo:case Qo:case"latitude":case"longitude":return Ua;case Zo:case Ko:case"latitude2":case"longitude2":return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case ra:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case ca:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case ia:return{point:"always",geoshape:"always"};case"text":return{text:"always"};case"url":return{image:"always"}}}(e)[t]}const za={area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},Ua=w(za,["geoshape"]);function Pa(e){switch(e){case Jo:case Qo:case ra:case ua:case oa:case aa:case sa:case Zo:case Ko:return;case"facet":case Xo:case"column":case ia:case ca:case"text":case"tooltip":case"href":case"url":return"discrete";case ea:case ta:case na:return"flexible";case"latitude":case"longitude":case"latitude2":case"longitude2":case"detail":case"key":case"order":return}}function La(e){const{anchor:t,frame:n,offset:i,orient:r,color:o,subtitleColor:a,subtitleFont:s,subtitleFontSize:u,subtitleFontStyle:c,subtitleFontWeight:l,subtitleLineHeight:f,subtitlePadding:d}=e,g=w(e,["anchor","frame","offset","orient","color","subtitleColor","subtitleFont","subtitleFontSize","subtitleFontStyle","subtitleFontWeight","subtitleLineHeight","subtitlePadding"]);return{mark:Object.assign(Object.assign({},g),o?{fill:o}:{}),nonMark:Object.assign(Object.assign(Object.assign(Object.assign({},t?{anchor:t}:{}),n?{frame:n}:{}),i?{offset:i}:{}),r?{orient:r}:{}),subtitle:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},a?{subtitleColor:a}:{}),s?{subtitleFont:s}:{}),u?{subtitleFontSize:u}:{}),c?{subtitleFontStyle:c}:{}),l?{subtitleFontWeight:l}:{}),f?{subtitleLineHeight:f}:{}),d?{subtitlePadding:d}:{})}}function Ra(e){return s(e)||o(e)&&s(e[0])}function qa(e){return e&&!!e.signal}function Ia(e){return!!e.step}function Wa(e){return!o(e)&&("field"in e&&"data"in e)}const Ha=oo({blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1}),Ga=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function Ya(e){return qa(e)?e:{value:e}}function Va(e){var t;return[].concat(e.type,null!==(t=e.style)&&void 0!==t?t:[])}function Xa(e,t,n){return vo(t[e],Ja(e,t,n))}function Ja(e,t,n,{vgChannel:i}={}){return vo(i?Qa(e,t,n.style):void 0,Qa(e,t,n.style),i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function Qa(e,t,n){return Za(e,Va(t),n)}function Za(e,t,n){let i;t=h(t);for(const r of t){const t=n[r];t&&void 0!==t[e]&&(i=t[e])}return i}function Ka(e,t){return h(e).reduce((e,n)=>{var i;return e.field.push(Ru(n,t)),e.order.push(null!==(i=n.sort)&&void 0!==i?i:"ascending"),e},{field:[],order:[]})}function es(e,t){const n=[...e];return t.forEach(e=>{for(const t of n)if(Wr(t,e))return;n.push(e)}),n}function ts(e,t){return Wr(e,t)||!t?e:e?[...h(e),...h(t)].join(", "):t}function ns(e,t){const n=e.value,i=t.value;if(null==n||null===i)return{explicit:e.explicit,value:null};if(Ra(n)&&Ra(i))return{explicit:e.explicit,value:ts(n,i)};if(!Ra(n)&&!Ra(i))return{explicit:e.explicit,value:es(n,i)};throw new Error("It should never reach here")}const is=Object.freeze({__proto__:null,invalidSpec:function(e){return`Invalid specification ${JSON.stringify(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`},FIT_NON_SINGLE:'Autosize "fit" only works for single views and layered views.',containerSizeNonSingle:function(e){return`${"width"==e?"Width":"Height"} "container" only works for single views and layered views.`},containerSizeNotCompatibleWithAutosize:function(e){return`${"width"==e?"Width":"Height"} "container" only works well with autosize "fit" or "fit-x".`},droppingFit:function(e){return e?`Dropping "fit-${e}" because spec has discrete ${Ea(e)}.`:'Dropping "fit" because spec has discrete size.'},cannotProjectOnChannelWithoutField:function(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`},cannotProjectAggregate:function(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`},nearestNotSupportForContinuous:function(e){return`The "nearest" transform is not supported for ${e} marks.`},selectionNotSupported:function(e){return`Selection not supported for ${e} yet.`},selectionNotFound:function(e){return`Cannot find a selection named "${e}".`},SCALE_BINDINGS_CONTINUOUS:"Scale bindings are currently only supported for scales with unbinned, continuous domains.",LEGEND_BINDINGS_PROJECT_LENGTH:"Legend bindings are only supported for selections over an individual field or encoding channel.",noSameUnitLookup:function(e){return`Cannot define and lookup the "${e}" selection in the same view. `+"Try moving the lookup into a second, layered view?"},noSuchRepeatedValue:function(e){return`Unknown repeated value "${e}".`},columnsNotSupportByRowCol:function(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`},CONCAT_CANNOT_SHARE_AXIS:"Axes cannot be shared in concatenated views yet (https://github.com/vega/vega-lite/issues/2415).",REPEAT_CANNOT_SHARE_AXIS:"Axes cannot be shared in repeated views yet (https://github.com/vega/vega-lite/issues/2415).",unrecognizedParse:function(e){return`Unrecognized parse "${e}".`},differentParse:function(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`},invalidTransformIgnored:function(e){return`Ignoring an invalid transform: ${Vr(e)}.`},NO_FIELDS_NEEDS_AS:'If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.',encodingOverridden:function(e){return`Layer's shared ${e.join(",")} channel ${1===e.length?"is":"are"} overriden.`},projectionOverridden:function(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${Vr(t)} is overridden by a child projection ${Vr(n)}.`},primitiveChannelDef:function(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${Vr(n)}}.`},invalidFieldType:function(e){return`Invalid field type "${e}".`},invalidFieldTypeForCountAggregate:function(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`},invalidAggregate:function(e){return`Invalid aggregation operator "${e}".`},missingFieldType:function(e,t){return`Missing type for channel "${e}", using "${t}" instead.`},droppingColor:function(e,t){const{fill:n,stroke:i}=t;return`Dropping color ${e} as the plot also has ${n&&i?"fill and stroke":n?"fill":"stroke"}.`},emptyFieldDef:function(e,t){return`Dropping ${Vr(e)} from channel "${t}" since it does not contain any data field, value, or signal.`},latLongDeprecated:function(e,t,n){return`${e}-encoding with type ${t} is deprecated. Replacing with ${n}-encoding.`},LINE_WITH_VARYING_SIZE:"Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.",incompatibleChannel:function(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`},invalidEncodingChannel:function(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`},facetChannelShouldBeDiscrete:function(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`},facetChannelDropped:function(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`},discreteChannelCannotEncode:function(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${"ordinal"===t?"order":"magnitude"}.`},lineWithRange:function(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`},orientOverridden:function(e,t){return`Specified orient "${e}" overridden with "${t}".`},CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN:"Custom domain scale cannot be unioned with default field-based domain.",RANGE_STEP_DEPRECATED:'Scale\'s "rangeStep" is deprecated and will be removed in Vega-Lite 5.0. Please use "width"/"height": {"step": ...} instead. See https://vega.github.io/vega-lite/docs/size.html.',cannotUseScalePropertyWithNonColor:function(e){return`Cannot use the scale property "${e}" with non-color channel.`},unaggregateDomainHasNoEffectForRawField:function(e){return`Using unaggregated domain with raw field has no effect (${Vr(e)}).`},unaggregateDomainWithNonSharedDomainOp:function(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`},unaggregatedDomainWithLogScale:function(e){return`Unaggregated domain is currently unsupported for log scale (${Vr(e)}).`},cannotApplySizeToNonOrientedMark:function(e){return`Cannot apply size to non-oriented mark "${e}".`},scaleTypeNotWorkWithChannel:function(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`},scaleTypeNotWorkWithFieldDef:function(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`},scalePropertyNotWorkWithScaleType:function(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`},scaleTypeNotWorkWithMark:function(e,t){return`Scale type "${t}" does not work with mark "${e}".`},stepDropped:function(e){return`The step for "${e}" is dropped because the ${"width"===e?"x":"y"} is continuous.`},mergeConflictingProperty:function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${Vr(n)} and ${Vr(i)}). Using ${Vr(n)}.`},mergeConflictingDomainProperty:function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${Vr(n)} and ${Vr(i)}). Using the union of the two domains.`},independentScaleMeansIndependentGuide:function(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`},domainSortDropped:function(e){return`Dropping sort property ${Vr(e)} as unioned domains only support boolean or op "count", "min", and "max".`},UNABLE_TO_MERGE_DOMAINS:"Unable to merge domains.",MORE_THAN_ONE_SORT:"Domains that should be unioned has conflicting sort properties. Sort will be set to true.",INVALID_CHANNEL_FOR_AXIS:"Invalid channel for axis.",cannotStackRangedMark:function(e){return`Cannot stack "${e}" if there is already "${e}2".`},cannotStackNonLinearScale:function(e){return`Cannot stack non-linear scale (${e}).`},stackNonSummativeAggregate:function(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}").`},invalidTimeUnit:function(e,t){return`Invalid ${e}: ${Vr(t)}.`},dayReplacedWithDate:function(e){return`Time unit "${e}" is not supported. We are replacing it with ${mo(e,"day","date")}.`},droppedDay:function(e){return`Dropping day from datetime ${Vr(e)} as day cannot be combined with other units.`},errorBarCenterAndExtentAreNotNeeded:function(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`},errorBarCenterIsUsedWithWrongExtent:function(e,t,n){return`${e} is not usually used with ${t} for ${n}.`},errorBarContinuousAxisHasCustomizedAggregate:function(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`},errorBarCenterIsNotNeeded:function(e,t){return`Center is not needed to be specified in ${t} when extent is ${e}.`},errorBand1DNotSupport:function(e){return`1D error band does not support ${e}.`},channelRequiredForBinned:function(e){return`Channel ${e} is required for "binned" bin.`},domainRequiredForThresholdScale:function(e){return`Domain for ${e} is required for threshold scale.`}}),rs=function(e,t){var n=e||0;return{level:function(e){return arguments.length?(n=+e,this):n},error:function(){return n>=1&&f(t||"error","ERROR",arguments),this},warn:function(){return n>=2&&f(t||"warn","WARN",arguments),this},info:function(){return n>=3&&f(t||"log","INFO",arguments),this},debug:function(){return n>=4&&f(t||"log","DEBUG",arguments),this}}}(2);let os=rs;function as(...e){os.warn(...e)}function ss(e){return!!(e&&(e.year||e.quarter||e.month||e.date||e.day||e.hours||e.minutes||e.seconds||e.milliseconds))}const us=["january","february","march","april","may","june","july","august","september","october","november","december"],cs=us.map(e=>e.substr(0,3)),ls=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],fs=ls.map(e=>e.substr(0,3));function ds(e,t){const n=[];if(t&&void 0!==e.day&&oo(e).length>1&&(as(is.droppedDay(e)),delete(e=Hr(e)).day),void 0!==e.year?n.push(e.year):void 0!==e.day?n.push(2006):n.push(0),void 0!==e.month){const i=t?function(e){if(wo(e)&&(e=+e),y(e))return e-1;{const t=e.toLowerCase(),n=us.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=cs.indexOf(i);if(-1!==r)return r;throw new Error(is.invalidTimeUnit("month",e))}}(e.month):e.month;n.push(i)}else if(void 0!==e.quarter){const i=t?function(e){if(wo(e)&&(e=+e),y(e))return e>4&&as(is.invalidTimeUnit("quarter",e)),e-1;throw new Error(is.invalidTimeUnit("quarter",e))}(e.quarter):e.quarter;n.push(y(i)?3*i:i+"*3")}else n.push(0);if(void 0!==e.date)n.push(e.date);else if(void 0!==e.day){const i=t?function(e){if(wo(e)&&(e=+e),y(e))return e%7;{const t=e.toLowerCase(),n=ls.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=fs.indexOf(i);if(-1!==r)return r;throw new Error(is.invalidTimeUnit("day",e))}}(e.day):e.day;n.push(y(i)?i+1:i+"+1")}else n.push(1);for(const t of["hours","minutes","seconds","milliseconds"]){const i=e[t];n.push(void 0===i?0:i)}return n}function gs(e){const t=ds(e,!0).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}var ps;!function(e){e.YEAR="year",e.MONTH="month",e.DAY="day",e.DATE="date",e.HOURS="hours",e.MINUTES="minutes",e.SECONDS="seconds",e.MILLISECONDS="milliseconds",e.YEARMONTH="yearmonth",e.YEARMONTHDATE="yearmonthdate",e.YEARMONTHDATEHOURS="yearmonthdatehours",e.YEARMONTHDATEHOURSMINUTES="yearmonthdatehoursminutes",e.YEARMONTHDATEHOURSMINUTESSECONDS="yearmonthdatehoursminutesseconds",e.MONTHDATE="monthdate",e.MONTHDATEHOURS="monthdatehours",e.HOURSMINUTES="hoursminutes",e.HOURSMINUTESSECONDS="hoursminutesseconds",e.MINUTESSECONDS="minutesseconds",e.SECONDSMILLISECONDS="secondsmilliseconds",e.QUARTER="quarter",e.YEARQUARTER="yearquarter",e.QUARTERMONTH="quartermonth",e.YEARQUARTERMONTH="yearquartermonth",e.UTCYEAR="utcyear",e.UTCMONTH="utcmonth",e.UTCDAY="utcday",e.UTCDATE="utcdate",e.UTCHOURS="utchours",e.UTCMINUTES="utcminutes",e.UTCSECONDS="utcseconds",e.UTCMILLISECONDS="utcmilliseconds",e.UTCYEARMONTH="utcyearmonth",e.UTCYEARMONTHDATE="utcyearmonthdate",e.UTCYEARMONTHDATEHOURS="utcyearmonthdatehours",e.UTCYEARMONTHDATEHOURSMINUTES="utcyearmonthdatehoursminutes",e.UTCYEARMONTHDATEHOURSMINUTESSECONDS="utcyearmonthdatehoursminutesseconds",e.UTCMONTHDATE="utcmonthdate",e.UTCMONTHDATEHOURS="utcmonthdatehours",e.UTCHOURSMINUTES="utchoursminutes",e.UTCHOURSMINUTESSECONDS="utchoursminutesseconds",e.UTCMINUTESSECONDS="utcminutesseconds",e.UTCSECONDSMILLISECONDS="utcsecondsmilliseconds",e.UTCQUARTER="utcquarter",e.UTCYEARQUARTER="utcyearquarter",e.UTCQUARTERMONTH="utcquartermonth",e.UTCYEARQUARTERMONTH="utcyearquartermonth"}(ps||(ps={}));const hs={year:1,quarter:1,month:1,day:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},ms=oo(hs);const bs={utcyear:1,utcquarter:1,utcmonth:1,utcday:1,utcdate:1,utchours:1,utcminutes:1,utcseconds:1,utcmilliseconds:1},vs={utcyearquarter:1,utcyearquartermonth:1,utcyearmonth:1,utcyearmonthdate:1,utcyearmonthdatehours:1,utcyearmonthdatehoursminutes:1,utcyearmonthdatehoursminutesseconds:1,utcquartermonth:1,utcmonthdate:1,utcmonthdatehours:1,utchoursminutes:1,utchoursminutesseconds:1,utcminutesseconds:1,utcsecondsmilliseconds:1},ys=Object.assign(Object.assign({},bs),vs);function xs(e){return!!ys[e]}Object.assign(Object.assign(Object.assign(Object.assign({},hs),bs),{yearquarter:1,yearquartermonth:1,yearmonth:1,yearmonthdate:1,yearmonthdatehours:1,yearmonthdatehoursminutes:1,yearmonthdatehoursminutesseconds:1,quartermonth:1,monthdate:1,monthdatehours:1,hoursminutes:1,hoursminutesseconds:1,minutesseconds:1,secondsmilliseconds:1}),vs);const ws={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function As(e){return ms.reduce((t,n)=>Os(e,n)?[...t,n]:t,[])}function Os(e,t){const n=e.indexOf(t);return n>-1&&(t!==ps.SECONDS||0===n||"i"!==e.charAt(n-1))}function Cs(e,t,{end:n}={end:!1}){const i=po(t),r=xs(e)?"utc":"";let o;const a=ms.reduce((t,n)=>{var a;return Os(e,n)&&(t[n]=(a=n)===ps.QUARTER?`(${r}quarter(${i})-1)`:`${r}${a}(${i})`,o=n),t},{});return n&&(a[o]+="+1"),function(e){const t=ds(e,!1).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}(a)}function Fs(e,t,n){if(!e)return;const i=function(e){if(!e)return;const t=As(e);return`timeUnitSpecifier(${Pr(t)}, ${Pr(ws)})`}(e);return n||xs(e)?`utcFormat(${t}, ${i})`:`timeFormat(${t}, ${i})`}function Ds(e){if(!e)return;let t;return s(e)?t={unit:js(e)}:a(e)&&(t=Object.assign(Object.assign({},e),e.unit?{unit:js(e.unit)}:{})),xs(t.unit)&&(t.utc=!0,t.unit=t.unit.substr(3)),t}function js(e){return"day"!==e&&e.indexOf("day")>=0?(as(is.dayReplacedWithDate(e)),mo(e,"day","date")):e}function ks(e){return e&&!!e.field&&void 0!==e.equal}function Es(e){return e&&!!e.field&&void 0!==e.lt}function Ss(e){return e&&!!e.field&&void 0!==e.lte}function $s(e){return e&&!!e.field&&void 0!==e.gt}function Ns(e){return e&&!!e.field&&void 0!==e.gte}function Ms(e){if(e&&e.field){if(o(e.range)&&2===e.range.length)return!0;if(qa(e.range))return!0}return!1}function Bs(e){return e&&!!e.field&&(o(e.oneOf)||o(e.in))}function _s(e){return Bs(e)||ks(e)||Ms(e)||Es(e)||$s(e)||Ss(e)||Ns(e)}function Ts(e,t){return oc(e,{timeUnit:t,time:!0})}function zs(e,t=!0){var n;const{field:i}=e,r=null===(n=Ds(e.timeUnit))||void 0===n?void 0:n.unit,o=r?"time("+Cs(r,i)+")":Ru(e,{expr:"datum"});if(ks(e))return o+"==="+Ts(e.equal,r);if(Es(e)){return`${o}<${Ts(e.lt,r)}`}if($s(e)){return`${o}>${Ts(e.gt,r)}`}if(Ss(e)){return`${o}<=${Ts(e.lte,r)}`}if(Ns(e)){return`${o}>=${Ts(e.gte,r)}`}if(Bs(e))return`indexof([${function(e,t){return e.map(e=>Ts(e,t))}(e.oneOf,r).join(",")}], ${o}) !== -1`;if(function(e){return e&&!!e.field&&void 0!==e.valid}(e))return Us(o,e.valid);if(Ms(e)){const{range:n}=e,i=qa(n)?{signal:`${n.signal}[0]`}:n[0],a=qa(n)?{signal:`${n.signal}[1]`}:n[1];if(null!==i&&null!==a&&t)return"inrange("+o+", ["+Ts(i,r)+", "+Ts(a,r)+"])";const s=[];return null!==i&&s.push(`${o} >= ${Ts(i,r)}`),null!==a&&s.push(`${o} <= ${Ts(a,r)}`),s.length>0?s.join(" && "):"true"}throw new Error(`Invalid field predicate: ${JSON.stringify(e)}`)}function Us(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function Ps(e){var t;return _s(e)&&e.timeUnit?Object.assign(Object.assign({},e),{timeUnit:null===(t=Ds(e.timeUnit))||void 0===t?void 0:t.unit}):e}const Ls={quantitative:1,ordinal:1,temporal:1,nominal:1,geojson:1};var Rs;!function(e){e.LINEAR="linear",e.LOG="log",e.POW="pow",e.SQRT="sqrt",e.SYMLOG="symlog",e.IDENTITY="identity",e.SEQUENTIAL="sequential",e.TIME="time",e.UTC="utc",e.QUANTILE="quantile",e.QUANTIZE="quantize",e.THRESHOLD="threshold",e.BIN_ORDINAL="bin-ordinal",e.ORDINAL="ordinal",e.POINT="point",e.BAND="band"}(Rs||(Rs={}));const qs={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"},Is=oo(qs);function Ws(e,t){const n=qs[e],i=qs[t];return n===i||"ordinal-position"===n&&"time"===i||"ordinal-position"===i&&"time"===n}const Hs={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function Gs(e){return Hs[e]}const Ys=["linear","log","pow","sqrt","symlog","time","utc"],Vs=x(Ys),Xs=x(["linear","log","pow","sqrt","symlog"]);function Js(e){return e in Xs}const Qs=x(["quantile","quantize","threshold"]),Zs=x(Ys.concat(["quantile","quantize","threshold","sequential","identity"])),Ks=x(["ordinal","bin-ordinal","point","band"]);function eu(e){return e in Ks}function tu(e){return e in Zs}function nu(e){return e in Vs}function iu(e){return e in Qs}function ru(e){return null==e?void 0:e.selection}const ou=w({type:1,domain:1,domainMid:1,align:1,range:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},["type","domain","range","scheme"]),au=oo(ou);!function(){var e;const t={};for(const n of ba)for(const i of oo(Ls))for(const r of Is){const o=fu(n,i);lu(n,r)&&cu(r,i)&&(t[o]=null!==(e=t[o])&&void 0!==e?e:[],t[o].push(r))}}();function su(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!Qr(["point","band","identity"],e);case"bins":return!Qr(["point","band","identity","ordinal"],e);case"round":return nu(e)||"band"===e||"point"===e;case"padding":return nu(e)||Qr(["point","band"],e);case"paddingOuter":case"align":return Qr(["point","band"],e);case"paddingInner":return"band"===e;case"domainMid":case"clamp":return nu(e);case"nice":return nu(e)||"quantize"===e||"threshold"===e;case"exponent":return"pow"===e;case"base":return"log"===e;case"constant":return"symlog"===e;case"zero":return tu(e)&&!Qr(["log","time","utc","threshold","quantile"],e)}}function uu(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return ga(e)?void 0:is.cannotUseScalePropertyWithNonColor(e);case"align":case"type":case"bins":case"domain":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"reverse":case"round":case"clamp":case"zero":return}}function cu(e,t){return Qr(["ordinal","nominal"],t)?void 0===e||eu(e):"temporal"===t?Qr([Rs.TIME,Rs.UTC,void 0],e):"quantitative"!==t||Qr([Rs.LOG,Rs.POW,Rs.SQRT,Rs.SYMLOG,Rs.QUANTILE,Rs.QUANTIZE,Rs.THRESHOLD,Rs.LINEAR,void 0],e)}function lu(e,t){switch(e){case Jo:case Qo:return nu(t)||Qr(["band","point"],t);case ra:case ua:case oa:case aa:case sa:return nu(t)||iu(t)||Qr(["band","point","ordinal"],t);case ea:case ta:case na:return"band"!==t;case ca:return"ordinal"===t||iu(t);case ia:return"ordinal"===t}return!1}function fu(e,t){return e+"_"+t}let du=new Set;function gu(e){return e&&"number"!==e&&"time"!==e&&du.has(e)}function pu({formatType:e,field:t,format:n}){return`${e}(${t}, ${JSON.stringify(n)})`}function hu({fieldDef:e,format:t,formatType:n,expr:i,config:r,field:o,omitNumberFormatAndEmptyTimeFormat:a,omitTimeFormatConfig:u,isUTCScale:c}){var l;o=null!=o?o:Ru(e,{expr:i}),c=null!=c?c:Uu(e)&&e.scale&&e.scale.type===Rs.UTC;const f=u?null:r.timeFormat;if(gu(n))return{signal:pu({formatType:n,format:t,field:o})};if(n&&(n=void 0),ic(e)){const n=function(e,t,n,i,r,o=!1){return!t||n?(n=s(n)?n:i)||o?`${r?"utc":"time"}Format(${e}, '${n}')`:void 0:Fs(t,e,r)}(o,null===(l=Ds(e.timeUnit))||void 0===l?void 0:l.unit,t,f,c,!a);return n?{signal:n}:void 0}if(!a){if(t=mu(e,t,r),cc(e.bin)){return{signal:yu(o,Ru(e,{expr:i,binSuffix:"end"}),t,n,r)}}return"quantitative"===e.type||t?{signal:`${bu(Ru(e,{expr:i,binSuffix:"range"}),t)}`}:{signal:`''+${Ru(e,{expr:i})}`}}}function mu(e,t,n){return s(t)?t:"quantitative"===e.type?n.numberFormat:void 0}function bu(e,t){return`format(${e}, "${t||""}")`}function vu(e,t,n,i){var r;return gu(n)?pu({formatType:n,field:e,format:t}):bu(e,null!==(r=s(t)?t:void 0)&&void 0!==r?r:i.numberFormat)}function yu(e,t,n,i,r){const o=vu(e,n,i,r),a=vu(t,n,i,r);return`${Us(e,!1)} ? "null" : ${o} + " – " + ${a}`}const xu="min",wu={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function Au(e){return!!wu[e]}function Ou(e){return!!e&&!!e.encoding}function Cu(e){return!(!e||"count"!==e.op&&!e.field)}function Fu(e){return!!e&&o(e)}function Du(e){return!!e.row||!!e.column}function ju(e){return void 0!==e.facet}function ku(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return Object.assign(Object.assign(Object.assign(Object.assign({},n?{timeUnit:n}:{}),i?{bin:i}:{}),r?{aggregate:r}:{}),{field:t})}function Eu(e){return _u(e)&&!!e.sort}function Su(e,t,n,i,r,{isMidPoint:o}={}){const{timeUnit:a,bin:s}=t;if(Qr(["x","y"],e)){if(Pu(t)&&void 0!==t.band)return t.band;if(a&&!n)return o?Ja("timeUnitBandPosition",i,r):So(i.type)?Ja("timeUnitBand",i,r):0;if(cc(s))return So(i.type)&&!o?1:.5}}function $u(e,t,n,i,r){return!!(cc(t.bin)||t.timeUnit&&_u(t)&&"temporal"===t.type)&&!!Su(e,t,n,i,r)}function Nu(e){return!!e&&!!e.condition}function Mu(e){return!!e&&!!e.condition&&!o(e.condition)&&Bu(e.condition)}function Bu(e){return!(!e||!e.field&&"count"!==e.aggregate)}function _u(e){return!!e&&(!!e.field&&!!e.type||"count"===e.aggregate)}function Tu(e){return Bu(e)&&s(e.field)}function zu(e){return e&&"value"in e&&void 0!==e.value}function Uu(e){return!(!e||!e.scale&&!e.sort)}function Pu(e){return!(!e||!e.axis&&!e.stack&&!e.impute&&void 0===e.band)}function Lu(e){return!!e&&!!e.format}function Ru(e,t={}){var n,i,o;let a=e.field;const s=t.prefix;let c=t.suffix,l="";if(function(e){return"count"===e.aggregate}(e))a=function(e){return function(e){return 0===e.indexOf("__")}(e)?e:`__${e}`}("count");else{let r;if(!t.nofn)if(function(e){return!!e.op}(e))r=e.op;else{const{bin:s,aggregate:u,timeUnit:f}=e;cc(s)?(r=uc(s),c=(null!==(n=t.binSuffix)&&void 0!==n?n:"")+(null!==(i=t.suffix)&&void 0!==i?i:"")):u?Io(u)?(l=`.${a}`,a=`argmax_${u.argmax}`):qo(u)?(l=`.${a}`,a=`argmin_${u.argmin}`):r=String(u):f&&(r=function(e){const t=Ds(e),{utc:n}=t,i=w(t,["utc"]);return i.unit?(n?"utc":"")+oo(i).map(e=>uo(`${"unit"===e?"":`_${e}_`}${i[e]}`)).join(""):(n?"utc":"")+"timeunit"+oo(i).map(e=>uo(`_${e}_${i[e]}`)).join("")}(f),c=(!Qr(["range","mid"],t.binSuffix)&&t.binSuffix||"")+(null!==(o=t.suffix)&&void 0!==o?o:""))}r&&(a=a?`${r}_${a}`:r)}return c&&(a=`${a}_${c}`),s&&(a=`${s}_${a}`),t.forAs?a:t.expr?function(e,t="datum"){return`${t}[${u(r(e).join("."))}]`}(a,t.expr)+l:ho(a)+l}function qu(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return!!e.bin;case"temporal":return!1}throw new Error(is.invalidFieldType(e.type))}function Iu(e){return!qu(e)}const Wu=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return function(e){const{aggregate:t,bin:n,timeUnit:i,field:r}=e;if(Io(t))return`${r} for argmax(${t.argmax})`;if(qo(t))return`${r} for argmin(${t.argmin})`;const o=Ds(i),a=t||(null==o?void 0:o.unit)||(null==o?void 0:o.maxbins)&&"timeunit"||cc(n)&&"bin";return a?a.toUpperCase()+"("+r+")":r}(e);default:return function(e,t){var n;const{field:i,bin:r,timeUnit:o,aggregate:a}=e;if("count"===a)return t.countTitle;if(cc(r))return`${i} (binned)`;if(o){const e=null===(n=Ds(o))||void 0===n?void 0:n.unit;if(e)return`${i} (${As(e).join("-")})`}else if(a)return Io(a)?`${i} for max ${a.argmax}`:qo(a)?`${i} for min ${a.argmin}`:`${fo(a)} of ${i}`;return i}(e,t)}};let Hu=Wu;function Gu(e){Hu=e}function Yu(e,t,{allowDisabling:n,includeDefault:i=!0}){var r,o;const a=(null!==(r=Vu(e))&&void 0!==r?r:{}).title,s=i?Xu(e,t):void 0;return n?vo(a,e.title,s):null!==(o=null!=a?a:e.title)&&void 0!==o?o:s}function Vu(e){return Pu(e)&&e.axis?e.axis:(t=e)&&t.legend&&e.legend?e.legend:function(e){return!!e&&!!e.header}(e)&&e.header?e.header:void 0;var t}function Xu(e,t){return Hu(e,t)}function Ju(e){var t;if(Lu(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}{const n=null!==(t=Vu(e))&&void 0!==t?t:{},{format:i,formatType:r}=n;return{format:i,formatType:r}}}function Qu(e){return Bu(e)?e:Mu(e)?e.condition:void 0}function Zu(e){return Bu(e)?e:Mu(e)?e.condition:void 0}function Ku(e,t){if(s(e)||y(e)||v(e)){const n=s(e)?"string":y(e)?"number":"boolean";return as(is.primitiveChannelDef(t,n,e)),{value:e}}return Bu(e)?ec(e,t):Mu(e)?Object.assign(Object.assign({},e),{condition:ec(e.condition,t)}):e}function ec(e,t){const{aggregate:n,timeUnit:i,bin:r,field:o}=e,a=Object.assign({},e);if(!n||Wo(n)||Io(n)||qo(n)||(as(is.invalidAggregate(n)),delete a.aggregate),i&&(a.timeUnit=Ds(i)),o&&(a.field=`${o}`),cc(r)&&(a.bin=tc(r,t)),lc(r)&&!Qr(ka,t)&&as(`Channel ${t} should not be used with "binned" bin.`),_u(a)){const{type:e}=a,t=function(e){if(e)switch(e=e.toLowerCase()){case"q":case"quantitative":return"quantitative";case"t":case"temporal":return"temporal";case"o":case"ordinal":return"ordinal";case"n":case"nominal":return"nominal";case"geojson":return"geojson"}}(e);e!==t&&(a.type=t),"quantitative"!==e&&Go(n)&&(as(is.invalidFieldTypeForCountAggregate(e,n)),a.type="quantitative")}else if(!Aa(t)){const e=function(e,t){if(e.timeUnit)return"temporal";if(cc(e.bin))return"quantitative";switch(Pa(t)){case"continuous":return"quantitative";case"discrete":case"flexible":return"nominal";default:return"quantitative"}}(a,t);as(is.missingFieldType(t,e)),a.type=e}if(_u(a)){const{compatible:e,warning:n}=function(e,t){const n=e.type;if("geojson"===n&&"shape"!==t)return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case"row":case"column":case"facet":return Iu(e)?{compatible:!1,warning:is.facetChannelShouldBeDiscrete(t)}:nc;case"x":case"y":case"color":case"fill":case"stroke":case"text":case"detail":case"key":case"tooltip":case"href":case"url":return nc;case"longitude":case"longitude2":case"latitude":case"latitude2":return"quantitative"!==n?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:nc;case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeWidth":case"size":case"x2":case"y2":return"nominal"!==n||e.sort?nc:{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`};case"strokeDash":return Qr(["ordinal","nominal"],e.type)?nc:{compatible:!1,warning:"StrokeDash channel should be used with only discrete data."};case"shape":return Qr(["ordinal","nominal","geojson"],e.type)?nc:{compatible:!1,warning:"Shape channel should be used with only either discrete or geojson data."};case"order":return"nominal"!==e.type||"sort"in e?nc:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}}(a,t);e||as(n)}if(Eu(a)&&s(a.sort)){const{sort:e}=a;if(Au(e))return Object.assign(Object.assign({},a),{sort:{encoding:e}});const t=e.substr(1);if("-"===e.charAt(0)&&Au(t))return Object.assign(Object.assign({},a),{sort:{encoding:t,order:"descending"}})}return a}function tc(e,t){return v(e)?{maxbins:gc(t)}:"binned"===e?{binned:!0}:e.maxbins||e.step?e:Object.assign(Object.assign({},e),{maxbins:gc(t)})}const nc={compatible:!0};function ic(e){const t=Vu(e),n=t&&t.formatType||Lu(e)&&e.formatType;return"time"===n||!n&&function(e){return"temporal"===e.type||!!e.timeUnit}(e)}function rc(e){const t=Vu(e),n=t&&t.formatType||Lu(e)&&e.formatType;return n&&gu(n)}function oc(e,{timeUnit:t,type:n,time:i,undefinedIfExprNotRequired:r}){var o;const a=null===(o=Ds(t))||void 0===o?void 0:o.unit;let u;if(qa(e)){const t=e.signal;if(i&&!a&&"temporal"!==n)return i?`isDate(${t}) ? time(${t}) : ${t}`:t;u=t}else ss(e)?u=gs(e):(s(e)||y(e))&&(a||"temporal"===n)&&(u=function(e){return!!hs[e]}(a)?gs({[a]:e}):`datetime(${JSON.stringify(e)})`);return u?i?`time(${u})`:u:r?void 0:JSON.stringify(e)}function ac(e,t){var n;const{type:i}=e,r=null===(n=Ds(e.timeUnit))||void 0===n?void 0:n.unit;return t.map(e=>{const t=oc(e,{timeUnit:r,type:i,undefinedIfExprNotRequired:!0});return void 0!==t?{signal:t}:e})}function sc(e,t){return cc(e.bin)?_a(t)&&Qr(["ordinal","nominal"],e.type):(console.warn("Only call this method for binned field defs."),!1)}function uc(e){return v(e)&&(e=tc(e,void 0)),"bin"+oo(e).map(t=>dc(e[t])?uo(`_${t}_${Object.entries(e[t])}`):uo(`_${t}_${e[t]}`)).join("")}function cc(e){return!0===e||fc(e)&&!e.binned}function lc(e){return"binned"===e||fc(e)&&!0===e.binned}function fc(e){return a(e)}function dc(e){return null==e?void 0:e.selection}function gc(e){switch(e){case Xo:case"column":case ra:case ea:case ta:case na:case ua:case oa:case aa:case sa:case ia:return 6;case ca:return 4;default:return 10}}function pc(e,t){const n=e&&e[t];return!!n&&(o(n)?Zr(n,e=>!!e.field):Bu(n)||Mu(n))}function hc(e){return Zr(ba,t=>{if(pc(e,t)){const n=e[t];if(o(n))return Zr(n,e=>!!e.aggregate);{const e=Qu(n);return e&&!!e.aggregate}}return!1})}function mc(e,t){const n=[],i=[],r=[],o=[],a={};return yc(e,(s,u)=>{if(Bu(s)){const{field:c,aggregate:l,bin:f,timeUnit:d}=s,g=w(s,["field","aggregate","bin","timeUnit"]);if(l||d||f){const e=Vu(s),p=e&&e.title;let h=Ru(s,{forAs:!0});const m=Object.assign(Object.assign(Object.assign({},p?[]:{title:Yu(s,t,{allowDisabling:!0})}),g),{field:h}),b="x"===u||"y"===u;if(l){let e;if(Io(l)?(e="argmax",h=Ru({op:"argmax",field:l.argmax},{forAs:!0}),m.field=`${h}.${c}`):qo(l)?(e="argmin",h=Ru({op:"argmin",field:l.argmin},{forAs:!0}),m.field=`${h}.${c}`):"boxplot"!==l&&"errorbar"!==l&&"errorband"!==l&&(e=l),e){const t={op:e,as:h};c&&(t.field=c),o.push(t)}}else if(n.push(h),_u(s)&&cc(f)){if(i.push({bin:f,field:c,as:h}),n.push(Ru(s,{binSuffix:"end"})),sc(s,u)&&n.push(Ru(s,{binSuffix:"range"})),b){const e={field:h+"_end"};a[u+"2"]=e}m.bin="binned",Aa(u)||(m.type="quantitative")}else if(d){r.push({timeUnit:d,field:c,as:h});const e=_u(s)&&"temporal"!==s.type&&"time";e&&("text"===u||"tooltip"===u?m.formatType=e:!function(e){return!!Fa[e]}(u)?b&&(m.axis=Object.assign({formatType:e},m.axis)):m.legend=Object.assign({formatType:e},m.legend))}a[u]=m}else n.push(c),a[u]=e[u]}else a[u]=e[u]}),{bins:i,timeUnits:r,aggregate:o,groupby:n,encoding:a}}function bc(e,t){const n=t.type;return oo(e).reduce((i,r)=>{if(!xa(r))return as(is.invalidEncodingChannel(r)),i;if(!function(e,t,n){const i=Ta(t,n);if(!i)return!1;if("binned"===i){const n=e["x2"===t?"x":"y"];return!!(Bu(n)&&Bu(e[t])&&lc(n.bin))}return!0}(e,r,n))return as(is.incompatibleChannel(r,n)),i;if("size"===r&&"line"===n){const t=Zu(e[r]);if(null==t?void 0:t.aggregate)return as(is.LINE_WITH_VARYING_SIZE),i}if("color"===r&&(t.filled?"fill"in e:"stroke"in e))return as(is.droppingColor("encoding",{fill:"fill"in e,stroke:"stroke"in e})),i;const a=e[r];if("detail"===r||"order"===r&&!o(a)&&!zu(a)||"tooltip"===r&&o(a))a&&(i[r]=h(a).reduce((e,t)=>(Bu(t)?e.push(ec(t,r)):as(is.emptyFieldDef(t,r)),e),[]));else{if("tooltip"===r&&null===a)i[r]=null;else if(!(Bu(a)||zu(a)||Nu(a)||qa(a)))return as(is.emptyFieldDef(a,r)),i;i[r]=Ku(a,r)}return i},{})}function vc(e){const t=[];for(const n of oo(e))if(pc(e,n)){const i=h(e[n]);for(const e of i)Bu(e)?t.push(e):Mu(e)&&t.push(e.condition)}return t}function yc(e,t,n){if(e)for(const i of oo(e)){const r=e[i];if(o(r))for(const e of r)t.call(n,e,i);else t.call(n,r,i)}}function xc(e,t,n,i){return e?oo(e).reduce((n,r)=>{const a=e[r];return o(a)?a.reduce((e,n)=>t.call(i,e,n,r),n):t.call(i,n,a,r)},n):n}function wc(e,t){return oo(t).reduce((n,i)=>{switch(i){case"x":case"y":case"href":case"url":case"x2":case"y2":case"latitude":case"longitude":case"latitude2":case"longitude2":case"text":case"shape":case"tooltip":return n;case"order":if("line"===e||"trail"===e)return n;case"detail":case"key":{const e=t[i];return(o(e)||Bu(e))&&h(e).forEach(e=>{e.aggregate||n.push(Ru(e,{}))}),n}case"size":if("trail"===e)return n;case"color":case"fill":case"stroke":case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeDash":case"strokeWidth":{const e=Zu(t[i]);return e&&!e.aggregate&&n.push(Ru(e,{})),n}}},[])}function Ac(e,t,n,i=!0){if("tooltip"in n)return{tooltip:n.tooltip};return{tooltip:[...e.map(({fieldPrefix:e,titlePrefix:n})=>{const r=i?` of ${t.field}`:"";return{field:e+t.field,type:t.type,title:qa(n)?{signal:n+`"${escape(r)}"`}:n+r}}),...vc(n)]}}function Oc(e){const{axis:t,title:n,field:i}=e;return t&&void 0!==t.title?void 0:vo(n,i)}function Cc(e,t,n,i,r){const{scale:o,axis:a}=n;return({partName:u,mark:c,positionPrefix:l,endPositionPrefix:f,extraEncoding:d={}})=>{const g=Oc(n);return Fc(e,u,r,{mark:c,encoding:Object.assign(Object.assign(Object.assign({[t]:Object.assign(Object.assign(Object.assign({field:l+"_"+n.field,type:n.type},void 0!==g?{title:g}:{}),void 0!==o?{scale:o}:{}),void 0!==a?{axis:a}:{})},s(f)?{[t+"2"]:{field:f+"_"+n.field}}:{}),i),d)})}}function Fc(e,t,n,i){const{clip:r,color:o,opacity:a}=e,s=e.type;return e[t]||void 0===e[t]&&n[t]?[Object.assign(Object.assign({},i),{mark:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n[t]),r?{clip:r}:{}),o?{color:o}:{}),a?{opacity:a}:{}),No(i.mark)?i.mark:{type:i.mark}),{style:`${s}-${t}`}),v(e[t])?{}:e[t])})]:[]}function Dc(e,t,n){const{encoding:i}=e,r="vertical"===t?"y":"x",o=i[r],a=i[r+"2"],s=i[r+"Error"],u=i[r+"Error2"];return{continuousAxisChannelDef:jc(o,n),continuousAxisChannelDef2:jc(a,n),continuousAxisChannelDefError:jc(s,n),continuousAxisChannelDefError2:jc(u,n),continuousAxis:r}}function jc(e,t){if(e&&e.aggregate){const{aggregate:n}=e,i=w(e,["aggregate"]);return n!==t&&as(is.errorBarContinuousAxisHasCustomizedAggregate(n,t)),i}return e}function kc(e,t){const{mark:n,encoding:i}=e;if(Bu(i.x)&&Iu(i.x)){if(Bu(i.y)&&Iu(i.y)){if(void 0===i.x.aggregate&&i.y.aggregate===t)return"vertical";if(void 0===i.y.aggregate&&i.x.aggregate===t)return"horizontal";if(i.x.aggregate===t&&i.y.aggregate===t)throw new Error("Both x and y cannot have aggregate");return No(n)&&n.orient?n.orient:"vertical"}return"horizontal"}if(Bu(i.y)&&Iu(i.y))return"vertical";throw new Error("Need a valid continuous axis for "+t+"s")}const Ec=oo({box:1,median:1,outliers:1,rule:1,ticks:1}),Sc=new Po("boxplot",Nc);function $c(e){return y(e)?"tukey":e}function Nc(e,{config:t}){var n,i;const{mark:r,encoding:s,selection:u,projection:c}=e,l=w(e,["mark","encoding","selection","projection"]),f=No(r)?r:{type:r};u&&as(is.selectionNotSupported("boxplot"));const d=null!==(n=f.extent)&&void 0!==n?n:t.boxplot.extent,g=vo(f.size,t.boxplot.size),p=$c(d),{transform:h,continuousAxisChannelDef:m,continuousAxis:b,groupby:v,aggregate:y,encodingWithoutContinuousAxis:x,ticksOrient:A,boxOrient:O,customTooltipWithoutAggregatedField:C}=function(e,t,n){const i=kc(e,"boxplot"),{continuousAxisChannelDef:r,continuousAxis:a}=Dc(e,i,"boxplot"),s=r.field,u=$c(t),c=[...Mc(s),{op:"median",field:s,as:"mid_box_"+s},{op:"min",field:s,as:("min-max"===u?"lower_whisker_":"min_")+s},{op:"max",field:s,as:("min-max"===u?"upper_whisker_":"max_")+s}],l="min-max"===u||"tukey"===u?[]:[{calculate:`datum["upper_box_${s}"] - datum["lower_box_${s}"]`,as:"iqr_"+s},{calculate:`min(datum["upper_box_${s}"] + datum["iqr_${s}"] * ${t}, datum["max_${s}"])`,as:"upper_whisker_"+s},{calculate:`max(datum["lower_box_${s}"] - datum["iqr_${s}"] * ${t}, datum["min_${s}"])`,as:"lower_whisker_"+s}],f=e.encoding,d=a,g=(f[d],w(f,["symbol"==typeof d?d:d+""])),{customTooltipWithoutAggregatedField:p,filteredEncoding:h}=function(e){const{tooltip:t}=e,n=w(e,["tooltip"]);if(!t)return{filteredEncoding:e};let i,r;return o(t)?(t.forEach(e=>{e.aggregate?(i||(i=[]),i.push(e)):(r||(r=[]),r.push(e))}),i&&(n.tooltip=i)):t.aggregate?n.tooltip=t:r=t,o(r)&&1===r.length&&(r=r[0]),{customTooltipWithoutAggregatedField:r,filteredEncoding:n}}(g),{bins:m,timeUnits:b,aggregate:v,groupby:y,encoding:x}=mc(h,n),A="vertical"===i?"horizontal":"vertical",O=i;return{transform:[...m,...b,{aggregate:[...v,...c],groupby:y},...l],groupby:y,aggregate:v,continuousAxisChannelDef:r,continuousAxis:a,encodingWithoutContinuousAxis:x,ticksOrient:A,boxOrient:O,customTooltipWithoutAggregatedField:p}}(e,d,t),{color:F,size:D}=x,j=w(x,["color","size"]),k=e=>Cc(f,b,m,e,t.boxplot),E=k(j),S=k(x),$=k(Object.assign(Object.assign({},j),D?{size:D}:{})),N=Ac([{fieldPrefix:"min-max"===p?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:"min-max"===p?"lower_whisker_":"min_",titlePrefix:"Min"}],m,x),M={type:"tick",color:"black",opacity:1,orient:A,invalid:null},B="min-max"===p?N:Ac([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],m,x),_=[...E({partName:"rule",mark:{type:"rule",invalid:null},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:B}),...E({partName:"rule",mark:{type:"rule",invalid:null},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:B}),...E({partName:"ticks",mark:M,positionPrefix:"lower_whisker",extraEncoding:B}),...E({partName:"ticks",mark:M,positionPrefix:"upper_whisker",extraEncoding:B})],T=[..."tukey"!==p?_:[],...S({partName:"box",mark:Object.assign(Object.assign({type:"bar"},g?{size:g}:{}),{orient:O,invalid:null}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:N}),...$({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:null},a(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{}),g?{size:g}:{}),{orient:A}),positionPrefix:"mid_box",extraEncoding:N})];let z;if("min-max"!==p){const e=`datum["lower_box_${m.field}"]`,n=`datum["upper_box_${m.field}"]`,i=`(${n} - ${e})`,r=`${e} - ${d} * ${i}`,o=`${n} + ${d} * ${i}`,a=`datum["${m.field}"]`,s={joinaggregate:Mc(m.field),groupby:v};let u=void 0;"tukey"===p&&(u={transform:[{filter:`(${r} <= ${a}) && (${a} <= ${o})`},{aggregate:[{op:"min",field:m.field,as:"lower_whisker_"+m.field},{op:"max",field:m.field,as:"upper_whisker_"+m.field},{op:"min",field:"lower_box_"+m.field,as:"lower_box_"+m.field},{op:"max",field:"upper_box_"+m.field,as:"upper_box_"+m.field},...y],groupby:v}],layer:_});const c=w(j,["tooltip"]),{scale:l,axis:g}=m,h=Oc(m),x=Fc(f,"outliers",t.boxplot,{transform:[{filter:`(${a} < ${r}) || (${a} > ${o})`}],mark:"point",encoding:Object.assign(Object.assign({[b]:Object.assign(Object.assign(Object.assign({field:m.field,type:m.type},void 0!==h?{title:h}:{}),void 0!==l?{scale:l}:{}),void 0!==g?{axis:g}:{})},c),C?{tooltip:C}:{})})[0];x&&u?z={transform:[s],layer:[x,u]}:x?(z=x,z.transform.unshift(s)):u&&(z=u,z.transform.unshift(s))}return z?Object.assign(Object.assign({},l),{layer:[z,{transform:h,layer:T}]}):Object.assign(Object.assign({},l),{transform:(null!==(i=l.transform)&&void 0!==i?i:[]).concat(h),layer:T})}function Mc(e){return[{op:"q1",field:e,as:"lower_box_"+e},{op:"q3",field:e,as:"upper_box_"+e}]}const Bc=oo({ticks:1,rule:1}),_c=new Po("errorbar",Tc);function Tc(e,{config:t}){const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:a,markDef:s,outerSpec:u,tooltipEncoding:c}=Uc(e,"errorbar",t),l=Cc(s,r,i,o,t.errorbar),f={type:"tick",orient:a},d=[...l({partName:"ticks",mark:f,positionPrefix:"lower",extraEncoding:c}),...l({partName:"ticks",mark:f,positionPrefix:"upper",extraEncoding:c}),...l({partName:"rule",mark:"rule",positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:c})];return Object.assign(Object.assign(Object.assign({},u),{transform:n}),d.length>1?{layer:d}:Object.assign({},d[0]))}function zc(e,t){const{encoding:n}=e;if(function(e){return(Bu(e.x)||Bu(e.y))&&!Bu(e.x2)&&!Bu(e.y2)&&!Bu(e.xError)&&!Bu(e.xError2)&&!Bu(e.yError)&&!Bu(e.yError2)}(n))return{orient:kc(e,t),inputType:"raw"};const i=function(e){return Bu(e.x2)||Bu(e.y2)}(n),r=function(e){return Bu(e.xError)||Bu(e.xError2)||Bu(e.yError)||Bu(e.yError2)}(n),o=n.x,a=n.y;if(i){if(r)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const e=n.x2,i=n.y2;if(Bu(e)&&Bu(i))throw new Error(`${t} cannot have both x2 and y2`);if(Bu(e)){if(Bu(o)&&Iu(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}if(Bu(i)){if(Bu(a)&&Iu(a))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${t}`)}throw new Error("No ranged axis")}{const e=n.xError,i=n.xError2,r=n.yError,s=n.yError2;if(Bu(i)&&!Bu(e))throw new Error(`${t} cannot have xError2 without xError`);if(Bu(s)&&!Bu(r))throw new Error(`${t} cannot have yError2 without yError`);if(Bu(e)&&Bu(r))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(Bu(e)){if(Bu(o)&&Iu(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(Bu(r)){if(Bu(a)&&Iu(a))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function Uc(e,t,n){var i;const{mark:r,encoding:o,selection:a,projection:s}=e,u=w(e,["mark","encoding","selection","projection"]),c=No(r)?r:{type:r};a&&as(is.selectionNotSupported(t));const{orient:l,inputType:f}=zc(e,t),{continuousAxisChannelDef:d,continuousAxisChannelDef2:g,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:h,continuousAxis:m}=Dc(e,l,t),{errorBarSpecificAggregate:b,postAggregateCalculates:v,tooltipSummary:y,tooltipTitleWithFieldName:x}=function(e,t,n,i,r,o,a,s){let u=[],c=[];const l=t.field;let f,d=!1;if("raw"===o){const t=e.center?e.center:e.extent?"iqr"===e.extent?"median":"mean":s.errorbar.center,n=e.extent?e.extent:"mean"===t?"stderr":"iqr";if("median"===t!=("iqr"===n)&&as(is.errorBarCenterIsUsedWithWrongExtent(t,n,a)),"stderr"===n||"stdev"===n)u=[{op:n,field:l,as:"extent_"+l},{op:t,field:l,as:"center_"+l}],c=[{calculate:`datum["center_${l}"] + datum["extent_${l}"]`,as:"upper_"+l},{calculate:`datum["center_${l}"] - datum["extent_${l}"]`,as:"lower_"+l}],f=[{fieldPrefix:"center_",titlePrefix:fo(t)},{fieldPrefix:"upper_",titlePrefix:Pc(t,n,"+")},{fieldPrefix:"lower_",titlePrefix:Pc(t,n,"-")}],d=!0;else{let t,i,r;e.center&&e.extent&&as(is.errorBarCenterIsNotNeeded(e.extent,a)),"ci"===n?(t="mean",i="ci0",r="ci1"):(t="median",i="q1",r="q3"),u=[{op:i,field:l,as:"lower_"+l},{op:r,field:l,as:"upper_"+l},{op:t,field:l,as:"center_"+l}],f=[{fieldPrefix:"upper_",titlePrefix:Yu({field:l,aggregate:r,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:Yu({field:l,aggregate:i,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:Yu({field:l,aggregate:t,type:"quantitative"},s,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&as(is.errorBarCenterAndExtentAreNotNeeded(e.center,e.extent)),"aggregated-upper-lower"===o?(f=[],c=[{calculate:`datum["${n.field}"]`,as:"upper_"+l},{calculate:`datum["${l}"]`,as:"lower_"+l}]):"aggregated-error"===o&&(f=[{fieldPrefix:"",titlePrefix:l}],c=[{calculate:`datum["${l}"] + datum["${i.field}"]`,as:"upper_"+l}],r?c.push({calculate:`datum["${l}"] + datum["${r.field}"]`,as:"lower_"+l}):c.push({calculate:`datum["${l}"] - datum["${i.field}"]`,as:"lower_"+l}));for(const e of c)f.push({fieldPrefix:e.as.substring(0,6),titlePrefix:mo(mo(e.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:c,errorBarSpecificAggregate:u,tooltipSummary:f,tooltipTitleWithFieldName:d}}(c,d,g,p,h,f,t,n),A=o,O=m,C=(A[O],"x"===m?"x2":"y2"),F=(A[C],"x"===m?"xError":"yError"),D=(A[F],"x"===m?"xError2":"yError2"),j=(A[D],w(A,["symbol"==typeof O?O:O+"","symbol"==typeof C?C:C+"","symbol"==typeof F?F:F+"","symbol"==typeof D?D:D+""])),{bins:k,timeUnits:E,aggregate:S,groupby:$,encoding:N}=mc(j,n),M=[...S,...b],B="raw"!==f?[]:$,_=Ac(y,d,N,x);return{transform:[...null!==(i=u.transform)&&void 0!==i?i:[],...k,...E,...0===M.length?[]:[{aggregate:M,groupby:B}],...v],groupby:B,continuousAxisChannelDef:d,continuousAxis:m,encodingWithoutContinuousAxis:N,ticksOrient:"vertical"===l?"horizontal":"vertical",markDef:c,outerSpec:u,tooltipEncoding:_}}function Pc(e,t,n){return fo(e)+" "+n+" "+t}const Lc=oo({band:1,borders:1}),Rc=new Po("errorband",qc);function qc(e,{config:t}){const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:a,outerSpec:s,tooltipEncoding:u}=Uc(e,"errorband",t),c=a,l=Cc(c,r,i,o,t.errorband),f=void 0!==e.encoding.x&&void 0!==e.encoding.y;let d={type:f?"area":"rect"},g={type:f?"line":"rule"};const p=Object.assign(Object.assign({},c.interpolate?{interpolate:c.interpolate}:{}),c.tension&&c.interpolate?{tension:c.tension}:{});return f?(d=Object.assign(Object.assign({},d),p),g=Object.assign(Object.assign({},g),p)):c.interpolate?as(is.errorBand1DNotSupport("interpolate")):c.tension&&as(is.errorBand1DNotSupport("tension")),Object.assign(Object.assign({},s),{transform:n,layer:[...l({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...l({partName:"borders",mark:g,positionPrefix:"lower",extraEncoding:u}),...l({partName:"borders",mark:g,positionPrefix:"upper",extraEncoding:u})]})}const Ic={};function Wc(e,t,n){const i=new Po(e,t);Ic[e]={normalizer:i,parts:n}}Wc("boxplot",Nc,Ec),Wc("errorbar",Tc,Bc),Wc("errorband",qc,Lc);const Hc=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Gc=oo({size:1,shape:1,fill:1,stroke:1,strokeDash:1,strokeWidth:1,opacity:1}),Yc={fillColor:{part:"legend",vgProp:"fill"},gradientStrokeColor:{part:"gradient",vgProp:"stroke"},labelColor:{part:"labels",vgProp:"fill"},strokeColor:{part:"legend",vgProp:"stroke"},symbolFillColor:{part:"symbols",vgProp:"fill"},symbolStrokeColor:{part:"symbols",vgProp:"stroke"},titleColor:{part:"title",vgProp:"fill"}},Vc={single:{on:"click",fields:["_vgsid_"],resolve:"global",empty:"all",clear:"dblclick"},multi:{on:"click",fields:["_vgsid_"],toggle:"event.shiftKey",resolve:"global",empty:"all",clear:"dblclick"},interval:{on:"[mousedown, window:mouseup] > window:mousemove!",encodings:["x","y"],translate:"[mousedown, window:mouseup] > window:mousemove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function Xc(e){return!(!e||"legend"!==e&&!e.legend)}function Jc(e){return Xc(e)&&a(e)}function Qc(e){return void 0!==e.concat}function Zc(e){return void 0!==e.vconcat}function Kc(e){return void 0!==e.hconcat}function el(e){return void 0!==e.repeat}function tl(e){return a(e)&&void 0!==e.step}function nl(e){return e.view||e.width||e.height}const il=oo({align:1,bounds:1,center:1,columns:1,spacing:1});function rl(e,t){var n;return null!==(n=e[t])&&void 0!==n?n:e["width"===t?"continuousWidth":"continuousHeight"]}function ol(e,t){const n=al(e,t);return tl(n)?n.step:sl}function al(e,t){var n;return vo(null!==(n=e[t])&&void 0!==n?n:e["width"===t?"discreteWidth":"discreteHeight"],{step:e.step})}const sl=20,ul={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:sl},mark:{color:"#4c78a8",invalid:"filter",timeUnitBand:1},area:{},bar:To,circle:{},geoshape:{},image:{},line:{},point:{},rect:zo,rule:{color:"black"},square:{},text:{color:"black"},tick:{thickness:1},trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:{pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4},projection:{},axis:{},axisX:{},axisY:{},axisLeft:{},axisRight:{},axisTop:{},axisBottom:{},axisBand:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:Vc,style:{},title:{},facet:{spacing:20},repeat:{spacing:20},concat:{spacing:20}},cl=zr("tableau10"),ll={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},fl={blue:cl[0],orange:cl[1],red:cl[2],teal:cl[3],green:cl[4],yellow:cl[5],purple:cl[6],pink:cl[7],brown:cl[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function dl(e={}){const{color:t,font:n,fontSize:i}=e,r=w(e,["color","font","fontSize"]);return d({},ul,n?function(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}(n):{},t?function(e={}){return{signals:[{name:"color",value:a(e)?Object.assign(Object.assign({},fl),e):fl}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}(t):{},i?function(e){return{signals:[{name:"fontSize",value:a(e)?Object.assign(Object.assign({},ll),e):ll}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}(i):{},r||{})}const gl=["view",...$o],pl=["color","fontSize","background","padding","facet","concat","repeat","numberFormat","timeFormat","countTitle","header","axisQuantitative","axisTemporal","scale","selection","overlay"],hl=Object.assign({view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"]},{area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]});function ml(e){e=Hr(e);for(const t of pl)delete e[t];if(e.axis)for(const t in e.axis)Oo(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of Hc)delete e.legend[t];if(e.mark)for(const t of Bo)delete e.mark[t];for(const t of gl){for(const n of Bo)delete e[t][n];const n=hl[t];if(n)for(const i of n)delete e[t][i];bl(e,t)}for(const t of oo(Ic))delete e[t];!function(e){const{mark:t,subtitle:n}=La(e.title),i=Object.assign(Object.assign({},e.style["group-title"]),t);oo(i).length>0&&(e.style["group-title"]=i);oo(n).length>0?e.title=n:delete e.title}(e);for(const t in e)a(e[t])&&0===oo(e[t]).length&&delete e[t];return oo(e).length>0?e:void 0}function bl(e,t,n,i){const r=i?e[t][i]:e[t];"view"===t&&(n="cell");const o=Object.assign(Object.assign({},r),e.style[null!=n?n:t]);oo(o).length>0&&(e.style[null!=n?n:t]=o),i||delete e[t]}function vl(e){return void 0!==e.layer}class yl{map(e,t){return ju(e)?this.mapFacet(e,t):el(e)?this.mapRepeat(e,t):Kc(e)?this.mapHConcat(e,t):Zc(e)?this.mapVConcat(e,t):Qc(e)?this.mapConcat(e,t):this.mapLayerOrUnit(e,t)}mapLayerOrUnit(e,t){if(vl(e))return this.mapLayer(e,t);if(Uo(e))return this.mapUnit(e,t);throw new Error(is.invalidSpec(e))}mapLayer(e,t){return Object.assign(Object.assign({},e),{layer:e.layer.map(e=>this.mapLayerOrUnit(e,t))})}mapHConcat(e,t){return Object.assign(Object.assign({},e),{hconcat:e.hconcat.map(e=>this.map(e,t))})}mapVConcat(e,t){return Object.assign(Object.assign({},e),{vconcat:e.vconcat.map(e=>this.map(e,t))})}mapConcat(e,t){const{concat:n}=e,i=w(e,["concat"]);return Object.assign(Object.assign({},i),{concat:n.map(e=>this.map(e,t))})}mapFacet(e,t){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,t)})}mapRepeat(e,t){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,t)})}}const xl={zero:1,center:1,normalize:1};const wl=["bar","area","rule","point","circle","square","line","text","tick"],Al=["bar","area"];function Ol(e,t,n={}){const i=No(e)?e.type:e;if(!Qr(wl,i))return null;const r=function(e){const t=e.x,n=e.y;if(Bu(t)&&Bu(n))if("quantitative"===t.type&&"quantitative"===n.type){if(t.stack)return"x";if(n.stack)return"y";if(!!t.aggregate!=!!n.aggregate)return t.aggregate?"x":"y"}else{if("quantitative"===t.type)return"x";if("quantitative"===n.type)return"y"}else{if(Bu(t)&&"quantitative"===t.type)return"x";if(Bu(n)&&"quantitative"===n.type)return"y"}}(t);if(!r)return null;const o=t[r],a=Tu(o)?Ru(o,{}):void 0,s="x"===r?"y":"x",u=t[s],c=Tu(u)?Ru(u,{}):void 0,l=Da.reduce((e,n)=>{if("tooltip"!==n&&pc(t,n)){h(t[n]).forEach(t=>{const i=Zu(t);if(i.aggregate)return;const r=Tu(i)?Ru(i,{}):void 0;(!r||r!==c&&r!==a)&&e.push({channel:n,fieldDef:i})})}return e},[]);let f;if(void 0!==o.stack?f=v(o.stack)?o.stack?"zero":null:o.stack:l.length>0&&Qr(Al,i)&&(f="zero"),!f||!xl[f])return null;if(hc(t)&&0===l.length)return null;if(o.scale&&o.scale.type&&o.scale.type!==Rs.LINEAR){if(n.disallowNonLinearStack)return null;as(is.cannotStackNonLinearScale(o.scale.type))}return pc(t,r===Jo?Zo:Ko)?(void 0!==o.stack&&as(is.cannotStackRangedMark(r)),null):(o.aggregate&&!Qr(Yo,o.aggregate)&&as(is.stackNonSummativeAggregate(o.aggregate)),{groupbyChannel:u?s:void 0,groupbyField:c,fieldChannel:r,impute:null!==o.impute&&Eo(i),stackBy:l,offset:f})}function Cl(e){const t=w(e,["point","line"]);return oo(t).length>1?t:t.type}function Fl(e){for(const t of["line","area","rule","trail"])e[t]&&(e=Object.assign(Object.assign({},e),{[t]:Yr(e[t],["point","line"])}));return e}function Dl(e,t={},n){return"transparent"===e.point?{opacity:0}:e.point?a(e.point)?e.point:{}:void 0!==e.point?null:t.point||n.shape?a(t.point)?t.point:{}:void 0}function jl(e,t={}){return e.line?!0===e.line?{}:e.line:void 0!==e.line?null:t.line?!0===t.line?{}:t.line:void 0}class kl{constructor(){this.name="path-overlay"}hasMatchingType(e,t){if(Uo(e)){const{mark:n,encoding:i}=e,r=No(n)?n:{type:n};switch(r.type){case"line":case"rule":case"trail":return!!Dl(r,t[r.type],i);case"area":return!!Dl(r,t[r.type],i)||!!jl(r,t[r.type])}}return!1}run(e,t,n){const{config:i}=t,{selection:r,projection:o,encoding:a,mark:s}=e,u=w(e,["selection","projection","encoding","mark"]),c=No(s)?s:{type:s},l=Dl(c,i[c.type],a),f="area"===c.type&&jl(c,i[c.type]),d=[Object.assign(Object.assign({},r?{selection:r}:{}),{mark:Cl(Object.assign(Object.assign({},"area"===c.type&&void 0===c.opacity&&void 0===c.fillOpacity?{opacity:.7}:{}),c)),encoding:Yr(a,["shape"])})],g=Ol(c,a);let p=a;if(g){const{fieldChannel:e,offset:t}=g;p=Object.assign(Object.assign({},a),{[e]:Object.assign(Object.assign({},a[e]),t?{stack:t}:{})})}return f&&d.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"line"},Gr(c,["clip","interpolate","tension","tooltip"])),f),encoding:p})),l&&d.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:!0},Gr(c,["clip","tooltip"])),l),encoding:p})),n(Object.assign(Object.assign({},u),{layer:d}),Object.assign(Object.assign({},t),{config:Fl(i)}))}}class El{constructor(){this.name="RangeStep"}hasMatchingType(e){var t;if(Uo(e)&&e.encoding)for(const n of ka){const i=e.encoding[n];if(i&&Bu(i)&&(null===(t=null==i?void 0:i.scale)||void 0===t?void 0:t.rangeStep))return!0}return!1}run(e){var t;const n={};let i=Object.assign({},e.encoding);for(const e of ka){const r=Ea(e),o=i[e];if(o&&Bu(o)&&(null===(t=null==o?void 0:o.scale)||void 0===t?void 0:t.rangeStep)){const{scale:t}=o,a=w(o,["scale"]),s=w(t,["rangeStep"]);n[r]={step:t.rangeStep},as(is.RANGE_STEP_DEPRECATED),i=Object.assign(Object.assign({},i),{[e]:Object.assign(Object.assign({},a),oo(s).length>0?{scale:s}:{})})}}return Object.assign(Object.assign(Object.assign({},n),e),{encoding:i})}}class Sl{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(Uo(e)){const{encoding:t,mark:n}=e;if("line"===n)for(const e of wa){const n=t[Oa(e)];if(t[e]&&Bu(n)&&!lc(n.bin))return!0}}return!1}run(e,t,n){const{encoding:i}=e;return as(is.lineWithRange(!!i.x2,!!i.y2)),n(Object.assign(Object.assign({},e),{mark:"rule"}),t)}}function $l(e){const{parentEncoding:t,encoding:n}=e;if(t&&n){const e=oo(t).reduce((e,t)=>(n[t]&&e.push(t),e),[]);e.length>0&&as(is.encodingOverridden(e))}const i=Object.assign(Object.assign({},null!=t?t:{}),null!=n?n:{});return oo(i).length>0?i:void 0}function Nl(e){const{parentProjection:t,projection:n}=e;return t&&n&&as(is.projectionOverridden({parentProjection:t,projection:n})),null!=n?n:t}function Ml(e,t){void 0===t&&(t=dl(e.config));const n=function(e,t={}){return Bl.map(e,{config:t})}(e,t),{width:i,height:r}=e,o=function(e,t,n){let{width:i,height:r}=t;const o=Uo(e)||vl(e),a={};o?"container"==i&&"container"==r?(a.type="fit",a.contains="padding"):"container"==i?(a.type="fit-x",a.contains="padding"):"container"==r&&(a.type="fit-y",a.contains="padding"):("container"==i&&(as(is.containerSizeNonSingle("width")),i=void 0),"container"==r&&(as(is.containerSizeNonSingle("height")),r=void 0));const s=Object.assign(Object.assign(Object.assign({type:"pad"},a),n?_l(n.autosize):{}),_l(e.autosize));"fit"!==s.type||o||(as(is.FIT_NON_SINGLE),s.type="pad");"container"==i&&"fit"!=s.type&&"fit-x"!=s.type&&as(is.containerSizeNotCompatibleWithAutosize("width"));"container"==r&&"fit"!=s.type&&"fit-y"!=s.type&&as(is.containerSizeNotCompatibleWithAutosize("height"));if(Wr(s,{type:"pad"}))return;return s}(n,{width:i,height:r,autosize:e.autosize},t);return Object.assign(Object.assign({},n),o?{autosize:o}:{})}const Bl=new class extends yl{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[Sc,_c,Rc,new kl,new Sl,new El]}map(e,t){if(Uo(e)){const n=pc(e.encoding,Xo),i=pc(e.encoding,"column"),r=pc(e.encoding,"facet");if(n||i||r)return this.mapFacetedUnit(e,t)}return super.map(e,t)}mapUnit(e,t){const{parentEncoding:n,parentProjection:i}=t;if(n||i)return this.mapUnitWithParentEncodingOrProjection(e,t);const r=this.mapLayerOrUnit.bind(this);for(const n of this.nonFacetUnitNormalizers)if(n.hasMatchingType(e,t.config))return n.run(e,t,r);return e}mapRepeat(e,t){const{repeat:n}=e;return!o(n)&&e.columns&&(e=Yr(e,["columns"]),as(is.columnsNotSupportByRowCol("repeat"))),Object.assign(Object.assign({},e),{spec:this.map(e.spec,t)})}mapFacet(e,t){const{facet:n}=e;return Du(n)&&e.columns&&(e=Yr(e,["columns"]),as(is.columnsNotSupportByRowCol("facet"))),super.mapFacet(e,t)}mapUnitWithParentEncodingOrProjection(e,t){const{encoding:n,projection:i}=e,{parentEncoding:r,parentProjection:o,config:a}=t,s=Nl({parentProjection:o,projection:i}),u=$l({parentEncoding:r,encoding:n});return this.mapUnit(Object.assign(Object.assign(Object.assign({},e),s?{projection:s}:{}),u?{encoding:u}:{}),{config:a})}mapFacetedUnit(e,t){const n=e.encoding,{row:i,column:r,facet:o}=n,a=w(n,["row","column","facet"]),{mark:s,width:u,projection:c,height:l,view:f,selection:d,encoding:g}=e,p=w(e,["mark","width","projection","height","view","selection","encoding"]),{facetMapping:h,layout:m}=this.getFacetMappingAndLayout({row:i,column:r,facet:o});return this.mapFacet(Object.assign(Object.assign(Object.assign({},p),m),{facet:h,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},u?{width:u}:{}),l?{height:l}:{}),f?{view:f}:{}),c?{projection:c}:{}),{mark:s,encoding:a}),d?{selection:d}:{})}),t)}getFacetMappingAndLayout(e){var t;const{row:n,column:i,facet:r}=e;if(n||i){r&&as(is.facetChannelDropped([...n?[Xo]:[],...i?["column"]:[]]));const o={},a={};for(const n of[Xo,"column"]){const i=e[n];if(i){const e=w(i,["align","center","spacing","columns"]);o[n]=e;for(const e of["align","center","spacing"])void 0!==i[e]&&(a[e]=null!==(t=a[e])&&void 0!==t?t:{},a[e][n]=i[e])}}return{facetMapping:o,layout:a}}{const{align:e,center:t,spacing:n,columns:i}=r;return{facetMapping:w(r,["align","center","spacing","columns"]),layout:Object.assign(Object.assign(Object.assign(Object.assign({},e?{align:e}:{}),t?{center:t}:{}),n?{spacing:n}:{}),i?{columns:i}:{})}}}mapLayer(e,t){var{parentEncoding:n,parentProjection:i}=t,r=w(t,["parentEncoding","parentProjection"]);const{encoding:o,projection:a}=e,s=w(e,["encoding","projection"]),u=Object.assign(Object.assign({},r),{parentEncoding:$l({parentEncoding:n,encoding:o}),parentProjection:Nl({parentProjection:i,projection:a})});return super.mapLayer(s,u)}};function _l(e){return s(e)?{type:e}:null!=e?e:{}}const Tl=["background","padding"];function zl(e){return Tl.reduce((t,n)=>(e&&void 0!==e[n]&&(t[n]=e[n]),t),{})}function Ul(e){return!!e.url}function Pl(e){return!!e.values}function Ll(e){return!(!e.name||Ul(e)||Pl(e)||Rl(e))}function Rl(e){return e&&(ql(e)||Il(e)||Wl(e))}function ql(e){return!!e.sequence}function Il(e){return!!e.sphere}function Wl(e){return!!e.graticule}const Hl="main";function Gl(e){return void 0!==e.filter}function Yl(e){return void 0!==e.lookup}function Vl(e){return void 0!==e.pivot}function Xl(e){return void 0!==e.density}function Jl(e){return void 0!==e.quantile}function Ql(e){return void 0!==e.regression}function Zl(e){return void 0!==e.loess}function Kl(e){return void 0!==e.sample}function ef(e){return void 0!==e.window}function tf(e){return void 0!==e.joinaggregate}function nf(e){return void 0!==e.flatten}function rf(e){return void 0!==e.calculate}function of(e){return!!e.bin}function af(e){return void 0!==e.impute}function sf(e){return void 0!==e.timeUnit}function uf(e){return void 0!==e.aggregate}function cf(e){return void 0!==e.stack}function lf(e){return void 0!==e.fold}function ff(e,t,n){return df=t||pf,gf=n||mf,vf(e.trim()).map(yf)}var df,gf,pf="view",hf=/[[\]{}]/,mf={"*":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};function bf(e,t,n,i,r){for(var o,a=0,s=e.length;t<s;++t){if(o=e[t],!a&&o===n)return t;r&&r.indexOf(o)>=0?--a:i&&i.indexOf(o)>=0&&++a}return t}function vf(e){for(var t=[],n=0,i=e.length,r=0;r<i;)r=bf(e,r,",","[{","]}"),t.push(e.substring(n,r).trim()),n=++r;if(0===t.length)throw"Empty event selector: "+e;return t}function yf(e){return"["===e[0]?function(e){var t,n,i=e.length,r=1;if((r=bf(e,r,"]","[","]"))===i)throw"Empty between selector: "+e;if(2!==(t=vf(e.substring(1,r))).length)throw"Between selector must have two elements: "+e;if(">"!==(e=e.slice(r+1).trim())[0])throw"Expected '>' after between selector: "+e;if(t=t.map(yf),(n=yf(e.slice(1).trim())).between)return{between:t,stream:n};n.between=t;return n}(e):function(e){var t,n,i={source:df},r=[],o=[0,0],a=0,s=0,u=e.length,c=0;if("}"===e[u-1]){if(!((c=e.lastIndexOf("{"))>=0))throw"Unmatched right brace: "+e;try{o=function(e){var t=e.split(",");if(!e.length||t.length>2)throw e;return t.map((function(t){var n=+t;if(n!=n)throw e;return n}))}(e.substring(c+1,u-1))}catch(t){throw"Invalid throttle specification: "+e}e=e.slice(0,c).trim(),u=e.length,c=0}if(!u)throw e;"@"===e[0]&&(a=++c);(t=bf(e,c,":"))<u&&(r.push(e.substring(s,t).trim()),s=c=++t);if((c=bf(e,c,"["))===u)r.push(e.substring(s,u).trim());else if(r.push(e.substring(s,c).trim()),n=[],(s=++c)===u)throw"Unmatched left bracket: "+e;for(;c<u;){if((c=bf(e,c,"]"))===u)throw"Unmatched left bracket: "+e;if(n.push(e.substring(s,c).trim()),c<u-1&&"["!==e[++c])throw"Expected left bracket: "+e;s=++c}if(!(u=r.length)||hf.test(r[u-1]))throw"Invalid event selector: "+e;u>1?(i.type=r[1],a?i.markname=r[0].slice(1):!function(e){return gf[e]}(r[0])?i.source=r[0]:i.marktype=r[0]):i.type=r[0];"!"===i.type.slice(-1)&&(i.consume=!0,i.type=i.type.slice(0,-1));null!=n&&(i.filter=n);o[0]&&(i.throttle=o[0]);o[1]&&(i.debounce=o[1]);return i}(e)}function xf(e,t,n,i){const r=t&&t.condition,o=i(t);if(r){return{[n]:[...h(r).map(t=>{const n=i(t),r=function(e){return e.selection}(t)?Rg(e,t.selection):Ig(e,t.test);return Object.assign({test:r},n)}),...void 0!==o?[o]:[]]}}return void 0!==o?{[n]:o}:{}}function wf(e){const{channel:t,channelDef:n,markDef:i,scale:r}=e,o=jf(e);return Bu(n)&&!Go(n.aggregate)&&r&&nu(r.get("type"))&&!1===r.get("zero")?Af({fieldDef:n,channel:t,markDef:i,ref:o}):o}function Af({fieldDef:e,channel:t,markDef:n,ref:i}){return Eo(n.type)?i:[Of(e,t),i]}function Of(e,t){const n=Cf(e,!0),i="x"===Oa(t)?{value:0}:{field:{group:"height"}};return Object.assign({test:n},i)}function Cf(e,t=!0){return Us(s(e)?e:Ru(e,{expr:"datum"}),!t)}function Ff(e,t,n,i){const r=Object.assign(Object.assign({},t?{scale:t}:{}),{field:Ru(e,n)});if(i){const{offset:e,band:t}=i;return Object.assign(Object.assign(Object.assign({},r),e?{offset:e}:{}),t?{band:t}:{})}return r}function Df({scaleName:e,fieldDef:t,fieldDef2:n,offset:i,startSuffix:r,band:o=.5}){const a=0<o&&o<1?"datum":void 0,s=Ru(t,{expr:a,suffix:r}),u=void 0!==n?Ru(n,{expr:a}):Ru(t,{suffix:"end",expr:a});if(0===o)return Object.assign({scale:e,field:s},i?{offset:i}:{});if(1===o)return Object.assign({scale:e,field:u},i?{offset:i}:{});{const t=`${o} * ${s} + ${1-o} * ${u}`;return Object.assign({signal:`scale("${e}", ${t})`},i?{offset:i}:{})}}function jf({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:u,defaultRef:c}){if(t){if(Bu(t)){if(_u(t)){const a=Su(e,t,n,i,r,{isMidPoint:!0});if(cc(t.bin)||a&&t.timeUnit)return Qr([Jo,Qo],e)&&Qr(["quantitative","temporal"],t.type)?s&&s.impute?Ff(t,o,{binSuffix:"mid"},{offset:u}):Df({scaleName:o,fieldDef:t,band:a,offset:u}):Ff(t,o,sc(t,e)?{binSuffix:"range"}:{},{offset:u});if(lc(t.bin)){if(Bu(n))return Df({scaleName:o,fieldDef:t,fieldDef2:n,band:a,offset:u});{const t=e===Jo?Zo:Ko;as(is.channelRequiredForBinned(t))}}}if(a){const e=a.get("type");if(eu(e)){if("band"===e){return Ff(t,o,{binSuffix:"range"},{band:vo(Pu(t)?t.band:void 0,.5),offset:u})}return Ff(t,o,{binSuffix:"range"},{offset:u})}}return Ff(t,o,{},{offset:u})}if(zu(t)){const n=t.value,i=u?{offset:u}:{};return Object.assign(Object.assign({},kf(e,n)),i)}if(qa(t))return t}const l="function"==typeof c?Object.assign(Object.assign({},c()),u?{offset:u}:{}):c;return l?Object.assign(Object.assign({},l),u?{offset:u}:{}):l}function kf(e,t){return Qr(["x","x2"],e)&&"width"===t?{field:{group:"width"}}:Qr(["y","y2"],e)&&"height"===t?{field:{group:"height"}}:Ya(t)}function Ef(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:a=e}=n;let{defaultRef:s,defaultValue:u}=n;void 0===s&&(u=null!=u?u:a===e?i[e]:vo(i[e],i[a],Ja(e,i,o,{vgChannel:a})),void 0!==u&&(s=Ya(u)));const c=r[e];return xf(t,c,a,n=>jf({channel:e,channelDef:n,markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e),stack:null,defaultRef:s}))}function Sf(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,a=vo(t.filled,n.filled),s={fill:Ja("fill",n,r),stroke:Ja("stroke",n,r),color:Ja("color",n,r)},u=Qr(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,c=vo(n.fill,!0===a?n.color:void 0,s.fill,!0===a?s.color:void 0,u),l=vo(n.stroke,!1===a?n.color:void 0,s.stroke,!1===a?s.color:void 0),f=a?"fill":"stroke",d=Object.assign(Object.assign({},c?{fill:Ya(c)}:{}),l?{stroke:Ya(l)}:{});return n.color&&(a?n.fill:n.stroke)&&as(is.droppingColor("property",{fill:"fill"in n,stroke:"stroke"in n})),Object.assign(Object.assign(Object.assign(Object.assign({},d),Ef("color",e,{vgChannel:f,defaultValue:a?c:l})),Ef("fill",e,{defaultValue:i.fill?c:void 0})),Ef("stroke",e,{defaultValue:i.stroke?l:void 0}))}function $f(e,t="text"){const n=e.encoding[t];return xf(e,n,t,t=>Nf(t,e.config))}function Nf(e,t,n="datum"){if(e){if(zu(e))return{value:e.value};if(_u(e)){const{format:i,formatType:r}=Ju(e);return hu({fieldDef:e,format:i,formatType:r,expr:n,config:t})}}}function Mf(e,t={}){const{encoding:n,markDef:i,config:r}=e,u=n.tooltip;return o(u)?{tooltip:Bf({tooltip:u},r,t)}:xf(e,u,"tooltip",o=>{const u=Nf(o,e.config,t.reactiveGeom?"datum.datum":"datum");if(u)return u;if(null===o)return;let c=vo(i.tooltip,Ja("tooltip",i,r));return!0===c&&(c={content:"encoding"}),s(c)?{value:c}:a(c)?"encoding"===c.content?Bf(n,r,t):{signal:"datum"}:void 0})}function Bf(e,t,{reactiveGeom:n}={}){const i=[],r={},o={},a=n?"datum.datum":"datum",s=[];function c(n,i){const r=Oa(i),u=_u(n)?n:Object.assign(Object.assign({},n),{type:e[r].type}),c=h(Yu(u,t,{allowDisabling:!1})).join(", ");let l=Nf(u,t,a).signal;if("x"===i||"y"===i){const n="x"===i?"x2":"y2",r=Qu(e[n]);if(lc(u.bin)&&r){const e=Ru(u,{expr:a}),i=Ru(r,{expr:a}),{format:s,formatType:c}=Ju(u);l=yu(e,i,s,c,t),o[n]=!0}}s.push({channel:i,key:c,value:l})}yc(e,(e,t)=>{Bu(e)?c(e,t):Mu(e)&&c(e.condition,t)});for(const{channel:e,key:t,value:n}of s)o[e]||r[t]||(i.push(`${u(t)}: ${n}`),r[t]=!0);return i.length>0?{signal:`{${i.join(", ")}}`}:void 0}function _f(e,t){const n=t[e+"Offset"];if(n)return n}function Tf(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:a,stack:s}=t,u=r[e],c=r[e===Jo?Zo:Ko],l=t.scaleName(e),f=t.getScaleComponent(e),d=_f(e,o),g=zf({model:t,defaultPos:n,channel:e,scaleName:l,scale:f});return{[null!=i?i:e]:u||!r.latitude&&!r.longitude?function(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o}=e;if(Bu(n)&&r&&t===r.fieldChannel)return Pu(n)&&void 0!==n.band?Df({scaleName:i,fieldDef:n,startSuffix:"start",band:n.band,offset:0}):Ff(n,i,{suffix:"end"},{offset:o});return wf(e)}({channel:e,channelDef:u,channel2Def:c,markDef:o,config:a,scaleName:l,scale:f,stack:s,offset:d,defaultRef:g}):{field:t.getName(e)}}}function zf({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:a}=e;return()=>{const s=Oa(n),u=vo(o[n],Ja(n,o,a));if(void 0!==u)return kf(n,u);if("zeroOrMin"===t||"zeroOrMax"===t){if(i){const e=r.get("type");if(Qr([Rs.LOG,Rs.TIME,Rs.UTC],e));else if(r.domainDefinitelyIncludesZero())return{scale:i,value:0}}return"zeroOrMin"===t?"x"===s?{value:0}:{field:{group:"height"}}:"x"===s?{field:{group:"width"}}:{value:0}}{const t=e["x"===s?"width":"height"];return Object.assign(Object.assign({},t),{mult:.5})}}}const Uf={left:"x",center:"xc",right:"x2"},Pf={top:"y",middle:"yc",bottom:"y2"};function Lf(e,t,n){const i="x"===e?"align":"baseline",r=vo(t[i],Ja(i,t,n));return"x"===e?Uf[null!=r?r:"center"]:Pf[null!=r?r:"middle"]}function Rf(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?qf(e,t,{defaultPos:n,defaultPos2:i}):Tf(e,t,{defaultPos:n})}function qf(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,a="x"===e?"width":"height",s=function(e,t,n){const{encoding:i,mark:r,markDef:o,stack:a,config:s}=e,u="x2"===n?"x":"y",c="x2"===n?"width":"height",l=i[u],f=e.scaleName(u),d=e.getScaleComponent(u),g=_f(n,e.markDef);if(!l&&(i.latitude||i.longitude))return{[n]:{field:e.getName(n)}};const p=function({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:u,defaultRef:c}){if(Bu(t)&&s&&e.charAt(0)===s.fieldChannel.charAt(0))return Ff(t,o,{suffix:"start"},{offset:u});return wf({channel:e,channelDef:n,scaleName:o,scale:a,stack:s,markDef:i,config:r,offset:u,defaultRef:c})}({channel:n,channelDef:l,channel2Def:i[n],markDef:o,config:s,scaleName:f,scale:d,stack:a,offset:g,defaultRef:void 0});if(void 0!==p)return{[n]:p};const h=zf({model:e,defaultPos:t,channel:n,scaleName:f,scale:d})();return vo(If(n,o),If(n,{[n]:Qa(n,o,s.style),[c]:Qa(c,o,s.style)}),If(n,s[r]),If(n,s.mark),{[n]:h})}(t,i,"x"===e?"x2":"y2"),u=s[a]?Lf(e,r,o):e;return Object.assign(Object.assign({},Tf(e,t,{defaultPos:n,vgChannel:u})),s)}function If(e,t){const n="x2"===e?"width":"height";return t[e]?{[e]:kf(e,t[e])}:t[n]?{[n]:{value:t[n]}}:void 0}function Wf(e,t,n){var i,r,o,a;const{config:s,encoding:u,markDef:c}=e,l="x"===t?"x2":"y2",f="x"===t?"width":"height",d=u[t],g=u[l],p=e.getScaleComponent(t),h=p?p.get("type"):void 0,m=e.scaleName(t),b=c.orient,v=null!==(a=null!==(o=null!==(r=null!==(i=u[f])&&void 0!==i?i:u.size)&&void 0!==r?r:c[f])&&void 0!==o?o:c.size)&&void 0!==a?a:Ja("size",c,s,{vgChannel:f}),y="x"===t?"vertical"===b:"horizontal"===b;if(Bu(d)&&(cc(d.bin)||lc(d.bin)||d.timeUnit&&!g)&&!v&&!eu(h)){return function({fieldDef:e,fieldDef2:t,channel:n,band:i,scaleName:r,markDef:o,spacing:a=0,reverse:s}){const u=n===Jo?Zo:Ko;return cc(e.bin)||e.timeUnit?{[u]:Vf({channel:n,fieldDef:e,scaleName:r,markDef:o,band:(1-i)/2,offset:Yf(u,a,s)}),[n]:Vf({channel:n,fieldDef:e,scaleName:r,markDef:o,band:1-(1-i)/2,offset:Yf(n,a,s)})}:lc(e.bin)&&Bu(t)?{[u]:Ff(e,r,{},{offset:Yf(u,a,s)}),[n]:Ff(t,r,{},{offset:Yf(n,a,s)})}:void as(is.channelRequiredForBinned(u))}({fieldDef:d,fieldDef2:g,channel:t,markDef:c,scaleName:m,band:Su(t,d,void 0,c,s),spacing:vo(c.binSpacing,s[n].binSpacing),reverse:p.get("reverse")})}if((Bu(d)&&eu(h)||y)&&!g){if(Bu(d)&&h===Rs.BAND){return function(e,t,n,i){const r=n.scaleName(t),o="x"===t?"width":"height",{markDef:a,encoding:s,config:u}=n,c=Lf(t,a,u),l=_f(t,a),f={[c]:Ff(e,r,{},{band:.5,offset:l})};if(s.size||null!==a.size&&void 0!==a.size){if(a.orient){if(Zu(s.size)||zu(s.size))return Object.assign(Object.assign({},f),Ef("size",n,{vgChannel:o}));if(void 0!==a.size)return Object.assign(Object.assign({},f),{[o]:{value:a.size}})}else as(is.cannotApplySizeToNonOrientedMark(a.type))}if(void 0!==(null==i?void 0:i.value))return Object.assign(Object.assign({},f),{[o]:i});const{band:d=1}=e;return{[t]:Ff(e,r,{binSuffix:"range"},{band:(1-d)/2,offset:l}),[o]:null!=i?i:Gf(r,d)}}(d,t,e,Hf(n,c,f,m,p,s,Pu(d)?d.band:void 0))}return function(e,t,n){const i="x"===e?"xc":"yc",r="x"===e?"width":"height";return Object.assign(Object.assign({},Tf(e,t,{defaultPos:"mid",vgChannel:i})),Ef("size",t,{defaultRef:n,vgChannel:r}))}(t,e,Hf(n,c,f,m,p,s))}return qf(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function Hf(e,t,n,i,r,o,a){const s=vo(t[n],t.size,Ja("size",t,o,{vgChannel:n}));if(void 0!==s)return Ya(s);if(r){const t=r.get("type");if("point"===t||"band"===t){if(void 0!==o[e].discreteBandSize)return{value:o[e].discreteBandSize};if(t===Rs.POINT){const e=r.get("range");return Ia(e)&&y(e.step)?{value:e.step-2}:{value:sl-2}}return Gf(i,a)}return{value:o[e].continuousBandSize}}const u=ol(o.view,n);return{value:vo(o[e].discreteBandSize,u-2)}}function Gf(e,t=!0){return{scale:e,band:t}}function Yf(e,t,n){if(qa(n))return"x"===e||"y2"===e?{signal:`${n.signal} ? ${t} : 0`}:{signal:`${n.signal} ? 0 : ${t}`};return{x:n?t:0,x2:n?0:t,y:n?0:t,y2:n?t:0}[e]}function Vf({channel:e,fieldDef:t,scaleName:n,markDef:i,band:r,offset:o}){return Af({fieldDef:t,channel:e,markDef:i,ref:Df({scaleName:n,fieldDef:t,band:r,offset:o})})}function Xf(e,t){const{fill:n,stroke:i}="include"===t.color?Sf(e):{};return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},function(e,t){return Ha.reduce((n,i)=>(void 0!==e[i]&&"ignore"!==t[i]&&(n[i]={value:e[i]}),n),{})}(e.markDef,t)),Jf(e,"fill",n)),Jf(e,"stroke",i)),Ef("opacity",e)),Ef("fillOpacity",e)),Ef("strokeOpacity",e)),Ef("strokeWidth",e)),Ef("strokeDash",e)),Mf(e)),$f(e,"href"))}function Jf(e,t,n){const{config:i,mark:r,markDef:o}=e;if("hide"===Xa("invalid",o,i)&&n&&!Eo(r)){const i=function(e,{invalid:t=!1,channels:n}){const i=n.reduce((t,n)=>{const i=e.getScaleComponent(n);if(i){const r=i.get("type"),o=e.vgField(n,{expr:"datum"});o&&tu(r)&&(t[o]=!0)}return t},{}),r=oo(i);if(r.length>0){const e=t?"||":"&&";return r.map(e=>Cf(e,t)).join(` ${e} `)}return}(e,{invalid:!0,channels:Ba});if(i)return{[t]:[{test:i,value:null},...h(n)]}}return n?{[t]:n}:{}}function Qf(e){const{config:t,markDef:n}=e;if(Xa("invalid",n,t)){const t=function(e,{invalid:t=!1,channels:n}){const i=n.reduce((t,n)=>{const i=e.getScaleComponent(n);if(i){const r=i.get("type"),o=e.vgField(n,{expr:"datum"});o&&tu(r)&&(t[o]=!0)}return t},{}),r=oo(i);if(r.length>0){const e=t?"||":"&&";return r.map(e=>Cf(e,t)).join(` ${e} `)}return}(e,{channels:["x","y"]});if(t)return{defined:{signal:t}}}return{}}function Zf(e,t){if(void 0!==t)return{[e]:{value:t}}}const Kf={has:e=>"interval"!==e.type&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName("voronoi")},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(Eo(o))return as(is.nearestNotSupportForContinuous(o)),n;const a={name:e.getName("voronoi"),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0}},Mf(e,{reactiveGeom:!0}))},transform:[{type:"voronoi",x:{expr:i||!r?"datum.datum.x || 0":"0"},y:{expr:r||!i?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let s=0,u=!1;return n.forEach((t,n)=>{var i;const r=null!==(i=t.name)&&void 0!==i?i:"";r===e.component.mark[0].name?s=n:r.indexOf("voronoi")>=0&&(u=!0)}),u||n.splice(s+1,0,a),n}};class ed{constructor(e,t){this.debugName=t,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,t){this._children.indexOf(e)>-1?console.warn("Attempt to add the same child twice."):void 0!==t?this._children.splice(t,0,e):this._children.push(e)}removeChild(e){const t=this._children.indexOf(e);return this._children.splice(t,1),t}remove(){let e=this._parent.removeChild(this);for(const t of this._children)t._parent=this._parent,this._parent.addChild(t,e++)}insertAsParentOf(e){const t=e.parent;t.removeChild(this),this.parent=t,e.parent=this}swapWithParent(){const e=this._parent,t=e.parent;for(const t of this._children)t.parent=e;this._children=[],e.removeChild(this),e.parent.removeChild(e),this.parent=t,e.parent=this}}class td extends ed{constructor(e,t,n,i){super(e,t),this.type=n,this.refCounts=i,this._source=this._name=t,!this.refCounts||this._name in this.refCounts||(this.refCounts[this._name]=0)}clone(){const e=new this.constructor;return e.debugName="clone_"+this.debugName,e._source=this._source,e._name="clone_"+this._name,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}dependentFields(){return new Set}producedFields(){return new Set}hash(){return void 0===this._hash&&(this._hash=`Output ${function(e){const t=++yo;return e?String(e)+t:t}()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}class nd extends ed{constructor(e,t){super(e),this.formula=t}clone(){return new nd(null,Hr(this.formula))}static makeFromEncoding(e,t){const n=t.reduceFieldDef((e,n,i)=>{const{field:r,timeUnit:o}=n,a=bm(t)?t.encoding[Ca(i)]:void 0,s=bm(t)&&$u(i,n,a,t.markDef,t.config);if(o){const t=Ru(n,{forAs:!0});e[Xr({as:t,field:r,timeUnit:o})]=Object.assign({as:t,field:r,timeUnit:o},s?{band:!0}:{})}return e},{});return 0===oo(n).length?null:new nd(e,n)}static makeFromTransform(e,t){const n=Object.assign({},t),{timeUnit:i}=n,r=w(n,["timeUnit"]),o=Ds(i),a=Object.assign(Object.assign({},r),{timeUnit:o});return new nd(e,{[Xr(a)]:a})}merge(e){this.formula=Object.assign({},this.formula);for(const t in e.formula)this.formula[t]&&!e.formula[t].band||(this.formula[t]=e.formula[t]);for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}producedFields(){return new Set(ao(this.formula).map(e=>e.as))}dependentFields(){return new Set(ao(this.formula).map(e=>e.field))}hash(){return`TimeUnit ${Xr(this.formula)}`}assemble(){const e=[];for(const t of ao(this.formula)){const{field:n,as:i,timeUnit:r}=t,o=Ds(r),{unit:a,utc:s}=o,u=w(o,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:n,type:"timeunit"},a?{units:As(a)}:{}),s?{timezone:"utc"}:{}),u),{as:[i,`${i}_end`]}))}return e}}class id{constructor(...e){this.items=e,this.hasChannel={},this.hasField={}}}const rd={has:e=>"single"===e.type&&"global"===e.resolve&&e.bind&&"scales"!==e.bind&&!Xc(e.bind),parse:(e,t,n,i)=>{i.on||delete t.events,i.clear||delete t.clear},topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,a=t.init&&t.init[0],s=Kf.has(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach((e,r)=>{var c,l;const f=uo(`${i}_${e.field}`);n.filter(e=>e.name===f).length||n.unshift(Object.assign(Object.assign({name:f},a?{init:vd(a[r])}:{value:null}),{on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${s}[${u(e.field)}] : null`}]:[],bind:null!==(l=null!==(c=o[e.field])&&void 0!==c?c:o[e.channel])&&void 0!==l?l:o}))}),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.filter(e=>e.name===i+kd)[0],a=i+"_tuple_fields",s=r.items.map(e=>uo(`${i}_${e.field}`)),u=s.map(e=>`${e} !== null`).join(" && ");return s.length&&(o.update=`${u} ? {fields: ${a}, values: [${s.join(", ")}]} : null`),delete o.value,delete o.on,n}},od={has:e=>"multi"===e.type&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+"_toggle",value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+kd,i=t.name+"_toggle";return`${i} ? null : ${n}, `+("global"===t.resolve?`${i} ? null : true, `:`${i} ? null : {unit: ${Md(e)}}, `)+`${i} ? ${n} : null`}},ad={has:e=>void 0!==e.clear&&!1!==e.clear,parse:(e,t,n)=>{n.clear&&(t.clear=s(n.clear)?ff(n.clear,"scope"):n.clear)},topLevelSignals:(e,t,n)=>(rd.has(t)&&t.project.items.forEach(e=>{const i=n.findIndex(n=>n.name===uo(`${t.name}_${e.field}`));-1!==i&&n[i].on.push({events:t.clear,update:"null"})}),n),signals:(e,t,n)=>{function i(e,i){-1!==e&&n[e].on&&n[e].on.push({events:t.clear,update:i})}if("interval"===t.type)t.project.items.forEach(e=>{const t=n.findIndex(t=>t.name===e.signals.visual);if(i(t,"[0, 0]"),-1===t){i(n.findIndex(t=>t.name===e.signals.data),"null")}});else{let e=n.findIndex(e=>e.name===t.name+kd);i(e,"null"),od.has(t)&&(e=n.findIndex(e=>e.name===t.name+"_toggle"),i(e,"false"))}return n}},sd={has:e=>"interval"===e.type&&"global"===e.resolve&&e.bind&&"scales"===e.bind,parse:(e,t)=>{const n=t.scales=[];for(const i of t.project.items){const r=i.channel;if(!_a(r))continue;const o=e.getScaleComponent(r),a=o?o.get("type"):void 0;if(!o||!tu(a)){as(is.SCALE_BINDINGS_CONTINUOUS);continue}const s={selection:t.name,field:i.field};if(o.set("selectionExtent",s,!0),n.push(i),e.repeater&&e.repeater.row===e.repeater.column){e.getScaleComponent(r===Jo?Qo:Jo).set("selectionExtent",s,!0)}}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter(e=>0===n.filter(t=>t.name===e.signals.data).length);if(!e.parent||cd(e)||0===i.length)return n;const r=n.filter(e=>e.name===t.name)[0];let o=r.update;if(o.indexOf(Sd)>=0)r.update=`{${i.map(e=>`${u(e.field)}: ${e.signals.data}`).join(", ")}}`;else{for(const e of i){const t=`${u(e.field)}: ${e.signals.data}`;o.indexOf(t)<0&&(o=`${o.substring(0,o.length-1)}, ${t}}`)}r.update=o}return n.concat(i.map(e=>({name:e.signals.data})))},signals:(e,t,n)=>{if(e.parent&&!cd(e))for(const e of t.scales){const t=n.filter(t=>t.name===e.signals.data)[0];t.push="outer",delete t.value,delete t.update}return n}};function ud(e,t){return`domain(${u(e.scaleName(t))})`}function cd(e){var t;return e.parent&&wm(e.parent)&&(null!==(t=!e.parent.parent)&&void 0!==t?t:cd(e.parent.parent))}const ld={has:e=>{const t="global"===e.resolve&&e.bind&&Xc(e.bind),n=1===e.project.items.length&&"_vgsid_"!==e.project.items[0].field;return t&&!n&&as(is.LEGEND_BINDINGS_PROJECT_LENGTH),t&&n},parse:(e,t,n,i)=>{var r;if(i.on||delete t.events,i.clear||delete t.clear,i.on||i.clear){const e='event.item && indexof(event.item.mark.role, "legend") < 0';for(const n of t.events)n.filter=h(null!==(r=n.filter)&&void 0!==r?r:[]),n.filter.indexOf(e)<0&&n.filter.push(e)}const o=Jc(t.bind)?t.bind.legend:"click",a=s(o)?ff(o,"view"):h(o);t.bind={legend:{merge:a}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=Jc(t.bind)&&t.bind.legend,o=e=>t=>{const n=Hr(t);return n.markname=e,n};for(const e of t.project.items){if(!e.hasLegend)continue;const a=`${uo(e.field)}_legend`,s=`${i}_${a}`;if(0===n.filter(e=>e.name===s).length){const e=r.merge.map(o(`${a}_symbols`)).concat(r.merge.map(o(`${a}_labels`))).concat(r.merge.map(o(`${a}_entries`)));n.unshift(Object.assign(Object.assign({name:s},t.init?{}:{value:null}),{on:[{events:e,update:"datum.value || item().items[0].items[0].datum.value",force:!0},{events:r.merge,update:`!event.item || !datum ? null : ${s}`,force:!0}]}))}}return n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find(e=>e.name===i+kd),a=i+"_tuple_fields",s=r.items.filter(e=>e.hasLegend).map(e=>uo(`${i}_${uo(e.field)}_legend`)),u=`${s.map(e=>`${e} !== null`).join(" && ")} ? {fields: ${a}, values: [${s.join(", ")}]} : null`;t.events&&s.length>0?o.on.push({events:s.map(e=>({signal:e})),update:u}):s.length>0&&(o.update=u,delete o.value,delete o.on);const c=n.find(e=>e.name===i+"_toggle"),l=Jc(t.bind)&&t.bind.legend;return c&&(t.events?c.on.push(Object.assign(Object.assign({},c.on[0]),{events:l})):c.on[0].events=l),n}};const fd="_translate_delta",dd={has:e=>"interval"===e.type&&e.translate,signals:(e,t,n)=>{const i=t.name,r=sd.has(t),o=i+"_translate_anchor",{x:a,y:s}=t.project.hasChannel;let u=ff(t.translate,"scope");return r||(u=u.map(e=>(e.between[0].markname=i+wd,e))),n.push({name:o,value:{},on:[{events:u.map(e=>e.between[0]),update:"{x: x(unit), y: y(unit)"+(void 0!==a?", extent_x: "+(r?ud(e,Jo):`slice(${a.signals.visual})`):"")+(void 0!==s?", extent_y: "+(r?ud(e,Qo):`slice(${s.signals.visual})`):"")+"}"}]},{name:i+fd,value:{},on:[{events:u,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),void 0!==a&&gd(e,t,a,"width",n),void 0!==s&&gd(e,t,s,"height",n),n}};function gd(e,t,n,i,r){var o;const a=t.name,s=a+"_translate_anchor",u=a+fd,c=n.channel,l=sd.has(t),f=r.filter(e=>e.name===n.signals[l?"data":"visual"])[0],d=e.getSizeSignalRef(i).signal,g=e.getScaleComponent(c),p=g.get("type"),h=`${s}.extent_${c}`,m=`${l?"log"===p?"panLog":"pow"===p?"panPow":"panLinear":"panLinear"}(${h}, ${`${l&&c===Jo?"-":""}${u}.${c} / `+(l?`${d}`:`span(${h})`)}`+(l&&"pow"===p?`, ${null!==(o=g.get("exponent"))&&void 0!==o?o:1}`:"")+")";f.on.push({events:{signal:u},update:l?m:`clampRange(${m}, 0, ${d})`})}const pd={has:e=>"interval"===e.type&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=sd.has(t),o=i+"_zoom_delta",{x:a,y:s}=t.project.hasChannel,c=u(e.scaleName(Jo)),l=u(e.scaleName(Qo));let f=ff(t.zoom,"scope");return r||(f=f.map(e=>(e.markname=i+wd,e))),n.push({name:i+"_zoom_anchor",on:[{events:f,update:r?"{"+[c?`x: invert(${c}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(e=>!!e).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:f,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),void 0!==a&&hd(e,t,a,"width",n),void 0!==s&&hd(e,t,s,"height",n),n}};function hd(e,t,n,i,r){var o;const a=t.name,s=n.channel,u=sd.has(t),c=r.filter(e=>e.name===n.signals[u?"data":"visual"])[0],l=e.getSizeSignalRef(i).signal,f=e.getScaleComponent(s),d=f.get("type"),g=u?ud(e,s):c.name,p=a+"_zoom_delta",h=`${u?"log"===d?"zoomLog":"pow"===d?"zoomPow":"zoomLinear":"zoomLinear"}(${g}, ${`${a}_zoom_anchor.${s}`}, ${p}`+(u&&"pow"===d?`, ${null!==(o=f.get("exponent"))&&void 0!==o?o:1}`:"")+")";c.on.push({events:{signal:p},update:u?h:`clampRange(${h}, 0, ${l})`})}const md=[{has:()=>!0,parse:(e,t,n)=>{var i,r,o;const a=t.name,s=null!==(i=t.project)&&void 0!==i?i:t.project=new id,u={},c={},l=new Set,f=(e,t)=>{const n="visual"===t?e.channel:e.field;let i=uo(`${a}_${n}`);for(let e=1;l.has(i);e++)i=uo(`${a}_${n}_${e}`);return l.add(i),{[t]:i}};if(!n.fields&&!n.encodings){const t=e.config.selection[n.type];if(n.init)for(const e of h(n.init))for(const i of oo(e))ya[i]?(n.encodings||(n.encodings=[])).push(i):"interval"===n.type?(as('Interval selections should be initialized using "x" and/or "y" keys.'),n.encodings=t.encodings):(n.fields||(n.fields=[])).push(i);else n.encodings=t.encodings,n.fields=t.fields}for(const e of null!==(r=n.fields)&&void 0!==r?r:[]){const t={type:"E",field:e};t.signals=Object.assign({},f(t,"data")),s.items.push(t),s.hasField[e]=t}for(const i of null!==(o=n.encodings)&&void 0!==o?o:[]){const n=e.fieldDef(i);if(n){let r=n.field;if(n.aggregate){as(is.cannotProjectAggregate(i,n.aggregate));continue}if(!r){as(is.cannotProjectOnChannelWithoutField(i));continue}if(n.timeUnit){r=e.vgField(i);const t={timeUnit:n.timeUnit,as:r,field:n.field};c[Xr(t)]=t}if(!u[r]){let o="E";if("interval"===t.type){tu(e.getScaleComponent(i).get("type"))&&(o="R")}else n.bin&&(o="R-RE");const a={field:r,channel:i,type:o};a.signals=Object.assign(Object.assign({},f(a,"data")),f(a,"visual")),s.items.push(u[r]=a),s.hasField[r]=s.hasChannel[i]=u[r]}}else as(is.cannotProjectOnChannelWithoutField(i))}if(n.init){const e=e=>s.items.map(t=>void 0!==e[t.channel]?e[t.channel]:e[t.field]);if("interval"===n.type)t.init=e(n.init);else{const i=h(n.init);t.init=i.map(e)}}oo(c).length>0&&(s.timeUnit=new nd(null,c))},signals:(e,t,n)=>{const i=t.name+"_tuple_fields";return n.filter(e=>e.name===i).length>0?n:n.concat({name:i,value:t.project.items.map(e=>{const t=w(e,["signals","hasLegend"]),n=Hr(t);return n.field=ho(n.field),n})})}},od,sd,ld,dd,pd,rd,Kf,ad];function bd(e,t){for(const n of md)n.has(e)&&t(n)}function vd(e,t=!0,n=l){if(o(e)){const i=e.map(e=>vd(e,t,n));return t?`[${i.join(", ")}]`:i}return ss(e)?n(t?gs(e):function(e){const t=ds(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}(e)):t?n(JSON.stringify(e)):e}function yd(e,t){return Nd(e,(n,i)=>{t=i.marks?i.marks(e,n,t):t,bd(n,i=>{i.marks&&(t=i.marks(e,n,t))})}),t}function xd(e){return e.map(e=>(e.on&&!e.on.length&&delete e.on,e))}const wd="_brush",Ad={signals:(e,t)=>{const n=t.name,i=n+"_tuple_fields",r=sd.has(t),o=[],a=[],s=[];if(t.translate&&!r){const e=`!event.item || event.item.mark.name !== ${u(n+wd)}`;Od(t,(t,n)=>{var i;const r=h(null!==(i=n.between[0].filter)&&void 0!==i?i:n.between[0].filter=[]);return r.indexOf(e)<0&&r.push(e),t})}t.project.items.forEach((n,i)=>{const r=n.channel;if(r!==Jo&&r!==Qo)return void as("Interval selections only support x and y encoding channels.");const c=t.init?t.init[i]:null,l=function(e,t,n,i){const r=n.channel,o=n.signals.visual,a=n.signals.data,s=sd.has(t),c=u(e.scaleName(r)),l=e.getScaleComponent(r),f=l?l.get("type"):void 0,d=e=>`scale(${c}, ${e})`,g=e.getSizeSignalRef(r===Jo?"width":"height").signal,p=`${r}(unit)`,h=Od(t,(e,t)=>[...e,{events:t.between[0],update:`[${p}, ${p}]`},{events:t,update:`[${o}[0], clamp(${p}, 0, ${g})]`}]);return h.push({events:{signal:t.name+"_scale_trigger"},update:tu(f)?`[${d(`${a}[0]`)}, ${d(`${a}[1]`)}]`:"[0, 0]"}),s?[{name:a,on:[]}]:[Object.assign(Object.assign({name:o},i?{init:vd(i,!0,d)}:{value:[]}),{on:h}),Object.assign(Object.assign({name:a},i?{init:vd(i)}:{}),{on:[{events:{signal:o},update:`${o}[0] === ${o}[1] ? null : invert(${c}, ${o})`}]})]}(e,t,n,c),f=n.signals.data,d=n.signals.visual,g=u(e.scaleName(r)),p=tu(e.getScaleComponent(r).get("type"))?"+":"";o.push(...l),a.push(f),s.push({scaleName:e.scaleName(r),expr:`(!isArray(${f}) || `+`(${p}invert(${g}, ${d})[0] === ${p}${f}[0] && `+`${p}invert(${g}, ${d})[1] === ${p}${f}[1]))`})}),r||o.push({name:n+"_scale_trigger",value:{},on:[{events:s.map(e=>({scale:e.scaleName})),update:s.map(e=>e.expr).join(" && ")+` ? ${n+"_scale_trigger"} : {}`}]});const c=t.init,l=`unit: ${Md(e)}, fields: ${i}, values`;return o.concat(Object.assign(Object.assign({name:n+kd},c?{init:`{${l}: ${vd(c)}}`}:{}),{on:[{events:[{signal:a.join(" || ")}],update:a.join(" && ")+` ? {${l}: [${a}]} : null`}]}))},modifyExpr:(e,t)=>t.name+kd+", "+("global"===t.resolve?"true":`{unit: ${Md(e)}}`),marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.hasChannel,a=r&&r.signals.visual,s=o&&o.signals.visual,c=`data(${u(t.name+jd)})`;if(sd.has(t))return n;const l={x:void 0!==r?{signal:`${a}[0]`}:{value:0},y:void 0!==o?{signal:`${s}[0]`}:{value:0},x2:void 0!==r?{signal:`${a}[1]`}:{field:{group:"width"}},y2:void 0!==o?{signal:`${s}[1]`}:{field:{group:"height"}}};if("global"===t.resolve)for(const t of oo(l))l[t]=[Object.assign({test:`${c}.length && ${c}[0].unit === ${Md(e)}`},l[t]),{value:0}];const f=t.mark,{fill:d,fillOpacity:g,cursor:p}=f,h=w(f,["fill","fillOpacity","cursor"]),m=oo(h).reduce((e,t)=>(e[t]=[{test:[void 0!==r&&`${a}[0] !== ${a}[1]`,void 0!==o&&`${s}[0] !== ${s}[1]`].filter(e=>e).join(" && "),value:h[t]},{value:null}],e),{});return[{name:i+wd+"_bg",type:"rect",clip:!0,encode:{enter:{fill:{value:d},fillOpacity:{value:g}},update:l}},...n,{name:i+wd,type:"rect",clip:!0,encode:{enter:Object.assign(Object.assign({},p?{cursor:{value:p}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},l),m)}}]}};function Od(e,t){return e.events.reduce((e,n)=>n.between?t(e,n):(as(`${n} is not an ordered event stream for interval selections.`),e),[])}function Cd(e,t){const n=t.name,i=n+"_tuple_fields",r=t.project,o="(item().isVoronoi ? datum.datum : datum)",a=r.items.map(t=>{const n=e.fieldDef(t.channel);return n&&n.bin?`[${o}[${u(e.vgField(t.channel,{}))}], `+`${o}[${u(e.vgField(t.channel,{binSuffix:"end"}))}]]`:`${o}[${u(t.field)}]`}).join(", "),s=`unit: ${Md(e)}, fields: ${i}, values`,c=t.events;return[{name:n+kd,on:c?[{events:c,update:`datum && item().mark.marktype !== 'group' ? {${s}: [${a}]} : null`,force:!0}]:[]}]}const Fd={signals:Cd,modifyExpr:(e,t)=>t.name+kd+", "+("global"===t.resolve?"null":`{unit: ${Md(e)}}`)},Dd={signals:Cd,modifyExpr:(e,t)=>t.name+kd+", "+("global"===t.resolve?"true":`{unit: ${Md(e)}}`)},jd="_store",kd="_tuple",Ed="_modify",Sd="vlSelectionResolve",$d={single:Dd,multi:Fd,interval:Ad};function Nd(e,t){const n=e.component.selection;if(n)for(const e of ao(n)){if(!0===t(e,$d[e.type]))break}}function Md(e,{escape:t}={escape:!0}){let n=t?u(e.name):e.name;const i=function(e){let t=e.parent;for(;t&&!vm(t);)t=t.parent;return t}(e);if(i){const{facet:e}=i;for(const t of ha)e[t]&&(n+=` + '__facet_${t}_' + (facet[${u(i.vgField(t))}])`)}return n}function Bd(e){let t=!1;return Nd(e,e=>{t=t||e.project.items.some(e=>"_vgsid_"===e.field)}),t}var _d,Td,zd,Ud,Pd;function Ld(e){this.type=e}Ld.prototype.visit=function(e){var t,n,i;if(e(this))return 1;for(n=0,i=(t=function(e){switch(e.type){case"ArrayExpression":return e.elements;case"BinaryExpression":case"LogicalExpression":return[e.left,e.right];case"CallExpression":var t=e.arguments.slice();return t.unshift(e.callee),t;case"ConditionalExpression":return[e.test,e.consequent,e.alternate];case"MemberExpression":return[e.object,e.property];case"ObjectExpression":return e.properties;case"Property":return[e.key,e.value];case"UnaryExpression":return[e.argument];case"Identifier":case"Literal":case"RawCode":default:return[]}}(this)).length;n<i;++n)if(t[n].visit(e))return 1};(_d={})[1]="Boolean",_d[2]="<end>",_d[3]="Identifier",_d[4]="Keyword",_d[5]="Null",_d[6]="Numeric",_d[7]="Punctuator",_d[8]="String",_d[9]="RegularExpression";var Rd=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]"),qd=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 Id(e,t){if(!e)throw new Error("ASSERT: "+t)}function Wd(e){return e>=48&&e<=57}function Hd(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function Gd(e){return"01234567".indexOf(e)>=0}function Yd(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].indexOf(e)>=0}function Vd(e){return 10===e||13===e||8232===e||8233===e}function Xd(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&Rd.test(String.fromCharCode(e))}function Jd(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&qd.test(String.fromCharCode(e))}var Qd={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 Zd(){for(var e;zd<Ud&&(Yd(e=Td.charCodeAt(zd))||Vd(e));)++zd}function Kd(e){var t,n,i,r=0;for(n="u"===e?4:2,t=0;t<n;++t)zd<Ud&&Hd(Td[zd])?(i=Td[zd++],r=16*r+"0123456789abcdef".indexOf(i.toLowerCase())):hg({},"Unexpected token %0","ILLEGAL");return String.fromCharCode(r)}function eg(){var e,t,n,i;for(t=0,"}"===(e=Td[zd])&&hg({},"Unexpected token %0","ILLEGAL");zd<Ud&&Hd(e=Td[zd++]);)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&hg({},"Unexpected token %0","ILLEGAL"),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),i=56320+(t-65536&1023),String.fromCharCode(n,i))}function tg(){var e,t;for(e=Td.charCodeAt(zd++),t=String.fromCharCode(e),92===e&&(117!==Td.charCodeAt(zd)&&hg({},"Unexpected token %0","ILLEGAL"),++zd,(e=Kd("u"))&&"\\"!==e&&Xd(e.charCodeAt(0))||hg({},"Unexpected token %0","ILLEGAL"),t=e);zd<Ud&&Jd(e=Td.charCodeAt(zd));)++zd,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==Td.charCodeAt(zd)&&hg({},"Unexpected token %0","ILLEGAL"),++zd,(e=Kd("u"))&&"\\"!==e&&Jd(e.charCodeAt(0))||hg({},"Unexpected token %0","ILLEGAL"),t+=e);return t}function ng(){var e,t;return e=zd,{type:1===(t=92===Td.charCodeAt(zd)?tg():function(){var e,t;for(e=zd++;zd<Ud;){if(92===(t=Td.charCodeAt(zd)))return zd=e,tg();if(!Jd(t))break;++zd}return Td.slice(e,zd)}()).length?3:Qd.hasOwnProperty(t)?4:"null"===t?5:"true"===t||"false"===t?1:3,value:t,start:e,end:zd}}function ig(){var e,t,n,i,r=zd,o=Td.charCodeAt(zd),a=Td[zd];switch(o){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++zd,{type:7,value:String.fromCharCode(o),start:r,end:zd};default:if(61===(e=Td.charCodeAt(zd+1)))switch(o){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return zd+=2,{type:7,value:String.fromCharCode(o)+String.fromCharCode(e),start:r,end:zd};case 33:case 61:return zd+=2,61===Td.charCodeAt(zd)&&++zd,{type:7,value:Td.slice(r,zd),start:r,end:zd}}}return">>>="===(i=Td.substr(zd,4))?{type:7,value:i,start:r,end:zd+=4}:">>>"===(n=i.substr(0,3))||"<<="===n||">>="===n?{type:7,value:n,start:r,end:zd+=3}:a===(t=n.substr(0,2))[1]&&"+-<>&|".indexOf(a)>=0||"=>"===t?{type:7,value:t,start:r,end:zd+=2}:"<>=!+-*%&|^/".indexOf(a)>=0?{type:7,value:a,start:r,end:++zd}:void hg({},"Unexpected token %0","ILLEGAL")}function rg(){var e,t,n;if(Id(Wd((n=Td[zd]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),t=zd,e="","."!==n){if(e=Td[zd++],n=Td[zd],"0"===e){if("x"===n||"X"===n)return++zd,function(e){for(var t="";zd<Ud&&Hd(Td[zd]);)t+=Td[zd++];return 0===t.length&&hg({},"Unexpected token %0","ILLEGAL"),Xd(Td.charCodeAt(zd))&&hg({},"Unexpected token %0","ILLEGAL"),{type:6,value:parseInt("0x"+t,16),start:e,end:zd}}(t);if(Gd(n))return function(e){for(var t="0"+Td[zd++];zd<Ud&&Gd(Td[zd]);)t+=Td[zd++];return(Xd(Td.charCodeAt(zd))||Wd(Td.charCodeAt(zd)))&&hg({},"Unexpected token %0","ILLEGAL"),{type:6,value:parseInt(t,8),octal:!0,start:e,end:zd}}(t);n&&Wd(n.charCodeAt(0))&&hg({},"Unexpected token %0","ILLEGAL")}for(;Wd(Td.charCodeAt(zd));)e+=Td[zd++];n=Td[zd]}if("."===n){for(e+=Td[zd++];Wd(Td.charCodeAt(zd));)e+=Td[zd++];n=Td[zd]}if("e"===n||"E"===n)if(e+=Td[zd++],"+"!==(n=Td[zd])&&"-"!==n||(e+=Td[zd++]),Wd(Td.charCodeAt(zd)))for(;Wd(Td.charCodeAt(zd));)e+=Td[zd++];else hg({},"Unexpected token %0","ILLEGAL");return Xd(Td.charCodeAt(zd))&&hg({},"Unexpected token %0","ILLEGAL"),{type:6,value:parseFloat(e),start:t,end:zd}}function og(){var e,t,n,i;return Pd=null,Zd(),e=zd,t=function(){var e,t,n,i;for(Id("/"===(e=Td[zd]),"Regular expression literal must start with a slash"),t=Td[zd++],n=!1,i=!1;zd<Ud;)if(t+=e=Td[zd++],"\\"===e)Vd((e=Td[zd++]).charCodeAt(0))&&hg({},"Invalid regular expression: missing /"),t+=e;else if(Vd(e.charCodeAt(0)))hg({},"Invalid regular expression: missing /");else if(n)"]"===e&&(n=!1);else{if("/"===e){i=!0;break}"["===e&&(n=!0)}return i||hg({},"Invalid regular expression: missing /"),{value:t.substr(1,t.length-2),literal:t}}(),n=function(){var e,t,n;for(t="",n="";zd<Ud&&Jd((e=Td[zd]).charCodeAt(0));)++zd,"\\"===e&&zd<Ud?hg({},"Unexpected token %0","ILLEGAL"):(n+=e,t+=e);return n.search(/[^gimuy]/g)>=0&&hg({},"Invalid regular expression",n),{value:n,literal:t}}(),i=function(e,t){var n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(function(e,t){if(parseInt(t,16)<=1114111)return"x";hg({},"Invalid regular expression")})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch(e){hg({},"Invalid regular expression")}try{return new RegExp(e,t)}catch(e){return null}}(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:zd}}function ag(){var e;return Zd(),zd>=Ud?{type:2,start:zd,end:zd}:Xd(e=Td.charCodeAt(zd))?ng():40===e||41===e||59===e?ig():39===e||34===e?function(){var e,t,n,i,r="",o=!1;for(Id("'"===(e=Td[zd])||'"'===e,"String literal must starts with a quote"),t=zd,++zd;zd<Ud;){if((n=Td[zd++])===e){e="";break}if("\\"===n)if((n=Td[zd++])&&Vd(n.charCodeAt(0)))"\r"===n&&"\n"===Td[zd]&&++zd;else switch(n){case"u":case"x":"{"===Td[zd]?(++zd,r+=eg()):r+=Kd(n);break;case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+="\t";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;default:Gd(n)?(0!==(i="01234567".indexOf(n))&&(o=!0),zd<Ud&&Gd(Td[zd])&&(o=!0,i=8*i+"01234567".indexOf(Td[zd++]),"0123".indexOf(n)>=0&&zd<Ud&&Gd(Td[zd])&&(i=8*i+"01234567".indexOf(Td[zd++]))),r+=String.fromCharCode(i)):r+=n}else{if(Vd(n.charCodeAt(0)))break;r+=n}}return""!==e&&hg({},"Unexpected token %0","ILLEGAL"),{type:8,value:r,octal:o,start:t,end:zd}}():46===e?Wd(Td.charCodeAt(zd+1))?rg():ig():Wd(e)?rg():ig()}function sg(){var e;return zd=(e=Pd).end,Pd=ag(),zd=e.end,e}function ug(){var e;e=zd,Pd=ag(),zd=e}function cg(e,t,n){var i=new Ld("||"===e||"&&"===e?"LogicalExpression":"BinaryExpression");return i.operator=e,i.left=t,i.right=n,i}function lg(e,t){var n=new Ld("CallExpression");return n.callee=e,n.arguments=t,n}function fg(e){var t=new Ld("Identifier");return t.name=e,t}function dg(e){var t=new Ld("Literal");return t.value=e.value,t.raw=Td.slice(e.start,e.end),e.regex&&("//"===t.raw&&(t.raw="/(?:)/"),t.regex=e.regex),t}function gg(e,t,n){var i=new Ld("MemberExpression");return i.computed="["===e,i.object=t,i.property=n,i.computed||(n.member=!0),i}function pg(e,t,n){var i=new Ld("Property");return i.key=t,i.value=n,i.kind=e,i}function hg(e,t){var n,i=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,(function(e,t){return Id(t<i.length,"Message reference must be in range"),i[t]}));throw(n=new Error(r)).index=zd,n.description=r,n}function mg(e){2===e.type&&hg(e,"Unexpected end of input"),6===e.type&&hg(e,"Unexpected number"),8===e.type&&hg(e,"Unexpected string"),3===e.type&&hg(e,"Unexpected identifier"),4===e.type&&hg(e,"Unexpected reserved word"),hg(e,"Unexpected token %0",e.value)}function bg(e){var t=sg();7===t.type&&t.value===e||mg(t)}function vg(e){return 7===Pd.type&&Pd.value===e}function yg(e){return 4===Pd.type&&Pd.value===e}function xg(){var e=[];for(zd=Pd.start,bg("[");!vg("]");)vg(",")?(sg(),e.push(null)):(e.push(Ng()),vg("]")||bg(","));return sg(),function(e){var t=new Ld("ArrayExpression");return t.elements=e,t}(e)}function wg(){var e;return zd=Pd.start,8===(e=sg()).type||6===e.type?(e.octal&&hg(e,"Octal literals are not allowed in strict mode."),dg(e)):fg(e.value)}function Ag(){var e,t,n;return zd=Pd.start,3===(e=Pd).type?(n=wg(),bg(":"),pg("init",n,Ng())):2!==e.type&&7!==e.type?(t=wg(),bg(":"),pg("init",t,Ng())):void mg(e)}function Og(){var e,t,n=[],i={},r=String;for(zd=Pd.start,bg("{");!vg("}");)t="$"+("Identifier"===(e=Ag()).key.type?e.key.name:r(e.key.value)),Object.prototype.hasOwnProperty.call(i,t)?hg({},"Duplicate data property in object literal not allowed in strict mode"):i[t]=!0,n.push(e),vg("}")||bg(",");return bg("}"),function(e){var t=new Ld("ObjectExpression");return t.properties=e,t}(n)}var Cg={if:1,this:1};function Fg(){var e,t,n;if(vg("("))return function(){var e;return bg("("),e=Mg(),bg(")"),e}();if(vg("["))return xg();if(vg("{"))return Og();if(e=Pd.type,zd=Pd.start,3===e||Cg[Pd.value])n=fg(sg().value);else if(8===e||6===e)Pd.octal&&hg(Pd,"Octal literals are not allowed in strict mode."),n=dg(sg());else{if(4===e)throw new Error("Disabled.");1===e?((t=sg()).value="true"===t.value,n=dg(t)):5===e?((t=sg()).value=null,n=dg(t)):vg("/")||vg("/=")?(n=dg(og()),ug()):mg(sg())}return n}function Dg(){var e=[];if(bg("("),!vg(")"))for(;zd<Ud&&(e.push(Ng()),!vg(")"));)bg(",");return bg(")"),e}function jg(){return bg("."),zd=Pd.start,function(e){return 3===e.type||4===e.type||1===e.type||5===e.type}(e=sg())||mg(e),fg(e.value);var e}function kg(){var e;return bg("["),e=Mg(),bg("]"),e}function Eg(){var e=function(){var e;for(e=Fg();;)if(vg("."))e=gg(".",e,jg());else if(vg("("))e=lg(e,Dg());else{if(!vg("["))break;e=gg("[",e,kg())}return e}();if(7===Pd.type&&(vg("++")||vg("--")))throw new Error("Disabled.");return e}function Sg(){var e,t,n,i,r;if(7!==Pd.type&&4!==Pd.type)t=Eg();else{if(vg("++")||vg("--"))throw new Error("Disabled.");if(vg("+")||vg("-")||vg("~")||vg("!"))e=sg(),t=Sg(),n=e.value,i=t,(r=new Ld("UnaryExpression")).operator=n,r.argument=i,r.prefix=!0,t=r;else{if(yg("delete")||yg("void")||yg("typeof"))throw new Error("Disabled.");t=Eg()}}return t}function $g(e){var t=0;if(7!==e.type&&4!==e.type)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 Ng(){var e,t;return e=function(){var e,t,n,i,r,o,a,s,u,c;if(e=Pd,u=Sg(),0===(r=$g(i=Pd)))return u;for(i.prec=r,sg(),t=[e,Pd],o=[u,i,a=Sg()];(r=$g(Pd))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,u=o.pop(),t.pop(),n=cg(s,u,a),o.push(n);(i=sg()).prec=r,o.push(i),t.push(Pd),n=Sg(),o.push(n)}for(n=o[c=o.length-1],t.pop();c>1;)t.pop(),n=cg(o[c-1].value,o[c-2],n),c-=2;return n}(),vg("?")&&(sg(),t=Ng(),bg(":"),e=function(e,t,n){var i=new Ld("ConditionalExpression");return i.test=e,i.consequent=t,i.alternate=n,i}(e,t,Ng())),e}function Mg(){var e=Ng();if(vg(","))throw new Error("Disabled.");return e}function Bg(e,t,n){return e.fields=t||[],e.fname=n,e}function _g(e){throw Error(e)}var Tg=Array.isArray;function zg(e){return Tg(e)?"["+e.map(zg)+"]":(t=e)===Object(t)||function(e){return"string"==typeof e}(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e;var t}var Ug=[];(function(e,t){var n=function(e){var t,n,i,r=[],o=null,a=0,s=e.length,u="";function c(){r.push(u+e.substring(t,n)),u="",t=n+1}for(e+="",t=n=0;n<s;++n)if("\\"===(i=e[n]))u+=e.substring(t,n),u+=e.substring(++n,++n),t=n;else if(i===o)c(),o=null,a=-1;else{if(o)continue;t===a&&'"'===i||t===a&&"'"===i?(t=n+1,o=i):"."!==i||a?"["===i?(n>t&&c(),a=t=n+1):"]"===i&&(a||_g("Access path missing open bracket: "+e),a>0&&c(),a=0,t=n+1):n>t?c():t=n+1}return a&&_g("Access path missing closing bracket: "+e),o&&_g("Access path missing closing quote: "+e),n>t&&(n++,c()),r}(e),i="return _["+n.map(zg).join("][")+"];";Bg(Function("_",i),[e=1===n.length?n[0]:e],t||e)})("id"),Bg((function(e){return e}),Ug,"identity"),Bg((function(){return 0}),Ug,"zero"),Bg((function(){return 1}),Ug,"one"),Bg((function(){return!0}),Ug,"true"),Bg((function(){return!1}),Ug,"false");function Pg(e){const t=function(e){zd=0,Ud=(Td=e).length,Pd=null,ug();var t=Mg();if(2!==Pd.type)throw new Error("Unexpect token after expression.");return t}(e),n=new Set;return t.visit(e=>{"MemberExpression"===e.type&&function e(t){return"MemberExpression"===t.object.type?e(t.object):"datum"===t.object.name}(e)&&n.add(function e(t){const n=[];return"Identifier"===t.type?[t.name]:"Literal"===t.type?[t.value]:("MemberExpression"===t.type&&(n.push(...e(t.object)),n.push(...e(t.property))),n)}(e).slice(1).join("."))}),n}class Lg extends ed{constructor(e,t,n){super(e),this.model=t,this.filter=n,this.expr=Ig(this.model,this.filter,this),this._dependentFields=Pg(this.expr)}clone(){return new Lg(null,this.model,Hr(this.filter))}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Rg(e,t,n,i="datum"){const r=[];const o=co(t,(function(t){const o=uo(t),a=e.getSelectionComponent(o,t),s=u(o+jd);if(a.project.timeUnit){const t=null!=n?n:e.component.data.raw,i=a.project.timeUnit.clone();t.parent?i.insertAsParentOf(t):t.parent=i}return"none"!==a.empty&&r.push(s),`vlSelectionTest(${s}, ${i}`+("global"===a.resolve?")":`, ${u(a.resolve)})`)}));return(r.length?"!("+r.map(e=>`length(data(${e}))`).join(" || ")+") || ":"")+`(${o})`}function qg(e,t){const n=t.encoding;let i=t.field;if(n||i){if(n&&!i){const r=e.project.items.filter(e=>e.channel===n);!r.length||r.length>1?(i=e.project.items[0].field,as((r.length?"Multiple ":"No ")+`matching ${u(n)} encoding found for selection ${u(t.selection)}. `+`Using "field": ${u(i)}.`)):i=r[0].field}}else i=e.project.items[0].field,e.project.items.length>1&&as('A "field" or "encoding" must be specified when using a selection as a scale domain. '+`Using "field": ${u(i)}.`);return`${e.name}[${u(i)}]`}function Ig(e,t,n){return co(t,t=>s(t)?t:function(e){return null==e?void 0:e.selection}(t)?Rg(e,t.selection,n):zs(t))}function Wg(e,t,n,i){var r,o,a;e.encode=null!==(r=e.encode)&&void 0!==r?r:{},e.encode[t]=null!==(o=e.encode[t])&&void 0!==o?o:{},e.encode[t].update=null!==(a=e.encode[t].update)&&void 0!==a?a:{},e.encode[t].update[n]=i}function Hg(e){return qa(e)?e.signal:u(e.value)}function Gg(e,t,n,i={header:!1}){var r,o;const a=e.combine(),{orient:s,scale:u,labelExpr:c,title:l,zindex:f}=a,d=w(a,["orient","scale","labelExpr","title","zindex"]);for(const e in d){const n=Fo[e],i=d[e];if(n&&n!==t&&"both"!==n)delete d[e];else if(Oo(i)){const{condition:t}=i,n=w(i,["condition"]),r=h(t),o=Ao[e];if(o){const{vgProp:t,part:i}=o;Wg(d,i,t,[...r.map(e=>{const{test:t}=e,n=w(e,["test"]);return Object.assign({test:Ig(null,t)},n)}),n]),delete d[e]}else if(null===o){const t={signal:r.map(e=>{const{test:t}=e,n=w(e,["test"]);return`${Ig(null,t)} ? ${Hg(n)} : `}).join("")+Hg(n)};d[e]=t}}else if(qa(i)){const t=Ao[e];if(t){const{vgProp:n,part:r}=t;Wg(d,r,n,i),delete d[e]}}}if("grid"===t){if(!d.grid)return;if(d.encode){const{grid:e}=d.encode;d.encode=Object.assign({},e?{grid:e}:{}),0===oo(d.encode).length&&delete d.encode}return Object.assign(Object.assign({scale:u,orient:s},d),{domain:!1,labels:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:vo(f,0)})}{if(!i.header&&e.mainExtracted)return;if(void 0!==c){let e=c;(null===(o=null===(r=d.encode)||void 0===r?void 0:r.labels)||void 0===o?void 0:o.update)&&qa(d.encode.labels.update.text)&&(e=mo(c,"datum.label",d.encode.labels.update.text.signal)),Wg(d,"labels","text",{signal:e})}if(d.encode){for(const t of Co)e.hasAxisPart(t)||delete d.encode[t];0===oo(d.encode).length&&delete d.encode}const t=function(e,t){if(e)return Ra(e)?e:e.map(e=>Xu(e,t)).join(", ")}(l,n);return Object.assign(Object.assign(Object.assign({scale:u,orient:s,grid:!1},t?{title:t}:{}),d),{zindex:vo(f,0)})}}function Yg(e){const{axes:t}=e.component;for(const n of ka)if(t[n])for(const i of t[n])if(!i.get("gridScale")){const t="x"===n?"height":"width";return[{name:t,update:e.getSizeSignalRef(t).signal}]}return[]}const Vg={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},Xg={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelLimit:"limit",labelOrient:"orient",labelPadding:"offset"},Jg=oo(Vg),Qg=oo(Xg);function Zg(e,t,n,i,r,o){var a,s,u;let c=Za(e,o,t.style);if(void 0!==c)return{configFrom:"style",configValue:c};const l=[..."band"===r?["axisBand","axisDiscrete"]:[],..."point"===r?["axisPoint","axisDiscrete"]:[],...Js(r)?["axisQuantitative"]:[],..."time"===r||"utc"===r?["axisTemporal"]:[]],f="x"===n?"axisX":"axisY",d=[...l.map(e=>f+e.substr(4)),...l,f,...i?["axis"+fo(i)]:[],"axis"];for(const n of d)if(void 0!==(null===(a=t[n])||void 0===a?void 0:a[e]))return{configFrom:n,configValue:t[n][e]};for(const n of d)if((null===(s=t[n])||void 0===s?void 0:s.style)&&(c=Za(e,null===(u=t[n])||void 0===u?void 0:u.style,t.style),void 0!==c))return{configFrom:"axis-config-style",configValue:c};return{}}function Kg(e,t){if(void 0!==e)return e=xo(e),"top"===t||"bottom"===t?e<=45||315<=e?"top"===t?"bottom":"top":135<=e&&e<=225?"top"===t?"top":"bottom":"middle":e<=45||315<=e||135<=e&&e<=225?"middle":45<=e&&e<=135?"left"===t?"top":"bottom":"left"===t?"bottom":"top"}function ep(e,t){if(void 0!==e)return e=xo(e),"top"===t||"bottom"===t?e%180==0?"center":0<e&&e<180?"top"===t?"right":"left":"top"===t?"left":"right":(e+90)%180==0?"center":90<=e&&e<270?"left"===t?"left":"right":"left"===t?"right":"left"}function tp(e){switch(e){case Jo:return"bottom";case Qo:return"left"}throw new Error(is.INVALID_CHANNEL_FOR_AXIS)}class np extends ed{constructor(e,t){super(e),this.transform=t,this._dependentFields=Pg(this.transform.calculate)}clone(){return new np(null,Hr(this.transform))}static parseAllForSortIndex(e,t){return t.forEachFieldDef((t,n)=>{if(Uu(t)&&Fu(t.sort)){const{field:i,timeUnit:r}=t,o=t.sort,a=o.map((e,t)=>`${zs({field:i,timeUnit:r,equal:e})} ? ${t} : `).join("")+o.length;e=new np(e,{calculate:a,as:ip(t,n,{forAs:!0})})}}),e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${Xr(this.transform)}`}}function ip(e,t,n){return Ru(e,Object.assign({prefix:t,suffix:"sort_index"},null!=n?n:{}))}function rp(e,t){return Qr(["top","bottom"],t)?"column":Qr(["left","right"],t)||"row"===e?"row":"column"}function op(e,t,n,i){const r="row"===i?n.headerRow:"column"===i?n.headerColumn:n.headerFacet;return vo(t&&t.header?t.header[e]:void 0,r[e],n.header[e])}function ap(e,t,n,i){const r={};for(const o of e){const e=op(o,t,n,i);void 0!==e&&(r[o]=e)}return r}const sp=["row","column"],up=["header","footer"];function cp(e,t){const n=e.component.layoutHeaders[t].title,i=e.config?e.config:void 0,r=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,{titleAnchor:o,titleAngle:a,titleOrient:s}=ap(["titleAnchor","titleAngle","titleOrient"],r,i,t),u=rp(t,s);return{name:`${t}-title`,type:"group",role:`${u}-title`,title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:n},"row"===t?{orient:"left"}:{}),{style:"guide-title"}),fp(a,u)),lp(u,a,o)),vp(i,r,t,Jg,Vg))}}function lp(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=ep(t,"row"===e?"left":"top");return i?{align:i}:{}}function fp(e,t){const n=Kg(e,"row"===t?"left":"top");return n?{baseline:n}:{}}function dp(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of up)if(n[r])for(const o of n[r]){const a=hp(e,t,r,n,o);null!=a&&i.push(a)}return i}function gp(e,t){var n;const{sort:i}=e;return Cu(i)?{field:Ru(i,{expr:"datum"}),order:null!==(n=i.order)&&void 0!==n?n:"ascending"}:o(i)?{field:ip(e,t,{expr:"datum"}),order:"ascending"}:{field:Ru(e,{expr:"datum"}),order:null!=i?i:"ascending"}}function pp(e,t,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:a,labelOrient:s,labelExpr:u}=ap(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e,n,t),c=hu({fieldDef:e,format:i,formatType:r,expr:"parent",config:n}).signal,l=rp(t,s);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:u?mo(mo(u,"datum.label",c),"datum.value",Ru(e,{expr:"parent"})):c}},"row"===t?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),fp(o,l)),lp(l,o,a)),vp(n,e,t,Qg,Xg))}function hp(e,t,n,i,r){if(r){let o=null;const{facetFieldDef:a}=i,s=e.config?e.config:void 0;if(a&&r.labels){const{labelOrient:e}=ap(["labelOrient"],a,s,t);("row"===t&&!Qr(["top","bottom"],e)||"column"===t&&!Qr(["left","right"],e))&&(o=pp(a,t,s))}const u=vm(e)&&!Du(e.facet),c=r.axes,l=(null==c?void 0:c.length)>0;if(o||l){const s="row"===t?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`},i.facetFieldDef?{from:{data:e.getName(t+"_domain")},sort:gp(a,t)}:{}),l&&u?{from:{data:e.getName(`facet_domain_${t}`)}}:{}),o?{title:o}:{}),r.sizeSignal?{encode:{update:{[s]:r.sizeSignal}}}:{}),l?{axes:c}:{})}}return null}const mp={column:{start:0,end:1},row:{start:1,end:0}};function bp(e,t){return mp[t][e]}function vp(e,t,n,i,r){const o={};for(const a of i){if(!r[a])continue;const i=op(a,t,e,n);void 0!==i&&(o[r[a]]=i)}return o}function yp(e){return[...xp(e,"width"),...xp(e,"height"),...xp(e,"childWidth"),...xp(e,"childHeight")]}function xp(e,t){const n="width"===t?"x":"y",i=e.component.layoutSize.get(t);if(!i||"merged"===i)return[];const r=e.getSizeSignalRef(t).signal;if("step"===i){const t=e.getScaleComponent(n);if(t){const i=t.get("type"),o=t.get("range");if(eu(i)&&Ia(o)){const i=e.scaleName(n);if(vm(e.parent)){if("independent"===e.parent.component.resolve.scale[n])return[wp(i,o)]}return[wp(i,o),{name:r,update:Ap(i,t,`domain('${i}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if("container"==i){const t=r.endsWith("width"),n=t?"containerSize()[0]":"containerSize()[1]",i=`isFinite(${n}) ? ${n} : ${rl(e.config.view,t?"width":"height")}`;return[{name:r,init:i,on:[{update:i,events:"window:resize"}]}]}return[{name:r,value:i}]}function wp(e,t){return{name:e+"_step",value:t.step}}function Ap(e,t,n){const i=t.get("type"),r=t.get("padding"),o=vo(t.get("paddingOuter"),r);let a=t.get("paddingInner");return a="band"===i?void 0!==a?a:r:1,`bandspace(${n}, ${a}, ${o}) * ${e}_step`}function Op(e){return"childWidth"===e?"width":"childHeight"===e?"height":e}function Cp(e,t){return oo(e).reduce((n,i)=>{const r=e[i];return Object.assign(Object.assign({},n),xf(t,r,i,e=>qa(e)?e:{value:e.value}))},{})}function Fp(e,t){if(wm(t)||vm(t))return"shared";if(xm(t)||ym(t))return Qr(ka,e)?"independent":"shared";throw new Error("invalid model type for resolve")}function Dp(e,t){const n=e.scale[t],i=Qr(ka,t)?"axis":"legend";return"independent"===n?("shared"===e[i][t]&&as(is.independentScaleMeansIndependentGuide(t)),"independent"):e[i][t]||"shared"}class jp{constructor(e={},t={}){this.explicit=e,this.implicit=t}clone(){return new jp(Hr(this.explicit),Hr(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return vo(this.explicit[e],this.implicit[e])}getWithExplicit(e){return void 0!==this.explicit[e]?{explicit:!0,value:this.explicit[e]}:void 0!==this.implicit[e]?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,t){void 0!==t.value&&this.set(e,t.value,t.explicit)}set(e,t,n){return delete this[n?"implicit":"explicit"][e],this[n?"explicit":"implicit"][e]=t,this}copyKeyFromSplit(e,t){void 0!==t.explicit[e]?this.set(e,t.explicit[e],!0):void 0!==t.implicit[e]&&this.set(e,t.implicit[e],!1)}copyKeyFromObject(e,t){void 0!==t[e]&&this.set(e,t[e],!0)}copyAll(e){for(const t of oo(e.combine())){const n=e.getWithExplicit(t);this.setWithExplicit(t,n)}}}function kp(e){return{explicit:!0,value:e}}function Ep(e){return{explicit:!1,value:e}}function Sp(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:$p(t,n,i,r)}}function $p(e,t,n,i){return e.explicit&&t.explicit&&as(is.mergeConflictingProperty(n,i,e.value,t.value)),e}function Np(e,t,n,i,r=$p){return void 0===e||void 0===e.value?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:Wr(e.value,t.value)?e:r(e,t,n,i)}const Mp=Object.assign(Object.assign({},{clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1}),{labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),Bp=oo(Mp);class _p extends jp{}function Tp(e){const{legend:t}=e;return vo(t.type,zp(e))}function zp({channel:e,timeUnit:t,scaleType:n,alwaysReturn:i}){if(ga(e)){if(Qr(["quarter","month","day"],t))return"symbol";if(nu(n))return i?"gradient":void 0}return i?"symbol":void 0}function Up({legend:e,legendConfig:t,timeUnit:n,channel:i,scaleType:r}){const o=vo(e.orient,t.orient,"right"),a=Tp({legend:e,channel:i,timeUnit:n,scaleType:r,alwaysReturn:!0});return vo(e.direction,t[a?"gradientDirection":"symbolDirection"],function(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return"gradient"===t?"horizontal":void 0}}(o,a))}function Pp(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function Lp(e,t,n){const i=t.getScaleComponent(n).get("type");return vo(e.get("type"),zp({channel:n,scaleType:i,alwaysReturn:!0}))}function Rp(e){return Ip(e,(e,t)=>Math.max(e,t.value))}function qp(e){return Ip(e,(e,t)=>vo(e,t.value))}function Ip(e,t){return function(e){return!!e&&!!e.condition&&(o(e.condition)||zu(e.condition))}(e)?h(e.condition).reduce(t,e.value):zu(e)?e.value:void 0}function Wp(e,t,n){const i=t.get("selections");if(!(null==i?void 0:i.length))return;const r=u(n.field);return i.map(e=>`(!length(data(${u(uo(e)+jd)})) || (${e}[${r}] && indexof(${e}[${r}], datum.value) >= 0))`).join(" || ")}var Hp=Object.freeze({__proto__:null,symbols:function(e,t,n,i,r){var a,s,u,c,l;if("symbol"!==Lp(r,n,i))return;const{markDef:f,encoding:d,config:g,mark:p}=n,h=f.filled&&"trail"!==p;let m=Object.assign(Object.assign({},function(e,t,n){for(const i of n){const n=Ja(i,t.markDef,t.config);void 0!==n&&(e[i]={value:n})}return e}({},n,Mo)),Sf(n,{filled:h}));const b=null!==(a=Rp(d.opacity))&&void 0!==a?a:f.opacity,v=Wp(n,r,e);if(m.fill)if("fill"===i||h&&i===ea)delete m.fill;else if(m.fill.field)r.get("symbolFillColor")?delete m.fill:(m.fill=Ya(null!==(s=g.legend.symbolBaseFillColor)&&void 0!==s?s:"black"),m.fillOpacity=Ya(null!=b?b:1));else if(o(m.fill)){const e=null!==(l=null!==(c=qp(null!==(u=d.fill)&&void 0!==u?u:d.color))&&void 0!==c?c:f.fill)&&void 0!==l?l:h&&f.color;e&&(m.fill=Ya(e))}if(m.stroke)if("stroke"===i||!h&&i===ea)delete m.stroke;else if(m.stroke.field)delete m.stroke;else if(o(m.stroke)){const e=vo(qp(d.stroke||d.color),f.stroke,h?f.color:void 0);e&&(m.stroke={value:e})}return i!==oa&&(v?m.opacity=[Object.assign({test:v},Ya(null!=b?b:1)),Ya(g.legend.unselectedOpacity)]:b&&(m.opacity=Ya(b))),m=Object.assign(Object.assign({},m),t),oo(m).length>0?m:void 0},gradient:function(e,t,n,i,r){if("gradient"!==Lp(r,n,i))return;let o={};const a=Rp(n.encoding.opacity)||n.markDef.opacity;return a&&(o.opacity=Ya(a)),o=Object.assign(Object.assign({},o),t),oo(o).length>0?o:void 0},labels:function(e,t,n,i,r){const o=n.legend(i),a=n.config,s=Wp(n,r,e),u=s?[{test:s,value:1},{value:a.legend.unselectedOpacity}]:void 0,{format:c,formatType:l}=o,f=hu({fieldDef:e,format:c,formatType:l,field:"datum.value",config:a,isUTCScale:n.getScaleComponent(i).get("type")===Rs.UTC,omitNumberFormatAndEmptyTimeFormat:!0}),d=Object.assign(Object.assign(Object.assign({},u?{opacity:u}:{}),f?{text:f}:{}),t);return oo(d).length>0?d:void 0},entries:function(e,t,n,i,r){const o=r.get("selections");return(null==o?void 0:o.length)?{fill:{value:"transparent"}}:void 0},getFirstConditionValue:qp});function Gp(e){bm(e)?e.component.legends=function(e){const{encoding:t}=e;return[ea,ta,na,ua,ca,ra,ia,oa,aa,sa].reduce((n,i)=>{const r=t[i];return!e.legend(i)||!e.getScaleComponent(i)||Bu(r)&&i===ia&&"geojson"===r.type||(n[i]=function(e,t){var n;const i=e.fieldDef(t),r=e.legend(t),o=new _p({},function(e,t){const n=e.scaleName(t);if("trail"===e.mark){if("color"===t)return{stroke:n};if("size"===t)return{strokeWidth:n}}if("color"===t)return e.markDef.filled?{fill:n}:{stroke:n};return{[t]:n}}(e,t));!function(e,t,n){const i=e.fieldDef(t).field;Nd(e,e=>{var r,o;const a=null!==(r=e.project.hasField[i])&&void 0!==r?r:e.project.hasChannel[t];if(a&&ld.has(e)){const t=null!==(o=n.get("selections"))&&void 0!==o?o:[];t.push(e.name),n.set("selections",t,!1),a.hasLegend=!0}})}(e,t,o);for(const n of Bp){const a=Vp(n,r,t,e);if(void 0!==a){const t=Yp(a,n,r,i);(t||void 0===e.config.legend[n])&&o.set(n,a,t)}}const a=null!==(n=r.encoding)&&void 0!==n?n:{},s=o.get("selections"),u=["labels","legend","title","symbols","gradient","entries"].reduce((n,r)=>{var u;const c=Cp(null!==(u=a[r])&&void 0!==u?u:{},e),l=Hp[r]?Hp[r](i,c,e,t,o):c;return void 0!==l&&oo(l).length>0&&(n[r]=Object.assign(Object.assign(Object.assign({},(null==s?void 0:s.length)?{name:`${uo(i.field)}_legend_${r}`}:{}),(null==s?void 0:s.length)?{interactive:!!s}:{}),{update:l})),n},{});oo(u).length>0&&o.set("encode",u,!!r.encoding);return o}(e,i)),n},{})}(e):e.component.legends=function(e){const{legends:t,resolve:n}=e.component;for(const i of e.children)Gp(i),oo(i.component.legends).forEach(r=>{n.legend[r]=Dp(e.component.resolve,r),"shared"===n.legend[r]&&(t[r]=Xp(t[r],i.component.legends[r]),t[r]||(n.legend[r]="independent",delete t[r]))});return oo(t).forEach(t=>{for(const i of e.children)i.component.legends[t]&&"shared"===n.legend[t]&&delete i.component.legends[t]}),t}(e)}function Yp(e,t,n,i){switch(t){case"values":return!!n.values;case"title":if("title"===t&&e===i.title)return!0}return e===n[t]}function Vp(e,t,n,i){var r;const{encoding:a,mark:s}=i,u=Zu(a[n]),c=i.config.legend,l=null===(r=Ds(u.timeUnit))||void 0===r?void 0:r.unit,f=i.getScaleComponent(n).get("type");switch(e){case"direction":return Up({legend:t,legendConfig:c,timeUnit:l,channel:n,scaleType:f});case"format":if(ic(u))return;return mu(u,t.format,i.config);case"formatType":if(ic(u))return;return t.formatType;case"gradientLength":return vo(t.gradientLength,c.gradientLength,function({legend:e,legendConfig:t,model:n,channel:i,scaleType:r}){const{gradientHorizontalMaxLength:o,gradientHorizontalMinLength:a,gradientVerticalMaxLength:s,gradientVerticalMinLength:u}=t;if(nu(r)){if("horizontal"===Up({legend:e,legendConfig:t,channel:i,scaleType:r})){const i=vo(e.orient,t.orient);return"top"===i||"bottom"===i?Pp(n,"width",a,o):a}return Pp(n,"height",u,s)}}({model:i,legend:t,legendConfig:c,channel:n,scaleType:f}));case"labelOverlap":return vo(t.labelOverlap,function(e){if(Qr(["quantile","threshold","log"],e))return"greedy"}(f));case"symbolType":return vo(t.symbolType,function(e,t,n,i){var r;if("shape"!==t){const e=null!==(r=qp(n))&&void 0!==r?r:i;if(e)return e}switch(e){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}(s,n,a.shape,i.markDef.shape));case"title":return Yu(u,i.config,{allowDisabling:!0})||void 0;case"type":return Tp({legend:t,channel:n,timeUnit:l,scaleType:f,alwaysReturn:!1});case"values":return function(e,t){const n=e.values;return o(n)?ac(t,n):qa(n)?n:void 0}(t,u)}return t[e]}function Xp(e,t){var n,i,r,o,a,s;if(!e)return t.clone();const u=e.getWithExplicit("orient"),c=t.getWithExplicit("orient");if(u.explicit&&c.explicit&&u.value!==c.value)return;let l=!1;for(const n of Bp){const i=Np(e.getWithExplicit(n),t.getWithExplicit(n),n,"legend",(e,t)=>{switch(n){case"symbolType":return Jp(e,t);case"title":return ns(e,t);case"type":return l=!0,Ep("symbol")}return $p(e,t,n,"legend")});e.setWithExplicit(n,i)}return l&&((null===(r=null===(i=null===(n=e.implicit)||void 0===n?void 0:n.encode)||void 0===i?void 0:i.gradient)||void 0===r||r)&&lo(e.implicit,["encode","gradient"]),(null===(s=null===(a=null===(o=e.explicit)||void 0===o?void 0:o.encode)||void 0===a?void 0:a.gradient)||void 0===s||s)&&lo(e.explicit,["encode","gradient"])),e}function Jp(e,t){return"circle"===t.value?t:e}function Qp(e,t,n,i){var r,o,a;e.encode=null!==(r=e.encode)&&void 0!==r?r:{},e.encode[t]=null!==(o=e.encode[t])&&void 0!==o?o:{},e.encode[t].update=null!==(a=e.encode[t].update)&&void 0!==a?a:{},e.encode[t].update[n]=i}function Zp(e){const t=e.component.legends,n={};for(const i of oo(t)){const r=e.getScaleComponent(i),o=Vr(r.get("domains"));if(n[o])for(const e of n[o]){Xp(e,t[i])||n[o].push(t[i])}else n[o]=[t[i].clone()]}return ao(n).flat().map(Kp)}function Kp(e){var t,n,i,r;const o=e.combine(),{labelExpr:a,selections:s}=o,u=w(o,["labelExpr","selections"]);if(null===(t=u.encode)||void 0===t?void 0:t.symbols){const e=u.encode.symbols.update;!e.fill||"transparent"===e.fill.value||e.stroke||u.stroke||(e.stroke={value:"transparent"});for(const t of Gc)u[t]&&delete e[t]}if(void 0!==a){let e=a;(null===(r=null===(i=null===(n=u.encode)||void 0===n?void 0:n.labels)||void 0===i?void 0:i.update)||void 0===r?void 0:r.text)&&qa(u.encode.labels.update.text)&&(e=mo(a,"datum.label",u.encode.labels.update.text.signal)),Qp(u,"labels","text",{signal:e})}for(const e in u){const t=u[e];if(qa(t)){const n=Yc[e];if(n){const{vgProp:i,part:r}=n;Qp(u,r,i,t),delete u[e]}}}return u}function eh(e){return wm(e)||xm(e)||ym(e)?function(e){return e.children.reduce((e,t)=>e.concat(t.assembleProjections()),th(e))}(e):th(e)}function th(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:i}=n,r=w(n,["name"]);if(t.data){const n={signal:`[${t.size.map(e=>e.signal).join(", ")}]`},o=t.data.reduce((t,n)=>{const i=qa(n)?n.signal:`data('${e.lookupDataSource(n)}')`;return Qr(t,i)||t.push(i),t},[]);if(o.length<=0)throw new Error("Projection's fit didn't find any data sources");return[Object.assign({name:i,size:n,fit:{signal:o.length>1?`[${o.join(", ")}]`:o[0]}},r)]}return[Object.assign(Object.assign({name:i},{translate:{signal:"[width / 2, height / 2]"}}),r)]}const nh=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class ih extends jp{constructor(e,t,n,i){super(Object.assign({},t),{name:e}),this.specifiedProjection=t,this.size=n,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function rh(e){e.component.projection=bm(e)?function(e){var t;if(e.hasProjection){const n=e.specifiedProjection,i=!(n&&(null!=n.scale||null!=n.translate)),r=i?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,o=i?function(e){const t=[];for(const n of[["longitude","latitude"],["longitude2","latitude2"]])(e.channelHasField(n[0])||e.channelHasField(n[1]))&&t.push({signal:e.getName(`geojson_${t.length}`)});e.channelHasField(ia)&&"geojson"===e.fieldDef(ia).type&&t.push({signal:e.getName(`geojson_${t.length}`)});0===t.length&&t.push(e.requestDataName(Hl));return t}(e):void 0;return new ih(e.projectionName(!0),Object.assign(Object.assign({},null!==(t=e.config.projection)&&void 0!==t?t:{}),null!=n?n:{}),r,o)}return}(e):function(e){if(0===e.children.length)return;let t;e.children.forEach(e=>rh(e));const n=Kr(e.children,e=>{const n=e.component.projection;if(n){if(t){const e=function(e,t){const n=Kr(nh,n=>!b(e.explicit,n)&&!b(t.explicit,n)||!(!b(e.explicit,n)||!b(t.explicit,n)||Vr(e.get(n))!==Vr(t.get(n))));if(Vr(e.size)===Vr(t.size)){if(n)return e;if(Vr(e.explicit)===Vr({}))return t;if(Vr(t.explicit)===Vr({}))return e}return null}(t,n);return e&&(t=e),!!e}return t=n,!0}return!0});if(t&&n){const n=e.projectionName(!0),i=new ih(n,t.specifiedProjection,t.size,Hr(t.data));return e.children.forEach(e=>{const t=e.component.projection;t&&(t.isFit&&i.data.push(...e.component.projection.data),e.renameProjection(t.get("name"),n),t.merged=!0)}),i}return}(e)}function oh(e,t){return`${uc(e)}_${t}`}function ah(e,t,n){var i;const r=oh(null!==(i=tc(n,void 0))&&void 0!==i?i:{},t);return e.getName(`${r}_bins`)}function sh(e,t,n){let i,r;i=function(e){return"as"in e}(e)?s(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:[Ru(e,{forAs:!0}),Ru(e,{binSuffix:"end",forAs:!0})];const o=Object.assign({},tc(t,void 0)),a=oh(o,e.field),{signal:u,extentSignal:c}=function(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}(n,a);if(dc(o.extent)){const e=o.extent,t=e.selection;r=qg(n.getSelectionComponent(uo(t),t),e),delete o.extent}return{key:a,binComponent:Object.assign(Object.assign(Object.assign({bin:o,field:e.field,as:[i]},u?{signal:u}:{}),c?{extentSignal:c}:{}),r?{span:r}:{})}}class uh extends ed{constructor(e,t){super(e),this.bins=t}clone(){return new uh(null,Hr(this.bins))}static makeFromEncoding(e,t){const n=t.reduceFieldDef((e,n,i)=>{if(_u(n)&&cc(n.bin)){const{key:r,binComponent:o}=sh(n,n.bin,t);e[r]=Object.assign(Object.assign(Object.assign({},o),e[r]),function(e,t,n,i){var r,o;if(sc(t,n)){const a=bm(e)&&null!==(o=null!==(r=e.axis(n))&&void 0!==r?r:e.legend(n))&&void 0!==o?o:{},s=Ru(t,{expr:"datum"}),u=Ru(t,{expr:"datum",binSuffix:"end"});return{formulaAs:Ru(t,{binSuffix:"range",forAs:!0}),formula:yu(s,u,a.format,a.formatType,i)}}return{}}(t,n,i,t.config))}return e},{});return 0===oo(n).length?null:new uh(e,n)}static makeFromTransform(e,t,n){const{key:i,binComponent:r}=sh(t,t.bin,n);return new uh(e,{[i]:r})}merge(e,t){for(const n of oo(e.bins))n in this.bins?(t(e.bins[n].signal,this.bins[n].signal),this.bins[n].as=to([...this.bins[n].as,...e.bins[n].as],Xr)):this.bins[n]=e.bins[n];for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}producedFields(){return new Set(ao(this.bins).map(e=>e.as).flat(2))}dependentFields(){return new Set(ao(this.bins).map(e=>e.field))}hash(){return`Bin ${Xr(this.bins)}`}assemble(){return ao(this.bins).flatMap(e=>{const t=[],[n,...i]=e.as,r=e.bin,{extent:o}=r,a=w(r,["extent"]),s=Object.assign(Object.assign(Object.assign({type:"bin",field:ho(e.field),as:n,signal:e.signal},dc(o)?{extent:null}:{extent:o}),e.span?{span:{signal:`span(${e.span})`}}:{}),a);!o&&e.extentSignal&&(t.push({type:"extent",field:ho(e.field),signal:e.extentSignal}),s.extent={signal:e.extentSignal}),t.push(s);for(const e of i)for(let i=0;i<2;i++)t.push({type:"formula",expr:Ru({field:n[i]},{expr:"datum"}),as:e[i]});return e.formula&&t.push({type:"formula",expr:e.formula,as:e.formulaAs}),t})}}class ch extends ed{constructor(e){let t;if(super(null),Rl(e=null!=e?e:{name:"source"})||(t=e.format?Object.assign({},Yr(e.format,["parse"])):{}),Pl(e))this._data={values:e.values};else if(Ul(e)){if(this._data={url:e.url},!t.type){let n=/(?:\.([^.]+))?$/.exec(e.url)[1];Qr(["json","csv","tsv","dsv","topojson"],n)||(n="json"),t.type=n}}else Il(e)?this._data={values:[{type:"Sphere"}]}:(Ll(e)||Rl(e))&&(this._data={});this._generator=Rl(e),e.name&&(this._name=e.name),t&&oo(t).length>0&&(this._data.format=t)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return Object.assign(Object.assign({name:this._name},this._data),{transform:[]})}}function lh(e){for(const t of e){for(const e of t.children)if(e.parent!==t)return console.error("Dataflow graph is inconsistent.",t,e),!1;if(!lh(t.children))return!1}return!0}class fh extends ed{constructor(e,t){super(e),this.params=t}clone(){return new fh(null,this.params)}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${Xr(this.params)}`}assemble(){return Object.assign({type:"graticule"},!0===this.params?{}:this.params)}}class dh extends ed{constructor(e,t){super(e),this.params=t}clone(){return new dh(null,this.params)}dependentFields(){return new Set}producedFields(){var e;return new Set([null!==(e=this.params.as)&&void 0!==e?e:"data"])}hash(){return`Hash ${Xr(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}function gh(e){return e instanceof ch||e instanceof fh||e instanceof dh}class ph{constructor(){this._mutated=!1}setMutated(){this._mutated=!0}get mutatedFlag(){return this._mutated}}class hh extends ph{constructor(){super(),this._continue=!1}setContinue(){this._continue=!0}get continueFlag(){return this._continue}get flags(){return{continueFlag:this.continueFlag,mutatedFlag:this.mutatedFlag}}set flags({continueFlag:e,mutatedFlag:t}){e&&this.setContinue(),t&&this.setMutated()}reset(){}optimizeNextFromLeaves(e){if(gh(e))return!1;const t=e.parent,{continueFlag:n}=this.run(e);return n&&this.optimizeNextFromLeaves(t),this.mutatedFlag}}class mh extends ph{}function bh(e,t,n,i){const r=bm(i)?i.encoding[Ca(t)]:void 0;if(_u(n)&&bm(i)&&$u(t,n,r,i.markDef,i.config))e.add(Ru(n,{})),e.add(Ru(n,{suffix:"end"})),n.bin&&sc(n,t)&&e.add(Ru(n,{binSuffix:"range"}));else if(t in la){const n=function(e){switch(e){case"latitude":return"y";case"latitude2":return"y2";case"longitude":return"x";case"longitude2":return"x2"}}(t);e.add(i.getName(n))}else e.add(Ru(n));return e}class vh extends ed{constructor(e,t,n){super(e),this.dimensions=t,this.measures=n}clone(){return new vh(null,new Set(this.dimensions),Hr(this.measures))}get groupBy(){return this.dimensions}static makeFromEncoding(e,t){let n=!1;t.forEachFieldDef(e=>{e.aggregate&&(n=!0)});const i={},r=new Set;return n?(t.forEachFieldDef((e,n)=>{var o,a,s,u;const{aggregate:c,field:l}=e;if(c)if("count"===c)i["*"]=null!==(o=i["*"])&&void 0!==o?o:{},i["*"].count=new Set([Ru(e,{forAs:!0})]);else{if(qo(c)||Io(c)){const e=qo(c)?"argmin":"argmax",t=c[e];i[t]=null!==(a=i[t])&&void 0!==a?a:{},i[t][e]=new Set([Ru({op:e,field:t},{forAs:!0})])}else i[l]=null!==(s=i[l])&&void 0!==s?s:{},i[l][c]=new Set([Ru(e,{forAs:!0})]);_a(n)&&"unaggregated"===t.scaleDomain(n)&&(i[l]=null!==(u=i[l])&&void 0!==u?u:{},i[l].min=new Set([Ru({field:l,aggregate:"min"},{forAs:!0})]),i[l].max=new Set([Ru({field:l,aggregate:"max"},{forAs:!0})]))}else bh(r,n,e,t)}),r.size+oo(i).length===0?null:new vh(e,r,i)):null}static makeFromTransform(e,t){var n,i,r;const o=new Set,a={};for(const e of t.aggregate){const{op:t,field:r,as:o}=e;t&&("count"===t?(a["*"]=null!==(n=a["*"])&&void 0!==n?n:{},a["*"].count=new Set([o||Ru(e,{forAs:!0})])):(a[r]=null!==(i=a[r])&&void 0!==i?i:{},a[r][t]=new Set([o||Ru(e,{forAs:!0})])))}for(const e of null!==(r=t.groupby)&&void 0!==r?r:[])o.add(e);return o.size+oo(a).length===0?null:new vh(e,o,a)}merge(e){return function(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}(this.dimensions,e.dimensions)?(function(e,t){var n;for(const i of oo(t)){const r=t[i];for(const t of oo(r))i in e?e[i][t]=new Set([...null!==(n=e[i][t])&&void 0!==n?n:[],...r[t]]):e[i]={[t]:r[t]}}}(this.measures,e.measures),!0):(function(...e){os.debug(...e)}("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...oo(this.measures)])}producedFields(){const e=new Set;for(const t of oo(this.measures))for(const n of oo(this.measures[t])){const i=this.measures[t][n];0===i.size?e.add(`${n}_${t}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${Xr({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],t=[],n=[];for(const i of oo(this.measures))for(const r of oo(this.measures[i]))for(const o of this.measures[i][r])n.push(o),e.push(r),t.push("*"===i?null:ho(i));return{type:"aggregate",groupby:[...this.dimensions].map(ho),ops:e,fields:t,as:n}}}class yh extends ed{constructor(e,t,n,i){super(e),this.model=t,this.name=n,this.data=i;for(const e of ha){const n=t.facet[e];if(n){const{bin:i,sort:r}=n;this[e]=Object.assign({name:t.getName(`${e}_domain`),fields:[Ru(n),...cc(i)?[Ru(n,{binSuffix:"end"})]:[]]},Cu(r)?{sortField:r}:o(r)?{sortIndexField:ip(n,e)}:{})}}this.childModel=t.child}hash(){let e="Facet";for(const t of ha)this[t]&&(e+=` ${t.charAt(0)}:${Xr(this[t])}`);return e}get fields(){var e;const t=[];for(const n of ha)(null===(e=this[n])||void 0===e?void 0:e.fields)&&t.push(...this[n].fields);return t}dependentFields(){const e=new Set(this.fields);for(const t of ha)this[t]&&(this[t].sortField&&e.add(this[t].sortField.field),this[t].sortIndexField&&e.add(this[t].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const t of["x","y"]){const n=this.childModel.component.scales[t];if(n&&!n.merged){const i=n.get("type"),r=n.get("range");if(eu(i)&&Ia(r)){const n=em(tm(this.childModel,t));n?e[t]=n:as(`Unknown field for ${t}. Cannot calculate view size.`)}}}return e}assembleRowColumnHeaderData(e,t,n){const i={row:"y",column:"x"}[e],r=[],o=[],a=[];n&&n[i]&&(t?(r.push(`distinct_${n[i]}`),o.push("max")):(r.push(n[i]),o.push("distinct")),a.push(`distinct_${n[i]}`));const{sortField:s,sortIndexField:u}=this[e];if(s){const{op:e=xu,field:t}=s;r.push(t),o.push(e),a.push(Ru(s,{forAs:!0}))}else u&&(r.push(u),o.push("max"),a.push(u));return{name:this[e].name,source:null!=t?t:this.data,transform:[Object.assign({type:"aggregate",groupby:this[e].fields},r.length?{fields:r,ops:o,as:a}:{})]}}assembleFacetHeaderData(e){var t,n;const{columns:i}=this.model.layout,{layoutHeaders:r}=this.model.component,o=[],a={};for(const e of sp){for(const i of up){const o=null!==(t=r[e]&&r[e][i])&&void 0!==t?t:[];for(const t of o)if((null===(n=t.axes)||void 0===n?void 0:n.length)>0){a[e]=!0;break}}if(a[e]){const t=`length(data("${this.facet.name}"))`,n="row"===e?i?{signal:`ceil(${t} / ${i})`}:1:i?{signal:`min(${t}, ${i})`}:{signal:t};o.push({name:`${this.facet.name}_${e}`,transform:[{type:"sequence",start:0,stop:n}]})}}const{row:s,column:u}=a;return(s||u)&&o.unshift(this.assembleRowColumnHeaderData("facet",null,e)),o}assemble(){var e,t;const n=[];let i=null;const r=this.getChildIndependentFieldsWithStep(),{column:o,row:a,facet:s}=this;if(o&&a&&(r.x||r.y)){i=`cross_${this.column.name}_${this.row.name}`;const o=[].concat(null!==(e=r.x)&&void 0!==e?e:[],null!==(t=r.y)&&void 0!==t?t:[]),a=o.map(()=>"distinct");n.push({name:i,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:o,ops:a}]})}for(const e of["column",Xo])this[e]&&n.push(this.assembleRowColumnHeaderData(e,i,r));if(s){const e=this.assembleFacetHeaderData(r);e&&n.push(...e)}return n}}function xh(e){return"'"===e[0]&&"'"===e[e.length-1]||'"'===e[0]&&'"'===e[e.length-1]?e.slice(1,-1):e}function wh(e){const t={};return function e(t,n){if(qr(t))e(t.not,n);else if(Rr(t))for(const i of t.and)e(i,n);else if(Lr(t))for(const i of t.or)e(i,n);else n(t)}(e.filter,e=>{var n;if(_s(e)){let i=null;ks(e)?i=e.equal:Ms(e)?i=e.range[0]:Bs(e)&&(i=(null!==(n=e.oneOf)&&void 0!==n?n:e.in)[0]),i&&(ss(i)?t[e.field]="date":y(i)?t[e.field]="number":s(i)&&(t[e.field]="string")),e.timeUnit&&(t[e.field]="date")}}),t}function Ah(e){const t={};function n(e){var n;ic(e)?t[e.field]="date":"quantitative"===e.type&&(s(n=e.aggregate)&&Qr(["min","max"],n))?t[e.field]="number":bo(e.field)>1?e.field in t||(t[e.field]="flatten"):Uu(e)&&Cu(e.sort)&&bo(e.sort.field)>1&&(e.sort.field in t||(t[e.sort.field]="flatten"))}if((bm(e)||vm(e))&&e.forEachFieldDef((t,i)=>{if(_u(t))n(t);else{const r=Oa(i),o=e.fieldDef(r);n(Object.assign(Object.assign({},t),{type:o.type}))}}),bm(e)){const{mark:n,markDef:i,encoding:r}=e;if(Eo(n)&&!e.encoding.order){const e=r["horizontal"===i.orient?"y":"x"];!Bu(e)||"quantitative"!==e.type||e.field in t||(t[e.field]="number")}}return t}class Oh extends ed{constructor(e,t){super(e),this._parse=t}clone(){return new Oh(null,Hr(this._parse))}hash(){return`Parse ${Xr(this._parse)}`}static makeExplicit(e,t,n){let i={};const r=t.data;return!Rl(r)&&r&&r.format&&r.format.parse&&(i=r.format.parse),this.makeWithAncestors(e,i,{},n)}static makeWithAncestors(e,t,n,i){for(const e of oo(n)){const t=i.getWithExplicit(e);void 0!==t.value&&(t.explicit||t.value===n[e]||"derived"===t.value||"flatten"===n[e]?delete n[e]:as(is.differentParse(e,n[e],t.value)))}for(const e of oo(t)){const n=i.get(e);void 0!==n&&(n===t[e]?delete t[e]:as(is.differentParse(e,t[e],n)))}const r=new jp(t,n);i.copyAll(r);const o={};for(const e of oo(r.combine())){const t=r.get(e);null!==t&&(o[e]=t)}return 0===oo(o).length||i.parseNothing?null:new Oh(e,o)}get parse(){return this._parse}merge(e){this._parse=Object.assign(Object.assign({},this._parse),e.parse),e.remove()}assembleFormatParse(){const e={};for(const t of oo(this._parse)){const n=this._parse[t];1===bo(t)&&(e[t]=n)}return e}producedFields(){return new Set(oo(this._parse))}dependentFields(){return new Set(oo(this._parse))}assembleTransforms(e=!1){return oo(this._parse).filter(t=>!e||bo(t)>1).map(e=>{const t=function(e,t){const n=po(e);if("number"===t)return`toNumber(${n})`;if("boolean"===t)return`toBoolean(${n})`;if("string"===t)return`toString(${n})`;if("date"===t)return`toDate(${n})`;if("flatten"===t)return n;if(0===t.indexOf("date:")){return`timeParse(${n},'${xh(t.slice(5,t.length))}')`}if(0===t.indexOf("utc:")){return`utcParse(${n},'${xh(t.slice(4,t.length))}')`}return as(is.unrecognizedParse(t)),null}(e,this._parse[e]);return t?{type:"formula",expr:t,as:(n=e,`${r(n).join(".")}`)}:null;var n}).filter(e=>null!==e)}}class Ch extends ed{constructor(e,t){super(e),this.transform=t}clone(){return new Ch(null,Hr(this.transform))}addDimensions(e){this.transform.groupby=to(this.transform.groupby.concat(e),e=>e)}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(t=>e.add(t)),this.transform.joinaggregate.map(e=>e.field).filter(e=>void 0!==e).forEach(t=>e.add(t)),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){var t;return null!==(t=e.as)&&void 0!==t?t:Ru(e)}hash(){return`JoinAggregateTransform ${Xr(this.transform)}`}assemble(){const e=[],t=[],n=[];for(const i of this.transform.joinaggregate)t.push(i.op),n.push(this.getDefaultName(i)),e.push(void 0===i.field?null:i.field);const i=this.transform.groupby;return Object.assign({type:"joinaggregate",as:n,ops:t,fields:e},void 0!==i?{groupby:i}:{})}}class Fh extends ed{constructor(e,t){super(e),this._stack=t}clone(){return new Fh(null,Hr(this._stack))}static makeFromTransform(e,t){const{stack:n,groupby:i,as:r,offset:a="zero"}=t,u=[],c=[];if(void 0!==t.sort)for(const e of t.sort)u.push(e.field),c.push(vo(e.order,"ascending"));const l={field:u,order:c};let f;return f=function(e){return o(e)&&e.every(e=>s(e))&&e.length>1}(r)?r:s(r)?[r,r+"_end"]:[t.stack+"_start",t.stack+"_end"],new Fh(e,{stackField:n,groupby:i,offset:a,sort:l,facetby:[],as:f})}static makeFromEncoding(e,t){const n=t.stack,{encoding:i}=t;if(!n)return null;let r;if(n.groupbyChannel){r=Zu(i[n.groupbyChannel])}const a=function(e){return e.stack.stackBy.reduce((e,t)=>{const n=Ru(t.fieldDef);return n&&e.push(n),e},[])}(t),s=t.encoding.order;let u;return u=o(s)||Bu(s)?Ka(s):a.reduce((e,t)=>(e.field.push(t),e.order.push("descending"),e),{field:[],order:[]}),new Fh(e,{dimensionFieldDef:r,stackField:t.vgField(n.fieldChannel),facetby:[],stackby:a,sort:u,offset:n.offset,impute:n.impute,as:[t.vgField(n.fieldChannel,{suffix:"start",forAs:!0}),t.vgField(n.fieldChannel,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(t=>e.add(t)),this._stack.facetby.forEach(t=>e.add(t)),this._stack.sort.field.forEach(t=>e.add(t)),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${Xr(this._stack)}`}getGroupbyFields(){const{dimensionFieldDef:e,impute:t,groupby:n}=this._stack;return e?e.bin?t?[Ru(e,{binSuffix:"mid"})]:[Ru(e,{}),Ru(e,{binSuffix:"end"})]:[Ru(e)]:null!=n?n:[]}assemble(){const e=[],{facetby:t,dimensionFieldDef:n,stackField:i,stackby:r,sort:o,offset:a,impute:s,as:u}=this._stack;if(s&&n){const{band:o=.5,bin:a}=n;a&&e.push({type:"formula",expr:`${o}*`+Ru(n,{expr:"datum"})+`+${1-o}*`+Ru(n,{expr:"datum",binSuffix:"end"}),as:Ru(n,{binSuffix:"mid",forAs:!0})}),e.push({type:"impute",field:i,groupby:[...r,...t],key:Ru(n,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...t],field:i,sort:o,as:u,offset:a}),e}}class Dh extends ed{constructor(e,t){super(e),this.transform=t}clone(){return new Dh(null,Hr(this.transform))}addDimensions(e){this.transform.groupby=to(this.transform.groupby.concat(e),e=>e)}dependentFields(){var e,t;const n=new Set;return(null!==(e=this.transform.groupby)&&void 0!==e?e:[]).forEach(e=>n.add(e)),(null!==(t=this.transform.sort)&&void 0!==t?t:[]).forEach(e=>n.add(e.field)),this.transform.window.map(e=>e.field).filter(e=>void 0!==e).forEach(e=>n.add(e)),n}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){var t;return null!==(t=e.as)&&void 0!==t?t:Ru(e)}hash(){return`WindowTransform ${Xr(this.transform)}`}assemble(){var e;const t=[],n=[],i=[],r=[];for(const e of this.transform.window)n.push(e.op),i.push(this.getDefaultName(e)),r.push(void 0===e.param?null:e.param),t.push(void 0===e.field?null:e.field);const o=this.transform.frame,a=this.transform.groupby;if(o&&null===o[0]&&null===o[1]&&n.every(e=>Wo(e)))return Object.assign({type:"joinaggregate",as:i,ops:n,fields:t},void 0!==a?{groupby:a}:{});const s=[],u=[];if(void 0!==this.transform.sort)for(const t of this.transform.sort)s.push(t.field),u.push(null!==(e=t.order)&&void 0!==e?e:"ascending");const c={field:s,order:u},l=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:r,as:i,ops:n,fields:t,sort:c},void 0!==l?{ignorePeers:l}:{}),void 0!==a?{groupby:a}:{}),void 0!==o?{frame:o}:{})}}class jh extends ed{clone(){return new jh(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set(["_vgsid_"])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:"_vgsid_"}}}class kh extends hh{run(e){const t=e.parent;if(e instanceof Oh){if(gh(t))return this.flags;if(t.numChildren()>1)return this.setContinue(),this.flags;if(t instanceof Oh)this.setMutated(),t.merge(e);else{if(ro(t.producedFields(),e.dependentFields()))return this.setContinue(),this.flags;this.setMutated(),e.swapWithParent()}}return this.setContinue(),this.flags}}class Eh extends mh{mergeNodes(e,t){const n=t.shift();for(const i of t)e.removeChild(i),i.parent=n,i.remove()}run(e){const t=e.children.map(e=>e.hash()),n={};for(let i=0;i<t.length;i++)void 0===n[t[i]]?n[t[i]]=[e.children[i]]:n[t[i]].push(e.children[i]);for(const t of oo(n))n[t].length>1&&(this.setMutated(),this.mergeNodes(e,n[t]));for(const t of e.children)this.run(t);return this.mutatedFlag}}class Sh extends hh{run(e){return e instanceof td||e.numChildren()>0||e instanceof yh||(this.setMutated(),e.remove()),this.flags}}class $h extends hh{constructor(){super(...arguments),this.fields=new Set,this.prev=null}run(e){if(this.setContinue(),e instanceof nd){const t=e.producedFields();no(t,this.fields)?(this.setMutated(),this.prev.remove()):this.fields=new Set([...this.fields,...t]),this.prev=e}return this.flags}reset(){this.fields.clear()}}class Nh extends hh{run(e){this.setContinue();const t=e.parent.children.filter(e=>e instanceof nd),n=t.pop();for(const e of t)this.setMutated(),n.merge(e);return this.flags}}function Mh(e){if(e instanceof yh)if(1!==e.numChildren()||e.children[0]instanceof td){const n=e.model.component.data.main;!function e(t){if(t instanceof td&&t.type===Hl&&1===t.numChildren()){const n=t.children[0];n instanceof yh||(n.swapWithParent(),e(t))}}(n);const i=(t=e,function e(n){if(!(n instanceof yh)){const i=n.clone();if(i instanceof td){const e=Lh+i.getSource();i.setSource(e),t.model.component.data.outputNodes[e]=i}else(i instanceof vh||i instanceof Fh||i instanceof Dh||i instanceof Ch)&&i.addDimensions(t.fields);return n.children.flatMap(e).forEach(e=>e.parent=i),[i]}return n.children.flatMap(e)}),r=e.children.map(i).flat();for(const e of r)e.parent=n}else{const t=e.children[0];(t instanceof vh||t instanceof Fh||t instanceof Dh||t instanceof Ch)&&t.addDimensions(e.fields),t.swapWithParent(),Mh(e)}else e.children.map(Mh);var t}class Bh extends mh{constructor(){super()}run(e){e instanceof td&&!e.isRequired()&&(this.setMutated(),e.remove());for(const t of e.children)this.run(t);return this.mutatedFlag}}class _h extends mh{constructor(e){super(),this.requiresSelectionId=e&&Bd(e)}run(e){e instanceof jh&&(this.requiresSelectionId&&(gh(e.parent)||e.parent instanceof vh||e.parent instanceof Oh)||(this.setMutated(),e.remove()));for(const t of e.children)this.run(t);return this.mutatedFlag}}class Th extends hh{run(e){const t=e.parent,n=[...t.children],i=t.children.filter(e=>e instanceof Oh);if(t.numChildren()>1&&i.length>=1){const e={},r=new Set;for(const t of i){const n=t.parse;for(const t of oo(n))t in e?e[t]!==n[t]&&r.add(t):e[t]=n[t]}for(const t of r)delete e[t];if(0!==oo(e).length){this.setMutated();const i=new Oh(t,e);for(const r of n){if(r instanceof Oh)for(const t of oo(e))delete r.parse[t];t.removeChild(r),r.parent=i,r instanceof Oh&&0===oo(r.parse).length&&r.remove()}}}return this.setContinue(),this.flags}}class zh extends hh{run(e){const t=e.parent,n=t.children.filter(e=>e instanceof vh),i={};for(const e of n){const t=Xr(e.groupBy);t in i||(i[t]=[]),i[t].push(e)}for(const e of oo(i)){const n=i[e];if(n.length>1){const e=n.pop();for(const i of n)e.merge(i)&&(t.removeChild(i),i.parent=e,i.remove(),this.setMutated())}}return this.setContinue(),this.flags}}class Uh extends hh{constructor(e){super(),this.model=e}run(e){const t=e.parent,n=!(gh(t)||t instanceof Lg||t instanceof Oh||t instanceof jh),i=[],r=[];for(const e of t.children)e instanceof uh&&(n&&!ro(t.producedFields(),e.dependentFields())?i.push(e):r.push(e));if(i.length>0){const e=i.pop();for(const t of i)e.merge(t,this.model.renameSignal.bind(this.model));this.setMutated(),t instanceof uh?t.merge(e,this.model.renameSignal.bind(this.model)):e.swapWithParent()}if(r.length>1){const e=r.pop();for(const t of r)e.merge(t,this.model.renameSignal.bind(this.model));this.setMutated()}return this.setContinue(),this.flags}}class Ph extends hh{run(e){const t=e.parent,n=[...t.children];if(!Zr(n,e=>e instanceof td)||t.numChildren()<=1)return this.setContinue(),this.flags;const i=[];let r;for(const e of n)if(e instanceof td){let n=e;for(;1===n.numChildren();){const e=n.children[0];if(!(e instanceof td))break;n=e}i.push(...n.children),r?(t.removeChild(e),e.parent=r.parent,r.parent.removeChild(r),r.parent=n,this.setMutated()):r=n}else i.push(e);if(i.length){this.setMutated();for(const e of i)e.parent.removeChild(e),e.parent=r}return this.setContinue(),this.flags}}const Lh="scale_";function Rh(e){const t=[];return e.forEach((function e(n){0===n.numChildren()?t.push(n):n.children.forEach(e)})),t}function qh(e){return e}function Ih(e,t){return t.map(t=>{if(e instanceof hh){const n=e.optimizeNextFromLeaves(t);return e.reset(),n}return e.run(t)}).some(qh)}function Wh(e,t){let n=e.sources;const i=new Set;return i.add(Ih(new Bh,n)),i.add(Ih(new _h(t),n)),n=n.filter(e=>e.numChildren()>0),i.add(Ih(new Sh,Rh(n))),n=n.filter(e=>e.numChildren()>0),i.add(Ih(new kh,Rh(n))),i.add(Ih(new Uh(t),Rh(n))),i.add(Ih(new $h,Rh(n))),i.add(Ih(new Th,Rh(n))),i.add(Ih(new zh,Rh(n))),i.add(Ih(new Nh,Rh(n))),i.add(Ih(new Eh,n)),i.add(Ih(new Ph,Rh(n))),e.sources=n,i.has(!0)}class Hh{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,t){return new Hh(()=>e(t))}}function Gh(e){bm(e)?function(e){const t=e.component.scales;for(const n of oo(t)){const i=Yh(e,n);if(t[n].setWithExplicit("domains",i),Qh(e,n),e.component.data.isFaceted){let t=e;for(;!vm(t)&&t.parent;)t=t.parent;if("shared"===t.component.resolve.scale[n])for(const e of i.value)Wa(e)&&(e.data=Lh+e.data.replace(Lh,""))}}}(e):function(e){for(const t of e.children)Gh(t);const t=e.component.scales;for(const n of oo(t)){let i,r=null;for(const t of e.children){const e=t.component.scales[n];if(e){i=void 0===i?e.getWithExplicit("domains"):Np(i,e.getWithExplicit("domains"),"domains","scale",Kh);const t=e.get("selectionExtent");r&&t&&r.selection!==t.selection&&as("The same selection must be used to override scale domains in a layered view."),r=t}}t[n].setWithExplicit("domains",i),r&&t[n].set("selectionExtent",r,!0)}}(e)}function Yh(e,t){const n=e.getScaleComponent(t).get("type"),i=function(e,t,n,i){if("unaggregated"===e){const{valid:e,reason:i}=Zh(t,n);if(!e)return void as(i)}else if(void 0===e&&i.useUnaggregatedDomain){const{valid:e}=Zh(t,n);if(e)return"unaggregated"}return e}(e.scaleDomain(t),e.fieldDef(t),n,e.config.scale);return i!==e.scaleDomain(t)&&(e.specifiedScales[t]=Object.assign(Object.assign({},e.specifiedScales[t]),{domain:i})),"x"===t&&e.channelHasField("x2")?e.channelHasField("x")?Np(Xh(n,i,e,"x"),Xh(n,i,e,"x2"),"domain","scale",Kh):Xh(n,i,e,"x2"):"y"===t&&e.channelHasField("y2")?e.channelHasField("y")?Np(Xh(n,i,e,"y"),Xh(n,i,e,"y2"),"domain","scale",Kh):Xh(n,i,e,"y2"):Xh(n,i,e,t)}function Vh(e,t,n){var i;const r=null===(i=Ds(n))||void 0===i?void 0:i.unit;return"temporal"===t||r?function(e,t,n){return e.map(e=>({signal:`{data: ${oc(e,{timeUnit:n,type:t})}}`}))}(e,t,r):[e]}function Xh(e,t,n,i){const r=n.fieldDef(i),o=n.fieldDef(Oa(i));if(function(e){return e&&e.unionWith}(t)){const a=Xh(e,void 0,n,i),s=Vh(t.unionWith,o.type,r.timeUnit);return kp([...a.value,...s])}if(qa(t))return kp([t]);if(t&&"unaggregated"!==t&&!ru(t))return kp(Vh(t,o.type,r.timeUnit));const s=n.stack;if(s&&i===s.fieldChannel){if("normalize"===s.offset)return Ep([[0,1]]);const e=n.requestDataName(Hl);return Ep([{data:e,field:n.vgField(i,{suffix:"start"})},{data:e,field:n.vgField(i,{suffix:"end"})}])}const u=_a(i)?function(e,t,n){if(!eu(n))return;const i=e.fieldDef(t),r=i.sort;if(Fu(r))return{op:"min",field:ip(i,t),order:"ascending"};const{stack:o}=e,a=o?[...o.groupbyField?[o.groupbyField]:[],...o.stackBy.map(e=>e.fieldDef.field)]:void 0;if(Cu(r)){const e=o&&!Qr(a,r.field);return Jh(r,e)}if(Ou(r)){const{encoding:t,order:n}=r,i=e.fieldDef(t),{aggregate:s,field:u}=i,c=o&&!Qr(a,u);if(qo(s)||Io(s))return Jh({field:Ru(i),order:n},c);if(Wo(s)||!s)return Jh({op:s,field:u,order:n},c)}else{if("descending"===r)return{op:"min",field:e.vgField(t),order:"descending"};if(Qr(["ascending",void 0],r))return!0}return}(n,i,e):void 0;if("unaggregated"===t){const e=n.requestDataName(Hl),{field:t}=r;return Ep([{data:e,field:Ru({field:t,aggregate:"min"})},{data:e,field:Ru({field:t,aggregate:"max"})}])}if(cc(r.bin)){if(eu(e))return Ep("bin-ordinal"===e?[]:[{data:so(u)?n.requestDataName(Hl):n.requestDataName("raw"),field:n.vgField(i,sc(r,i)?{binSuffix:"range"}:{}),sort:!0!==u&&a(u)?u:{field:n.vgField(i,{}),op:"min"}}]);{const{bin:e}=r;if(cc(e)){const t=ah(n,r.field,e);return Ep([new Hh(()=>{const e=n.getSignalName(t);return`[${e}.start, ${e}.stop]`})])}return Ep([{data:n.requestDataName(Hl),field:n.vgField(i,{})}])}}if(r.timeUnit&&Qr(["time","utc"],e)&&$u(i,r,bm(n)?n.encoding[Ca(i)]:void 0,n.markDef,n.config)){const e=n.requestDataName(Hl);return Ep([{data:e,field:n.vgField(i)},{data:e,field:n.vgField(i,{suffix:"end"})}])}return Ep(u?[{data:so(u)?n.requestDataName(Hl):n.requestDataName("raw"),field:n.vgField(i),sort:u}]:[{data:n.requestDataName(Hl),field:n.vgField(i)}])}function Jh(e,t){const{op:n,field:i,order:r}=e;return Object.assign(Object.assign({op:null!=n?n:t?"sum":xu},i?{field:ho(i)}:{}),r?{order:r}:{})}function Qh(e,t){const n=e.component.scales[t],i=e.specifiedScales[t].domain,r=e.fieldDef(t).bin,o=ru(i)&&i,a=fc(r)&&dc(r.extent)&&r.extent;(o||a)&&n.set("selectionExtent",null!=o?o:a,!0)}function Zh(e,t){const{aggregate:n,type:i}=e;return n?s(n)&&!Vo[n]?{valid:!1,reason:is.unaggregateDomainWithNonSharedDomainOp(n)}:"quantitative"===i&&"log"===t?{valid:!1,reason:is.unaggregatedDomainWithLogScale(e)}:{valid:!0}:{valid:!1,reason:is.unaggregateDomainHasNoEffectForRawField(e)}}function Kh(e,t,n,i){return e.explicit&&t.explicit&&as(is.mergeConflictingDomainProperty(n,i,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function em(e){if(Wa(e)&&s(e.field))return e.field;if(function(e){return!o(e)&&("fields"in e&&!("data"in e))}(e)){let t;for(const n of e.fields)if(Wa(n)&&s(n.field))if(t){if(t!==n.field)return as("Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect."),t}else t=n.field;return as("Detected faceted independent scales that union domain of identical fields from different source detected. We will assume that this is the same field from a different fork of the same data source. However, if this is not case, the result view size maybe incorrect."),t}if(function(e){return!o(e)&&("fields"in e&&"data"in e)}(e)){as("Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.");const t=e.fields[0];return s(t)?t:void 0}}function tm(e,t){return function(e){const t=to(e.map(e=>{if(Wa(e)){return w(e,["sort"])}return e}),Xr),n=to(e.map(e=>{if(Wa(e)){const t=e.sort;return void 0===t||so(t)||("op"in t&&"count"===t.op&&delete t.field,"ascending"===t.order&&delete t.order),t}}).filter(e=>void 0!==e),Xr);if(0===t.length)return;if(1===t.length){const t=e[0];if(Wa(t)&&n.length>0){let e=n[0];if(n.length>1)as(is.MORE_THAN_ONE_SORT),e=!0;else if(a(e)&&"field"in e){const n=e.field;t.field===n&&(e=!e.order||{order:e.order})}return Object.assign(Object.assign({},t),{sort:e})}return t}const i=to(n.map(e=>so(e)||!("op"in e)||e.op in Ro?e:(as(is.domainSortDropped(e)),!0)),Xr);let r;1===i.length?r=i[0]:i.length>1&&(as(is.MORE_THAN_ONE_SORT),r=!0);const o=to(e.map(e=>Wa(e)?e.data:null),e=>e);if(1===o.length&&null!==o[0]){return Object.assign({data:o[0],fields:t.map(e=>e.field)},r?{sort:r}:{})}return Object.assign({fields:t},r?{sort:r}:{})}(e.component.scales[t].get("domains").map(t=>(Wa(t)&&(t.data=e.lookupDataSource(t.data)),t)))}function nm(e){return oo(e.component.scales).reduce((t,n)=>{const i=e.component.scales[n];if(i.merged)return t;const r=i.combine(),{name:o,type:a,selectionExtent:s,domains:u,range:c,reverse:l}=r,f=w(r,["name","type","selectionExtent","domains","range","reverse"]),d=function(e,t,n){if(("x"===n||"y"===n)&&Ia(e))return{step:{signal:t+"_step"}};return e}(r.range,o,n);let g;s&&(g=function(e,t){const n=t.selection;return{signal:qg(e.getSelectionComponent(n,uo(n)),t)}}(e,s));const p=tm(e,n);return t.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:o,type:a},p?{domain:p}:{}),g?{domainRaw:g}:{}),{range:d}),void 0!==l?{reverse:l}:{}),f)),t},[])}class im extends jp{constructor(e,t){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",t)}domainDefinitelyIncludesZero(){return!1!==this.get("zero")||Zr(this.get("domains"),e=>o(e)&&2===e.length&&e[0]<=0&&e[1]>=0)}}const rm=["range","scheme"];function om(e){return"x"===e?"width":"y"===e?"height":void 0}function am(e){const t=e.component.scales;Ba.forEach(n=>{const i=t[n];if(!i)return;const r=function(e,t){const n=t.specifiedScales[e],{size:i}=t,r=t.getScaleComponent(e).get("type");for(const t of rm)if(void 0!==n[t]){const i=su(r,t),o=uu(e,t);if(i)if(o)as(o);else switch(t){case"range":return kp(n[t]);case"scheme":return kp(um(n[t]))}else as(is.scalePropertyNotWorkWithScaleType(r,t,e))}if(e===Jo||e===Qo){const t=e===Jo?"width":"height",n=i[t];if(tl(n)){if(eu(r))return kp({step:n.step});as(is.stepDropped(t))}}return Ep(function(e,t){const{size:n,config:i,mark:r}=t,a=t.getSignalName.bind(t),{type:s}=t.fieldDef(e),u=t.getScaleComponent(e).get("type"),{domain:c,domainMid:l}=t.specifiedScales[e];switch(e){case Jo:case Qo:{if(Qr(["point","band"],u))if(e!==Jo||n.width){if(e===Qo&&!n.height){const e=al(i.view,"height");if(tl(e))return e}}else{const e=al(i.view,"width");if(tl(e))return e}const r=om(e),o=t.getName(r);return e===Qo&&tu(u)?[Hh.fromName(a,o),0]:[0,Hh.fromName(a,o)]}case ra:{const a=t.component.scales[e].get("zero"),s=function e(t,n,i){if(n)return qa(n)?{signal:`${n.signal} ? 0 : ${e(t,!1,i)}`}:0;switch(t){case"bar":case"tick":return i.scale.minBandSize;case"line":case"trail":case"rule":return i.scale.minStrokeWidth;case"text":return i.scale.minFontSize;case"point":case"square":case"circle":return i.scale.minSize}throw new Error(is.incompatibleChannel("size",t))}(r,a,i),l=function(e,t,n,i){const r={x:sm(n,"x"),y:sm(n,"y")};switch(e){case"bar":case"tick":{if(void 0!==i.scale.maxBandSize)return i.scale.maxBandSize;const e=cm(t,r,i.view);return y(e)?e-1:new Hh(()=>`${e.signal} - 1`)}case"line":case"trail":case"rule":return i.scale.maxStrokeWidth;case"text":return i.scale.maxFontSize;case"point":case"square":case"circle":{if(i.scale.maxSize)return i.scale.maxSize;const e=cm(t,r,i.view);return y(e)?Math.pow(.95*e,2):new Hh(()=>`pow(0.95 * ${e.signal}, 2)`)}}throw new Error(is.incompatibleChannel("size",e))}(r,n,t,i);return iu(u)?function(e,t,n){const i=()=>{const i=qa(t)?t.signal:t,r=qa(e)?e.signal:e,o=`(${i} - ${r}) / (${n} - 1)`;return`sequence(${r}, ${i} + ${o}, ${o})`};return qa(t)?new Hh(i):{signal:i()}}(s,l,function(e,t,n,i){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return void 0!==n&&o(n)?n.length+1:(as(is.domainRequiredForThresholdScale(i)),3)}}(u,i,c,e)):[s,l]}case ua:return[i.scale.minStrokeWidth,i.scale.maxStrokeWidth];case ca:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case ia:return"symbol";case ea:case ta:case na:return"ordinal"===u?"nominal"===s?"category":"ordinal":void 0!==l?"diverging":"rect"===r||"geoshape"===r?"heatmap":"ramp";case oa:case aa:case sa:return[i.scale.minOpacity,i.scale.maxOpacity]}throw new Error(`Scale range undefined for channel ${e}`)}(e,t))}(n,e);i.setWithExplicit("range",r)})}function sm(e,t){const n=e.fieldDef(t);if(n&&n.bin&&cc(n.bin)){const i=ah(e,n.field,n.bin),r=om(t),o=e.getName(r);return new Hh(()=>{const t=e.getSignalName(i),n=`(${t}.stop - ${t}.start) / ${t}.step`;return`${e.getSignalName(o)} / (${n})`})}}function um(e){return function(e){return!s(e)&&!!e.name}(e)?Object.assign({scheme:e.name},Yr(e,["name"])):{scheme:e}}function cm(e,t,n){const i=tl(e.width)?e.width.step:ol(n,"width"),r=tl(e.height)?e.height.step:ol(n,"height");return t.x||t.y?new Hh(()=>`min(${[t.x?t.x.signal:i,t.y?t.y.signal:r].join(", ")})`):Math.min(i,r)}function lm(e,t){bm(e)?function(e,t){const n=e.component.scales;oo(n).forEach(i=>{const r=e.specifiedScales[i],a=n[i],s=e.getScaleComponent(i),u=e.fieldDef(i),c=e.config,l=r[t],f=s.get("type"),d=su(f,t),g=uu(i,t);if(void 0!==l&&(d?g&&as(g):as(is.scalePropertyNotWorkWithScaleType(f,t,i))),d&&void 0===g)if(void 0!==l)a.copyKeyFromObject(t,r);else{const n=function(e,t,n,i,r,a,s,u,c,l){const f=l.scale,{type:d,sort:g}=i;switch(e){case"bins":return function(e,t){const n=t.bin;if(cc(n)){const i=ah(e,t.field,n);return new Hh(()=>e.getSignalName(i))}if(lc(n)&&fc(n)&&void 0!==n.step)return{step:n.step};return}(t,i);case"interpolate":return function(e,t){if(Qr([ea,ta,na],e)&&"nominal"!==t)return"hcl";return}(n,d);case"nice":return function(e,t,n){if(n.bin||Qr([Rs.TIME,Rs.UTC],e))return;return!!Qr([Jo,Qo],t)||void 0}(r,n,i);case"padding":return function(e,t,n,i,r,o){if(Qr([Jo,Qo],e)){if(nu(t)){if(void 0!==n.continuousPadding)return n.continuousPadding;const{type:t,orient:a}=r;if("bar"===t&&!i.bin&&!i.timeUnit&&("vertical"===a&&"x"===e||"horizontal"===a&&"y"===e))return o.continuousBandSize}if(t===Rs.POINT)return n.pointPadding}return}(n,r,f,i,c,l.bar);case"paddingInner":return function(e,t,n,i){if(void 0!==e)return;if(Qr([Jo,Qo],t)){const{bandPaddingInner:e,barBandPaddingInner:t,rectBandPaddingInner:r}=i;return vo(e,"bar"===n?t:r)}return}(a,n,c.type,f);case"paddingOuter":return function(e,t,n,i,r,o){if(void 0!==e)return;if(Qr([Jo,Qo],t)&&n===Rs.BAND){const{bandPaddingOuter:e}=o;return vo(e,qa(r)?{signal:`${r.signal}/2`}:r/2)}return}(a,n,r,c.type,s,f);case"reverse":return function(e,t,n,i){const r=tu(e)&&"descending"===t;if("x"===n&&void 0!==i.xReverse)return r?qa(i.xReverse)?{signal:`!${i.xReverse.signal}`}:!i.xReverse:i.xReverse;if(r)return!0;return}(r,g,n,f);case"zero":return function(e,t,n,i,r){if(n&&"unaggregated"!==n&&tu(r)){if(o(n)){const e=n[0],t=n[n.length-1];if(e<=0&&t>=0)return!0}return!1}if("size"===e&&"quantitative"===t.type&&!iu(r))return!0;if(!t.bin&&Qr([Jo,Qo],e)){const{orient:t,type:n}=i;return!Qr(["bar","area","line","trail"],n)||!("horizontal"===t&&"y"===e||"vertical"===t&&"x"===e)}return!1}(n,i,u,c,r)}return f[e]}(t,e,i,u,s.get("type"),s.get("padding"),s.get("paddingInner"),r.domain,e.markDef,c);void 0!==n&&a.set(t,n,!1)}})}(e,t):dm(e,t)}function fm(e){bm(e)?am(e):dm(e,"range")}function dm(e,t){const n=e.component.scales;for(const n of e.children)"range"===t?fm(n):lm(n,t);oo(n).forEach(i=>{let r;for(const n of e.children){const e=n.component.scales[i];if(e){r=Np(r,e.getWithExplicit(t),t,"scale",Sp((e,n)=>{switch(t){case"range":return e.step&&n.step?e.step-n.step:0}return 0}))}}n[i].setWithExplicit(t,r)})}function gm(e,t,n,i){const r=function(e,t,n){switch(t.type){case"nominal":case"ordinal":return ga(e)||"discrete"===Pa(e)?("shape"===e&&"ordinal"===t.type&&as(is.discreteChannelCannotEncode(e,"ordinal")),"ordinal"):Qr(["x","y"],e)&&Qr(["rect","bar","image","rule"],n)?"band":"point";case"temporal":return ga(e)?"time":"discrete"===Pa(e)?(as(is.discreteChannelCannotEncode(e,"temporal")),"ordinal"):t.timeUnit&&Ds(t.timeUnit).utc?"utc":"time";case"quantitative":return ga(e)?cc(t.bin)?"bin-ordinal":"linear":"discrete"===Pa(e)?(as(is.discreteChannelCannotEncode(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(is.invalidFieldType(t.type))}(t,n,i),{type:o}=e;return _a(t)?void 0!==o?lu(t,o)?cu(o,n.type)?o:(as(is.scaleTypeNotWorkWithFieldDef(o,r)),r):(as(is.scaleTypeNotWorkWithChannel(t,o,r)),r):r:null}function pm(e){bm(e)?e.component.scales=function(e){const{encoding:t,mark:n}=e;return Ba.reduce((i,r)=>{let o,a;const s=t[r];if(Bu(s)&&"geoshape"===n&&r===ia&&"geojson"===s.type)return i;if(Bu(s)?(o=s,a=s.scale):Mu(s)&&(o=s.condition,a=s.condition.scale),o&&null!==a&&!1!==a){a=null!=a?a:{};const t=gm(a,r,o,n);i[r]=new im(e.scaleName(r+"",!0),{value:t,explicit:a.type===t})}return i},{})}(e):e.component.scales=function(e){const t=e.component.scales={},n={},i=e.component.resolve;for(const t of e.children)pm(t),oo(t.component.scales).forEach(r=>{var o;if(i.scale[r]=null!==(o=i.scale[r])&&void 0!==o?o:Fp(r,e),"shared"===i.scale[r]){const e=n[r],o=t.component.scales[r].getWithExplicit("type");e?Ws(e.value,o.value)?n[r]=Np(e,o,"type","scale",hm):(i.scale[r]="independent",delete n[r]):n[r]=o}});for(const i of oo(n)){const r=e.scaleName(i,!0),o=n[i];t[i]=new im(r,o);for(const t of e.children){const e=t.component.scales[i];e&&(t.renameScale(e.get("name"),r),e.merged=!0)}}return t}(e)}const hm=Sp((e,t)=>Gs(e)-Gs(t));class mm{constructor(){this.nameMap={}}rename(e,t){this.nameMap[e]=t}has(e){return void 0!==this.nameMap[e]}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function bm(e){return"unit"===(null==e?void 0:e.type)}function vm(e){return"facet"===(null==e?void 0:e.type)}function ym(e){return"repeat"===(null==e?void 0:e.type)}function xm(e){return"concat"===(null==e?void 0:e.type)}function wm(e){return"layer"===(null==e?void 0:e.type)}class Am{constructor(e,t,n,i,r,a,s,u){var c,l;this.type=t,this.parent=n,this.config=r,this.repeater=a,this.view=u,this.children=[],this.correctDataNames=e=>(e.from&&e.from.data&&(e.from.data=this.lookupDataSource(e.from.data)),e.from&&e.from.facet&&e.from.facet.data&&(e.from.facet.data=this.lookupDataSource(e.from.facet.data)),e),this.parent=n,this.config=r,this.repeater=a,this.name=null!==(c=e.name)&&void 0!==c?c:i,this.title=Ra(e.title)?{text:e.title}:e.title,this.scaleNameMap=n?n.scaleNameMap:new mm,this.projectionNameMap=n?n.projectionNameMap:new mm,this.signalNameMap=n?n.signalNameMap:new mm,this.data=e.data,this.description=e.description,this.transforms=(null!==(l=e.transform)&&void 0!==l?l:[]).map(e=>Gl(e)?{filter:Ir(e.filter,Ps)}:e),this.layout="layer"===t||"unit"===t?{}:function(e,t,n){var i,r;const a=n[t],s={},{spacing:u,columns:c}=a;void 0!==u&&(s.spacing=u),void 0!==c&&(ju(e)&&!Du(e.facet)||el(e)&&o(e.repeat)||Qc(e))&&(s.columns=c),Zc(e)&&(s.columns=1);for(const t of il)if(void 0!==e[t])if("spacing"===t){const n=e[t];s[t]=y(n)?n:{row:null!==(i=n.row)&&void 0!==i?i:u,column:null!==(r=n.column)&&void 0!==r?r:u}}else s[t]=e[t];return s}(e,t,r),this.component={data:{sources:n?n.component.data.sources:[],outputNodes:n?n.component.data.outputNodes:{},outputNodeRefCounts:n?n.component.data.outputNodeRefCounts:{},isFaceted:ju(e)||n&&n.component.data.isFaceted&&void 0===e.data},layoutSize:new jp,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},s?Hr(s):{}),selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){!function(e,{ignoreRange:t}={}){pm(e),Gh(e);for(const t of au)lm(e,t);t||fm(e)}(this)}parseProjection(){rh(this)}renameTopLevelLayoutSizeSignal(){"width"!==this.getName("width")&&this.renameSignal(this.getName("width"),"width"),"height"!==this.getName("height")&&this.renameSignal(this.getName("height"),"height")}parseLegends(){Gp(this)}assembleGroupStyle(){var e,t;if("unit"===this.type||"layer"===this.type)return null!==(t=null===(e=this.view)||void 0===e?void 0:e.style)&&void 0!==t?t:"cell"}assembleEncodeFromView(e){const t=w(e,["style"]),n={};for(const e of oo(t)){const i=t[e];void 0!==i&&(n[e]=Ya(i))}return n}assembleGroupEncodeEntry(e){let t=void 0;return this.view&&(t=this.assembleEncodeFromView(this.view)),e||"unit"!==this.type&&"layer"!==this.type?t:Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},null!=t?t:{})}assembleLayout(){if(!this.layout)return;const e=this.layout,{spacing:t}=e,n=w(e,["spacing"]),{component:i,config:r}=this,o=function(e,t){const n={};for(const i of ha){const r=e[i];if(null==r?void 0:r.facetFieldDef){const{titleAnchor:e,titleOrient:o}=ap(["titleAnchor","titleOrient"],r.facetFieldDef,t,i),a=rp(i,o),s=bp(e,a);void 0!==s&&(n[a]=s)}}return oo(n).length>0?n:void 0}(i.layoutHeaders,r);return Object.assign(Object.assign(Object.assign({padding:t},this.assembleDefaultLayout()),n),o?{titleBand:o}:{})}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let t=[];for(const n of ha)e[n].title&&t.push(cp(this,n));for(const e of sp)t=t.concat(dp(this,e));return t}assembleAxes(){return function(e,t){const{x:n=[],y:i=[]}=e;return[...n.map(e=>Gg(e,"grid",t)),...i.map(e=>Gg(e,"grid",t)),...n.map(e=>Gg(e,"main",t)),...i.map(e=>Gg(e,"main",t))].filter(e=>e)}(this.component.axes,this.config)}assembleLegends(){return Zp(this)}assembleProjections(){return eh(this)}assembleTitle(){var e,t,n;const i=null!==(e=this.title)&&void 0!==e?e:{},{encoding:r}=i,o=w(i,["encoding"]),a=Object.assign(Object.assign(Object.assign({},La(this.config.title).nonMark),o),r?{encode:{update:r}}:{});if(a.text)return Qr(["unit","layer"],this.type)?Qr(["middle",void 0],a.anchor)&&(a.frame=null!==(t=a.frame)&&void 0!==t?t:"group"):a.anchor=null!==(n=a.anchor)&&void 0!==n?n:"start",oo(a).length>0?a:void 0}assembleGroup(e=[]){const t={};(e=e.concat(this.assembleSignals())).length>0&&(t.signals=e);const n=this.assembleLayout();n&&(t.layout=n),t.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||vm(this.parent)?function e(t){return wm(t)||xm(t)||ym(t)?t.children.reduce((t,n)=>t.concat(e(n)),nm(t)):nm(t)}(this):[];i.length>0&&(t.scales=i);const r=this.assembleAxes();r.length>0&&(t.axes=r);const o=this.assembleLegends();return o.length>0&&(t.legends=o),t}getName(e){return uo((this.name?this.name+"_":"")+e)}requestDataName(e){var t;const n=this.getName(e),i=this.component.data.outputNodeRefCounts;return i[n]=(null!==(t=i[n])&&void 0!==t?t:0)+1,n}getSizeSignalRef(e){if(vm(this.parent)){const t=Sa(Op(e)),n=this.component.scales[t];if(n&&!n.merged){const e=n.get("type"),i=n.get("range");if(eu(e)&&Ia(i)){const e=n.get("name"),i=em(tm(this,t));if(i){return{signal:Ap(e,n,Ru({aggregate:"distinct",field:i},{expr:"datum"}))}}return as(`Unknown field for ${t}. Cannot calculate view size.`),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const t=this.component.data.outputNodes[e];return t?t.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,t){this.signalNameMap.rename(e,t)}renameScale(e,t){this.scaleNameMap.rename(e,t)}renameProjection(e,t){this.projectionNameMap.rename(e,t)}scaleName(e,t){return t?this.getName(e):xa(e)&&_a(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e))?this.scaleNameMap.get(this.getName(e)):void 0}projectionName(e){return e?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const t=this.component.scales[e];return t&&!t.merged?t:this.parent?this.parent.getScaleComponent(e):void 0}getSelectionComponent(e,t){let n=this.component.selection[e];if(!n&&this.parent&&(n=this.parent.getSelectionComponent(e,t)),!n)throw new Error(is.selectionNotFound(t));return n}}class Om extends Am{vgField(e,t={}){const n=this.fieldDef(e);if(n)return Ru(n,t)}reduceFieldDef(e,t){return xc(this.getMapping(),(t,n,i)=>{const r=Qu(n);return r?e(t,r,i):t},t)}forEachFieldDef(e,t){yc(this.getMapping(),(t,n)=>{const i=Qu(t);i&&e(i,n)},t)}}class Cm extends ed{constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=Hr(t);const o=null!==(n=this.transform.as)&&void 0!==n?n:[void 0,void 0];this.transform.as=[null!==(i=o[0])&&void 0!==i?i:"value",null!==(r=o[1])&&void 0!==r?r:"density"]}clone(){return new Cm(null,Hr(this.transform))}dependentFields(){var e;return new Set([this.transform.density,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${Xr(this.transform)}`}assemble(){const e=this.transform,{density:t}=e,n=w(e,["density"]);return Object.assign({type:"kde",field:t},n)}}class Fm extends ed{constructor(e,t){super(e),this.filter=t}clone(){return new Fm(null,Object.assign({},this.filter))}static make(e,t){const{config:n,mark:i,markDef:r}=t;if("filter"!==Xa("invalid",r,n))return null;const o=t.reduceFieldDef((e,n,r)=>{const o=_a(r)&&t.getScaleComponent(r);if(o){tu(o.get("type"))&&"count"!==n.aggregate&&!Eo(i)&&(e[n.field]=n)}return e},{});return oo(o).length?new Fm(e,o):null}dependentFields(){return new Set(oo(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${Xr(this.filter)}`}assemble(){const e=oo(this.filter).reduce((e,t)=>{const n=this.filter[t],i=Ru(n,{expr:"datum"});return null!==n&&("temporal"===n.type?e.push(`(isDate(${i}) || (isValid(${i}) && isFinite(+${i})))`):"quantitative"===n.type&&(e.push(`isValid(${i})`),e.push(`isFinite(+${i})`))),e},[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}class Dm extends ed{constructor(e,t){super(e),this.transform=t,this.transform=Hr(t);const{flatten:n,as:i=[]}=this.transform;this.transform.as=n.map((e,t)=>{var n;return null!==(n=i[t])&&void 0!==n?n:e})}clone(){return new Dm(this.parent,Hr(this.transform))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${Xr(this.transform)}`}assemble(){const{flatten:e,as:t}=this.transform;return{type:"flatten",fields:e,as:t}}}class jm extends ed{constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=Hr(t);const o=null!==(n=this.transform.as)&&void 0!==n?n:[void 0,void 0];this.transform.as=[null!==(i=o[0])&&void 0!==i?i:"key",null!==(r=o[1])&&void 0!==r?r:"value"]}clone(){return new jm(null,Hr(this.transform))}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${Xr(this.transform)}`}assemble(){const{fold:e,as:t}=this.transform;return{type:"fold",fields:e,as:t}}}class km extends ed{constructor(e,t,n,i){super(e),this.fields=t,this.geojson=n,this.signal=i}clone(){return new km(null,Hr(this.fields),this.geojson,this.signal)}static parseAll(e,t){if(t.component.projection&&!t.component.projection.isFit)return e;let n=0;for(const i of[["longitude","latitude"],["longitude2","latitude2"]]){const r=i.map(e=>t.channelHasField(e)?t.fieldDef(e).field:zu(t.encoding[e])?{expr:t.encoding[e].value+""}:void 0);(r[0]||r[1])&&(e=new km(e,r,null,t.getName(`geojson_${n++}`)))}if(t.channelHasField(ia)){const i=t.fieldDef(ia);"geojson"===i.type&&(e=new km(e,null,i.field,t.getName(`geojson_${n++}`)))}return e}dependentFields(){var e;const t=(null!==(e=this.fields)&&void 0!==e?e:[]).filter(s);return new Set([...this.geojson?[this.geojson]:[],...t])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${Xr(this.fields)}`}assemble(){return Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})}}class Em extends ed{constructor(e,t,n,i){super(e),this.projection=t,this.fields=n,this.as=i}clone(){return new Em(null,this.projection,Hr(this.fields),Hr(this.as))}static parseAll(e,t){if(!t.projectionName())return e;for(const n of[["longitude","latitude"],["longitude2","latitude2"]]){const i=n.map(e=>t.channelHasField(e)?t.fieldDef(e).field:zu(t.encoding[e])?{expr:t.encoding[e].value+""}:void 0),r="longitude2"===n[0]?"2":"";(i[0]||i[1])&&(e=new Em(e,t.projectionName(),i,[t.getName("x"+r),t.getName("y"+r)]))}return e}dependentFields(){return new Set(this.fields.filter(s))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${Xr(this.fields)} ${Xr(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Sm extends ed{constructor(e,t){super(e),this.transform=t}clone(){return new Sm(null,Hr(this.transform))}dependentFields(){var e;return new Set([this.transform.impute,this.transform.key,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:t=0,stop:n,step:i}=e;return{signal:`sequence(${[t,n,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,t){return new Sm(e,t)}static makeFromEncoding(e,t){const n=t.encoding,i=n.x,r=n.y;if(Bu(i)&&Bu(r)){const o=i.impute?i:r.impute?r:void 0;if(void 0===o)return;const a=i.impute?r:r.impute?i:void 0,{method:s,value:u,frame:c,keyvals:l}=o.impute,f=wc(t.mark,n);return new Sm(e,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:o.field,key:a.field},s?{method:s}:{}),void 0!==u?{value:u}:{}),c?{frame:c}:{}),void 0!==l?{keyvals:l}:{}),f.length?{groupby:f}:{}))}return null}hash(){return`Impute ${Xr(this.transform)}`}assemble(){const{impute:e,key:t,keyvals:n,method:i,groupby:r,value:o,frame:a=[null,null]}=this.transform,s=Object.assign(Object.assign(Object.assign(Object.assign({type:"impute",field:e,key:t},n?{keyvals:(u=n,void 0!==(null==u?void 0:u.stop)?this.processSequence(n):n)}:{}),{method:"value"}),r?{groupby:r}:{}),{value:i&&"value"!==i?null:o});var u;if(i&&"value"!==i){return[s,Object.assign({type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:a,ignorePeers:!1},r?{groupby:r}:{}),{type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e}]}return[s]}}class $m extends jp{constructor(e={},t={},n=!1){super(e,t),this.explicit=e,this.implicit=t,this.parseNothing=n}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}class Nm extends ed{constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=Hr(t);const o=null!==(n=this.transform.as)&&void 0!==n?n:[void 0,void 0];this.transform.as=[null!==(i=o[0])&&void 0!==i?i:t.on,null!==(r=o[1])&&void 0!==r?r:t.loess]}clone(){return new Nm(null,Hr(this.transform))}dependentFields(){var e;return new Set([this.transform.loess,this.transform.on,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${Xr(this.transform)}`}assemble(){const e=this.transform,{loess:t,on:n}=e,i=w(e,["loess","on"]);return Object.assign({type:"loess",x:n,y:t},i)}}class Mm extends ed{constructor(e,t,n){super(e),this.transform=t,this.secondary=n}clone(){return new Mm(null,Hr(this.transform),this.secondary)}static make(e,t,n,i){const r=t.component.data.sources,{from:o}=n;let a=null;if(function(e){return void 0!==e.data}(o)){let e=eb(o.data,r);e||(e=new ch(o.data),r.push(e));const n=t.getName(`lookup_${i}`);a=new td(e,n,"lookup",t.component.data.outputNodeRefCounts),t.component.data.outputNodes[n]=a}else if(function(e){return void 0!==e.selection}(o)){const e=o.selection;if(n=Object.assign({as:e},n),a=t.getSelectionComponent(uo(e),e).materialized,!a)throw new Error(is.noSameUnitLookup(e))}return new Mm(e,n,a.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?h(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${Xr({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e=Object.assign({values:this.transform.from.fields},this.transform.as?{as:h(this.transform.as)}:{});else{let t=this.transform.as;s(t)||(as(is.NO_FIELDS_NEEDS_AS),t="_lookup"),e={as:[t]}}return Object.assign(Object.assign({type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup]},e),this.transform.default?{default:this.transform.default}:{})}}class Bm extends ed{constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=Hr(t);const o=null!==(n=this.transform.as)&&void 0!==n?n:[void 0,void 0];this.transform.as=[null!==(i=o[0])&&void 0!==i?i:"prob",null!==(r=o[1])&&void 0!==r?r:"value"]}clone(){return new Bm(null,Hr(this.transform))}dependentFields(){var e;return new Set([this.transform.quantile,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${Xr(this.transform)}`}assemble(){const e=this.transform,{quantile:t}=e,n=w(e,["quantile"]);return Object.assign({type:"quantile",field:t},n)}}class _m extends ed{constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=Hr(t);const o=null!==(n=this.transform.as)&&void 0!==n?n:[void 0,void 0];this.transform.as=[null!==(i=o[0])&&void 0!==i?i:t.on,null!==(r=o[1])&&void 0!==r?r:t.regression]}clone(){return new _m(null,Hr(this.transform))}dependentFields(){var e;return new Set([this.transform.regression,this.transform.on,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${Xr(this.transform)}`}assemble(){const e=this.transform,{regression:t,on:n}=e,i=w(e,["regression","on"]);return Object.assign({type:"regression",x:n,y:t},i)}}class Tm extends ed{constructor(e,t){super(e),this.transform=t}clone(){return new Tm(null,Hr(this.transform))}addDimensions(e){var t;this.transform.groupby=to((null!==(t=this.transform.groupby)&&void 0!==t?t:[]).concat(e),e=>e)}producedFields(){}dependentFields(){var e;return new Set([this.transform.pivot,this.transform.value,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}hash(){return`PivotTransform ${Xr(this.transform)}`}assemble(){const{pivot:e,value:t,groupby:n,limit:i,op:r}=this.transform;return Object.assign(Object.assign(Object.assign({type:"pivot",field:e,value:t},void 0!==i?{limit:i}:{}),void 0!==r?{op:r}:{}),void 0!==n?{groupby:n}:{})}}class zm extends ed{constructor(e,t){super(e),this.transform=t}clone(){return new zm(null,Hr(this.transform))}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${Xr(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function Um(e){let t=0;return function n(i,r){var o;if(i instanceof ch&&!i.isGenerator&&!Ul(i.data)){e.push(r),r={name:null,source:r.name,transform:[]}}if(i instanceof Oh&&(i.parent instanceof ch&&!r.source?(r.format=Object.assign(Object.assign({},null!==(o=r.format)&&void 0!==o?o:{}),{parse:i.assembleFormatParse()}),r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof yh)return r.name||(r.name=`data_${t++}`),!r.source||r.transform.length>0?(e.push(r),i.data=r.name):i.data=r.source,void i.assemble().forEach(t=>e.push(t));if((i instanceof fh||i instanceof dh||i instanceof Fm||i instanceof Lg||i instanceof np||i instanceof Em||i instanceof km||i instanceof vh||i instanceof Mm||i instanceof Dh||i instanceof Ch||i instanceof jm||i instanceof Dm||i instanceof Cm||i instanceof Nm||i instanceof Bm||i instanceof _m||i instanceof jh||i instanceof zm||i instanceof Tm)&&r.transform.push(i.assemble()),(i instanceof uh||i instanceof nd||i instanceof Sm||i instanceof Fh)&&r.transform.push(...i.assemble()),i instanceof td)if(r.source&&0===r.transform.length)i.setSource(r.source);else if(i.parent instanceof td)i.setSource(r.name);else if(r.name||(r.name=`data_${t++}`),i.setSource(r.name),1===i.numChildren()){e.push(r),r={name:null,source:r.name,transform:[]}}switch(i.numChildren()){case 0:i instanceof td&&(!r.source||r.transform.length>0)&&e.push(r);break;case 1:n(i.children[0],r);break;default:{r.name||(r.name=`data_${t++}`);let o=r.name;!r.source||r.transform.length>0?e.push(r):o=r.source,i.children.forEach(e=>{n(e,{name:null,source:o,transform:[]})});break}}}}function Pm(e){return"top"===e||"left"===e?"header":"footer"}function Lm(e,t){var n;if(e.channelHasField(t)){const i=e.facet[t],r=op("title",null,e.config,t);let a=Yu(i,e.config,{allowDisabling:!0,includeDefault:void 0===r||!!r});e.child.component.layoutHeaders[t].title&&(a=o(a)?a.join(", "):a,a+=" / "+e.child.component.layoutHeaders[t].title,e.child.component.layoutHeaders[t].title=null);const s=op("labelOrient",i,e.config,t),u=vo((null!==(n=i.header)&&void 0!==n?n:{}).labels,!0),c=Qr(["bottom","right"],s)?"footer":"header";e.component.layoutHeaders[t]={title:a,facetFieldDef:i,[c]:"facet"===t?[]:[Rm(e,t,u)]}}}function Rm(e,t,n){const i="row"===t?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(i)?e.child.getSizeSignalRef(i):void 0,axes:[]}}function qm(e,t){var n;const{child:i}=e;if(i.component.axes[t]){const{layoutHeaders:r,resolve:o}=e.component;if(o.axis[t]=Dp(o,t),"shared"===o.axis[t]){const o="x"===t?"column":"row",a=r[o];for(const r of i.component.axes[t]){const t=Pm(r.get("orient"));a[t]=null!==(n=a[t])&&void 0!==n?n:[Rm(e,o,!1)];const i=Gg(r,"main",e.config,{header:!0});a[t][0].axes.push(i),r.mainExtracted=!0}}}}const Im=Wm;function Wm(e){Hm(e);const t=1===e.layout.columns?"width":"childWidth",n=void 0===e.layout.columns?"height":"childHeight";Gm(e,t),Gm(e,n)}function Hm(e){for(const t of e.children)t.parseLayoutSize()}function Gm(e,t){const n=Op(t),i=Sa(n),r=e.component.resolve,o=e.component.layoutSize;let a;for(const t of e.children){const e=t.component.layoutSize.getWithExplicit(n),o=r.scale[i];if("independent"===o&&"step"===e.value){a=void 0;break}if(a){if("independent"===o&&a.value!==e.value){a=void 0;break}a=Np(a,e,n,"")}else a=e}if(a){for(const i of e.children)e.renameSignal(i.getName(n),e.getName(t)),i.component.layoutSize.set(n,"merged",!1);o.setWithExplicit(t,a)}else o.setWithExplicit(t,{explicit:!1,value:void 0})}function Ym(e,t){const n="width"===t?"x":"y",i=e.config,r=e.getScaleComponent(n);if(r){const e=r.get("type"),n=r.get("range");if(eu(e)){const e=al(i.view,t);return Ia(n)||tl(e)?"step":e}return rl(i.view,t)}if(e.hasProjection)return rl(i.view,t);{const e=al(i.view,t);return tl(e)?e.step:e}}function Vm(e,t){return function(e){return e&&!s(e)&&"repeat"in e}(e.field)?e.field.repeat in t?Object.assign(Object.assign({},e),{field:t[e.field.repeat]}):void as(is.noSuchRepeatedValue(e.field.repeat)):e}function Xm(e,t){if(void 0!==(e=Vm(e,t))){if(null===e)return null;if(Eu(e)&&Cu(e.sort)){const n=Vm(e.sort,t);e=Object.assign(Object.assign({},e),n?{sort:n}:{})}return e}}function Jm(e,t){if(!Bu(e)){if(Mu(e)){const n=Xm(e.condition,t);if(n)return Object.assign(Object.assign({},e),{condition:n});return w(e,["condition"])}return e}{const n=Xm(e,t);if(n)return n;if(Nu(e))return{condition:e.condition}}}function Qm(e,t){const n={};for(const i in e)if(b(e,i)){const r=e[i];if(o(r))n[i]=r.map(e=>Jm(e,t)).filter(e=>e);else{const e=Jm(r,t);void 0!==e&&(n[i]=e)}}return n}function Zm(e,t,n){return Ru(t,Object.assign({suffix:`by_${Ru(e)}`},null!=n?n:{}))}class Km extends Om{constructor(e,t,n,i,r){super(e,"facet",t,n,r,i,e.resolve),this.child=Db(e.spec,this,this.getName("child"),void 0,i,r),this.children=[this.child];const o=function(e,t){return Du(e)?Qm(e,t):Xm(e,t)}(e.facet,i);this.facet=this.initFacet(o)}initFacet(e){return Du(e)?xc(e,(e,t,n)=>Qr([Xo,"column"],n)?void 0===t.field?(as(is.emptyFieldDef(t,n)),e):(e[n]=Ku(t,n),e):(as(is.incompatibleChannel(n,"facet")),e),{}):{facet:Ku(e,"facet")}}channelHasField(e){return!!this.facet[e]}fieldDef(e){return this.facet[e]}parseData(){this.component.data=nb(this),this.child.parseData()}parseLayoutSize(){Hm(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(e){for(const t of ha)Lm(e,t);qm(e,"x"),qm(e,"y")}(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){var e,t,n;const i={};for(const r of ha)for(const o of up){const a=this.component.layoutHeaders[r],s=a[o],{facetFieldDef:u}=a;if(u){const t=op("titleOrient",u,this.config,r);if(Qr(["right","bottom"],t)){const n=rp(r,t);i.titleAnchor=null!==(e=i.titleAnchor)&&void 0!==e?e:{},i.titleAnchor[n]="end"}}if(null==s?void 0:s[0]){const e="row"===r?"height":"width",s="header"===o?"headerBand":"footerBand";"facet"===r||this.child.component.layoutSize.get(e)||(i[s]=null!==(t=i[s])&&void 0!==t?t:{},i[s][r]=.5),a.title&&(i.offset=null!==(n=i.offset)&&void 0!==n?n:{},i.offset["row"===r?"rowTitle":"columnTitle"]=10)}}return i}assembleDefaultLayout(){const{column:e,row:t}=this.facet,n=e?this.columnDistinctSignal():t?1:void 0;let i="all";return(t||"independent"!==this.component.resolve.scale.x)&&(e||"independent"!==this.component.resolve.scale.y)||(i="none"),Object.assign(Object.assign(Object.assign({},this.getHeaderLayoutMixins()),n?{columns:n}:{}),{bounds:"full",align:i})}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof Km)){return{signal:`length(data('${this.getName("column_domain")}'))`}}}assembleGroup(e){return this.parent&&this.parent instanceof Km?Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:Ru(this.facet.column,{prefix:"distinct"})}}}}:{}),super.assembleGroup(e)):super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],t=[],n=[];if(this.child instanceof Km){if(this.child.channelHasField("column")){const i=Ru(this.child.facet.column);e.push(i),t.push("distinct"),n.push(`distinct_${i}`)}}else for(const i of["x","y"]){const r=this.child.component.scales[i];if(r&&!r.merged){const o=r.get("type"),a=r.get("range");if(eu(o)&&Ia(a)){const r=em(tm(this.child,i));r?(e.push(r),t.push("distinct"),n.push(`distinct_${r}`)):as(`Unknown field for ${i}. Cannot calculate view size.`)}}}return{fields:e,ops:t,as:n}}assembleFacet(){const{name:e,data:t}=this.component.data.facetRoot,{row:n,column:i}=this.facet,{fields:r,ops:a,as:s}=this.getCardinalityAggregateForChild(),u=[];for(const e of ha){const t=this.facet[e];if(t){u.push(Ru(t));const{bin:c,sort:l}=t;if(cc(c)&&u.push(Ru(t,{binSuffix:"end"})),Cu(l)){const{field:e,op:o=xu}=l,u=Zm(t,l);n&&i?(r.push(u),a.push("max"),s.push(u)):(r.push(e),a.push(o),s.push(u))}else if(o(l)){const n=ip(t,e);r.push(n),a.push("max"),s.push(n)}}}const c=!!n&&!!i;return Object.assign({name:e,data:t,groupby:u},c||r.length>0?{aggregate:Object.assign(Object.assign({},c?{cross:c}:{}),r.length?{fields:r,ops:a,as:s}:{})}:{})}facetSortFields(e){const{facet:t}=this,n=t[e];return n?Cu(n.sort)?[Zm(n,n.sort,{expr:"datum"})]:o(n.sort)?[ip(n,e,{expr:"datum"})]:[Ru(n,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:t}=this,n=t[e];if(n){const{sort:e}=n;return[(Cu(e)?e.order:!o(e)&&e)||"ascending"]}return[]}assembleLabelTitle(){const{facet:e,config:t}=this;if(e.facet)return pp(e.facet,"facet",t);const n={row:["top","bottom"],column:["left","right"]};for(const i of sp)if(e[i]){const r=op("labelOrient",e[i],t,i);if(Qr(n[i],r))return pp(e[i],i,t)}}assembleMarks(){const{child:e}=this,t=function(e){const t=[],n=Um(t);return e.children.forEach(t=>n(t,{source:e.name,name:null,transform:[]})),t}(this.component.data.facetRoot),n=e.assembleGroupEncodeEntry(!1),i=this.assembleLabelTitle()||e.assembleTitle(),r=e.assembleGroupStyle();return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:this.getName("cell"),type:"group"},i?{title:i}:{}),r?{style:r}:{}),{from:{facet:this.assembleFacet()},sort:{field:ha.map(e=>this.facetSortFields(e)).flat(),order:ha.map(e=>this.facetSortOrder(e)).flat()}}),t.length>0?{data:t}:{}),n?{encode:{update:n}}:{}),e.assembleGroup(function(e,t){if(e.component.selection&&oo(e.component.selection).length){const n=u(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:ff("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return xd(t)}(this,[])))]}getMapping(){return this.facet}}function eb(e,t){var n,i,r,o,a,s,u,c,l,f;for(const d of t){const t=d.data;if((!e.name||!d.hasName()||e.name===d.dataName)&&!((null===(n=e.format)||void 0===n?void 0:n.mesh)&&(null===(i=t.format)||void 0===i?void 0:i.feature)||((null===(r=e.format)||void 0===r?void 0:r.feature)||(null===(o=t.format)||void 0===o?void 0:o.feature))&&(null===(a=e.format)||void 0===a?void 0:a.feature)!==(null===(s=t.format)||void 0===s?void 0:s.feature)||((null===(u=e.format)||void 0===u?void 0:u.mesh)||(null===(c=t.format)||void 0===c?void 0:c.mesh))&&(null===(l=e.format)||void 0===l?void 0:l.mesh)!==(null===(f=t.format)||void 0===f?void 0:f.mesh)))if(Pl(e)&&Pl(t)){if(Wr(e.values,t.values))return d}else if(Ul(e)&&Ul(t)){if(e.url===t.url)return d}else if(Ll(e)&&e.name===d.dataName)return d}return null}function tb(e,t){if(e.data||!e.parent){if(null===e.data){const e=new ch([]);return t.push(e),e}const n=eb(e.data,t);if(n)return Rl(e.data)||(n.data.format=function(e,...t){for(const n of t)eo(e,null!=n?n:{});return e}({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const n=new ch(e.data);return t.push(n),n}}return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}function nb(e){var t,n,i,r,o,a,s,u,c,l;let f=tb(e,e.component.data.sources);const{outputNodes:d,outputNodeRefCounts:g}=e.component.data,p=e.parent?e.parent.component.data.ancestorParse.clone():new $m,h=e.data;Rl(h)?(ql(h)?f=new dh(f,h.sequence):Wl(h)&&(f=new fh(f,h.graticule)),p.parseNothing=!0):null===(null===(t=null==h?void 0:h.format)||void 0===t?void 0:t.parse)&&(p.parseNothing=!0),f=null!==(n=Oh.makeExplicit(f,e,p))&&void 0!==n?n:f,f=new jh(f);const m=e.parent&&wm(e.parent);(bm(e)||vm(e))&&m&&(f=null!==(i=uh.makeFromEncoding(f,e))&&void 0!==i?i:f),e.transforms.length>0&&(f=function(e,t,n){var i,r;let o=0;for(const a of t.transforms){let s,u=void 0;if(rf(a))s=e=new np(e,a),u="derived";else if(Gl(a)){const r=wh(a);s=e=null!==(i=Oh.makeWithAncestors(e,{},r,n))&&void 0!==i?i:e,e=new Lg(e,t,a.filter)}else if(of(a))s=e=uh.makeFromTransform(e,a,t),u="number";else if(sf(a)){u="date",void 0===n.getWithExplicit(a.field).value&&(e=new Oh(e,{[a.field]:u}),n.set(a.field,u,!1)),s=e=nd.makeFromTransform(e,a)}else if(uf(a))s=e=vh.makeFromTransform(e,a),u="number",Bd(t)&&(e=new jh(e));else if(Yl(a))s=e=Mm.make(e,t,a,o++),u="derived";else if(ef(a))s=e=new Dh(e,a),u="number";else if(tf(a))s=e=new Ch(e,a),u="number";else if(cf(a))s=e=Fh.makeFromTransform(e,a),u="derived";else if(lf(a))s=e=new jm(e,a),u="derived";else if(nf(a))s=e=new Dm(e,a),u="derived";else if(Vl(a))s=e=new Tm(e,a),u="derived";else if(Kl(a))e=new zm(e,a);else if(af(a))s=e=Sm.makeFromTransform(e,a),u="derived";else if(Xl(a))s=e=new Cm(e,a),u="derived";else if(Jl(a))s=e=new Bm(e,a),u="derived";else if(Ql(a))s=e=new _m(e,a),u="derived";else{if(!Zl(a)){as(is.invalidTransformIgnored(a));continue}s=e=new Nm(e,a),u="derived"}if(s&&void 0!==u)for(const e of null!==(r=s.producedFields())&&void 0!==r?r:[])n.set(e,u,!1)}return e}(f,e,p));const b=function(e){const t={};if(bm(e)&&e.component.selection)for(const n of oo(e.component.selection)){const i=e.component.selection[n];for(const e of i.project.items)!e.channel&&bo(e.field)>1&&(t[e.field]="flatten")}return t}(e),v=Ah(e);f=null!==(r=Oh.makeWithAncestors(f,{},Object.assign(Object.assign({},b),v),p))&&void 0!==r?r:f,bm(e)&&(f=km.parseAll(f,e),f=Em.parseAll(f,e)),(bm(e)||vm(e))&&(m||(f=null!==(o=uh.makeFromEncoding(f,e))&&void 0!==o?o:f),f=null!==(a=nd.makeFromEncoding(f,e))&&void 0!==a?a:f,f=np.parseAllForSortIndex(f,e));const y=e.getName("raw"),x=new td(f,y,"raw",g);if(d[y]=x,f=x,bm(e)){const t=vh.makeFromEncoding(f,e);t&&(f=t,Bd(e)&&(f=new jh(f))),f=null!==(s=Sm.makeFromEncoding(f,e))&&void 0!==s?s:f,f=null!==(u=Fh.makeFromEncoding(f,e))&&void 0!==u?u:f}bm(e)&&(f=null!==(c=Fm.make(f,e))&&void 0!==c?c:f);const w=e.getName(Hl),A=new td(f,w,Hl,g);d[w]=A,f=A,bm(e)&&function(e,t){Nd(e,n=>{const i=n.name,r=e.getName(`lookup_${i}`);e.component.data.outputNodes[r]=n.materialized=new td(new Lg(t,e,{selection:i}),r,"lookup",e.component.data.outputNodeRefCounts)})}(e,A);let O=null;if(vm(e)){const t=e.getName("facet");f=null!==(l=function(e,t){const{row:n,column:i}=t;if(n&&i){let t=null;for(const r of[n,i])if(Cu(r.sort)){const{field:n,op:i=xu}=r.sort;e=t=new Ch(e,{joinaggregate:[{op:i,field:n,as:Zm(r,r.sort,{forAs:!0})}],groupby:[Ru(r)]})}return t}return null}(f,e.facet))&&void 0!==l?l:f,O=new yh(f,e,t,A.getSource()),d[t]=O,f=O}return Object.assign(Object.assign({},e.component.data),{outputNodes:d,outputNodeRefCounts:g,raw:x,main:A,facetRoot:O,ancestorParse:p})}class ib extends Am{constructor(e,t,n,i,r,o,a){super(e,t,n,i,r,o,a)}parseData(){this.component.data=nb(this),this.children.forEach(e=>{e.parseData()})}parseSelections(){this.component.selection={};for(const e of this.children)e.parseSelections(),oo(e.component.selection).forEach(t=>{this.component.selection[t]=e.component.selection[t]})}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}assembleSelectionTopLevelSignals(e){return this.children.reduce((e,t)=>t.assembleSelectionTopLevelSignals(e),e)}assembleSignals(){return this.children.forEach(e=>e.assembleSignals()),[]}assembleLayoutSignals(){return this.children.reduce((e,t)=>[...e,...t.assembleLayoutSignals()],yp(this))}assembleSelectionData(e){return this.children.reduce((e,t)=>t.assembleSelectionData(e),e)}assembleMarks(){return this.children.map(e=>{const t=e.assembleTitle(),n=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return Object.assign(Object.assign(Object.assign(Object.assign({type:"group",name:e.getName("group")},t?{title:t}:{}),n?{style:n}:{}),i?{encode:{update:i}}:{}),e.assembleGroup())})}}class rb extends ib{constructor(e,t,n,i,r){var o,a,s,u;super(e,"concat",t,n,r,i,e.resolve),"shared"!==(null===(a=null===(o=e.resolve)||void 0===o?void 0:o.axis)||void 0===a?void 0:a.x)&&"shared"!==(null===(u=null===(s=e.resolve)||void 0===s?void 0:s.axis)||void 0===u?void 0:u.y)||as(is.CONCAT_CANNOT_SHARE_AXIS),this.children=this.getChildren(e).map((e,t)=>Db(e,this,this.getName("concat_"+t),void 0,i,r))}getChildren(e){return Zc(e)?e.vconcat:Kc(e)?e.hconcat:e.concat}parseLayoutSize(){Wm(this)}parseAxisGroup(){return null}assembleDefaultLayout(){const e=this.layout.columns;return Object.assign(Object.assign({},null!=e?{columns:e}:{}),{bounds:"full",align:"each"})}}const ob=Object.assign(Object.assign({gridScale:1,scale:1},Do),{labelExpr:1,encode:1}),ab=oo(ob);class sb extends jp{constructor(e={},t={},n=!1){super(),this.explicit=e,this.implicit=t,this.mainExtracted=n}clone(){return new sb(Hr(this.explicit),Hr(this.implicit),this.mainExtracted)}hasAxisPart(e){return"axis"===e||("grid"===e||"title"===e?!!this.get(e):!(!1===(t=this.get(e))||null===t));var t}}const ub={bottom:"top",top:"bottom",left:"right",right:"left"};function cb(e,t){if(!e)return t.map(e=>e.clone());{if(e.length!==t.length)return;const n=e.length;for(let i=0;i<n;i++){const n=e[i],r=t[i];if(!!n!=!!r)return;if(n&&r){const t=n.getWithExplicit("orient"),o=r.getWithExplicit("orient");if(t.explicit&&o.explicit&&t.value!==o.value)return;e[i]=lb(n,r)}}}return e}function lb(e,t){for(const n of ab){const i=Np(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",(e,t)=>{switch(n){case"title":return ns(e,t);case"gridScale":return{explicit:e.explicit,value:vo(e.value,t.value)}}return $p(e,t,n,"axis")});e.setWithExplicit(n,i)}return e}function fb(e,t){const n="x"===t?"x2":"y2",i=e.fieldDef(t),r=e.fieldDef(n),o=i?i.title:void 0,a=r?r.title:void 0;return o&&a?ts(o,a):o||(a||(void 0!==o?o:void 0!==a?a:void 0))}function db(e,t,n,i,r){switch(t){case"titleAngle":case"labelAngle":return e===xo(n[t]);case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===fb(i,r))return!0}return e===n[t]}const gb=["Band","Point","Discrete","Quantitative","Temporal"],pb=x([...gb.map(e=>`axisX${e}`),...gb.map(e=>`axisY${e}`)]);function hb(e,t){var n;const i=t.axis(e),r=new sb;for(const n of ab){const o=mb(n,i,e,t),{configValue:a,configFrom:s}=ko(n)?Zg(n,t.config,e,r.get("orient"),t.getScaleComponent(e).get("type"),i.style):{},u=db(o,n,i,t,e);void 0===o||!u&&void 0!==a?(Qr(["grid","orient","tickCount","labelExpr"],n)&&a||Oo(a)||qa(a)||Qr(["style","axis-config-style"],s)||Qr(["axisQuantitative","axisTemporal"],s)||s in pb)&&r.set(n,a,!1):r.set(n,o,u)}const o=null!==(n=i.encoding)&&void 0!==n?n:{},a=Co.reduce((n,i)=>{var a;if(!r.hasAxisPart(i))return n;const s=Cp(null!==(a=o[i])&&void 0!==a?a:{},t),u="labels"===i?function(e,t,n){var i;const r=null!==(i=e.fieldDef(t))&&void 0!==i?i:"x"===t?e.fieldDef("x2"):"y"===t?e.fieldDef("y2"):void 0,o=e.axis(t),{format:a,formatType:s}=o,{config:u}=e,c=hu({fieldDef:r,field:"datum.value",format:a,formatType:s,config:u,isUTCScale:e.getScaleComponent(t).get("type")===Rs.UTC,omitTimeFormatConfig:!0,omitNumberFormatAndEmptyTimeFormat:!0});let l=Object.assign(Object.assign({},c?{text:c}:{}),n);return l=Object.assign(Object.assign({},l),n),0===oo(l).length?void 0:l}(t,e,s):s;return void 0!==u&&oo(u).length>0&&(n[i]={update:u}),n},{});return oo(a).length>0&&r.set("encode",a,!!i.encoding||void 0!==i.labelAngle),r}function mb(e,t,n,i){const r=i.fieldDef(n),a=function(e,t,n,i){if(void 0!==t.labelAngle)return xo(t.labelAngle);{const{configValue:r}=Zg("labelAngle",e.config,n,tp(n),e.getScaleComponent(n).get("type"),t.style);return void 0!==r?xo(r):n===Jo&&Qr(["nominal","ordinal"],i.type)?270:void 0}}(i,t,n,r),s=vo(t.orient,tp(n)),{mark:u,config:c}=i;switch(e){case"scale":return i.scaleName(n);case"gridScale":return function(e,t){const n="x"===t?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n)}(i,n);case"format":if(ic(r)||rc(r))return;return mu(r,t.format,c);case"formatType":if(ic(r)||rc(r))return;return t.formatType;case"grid":if(lc(i.fieldDef(n).bin))return!1;{const e=i.getScaleComponent(n).get("type");return vo(t.grid,function(e,t){return!eu(e)&&!cc(t.bin)}(e,r))}case"labelAlign":return vo(t.labelAlign,ep(a,s));case"labelAngle":return a;case"labelBaseline":return vo(t.labelBaseline,Kg(a,s));case"labelFlush":return vo(t.labelFlush,function(e,t){if("x"===t&&Qr(["quantitative","temporal"],e.type))return!0}(r,n));case"labelOverlap":{const e=i.getScaleComponent(n).get("type");return vo(t.labelOverlap,function(e,t){if("nominal"!==e.type)return"log"!==t||"greedy"}(r,e))}case"orient":return s;case"tickCount":{const e=i.getScaleComponent(n).get("type"),o="x"===n?"width":"y"===n?"height":void 0,a=o?i.getSizeSignalRef(o):void 0;return vo(t.tickCount,function({fieldDef:e,scaleType:t,size:n}){var i;if(!eu(t)&&"log"!==t&&!Qr(["month","hours","day","quarter"],null===(i=Ds(e.timeUnit))||void 0===i?void 0:i.unit))return cc(e.bin)?{signal:`ceil(${n.signal}/10)`}:{signal:`ceil(${n.signal}/40)`}}({fieldDef:r,scaleType:e,size:a}))}case"title":{const e="x"===n?"x2":"y2",o=i.fieldDef(e);return vo(t.title,fb(i,n),es([ku(r)],o?[ku(o)]:[]))}case"values":return function(e,t,n){const i=e.values;return o(i)?ac(n,i):qa(i)?i:void 0}(t,0,r);case"zindex":return vo(t.zindex,function(e,t){return"rect"===e&&qu(t)?1:0}(u,r))}return ko(e)?t[e]:void 0}function bb(e,t,n,{graticule:i}){var r,o,a;const s=No(e)?Object.assign({},e):{type:e},u=null!==(r=s.orient)&&void 0!==r?r:Ja("orient",s,n);if(s.orient=function(e,t,n){switch(e){case"point":case"circle":case"square":case"text":case"rect":case"image":return}const{x:i,y:r,x2:o,y2:a}=t;switch(e){case"bar":if(Bu(i)&&(lc(i.bin)||Bu(r)&&r.aggregate&&!i.aggregate))return"vertical";if(Bu(r)&&(lc(r.bin)||Bu(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(a||o){if(n)return n;if(!o&&Bu(i)&&"quantitative"===i.type&&!cc(i.bin))return"horizontal";if(!a&&Bu(r)&&"quantitative"===r.type&&!cc(r.bin))return"vertical"}case"rule":if(o&&a)return;case"area":if(a)return Bu(r)&&lc(r.bin)?"horizontal":"vertical";if(o)return Bu(i)&&lc(i.bin)?"vertical":"horizontal";if("rule"===e){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case"line":case"tick":{const t=Bu(i)&&Iu(i),o=Bu(r)&&Iu(r);if(t&&!o)return"tick"!==e?"horizontal":"vertical";if(!t&&o)return"tick"!==e?"vertical":"horizontal";if(t&&o){const t=i,o=r,a="temporal"===t.type,s="temporal"===o.type;return a&&!s?"tick"!==e?"vertical":"horizontal":!a&&s?"tick"!==e?"horizontal":"vertical":!t.aggregate&&o.aggregate?"tick"!==e?"vertical":"horizontal":t.aggregate&&!o.aggregate?"tick"!==e?"horizontal":"vertical":n||"vertical"}return n||void 0}}return"vertical"}(s.type,t,u),void 0!==u&&u!==s.orient&&as(is.orientOverridden(s.orient,u)),"bar"===s.type&&s.orient){const e=null!==(o=s.cornerRadiusEnd)&&void 0!==o?o:Ja("cornerRadiusEnd",s,n);if(void 0!==e){const n="horizontal"===s.orient&&t.x2||"vertical"===s.orient&&t.y2?["cornerRadius"]:_o[s.orient];for(const t of n)s[t]=e;void 0!==s.cornerRadiusEnd&&delete s.cornerRadiusEnd}}return void 0===vo(s.opacity,Ja("opacity",s,n))&&(s.opacity=function(e,t){if(Qr(["point","tick","circle","square"],e)&&!hc(t))return.7;return}(s.type,t)),void 0===s.filled&&(s.filled=!i&&function(e,t){const n=Ja("filled",e,t),i=e.type;return vo(n,"point"!==i&&"line"!==i&&"rule"!==i)}(s,n)),void 0===(null!==(a=s.cursor)&&void 0!==a?a:Ja("cursor",s,n))&&(s.cursor=function(e,t,n){if(t.href||e.href||Ja("href",e,n))return"pointer";return e.cursor}(s,t,n)),s}function vb(e,t){const{config:n}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore"})),Tf("x",e,{defaultPos:"mid"})),Tf("y",e,{defaultPos:"mid"})),Ef("size",e)),function(e,t,n){if(n)return{shape:{value:n}};return Ef("shape",e)}(e,0,t))}function yb(e){const{config:t,markDef:n}=e,{orient:i}=n,r="horizontal"===i?"width":"height",o=e.getScaleComponent("horizontal"===i?"x":"y"),a=vo(n[r],n.size,Ja("size",n,t,{vgChannel:r}),t.tick.bandSize);if(void 0!==a)return a;{const e=o?o.get("range"):void 0;return e&&Ia(e)&&y(e.step)?3*e.step/4:3*ol(t.view,r)/4}}const xb={area:{vgMark:"area",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore"})),Rf("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"horizontal"===e.markDef.orient})),Rf("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"vertical"===e.markDef.orient})),Qf(e))},bar:{vgMark:"rect",encodeEntry:e=>Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore"})),Wf(e,"x","bar")),Wf(e,"y","bar"))},circle:{vgMark:"symbol",encodeEntry:e=>vb(e,"circle")},geoshape:{vgMark:"shape",encodeEntry:e=>Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore"})),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[Object.assign({type:"geoshape",projection:e.projectionName()},n&&Bu(n)&&"geojson"===n.type?{field:Ru(n,{expr:"datum"})}:{})]}},image:{vgMark:"image",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore"})),Wf(e,"x","image")),Wf(e,"y","image")),$f(e,"url"))},line:{vgMark:"line",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore"})),Tf("x",e,{defaultPos:"mid"})),Tf("y",e,{defaultPos:"mid"})),Ef("size",e,{vgChannel:"strokeWidth"})),Qf(e))},point:{vgMark:"symbol",encodeEntry:e=>vb(e)},rect:{vgMark:"rect",encodeEntry:e=>Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore"})),Wf(e,"x","rect")),Wf(e,"y","rect"))},rule:{vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return e.encoding.x||e.encoding.y||e.encoding.latitude||e.encoding.longitude?Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore"})),Rf("x",e,{defaultPos:"horizontal"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"vertical"!==n})),Rf("y",e,{defaultPos:"vertical"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"horizontal"!==n})),Ef("size",e,{vgChannel:"strokeWidth"})):{}}},square:{vgMark:"symbol",encodeEntry:e=>vb(e,"square")},text:{vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore"})),Tf("x",e,{defaultPos:"mid"})),Tf("y",e,{defaultPos:"mid"})),$f(e)),Ef("size",e,{vgChannel:"fontSize"})),Zf("align",function(e,t,n){var i;if(void 0===(null!==(i=e.align)&&void 0!==i?i:Ja("align",e,n)))return"center";return}(e.markDef,0,t))),Zf("baseline",function(e,t,n){var i;if(void 0===(null!==(i=e.baseline)&&void 0!==i?i:Ja("baseline",e,n)))return"middle";return}(e.markDef,0,t)))}},tick:{vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,i=n.orient,r="horizontal"===i?"width":"height",o="horizontal"===i?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore"})),Tf("x",e,{defaultPos:"mid",vgChannel:"xc"})),Tf("y",e,{defaultPos:"mid",vgChannel:"yc"})),Ef("size",e,{defaultValue:yb(e),vgChannel:r})),{[o]:{value:vo(n.thickness,t.tick.thickness)}})}},trail:{vgMark:"trail",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore"})),Tf("x",e,{defaultPos:"mid"})),Tf("y",e,{defaultPos:"mid"})),Ef("size",e)),Qf(e))}};function wb(e){return Qr(["line","area","trail"],e.mark)?function(e){const t=wc(e.mark,e.encoding),n=Ab(e,{fromPrefix:t.length>0?"faceted_path_":""});return t.length>0?[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:"faceted_path_"+e.requestDataName(Hl),data:e.requestDataName(Hl),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:n}]:n}(e):Qr(["bar"],e.mark)?function(e){const t=Ga.some(t=>e.markDef[t]||Ja(t,e.markDef,e.config));if(e.stack&&!e.fieldDef("size")&&t){const[t]=Ab(e,{fromPrefix:"stack_group_"}),n=e.scaleName(e.stack.fieldChannel),i=(t={})=>e.vgField(e.stack.fieldChannel,t),r=(e,t)=>`${e}(${[i({prefix:"min",suffix:"start",expr:t}),i({prefix:"max",suffix:"start",expr:t}),i({prefix:"min",suffix:"end",expr:t}),i({prefix:"max",suffix:"end",expr:t})].map(e=>`scale('${n}',${e})`).join(",")})`;let o,a;"x"===e.stack.fieldChannel?(o=Object.assign(Object.assign({},Gr(t.encode.update,["y","yc","y2","height",...Ga])),{x:{signal:r("min","datum")},x2:{signal:r("max","datum")},clip:{value:!0}}),a={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},t.encode.update=Object.assign(Object.assign({},Yr(t.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(o=Object.assign(Object.assign({},Gr(t.encode.update,["x","xc","x2","width"])),{y:{signal:r("min","datum")},y2:{signal:r("max","datum")},clip:{value:!0}}),a={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},t.encode.update=Object.assign(Object.assign({},Yr(t.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const n of Ga){const i=Ja(n,e.markDef,e.config);t.encode.update[n]?(o[n]=t.encode.update[n],delete t.encode.update[n]):i&&(o[n]={value:i}),i&&(t.encode.update[n]={value:0})}const s=e.fieldDef(e.stack.groupbyChannel),u=Ru(s)?[Ru(s)]:[];return((null==s?void 0:s.bin)||(null==s?void 0:s.timeUnit))&&u.push(Ru(s,{binSuffix:"end"})),o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((n,i)=>{if(t.encode.update[i])return Object.assign(Object.assign({},n),{[i]:t.encode.update[i]});{const t=Ja(i,e.markDef,e.config);return void 0!==t?Object.assign(Object.assign({},n),{[i]:{value:t}}):n}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:e.requestDataName(Hl),name:"stack_group_"+e.requestDataName(Hl),groupby:u,aggregate:{fields:[i({suffix:"start"}),i({suffix:"start"}),i({suffix:"end"}),i({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:o},marks:[{type:"group",encode:{update:a},marks:[t]}]}]}return Ab(e)}(e):Ab(e)}function Ab(e,t={fromPrefix:""}){const n=e.mark,i=vo(e.markDef.clip,function(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return!!(t&&t.get("selectionExtent")||n&&n.get("selectionExtent"))||void 0}(e),function(e){const t=e.component.projection;return!(!t||t.isFit)||void 0}(e)),r=Va(e.markDef),a=e.encoding.key,s=function(e){const{encoding:t,stack:n,mark:i,markDef:r,config:a}=e,s=t.order;if(!(!o(s)&&zu(s)&&Jr(s.value)||!s&&Jr(r.order)||Jr(Ja("order",r,a)))){if((o(s)||Bu(s))&&!n)return Ka(s,{expr:"datum"});if(Eo(i)){const n="horizontal"===r.orient?"y":"x",i=t[n];if(Bu(i)){const t=i.sort;if(o(t))return{field:Ru(i,{prefix:n,suffix:"sort_index",expr:"datum"})};if(Cu(t))return{field:Ru({aggregate:hc(e.encoding)?t.op:void 0,field:t.field},{expr:"datum"})};if(Ou(t)){return{field:Ru(e.fieldDef(t.encoding),{expr:"datum"}),order:t.order}}return{field:Ru(i,{binSuffix:e.stack&&e.stack.impute?"mid":void 0,expr:"datum"})}}}else;}}(e),u=function(e){if(!e.component.selection)return null;const t=oo(e.component.selection).length;let n=t,i=e.parent;for(;i&&0===n;)n=oo(i.component.selection).length,i=i.parent;return n?{interactive:t>0}:null}(e),c=xb[n].postEncodingTransform?xb[n].postEncodingTransform(e):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:e.getName("marks"),type:xb[n].vgMark},i?{clip:!0}:{}),r?{style:r}:{}),a?{key:a.field}:{}),s?{sort:s}:{}),u||{}),{from:{data:t.fromPrefix+e.requestDataName(Hl)},encode:{update:xb[n].encodeEntry(e)}}),c?{transform:c}:{})]}class Ob extends Om{constructor(e,t,n,i={},r,o){var a;super(e,"unit",t,n,o,r,void 0,nl(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection={},this.children=[];const s=No(e.mark)?e.mark.type:e.mark,u=function(e,t){return Qm(e,t)}(null!==(a=e.encoding)&&void 0!==a?a:{},r);this.markDef=bb(e.mark,u,o,{graticule:e.data&&Wl(e.data)});const c=this.encoding=bc(u,this.markDef);this.size=function({encoding:e,size:t}){for(const n of ka){const i=Ea(n),r=Qu(e[n]);tl(t[i])&&r&&Iu(r)&&(delete t[i],as(is.stepDropped(i)))}return t}({encoding:c,size:nl(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i}),this.stack=Ol(s,c),this.specifiedScales=this.initScales(s,c),this.specifiedAxes=this.initAxes(c),this.specifiedLegends=this.initLegend(c),this.specifiedProjection=e.projection,this.selection=e.selection}get hasProjection(){const{encoding:e}=this,t="geoshape"===this.mark,n=e&&fa.some(t=>Bu(e[t]));return t||n}scaleDomain(e){const t=this.specifiedScales[e];return t?t.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,t){return Ba.reduce((e,n)=>{let i,r;const o=t[n];return Bu(o)?(i=o,r=o.scale):Mu(o)&&(i=o.condition,r=o.condition.scale),i&&(e[n]=null!=r?r:{}),e},{})}initAxes(e){return[Jo,Qo].reduce((t,n)=>{const i=e[n];if(Bu(i)||n===Jo&&Bu(e.x2)||n===Qo&&Bu(e.y2)){const e=Bu(i)?i.axis:null;null!==e&&(t[n]=Object.assign({},e))}return t},{})}initLegend(e){return Na.reduce((t,n)=>{const i=e[n];if(i){const e=Bu(i)?i.legend:Mu(i)?i.condition.legend:null;null!==e&&!1!==e&&function(e){switch(e){case ea:case ta:case na:case ra:case ia:case oa:case ua:case ca:return!0;case aa:case sa:return!1}}(n)&&(t[n]=Object.assign({},e))}return t},{})}parseData(){this.component.data=nb(this)}parseLayoutSize(){!function(e){const{size:t,component:n}=e;for(const i of ka){const r=Ea(i);if(t[r]){const e=t[r];n.layoutSize.set(r,tl(e)?"step":e,!0)}else{const t=Ym(e,r);n.layoutSize.set(r,t,!1)}}}(this)}parseSelections(){this.component.selection=function(e,t){var n;const i={},r=e.config.selection;for(const o of oo(null!=t?t:{})){const a=Hr(t[o]),u=w(r[a.type],["fields","encodings"]);for(const e in u)"encodings"===e&&a.fields||"fields"===e&&a.encodings||("mark"===e&&(a[e]=Object.assign(Object.assign({},u[e]),a[e])),void 0!==a[e]&&!0!==a[e]||(a[e]=null!==(n=u[e])&&void 0!==n?n:a[e]));const c=uo(o),l=i[c]=Object.assign(Object.assign({},a),{name:c,events:s(a.on)?ff(a.on,"scope"):Hr(a.on)});bd(l,n=>{n.has(l)&&n.parse&&n.parse(e,l,a,t[o])})}return i}(this,this.selection)}parseMarkGroup(){this.component.mark=wb(this)}parseAxesAndHeaders(){var e;this.component.axes=(e=this,ka.reduce((t,n)=>(e.component.scales[n]&&e.axis(n)&&(t[n]=[hb(n,e)]),t),{}))}assembleSelectionTopLevelSignals(e){return function(e,t){let n=!1;if(Nd(e,(i,r)=>{const o=i.name,a=u(o+jd);if(0===t.filter(e=>e.name===o).length){const e="global"===i.resolve?"union":i.resolve,n="multi"===i.type?", true)":")";t.push({name:i.name,update:`${Sd}(${a}, ${u(e)}${n}`})}n=!0,r.topLevelSignals&&(t=r.topLevelSignals(e,i,t)),bd(i,n=>{n.topLevelSignals&&(t=n.topLevelSignals(e,i,t))})}),n){0===t.filter(e=>"unit"===e.name).length&&t.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]})}return xd(t)}(this,e)}assembleSignals(){return[...Yg(this),...(e=this,t=[],Nd(e,(n,i)=>{const r=n.name;let o=i.modifyExpr(e,n);t.push(...i.signals(e,n)),bd(n,i=>{i.signals&&(t=i.signals(e,n,t)),i.modifyExpr&&(o=i.modifyExpr(e,n,o))}),t.push({name:r+Ed,on:[{events:{signal:n.name+kd},update:`modify(${u(n.name+jd)}, ${o})`}]})}),xd(t))];var e,t}assembleSelectionData(e){return function(e,t){const n=[...t];return Nd(e,t=>{const i={name:t.name+jd};if(t.init){const n=t.project.items.map(e=>w(e,["signals"])),r=t.init.map(e=>vd(e,!1));i.values="interval"===t.type?[{unit:Md(e,{escape:!1}),fields:n,values:r}]:r.map(t=>({unit:Md(e,{escape:!1}),fields:n,values:t}))}n.filter(e=>e.name===t.name+jd).length||n.push(i)}),n}(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return yp(this)}assembleMarks(){var e;let t=null!==(e=this.component.mark)&&void 0!==e?e:[];return this.parent&&wm(this.parent)||(t=yd(this,t)),t.map(this.correctDataNames)}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return pc(this.encoding,e)}fieldDef(e){return Zu(this.encoding[e])}}class Cb extends Am{constructor(e,t,n,i,r,o){super(e,"layer",t,n,o,r,e.resolve,e.view);const a=Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{});this.children=e.layer.map((e,t)=>{if(vl(e))return new Cb(e,this,this.getName("layer_"+t),a,r,o);if(Uo(e))return new Ob(e,this,this.getName("layer_"+t),a,r,o);throw new Error(is.invalidSpec(e))})}parseData(){this.component.data=nb(this);for(const e of this.children)e.parseData()}parseLayoutSize(){var e;Hm(e=this),Gm(e,"width"),Gm(e,"height")}parseSelections(){this.component.selection={};for(const e of this.children)e.parseSelections(),oo(e.component.selection).forEach(t=>{this.component.selection[t]=e.component.selection[t]})}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){!function(e){var t;const{axes:n,resolve:i}=e.component,r={top:0,bottom:0,right:0,left:0};for(const t of e.children){t.parseAxesAndHeaders();for(const r of oo(t.component.axes))i.axis[r]=Dp(e.component.resolve,r),"shared"===i.axis[r]&&(n[r]=cb(n[r],t.component.axes[r]),n[r]||(i.axis[r]="independent",delete n[r]))}for(const o of[Jo,Qo]){for(const a of e.children)if(a.component.axes[o]){if("independent"===i.axis[o]){n[o]=(null!==(t=n[o])&&void 0!==t?t:[]).concat(a.component.axes[o]);for(const e of a.component.axes[o]){const{value:t,explicit:n}=e.getWithExplicit("orient");if(r[t]>0&&!n){const n=ub[t];r[t]>r[n]&&e.set("orient",n,!1)}r[t]++}}delete a.component.axes[o]}if("independent"===i.axis[o]&&n[o]&&n[o].length>1)for(const e of n[o])e.get("grid")&&!e.explicit.grid&&(e.implicit.grid=!1)}}(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce((e,t)=>t.assembleSelectionTopLevelSignals(e),e)}assembleSignals(){return this.children.reduce((e,t)=>e.concat(t.assembleSignals()),Yg(this))}assembleLayoutSignals(){return this.children.reduce((e,t)=>e.concat(t.assembleLayoutSignals()),yp(this))}assembleSelectionData(e){return this.children.reduce((e,t)=>t.assembleSelectionData(e),e)}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const t of this.children)if(e=t.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return function(e,t){for(const n of e.children)bm(n)&&(t=yd(n,t));return t}(this,this.children.flatMap(e=>e.assembleMarks()))}assembleLegends(){return this.children.reduce((e,t)=>e.concat(t.assembleLegends()),Zp(this))}}class Fb extends ib{constructor(e,t,n,i,r){super(e,"repeat",t,n,r,i,e.resolve),e.resolve&&e.resolve.axis&&("shared"===e.resolve.axis.x||"shared"===e.resolve.axis.y)&&as(is.REPEAT_CANNOT_SHARE_AXIS),this.repeat=e.repeat,this.children=this._initChildren(e,this.repeat,i,r)}_initChildren(e,t,n,i){const r=[],a=!o(t)&&t.row||[n?n.row:null],s=!o(t)&&t.column||[n?n.column:null],u=o(t)&&t||[n?n.repeat:null];for(const t of u)for(const n of a)for(const o of s){const a=(t?`__repeat_repeat_${t}`:"")+(n?`__repeat_row_${n}`:"")+(o?`__repeat_column_${o}`:""),s={repeat:t,row:n,column:o};r.push(Db(e.spec,this,this.getName("child"+a),void 0,s,i))}return r}parseLayoutSize(){Im(this)}assembleDefaultLayout(){const{repeat:e}=this,t=o(e)?void 0:e.column?e.column.length:1;return Object.assign(Object.assign({},t?{columns:t}:{}),{bounds:"full",align:"all"})}}function Db(e,t,n,i,r,o){if(ju(e))return new Km(e,t,n,r,o);if(vl(e))return new Cb(e,t,n,i,r,o);if(Uo(e))return new Ob(e,t,n,i,r,o);if(el(e))return new Fb(e,t,n,r,o);if(function(e){return Zc(e)||Kc(e)||Qc(e)}(e))return new rb(e,t,n,r,o);throw new Error(is.invalidSpec(e))}const jb=new class extends yl{mapUnit(e,{config:t}){if(e.encoding){const{encoding:n,transform:i}=e,{bins:r,timeUnits:o,aggregate:a,groupby:s,encoding:u}=mc(n,t),c=[...i||[],...r,...o,...0===a.length?[]:[{aggregate:a,groupby:s}]];return Object.assign(Object.assign(Object.assign({},e),c.length>0?{transform:c}:{}),{encoding:u})}return e}};const kb=t;e.compile=function(e,t={}){var n;t.logger&&(n=t.logger,os=n),t.fieldTitle&&Gu(t.fieldTitle),t.formatTypes&&function(e){du=new Set(e)}(t.formatTypes);try{const n=dl(d(t.config,e.config)),i=Ml(e,n),r=Db(i,null,"",void 0,void 0,n);return r.parse(),function(e,t){lh(e.sources);let n=0,i=0;for(let i=0;i<5&&Wh(e,t);i++)n++;e.sources.map(Mh);for(let n=0;n<5&&Wh(e,t);n++)i++;lh(e.sources),5===Math.max(n,i)&&as("Maximum optimization runs(5) reached.")}(r.component.data,r),{spec:function(e,t,n={},i){const r=e.config?ml(e.config):void 0,o=[].concat(e.assembleSelectionData([]),function(e,t){var n,i;const r=[],o=Um(r);let a=0;e.sources.forEach(e=>{e.hasName()||(e.dataName=`source_${a++}`);const t=e.assemble();o(e,t)}),r.forEach(e=>{0===e.transform.length&&delete e.transform});let s=0;for(const[e,t]of r.entries())0!==(null!==(n=t.transform)&&void 0!==n?n:[]).length||t.source||r.splice(s++,0,r.splice(e,1)[0]);for(const t of r)for(const n of null!==(i=t.transform)&&void 0!==i?i:[])"lookup"===n.type&&(n.from=e.outputNodes[n.from].getSource());for(const e of r)e.name in t&&(e.values=t[e.name]);return r}(e.component.data,n)),a=e.assembleProjections(),s=e.assembleTitle(),u=e.assembleGroupStyle(),c=e.assembleGroupEncodeEntry(!0);let l=e.assembleLayoutSignals();return l=l.filter(e=>"width"!==e.name&&"height"!==e.name||void 0===e.value||(t[e.name]=+e.value,!1)),Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},e.description?{description:e.description}:{}),t),s?{title:s}:{}),u?{style:u}:{}),c?{encode:{update:c}}:{}),{data:o}),a.length>0?{projections:a}:{}),e.assembleGroup([...l,...e.assembleSelectionTopLevelSignals([])])),r?{config:r}:{}),i?{usermeta:i}:{})}(r,function(e,t,n,i){const r=i.component.layoutSize.get("width"),o=i.component.layoutSize.get("height");void 0===t?t={type:"pad"}:s(t)&&(t={type:t});if(r&&o&&(a=t.type,"fit"===a||"fit-x"===a||"fit-y"===a))if("step"===r&&"step"===o)as(is.droppingFit()),t.type="pad";else if("step"===r||"step"===o){const e="step"===r?"width":"height";as(is.droppingFit(Sa(e)));const n="width"===e?"height":"width";t.type=function(e){return e?`fit-${Sa(e)}`:"fit"}(n)}var a;return Object.assign(Object.assign(Object.assign({},1===oo(t).length&&t.type?"pad"===t.type?{}:{autosize:t.type}:{autosize:t}),zl(n)),zl(e))}(e,i.autosize,n,r),e.datasets,e.usermeta),normalized:i}}finally{t.logger&&(os=rs),t.fieldTitle&&Gu(Wu)}},e.extractTransforms=function(e,t){return jb.map(e,{config:t})},e.normalize=Ml,e.version=kb,Object.defineProperty(e,"__esModule",{value:!0})}));
diff --git a/javascript/vega@5.10.0 b/javascript/vega@5.10.0
new file mode 100644
--- /dev/null
+++ b/javascript/vega@5.10.0
@@ -0,0 +1,1 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).vega={})}(this,(function(t){"use strict";function e(t,e,n){return t.fields=e||[],t.fname=n,t}function n(t){return null==t?null:t.fname}function r(t){return null==t?null:t.fields}function i(t){throw Error(t)}function a(t){var e,n,r,a=[],u=null,o=0,s=t.length,l="";function c(){a.push(l+t.substring(e,n)),l="",e=n+1}for(t+="",e=n=0;n<s;++n)if("\\"===(r=t[n]))l+=t.substring(e,n),l+=t.substring(++n,++n),e=n;else if(r===u)c(),u=null,o=-1;else{if(u)continue;e===o&&'"'===r||e===o&&"'"===r?(e=n+1,u=r):"."!==r||o?"["===r?(n>e&&c(),o=e=n+1):"]"===r&&(o||i("Access path missing open bracket: "+t),o>0&&c(),o=0,e=n+1):n>e?c():e=n+1}return o&&i("Access path missing closing bracket: "+t),u&&i("Access path missing closing quote: "+t),n>e&&(n++,c()),a}var u=Array.isArray;function o(t){return t===Object(t)}function s(t){return"string"==typeof t}function l(t){return u(t)?"["+t.map(l)+"]":o(t)||s(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function c(t,n){var r=a(t),i="return _["+r.map(l).join("][")+"];";return e(Function("_",i),[t=1===r.length?r[0]:t],n||t)}var f=[],h=c("id"),d=e((function(t){return t}),f,"identity"),p=e((function(){return 0}),f,"zero"),g=e((function(){return 1}),f,"one"),m=e((function(){return!0}),f,"true"),v=e((function(){return!1}),f,"false");function y(t,e,n){var r=[e].concat([].slice.call(n));console[t].apply(console,r)}function _(t,e){var n=t||0;return{level:function(t){return arguments.length?(n=+t,this):n},error:function(){return n>=1&&y(e||"error","ERROR",arguments),this},warn:function(){return n>=2&&y(e||"warn","WARN",arguments),this},info:function(){return n>=3&&y(e||"log","INFO",arguments),this},debug:function(){return n>=4&&y(e||"log","DEBUG",arguments),this}}}const x=t=>"__proto__"!==t;function b(...t){return t.reduce((t,e)=>{for(var n in e)if("signals"===n)t.signals=A(t.signals,e.signals);else{var r="legend"===n?{layout:1}:"style"===n||null;w(t,n,e[n],r)}return t},{})}function w(t,e,n,r){var i,a;if(x(e))if(o(n)&&!u(n))for(i in a=o(t[e])?t[e]:t[e]={},n)r&&(!0===r||r[i])?w(a,i,n[i]):x(i)&&(a[i]=n[i]);else t[e]=n}function A(t,e){if(null==t)return e;const n={},r=[];function i(t){n[t.name]||(n[t.name]=1,r.push(t))}return e.forEach(i),t.forEach(i),r}function k(t){return t[t.length-1]}function M(t){return null==t||""===t?null:+t}function E(t){return function(e){return t*Math.exp(e)}}function D(t){return function(e){return Math.log(t*e)}}function C(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function F(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function S(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function B(t,e,n,r){var i=n(t[0]),a=n(k(t)),u=(a-i)*e;return[r(i-u),r(a-u)]}function z(t,e){return B(t,e,M,d)}function T(t,e){var n=Math.sign(t[0]);return B(t,e,D(n),E(n))}function N(t,e,n){return B(t,e,S(n),S(1/n))}function O(t,e,n){return B(t,e,C(n),F(n))}function R(t,e,n,r,i){var a=r(t[0]),u=r(k(t)),o=null!=e?r(e):(a+u)/2;return[i(o+(a-o)*n),i(o+(u-o)*n)]}function q(t,e,n){return R(t,e,n,M,d)}function U(t,e,n){var r=Math.sign(t[0]);return R(t,e,n,D(r),E(r))}function L(t,e,n,r){return R(t,e,n,S(r),S(1/r))}function P(t,e,n,r){return R(t,e,n,C(r),F(r))}function $(t){return 1+~~(new Date(t).getMonth()/3)}function j(t){return 1+~~(new Date(t).getUTCMonth()/3)}function I(t){return null!=t?u(t)?t:[t]:[]}function H(t,e,n){var r,i=t[0],a=t[1];return a<i&&(r=a,a=i,i=r),(r=a-i)>=n-e?[e,n]:[i=Math.min(Math.max(i,e),n-r),i+r]}function W(t){return"function"==typeof t}function Y(t,n){var i,u,o,s,c,f,h,d,p,g=[],m=(t=I(t)).map((function(t,e){return null==t?null:(g.push(e),W(t)?t:a(t).map(l).join("]["))})),v=g.length-1,y=I(n),_="var u,v;return ";if(v<0)return null;for(u=0;u<=v;++u)W(o=m[i=g[u]])?(s="(u=this."+(f="f"+i)+"(a))",c="(v=this."+f+"(b))",(h=h||{})[f]=o):(s="(u=a["+o+"])",c="(v=b["+o+"])"),f="((v=v instanceof Date?+v:v),(u=u instanceof Date?+u:u))","descending"!==y[i]?(p=1,d=-1):(p=-1,d=1),_+="("+s+"<"+c+"||u==null)&&v!=null?"+d+":(u>v||v==null)&&u!=null?"+p+":"+f+"!==u&&v===v?"+d+":v!==v&&u===u?"+p+(i<v?":":":0");return o=Function("a","b",_+";"),h&&(o=o.bind(h)),t=t.reduce((function(t,e){return W(e)?(r(e)||[]).forEach((function(e){t[e]=1})):null!=e&&(t[e+""]=1),t}),{}),e(o,Object.keys(t))}function V(t){return W(t)?t:function(){return t}}function G(t,e){var n,r;function i(){e(r),n=r=null}return function(e){r=e,n&&clearTimeout(n),n=setTimeout(i,t)}}function X(t){for(var e,n,r=1,i=arguments.length;r<i;++r)for(n in e=arguments[r])t[n]=e[n];return t}function J(t,e){var n,r,i,a,u=0;if(t&&(n=t.length))if(null==e){for(r=t[u];u<n&&(null==r||r!=r);r=t[++u]);for(i=a=r;u<n;++u)null!=(r=t[u])&&(r<i&&(i=r),r>a&&(a=r))}else{for(r=e(t[u]);u<n&&(null==r||r!=r);r=e(t[++u]));for(i=a=r;u<n;++u)null!=(r=e(t[u]))&&(r<i&&(i=r),r>a&&(a=r))}return[i,a]}function Z(t,e){var n,r,i,a,u,o=-1,s=t.length;if(null==e){for(;++o<s;)if(null!=(r=t[o])&&r>=r){n=i=r;break}if(o===s)return[-1,-1];for(a=u=o;++o<s;)null!=(r=t[o])&&(n>r&&(n=r,a=o),i<r&&(i=r,u=o))}else{for(;++o<s;)if(null!=(r=e(t[o],o,t))&&r>=r){n=i=r;break}if(o===s)return[-1,-1];for(a=u=o;++o<s;)null!=(r=e(t[o],o,t))&&(n>r&&(n=r,a=o),i<r&&(i=r,u=o))}return[a,u]}const Q=Object.prototype.hasOwnProperty;function K(t,e){return Q.call(t,e)}var tt={};function et(t){var e,n,r={};function i(t){return K(r,t)&&r[t]!==tt}return e={size:0,empty:0,object:r,has:i,get:function(t){return i(t)?r[t]:void 0},set:function(t,n){return i(t)||(++e.size,r[t]===tt&&--e.empty),r[t]=n,this},delete:function(t){return i(t)&&(--e.size,++e.empty,r[t]=tt),this},clear:function(){e.size=e.empty=0,e.object=r={}},test:function(t){return arguments.length?(n=t,e):n},clean:function(){var t,i,a={},u=0;for(t in r)(i=r[t])===tt||n&&n(i)||(a[t]=i,++u);e.size=u,e.empty=0,e.object=r=a}},t&&Object.keys(t).forEach((function(n){e.set(n,t[n])})),e}function nt(t,e,n,r,i,a){if(!n&&0!==n)return a;var u,o,s=t[0],l=k(t),c=+n;return l<s&&(u=s,s=l,l=u),(u=Math.abs(e-s))<(o=Math.abs(l-e))&&u<=c?r:o<=c?i:a}function rt(t,e){var n=t.prototype=Object.create(e.prototype);return n.constructor=t,n}function it(t,e,n,r){var i,a=e[0],u=e[e.length-1];return a>u&&(i=a,a=u,u=i),r=void 0===r||r,((n=void 0===n||n)?a<=t:a<t)&&(r?t<=u:t<u)}function at(t){return"boolean"==typeof t}function ut(t){return"[object Date]"===Object.prototype.toString.call(t)}function ot(t){return"number"==typeof t}function st(t){return"[object RegExp]"===Object.prototype.toString.call(t)}function lt(t,n){return t&&(t=n?I(t).map((function(t){return t.replace(/\\(.)/g,"$1")})):I(t)),e(t&&t.length?Function("_","return ''+"+t.map((function(t){return"_["+(n?l(t):a(t).map(l).join("]["))+"]"})).join("+'|'+")+";"):function(){return""},t,"key")}function ct(t,e){const n=t[0],r=k(t),i=+e;return i?1===i?r:n+i*(r-n):n}function ft(t){let e,n,r;t=+t||1e4;const i=()=>{e={},n={},r=0},a=(i,a)=>(++r>t&&(n=e,e={},r=1),e[i]=a);return i(),{clear:i,has:t=>K(e,t)||K(n,t),get:t=>K(e,t)?e[t]:K(n,t)?a(t,n[t]):void 0,set:(t,n)=>K(e,t)?e[t]=n:a(t,n)}}function ht(t,e,n,r){var i=e.length,a=n.length;if(!a)return e;if(!i)return n;for(var u=r||new e.constructor(i+a),o=0,s=0,l=0;o<i&&s<a;++l)u[l]=t(e[o],n[s])>0?n[s++]:e[o++];for(;o<i;++o,++l)u[l]=e[o];for(;s<a;++s,++l)u[l]=n[s];return u}function dt(t,e){for(var n="";--e>=0;)n+=t;return n}function pt(t,e,n,r){var i=n||" ",a=t+"",u=e-a.length;return u<=0?a:"left"===r?dt(i,u)+a:"center"===r?dt(i,~~(u/2))+a+dt(i,Math.ceil(u/2)):a+dt(i,u)}function gt(t){return t&&k(t)-t[0]||0}function mt(t){return null==t||""===t?null:!(!t||"false"===t||"0"===t)&&!!t}function vt(t){return ot(t)||ut(t)?t:Date.parse(t)}function yt(t,e){return e=e||vt,null==t||""===t?null:e(t)}function _t(t){return null==t||""===t?null:t+""}function xt(t){for(var e={},n=0,r=t.length;n<r;++n)e[t[n]]=!0;return e}function bt(t,e,n,r){var i=null!=r?r:"…",a=t+"",u=a.length,o=Math.max(0,e-i.length);return u<=e?a:"left"===n?i+a.slice(u-o):"center"===n?a.slice(0,Math.ceil(o/2))+i+a.slice(u-~~(o/2)):a.slice(0,o)+i}function wt(t,e,n){if(t){var r,i=0,a=t.length;if(e)for(;i<a;++i)(r=e(t[i]))&&n(r,i,t);else t.forEach(n)}}function At(t){var e=t||d,n=[],r={};return n.add=function(t){var i=e(t);return r[i]||(r[i]=1,n.push(t)),n},n.remove=function(t){var i,a=e(t);return r[a]&&(r[a]=0,(i=n.indexOf(t))>=0&&n.splice(i,1)),n},n}async function kt(t,e){try{await e(t)}catch(e){t.error(e)}}var Mt=Symbol("vega_id"),Et=1;function Dt(t){return!(!t||!Ct(t))}function Ct(t){return t[Mt]}function Ft(t,e){return t[Mt]=e,t}function St(t){var e=t===Object(t)?t:{data:t};return Ct(e)?e:Ft(e,Et++)}function Bt(t){return zt(t,St({}))}function zt(t,e){for(var n in t)e[n]=t[n];return e}function Tt(t,e){return Ft(e,Ct(t))}function Nt(t,e){return t?e?(n,r)=>t(n,r)||Ct(e(n))-Ct(e(r)):(e,n)=>t(e,n)||Ct(e)-Ct(n):null}function Ot(t){return t&&t.constructor===Rt}function Rt(){var t=[],e=[],n=[],r=[],i=[],a=!1;return{constructor:Rt,insert:function(e){for(var n=I(e),r=0,i=n.length;r<i;++r)t.push(n[r]);return this},remove:function(t){for(var n=W(t)?r:e,i=I(t),a=0,u=i.length;a<u;++a)n.push(i[a]);return this},modify:function(t,e,r){var a={field:e,value:V(r)};return W(t)?(a.filter=t,i.push(a)):(a.tuple=t,n.push(a)),this},encode:function(t,e){return W(t)?i.push({filter:t,field:e}):n.push({tuple:t,field:e}),this},reflow:function(){return a=!0,this},pulse:function(u,o){var s,l,c,f,h,d,p={},g={};for(s=0,l=o.length;s<l;++s)p[Ct(o[s])]=1;for(s=0,l=e.length;s<l;++s)p[Ct(h=e[s])]=-1;for(s=0,l=r.length;s<l;++s)f=r[s],o.forEach((function(t){f(t)&&(p[Ct(t)]=-1)}));for(s=0,l=t.length;s<l;++s)d=Ct(h=t[s]),p[d]?p[d]=1:u.add.push(St(t[s]));for(s=0,l=o.length;s<l;++s)h=o[s],p[Ct(h)]<0&&u.rem.push(h);function m(t,e,n){n?t[e]=n(t):u.encode=e,a||(g[Ct(t)]=t)}for(s=0,l=n.length;s<l;++s)h=(c=n[s]).tuple,f=c.field,(d=p[Ct(h)])>0&&(m(h,f,c.value),u.modifies(f));for(s=0,l=i.length;s<l;++s)c=i[s],f=c.filter,o.forEach((function(t){f(t)&&p[Ct(t)]>0&&m(t,c.field,c.value)})),u.modifies(c.field);if(a)u.mod=e.length||r.length?o.filter((function(t){return p[Ct(t)]>0})):o.slice();else for(d in g)u.mod.push(g[d]);return u}}}var qt="_:mod:_";function Ut(){Object.defineProperty(this,qt,{writable:!0,value:{}})}var Lt=Ut.prototype;Lt.set=function(t,e,n,r){var i=this,a=i[t],o=i[qt];return null!=e&&e>=0?(a[e]!==n||r)&&(a[e]=n,o[e+":"+t]=-1,o[t]=-1):(a!==n||r)&&(i[t]=n,o[t]=u(n)?1+n.length:-1),i},Lt.modified=function(t,e){var n,r=this[qt];if(!arguments.length){for(n in r)if(r[n])return!0;return!1}if(u(t)){for(n=0;n<t.length;++n)if(r[t[n]])return!0;return!1}return null!=e&&e>=0?e+1<r[t]||!!r[e+":"+t]:!!r[t]},Lt.clear=function(){return this[qt]={},this};var Pt=0,$t=new Ut;function jt(t,e,n,r){this.id=++Pt,this.value=t,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,e&&(this._update=e),n&&this.parameters(n,r)}var It=jt.prototype;function Ht(t){return function(e){var n=this.flags;return 0===arguments.length?!!(n&t):(this.flags=e?n|t:n&~t,this)}}It.targets=function(){return this._targets||(this._targets=At(h))},It.set=function(t){return this.value!==t?(this.value=t,1):0},It.skip=Ht(1),It.modified=Ht(2),It.parameters=function(t,e,n){e=!1!==e;var r,a,o,s,l=this,c=l._argval=l._argval||new Ut,f=l._argops=l._argops||[],h=[];function d(t,n,r){r instanceof jt?(r!==l&&(e&&r.targets().add(l),h.push(r)),f.push({op:r,name:t,index:n})):c.set(t,n,r)}for(r in t)if(a=t[r],"pulse"===r)I(a).forEach((function(t){t instanceof jt?t!==l&&(t.targets().add(l),h.push(t)):i("Pulse parameters must be operator instances.")})),l.source=a;else if(u(a))for(c.set(r,-1,Array(o=a.length)),s=0;s<o;++s)d(r,s,a[s]);else d(r,-1,a);return this.marshall().clear(),n&&(f.initonly=!0),h},It.marshall=function(t){var e,n,r,i,a,u=this._argval||$t,o=this._argops;if(o){for(n=0,r=o.length;n<r;++n)a=(i=(e=o[n]).op).modified()&&i.stamp===t,u.set(e.name,e.index,i.value,a);if(o.initonly){for(n=0;n<r;++n)(e=o[n]).op.targets().remove(this);this._argops=null,this._update=null}}return u},It.evaluate=function(t){var e=this._update;if(e){var n=this.marshall(t.stamp),r=e.call(this,n,t);if(n.clear(),r!==this.value)this.value=r;else if(!this.modified())return t.StopPropagation}},It.run=function(t){return t.stamp<this.stamp?t.StopPropagation:(this.skip()?(this.skip(!1),e=0):e=this.evaluate(t),this.pulse=e||t);var e};var Wt=0;function Yt(t,e,n){this.id=++Wt,this.value=null,n&&(this.receive=n),t&&(this._filter=t),e&&(this._apply=e)}function Vt(t,e,n){return new Yt(t,e,n)}var Gt=Yt.prototype;Gt._filter=m,Gt._apply=d,Gt.targets=function(){return this._targets||(this._targets=At(h))},Gt.consume=function(t){return arguments.length?(this._consume=!!t,this):!!this._consume},Gt.receive=function(t){if(this._filter(t)){for(var e=this.value=this._apply(t),n=this._targets,r=n?n.length:0,i=0;i<r;++i)n[i].receive(e);this._consume&&(t.preventDefault(),t.stopPropagation())}},Gt.filter=function(t){var e=Vt(t);return this.targets().add(e),e},Gt.apply=function(t){var e=Vt(null,t);return this.targets().add(e),e},Gt.merge=function(){var t=Vt();this.targets().add(t);for(var e=0,n=arguments.length;e<n;++e)arguments[e].targets().add(t);return t},Gt.throttle=function(t){var e=-1;return this.filter((function(){var n=Date.now();return n-e>t?(e=n,1):0}))},Gt.debounce=function(t){var e=Vt();return this.targets().add(Vt(null,null,G(t,(function(t){var n=t.dataflow;e.receive(t),n&&n.run&&n.run()})))),e},Gt.between=function(t,e){var n=!1;return t.targets().add(Vt(null,null,(function(){n=!0}))),e.targets().add(Vt(null,null,(function(){n=!1}))),this.filter((function(){return n}))};const Xt=/^([A-Za-z]+:)?\/\//,Jt=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,Zt=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g;async function Qt(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function Kt(t,e){e=X({},this.options,e);const n=this.fileAccess,r={href:null};let a,u,o;const s=Jt.test(t.replace(Zt,""));null!=t&&"string"==typeof t&&s||i("Sanitize failure, invalid URI: "+l(t));const c=Xt.test(t);return(o=e.baseURL)&&!c&&(t.startsWith("/")||"/"===o[o.length-1]||(t="/"+t),t=o+t),u=(a=t.startsWith("file://"))||"file"===e.mode||"http"!==e.mode&&!c&&n,a?t=t.slice("file://".length):t.startsWith("//")&&("file"===e.defaultProtocol?(t=t.slice(2),u=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!u}),r.href=t,e.target&&(r.target=e.target+""),e.rel&&(r.rel=e.rel+""),"image"===e.context&&e.crossOrigin&&(r.crossOrigin=e.crossOrigin+""),r}function te(t){return t?function(e){return new Promise((function(n,r){t.readFile(e,(function(t,e){t?r(t):n(e)}))}))}:ee}async function ee(){i("No file system access.")}function ne(t){return t?async function(e,n){const r=X({},this.options.http,n),a=n&&n.response,u=await t(e,r);return u.ok?W(u[a])?u[a]():u.text():i(u.status+""+u.statusText)}:re}async function re(){i("No HTTP fetch method available.")}var ie={boolean:mt,integer:M,number:M,date:yt,string:_t,unknown:d},ae=[function(t){return"true"===t||"false"===t||!0===t||!1===t},function(t){return le(t)&&Number.isInteger(+t)},le,function(t){return!Number.isNaN(Date.parse(t))}],ue=["boolean","integer","number","date"];function oe(t,e){if(!t||!t.length)return"unknown";var n,r,i,a,u=0,o=t.length,s=ae.length,l=ae.map((function(t,e){return e+1}));for(r=0,o=t.length;r<o;++r)for(n=e?t[r][e]:t[r],i=0;i<s;++i)if(l[i]&&(null!=(a=n)&&a==a)&&!ae[i](n)&&(l[i]=0,++u===ae.length))return"string";return u=l.reduce((function(t,e){return 0===t?e:t}),0)-1,ue[u]}function se(t,e){return e.reduce((function(e,n){return e[n]=oe(t,n),e}),{})}function le(t){return!(Number.isNaN(+t)||t instanceof Date)}var ce={},fe={};function he(t){return new Function("d","return {"+t.map((function(t,e){return JSON.stringify(t)+": d["+e+'] || ""'})).join(",")+"}")}function de(t){var e=Object.create(null),n=[];return t.forEach((function(t){for(var r in t)r in e||n.push(e[r]=r)})),n}function pe(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function ge(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":function(t){return t<0?"-"+pe(-t,6):t>9999?"+"+pe(t,6):pe(t,4)}(t.getUTCFullYear())+"-"+pe(t.getUTCMonth()+1,2)+"-"+pe(t.getUTCDate(),2)+(i?"T"+pe(e,2)+":"+pe(n,2)+":"+pe(r,2)+"."+pe(i,3)+"Z":r?"T"+pe(e,2)+":"+pe(n,2)+":"+pe(r,2)+"Z":n||e?"T"+pe(e,2)+":"+pe(n,2)+"Z":"")}function me(t){var e=new RegExp('["'+t+"\n\r]"),n=t.charCodeAt(0);function r(t,e){var r,i=[],a=t.length,u=0,o=0,s=a<=0,l=!1;function c(){if(s)return fe;if(l)return l=!1,ce;var e,r,i=u;if(34===t.charCodeAt(i)){for(;u++<a&&34!==t.charCodeAt(u)||34===t.charCodeAt(++u););return(e=u)>=a?s=!0:10===(r=t.charCodeAt(u++))?l=!0:13===r&&(l=!0,10===t.charCodeAt(u)&&++u),t.slice(i+1,e-1).replace(/""/g,'"')}for(;u<a;){if(10===(r=t.charCodeAt(e=u++)))l=!0;else if(13===r)l=!0,10===t.charCodeAt(u)&&++u;else if(r!==n)continue;return t.slice(i,e)}return s=!0,t.slice(i,a)}for(10===t.charCodeAt(a-1)&&--a,13===t.charCodeAt(a-1)&&--a;(r=c())!==fe;){for(var f=[];r!==ce&&r!==fe;)f.push(r),r=c();e&&null==(f=e(f,o++))||i.push(f)}return i}function i(e,n){return e.map((function(e){return n.map((function(t){return u(e[t])})).join(t)}))}function a(e){return e.map(u).join(t)}function u(t){return null==t?"":t instanceof Date?ge(t):e.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}return{parse:function(t,e){var n,i,a=r(t,(function(t,r){if(n)return n(t,r-1);i=t,n=e?function(t,e){var n=he(t);return function(r,i){return e(n(r),i,t)}}(t,e):he(t)}));return a.columns=i||[],a},parseRows:r,format:function(e,n){return null==n&&(n=de(e)),[n.map(u).join(t)].concat(i(e,n)).join("\n")},formatBody:function(t,e){return null==e&&(e=de(t)),i(t,e).join("\n")},formatRows:function(t){return t.map(a).join("\n")},formatRow:a,formatValue:u}}function ve(t){const e=function(e,n){const r={delimiter:t};return ye(e,n?X(n,r):r)};return e.responseType="text",e}function ye(t,e){return e.header&&(t=e.header.map(l).join(e.delimiter)+"\n"+t),me(e.delimiter).parse(t+"")}function _e(t,e){const n=e&&e.property?c(e.property):d;return!o(t)||(r=t,"function"==typeof Buffer&&W(Buffer.isBuffer)&&Buffer.isBuffer(r))?n(JSON.parse(t)):function(t,e){return e&&e.copy?JSON.parse(JSON.stringify(t)):t}(n(t));var r}function xe(t){return t}function be(t,e){return"string"==typeof e&&(e=t.objects[e]),"GeometryCollection"===e.type?{type:"FeatureCollection",features:e.geometries.map((function(e){return we(t,e)}))}:we(t,e)}function we(t,e){var n=e.id,r=e.bbox,i=null==e.properties?{}:e.properties,a=Ae(t,e);return null==n&&null==r?{type:"Feature",properties:i,geometry:a}:null==r?{type:"Feature",id:n,properties:i,geometry:a}:{type:"Feature",id:n,bbox:r,properties:i,geometry:a}}function Ae(t,e){var n=function(t){if(null==t)return xe;var e,n,r=t.scale[0],i=t.scale[1],a=t.translate[0],u=t.translate[1];return function(t,o){o||(e=n=0);var s=2,l=t.length,c=new Array(l);for(c[0]=(e+=t[0])*r+a,c[1]=(n+=t[1])*i+u;s<l;)c[s]=t[s],++s;return c}}(t.transform),r=t.arcs;function i(t,e){e.length&&e.pop();for(var i=r[t<0?~t:t],a=0,u=i.length;a<u;++a)e.push(n(i[a],a));t<0&&function(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}(e,u)}function a(t){return n(t)}function u(t){for(var e=[],n=0,r=t.length;n<r;++n)i(t[n],e);return e.length<2&&e.push(e[0]),e}function o(t){for(var e=u(t);e.length<4;)e.push(e[0]);return e}function s(t){return t.map(o)}return function t(e){var n,r=e.type;switch(r){case"GeometryCollection":return{type:r,geometries:e.geometries.map(t)};case"Point":n=a(e.coordinates);break;case"MultiPoint":n=e.coordinates.map(a);break;case"LineString":n=u(e.arcs);break;case"MultiLineString":n=e.arcs.map(u);break;case"Polygon":n=s(e.arcs);break;case"MultiPolygon":n=e.arcs.map(s);break;default:return null}return{type:r,coordinates:n}}(e)}function ke(t,e){var n={},r={},i={},a=[],u=-1;function o(t,e){for(var r in t){var i=t[r];delete e[i.start],delete i.start,delete i.end,i.forEach((function(t){n[t<0?~t:t]=1})),a.push(i)}}return e.forEach((function(n,r){var i,a=t.arcs[n<0?~n:n];a.length<3&&!a[1][0]&&!a[1][1]&&(i=e[++u],e[u]=n,e[r]=i)})),e.forEach((function(e){var n,a,u=function(e){var n,r=t.arcs[e<0?~e:e],i=r[0];t.transform?(n=[0,0],r.forEach((function(t){n[0]+=t[0],n[1]+=t[1]}))):n=r[r.length-1];return e<0?[n,i]:[i,n]}(e),o=u[0],s=u[1];if(n=i[o])if(delete i[n.end],n.push(e),n.end=s,a=r[s]){delete r[a.start];var l=a===n?n:n.concat(a);r[l.start=n.start]=i[l.end=a.end]=l}else r[n.start]=i[n.end]=n;else if(n=r[s])if(delete r[n.start],n.unshift(e),n.start=o,a=i[o]){delete i[a.end];var c=a===n?n:a.concat(n);r[c.start=a.start]=i[c.end=n.end]=c}else r[n.start]=i[n.end]=n;else r[(n=[e]).start=o]=i[n.end=s]=n})),o(i,r),o(r,i),e.forEach((function(t){n[t<0?~t:t]||a.push([t])})),a}function Me(t){return Ae(t,Ee.apply(this,arguments))}function Ee(t,e,n){var r,i,a;if(arguments.length>1)r=De(t,e,n);else for(i=0,r=new Array(a=t.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:ke(t,r)}}function De(t,e,n){var r,i=[],a=[];function u(t){var e=t<0?~t:t;(a[e]||(a[e]=[])).push({i:t,g:r})}function o(t){t.forEach(u)}function s(t){t.forEach(o)}return function t(e){switch(r=e,e.type){case"GeometryCollection":e.geometries.forEach(t);break;case"LineString":o(e.arcs);break;case"MultiLineString":case"Polygon":s(e.arcs);break;case"MultiPolygon":!function(t){t.forEach(s)}(e.arcs)}}(e),a.forEach(null==n?function(t){i.push(t[0].i)}:function(t){n(t[0].g,t[t.length-1].g)&&i.push(t[0].i)}),i}ye.responseType="text",_e.responseType="json";const Ce={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function Fe(t,e){let n,r,a,u;return t=_e(t,e),e&&e.feature?(n=be,a=e.feature):e&&e.mesh?(n=Me,a=e.mesh,u=Ce[e.filter]):i("Missing TopoJSON feature or mesh parameter."),r=(r=t.objects[a])?n(t,r,u):i("Invalid TopoJSON object: "+a),r&&r.features||[r]}Fe.responseType="json";const Se={dsv:ye,csv:ve(","),tsv:ve("\t"),json:_e,topojson:Fe};function Be(t,e){return arguments.length>1?(Se[t]=e,this):K(Se,t)?Se[t]:null}function ze(t){const e=Be(t);return e&&e.responseType||"text"}var Te=new Date,Ne=new Date;function Oe(t,e,n,r){function i(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return i.floor=function(e){return t(e=new Date(+e)),e},i.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},i.round=function(t){var e=i(t),n=i.ceil(t);return t-e<n-t?e:n},i.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},i.range=function(n,r,a){var u,o=[];if(n=i.ceil(n),a=null==a?1:Math.floor(a),!(n<r&&a>0))return o;do{o.push(u=new Date(+n)),e(n,a),t(n)}while(u<n&&n<r);return o},i.filter=function(n){return Oe((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););}))},n&&(i.count=function(e,r){return Te.setTime(+e),Ne.setTime(+r),t(Te),t(Ne),Math.floor(n(Te,Ne))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(e){return r(e)%t==0}:function(e){return i.count(0,e)%t==0}):i:null}),i}var Re=Oe((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));Re.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Oe((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):Re:null};var qe=Oe((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+1e3*e)}),(function(t,e){return(e-t)/1e3}),(function(t){return t.getUTCSeconds()})),Ue=Oe((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getMinutes()})),Le=Oe((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-6e4*t.getMinutes())}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getHours()})),Pe=Oe((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5}),(function(t){return t.getDate()-1}));function $e(t){return Oe((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/6048e5}))}var je=$e(0),Ie=$e(1),He=($e(2),$e(3),$e(4)),We=($e(5),$e(6),Oe((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()}))),Ye=Oe((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));Ye.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Oe((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var Ve=Oe((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getUTCMinutes()})),Ge=Oe((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getUTCHours()})),Xe=Oe((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/864e5}),(function(t){return t.getUTCDate()-1}));function Je(t){return Oe((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/6048e5}))}var Ze=Je(0),Qe=Je(1),Ke=(Je(2),Je(3),Je(4)),tn=(Je(5),Je(6),Oe((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()}))),en=Oe((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));function nn(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function rn(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function an(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}en.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Oe((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};var un,on,sn,ln,cn,fn={"-":"",_:" ",0:"0"},hn=/^\s*\d+/,dn=/^%/,pn=/[\\^$*+?|[\]().{}]/g;function gn(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a<n?new Array(n-a+1).join(e)+i:i)}function mn(t){return t.replace(pn,"\\$&")}function vn(t){return new RegExp("^(?:"+t.map(mn).join("|")+")","i")}function yn(t){for(var e={},n=-1,r=t.length;++n<r;)e[t[n].toLowerCase()]=n;return e}function _n(t,e,n){var r=hn.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function xn(t,e,n){var r=hn.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function bn(t,e,n){var r=hn.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function wn(t,e,n){var r=hn.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function An(t,e,n){var r=hn.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function kn(t,e,n){var r=hn.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Mn(t,e,n){var r=hn.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function En(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Dn(t,e,n){var r=hn.exec(e.slice(n,n+1));return r?(t.q=3*r[0]-3,n+r[0].length):-1}function Cn(t,e,n){var r=hn.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Fn(t,e,n){var r=hn.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Sn(t,e,n){var r=hn.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Bn(t,e,n){var r=hn.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function zn(t,e,n){var r=hn.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Tn(t,e,n){var r=hn.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Nn(t,e,n){var r=hn.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function On(t,e,n){var r=hn.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Rn(t,e,n){var r=dn.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function qn(t,e,n){var r=hn.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Un(t,e,n){var r=hn.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Ln(t,e){return gn(t.getDate(),e,2)}function Pn(t,e){return gn(t.getHours(),e,2)}function $n(t,e){return gn(t.getHours()%12||12,e,2)}function jn(t,e){return gn(1+Pe.count(Ye(t),t),e,3)}function In(t,e){return gn(t.getMilliseconds(),e,3)}function Hn(t,e){return In(t,e)+"000"}function Wn(t,e){return gn(t.getMonth()+1,e,2)}function Yn(t,e){return gn(t.getMinutes(),e,2)}function Vn(t,e){return gn(t.getSeconds(),e,2)}function Gn(t){var e=t.getDay();return 0===e?7:e}function Xn(t,e){return gn(je.count(Ye(t)-1,t),e,2)}function Jn(t,e){var n=t.getDay();return t=n>=4||0===n?He(t):He.ceil(t),gn(He.count(Ye(t),t)+(4===Ye(t).getDay()),e,2)}function Zn(t){return t.getDay()}function Qn(t,e){return gn(Ie.count(Ye(t)-1,t),e,2)}function Kn(t,e){return gn(t.getFullYear()%100,e,2)}function tr(t,e){return gn(t.getFullYear()%1e4,e,4)}function er(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+gn(e/60|0,"0",2)+gn(e%60,"0",2)}function nr(t,e){return gn(t.getUTCDate(),e,2)}function rr(t,e){return gn(t.getUTCHours(),e,2)}function ir(t,e){return gn(t.getUTCHours()%12||12,e,2)}function ar(t,e){return gn(1+Xe.count(en(t),t),e,3)}function ur(t,e){return gn(t.getUTCMilliseconds(),e,3)}function or(t,e){return ur(t,e)+"000"}function sr(t,e){return gn(t.getUTCMonth()+1,e,2)}function lr(t,e){return gn(t.getUTCMinutes(),e,2)}function cr(t,e){return gn(t.getUTCSeconds(),e,2)}function fr(t){var e=t.getUTCDay();return 0===e?7:e}function hr(t,e){return gn(Ze.count(en(t)-1,t),e,2)}function dr(t,e){var n=t.getUTCDay();return t=n>=4||0===n?Ke(t):Ke.ceil(t),gn(Ke.count(en(t),t)+(4===en(t).getUTCDay()),e,2)}function pr(t){return t.getUTCDay()}function gr(t,e){return gn(Qe.count(en(t)-1,t),e,2)}function mr(t,e){return gn(t.getUTCFullYear()%100,e,2)}function vr(t,e){return gn(t.getUTCFullYear()%1e4,e,4)}function yr(){return"+0000"}function _r(){return"%"}function xr(t){return+t}function br(t){return Math.floor(+t/1e3)}function wr(t){return un=function(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,a=t.days,u=t.shortDays,o=t.months,s=t.shortMonths,l=vn(i),c=yn(i),f=vn(a),h=yn(a),d=vn(u),p=yn(u),g=vn(o),m=yn(o),v=vn(s),y=yn(s),_={a:function(t){return u[t.getDay()]},A:function(t){return a[t.getDay()]},b:function(t){return s[t.getMonth()]},B:function(t){return o[t.getMonth()]},c:null,d:Ln,e:Ln,f:Hn,H:Pn,I:$n,j:jn,L:In,m:Wn,M:Yn,p:function(t){return i[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:xr,s:br,S:Vn,u:Gn,U:Xn,V:Jn,w:Zn,W:Qn,x:null,X:null,y:Kn,Y:tr,Z:er,"%":_r},x={a:function(t){return u[t.getUTCDay()]},A:function(t){return a[t.getUTCDay()]},b:function(t){return s[t.getUTCMonth()]},B:function(t){return o[t.getUTCMonth()]},c:null,d:nr,e:nr,f:or,H:rr,I:ir,j:ar,L:ur,m:sr,M:lr,p:function(t){return i[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:xr,s:br,S:cr,u:fr,U:hr,V:dr,w:pr,W:gr,x:null,X:null,y:mr,Y:vr,Z:yr,"%":_r},b={a:function(t,e,n){var r=d.exec(e.slice(n));return r?(t.w=p[r[0].toLowerCase()],n+r[0].length):-1},A:function(t,e,n){var r=f.exec(e.slice(n));return r?(t.w=h[r[0].toLowerCase()],n+r[0].length):-1},b:function(t,e,n){var r=v.exec(e.slice(n));return r?(t.m=y[r[0].toLowerCase()],n+r[0].length):-1},B:function(t,e,n){var r=g.exec(e.slice(n));return r?(t.m=m[r[0].toLowerCase()],n+r[0].length):-1},c:function(t,n,r){return k(t,e,n,r)},d:Fn,e:Fn,f:On,H:Bn,I:Bn,j:Sn,L:Nn,m:Cn,M:zn,p:function(t,e,n){var r=l.exec(e.slice(n));return r?(t.p=c[r[0].toLowerCase()],n+r[0].length):-1},q:Dn,Q:qn,s:Un,S:Tn,u:xn,U:bn,V:wn,w:_n,W:An,x:function(t,e,r){return k(t,n,e,r)},X:function(t,e,n){return k(t,r,e,n)},y:Mn,Y:kn,Z:En,"%":Rn};function w(t,e){return function(n){var r,i,a,u=[],o=-1,s=0,l=t.length;for(n instanceof Date||(n=new Date(+n));++o<l;)37===t.charCodeAt(o)&&(u.push(t.slice(s,o)),null!=(i=fn[r=t.charAt(++o)])?r=t.charAt(++o):i="e"===r?" ":"0",(a=e[r])&&(r=a(n,i)),u.push(r),s=o+1);return u.push(t.slice(s,o)),u.join("")}}function A(t,e){return function(n){var r,i,a=an(1900,void 0,1);if(k(a,t,n+="",0)!=n.length)return null;if("Q"in a)return new Date(a.Q);if("s"in a)return new Date(1e3*a.s+("L"in a?a.L:0));if(!e||"Z"in a||(a.Z=0),"p"in a&&(a.H=a.H%12+12*a.p),void 0===a.m&&(a.m="q"in a?a.q:0),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(r=rn(an(a.y,0,1))).getUTCDay(),r=i>4||0===i?Qe.ceil(r):Qe(r),r=Xe.offset(r,7*(a.V-1)),a.y=r.getUTCFullYear(),a.m=r.getUTCMonth(),a.d=r.getUTCDate()+(a.w+6)%7):(i=(r=nn(an(a.y,0,1))).getDay(),r=i>4||0===i?Ie.ceil(r):Ie(r),r=Pe.offset(r,7*(a.V-1)),a.y=r.getFullYear(),a.m=r.getMonth(),a.d=r.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),i="Z"in a?rn(an(a.y,0,1)).getUTCDay():nn(an(a.y,0,1)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(i+5)%7:a.w+7*a.U-(i+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,rn(a)):nn(a)}}function k(t,e,n,r){for(var i,a,u=0,o=e.length,s=n.length;u<o;){if(r>=s)return-1;if(37===(i=e.charCodeAt(u++))){if(i=e.charAt(u++),!(a=b[i in fn?e.charAt(u++):i])||(r=a(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return(_.x=w(n,_),_.X=w(r,_),_.c=w(e,_),x.x=w(n,x),x.X=w(r,x),x.c=w(e,x),{format:function(t){var e=w(t+="",_);return e.toString=function(){return t},e},parse:function(t){var e=A(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=w(t+="",x);return e.toString=function(){return t},e},utcParse:function(t){var e=A(t+="",!0);return e.toString=function(){return t},e}})}(t),on=un.format,sn=un.parse,ln=un.utcFormat,cn=un.utcParse,un}function Ar(t,e,n){const r=Be((e=e||{}).type||"json");return r||i("Unknown data format type: "+e.type),t=r(t,e),e.parse&&function(t,e,n){if(!t.length)return;n=n||sn;var r,i,a,u,o,s,l,c=t.columns||Object.keys(t[0]);"auto"===e&&(e=se(t,c));for(c=Object.keys(e),r=c.map((function(t){var r,i,a=e[t];if(a&&(0===a.indexOf("date:")||0===a.indexOf("utc:")))return("'"===(i=(r=a.split(/:(.+)?/,2))[1])[0]&&"'"===i[i.length-1]||'"'===i[0]&&'"'===i[i.length-1])&&(i=i.slice(1,-1)),"utc"===r[0]?cn(i):n(i);if(!ie[a])throw Error("Illegal format pattern: "+t+":"+a);return ie[a]})),u=0,s=t.length,l=c.length;u<s;++u)for(i=t[u],o=0;o<l;++o)a=c[o],i[a]=r[o](i[a])}(t,e.parse,n),K(t,"columns")&&delete t.columns,t}wr({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var kr=function(t,e){return function(n){return{options:n||{},sanitize:Kt,load:Qt,fileAccess:!!e,file:te(e),http:ne(t)}}}("undefined"!=typeof fetch&&fetch,null);const Mr=Ar;var Er={skip:!0};function Dr(t,e,n,r,i,a){var u,o,s=X({},a,Er);W(n)||(n=V(n)),void 0===r?u=e=>t.touch(n(e)):W(r)?(o=new jt(null,r,i,!1),u=e=>{o.evaluate(e);const r=n(e),i=o.value;Ot(i)?t.pulse(r,i,a):t.update(r,i,s)}):u=e=>t.update(n(e),r,s),e.apply(u)}function Cr(t,e,n,r,i,a){if(void 0===r)e.targets().add(n);else{const u=a||{},o=new jt(null,function(t,e){return e=W(e)?e:V(e),t?function(n,r){const i=e(n,r);return t.skip()||(t.skip(i!==this.value).value=i),i}:e}(n,r),i,!1);o.modified(u.force),o.rank=e.rank,e.targets().add(o),n&&(o.skip(!0),o.value=n.value,o.targets().add(n),t.connect(n,[o]))}}var Fr={};function Sr(t,e,n){this.dataflow=t,this.stamp=null==e?-1:e,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}var Br=Sr.prototype;function zr(t,e){return t?function(n,r){return t(n,r)&&e(n,r)}:e}function Tr(t,e){var n=[];return wt(t,e,(function(t){n.push(t)})),n}function Nr(t,e){var n={};return t.visit(e,(function(t){n[Ct(t)]=1})),function(t){return n[Ct(t)]?null:t}}function Or(t,e,n,r){var i,a,u,o,s,l=this,c=0;for(this.dataflow=t,this.stamp=e,this.fields=null,this.encode=r||null,this.pulses=n,u=0,o=n.length;u<o;++u)if((i=n[u]).stamp===e){if(i.fields)for(s in a=l.fields||(l.fields={}),i.fields)a[s]=1;i.changed(l.ADD)&&(c|=l.ADD),i.changed(l.REM)&&(c|=l.REM),i.changed(l.MOD)&&(c|=l.MOD)}this.changes=c}Br.StopPropagation=Fr,Br.ADD=1,Br.REM=2,Br.MOD=4,Br.ADD_REM=3,Br.ADD_MOD=5,Br.ALL=7,Br.REFLOW=8,Br.SOURCE=16,Br.NO_SOURCE=32,Br.NO_FIELDS=64,Br.fork=function(t){return new Sr(this.dataflow).init(this,t)},Br.clone=function(){var t=this.fork(7);return t.add=t.add.slice(),t.rem=t.rem.slice(),t.mod=t.mod.slice(),t.source&&(t.source=t.source.slice()),t.materialize(23)},Br.addAll=function(){var t=this;return this.source&&this.source.length!==this.add.length?((t=new Sr(this.dataflow).init(this)).add=t.source,t):t},Br.init=function(t,e){var n=this;return n.stamp=t.stamp,n.encode=t.encode,!t.fields||64&e||(n.fields=t.fields),1&e?(n.addF=t.addF,n.add=t.add):(n.addF=null,n.add=[]),2&e?(n.remF=t.remF,n.rem=t.rem):(n.remF=null,n.rem=[]),4&e?(n.modF=t.modF,n.mod=t.mod):(n.modF=null,n.mod=[]),32&e?(n.srcF=null,n.source=null):(n.srcF=t.srcF,n.source=t.source),n},Br.runAfter=function(t){this.dataflow.runAfter(t)},Br.changed=function(t){var e=t||7;return 1&e&&this.add.length||2&e&&this.rem.length||4&e&&this.mod.length},Br.reflow=function(t){if(t)return this.fork(7).reflow();var e=this.add.length,n=this.source&&this.source.length;return n&&n!==e&&(this.mod=this.source,e&&this.filter(4,Nr(this,1))),this},Br.modifies=function(t){var e=this.fields||(this.fields={});return u(t)?t.forEach(t=>e[t]=!0):e[t]=!0,this},Br.modified=function(t,e){var n=this.fields;return!(!e&&!this.mod.length||!n)&&(arguments.length?u(t)?t.some((function(t){return n[t]})):n[t]:!!n)},Br.filter=function(t,e){var n=this;return 1&t&&(n.addF=zr(n.addF,e)),2&t&&(n.remF=zr(n.remF,e)),4&t&&(n.modF=zr(n.modF,e)),16&t&&(n.srcF=zr(n.srcF,e)),n},Br.materialize=function(t){var e=this;return 1&(t=t||7)&&e.addF&&(e.add=Tr(e.add,e.addF),e.addF=null),2&t&&e.remF&&(e.rem=Tr(e.rem,e.remF),e.remF=null),4&t&&e.modF&&(e.mod=Tr(e.mod,e.modF),e.modF=null),16&t&&e.srcF&&(e.source=e.source.filter(e.srcF),e.srcF=null),e},Br.visit=function(t,e){var n,r,i=this,a=e;return 16&t?(wt(i.source,i.srcF,a),i):(1&t&&wt(i.add,i.addF,a),2&t&&wt(i.rem,i.remF,a),4&t&&wt(i.mod,i.modF,a),8&t&&(n=i.source)&&((r=i.add.length+i.mod.length)===n.length||wt(n,r?Nr(i,5):i.srcF,a)),i)};var Rr=rt(Or,Sr);function qr(t){return t.error("Dataflow already running. Use runAsync() to chain invocations."),t}Rr.fork=function(t){var e=new Sr(this.dataflow).init(this,t&this.NO_FIELDS);return void 0!==t&&(t&e.ADD&&this.visit(e.ADD,(function(t){return e.add.push(t)})),t&e.REM&&this.visit(e.REM,(function(t){return e.rem.push(t)})),t&e.MOD&&this.visit(e.MOD,(function(t){return e.mod.push(t)}))),e},Rr.changed=function(t){return this.changes&t},Rr.modified=function(t){var e=this,n=e.fields;return n&&e.changes&e.MOD?u(t)?t.some((function(t){return n[t]})):n[t]:0},Rr.filter=function(){i("MultiPulse does not support filtering.")},Rr.materialize=function(){i("MultiPulse does not support materialization.")},Rr.visit=function(t,e){var n=this,r=n.pulses,i=r.length,a=0;if(t&n.SOURCE)for(;a<i;++a)r[a].visit(t,e);else for(;a<i;++a)r[a].stamp===n.stamp&&r[a].visit(t,e);return n};var Ur={skip:!1,force:!1};function Lr(t){var e=[];return{clear:()=>e=[],size:()=>e.length,peek:()=>e[0],push:n=>(e.push(n),Pr(e,0,e.length-1,t)),pop:()=>{var n,r=e.pop();return e.length?(n=e[0],e[0]=r,function(t,e,n){var r,i=e,a=t.length,u=t[e],o=1+(e<<1);for(;o<a;)(r=o+1)<a&&n(t[o],t[r])>=0&&(o=r),t[e]=t[o],o=1+((e=o)<<1);t[e]=u,Pr(t,i,e,n)}(e,0,t)):n=r,n}}}function Pr(t,e,n,r){var i,a,u;for(i=t[n];n>e&&r(i,a=t[u=n-1>>1])<0;)t[n]=a,n=u;return t[n]=i}function $r(){this.logger(_()),this.logLevel(1),this._clock=0,this._rank=0;try{this._loader=kr()}catch(t){}this._touched=At(h),this._input={},this._pulse=null,this._heap=Lr((t,e)=>t.qrank-e.qrank),this._postrun=[]}var jr=$r.prototype;function Ir(t){return function(){return this._log[t].apply(this,arguments)}}function Hr(t,e){jt.call(this,t,null,e)}jr.stamp=function(){return this._clock},jr.loader=function(t){return arguments.length?(this._loader=t,this):this._loader},jr.cleanThreshold=1e4,jr.add=function(t,e,n,r){var i,a=1;return t instanceof jt?i=t:t&&t.prototype instanceof jt?i=new t:W(t)?i=new jt(null,t):(a=0,i=new jt(t,e)),this.rank(i),a&&(r=n,n=e),n&&this.connect(i,i.parameters(n,r)),this.touch(i),i},jr.connect=function(t,e){var n,r,i=t.rank;for(n=0,r=e.length;n<r;++n)if(i<e[n].rank)return void this.rerank(t)},jr.rank=function(t){t.rank=++this._rank},jr.rerank=function(t){for(var e,n,r,a=[t];a.length;)if(this.rank(e=a.pop()),n=e._targets)for(r=n.length;--r>=0;)a.push(e=n[r]),e===t&&i("Cycle detected in dataflow graph.")},jr.pulse=function(t,e,n){this.touch(t,n||Ur);var r=new Sr(this,this._clock+(this._pulse?0:1)),i=t.pulse&&t.pulse.source||[];return r.target=t,this._input[t.id]=e.pulse(r,i),this},jr.touch=function(t,e){var n=e||Ur;return this._pulse?this._enqueue(t):this._touched.add(t),n.skip&&t.skip(!0),this},jr.update=function(t,e,n){var r=n||Ur;return(t.set(e)||r.force)&&this.touch(t,r),this},jr.changeset=Rt,jr.ingest=function(t,e,n){return this.pulse(t,this.changeset().insert(Mr(e,n)))},jr.parse=Mr,jr.preload=async function(t,e,n){const r=this,i=r._pending||function(t){var e,n=new Promise((function(t){e=t}));return n.requests=0,n.done=function(){0==--n.requests&&(t._pending=null,e(t))},t._pending=n}(r);i.requests+=1;const a=await r.request(e,n);return r.pulse(t,r.changeset().remove(m).insert(a.data||[])),i.done(),a},jr.request=async function(t,e){const n=this;let r,i=0;try{r=await n.loader().load(t,{context:"dataflow",response:ze(e&&e.type)});try{r=Mr(r,e)}catch(e){i=-2,n.warn("Data ingestion failed",t,e)}}catch(e){i=-1,n.warn("Loading failed",t,e)}return{data:r,status:i}},jr.events=function(t,e,n,r){for(var i,a=this,u=Vt(n,r),o=function(t){t.dataflow=a;try{u.receive(t)}catch(t){a.error(t)}finally{a.run()}},s=0,l=(i="string"==typeof t&&"undefined"!=typeof document?document.querySelectorAll(t):I(t)).length;s<l;++s)i[s].addEventListener(e,o);return u},jr.on=function(t,e,n,r,i){return(t instanceof jt?Cr:Dr)(this,t,e,n,r,i),this},jr.evaluate=async function(t,e,n){const r=this,i=r.logLevel(),a=[];if(r._pulse)return qr(r);if(r._pending&&await r._pending,e&&await kt(r,e),!r._touched.length)return r.info("Dataflow invoked, but nothing to do."),r;let u,o,s,l,c=++r._clock,f=0;r._pulse=new Sr(r,c,t),i>=3&&(s=Date.now(),r.debug("-- START PROPAGATION ("+c+") -----")),r._touched.forEach(t=>r._enqueue(t,!0)),r._touched=At(h);try{for(;r._heap.size()>0;)u=r._heap.pop(),u.rank===u.qrank?(o=u.run(r._getPulse(u,t)),o.then?o=await o:o.async&&(a.push(o.async),o=Fr),i>=4&&r.debug(u.id,o===Fr?"STOP":o,u),o!==Fr&&u._targets&&u._targets.forEach(t=>r._enqueue(t)),++f):r._enqueue(u,!0)}catch(t){r._heap.clear(),l=t}if(r._input={},r._pulse=null,i>=3&&(s=Date.now()-s,r.info("> Pulse "+c+": "+f+" operators; "+s+"ms")),l&&(r._postrun=[],r.error(l)),r._postrun.length){const t=r._postrun.sort((t,e)=>e.priority-t.priority);r._postrun=[];for(let e=0;e<t.length;++e)await kt(r,t[e].callback)}return n&&await kt(r,n),a.length&&Promise.all(a).then(t=>r.runAsync(null,()=>{t.forEach(t=>{try{t(r)}catch(t){r.error(t)}})})),r},jr.run=function(t,e,n){return this._pulse?qr(this):(this.evaluate(t,e,n),this)},jr.runAsync=async function(t,e,n){for(;this._running;)await this._running;const r=()=>this._running=null;return(this._running=this.evaluate(t,e,n)).then(r,r),this._running},jr.runAfter=function(t,e,n){if(this._pulse||e)this._postrun.push({priority:n||0,callback:t});else try{t(this)}catch(t){this.error(t)}},jr._enqueue=function(t,e){var n=t.stamp<this._clock;n&&(t.stamp=this._clock),(n||e)&&(t.qrank=t.rank,this._heap.push(t))},jr._getPulse=function(t,e){var n=t.source,r=this._clock;return n&&u(n)?new Or(this,r,n.map(t=>t.pulse),e):this._input[t.id]||function(t,e){if(e&&e.stamp===t.stamp)return e;t=t.fork(),e&&e!==Fr&&(t.source=e.source);return t}(this._pulse,n&&n.pulse)},jr.logger=function(t){return arguments.length?(this._log=t,this):this._log},jr.error=Ir("error"),jr.warn=Ir("warn"),jr.info=Ir("info"),jr.debug=Ir("debug"),jr.logLevel=Ir("level");var Wr=rt(Hr,jt);Wr.run=function(t){return t.stamp<this.stamp?t.StopPropagation:(this.skip()?this.skip(!1):e=this.evaluate(t),(e=e||t).then?e=e.then(t=>this.pulse=t):e!==t.StopPropagation&&(this.pulse=e),e);var e},Wr.evaluate=function(t){var e=this.marshall(t.stamp),n=this.transform(e,t);return e.clear(),n},Wr.transform=function(){};var Yr={};function Vr(t){var e=Gr(t);return e&&e.Definition||null}function Gr(t){return t=t&&t.toLowerCase(),K(Yr,t)?Yr[t]:null}function Xr(t){return t&&t.length?1===t.length?t[0]:(e=t,function(t){for(var n=e.length,r=1,i=String(e[0](t));r<n;++r)i+="|"+e[r](t);return i}):function(){return""};var e}function Jr(t,e,n){return n||t+(e?"_"+e:"")}var Zr={values:ti({name:"values",init:"cell.store = true;",set:"cell.data.values()",idx:-1}),count:ti({name:"count",set:"cell.num"}),__count__:ti({name:"count",set:"this.missing + this.valid"}),missing:ti({name:"missing",set:"this.missing"}),valid:ti({name:"valid",set:"this.valid"}),sum:ti({name:"sum",init:"this.sum = 0;",add:"this.sum += +v;",rem:"this.sum -= v;",set:"this.sum"}),product:ti({name:"product",init:"this.product = 1;",add:"this.product *= v;",rem:"this.product /= v;",set:"this.valid ? this.product : undefined"}),mean:ti({name:"mean",init:"this.mean = 0;",add:"var d = v - this.mean; this.mean += d / this.valid;",rem:"var d = v - this.mean; this.mean -= this.valid ? d / this.valid : this.mean;",set:"this.valid ? this.mean : undefined"}),average:ti({name:"average",set:"this.valid ? this.mean : undefined",req:["mean"],idx:1}),variance:ti({name:"variance",init:"this.dev = 0;",add:"this.dev += d * (v - this.mean);",rem:"this.dev -= d * (v - this.mean);",set:"this.valid > 1 ? this.dev / (this.valid-1) : undefined",req:["mean"],idx:1}),variancep:ti({name:"variancep",set:"this.valid > 1 ? this.dev / this.valid : undefined",req:["variance"],idx:2}),stdev:ti({name:"stdev",set:"this.valid > 1 ? Math.sqrt(this.dev / (this.valid-1)) : undefined",req:["variance"],idx:2}),stdevp:ti({name:"stdevp",set:"this.valid > 1 ? Math.sqrt(this.dev / this.valid) : undefined",req:["variance"],idx:2}),stderr:ti({name:"stderr",set:"this.valid > 1 ? Math.sqrt(this.dev / (this.valid * (this.valid-1))) : undefined",req:["variance"],idx:2}),distinct:ti({name:"distinct",set:"cell.data.distinct(this.get)",req:["values"],idx:3}),ci0:ti({name:"ci0",set:"cell.data.ci0(this.get)",req:["values"],idx:3}),ci1:ti({name:"ci1",set:"cell.data.ci1(this.get)",req:["values"],idx:3}),median:ti({name:"median",set:"cell.data.q2(this.get)",req:["values"],idx:3}),q1:ti({name:"q1",set:"cell.data.q1(this.get)",req:["values"],idx:3}),q3:ti({name:"q3",set:"cell.data.q3(this.get)",req:["values"],idx:3}),argmin:ti({name:"argmin",init:"this.argmin = undefined;",add:"if (v < this.min) this.argmin = t;",rem:"if (v <= this.min) this.argmin = undefined;",set:"this.argmin || cell.data.argmin(this.get)",req:["min"],str:["values"],idx:3}),argmax:ti({name:"argmax",init:"this.argmax = undefined;",add:"if (v > this.max) this.argmax = t;",rem:"if (v >= this.max) this.argmax = undefined;",set:"this.argmax || cell.data.argmax(this.get)",req:["max"],str:["values"],idx:3}),min:ti({name:"min",init:"this.min = undefined;",add:"if (v < this.min || this.min === undefined) this.min = v;",rem:"if (v <= this.min) this.min = NaN;",set:"this.min = (Number.isNaN(this.min) ? cell.data.min(this.get) : this.min)",str:["values"],idx:4}),max:ti({name:"max",init:"this.max = undefined;",add:"if (v > this.max || this.max === undefined) this.max = v;",rem:"if (v >= this.max) this.max = NaN;",set:"this.max = (Number.isNaN(this.max) ? cell.data.max(this.get) : this.max)",str:["values"],idx:4})},Qr=Object.keys(Zr);function Kr(t,e){return Zr[t](e)}function ti(t){return function(e){var n=X({init:"",add:"",rem:"",idx:0},t);return n.out=e||t.name,n}}function ei(t,e){return t.idx-e.idx}function ni(t,e){var n=e||d,r=function(t,e){var n,r=t.reduce((function t(n,r){function i(e){n[e]||t(n,n[e]=Zr[e]())}return r.req&&r.req.forEach(i),e&&r.str&&r.str.forEach(i),n}),t.reduce((function(t,e){return t[e.name]=e,t}),{})),i=[];for(n in r)i.push(r[n]);return i.sort(ei)}(t,!0),i="var cell = this.cell; this.valid = 0; this.missing = 0;",a="this.cell = cell; this.init();",u="if(v==null){++this.missing; return;} if(v!==v) return; ++this.valid;",o="if(v==null){--this.missing; return;} if(v!==v) return; --this.valid;",s="var cell = this.cell;";return r.forEach((function(t){i+=t.init,u+=t.add,o+=t.rem})),t.slice().sort(ei).forEach((function(t){s+="t["+l(t.out)+"]="+t.set+";"})),s+="return t;",(a=Function("cell",a)).prototype.init=Function(i),a.prototype.add=Function("v","t",u),a.prototype.rem=Function("v","t",o),a.prototype.set=Function("t",s),a.prototype.get=n,a.fields=t.map((function(t){return t.out})),a}function*ri(t,e){if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&(yield e);else{let n=-1;for(let r of t)null!=(r=e(r,++n,t))&&(r=+r)>=r&&(yield r)}}function ii(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function ai(t){var e;return 1===t.length&&(e=t,t=function(t,n){return ii(e(t),n)}),{left:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r<i;){var a=r+i>>>1;t(e[a],n)<0?r=a+1:i=a}return r},right:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r<i;){var a=r+i>>>1;t(e[a],n)>0?i=a:r=a+1}return r}}}var ui=ai(ii),oi=ui.right,si=ui.left;function li(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=0|Math.max(0,Math.ceil((e-t)/n)),a=new Array(i);++r<i;)a[r]=t+r*n;return a}var ci=Math.sqrt(50),fi=Math.sqrt(10),hi=Math.sqrt(2);function di(t,e,n){var r,i,a,u,o=-1;if(n=+n,(t=+t)===(e=+e)&&n>0)return[t];if((r=e<t)&&(i=t,t=e,e=i),0===(u=pi(t,e,n))||!isFinite(u))return[];if(u>0)for(t=Math.ceil(t/u),e=Math.floor(e/u),a=new Array(i=Math.ceil(e-t+1));++o<i;)a[o]=(t+o)*u;else for(t=Math.floor(t*u),e=Math.ceil(e*u),a=new Array(i=Math.ceil(t-e+1));++o<i;)a[o]=(t-o)/u;return r&&a.reverse(),a}function pi(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=ci?10:a>=fi?5:a>=hi?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=ci?10:a>=fi?5:a>=hi?2:1)}function gi(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=ci?i*=10:a>=fi?i*=5:a>=hi&&(i*=2),e<t?-i:i}function mi(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n<e||void 0===n&&e>=e)&&(n=e);else{let r=-1;for(let i of t)null!=(i=e(i,++r,t))&&(n<i||void 0===n&&i>=i)&&(n=i)}return n}function vi(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n>e||void 0===n&&e>=e)&&(n=e);else{let r=-1;for(let i of t)null!=(i=e(i,++r,t))&&(n>i||void 0===n&&i>=i)&&(n=i)}return n}function yi(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function _i(t){return null===t?NaN:+t}function xi(t,e,n){if(r=(t=Float64Array.from(function*(t,e){if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&(yield e);else{let n=-1;for(let r of t)null!=(r=e(r,++n,t))&&(r=+r)>=r&&(yield r)}}(t,n))).length){if((e=+e)<=0||r<2)return vi(t);if(e>=1)return mi(t);var r,i=(r-1)*e,a=Math.floor(i),u=mi(function t(e,n,r=0,i=e.length-1,a=ii){for(;i>r;){if(i-r>600){const u=i-r+1,o=n-r+1,s=Math.log(u),l=.5*Math.exp(2*s/3),c=.5*Math.sqrt(s*l*(u-l)/u)*(o-u/2<0?-1:1);t(e,n,Math.max(r,Math.floor(n-o*l/u+c)),Math.min(i,Math.floor(n+(u-o)*l/u+c)),a)}const u=e[n];let o=r,s=i;for(yi(e,r,n),a(e[i],u)>0&&yi(e,r,i);o<s;){for(yi(e,o,s),++o,--s;a(e[o],u)<0;)++o;for(;a(e[s],u)>0;)--s}0===a(e[r],u)?yi(e,r,s):(++s,yi(e,s,i)),s<=n&&(r=s+1),n<=s&&(i=s-1)}return e}(t,a).subarray(0,a+1));return u+(vi(t.subarray(a+1))-u)*(i-a)}}function bi(t,e){return xi(t,.5,e)}function wi(t,e){let n=0;if(void 0===e)for(let e of t)(e=+e)&&(n+=e);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function Ai(t,e,n){var r=Float64Array.from(ri(t,n));return r.sort(ii),e.map(t=>function(t,e,n=_i){if(r=t.length){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,a=Math.floor(i),u=+n(t[a],a,t);return u+(+n(t[a+1],a+1,t)-u)*(i-a)}}(r,t))}function ki(t,e){return Ai(t,[.25,.5,.75],e)}function Mi(t,e){var n=t.length,r=function(t,e){const n=function(t,e){let n,r=0,i=0,a=0;if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&(n=e-i,i+=n/++r,a+=n*(e-i));else{let u=-1;for(let o of t)null!=(o=e(o,++u,t))&&(o=+o)>=o&&(n=o-i,i+=n/++r,a+=n*(o-i))}if(r>1)return a/(r-1)}(t,e);return n?Math.sqrt(n):n}(t,e),i=ki(t,e),a=(i[2]-i[0])/1.34;return 1.06*(r=Math.min(r,a)||r||Math.abs(i[0])||1)*Math.pow(n,-.2)}function Ei(t){var e,n,r,i,a,u,o,s,l=t.maxbins||20,c=t.base||10,f=Math.log(c),h=t.divide||[5,2],d=t.extent[0],p=t.extent[1],g=t.span||p-d||Math.abs(d)||1;if(t.step)e=t.step;else if(t.steps){for(a=g/l,u=0,o=t.steps.length;u<o&&t.steps[u]<a;++u);e=t.steps[Math.max(0,u-1)]}else{for(n=Math.ceil(Math.log(l)/f),r=t.minstep||0,e=Math.max(r,Math.pow(c,Math.round(Math.log(g)/f)-n));Math.ceil(g/e)>l;)e*=c;for(u=0,o=h.length;u<o;++u)(a=e/h[u])>=r&&g/a<=l&&(e=a)}return i=(a=Math.log(e))>=0?0:1+~~(-a/f),s=Math.pow(c,-i-1),(t.nice||void 0===t.nice)&&(d=d<(a=Math.floor(d/e+s)*e)?a-e:a,p=Math.ceil(p/e)*e),{start:d,stop:p===d?d+e:p,step:e}}function Di(e,n,r,i){if(!e.length)return[void 0,void 0];var a,u,o,s,l=Float64Array.from(ri(e,i)),c=l.length,f=n;for(o=0,s=Array(f);o<f;++o){for(a=0,u=0;u<c;++u)a+=l[~~(t.random()*c)];s[o]=a/c}return s.sort(ii),[xi(s,r/2),xi(s,1-r/2)]}function Ci(t,e,n,r){r=r||(t=>t);let i,a=0,u=1,o=t.length,s=new Float64Array(o),l=r(t[0]),c=l,f=l+e;for(;u<o;++u){if(i=r(t[u]),i>=f){for(c=(l+c)/2;a<u;++a)s[a]=c;f=i+e,l=i}c=i}for(c=(l+c)/2;a<u;++a)s[a]=c;return n?function(t,e){let n,r,i=t.length,a=0,u=1;for(;t[a]===t[u];)++u;for(;u<i;){for(n=u+1;t[u]===t[n];)++n;if(t[u]-t[u-1]<e){for(r=u+(a+n-u-u>>1);r<u;)t[r++]=t[u];for(;r>u;)t[r--]=t[a]}a=u,u=n}return t}(s,e+e/4):s}t.random=Math.random;const Fi=Math.sqrt(2*Math.PI),Si=Math.SQRT2;let Bi=NaN;function zi(e,n){e=e||0,n=null==n?1:n;let r,i,a=0,u=0;if(Bi==Bi)a=Bi,Bi=NaN;else{do{a=2*t.random()-1,u=2*t.random()-1,r=a*a+u*u}while(0===r||r>1);i=Math.sqrt(-2*Math.log(r)/r),a*=i,Bi=u*i}return e+a*n}function Ti(t,e,n){const r=(t-(e||0))/(n=null==n?1:n);return Math.exp(-.5*r*r)/(n*Fi)}function Ni(t,e,n){let r,i=(t-(e=e||0))/(n=null==n?1:n),a=Math.abs(i);if(a>37)r=0;else{let t,e=Math.exp(-a*a/2);a<7.07106781186547?(t=.0352624965998911*a+.700383064443688,t=t*a+6.37396220353165,t=t*a+33.912866078383,t=t*a+112.079291497871,t=t*a+221.213596169931,t=t*a+220.206867912376,r=e*t,t=.0883883476483184*a+1.75566716318264,t=t*a+16.064177579207,t=t*a+86.7807322029461,t=t*a+296.564248779674,t=t*a+637.333633378831,t=t*a+793.826512519948,t=t*a+440.413735824752,r/=t):(t=a+.65,t=a+4/t,t=a+3/t,t=a+2/t,t=a+1/t,r=e/t/2.506628274631)}return i>0?1-r:r}function Oi(t,e,n){return t<0||t>1?NaN:(e||0)+(null==n?1:n)*Si*function(t){let e,n=-Math.log((1-t)*(1+t));n<6.25?(n-=3.125,e=-364441206401782e-35,e=e*n-16850591381820166e-35,e=128584807152564e-32+e*n,e=11157877678025181e-33+e*n,e=e*n-1333171662854621e-31,e=20972767875968562e-33+e*n,e=6637638134358324e-30+e*n,e=e*n-4054566272975207e-29,e=e*n-8151934197605472e-29,e=26335093153082323e-28+e*n,e=e*n-12975133253453532e-27,e=e*n-5415412054294628e-26,e=1.0512122733215323e-9+e*n,e=e*n-4.112633980346984e-9,e=e*n-2.9070369957882005e-8,e=4.2347877827932404e-7+e*n,e=e*n-13654692000834679e-22,e=e*n-13882523362786469e-21,e=.00018673420803405714+e*n,e=e*n-.000740702534166267,e=e*n-.006033670871430149,e=.24015818242558962+e*n,e=1.6536545626831027+e*n):n<16?(n=Math.sqrt(n)-3.25,e=2.2137376921775787e-9,e=9.075656193888539e-8+e*n,e=e*n-2.7517406297064545e-7,e=1.8239629214389228e-8+e*n,e=15027403968909828e-22+e*n,e=e*n-4013867526981546e-21,e=29234449089955446e-22+e*n,e=12475304481671779e-21+e*n,e=e*n-47318229009055734e-21,e=6828485145957318e-20+e*n,e=24031110387097894e-21+e*n,e=e*n-.0003550375203628475,e=.0009532893797373805+e*n,e=e*n-.0016882755560235047,e=.002491442096107851+e*n,e=e*n-.003751208507569241,e=.005370914553590064+e*n,e=1.0052589676941592+e*n,e=3.0838856104922208+e*n):Number.isFinite(n)?(n=Math.sqrt(n)-5,e=-27109920616438573e-27,e=e*n-2.555641816996525e-10,e=1.5076572693500548e-9+e*n,e=e*n-3.789465440126737e-9,e=7.61570120807834e-9+e*n,e=e*n-1.496002662714924e-8,e=2.914795345090108e-8+e*n,e=e*n-6.771199775845234e-8,e=2.2900482228026655e-7+e*n,e=e*n-9.9298272942317e-7,e=4526062597223154e-21+e*n,e=e*n-1968177810553167e-20,e=7599527703001776e-20+e*n,e=e*n-.00021503011930044477,e=e*n-.00013871931833623122,e=1.0103004648645344+e*n,e=4.849906401408584+e*n):e=1/0;return e*t}(2*t-1)}function Ri(t,e){var n,r,i={mean:function(t){return arguments.length?(n=t||0,i):n},stdev:function(t){return arguments.length?(r=null==t?1:t,i):r},sample:()=>zi(n,r),pdf:t=>Ti(t,n,r),cdf:t=>Ni(t,n,r),icdf:t=>Oi(t,n,r)};return i.mean(t).stdev(e)}function qi(e,n){var r=Ri(),i={},a=0;return i.data=function(t){return arguments.length?(e=t,a=t?t.length:0,i.bandwidth(n)):e},i.bandwidth=function(t){return arguments.length?(!(n=t)&&e&&(n=Mi(e)),i):n},i.sample=function(){return e[~~(t.random()*a)]+n*r.sample()},i.pdf=function(t){for(var i=0,u=0;u<a;++u)i+=r.pdf((t-e[u])/n);return i/n/a},i.cdf=function(t){for(var i=0,u=0;u<a;++u)i+=r.cdf((t-e[u])/n);return i/a},i.icdf=function(){throw Error("KDE icdf not supported.")},i.data(e)}function Ui(t,e){return t=t||0,e=null==e?1:e,Math.exp(t+zi()*e)}function Li(t,e,n){if(t<=0)return 0;e=e||0,n=null==n?1:n;const r=(Math.log(t)-e)/n;return Math.exp(-.5*r*r)/(n*Fi*t)}function Pi(t,e,n){return Ni(Math.log(t),e,n)}function $i(t,e,n){return Math.exp(Oi(t,e,n))}function ji(t,e){var n,r,i={mean:function(t){return arguments.length?(n=t||0,i):n},stdev:function(t){return arguments.length?(r=null==t?1:t,i):r},sample:()=>Ui(n,r),pdf:t=>Li(t,n,r),cdf:t=>Pi(t,n,r),icdf:t=>$i(t,n,r)};return i.mean(t).stdev(e)}function Ii(e,n){var r,i={},a=0;function u(t){var e,n=[],r=0;for(e=0;e<a;++e)r+=n[e]=null==t[e]?1:+t[e];for(e=0;e<a;++e)n[e]/=r;return n}return i.weights=function(t){return arguments.length?(r=u(n=t||[]),i):n},i.distributions=function(t){return arguments.length?(t?(a=t.length,e=t):(a=0,e=[]),i.weights(n)):e},i.sample=function(){for(var n=t.random(),i=e[a-1],u=r[0],o=0;o<a-1;u+=r[++o])if(n<u){i=e[o];break}return i.sample()},i.pdf=function(t){for(var n=0,i=0;i<a;++i)n+=r[i]*e[i].pdf(t);return n},i.cdf=function(t){for(var n=0,i=0;i<a;++i)n+=r[i]*e[i].cdf(t);return n},i.icdf=function(){throw Error("Mixture icdf not supported.")},i.distributions(e).weights(n)}function Hi(e,n){return null==n&&(n=null==e?1:e,e=0),e+(n-e)*t.random()}function Wi(t,e,n){return null==n&&(n=null==e?1:e,e=0),t>=e&&t<=n?1/(n-e):0}function Yi(t,e,n){return null==n&&(n=null==e?1:e,e=0),t<e?0:t>n?1:(t-e)/(n-e)}function Vi(t,e,n){return null==n&&(n=null==e?1:e,e=0),t>=0&&t<=1?e+t*(n-e):NaN}function Gi(t,e){var n,r,i={min:function(t){return arguments.length?(n=t||0,i):n},max:function(t){return arguments.length?(r=null==t?1:t,i):r},sample:()=>Hi(n,r),pdf:t=>Wi(t,n,r),cdf:t=>Yi(t,n,r),icdf:t=>Vi(t,n,r)};return null==e&&(e=null==t?1:t,t=0),i.min(t).max(e)}function Xi(t,e,n,r){const i=r-t*t,a=Math.abs(i)<1e-24?0:(n-t*e)/i;return[e-a*t,a]}function Ji(t,e,n,r){t=t.filter(t=>{let r=e(t),i=n(t);return null!=r&&(r=+r)>=r&&null!=i&&(i=+i)>=i}),r&&t.sort((t,n)=>e(t)-e(n));const i=t.length,a=new Float64Array(i),u=new Float64Array(i);let o,s,l,c=0,f=0,h=0;for(l of t)a[c]=o=+e(l),u[c]=s=+n(l),++c,f+=(o-f)/c,h+=(s-h)/c;for(c=0;c<i;++c)a[c]-=f,u[c]-=h;return[a,u,f,h]}function Zi(t,e,n,r){let i,a,u=-1;for(let o of t)i=e(o),a=n(o),null!=i&&(i=+i)>=i&&null!=a&&(a=+a)>=a&&r(i,a,++u)}function Qi(t,e,n,r,i){let a=0,u=0;return Zi(t,e,n,(t,e)=>{const n=e-i(t),o=e-r;a+=n*n,u+=o*o}),1-a/u}function Ki(t,e,n){let r=0,i=0,a=0,u=0,o=0;Zi(t,e,n,(t,e)=>{++o,r+=(t-r)/o,i+=(e-i)/o,a+=(t*e-a)/o,u+=(t*t-u)/o});const s=Xi(r,i,a,u),l=t=>s[0]+s[1]*t;return{coef:s,predict:l,rSquared:Qi(t,e,n,i,l)}}function ta(t,e,n){let r=0,i=0,a=0,u=0,o=0;Zi(t,e,n,(t,e)=>{++o,t=Math.log(t),r+=(t-r)/o,i+=(e-i)/o,a+=(t*e-a)/o,u+=(t*t-u)/o});const s=Xi(r,i,a,u),l=t=>s[0]+s[1]*Math.log(t);return{coef:s,predict:l,rSquared:Qi(t,e,n,i,l)}}function ea(t,e,n){const[r,i,a,u]=Ji(t,e,n);let o,s,l,c=0,f=0,h=0,d=0,p=0;Zi(t,e,n,(t,e)=>{o=r[p++],s=Math.log(e),l=o*e,c+=(e*s-c)/p,f+=(l-f)/p,h+=(l*s-h)/p,d+=(o*l-d)/p});const[g,m]=Xi(f/u,c/u,h/u,d/u),v=t=>Math.exp(g+m*(t-a));return{coef:[Math.exp(g-m*a),m],predict:v,rSquared:Qi(t,e,n,u,v)}}function na(t,e,n){let r=0,i=0,a=0,u=0,o=0,s=0;Zi(t,e,n,(t,e)=>{const n=Math.log(t),l=Math.log(e);++s,r+=(n-r)/s,i+=(l-i)/s,a+=(n*l-a)/s,u+=(n*n-u)/s,o+=(e-o)/s});const l=Xi(r,i,a,u),c=t=>l[0]*Math.pow(t,l[1]);return l[0]=Math.exp(l[0]),{coef:l,predict:c,rSquared:Qi(t,e,n,o,c)}}function ra(t,e,n){const[r,i,a,u]=Ji(t,e,n),o=r.length;let s,l,c,f,h=0,d=0,p=0,g=0,m=0;for(s=0;s<o;)l=r[s],c=i[s++],f=l*l,h+=(f-h)/s,d+=(f*l-d)/s,p+=(f*f-p)/s,g+=(l*c-g)/s,m+=(f*c-m)/s;const v=p-h*h,y=h*v-d*d,_=(m*h-g*d)/y,x=(g*v-m*d)/y,b=-_*h,w=t=>_*(t-=a)*t+x*t+b+u;return{coef:[b-x*a+_*a*a+u,x-2*_*a,_],predict:w,rSquared:Qi(t,e,n,u,w)}}function ia(t,e,n,r){if(1===r)return Ki(t,e,n);if(2===r)return ra(t,e,n);const[i,a,u,o]=Ji(t,e,n),s=i.length,l=[],c=[],f=r+1;let h,d,p,g,m;for(h=0;h<f;++h){for(p=0,g=0;p<s;++p)g+=Math.pow(i[p],h)*a[p];for(l.push(g),m=new Float64Array(f),d=0;d<f;++d){for(p=0,g=0;p<s;++p)g+=Math.pow(i[p],h+d);m[d]=g}c.push(m)}c.push(l);const v=function(t){const e=t.length-1,n=[];let r,i,a,u,o;for(r=0;r<e;++r){for(u=r,i=r+1;i<e;++i)Math.abs(t[r][i])>Math.abs(t[r][u])&&(u=i);for(a=r;a<e+1;++a)o=t[a][r],t[a][r]=t[a][u],t[a][u]=o;for(i=r+1;i<e;++i)for(a=e;a>=r;a--)t[a][i]-=t[a][r]*t[r][i]/t[r][r]}for(i=e-1;i>=0;--i){for(o=0,a=i+1;a<e;++a)o+=t[a][i]*n[a];n[i]=(t[e][i]-o)/t[i][i]}return n}(c),y=t=>{t-=u;let e=o+v[0]+v[1]*t+v[2]*t*t;for(h=3;h<f;++h)e+=v[h]*Math.pow(t,h);return e};return{coef:aa(f,v,-u,o),predict:y,rSquared:Qi(t,e,n,o,y)}}function aa(t,e,n,r){const i=Array(t);let a,u,o,s;for(a=0;a<t;++a)i[a]=0;for(a=t-1;a>=0;--a)for(o=e[a],s=1,i[a]+=o,u=1;u<=a;++u)s*=(a+1-u)/u,i[a-u]+=o*Math.pow(n,u)*s;return i[0]+=r,i}function ua(t,e,n,r){const[i,a,u,o]=Ji(t,e,n,!0),s=i.length,l=Math.max(2,~~(r*s)),c=new Float64Array(s),f=new Float64Array(s),h=new Float64Array(s).fill(1);for(let t=-1;++t<=2;){const e=[0,l-1];for(let t=0;t<s;++t){const n=i[t],r=e[0],u=e[1],o=n-i[r]>i[u]-n?r:u;let s=0,l=0,d=0,p=0,g=0,m=1/Math.abs(i[o]-n||1);for(let t=r;t<=u;++t){const e=i[t],r=a[t],u=oa(Math.abs(n-e)*m)*h[t],o=e*u;s+=u,l+=o,d+=r*u,p+=r*o,g+=e*o}const[v,y]=Xi(l/s,d/s,p/s,g/s);c[t]=v+y*n,f[t]=Math.abs(a[t]-c[t]),sa(i,t+1,e)}if(2===t)break;const n=bi(f);if(Math.abs(n)<1e-12)break;for(let t,e,r=0;r<s;++r)t=f[r]/(6*n),h[r]=t>=1?1e-12:(e=1-t*t)*e}return function(t,e,n,r){const i=t.length,a=[];let u,o=0,s=0,l=[];for(;o<i;++o)u=t[o]+n,l[0]===u?l[1]+=(e[o]-l[1])/++s:(s=0,l[1]+=r,l=[u,e[o]],a.push(l));return l[1]+=r,a}(i,c,u,o)}function oa(t){return(t=1-t*t*t)*t*t}function sa(t,e,n){let r=t[e],i=n[0],a=n[1]+1;if(!(a>=t.length))for(;e>i&&t[a]-r<=r-t[i];)n[0]=++i,n[1]=a,++a}const la=.1*Math.PI/180;function ca(t,e,n,r){n=n||25,r=Math.max(n,r||200);const i=e=>[e,t(e)],a=e[0],u=e[1],o=u-a,s=o/r,l=[i(a)],c=[];if(n===r){for(let t=1;t<r;++t)l.push(i(a+t/n*o));return l.push(i(u)),l}c.push(i(u));for(let t=n;--t>0;)c.push(i(a+t/n*o));let f=l[0],h=c[c.length-1];for(;h;){const t=i((f[0]+h[0])/2);t[0]-f[0]>=s&&fa(f,t,h)>la?c.push(t):(f=h,l.push(h),c.pop()),h=c[c.length-1]}return l}function fa(t,e,n){const r=Math.atan2(n[1]-t[1],n[0]-t[0]),i=Math.atan2(e[1]-t[1],e[0]-t[0]);return Math.abs(r-i)}function ha(t){this._key=t?c(t):Ct,this.reset()}var da=ha.prototype;function pa(t){Hr.call(this,null,t),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}da.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},da.add=function(t){this._add.push(t)},da.rem=function(t){this._rem.push(t)},da.values=function(){if(this._get=null,0===this._rem.length)return this._add;var t,e,n,r=this._add,i=this._rem,a=this._key,u=r.length,o=i.length,s=Array(u-o),l={};for(t=0;t<o;++t)l[a(i[t])]=1;for(t=0,e=0;t<u;++t)l[a(n=r[t])]?l[a(n)]=0:s[e++]=n;return this._rem=[],this._add=s},da.distinct=function(t){for(var e,n=this.values(),r=n.length,i={},a=0;--r>=0;)K(i,e=t(n[r])+"")||(i[e]=1,++a);return a},da.extent=function(t){if(this._get!==t||!this._ext){var e=this.values(),n=Z(e,t);this._ext=[e[n[0]],e[n[1]]],this._get=t}return this._ext},da.argmin=function(t){return this.extent(t)[0]||{}},da.argmax=function(t){return this.extent(t)[1]||{}},da.min=function(t){var e=this.extent(t)[0];return null!=e?t(e):void 0},da.max=function(t){var e=this.extent(t)[1];return null!=e?t(e):void 0},da.quartile=function(t){return this._get===t&&this._q||(this._q=ki(this.values(),t),this._get=t),this._q},da.q1=function(t){return this.quartile(t)[0]},da.q2=function(t){return this.quartile(t)[1]},da.q3=function(t){return this.quartile(t)[2]},da.ci=function(t){return this._get===t&&this._ci||(this._ci=Di(this.values(),1e3,.05,t),this._get=t),this._ci},da.ci0=function(t){return this.ci(t)[0]},da.ci1=function(t){return this.ci(t)[1]},pa.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Qr},{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"}]};var ga=rt(pa,Hr);ga.transform=function(t,e){var n=this,r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=t.modified();return n.stamp=r.stamp,n.value&&(i||e.modified(n._inputs,!0))?(n._prev=n.value,n.value=i?n.init(t):{},e.visit(e.SOURCE,t=>n.add(t))):(n.value=n.value||n.init(t),e.visit(e.REM,t=>n.rem(t)),e.visit(e.ADD,t=>n.add(t))),r.modifies(n._outputs),n._drop=!1!==t.drop,t.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),n.changes(r)},ga.cross=function(){var t=this,e=t.value,n=t._dnames,r=n.map((function(){return{}})),i=n.length;function a(t){var e,a,u,o;for(e in t)for(u=t[e].tuple,a=0;a<i;++a)r[a][o=u[n[a]]]=o}a(t._prev),a(e),function a(u,o,s){var l,c,f=n[s],h=r[s++];for(l in h)o[f]=h[l],c=u?u+"|"+l:l,s<i?a(c,o,s):e[c]||t.cell(c,o)}("",{},0)},ga.init=function(t){var e=this._inputs=[],a=this._outputs=[],u={};function o(t){for(var n,i=I(r(t)),a=0,o=i.length;a<o;++a)u[n=i[a]]||(u[n]=1,e.push(n))}this._dims=I(t.groupby),this._dnames=this._dims.map((function(t){var e=n(t);return o(t),a.push(e),e})),this.cellkey=t.key?t.key:Xr(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];var s,l,c,f,h,d,p=t.fields||[null],g=t.ops||["count"],m=t.as||[],v=p.length,y={};for(v!==g.length&&i("Unmatched number of fields and aggregate ops."),d=0;d<v;++d)s=p[d],l=g[d],null==s&&"count"!==l&&i("Null aggregate field specified."),h=Jr(l,f=n(s),m[d]),a.push(h),"count"!==l?((c=y[f])||(o(s),(c=y[f]=[]).field=s,this._measures.push(c)),"count"!==l&&(this._countOnly=!1),c.push(Kr(l,h))):this._counts.push(h);return this._measures=this._measures.map((function(t){return ni(t,t.field)})),{}},ga.cellkey=Xr(),ga.cell=function(t,e){var n=this.value[t];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[t]=this.newcell(t,e),this._adds[this._alen++]=n),n},ga.newcell=function(t,e){var n={key:t,num:0,agg:null,tuple:this.newtuple(e,this._prev&&this._prev[t]),stamp:this.stamp,store:!1};if(!this._countOnly){var r,i=this._measures,a=i.length;for(n.agg=Array(a),r=0;r<a;++r)n.agg[r]=new i[r](n)}return n.store&&(n.data=new ha),n},ga.newtuple=function(t,e){var n,r,i=this._dnames,a=this._dims,u={};for(n=0,r=a.length;n<r;++n)u[i[n]]=a[n](t);return e?Tt(e.tuple,u):St(u)},ga.add=function(t){var e,n,r,i=this.cellkey(t),a=this.cell(i,t);if(a.num+=1,!this._countOnly)for(a.store&&a.data.add(t),n=0,r=(e=a.agg).length;n<r;++n)e[n].add(e[n].get(t),t)},ga.rem=function(t){var e,n,r,i=this.cellkey(t),a=this.cell(i,t);if(a.num-=1,!this._countOnly)for(a.store&&a.data.rem(t),n=0,r=(e=a.agg).length;n<r;++n)e[n].rem(e[n].get(t),t)},ga.celltuple=function(t){var e,n,r,i=t.tuple,a=this._counts;for(t.store&&t.data.values(),n=0,r=a.length;n<r;++n)i[a[n]]=t.num;if(!this._countOnly)for(n=0,r=(e=t.agg).length;n<r;++n)e[n].set(i);return i},ga.changes=function(t){var e,n,r,i,a=this._adds,u=this._mods,o=this._prev,s=this._drop,l=t.add,c=t.rem,f=t.mod;if(o)for(n in o)e=o[n],s&&!e.num||c.push(e.tuple);for(r=0,i=this._alen;r<i;++r)l.push(this.celltuple(a[r])),a[r]=null;for(r=0,i=this._mlen;r<i;++r)(0===(e=u[r]).num&&s?c:f).push(this.celltuple(e)),u[r]=null;return this._alen=this._mlen=0,this._prev=null,t};function ma(t){Hr.call(this,null,t)}ma.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"]}]};var va=rt(ma,Hr);function ya(t,e,n){var r=t,i=e||[],a=n||[],u={},o=0;return{add:function(t){a.push(t)},remove:function(t){u[r(t)]=++o},size:function(){return i.length},data:function(t,e){return o&&(i=i.filter((function(t){return!u[r(t)]})),u={},o=0),e&&t&&i.sort(t),a.length&&(i=t?ht(t,i,a.sort(t)):i.concat(a),a=[]),i}}}function _a(t){Hr.call(this,[],t)}function xa(t){jt.call(this,null,ba,t)}function ba(t){return this.value&&!t.modified()?this.value:Y(t.fields,t.orders)}function wa(t){Hr.call(this,null,t)}va.transform=function(t,e){var n,i=!1!==t.interval,a=this._bins(t),u=a.start,o=a.step,s=t.as||["bin0","bin1"],l=s[0],c=s[1];return n=t.modified()?(e=e.reflow(!0)).SOURCE:e.modified(r(t.field))?e.ADD_MOD:e.ADD,e.visit(n,i?function(t){var e=a(t);t[l]=e,t[c]=null==e?null:u+o*(1+(e-u)/o)}:function(t){t[l]=a(t)}),e.modifies(i?s:l)},va._bins=function(t){if(this.value&&!t.modified())return this.value;var i,a,u=t.field,o=Ei(t),s=o.step,l=o.start,c=l+Math.ceil((o.stop-l)/s)*s;null!=(i=t.anchor)&&(a=i-(l+s*Math.floor((i-l)/s)),l+=a,c+=a);var f=function(t){var e=u(t);return null==e?null:e<l?-1/0:e>c?1/0:(e=Math.max(l,Math.min(+e,c-s)),l+s*Math.floor(1e-14+(e-l)/s))};return f.start=l,f.stop=o.stop,f.step=s,this.value=e(f,r(u),t.name||"bin_"+n(u))},_a.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},rt(_a,Hr).transform=function(t,e){var n=e.fork(e.ALL),r=ya(Ct,this.value,n.materialize(n.ADD).add),i=t.sort,a=e.changed()||i&&(t.modified("sort")||e.modified(i.fields));return n.visit(n.REM,r.remove),this.modified(a),this.value=n.source=r.data(Nt(i),a),e.source&&e.source.root&&(this.value.root=e.source.root),n},rt(xa,jt),wa.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"]}]};var Aa=rt(wa,Hr);function ka(t){Hr.call(this,null,t)}Aa.transform=function(t,e){function n(e){return function(n){for(var r,i=function(t,e,n){switch(e){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase()}return t.match(n)}(o(n),t.case,a)||[],s=0,l=i.length;s<l;++s)u.test(r=i[s])||e(r)}}var r=this._parameterCheck(t,e),i=this._counts,a=this._match,u=this._stop,o=t.field,s=t.as||["text","count"],l=n((function(t){i[t]=1+(i[t]||0)})),c=n((function(t){i[t]-=1}));return r?e.visit(e.SOURCE,l):(e.visit(e.ADD,l),e.visit(e.REM,c)),this._finish(e,s)},Aa._parameterCheck=function(t,e){var n=!1;return!t.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(t.stopwords||"")+"$","i"),n=!0),!t.modified("pattern")&&this._match||(this._match=new RegExp(t.pattern||"[\\w']+","g"),n=!0),(t.modified("field")||e.modified(t.field.fields))&&(n=!0),n&&(this._counts={}),n},Aa._finish=function(t,e){var n,r,i,a=this._counts,u=this._tuples||(this._tuples={}),o=e[0],s=e[1],l=t.fork(t.NO_SOURCE|t.NO_FIELDS);for(n in a)r=u[n],i=a[n]||0,!r&&i?(u[n]=r=St({}),r[o]=n,r[s]=i,l.add.push(r)):0===i?(r&&l.rem.push(r),a[n]=null,u[n]=null):r[s]!==i&&(r[s]=i,l.mod.push(r));return l.modifies(e)},ka.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},rt(ka,Hr).transform=function(t,e){var n=e.fork(e.NO_SOURCE),r=this.value,i=t.as||["a","b"],a=i[0],u=i[1];return!r||e.changed(e.ADD_REM)||t.modified("as")||t.modified("filter")?(r&&(n.rem=r),r=e.materialize(e.SOURCE).source,n.add=this.value=function(t,e,n,r){for(var i,a,u=[],o={},s=t.length,l=0;l<s;++l)for(o[e]=a=t[l],i=0;i<s;++i)o[n]=t[i],r(o)&&(u.push(St(o)),(o={})[e]=a);return u}(r,a,u,t.filter||m)):n.mod=r,n.source=this.value,n.modifies(i)};var Ma={kde:qi,mixture:Ii,normal:Ri,lognormal:ji,uniform:Gi};function Ea(t){Hr.call(this,null,t)}var Da=[{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}]}],Ca={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:Da},{name:"weights",type:"number",array:!0}]};function Fa(t,e){return t?t.map((function(t,r){return e[r]||n(t)})):null}function Sa(t,e,n){var r,i,a,u,o,s,l=[],c=function(t){return t(u)};if(null==e)l.push(t.map(n));else for(r={},i=0,a=t.length;i<a;++i)u=t[i],(s=r[o=e.map(c)])||(r[o]=s=[],s.dims=o,l.push(s)),s.push(n(u));return l}Ea.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:Da.concat(Ca)},{name:"as",type:"string",array:!0,default:["value","density"]}]},rt(Ea,Hr).transform=function(t,e){var n=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){var r=function t(e,n){var r=e.function;K(Ma,r)||i("Unknown distribution function: "+r);var a=Ma[r]();for(var u in e)"field"===u?a.data((e.from||n()).map(e[u])):"distributions"===u?a[u](e[u].map((function(e){return t(e,n)}))):"function"==typeof a[u]&&a[u](e[u]);return a}(t.distribution,function(t){return function(){return t.materialize(t.SOURCE).source}}(e)),a=t.steps||t.minsteps||25,u=t.steps||t.maxsteps||200,o=t.method||"pdf";"pdf"!==o&&"cdf"!==o&&i("Invalid density method: "+o),t.extent||r.data||i("Missing density extent parameter."),o=r[o];var s=t.as||["value","density"],l=ca(o,t.extent||J(r.data()),a,u).map(t=>{var e={};return e[s[0]]=t[0],e[s[1]]=t[1],St(e)});this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n};function Ba(t){Hr.call(this,null,t)}function za(t){jt.call(this,null,Ta,t),this.modified(!0)}function Ta(t){var i=t.expr;return this.value&&!t.modified("expr")?this.value:e(e=>i(e,t),r(i),n(i))}function Na(t){Hr.call(this,[void 0,void 0],t)}function Oa(t,e){jt.call(this,t),this.parent=e}Ba.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"}]},rt(Ba,Hr).transform=function(t,e){if(this.value&&!t.modified()&&!e.changed())return e;const n=e.materialize(e.SOURCE).source,r=Sa(e.source,t.groupby,d),i=t.smooth||!1,a=t.field,u=t.step||function(t,e){return gt(J(t,e))/30}(n,a),o=Nt((t,e)=>a(t)-a(e)),s=t.as||"bin",l=r.length;let c,f=1/0,h=-1/0,p=0;for(;p<l;++p){const t=r[p].sort(o);c=-1;for(const e of Ci(t,u,i,a))e<f&&(f=e),e>h&&(h=e),t[++c][s]=e}return this.value={start:f,stop:h,step:u},e.reflow(!0).modifies(s)},rt(za,jt),Na.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},rt(Na,Hr).transform=function(t,e){var r,i=this.value,a=t.field,u=i[0],o=i[1];if(((r=e.changed()||e.modified(a.fields)||t.modified("field"))||null==u)&&(u=1/0,o=-1/0),e.visit(r?e.SOURCE:e.ADD,(function(t){var e=a(t);null!=e&&((e=+e)<u&&(u=e),e>o&&(o=e))})),!Number.isFinite(u)||!Number.isFinite(o)){let t=n(a);t&&(t=` for field "${t}"`),e.dataflow.warn(`Infinite extent${t}: [${u}, ${o}]`),u=o=void 0}this.value=[u,o]};var Ra=rt(Oa,jt);function qa(t){Hr.call(this,{},t),this._keys=et();var e=this._targets=[];e.active=0,e.forEach=function(t){for(var n=0,r=e.active;n<r;++n)t(e[n],n,e)}}Ra.connect=function(t){return this.targets().add(t),t.source=this},Ra.add=function(t){this.value.add.push(t)},Ra.rem=function(t){this.value.rem.push(t)},Ra.mod=function(t){this.value.mod.push(t)},Ra.init=function(t){this.value.init(t,t.NO_SOURCE)},Ra.evaluate=function(){return this.value};var Ua=rt(qa,Hr);function La(t){jt.call(this,null,Pa,t)}function Pa(t){return this.value&&!t.modified()?this.value:u(t.name)?I(t.name).map((function(t){return c(t)})):c(t.name,t.as)}function $a(t){Hr.call(this,et(),t)}function ja(t){Hr.call(this,[],t)}function Ia(t){Hr.call(this,[],t)}function Ha(t){Hr.call(this,null,t)}function Wa(t){Hr.call(this,[],t)}Ua.activate=function(t){this._targets[this._targets.active++]=t},Ua.subflow=function(t,e,n,r){var i,a,u=this.value,o=K(u,t)&&u[t];return o?o.value.stamp<n.stamp&&(o.init(n),this.activate(o)):(a=r||(a=this._group[t])&&a.tuple,o=(i=n.dataflow).add(new Oa(n.fork(n.NO_SOURCE),this)).connect(e(i,t,a)),u[t]=o,this.activate(o)),o},Ua.transform=function(t,e){var n=e.dataflow,r=this,i=t.key,a=t.subflow,u=this._keys,o=t.modified("key");function s(t){return r.subflow(t,a,e)}return this._group=t.group||{},this._targets.active=0,e.visit(e.REM,(function(t){var e=Ct(t),n=u.get(e);void 0!==n&&(u.delete(e),s(n).rem(t))})),e.visit(e.ADD,(function(t){var e=i(t);u.set(Ct(t),e),s(e).add(t)})),o||e.modified(i.fields)?e.visit(e.MOD,(function(t){var e=Ct(t),n=u.get(e),r=i(t);n===r?s(r).mod(t):(u.set(e,r),s(n).rem(t),s(r).add(t))})):e.changed(e.MOD)&&e.visit(e.MOD,(function(t){s(u.get(Ct(t))).mod(t)})),o&&e.visit(e.REFLOW,(function(t){var e=Ct(t),n=u.get(e),r=i(t);n!==r&&(u.set(e,r),s(n).rem(t),s(r).add(t))})),u.empty>n.cleanThreshold&&n.runAfter(u.clean),e},rt(La,jt),$a.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},rt($a,Hr).transform=function(t,e){var n=e.dataflow,r=this.value,i=e.fork(),a=i.add,u=i.rem,o=i.mod,s=t.expr,l=!0;function c(e){var n=Ct(e),i=s(e,t),c=r.get(n);i&&c?(r.delete(n),a.push(e)):i||c?l&&i&&!c&&o.push(e):(r.set(n,1),u.push(e))}return e.visit(e.REM,(function(t){var e=Ct(t);r.has(e)?r.delete(e):u.push(t)})),e.visit(e.ADD,(function(e){s(e,t)?a.push(e):r.set(Ct(e),1)})),e.visit(e.MOD,c),t.modified()&&(l=!1,e.visit(e.REFLOW,c)),r.empty>n.cleanThreshold&&n.runAfter(r.clean),i},ja.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}]},rt(ja,Hr).transform=function(t,e){var n=e.fork(e.NO_SOURCE),r=t.fields,i=Fa(r,t.as||[]),a=t.index||null,u=i.length;return n.rem=this.value,e.visit(e.SOURCE,(function(t){for(var e,o,s,l=r.map(e=>e(t)),c=l.reduce((t,e)=>Math.max(t,e.length),0),f=0;f<c;++f){for(o=Bt(t),e=0;e<u;++e)o[i[e]]=null==(s=l[e][f])?null:s;a&&(o[a]=f),n.add.push(o)}})),this.value=n.source=n.add,a&&n.modifies(a),n.modifies(i)},Ia.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"]}]},rt(Ia,Hr).transform=function(t,e){var r=e.fork(e.NO_SOURCE),i=t.fields,a=i.map(n),u=t.as||["key","value"],o=u[0],s=u[1],l=i.length;return r.rem=this.value,e.visit(e.SOURCE,(function(t){for(var e,n=0;n<l;++n)(e=Bt(t))[o]=a[n],e[s]=i[n](t),r.add.push(e)})),this.value=r.source=r.add,r.modifies(u)},Ha.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},rt(Ha,Hr).transform=function(t,e){var n=t.expr,r=t.as,i=t.modified(),a=t.initonly?e.ADD:i?e.SOURCE:e.modified(n.fields)||e.modified(r)?e.ADD_MOD:e.ADD;return i&&(e=e.materialize().reflow(!0)),t.initonly||e.modifies(r),e.visit(a,e=>e[r]=n(e,t))},rt(Wa,Hr).transform=function(t,e){var n,r,i,a=this.value,u=e.fork(e.ALL),o=t.size-a.length,s=t.generator;if(o>0){for(n=[];--o>=0;)n.push(i=St(s(t))),a.push(i);u.add=u.add.length?u.materialize(u.ADD).add.concat(n):n}else r=a.slice(0,-o),u.rem=u.rem.length?u.materialize(u.REM).rem.concat(r):r,a=a.slice(-o);return u.source=this.value=a,u};var Ya={value:"value",median:bi,mean:function(t,e){let n=0,r=0;if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&(++n,r+=e);else{let i=-1;for(let a of t)null!=(a=e(a,++i,t))&&(a=+a)>=a&&(++n,r+=a)}if(n)return r/n},min:vi,max:mi},Va=[];function Ga(t){Hr.call(this,[],t)}function Xa(t){pa.call(this,t)}Ga.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}]},rt(Ga,Hr).transform=function(t,e){var r,a,u,o,s,l,c,f,h,d,p=e.fork(e.ALL),g=function(t){var e,n=t.method||Ya.value;if(null!=Ya[n])return n===Ya.value?(e=void 0!==t.value?t.value:0,function(){return e}):Ya[n];i("Unrecognized imputation method: "+n)}(t),m=function(t){var e=t.field;return function(t){return t?e(t):NaN}}(t),v=n(t.field),y=n(t.key),_=(t.groupby||[]).map(n),x=function(t,e,n,r){var i,a,u,o,s,l,c,f,h=function(t){return t(f)},d=[],p=r?r.slice():[],g={},m={};for(p.forEach((function(t,e){g[t]=e+1})),o=0,c=t.length;o<c;++o)f=t[o],l=n(f),s=g[l]||(g[l]=p.push(l)),a=(i=e?e.map(h):Va)+"",(u=m[a])||(u=m[a]=[],d.push(u),u.values=i),u[s-1]=f;return d.domain=p,d}(e.source,t.groupby,t.key,t.keyvals),b=[],w=this.value,A=x.domain.length;for(s=0,f=x.length;s<f;++s)for(u=(r=x[s]).values,a=NaN,c=0;c<A;++c)if(null==r[c]){for(o=x.domain[c],d={_impute:!0},l=0,h=u.length;l<h;++l)d[_[l]]=u[l];d[y]=o,d[v]=Number.isNaN(a)?a=g(r,m):a,b.push(St(d))}return b.length&&(p.add=p.materialize(p.ADD).add.concat(b)),w.length&&(p.rem=p.materialize(p.REM).rem.concat(w)),this.value=b,p},Xa.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:Qr},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]};var Ja=rt(Xa,pa);function Za(t){Hr.call(this,null,t)}function Qa(t){jt.call(this,null,Ka,t)}function Ka(t){return this.value&&!t.modified()?this.value:lt(t.fields,t.flat)}function tu(t){Hr.call(this,[],t),this._pending=null}function eu(t,e,n){n.forEach(St);const r=e.fork(e.NO_FIELDS&e.NO_SOURCE);return r.rem=t.value,t.value=r.source=r.add=n,t._pending=null,r}function nu(t){Hr.call(this,{},t)}function ru(t){jt.call(this,null,iu,t)}function iu(t){if(this.value&&!t.modified())return this.value;var e,n,r,i=1/0,a=-1/0,u=t.extents;for(e=0,n=u.length;e<n;++e)(r=u[e])[0]<i&&(i=r[0]),r[1]>a&&(a=r[1]);return[i,a]}function au(t){jt.call(this,null,uu,t)}function uu(t){return this.value&&!t.modified()?this.value:t.values.reduce((function(t,e){return t.concat(e)}),[])}function ou(t){Hr.call(this,null,t)}function su(t){pa.call(this,t)}Ja.transform=function(t,e){var n,r=this,i=t.modified();return r.value&&(i||e.modified(r._inputs,!0))?(n=r.value=i?r.init(t):{},e.visit(e.SOURCE,(function(t){r.add(t)}))):(n=r.value=r.value||this.init(t),e.visit(e.REM,(function(t){r.rem(t)})),e.visit(e.ADD,(function(t){r.add(t)}))),r.changes(),e.visit(e.SOURCE,(function(t){X(t,n[r.cellkey(t)].tuple)})),e.reflow(i).modifies(this._outputs)},Ja.changes=function(){var t,e,n=this._adds,r=this._mods;for(t=0,e=this._alen;t<e;++t)this.celltuple(n[t]),n[t]=null;for(t=0,e=this._mlen;t<e;++t)this.celltuple(r[t]),r[t]=null;this._alen=this._mlen=0},Za.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"]}]},rt(Za,Hr).transform=function(t,e){var r=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const a=e.materialize(e.SOURCE).source,u=Sa(a,t.groupby,t.field),o=(t.groupby||[]).map(n),s=t.bandwidth,l=t.cumulative?"cdf":"pdf",c=t.as||["value","density"],f=[];let h=t.extent,d=t.steps||t.minsteps||25,p=t.steps||t.maxsteps||200;"pdf"!==l&&"cdf"!==l&&i("Invalid density method: "+l),"shared"===t.resolve&&(h||(h=J(a,t.field)),d=p=t.steps||p),u.forEach(e=>{const n=qi(e,s)[l],r=t.counts?e.length:1;ca(n,h||J(e),d,p).forEach(t=>{const n={};for(let t=0;t<o.length;++t)n[o[t]]=e.dims[t];n[c[0]]=t[0],n[c[1]]=t[1]*r,f.push(St(n))})}),this.value&&(r.rem=this.value),this.value=r.add=r.source=f}return r},rt(Qa,jt),rt(tu,Hr).transform=function(t,e){const n=e.dataflow;if(this._pending)return eu(this,e,this._pending);if(function(t){return t.modified("async")&&!(t.modified("values")||t.modified("url")||t.modified("format"))}(t))return e.StopPropagation;if(t.values)return eu(this,e,n.parse(t.values,t.format));if(t.async){return{async:n.request(t.url,t.format).then(t=>(this._pending=I(t.data),t=>t.touch(this)))}}return n.request(t.url,t.format).then(t=>eu(this,e,I(t.data)))},nu.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}]},rt(nu,Hr).transform=function(t,e){var r,a,u=e,o=t.as,s=t.fields,l=t.index,c=t.values,f=null==t.default?null:t.default,h=t.modified(),d=h?e.SOURCE:e.ADD,p=s.length;return c?(a=c.length,p>1&&!o&&i('Multi-field lookup requires explicit "as" parameter.'),o&&o.length!==p*a&&i('The "as" parameter has too few output field names.'),o=o||c.map(n),r=function(t){for(var e,n,r=0,i=0;r<p;++r)if(null==(n=l.get(s[r](t))))for(e=0;e<a;++e,++i)t[o[i]]=f;else for(e=0;e<a;++e,++i)t[o[i]]=c[e](n)}):(o||i("Missing output field names."),r=function(t){for(var e,n=0;n<p;++n)e=l.get(s[n](t)),t[o[n]]=null==e?f:e}),h?u=e.reflow(!0):d|=s.some((function(t){return e.modified(t.fields)}))?e.MOD:0,e.visit(d,r),u.modifies(o)},rt(ru,jt),rt(au,jt),rt(ou,Hr),ou.prototype.transform=function(t,e){return this.modified(t.modified()),this.value=t,e.fork(e.NO_SOURCE|e.NO_FIELDS)},su.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:Qr,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]};var lu=rt(su,pa);function cu(t){qa.call(this,t)}function fu(t){Hr.call(this,null,t)}function hu(t){Hr.call(this,null,t)}function du(t){Hr.call(this,null,t)}lu._transform=lu.transform,lu.transform=function(t,n){return this._transform(function(t,n){var i=t.field,a=t.value,u=("count"===t.op?"__count__":t.op)||"sum",o=r(i).concat(r(a)),s=function(t,e,n){var r={},i=[];return n.visit(n.SOURCE,(function(e){var n=t(e);r[n]||(r[n]=1,i.push(n))})),i.sort((function(t,e){return(t<e||null==t)&&null!=e?-1:(t>e||null==e)&&null!=t?1:(e=e instanceof Date?+e:e,(t=t instanceof Date?+t:t)!==t&&e==e?-1:e!=e&&t==t?1:0)})),e?i.slice(0,e):i}(i,t.limit||0,n);n.changed()&&t.set("__pivot__",null,null,!0);return{key:t.key,groupby:t.groupby,ops:s.map((function(){return u})),fields:s.map((function(t){return function(t,n,r,i){return e((function(e){return n(e)===t?r(e):NaN}),i,t+"")}(t,i,a,o)})),as:s.map((function(t){return t+""})),modified:t.modified.bind(t)}}(t,n),n)},rt(cu,qa).transform=function(t,e){var n=this,a=t.subflow,u=t.field;return(t.modified("field")||u&&e.modified(r(u)))&&i("PreFacet does not support field modification."),this._targets.active=0,e.visit(e.MOD,(function(t){var r=n.subflow(Ct(t),a,e,t);u?u(t).forEach((function(t){r.mod(t)})):r.mod(t)})),e.visit(e.ADD,(function(t){var r=n.subflow(Ct(t),a,e,t);u?u(t).forEach((function(t){r.add(St(t))})):r.add(t)})),e.visit(e.REM,(function(t){var r=n.subflow(Ct(t),a,e,t);u?u(t).forEach((function(t){r.rem(t)})):r.rem(t)})),e},fu.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},rt(fu,Hr).transform=function(t,e){var n,r,i=t.fields,a=Fa(t.fields,t.as||[]),u=i?function(t,e){return function(t,e,n,r){for(var i=0,a=n.length;i<a;++i)e[r[i]]=n[i](t);return e}(t,e,i,a)}:zt;return this.value?r=this.value:(e=e.addAll(),r=this.value={}),n=e.fork(e.NO_SOURCE),e.visit(e.REM,(function(t){var e=Ct(t);n.rem.push(r[e]),r[e]=null})),e.visit(e.ADD,(function(t){var e=u(t,St({}));r[Ct(t)]=e,n.add.push(e)})),e.visit(e.MOD,(function(t){n.mod.push(u(t,r[Ct(t)]))})),n},rt(hu,Hr).transform=function(t,e){return this.value=t.value,t.modified("value")?e.fork(e.NO_SOURCE|e.NO_FIELDS):e.StopPropagation},du.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"]}]};var pu=rt(du,Hr);function gu(t){Hr.call(this,null,t)}function mu(t){Hr.call(this,[],t),this.count=0}function vu(t){Hr.call(this,null,t)}function yu(t){Hr.call(this,null,t),this.modified(!0)}pu.transform=function(t,e){var r=e.fork(e.NO_SOURCE|e.NO_FIELDS),i=t.as||["prob","value"];if(this.value&&!t.modified()&&!e.changed())return r.source=this.value,r;const a=Sa(e.materialize(e.SOURCE).source,t.groupby,t.field),u=(t.groupby||[]).map(n),o=[],s=t.step||.01,l=t.probs||li(s/2,1-1e-14,s),c=l.length;return a.forEach(t=>{const e=Ai(t,l);for(let n=0;n<c;++n){const r={};for(let e=0;e<u.length;++e)r[u[e]]=t.dims[e];r[i[0]]=l[n],r[i[1]]=e[n],o.push(St(r))}}),this.value&&(r.rem=this.value),this.value=r.add=r.source=o,r},rt(gu,Hr).transform=function(t,e){var n,r;return this.value?r=this.value:(n=e=e.addAll(),r=this.value={}),t.derive&&(n=e.fork(e.NO_SOURCE),e.visit(e.REM,t=>{var e=Ct(t);n.rem.push(r[e]),r[e]=null}),e.visit(e.ADD,t=>{var e=Bt(t);r[Ct(t)]=e,n.add.push(e)}),e.visit(e.MOD,t=>{var e,i=r[Ct(t)];for(e in t)i[e]=t[e],n.modifies(e);n.mod.push(i)})),n},mu.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},rt(mu,Hr).transform=function(e,n){var r=n.fork(n.NO_SOURCE),i=e.modified("size"),a=e.size,u=this.value,o=this.count,s=0,l=u.reduce((function(t,e){return t[Ct(e)]=1,t}),{});function c(e){var n,i;u.length<a?u.push(e):(i=~~((o+1)*t.random()))<u.length&&i>=s&&(n=u[i],l[Ct(n)]&&r.rem.push(n),u[i]=e),++o}if(n.rem.length&&(n.visit(n.REM,(function(t){var e=Ct(t);l[e]&&(l[e]=-1,r.rem.push(t)),--o})),u=u.filter((function(t){return-1!==l[Ct(t)]}))),(n.rem.length||i)&&u.length<a&&n.source&&(s=o=u.length,n.visit(n.SOURCE,(function(t){l[Ct(t)]||c(t)})),s=-1),i&&u.length>a){for(var f=0,h=u.length-a;f<h;++f)l[Ct(u[f])]=-1,r.rem.push(u[f]);u=u.slice(h)}return n.mod.length&&n.visit(n.MOD,(function(t){l[Ct(t)]&&r.mod.push(t)})),n.add.length&&n.visit(n.ADD,c),(n.add.length||s<0)&&(r.add=u.filter((function(t){return!l[Ct(t)]}))),this.count=o,this.value=r.source=u,r},vu.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"}]},rt(vu,Hr).transform=function(t,e){if(!this.value||t.modified()){var n=e.materialize().fork(e.MOD),r=t.as||"data";return n.rem=this.value?e.rem.concat(this.value):e.rem,this.value=li(t.start,t.stop,t.step||1).map((function(t){var e={};return e[r]=t,St(e)})),n.add=e.add.concat(this.value),n}},rt(yu,Hr).transform=function(t,e){return this.value=e.source,e.changed()?e.fork(e.NO_SOURCE|e.NO_FIELDS):e.StopPropagation};const _u="year",xu="quarter",bu="month",wu="week",Au="date",ku="day",Mu="hours",Eu="minutes",Du="seconds",Cu="milliseconds",Fu=[_u,xu,bu,wu,Au,ku,Mu,Eu,Du,Cu].reduce((t,e,n)=>(t[e]=1+n,t),{});function Su(t){const e=I(t).slice(),n={};return e.length||i("Missing time unit."),e.forEach(t=>{K(Fu,t)?n[t]=1:i(`Invalid time unit: ${t}.`)}),(n[wu]||n[ku])&&(n[xu]||n[bu]||n[Au])&&i(`Incompatible time units: ${t}`),e.sort((t,e)=>Fu[t]-Fu[e]),e}const Bu=new Date;function zu(t,e,n,r,i){const a=e||1,u=k(t),o=(t,e,i)=>function(t,e,n,r){const i=n<=1?t:r?(e,i)=>r+n*Math.floor((t(e,i)-r)/n):(e,r)=>n*Math.floor(t(e,r)/n);return e?(t,n)=>e(i(t,n),n):i}(n[i=i||t],r[i],t===u&&a,e),s=new Date,l=xt(t),c=l[_u]?o(_u):V(2012),f=l[bu]?o(bu):l[xu]?o(xu):p,h=l[wu]&&l[ku]?o(ku,1,wu+ku):l[wu]?o(wu,1):l[ku]?o(ku,1):l[Au]?o(Au,1):g,d=l[Mu]?o(Mu):p,m=l[Eu]?o(Eu):p,v=l[Du]?o(Du):p,y=l[Cu]?o(Cu):p;return function(t){s.setTime(+t);const e=c(s);return i(e,f(s),h(s,e),d(s),m(s),v(s),y(s))}}function Tu(t,e,n){return e+7*t-(n+6)%7}const Nu={[_u]:t=>t.getFullYear(),[xu]:t=>Math.floor(t.getMonth()/3),[bu]:t=>t.getMonth(),[Au]:t=>t.getDate(),[Mu]:t=>t.getHours(),[Eu]:t=>t.getMinutes(),[Du]:t=>t.getSeconds(),[Cu]:t=>t.getMilliseconds(),[wu]:t=>qu(t),[wu+ku]:(t,e)=>Tu(qu(t),t.getDay(),Uu(e)),[ku]:(t,e)=>Tu(1,t.getDay(),Uu(e))},Ou={[xu]:t=>3*t,[wu]:(t,e)=>Tu(t,0,Uu(e))};function Ru(t){return Bu.setFullYear(t),Bu.setMonth(0),Bu.setDate(1),Bu.setHours(0,0,0,0),Bu}function qu(t){return je.count(Ru(t.getFullYear())-1,t)}function Uu(t){return Ru(t).getDay()}function Lu(t,e,n,r,i,a,u){if(0<=t&&t<100){var o=new Date(-1,e,n,r,i,a,u);return o.setFullYear(t),o}return new Date(t,e,n,r,i,a,u)}function Pu(t,e){return zu(t,e||1,Nu,Ou,Lu)}const $u={[_u]:t=>t.getUTCFullYear(),[xu]:t=>Math.floor(t.getUTCMonth()/3),[bu]:t=>t.getUTCMonth(),[Au]:t=>t.getUTCDate(),[Mu]:t=>t.getUTCHours(),[Eu]:t=>t.getUTCMinutes(),[Du]:t=>t.getUTCSeconds(),[Cu]:t=>t.getUTCMilliseconds(),[wu]:t=>Iu(t),[ku]:(t,e)=>Tu(1,t.getUTCDay(),Hu(e)),[wu+ku]:(t,e)=>Tu(Iu(t),t.getUTCDay(),Hu(e))},ju={[xu]:t=>3*t,[wu]:(t,e)=>Tu(t,0,Hu(e))};function Iu(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return Ze.count(e-1,t)}function Hu(t){return Bu.setTime(Date.UTC(t,0,1)),Bu.getUTCDay()}function Wu(t,e,n,r,i,a,u){if(0<=t&&t<100){var o=new Date(Date.UTC(-1,e,n,r,i,a,u));return o.setUTCFullYear(n.y),o}return new Date(Date.UTC(t,e,n,r,i,a,u))}function Yu(t,e){return zu(t,e||1,$u,ju,Wu)}const Vu={[_u]:Ye,[xu]:We.every(3),[bu]:We,[wu]:je,[Au]:Pe,[ku]:Pe,[Mu]:Le,[Eu]:Ue,[Du]:qe,[Cu]:Re},Gu={[_u]:en,[xu]:tn.every(3),[bu]:tn,[wu]:Ze,[Au]:Xe,[ku]:Xe,[Mu]:Ge,[Eu]:Ve,[Du]:qe,[Cu]:Re};function Xu(t){return Vu[t]}function Ju(t){return Gu[t]}function Zu(t,e,n){return t?t.offset(e,n):void 0}function Qu(t,e,n){return Zu(Xu(t),e,n)}function Ku(t,e,n){return Zu(Ju(t),e,n)}function to(t,e,n,r){return t?t.range(e,n,r):void 0}function eo(t,e,n,r){return to(Xu(t),e,n,r)}function no(t,e,n,r){return to(Ju(t),e,n,r)}const ro={[_u]:"%Y ",[xu]:"Q%q ",[bu]:"%b ",[Au]:"%d ",[wu]:"W%U ",[ku]:"%a ",[Mu]:"%H:00",[Eu]:"00:%M",[Du]:":%S",[Cu]:".%L",[`${_u}-${bu}`]:"%Y-%m ",[`${_u}-${bu}-${Au}`]:"%Y-%m-%d ",[`${Mu}-${Eu}`]:"%H:%M"};function io(t,e){const n=X({},ro,e),r=Su(t),i=r.length;let a,u,o="",s=0;for(s=0;s<i;)for(a=r.length;a>s;--a)if(u=r.slice(s,a).join("-"),null!=n[u]){o+=n[u],s=a;break}return o.trim()}function ao(t){return oo(on,Xu,t)}function uo(t){return oo(ln,Ju,t)}function oo(t,e,n){return s(n)?t(n):function(t,e,n){o(n=n||{})||i(`Invalid time multi-format specifier: ${n}`);const r=e(Du),a=e(Eu),u=e(Mu),s=e(Au),l=e(wu),c=e(bu),f=e(xu),h=e(_u),d=t(n[Cu]||".%L"),p=t(n[Du]||":%S"),g=t(n[Eu]||"%I:%M"),m=t(n[Mu]||"%I %p"),v=t(n[Au]||n[ku]||"%a %d"),y=t(n[wu]||"%b %d"),_=t(n[bu]||"%B"),x=t(n[xu]||"%B"),b=t(n[_u]||"%Y");return function(t){return(r(t)<t?d:a(t)<t?p:u(t)<t?g:s(t)<t?m:c(t)<t?l(t)<t?v:y:h(t)<t?f(t)<t?_:x:b)(t)}}(t,e,n)}const so=[_u,bu,Au,Mu,Eu,Du,Cu],lo=so.slice(0,-1),co=lo.slice(0,-1),fo=co.slice(0,-1),ho=fo.slice(0,-1),po=[_u,bu],go=[_u],mo=[[lo,1,1e3],[lo,5,5e3],[lo,15,15e3],[lo,30,3e4],[co,1,6e4],[co,5,3e5],[co,15,9e5],[co,30,18e5],[fo,1,36e5],[fo,3,108e5],[fo,6,216e5],[fo,12,432e5],[ho,1,864e5],[[_u,wu],1,6048e5],[po,1,2592e6],[po,3,7776e6],[go,1,31536e6]];function vo(t){const e=t.extent,n=t.maxbins||40,r=Math.abs(gt(e))/n;let i,a,u=ai(t=>t[2]).right(mo,r);return u===mo.length?(i=go,a=gi(e[0]/31536e6,e[1]/31536e6,n)):u?(u=mo[r/mo[u-1][2]<mo[u][2]/r?u-1:u],i=u[0],a=u[1]):(i=so,a=Math.max(gi(e[0],e[1],n),1)),{units:i,step:a}}function yo(t){Hr.call(this,null,t)}const _o=["unit0","unit1"];yo.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"string",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:_o}]};var xo=rt(yo,Hr);function bo(t){Hr.call(this,et(),t)}function wo(t){Hr.call(this,null,t)}xo.transform=function(t,e){var n=t.field,i=!1!==t.interval,a="utc"===t.timezone,u=this._floor(t,e),o=(a?Ju:Xu)(u.unit).offset,s=t.as||_o,l=s[0],c=s[1],f=u.start||1/0,h=u.stop||-1/0,d=u.step,p=e.ADD;return(t.modified()||e.modified(r(n)))&&(p=(e=e.reflow(!0)).SOURCE,f=1/0,h=-1/0),e.visit(p,(function(t){var e,r,a=n(t);null==a?(t[l]=null,i&&(t[c]=null)):(t[l]=e=r=u(a),i&&(t[c]=r=o(e,d)),e<f&&(f=e),r>h&&(h=r))})),u.start=f,u.stop=h,e.modifies(i?s:l)},xo._floor=function(t,e){const n="utc"===t.timezone;let{units:r,step:i}=t.units?{units:t.units,step:t.step||1}:vo({extent:t.extent||J(e.materialize(e.SOURCE).source,t.field),maxbins:t.maxbins});r=Su(r);const a=this.value||{},u=(n?Yu:Pu)(r,i);return u.unit=k(r),u.units=r,u.step=i,u.start=a.start,u.stop=a.stop,this.value=u},rt(bo,Hr).transform=function(t,e){var n=e.dataflow,r=t.field,i=this.value,a=!0;function u(t){i.set(r(t),t)}return t.modified("field")||e.modified(r.fields)?(i.clear(),e.visit(e.SOURCE,u)):e.changed()?(e.visit(e.REM,(function(t){i.delete(r(t))})),e.visit(e.ADD,u)):a=!1,this.modified(a),i.empty>n.cleanThreshold&&n.runAfter(i.clean),e.fork()},rt(wo,Hr).transform=function(t,e){(!this.value||t.modified("field")||t.modified("sort")||e.changed()||t.sort&&e.modified(t.sort.fields))&&(this.value=(t.sort?e.source.slice().sort(Nt(t.sort)):e.source).map(t.field))};const Ao={row_number:function(){return{next:t=>t.index+1}},rank:function(){let t;return{init:()=>t=1,next:e=>{let n=e.index,r=e.data;return n&&e.compare(r[n-1],r[n])?t=n+1:t}}},dense_rank:function(){let t;return{init:()=>t=1,next:e=>{let n=e.index,r=e.data;return n&&e.compare(r[n-1],r[n])?++t:t}}},percent_rank:function(){let t=Ao.rank(),e=t.next;return{init:t.init,next:t=>(e(t)-1)/(t.data.length-1)}},cume_dist:function(){let t;return{init:()=>t=0,next:e=>{let n=e.index,r=e.data,i=e.compare;if(t<n){for(;n+1<r.length&&!i(r[n],r[n+1]);)++n;t=n}return(1+t)/r.length}}},ntile:function(t,e){(e=+e)>0||i("ntile num must be greater than zero.");let n=Ao.cume_dist(),r=n.next;return{init:n.init,next:t=>Math.ceil(e*r(t))}},lag:function(t,e){return e=+e||1,{next:n=>{let r=n.index-e;return r>=0?t(n.data[r]):null}}},lead:function(t,e){return e=+e||1,{next:n=>{let r=n.index+e,i=n.data;return r<i.length?t(i[r]):null}}},first_value:function(t){return{next:e=>t(e.data[e.i0])}},last_value:function(t){return{next:e=>t(e.data[e.i1-1])}},nth_value:function(t,e){return(e=+e)>0||i("nth_value nth must be greater than zero."),{next:n=>{let r=n.i0+(e-1);return r<n.i1?t(n.data[r]):null}}},prev_value:function(t){let e=null;return{next:n=>{let r=t(n.data[n.index]);return null!=r?e=r:e}}},next_value:function(t){let e=null,n=-1;return{next:r=>{let i=r.data;return r.index<=n?e:(n=function(t,e,n){for(let r=e.length;n<r;++n){if(null!=t(e[n]))return n}return-1}(t,i,r.index))<0?(n=i.length,e=null):e=t(i[n])}}}};var ko=Object.keys(Ao);function Mo(t){let e=this,a=I(t.ops),u=I(t.fields),o=I(t.params),s=I(t.as),l=e.outputs=[],c=e.windows=[],f={},h={},d=!0,g=[],m=[];function v(t){I(r(t)).forEach(t=>f[t]=1)}v(t.sort),a.forEach((function(t,e){let r=u[e],a=n(r),f=Jr(t,a,s[e]);if(v(r),l.push(f),K(Ao,t))c.push(function(t,e,n,r){let i=Ao[t](e,n);return{init:i.init||p,update:function(t,e){e[r]=i.next(t)}}}(t,u[e],o[e],f));else{if(null==r&&"count"!==t&&i("Null aggregate field specified."),"count"===t)return void g.push(f);d=!1;let e=h[a];e||(e=h[a]=[],e.field=r,m.push(e)),e.push(Kr(t,f))}})),(g.length||m.length)&&(e.cell=function(t,e,n){t=t.map(t=>ni(t,t.field));let r={num:0,agg:null,store:!1,count:e};if(!n)for(var i=t.length,a=r.agg=Array(i),u=0;u<i;++u)a[u]=new t[u](r);if(r.store)var o=r.data=new ha;return r.add=function(t){if(r.num+=1,!n){o&&o.add(t);for(let e=0;e<i;++e)a[e].add(a[e].get(t),t)}},r.rem=function(t){if(r.num-=1,!n){o&&o.rem(t);for(let e=0;e<i;++e)a[e].rem(a[e].get(t),t)}},r.set=function(t){let i,u;for(o&&o.values(),i=0,u=e.length;i<u;++i)t[e[i]]=r.num;if(!n)for(i=0,u=a.length;i<u;++i)a[i].set(t)},r.init=function(){r.num=0,o&&o.reset();for(let t=0;t<i;++t)a[t].init()},r}(m,g,d)),e.inputs=Object.keys(f)}const Eo=Mo.prototype;function Do(t){Hr.call(this,{},t),this._mlen=0,this._mods=[]}Eo.init=function(){this.windows.forEach(t=>t.init()),this.cell&&this.cell.init()},Eo.update=function(t,e){let n,r=this.cell,i=this.windows,a=t.data,u=i&&i.length;if(r){for(n=t.p0;n<t.i0;++n)r.rem(a[n]);for(n=t.p1;n<t.i1;++n)r.add(a[n]);r.set(e)}for(n=0;n<u;++n)i[n].update(t,e)},Do.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:ko.concat(Qr)},{name:"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}]};var Co=rt(Do,Hr);function Fo(t,e,n,r){var i=r.sort,a=i&&!r.ignorePeers,u=r.frame||[null,0],o=t.data(n),s=o.length,l=0,c=a?ai(i):null,f={i0:0,i1:0,p0:0,p1:0,index:0,data:o,compare:i||V(-1)};for(e.init();l<s;++l)So(f,u,l,s),a&&Bo(f,c),e.update(f,o[l])}function So(t,e,n,r){t.p0=t.i0,t.p1=t.i1,t.i0=null==e[0]?0:Math.max(0,n-Math.abs(e[0])),t.i1=null==e[1]?r:Math.min(r,n+Math.abs(e[1])+1),t.index=n}function Bo(t,e){var n=t.i0,r=t.i1-1,i=t.compare,a=t.data,u=a.length-1;n>0&&!i(a[n],a[n-1])&&(t.i0=e.left(a,a[n])),r<u&&!i(a[r],a[r+1])&&(t.i1=e.right(a,a[r]))}Co.transform=function(t,e){var n,r,i=this,a=i.state,u=t.modified(),o=Nt(t.sort);this.stamp=e.stamp,a&&!u||(a=i.state=new Mo(t));var s=Xr(t.groupby);function l(t){return i.group(s(t))}for(u||e.modified(a.inputs)?(i.value={},e.visit(e.SOURCE,(function(t){l(t).add(t)}))):(e.visit(e.REM,(function(t){l(t).remove(t)})),e.visit(e.ADD,(function(t){l(t).add(t)}))),n=0,r=i._mlen;n<r;++n)Fo(i._mods[n],a,o,t);return i._mlen=0,i._mods=[],e.reflow(u).modifies(a.outputs)},Co.group=function(t){var e=this.value[t];return e||((e=this.value[t]=ya(Ct)).stamp=-1),e.stamp<this.stamp&&(e.stamp=this.stamp,this._mods[this._mlen++]=e),e};var zo=Object.freeze({__proto__:null,aggregate:pa,bin:ma,collect:_a,compare:xa,countpattern:wa,cross:ka,density:Ea,dotbin:Ba,expression:za,extent:Na,facet:qa,field:La,filter:$a,flatten:ja,fold:Ia,formula:Ha,generate:Wa,impute:Ga,joinaggregate:Xa,kde:Za,key:Qa,load:tu,lookup:nu,multiextent:ru,multivalues:au,params:ou,pivot:su,prefacet:cu,project:fu,proxy:hu,quantile:du,relay:gu,sample:mu,sequence:vu,sieve:yu,subflow:Oa,timeunit:yo,tupleindex:bo,values:wo,window:Do});const To="top",No="left",Oo="right",Ro="end",qo="row";function Uo(t){this.clear(),t&&this.union(t)}var Lo=Uo.prototype;Lo.clone=function(){return new Uo(this)},Lo.clear=function(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},Lo.empty=function(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},Lo.equals=function(t){return this.x1===t.x1&&this.y1===t.y1&&this.x2===t.x2&&this.y2===t.y2},Lo.set=function(t,e,n,r){return n<t?(this.x2=t,this.x1=n):(this.x1=t,this.x2=n),r<e?(this.y2=e,this.y1=r):(this.y1=e,this.y2=r),this},Lo.add=function(t,e){return t<this.x1&&(this.x1=t),e<this.y1&&(this.y1=e),t>this.x2&&(this.x2=t),e>this.y2&&(this.y2=e),this},Lo.expand=function(t){return this.x1-=t,this.y1-=t,this.x2+=t,this.y2+=t,this},Lo.round=function(){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},Lo.scale=function(t){return this.x1*=t,this.y1*=t,this.x2*=t,this.y2*=t,this},Lo.translate=function(t,e){return this.x1+=t,this.x2+=t,this.y1+=e,this.y2+=e,this},Lo.rotate=function(t,e,n){const r=this.rotatedPoints(t,e,n);return this.clear().add(r[0],r[1]).add(r[2],r[3]).add(r[4],r[5]).add(r[6],r[7])},Lo.rotatedPoints=function(t,e,n){var{x1:r,y1:i,x2:a,y2:u}=this,o=Math.cos(t),s=Math.sin(t),l=e-e*o+n*s,c=n-e*s-n*o;return[o*r-s*i+l,s*r+o*i+c,o*r-s*u+l,s*r+o*u+c,o*a-s*i+l,s*a+o*i+c,o*a-s*u+l,s*a+o*u+c]},Lo.union=function(t){return t.x1<this.x1&&(this.x1=t.x1),t.y1<this.y1&&(this.y1=t.y1),t.x2>this.x2&&(this.x2=t.x2),t.y2>this.y2&&(this.y2=t.y2),this},Lo.intersect=function(t){return t.x1>this.x1&&(this.x1=t.x1),t.y1>this.y1&&(this.y1=t.y1),t.x2<this.x2&&(this.x2=t.x2),t.y2<this.y2&&(this.y2=t.y2),this},Lo.encloses=function(t){return t&&this.x1<=t.x1&&this.x2>=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},Lo.alignsWith=function(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},Lo.intersects=function(t){return t&&!(this.x2<t.x1||this.x1>t.x2||this.y2<t.y1||this.y1>t.y2)},Lo.contains=function(t,e){return!(t<this.x1||t>this.x2||e<this.y1||e>this.y2)},Lo.width=function(){return this.x2-this.x1},Lo.height=function(){return this.y2-this.y1};var Po=0;function $o(t){return t&&t.gradient}function jo(t,e,n){let r=t.id,i=t.gradient,a="radial"===i?"p_":"";return r||(r=t.id="gradient_"+Po++,"radial"===i?(t.x1=Io(t.x1,.5),t.y1=Io(t.y1,.5),t.r1=Io(t.r1,0),t.x2=Io(t.x2,.5),t.y2=Io(t.y2,.5),t.r2=Io(t.r2,.5),a="p_"):(t.x1=Io(t.x1,0),t.y1=Io(t.y1,0),t.x2=Io(t.x2,1),t.y2=Io(t.y2,0))),e[r]=t,"url("+(n||"")+"#"+a+r+")"}function Io(t,e){return null!=t?t:e}function Ho(t,e){var n,r=[];return n={gradient:"linear",x1:t?t[0]:0,y1:t?t[1]:0,x2:e?e[0]:1,y2:e?e[1]:0,stops:r,stop:function(t,e){return r.push({offset:t,color:e}),n}}}function Wo(t){this.mark=t,this.bounds=this.bounds||new Uo}function Yo(t){Wo.call(this,t),this.items=this.items||[]}function Vo(t,e){if("undefined"!=typeof document&&document.createElement){var n=document.createElement("canvas");if(n&&n.getContext)return n.width=t,n.height=e,n}return null}function Go(){return"undefined"!=typeof Image?Image:null}function Xo(t){this._pending=0,this._loader=t||kr()}rt(Yo,Wo);var Jo=Xo.prototype;function Zo(t){t._pending+=1}function Qo(t){t._pending-=1}Jo.pending=function(){return this._pending},Jo.sanitizeURL=function(t){var e=this;return Zo(e),e._loader.sanitize(t,{context:"href"}).then((function(t){return Qo(e),t})).catch((function(){return Qo(e),null}))},Jo.loadImage=function(t){const e=this,n=Go();return Zo(e),e._loader.sanitize(t,{context:"image"}).then((function(t){const r=t.href;if(!r||!n)throw{url:r};const i=new n,a=K(t,"crossOrigin")?t.crossOrigin:"anonymous";return null!=a&&(i.crossOrigin=a),i.onload=()=>Qo(e),i.onerror=()=>Qo(e),i.src=r,i})).catch((function(t){return Qo(e),{complete:!1,width:0,height:0,src:t&&t.url||""}}))},Jo.ready=function(){var t=this;return new Promise((function(e){!function n(r){t.pending()?setTimeout((function(){n(!0)}),10):e(r)}(!1)}))};var Ko=Math.PI,ts=2*Ko,es=ts-1e-6;function ns(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function rs(){return new ns}function is(t){return function(){return t}}ns.prototype=rs.prototype={constructor:ns,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,r){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+r)},bezierCurveTo:function(t,e,n,r,i,a){this._+="C"+ +t+","+ +e+","+ +n+","+ +r+","+(this._x1=+i)+","+(this._y1=+a)},arcTo:function(t,e,n,r,i){t=+t,e=+e,n=+n,r=+r,i=+i;var a=this._x1,u=this._y1,o=n-t,s=r-e,l=a-t,c=u-e,f=l*l+c*c;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(f>1e-6)if(Math.abs(c*o-s*l)>1e-6&&i){var h=n-a,d=r-u,p=o*o+s*s,g=h*h+d*d,m=Math.sqrt(p),v=Math.sqrt(f),y=i*Math.tan((Ko-Math.acos((p+f-g)/(2*m*v)))/2),_=y/v,x=y/m;Math.abs(_-1)>1e-6&&(this._+="L"+(t+_*l)+","+(e+_*c)),this._+="A"+i+","+i+",0,0,"+ +(c*h>l*d)+","+(this._x1=t+x*o)+","+(this._y1=e+x*s)}else this._+="L"+(this._x1=t)+","+(this._y1=e);else;},arc:function(t,e,n,r,i,a){t=+t,e=+e,a=!!a;var u=(n=+n)*Math.cos(r),o=n*Math.sin(r),s=t+u,l=e+o,c=1^a,f=a?r-i:i-r;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+s+","+l:(Math.abs(this._x1-s)>1e-6||Math.abs(this._y1-l)>1e-6)&&(this._+="L"+s+","+l),n&&(f<0&&(f=f%ts+ts),f>es?this._+="A"+n+","+n+",0,1,"+c+","+(t-u)+","+(e-o)+"A"+n+","+n+",0,1,"+c+","+(this._x1=s)+","+(this._y1=l):f>1e-6&&(this._+="A"+n+","+n+",0,"+ +(f>=Ko)+","+c+","+(this._x1=t+n*Math.cos(i))+","+(this._y1=e+n*Math.sin(i))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};var as=Math.abs,us=Math.atan2,os=Math.cos,ss=Math.max,ls=Math.min,cs=Math.sin,fs=Math.sqrt,hs=Math.PI,ds=hs/2,ps=2*hs;function gs(t){return t>1?0:t<-1?hs:Math.acos(t)}function ms(t){return t>=1?ds:t<=-1?-ds:Math.asin(t)}function vs(t){return t.innerRadius}function ys(t){return t.outerRadius}function _s(t){return t.startAngle}function xs(t){return t.endAngle}function bs(t){return t&&t.padAngle}function ws(t,e,n,r,i,a,u,o){var s=n-t,l=r-e,c=u-i,f=o-a,h=f*s-c*l;if(!(h*h<1e-12))return[t+(h=(c*(e-a)-f*(t-i))/h)*s,e+h*l]}function As(t,e,n,r,i,a,u){var o=t-n,s=e-r,l=(u?a:-a)/fs(o*o+s*s),c=l*s,f=-l*o,h=t+c,d=e+f,p=n+c,g=r+f,m=(h+p)/2,v=(d+g)/2,y=p-h,_=g-d,x=y*y+_*_,b=i-a,w=h*g-p*d,A=(_<0?-1:1)*fs(ss(0,b*b*x-w*w)),k=(w*_-y*A)/x,M=(-w*y-_*A)/x,E=(w*_+y*A)/x,D=(-w*y+_*A)/x,C=k-m,F=M-v,S=E-m,B=D-v;return C*C+F*F>S*S+B*B&&(k=E,M=D),{cx:k,cy:M,x01:-c,y01:-f,x11:k*(i/b-1),y11:M*(i/b-1)}}function ks(t){this._context=t}function Ms(t){return new ks(t)}function Es(t){return t[0]}function Ds(t){return t[1]}function Cs(){var t=Es,e=Ds,n=is(!0),r=null,i=Ms,a=null;function u(u){var o,s,l,c=u.length,f=!1;for(null==r&&(a=i(l=rs())),o=0;o<=c;++o)!(o<c&&n(s=u[o],o,u))===f&&((f=!f)?a.lineStart():a.lineEnd()),f&&a.point(+t(s,o,u),+e(s,o,u));if(l)return a=null,l+""||null}return u.x=function(e){return arguments.length?(t="function"==typeof e?e:is(+e),u):t},u.y=function(t){return arguments.length?(e="function"==typeof t?t:is(+t),u):e},u.defined=function(t){return arguments.length?(n="function"==typeof t?t:is(!!t),u):n},u.curve=function(t){return arguments.length?(i=t,null!=r&&(a=i(r)),u):i},u.context=function(t){return arguments.length?(null==t?r=a=null:a=i(r=t),u):r},u}function Fs(){var t=Es,e=null,n=is(0),r=Ds,i=is(!0),a=null,u=Ms,o=null;function s(s){var l,c,f,h,d,p=s.length,g=!1,m=new Array(p),v=new Array(p);for(null==a&&(o=u(d=rs())),l=0;l<=p;++l){if(!(l<p&&i(h=s[l],l,s))===g)if(g=!g)c=l,o.areaStart(),o.lineStart();else{for(o.lineEnd(),o.lineStart(),f=l-1;f>=c;--f)o.point(m[f],v[f]);o.lineEnd(),o.areaEnd()}g&&(m[l]=+t(h,l,s),v[l]=+n(h,l,s),o.point(e?+e(h,l,s):m[l],r?+r(h,l,s):v[l]))}if(d)return o=null,d+""||null}function l(){return Cs().defined(i).curve(u).context(a)}return s.x=function(n){return arguments.length?(t="function"==typeof n?n:is(+n),e=null,s):t},s.x0=function(e){return arguments.length?(t="function"==typeof e?e:is(+e),s):t},s.x1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:is(+t),s):e},s.y=function(t){return arguments.length?(n="function"==typeof t?t:is(+t),r=null,s):n},s.y0=function(t){return arguments.length?(n="function"==typeof t?t:is(+t),s):n},s.y1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:is(+t),s):r},s.lineX0=s.lineY0=function(){return l().x(t).y(n)},s.lineY1=function(){return l().x(t).y(r)},s.lineX1=function(){return l().x(e).y(n)},s.defined=function(t){return arguments.length?(i="function"==typeof t?t:is(!!t),s):i},s.curve=function(t){return arguments.length?(u=t,null!=a&&(o=u(a)),s):u},s.context=function(t){return arguments.length?(null==t?a=o=null:o=u(a=t),s):a},s}ks.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};var Ss={draw:function(t,e){var n=Math.sqrt(e/hs);t.moveTo(n,0),t.arc(0,0,n,0,ps)}};function Bs(){}function zs(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function Ts(t){this._context=t}function Ns(t){this._context=t}function Os(t){this._context=t}function Rs(t,e){this._basis=new Ts(t),this._beta=e}Ts.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:zs(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:zs(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Ns.prototype={areaStart:Bs,areaEnd:Bs,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:zs(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Os.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:zs(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Rs.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r,i=t[0],a=e[0],u=t[n]-i,o=e[n]-a,s=-1;++s<=n;)r=s/n,this._basis.point(this._beta*t[s]+(1-this._beta)*(i+r*u),this._beta*e[s]+(1-this._beta)*(a+r*o));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var qs=function t(e){function n(t){return 1===e?new Ts(t):new Rs(t,e)}return n.beta=function(e){return t(+e)},n}(.85);function Us(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function Ls(t,e){this._context=t,this._k=(1-e)/6}Ls.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Us(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Us(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Ps=function t(e){function n(t){return new Ls(t,e)}return n.tension=function(e){return t(+e)},n}(0);function $s(t,e){this._context=t,this._k=(1-e)/6}$s.prototype={areaStart:Bs,areaEnd:Bs,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Us(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var js=function t(e){function n(t){return new $s(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Is(t,e){this._context=t,this._k=(1-e)/6}Is.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Us(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Hs=function t(e){function n(t){return new Is(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Ws(t,e,n){var r=t._x1,i=t._y1,a=t._x2,u=t._y2;if(t._l01_a>1e-12){var o=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,s=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*o-t._x0*t._l12_2a+t._x2*t._l01_2a)/s,i=(i*o-t._y0*t._l12_2a+t._y2*t._l01_2a)/s}if(t._l23_a>1e-12){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,c=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*l+t._x1*t._l23_2a-e*t._l12_2a)/c,u=(u*l+t._y1*t._l23_2a-n*t._l12_2a)/c}t._context.bezierCurveTo(r,i,a,u,t._x2,t._y2)}function Ys(t,e){this._context=t,this._alpha=e}Ys.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Ws(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Vs=function t(e){function n(t){return e?new Ys(t,e):new Ls(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function Gs(t,e){this._context=t,this._alpha=e}Gs.prototype={areaStart:Bs,areaEnd:Bs,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Ws(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Xs=function t(e){function n(t){return e?new Gs(t,e):new $s(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function Js(t,e){this._context=t,this._alpha=e}Js.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Ws(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Zs=function t(e){function n(t){return e?new Js(t,e):new Is(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function Qs(t){this._context=t}function Ks(t){return t<0?-1:1}function tl(t,e,n){var r=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(r||i<0&&-0),u=(n-t._y1)/(i||r<0&&-0),o=(a*i+u*r)/(r+i);return(Ks(a)+Ks(u))*Math.min(Math.abs(a),Math.abs(u),.5*Math.abs(o))||0}function el(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function nl(t,e,n){var r=t._x0,i=t._y0,a=t._x1,u=t._y1,o=(a-r)/3;t._context.bezierCurveTo(r+o,i+o*e,a-o,u-o*n,a,u)}function rl(t){this._context=t}function il(t){this._context=new al(t)}function al(t){this._context=t}function ul(t){this._context=t}function ol(t){var e,n,r=t.length-1,i=new Array(r),a=new Array(r),u=new Array(r);for(i[0]=0,a[0]=2,u[0]=t[0]+2*t[1],e=1;e<r-1;++e)i[e]=1,a[e]=4,u[e]=4*t[e]+2*t[e+1];for(i[r-1]=2,a[r-1]=7,u[r-1]=8*t[r-1]+t[r],e=1;e<r;++e)n=i[e]/a[e-1],a[e]-=n,u[e]-=n*u[e-1];for(i[r-1]=u[r-1]/a[r-1],e=r-2;e>=0;--e)i[e]=(u[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e<r-1;++e)a[e]=2*t[e+1]-i[e+1];return[i,a]}function sl(t,e){this._context=t,this._t=e}Qs.prototype={areaStart:Bs,areaEnd:Bs,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}},rl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:nl(this,this._t0,el(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(e=+e,(t=+t)!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,nl(this,el(this,n=tl(this,t,e)),n);break;default:nl(this,this._t0,n=tl(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(il.prototype=Object.create(rl.prototype)).point=function(t,e){rl.prototype.point.call(this,e,t)},al.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,a){this._context.bezierCurveTo(e,t,r,n,a,i)}},ul.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===n)this._context.lineTo(t[1],e[1]);else for(var r=ol(t),i=ol(e),a=0,u=1;u<n;++a,++u)this._context.bezierCurveTo(r[0][a],i[0][a],r[1][a],i[1][a],t[u],e[u]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},sl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}};var ll={basis:{curve:function(t){return new Ts(t)}},"basis-closed":{curve:function(t){return new Ns(t)}},"basis-open":{curve:function(t){return new Os(t)}},bundle:{curve:qs,tension:"beta",value:.85},cardinal:{curve:Ps,tension:"tension",value:0},"cardinal-open":{curve:Hs,tension:"tension",value:0},"cardinal-closed":{curve:js,tension:"tension",value:0},"catmull-rom":{curve:Vs,tension:"alpha",value:.5},"catmull-rom-closed":{curve:Xs,tension:"alpha",value:.5},"catmull-rom-open":{curve:Zs,tension:"alpha",value:.5},linear:{curve:Ms},"linear-closed":{curve:function(t){return new Qs(t)}},monotone:{horizontal:function(t){return new il(t)},vertical:function(t){return new rl(t)}},natural:{curve:function(t){return new ul(t)}},step:{curve:function(t){return new sl(t,.5)}},"step-after":{curve:function(t){return new sl(t,1)}},"step-before":{curve:function(t){return new sl(t,0)}}};function cl(t,e,n){var r=K(ll,t)&&ll[t],i=null;return r&&(i=r.curve||r[e||"vertical"],r.tension&&null!=n&&(i=i[r.tension](n))),i}var fl={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},hl=[/([MLHVCSQTAZmlhvcsqtaz])/g,/###/,/(\d)([-+])/g,/\s|,|###/];function dl(t){var e,n,r,i,a,u,o,s,l,c,f,h=[];for(s=0,c=(e=t.slice().replace(hl[0],"###$1").split(hl[1]).slice(1)).length;s<c;++s){for(r=(n=e[s]).slice(1).trim().replace(hl[2],"$1###$2").split(hl[3]),i=[u=n.charAt(0)],l=0,f=r.length;l<f;++l)(a=+r[l])===a&&i.push(a);if(o=fl[u.toLowerCase()],i.length-1>o)for(l=1,f=i.length;l<f;l+=o)h.push([u].concat(i.slice(l,l+o)));else h.push(i)}return h}const pl=Math.PI/180,gl=Math.PI/2,ml=2*Math.PI,vl=Math.sqrt(3)/2;var yl={},_l={},xl=[].join;function bl(t){var e=xl.call(t);if(_l[e])return _l[e];var n=t[0],r=t[1],i=t[2],a=t[3],u=t[4],o=t[5],s=t[6],l=t[7],c=l*u,f=-s*o,h=s*u,d=l*o,p=Math.cos(i),g=Math.sin(i),m=Math.cos(a),v=Math.sin(a),y=.5*(a-i),_=Math.sin(.5*y),x=8/3*_*_/Math.sin(y),b=n+p-x*g,w=r+g+x*p,A=n+m,k=r+v,M=A+x*v,E=k-x*m;return _l[e]=[c*b+f*w,h*b+d*w,c*M+f*E,h*M+d*E,c*A+f*k,h*A+d*k]}var wl=["l",0,0,0,0,0,0,0];function Al(t,e,n){var r=wl[0]=t[0];if("a"===r||"A"===r)wl[1]=e*t[1],wl[2]=n*t[2],wl[3]=t[3],wl[4]=t[4],wl[5]=t[5],wl[6]=e*t[6],wl[7]=n*t[7];else if("h"===r||"H"===r)wl[1]=e*t[1];else if("v"===r||"V"===r)wl[1]=n*t[1];else for(var i=1,a=t.length;i<a;++i)wl[i]=(i%2==1?e:n)*t[i];return wl}function kl(t,e,n,r,i,a){var u,o,s,l,c,f=null,h=0,d=0,p=0,g=0;null==n&&(n=0),null==r&&(r=0),null==i&&(i=1),null==a&&(a=i),t.beginPath&&t.beginPath();for(var m=0,v=e.length;m<v;++m){switch(u=e[m],1===i&&1===a||(u=Al(u,i,a)),u[0]){case"l":h+=u[1],d+=u[2],t.lineTo(h+n,d+r);break;case"L":h=u[1],d=u[2],t.lineTo(h+n,d+r);break;case"h":h+=u[1],t.lineTo(h+n,d+r);break;case"H":h=u[1],t.lineTo(h+n,d+r);break;case"v":d+=u[1],t.lineTo(h+n,d+r);break;case"V":d=u[1],t.lineTo(h+n,d+r);break;case"m":h+=u[1],d+=u[2],t.moveTo(h+n,d+r);break;case"M":h=u[1],d=u[2],t.moveTo(h+n,d+r);break;case"c":o=h+u[5],s=d+u[6],p=h+u[3],g=d+u[4],t.bezierCurveTo(h+u[1]+n,d+u[2]+r,p+n,g+r,o+n,s+r),h=o,d=s;break;case"C":h=u[5],d=u[6],p=u[3],g=u[4],t.bezierCurveTo(u[1]+n,u[2]+r,p+n,g+r,h+n,d+r);break;case"s":o=h+u[3],s=d+u[4],p=2*h-p,g=2*d-g,t.bezierCurveTo(p+n,g+r,h+u[1]+n,d+u[2]+r,o+n,s+r),p=h+u[1],g=d+u[2],h=o,d=s;break;case"S":o=u[3],s=u[4],p=2*h-p,g=2*d-g,t.bezierCurveTo(p+n,g+r,u[1]+n,u[2]+r,o+n,s+r),h=o,d=s,p=u[1],g=u[2];break;case"q":o=h+u[3],s=d+u[4],p=h+u[1],g=d+u[2],t.quadraticCurveTo(p+n,g+r,o+n,s+r),h=o,d=s;break;case"Q":o=u[3],s=u[4],t.quadraticCurveTo(u[1]+n,u[2]+r,o+n,s+r),h=o,d=s,p=u[1],g=u[2];break;case"t":o=h+u[1],s=d+u[2],null===f[0].match(/[QqTt]/)?(p=h,g=d):"t"===f[0]?(p=2*h-l,g=2*d-c):"q"===f[0]&&(p=2*h-p,g=2*d-g),l=p,c=g,t.quadraticCurveTo(p+n,g+r,o+n,s+r),d=s,p=(h=o)+u[1],g=d+u[2];break;case"T":o=u[1],s=u[2],p=2*h-p,g=2*d-g,t.quadraticCurveTo(p+n,g+r,o+n,s+r),h=o,d=s;break;case"a":Ml(t,h+n,d+r,[u[1],u[2],u[3],u[4],u[5],u[6]+h+n,u[7]+d+r]),h+=u[6],d+=u[7];break;case"A":Ml(t,h+n,d+r,[u[1],u[2],u[3],u[4],u[5],u[6]+n,u[7]+r]),h=u[6],d=u[7];break;case"z":case"Z":t.closePath()}f=u}}function Ml(t,e,n,r){for(var i=function(t,e,n,r,i,a,u,o,s){var l=xl.call(arguments);if(yl[l])return yl[l];var c=u*pl,f=Math.sin(c),h=Math.cos(c),d=h*(o-t)*.5+f*(s-e)*.5,p=h*(s-e)*.5-f*(o-t)*.5,g=d*d/((n=Math.abs(n))*n)+p*p/((r=Math.abs(r))*r);g>1&&(n*=g=Math.sqrt(g),r*=g);var m=h/n,v=f/n,y=-f/r,_=h/r,x=m*o+v*s,b=y*o+_*s,w=m*t+v*e,A=y*t+_*e,k=(w-x)*(w-x)+(A-b)*(A-b),M=1/k-.25;M<0&&(M=0);var E=Math.sqrt(M);a==i&&(E=-E);var D=.5*(x+w)-E*(A-b),C=.5*(b+A)+E*(w-x),F=Math.atan2(b-C,x-D),S=Math.atan2(A-C,w-D),B=S-F;B<0&&1===a?B+=ml:B>0&&0===a&&(B-=ml);for(var z=Math.ceil(Math.abs(B/(gl+.001))),T=[],N=0;N<z;++N){var O=F+N*B/z,R=F+(N+1)*B/z;T[N]=[D,C,O,R,n,r,f,h]}return yl[l]=T}(r[5],r[6],r[0],r[1],r[3],r[4],r[2],e,n),a=0;a<i.length;++a){var u=bl(i[a]);t.bezierCurveTo(u[0],u[1],u[2],u[3],u[4],u[5])}}var El={circle:{draw:function(t,e){var n=Math.sqrt(e)/2;t.moveTo(n,0),t.arc(0,0,n,0,ml)}},cross:{draw:function(t,e){var n=Math.sqrt(e)/2,r=n/2.5;t.moveTo(-n,-r),t.lineTo(-n,r),t.lineTo(-r,r),t.lineTo(-r,n),t.lineTo(r,n),t.lineTo(r,r),t.lineTo(n,r),t.lineTo(n,-r),t.lineTo(r,-r),t.lineTo(r,-n),t.lineTo(-r,-n),t.lineTo(-r,-r),t.closePath()}},diamond:{draw:function(t,e){var n=Math.sqrt(e)/2;t.moveTo(-n,0),t.lineTo(0,-n),t.lineTo(n,0),t.lineTo(0,n),t.closePath()}},square:{draw:function(t,e){var n=Math.sqrt(e),r=-n/2;t.rect(r,r,n,n)}},arrow:{draw:function(t,e){var n=Math.sqrt(e)/2,r=n/7,i=n/2.5,a=n/8;t.moveTo(-r,n),t.lineTo(r,n),t.lineTo(r,-a),t.lineTo(i,-a),t.lineTo(0,-n),t.lineTo(-i,-a),t.lineTo(-r,-a),t.closePath()}},wedge:{draw:function(t,e){var n=Math.sqrt(e)/2,r=vl*n,i=r-.5773502691896257*n,a=n/4;t.moveTo(0,-r-i),t.lineTo(-a,r-i),t.lineTo(a,r-i),t.closePath()}},triangle:{draw:function(t,e){var n=Math.sqrt(e)/2,r=vl*n,i=r-.5773502691896257*n;t.moveTo(0,-r-i),t.lineTo(-n,r-i),t.lineTo(n,r-i),t.closePath()}},"triangle-up":{draw:function(t,e){var n=Math.sqrt(e)/2,r=vl*n;t.moveTo(0,-r),t.lineTo(-n,r),t.lineTo(n,r),t.closePath()}},"triangle-down":{draw:function(t,e){var n=Math.sqrt(e)/2,r=vl*n;t.moveTo(0,r),t.lineTo(-n,-r),t.lineTo(n,-r),t.closePath()}},"triangle-right":{draw:function(t,e){var n=Math.sqrt(e)/2,r=vl*n;t.moveTo(r,0),t.lineTo(-r,-n),t.lineTo(-r,n),t.closePath()}},"triangle-left":{draw:function(t,e){var n=Math.sqrt(e)/2,r=vl*n;t.moveTo(-r,0),t.lineTo(r,-n),t.lineTo(r,n),t.closePath()}},stroke:{draw:function(t,e){var n=Math.sqrt(e)/2;t.moveTo(-n,0),t.lineTo(n,0)}}};function Dl(t){return K(El,t)?El[t]:function(t){if(!K(Cl,t)){var e=dl(t);Cl[t]={draw:function(t,n){kl(t,e,0,0,Math.sqrt(n)/2)}}}return Cl[t]}(t)}var Cl={};const Fl=.448084975506;function Sl(t){return t.x}function Bl(t){return t.y}function zl(t){return t.width}function Tl(t){return t.height}function Nl(t){return"function"==typeof t?t:()=>+t}function Ol(t,e,n){return Math.max(e,Math.min(t,n))}function Rl(){var t=Sl,e=Bl,n=zl,r=Tl,i=Nl(0),a=i,u=i,o=i,s=null;function l(l,c,f){var h,d=null!=c?c:+t.call(this,l),p=null!=f?f:+e.call(this,l),g=+n.call(this,l),m=+r.call(this,l),v=Math.min(g,m)/2,y=Ol(+i.call(this,l),0,v),_=Ol(+a.call(this,l),0,v),x=Ol(+u.call(this,l),0,v),b=Ol(+o.call(this,l),0,v);if(s||(s=h=rs()),y<=0&&_<=0&&x<=0&&b<=0)s.rect(d,p,g,m);else{var w=d+g,A=p+m;s.moveTo(d+y,p),s.lineTo(w-_,p),s.bezierCurveTo(w-Fl*_,p,w,p+Fl*_,w,p+_),s.lineTo(w,A-b),s.bezierCurveTo(w,A-Fl*b,w-Fl*b,A,w-b,A),s.lineTo(d+x,A),s.bezierCurveTo(d+Fl*x,A,d,A-Fl*x,d,A-x),s.lineTo(d,p+y),s.bezierCurveTo(d,p+Fl*y,d+Fl*y,p,d+y,p),s.closePath()}if(h)return s=null,h+""||null}return l.x=function(e){return arguments.length?(t=Nl(e),l):t},l.y=function(t){return arguments.length?(e=Nl(t),l):e},l.width=function(t){return arguments.length?(n=Nl(t),l):n},l.height=function(t){return arguments.length?(r=Nl(t),l):r},l.cornerRadius=function(t,e,n,r){return arguments.length?(i=Nl(t),a=null!=e?Nl(e):i,o=null!=n?Nl(n):i,u=null!=r?Nl(r):a,l):i},l.context=function(t){return arguments.length?(s=null==t?null:t,l):s},l}function ql(){var t,e,n,r,i,a,u,o,s=null;function l(t,e,n){var r=n/2;if(i){var l=u-e,c=t-a;if(l||c){var f=Math.sqrt(l*l+c*c),h=(l/=f)*o,d=(c/=f)*o,p=Math.atan2(c,l);s.moveTo(a-h,u-d),s.lineTo(t-l*r,e-c*r),s.arc(t,e,r,p-Math.PI,p),s.lineTo(a+h,u+d),s.arc(a,u,o,p,p+Math.PI)}else s.arc(t,e,r,0,ml);s.closePath()}else i=1;a=t,u=e,o=r}function c(a){var u,o,c,f=a.length,h=!1;for(null==s&&(s=c=rs()),u=0;u<=f;++u)!(u<f&&r(o=a[u],u,a))===h&&(h=!h)&&(i=0),h&&l(+t(o,u,a),+e(o,u,a),+n(o,u,a));if(c)return s=null,c+""||null}return c.x=function(e){return arguments.length?(t=e,c):t},c.y=function(t){return arguments.length?(e=t,c):e},c.size=function(t){return arguments.length?(n=t,c):n},c.defined=function(t){return arguments.length?(r=t,c):r},c.context=function(t){return arguments.length?(s=null==t?null:t,c):s},c}function Ul(t,e){return null!=t?t:e}const Ll=t=>t.x||0,Pl=t=>t.y||0,$l=t=>!(!1===t.defined),jl=function(){var t=vs,e=ys,n=is(0),r=null,i=_s,a=xs,u=bs,o=null;function s(){var s,l,c=+t.apply(this,arguments),f=+e.apply(this,arguments),h=i.apply(this,arguments)-ds,d=a.apply(this,arguments)-ds,p=as(d-h),g=d>h;if(o||(o=s=rs()),f<c&&(l=f,f=c,c=l),f>1e-12)if(p>ps-1e-12)o.moveTo(f*os(h),f*cs(h)),o.arc(0,0,f,h,d,!g),c>1e-12&&(o.moveTo(c*os(d),c*cs(d)),o.arc(0,0,c,d,h,g));else{var m,v,y=h,_=d,x=h,b=d,w=p,A=p,k=u.apply(this,arguments)/2,M=k>1e-12&&(r?+r.apply(this,arguments):fs(c*c+f*f)),E=ls(as(f-c)/2,+n.apply(this,arguments)),D=E,C=E;if(M>1e-12){var F=ms(M/c*cs(k)),S=ms(M/f*cs(k));(w-=2*F)>1e-12?(x+=F*=g?1:-1,b-=F):(w=0,x=b=(h+d)/2),(A-=2*S)>1e-12?(y+=S*=g?1:-1,_-=S):(A=0,y=_=(h+d)/2)}var B=f*os(y),z=f*cs(y),T=c*os(b),N=c*cs(b);if(E>1e-12){var O,R=f*os(_),q=f*cs(_),U=c*os(x),L=c*cs(x);if(p<hs&&(O=ws(B,z,U,L,R,q,T,N))){var P=B-O[0],$=z-O[1],j=R-O[0],I=q-O[1],H=1/cs(gs((P*j+$*I)/(fs(P*P+$*$)*fs(j*j+I*I)))/2),W=fs(O[0]*O[0]+O[1]*O[1]);D=ls(E,(c-W)/(H-1)),C=ls(E,(f-W)/(H+1))}}A>1e-12?C>1e-12?(m=As(U,L,B,z,f,C,g),v=As(R,q,T,N,f,C,g),o.moveTo(m.cx+m.x01,m.cy+m.y01),C<E?o.arc(m.cx,m.cy,C,us(m.y01,m.x01),us(v.y01,v.x01),!g):(o.arc(m.cx,m.cy,C,us(m.y01,m.x01),us(m.y11,m.x11),!g),o.arc(0,0,f,us(m.cy+m.y11,m.cx+m.x11),us(v.cy+v.y11,v.cx+v.x11),!g),o.arc(v.cx,v.cy,C,us(v.y11,v.x11),us(v.y01,v.x01),!g))):(o.moveTo(B,z),o.arc(0,0,f,y,_,!g)):o.moveTo(B,z),c>1e-12&&w>1e-12?D>1e-12?(m=As(T,N,R,q,c,-D,g),v=As(B,z,U,L,c,-D,g),o.lineTo(m.cx+m.x01,m.cy+m.y01),D<E?o.arc(m.cx,m.cy,D,us(m.y01,m.x01),us(v.y01,v.x01),!g):(o.arc(m.cx,m.cy,D,us(m.y01,m.x01),us(m.y11,m.x11),!g),o.arc(0,0,c,us(m.cy+m.y11,m.cx+m.x11),us(v.cy+v.y11,v.cx+v.x11),g),o.arc(v.cx,v.cy,D,us(v.y11,v.x11),us(v.y01,v.x01),!g))):o.arc(0,0,c,b,x,g):o.lineTo(T,N)}else o.moveTo(0,0);if(o.closePath(),s)return o=null,s+""||null}return s.centroid=function(){var n=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-hs/2;return[os(r)*n,cs(r)*n]},s.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:is(+e),s):t},s.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:is(+t),s):e},s.cornerRadius=function(t){return arguments.length?(n="function"==typeof t?t:is(+t),s):n},s.padRadius=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:is(+t),s):r},s.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:is(+t),s):i},s.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:is(+t),s):a},s.padAngle=function(t){return arguments.length?(u="function"==typeof t?t:is(+t),s):u},s.context=function(t){return arguments.length?(o=null==t?null:t,s):o},s}().startAngle(t=>t.startAngle||0).endAngle(t=>t.endAngle||0).padAngle(t=>t.padAngle||0).innerRadius(t=>t.innerRadius||0).outerRadius(t=>t.outerRadius||0).cornerRadius(t=>t.cornerRadius||0),Il=Fs().x(Ll).y1(Pl).y0(t=>(t.y||0)+(t.height||0)).defined($l),Hl=Fs().y(Pl).x1(Ll).x0(t=>(t.x||0)+(t.width||0)).defined($l),Wl=Cs().x(Ll).y(Pl).defined($l),Yl=Rl().x(Ll).y(Pl).width(t=>t.width||0).height(t=>t.height||0).cornerRadius(t=>Ul(t.cornerRadiusTopLeft,t.cornerRadius)||0,t=>Ul(t.cornerRadiusTopRight,t.cornerRadius)||0,t=>Ul(t.cornerRadiusBottomRight,t.cornerRadius)||0,t=>Ul(t.cornerRadiusBottomLeft,t.cornerRadius)||0),Vl=function(){var t=is(Ss),e=is(64),n=null;function r(){var r;if(n||(n=r=rs()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),r)return n=null,r+""||null}return r.type=function(e){return arguments.length?(t="function"==typeof e?e:is(e),r):t},r.size=function(t){return arguments.length?(e="function"==typeof t?t:is(+t),r):e},r.context=function(t){return arguments.length?(n=null==t?null:t,r):n},r}().type(t=>Dl(t.shape||"circle")).size(t=>Ul(t.size,64)),Gl=ql().x(Ll).y(Pl).defined($l).size(t=>t.size||1);function Xl(t){return t.cornerRadius||t.cornerRadiusTopLeft||t.cornerRadiusTopRight||t.cornerRadiusBottomRight||t.cornerRadiusBottomLeft}function Jl(t,e,n,r){return Yl.context(t)(e,n,r)}function Zl(t,e,n){if(e.stroke&&0!==e.opacity&&0!==e.strokeOpacity){const r=null!=e.strokeWidth?+e.strokeWidth:1;t.expand(r+(n?function(t,e){return t.strokeJoin&&"miter"!==t.strokeJoin?0:e}(e,r):0))}return t}var Ql,Kl,tc,ec=ml-1e-8;function nc(t){return Ql=t,nc}function rc(){}function ic(t,e){Ql.add(t,e)}function ac(t,e){ic(Kl=t,tc=e)}function uc(t){ic(t,Ql.y1)}function oc(t){ic(Ql.x1,t)}function sc(t,e,n,r){const i=(t-e)/(t+n-2*e);0<i&&i<1&&r(t+(e-t)*i)}function lc(t,e,n,r,i){const a=r-t+3*e-3*n,u=t+n-2*e,o=t-e;let s,l=0,c=0;Math.abs(a)>1e-14?(s=u*u+o*a,s>=0&&(s=Math.sqrt(s),l=(-u+s)/a,c=(-u-s)/a)):l=.5*o/u,0<l&&l<1&&i(cc(l,t,e,n,r)),0<c&&c<1&&i(cc(c,t,e,n,r))}function cc(t,e,n,r,i){const a=1-t,u=a*a,o=t*t;return u*a*e+3*u*t*n+3*a*o*r+o*t*i}nc.beginPath=rc,nc.closePath=rc,nc.moveTo=ac,nc.lineTo=ac,nc.rect=function(t,e,n,r){ic(t+n,e+r),ac(t,e)},nc.quadraticCurveTo=function(t,e,n,r){sc(Kl,t,n,uc),sc(tc,e,r,oc),ac(n,r)},nc.bezierCurveTo=function(t,e,n,r,i,a){lc(Kl,t,n,i,uc),lc(tc,e,r,a,oc),ac(i,a)},nc.arc=function(t,e,n,r,i,a){if(Kl=n*Math.cos(i)+t,tc=n*Math.sin(i)+e,Math.abs(i-r)>ec)ic(t-n,e-n),ic(t+n,e+n);else{const u=r=>ic(n*Math.cos(r)+t,n*Math.sin(r)+e);let o,s;if(u(r),u(i),i!==r)if((r%=ml)<0&&(r+=ml),(i%=ml)<0&&(i+=ml),i<r&&(a=!a,o=r,r=i,i=o),a)for(i-=ml,o=r-r%gl,s=0;s<4&&o>i;++s,o-=gl)u(o);else for(o=r-r%gl+gl,s=0;s<4&&o<i;++s,o+=gl)u(o)}};var fc=(fc=Vo(1,1))?fc.getContext("2d"):null;const hc=new Uo;function dc(t){return function(e,n){if(!fc)return!0;t(fc,e),hc.clear().union(e.bounds).intersect(n).round();const{x1:r,y1:i,x2:a,y2:u}=hc;for(let t=i;t<=u;++t)for(let e=r;e<=a;++e)if(fc.isPointInPath(e,t))return!0;return!1}}function pc(t,e){return e.contains(t.x||0,t.y||0)}function gc(t,e){const n=t.x||0,r=t.y||0,i=t.width||0,a=t.height||0;return e.intersects(hc.set(n,r,n+i,r+a))}function mc(t,e){const n=t.x||0,r=t.y||0;return vc(e,n,r,null!=t.x2?t.x2:n,null!=t.y2?t.y2:r)}function vc(t,e,n,r,i){const{x1:a,y1:u,x2:o,y2:s}=t,l=r-e,c=i-n;let f,h,d,p,g=0,m=1;for(p=0;p<4;++p){if(0===p&&(f=-l,h=-(a-e)),1===p&&(f=l,h=o-e),2===p&&(f=-c,h=-(u-n)),3===p&&(f=c,h=s-n),Math.abs(f)<1e-10&&h<0)return!1;if(d=h/f,f<0){if(d>m)return!1;d>g&&(g=d)}else if(f>0){if(d<g)return!1;d<m&&(m=d)}}return!0}function yc(t,e){t.globalCompositeOperation=e.blend||"source-over"}function _c(t,e){return null==t?e:t}function xc(t,e){const n=e.length;for(let r=0;r<n;++r)t.addColorStop(e[r].offset,e[r].color);return t}function bc(t,e,n){return $o(n)?function(t,e,n){const r=n.width(),i=n.height();let a;if("radial"===e.gradient)a=t.createRadialGradient(n.x1+_c(e.x1,.5)*r,n.y1+_c(e.y1,.5)*i,Math.max(r,i)*_c(e.r1,0),n.x1+_c(e.x2,.5)*r,n.y1+_c(e.y2,.5)*i,Math.max(r,i)*_c(e.r2,.5));else{const u=_c(e.x1,0),o=_c(e.y1,0),s=_c(e.x2,1),l=_c(e.y2,0);if(u!==s&&o!==l&&r!==i){const n=Vo(Math.ceil(r),Math.ceil(i)),a=n.getContext("2d");return a.scale(r,i),a.fillStyle=xc(a.createLinearGradient(u,o,s,l),e.stops),a.fillRect(0,0,r,i),t.createPattern(n,"no-repeat")}a=t.createLinearGradient(n.x1+u*r,n.y1+o*i,n.x1+s*r,n.y1+l*i)}return xc(a,e.stops)}(t,n,e.bounds):n}function wc(t,e,n){return(n*=null==e.fillOpacity?1:e.fillOpacity)>0&&(t.globalAlpha=n,t.fillStyle=bc(t,e,e.fill),!0)}var Ac=[];function kc(t,e,n){var r=null!=(r=e.strokeWidth)?r:1;return!(r<=0)&&((n*=null==e.strokeOpacity?1:e.strokeOpacity)>0&&(t.globalAlpha=n,t.strokeStyle=bc(t,e,e.stroke),t.lineWidth=r,t.lineCap=e.strokeCap||"butt",t.lineJoin=e.strokeJoin||"miter",t.miterLimit=e.strokeMiterLimit||10,t.setLineDash&&(t.setLineDash(e.strokeDash||Ac),t.lineDashOffset=e.strokeDashOffset||0),!0))}function Mc(t,e){return t.zindex-e.zindex||t.index-e.index}function Ec(t){if(!t.zdirty)return t.zitems;var e,n,r,i=t.items,a=[];for(n=0,r=i.length;n<r;++n)(e=i[n]).index=n,e.zindex&&a.push(e);return t.zdirty=!1,t.zitems=a.sort(Mc)}function Dc(t,e){var n,r,i=t.items;if(i&&i.length){var a=Ec(t);if(a&&a.length){for(n=0,r=i.length;n<r;++n)i[n].zindex||e(i[n]);i=a}for(n=0,r=i.length;n<r;++n)e(i[n])}}function Cc(t,e){var n,r,i=t.items;if(!i||!i.length)return null;var a=Ec(t);for(a&&a.length&&(i=a),r=i.length;--r>=0;)if(n=e(i[r]))return n;if(i===a)for(r=(i=t.items).length;--r>=0;)if(!i[r].zindex&&(n=e(i[r])))return n;return null}function Fc(t){return function(e,n,r){Dc(n,(function(n){r&&!r.intersects(n.bounds)||Bc(t,e,n,n)}))}}function Sc(t){return function(e,n,r){!n.items.length||r&&!r.intersects(n.bounds)||Bc(t,e,n.items[0],n.items)}}function Bc(t,e,n,r){var i=null==n.opacity?1:n.opacity;0!==i&&(t(e,r)||(yc(e,n),n.fill&&wc(e,n,i)&&e.fill(),n.stroke&&kc(e,n,i)&&e.stroke()))}function zc(t){return t=t||m,function(e,n,r,i,a,u){return r*=e.pixelRatio,i*=e.pixelRatio,Cc(n,(function(n){var o=n.bounds;if((!o||o.contains(a,u))&&o)return t(e,n,r,i,a,u)?n:void 0}))}}function Tc(t,e){return function(n,r,i,a){var u,o,s=Array.isArray(r)?r[0]:r,l=null==e?s.fill:e,c=s.stroke&&n.isPointInStroke;return c&&(u=s.strokeWidth,o=s.strokeCap,n.lineWidth=null!=u?u:1,n.lineCap=null!=o?o:"butt"),!t(n,r)&&(l&&n.isPointInPath(i,a)||c&&n.isPointInStroke(i,a))}}function Nc(t){return zc(Tc(t))}function Oc(t,e){return"translate("+t+","+e+")"}function Rc(t){return"rotate("+t+")"}function qc(t){return Oc(t.x||0,t.y||0)}function Uc(t){return Oc(t.x||0,t.y||0)+(t.angle?" "+Rc(t.angle):"")+(t.scaleX||t.scaleY?" "+(e=t.scaleX||1,n=t.scaleY||1,"scale("+e+","+n+")"):"");var e,n}function Lc(t,e,n){function r(t,n){var r=n.x||0,i=n.y||0,a=n.angle||0;t.translate(r,i),a&&t.rotate(a*=pl),t.beginPath(),e(t,n),a&&t.rotate(-a),t.translate(-r,-i)}return{type:t,tag:"path",nested:!1,attr:function(t,n){t("transform",Uc(n)),t("d",e(null,n))},bound:function(t,n){var r=n.x||0,i=n.y||0;return e(nc(t),n),Zl(t,n).translate(r,i),n.angle&&t.rotate(n.angle*pl,r,i),t},draw:Fc(r),pick:Nc(r),isect:n||dc(r)}}var Pc=Lc("arc",(function(t,e){return jl.context(t)(e)}));function $c(t,e,n){function r(t,n){t.beginPath(),e(t,n)}var i=Tc(r);return{type:t,tag:"path",nested:!0,attr:function(t,n){var r=n.mark.items;r.length&&t("d",e(null,r))},bound:function(t,n){var r=n.items;return 0===r.length?t:(e(nc(t),r),Zl(t,r[0]))},draw:Sc(r),pick:function(t,e,n,r,a,u){var o=e.items,s=e.bounds;return!o||!o.length||s&&!s.contains(a,u)?null:(n*=t.pixelRatio,r*=t.pixelRatio,i(t,o,n,r)?o[0]:null)},isect:pc,tip:n}}var jc=$c("area",(function(t,e){var n=e[0],r=n.interpolate||"linear";return("horizontal"===n.orient?Hl:Il).curve(cl(r,n.orient,n.tension)).context(t)(e)}),(function(t,e){for(var n,r,i="horizontal"===t[0].orient?e[1]:e[0],a="horizontal"===t[0].orient?"y":"x",u=t.length,o=1/0;--u>=0;)!1!==t[u].defined&&(r=Math.abs(t[u][a]-i))<o&&(o=r,n=t[u]);return n}));function Ic(t,e){t.beginPath(),Xl(e)?Jl(t,e,0,0):t.rect(0,0,e.width||0,e.height||0),t.clip()}var Hc=1;function Wc(t,e,n){var r=e.clip,i=t._defs,a=e.clip_id||(e.clip_id="clip"+Hc++),u=i.clipping[a]||(i.clipping[a]={id:a});return W(r)?u.path=r(null):Xl(n)?u.path=Jl(null,n,0,0):(u.width=n.width||0,u.height=n.height||0),"url(#"+a+")"}function Yc(t){var e=null!=(e=t.strokeWidth)?e:1;return null!=t.strokeOffset?t.strokeOffset:t.stroke&&e>.5&&e<1.5?.5-Math.abs(e-1):0}function Vc(t,e){var n=Yc(e);t("d",Jl(null,e,n,n))}function Gc(t,e,n,r){var i=Yc(e);t.beginPath(),Jl(t,e,(n||0)+i,(r||0)+i)}var Xc=Tc(Gc),Jc=Tc(Gc,!1);var Zc={type:"group",tag:"g",nested:!1,attr:function(t,e){t("transform",qc(e))},bound:function(t,e){if(!e.clip&&e.items)for(var n=e.items,r=0,i=n.length;r<i;++r)t.union(n[r].bounds);return(e.clip||e.width||e.height)&&!e.noBound&&t.add(0,0).add(e.width||0,e.height||0),Zl(t,e),t.translate(e.x||0,e.y||0)},draw:function(t,e,n){var r=this;Dc(e,(function(e){var i=e.x||0,a=e.y||0,u=e.strokeForeground,o=null==e.opacity?1:e.opacity;(e.stroke||e.fill)&&o&&(Gc(t,e,i,a),yc(t,e),e.fill&&wc(t,e,o)&&t.fill(),e.stroke&&!u&&kc(t,e,o)&&t.stroke()),t.save(),t.translate(i,a),e.clip&&Ic(t,e),n&&n.translate(-i,-a),Dc(e,(function(e){r.draw(t,e,n)})),n&&n.translate(i,a),t.restore(),u&&e.stroke&&o&&(Gc(t,e,i,a),yc(t,e),kc(t,e,o)&&t.stroke())}))},pick:function(t,e,n,r,i,a){if(e.bounds&&!e.bounds.contains(i,a)||!e.items)return null;var u=this,o=n*t.pixelRatio,s=r*t.pixelRatio;return Cc(e,(function(l){var c,f,h,d,p,g,m,v,y;if((!(v=l.bounds)||v.contains(i,a))&&(d=l.x||0,p=l.y||0,g=d+(l.width||0),m=p+(l.height||0),!(y=l.clip)||!(i<d||i>g||a<d||a>m)))return t.save(),t.translate(d,p),d=i-d,p=a-p,y&&Xl(l)&&!Xc(t,l,o,s)?(t.restore(),null):(f=l.strokeForeground,(h=!1!==e.interactive)&&f&&l.stroke&&Jc(t,l,o,s)?(t.restore(),l):(!(c=Cc(l,(function(t){return function(t,e,n){return(!1!==t.interactive||"group"===t.marktype)&&t.bounds&&t.bounds.contains(e,n)}(t,d,p)?u.pick(t,n,r,d,p):null})))&&h&&(l.fill||!f&&l.stroke)&&Xc(t,l,o,s)&&(c=l),t.restore(),c||null))}))},isect:gc,content:function(t,e,n){t("clip-path",e.clip?Wc(n,e,e):null)},background:function(t,e){t("class","background"),Vc(t,e)},foreground:function(t,e){t("class","foreground"),e.strokeForeground?Vc(t,e):t("d","")}};function Qc(t,e){var n=t.image;return(!n||t.url&&t.url!==n.url)&&(n={complete:!1,width:0,height:0},e.loadImage(t.url).then(e=>{t.image=e,t.image.url=t.url})),n}function Kc(t,e){return null!=t.width?t.width:e&&e.width?!1!==t.aspect&&t.height?t.height*e.width/e.height:e.width:0}function tf(t,e){return null!=t.height?t.height:e&&e.height?!1!==t.aspect&&t.width?t.width*e.height/e.width:e.height:0}function ef(t,e){return"center"===t?e/2:"right"===t?e:0}function nf(t,e){return"middle"===t?e/2:"bottom"===t?e:0}var rf={type:"image",tag:"image",nested:!1,attr:function(t,e,n){var r=Qc(e,n),i=e.x||0,a=e.y||0,u=Kc(e,r),o=tf(e,r),s=!1===e.aspect?"none":"xMidYMid";i-=ef(e.align,u),a-=nf(e.baseline,o),!r.src&&r.toDataURL?t("href",r.toDataURL(),"http://www.w3.org/1999/xlink","xlink:href"):t("href",r.src||"","http://www.w3.org/1999/xlink","xlink:href"),t("transform",Oc(i,a)),t("width",u),t("height",o),t("preserveAspectRatio",s)},bound:function(t,e){var n=e.image,r=e.x||0,i=e.y||0,a=Kc(e,n),u=tf(e,n);return r-=ef(e.align,a),i-=nf(e.baseline,u),t.set(r,i,r+a,i+u)},draw:function(t,e,n){var r=this;Dc(e,(function(e){if(!n||n.intersects(e.bounds)){var i,a,u,o,s=Qc(e,r),l=e.x||0,c=e.y||0,f=Kc(e,s),h=tf(e,s);l-=ef(e.align,f),c-=nf(e.baseline,h),!1!==e.aspect&&(a=s.width/s.height,u=e.width/e.height,a==a&&u==u&&a!==u&&(u<a?(c+=(h-(o=f/a))/2,h=o):(l+=(f-(o=h*a))/2,f=o))),(s.complete||s.toDataURL)&&(yc(t,e),t.globalAlpha=null!=(i=e.opacity)?i:1,t.imageSmoothingEnabled=!1!==e.smooth,t.drawImage(s,l,c,f,h))}}))},pick:zc(),isect:m,get:Qc,xOffset:ef,yOffset:nf},af=$c("line",(function(t,e){var n=e[0],r=n.interpolate||"linear";return Wl.curve(cl(r,n.orient,n.tension)).context(t)(e)}),(function(t,e){for(var n,r,i=Math.pow(t[0].strokeWidth||1,2),a=t.length;--a>=0;)if(!1!==t[a].defined&&(n=t[a].x-e[0])*n+(r=t[a].y-e[1])*r<i)return t[a];return null}));function uf(t,e){var n=e.path;if(null==n)return!0;var r=e.x||0,i=e.y||0,a=e.scaleX||1,u=e.scaleY||1,o=(e.angle||0)*pl,s=e.pathCache;s&&s.path===n||((e.pathCache=s=dl(n)).path=n),o&&t.rotate&&t.translate?(t.translate(r,i),t.rotate(o),kl(t,s,0,0,a,u),t.rotate(-o),t.translate(-r,-i)):kl(t,s,r,i,a,u)}var of={type:"path",tag:"path",nested:!1,attr:function(t,e){var n=e.scaleX||1,r=e.scaleY||1;1===n&&1===r||t("vector-effect","non-scaling-stroke"),t("transform",Uc(e)),t("d",e.path)},bound:function(t,e){return uf(nc(t),e)?t.set(0,0,0,0):Zl(t,e,!0),e.angle&&t.rotate(e.angle*pl,e.x||0,e.y||0),t},draw:Fc(uf),pick:Nc(uf),isect:dc(uf)};function sf(t,e){t.beginPath(),Jl(t,e)}var lf={type:"rect",tag:"path",nested:!1,attr:function(t,e){t("d",Jl(null,e))},bound:function(t,e){var n,r;return Zl(t.set(n=e.x||0,r=e.y||0,n+e.width||0,r+e.height||0),e)},draw:Fc(sf),pick:Nc(sf),isect:gc};function cf(t,e,n){var r,i,a,u;return!(!e.stroke||!kc(t,e,n))&&(r=e.x||0,i=e.y||0,a=null!=e.x2?e.x2:r,u=null!=e.y2?e.y2:i,t.beginPath(),t.moveTo(r,i),t.lineTo(a,u),!0)}var ff={type:"rule",tag:"line",nested:!1,attr:function(t,e){t("transform",qc(e)),t("x2",null!=e.x2?e.x2-(e.x||0):0),t("y2",null!=e.y2?e.y2-(e.y||0):0)},bound:function(t,e){var n,r;return Zl(t.set(n=e.x||0,r=e.y||0,null!=e.x2?e.x2:n,null!=e.y2?e.y2:r),e)},draw:function(t,e,n){Dc(e,(function(e){if(!n||n.intersects(e.bounds)){var r=null==e.opacity?1:e.opacity;r&&cf(t,e,r)&&(yc(t,e),t.stroke())}}))},pick:zc((function(t,e,n,r){return!!t.isPointInStroke&&(cf(t,e,1)&&t.isPointInStroke(n,r))})),isect:mc},hf=Lc("shape",(function(t,e){return(e.mark.shape||e.shape).context(t)(e)})),df=Lc("symbol",(function(t,e){return Vl.context(t)(e)}),pc);const pf=ft();var gf={height:bf,measureWidth:_f,estimateWidth:vf,width:vf,canvas:mf};function mf(t){gf.width=t&&fc?_f:vf}function vf(t,e){return yf(Mf(t,e),bf(t))}function yf(t,e){return~~(.8*t.length*e)}function _f(t,e){return bf(t)<=0||!(e=Mf(t,e))?0:xf(e,Df(t))}function xf(t,e){const n=`(${e}) ${t}`;let r=pf.get(n);return void 0===r&&(fc.font=e,r=fc.measureText(t).width,pf.set(n,r)),r}function bf(t){return null!=t.fontSize?+t.fontSize||0:11}function wf(t){return null!=t.lineHeight?t.lineHeight:bf(t)+2}function Af(t){return e=t.lineBreak&&t.text&&!u(t.text)?t.text.split(t.lineBreak):t.text,u(e)?e.length>1?e:e[0]:e;var e}function kf(t){const e=Af(t);return(u(e)?e.length-1:0)*wf(t)}function Mf(t,e){const n=null==e?"":(e+"").trim();return t.limit>0&&n.length?function(t,e){var n=+t.limit,r=function(t){if(gf.width===_f){const e=Df(t);return t=>xf(t,e)}{const e=bf(t);return t=>yf(t,e)}}(t);if(r(e)<n)return e;var i,a=t.ellipsis||"…",u="rtl"===t.dir,o=0,s=e.length;if(n-=r(a),u){for(;o<s;)i=o+s>>>1,r(e.slice(i))>n?o=i+1:s=i;return a+e.slice(o)}for(;o<s;)i=1+(o+s>>>1),r(e.slice(0,i))<n?o=i:s=i-1;return e.slice(0,o)+a}(t,n):n}function Ef(t,e){var n=t.font;return(e&&n?String(n).replace(/"/g,"'"):n)||"sans-serif"}function Df(t,e){return(t.fontStyle?t.fontStyle+" ":"")+(t.fontVariant?t.fontVariant+" ":"")+(t.fontWeight?t.fontWeight+" ":"")+bf(t)+"px "+Ef(t,e)}function Cf(t){var e=t.baseline,n=bf(t);return Math.round("top"===e?.79*n:"middle"===e?.3*n:"bottom"===e?-.21*n:"line-top"===e?.29*n+.5*wf(t):"line-bottom"===e?.29*n-.5*wf(t):0)}mf(!0);var Ff={left:"start",center:"middle",right:"end"},Sf=new Uo;function Bf(t){var e,n=t.x||0,r=t.y||0,i=t.radius||0;return i&&(e=(t.theta||0)-gl,n+=i*Math.cos(e),r+=i*Math.sin(e)),Sf.x1=n,Sf.y1=r,Sf}function zf(t,e,n){var r,i=gf.height(e),a=e.align,o=Bf(e),s=o.x1,l=o.y1,c=e.dx||0,f=(e.dy||0)+Cf(e)-Math.round(.8*i),h=Af(e);if(u(h)?(i+=wf(e)*(h.length-1),r=h.reduce((t,n)=>Math.max(t,gf.width(e,n)),0)):r=gf.width(e,h),"center"===a?c-=r/2:"right"===a&&(c-=r),t.set(c+=s,f+=l,c+r,f+i),e.angle&&!n)t.rotate(e.angle*pl,s,l);else if(2===n)return t.rotatedPoints(e.angle*pl,s,l);return t}var Tf={arc:Pc,area:jc,group:Zc,image:rf,line:af,path:of,rect:lf,rule:ff,shape:hf,symbol:df,text:{type:"text",tag:"text",nested:!1,attr:function(t,e){var n,r=e.dx||0,i=(e.dy||0)+Cf(e),a=Bf(e),u=a.x1,o=a.y1,s=e.angle||0;t("text-anchor",Ff[e.align]||"start"),s?(n=Oc(u,o)+" "+Rc(s),(r||i)&&(n+=" "+Oc(r,i))):n=Oc(u+r,o+i),t("transform",n)},bound:zf,draw:function(t,e,n){Dc(e,(function(e){var r,i,a,o,s,l,c,f=null==e.opacity?1:e.opacity;if(!(n&&!n.intersects(e.bounds)||0===f||e.fontSize<=0||null==e.text||0===e.text.length)){if(t.font=Df(e),t.textAlign=e.align||"left",i=(r=Bf(e)).x1,a=r.y1,e.angle&&(t.save(),t.translate(i,a),t.rotate(e.angle*pl),i=a=0),i+=e.dx||0,a+=(e.dy||0)+Cf(e),l=Af(e),yc(t,e),u(l))for(s=wf(e),o=0;o<l.length;++o)c=Mf(e,l[o]),e.fill&&wc(t,e,f)&&t.fillText(c,i,a),e.stroke&&kc(t,e,f)&&t.strokeText(c,i,a),a+=s;else c=Mf(e,l),e.fill&&wc(t,e,f)&&t.fillText(c,i,a),e.stroke&&kc(t,e,f)&&t.strokeText(c,i,a);e.angle&&t.restore()}}))},pick:zc((function(t,e,n,r,i,a){if(e.fontSize<=0)return!1;if(!e.angle)return!0;var u=Bf(e),o=u.x1,s=u.y1,l=zf(Sf,e,1),c=-e.angle*pl,f=Math.cos(c),h=Math.sin(c),d=f*i-h*a+(o-f*o+h*s),p=h*i+f*a+(s-h*o-f*s);return l.contains(d,p)})),isect:function(t,e){var n=zf(Sf,t,2);return vc(e,n[0],n[1],n[2],n[3])||vc(e,n[0],n[1],n[4],n[5])||vc(e,n[4],n[5],n[6],n[7])||vc(e,n[2],n[3],n[6],n[7])}},trail:$c("trail",(function(t,e){return Gl.context(t)(e)}),(function(t,e){for(var n,r,i=t.length;--i>=0;)if(!1!==t[i].defined&&(n=t[i].x-e[0])*n+(r=t[i].y-e[1])*r<(n=t[i].size||1)*n)return t[i];return null}))};function Nf(t,e,n){var r=Tf[t.mark.marktype],i=e||r.bound;return r.nested&&(t=t.mark),i(t.bounds||(t.bounds=new Uo),t,n)}var Of={mark:null};function Rf(t,e,n){var r,i,a,u,o=Tf[t.marktype],s=o.bound,l=t.items,c=l&&l.length;if(o.nested)return c?a=l[0]:(Of.mark=t,a=Of),u=Nf(a,s,n),e=e&&e.union(u)||u;if(e=e||t.bounds&&t.bounds.clear()||new Uo,c)for(r=0,i=l.length;r<i;++r)e.union(Nf(l[r],s,n));return t.bounds=e}var qf=["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"];function Uf(t,e){return JSON.stringify(t,qf,e)}function Lf(t){return function t(e){var n,r,i,a=e.marktype,u=e.items;if(u)for(r=0,i=u.length;r<i;++r)n=a?"mark":"group",u[r][n]=e,u[r].zindex&&(u[r][n].zdirty=!0),"group"===(a||n)&&t(u[r]);a&&Rf(e);return e}("string"==typeof t?JSON.parse(t):t)}function Pf(t){arguments.length?this.root=Lf(t):(this.root=jf({marktype:"group",name:"root",role:"frame"}),this.root.items=[new Yo(this.root)])}var $f=Pf.prototype;function jf(t,e){return{bounds:new Uo,clip:!!t.clip,group:e,interactive:!1!==t.interactive,items:[],marktype:t.marktype,name:t.name||void 0,role:t.role||void 0,zindex:t.zindex||0}}function If(t,e,n){return!t&&"undefined"!=typeof document&&document.createElement&&(t=document),t?n?t.createElementNS(n,e):t.createElement(e):null}function Hf(t,e){e=e.toLowerCase();for(var n=t.childNodes,r=0,i=n.length;r<i;++r)if(n[r].tagName.toLowerCase()===e)return n[r]}function Wf(t,e,n,r){var i,a=t.childNodes[e];return a&&a.tagName.toLowerCase()===n.toLowerCase()||(i=a||null,a=If(t.ownerDocument,n,r),t.insertBefore(a,i)),a}function Yf(t,e){for(var n=t.childNodes,r=n.length;r>e;)t.removeChild(n[--r]);return t}function Vf(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function Gf(t,e){var n=e.getBoundingClientRect();return[t.clientX-n.left-(e.clientLeft||0),t.clientY-n.top-(e.clientTop||0)]}function Xf(t,e){this._active=null,this._handlers={},this._loader=t||kr(),this._tooltip=e||Jf}function Jf(t,e,n,r){t.element().setAttribute("title",r||"")}$f.toJSON=function(t){return Uf(this.root,t||0)},$f.mark=function(t,e,n){var r=jf(t,e=e||this.root.items[0]);return e.items[n]=r,r.zindex&&(r.group.zdirty=!0),r};var Zf=Xf.prototype;function Qf(t){this._el=null,this._bgcolor=null,this._loader=new Xo(t)}Zf.initialize=function(t,e,n){return this._el=t,this._obj=n||null,this.origin(e)},Zf.element=function(){return this._el},Zf.canvas=function(){return this._el&&this._el.firstChild},Zf.origin=function(t){return arguments.length?(this._origin=t||[0,0],this):this._origin.slice()},Zf.scene=function(t){return arguments.length?(this._scene=t,this):this._scene},Zf.on=function(){},Zf.off=function(){},Zf._handlerIndex=function(t,e,n){for(var r=t?t.length:0;--r>=0;)if(t[r].type===e&&(!n||t[r].handler===n))return r;return-1},Zf.handlers=function(t){var e,n=this._handlers,r=[];if(t)r.push.apply(r,n[this.eventName(t)]);else for(e in n)r.push.apply(r,n[e]);return r},Zf.eventName=function(t){var e=t.indexOf(".");return e<0?t:t.slice(0,e)},Zf.handleHref=function(t,e,n){this._loader.sanitize(n,{context:"href"}).then((function(e){var n=new MouseEvent(t.type,t),r=If(null,"a");for(var i in e)r.setAttribute(i,e[i]);r.dispatchEvent(n)})).catch((function(){}))},Zf.handleTooltip=function(t,e,n){if(e&&null!=e.tooltip){e=function(t,e,n,r){var i,a,u=t&&t.mark;if(u&&(i=Tf[u.marktype]).tip){for((a=Gf(e,n))[0]-=r[0],a[1]-=r[1];t=t.mark.group;)a[0]-=t.x||0,a[1]-=t.y||0;t=i.tip(u.items,a)}return t}(e,t,this.canvas(),this._origin);var r=n&&e&&e.tooltip||null;this._tooltip.call(this._obj,this,t,e,r)}},Zf.getItemBoundingClientRect=function(t){if(e=this.canvas()){for(var e,n=e.getBoundingClientRect(),r=this._origin,i=t.bounds,a=i.x1+r[0]+n.left,u=i.y1+r[1]+n.top,o=i.width(),s=i.height();t.mark&&(t=t.mark.group);)a+=t.x||0,u+=t.y||0;return{x:a,y:u,width:o,height:s,left:a,top:u,right:a+o,bottom:u+s}}};var Kf=Qf.prototype;Kf.initialize=function(t,e,n,r,i){return this._el=t,this.resize(e,n,r,i)},Kf.element=function(){return this._el},Kf.canvas=function(){return this._el&&this._el.firstChild},Kf.background=function(t){return 0===arguments.length?this._bgcolor:(this._bgcolor=t,this)},Kf.resize=function(t,e,n,r){return this._width=t,this._height=e,this._origin=n||[0,0],this._scale=r||1,this},Kf.dirty=function(){},Kf.render=function(t){var e=this;return e._call=function(){e._render(t)},e._call(),e._call=null,e},Kf._render=function(){},Kf.renderAsync=function(t){var e=this.render(t);return this._ready?this._ready.then((function(){return e})):Promise.resolve(e)},Kf._load=function(t,e){var n=this,r=n._loader[t](e);if(!n._ready){var i=n._call;n._ready=n._loader.ready().then((function(t){t&&i(),n._ready=null}))}return r},Kf.sanitizeURL=function(t){return this._load("sanitizeURL",t)},Kf.loadImage=function(t){return this._load("loadImage",t)};function th(t,e){Xf.call(this,t,e),this._down=null,this._touch=null,this._first=!0}var eh=rt(th,Xf);function nh(t,e,n){return function(r){var i=this._active,a=this.pickEvent(r);a===i||(i&&i.exit||this.fire(n,r),this._active=a,this.fire(e,r)),this.fire(t,r)}}function rh(t){return function(e){this.fire(t,e),this._active=null}}eh.initialize=function(t,e,n){var r=this._canvas=t&&Hf(t,"canvas");if(r){var i=this;this.events.forEach((function(t){r.addEventListener(t,(function(e){eh[t]?eh[t].call(i,e):i.fire(t,e)}))}))}return Xf.prototype.initialize.call(this,t,e,n)},eh.canvas=function(){return this._canvas},eh.context=function(){return this._canvas.getContext("2d")},eh.events=["keydown","keypress","keyup","dragenter","dragleave","dragover","mousedown","mouseup","mousemove","mouseout","mouseover","click","dblclick","wheel","mousewheel","touchstart","touchmove","touchend"],eh.DOMMouseScroll=function(t){this.fire("mousewheel",t)},eh.mousemove=nh("mousemove","mouseover","mouseout"),eh.dragover=nh("dragover","dragenter","dragleave"),eh.mouseout=rh("mouseout"),eh.dragleave=rh("dragleave"),eh.mousedown=function(t){this._down=this._active,this.fire("mousedown",t)},eh.click=function(t){this._down===this._active&&(this.fire("click",t),this._down=null)},eh.touchstart=function(t){this._touch=this.pickEvent(t.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire("touchstart",t,!0)},eh.touchmove=function(t){this.fire("touchmove",t,!0)},eh.touchend=function(t){this.fire("touchend",t,!0),this._touch=null},eh.fire=function(t,e,n){var r,i,a=n?this._touch:this._active,u=this._handlers[t];if(e.vegaType=t,"click"===t&&a&&a.href?this.handleHref(e,a,a.href):"mousemove"!==t&&"mouseout"!==t||this.handleTooltip(e,a,"mouseout"!==t),u)for(r=0,i=u.length;r<i;++r)u[r].handler.call(this._obj,e,a)},eh.on=function(t,e){var n=this.eventName(t),r=this._handlers;return this._handlerIndex(r[n],t,e)<0&&(r[n]||(r[n]=[])).push({type:t,handler:e}),this},eh.off=function(t,e){var n=this.eventName(t),r=this._handlers[n],i=this._handlerIndex(r,t,e);return i>=0&&r.splice(i,1),this},eh.pickEvent=function(t){var e=Gf(t,this._canvas),n=this._origin;return this.pick(this._scene,e[0],e[1],e[0]-n[0],e[1]-n[1])},eh.pick=function(t,e,n,r,i){var a=this.context();return Tf[t.marktype].pick.call(this,a,t,e,n,r,i)};var ih="undefined"!=typeof window&&window.devicePixelRatio||1;function ah(t){Qf.call(this,t),this._redraw=!1,this._dirty=new Uo}var uh=rt(ah,Qf),oh=Qf.prototype,sh=new Uo;function lh(t,e,n){return sh.set(0,0,e,n).translate(-t[0],-t[1])}function ch(t,e){Xf.call(this,t,e);var n=this;n._hrefHandler=hh(n,(function(t,e){e&&e.href&&n.handleHref(t,e,e.href)})),n._tooltipHandler=hh(n,(function(t,e){n.handleTooltip(t,e,"mouseout"!==t.type)}))}uh.initialize=function(t,e,n,r,i,a){return this._options=a,this._canvas=Vo(1,1,a&&a.type),t&&(Yf(t,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),oh.initialize.call(this,t,e,n,r,i)},uh.resize=function(t,e,n,r){return oh.resize.call(this,t,e,n,r),function(t,e,n,r,i,a){const u="undefined"!=typeof HTMLElement&&t instanceof HTMLElement&&null!=t.parentNode,o=t.getContext("2d"),s=u?ih:i;t.width=e*s,t.height=n*s;for(const t in a)o[t]=a[t];u&&1!==s&&(t.style.width=e+"px",t.style.height=n+"px"),o.pixelRatio=s,o.setTransform(s,0,0,s,s*r[0],s*r[1])}(this._canvas,this._width,this._height,this._origin,this._scale,this._options&&this._options.context),this._redraw=!0,this},uh.canvas=function(){return this._canvas},uh.context=function(){return this._canvas?this._canvas.getContext("2d"):null},uh.dirty=function(t){var e=function(t,e){if(null==e)return t;for(var n=sh.clear().union(t);null!=e;e=e.mark.group)n.translate(e.x||0,e.y||0);return n}(t.bounds,t.mark.group);this._dirty.union(e)},uh._render=function(t){var e=this.context(),n=this._origin,r=this._width,i=this._height,a=this._dirty;return e.save(),this._redraw||a.empty()?(this._redraw=!1,a=lh(n,r,i).expand(1)):a=function(t,e,n){return e.expand(1).round(),t.pixelRatio%1&&e.scale(t.pixelRatio).round().scale(1/t.pixelRatio),e.translate(-n[0]%1,-n[1]%1),t.beginPath(),t.rect(e.x1,e.y1,e.width(),e.height()),t.clip(),e}(e,a.intersect(lh(n,r,i)),n),this.clear(-n[0],-n[1],r,i),this.draw(e,t,a),e.restore(),this._dirty.clear(),this},uh.draw=function(t,e,n){var r=Tf[e.marktype];e.clip&&function(t,e){var n=e.clip;t.save(),W(n)?(t.beginPath(),n(t),t.clip()):Ic(t,e.group)}(t,e),r.draw.call(this,t,e,n),e.clip&&t.restore()},uh.clear=function(t,e,n,r){var i=this.context();i.clearRect(t,e,n,r),null!=this._bgcolor&&(i.fillStyle=this._bgcolor,i.fillRect(t,e,n,r))};var fh=rt(ch,Xf);function hh(t,e){return function(n){var r=n.target.__data__;n.vegaType=n.type,r=Array.isArray(r)?r[0]:r,e.call(t._obj,n,r)}}function dh(t,e,n){var r,i,a="<"+t;if(e)for(r in e)null!=(i=e[r])&&(a+=" "+r+'="'+i+'"');return n&&(a+=" "+n),a+">"}function ph(t){return"</"+t+">"}fh.initialize=function(t,e,n){var r=this._svg;return r&&(r.removeEventListener("click",this._hrefHandler),r.removeEventListener("mousemove",this._tooltipHandler),r.removeEventListener("mouseout",this._tooltipHandler)),this._svg=r=t&&Hf(t,"svg"),r&&(r.addEventListener("click",this._hrefHandler),r.addEventListener("mousemove",this._tooltipHandler),r.addEventListener("mouseout",this._tooltipHandler)),Xf.prototype.initialize.call(this,t,e,n)},fh.canvas=function(){return this._svg},fh.on=function(t,e){var n=this.eventName(t),r=this._handlers;if(this._handlerIndex(r[n],t,e)<0){var i={type:t,handler:e,listener:hh(this,e)};(r[n]||(r[n]=[])).push(i),this._svg&&this._svg.addEventListener(n,i.listener)}return this},fh.off=function(t,e){var n=this.eventName(t),r=this._handlers[n],i=this._handlerIndex(r,t,e);return i>=0&&(this._svg&&this._svg.removeEventListener(n,r[i].listener),r.splice(i,1)),this};var gh={version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},mh={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",blend:"mix-blend-mode"},vh=Object.keys(mh),yh=gh.xmlns;function _h(t){Qf.call(this,t),this._dirtyID=0,this._dirty=[],this._svg=null,this._root=null,this._defs=null}var xh=rt(_h,Qf),bh=Qf.prototype;function wh(t,e,n){var r,i,a;if("radial"===e.gradient){var u=Wf(t,n++,"pattern",yh);u.setAttribute("id","p_"+e.id),u.setAttribute("viewBox","0,0,1,1"),u.setAttribute("width","100%"),u.setAttribute("height","100%"),u.setAttribute("preserveAspectRatio","xMidYMid slice"),(u=Wf(u,0,"rect",yh)).setAttribute("width","1"),u.setAttribute("height","1"),u.setAttribute("fill","url("+Bh()+"#"+e.id+")"),(t=Wf(t,n++,"radialGradient",yh)).setAttribute("id",e.id),t.setAttribute("fx",e.x1),t.setAttribute("fy",e.y1),t.setAttribute("fr",e.r1),t.setAttribute("cx",e.x2),t.setAttribute("cy",e.y2),t.setAttribute("r",e.r2)}else(t=Wf(t,n++,"linearGradient",yh)).setAttribute("id",e.id),t.setAttribute("x1",e.x1),t.setAttribute("x2",e.x2),t.setAttribute("y1",e.y1),t.setAttribute("y2",e.y2);for(r=0,i=e.stops.length;r<i;++r)(a=Wf(t,r,"stop",yh)).setAttribute("offset",e.stops[r].offset),a.setAttribute("stop-color",e.stops[r].color);return Yf(t,r),n}function Ah(t,e,n){var r;return(t=Wf(t,n,"clipPath",yh)).setAttribute("id",e.id),e.path?(r=Wf(t,0,"path",yh)).setAttribute("d",e.path):((r=Wf(t,0,"rect",yh)).setAttribute("x",0),r.setAttribute("y",0),r.setAttribute("width",e.width),r.setAttribute("height",e.height)),Yf(t,1),n+1}function kh(t,e){for(;t&&t.dirty!==e;t=t.mark.group){if(t.dirty=e,!t.mark||t.mark.dirty===e)return;t.mark.dirty=e}}function Mh(t,e,n,r,i){var a,u=t._svg;if(!u&&(u=If(a=e.ownerDocument,r,yh),t._svg=u,t.mark&&(u.__data__=t,u.__values__={fill:"default"},"g"===r))){var o=If(a,"path",yh);u.appendChild(o),o.__data__=t;var s=If(a,"g",yh);u.appendChild(s),s.__data__=t;var l=If(a,"path",yh);u.appendChild(l),l.__data__=t,l.__values__={fill:"default"}}return(u.ownerSVGElement!==i||function(t,e){return t.parentNode&&t.parentNode.childNodes.length>1&&t.previousSibling!=e}(u,n))&&e.insertBefore(u,n?n.nextSibling:e.firstChild),u}xh.initialize=function(t,e,n,r){return t&&(this._svg=Wf(t,0,"svg",yh),this._svg.setAttribute("class","marks"),Yf(t,1),this._root=Wf(this._svg,0,"g",yh),Yf(this._svg,1)),this._defs={gradient:{},clipping:{}},this.background(this._bgcolor),bh.initialize.call(this,t,e,n,r)},xh.background=function(t){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",t),bh.background.apply(this,arguments)},xh.resize=function(t,e,n,r){return bh.resize.call(this,t,e,n,r),this._svg&&(this._svg.setAttribute("width",this._width*this._scale),this._svg.setAttribute("height",this._height*this._scale),this._svg.setAttribute("viewBox","0 0 "+this._width+" "+this._height),this._root.setAttribute("transform","translate("+this._origin+")")),this._dirty=[],this},xh.canvas=function(){return this._svg},xh.svg=function(){if(!this._svg)return null;var t={class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:"0 0 "+this._width+" "+this._height};for(var e in gh)t[e]=gh[e];var n=this._bgcolor?dh("rect",{width:this._width,height:this._height,style:"fill: "+this._bgcolor+";"})+ph("rect"):"";return dh("svg",t)+n+this._svg.innerHTML+ph("svg")},xh._render=function(t){return this._dirtyCheck()&&(this._dirtyAll&&this._resetDefs(),this.draw(this._root,t),Yf(this._root,1)),this.updateDefs(),this._dirty=[],++this._dirtyID,this},xh.updateDefs=function(){var t,e=this._svg,n=this._defs,r=n.el,i=0;for(t in n.gradient)r||(n.el=r=Wf(e,0,"defs",yh)),i=wh(r,n.gradient[t],i);for(t in n.clipping)r||(n.el=r=Wf(e,0,"defs",yh)),i=Ah(r,n.clipping[t],i);r&&(0===i?(e.removeChild(r),n.el=null):Yf(r,i))},xh._resetDefs=function(){var t=this._defs;t.gradient={},t.clipping={}},xh.dirty=function(t){t.dirty!==this._dirtyID&&(t.dirty=this._dirtyID,this._dirty.push(t))},xh.isDirty=function(t){return this._dirtyAll||!t._svg||t.dirty===this._dirtyID},xh._dirtyCheck=function(){this._dirtyAll=!0;var t=this._dirty;if(!t.length||!this._dirtyID)return!0;var e,n,r,i,a,u,o,s=++this._dirtyID;for(a=0,u=t.length;a<u;++a)(n=(e=t[a]).mark).marktype!==r&&(r=n.marktype,i=Tf[r]),n.zdirty&&n.dirty!==s&&(this._dirtyAll=!1,kh(e,s),n.items.forEach((function(t){t.dirty=s}))),n.zdirty||(e.exit?(i.nested&&n.items.length?(o=n.items[0])._svg&&this._update(i,o._svg,o):e._svg&&(o=e._svg.parentNode)&&o.removeChild(e._svg),e._svg=null):(e=i.nested?n.items[0]:e)._update!==s&&(e._svg&&e._svg.ownerSVGElement?this._update(i,e._svg,e):(this._dirtyAll=!1,kh(e,s)),e._update=s));return!this._dirtyAll},xh.draw=function(t,e,n){if(!this.isDirty(e))return e._svg;var r,i=this,a=this._svg,u=Tf[e.marktype],o=!1===e.interactive?"none":null,s="g"===u.tag,l=null,c=0;function f(t){var e=i.isDirty(t),n=Mh(t,r,l,u.tag,a);e&&(i._update(u,n,t),s&&function(t,e,n){e=e.lastChild.previousSibling;var r,i=0;Dc(n,(function(n){r=t.draw(e,n,r),++i})),Yf(e,1+i)}(i,n,t)),l=n,++c}return(r=Mh(e,t,n,"g",a)).setAttribute("class",Vf(e)),s||r.style.setProperty("pointer-events",o),e.clip?r.setAttribute("clip-path",Wc(i,e,e.group)):r.removeAttribute("clip-path"),u.nested?e.items.length&&f(e.items[0]):Dc(e,f),Yf(r,c),r};var Eh=null,Dh=null,Ch={group:function(t,e,n){var r,i;Eh=r=e.childNodes[2],Dh=r.__values__,t.foreground(Sh,n,this),Dh=e.__values__,Eh=e.childNodes[1],t.content(Sh,n,this),Eh=i=e.childNodes[0],t.background(Sh,n,this);var a=!1===n.mark.interactive?"none":null;if(a!==Dh.events&&(r.style.setProperty("pointer-events",a),i.style.setProperty("pointer-events",a),Dh.events=a),n.strokeForeground&&n.stroke){const t=n.fill;r.style.removeProperty("display"),this.style(i,n),i.style.removeProperty("stroke"),t&&(n.fill=null),Dh=r.__values__,this.style(r,n),t&&(n.fill=t),Eh=null}else r.style.setProperty("display","none"),r.style.setProperty("fill","none")},image:function(t,e,n){!1===n.smooth?(Fh(e,"image-rendering","optimizeSpeed"),Fh(e,"image-rendering","pixelated")):Fh(e,"image-rendering",null)},text:function(t,e,n){var r,i,a,o,s=Af(n);u(s)?(r=(i=s.map(t=>Mf(n,t))).join("\n"))!==Dh.text&&(Yf(e,0),a=e.ownerDocument,o=wf(n),i.forEach((t,r)=>{const i=If(a,"tspan",yh);i.__data__=n,i.textContent=t,r&&(i.setAttribute("x",0),i.setAttribute("dy",o)),e.appendChild(i)}),Dh.text=r):(i=Mf(n,s))!==Dh.text&&(e.textContent=i,Dh.text=i),Fh(e,"font-family",Ef(n)),Fh(e,"font-size",bf(n)+"px"),Fh(e,"font-style",n.fontStyle),Fh(e,"font-variant",n.fontVariant),Fh(e,"font-weight",n.fontWeight)}};function Fh(t,e,n){n!==Dh[e]&&(null==n?t.style.removeProperty(e):t.style.setProperty(e,n+""),Dh[e]=n)}function Sh(t,e,n){e!==Dh[t]&&(null!=e?n?Eh.setAttributeNS(n,t,e):Eh.setAttribute(t,e):n?Eh.removeAttributeNS(n,t):Eh.removeAttribute(t),Dh[t]=e)}function Bh(){var t;return"undefined"==typeof window?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}function zh(t){Qf.call(this,t),this._text={head:"",bg:"",root:"",foot:"",defs:"",body:""},this._defs={gradient:{},clipping:{}}}xh._update=function(t,e,n){Eh=e,Dh=e.__values__,t.attr(Sh,n,this);var r=Ch[t.type];r&&r.call(this,t,e,n),Eh&&this.style(Eh,n)},xh.style=function(t,e){var n,r,i,a,u;if(null!=e)for(n=0,r=vh.length;n<r;++n)u=e[i=vh[n]],"font"===i&&(u=Ef(e)),u!==Dh[i]&&(a=mh[i],null==u?"fill"===a?t.style.setProperty(a,"none"):t.style.removeProperty(a):($o(u)&&(u=jo(u,this._defs.gradient,Bh())),t.style.setProperty(a,u+"")),Dh[i]=u)};var Th,Nh=rt(zh,Qf),Oh=Qf.prototype;function Rh(t,e,n,r){Th[r||t]=e}function qh(t,e,n,r){if(null==t)return"";var i,a,u,o,s,l="";for("bgrect"===n&&!1===e.interactive&&(l+="pointer-events: none; "),"bgfore"===n&&(!1===e.interactive&&(l+="pointer-events: none; "),l+="display: none; "),"image"===n&&!1===t.smooth&&(l+="image-rendering: optimizeSpeed; image-rendering: pixelated; "),"text"===n&&(l+="font-family: "+Ef(t)+"; ",l+="font-size: "+bf(t)+"px; ",t.fontStyle&&(l+="font-style: "+t.fontStyle+"; "),t.fontVariant&&(l+="font-variant: "+t.fontVariant+"; "),t.fontWeight&&(l+="font-weight: "+t.fontWeight+"; ")),i=0,a=vh.length;i<a;++i)u=vh[i],o=mh[u],null==(s=t[u])?"fill"===o&&(l+="fill: none; "):"transparent"!==s||"fill"!==o&&"stroke"!==o?($o(s)&&(s=jo(s,r.gradient,"")),l+=o+": "+s+"; "):l+=o+": none; ";return l?'style="'+l.trim()+'"':null}function Uh(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}Nh.resize=function(t,e,n,r){Oh.resize.call(this,t,e,n,r);var i=this._origin,a=this._text,u={class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:"0 0 "+this._width+" "+this._height};for(var o in gh)u[o]=gh[o];a.head=dh("svg",u);var s=this._bgcolor;return"transparent"!==s&&"none"!==s||(s=null),a.bg=s?dh("rect",{width:this._width,height:this._height,style:"fill: "+s+";"})+ph("rect"):"",a.root=dh("g",{transform:"translate("+i+")"}),a.foot=ph("g")+ph("svg"),this},Nh.background=function(){var t=Oh.background.apply(this,arguments);return arguments.length&&this._text.head&&this.resize(this._width,this._height,this._origin,this._scale),t},Nh.svg=function(){var t=this._text;return t.head+t.bg+t.defs+t.root+t.body+t.foot},Nh._render=function(t){return this._text.body=this.mark(t),this._text.defs=this.buildDefs(),this},Nh.buildDefs=function(){var t,e,n,r,i,a=this._defs,u="";for(e in a.gradient){for(i=(n=a.gradient[e]).stops,"radial"===n.gradient?(u+=dh(r="pattern",{id:"p_"+e,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),u+=dh("rect",{width:"1",height:"1",fill:"url(#"+e+")"})+ph("rect"),u+=ph(r),u+=dh(r="radialGradient",{id:e,fx:n.x1,fy:n.y1,fr:n.r1,cx:n.x2,cy:n.y2,r:n.r2})):u+=dh(r="linearGradient",{id:e,x1:n.x1,x2:n.x2,y1:n.y1,y2:n.y2}),t=0;t<i.length;++t)u+=dh("stop",{offset:i[t].offset,"stop-color":i[t].color})+ph("stop");u+=ph(r)}for(e in a.clipping)n=a.clipping[e],u+=dh("clipPath",{id:e}),n.path?u+=dh("path",{d:n.path})+ph("path"):u+=dh("rect",{x:0,y:0,width:n.width,height:n.height})+ph("rect"),u+=ph("clipPath");return u.length>0?dh("defs")+u+ph("defs"):""},Nh.attributes=function(t,e){return Th={},t(Rh,e,this),Th},Nh.href=function(t){var e,n=this,r=t.href;if(r){if(e=n._hrefs&&n._hrefs[r])return e;n.sanitizeURL(r).then((function(t){t["xlink:href"]=t.href,t.href=null,(n._hrefs||(n._hrefs={}))[r]=t}))}return null},Nh.mark=function(t){var e,n=this,r=Tf[t.marktype],i=r.tag,a=this._defs,o="";function s(s){var l=n.href(s);if(l&&(o+=dh("a",l)),e="g"!==i?qh(s,t,i,a):null,o+=dh(i,n.attributes(r.attr,s),e),"text"===i){const t=Af(s);if(u(t)){const e={x:0,dy:wf(s)};for(let n=0;n<t.length;++n)o+=dh("tspan",n?e:null)+Uh(Mf(s,t[n]))+ph("tspan")}else o+=Uh(Mf(s,t))}else if("g"===i){const e=s.strokeForeground,i=s.fill,u=s.stroke;e&&u&&(s.stroke=null),o+=dh("path",n.attributes(r.background,s),qh(s,t,"bgrect",a))+ph("path"),o+=dh("g",n.attributes(r.content,s))+n.markGroup(s)+ph("g"),e&&u?(i&&(s.fill=null),s.stroke=u,o+=dh("path",n.attributes(r.foreground,s),qh(s,t,"bgrect",a))+ph("path"),i&&(s.fill=i)):o+=dh("path",n.attributes(r.foreground,s),qh({},t,"bgfore",a))+ph("path")}o+=ph(i),l&&(o+=ph("a"))}return"g"!==i&&!1===t.interactive&&(e='style="pointer-events: none;"'),o+=dh("g",{class:Vf(t),"clip-path":t.clip?Wc(n,t,t.group):null},e),r.nested?t.items&&t.items.length&&s(t.items[0]):Dc(t,s),o+ph("g")},Nh.markGroup=function(t){var e=this,n="";return Dc(t,(function(t){n+=e.mark(t)})),n};var Lh={Canvas:"canvas",PNG:"png",SVG:"svg",None:"none"},Ph={};function $h(t,e){return t=String(t||"").toLowerCase(),arguments.length>1?(Ph[t]=e,this):Ph[t]}function jh(t,e,n){const r=[],a=(new Uo).union(e),u=t.marktype;return u?Ih(t,a,n,r):"group"===u?Hh(t,a,n,r):i("Intersect scene must be mark node or group item.")}function Ih(t,e,n,r){if(function(t,e,n){return t.bounds&&e.intersects(t.bounds)&&("group"===t.marktype||!1!==t.interactive&&(!n||n(t)))}(t,e,n)){const i=t.items,a=t.marktype,u=i.length;let o=0;if("group"===a)for(;o<u;++o)Hh(i[o],e,n,r);else for(const t=Tf[a].isect;o<u;++o){let n=i[o];Wh(n,e,t)&&r.push(n)}}return r}function Hh(t,e,n,r){n&&n(t.mark)&&Wh(t,e,Tf.group.isect)&&r.push(t);const i=t.items,a=i&&i.length;if(a){const u=t.x||0,o=t.y||0;e.translate(-u,-o);for(let t=0;t<a;++t)Ih(i[t],e,n,r);e.translate(u,o)}return r}function Wh(t,e,n){const r=t.bounds;return e.encloses(r)||e.intersects(r)&&n(t,e)}Ph.canvas=Ph.png={renderer:ah,headless:ah,handler:th},Ph.svg={renderer:_h,headless:zh,handler:ch},Ph.none={};var Yh=new Uo;function Vh(t){var e=t.clip;if(W(e))e(nc(Yh.clear()));else{if(!e)return;Yh.set(0,0,t.group.width,t.group.height)}t.bounds.intersect(Yh)}function Gh(t,e,n){return t===e||("path"===n?Xh(t,e):t instanceof Date&&e instanceof Date?+t==+e:ot(t)&&ot(e)?Math.abs(t-e)<=1e-9:t&&e&&(o(t)||o(e))?null!=t&&null!=e&&function(t,e){var n,r,i=Object.keys(t),a=Object.keys(e);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(n=i[r],!Gh(t[n],e[n],n))return!1;return typeof t==typeof e}(t,e):t==e)}function Xh(t,e){return Gh(dl(t),dl(e))}function Jh(t){Hr.call(this,null,t)}function Zh(t,e,n){return e(t.bounds.clear(),t,n)}rt(Jh,Hr).transform=function(t,e){var n,r=e.dataflow,i=t.mark,a=i.marktype,u=Tf[a],o=u.bound,s=i.bounds;if(u.nested)i.items.length&&r.dirty(i.items[0]),s=Zh(i,o),i.items.forEach((function(t){t.bounds.clear().union(s)}));else if("group"===a||t.modified())switch(e.visit(e.MOD,(function(t){r.dirty(t)})),s.clear(),i.items.forEach((function(t){s.union(Zh(t,o))})),i.role){case"axis":case"legend":case"title":e.reflow()}else n=e.changed(e.REM),e.visit(e.ADD,(function(t){s.union(Zh(t,o))})),e.visit(e.MOD,(function(t){n=n||s.alignsWith(t.bounds),r.dirty(t),s.union(Zh(t,o))})),n&&(s.clear(),i.items.forEach((function(t){s.union(t.bounds)})));return Vh(i),e.modifies("bounds")};function Qh(t){Hr.call(this,0,t)}function Kh(t){Hr.call(this,null,t)}function td(t){Hr.call(this,null,t)}Qh.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},rt(Qh,Hr).transform=function(t,e){var n=function(t){var e=t._signals[":vega_identifier:"];e||(t._signals[":vega_identifier:"]=e=t.add(0));return e}(e.dataflow),r=n.value,i=t.as;return e.visit(e.ADD,(function(t){t[i]||(t[i]=++r)})),n.set(this.value=r),e},rt(Kh,Hr).transform=function(t,e){var n=this.value;n||((n=e.dataflow.scenegraph().mark(t.markdef,function(t){var e=t.groups,n=t.parent;return e&&1===e.size?e.get(Object.keys(e.object)[0]):e&&n?e.lookup(n):null}(t),t.index)).group.context=t.context,t.context.group||(t.context.group=n.group),n.source=this.source,n.clip=t.clip,n.interactive=t.interactive,this.value=n);var r="group"===n.marktype?Yo:Wo;return e.visit(e.ADD,(function(t){r.call(t,n)})),(t.modified("clip")||t.modified("interactive"))&&(n.clip=t.clip,n.interactive=!!t.interactive,n.zdirty=!0,e.reflow()),n.items=e.source,e};var ed=rt(td,Hr),nd={parity:function(t){return t.filter((t,e)=>e%2?t.opacity=0:1)},greedy:function(t,e){var n;return t.filter((t,r)=>r&&rd(n.bounds,t.bounds,e)?t.opacity=0:(n=t,1))}};function rd(t,e,n){return n>Math.max(e.x1-t.x2,t.x1-e.x2,e.y1-t.y2,t.y1-e.y2)}function id(t,e){for(var n,r=1,i=t.length,a=t[0].bounds;r<i;a=n,++r)if(rd(a,n=t[r].bounds,e))return!0}function ad(t){var e=t.bounds;return e.width()>1&&e.height()>1}function ud(t){return t.forEach(t=>t.opacity=1),t}function od(t,e){return t.reflow(e.modified()).modifies("opacity")}function sd(t){Hr.call(this,null,t)}ed.transform=function(t,e){var n,r,i,a=nd[t.method]||nd.parity,u=e.materialize(e.SOURCE).source,o=t.separation||0;if(u&&u.length){if(!t.method)return t.modified("method")&&(ud(u),e=od(e,t)),e;if(t.sort&&(u=u.slice().sort(t.sort)),n=ud(u=u.filter(ad)),e=od(e,t),n.length>=3&&id(n,o)){do{n=a(n,o)}while(n.length>=3&&id(n,o));n.length<3&&!k(u).opacity&&(n.length>1&&(k(n).opacity=0),k(u).opacity=1)}return t.boundScale&&t.boundTolerance>=0&&(r=function(t,e,n){var r=t.range(),i=new Uo;return e===To||"bottom"===e?i.set(r[0],-1/0,r[1],1/0):i.set(-1/0,r[0],1/0,r[1]),i.expand(n||1),t=>i.encloses(t.bounds)}(t.boundScale,t.boundOrient,+t.boundTolerance),u.forEach(t=>{r(t)||(t.opacity=0)})),i=n[0].mark.bounds.clear(),u.forEach(t=>{t.opacity&&i.union(t.bounds)}),e}},rt(sd,Hr).transform=function(t,e){var n=e.dataflow;if(e.visit(e.ALL,(function(t){n.dirty(t)})),e.fields&&e.fields.zindex){var r=e.source&&e.source[0];r&&(r.mark.zdirty=!0)}};const ld=new Uo;function cd(t,e,n){return t[e]===n?0:(t[e]=n,1)}function fd(t){var e=t.items[0].datum.orient;return e===No||e===Oo}function hd(t,e,n,r){var i,a,u=e.items[0],o=u.datum,s=o.orient,l=null!=o.translate?o.translate:.5,c=function(t){var e=+t.grid;return[t.ticks?e++:-1,t.labels?e++:-1,e+ +t.domain]}(o),f=u.range,h=u.offset,d=u.position,p=u.minExtent,g=u.maxExtent,m=o.title&&u.items[c[2]].items[0],v=u.titlePadding,y=u.bounds,_=m&&kf(m),x=0,b=0;switch(ld.clear().union(y),y.clear(),(i=c[0])>-1&&y.union(u.items[i].bounds),(i=c[1])>-1&&y.union(u.items[i].bounds),s){case To:x=d||0,b=-h,a=Math.max(p,Math.min(g,-y.y1)),y.add(0,-a).add(f,0),m&&dd(t,m,a,v,_,0,-1,y);break;case No:x=-h,b=d||0,a=Math.max(p,Math.min(g,-y.x1)),y.add(-a,0).add(0,f),m&&dd(t,m,a,v,_,1,-1,y);break;case Oo:x=n+h,b=d||0,a=Math.max(p,Math.min(g,y.x2)),y.add(0,0).add(a,f),m&&dd(t,m,a,v,_,1,1,y);break;case"bottom":x=d||0,b=r+h,a=Math.max(p,Math.min(g,y.y2)),y.add(0,0).add(f,a),m&&dd(t,m,a,v,0,0,1,y);break;default:x=u.x,b=u.y}return Zl(y.translate(x,b),u),cd(u,"x",x+l)|cd(u,"y",b+l)&&(u.bounds=ld,t.dirty(u),u.bounds=y,t.dirty(u)),u.mark.bounds.clear().union(y)}function dd(t,e,n,r,i,a,u,o){const s=e.bounds;if(e.auto){const o=u*(n+i+r);let l=0,c=0;t.dirty(e),a?l=(e.x||0)-(e.x=o):c=(e.y||0)-(e.y=o),e.mark.bounds.clear().union(s.translate(-l,-c)),t.dirty(e)}o.union(s)}function pd(t){return(new Uo).set(0,0,t.width||0,t.height||0)}function gd(t){var e=t.bounds.clone();return e.empty()?e.set(0,0,0,0):e.translate(-(t.x||0),-(t.y||0))}function md(t,e,n){var r=o(t)?t[e]:t;return null!=r?r:void 0!==n?n:0}function vd(t){return t<0?Math.ceil(-t):0}function yd(t,e,n){var r,i,a,u,o,s,l,c,f,h,d,p=!n.nodirty,g="flush"===n.bounds?pd:gd,m=ld.set(0,0,0,0),v=md(n.align,"column"),y=md(n.align,qo),_=md(n.padding,"column"),x=md(n.padding,qo),b=n.columns||e.length,w=b<0?1:Math.ceil(e.length/b),A=e.length,k=Array(A),M=Array(b),E=0,D=Array(A),C=Array(w),F=0,S=Array(A),B=Array(A),z=Array(A);for(i=0;i<b;++i)M[i]=0;for(i=0;i<w;++i)C[i]=0;for(i=0;i<A;++i)s=e[i],o=z[i]=g(s),s.x=s.x||0,S[i]=0,s.y=s.y||0,B[i]=0,a=i%b,u=~~(i/b),E=Math.max(E,l=Math.ceil(o.x2)),F=Math.max(F,c=Math.ceil(o.y2)),M[a]=Math.max(M[a],l),C[u]=Math.max(C[u],c),k[i]=_+vd(o.x1),D[i]=x+vd(o.y1),p&&t.dirty(e[i]);for(i=0;i<A;++i)i%b==0&&(k[i]=0),i<b&&(D[i]=0);if("each"===v)for(a=1;a<b;++a){for(d=0,i=a;i<A;i+=b)d<k[i]&&(d=k[i]);for(i=a;i<A;i+=b)k[i]=d+M[a-1]}else if("all"===v){for(d=0,i=0;i<A;++i)i%b&&d<k[i]&&(d=k[i]);for(i=0;i<A;++i)i%b&&(k[i]=d+E)}else for(v=!1,a=1;a<b;++a)for(i=a;i<A;i+=b)k[i]+=M[a-1];if("each"===y)for(u=1;u<w;++u){for(d=0,r=(i=u*b)+b;i<r;++i)d<D[i]&&(d=D[i]);for(i=u*b;i<r;++i)D[i]=d+C[u-1]}else if("all"===y){for(d=0,i=b;i<A;++i)d<D[i]&&(d=D[i]);for(i=b;i<A;++i)D[i]=d+F}else for(y=!1,u=1;u<w;++u)for(r=(i=u*b)+b;i<r;++i)D[i]+=C[u-1];for(f=0,i=0;i<A;++i)f=k[i]+(i%b?f:0),S[i]+=f-e[i].x;for(a=0;a<b;++a)for(h=0,i=a;i<A;i+=b)h+=D[i],B[i]+=h-e[i].y;if(v&&md(n.center,"column")&&w>1)for(i=0;i<A;++i)(f=(o="all"===v?E:M[i%b])-z[i].x2-e[i].x-S[i])>0&&(S[i]+=f/2);if(y&&md(n.center,qo)&&1!==b)for(i=0;i<A;++i)(h=(o="all"===y?F:C[~~(i/b)])-z[i].y2-e[i].y-B[i])>0&&(B[i]+=h/2);for(i=0;i<A;++i)m.union(z[i].translate(S[i],B[i]));switch(f=md(n.anchor,"x"),h=md(n.anchor,"y"),md(n.anchor,"column")){case Ro:f-=m.width();break;case"middle":f-=m.width()/2}switch(md(n.anchor,qo)){case Ro:h-=m.height();break;case"middle":h-=m.height()/2}for(f=Math.round(f),h=Math.round(h),m.clear(),i=0;i<A;++i)e[i].mark.bounds.clear();for(i=0;i<A;++i)(s=e[i]).x+=S[i]+=f,s.y+=B[i]+=h,m.union(s.mark.bounds.union(s.bounds.translate(S[i],B[i]))),p&&t.dirty(s);return m}function _d(t,e){return"x1"===e?t.x||0:"y1"===e?t.y||0:"x2"===e?(t.x||0)+(t.width||0):"y2"===e?(t.y||0)+(t.height||0):void 0}function xd(t,e){return t.bounds[e]}function bd(t,e){return Math.floor(Math.min(t,e))}function wd(t,e){return Math.ceil(Math.max(t,e))}function Ad(t,e,n,r,i,a,u,o,s,l,c,f,h,d){var p,g,m,v,y,_,x,b,w,A=n.length,k=0,M=0;if(!A)return k;for(p=c;p<A;p+=f)n[p]&&(k=u(k,s(n[p],l)));if(!e.length)return k;for(e.length>i&&(t.warn("Grid headers exceed limit: "+i),e=e.slice(0,i)),k+=a,g=0,v=e.length;g<v;++g)t.dirty(e[g]),e[g].mark.bounds.clear();for(p=c,g=0,v=e.length;g<v;++g,p+=f){for(y=(_=e[g]).mark.bounds,m=p;m>=0&&null==(x=n[m]);m-=h);o?(b=null==d?x.x:Math.round(x.bounds.x1+d*x.bounds.width()),w=k):(b=k,w=null==d?x.y:Math.round(x.bounds.y1+d*x.bounds.height())),y.union(_.bounds.translate(b-(_.x||0),w-(_.y||0))),_.x=b,_.y=w,t.dirty(_),M=u(M,y[l])}return M}function kd(t,e,n,r,i,a){if(e){t.dirty(e);var u=n,o=n;r?u=Math.round(i.x1+a*i.width()):o=Math.round(i.y1+a*i.height()),e.bounds.translate(u-(e.x||0),o-(e.y||0)),e.mark.bounds.clear().union(e.bounds),e.x=u,e.y=o,t.dirty(e)}}function Md(t,e,n,r,i,a,u){const o=function(t,e){const n=t[e]||{};return(e,r)=>null!=n[e]?n[e]:null!=t[e]?t[e]:r}(n,e),s=function(t,e){var n=-1/0;return t.forEach(t=>{null!=t.offset&&(n=Math.max(n,t.offset))}),n>-1/0?n:e}(t,o("offset",0)),l=o("anchor","start"),c=l===Ro?1:"middle"===l?.5:0,f={align:"each",bounds:o("bounds","flush"),columns:"vertical"===o("direction")?1:t.length,padding:o("margin",8),center:o("center"),nodirty:!0};switch(e){case No:f.anchor={x:Math.floor(r.x1)-s,column:Ro,y:c*(u||r.height()+2*r.y1),row:l};break;case Oo:f.anchor={x:Math.ceil(r.x2)+s,y:c*(u||r.height()+2*r.y1),row:l};break;case To:f.anchor={y:Math.floor(i.y1)-s,row:Ro,x:c*(a||i.width()+2*i.x1),column:l};break;case"bottom":f.anchor={y:Math.ceil(i.y2)+s,x:c*(a||i.width()+2*i.x1),column:l};break;case"top-left":f.anchor={x:s,y:s};break;case"top-right":f.anchor={x:a-s,y:s,column:Ro};break;case"bottom-left":f.anchor={x:s,y:u-s,row:Ro};break;case"bottom-right":f.anchor={x:a-s,y:u-s,column:Ro,row:Ro}}return f}function Ed(t,e){var n,r,i,a,u=e.items[0],o=u.datum,s=u.orient,l=u.bounds,c=u.x,f=u.y;return u._bounds?u._bounds.clear().union(l):u._bounds=l.clone(),l.clear(),function(t,e,n){var r=e.padding,i=r-n.x,a=r-n.y;if(e.datum.title){var u=e.items[1].items[0],o=u.anchor,s=e.titlePadding||0,l=r-u.x,c=r-u.y;switch(u.orient){case No:i+=Math.ceil(u.bounds.width())+s;break;case Oo:case"bottom":break;default:a+=u.bounds.height()+s}switch((i||a)&&Cd(t,n,i,a),u.orient){case No:c+=Dd(e,n,u,o,1,1);break;case Oo:l+=Dd(e,n,u,Ro,0,0)+s,c+=Dd(e,n,u,o,1,1);break;case"bottom":l+=Dd(e,n,u,o,0,0),c+=Dd(e,n,u,Ro,-1,0,1)+s;break;default:l+=Dd(e,n,u,o,0,0)}(l||c)&&Cd(t,u,l,c),(l=Math.round(u.bounds.x1-r))<0&&(Cd(t,n,-l,0),Cd(t,u,-l,0))}else(i||a)&&Cd(t,n,i,a)}(t,u,u.items[0].items[0]),l=function(t,e){return t.items.forEach(t=>e.union(t.bounds)),e.x1=t.padding,e.y1=t.padding,e}(u,l),n=2*u.padding,r=2*u.padding,l.empty()||(n=Math.ceil(l.width()+n),r=Math.ceil(l.height()+r)),"symbol"===o.type&&(i=u.items[0].items[0].items[0].items,a=i.reduce((function(t,e){return t[e.column]=Math.max(e.bounds.x2-e.x,t[e.column]||0),t}),{}),i.forEach((function(t){t.width=a[t.column],t.height=t.bounds.y2-t.y}))),"none"!==s&&(u.x=c=0,u.y=f=0),u.width=n,u.height=r,Zl(l.set(c,f,c+n,f+r),u),u.mark.bounds.clear().union(l),u}function Dd(t,e,n,r,i,a,u){const o="symbol"!==t.datum.type,s=n.datum.vgrad,l=(!o||!a&&s||u?e:e.items[0]).bounds[i?"y2":"x2"]-t.padding,c=s&&a?l:0,f=s&&a?0:l,h=i<=0?0:kf(n);return Math.round("start"===r?c:r===Ro?f-h:.5*(l-h))}function Cd(t,e,n,r){e.x+=n,e.y+=r,e.bounds.translate(n,r),e.mark.bounds.translate(n,r),t.dirty(e)}function Fd(t){Hr.call(this,null,t)}rt(Fd,Hr).transform=function(t,e){var n=e.dataflow;return t.mark.items.forEach((function(e){t.layout&&function(t,e,n){var r,i,a,u,o,s,l,c=function(t){for(var e,n,r=t.items,i=r.length,a=0,u={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};a<i;++a)if(n=(e=r[a]).items,"group"===e.marktype)switch(e.role){case"axis":case"legend":case"title":break;case"row-header":u.rowheaders.push(...n);break;case"row-footer":u.rowfooters.push(...n);break;case"column-header":u.colheaders.push(...n);break;case"column-footer":u.colfooters.push(...n);break;case"row-title":u.rowtitle=n[0];break;case"column-title":u.coltitle=n[0];break;default:u.marks.push(...n)}return u}(e),f=c.marks,h="flush"===n.bounds?_d:xd,d=n.offset,p=n.columns||f.length,g=p<0?1:Math.ceil(f.length/p),m=g*p;const v=yd(t,f,n);c.rowheaders&&(s=md(n.headerBand,qo,null),r=Ad(t,c.rowheaders,f,p,g,-md(d,"rowHeader"),bd,0,h,"x1",0,p,1,s)),c.colheaders&&(s=md(n.headerBand,"column",null),i=Ad(t,c.colheaders,f,p,p,-md(d,"columnHeader"),bd,1,h,"y1",0,1,p,s)),c.rowfooters&&(s=md(n.footerBand,qo,null),a=Ad(t,c.rowfooters,f,p,g,md(d,"rowFooter"),wd,0,h,"x2",p-1,p,1,s)),c.colfooters&&(s=md(n.footerBand,"column",null),u=Ad(t,c.colfooters,f,p,p,md(d,"columnFooter"),wd,1,h,"y2",m-p,1,p,s)),c.rowtitle&&(o=md(n.titleAnchor,qo),l=md(d,"rowTitle"),l=o===Ro?a+l:r-l,s=md(n.titleBand,qo,.5),kd(t,c.rowtitle,l,0,v,s)),c.coltitle&&(o=md(n.titleAnchor,"column"),l=md(d,"columnTitle"),l=o===Ro?u+l:i-l,s=md(n.titleBand,"column",.5),kd(t,c.coltitle,l,1,v,s))}(n,e,t.layout),function(t,e,n){var r,i,a,u,o,s=e.items,l=Math.max(0,e.width||0),c=Math.max(0,e.height||0),f=(new Uo).set(0,0,l,c),h=f.clone(),d=f.clone(),p=[];for(u=0,o=s.length;u<o;++u)switch((i=s[u]).role){case"axis":(fd(i)?h:d).union(hd(t,i,l,c));break;case"title":r=i;break;case"legend":p.push(Ed(t,i));break;case"frame":case"scope":case"row-header":case"row-footer":case"row-title":case"column-header":case"column-footer":case"column-title":h.union(i.bounds),d.union(i.bounds);break;default:f.union(i.bounds)}if(p.length){const e={};p.forEach(t=>{"none"!==(a=t.orient||Oo)&&(e[a]||(e[a]=[])).push(t)});for(let r in e){const i=e[r];yd(t,i,Md(i,r,n.legends,h,d,l,c))}p.forEach(e=>{const r=e.bounds;if(r.equals(e._bounds)||(e.bounds=e._bounds,t.dirty(e),e.bounds=r,t.dirty(e)),n.autosize&&"fit"===n.autosize.type)switch(e.orient){case No:case Oo:f.add(r.x1,0).add(r.x2,0);break;case To:case"bottom":f.add(0,r.y1).add(0,r.y2)}else f.union(r)})}f.union(h).union(d),r&&f.union(function(t,e,n,r,i){var a,u=e.items[0],o=u.frame,s=u.orient,l=u.anchor,c=u.offset,f=u.padding,h=u.items[0].items[0],d=u.items[1]&&u.items[1].items[0],p=s===No||s===Oo?r:n,g=0,m=0,v=0,y=0,_=0;if("group"!==o?s===No?(g=i.y2,p=i.y1):s===Oo?(g=i.y1,p=i.y2):(g=i.x1,p=i.x2):s===No&&(g=r,p=0),a="start"===l?g:l===Ro?p:(g+p)/2,d&&d.text){switch(s){case To:case"bottom":_=h.bounds.height()+f;break;case No:y=h.bounds.width()+f;break;case Oo:y=-h.bounds.width()-f}ld.clear().union(d.bounds),ld.translate(y-(d.x||0),_-(d.y||0)),cd(d,"x",y)|cd(d,"y",_)&&(t.dirty(d),d.bounds.clear().union(ld),d.mark.bounds.clear().union(ld),t.dirty(d)),ld.clear().union(d.bounds)}else ld.clear();switch(ld.union(h.bounds),s){case To:m=a,v=i.y1-ld.height()-c;break;case No:m=i.x1-ld.width()-c,v=a;break;case Oo:m=i.x2+ld.width()+c,v=a;break;case"bottom":m=a,v=i.y2+c;break;default:m=u.x,v=u.y}return cd(u,"x",m)|cd(u,"y",v)&&(ld.translate(m,v),t.dirty(u),u.bounds.clear().union(ld),e.bounds.clear().union(ld),t.dirty(u)),u.bounds}(t,r,l,c,f));e.clip&&f.set(0,0,e.width||0,e.height||0);!function(t,e,n,r){const i=r.autosize||{},a=i.type;if(t._autosize<1||!a)return;let u=t._width,o=t._height,s=Math.max(0,e.width||0),l=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,Math.ceil(n.x2-s)),f=Math.max(0,e.height||0),h=Math.max(0,Math.ceil(-n.y1)),d=Math.max(0,Math.ceil(n.y2-f));if("padding"===i.contains){const e=t.padding();u-=e.left+e.right,o-=e.top+e.bottom}"none"===a?(l=0,h=0,s=u,f=o):"fit"===a?(s=Math.max(0,u-l-c),f=Math.max(0,o-h-d)):"fit-x"===a?(s=Math.max(0,u-l-c),o=f+h+d):"fit-y"===a?(u=s+l+c,f=Math.max(0,o-h-d)):"pad"===a&&(u=s+l+c,o=f+h+d);t._resizeView(u,o,s,f,[l,h],i.resize)}(t,e,f,n)}(n,e,t)})),t.modified()&&e.reflow(),e};var Sd=Object.freeze({__proto__:null,bound:Jh,identifier:Qh,mark:Kh,overlap:td,render:sd,viewlayout:Fd});function Bd(t,e,n){var r=t-e+2*n;return t?r>0?r:1:0}const zd="log",Td="utc",Nd="continuous";function Od(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function Rd(t,e){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof e?this.interpolator(e):this.range(e)}return this}const qd=Symbol("implicit");function Ud(){var t=new Map,e=[],n=[],r=qd;function i(i){var a=i+"",u=t.get(a);if(!u){if(r!==qd)return r;t.set(a,u=e.push(i))}return n[(u-1)%n.length]}return i.domain=function(n){if(!arguments.length)return e.slice();e=[],t=new Map;for(const r of n){const n=r+"";t.has(n)||t.set(n,e.push(r))}return i},i.range=function(t){return arguments.length?(n=Array.from(t),i):n.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return Ud(e,n).unknown(r)},Od.apply(i,arguments),i}function Ld(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Pd(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function $d(){}var jd="\\s*([+-]?\\d+)\\s*",Id="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Hd="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Wd=/^#([0-9a-f]{3,8})$/,Yd=new RegExp("^rgb\\("+[jd,jd,jd]+"\\)$"),Vd=new RegExp("^rgb\\("+[Hd,Hd,Hd]+"\\)$"),Gd=new RegExp("^rgba\\("+[jd,jd,jd,Id]+"\\)$"),Xd=new RegExp("^rgba\\("+[Hd,Hd,Hd,Id]+"\\)$"),Jd=new RegExp("^hsl\\("+[Id,Hd,Hd]+"\\)$"),Zd=new RegExp("^hsla\\("+[Id,Hd,Hd,Id]+"\\)$"),Qd={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Kd(){return this.rgb().formatHex()}function tp(){return this.rgb().formatRgb()}function ep(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Wd.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?np(e):3===n?new up(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?new up(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?new up(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Yd.exec(t))?new up(e[1],e[2],e[3],1):(e=Vd.exec(t))?new up(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Gd.exec(t))?rp(e[1],e[2],e[3],e[4]):(e=Xd.exec(t))?rp(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Jd.exec(t))?cp(e[1],e[2]/100,e[3]/100,1):(e=Zd.exec(t))?cp(e[1],e[2]/100,e[3]/100,e[4]):Qd.hasOwnProperty(t)?np(Qd[t]):"transparent"===t?new up(NaN,NaN,NaN,0):null}function np(t){return new up(t>>16&255,t>>8&255,255&t,1)}function rp(t,e,n,r){return r<=0&&(t=e=n=NaN),new up(t,e,n,r)}function ip(t){return t instanceof $d||(t=ep(t)),t?new up((t=t.rgb()).r,t.g,t.b,t.opacity):new up}function ap(t,e,n,r){return 1===arguments.length?ip(t):new up(t,e,n,null==r?1:r)}function up(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function op(){return"#"+lp(this.r)+lp(this.g)+lp(this.b)}function sp(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function lp(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function cp(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new dp(t,e,n,r)}function fp(t){if(t instanceof dp)return new dp(t.h,t.s,t.l,t.opacity);if(t instanceof $d||(t=ep(t)),!t)return new dp;if(t instanceof dp)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),a=Math.max(e,n,r),u=NaN,o=a-i,s=(a+i)/2;return o?(u=e===a?(n-r)/o+6*(n<r):n===a?(r-e)/o+2:(e-n)/o+4,o/=s<.5?a+i:2-a-i,u*=60):o=s>0&&s<1?0:u,new dp(u,o,s,t.opacity)}function hp(t,e,n,r){return 1===arguments.length?fp(t):new dp(t,e,n,null==r?1:r)}function dp(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function pp(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}Ld($d,ep,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Kd,formatHex:Kd,formatHsl:function(){return fp(this).formatHsl()},formatRgb:tp,toString:tp}),Ld(up,ap,Pd($d,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new up(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new up(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:op,formatHex:op,formatRgb:sp,toString:sp})),Ld(dp,hp,Pd($d,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new dp(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new dp(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new up(pp(t>=240?t-240:t+120,i,r),pp(t,i,r),pp(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var gp=Math.PI/180,mp=180/Math.PI,vp=6/29*3*(6/29);function yp(t){if(t instanceof xp)return new xp(t.l,t.a,t.b,t.opacity);if(t instanceof Dp)return Cp(t);t instanceof up||(t=ip(t));var e,n,r=kp(t.r),i=kp(t.g),a=kp(t.b),u=bp((.2225045*r+.7168786*i+.0606169*a)/1);return r===i&&i===a?e=n=u:(e=bp((.4360747*r+.3850649*i+.1430804*a)/.96422),n=bp((.0139322*r+.0971045*i+.7141733*a)/.82521)),new xp(116*u-16,500*(e-u),200*(u-n),t.opacity)}function _p(t,e,n,r){return 1===arguments.length?yp(t):new xp(t,e,n,null==r?1:r)}function xp(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}function bp(t){return t>6/29*(6/29)*(6/29)?Math.pow(t,1/3):t/vp+4/29}function wp(t){return t>6/29?t*t*t:vp*(t-4/29)}function Ap(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function kp(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Mp(t){if(t instanceof Dp)return new Dp(t.h,t.c,t.l,t.opacity);if(t instanceof xp||(t=yp(t)),0===t.a&&0===t.b)return new Dp(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*mp;return new Dp(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Ep(t,e,n,r){return 1===arguments.length?Mp(t):new Dp(t,e,n,null==r?1:r)}function Dp(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function Cp(t){if(isNaN(t.h))return new xp(t.l,0,0,t.opacity);var e=t.h*gp;return new xp(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}Ld(xp,_p,Pd($d,{brighter:function(t){return new xp(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new xp(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return new up(Ap(3.1338561*(e=.96422*wp(e))-1.6168667*(t=1*wp(t))-.4906146*(n=.82521*wp(n))),Ap(-.9787684*e+1.9161415*t+.033454*n),Ap(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}})),Ld(Dp,Ep,Pd($d,{brighter:function(t){return new Dp(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new Dp(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return Cp(this).rgb()}}));var Fp=-.14861,Sp=1.78277,Bp=-.90649,zp=1.97294,Tp=zp*Bp,Np=zp*Sp,Op=-.29227*Sp-Bp*Fp;function Rp(t){if(t instanceof Up)return new Up(t.h,t.s,t.l,t.opacity);t instanceof up||(t=ip(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(Op*r+Tp*e-Np*n)/(Op+Tp-Np),a=r-i,u=(zp*(n-i)- -.29227*a)/Bp,o=Math.sqrt(u*u+a*a)/(zp*i*(1-i)),s=o?Math.atan2(u,a)*mp-120:NaN;return new Up(s<0?s+360:s,o,i,t.opacity)}function qp(t,e,n,r){return 1===arguments.length?Rp(t):new Up(t,e,n,null==r?1:r)}function Up(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function Lp(t,e,n,r,i){var a=t*t,u=a*t;return((1-3*t+3*a-u)*e+(4-6*a+3*u)*n+(1+3*t+3*a-3*u)*r+u*i)/6}function Pp(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],a=t[r+1],u=r>0?t[r-1]:2*i-a,o=r<e-1?t[r+2]:2*a-i;return Lp((n-r/e)*e,u,i,a,o)}}function $p(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],a=t[r%e],u=t[(r+1)%e],o=t[(r+2)%e];return Lp((n-r/e)*e,i,a,u,o)}}function jp(t){return function(){return t}}function Ip(t,e){return function(n){return t+n*e}}function Hp(t,e){var n=e-t;return n?Ip(t,n>180||n<-180?n-360*Math.round(n/360):n):jp(isNaN(t)?e:t)}function Wp(t){return 1==(t=+t)?Yp:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):jp(isNaN(e)?n:e)}}function Yp(t,e){var n=e-t;return n?Ip(t,n):jp(isNaN(t)?e:t)}Ld(Up,qp,Pd($d,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Up(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Up(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*gp,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new up(255*(e+n*(Fp*r+Sp*i)),255*(e+n*(-.29227*r+Bp*i)),255*(e+n*(zp*r)),this.opacity)}}));var Vp=function t(e){var n=Wp(e);function r(t,e){var r=n((t=ap(t)).r,(e=ap(e)).r),i=n(t.g,e.g),a=n(t.b,e.b),u=Yp(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=i(e),t.b=a(e),t.opacity=u(e),t+""}}return r.gamma=t,r}(1);function Gp(t){return function(e){var n,r,i=e.length,a=new Array(i),u=new Array(i),o=new Array(i);for(n=0;n<i;++n)r=ap(e[n]),a[n]=r.r||0,u[n]=r.g||0,o[n]=r.b||0;return a=t(a),u=t(u),o=t(o),r.opacity=1,function(t){return r.r=a(t),r.g=u(t),r.b=o(t),r+""}}}var Xp=Gp(Pp),Jp=Gp($p);function Zp(t,e){e||(e=[]);var n,r=t?Math.min(e.length,t.length):0,i=e.slice();return function(a){for(n=0;n<r;++n)i[n]=t[n]*(1-a)+e[n]*a;return i}}function Qp(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Kp(t,e){var n,r=e?e.length:0,i=t?Math.min(r,t.length):0,a=new Array(i),u=new Array(r);for(n=0;n<i;++n)a[n]=ug(t[n],e[n]);for(;n<r;++n)u[n]=e[n];return function(t){for(n=0;n<i;++n)u[n]=a[n](t);return u}}function tg(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function eg(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function ng(t,e){var n,r={},i={};for(n in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)n in t?r[n]=ug(t[n],e[n]):i[n]=e[n];return function(t){for(n in r)i[n]=r[n](t);return i}}var rg=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ig=new RegExp(rg.source,"g");function ag(t,e){var n,r,i,a=rg.lastIndex=ig.lastIndex=0,u=-1,o=[],s=[];for(t+="",e+="";(n=rg.exec(t))&&(r=ig.exec(e));)(i=r.index)>a&&(i=e.slice(a,i),o[u]?o[u]+=i:o[++u]=i),(n=n[0])===(r=r[0])?o[u]?o[u]+=r:o[++u]=r:(o[++u]=null,s.push({i:u,x:eg(n,r)})),a=ig.lastIndex;return a<e.length&&(i=e.slice(a),o[u]?o[u]+=i:o[++u]=i),o.length<2?s[0]?function(t){return function(e){return t(e)+""}}(s[0].x):function(t){return function(){return t}}(e):(e=s.length,function(t){for(var n,r=0;r<e;++r)o[(n=s[r]).i]=n.x(t);return o.join("")})}function ug(t,e){var n,r=typeof e;return null==e||"boolean"===r?jp(e):("number"===r?eg:"string"===r?(n=ep(e))?(e=n,Vp):ag:e instanceof ep?Vp:e instanceof Date?tg:Qp(e)?Zp:Array.isArray(e)?Kp:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?ng:eg)(t,e)}function og(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var sg,lg,cg,fg,hg=180/Math.PI,dg={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function pg(t,e,n,r,i,a){var u,o,s;return(u=Math.sqrt(t*t+e*e))&&(t/=u,e/=u),(s=t*n+e*r)&&(n-=t*s,r-=e*s),(o=Math.sqrt(n*n+r*r))&&(n/=o,r/=o,s/=o),t*r<e*n&&(t=-t,e=-e,s=-s,u=-u),{translateX:i,translateY:a,rotate:Math.atan2(e,t)*hg,skewX:Math.atan(s)*hg,scaleX:u,scaleY:o}}function gg(t,e,n,r){function i(t){return t.length?t.pop()+" ":""}return function(a,u){var o=[],s=[];return a=t(a),u=t(u),function(t,r,i,a,u,o){if(t!==i||r!==a){var s=u.push("translate(",null,e,null,n);o.push({i:s-4,x:eg(t,i)},{i:s-2,x:eg(r,a)})}else(i||a)&&u.push("translate("+i+e+a+n)}(a.translateX,a.translateY,u.translateX,u.translateY,o,s),function(t,e,n,a){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),a.push({i:n.push(i(n)+"rotate(",null,r)-2,x:eg(t,e)})):e&&n.push(i(n)+"rotate("+e+r)}(a.rotate,u.rotate,o,s),function(t,e,n,a){t!==e?a.push({i:n.push(i(n)+"skewX(",null,r)-2,x:eg(t,e)}):e&&n.push(i(n)+"skewX("+e+r)}(a.skewX,u.skewX,o,s),function(t,e,n,r,a,u){if(t!==n||e!==r){var o=a.push(i(a)+"scale(",null,",",null,")");u.push({i:o-4,x:eg(t,n)},{i:o-2,x:eg(e,r)})}else 1===n&&1===r||a.push(i(a)+"scale("+n+","+r+")")}(a.scaleX,a.scaleY,u.scaleX,u.scaleY,o,s),a=u=null,function(t){for(var e,n=-1,r=s.length;++n<r;)o[(e=s[n]).i]=e.x(t);return o.join("")}}}var mg=gg((function(t){return"none"===t?dg:(sg||(sg=document.createElement("DIV"),lg=document.documentElement,cg=document.defaultView),sg.style.transform=t,t=cg.getComputedStyle(lg.appendChild(sg),null).getPropertyValue("transform"),lg.removeChild(sg),pg(+(t=t.slice(7,-1).split(","))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}),"px, ","px)","deg)"),vg=gg((function(t){return null==t?dg:(fg||(fg=document.createElementNS("http://www.w3.org/2000/svg","g")),fg.setAttribute("transform",t),(t=fg.transform.baseVal.consolidate())?pg((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):dg)}),", ",")",")"),yg=Math.SQRT2;function _g(t){return((t=Math.exp(t))+1/t)/2}function xg(t){return function(e,n){var r=t((e=hp(e)).h,(n=hp(n)).h),i=Yp(e.s,n.s),a=Yp(e.l,n.l),u=Yp(e.opacity,n.opacity);return function(t){return e.h=r(t),e.s=i(t),e.l=a(t),e.opacity=u(t),e+""}}}var bg=xg(Hp),wg=xg(Yp);function Ag(t){return function(e,n){var r=t((e=Ep(e)).h,(n=Ep(n)).h),i=Yp(e.c,n.c),a=Yp(e.l,n.l),u=Yp(e.opacity,n.opacity);return function(t){return e.h=r(t),e.c=i(t),e.l=a(t),e.opacity=u(t),e+""}}}var kg=Ag(Hp),Mg=Ag(Yp);function Eg(t){return function e(n){function r(e,r){var i=t((e=qp(e)).h,(r=qp(r)).h),a=Yp(e.s,r.s),u=Yp(e.l,r.l),o=Yp(e.opacity,r.opacity);return function(t){return e.h=i(t),e.s=a(t),e.l=u(Math.pow(t,n)),e.opacity=o(t),e+""}}return n=+n,r.gamma=e,r}(1)}var Dg=Eg(Hp),Cg=Eg(Yp);function Fg(t,e){for(var n=0,r=e.length-1,i=e[0],a=new Array(r<0?0:r);n<r;)a[n]=t(i,i=e[++n]);return function(t){var e=Math.max(0,Math.min(r-1,Math.floor(t*=r)));return a[e](t-e)}}var Sg=Object.freeze({__proto__:null,interpolate:ug,interpolateArray:function(t,e){return(Qp(e)?Zp:Kp)(t,e)},interpolateBasis:Pp,interpolateBasisClosed:$p,interpolateDate:tg,interpolateDiscrete:function(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}},interpolateHue:function(t,e){var n=Hp(+t,+e);return function(t){var e=n(t);return e-360*Math.floor(e/360)}},interpolateNumber:eg,interpolateNumberArray:Zp,interpolateObject:ng,interpolateRound:og,interpolateString:ag,interpolateTransformCss:mg,interpolateTransformSvg:vg,interpolateZoom:function(t,e){var n,r,i=t[0],a=t[1],u=t[2],o=e[0],s=e[1],l=e[2],c=o-i,f=s-a,h=c*c+f*f;if(h<1e-12)r=Math.log(l/u)/yg,n=function(t){return[i+t*c,a+t*f,u*Math.exp(yg*t*r)]};else{var d=Math.sqrt(h),p=(l*l-u*u+4*h)/(2*u*2*d),g=(l*l-u*u-4*h)/(2*l*2*d),m=Math.log(Math.sqrt(p*p+1)-p),v=Math.log(Math.sqrt(g*g+1)-g);r=(v-m)/yg,n=function(t){var e=t*r,n=_g(m),o=u/(2*d)*(n*function(t){return((t=Math.exp(2*t))-1)/(t+1)}(yg*e+m)-function(t){return((t=Math.exp(t))-1/t)/2}(m));return[i+o*c,a+o*f,u*n/_g(yg*e+m)]}}return n.duration=1e3*r,n},interpolateRgb:Vp,interpolateRgbBasis:Xp,interpolateRgbBasisClosed:Jp,interpolateHsl:bg,interpolateHslLong:wg,interpolateLab:function(t,e){var n=Yp((t=_p(t)).l,(e=_p(e)).l),r=Yp(t.a,e.a),i=Yp(t.b,e.b),a=Yp(t.opacity,e.opacity);return function(e){return t.l=n(e),t.a=r(e),t.b=i(e),t.opacity=a(e),t+""}},interpolateHcl:kg,interpolateHclLong:Mg,interpolateCubehelix:Dg,interpolateCubehelixLong:Cg,piecewise:Fg,quantize:function(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}});function Bg(t){return+t}var zg=[0,1];function Tg(t){return t}function Ng(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:function(t){return function(){return t}}(isNaN(e)?NaN:.5)}function Og(t,e,n){var r=t[0],i=t[1],a=e[0],u=e[1];return i<r?(r=Ng(i,r),a=n(u,a)):(r=Ng(r,i),a=n(a,u)),function(t){return a(r(t))}}function Rg(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),a=new Array(r),u=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++u<r;)i[u]=Ng(t[u],t[u+1]),a[u]=n(e[u],e[u+1]);return function(e){var n=oi(t,e,1,r)-1;return a[n](i[n](e))}}function qg(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Ug(){var t,e,n,r,i,a,u=zg,o=zg,s=ug,l=Tg;function c(){var t=Math.min(u.length,o.length);return l!==Tg&&(l=function(t,e){var n;return t>e&&(n=t,t=e,e=n),function(n){return Math.max(t,Math.min(e,n))}}(u[0],u[t-1])),r=t>2?Rg:Og,i=a=null,f}function f(e){return isNaN(e=+e)?n:(i||(i=r(u.map(t),o,s)))(t(l(e)))}return f.invert=function(n){return l(e((a||(a=r(o,u.map(t),eg)))(n)))},f.domain=function(t){return arguments.length?(u=Array.from(t,Bg),c()):u.slice()},f.range=function(t){return arguments.length?(o=Array.from(t),c()):o.slice()},f.rangeRound=function(t){return o=Array.from(t),s=og,c()},f.clamp=function(t){return arguments.length?(l=!!t||Tg,c()):l!==Tg},f.interpolate=function(t){return arguments.length?(s=t,c()):s},f.unknown=function(t){return arguments.length?(n=t,f):n},function(n,r){return t=n,e=r,c()}}function Lg(){return Ug()(Tg,Tg)}function Pg(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function $g(t){return(t=Pg(Math.abs(t)))?t[1]:NaN}var jg,Ig=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Hg(t){if(!(e=Ig.exec(t)))throw new Error("invalid format: "+t);var e;return new Wg({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function Wg(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Yg(t,e){var n=Pg(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}Hg.prototype=Wg.prototype,Wg.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Vg={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return Yg(100*t,e)},r:Yg,s:function(t,e){var n=Pg(t,e);if(!n)return t+"";var r=n[0],i=n[1],a=i-(jg=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=r.length;return a===u?r:a>u?r+new Array(a-u+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Pg(t,Math.max(0,e+a-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function Gg(t){return t}var Xg,Jg,Zg,Qg=Array.prototype.map,Kg=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function tm(t){var e,n,r=void 0===t.grouping||void 0===t.thousands?Gg:(e=Qg.call(t.grouping,Number),n=t.thousands+"",function(t,r){for(var i=t.length,a=[],u=0,o=e[0],s=0;i>0&&o>0&&(s+o+1>r&&(o=Math.max(1,r-s)),a.push(t.substring(i-=o,i+o)),!((s+=o+1)>r));)o=e[u=(u+1)%e.length];return a.reverse().join(n)}),i=void 0===t.currency?"":t.currency[0]+"",a=void 0===t.currency?"":t.currency[1]+"",u=void 0===t.decimal?".":t.decimal+"",o=void 0===t.numerals?Gg:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(Qg.call(t.numerals,String)),s=void 0===t.percent?"%":t.percent+"",l=void 0===t.minus?"-":t.minus+"",c=void 0===t.nan?"NaN":t.nan+"";function f(t){var e=(t=Hg(t)).fill,n=t.align,f=t.sign,h=t.symbol,d=t.zero,p=t.width,g=t.comma,m=t.precision,v=t.trim,y=t.type;"n"===y?(g=!0,y="g"):Vg[y]||(void 0===m&&(m=12),v=!0,y="g"),(d||"0"===e&&"="===n)&&(d=!0,e="0",n="=");var _="$"===h?i:"#"===h&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",x="$"===h?a:/[%p]/.test(y)?s:"",b=Vg[y],w=/[defgprs%]/.test(y);function A(t){var i,a,s,h=_,A=x;if("c"===y)A=b(t)+A,t="";else{var k=(t=+t)<0;if(t=isNaN(t)?c:b(Math.abs(t),m),v&&(t=function(t){t:for(var e,n=t.length,r=1,i=-1;r<n;++r)switch(t[r]){case".":i=e=r;break;case"0":0===i&&(i=r),e=r;break;default:if(!+t[r])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(e+1):t}(t)),k&&0==+t&&(k=!1),h=(k?"("===f?f:l:"-"===f||"("===f?"":f)+h,A=("s"===y?Kg[8+jg/3]:"")+A+(k&&"("===f?")":""),w)for(i=-1,a=t.length;++i<a;)if(48>(s=t.charCodeAt(i))||s>57){A=(46===s?u+t.slice(i+1):t.slice(i))+A,t=t.slice(0,i);break}}g&&!d&&(t=r(t,1/0));var M=h.length+t.length+A.length,E=M<p?new Array(p-M+1).join(e):"";switch(g&&d&&(t=r(E+t,E.length?p-A.length:1/0),E=""),n){case"<":t=h+t+A+E;break;case"=":t=h+E+t+A;break;case"^":t=E.slice(0,M=E.length>>1)+h+t+A+E.slice(M);break;default:t=E+h+t+A}return o(t)}return m=void 0===m?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),A.toString=function(){return t+""},A}return{format:f,formatPrefix:function(t,e){var n=f(((t=Hg(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor($g(e)/3))),i=Math.pow(10,-r),a=Kg[8+r/3];return function(t){return n(i*t)+a}}}}function em(t){return Xg=tm(t),Jg=Xg.format,Zg=Xg.formatPrefix,Xg}function nm(t,e,n,r){var i,a=gi(t,e,n);switch((r=Hg(null==r?",f":r)).type){case"s":var u=Math.max(Math.abs(t),Math.abs(e));return null!=r.precision||isNaN(i=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor($g(e)/3)))-$g(Math.abs(t)))}(a,u))||(r.precision=i),Zg(r,u);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,$g(e)-$g(t))+1}(a,Math.max(Math.abs(t),Math.abs(e))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=function(t){return Math.max(0,-$g(Math.abs(t)))}(a))||(r.precision=i-2*("%"===r.type))}return Jg(r)}function rm(t){var e=t.domain;return t.ticks=function(t){var n=e();return di(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var r=e();return nm(r[0],r[r.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var r,i=e(),a=0,u=i.length-1,o=i[a],s=i[u];return s<o&&(r=o,o=s,s=r,r=a,a=u,u=r),(r=pi(o,s,n))>0?r=pi(o=Math.floor(o/r)*r,s=Math.ceil(s/r)*r,n):r<0&&(r=pi(o=Math.ceil(o*r)/r,s=Math.floor(s*r)/r,n)),r>0?(i[a]=Math.floor(o/r)*r,i[u]=Math.ceil(s/r)*r,e(i)):r<0&&(i[a]=Math.ceil(o*r)/r,i[u]=Math.floor(s*r)/r,e(i)),t},t}function im(t,e){var n,r=0,i=(t=t.slice()).length-1,a=t[r],u=t[i];return u<a&&(n=r,r=i,i=n,n=a,a=u,u=n),t[r]=e.floor(a),t[i]=e.ceil(u),t}function am(t){return Math.log(t)}function um(t){return Math.exp(t)}function om(t){return-Math.log(-t)}function sm(t){return-Math.exp(-t)}function lm(t){return isFinite(t)?+("1e"+t):t<0?0:t}function cm(t){return function(e){return-t(-e)}}function fm(t){var e,n,r=t(am,um),i=r.domain,a=10;function u(){return e=function(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(e){return Math.log(e)/t})}(a),n=function(t){return 10===t?lm:t===Math.E?Math.exp:function(e){return Math.pow(t,e)}}(a),i()[0]<0?(e=cm(e),n=cm(n),t(om,sm)):t(am,um),r}return r.base=function(t){return arguments.length?(a=+t,u()):a},r.domain=function(t){return arguments.length?(i(t),u()):i()},r.ticks=function(t){var r,u=i(),o=u[0],s=u[u.length-1];(r=s<o)&&(h=o,o=s,s=h);var l,c,f,h=e(o),d=e(s),p=null==t?10:+t,g=[];if(!(a%1)&&d-h<p){if(h=Math.floor(h),d=Math.ceil(d),o>0){for(;h<=d;++h)for(c=1,l=n(h);c<a;++c)if(!((f=l*c)<o)){if(f>s)break;g.push(f)}}else for(;h<=d;++h)for(c=a-1,l=n(h);c>=1;--c)if(!((f=l*c)<o)){if(f>s)break;g.push(f)}2*g.length<p&&(g=di(o,s,p))}else g=di(h,d,Math.min(d-h,p)).map(n);return r?g.reverse():g},r.tickFormat=function(t,i){if(null==i&&(i=10===a?".0e":","),"function"!=typeof i&&(i=Jg(i)),t===1/0)return i;null==t&&(t=10);var u=Math.max(1,a*t/r.ticks().length);return function(t){var r=t/n(Math.round(e(t)));return r*a<a-.5&&(r*=a),r<=u?i(t):""}},r.nice=function(){return i(im(i(),{floor:function(t){return n(Math.floor(e(t)))},ceil:function(t){return n(Math.ceil(e(t)))}}))},r}function hm(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function dm(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function pm(t){var e=1,n=t(hm(e),dm(e));return n.constant=function(n){return arguments.length?t(hm(e=+n),dm(e)):e},rm(n)}function gm(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function mm(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function vm(t){return t<0?-t*t:t*t}function ym(t){var e=t(Tg,Tg),n=1;function r(){return 1===n?t(Tg,Tg):.5===n?t(mm,vm):t(gm(n),gm(1/n))}return e.exponent=function(t){return arguments.length?(n=+t,r()):n},rm(e)}function _m(){var t=ym(Ug());return t.copy=function(){return qg(t,_m()).exponent(t.exponent())},Od.apply(t,arguments),t}em({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function xm(t){return new Date(t)}function bm(t){return t instanceof Date?+t:+new Date(+t)}function wm(t,e,n,r,i,a,u,o,s){var l=Lg(),c=l.invert,f=l.domain,h=s(".%L"),d=s(":%S"),p=s("%I:%M"),g=s("%I %p"),m=s("%a %d"),v=s("%b %d"),y=s("%B"),_=s("%Y"),x=[[u,1,1e3],[u,5,5e3],[u,15,15e3],[u,30,3e4],[a,1,6e4],[a,5,3e5],[a,15,9e5],[a,30,18e5],[i,1,36e5],[i,3,108e5],[i,6,216e5],[i,12,432e5],[r,1,864e5],[r,2,1728e5],[n,1,6048e5],[e,1,2592e6],[e,3,7776e6],[t,1,31536e6]];function b(o){return(u(o)<o?h:a(o)<o?d:i(o)<o?p:r(o)<o?g:e(o)<o?n(o)<o?m:v:t(o)<o?y:_)(o)}function w(e,n,r){if(null==e&&(e=10),"number"==typeof e){var i,a=Math.abs(r-n)/e,u=ai((function(t){return t[2]})).right(x,a);return u===x.length?(i=gi(n/31536e6,r/31536e6,e),e=t):u?(i=(u=x[a/x[u-1][2]<x[u][2]/a?u-1:u])[1],e=u[0]):(i=Math.max(gi(n,r,e),1),e=o),e.every(i)}return e}return l.invert=function(t){return new Date(c(t))},l.domain=function(t){return arguments.length?f(Array.from(t,bm)):f().map(xm)},l.ticks=function(t){var e,n=f(),r=n[0],i=n[n.length-1],a=i<r;return a&&(e=r,r=i,i=e),e=(e=w(t,r,i))?e.range(r,i+1):[],a?e.reverse():e},l.tickFormat=function(t,e){return null==e?b:s(e)},l.nice=function(t){var e=f();return(t=w(t,e[0],e[e.length-1]))?f(im(e,t)):l},l.copy=function(){return qg(l,wm(t,e,n,r,i,a,u,o,s))},l}function Am(){var t,e,n,r,i,a=0,u=1,o=Tg,s=!1;function l(e){return isNaN(e=+e)?i:o(0===n?.5:(e=(r(e)-t)*n,s?Math.max(0,Math.min(1,e)):e))}function c(t){return function(e){var n,r;return arguments.length?([n,r]=e,o=t(n,r),l):[o(0),o(1)]}}return l.domain=function(i){return arguments.length?([a,u]=i,t=r(a=+a),e=r(u=+u),n=t===e?0:1/(e-t),l):[a,u]},l.clamp=function(t){return arguments.length?(s=!!t,l):s},l.interpolator=function(t){return arguments.length?(o=t,l):o},l.range=c(ug),l.rangeRound=c(og),l.unknown=function(t){return arguments.length?(i=t,l):i},function(i){return r=i,t=i(a),e=i(u),n=t===e?0:1/(e-t),l}}function km(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function Mm(){var t=rm(Am()(Tg));return t.copy=function(){return km(t,Mm())},Rd.apply(t,arguments)}function Em(){var t=ym(Am());return t.copy=function(){return km(t,Em()).exponent(t.exponent())},Rd.apply(t,arguments)}function Dm(){var t,e,n,r,i,a,u,o=0,s=.5,l=1,c=1,f=Tg,h=!1;function d(t){return isNaN(t=+t)?u:(t=.5+((t=+a(t))-e)*(c*t<c*e?r:i),f(h?Math.max(0,Math.min(1,t)):t))}function p(t){return function(e){var n,r,i;return arguments.length?([n,r,i]=e,f=Fg(t,[n,r,i]),d):[f(0),f(.5),f(1)]}}return d.domain=function(u){return arguments.length?([o,s,l]=u,t=a(o=+o),e=a(s=+s),n=a(l=+l),r=t===e?0:.5/(e-t),i=e===n?0:.5/(n-e),c=e<t?-1:1,d):[o,s,l]},d.clamp=function(t){return arguments.length?(h=!!t,d):h},d.interpolator=function(t){return arguments.length?(f=t,d):f},d.range=p(ug),d.rangeRound=p(og),d.unknown=function(t){return arguments.length?(u=t,d):u},function(u){return a=u,t=u(o),e=u(s),n=u(l),r=t===e?0:.5/(e-t),i=e===n?0:.5/(n-e),c=e<t?-1:1,d}}function Cm(){var t=ym(Dm());return t.copy=function(){return km(t,Cm()).exponent(t.exponent())},Rd.apply(t,arguments)}function Fm(){var t,e,n=Ud().unknown(void 0),r=n.domain,i=n.range,a=[0,1],u=!1,o=0,s=0,l=.5;function c(){var n=r().length,c=a[1]<a[0],f=a[c-0],h=a[1-c],d=Bd(n,o,s);t=(h-f)/(d||1),u&&(t=Math.floor(t)),f+=(h-f-t*(n-o))*l,e=t*(1-o),u&&(f=Math.round(f),e=Math.round(e));var p=li(n).map((function(e){return f+t*e}));return i(c?p.reverse():p)}return delete n.unknown,n.domain=function(t){return arguments.length?(r(t),c()):r()},n.range=function(t){return arguments.length?(a=[+t[0],+t[1]],c()):a.slice()},n.rangeRound=function(t){return a=[+t[0],+t[1]],u=!0,c()},n.bandwidth=function(){return e},n.step=function(){return t},n.round=function(t){return arguments.length?(u=!!t,c()):u},n.padding=function(t){return arguments.length?(s=Math.max(0,Math.min(1,t)),o=s,c()):o},n.paddingInner=function(t){return arguments.length?(o=Math.max(0,Math.min(1,t)),c()):o},n.paddingOuter=function(t){return arguments.length?(s=Math.max(0,Math.min(1,t)),c()):s},n.align=function(t){return arguments.length?(l=Math.max(0,Math.min(1,t)),c()):l},n.invertRange=function(t){if(null!=t[0]&&null!=t[1]){var n,u,o,s=+t[0],l=+t[1],c=a[1]<a[0],f=c?i().reverse():i(),h=f.length-1;if(s==s&&l==l&&(l<s&&(o=s,s=l,l=o),!(l<f[0]||s>a[1-c])))return n=Math.max(0,oi(f,s)-1),u=s===l?n:oi(f,l)-1,s-f[n]>e+1e-10&&++n,c&&(o=n,n=h-u,u=h-o),n>u?void 0:r().slice(n,u+1)}},n.invert=function(t){var e=n.invertRange([t,t]);return e?e[0]:e},n.copy=function(){return Fm().domain(r()).range(a).round(u).paddingInner(o).paddingOuter(s).align(l)},c()}var Sm=Array.prototype.map;function Bm(t){return Sm.call(t,(function(t){return+t}))}var zm=Array.prototype.slice;const Tm={};function Nm(t,e,n){const r=function(){var n=e();return n.invertRange||(n.invertRange=n.invert?function(t){return function(e){var n,r=e[0],i=e[1];return i<r&&(n=r,r=i,i=n),[t.invert(r),t.invert(i)]}}(n):n.invertExtent?function(t){return function(e){var n,r,i,a,u=t.range(),o=e[0],s=e[1],l=-1;for(s<o&&(r=o,o=s,s=r),i=0,a=u.length;i<a;++i)u[i]>=o&&u[i]<=s&&(l<0&&(l=i),n=i);if(!(l<0))return o=t.invertExtent(u[l]),s=t.invertExtent(u[n]),[void 0===o[0]?o[1]:o[0],void 0===s[1]?s[0]:s[1]]}}(n):void 0),n.type=t,n};return r.metadata=xt(I(n)),r}function Om(t,e,n){return arguments.length>1?(Tm[t]=Nm(t,e,n),this):Rm(t)?Tm[t]:void 0}function Rm(t){return K(Tm,t)}function qm(t,e){const n=Tm[t];return n&&n.metadata[e]}function Um(t){return qm(t,Nd)}function Lm(t){return qm(t,"discrete")}function Pm(t){return qm(t,"discretizing")}function $m(t){return qm(t,zd)}function jm(t){return qm(t,"interpolating")}function Im(t){return qm(t,"quantile")}Om("identity",(function t(e){var n;function r(t){return isNaN(t=+t)?n:t}return r.invert=r,r.domain=r.range=function(t){return arguments.length?(e=Array.from(t,Bg),r):e.slice()},r.unknown=function(t){return arguments.length?(n=t,r):n},r.copy=function(){return t(e).unknown(n)},e=arguments.length?Array.from(e,Bg):[0,1],rm(r)})),Om("linear",(function t(){var e=Lg();return e.copy=function(){return qg(e,t())},Od.apply(e,arguments),rm(e)}),Nd),Om(zd,(function t(){var e=fm(Ug()).domain([1,10]);return e.copy=function(){return qg(e,t()).base(e.base())},Od.apply(e,arguments),e}),[Nd,zd]),Om("pow",_m,Nd),Om("sqrt",(function(){return _m.apply(null,arguments).exponent(.5)}),Nd),Om("symlog",(function t(){var e=pm(Ug());return e.copy=function(){return qg(e,t()).constant(e.constant())},Od.apply(e,arguments)}),Nd),Om("time",(function(){return Od.apply(wm(Ye,We,je,Pe,Le,Ue,qe,Re,on).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}),[Nd,"temporal"]),Om(Td,(function(){return Od.apply(wm(en,tn,Ze,Xe,Ge,Ve,qe,Re,ln).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}),[Nd,"temporal"]),Om("sequential",Mm,[Nd,"interpolating"]),Om("sequential-linear",Mm,[Nd,"interpolating"]),Om("sequential-log",(function t(){var e=fm(Am()).domain([1,10]);return e.copy=function(){return km(e,t()).base(e.base())},Rd.apply(e,arguments)}),[Nd,"interpolating",zd]),Om("sequential-pow",Em,[Nd,"interpolating"]),Om("sequential-sqrt",(function(){return Em.apply(null,arguments).exponent(.5)}),[Nd,"interpolating"]),Om("sequential-symlog",(function t(){var e=pm(Am());return e.copy=function(){return km(e,t()).constant(e.constant())},Rd.apply(e,arguments)}),[Nd,"interpolating"]),Om("diverging-linear",(function t(){var e=rm(Dm()(Tg));return e.copy=function(){return km(e,t())},Rd.apply(e,arguments)}),[Nd,"interpolating"]),Om("diverging-log",(function t(){var e=fm(Dm()).domain([.1,1,10]);return e.copy=function(){return km(e,t()).base(e.base())},Rd.apply(e,arguments)}),[Nd,"interpolating",zd]),Om("diverging-pow",Cm,[Nd,"interpolating"]),Om("diverging-sqrt",(function(){return Cm.apply(null,arguments).exponent(.5)}),[Nd,"interpolating"]),Om("diverging-symlog",(function t(){var e=pm(Dm());return e.copy=function(){return km(e,t()).constant(e.constant())},Rd.apply(e,arguments)}),[Nd,"interpolating"]),Om("quantile",(function t(){var e,n=[],r=[],i=[];function a(){var t=0,e=Math.max(1,r.length);for(i=new Array(e-1);++t<e;)i[t-1]=xi(n,t/e);return u}function u(t){return isNaN(t=+t)?e:r[oi(i,t)]}return u.invertExtent=function(t){var e=r.indexOf(t);return e<0?[NaN,NaN]:[e>0?i[e-1]:n[0],e<i.length?i[e]:n[n.length-1]]},u.domain=function(t){if(!arguments.length)return n.slice();n=[];for(let e of t)null==e||isNaN(e=+e)||n.push(e);return n.sort(ii),a()},u.range=function(t){return arguments.length?(r=Array.from(t),a()):r.slice()},u.unknown=function(t){return arguments.length?(e=t,u):e},u.quantiles=function(){return i.slice()},u.copy=function(){return t().domain(n).range(r).unknown(e)},Od.apply(u,arguments)}),["discretizing","quantile"]),Om("quantize",(function t(){var e,n=0,r=1,i=1,a=[.5],u=[0,1];function o(t){return t<=t?u[oi(a,t,0,i)]:e}function s(){var t=-1;for(a=new Array(i);++t<i;)a[t]=((t+1)*r-(t-i)*n)/(i+1);return o}return o.domain=function(t){return arguments.length?([n,r]=t,n=+n,r=+r,s()):[n,r]},o.range=function(t){return arguments.length?(i=(u=Array.from(t)).length-1,s()):u.slice()},o.invertExtent=function(t){var e=u.indexOf(t);return e<0?[NaN,NaN]:e<1?[n,a[0]]:e>=i?[a[i-1],r]:[a[e-1],a[e]]},o.unknown=function(t){return arguments.length?(e=t,o):o},o.thresholds=function(){return a.slice()},o.copy=function(){return t().domain([n,r]).range(u).unknown(e)},Od.apply(rm(o),arguments)}),"discretizing"),Om("threshold",(function t(){var e,n=[.5],r=[0,1],i=1;function a(t){return t<=t?r[oi(n,t,0,i)]:e}return a.domain=function(t){return arguments.length?(n=Array.from(t),i=Math.min(n.length,r.length-1),a):n.slice()},a.range=function(t){return arguments.length?(r=Array.from(t),i=Math.min(n.length,r.length-1),a):r.slice()},a.invertExtent=function(t){var e=r.indexOf(t);return[n[e-1],n[e]]},a.unknown=function(t){return arguments.length?(e=t,a):e},a.copy=function(){return t().domain(n).range(r).unknown(e)},Od.apply(a,arguments)}),"discretizing"),Om("bin-ordinal",(function t(){var e=[],n=[];function r(t){return null==t||t!=t?void 0:n[(oi(e,t)-1)%n.length]}return r.domain=function(t){return arguments.length?(e=Bm(t),r):e.slice()},r.range=function(t){return arguments.length?(n=zm.call(t),r):n.slice()},r.tickFormat=function(t,n){return nm(e[0],k(e),null==t?10:t,n)},r.copy=function(){return t().domain(r.domain()).range(r.range())},r}),["discrete","discretizing"]),Om("ordinal",Ud,"discrete"),Om("band",Fm,"discrete"),Om("point",(function(){return function t(e){var n=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return t(n())},e}(Fm().paddingInner(1))}),"discrete");const Hm=["clamp","base","constant","exponent"];function Wm(t,e){var n=e[0],r=k(e)-n;return function(e){return t(n+e*r)}}function Ym(t,e,n){return Fg(Xm(e||"rgb",n),t)}function Vm(t,e){for(var n=new Array(e),r=e+1,i=0;i<e;)n[i]=t(++i/r);return n}function Gm(t,e,n){var r,i,a,u=n-e;return u&&Number.isFinite(u)?(r=(i=t.type).indexOf("-"),i=r<0?i:i.slice(r+1),a=Om(i)().domain([e,n]).range([0,1]),Hm.forEach(e=>t[e]?a[e](t[e]()):0),a):V(.5)}function Xm(t,e){var n=Sg[function(t){return"interpolate"+t.toLowerCase().split("-").map((function(t){return t[0].toUpperCase()+t.slice(1)})).join("")}(t)];return null!=e&&n&&n.gamma?n.gamma(e):n}function Jm(t){for(var e=t.length/6|0,n=new Array(e),r=0;r<e;)n[r]="#"+t.slice(6*r,6*++r);return n}function Zm(t,e){for(let n in t)Km(n,e(t[n]))}const Qm={};function Km(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(Qm[t]=e,this):Qm[t]}function tv(t,e,n){var r;return ot(e)&&(t.bins&&(e=Math.max(e,t.bins.length)),null!=n&&(e=Math.min(e,~~(gt(t.domain())/n)||1))),o(e)&&(r=e.step,e=e.interval),s(e)&&(e="time"===t.type?Xu(e):t.type==Td?Ju(e):i("Only time and utc scales accept interval strings."),r&&(e=e.every(r))),e}function ev(t,e,n){var r=t.range(),i=Math.floor(r[0]),a=Math.ceil(k(r));if(i>a&&(r=a,a=i,i=r),e=e.filter((function(e){return e=t(e),i<=e&&e<=a})),n>0&&e.length>1){for(var u=[e[0],k(e)];e.length>n&&e.length>=3;)e=e.filter((function(t,e){return!(e%2)}));e.length<3&&(e=u)}return e}function nv(t,e){return t.bins?ev(t,t.bins):t.ticks?t.ticks(e):t.domain()}function rv(t,e,n,r,i){var a,u,o=t.type,s="time"===o||"time"===r?ao(n):o===Td||r===Td?uo(n):t.tickFormat?t.tickFormat(e,n):n?Jg(n):String;if($m(o)){var l=function(t){var e=Hg(t||",");if(null==e.precision){switch(e.precision=12,e.type){case"%":e.precision-=2;break;case"e":e.precision-=1}return function(t,e){return function(n){var r,i,a=t(n),u=a.indexOf(e);if(u<0)return a;for(i=(r=function(t,e){var n,r=t.lastIndexOf("e");if(r>0)return r;for(r=t.length;--r>e;)if((n=t.charCodeAt(r))>=48&&n<=57)return r+1}(a,u))<a.length?a.slice(r):"";--r>u;)if("0"!==a[r]){++r;break}return a.slice(0,r)+i}}(Jg(e),Jg(".1f")(1)[1])}return Jg(e)}(n);s=i||t.bins?l:(a=s,u=l,t=>a(t)?u(t):"")}return s}function iv(t){Hr.call(this,null,t)}function av(t){Hr.call(this,null,t)}function uv(){return St({})}function ov(t){return t.exit}function sv(t){Hr.call(this,null,t)}Zm({category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"},Jm),Zm({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",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",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"},t=>Ym(Jm(t))),rt(iv,Hr).transform=function(t,e){if(this.value&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=this.value,i=t.scale,a=tv(i,null==t.count?t.values?t.values.length:10:t.count,t.minstep),u=t.format||rv(i,a,t.formatSpecifier,t.formatType,!!t.values),o=t.values?ev(i,t.values,a):nv(i,a);return r&&(n.rem=r),r=o.map((function(t,e){return St({index:e/(o.length-1||1),value:t,label:u(t)})})),t.extra&&r.length&&r.push(St({index:-1,extra:{value:r[0].value},label:""})),n.source=r,n.add=r,this.value=r,n},rt(av,Hr).transform=function(t,e){var n=e.dataflow,r=e.fork(e.NO_SOURCE|e.NO_FIELDS),a=t.item||uv,o=t.key||Ct,s=this.value;return u(r.encode)&&(r.encode=null),s&&(t.modified("key")||e.modified(o))&&i("DataJoin does not support modified key function or fields."),s||(e=e.addAll(),this.value=s=et().test(ov),s.lookup=function(t){return s.get(o(t))}),e.visit(e.ADD,(function(t){var e=o(t),n=s.get(e);n?n.exit?(s.empty--,r.add.push(n)):r.mod.push(n):(s.set(e,n=a(t)),r.add.push(n)),n.datum=t,n.exit=!1})),e.visit(e.MOD,(function(t){var e=o(t),n=s.get(e);n&&(n.datum=t,r.mod.push(n))})),e.visit(e.REM,(function(t){var e=o(t),n=s.get(e);t!==n.datum||n.exit||(r.rem.push(n),n.exit=!0,++s.empty)})),e.changed(e.ADD_MOD)&&r.modifies("datum"),t.clean&&s.empty>n.cleanThreshold&&n.runAfter(s.clean),r},rt(sv,Hr).transform=function(t,e){var n=e.fork(e.ADD_REM),r=t.mod||!1,i=t.encoders,a=e.encode;if(u(a)){if(!n.changed()&&!a.every((function(t){return i[t]})))return e.StopPropagation;a=a[0],n.encode=null}var o="enter"===a,s=i.update||v,l=i.enter||v,c=i.exit||v,f=(a&&!o?i[a]:s)||v;if(e.changed(e.ADD)&&(e.visit(e.ADD,(function(e){l(e,t),s(e,t)})),n.modifies(l.output),n.modifies(s.output),f!==v&&f!==s&&(e.visit(e.ADD,(function(e){f(e,t)})),n.modifies(f.output))),e.changed(e.REM)&&c!==v&&(e.visit(e.REM,(function(e){c(e,t)})),n.modifies(c.output)),o||f!==v){var h=e.MOD|(t.modified()?e.REFLOW:0);o?(e.visit(h,(function(e){var i=l(e,t)||r;(f(e,t)||i)&&n.mod.push(e)})),n.mod.length&&n.modifies(l.output)):e.visit(h,(function(e){(f(e,t)||r)&&n.mod.push(e)})),n.mod.length&&n.modifies(f.output)}return n.changed()?n:e.StopPropagation};const lv={quantile:"quantiles",quantize:"thresholds",threshold:"domain"},cv={quantile:"quantiles",quantize:"domain"};function fv(t,e){return t.bins?function(t){const e=t.slice(0,-1);return e.max=k(t),e}(t.bins):t.type===zd?function(t,e){var n=nv(t,e),r=t.base(),i=Math.log(r),a=Math.max(1,r*e/n.length);return n.filter(t=>{var e=t/Math.pow(r,Math.round(Math.log(t)/i));return e*r<r-.5&&(e*=r),e<=a})}(t,e):lv[t.type]?function(t){const e=[-1/0].concat(t);return e.max=1/0,e}(t[lv[t.type]]()):nv(t,e)}function hv(t,e,n,r,i,a){const u=cv[t.type]&&"time"!==i&&i!==Td?function(t,e){var n,r=t[cv[t.type]](),i=r.length,a=i>1?r[1]-r[0]:r[0];for(n=1;n<i;++n)a=Math.min(a,r[n]-r[n-1]);return nm(0,a,30,e)}(t,r):rv(t,e,r,i,a);return"symbol"===n&&function(t){return lv[t.type]||t.bins}(t)?function(t){return function(e,n,r){var i=dv(r[n+1],dv(r.max,1/0)),a=pv(e,t),u=pv(i,t);return a&&u?a+" – "+u:u?"< "+u:"≥ "+a}}(u):"discrete"===n?function(t){return function(e,n){return n?t(e):null}}(u):function(t){return function(e){return t(e)}}(u)}function dv(t,e){return null!=t?t:e}function pv(t,e){return Number.isFinite(t)?e(t):null}function gv(t){Hr.call(this,[],t)}rt(gv,Hr).transform=function(t,e){if(null!=this.value&&!t.modified())return e.StopPropagation;var n,r,i,a,u,o=e.fork(e.NO_SOURCE|e.NO_FIELDS),s=this.value,l=t.type||"symbol",c=t.scale,f=+t.limit,h=tv(c,null==t.count?5:t.count,t.minstep),d=!!t.values||"symbol"===l,p=t.format||hv(c,h,l,t.formatSpecifier,t.formatType,d),g=t.values||fv(c,h);return s&&(o.rem=s),"symbol"===l?(f&&g.length>f?(e.dataflow.warn("Symbol legend count exceeds limit, filtering items."),s=g.slice(0,f-1),u=!0):s=g,W(i=t.size)?(t.values||0!==c(s[0])||(s=s.slice(1)),a=s.reduce((function(e,n){return Math.max(e,i(n,t))}),0)):i=V(a=i||8),s=s.map((function(e,n){return St({index:n,label:p(e,n,s),value:e,offset:a,size:i(e,t)})})),u&&(u=g[s.length],s.push(St({index:s.length,label:`…${g.length-s.length} entries`,value:u,offset:a,size:i(u,t)})))):"gradient"===l?(n=c.domain(),r=Gm(c,n[0],k(n)),g.length<3&&!t.values&&n[0]!==k(n)&&(g=[n[0],k(n)]),s=g.map((function(t,e){return St({index:e,label:p(t,e,g),value:t,perc:r(t)})}))):(i=g.length-1,r=function(t){var e=t.domain(),n=e.length-1,r=+e[0],i=+k(e),a=i-r;if("threshold"===t.type){var u=n?a/n:.1;a=(i+=u)-(r-=u)}return function(t){return(t-r)/a}}(c),s=g.map((function(t,e){return St({index:e,label:p(t,e,g),value:t,perc:e?r(t):0,perc2:e===i?1:r(g[e+1])})}))),o.source=s,o.add=s,this.value=s,o};var mv=et({line:wv,"line-radial":function(t,e,n,r){return wv(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n))},arc:Av,"arc-radial":function(t,e,n,r){return Av(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n))},curve:kv,"curve-radial":function(t,e,n,r){return kv(e*Math.cos(t),e*Math.sin(t),r*Math.cos(n),r*Math.sin(n))},"orthogonal-horizontal":function(t,e,n,r){return"M"+t+","+e+"V"+r+"H"+n},"orthogonal-vertical":function(t,e,n,r){return"M"+t+","+e+"H"+n+"V"+r},"orthogonal-radial":function(t,e,n,r){var i=Math.cos(t),a=Math.sin(t),u=Math.cos(n),o=Math.sin(n),s=Math.abs(n-t)>Math.PI?n<=t:n>t;return"M"+e*i+","+e*a+"A"+e+","+e+" 0 0,"+(s?1:0)+" "+e*u+","+e*o+"L"+r*u+","+r*o},"diagonal-horizontal":function(t,e,n,r){var i=(t+n)/2;return"M"+t+","+e+"C"+i+","+e+" "+i+","+r+" "+n+","+r},"diagonal-vertical":function(t,e,n,r){var i=(e+r)/2;return"M"+t+","+e+"C"+t+","+i+" "+n+","+i+" "+n+","+r},"diagonal-radial":function(t,e,n,r){var i=Math.cos(t),a=Math.sin(t),u=Math.cos(n),o=Math.sin(n),s=(e+r)/2;return"M"+e*i+","+e*a+"C"+s*i+","+s*a+" "+s*u+","+s*o+" "+r*u+","+r*o}});function vv(t){return t.source.x}function yv(t){return t.source.y}function _v(t){return t.target.x}function xv(t){return t.target.y}function bv(t){Hr.call(this,{},t)}function wv(t,e,n,r){return"M"+t+","+e+"L"+n+","+r}function Av(t,e,n,r){var i=n-t,a=r-e,u=Math.sqrt(i*i+a*a)/2;return"M"+t+","+e+"A"+u+","+u+" "+180*Math.atan2(a,i)/Math.PI+" 0 1 "+n+","+r}function kv(t,e,n,r){var i=n-t,a=r-e,u=.2*(i+a),o=.2*(a-i);return"M"+t+","+e+"C"+(t+u)+","+(e+o)+" "+(n+o)+","+(r-u)+" "+n+","+r}function Mv(t){Hr.call(this,null,t)}bv.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"}]},rt(bv,Hr).transform=function(t,e){var n=t.sourceX||vv,r=t.sourceY||yv,a=t.targetX||_v,u=t.targetY||xv,o=t.as||"path",s=t.orient||"vertical",l=t.shape||"line",c=mv.get(l+"-"+s)||mv.get(l);return c||i("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:"")),e.visit(e.SOURCE,(function(t){t[o]=c(n(t),r(t),a(t),u(t))})),e.reflow(t.modified()).modifies(o)},Mv.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"]}]},rt(Mv,Hr).transform=function(t,e){var n,r,i,a=t.as||["startAngle","endAngle"],u=a[0],o=a[1],s=t.field||g,l=t.startAngle||0,c=null!=t.endAngle?t.endAngle:2*Math.PI,f=e.source,h=f.map(s),d=h.length,p=l,m=(c-l)/wi(h),v=li(d);for(t.sort&&v.sort((function(t,e){return h[t]-h[e]})),n=0;n<d;++n)i=h[v[n]],(r=f[v[n]])[u]=p,r[o]=p+=i*m;return this.value=h,e.reflow(t.modified()).modifies(a)};function Ev(t){return Um(t)&&"sequential"!==t}var Dv=xt(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function Cv(t){Hr.call(this,null,t),this.modified(!0)}function Fv(t,e,n){$m(t)&&(Math.abs(e.reduce((function(t,e){return t+(e<0?-1:e>0?1:0)}),0))!==e.length&&n.warn("Log scale domain includes zero: "+l(e)));return e}function Sv(t,e,n){return W(t)&&(e||n)?Wm(t,Bv(e||[0,1],n)):t}function Bv(t,e){return e?t.slice().reverse():t}function zv(t){Hr.call(this,null,t)}rt(Cv,Hr).transform=function(t,e){var n=e.dataflow,r=this.value,a=function(t){var e,n=t.type,r="";if("sequential"===n)return"sequential-linear";(function(t){const e=t.type;return Um(e)&&"time"!==e&&e!==Td&&(t.scheme||t.range&&t.range.length&&t.range.every(s))})(t)&&(e=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(null!=t.domainMid):0,r=2===e?"sequential-":3===e?"diverging-":"");return(r+n||"linear").toLowerCase()}(t);for(a in r&&a===r.type||(this.value=r=Om(a)()),t)if(!Dv[a]){if("padding"===a&&Ev(r.type))continue;W(r[a])?r[a](t[a]):n.warn("Unsupported scale property: "+a)}return function(t,e,n){var r=t.type,a=e.round||!1,o=e.range;if(null!=e.rangeStep)o=function(t,e,n){"band"!==t&&"point"!==t&&i("Only band and point scales support rangeStep.");var r=(null!=e.paddingOuter?e.paddingOuter:e.padding)||0,a="point"===t?1:(null!=e.paddingInner?e.paddingInner:e.padding)||0;return[0,e.rangeStep*Bd(n,a,r)]}(r,e,n);else if(e.scheme&&(o=function(t,e,n){var r,a,o=e.schemeExtent;u(e.scheme)?a=Ym(e.scheme,e.interpolate,e.interpolateGamma):(r=e.scheme.toLowerCase(),(a=Km(r))||i(`Unrecognized scheme name: ${e.scheme}`));return n="threshold"===t?n+1:"bin-ordinal"===t?n-1:"quantile"===t||"quantize"===t?+e.schemeCount||5:n,jm(t)?Sv(a,o,e.reverse):W(a)?Vm(Sv(a,o),n):"ordinal"===t?a:a.slice(0,n)}(r,e,n),W(o))){if(t.interpolator)return t.interpolator(o);i(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&jm(r))return t.interpolator(Ym(Bv(o,e.reverse),e.interpolate,e.interpolateGamma));o&&e.interpolate&&t.interpolate?t.interpolate(Xm(e.interpolate,e.interpolateGamma)):W(t.round)?t.round(a):W(t.rangeRound)&&t.interpolate(a?og:ug);o&&t.range(Bv(o,e.reverse))}(r,t,function(t,e,n){let r=e.bins;if(r&&!u(r)){let e=t.domain(),n=e[0],a=k(e),u=null==r.start?n:r.start,o=null==r.stop?a:r.stop,s=r.step;s||i("Scale bins parameter missing step property."),u<n&&(u=s*Math.ceil(n/s)),o>a&&(o=s*Math.floor(a/s)),r=li(u,o+s/2,s)}r?t.bins=r:t.bins&&delete t.bins;"bin-ordinal"===t.type&&(r?e.domain||e.domainRaw||(t.domain(r),n=r.length):t.bins=t.domain());return n}(r,t,function(t,e,n){var r=function(t,e,n){return e?(t.domain(Fv(t.type,e,n)),e.length):-1}(t,e.domainRaw,n);if(r>-1)return r;var i,a,u=e.domain,o=t.type,s=e.zero||void 0===e.zero&&function(t){const e=t.type;return!t.bins&&("linear"===e||"pow"===e||"sqrt"===e)}(t);if(!u)return 0;Ev(o)&&e.padding&&u[0]!==k(u)&&(u=function(t,e,n,r,i,a){var u=Math.abs(k(n)-n[0]),o=u/(u-2*r),s=t===zd?U(e,null,o):"sqrt"===t?L(e,null,o,.5):"pow"===t?L(e,null,o,i||1):"symlog"===t?P(e,null,o,a||1):q(e,null,o);return(e=e.slice())[0]=s[0],e[e.length-1]=s[1],e}(o,u,e.range,e.padding,e.exponent,e.constant));(s||null!=e.domainMin||null!=e.domainMax||null!=e.domainMid)&&(i=(u=u.slice()).length-1||1,s&&(u[0]>0&&(u[0]=0),u[i]<0&&(u[i]=0)),null!=e.domainMin&&(u[0]=e.domainMin),null!=e.domainMax&&(u[i]=e.domainMax),null!=e.domainMid&&(((a=e.domainMid)<u[0]||a>u[i])&&n.warn("Scale domainMid exceeds domain min or max.",a),u.splice(i,0,a)));t.domain(Fv(o,u,n)),"ordinal"===o&&t.unknown(e.domainImplicit?qd:void 0);e.nice&&t.nice&&t.nice(!0!==e.nice&&tv(t,e.nice)||null);return u.length}(r,t,n))),e.fork(e.NO_SOURCE|e.NO_FIELDS)},rt(zv,Hr).transform=function(t,e){var n=t.modified("sort")||e.changed(e.ADD)||e.modified(t.sort.fields)||e.modified("datum");return n&&e.source.sort(Nt(t.sort)),this.modified(n),e};var Tv=["y0","y1"];function Nv(t){Hr.call(this,null,t)}function Ov(t,e,n,r,i){for(var a,u=(e-t.sum)/2,o=t.length,s=0;s<o;++s)(a=t[s])[r]=u,a[i]=u+=Math.abs(n(a))}function Rv(t,e,n,r,i){for(var a,u=1/t.sum,o=0,s=t.length,l=0,c=0;l<s;++l)(a=t[l])[r]=o,a[i]=o=u*(c+=Math.abs(n(a)))}function qv(t,e,n,r,i){for(var a,u,o=0,s=0,l=t.length,c=0;c<l;++c)(a=+n(u=t[c]))<0?(u[r]=s,u[i]=s+=a):(u[r]=o,u[i]=o+=a)}Nv.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:"zero",values:["zero","center","normalize"]},{name:"as",type:"string",array:!0,length:2,default:Tv}]},rt(Nv,Hr).transform=function(t,e){var n,r,i,a,u=t.as||Tv,o=u[0],s=u[1],l=Nt(t.sort),c=t.field||g,f="center"===t.offset?Ov:"normalize"===t.offset?Rv:qv;for(n=function(t,e,n,r){var i,a,u,o,s,l,c,f,h,d=[],p=function(t){return t(s)};if(null==e)d.push(t.slice());else for(i={},a=0,u=t.length;a<u;++a)s=t[a],l=e.map(p),(c=i[l])||(i[l]=c=[],d.push(c)),c.push(s);for(l=0,h=0,o=d.length;l<o;++l){for(c=d[l],a=0,f=0,u=c.length;a<u;++a)f+=Math.abs(r(c[a]));c.sum=f,f>h&&(h=f),n&&c.sort(n)}return d.max=h,d}(e.source,t.groupby,l,c),r=0,i=n.length,a=n.max;r<i;++r)f(n[r],a,c,o,s);return e.reflow(t.modified()).modifies(u)};var Uv=Object.freeze({__proto__:null,axisticks:iv,datajoin:av,encode:sv,legendentries:gv,linkpath:bv,pie:Mv,scale:Cv,sortitems:zv,stack:Nv,validTicks:ev});function Lv(){}const Pv=[[],[[[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 $v(){var t=1,e=1,n=o;function r(t,e){return e.map(e=>a(t,e))}function a(r,i){var a=[],o=[];return function(n,r,i){var a,o,s,l,c,f,h=new Array,d=new Array;a=o=-1,l=n[0]>=r,Pv[l<<1].forEach(p);for(;++a<t-1;)s=l,l=n[a+1]>=r,Pv[s|l<<1].forEach(p);Pv[l<<0].forEach(p);for(;++o<e-1;){for(a=-1,l=n[o*t+t]>=r,c=n[o*t]>=r,Pv[l<<1|c<<2].forEach(p);++a<t-1;)s=l,l=n[o*t+t+a+1]>=r,f=c,c=n[o*t+a+1]>=r,Pv[s|l<<1|c<<2|f<<3].forEach(p);Pv[l|c<<3].forEach(p)}a=-1,c=n[o*t]>=r,Pv[c<<2].forEach(p);for(;++a<t-1;)f=c,c=n[o*t+a+1]>=r,Pv[c<<2|f<<3].forEach(p);function p(t){var e,n,r=[t[0][0]+a,t[0][1]+o],s=[t[1][0]+a,t[1][1]+o],l=u(r),c=u(s);(e=d[l])?(n=h[c])?(delete d[e.end],delete h[n.start],e===n?(e.ring.push(s),i(e.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete d[e.end],e.ring.push(s),d[e.end=c]=e):(e=h[c])?(n=d[l])?(delete h[e.start],delete d[n.end],e===n?(e.ring.push(s),i(e.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete h[e.start],e.ring.unshift(r),h[e.start=l]=e):h[l]=d[c]={start:l,end:c,ring:[r,s]}}Pv[c<<3].forEach(p)}(r,i,(function(t){n(t,r,i),function(t){var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];for(;++e<n;)r+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return r}(t)>0?a.push([t]):o.push(t)})),o.forEach((function(t){for(var e,n=0,r=a.length;n<r;++n)if(-1!==jv((e=a[n])[0],t))return void e.push(t)})),{type:"MultiPolygon",value:i,coordinates:a}}function u(e){return 2*e[0]+e[1]*(t+1)*4}function o(n,r,i){n.forEach((function(n){var a,u=n[0],o=n[1],s=0|u,l=0|o,c=r[l*t+s];u>0&&u<t&&s===u&&(a=r[l*t+s-1],n[0]=u+(i-a)/(c-a)-.5),o>0&&o<e&&l===o&&(a=r[(l-1)*t+s],n[1]=o+(i-a)/(c-a)-.5)}))}return r.contour=a,r.size=function(n){if(!arguments.length)return[t,e];var a=Math.ceil(n[0]),u=Math.ceil(n[1]);return a>0&&u>0||i("invalid size"),t=a,e=u,r},r.smooth=function(t){return arguments.length?(n=t?o:Lv,r):n===o},r}function jv(t,e){for(var n,r=-1,i=e.length;++r<i;)if(n=Iv(t,e[r]))return n;return 0}function Iv(t,e){for(var n=e[0],r=e[1],i=-1,a=0,u=t.length,o=u-1;a<u;o=a++){var s=t[a],l=s[0],c=s[1],f=t[o],h=f[0],d=f[1];if(Hv(s,f,e))return 0;c>r!=d>r&&n<(h-l)*(r-c)/(d-c)+l&&(i=-i)}return i}function Hv(t,e,n){var r,i,a,u;return function(t,e,n){return(e[0]-t[0])*(n[1]-t[1])==(n[0]-t[0])*(e[1]-t[1])}(t,e,n)&&(i=t[r=+(t[0]===e[0])],a=n[r],u=e[r],i<=a&&a<=u||u<=a&&a<=i)}function Wv(t,e,n){return function(r){var i=J(r),a=n?Math.min(i[0],0):i[0],u=i[1],o=u-a,s=e?gi(a,u,t):o/(t+1);return li(s,u,s)}}function Yv(t){Hr.call(this,null,t)}function Vv(t,e,n,r,i){const a=t.x1||0,u=t.y1||0,o=e*n<0;function s(t){t.forEach(l)}function l(t){o&&t.reverse(),t.forEach(c)}function c(t){t[0]=(t[0]-a)*e+r,t[1]=(t[1]-u)*n+i}return function(t){return t.coordinates.forEach(s),t}}function Gv(t,e,n){const r=t>=0?t:Mi(e,n);return Math.round((Math.sqrt(4*r*r+1)-1)/2)}function Xv(t){return W(t)?t:V(+t)}function Jv(){var t=t=>t[0],e=t=>t[1],n=g,r=[-1,-1],a=960,u=500,o=2;function s(i,s){const l=Gv(r[0],i,t)>>o,c=Gv(r[1],i,e)>>o,f=l?l+2:0,h=c?c+2:0,d=2*f+(a>>o),p=2*h+(u>>o),g=new Float32Array(d*p),m=new Float32Array(d*p);let v=g;i.forEach(r=>{const i=f+(+t(r)>>o),a=h+(+e(r)>>o);i>=0&&i<d&&a>=0&&a<p&&(g[i+a*d]+=+n(r))}),l>0&&c>0?(Zv(d,p,g,m,l),Qv(d,p,m,g,c),Zv(d,p,g,m,l),Qv(d,p,m,g,c),Zv(d,p,g,m,l),Qv(d,p,m,g,c)):l>0?(Zv(d,p,g,m,l),Zv(d,p,m,g,l),Zv(d,p,g,m,l),v=m):c>0&&(Qv(d,p,g,m,c),Qv(d,p,m,g,c),Qv(d,p,g,m,c),v=m);let y=s?Math.pow(2,-2*o):1/wi(v);for(let t=0,e=d*p;t<e;++t)v[t]*=y;return{values:v,scale:1<<o,width:d,height:p,x1:f,y1:h,x2:f+(a>>o),y2:h+(u>>o)}}return s.x=function(e){return arguments.length?(t=Xv(e),s):t},s.y=function(t){return arguments.length?(e=Xv(t),s):e},s.weight=function(t){return arguments.length?(n=Xv(t),s):n},s.size=function(t){if(!arguments.length)return[a,u];var e=Math.ceil(t[0]),n=Math.ceil(t[1]);return e>=0||e>=0||i("invalid size"),a=e,u=n,s},s.cellSize=function(t){return arguments.length?((t=+t)>=1||i("invalid cell size"),o=Math.floor(Math.log(t)/Math.LN2),s):1<<o},s.bandwidth=function(t){return arguments.length?(1===(t=I(t)).length&&(t=[+t[0],+t[0]]),2!==t.length&&i("invalid bandwidth"),r=t,s):r},s}function Zv(t,e,n,r,i){const a=1+(i<<1);for(let u=0;u<e;++u)for(let e=0,o=0;e<t+i;++e)e<t&&(o+=n[e+u*t]),e>=i&&(e>=a&&(o-=n[e-a+u*t]),r[e-i+u*t]=o/Math.min(e+1,t-1+a-e,a))}function Qv(t,e,n,r,i){const a=1+(i<<1);for(let u=0;u<t;++u)for(let o=0,s=0;o<e+i;++o)o<e&&(s+=n[u+o*t]),o>=i&&(o>=a&&(s-=n[u+(o-a)*t]),r[u+(o-i)*t]=s/Math.min(o+1,e-1+a-o,a))}function Kv(t){Hr.call(this,null,t)}Yv.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"}]},rt(Yv,Hr).transform=function(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n=e.fork(e.NO_SOURCE|e.NO_FIELDS),r=e.materialize(e.SOURCE).source,i=t.field||d,a=$v().smooth(!1!==t.smooth),o=t.thresholds||function(t,e,n){const r=Wv(n.levels||10,n.nice,!1!==n.zero);return"shared"!==n.resolve?r:r(t.map(t=>mi(e(t).values)))}(r,i,t),s=null===t.as?null:t.as||"contour",l=[];return r.forEach(e=>{const n=i(e),r=a.size([n.width,n.height])(n.values,u(o)?o:o(n.values));!function(t,e,n,r){let i=r.scale||e.scale,a=r.translate||e.translate;W(i)&&(i=i(n,r));W(a)&&(a=a(n,r));if((1===i||null==i)&&!a)return;const u=(ot(i)?i:i[0])||1,o=(ot(i)?i:i[1])||1,s=a&&a[0]||0,l=a&&a[1]||0;t.forEach(Vv(e,u,o,s,l))}(r,n,e,t),r.forEach(t=>{l.push(zt(e,St(null!=s?{[s]:t}:t)))})}),this.value&&(n.rem=this.value),this.value=n.source=n.add=l,n},Kv.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"}]};var ty=rt(Kv,Hr);const ey=["x","y","weight","size","cellSize","bandwidth"];function ny(t,e){return ey.forEach(n=>null!=e[n]?t[n](e[n]):0),t}function ry(t){Hr.call(this,null,t)}ty.transform=function(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var r,i=e.fork(e.NO_SOURCE|e.NO_FIELDS),a=function(t,e){var n,r,i,a,u,o,s=[],l=t=>t(a);if(null==e)s.push(t);else for(n={},r=0,i=t.length;r<i;++r)a=t[r],u=e.map(l),(o=n[u])||(n[u]=o=[],o.dims=u,s.push(o)),o.push(a);return s}(e.materialize(e.SOURCE).source,t.groupby),u=(t.groupby||[]).map(n),o=ny(Jv(),t),s=t.as||"grid";return r=a.map(e=>St(function(t,e){for(let n=0;n<u.length;++n)t[u[n]]=e[n];return t}({[s]:o(e,t.counts)},e.dims))),this.value&&(i.rem=this.value),this.value=i.source=i.add=r,i},ry.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}]},rt(ry,Hr).transform=function(t,e){if(this.value&&!e.changed()&&!t.modified())return e.StopPropagation;var n,r,i=e.fork(e.NO_SOURCE|e.NO_FIELDS),a=$v().smooth(!1!==t.smooth),o=t.values,s=t.thresholds||Wv(t.count||10,t.nice,!!o),l=t.size;return o||(o=e.materialize(e.SOURCE).source,r=Vv(n=ny(Jv(),t)(o,!0),n.scale||1,n.scale||1,0,0),l=[n.width,n.height],o=n.values),s=u(s)?s:s(o),o=a.size(l)(o,s),r&&o.forEach(r),this.value&&(i.rem=this.value),this.value=i.source=i.add=(o||[]).map(St),i};function iy(t){Hr.call(this,null,t)}function ay(){return new uy}function uy(){this.reset()}iy.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},rt(iy,Hr).transform=function(t,e){var n,i=this._features,a=this._points,u=t.fields,o=u&&u[0],s=u&&u[1],l=t.geojson||!u&&d,c=e.ADD;n=t.modified()||e.changed(e.REM)||e.modified(r(l))||o&&e.modified(r(o))||s&&e.modified(r(s)),this.value&&!n||(c=e.SOURCE,this._features=i=[],this._points=a=[]),l&&e.visit(c,(function(t){i.push(l(t))})),o&&s&&(e.visit(c,(function(t){var e=o(t),n=s(t);null!=e&&null!=n&&(e=+e)===e&&(n=+n)===n&&a.push([e,n])})),i=i.concat({type:"Feature",geometry:{type:"MultiPoint",coordinates:a}})),this.value={type:"FeatureCollection",features:i}},uy.prototype={constructor:uy,reset:function(){this.s=this.t=0},add:function(t){sy(oy,t,this.t),sy(this,oy.s,this.s),this.s?this.t+=oy.t:this.s=oy.t},valueOf:function(){return this.s}};var oy=new uy;function sy(t,e,n){var r=t.s=e+n,i=r-e,a=r-i;t.t=e-a+(n-i)}var ly=Math.PI,cy=ly/2,fy=ly/4,hy=2*ly,dy=180/ly,py=ly/180,gy=Math.abs,my=Math.atan,vy=Math.atan2,yy=Math.cos,_y=Math.ceil,xy=Math.exp,by=Math.log,wy=Math.pow,Ay=Math.sin,ky=Math.sign||function(t){return t>0?1:t<0?-1:0},My=Math.sqrt,Ey=Math.tan;function Dy(t){return t>1?0:t<-1?ly:Math.acos(t)}function Cy(t){return t>1?cy:t<-1?-cy:Math.asin(t)}function Fy(){}function Sy(t,e){t&&zy.hasOwnProperty(t.type)&&zy[t.type](t,e)}var By={Feature:function(t,e){Sy(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r<i;)Sy(n[r].geometry,e)}},zy={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){Ty(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Ty(n[r],e,0)},Polygon:function(t,e){Ny(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,i=n.length;++r<i;)Ny(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,i=n.length;++r<i;)Sy(n[r],e)}};function Ty(t,e,n){var r,i=-1,a=t.length-n;for(e.lineStart();++i<a;)r=t[i],e.point(r[0],r[1],r[2]);e.lineEnd()}function Ny(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)Ty(t[n],e,1);e.polygonEnd()}function Oy(t,e){t&&By.hasOwnProperty(t.type)?By[t.type](t,e):Sy(t,e)}var Ry,qy,Uy,Ly,Py,$y=ay(),jy=ay(),Iy={point:Fy,lineStart:Fy,lineEnd:Fy,polygonStart:function(){$y.reset(),Iy.lineStart=Hy,Iy.lineEnd=Wy},polygonEnd:function(){var t=+$y;jy.add(t<0?hy+t:t),this.lineStart=this.lineEnd=this.point=Fy},sphere:function(){jy.add(hy)}};function Hy(){Iy.point=Yy}function Wy(){Vy(Ry,qy)}function Yy(t,e){Iy.point=Vy,Ry=t,qy=e,Uy=t*=py,Ly=yy(e=(e*=py)/2+fy),Py=Ay(e)}function Vy(t,e){var n=(t*=py)-Uy,r=n>=0?1:-1,i=r*n,a=yy(e=(e*=py)/2+fy),u=Ay(e),o=Py*u,s=Ly*a+o*yy(i),l=o*r*Ay(i);$y.add(vy(l,s)),Uy=t,Ly=a,Py=u}function Gy(t){return[vy(t[1],t[0]),Cy(t[2])]}function Xy(t){var e=t[0],n=t[1],r=yy(n);return[r*yy(e),r*Ay(e),Ay(n)]}function Jy(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Zy(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Qy(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Ky(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function t_(t){var e=My(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}var e_,n_,r_,i_,a_,u_,o_,s_,l_,c_,f_,h_,d_,p_,g_,m_,v_,y_,__,x_,b_,w_,A_,k_,M_,E_,D_=ay(),C_={point:F_,lineStart:B_,lineEnd:z_,polygonStart:function(){C_.point=T_,C_.lineStart=N_,C_.lineEnd=O_,D_.reset(),Iy.polygonStart()},polygonEnd:function(){Iy.polygonEnd(),C_.point=F_,C_.lineStart=B_,C_.lineEnd=z_,$y<0?(e_=-(r_=180),n_=-(i_=90)):D_>1e-6?i_=90:D_<-1e-6&&(n_=-90),c_[0]=e_,c_[1]=r_},sphere:function(){e_=-(r_=180),n_=-(i_=90)}};function F_(t,e){l_.push(c_=[e_=t,r_=t]),e<n_&&(n_=e),e>i_&&(i_=e)}function S_(t,e){var n=Xy([t*py,e*py]);if(s_){var r=Zy(s_,n),i=Zy([r[1],-r[0],0],r);t_(i),i=Gy(i);var a,u=t-a_,o=u>0?1:-1,s=i[0]*dy*o,l=gy(u)>180;l^(o*a_<s&&s<o*t)?(a=i[1]*dy)>i_&&(i_=a):l^(o*a_<(s=(s+360)%360-180)&&s<o*t)?(a=-i[1]*dy)<n_&&(n_=a):(e<n_&&(n_=e),e>i_&&(i_=e)),l?t<a_?R_(e_,t)>R_(e_,r_)&&(r_=t):R_(t,r_)>R_(e_,r_)&&(e_=t):r_>=e_?(t<e_&&(e_=t),t>r_&&(r_=t)):t>a_?R_(e_,t)>R_(e_,r_)&&(r_=t):R_(t,r_)>R_(e_,r_)&&(e_=t)}else l_.push(c_=[e_=t,r_=t]);e<n_&&(n_=e),e>i_&&(i_=e),s_=n,a_=t}function B_(){C_.point=S_}function z_(){c_[0]=e_,c_[1]=r_,C_.point=F_,s_=null}function T_(t,e){if(s_){var n=t-a_;D_.add(gy(n)>180?n+(n>0?360:-360):n)}else u_=t,o_=e;Iy.point(t,e),S_(t,e)}function N_(){Iy.lineStart()}function O_(){T_(u_,o_),Iy.lineEnd(),gy(D_)>1e-6&&(e_=-(r_=180)),c_[0]=e_,c_[1]=r_,s_=null}function R_(t,e){return(e-=t)<0?e+360:e}function q_(t,e){return t[0]-e[0]}function U_(t,e){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}var L_={sphere:Fy,point:P_,lineStart:j_,lineEnd:W_,polygonStart:function(){L_.lineStart=Y_,L_.lineEnd=V_},polygonEnd:function(){L_.lineStart=j_,L_.lineEnd=W_}};function P_(t,e){t*=py;var n=yy(e*=py);$_(n*yy(t),n*Ay(t),Ay(e))}function $_(t,e,n){++f_,d_+=(t-d_)/f_,p_+=(e-p_)/f_,g_+=(n-g_)/f_}function j_(){L_.point=I_}function I_(t,e){t*=py;var n=yy(e*=py);k_=n*yy(t),M_=n*Ay(t),E_=Ay(e),L_.point=H_,$_(k_,M_,E_)}function H_(t,e){t*=py;var n=yy(e*=py),r=n*yy(t),i=n*Ay(t),a=Ay(e),u=vy(My((u=M_*a-E_*i)*u+(u=E_*r-k_*a)*u+(u=k_*i-M_*r)*u),k_*r+M_*i+E_*a);h_+=u,m_+=u*(k_+(k_=r)),v_+=u*(M_+(M_=i)),y_+=u*(E_+(E_=a)),$_(k_,M_,E_)}function W_(){L_.point=P_}function Y_(){L_.point=G_}function V_(){X_(w_,A_),L_.point=P_}function G_(t,e){w_=t,A_=e,t*=py,e*=py,L_.point=X_;var n=yy(e);k_=n*yy(t),M_=n*Ay(t),E_=Ay(e),$_(k_,M_,E_)}function X_(t,e){t*=py;var n=yy(e*=py),r=n*yy(t),i=n*Ay(t),a=Ay(e),u=M_*a-E_*i,o=E_*r-k_*a,s=k_*i-M_*r,l=My(u*u+o*o+s*s),c=Cy(l),f=l&&-c/l;__+=f*u,x_+=f*o,b_+=f*s,h_+=c,m_+=c*(k_+(k_=r)),v_+=c*(M_+(M_=i)),y_+=c*(E_+(E_=a)),$_(k_,M_,E_)}function J_(t,e){function n(n,r){return n=t(n,r),e(n[0],n[1])}return t.invert&&e.invert&&(n.invert=function(n,r){return(n=e.invert(n,r))&&t.invert(n[0],n[1])}),n}function Z_(t,e){return[gy(t)>ly?t+Math.round(-t/hy)*hy:t,e]}function Q_(t,e,n){return(t%=hy)?e||n?J_(tx(t),ex(e,n)):tx(t):e||n?ex(e,n):Z_}function K_(t){return function(e,n){return[(e+=t)>ly?e-hy:e<-ly?e+hy:e,n]}}function tx(t){var e=K_(t);return e.invert=K_(-t),e}function ex(t,e){var n=yy(t),r=Ay(t),i=yy(e),a=Ay(e);function u(t,e){var u=yy(e),o=yy(t)*u,s=Ay(t)*u,l=Ay(e),c=l*n+o*r;return[vy(s*i-c*a,o*n-l*r),Cy(c*i+s*a)]}return u.invert=function(t,e){var u=yy(e),o=yy(t)*u,s=Ay(t)*u,l=Ay(e),c=l*i-s*a;return[vy(s*i+l*a,o*n+c*r),Cy(c*n-o*r)]},u}function nx(t,e){(e=Xy(e))[0]-=t,t_(e);var n=Dy(-e[1]);return((-e[2]<0?-n:n)+hy-1e-6)%hy}function rx(){var t,e=[];return{point:function(e,n){t.push([e,n])},lineStart:function(){e.push(t=[])},lineEnd:Fy,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}}function ix(t,e){return gy(t[0]-e[0])<1e-6&&gy(t[1]-e[1])<1e-6}function ax(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function ux(t,e,n,r,i){var a,u,o=[],s=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,n,r=t[0],u=t[e];if(ix(r,u)){for(i.lineStart(),a=0;a<e;++a)i.point((r=t[a])[0],r[1]);i.lineEnd()}else o.push(n=new ax(r,t,null,!0)),s.push(n.o=new ax(r,null,n,!1)),o.push(n=new ax(u,t,null,!1)),s.push(n.o=new ax(u,null,n,!0))}})),o.length){for(s.sort(e),ox(o),ox(s),a=0,u=s.length;a<u;++a)s[a].e=n=!n;for(var l,c,f=o[0];;){for(var h=f,d=!0;h.v;)if((h=h.n)===f)return;l=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(d)for(a=0,u=l.length;a<u;++a)i.point((c=l[a])[0],c[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(d)for(l=h.p.z,a=l.length-1;a>=0;--a)i.point((c=l[a])[0],c[1]);else r(h.x,h.p.x,-1,i);h=h.p}l=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function ox(t){if(e=t.length){for(var e,n,r=0,i=t[0];++r<e;)i.n=n=t[r],n.p=i,i=n;i.n=n=t[0],n.p=i}}Z_.invert=Z_;var sx=ay();function lx(t){return gy(t[0])<=ly?t[0]:ky(t[0])*((gy(t[0])+ly)%hy-ly)}function cx(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}!function(t){var e;1===t.length&&(e=t,t=function(t,n){return cx(e(t),n)})}(cx);function fx(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=0|Math.max(0,Math.ceil((e-t)/n)),a=new Array(i);++r<i;)a[r]=t+r*n;return a}function hx(t){for(var e,n,r,i=t.length,a=-1,u=0;++a<i;)u+=t[a].length;for(n=new Array(u);--i>=0;)for(e=(r=t[i]).length;--e>=0;)n[--u]=r[e];return n}function dx(t,e,n,r){return function(i){var a,u,o,s=e(i),l=rx(),c=e(l),f=!1,h={point:d,lineStart:g,lineEnd:m,polygonStart:function(){h.point=v,h.lineStart=y,h.lineEnd=_,u=[],a=[]},polygonEnd:function(){h.point=d,h.lineStart=g,h.lineEnd=m,u=hx(u);var t=function(t,e){var n=lx(e),r=e[1],i=Ay(r),a=[Ay(n),-yy(n),0],u=0,o=0;sx.reset(),1===i?r=cy+1e-6:-1===i&&(r=-cy-1e-6);for(var s=0,l=t.length;s<l;++s)if(f=(c=t[s]).length)for(var c,f,h=c[f-1],d=lx(h),p=h[1]/2+fy,g=Ay(p),m=yy(p),v=0;v<f;++v,d=_,g=b,m=w,h=y){var y=c[v],_=lx(y),x=y[1]/2+fy,b=Ay(x),w=yy(x),A=_-d,k=A>=0?1:-1,M=k*A,E=M>ly,D=g*b;if(sx.add(vy(D*k*Ay(M),m*w+D*yy(M))),u+=E?A+k*hy:A,E^d>=n^_>=n){var C=Zy(Xy(h),Xy(y));t_(C);var F=Zy(a,C);t_(F);var S=(E^A>=0?-1:1)*Cy(F[2]);(r>S||r===S&&(C[0]||C[1]))&&(o+=E^A>=0?1:-1)}}return(u<-1e-6||u<1e-6&&sx<-1e-6)^1&o}(a,r);u.length?(f||(i.polygonStart(),f=!0),ux(u,gx,t,n,i)):t&&(f||(i.polygonStart(),f=!0),i.lineStart(),n(null,null,1,i),i.lineEnd()),f&&(i.polygonEnd(),f=!1),u=a=null},sphere:function(){i.polygonStart(),i.lineStart(),n(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function d(e,n){t(e,n)&&i.point(e,n)}function p(t,e){s.point(t,e)}function g(){h.point=p,s.lineStart()}function m(){h.point=d,s.lineEnd()}function v(t,e){o.push([t,e]),c.point(t,e)}function y(){c.lineStart(),o=[]}function _(){v(o[0][0],o[0][1]),c.lineEnd();var t,e,n,r,s=c.clean(),h=l.result(),d=h.length;if(o.pop(),a.push(o),o=null,d)if(1&s){if((e=(n=h[0]).length-1)>0){for(f||(i.polygonStart(),f=!0),i.lineStart(),t=0;t<e;++t)i.point((r=n[t])[0],r[1]);i.lineEnd()}}else d>1&&2&s&&h.push(h.pop().concat(h.shift())),u.push(h.filter(px))}return h}}function px(t){return t.length>1}function gx(t,e){return((t=t.x)[0]<0?t[1]-cy-1e-6:cy-t[1])-((e=e.x)[0]<0?e[1]-cy-1e-6:cy-e[1])}var mx=dx((function(){return!0}),(function(t){var e,n=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(a,u){var o=a>0?ly:-ly,s=gy(a-n);gy(s-ly)<1e-6?(t.point(n,r=(r+u)/2>0?cy:-cy),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(o,r),t.point(a,r),e=0):i!==o&&s>=ly&&(gy(n-i)<1e-6&&(n-=1e-6*i),gy(a-o)<1e-6&&(a-=1e-6*o),r=function(t,e,n,r){var i,a,u=Ay(t-n);return gy(u)>1e-6?my((Ay(e)*(a=yy(r))*Ay(n)-Ay(r)*(i=yy(e))*Ay(t))/(i*a*u)):(e+r)/2}(n,r,a,u),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(o,r),e=0),t.point(n=a,r=u),i=o},lineEnd:function(){t.lineEnd(),n=r=NaN},clean:function(){return 2-e}}}),(function(t,e,n,r){var i;if(null==t)i=n*cy,r.point(-ly,i),r.point(0,i),r.point(ly,i),r.point(ly,0),r.point(ly,-i),r.point(0,-i),r.point(-ly,-i),r.point(-ly,0),r.point(-ly,i);else if(gy(t[0]-e[0])>1e-6){var a=t[0]<e[0]?ly:-ly;i=n*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(e[0],e[1])}),[-ly,-cy]);function vx(t){var e=yy(t),n=6*py,r=e>0,i=gy(e)>1e-6;function a(t,n){return yy(t)*yy(n)>e}function u(t,n,r){var i=[1,0,0],a=Zy(Xy(t),Xy(n)),u=Jy(a,a),o=a[0],s=u-o*o;if(!s)return!r&&t;var l=e*u/s,c=-e*o/s,f=Zy(i,a),h=Ky(i,l);Qy(h,Ky(a,c));var d=f,p=Jy(h,d),g=Jy(d,d),m=p*p-g*(Jy(h,h)-1);if(!(m<0)){var v=My(m),y=Ky(d,(-p-v)/g);if(Qy(y,h),y=Gy(y),!r)return y;var _,x=t[0],b=n[0],w=t[1],A=n[1];b<x&&(_=x,x=b,b=_);var k=b-x,M=gy(k-ly)<1e-6;if(!M&&A<w&&(_=w,w=A,A=_),M||k<1e-6?M?w+A>0^y[1]<(gy(y[0]-x)<1e-6?w:A):w<=y[1]&&y[1]<=A:k>ly^(x<=y[0]&&y[0]<=b)){var E=Ky(d,(-p+v)/g);return Qy(E,h),[y,Gy(E)]}}}function o(e,n){var i=r?t:ly-t,a=0;return e<-i?a|=1:e>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}return dx(a,(function(t){var e,n,s,l,c;return{lineStart:function(){l=s=!1,c=1},point:function(f,h){var d,p=[f,h],g=a(f,h),m=r?g?0:o(f,h):g?o(f+(f<0?ly:-ly),h):0;if(!e&&(l=s=g)&&t.lineStart(),g!==s&&(!(d=u(e,p))||ix(e,d)||ix(p,d))&&(p[0]+=1e-6,p[1]+=1e-6,g=a(p[0],p[1])),g!==s)c=0,g?(t.lineStart(),d=u(p,e),t.point(d[0],d[1])):(d=u(e,p),t.point(d[0],d[1]),t.lineEnd()),e=d;else if(i&&e&&r^g){var v;m&n||!(v=u(p,e,!0))||(c=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1])))}!g||e&&ix(e,p)||t.point(p[0],p[1]),e=p,s=g,n=m},lineEnd:function(){s&&t.lineEnd(),e=null},clean:function(){return c|(l&&s)<<1}}}),(function(e,r,i,a){!function(t,e,n,r,i,a){if(n){var u=yy(e),o=Ay(e),s=r*n;null==i?(i=e+r*hy,a=e-s/2):(i=nx(u,i),a=nx(u,a),(r>0?i<a:i>a)&&(i+=r*hy));for(var l,c=i;r>0?c>a:c<a;c-=s)l=Gy([u,-o*yy(c),-o*Ay(c)]),t.point(l[0],l[1])}}(a,t,n,i,e,r)}),r?[0,-t]:[-ly,t-ly])}function yx(t,e,n,r){function i(i,a){return t<=i&&i<=n&&e<=a&&a<=r}function a(i,a,o,l){var c=0,f=0;if(null==i||(c=u(i,o))!==(f=u(a,o))||s(i,a)<0^o>0)do{l.point(0===c||3===c?t:n,c>1?r:e)}while((c=(c+o+4)%4)!==f);else l.point(a[0],a[1])}function u(r,i){return gy(r[0]-t)<1e-6?i>0?0:3:gy(r[0]-n)<1e-6?i>0?2:1:gy(r[1]-e)<1e-6?i>0?1:0:i>0?3:2}function o(t,e){return s(t.x,e.x)}function s(t,e){var n=u(t,1),r=u(e,1);return n!==r?n-r:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(u){var s,l,c,f,h,d,p,g,m,v,y,_=u,x=rx(),b={point:w,lineStart:function(){b.point=A,l&&l.push(c=[]);v=!0,m=!1,p=g=NaN},lineEnd:function(){s&&(A(f,h),d&&m&&x.rejoin(),s.push(x.result()));b.point=w,m&&_.lineEnd()},polygonStart:function(){_=x,s=[],l=[],y=!0},polygonEnd:function(){var e=function(){for(var e=0,n=0,i=l.length;n<i;++n)for(var a,u,o=l[n],s=1,c=o.length,f=o[0],h=f[0],d=f[1];s<c;++s)a=h,u=d,f=o[s],h=f[0],d=f[1],u<=r?d>r&&(h-a)*(r-u)>(d-u)*(t-a)&&++e:d<=r&&(h-a)*(r-u)<(d-u)*(t-a)&&--e;return e}(),n=y&&e,i=(s=hx(s)).length;(n||i)&&(u.polygonStart(),n&&(u.lineStart(),a(null,null,1,u),u.lineEnd()),i&&ux(s,o,e,a,u),u.polygonEnd());_=u,s=l=c=null}};function w(t,e){i(t,e)&&_.point(t,e)}function A(a,u){var o=i(a,u);if(l&&c.push([a,u]),v)f=a,h=u,d=o,v=!1,o&&(_.lineStart(),_.point(a,u));else if(o&&m)_.point(a,u);else{var s=[p=Math.max(-1e9,Math.min(1e9,p)),g=Math.max(-1e9,Math.min(1e9,g))],x=[a=Math.max(-1e9,Math.min(1e9,a)),u=Math.max(-1e9,Math.min(1e9,u))];!function(t,e,n,r,i,a){var u,o=t[0],s=t[1],l=0,c=1,f=e[0]-o,h=e[1]-s;if(u=n-o,f||!(u>0)){if(u/=f,f<0){if(u<l)return;u<c&&(c=u)}else if(f>0){if(u>c)return;u>l&&(l=u)}if(u=i-o,f||!(u<0)){if(u/=f,f<0){if(u>c)return;u>l&&(l=u)}else if(f>0){if(u<l)return;u<c&&(c=u)}if(u=r-s,h||!(u>0)){if(u/=h,h<0){if(u<l)return;u<c&&(c=u)}else if(h>0){if(u>c)return;u>l&&(l=u)}if(u=a-s,h||!(u<0)){if(u/=h,h<0){if(u>c)return;u>l&&(l=u)}else if(h>0){if(u<l)return;u<c&&(c=u)}return l>0&&(t[0]=o+l*f,t[1]=s+l*h),c<1&&(e[0]=o+c*f,e[1]=s+c*h),!0}}}}}(s,x,t,e,n,r)?o&&(_.lineStart(),_.point(a,u),y=!1):(m||(_.lineStart(),_.point(s[0],s[1])),_.point(x[0],x[1]),o||_.lineEnd(),y=!1)}p=a,g=u,m=o}return b}}function _x(t,e,n){var r=fx(t,e-1e-6,n).concat(e);return function(t){return r.map((function(e){return[t,e]}))}}function xx(t,e,n){var r=fx(t,e-1e-6,n).concat(e);return function(t){return r.map((function(e){return[e,t]}))}}function bx(t){return t}var wx,Ax,kx,Mx,Ex=ay(),Dx=ay(),Cx={point:Fy,lineStart:Fy,lineEnd:Fy,polygonStart:function(){Cx.lineStart=Fx,Cx.lineEnd=zx},polygonEnd:function(){Cx.lineStart=Cx.lineEnd=Cx.point=Fy,Ex.add(gy(Dx)),Dx.reset()},result:function(){var t=Ex/2;return Ex.reset(),t}};function Fx(){Cx.point=Sx}function Sx(t,e){Cx.point=Bx,wx=kx=t,Ax=Mx=e}function Bx(t,e){Dx.add(Mx*t-kx*e),kx=t,Mx=e}function zx(){Bx(wx,Ax)}var Tx=1/0,Nx=Tx,Ox=-Tx,Rx=Ox,qx={point:function(t,e){t<Tx&&(Tx=t);t>Ox&&(Ox=t);e<Nx&&(Nx=e);e>Rx&&(Rx=e)},lineStart:Fy,lineEnd:Fy,polygonStart:Fy,polygonEnd:Fy,result:function(){var t=[[Tx,Nx],[Ox,Rx]];return Ox=Rx=-(Nx=Tx=1/0),t}};var Ux,Lx,Px,$x,jx=0,Ix=0,Hx=0,Wx=0,Yx=0,Vx=0,Gx=0,Xx=0,Jx=0,Zx={point:Qx,lineStart:Kx,lineEnd:nb,polygonStart:function(){Zx.lineStart=rb,Zx.lineEnd=ib},polygonEnd:function(){Zx.point=Qx,Zx.lineStart=Kx,Zx.lineEnd=nb},result:function(){var t=Jx?[Gx/Jx,Xx/Jx]:Vx?[Wx/Vx,Yx/Vx]:Hx?[jx/Hx,Ix/Hx]:[NaN,NaN];return jx=Ix=Hx=Wx=Yx=Vx=Gx=Xx=Jx=0,t}};function Qx(t,e){jx+=t,Ix+=e,++Hx}function Kx(){Zx.point=tb}function tb(t,e){Zx.point=eb,Qx(Px=t,$x=e)}function eb(t,e){var n=t-Px,r=e-$x,i=My(n*n+r*r);Wx+=i*(Px+t)/2,Yx+=i*($x+e)/2,Vx+=i,Qx(Px=t,$x=e)}function nb(){Zx.point=Qx}function rb(){Zx.point=ab}function ib(){ub(Ux,Lx)}function ab(t,e){Zx.point=ub,Qx(Ux=Px=t,Lx=$x=e)}function ub(t,e){var n=t-Px,r=e-$x,i=My(n*n+r*r);Wx+=i*(Px+t)/2,Yx+=i*($x+e)/2,Vx+=i,Gx+=(i=$x*t-Px*e)*(Px+t),Xx+=i*($x+e),Jx+=3*i,Qx(Px=t,$x=e)}function ob(t){this._context=t}ob.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,hy)}},result:Fy};var sb,lb,cb,fb,hb,db=ay(),pb={point:Fy,lineStart:function(){pb.point=gb},lineEnd:function(){sb&&mb(lb,cb),pb.point=Fy},polygonStart:function(){sb=!0},polygonEnd:function(){sb=null},result:function(){var t=+db;return db.reset(),t}};function gb(t,e){pb.point=mb,lb=fb=t,cb=hb=e}function mb(t,e){fb-=t,hb-=e,db.add(My(fb*fb+hb*hb)),fb=t,hb=e}function vb(){this._string=[]}function yb(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function _b(t,e){var n,r,i=4.5;function a(t){return t&&("function"==typeof i&&r.pointRadius(+i.apply(this,arguments)),Oy(t,n(r))),r.result()}return a.area=function(t){return Oy(t,n(Cx)),Cx.result()},a.measure=function(t){return Oy(t,n(pb)),pb.result()},a.bounds=function(t){return Oy(t,n(qx)),qx.result()},a.centroid=function(t){return Oy(t,n(Zx)),Zx.result()},a.projection=function(e){return arguments.length?(n=null==e?(t=null,bx):(t=e).stream,a):t},a.context=function(t){return arguments.length?(r=null==t?(e=null,new vb):new ob(e=t),"function"!=typeof i&&r.pointRadius(i),a):e},a.pointRadius=function(t){return arguments.length?(i="function"==typeof t?t:(r.pointRadius(+t),+t),a):i},a.projection(t).context(e)}function xb(t){return function(e){var n=new bb;for(var r in t)n[r]=t[r];return n.stream=e,n}}function bb(){}function wb(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),Oy(n,t.stream(qx)),e(qx.result()),null!=r&&t.clipExtent(r),t}function Ab(t,e,n){return wb(t,(function(n){var r=e[1][0]-e[0][0],i=e[1][1]-e[0][1],a=Math.min(r/(n[1][0]-n[0][0]),i/(n[1][1]-n[0][1])),u=+e[0][0]+(r-a*(n[1][0]+n[0][0]))/2,o=+e[0][1]+(i-a*(n[1][1]+n[0][1]))/2;t.scale(150*a).translate([u,o])}),n)}function kb(t,e,n){return Ab(t,[[0,0],e],n)}function Mb(t,e,n){return wb(t,(function(n){var r=+e,i=r/(n[1][0]-n[0][0]),a=(r-i*(n[1][0]+n[0][0]))/2,u=-i*n[0][1];t.scale(150*i).translate([a,u])}),n)}function Eb(t,e,n){return wb(t,(function(n){var r=+e,i=r/(n[1][1]-n[0][1]),a=-i*n[0][0],u=(r-i*(n[1][1]+n[0][1]))/2;t.scale(150*i).translate([a,u])}),n)}vb.prototype={_radius:4.5,_circle:yb(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push("M",t,",",e),this._point=1;break;case 1:this._string.push("L",t,",",e);break;default:null==this._circle&&(this._circle=yb(this._radius)),this._string.push("M",t,",",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},bb.prototype={constructor:bb,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Db=yy(30*py);function Cb(t,e){return+e?function(t,e){function n(r,i,a,u,o,s,l,c,f,h,d,p,g,m){var v=l-r,y=c-i,_=v*v+y*y;if(_>4*e&&g--){var x=u+h,b=o+d,w=s+p,A=My(x*x+b*b+w*w),k=Cy(w/=A),M=gy(gy(w)-1)<1e-6||gy(a-f)<1e-6?(a+f)/2:vy(b,x),E=t(M,k),D=E[0],C=E[1],F=D-r,S=C-i,B=y*F-v*S;(B*B/_>e||gy((v*F+y*S)/_-.5)>.3||u*h+o*d+s*p<Db)&&(n(r,i,a,u,o,s,D,C,M,x/=A,b/=A,w,g,m),m.point(D,C),n(D,C,M,x,b,w,l,c,f,h,d,p,g,m))}}return function(e){var r,i,a,u,o,s,l,c,f,h,d,p,g={point:m,lineStart:v,lineEnd:_,polygonStart:function(){e.polygonStart(),g.lineStart=x},polygonEnd:function(){e.polygonEnd(),g.lineStart=v}};function m(n,r){n=t(n,r),e.point(n[0],n[1])}function v(){c=NaN,g.point=y,e.lineStart()}function y(r,i){var a=Xy([r,i]),u=t(r,i);n(c,f,l,h,d,p,c=u[0],f=u[1],l=r,h=a[0],d=a[1],p=a[2],16,e),e.point(c,f)}function _(){g.point=m,e.lineEnd()}function x(){v(),g.point=b,g.lineEnd=w}function b(t,e){y(r=t,e),i=c,a=f,u=h,o=d,s=p,g.point=y}function w(){n(c,f,l,h,d,p,i,a,r,u,o,s,16,e),g.lineEnd=_,_()}return g}}(t,e):function(t){return xb({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}(t)}var Fb=xb({point:function(t,e){this.stream.point(t*py,e*py)}});function Sb(t,e,n){function r(r,i){return[e+t*r,n-t*i]}return r.invert=function(r,i){return[(r-e)/t,(n-i)/t]},r}function Bb(t,e,n,r){var i=yy(r),a=Ay(r),u=i*t,o=a*t,s=i/t,l=a/t,c=(a*n-i*e)/t,f=(a*e+i*n)/t;function h(t,r){return[u*t-o*r+e,n-o*t-u*r]}return h.invert=function(t,e){return[s*t-l*e+c,f-l*t-s*e]},h}function zb(t){return Tb((function(){return t}))()}function Tb(t){var e,n,r,i,a,u,o,s,l,c,f=150,h=480,d=250,p=0,g=0,m=0,v=0,y=0,_=0,x=null,b=mx,w=null,A=bx,k=.5;function M(t){return s(t[0]*py,t[1]*py)}function E(t){return(t=s.invert(t[0],t[1]))&&[t[0]*dy,t[1]*dy]}function D(){var t=Bb(f,0,0,_).apply(null,e(p,g)),r=(_?Bb:Sb)(f,h-t[0],d-t[1],_);return n=Q_(m,v,y),o=J_(e,r),s=J_(n,o),u=Cb(o,k),C()}function C(){return l=c=null,M}return M.stream=function(t){return l&&c===t?l:l=Fb(function(t){return xb({point:function(e,n){var r=t(e,n);return this.stream.point(r[0],r[1])}})}(n)(b(u(A(c=t)))))},M.preclip=function(t){return arguments.length?(b=t,x=void 0,C()):b},M.postclip=function(t){return arguments.length?(A=t,w=r=i=a=null,C()):A},M.clipAngle=function(t){return arguments.length?(b=+t?vx(x=t*py):(x=null,mx),C()):x*dy},M.clipExtent=function(t){return arguments.length?(A=null==t?(w=r=i=a=null,bx):yx(w=+t[0][0],r=+t[0][1],i=+t[1][0],a=+t[1][1]),C()):null==w?null:[[w,r],[i,a]]},M.scale=function(t){return arguments.length?(f=+t,D()):f},M.translate=function(t){return arguments.length?(h=+t[0],d=+t[1],D()):[h,d]},M.center=function(t){return arguments.length?(p=t[0]%360*py,g=t[1]%360*py,D()):[p*dy,g*dy]},M.rotate=function(t){return arguments.length?(m=t[0]%360*py,v=t[1]%360*py,y=t.length>2?t[2]%360*py:0,D()):[m*dy,v*dy,y*dy]},M.angle=function(t){return arguments.length?(_=t%360*py,D()):_*dy},M.precision=function(t){return arguments.length?(u=Cb(o,k=t*t),C()):My(k)},M.fitExtent=function(t,e){return Ab(M,t,e)},M.fitSize=function(t,e){return kb(M,t,e)},M.fitWidth=function(t,e){return Mb(M,t,e)},M.fitHeight=function(t,e){return Eb(M,t,e)},function(){return e=t.apply(this,arguments),M.invert=e.invert&&E,D()}}function Nb(t){var e=0,n=ly/3,r=Tb(t),i=r(e,n);return i.parallels=function(t){return arguments.length?r(e=t[0]*py,n=t[1]*py):[e*dy,n*dy]},i}function Ob(t,e){var n=Ay(t),r=(n+Ay(e))/2;if(gy(r)<1e-6)return function(t){var e=yy(t);function n(t,n){return[t*e,Ay(n)/e]}return n.invert=function(t,n){return[t/e,Cy(n*e)]},n}(t);var i=1+n*(2*r-n),a=My(i)/r;function u(t,e){var n=My(i-2*r*Ay(e))/r;return[n*Ay(t*=r),a-n*yy(t)]}return u.invert=function(t,e){var n=a-e;return[vy(t,gy(n))/r*ky(n),Cy((i-(t*t+n*n)*r*r)/(2*r))]},u}function Rb(){return Nb(Ob).scale(155.424).center([0,33.6442])}function qb(){return Rb().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Ub(t){return function(e,n){var r=yy(e),i=yy(n),a=t(r*i);return[a*i*Ay(e),a*Ay(n)]}}function Lb(t){return function(e,n){var r=My(e*e+n*n),i=t(r),a=Ay(i),u=yy(i);return[vy(e*a,r*u),Cy(r&&n*a/r)]}}var Pb=Ub((function(t){return My(2/(1+t))}));Pb.invert=Lb((function(t){return 2*Cy(t/2)}));var $b=Ub((function(t){return(t=Dy(t))&&t/Ay(t)}));function jb(t,e){return[t,by(Ey((cy+e)/2))]}function Ib(t){var e,n,r,i=zb(t),a=i.center,u=i.scale,o=i.translate,s=i.clipExtent,l=null;function c(){var a=ly*u(),o=i(function(t){function e(e){return(e=t(e[0]*py,e[1]*py))[0]*=dy,e[1]*=dy,e}return t=Q_(t[0]*py,t[1]*py,t.length>2?t[2]*py:0),e.invert=function(e){return(e=t.invert(e[0]*py,e[1]*py))[0]*=dy,e[1]*=dy,e},e}(i.rotate()).invert([0,0]));return s(null==l?[[o[0]-a,o[1]-a],[o[0]+a,o[1]+a]]:t===jb?[[Math.max(o[0]-a,l),e],[Math.min(o[0]+a,n),r]]:[[l,Math.max(o[1]-a,e)],[n,Math.min(o[1]+a,r)]])}return i.scale=function(t){return arguments.length?(u(t),c()):u()},i.translate=function(t){return arguments.length?(o(t),c()):o()},i.center=function(t){return arguments.length?(a(t),c()):a()},i.clipExtent=function(t){return arguments.length?(null==t?l=e=n=r=null:(l=+t[0][0],e=+t[0][1],n=+t[1][0],r=+t[1][1]),c()):null==l?null:[[l,e],[n,r]]},c()}function Hb(t){return Ey((cy+t)/2)}function Wb(t,e){var n=yy(t),r=t===e?Ay(t):by(n/yy(e))/by(Hb(e)/Hb(t)),i=n*wy(Hb(t),r)/r;if(!r)return jb;function a(t,e){i>0?e<1e-6-cy&&(e=1e-6-cy):e>cy-1e-6&&(e=cy-1e-6);var n=i/wy(Hb(e),r);return[n*Ay(r*t),i-n*yy(r*t)]}return a.invert=function(t,e){var n=i-e,a=ky(r)*My(t*t+n*n);return[vy(t,gy(n))/r*ky(n),2*my(wy(i/a,1/r))-cy]},a}function Yb(t,e){return[t,e]}function Vb(t,e){var n=yy(t),r=t===e?Ay(t):(n-yy(e))/(e-t),i=n/r+t;if(gy(r)<1e-6)return Yb;function a(t,e){var n=i-e,a=r*t;return[n*Ay(a),i-n*yy(a)]}return a.invert=function(t,e){var n=i-e;return[vy(t,gy(n))/r*ky(n),i-ky(r)*My(t*t+n*n)]},a}$b.invert=Lb((function(t){return t})),jb.invert=function(t,e){return[t,2*my(xy(e))-cy]},Yb.invert=Yb;var Gb=1.340264,Xb=-.081106,Jb=893e-6,Zb=.003796,Qb=My(3)/2;function Kb(t,e){var n=Cy(Qb*Ay(e)),r=n*n,i=r*r*r;return[t*yy(n)/(Qb*(Gb+3*Xb*r+i*(7*Jb+9*Zb*r))),n*(Gb+Xb*r+i*(Jb+Zb*r))]}function tw(t,e){var n=yy(e),r=yy(t)*n;return[n*Ay(t)/r,Ay(e)/r]}function ew(t,e,n,r){return 1===t&&1===e&&0===n&&0===r?bx:xb({point:function(i,a){this.stream.point(i*t+n,a*e+r)}})}function nw(t,e){var n=e*e,r=n*n;return[t*(.8707-.131979*n+r*(r*(.003971*n-.001529*r)-.013791)),e*(1.007226+n*(.015085+r*(.028874*n-.044475-.005916*r)))]}function rw(t,e){return[yy(e)*Ay(t),Ay(e)]}function iw(t,e){var n=yy(e),r=1+yy(t)*n;return[n*Ay(t)/r,Ay(e)/r]}function aw(t,e){return[by(Ey((cy+e)/2)),-t]}Kb.invert=function(t,e){for(var n,r=e,i=r*r,a=i*i*i,u=0;u<12&&(a=(i=(r-=n=(r*(Gb+Xb*i+a*(Jb+Zb*i))-e)/(Gb+3*Xb*i+a*(7*Jb+9*Zb*i)))*r)*i*i,!(gy(n)<1e-12));++u);return[Qb*t*(Gb+3*Xb*i+a*(7*Jb+9*Zb*i))/yy(r),Cy(Ay(r)/Qb)]},tw.invert=Lb(my),nw.invert=function(t,e){var n,r=e,i=25;do{var a=r*r,u=a*a;r-=n=(r*(1.007226+a*(.015085+u*(.028874*a-.044475-.005916*u)))-e)/(1.007226+a*(.045255+u*(.259866*a-.311325-.005916*11*u)))}while(gy(n)>1e-6&&--i>0);return[t/(.8707+(a=r*r)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),r]},rw.invert=Lb(Cy),iw.invert=Lb((function(t){return 2*my(t)})),aw.invert=function(t,e){return[-e,2*my(xy(t))-cy]};var uw=Math.abs,ow=Math.cos,sw=Math.sin,lw=Math.PI,cw=lw/2,fw=function(t){return t>0?Math.sqrt(t):0}(2);function hw(t){return t>1?cw:t<-1?-cw:Math.asin(t)}function dw(t,e){var n,r=t*sw(e),i=30;do{e-=n=(e+sw(e)-r)/(1+ow(e))}while(uw(n)>1e-6&&--i>0);return e/2}var pw=function(t,e,n){function r(r,i){return[t*r*ow(i=dw(n,i)),e*sw(i)]}return r.invert=function(r,i){return i=hw(i/e),[r/(t*ow(i)),hw((2*i+sw(2*i))/n)]},r}(fw/cw,fw,lw);var gw=_b(),mw=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function vw(t,e){return function n(){var r=e();return r.type=t,r.path=_b().projection(r),r.copy=r.copy||function(){var t=n();return mw.forEach((function(e){r[e]&&t[e](r[e]())})),t.path.pointRadius(r.path.pointRadius()),t},r}}function yw(t,e){if(!t||"string"!=typeof t)throw new Error("Projection type must be a name string.");return t=t.toLowerCase(),arguments.length>1?(xw[t]=vw(t,e),this):xw[t]||null}function _w(t){return t&&t.path||gw}var xw={albers:qb,albersusa:function(){var t,e,n,r,i,a,u=qb(),o=Rb().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=Rb().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,e){a=[t,e]}};function c(t){var e=t[0],u=t[1];return a=null,n.point(e,u),a||(r.point(e,u),a)||(i.point(e,u),a)}function f(){return t=e=null,c}return c.invert=function(t){var e=u.scale(),n=u.translate(),r=(t[0]-n[0])/e,i=(t[1]-n[1])/e;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?o:i>=.166&&i<.234&&r>=-.214&&r<-.115?s:u).invert(t)},c.stream=function(n){return t&&e===n?t:(r=[u.stream(e=n),o.stream(n),s.stream(n)],i=r.length,t={point:function(t,e){for(var n=-1;++n<i;)r[n].point(t,e)},sphere:function(){for(var t=-1;++t<i;)r[t].sphere()},lineStart:function(){for(var t=-1;++t<i;)r[t].lineStart()},lineEnd:function(){for(var t=-1;++t<i;)r[t].lineEnd()},polygonStart:function(){for(var t=-1;++t<i;)r[t].polygonStart()},polygonEnd:function(){for(var t=-1;++t<i;)r[t].polygonEnd()}});var r,i},c.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),s.precision(t),f()):u.precision()},c.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),s.scale(t),c.translate(u.translate())):u.scale()},c.translate=function(t){if(!arguments.length)return u.translate();var e=u.scale(),a=+t[0],c=+t[1];return n=u.translate(t).clipExtent([[a-.455*e,c-.238*e],[a+.455*e,c+.238*e]]).stream(l),r=o.translate([a-.307*e,c+.201*e]).clipExtent([[a-.425*e+1e-6,c+.12*e+1e-6],[a-.214*e-1e-6,c+.234*e-1e-6]]).stream(l),i=s.translate([a-.205*e,c+.212*e]).clipExtent([[a-.214*e+1e-6,c+.166*e+1e-6],[a-.115*e-1e-6,c+.234*e-1e-6]]).stream(l),f()},c.fitExtent=function(t,e){return Ab(c,t,e)},c.fitSize=function(t,e){return kb(c,t,e)},c.fitWidth=function(t,e){return Mb(c,t,e)},c.fitHeight=function(t,e){return Eb(c,t,e)},c.scale(1070)},azimuthalequalarea:function(){return zb(Pb).scale(124.75).clipAngle(179.999)},azimuthalequidistant:function(){return zb($b).scale(79.4188).clipAngle(179.999)},conicconformal:function(){return Nb(Wb).scale(109.5).parallels([30,30])},conicequalarea:Rb,conicequidistant:function(){return Nb(Vb).scale(131.154).center([0,13.9389])},equalEarth:function(){return zb(Kb).scale(177.158)},equirectangular:function(){return zb(Yb).scale(152.63)},gnomonic:function(){return zb(tw).scale(144.049).clipAngle(60)},identity:function(){var t,e,n,r,i,a,u=1,o=0,s=0,l=1,c=1,f=bx,h=null,d=bx;function p(){return r=i=null,a}return a={stream:function(t){return r&&i===t?r:r=f(d(i=t))},postclip:function(r){return arguments.length?(d=r,h=t=e=n=null,p()):d},clipExtent:function(r){return arguments.length?(d=null==r?(h=t=e=n=null,bx):yx(h=+r[0][0],t=+r[0][1],e=+r[1][0],n=+r[1][1]),p()):null==h?null:[[h,t],[e,n]]},scale:function(t){return arguments.length?(f=ew((u=+t)*l,u*c,o,s),p()):u},translate:function(t){return arguments.length?(f=ew(u*l,u*c,o=+t[0],s=+t[1]),p()):[o,s]},reflectX:function(t){return arguments.length?(f=ew(u*(l=t?-1:1),u*c,o,s),p()):l<0},reflectY:function(t){return arguments.length?(f=ew(u*l,u*(c=t?-1:1),o,s),p()):c<0},fitExtent:function(t,e){return Ab(a,t,e)},fitSize:function(t,e){return kb(a,t,e)},fitWidth:function(t,e){return Mb(a,t,e)},fitHeight:function(t,e){return Eb(a,t,e)}}},mercator:function(){return Ib(jb).scale(961/hy)},mollweide:function(){return zb(pw).scale(169.529)},naturalEarth1:function(){return zb(nw).scale(175.295)},orthographic:function(){return zb(rw).scale(249.5).clipAngle(90+1e-6)},stereographic:function(){return zb(iw).scale(250).clipAngle(142)},transversemercator:function(){var t=Ib(aw),e=t.center,n=t.rotate;return t.center=function(t){return arguments.length?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return arguments.length?n([t[0],t[1],t.length>2?t[2]+90:90]):[(t=n())[0],t[1],t[2]-90]},n([0,0,90]).scale(159.155)}};for(var bw in xw)yw(bw,xw[bw]);function ww(t){Hr.call(this,null,t)}function Aw(t){Hr.call(this,null,t)}function kw(t){Hr.call(this,null,t)}function Mw(t){Hr.call(this,[],t),this.generator=function(){var t,e,n,r,i,a,u,o,s,l,c,f,h=10,d=h,p=90,g=360,m=2.5;function v(){return{type:"MultiLineString",coordinates:y()}}function y(){return fx(_y(r/p)*p,n,p).map(c).concat(fx(_y(o/g)*g,u,g).map(f)).concat(fx(_y(e/h)*h,t,h).filter((function(t){return gy(t%p)>1e-6})).map(s)).concat(fx(_y(a/d)*d,i,d).filter((function(t){return gy(t%g)>1e-6})).map(l))}return v.lines=function(){return y().map((function(t){return{type:"LineString",coordinates:t}}))},v.outline=function(){return{type:"Polygon",coordinates:[c(r).concat(f(u).slice(1),c(n).reverse().slice(1),f(o).reverse().slice(1))]}},v.extent=function(t){return arguments.length?v.extentMajor(t).extentMinor(t):v.extentMinor()},v.extentMajor=function(t){return arguments.length?(r=+t[0][0],n=+t[1][0],o=+t[0][1],u=+t[1][1],r>n&&(t=r,r=n,n=t),o>u&&(t=o,o=u,u=t),v.precision(m)):[[r,o],[n,u]]},v.extentMinor=function(n){return arguments.length?(e=+n[0][0],t=+n[1][0],a=+n[0][1],i=+n[1][1],e>t&&(n=e,e=t,t=n),a>i&&(n=a,a=i,i=n),v.precision(m)):[[e,a],[t,i]]},v.step=function(t){return arguments.length?v.stepMajor(t).stepMinor(t):v.stepMinor()},v.stepMajor=function(t){return arguments.length?(p=+t[0],g=+t[1],v):[p,g]},v.stepMinor=function(t){return arguments.length?(h=+t[0],d=+t[1],v):[h,d]},v.precision=function(h){return arguments.length?(m=+h,s=_x(a,i,90),l=xx(e,t,m),c=_x(o,u,90),f=xx(r,n,m),v):m},v.extentMajor([[-180,1e-6-90],[180,90-1e-6]]).extentMinor([[-180,-80-1e-6],[180,80+1e-6]])}()}function Ew(t){Hr.call(this,null,t)}function Dw(t){if(!W(t))return!1;const e=xt(r(t));return e.$x||e.$y||e.$value||e.$max}function Cw(t){Hr.call(this,null,t),this.modified(!0)}function Fw(t,e,n){W(t[e])&&t[e](n)}ww.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"}]},rt(ww,Hr).transform=function(t,e){var n=e.fork(e.ALL),r=this.value,i=t.field||d,a=t.as||"path",u=n.SOURCE;!r||t.modified()?(this.value=r=_w(t.projection),n.materialize().reflow()):u=i===d||e.modified(i.fields)?n.ADD_MOD:n.ADD;var o=function(t,e){var n=t.pointRadius();t.context(null),null!=e&&t.pointRadius(e);return n}(r,t.pointRadius);return n.visit(u,(function(t){t[a]=r(i(t))})),r.pointRadius(o),n.modifies(a)},Aw.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"]}]},rt(Aw,Hr).transform=function(t,e){var n,r=t.projection,i=t.fields[0],a=t.fields[1],u=t.as||["x","y"],o=u[0],s=u[1];function l(t){var e=r([i(t),a(t)]);e?(t[o]=e[0],t[s]=e[1]):(t[o]=void 0,t[s]=void 0)}return t.modified()?e=e.materialize().reflow(!0).visit(e.SOURCE,l):(n=e.modified(i.fields)||e.modified(a.fields),e.visit(n?e.ADD_MOD:e.ADD,l)),e.modifies(u)},kw.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"}]},rt(kw,Hr).transform=function(t,e){var n=e.fork(e.ALL),r=this.value,i=t.as||"shape",a=n.ADD;return r&&!t.modified()||(this.value=r=function(t,e,n){var r=null==n?function(n){return t(e(n))}:function(r){var i=t.pointRadius(),a=t.pointRadius(n)(e(r));return t.pointRadius(i),a};return r.context=function(e){return t.context(e),r},r}(_w(t.projection),t.field||c("datum"),t.pointRadius),n.materialize().reflow(),a=n.SOURCE),n.visit(a,(function(t){t[i]=r})),n.modifies(i)},Mw.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}]},rt(Mw,Hr).transform=function(t,e){var n,r=this.value,i=this.generator;if(!r.length||t.modified())for(var a in t)W(i[a])&&i[a](t[a]);return n=i(),r.length?e.mod.push(Tt(r[0],n)):e.add.push(St(n)),r[0]=n,e},Ew.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"}]},rt(Ew,Hr).transform=function(t,e){if(!e.changed()&&!t.modified())return e.StopPropagation;var n=e.materialize(e.SOURCE).source,r="shared"===t.resolve,i=t.field||d,a=function(t,e){let n;W(t)?(n=n=>t(n,e),n.dep=Dw(t)):t?n=V(t):(n=t=>t.$value/t.$max||0,n.dep=!0);return n}(t.opacity,t),u=function(t,e){let n;W(t)?(n=n=>ap(t(n,e)),n.dep=Dw(t)):n=V(ap(t||"#888"));return n}(t.color,t),o=t.as||"image",s={$x:0,$y:0,$value:0,$max:r?mi(n.map(t=>mi(i(t).values))):0};return n.forEach(t=>{const e=i(t),n=X({},t,s);r||(n.$max=mi(e.values||[])),t[o]=function(t,e,n,r){const i=t.width,a=t.height,u=t.x1||0,o=t.y1||0,s=t.x2||i,l=t.y2||a,c=t.values,f=c?t=>c[t]:p,h=Vo(s-u,l-o),d=h.getContext("2d"),g=d.getImageData(0,0,s-u,l-o),m=g.data;for(let t=o,a=0;t<l;++t){e.$y=t-o;for(let o=u,l=t*i;o<s;++o,a+=4){e.$x=o-u,e.$value=f(o+l);const t=n(e);m[a+0]=t.r,m[a+1]=t.g,m[a+2]=t.b,m[a+3]=~~(255*r(e))}}return d.putImageData(g,0,0),h}(e,n,u.dep?u:V(u(n)),a.dep?a:V(a(n)))}),e.reflow(!0).modifies(o)},rt(Cw,Hr).transform=function(t,e){var n=this.value;return!n||t.modified("type")?(this.value=n=function(t){var e=yw((t||"mercator").toLowerCase());e||i("Unrecognized projection type: "+t);return e()}(t.type),mw.forEach((function(e){null!=t[e]&&Fw(n,e,t[e])}))):mw.forEach((function(e){t.modified(e)&&Fw(n,e,t[e])})),null!=t.pointRadius&&n.path.pointRadius(t.pointRadius),t.fit&&function(t,e){var n=function(t){return 1===(t=I(t)).length?t[0]:{type:"FeatureCollection",features:t.reduce((t,e)=>t.concat(function(t){return"FeatureCollection"===t.type?t.features:I(t).filter(t=>null!=t).map(t=>"Feature"===t.type?t:{type:"Feature",geometry:t})}(e)),[])}}(e.fit);e.extent?t.fitExtent(e.extent,n):e.size&&t.fitSize(e.size,n)}(n,t),e.fork(e.NO_SOURCE|e.NO_FIELDS)};var Sw=Object.freeze({__proto__:null,contour:ry,geojson:iy,geopath:ww,geopoint:Aw,geoshape:kw,graticule:Mw,heatmap:Ew,isocontour:Yv,kde2d:Kv,projection:Cw});function Bw(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,a,u,o,s,l,c,f,h,d=t._root,p={data:r},g=t._x0,m=t._y0,v=t._x1,y=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((l=e>=(a=(g+v)/2))?g=a:v=a,(c=n>=(u=(m+y)/2))?m=u:y=u,i=d,!(d=d[f=c<<1|l]))return i[f]=p,t;if(o=+t._x.call(null,d.data),s=+t._y.call(null,d.data),e===o&&n===s)return p.next=d,i?i[f]=p:t._root=p,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(l=e>=(a=(g+v)/2))?g=a:v=a,(c=n>=(u=(m+y)/2))?m=u:y=u}while((f=c<<1|l)==(h=(s>=u)<<1|o>=a));return i[h]=d,i[f]=p,t}function zw(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function Tw(t){return t[0]}function Nw(t){return t[1]}function Ow(t,e,n){var r=new Rw(null==e?Tw:e,null==n?Nw:n,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function Rw(t,e,n,r,i,a){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function qw(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var Uw=Ow.prototype=Rw.prototype;function Lw(t){return function(){return t}}function Pw(){return 1e-6*(Math.random()-.5)}function $w(t){return t.x+t.vx}function jw(t){return t.y+t.vy}function Iw(t){return t.index}function Hw(t,e){var n=t.get(e);if(!n)throw new Error("missing: "+e);return n}Uw.copy=function(){var t,e,n=new Rw(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=qw(r),n;for(t=[{source:r,target:n._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=new Array(4)}):r.target[i]=qw(e));return n},Uw.add=function(t){var e=+this._x.call(null,t),n=+this._y.call(null,t);return Bw(this.cover(e,n),e,n,t)},Uw.addAll=function(t){var e,n,r,i,a=t.length,u=new Array(a),o=new Array(a),s=1/0,l=1/0,c=-1/0,f=-1/0;for(n=0;n<a;++n)isNaN(r=+this._x.call(null,e=t[n]))||isNaN(i=+this._y.call(null,e))||(u[n]=r,o[n]=i,r<s&&(s=r),r>c&&(c=r),i<l&&(l=i),i>f&&(f=i));if(s>c||l>f)return this;for(this.cover(s,l).cover(c,f),n=0;n<a;++n)Bw(this,u[n],o[n],t[n]);return this},Uw.cover=function(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,a=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,a=(r=Math.floor(e))+1;else{for(var u,o,s=i-n,l=this._root;n>t||t>=i||r>e||e>=a;)switch(o=(e<r)<<1|t<n,(u=new Array(4))[o]=l,l=u,s*=2,o){case 0:i=n+s,a=r+s;break;case 1:n=i-s,a=r+s;break;case 2:i=n+s,r=a-s;break;case 3:n=i-s,r=a-s}this._root&&this._root.length&&(this._root=l)}return this._x0=n,this._y0=r,this._x1=i,this._y1=a,this},Uw.data=function(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},Uw.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},Uw.find=function(t,e,n){var r,i,a,u,o,s,l,c=this._x0,f=this._y0,h=this._x1,d=this._y1,p=[],g=this._root;for(g&&p.push(new zw(g,c,f,h,d)),null==n?n=1/0:(c=t-n,f=e-n,h=t+n,d=e+n,n*=n);s=p.pop();)if(!(!(g=s.node)||(i=s.x0)>h||(a=s.y0)>d||(u=s.x1)<c||(o=s.y1)<f))if(g.length){var m=(i+u)/2,v=(a+o)/2;p.push(new zw(g[3],m,v,u,o),new zw(g[2],i,v,m,o),new zw(g[1],m,a,u,v),new zw(g[0],i,a,m,v)),(l=(e>=v)<<1|t>=m)&&(s=p[p.length-1],p[p.length-1]=p[p.length-1-l],p[p.length-1-l]=s)}else{var y=t-+this._x.call(null,g.data),_=e-+this._y.call(null,g.data),x=y*y+_*_;if(x<n){var b=Math.sqrt(n=x);c=t-b,f=e-b,h=t+b,d=e+b,r=g.data}}return r},Uw.remove=function(t){if(isNaN(a=+this._x.call(null,t))||isNaN(u=+this._y.call(null,t)))return this;var e,n,r,i,a,u,o,s,l,c,f,h,d=this._root,p=this._x0,g=this._y0,m=this._x1,v=this._y1;if(!d)return this;if(d.length)for(;;){if((l=a>=(o=(p+m)/2))?p=o:m=o,(c=u>=(s=(g+v)/2))?g=s:v=s,e=d,!(d=d[f=c<<1|l]))return this;if(!d.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(n=e,h=f)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):e?(i?e[f]=i:delete e[f],(d=e[0]||e[1]||e[2]||e[3])&&d===(e[3]||e[2]||e[1]||e[0])&&!d.length&&(n?n[h]=d:this._root=d),this):(this._root=i,this)},Uw.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},Uw.root=function(){return this._root},Uw.size=function(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},Uw.visit=function(t){var e,n,r,i,a,u,o=[],s=this._root;for(s&&o.push(new zw(s,this._x0,this._y0,this._x1,this._y1));e=o.pop();)if(!t(s=e.node,r=e.x0,i=e.y0,a=e.x1,u=e.y1)&&s.length){var l=(r+a)/2,c=(i+u)/2;(n=s[3])&&o.push(new zw(n,l,c,a,u)),(n=s[2])&&o.push(new zw(n,r,c,l,u)),(n=s[1])&&o.push(new zw(n,l,i,a,c)),(n=s[0])&&o.push(new zw(n,r,i,l,c))}return this},Uw.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new zw(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var i=e.node;if(i.length){var a,u=e.x0,o=e.y0,s=e.x1,l=e.y1,c=(u+s)/2,f=(o+l)/2;(a=i[0])&&n.push(new zw(a,u,o,c,f)),(a=i[1])&&n.push(new zw(a,c,o,s,f)),(a=i[2])&&n.push(new zw(a,u,f,c,l)),(a=i[3])&&n.push(new zw(a,c,f,s,l))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},Uw.x=function(t){return arguments.length?(this._x=t,this):this._x},Uw.y=function(t){return arguments.length?(this._y=t,this):this._y};var Ww={value:function(){}};function Yw(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new Vw(r)}function Vw(t){this._=t}function Gw(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",r=t.indexOf(".");if(r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function Xw(t,e){for(var n,r=0,i=t.length;r<i;++r)if((n=t[r]).name===e)return n.value}function Jw(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=Ww,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}Vw.prototype=Yw.prototype={constructor:Vw,on:function(t,e){var n,r=this._,i=Gw(t+"",r),a=-1,u=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<u;)if(n=(t=i[a]).type)r[n]=Jw(r[n],t.name,e);else if(null==e)for(n in r)r[n]=Jw(r[n],t.name,null);return this}for(;++a<u;)if((n=(t=i[a]).type)&&(n=Xw(r[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new Vw(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,i=new Array(n),a=0;a<n;++a)i[a]=arguments[a+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=0,n=(r=this._[t]).length;a<n;++a)r[a].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,a=r.length;i<a;++i)r[i].value.apply(e,n)}};var Zw,Qw,Kw=0,tA=0,eA=0,nA=0,rA=0,iA=0,aA="object"==typeof performance&&performance.now?performance:Date,uA="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function oA(){return rA||(uA(sA),rA=aA.now()+iA)}function sA(){rA=0}function lA(){this._call=this._time=this._next=null}function cA(t,e,n){var r=new lA;return r.restart(t,e,n),r}function fA(){rA=(nA=aA.now())+iA,Kw=tA=0;try{!function(){oA(),++Kw;for(var t,e=Zw;e;)(t=rA-e._time)>=0&&e._call.call(null,t),e=e._next;--Kw}()}finally{Kw=0,function(){var t,e,n=Zw,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Zw=e);Qw=t,dA(r)}(),rA=0}}function hA(){var t=aA.now(),e=t-nA;e>1e3&&(iA-=e,nA=t)}function dA(t){Kw||(tA&&(tA=clearTimeout(tA)),t-rA>24?(t<1/0&&(tA=setTimeout(fA,t-aA.now()-iA)),eA&&(eA=clearInterval(eA))):(eA||(nA=aA.now(),eA=setInterval(hA,1e3)),Kw=1,uA(fA)))}function pA(t){return t.x}function gA(t){return t.y}lA.prototype=cA.prototype={constructor:lA,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?oA():+n)+(null==e?0:+e),this._next||Qw===this||(Qw?Qw._next=this:Zw=this,Qw=this),this._call=t,this._time=n,dA()},stop:function(){this._call&&(this._call=null,this._time=1/0,dA())}};var mA=Math.PI*(3-Math.sqrt(5));var vA={center:function(t,e){var n;function r(){var r,i,a=n.length,u=0,o=0;for(r=0;r<a;++r)u+=(i=n[r]).x,o+=i.y;for(u=u/a-t,o=o/a-e,r=0;r<a;++r)(i=n[r]).x-=u,i.y-=o}return null==t&&(t=0),null==e&&(e=0),r.initialize=function(t){n=t},r.x=function(e){return arguments.length?(t=+e,r):t},r.y=function(t){return arguments.length?(e=+t,r):e},r},collide:function(t){var e,n,r=1,i=1;function a(){for(var t,a,o,s,l,c,f,h=e.length,d=0;d<i;++d)for(a=Ow(e,$w,jw).visitAfter(u),t=0;t<h;++t)o=e[t],c=n[o.index],f=c*c,s=o.x+o.vx,l=o.y+o.vy,a.visit(p);function p(t,e,n,i,a){var u=t.data,h=t.r,d=c+h;if(!u)return e>s+d||i<s-d||n>l+d||a<l-d;if(u.index>o.index){var p=s-u.x-u.vx,g=l-u.y-u.vy,m=p*p+g*g;m<d*d&&(0===p&&(m+=(p=Pw())*p),0===g&&(m+=(g=Pw())*g),m=(d-(m=Math.sqrt(m)))/m*r,o.vx+=(p*=m)*(d=(h*=h)/(f+h)),o.vy+=(g*=m)*d,u.vx-=p*(d=1-d),u.vy-=g*d)}}}function u(t){if(t.data)return t.r=n[t.data.index];for(var e=t.r=0;e<4;++e)t[e]&&t[e].r>t.r&&(t.r=t[e].r)}function o(){if(e){var r,i,a=e.length;for(n=new Array(a),r=0;r<a;++r)i=e[r],n[i.index]=+t(i,r,e)}}return"function"!=typeof t&&(t=Lw(null==t?1:+t)),a.initialize=function(t){e=t,o()},a.iterations=function(t){return arguments.length?(i=+t,a):i},a.strength=function(t){return arguments.length?(r=+t,a):r},a.radius=function(e){return arguments.length?(t="function"==typeof e?e:Lw(+e),o(),a):t},a},nbody:function(){var t,e,n,r,i=Lw(-30),a=1,u=1/0,o=.81;function s(r){var i,a=t.length,u=Ow(t,pA,gA).visitAfter(c);for(n=r,i=0;i<a;++i)e=t[i],u.visit(f)}function l(){if(t){var e,n,a=t.length;for(r=new Array(a),e=0;e<a;++e)n=t[e],r[n.index]=+i(n,e,t)}}function c(t){var e,n,i,a,u,o=0,s=0;if(t.length){for(i=a=u=0;u<4;++u)(e=t[u])&&(n=Math.abs(e.value))&&(o+=e.value,s+=n,i+=n*e.x,a+=n*e.y);t.x=i/s,t.y=a/s}else{(e=t).x=e.data.x,e.y=e.data.y;do{o+=r[e.data.index]}while(e=e.next)}t.value=o}function f(t,i,s,l){if(!t.value)return!0;var c=t.x-e.x,f=t.y-e.y,h=l-i,d=c*c+f*f;if(h*h/o<d)return d<u&&(0===c&&(d+=(c=Pw())*c),0===f&&(d+=(f=Pw())*f),d<a&&(d=Math.sqrt(a*d)),e.vx+=c*t.value*n/d,e.vy+=f*t.value*n/d),!0;if(!(t.length||d>=u)){(t.data!==e||t.next)&&(0===c&&(d+=(c=Pw())*c),0===f&&(d+=(f=Pw())*f),d<a&&(d=Math.sqrt(a*d)));do{t.data!==e&&(h=r[t.data.index]*n/d,e.vx+=c*h,e.vy+=f*h)}while(t=t.next)}}return s.initialize=function(e){t=e,l()},s.strength=function(t){return arguments.length?(i="function"==typeof t?t:Lw(+t),l(),s):i},s.distanceMin=function(t){return arguments.length?(a=t*t,s):Math.sqrt(a)},s.distanceMax=function(t){return arguments.length?(u=t*t,s):Math.sqrt(u)},s.theta=function(t){return arguments.length?(o=t*t,s):Math.sqrt(o)},s},link:function(t){var e,n,r,i,a,u=Iw,o=function(t){return 1/Math.min(i[t.source.index],i[t.target.index])},s=Lw(30),l=1;function c(r){for(var i=0,u=t.length;i<l;++i)for(var o,s,c,f,h,d,p,g=0;g<u;++g)s=(o=t[g]).source,f=(c=o.target).x+c.vx-s.x-s.vx||Pw(),h=c.y+c.vy-s.y-s.vy||Pw(),f*=d=((d=Math.sqrt(f*f+h*h))-n[g])/d*r*e[g],h*=d,c.vx-=f*(p=a[g]),c.vy-=h*p,s.vx+=f*(p=1-p),s.vy+=h*p}function f(){if(r){var o,s,l=r.length,c=t.length,f=new Map(r.map((t,e)=>[u(t,e,r),t]));for(o=0,i=new Array(l);o<c;++o)(s=t[o]).index=o,"object"!=typeof s.source&&(s.source=Hw(f,s.source)),"object"!=typeof s.target&&(s.target=Hw(f,s.target)),i[s.source.index]=(i[s.source.index]||0)+1,i[s.target.index]=(i[s.target.index]||0)+1;for(o=0,a=new Array(c);o<c;++o)s=t[o],a[o]=i[s.source.index]/(i[s.source.index]+i[s.target.index]);e=new Array(c),h(),n=new Array(c),d()}}function h(){if(r)for(var n=0,i=t.length;n<i;++n)e[n]=+o(t[n],n,t)}function d(){if(r)for(var e=0,i=t.length;e<i;++e)n[e]=+s(t[e],e,t)}return null==t&&(t=[]),c.initialize=function(t){r=t,f()},c.links=function(e){return arguments.length?(t=e,f(),c):t},c.id=function(t){return arguments.length?(u=t,c):u},c.iterations=function(t){return arguments.length?(l=+t,c):l},c.strength=function(t){return arguments.length?(o="function"==typeof t?t:Lw(+t),h(),c):o},c.distance=function(t){return arguments.length?(s="function"==typeof t?t:Lw(+t),d(),c):s},c},x:function(t){var e,n,r,i=Lw(.1);function a(t){for(var i,a=0,u=e.length;a<u;++a)(i=e[a]).vx+=(r[a]-i.x)*n[a]*t}function u(){if(e){var a,u=e.length;for(n=new Array(u),r=new Array(u),a=0;a<u;++a)n[a]=isNaN(r[a]=+t(e[a],a,e))?0:+i(e[a],a,e)}}return"function"!=typeof t&&(t=Lw(null==t?0:+t)),a.initialize=function(t){e=t,u()},a.strength=function(t){return arguments.length?(i="function"==typeof t?t:Lw(+t),u(),a):i},a.x=function(e){return arguments.length?(t="function"==typeof e?e:Lw(+e),u(),a):t},a},y:function(t){var e,n,r,i=Lw(.1);function a(t){for(var i,a=0,u=e.length;a<u;++a)(i=e[a]).vy+=(r[a]-i.y)*n[a]*t}function u(){if(e){var a,u=e.length;for(n=new Array(u),r=new Array(u),a=0;a<u;++a)n[a]=isNaN(r[a]=+t(e[a],a,e))?0:+i(e[a],a,e)}}return"function"!=typeof t&&(t=Lw(null==t?0:+t)),a.initialize=function(t){e=t,u()},a.strength=function(t){return arguments.length?(i="function"==typeof t?t:Lw(+t),u(),a):i},a.y=function(e){return arguments.length?(t="function"==typeof e?e:Lw(+e),u(),a):t},a}},yA=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],_A=["static","iterations"],xA=["x","y","vx","vy"];function bA(t){Hr.call(this,null,t)}bA.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},{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:xA}]};var wA=rt(bA,Hr);function AA(t,e,n,r){var i,a,u,o,s=I(e.forces);for(i=0,a=yA.length;i<a;++i)"forces"!==(u=yA[i])&&e.modified(u)&&t[u](e[u]);for(i=0,a=s.length;i<a;++i)o="forces"+i,(u=n||e.modified("forces",i)?MA(s[i]):r&&kA(s[i],r)?t.force(o):null)&&t.force(o,u);for(a=t.numForces||0;i<a;++i)t.force("forces"+i,null);return t.numForces=s.length,t}function kA(t,e){var n,i;for(n in t)if(W(i=t[n])&&e.modified(r(i)))return 1;return 0}function MA(t){var e,n;for(n in K(vA,t.force)||i("Unrecognized force: "+t.force),e=vA[t.force](),t)W(e[n])&&EA(e[n],t[n],t);return e}function EA(t,e,n){t(W(e)?function(t){return e(t,n)}:e)}wA.transform=function(t,e){var n,r,i=this.value,a=e.changed(e.ADD_REM),u=t.modified(yA),o=t.iterations||300;if(i?(a&&(e.modifies("index"),i.nodes(e.source)),(u||e.changed(e.MOD))&&AA(i,t,0,e)):(this.value=i=function(t,e){var n=function(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),a=0,u=.6,o=new Map,s=cA(c),l=Yw("tick","end");function c(){f(),l.call("tick",e),n<r&&(s.stop(),l.call("end",e))}function f(r){var s,l,c=t.length;void 0===r&&(r=1);for(var f=0;f<r;++f)for(n+=(a-n)*i,o.forEach((function(t){t(n)})),s=0;s<c;++s)null==(l=t[s]).fx?l.x+=l.vx*=u:(l.x=l.fx,l.vx=0),null==l.fy?l.y+=l.vy*=u:(l.y=l.fy,l.vy=0);return e}function h(){for(var e,n=0,r=t.length;n<r;++n){if((e=t[n]).index=n,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),isNaN(e.x)||isNaN(e.y)){var i=10*Math.sqrt(n),a=n*mA;e.x=i*Math.cos(a),e.y=i*Math.sin(a)}(isNaN(e.vx)||isNaN(e.vy))&&(e.vx=e.vy=0)}}function d(e){return e.initialize&&e.initialize(t),e}return null==t&&(t=[]),h(),e={tick:f,restart:function(){return s.restart(c),e},stop:function(){return s.stop(),e},nodes:function(n){return arguments.length?(t=n,h(),o.forEach(d),e):t},alpha:function(t){return arguments.length?(n=+t,e):n},alphaMin:function(t){return arguments.length?(r=+t,e):r},alphaDecay:function(t){return arguments.length?(i=+t,e):+i},alphaTarget:function(t){return arguments.length?(a=+t,e):a},velocityDecay:function(t){return arguments.length?(u=1-t,e):1-u},force:function(t,n){return arguments.length>1?(null==n?o.delete(t):o.set(t,d(n)),e):o.get(t)},find:function(e,n,r){var i,a,u,o,s,l=0,c=t.length;for(null==r?r=1/0:r*=r,l=0;l<c;++l)(u=(i=e-(o=t[l]).x)*i+(a=n-o.y)*a)<r&&(s=o,r=u);return s},on:function(t,n){return arguments.length>1?(l.on(t,n),e):l.on(t)}}}(t),r=!1,i=n.stop,a=n.restart;return n.stopped=function(){return r},n.restart=function(){return r=!1,a()},n.stop=function(){return r=!0,i()},AA(n,e,!0).on("end",(function(){r=!0}))}(e.source,t),i.on("tick",(n=e.dataflow,r=this,function(){n.touch(r).run()})),t.static||(a=!0,i.tick()),e.modifies("index")),u||a||t.modified(_A)||e.changed()&&t.restart)if(i.alpha(Math.max(i.alpha(),t.alpha||1)).alphaDecay(1-Math.pow(i.alphaMin(),1/o)),t.static)for(i.stop();--o>=0;)i.tick();else if(i.stopped()&&i.restart(),!a)return e.StopPropagation;return this.finish(t,e)},wA.finish=function(t,e){for(var n,r=e.dataflow,i=this._argops,a=0,u=i.length;a<u;++a)if("forces"===(n=i[a]).name&&"link"===n.op._argval.force)for(var o,s=n.op._argops,l=0,c=s.length;l<c;++l)if("links"===s[l].name&&(o=s[l].op.source)){r.pulse(o,r.changeset().reflow());break}return e.reflow(t.modified()).modifies(xA)};var DA=Object.freeze({__proto__:null,force:bA});function CA(t,e,n){var r={};return t.each((function(t){var i=t.data;n(i)&&(r[e(i)]=t)})),t.lookup=r,t}function FA(t,e){return t.parent===e.parent?1:2}function SA(t,e){return t+e.x}function BA(t,e){return Math.max(t,e.y)}function zA(t){var e=0,n=t.children,r=n&&n.length;if(r)for(;--r>=0;)e+=n[r].value;else e=1;t.value=e}function TA(t,e){var n,r,i,a,u,o=new qA(t),s=+t.value&&(o.value=t.value),l=[o];for(null==e&&(e=NA);n=l.pop();)if(s&&(n.value=+n.data.value),(i=e(n.data))&&(u=i.length))for(n.children=new Array(u),a=u-1;a>=0;--a)l.push(r=n.children[a]=new qA(i[a])),r.parent=n,r.depth=n.depth+1;return o.eachBefore(RA)}function NA(t){return t.children}function OA(t){t.data=t.data.data}function RA(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function qA(t){this.data=t,this.depth=this.height=0,this.parent=null}qA.prototype=TA.prototype={constructor:qA,count:function(){return this.eachAfter(zA)},each:function(t){var e,n,r,i,a=this,u=[a];do{for(e=u.reverse(),u=[];a=e.pop();)if(t(a),n=a.children)for(r=0,i=n.length;r<i;++r)u.push(n[r])}while(u.length);return this},eachAfter:function(t){for(var e,n,r,i=this,a=[i],u=[];i=a.pop();)if(u.push(i),e=i.children)for(n=0,r=e.length;n<r;++n)a.push(e[n]);for(;i=u.pop();)t(i);return this},eachBefore:function(t){for(var e,n,r=this,i=[r];r=i.pop();)if(t(r),e=r.children)for(n=e.length-1;n>=0;--n)i.push(e[n]);return this},sum:function(t){return this.eachAfter((function(e){for(var n=+t(e.data)||0,r=e.children,i=r&&r.length;--i>=0;)n+=r[i].value;e.value=n}))},sort:function(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function(t){for(var e=this,n=function(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),i=null;t=n.pop(),e=r.pop();for(;t===e;)i=t,t=n.pop(),e=r.pop();return i}(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var i=r.length;t!==n;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function(){var t=this,e=[];return t.each((function(n){n!==t&&e.push({source:n.parent,target:n})})),e},copy:function(){return TA(this).eachBefore(OA)}};var UA=Array.prototype.slice;function LA(t){for(var e,n,r=0,i=(t=function(t){for(var e,n,r=t.length;r;)n=Math.random()*r--|0,e=t[r],t[r]=t[n],t[n]=e;return t}(UA.call(t))).length,a=[];r<i;)e=t[r],n&&jA(n,e)?++r:(n=HA(a=PA(a,e)),r=0);return n}function PA(t,e){var n,r;if(IA(e,t))return[e];for(n=0;n<t.length;++n)if($A(e,t[n])&&IA(WA(t[n],e),t))return[t[n],e];for(n=0;n<t.length-1;++n)for(r=n+1;r<t.length;++r)if($A(WA(t[n],t[r]),e)&&$A(WA(t[n],e),t[r])&&$A(WA(t[r],e),t[n])&&IA(YA(t[n],t[r],e),t))return[t[n],t[r],e];throw new Error}function $A(t,e){var n=t.r-e.r,r=e.x-t.x,i=e.y-t.y;return n<0||n*n<r*r+i*i}function jA(t,e){var n=t.r-e.r+1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function IA(t,e){for(var n=0;n<e.length;++n)if(!jA(t,e[n]))return!1;return!0}function HA(t){switch(t.length){case 1:return{x:(e=t[0]).x,y:e.y,r:e.r};case 2:return WA(t[0],t[1]);case 3:return YA(t[0],t[1],t[2])}var e}function WA(t,e){var n=t.x,r=t.y,i=t.r,a=e.x,u=e.y,o=e.r,s=a-n,l=u-r,c=o-i,f=Math.sqrt(s*s+l*l);return{x:(n+a+s/f*c)/2,y:(r+u+l/f*c)/2,r:(f+i+o)/2}}function YA(t,e,n){var r=t.x,i=t.y,a=t.r,u=e.x,o=e.y,s=e.r,l=n.x,c=n.y,f=n.r,h=r-u,d=r-l,p=i-o,g=i-c,m=s-a,v=f-a,y=r*r+i*i-a*a,_=y-u*u-o*o+s*s,x=y-l*l-c*c+f*f,b=d*p-h*g,w=(p*x-g*_)/(2*b)-r,A=(g*m-p*v)/b,k=(d*_-h*x)/(2*b)-i,M=(h*v-d*m)/b,E=A*A+M*M-1,D=2*(a+w*A+k*M),C=w*w+k*k-a*a,F=-(E?(D+Math.sqrt(D*D-4*E*C))/(2*E):C/D);return{x:r+w+A*F,y:i+k+M*F,r:F}}function VA(t,e,n){var r,i,a,u,o=t.x-e.x,s=t.y-e.y,l=o*o+s*s;l?(i=e.r+n.r,i*=i,u=t.r+n.r,i>(u*=u)?(r=(l+u-i)/(2*l),a=Math.sqrt(Math.max(0,u/l-r*r)),n.x=t.x-r*o-a*s,n.y=t.y-r*s+a*o):(r=(l+i-u)/(2*l),a=Math.sqrt(Math.max(0,i/l-r*r)),n.x=e.x+r*o-a*s,n.y=e.y+r*s+a*o)):(n.x=e.x+n.r,n.y=e.y)}function GA(t,e){var n=t.r+e.r-1e-6,r=e.x-t.x,i=e.y-t.y;return n>0&&n*n>r*r+i*i}function XA(t){var e=t._,n=t.next._,r=e.r+n.r,i=(e.x*n.r+n.x*e.r)/r,a=(e.y*n.r+n.y*e.r)/r;return i*i+a*a}function JA(t){this._=t,this.next=null,this.previous=null}function ZA(t){return null==t?null:QA(t)}function QA(t){if("function"!=typeof t)throw new Error;return t}function KA(){return 0}function tk(t){return function(){return t}}function ek(t){return Math.sqrt(t.value)}function nk(t){return function(e){e.children||(e.r=Math.max(0,+t(e)||0))}}function rk(t,e){return function(n){if(r=n.children){var r,i,a,u=r.length,o=t(n)*e||0;if(o)for(i=0;i<u;++i)r[i].r+=o;if(a=function(t){if(!(i=t.length))return 0;var e,n,r,i,a,u,o,s,l,c,f;if((e=t[0]).x=0,e.y=0,!(i>1))return e.r;if(n=t[1],e.x=-n.r,n.x=e.r,n.y=0,!(i>2))return e.r+n.r;VA(n,e,r=t[2]),e=new JA(e),n=new JA(n),r=new JA(r),e.next=r.previous=n,n.next=e.previous=r,r.next=n.previous=e;t:for(o=3;o<i;++o){VA(e._,n._,r=t[o]),r=new JA(r),s=n.next,l=e.previous,c=n._.r,f=e._.r;do{if(c<=f){if(GA(s._,r._)){n=s,e.next=n,n.previous=e,--o;continue t}c+=s._.r,s=s.next}else{if(GA(l._,r._)){(e=l).next=n,n.previous=e,--o;continue t}f+=l._.r,l=l.previous}}while(s!==l.next);for(r.previous=e,r.next=n,e.next=n.previous=n=r,a=XA(e);(r=r.next)!==n;)(u=XA(r))<a&&(e=r,a=u);n=e.next}for(e=[n._],r=n;(r=r.next)!==n;)e.push(r._);for(r=LA(e),o=0;o<i;++o)(e=t[o]).x-=r.x,e.y-=r.y;return r.r}(r),o)for(i=0;i<u;++i)r[i].r-=o;n.r=a+o}}}function ik(t){return function(e){var n=e.parent;e.r*=t,n&&(e.x=n.x+t*e.x,e.y=n.y+t*e.y)}}function ak(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function uk(t,e,n,r,i){for(var a,u=t.children,o=-1,s=u.length,l=t.value&&(r-e)/t.value;++o<s;)(a=u[o]).y0=n,a.y1=i,a.x0=e,a.x1=e+=a.value*l}var ok={depth:-1},sk={};function lk(t){return t.id}function ck(t){return t.parentId}function fk(){var t=lk,e=ck;function n(n){var r,i,a,u,o,s,l,c=n.length,f=new Array(c),h={};for(i=0;i<c;++i)r=n[i],o=f[i]=new qA(r),null!=(s=t(r,i,n))&&(s+="")&&(h[l="$"+(o.id=s)]=l in h?sk:o);for(i=0;i<c;++i)if(o=f[i],null!=(s=e(n[i],i,n))&&(s+="")){if(!(u=h["$"+s]))throw new Error("missing: "+s);if(u===sk)throw new Error("ambiguous: "+s);u.children?u.children.push(o):u.children=[o],o.parent=u}else{if(a)throw new Error("multiple roots");a=o}if(!a)throw new Error("no root");if(a.parent=ok,a.eachBefore((function(t){t.depth=t.parent.depth+1,--c})).eachBefore(RA),a.parent=null,c>0)throw new Error("cycle");return a}return n.id=function(e){return arguments.length?(t=QA(e),n):t},n.parentId=function(t){return arguments.length?(e=QA(t),n):e},n}function hk(t,e){return t.parent===e.parent?1:2}function dk(t){var e=t.children;return e?e[0]:t.t}function pk(t){var e=t.children;return e?e[e.length-1]:t.t}function gk(t,e,n){var r=n/(e.i-t.i);e.c-=r,e.s+=n,t.c+=r,e.z+=n,e.m+=n}function mk(t,e,n){return t.a.parent===e.parent?t.a:n}function vk(t,e){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=e}function yk(t,e,n,r,i){for(var a,u=t.children,o=-1,s=u.length,l=t.value&&(i-n)/t.value;++o<s;)(a=u[o]).x0=e,a.x1=r,a.y0=n,a.y1=n+=a.value*l}vk.prototype=Object.create(qA.prototype);var _k=(1+Math.sqrt(5))/2;function xk(t,e,n,r,i,a){for(var u,o,s,l,c,f,h,d,p,g,m,v=[],y=e.children,_=0,x=0,b=y.length,w=e.value;_<b;){s=i-n,l=a-r;do{c=y[x++].value}while(!c&&x<b);for(f=h=c,m=c*c*(g=Math.max(l/s,s/l)/(w*t)),p=Math.max(h/m,m/f);x<b;++x){if(c+=o=y[x].value,o<f&&(f=o),o>h&&(h=o),m=c*c*g,(d=Math.max(h/m,m/f))>p){c-=o;break}p=d}v.push(u={value:c,dice:s<l,children:y.slice(_,x)}),u.dice?uk(u,n,r,i,w?r+=l*c/w:a):yk(u,n,r,w?n+=s*c/w:i,a),w-=c,_=x}return v}var bk=function t(e){function n(t,n,r,i,a){xk(e,t,n,r,i,a)}return n.ratio=function(e){return t((e=+e)>1?e:1)},n}(_k);var wk=function t(e){function n(t,n,r,i,a){if((u=t._squarify)&&u.ratio===e)for(var u,o,s,l,c,f=-1,h=u.length,d=t.value;++f<h;){for(s=(o=u[f]).children,l=o.value=0,c=s.length;l<c;++l)o.value+=s[l].value;o.dice?uk(o,n,r,i,r+=(a-r)*o.value/d):yk(o,n,r,n+=(i-n)*o.value/d,a),d-=o.value}else t._squarify=u=xk(e,t,n,r,i,a),u.ratio=e}return n.ratio=function(e){return t((e=+e)>1?e:1)},n}(_k);function Ak(t){Hr.call(this,null,t)}function kk(t){return t.values}function Mk(){var t,e=[];return t={entries:t=>function t(n,r){if(++r>e.length)return n;var i,a=[];for(i in n)a.push({key:i,values:t(n[i],r)});return a}(function t(n,r){if(r>=e.length)return n;for(var i,a,u,o=-1,s=n.length,l=e[r++],c={},f={};++o<s;)(u=c[i=l(a=n[o])+""])?u.push(a):c[i]=[a];for(i in c)f[i]=t(c[i],r);return f}(t,0),0),key:n=>(e.push(n),t)}}function Ek(t){Hr.call(this,null,t)}function Dk(t,e){return t.parent===e.parent?1:2}Ak.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]},rt(Ak,Hr).transform=function(t,e){e.source||i("Nest transform requires an upstream data source.");var n=t.generate,r=t.modified(),a=e.clone(),u=this.value;return(!u||r||e.changed())&&(u&&u.each(t=>{t.children&&Dt(t.data)&&a.rem.push(t.data)}),this.value=u=TA({values:I(t.keys).reduce((t,e)=>(t.key(e),t),Mk()).entries(a.source)},kk),n&&u.each(t=>{t.children&&(t=St(t.data),a.add.push(t),a.source.push(t))}),CA(u,Ct,Ct)),a.source.root=u,a},rt(Ek,Hr).transform=function(t,e){e.source&&e.source.root||i(this.constructor.name+" transform requires a backing tree data source.");var n=this.layout(t.method),r=this.fields,a=e.source.root,u=t.as||r;t.field?a.sum(t.field):a.count(),t.sort&&a.sort(Nt(t.sort,t=>t.data)),function(t,e,n){for(var r,i=0,a=e.length;i<a;++i)(r=e[i])in n&&t[r](n[r])}(n,this.params,t),n.separation&&n.separation(!1!==t.separation?Dk:g);try{this.value=n(a)}catch(t){i(t)}return a.each((function(t){!function(t,e,n){for(var r=t.data,i=0,a=e.length-1;i<a;++i)r[n[i]]=t[e[i]];r[n[a]]=t.children?t.children.length:0}(t,r,u)})),e.reflow(t.modified()).modifies(u).modifies("leaf")};var Ck=["x","y","r","depth","children"];function Fk(t){Ek.call(this,t)}Fk.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:Ck.length,default:Ck}]};var Sk=rt(Fk,Ek);Sk.layout=function(){var t=null,e=1,n=1,r=KA;function i(i){return i.x=e/2,i.y=n/2,t?i.eachBefore(nk(t)).eachAfter(rk(r,.5)).eachBefore(ik(1)):i.eachBefore(nk(ek)).eachAfter(rk(KA,1)).eachAfter(rk(r,i.r/Math.min(e,n))).eachBefore(ik(Math.min(e,n)/(2*i.r))),i}return i.radius=function(e){return arguments.length?(t=ZA(e),i):t},i.size=function(t){return arguments.length?(e=+t[0],n=+t[1],i):[e,n]},i.padding=function(t){return arguments.length?(r="function"==typeof t?t:tk(+t),i):r},i},Sk.params=["radius","size","padding"],Sk.fields=Ck;var Bk=["x0","y0","x1","y1","depth","children"];function zk(t){Ek.call(this,t)}zk.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:Bk.length,default:Bk}]};var Tk=rt(zk,Ek);function Nk(t){Hr.call(this,null,t)}Tk.layout=function(){var t=1,e=1,n=0,r=!1;function i(i){var a=i.height+1;return i.x0=i.y0=n,i.x1=t,i.y1=e/a,i.eachBefore(function(t,e){return function(r){r.children&&uk(r,r.x0,t*(r.depth+1)/e,r.x1,t*(r.depth+2)/e);var i=r.x0,a=r.y0,u=r.x1-n,o=r.y1-n;u<i&&(i=u=(i+u)/2),o<a&&(a=o=(a+o)/2),r.x0=i,r.y0=a,r.x1=u,r.y1=o}}(e,a)),r&&i.eachBefore(ak),i}return i.round=function(t){return arguments.length?(r=!!t,i):r},i.size=function(n){return arguments.length?(t=+n[0],e=+n[1],i):[t,e]},i.padding=function(t){return arguments.length?(n=+t,i):n},i},Tk.params=["size","round","padding"],Tk.fields=Bk,Nk.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},rt(Nk,Hr).transform=function(t,e){e.source||i("Stratify transform requires an upstream data source.");var n=this.value,r=t.modified(),a=e.fork(e.ALL).materialize(e.SOURCE),u=!this.value||r||e.changed(e.ADD_REM)||e.modified(t.key.fields)||e.modified(t.parentKey.fields);return a.source=a.source.slice(),u&&(n=a.source.length?CA(fk().id(t.key).parentId(t.parentKey)(a.source),t.key,m):CA(fk()([{}]),t.key,t.key)),a.source.root=this.value=n,a};var Ok={tidy:function(){var t=hk,e=1,n=1,r=null;function i(i){var s=function(t){for(var e,n,r,i,a,u=new vk(t,0),o=[u];e=o.pop();)if(r=e._.children)for(e.children=new Array(a=r.length),i=a-1;i>=0;--i)o.push(n=e.children[i]=new vk(r[i],i)),n.parent=e;return(u.parent=new vk(null,0)).children=[u],u}(i);if(s.eachAfter(a),s.parent.m=-s.z,s.eachBefore(u),r)i.eachBefore(o);else{var l=i,c=i,f=i;i.eachBefore((function(t){t.x<l.x&&(l=t),t.x>c.x&&(c=t),t.depth>f.depth&&(f=t)}));var h=l===c?1:t(l,c)/2,d=h-l.x,p=e/(c.x+h+d),g=n/(f.depth||1);i.eachBefore((function(t){t.x=(t.x+d)*p,t.y=t.depth*g}))}return i}function a(e){var n=e.children,r=e.parent.children,i=e.i?r[e.i-1]:null;if(n){!function(t){for(var e,n=0,r=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=n,e.m+=n,n+=e.s+(r+=e.c)}(e);var a=(n[0].z+n[n.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-a):e.z=a}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,n,r){if(n){for(var i,a=e,u=e,o=n,s=a.parent.children[0],l=a.m,c=u.m,f=o.m,h=s.m;o=pk(o),a=dk(a),o&&a;)s=dk(s),(u=pk(u)).a=e,(i=o.z+f-a.z-l+t(o._,a._))>0&&(gk(mk(o,e,r),e,i),l+=i,c+=i),f+=o.m,l+=a.m,h+=s.m,c+=u.m;o&&!pk(u)&&(u.t=o,u.m+=f-c),a&&!dk(s)&&(s.t=a,s.m+=l-h,r=e)}return r}(e,i,e.parent.A||r[0])}function u(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function o(t){t.x*=e,t.y=t.depth*n}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(r=!1,e=+t[0],n=+t[1],i):r?null:[e,n]},i.nodeSize=function(t){return arguments.length?(r=!0,e=+t[0],n=+t[1],i):r?[e,n]:null},i},cluster:function(){var t=FA,e=1,n=1,r=!1;function i(i){var a,u=0;i.eachAfter((function(e){var n=e.children;n?(e.x=function(t){return t.reduce(SA,0)/t.length}(n),e.y=function(t){return 1+t.reduce(BA,0)}(n)):(e.x=a?u+=t(e,a):0,e.y=0,a=e)}));var o=function(t){for(var e;e=t.children;)t=e[0];return t}(i),s=function(t){for(var e;e=t.children;)t=e[e.length-1];return t}(i),l=o.x-t(o,s)/2,c=s.x+t(s,o)/2;return i.eachAfter(r?function(t){t.x=(t.x-i.x)*e,t.y=(i.y-t.y)*n}:function(t){t.x=(t.x-l)/(c-l)*e,t.y=(1-(i.y?t.y/i.y:1))*n})}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(r=!1,e=+t[0],n=+t[1],i):r?null:[e,n]},i.nodeSize=function(t){return arguments.length?(r=!0,e=+t[0],n=+t[1],i):r?[e,n]:null},i}},Rk=["x","y","depth","children"];function qk(t){Ek.call(this,t)}qk.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:Rk.length,default:Rk}]};var Uk=rt(qk,Ek);function Lk(t){Hr.call(this,[],t)}Uk.layout=function(t){var e=t||"tidy";if(K(Ok,e))return Ok[e]();i("Unrecognized Tree layout method: "+e)},Uk.params=["size","nodeSize"],Uk.fields=Rk,Lk.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},rt(Lk,Hr).transform=function(t,e){var n=this.value,r=e.source&&e.source.root,a=e.fork(e.NO_SOURCE),u={};return r||i("TreeLinks transform requires a tree data source."),e.changed(e.ADD_REM)?(a.rem=n,e.visit(e.SOURCE,(function(t){u[Ct(t)]=1})),r.each((function(t){var e=t.data,n=t.parent&&t.parent.data;n&&u[Ct(e)]&&u[Ct(n)]&&a.add.push(St({source:n,target:e}))})),this.value=a.add):e.changed(e.MOD)&&(e.visit(e.MOD,(function(t){u[Ct(t)]=1})),n.forEach((function(t){(u[Ct(t.source)]||u[Ct(t.target)])&&a.mod.push(t)}))),a};var Pk={binary:function(t,e,n,r,i){var a,u,o=t.children,s=o.length,l=new Array(s+1);for(l[0]=u=a=0;a<s;++a)l[a+1]=u+=o[a].value;!function t(e,n,r,i,a,u,s){if(e>=n-1){var c=o[e];return c.x0=i,c.y0=a,c.x1=u,void(c.y1=s)}var f=l[e],h=r/2+f,d=e+1,p=n-1;for(;d<p;){var g=d+p>>>1;l[g]<h?d=g+1:p=g}h-l[d-1]<l[d]-h&&e+1<d&&--d;var m=l[d]-f,v=r-m;if(u-i>s-a){var y=(i*v+u*m)/r;t(e,d,m,i,a,y,s),t(d,n,v,y,a,u,s)}else{var _=(a*v+s*m)/r;t(e,d,m,i,a,u,_),t(d,n,v,i,_,u,s)}}(0,s,t.value,e,n,r,i)},dice:uk,slice:yk,slicedice:function(t,e,n,r,i){(1&t.depth?yk:uk)(t,e,n,r,i)},squarify:bk,resquarify:wk},$k=["x0","y0","x1","y1","depth","children"];function jk(t){Ek.call(this,t)}jk.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:$k.length,default:$k}]};var Ik=rt(jk,Ek);Ik.layout=function(){var t=function(){var t=bk,e=!1,n=1,r=1,i=[0],a=KA,u=KA,o=KA,s=KA,l=KA;function c(t){return t.x0=t.y0=0,t.x1=n,t.y1=r,t.eachBefore(f),i=[0],e&&t.eachBefore(ak),t}function f(e){var n=i[e.depth],r=e.x0+n,c=e.y0+n,f=e.x1-n,h=e.y1-n;f<r&&(r=f=(r+f)/2),h<c&&(c=h=(c+h)/2),e.x0=r,e.y0=c,e.x1=f,e.y1=h,e.children&&(n=i[e.depth+1]=a(e)/2,r+=l(e)-n,c+=u(e)-n,(f-=o(e)-n)<r&&(r=f=(r+f)/2),(h-=s(e)-n)<c&&(c=h=(c+h)/2),t(e,r,c,f,h))}return c.round=function(t){return arguments.length?(e=!!t,c):e},c.size=function(t){return arguments.length?(n=+t[0],r=+t[1],c):[n,r]},c.tile=function(e){return arguments.length?(t=QA(e),c):t},c.padding=function(t){return arguments.length?c.paddingInner(t).paddingOuter(t):c.paddingInner()},c.paddingInner=function(t){return arguments.length?(a="function"==typeof t?t:tk(+t),c):a},c.paddingOuter=function(t){return arguments.length?c.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t):c.paddingTop()},c.paddingTop=function(t){return arguments.length?(u="function"==typeof t?t:tk(+t),c):u},c.paddingRight=function(t){return arguments.length?(o="function"==typeof t?t:tk(+t),c):o},c.paddingBottom=function(t){return arguments.length?(s="function"==typeof t?t:tk(+t),c):s},c.paddingLeft=function(t){return arguments.length?(l="function"==typeof t?t:tk(+t),c):l},c}();return t.ratio=function(e){var n=t.tile();n.ratio&&t.tile(n.ratio(e))},t.method=function(e){K(Pk,e)?t.tile(Pk[e]):i("Unrecognized Treemap layout method: "+e)},t},Ik.params=["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],Ik.fields=$k;var Hk=Object.freeze({__proto__:null,nest:Ak,pack:Fk,partition:zk,stratify:Nk,tree:qk,treelinks:Lk,treemap:jk});function Wk(t,e){var n,r,i,a,u,o,s=[],l=function(t){return t(a)};if(null==e)s.push(t);else for(n={},r=0,i=t.length;r<i;++r)a=t[r],(o=n[u=e.map(l)])||(n[u]=o=[],o.dims=u,s.push(o)),o.push(a);return s}function Yk(t){Hr.call(this,null,t)}Yk.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}]},rt(Yk,Hr).transform=function(t,e){var r=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const i=Wk(e.materialize(e.SOURCE).source,t.groupby),a=(t.groupby||[]).map(n),u=a.length,o=t.as||[n(t.x),n(t.y)],s=[];i.forEach(e=>{ua(e,t.x,t.y,t.bandwidth||.3).forEach(t=>{const n={};for(let t=0;t<u;++t)n[a[t]]=e.dims[t];n[o[0]]=t[0],n[o[1]]=t[1],s.push(St(n))})}),this.value&&(r.rem=this.value),this.value=r.add=r.source=s}return r};const Vk={linear:Ki,log:ta,exp:ea,pow:na,quad:ra,poly:ia};function Gk(t){Hr.call(this,null,t)}Gk.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(Vk)},{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}]},rt(Gk,Hr).transform=function(t,e){var r=e.fork(e.NO_SOURCE|e.NO_FIELDS);if(!this.value||e.changed()||t.modified()){const a=Wk(e.materialize(e.SOURCE).source,t.groupby),u=(t.groupby||[]).map(n),o=t.method||"linear",s=t.order||3,l=function(t,e){return"poly"===t?e:"quad"===t?2:1}(o,s),c=t.as||[n(t.x),n(t.y)],f=Vk[o],h=[];let d=t.extent;K(Vk,o)||i("Invalid regression method: "+o),null!=d&&"log"===o&&d[0]<=0&&(e.dataflow.warn("Ignoring extent with values <= 0 for log regression."),d=null),a.forEach(n=>{if(n.length<=l)return void e.dataflow.warn("Skipping regression with more parameters than data points.");const r=f(n,t.x,t.y,s);if(t.params)return void h.push(St({keys:n.dims,coef:r.coef,rSquared:r.rSquared}));const i=d||J(n,t.x),a=t=>{const e={};for(let t=0;t<u.length;++t)e[u[t]]=n.dims[t];e[c[0]]=t[0],e[c[1]]=t[1],h.push(St(e))};"linear"===o?i.forEach(t=>a([t,r.predict(t)])):ca(r.predict,i,25,200).forEach(a)}),this.value&&(r.rem=this.value),this.value=r.add=r.source=h}return r};var Xk=Object.freeze({__proto__:null,loess:Yk,regression:Gk});const Jk=Math.pow(2,-52),Zk=new Uint32Array(512);class Qk{static from(t,e=uM,n=oM){const r=t.length,i=new Float64Array(2*r);for(let a=0;a<r;a++){const r=t[a];i[2*a]=e(r),i[2*a+1]=n(r)}return new Qk(i)}constructor(t){const e=t.length>>1;if(e>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const n=Math.max(2*e-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(e)),this._hullPrev=new Uint32Array(e),this._hullNext=new Uint32Array(e),this._hullTri=new Uint32Array(e),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(e),this._dists=new Float64Array(e),this.update()}update(){const{coords:t,_hullPrev:e,_hullNext:n,_hullTri:r,_hullHash:i}=this,a=t.length>>1;let u=1/0,o=1/0,s=-1/0,l=-1/0;for(let e=0;e<a;e++){const n=t[2*e],r=t[2*e+1];n<u&&(u=n),r<o&&(o=r),n>s&&(s=n),r>l&&(l=r),this._ids[e]=e}const c=(u+s)/2,f=(o+l)/2;let h,d,p,g=1/0;for(let e=0;e<a;e++){const n=Kk(c,f,t[2*e],t[2*e+1]);n<g&&(h=e,g=n)}const m=t[2*h],v=t[2*h+1];g=1/0;for(let e=0;e<a;e++){if(e===h)continue;const n=Kk(m,v,t[2*e],t[2*e+1]);n<g&&n>0&&(d=e,g=n)}let y=t[2*d],_=t[2*d+1],x=1/0;for(let e=0;e<a;e++){if(e===h||e===d)continue;const n=rM(m,v,y,_,t[2*e],t[2*e+1]);n<x&&(p=e,x=n)}let b=t[2*p],w=t[2*p+1];if(x===1/0){for(let e=0;e<a;e++)this._dists[e]=t[2*e]-t[0]||t[2*e+1]-t[1];iM(this._ids,this._dists,0,a-1);const e=new Uint32Array(a);let n=0;for(let t=0,r=-1/0;t<a;t++){const i=this._ids[t];this._dists[i]>r&&(e[n++]=i,r=this._dists[i])}return this.hull=e.subarray(0,n),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(eM(m,v,y,_,b,w)){const t=d,e=y,n=_;d=p,y=b,_=w,p=t,b=e,w=n}const A=function(t,e,n,r,i,a){const u=n-t,o=r-e,s=i-t,l=a-e,c=u*u+o*o,f=s*s+l*l,h=.5/(u*l-o*s);return{x:t+(l*c-o*f)*h,y:e+(u*f-s*c)*h}}(m,v,y,_,b,w);this._cx=A.x,this._cy=A.y;for(let e=0;e<a;e++)this._dists[e]=Kk(t[2*e],t[2*e+1],A.x,A.y);iM(this._ids,this._dists,0,a-1),this._hullStart=h;let k=3;n[h]=e[p]=d,n[d]=e[h]=p,n[p]=e[d]=h,r[h]=0,r[d]=1,r[p]=2,i.fill(-1),i[this._hashKey(m,v)]=h,i[this._hashKey(y,_)]=d,i[this._hashKey(b,w)]=p,this.trianglesLen=0,this._addTriangle(h,d,p,-1,-1,-1);for(let a,u,o=0;o<this._ids.length;o++){const s=this._ids[o],l=t[2*s],c=t[2*s+1];if(o>0&&Math.abs(l-a)<=Jk&&Math.abs(c-u)<=Jk)continue;if(a=l,u=c,s===h||s===d||s===p)continue;let f=0;for(let t=0,e=this._hashKey(l,c);t<this._hashSize&&(f=i[(e+t)%this._hashSize],-1===f||f===n[f]);t++);f=e[f];let g,m=f;for(;g=n[m],!eM(l,c,t[2*m],t[2*m+1],t[2*g],t[2*g+1]);)if(m=g,m===f){m=-1;break}if(-1===m)continue;let v=this._addTriangle(m,s,n[m],-1,-1,r[m]);r[s]=this._legalize(v+2),r[m]=v,k++;let y=n[m];for(;g=n[y],eM(l,c,t[2*y],t[2*y+1],t[2*g],t[2*g+1]);)v=this._addTriangle(y,s,g,r[s],-1,r[y]),r[s]=this._legalize(v+2),n[y]=y,k--,y=g;if(m===f)for(;g=e[m],eM(l,c,t[2*g],t[2*g+1],t[2*m],t[2*m+1]);)v=this._addTriangle(g,s,m,-1,r[m],r[g]),this._legalize(v+2),r[g]=v,n[m]=m,k--,m=g;this._hullStart=e[s]=m,n[m]=e[y]=s,n[s]=y,i[this._hashKey(l,c)]=s,i[this._hashKey(t[2*m],t[2*m+1])]=m}this.hull=new Uint32Array(k);for(let t=0,e=this._hullStart;t<k;t++)this.hull[t]=e,e=n[e];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(t,e){return Math.floor(function(t,e){const n=t/(Math.abs(t)+Math.abs(e));return(e>0?3-n:1+n)/4}(t-this._cx,e-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:e,_halfedges:n,coords:r}=this;let i=0,a=0;for(;;){const u=n[t],o=t-t%3;if(a=o+(t+2)%3,-1===u){if(0===i)break;t=Zk[--i];continue}const s=u-u%3,l=o+(t+1)%3,c=s+(u+2)%3,f=e[a],h=e[t],d=e[l],p=e[c];if(nM(r[2*f],r[2*f+1],r[2*h],r[2*h+1],r[2*d],r[2*d+1],r[2*p],r[2*p+1])){e[t]=p,e[u]=f;const r=n[c];if(-1===r){let e=this._hullStart;do{if(this._hullTri[e]===c){this._hullTri[e]=t;break}e=this._hullPrev[e]}while(e!==this._hullStart)}this._link(t,r),this._link(u,n[a]),this._link(a,c);const o=s+(u+1)%3;i<Zk.length&&(Zk[i++]=o)}else{if(0===i)break;t=Zk[--i]}}return a}_link(t,e){this._halfedges[t]=e,-1!==e&&(this._halfedges[e]=t)}_addTriangle(t,e,n,r,i,a){const u=this.trianglesLen;return this._triangles[u]=t,this._triangles[u+1]=e,this._triangles[u+2]=n,this._link(u,r),this._link(u+1,i),this._link(u+2,a),this.trianglesLen+=3,u}}function Kk(t,e,n,r){const i=t-n,a=e-r;return i*i+a*a}function tM(t,e,n,r,i,a){const u=(r-e)*(i-t),o=(n-t)*(a-e);return Math.abs(u-o)>=33306690738754716e-32*Math.abs(u+o)?u-o:0}function eM(t,e,n,r,i,a){return(tM(i,a,t,e,n,r)||tM(t,e,n,r,i,a)||tM(n,r,i,a,t,e))<0}function nM(t,e,n,r,i,a,u,o){const s=t-u,l=e-o,c=n-u,f=r-o,h=i-u,d=a-o,p=c*c+f*f,g=h*h+d*d;return s*(f*g-p*d)-l*(c*g-p*h)+(s*s+l*l)*(c*d-f*h)<0}function rM(t,e,n,r,i,a){const u=n-t,o=r-e,s=i-t,l=a-e,c=u*u+o*o,f=s*s+l*l,h=.5/(u*l-o*s),d=(l*c-o*f)*h,p=(u*f-s*c)*h;return d*d+p*p}function iM(t,e,n,r){if(r-n<=20)for(let i=n+1;i<=r;i++){const r=t[i],a=e[r];let u=i-1;for(;u>=n&&e[t[u]]>a;)t[u+1]=t[u--];t[u+1]=r}else{let i=n+1,a=r;aM(t,n+r>>1,i),e[t[n]]>e[t[r]]&&aM(t,n,r),e[t[i]]>e[t[r]]&&aM(t,i,r),e[t[n]]>e[t[i]]&&aM(t,n,i);const u=t[i],o=e[u];for(;;){do{i++}while(e[t[i]]<o);do{a--}while(e[t[a]]>o);if(a<i)break;aM(t,i,a)}t[n+1]=t[a],t[a]=u,r-i+1>=a-n?(iM(t,e,i,r),iM(t,e,n,a-1)):(iM(t,e,n,a-1),iM(t,e,i,r))}}function aM(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function uM(t){return t[0]}function oM(t){return t[1]}class sM{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,e){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,e){this._+=`L${this._x1=+t},${this._y1=+e}`}arc(t,e,n){const r=(t=+t)+(n=+n),i=e=+e;if(n<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${i}`:(Math.abs(this._x1-r)>1e-6||Math.abs(this._y1-i)>1e-6)&&(this._+="L"+r+","+i),n&&(this._+=`A${n},${n},0,1,1,${t-n},${e}A${n},${n},0,1,1,${this._x1=r},${this._y1=i}`)}rect(t,e,n,r){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${+n}v${+r}h${-n}Z`}value(){return this._||null}}class lM{constructor(){this._=[]}moveTo(t,e){this._.push([t,e])}closePath(){this._.push(this._[0].slice())}lineTo(t,e){this._.push([t,e])}value(){return this._.length?this._:null}}class cM{constructor(t,[e,n,r,i]=[0,0,960,500]){if(!((r=+r)>=(e=+e)&&(i=+i)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=r,this.xmin=e,this.ymax=i,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:e,triangles:n},vectors:r}=this,i=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let e,r,a=0,u=0,o=n.length;a<o;a+=3,u+=2){const o=2*n[a],s=2*n[a+1],l=2*n[a+2],c=t[o],f=t[o+1],h=t[s],d=t[s+1],p=t[l],g=t[l+1],m=h-c,v=d-f,y=p-c,_=g-f,x=m*m+v*v,b=y*y+_*_,w=2*(m*_-v*y);if(w)if(Math.abs(w)<1e-8)e=(c+p)/2,r=(f+g)/2;else{const t=1/w;e=c+(_*x-v*b)*t,r=f+(m*b-y*x)*t}else e=(c+p)/2-1e8*_,r=(f+g)/2+1e8*y;i[u]=e,i[u+1]=r}let a,u,o,s=e[e.length-1],l=4*s,c=t[2*s],f=t[2*s+1];r.fill(0);for(let n=0;n<e.length;++n)s=e[n],a=l,u=c,o=f,l=4*s,c=t[2*s],f=t[2*s+1],r[a+2]=r[l]=o-f,r[a+3]=r[l+1]=c-u}render(t){const e=null==t?t=new sM:void 0,{delaunay:{halfedges:n,inedges:r,hull:i},circumcenters:a,vectors:u}=this;if(i.length<=1)return null;for(let e=0,r=n.length;e<r;++e){const r=n[e];if(r<e)continue;const i=2*Math.floor(e/3),u=2*Math.floor(r/3),o=a[i],s=a[i+1],l=a[u],c=a[u+1];this._renderSegment(o,s,l,c,t)}let o,s=i[i.length-1];for(let e=0;e<i.length;++e){o=s,s=i[e];const n=2*Math.floor(r[s]/3),l=a[n],c=a[n+1],f=4*o,h=this._project(l,c,u[f+2],u[f+3]);h&&this._renderSegment(l,c,h[0],h[1],t)}return e&&e.value()}renderBounds(t){const e=null==t?t=new sM:void 0;return t.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),e&&e.value()}renderCell(t,e){const n=null==e?e=new sM:void 0,r=this._clip(t);if(null===r)return;e.moveTo(r[0],r[1]);let i=r.length;for(;r[0]===r[i-2]&&r[1]===r[i-1]&&i>1;)i-=2;for(let t=2;t<i;t+=2)r[t]===r[t-2]&&r[t+1]===r[t-1]||e.lineTo(r[t],r[t+1]);return e.closePath(),n&&n.value()}*cellPolygons(){const{delaunay:{points:t}}=this;for(let e=0,n=t.length/2;e<n;++e){const t=this.cellPolygon(e);t&&(yield t)}}cellPolygon(t){const e=new lM;return this.renderCell(t,e),e.value()}_renderSegment(t,e,n,r,i){let a;const u=this._regioncode(t,e),o=this._regioncode(n,r);0===u&&0===o?(i.moveTo(t,e),i.lineTo(n,r)):(a=this._clipSegment(t,e,n,r,u,o))&&(i.moveTo(a[0],a[1]),i.lineTo(a[2],a[3]))}contains(t,e,n){return(e=+e)==e&&(n=+n)==n&&this.delaunay._step(t,e,n)===t}*neighbors(t){const e=this._clip(t);if(e)for(const n of this.delaunay.neighbors(t)){const t=this._clip(n);if(t)t:for(let r=0,i=e.length;r<i;r+=2)for(let a=0,u=t.length;a<u;a+=2)if(e[r]==t[a]&&e[r+1]==t[a+1]&&e[(r+2)%i]==t[(a+u-2)%u]&&e[(r+3)%i]==t[(a+u-1)%u]){yield n;break t}}}_cell(t){const{circumcenters:e,delaunay:{inedges:n,halfedges:r,triangles:i}}=this,a=n[t];if(-1===a)return null;const u=[];let o=a;do{const n=Math.floor(o/3);if(u.push(e[2*n],e[2*n+1]),o=o%3==2?o-2:o+1,i[o]!==t)break;o=r[o]}while(o!==a&&-1!==o);return u}_clip(t){if(0===t&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const e=this._cell(t);if(null===e)return null;const{vectors:n}=this,r=4*t;return n[r]||n[r+1]?this._clipInfinite(t,e,n[r],n[r+1],n[r+2],n[r+3]):this._clipFinite(t,e)}_clipFinite(t,e){const n=e.length;let r,i,a,u,o,s=null,l=e[n-2],c=e[n-1],f=this._regioncode(l,c);for(let h=0;h<n;h+=2)if(r=l,i=c,l=e[h],c=e[h+1],a=f,f=this._regioncode(l,c),0===a&&0===f)u=o,o=0,s?s.push(l,c):s=[l,c];else{let e,n,h,d,p;if(0===a){if(null===(e=this._clipSegment(r,i,l,c,a,f)))continue;[n,h,d,p]=e}else{if(null===(e=this._clipSegment(l,c,r,i,f,a)))continue;[d,p,n,h]=e,u=o,o=this._edgecode(n,h),u&&o&&this._edge(t,u,o,s,s.length),s?s.push(n,h):s=[n,h]}u=o,o=this._edgecode(d,p),u&&o&&this._edge(t,u,o,s,s.length),s?s.push(d,p):s=[d,p]}if(s)u=o,o=this._edgecode(s[0],s[1]),u&&o&&this._edge(t,u,o,s,s.length);else if(this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return s}_clipSegment(t,e,n,r,i,a){for(;;){if(0===i&&0===a)return[t,e,n,r];if(i&a)return null;let u,o,s=i||a;8&s?(u=t+(n-t)*(this.ymax-e)/(r-e),o=this.ymax):4&s?(u=t+(n-t)*(this.ymin-e)/(r-e),o=this.ymin):2&s?(o=e+(r-e)*(this.xmax-t)/(n-t),u=this.xmax):(o=e+(r-e)*(this.xmin-t)/(n-t),u=this.xmin),i?(t=u,e=o,i=this._regioncode(t,e)):(n=u,r=o,a=this._regioncode(n,r))}}_clipInfinite(t,e,n,r,i,a){let u,o=Array.from(e);if((u=this._project(o[0],o[1],n,r))&&o.unshift(u[0],u[1]),(u=this._project(o[o.length-2],o[o.length-1],i,a))&&o.push(u[0],u[1]),o=this._clipFinite(t,o))for(let e,n=0,r=o.length,i=this._edgecode(o[r-2],o[r-1]);n<r;n+=2)e=i,i=this._edgecode(o[n],o[n+1]),e&&i&&(n=this._edge(t,e,i,o,n),r=o.length);else this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(o=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return o}_edge(t,e,n,r,i){for(;e!==n;){let n,a;switch(e){case 5:e=4;continue;case 4:e=6,n=this.xmax,a=this.ymin;break;case 6:e=2;continue;case 2:e=10,n=this.xmax,a=this.ymax;break;case 10:e=8;continue;case 8:e=9,n=this.xmin,a=this.ymax;break;case 9:e=1;continue;case 1:e=5,n=this.xmin,a=this.ymin}r[i]===n&&r[i+1]===a||!this.contains(t,n,a)||(r.splice(i,0,n,a),i+=2)}if(r.length>4)for(let t=0;t<r.length;t+=2){const e=(t+2)%r.length,n=(t+4)%r.length;(r[t]===r[e]&&r[e]===r[n]||r[t+1]===r[e+1]&&r[e+1]===r[n+1])&&(r.splice(e,2),t-=2)}return i}_project(t,e,n,r){let i,a,u,o=1/0;if(r<0){if(e<=this.ymin)return null;(i=(this.ymin-e)/r)<o&&(u=this.ymin,a=t+(o=i)*n)}else if(r>0){if(e>=this.ymax)return null;(i=(this.ymax-e)/r)<o&&(u=this.ymax,a=t+(o=i)*n)}if(n>0){if(t>=this.xmax)return null;(i=(this.xmax-t)/n)<o&&(a=this.xmax,u=e+(o=i)*r)}else if(n<0){if(t<=this.xmin)return null;(i=(this.xmin-t)/n)<o&&(a=this.xmin,u=e+(o=i)*r)}return[a,u]}_edgecode(t,e){return(t===this.xmin?1:t===this.xmax?2:0)|(e===this.ymin?4:e===this.ymax?8:0)}_regioncode(t,e){return(t<this.xmin?1:t>this.xmax?2:0)|(e<this.ymin?4:e>this.ymax?8:0)}}const fM=2*Math.PI;function hM(t){return t[0]}function dM(t){return t[1]}function pM(t,e,n){return[t+Math.sin(t+e)*n,e+Math.cos(t-e)*n]}class gM{static from(t,e=hM,n=dM,r){return new gM("length"in t?function(t,e,n,r){const i=t.length,a=new Float64Array(2*i);for(let u=0;u<i;++u){const i=t[u];a[2*u]=e.call(r,i,u,t),a[2*u+1]=n.call(r,i,u,t)}return a}(t,e,n,r):Float64Array.from(function*(t,e,n,r){let i=0;for(const a of t)yield e.call(r,a,i,t),yield n.call(r,a,i,t),++i}(t,e,n,r)))}constructor(t){this._delaunator=new Qk(t),this.inedges=new Int32Array(t.length/2),this._hullIndex=new Int32Array(t.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const t=this._delaunator,e=this.points;if(t.hull&&t.hull.length>2&&function(t){const{triangles:e,coords:n}=t;for(let t=0;t<e.length;t+=3){const r=2*e[t],i=2*e[t+1],a=2*e[t+2];if((n[a]-n[r])*(n[i+1]-n[r+1])-(n[i]-n[r])*(n[a+1]-n[r+1])>1e-10)return!1}return!0}(t)){this.collinear=Int32Array.from({length:e.length/2},(t,e)=>e).sort((t,n)=>e[2*t]-e[2*n]||e[2*t+1]-e[2*n+1]);const t=this.collinear[0],n=this.collinear[this.collinear.length-1],r=[e[2*t],e[2*t+1],e[2*n],e[2*n+1]],i=1e-8*Math.sqrt((r[3]-r[1])**2+(r[2]-r[0])**2);for(let t=0,n=e.length/2;t<n;++t){const n=pM(e[2*t],e[2*t+1],i);e[2*t]=n[0],e[2*t+1]=n[1]}this._delaunator=new Qk(e)}else delete this.collinear;const n=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,i=this.triangles=this._delaunator.triangles,a=this.inedges.fill(-1),u=this._hullIndex.fill(-1);for(let t=0,e=n.length;t<e;++t){const e=i[t%3==2?t-2:t+1];-1!==n[t]&&-1!==a[e]||(a[e]=t)}for(let t=0,e=r.length;t<e;++t)u[r[t]]=t;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],this.triangles[1]=r[1],this.triangles[2]=r[1],a[r[0]]=1,2===r.length&&(a[r[1]]=0))}voronoi(t){return new cM(this,t)}*neighbors(t){const{inedges:e,hull:n,_hullIndex:r,halfedges:i,triangles:a,collinear:u}=this;if(u){const e=u.indexOf(t);return e>0&&(yield u[e-1]),void(e<u.length-1&&(yield u[e+1]))}const o=e[t];if(-1===o)return;let s=o,l=-1;do{if(yield l=a[s],s=s%3==2?s-2:s+1,a[s]!==t)return;if(s=i[s],-1===s){const e=n[(r[t]+1)%n.length];return void(e!==l&&(yield e))}}while(s!==o)}find(t,e,n=0){if((t=+t)!=t||(e=+e)!=e)return-1;const r=n;let i;for(;(i=this._step(n,t,e))>=0&&i!==n&&i!==r;)n=i;return i}_step(t,e,n){const{inedges:r,hull:i,_hullIndex:a,halfedges:u,triangles:o,points:s}=this;if(-1===r[t]||!s.length)return(t+1)%(s.length>>1);let l=t,c=(e-s[2*t])**2+(n-s[2*t+1])**2;const f=r[t];let h=f;do{let r=o[h];const f=(e-s[2*r])**2+(n-s[2*r+1])**2;if(f<c&&(c=f,l=r),h=h%3==2?h-2:h+1,o[h]!==t)break;if(h=u[h],-1===h){if(h=i[(a[t]+1)%i.length],h!==r&&(e-s[2*h])**2+(n-s[2*h+1])**2<c)return h;break}}while(h!==f);return l}render(t){const e=null==t?t=new sM:void 0,{points:n,halfedges:r,triangles:i}=this;for(let e=0,a=r.length;e<a;++e){const a=r[e];if(a<e)continue;const u=2*i[e],o=2*i[a];t.moveTo(n[u],n[u+1]),t.lineTo(n[o],n[o+1])}return this.renderHull(t),e&&e.value()}renderPoints(t,e=2){const n=null==t?t=new sM:void 0,{points:r}=this;for(let n=0,i=r.length;n<i;n+=2){const i=r[n],a=r[n+1];t.moveTo(i+e,a),t.arc(i,a,e,0,fM)}return n&&n.value()}renderHull(t){const e=null==t?t=new sM:void 0,{hull:n,points:r}=this,i=2*n[0],a=n.length;t.moveTo(r[i],r[i+1]);for(let e=1;e<a;++e){const i=2*n[e];t.lineTo(r[i],r[i+1])}return t.closePath(),e&&e.value()}hullPolygon(){const t=new lM;return this.renderHull(t),t.value()}renderTriangle(t,e){const n=null==e?e=new sM:void 0,{points:r,triangles:i}=this,a=2*i[t*=3],u=2*i[t+1],o=2*i[t+2];return e.moveTo(r[a],r[a+1]),e.lineTo(r[u],r[u+1]),e.lineTo(r[o],r[o+1]),e.closePath(),n&&n.value()}*trianglePolygons(){const{triangles:t}=this;for(let e=0,n=t.length/3;e<n;++e)yield this.trianglePolygon(e)}trianglePolygon(t){const e=new lM;return this.renderTriangle(t,e),e.value()}}function mM(t){Hr.call(this,null,t)}mM.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 vM=rt(mM,Hr),yM=[-1e5,-1e5,1e5,1e5];function _M(t){const e=t[0][0],n=t[0][1];let r=t.length-1;for(;t[r][0]===e&&t[r][1]===n;--r);return"M"+t.slice(0,r+1).join("L")+"Z"}vM.transform=function(t,e){const n=t.as||"path",r=e.source;if(!r||!r.length)return e;let i=t.size;i=i?[0,0,i[0],i[1]]:(i=t.extent)?[i[0][0],i[0][1],i[1][0],i[1][1]]:yM;const a=this.value=gM.from(r,t.x,t.y).voronoi(i);for(let t=0,e=r.length;t<e;++t){const e=a.cellPolygon(t);r[t][n]=e?_M(e):null}return e.reflow(t.modified()).modifies(n)};var xM=Object.freeze({__proto__:null,voronoi:mM}),bM=Math.PI/180;function wM(){var t,e,n,r,i,a,u,o=[256,256],s=DM,l=[],c=Math.random,f={};function h(t,e,n){for(var r,i,a,u=e.x,l=e.y,f=Math.sqrt(o[0]*o[0]+o[1]*o[1]),h=s(o),d=c()<.5?1:-1,p=-d;(r=h(p+=d))&&(i=~~r[0],a=~~r[1],!(Math.min(Math.abs(i),Math.abs(a))>=f));)if(e.x=u+i,e.y=l+a,!(e.x+e.x0<0||e.y+e.y0<0||e.x+e.x1>o[0]||e.y+e.y1>o[1])&&(!n||!kM(e,t,o[0]))&&(!n||EM(e,n))){for(var g,m=e.sprite,v=e.width>>5,y=o[0]>>5,_=e.x-(v<<4),x=127&_,b=32-x,w=e.y1-e.y0,A=(e.y+e.y0)*y+(_>>5),k=0;k<w;k++){g=0;for(var M=0;M<=v;M++)t[A+M]|=g<<b|(M<v?(g=m[k*v+M])>>>x:0);A+=y}return e.sprite=null,!0}return!1}return f.layout=function(){for(var s=function(t){t.width=t.height=1;var e=Math.sqrt(t.getContext("2d").getImageData(0,0,1,1).data.length>>2);t.width=2048/e,t.height=2048/e;var n=t.getContext("2d");return n.fillStyle=n.strokeStyle="red",n.textAlign="center",{context:n,ratio:e}}(Vo()),f=function(t){var e=[],n=-1;for(;++n<t;)e[n]=0;return e}((o[0]>>5)*o[1]),d=null,p=l.length,g=-1,m=[],v=l.map((function(o){return{text:t(o),font:e(o),style:r(o),weight:i(o),rotate:a(o),size:~~(n(o)+1e-14),padding:u(o),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:o}})).sort((function(t,e){return e.size-t.size}));++g<p;){var y=v[g];y.x=o[0]*(c()+.5)>>1,y.y=o[1]*(c()+.5)>>1,AM(s,y,v,g),y.hasText&&h(f,y,d)&&(m.push(y),d?MM(d,y):d=[{x:y.x+y.x0,y:y.y+y.y0},{x:y.x+y.x1,y:y.y+y.y1}],y.x-=o[0]>>1,y.y-=o[1]>>1)}return m},f.words=function(t){return arguments.length?(l=t,f):l},f.size=function(t){return arguments.length?(o=[+t[0],+t[1]],f):o},f.font=function(t){return arguments.length?(e=CM(t),f):e},f.fontStyle=function(t){return arguments.length?(r=CM(t),f):r},f.fontWeight=function(t){return arguments.length?(i=CM(t),f):i},f.rotate=function(t){return arguments.length?(a=CM(t),f):a},f.text=function(e){return arguments.length?(t=CM(e),f):t},f.spiral=function(t){return arguments.length?(s=FM[t]||t,f):s},f.fontSize=function(t){return arguments.length?(n=CM(t),f):n},f.padding=function(t){return arguments.length?(u=CM(t),f):u},f.random=function(t){return arguments.length?(c=t,f):c},f}function AM(t,e,n,r){if(!e.sprite){var i=t.context,a=t.ratio;i.clearRect(0,0,2048/a,2048/a);var u,o,s,l,c,f=0,h=0,d=0,p=n.length;for(--r;++r<p;){if(e=n[r],i.save(),i.font=e.style+" "+e.weight+" "+~~((e.size+1)/a)+"px "+e.font,u=i.measureText(e.text+"m").width*a,s=e.size<<1,e.rotate){var g=Math.sin(e.rotate*bM),m=Math.cos(e.rotate*bM),v=u*m,y=u*g,_=s*m,x=s*g;u=Math.max(Math.abs(v+x),Math.abs(v-x))+31>>5<<5,s=~~Math.max(Math.abs(y+_),Math.abs(y-_))}else u=u+31>>5<<5;if(s>d&&(d=s),f+u>=2048&&(f=0,h+=d,d=0),h+s>=2048)break;i.translate((f+(u>>1))/a,(h+(s>>1))/a),e.rotate&&i.rotate(e.rotate*bM),i.fillText(e.text,0,0),e.padding&&(i.lineWidth=2*e.padding,i.strokeText(e.text,0,0)),i.restore(),e.width=u,e.height=s,e.xoff=f,e.yoff=h,e.x1=u>>1,e.y1=s>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,f+=u}for(var b=i.getImageData(0,0,2048/a,2048/a).data,w=[];--r>=0;)if((e=n[r]).hasText){for(o=(u=e.width)>>5,s=e.y1-e.y0,l=0;l<s*o;l++)w[l]=0;if(null==(f=e.xoff))return;h=e.yoff;var A=0,k=-1;for(c=0;c<s;c++){for(l=0;l<u;l++){var M=o*c+(l>>5),E=b[2048*(h+c)+(f+l)<<2]?1<<31-l%32:0;w[M]|=E,A|=E}A?k=c:(e.y0++,s--,c--,h++)}e.y1=e.y0+k,e.sprite=w.slice(0,(e.y1-e.y0)*o)}}}function kM(t,e,n){n>>=5;for(var r,i=t.sprite,a=t.width>>5,u=t.x-(a<<4),o=127&u,s=32-o,l=t.y1-t.y0,c=(t.y+t.y0)*n+(u>>5),f=0;f<l;f++){r=0;for(var h=0;h<=a;h++)if((r<<s|(h<a?(r=i[f*a+h])>>>o:0))&e[c+h])return!0;c+=n}return!1}function MM(t,e){var n=t[0],r=t[1];e.x+e.x0<n.x&&(n.x=e.x+e.x0),e.y+e.y0<n.y&&(n.y=e.y+e.y0),e.x+e.x1>r.x&&(r.x=e.x+e.x1),e.y+e.y1>r.y&&(r.y=e.y+e.y1)}function EM(t,e){return t.x+t.x1>e[0].x&&t.x+t.x0<e[1].x&&t.y+t.y1>e[0].y&&t.y+t.y0<e[1].y}function DM(t){var e=t[0]/t[1];return function(t){return[e*(t*=.1)*Math.cos(t),t*Math.sin(t)]}}function CM(t){return"function"==typeof t?t:function(){return t}}var FM={archimedean:DM,rectangular:function(t){var e=4*t[0]/t[1],n=0,r=0;return function(t){var i=t<0?-1:1;switch(Math.sqrt(1+4*i*t)-i&3){case 0:n+=e;break;case 1:r+=4;break;case 2:n-=e;break;default:r-=4}return[n,r]}}},SM=["x","y","font","fontSize","fontStyle","fontWeight","angle"],BM=["text","font","rotate","fontSize","fontStyle","fontWeight"];function zM(t){Hr.call(this,wM(),t)}zM.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:SM}]},rt(zM,Hr).transform=function(e,n){!e.size||e.size[0]&&e.size[1]||i("Wordcloud size dimensions must be non-zero.");var r=e.modified();if(r||n.changed(n.ADD_REM)||BM.some((function(t){var r=e[t];return W(r)&&n.modified(r.fields)}))){var a,u=n.materialize(n.SOURCE).source,o=this.value,s=e.as||SM,l=e.fontSize||14;if(W(l)?a=e.fontSizeRange:l=V(l),a){var c=l,f=Om("sqrt")().domain(J(u,c)).range(a);l=function(t){return f(c(t))}}u.forEach((function(t){t[s[0]]=NaN,t[s[1]]=NaN,t[s[3]]=0}));for(var h,d,p=o.words(u).text(e.text).size(e.size||[500,500]).padding(e.padding||1).spiral(e.spiral||"archimedean").rotate(e.rotate||0).font(e.font||"sans-serif").fontStyle(e.fontStyle||"normal").fontWeight(e.fontWeight||"normal").fontSize(l).random(t.random).layout(),g=o.size(),m=g[0]>>1,v=g[1]>>1,y=0,_=p.length;y<_;++y)(d=(h=p[y]).datum)[s[0]]=h.x+m,d[s[1]]=h.y+v,d[s[2]]=h.font,d[s[3]]=h.size,d[s[4]]=h.style,d[s[5]]=h.weight,d[s[6]]=h.rotate;return n.reflow(r).modifies(s)}};var TM=Object.freeze({__proto__:null,wordcloud:zM});function NM(t){return new Uint8Array(t)}function OM(t){return new Uint16Array(t)}function RM(t){return new Uint32Array(t)}function qM(t,e,n){var r=(e<257?NM:e<65537?OM:RM)(t);return n&&r.set(n),r}function UM(t,e,n){var r=1<<e;return{one:r,zero:~r,range:n.slice(),bisect:t.bisect,index:t.index,size:t.size,onAdd:function(t,e){var n,i=this.bisect(this.range,t.value),a=t.index,u=i[0],o=i[1],s=a.length;for(n=0;n<u;++n)e[a[n]]|=r;for(n=o;n<s;++n)e[a[n]]|=r;return this}}}function LM(){var t=RM(0),e=[],n=0;return{insert:function(r,i,a){if(!i.length)return[];var u,o,s,l=n,c=i.length,f=Array(c),h=RM(c);for(s=0;s<c;++s)f[s]=r(i[s]),h[s]=s;if(f=function(t,e){return t.sort.call(e,(function(e,n){var r=t[e],i=t[n];return r<i?-1:r>i?1:0})),function(t,e){return Array.from(e,e=>t[e])}(t,e)}(f,h),l)u=e,o=t,e=Array(l+c),t=RM(l+c),function(t,e,n,r,i,a,u,o,s){var l,c=0,f=0;for(l=0;c<r&&f<u;++l)e[c]<i[f]?(o[l]=e[c],s[l]=n[c++]):(o[l]=i[f],s[l]=a[f++]+t);for(;c<r;++c,++l)o[l]=e[c],s[l]=n[c];for(;f<u;++f,++l)o[l]=i[f],s[l]=a[f]+t}(a,u,o,l,f,h,c,e,t);else{if(a>0)for(s=0;s<c;++s)h[s]+=a;e=f,t=h}return n=l+c,{index:h,value:f}},remove:function(r,i){var a,u,o,s=n;for(u=0;!i[t[u]]&&u<s;++u);for(o=u;u<s;++u)i[a=t[u]]||(t[o]=a,e[o]=e[u],++o);n=s-r},bisect:function(t,r){var i;return r?i=r.length:(r=e,i=n),[si(r,t[0],0,i),oi(r,t[1],0,i)]},reindex:function(e){for(var r=0,i=n;r<i;++r)t[r]=e[t[r]]},index:function(){return t},size:function(){return n}}}function PM(t){Hr.call(this,function(){var t=8,e=[],n=RM(0),r=qM(0,t),i=qM(0,t);return{data:function(){return e},seen:function(){return n=function(t,e,n){return t.length>=e?t:((n=n||new t.constructor(e)).set(t),n)}(n,e.length)},add:function(t){for(var n,r=0,i=e.length,a=t.length;r<a;++r)(n=t[r])._index=i++,e.push(n)},remove:function(t,n){var a,u,o,s=e.length,l=Array(s-t),c=e;for(u=0;!n[u]&&u<s;++u)l[u]=e[u],c[u]=u;for(o=u;u<s;++u)a=e[u],n[u]?c[u]=-1:(c[u]=o,r[o]=r[u],i[o]=i[u],l[o]=a,a._index=o++),r[u]=0;return e=l,c},size:function(){return e.length},curr:function(){return r},prev:function(){return i},reset:function(t){i[t]=r[t]},all:function(){return t<257?255:t<65537?65535:4294967295},set:function(t,e){r[t]|=e},clear:function(t,e){r[t]&=~e},resize:function(e,n){(e>r.length||n>t)&&(t=Math.max(n,t),r=qM(e,t,r),i=qM(e,t))}}}(),t),this._indices=null,this._dims=null}PM.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}}]};var $M=rt(PM,Hr);function jM(t){Hr.call(this,null,t)}$M.transform=function(t,e){return this._dims?t.modified("fields")||t.fields.some((function(t){return e.modified(t.fields)}))?this.reinit(t,e):this.eval(t,e):this.init(t,e)},$M.init=function(t,e){for(var n,r,i=t.fields,a=t.query,u=this._indices={},o=this._dims=[],s=a.length,l=0;l<s;++l)r=u[n=i[l].fname]||(u[n]=LM()),o.push(UM(r,l,a[l]));return this.eval(t,e)},$M.reinit=function(t,e){var n,r,i,a,u,o,s,l,c,f=e.materialize().fork(),h=t.fields,d=t.query,p=this._indices,g=this._dims,m=this.value,v=m.curr(),y=m.prev(),_=m.all(),x=f.rem=f.add,b=f.mod,w=d.length,A={};if(y.set(v),e.rem.length&&(u=this.remove(t,e,f)),e.add.length&&m.add(e.add),e.mod.length)for(o={},s=0,l=(a=e.mod).length;s<l;++s)o[a[s]._index]=1;for(s=0;s<w;++s)c=h[s],(!g[s]||t.modified("fields",s)||e.modified(c.fields))&&((n=A[i=c.fname])||(p[i]=r=LM(),A[i]=n=r.insert(c,e.source,0)),g[s]=UM(r,s,d[s]).onAdd(n,v));for(s=0,l=m.data().length;s<l;++s)u[s]||(y[s]!==v[s]?x.push(s):o[s]&&v[s]!==_&&b.push(s));return m.mask=(1<<w)-1,f},$M.eval=function(t,e){var n=e.materialize().fork(),r=this._dims.length,i=0;return e.rem.length&&(this.remove(t,e,n),i|=(1<<r)-1),t.modified("query")&&!t.modified("fields")&&(i|=this.update(t,e,n)),e.add.length&&(this.insert(t,e,n),i|=(1<<r)-1),e.mod.length&&(this.modify(e,n),i|=(1<<r)-1),this.value.mask=i,n},$M.insert=function(t,e,n){var r,i,a,u=e.add,o=this.value,s=this._dims,l=this._indices,c=t.fields,f={},h=n.add,d=o.size(),p=d+u.length,g=s.length;o.resize(p,g),o.add(u);var m=o.curr(),v=o.prev(),y=o.all();for(r=0;r<g;++r)a=f[i=c[r].fname]||(f[i]=l[i].insert(c[r],u,d)),s[r].onAdd(a,m);for(;d<p;++d)v[d]=y,m[d]!==y&&h.push(d)},$M.modify=function(t,e){var n,r,i,a=e.mod,u=this.value,o=u.curr(),s=u.all(),l=t.mod;for(n=0,r=l.length;n<r;++n)o[i=l[n]._index]!==s&&a.push(i)},$M.remove=function(t,e,n){var r,i,a,u,o=this._indices,s=this.value,l=s.curr(),c=s.prev(),f=s.all(),h={},d=n.rem,p=e.rem;for(r=0,i=p.length;r<i;++r)h[a=p[r]._index]=1,c[a]=u=l[a],l[a]=f,u!==f&&d.push(a);for(a in o)o[a].remove(i,h);return this.reindex(e,i,h),h},$M.reindex=function(t,e,n){var r=this._indices,i=this.value;t.runAfter((function(){var t=i.remove(e,n);for(var a in r)r[a].reindex(t)}))},$M.update=function(t,e,n){var r,i,a=this._dims,u=t.query,o=e.stamp,s=a.length,l=0;for(n.filters=0,i=0;i<s;++i)t.modified("query",i)&&(r=i,++l);if(1===l)l=a[r].one,this.incrementOne(a[r],u[r],n.add,n.rem);else for(i=0,l=0;i<s;++i)t.modified("query",i)&&(l|=a[i].one,this.incrementAll(a[i],u[i],o,n.add),n.rem=n.add);return l},$M.incrementAll=function(t,e,n,r){var i,a,u,o=this.value,s=o.seen(),l=o.curr(),c=o.prev(),f=t.index(),h=t.bisect(t.range),d=t.bisect(e),p=d[0],g=d[1],m=h[0],v=h[1],y=t.one;if(p<m)for(i=p,a=Math.min(m,g);i<a;++i)s[u=f[i]]!==n&&(c[u]=l[u],s[u]=n,r.push(u)),l[u]^=y;else if(p>m)for(i=m,a=Math.min(p,v);i<a;++i)s[u=f[i]]!==n&&(c[u]=l[u],s[u]=n,r.push(u)),l[u]^=y;if(g>v)for(i=Math.max(p,v),a=g;i<a;++i)s[u=f[i]]!==n&&(c[u]=l[u],s[u]=n,r.push(u)),l[u]^=y;else if(g<v)for(i=Math.max(m,g),a=v;i<a;++i)s[u=f[i]]!==n&&(c[u]=l[u],s[u]=n,r.push(u)),l[u]^=y;t.range=e.slice()},$M.incrementOne=function(t,e,n,r){var i,a,u,o=this.value.curr(),s=t.index(),l=t.bisect(t.range),c=t.bisect(e),f=c[0],h=c[1],d=l[0],p=l[1],g=t.one;if(f<d)for(i=f,a=Math.min(d,h);i<a;++i)o[u=s[i]]^=g,n.push(u);else if(f>d)for(i=d,a=Math.min(f,p);i<a;++i)o[u=s[i]]^=g,r.push(u);if(h>p)for(i=Math.max(f,p),a=h;i<a;++i)o[u=s[i]]^=g,n.push(u);else if(h<p)for(i=Math.max(d,h),a=p;i<a;++i)o[u=s[i]]^=g,r.push(u);t.range=e.slice()},jM.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."}]},rt(jM,Hr).transform=function(t,e){var n=~(t.ignore||0),r=t.filter,i=r.mask;if(0==(i&n))return e.StopPropagation;var a=e.fork(e.ALL),u=r.data(),o=r.curr(),s=r.prev(),l=function(t){return o[t]&n?null:u[t]};return a.filter(a.MOD,l),i&i-1?(a.filter(a.ADD,(function(t){var e=o[t]&n;return!e&&e^s[t]&n?u[t]:null})),a.filter(a.REM,(function(t){var e=o[t]&n;return e&&!(e^e^s[t]&n)?u[t]:null}))):(a.filter(a.ADD,l),a.filter(a.REM,(function(t){return(o[t]&n)===i?u[t]:null}))),a.filter(a.SOURCE,(function(t){return l(t._index)}))};var IM=Object.freeze({__proto__:null,crossfilter:PM,resolvefilter:jM});function HM(t,e){t&&(null==e?t.removeAttribute("aria-label"):t.setAttribute("aria-label",e))}function WM(t){var e=t._signals.cursor;e||(t._signals.cursor=e=t.add({user:"default",item:null})),t.on(t.events("view","mousemove"),e,(function(t,n){var r=e.value,i=r?s(r)?r:r.user:"default",a=n.item&&n.item.cursor||null;return r&&i===r.user&&a==r.item?r:{user:i,item:a}})),t.add(null,(function(t){var e=t.cursor,n=this.value;return s(e)||(n=e.item,e=e.user),function(t){"undefined"!=typeof document&&document.body&&(document.body.style.cursor=t)}(e&&"default"!==e?e:n||e),n}),{cursor:e})}function YM(t,e){var n=t._runtime.data;return K(n,e)||i("Unrecognized data set: "+e),n[e]}function VM(t,e){Ot(e)||i("Second argument to changes must be a changeset.");var n=YM(this,t);return n.modified=!0,this.pulse(n.input,e)}function GM(t){var e=t.padding();return Math.max(0,t._viewWidth+e.left+e.right)}function XM(t){var e=t.padding();return Math.max(0,t._viewHeight+e.top+e.bottom)}function JM(t){var e=t.padding(),n=t._origin;return[e.left+n[0],e.top+n[1]]}function ZM(t,e,n){var r,i,a=t._renderer,u=a&&a.canvas();return u&&(i=JM(t),(r=Gf(e.changedTouches?e.changedTouches[0]:e,u))[0]-=i[0],r[1]-=i[1]),e.dataflow=t,e.item=n,e.vega=function(t,e,n){var r=e?"group"===e.mark.marktype?e:e.mark.group:null;function i(t){var n,i=r;if(t)for(n=e;n;n=n.mark.group)if(n.mark.name===t){i=n;break}return i&&i.mark&&i.mark.interactive?i:{}}function a(t){if(!t)return n;s(t)&&(t=i(t));for(var e=n.slice();t;)e[0]-=t.x||0,e[1]-=t.y||0,t=t.mark&&t.mark.group;return e}return{view:V(t),item:V(e||{}),group:i,xy:a,x:function(t){return a(t)[0]},y:function(t){return a(t)[1]}}}(t,n,r),e}const QM={trap:!1};function KM(t,e,n){const r=t._eventConfig&&t._eventConfig[e];return!(!1===r||o(r)&&!r[n])||(t.warn(`Blocked ${e} ${n} event listener.`),!1)}function tE(t){return t.item}function eE(t){return t.item.mark.source}function nE(t){return function(e,n){return n.vega.view().changeset().encode(n.item,t)}}function rE(t,e,n){var r=document.createElement(t);for(var i in e)r.setAttribute(i,e[i]);return null!=n&&(r.textContent=n),r}function iE(t,e,n){if(e){var r=n.param,i=n.state;return i||(i=n.state={elements:null,active:!1,set:null,update:function(e){e!==t.signal(r.signal)&&t.runAsync(null,(function(){i.source=!0,t.signal(r.signal,e)}))}},r.debounce&&(i.update=G(r.debounce,i.update))),function(t,e,n,r){var i=rE("div",{class:"vega-bind"});i.appendChild(rE("span",{class:"vega-bind-name"},n.name||n.signal)),e.appendChild(i);var a=aE;switch(n.input){case"checkbox":a=uE;break;case"select":a=oE;break;case"radio":a=sE;break;case"range":a=lE}a(t,i,n,r)}(i,e,r,t.signal(r.signal)),i.active||(t.on(t._signals[r.signal],null,(function(){i.source?i.source=!1:i.set(t.signal(r.signal))})),i.active=!0),i}}function aE(t,e,n,r){var i=rE("input");for(var a in n)"signal"!==a&&"element"!==a&&i.setAttribute("input"===a?"type":a,n[a]);i.setAttribute("name",n.signal),i.value=r,e.appendChild(i),i.addEventListener("input",(function(){t.update(i.value)})),t.elements=[i],t.set=function(t){i.value=t}}function uE(t,e,n,r){var i={type:"checkbox",name:n.signal};r&&(i.checked=!0);var a=rE("input",i);e.appendChild(a),a.addEventListener("change",(function(){t.update(a.checked)})),t.elements=[a],t.set=function(t){a.checked=!!t||null}}function oE(t,e,n,r){var i=rE("select",{name:n.signal}),a=n.labels||[];n.options.forEach((function(t,e){var n={value:t};cE(t,r)&&(n.selected=!0),i.appendChild(rE("option",n,(a[e]||t)+""))})),e.appendChild(i),i.addEventListener("change",(function(){t.update(n.options[i.selectedIndex])})),t.elements=[i],t.set=function(t){for(var e=0,r=n.options.length;e<r;++e)if(cE(n.options[e],t))return void(i.selectedIndex=e)}}function sE(t,e,n,r){var i=rE("span",{class:"vega-bind-radio"}),a=n.labels||[];e.appendChild(i),t.elements=n.options.map((function(e,u){var o="vega-option-"+n.signal+"-"+e,s={id:o,type:"radio",name:n.signal,value:e};cE(e,r)&&(s.checked=!0);var l=rE("input",s);return l.addEventListener("change",(function(){t.update(e)})),i.appendChild(l),i.appendChild(rE("label",{for:o},(a[u]||e)+"")),l})),t.set=function(e){for(var n=t.elements,r=0,i=n.length;r<i;++r)cE(n[r].value,e)&&(n[r].checked=!0)}}function lE(t,e,n,r){r=void 0!==r?r:(+n.max+ +n.min)/2;var i=null!=n.max?n.max:Math.max(100,+r)||100,a=n.min||Math.min(0,i,+r)||0,u=n.step||gi(a,i,100),o=rE("input",{type:"range",name:n.signal,min:a,max:i,step:u});o.value=r;var s=rE("label",{},+r);function l(){s.textContent=o.value,t.update(+o.value)}e.appendChild(o),e.appendChild(s),o.addEventListener("input",l),o.addEventListener("change",l),t.elements=[o],t.set=function(t){o.value=t,s.textContent=t}}function cE(t,e){return t===e||t+""==e+""}function fE(t,e,n,r,i,a){return(e=e||new r(t.loader())).initialize(n,GM(t),XM(t),JM(t),i,a).background(t.background())}function hE(t,e){return e?function(){try{e.apply(this,arguments)}catch(e){t.error(e)}}:null}function dE(t,e){if("string"==typeof e){if("undefined"==typeof document)return t.error("DOM document instance not found."),null;if(!(e=document.querySelector(e)))return t.error("Signal bind element not found: "+e),null}if(e)try{e.innerHTML=""}catch(n){e=null,t.error(n)}return e}const pE=t=>+t||0;function gE(t){return o(t)?{top:pE(t.top),bottom:pE(t.bottom),left:pE(t.left),right:pE(t.right)}:(t=>({top:t,bottom:t,left:t,right:t}))(pE(t))}async function mE(t,e,n,r){const a=$h(e),u=a&&a.headless;return u||i("Unrecognized renderer type: "+e),await t.runAsync(),fE(t,null,null,u,n,r).renderAsync(t._scenegraph.root)}var vE,yE,_E,xE,bE;function wE(t){this.type=t}wE.prototype.visit=function(t){var e,n,r;if(t(this))return 1;for(n=0,r=(e=function(t){switch(t.type){case"ArrayExpression":return t.elements;case"BinaryExpression":case"LogicalExpression":return[t.left,t.right];case"CallExpression":var e=t.arguments.slice();return e.unshift(t.callee),e;case"ConditionalExpression":return[t.test,t.consequent,t.alternate];case"MemberExpression":return[t.object,t.property];case"ObjectExpression":return t.properties;case"Property":return[t.key,t.value];case"UnaryExpression":return[t.argument];case"Identifier":case"Literal":case"RawCode":default:return[]}}(this)).length;n<r;++n)if(e[n].visit(t))return 1};(vE={})[1]="Boolean",vE[2]="<end>",vE[3]="Identifier",vE[4]="Keyword",vE[5]="Null",vE[6]="Numeric",vE[7]="Punctuator",vE[8]="String",vE[9]="RegularExpression";var AE="ILLEGAL",kE=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]"),ME=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 EE(t,e){if(!t)throw new Error("ASSERT: "+e)}function DE(t){return t>=48&&t<=57}function CE(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function FE(t){return"01234567".indexOf(t)>=0}function SE(t){return 32===t||9===t||11===t||12===t||160===t||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function BE(t){return 10===t||13===t||8232===t||8233===t}function zE(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||92===t||t>=128&&kE.test(String.fromCharCode(t))}function TE(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||92===t||t>=128&&ME.test(String.fromCharCode(t))}var NE={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 OE(){for(var t;_E<xE&&(SE(t=yE.charCodeAt(_E))||BE(t));)++_E}function RE(t){var e,n,r,i=0;for(n="u"===t?4:2,e=0;e<n;++e)_E<xE&&CE(yE[_E])?(r=yE[_E++],i=16*i+"0123456789abcdef".indexOf(r.toLowerCase())):QE({},"Unexpected token %0",AE);return String.fromCharCode(i)}function qE(){var t,e,n,r;for(e=0,"}"===(t=yE[_E])&&QE({},"Unexpected token %0",AE);_E<xE&&CE(t=yE[_E++]);)e=16*e+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||"}"!==t)&&QE({},"Unexpected token %0",AE),e<=65535?String.fromCharCode(e):(n=55296+(e-65536>>10),r=56320+(e-65536&1023),String.fromCharCode(n,r))}function UE(){var t,e;for(t=yE.charCodeAt(_E++),e=String.fromCharCode(t),92===t&&(117!==yE.charCodeAt(_E)&&QE({},"Unexpected token %0",AE),++_E,(t=RE("u"))&&"\\"!==t&&zE(t.charCodeAt(0))||QE({},"Unexpected token %0",AE),e=t);_E<xE&&TE(t=yE.charCodeAt(_E));)++_E,e+=String.fromCharCode(t),92===t&&(e=e.substr(0,e.length-1),117!==yE.charCodeAt(_E)&&QE({},"Unexpected token %0",AE),++_E,(t=RE("u"))&&"\\"!==t&&TE(t.charCodeAt(0))||QE({},"Unexpected token %0",AE),e+=t);return e}function LE(){var t,e;return t=_E,{type:1===(e=92===yE.charCodeAt(_E)?UE():function(){var t,e;for(t=_E++;_E<xE;){if(92===(e=yE.charCodeAt(_E)))return _E=t,UE();if(!TE(e))break;++_E}return yE.slice(t,_E)}()).length?3:NE.hasOwnProperty(e)?4:"null"===e?5:"true"===e||"false"===e?1:3,value:e,start:t,end:_E}}function PE(){var t,e,n,r,i=_E,a=yE.charCodeAt(_E),u=yE[_E];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++_E,{type:7,value:String.fromCharCode(a),start:i,end:_E};default:if(61===(t=yE.charCodeAt(_E+1)))switch(a){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return _E+=2,{type:7,value:String.fromCharCode(a)+String.fromCharCode(t),start:i,end:_E};case 33:case 61:return _E+=2,61===yE.charCodeAt(_E)&&++_E,{type:7,value:yE.slice(i,_E),start:i,end:_E}}}return">>>="===(r=yE.substr(_E,4))?{type:7,value:r,start:i,end:_E+=4}:">>>"===(n=r.substr(0,3))||"<<="===n||">>="===n?{type:7,value:n,start:i,end:_E+=3}:u===(e=n.substr(0,2))[1]&&"+-<>&|".indexOf(u)>=0||"=>"===e?{type:7,value:e,start:i,end:_E+=2}:"<>=!+-*%&|^/".indexOf(u)>=0?{type:7,value:u,start:i,end:++_E}:void QE({},"Unexpected token %0",AE)}function $E(){var t,e,n;if(EE(DE((n=yE[_E]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),e=_E,t="","."!==n){if(t=yE[_E++],n=yE[_E],"0"===t){if("x"===n||"X"===n)return++_E,function(t){for(var e="";_E<xE&&CE(yE[_E]);)e+=yE[_E++];return 0===e.length&&QE({},"Unexpected token %0",AE),zE(yE.charCodeAt(_E))&&QE({},"Unexpected token %0",AE),{type:6,value:parseInt("0x"+e,16),start:t,end:_E}}(e);if(FE(n))return function(t){for(var e="0"+yE[_E++];_E<xE&&FE(yE[_E]);)e+=yE[_E++];return(zE(yE.charCodeAt(_E))||DE(yE.charCodeAt(_E)))&&QE({},"Unexpected token %0",AE),{type:6,value:parseInt(e,8),octal:!0,start:t,end:_E}}(e);n&&DE(n.charCodeAt(0))&&QE({},"Unexpected token %0",AE)}for(;DE(yE.charCodeAt(_E));)t+=yE[_E++];n=yE[_E]}if("."===n){for(t+=yE[_E++];DE(yE.charCodeAt(_E));)t+=yE[_E++];n=yE[_E]}if("e"===n||"E"===n)if(t+=yE[_E++],"+"!==(n=yE[_E])&&"-"!==n||(t+=yE[_E++]),DE(yE.charCodeAt(_E)))for(;DE(yE.charCodeAt(_E));)t+=yE[_E++];else QE({},"Unexpected token %0",AE);return zE(yE.charCodeAt(_E))&&QE({},"Unexpected token %0",AE),{type:6,value:parseFloat(t),start:e,end:_E}}function jE(){var t,e,n,r;return bE=null,OE(),t=_E,e=function(){var t,e,n,r;for(EE("/"===(t=yE[_E]),"Regular expression literal must start with a slash"),e=yE[_E++],n=!1,r=!1;_E<xE;)if(e+=t=yE[_E++],"\\"===t)BE((t=yE[_E++]).charCodeAt(0))&&QE({},"Invalid regular expression: missing /"),e+=t;else if(BE(t.charCodeAt(0)))QE({},"Invalid regular expression: missing /");else if(n)"]"===t&&(n=!1);else{if("/"===t){r=!0;break}"["===t&&(n=!0)}return r||QE({},"Invalid regular expression: missing /"),{value:e.substr(1,e.length-2),literal:e}}(),n=function(){var t,e,n;for(e="",n="";_E<xE&&TE((t=yE[_E]).charCodeAt(0));)++_E,"\\"===t&&_E<xE?QE({},"Unexpected token %0",AE):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&QE({},"Invalid regular expression",n),{value:n,literal:e}}(),r=function(t,e){var n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(function(t,e){if(parseInt(e,16)<=1114111)return"x";QE({},"Invalid regular expression")})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch(t){QE({},"Invalid regular expression")}try{return new RegExp(t,e)}catch(t){return null}}(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:_E}}function IE(){var t;return OE(),_E>=xE?{type:2,start:_E,end:_E}:zE(t=yE.charCodeAt(_E))?LE():40===t||41===t||59===t?PE():39===t||34===t?function(){var t,e,n,r,i="",a=!1;for(EE("'"===(t=yE[_E])||'"'===t,"String literal must starts with a quote"),e=_E,++_E;_E<xE;){if((n=yE[_E++])===t){t="";break}if("\\"===n)if((n=yE[_E++])&&BE(n.charCodeAt(0)))"\r"===n&&"\n"===yE[_E]&&++_E;else switch(n){case"u":case"x":"{"===yE[_E]?(++_E,i+=qE()):i+=RE(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:FE(n)?(0!==(r="01234567".indexOf(n))&&(a=!0),_E<xE&&FE(yE[_E])&&(a=!0,r=8*r+"01234567".indexOf(yE[_E++]),"0123".indexOf(n)>=0&&_E<xE&&FE(yE[_E])&&(r=8*r+"01234567".indexOf(yE[_E++]))),i+=String.fromCharCode(r)):i+=n}else{if(BE(n.charCodeAt(0)))break;i+=n}}return""!==t&&QE({},"Unexpected token %0",AE),{type:8,value:i,octal:a,start:e,end:_E}}():46===t?DE(yE.charCodeAt(_E+1))?$E():PE():DE(t)?$E():PE()}function HE(){var t;return _E=(t=bE).end,bE=IE(),_E=t.end,t}function WE(){var t;t=_E,bE=IE(),_E=t}function YE(t,e,n){var r=new wE("||"===t||"&&"===t?"LogicalExpression":"BinaryExpression");return r.operator=t,r.left=e,r.right=n,r}function VE(t,e){var n=new wE("CallExpression");return n.callee=t,n.arguments=e,n}function GE(t){var e=new wE("Identifier");return e.name=t,e}function XE(t){var e=new wE("Literal");return e.value=t.value,e.raw=yE.slice(t.start,t.end),t.regex&&("//"===e.raw&&(e.raw="/(?:)/"),e.regex=t.regex),e}function JE(t,e,n){var r=new wE("MemberExpression");return r.computed="["===t,r.object=e,r.property=n,r.computed||(n.member=!0),r}function ZE(t,e,n){var r=new wE("Property");return r.key=e,r.value=n,r.kind=t,r}function QE(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(function(t,e){return EE(e<r.length,"Message reference must be in range"),r[e]}));throw(n=new Error(i)).index=_E,n.description=i,n}function KE(t){2===t.type&&QE(t,"Unexpected end of input"),6===t.type&&QE(t,"Unexpected number"),8===t.type&&QE(t,"Unexpected string"),3===t.type&&QE(t,"Unexpected identifier"),4===t.type&&QE(t,"Unexpected reserved word"),QE(t,"Unexpected token %0",t.value)}function tD(t){var e=HE();7===e.type&&e.value===t||KE(e)}function eD(t){return 7===bE.type&&bE.value===t}function nD(t){return 4===bE.type&&bE.value===t}function rD(){var t=[];for(_E=bE.start,tD("[");!eD("]");)eD(",")?(HE(),t.push(null)):(t.push(gD()),eD("]")||tD(","));return HE(),function(t){var e=new wE("ArrayExpression");return e.elements=t,e}(t)}function iD(){var t;return _E=bE.start,8===(t=HE()).type||6===t.type?(t.octal&&QE(t,"Octal literals are not allowed in strict mode."),XE(t)):GE(t.value)}function aD(){var t,e,n;return _E=bE.start,3===(t=bE).type?(n=iD(),tD(":"),ZE("init",n,gD())):2!==t.type&&7!==t.type?(e=iD(),tD(":"),ZE("init",e,gD())):void KE(t)}function uD(){var t,e,n=[],r={},i=String;for(_E=bE.start,tD("{");!eD("}");)e="$"+("Identifier"===(t=aD()).key.type?t.key.name:i(t.key.value)),Object.prototype.hasOwnProperty.call(r,e)?QE({},"Duplicate data property in object literal not allowed in strict mode"):r[e]=!0,n.push(t),eD("}")||tD(",");return tD("}"),function(t){var e=new wE("ObjectExpression");return e.properties=t,e}(n)}var oD={if:1,this:1};function sD(){var t,e,n;if(eD("("))return function(){var t;return tD("("),t=mD(),tD(")"),t}();if(eD("["))return rD();if(eD("{"))return uD();if(t=bE.type,_E=bE.start,3===t||oD[bE.value])n=GE(HE().value);else if(8===t||6===t)bE.octal&&QE(bE,"Octal literals are not allowed in strict mode."),n=XE(HE());else{if(4===t)throw new Error("Disabled.");1===t?((e=HE()).value="true"===e.value,n=XE(e)):5===t?((e=HE()).value=null,n=XE(e)):eD("/")||eD("/=")?(n=XE(jE()),WE()):KE(HE())}return n}function lD(){var t=[];if(tD("("),!eD(")"))for(;_E<xE&&(t.push(gD()),!eD(")"));)tD(",");return tD(")"),t}function cD(){return tD("."),_E=bE.start,function(t){return 3===t.type||4===t.type||1===t.type||5===t.type}(t=HE())||KE(t),GE(t.value);var t}function fD(){var t;return tD("["),t=mD(),tD("]"),t}function hD(){var t=function(){var t;for(t=sD();;)if(eD("."))t=JE(".",t,cD());else if(eD("("))t=VE(t,lD());else{if(!eD("["))break;t=JE("[",t,fD())}return t}();if(7===bE.type&&(eD("++")||eD("--")))throw new Error("Disabled.");return t}function dD(){var t,e;if(7!==bE.type&&4!==bE.type)e=hD();else{if(eD("++")||eD("--"))throw new Error("Disabled.");if(eD("+")||eD("-")||eD("~")||eD("!"))t=HE(),e=dD(),e=function(t,e){var n=new wE("UnaryExpression");return n.operator=t,n.argument=e,n.prefix=!0,n}(t.value,e);else{if(nD("delete")||nD("void")||nD("typeof"))throw new Error("Disabled.");e=hD()}}return e}function pD(t){var e=0;if(7!==t.type&&4!==t.type)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11}return e}function gD(){var t,e;return t=function(){var t,e,n,r,i,a,u,o,s,l;if(t=bE,s=dD(),0===(i=pD(r=bE)))return s;for(r.prec=i,HE(),e=[t,bE],a=[s,r,u=dD()];(i=pD(bE))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)u=a.pop(),o=a.pop().value,s=a.pop(),e.pop(),n=YE(o,s,u),a.push(n);(r=HE()).prec=i,a.push(r),e.push(bE),n=dD(),a.push(n)}for(n=a[l=a.length-1],e.pop();l>1;)e.pop(),n=YE(a[l-1].value,a[l-2],n),l-=2;return n}(),eD("?")&&(HE(),e=gD(),tD(":"),t=function(t,e,n){var r=new wE("ConditionalExpression");return r.test=t,r.consequent=e,r.alternate=n,r}(t,e,gD())),t}function mD(){var t=gD();if(eD(","))throw new Error("Disabled.");return t}var vD={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 yD(t){function e(e,n,r){return function(i){return function(e,n,r,i){var a=t(n[0]);return r&&(a=r+"("+a+")",0===r.lastIndexOf("new ",0)&&(a="("+a+")")),a+"."+e+(i<0?"":0===i?"()":"("+n.slice(1).map(t).join(",")+")")}(e,i,n,r)}}var n="new Date";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",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(e){e.length<3&&i("Missing arguments to clamp function."),e.length>3&&i("Too many arguments to clamp function.");var n=e.map(t);return"Math.max("+n[1]+", Math.min("+n[2]+","+n[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:n,date:e("getDate",n,0),day:e("getDay",n,0),year:e("getFullYear",n,0),month:e("getMonth",n,0),hours:e("getHours",n,0),minutes:e("getMinutes",n,0),seconds:e("getSeconds",n,0),milliseconds:e("getMilliseconds",n,0),time:e("getTime",n,0),timezoneoffset:e("getTimezoneOffset",n,0),utcdate:e("getUTCDate",n,0),utcday:e("getUTCDay",n,0),utcyear:e("getUTCFullYear",n,0),utcmonth:e("getUTCMonth",n,0),utchours:e("getUTCHours",n,0),utcminutes:e("getUTCMinutes",n,0),utcseconds:e("getUTCSeconds",n,0),utcmilliseconds:e("getUTCMilliseconds",n,0),length:e("length",null,-1),join:e("join",null),indexof:e("indexOf",null),lastindexof:e("lastIndexOf",null),slice:e("slice",null),reverse:function(e){return"("+t(e[0])+").slice().reverse()"},parseFloat:"parseFloat",parseInt:"parseInt",upper:e("toUpperCase","String",0),lower:e("toLowerCase","String",0),substring:e("substring","String"),split:e("split","String"),replace:e("replace","String"),trim:e("trim","String",0),regexp:"RegExp",test:e("test","RegExp"),if:function(e){e.length<3&&i("Missing arguments to if function."),e.length>3&&i("Too many arguments to if function.");var n=e.map(t);return"("+n[0]+"?"+n[1]+":"+n[2]+")"}}}function _D(t,e){for(var n,r,i=e.fields,a=e.values,o=i.length,s=0;s<o;++s)if((r=i[s]).getter=c.getter||c(r.field),ut(n=r.getter(t))&&(n=M(n)),ut(a[s])&&(a[s]=M(a[s])),ut(a[s][0])&&(a[s]=a[s].map(M)),"E"===r.type){if(u(a[s])?a[s].indexOf(n)<0:n!==a[s])return!1}else if("R"===r.type){if(!it(n,a[s]))return!1}else if("R-RE"===r.type){if(!it(n,a[s],!0,!1))return!1}else if("R-E"===r.type){if(!it(n,a[s],!1,!1))return!1}else if("R-LE"===r.type&&!it(n,a[s],!1,!0))return!1;return!0}var xD={E_union:function(t,e){if(!t.length)return e;for(var n=0,r=e.length;n<r;++n)t.indexOf(e[n])<0&&t.push(e[n]);return t},E_intersect:function(t,e){return t.length?t.filter((function(t){return e.indexOf(t)>=0})):e},R_union:function(t,e){var n=M(e[0]),r=M(e[1]);return n>r&&(n=e[1],r=e[0]),t.length?(t[0]>n&&(t[0]=n),t[1]<r&&(t[1]=r),t):[n,r]},R_intersect:function(t,e){var n=M(e[0]),r=M(e[1]);return n>r&&(n=e[1],r=e[0]),t.length?r<t[0]||t[1]<n?[]:(t[0]<n&&(t[0]=n),t[1]>r&&(t[1]=r),t):[n,r]}};function bD(t,e,n,r){"Literal"!==e[0].type&&i("First argument to selection functions must be a string literal.");const a=e[0].value,u=":"+a;"intersect"!==(e.length>=2&&k(e).value)||K(r,"@unit")||(r["@unit"]=n.getData(a).indataRef(n,"unit")),K(r,u)||(r[u]=n.getData(a).tuplesRef())}function wD(t){const e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}function AD(t){const e=ap(t);return.2126*wD(e.r)+.7152*wD(e.g)+.0722*wD(e.b)}function kD(t){const e=this.context.data[t];return e?e.values.value:[]}const MD={};function ED(t,e,n){let r=t+":"+n,i=MD[r];return i&&i[0]===e||(MD[r]=i=[e,e(n)]),i[1]}function DD(t,e){return ED("timeFormat",ao,e)(t)}var CD=new Date(2e3,0,1);function FD(t,e,n){return Number.isInteger(t)&&Number.isInteger(e)?(CD.setYear(2e3),CD.setMonth(t),CD.setDate(e),DD(CD,n)):""}function SD(t,e){let n;return W(t)?t:s(t)?(n=e.scales[t])&&n.value:void 0}function BD(t,e){return function(n,r,i){if(n){const e=SD(n,(i||this).context);return e&&e.path[t](r)}return e(r)}}const zD=BD("area",(function(t){return jy.reset(),Oy(t,Iy),2*jy})),TD=BD("bounds",(function(t){var e,n,r,i,a,u,o;if(i_=r_=-(e_=n_=1/0),l_=[],Oy(t,C_),n=l_.length){for(l_.sort(q_),e=1,a=[r=l_[0]];e<n;++e)U_(r,(i=l_[e])[0])||U_(r,i[1])?(R_(r[0],i[1])>R_(r[0],r[1])&&(r[1]=i[1]),R_(i[0],r[1])>R_(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(u=-1/0,e=0,r=a[n=a.length-1];e<=n;r=i,++e)i=a[e],(o=R_(r[1],i[0]))>u&&(u=o,e_=i[0],r_=r[1])}return l_=c_=null,e_===1/0||n_===1/0?[[NaN,NaN],[NaN,NaN]]:[[e_,n_],[r_,i_]]})),ND=BD("centroid",(function(t){f_=h_=d_=p_=g_=m_=v_=y_=__=x_=b_=0,Oy(t,L_);var e=__,n=x_,r=b_,i=e*e+n*n+r*r;return i<1e-12&&(e=m_,n=v_,r=y_,h_<1e-6&&(e=d_,n=p_,r=g_),(i=e*e+n*n+r*r)<1e-12)?[NaN,NaN]:[vy(n,e)*dy,Cy(r/My(i))*dy]}));function OD(t,e,n){try{t[e].apply(t,["EXPRESSION"].concat([].slice.call(n)))}catch(e){t.warn(e)}return n[n.length-1]}function RD(t,e){return t===e||t!=t&&e!=e||(u(t)?!(!u(e)||t.length!==e.length)&&function(t,e){for(let n=0,r=t.length;n<r;++n)if(!RD(t[n],e[n]))return!1;return!0}(t,e):!(!o(t)||!o(e))&&qD(t,e))}function qD(t,e){for(let n in t)if(!RD(t[n],e[n]))return!1;return!0}function UD(t){return e=>qD(t,e)}const LD={};function PD(t){return t.data}function $D(t,e){const n=kD.call(e,t);return n.root&&n.root.lookup||LD}const jD="undefined"!=typeof window&&window||null;function ID(t,e,n,r){"Literal"!==e[0].type&&i("First argument to data functions must be a string literal.");const a=e[0].value,u=":"+a;if(!K(u,r))try{r[u]=n.getData(a).tuplesRef()}catch(t){}}function HD(t,e,n,r){if("Literal"===e[0].type)WD(n,r,e[0].value);else if("Identifier"===e[0].type)for(t in n.scales)WD(n,r,t)}function WD(t,e,n){const r="%"+n;if(!K(e,r))try{e[r]=t.scaleRef(n)}catch(t){}}const YD={random:function(){return t.random()},cumulativeNormal:Ni,cumulativeLogNormal:Pi,cumulativeUniform:Yi,densityNormal:Ti,densityLogNormal:Li,densityUniform:Wi,quantileNormal:Oi,quantileLogNormal:$i,quantileUniform:Vi,sampleNormal:zi,sampleLogNormal:Ui,sampleUniform:Hi,isArray:u,isBoolean:at,isDate:ut,isDefined:function(t){return void 0!==t},isNumber:ot,isObject:o,isRegExp:st,isString:s,isTuple:Dt,isValid:function(t){return null!=t&&t==t},toBoolean:mt,toDate:yt,toNumber:M,toString:_t,flush:nt,lerp:ct,merge:function(){var t=[].slice.call(arguments);return t.unshift({}),X.apply(null,t)},pad:pt,peek:k,span:gt,inrange:it,truncate:bt,rgb:ap,lab:_p,hcl:Ep,hsl:hp,luminance:AD,contrast:function(t,e){const n=AD(t),r=AD(e);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)},sequence:li,format:function(t,e){return ED("format",Jg,e)(t)},utcFormat:function(t,e){return ED("utcFormat",uo,e)(t)},utcParse:function(t,e){return ED("utcParse",cn,e)(t)},utcOffset:Ku,utcSequence:no,timeFormat:DD,timeParse:function(t,e){return ED("timeParse",sn,e)(t)},timeOffset:Qu,timeSequence:eo,timeUnitSpecifier:io,monthFormat:function(t){return FD(t,1,"%B")},monthAbbrevFormat:function(t){return FD(t,1,"%b")},dayFormat:function(t){return FD(0,2+t,"%A")},dayAbbrevFormat:function(t){return FD(0,2+t,"%a")},quarter:$,utcquarter:j,warn:function(){return OD(this.context.dataflow,"warn",arguments)},info:function(){return OD(this.context.dataflow,"info",arguments)},debug:function(){return OD(this.context.dataflow,"debug",arguments)},extent:J,inScope:function(t){let e=this.context.group,n=!1;if(e)for(;t;){if(t===e){n=!0;break}t=t.mark.group}return n},intersect:function(t,e,n){if(!t)return[];const[r,i]=t,a=(new Uo).set(r[0],r[1],i[0],i[1]);return jh(n||this.context.dataflow.scenegraph().root,a,function(t){let e=null;if(t){const n=I(t.marktype),r=I(t.markname);e=t=>(!n.length||n.some(e=>t.marktype===e))&&(!r.length||r.some(e=>t.name===e))}return e}(e))},clampRange:H,pinchDistance:function(t){const e=t.touches,n=e[0].clientX-e[1].clientX,r=e[0].clientY-e[1].clientY;return Math.sqrt(n*n+r*r)},pinchAngle:function(t){const e=t.touches;return Math.atan2(e[0].clientY-e[1].clientY,e[0].clientX-e[1].clientX)},screen:function(){return jD?jD.screen:{}},containerSize:function(){const t=this.context.dataflow,e=t.container&&t.container();return e?[e.clientWidth,e.clientHeight]:[void 0,void 0]},windowSize:function(){return jD?[jD.innerWidth,jD.innerHeight]:[void 0,void 0]},bandspace:function(t,e,n){return Bd(t||0,e||0,n||0)},setdata:function(t,e){const n=this.context.dataflow,r=this.context.data[t].input;return n.pulse(r,n.changeset().remove(m).insert(e)),1},pathShape:function(t){let e=null;return function(n){return n?kl(n,e=e||dl(t)):t}},panLinear:z,panLog:T,panPow:N,panSymlog:O,zoomLinear:q,zoomLog:U,zoomPow:L,zoomSymlog:P,encode:function(t,e,n){if(t){const n=this.context.dataflow,r=t.mark.source;n.pulse(r,n.changeset().encode(t,e))}return void 0!==n?n:t},modify:function(t,e,n,r,i,a){let o,s,l=this.context.dataflow,c=this.context.data[t],f=c.input,h=c.changes,d=l.stamp();if(!1===l._trigger||!(f.value.length||e||r))return 0;if((!h||h.stamp<d)&&(c.changes=h=l.changeset(),h.stamp=d,l.runAfter((function(){c.modified=!0,l.pulse(f,h).run()}),!0,1)),n&&(o=!0===n?m:u(n)||Dt(n)?n:UD(n),h.remove(o)),e&&h.insert(e),r&&(o=UD(r),f.value.some(o)?h.remove(o):h.insert(r)),i)for(s in a)h.modify(i,s,a[s]);return 1}},VD=["view","item","group","xy","x","y"],GD={};function XD(t,e,n){return 1===arguments.length?YD[t]:(YD[t]=e,n&&(GD[t]=n),ZD&&(ZD.functions[t]="this."+t),this)}XD("bandwidth",(function(t,e){const n=SD(t,(e||this).context);return n&&n.bandwidth?n.bandwidth():0}),HD),XD("copy",(function(t,e){const n=SD(t,(e||this).context);return n?n.copy():void 0}),HD),XD("domain",(function(t,e){const n=SD(t,(e||this).context);return n?n.domain():[]}),HD),XD("range",(function(t,e){const n=SD(t,(e||this).context);return n&&n.range?n.range():[]}),HD),XD("invert",(function(t,e,n){const r=SD(t,(n||this).context);return r?u(e)?(r.invertRange||r.invert)(e):(r.invert||r.invertExtent)(e):void 0}),HD),XD("scale",(function(t,e,n){const r=SD(t,(n||this).context);return r&&void 0!==e?r(e):void 0}),HD),XD("gradient",(function(t,e,n,r,i){t=SD(t,(i||this).context);const a=Ho(e,n);let u=t.domain(),o=u[0],s=k(u),l=d;return s-o?l=Gm(t,o,s):t=(t.interpolator?Om("sequential")().interpolator(t.interpolator()):Om("linear")().interpolate(t.interpolate()).range(t.range())).domain([o=0,s=1]),t.ticks&&(u=t.ticks(+r||15),o!==u[0]&&u.unshift(o),s!==k(u)&&u.push(s)),u.forEach(e=>a.stop(l(e),t(e))),a}),HD),XD("geoArea",zD,HD),XD("geoBounds",TD,HD),XD("geoCentroid",ND,HD),XD("geoShape",(function(t,e,n){const r=SD(t,(n||this).context);return function(t){return r?r.path.context(t)(e):""}}),HD),XD("indata",(function(t,e,n){const r=this.context.data[t]["index:"+e],i=r?r.value.get(n):void 0;return i?i.count:i}),(function(t,e,n,r){"Literal"!==e[0].type&&i("First argument to indata must be a string literal."),"Literal"!==e[1].type&&i("Second argument to indata must be a string literal.");const a=e[0].value,u=e[1].value,o="@"+u;K(o,r)||(r[o]=n.getData(a).indataRef(n,u))})),XD("data",kD,ID),XD("treePath",(function(t,e,n){const r=$D(t,this),i=r[e],a=r[n];return i&&a?i.path(a).map(PD):void 0}),ID),XD("treeAncestors",(function(t,e){const n=$D(t,this)[e];return n?n.ancestors().map(PD):void 0}),ID),XD("vlSelectionTest",(function(t,e,n){for(var r,i,a,u,o,s=this.context.data[t],l=s?s.values.value:[],c=s?s["index:unit"]&&s["index:unit"].value:void 0,f="intersect"===n,h=l.length,d=0;d<h;++d)if(r=l[d],c&&f){if(-1===(a=(i=i||{})[u=r.unit]||0))continue;if(o=_D(e,r),i[u]=o?-1:++a,o&&1===c.size)return!0;if(!o&&a===c.get(u).count)return!1}else if(f^(o=_D(e,r)))return o;return h&&f}),bD),XD("vlSelectionResolve",(function(t,e,n){for(var r,i,a,u,o,s,l,c,f,h,d,p=this.context.data[t],g=p?p.values.value:[],m={},v={},y={},_=g.length,x=0;x<_;++x){for(u=(r=g[x]).unit,i=r.fields,a=r.values,h=0,d=i.length;h<d;++h)o=i[h],l=(s=m[o.field]||(m[o.field]={}))[u]||(s[u]=[]),y[o.field]=c=o.type.charAt(0),f=xD[c+"_union"],s[u]=f(l,I(a[h]));n&&(l=v[u]||(v[u]=[])).push(I(a).reduce((t,e,n)=>(t[i[n].field]=e,t),{}))}return e=e||"union",Object.keys(m).forEach((function(t){m[t]=Object.keys(m[t]).map(e=>m[t][e]).reduce((n,r)=>void 0===n?r:xD[y[t]+"_"+e](n,r))})),g=Object.keys(v),n&&g.length&&(m.vlMulti="union"===e?{or:g.reduce((t,e)=>(t.push.apply(t,v[e]),t),[])}:{and:g.map(t=>({or:v[t]}))}),m}),bD);const JD={blacklist:["_"],whitelist:["datum","event","item"],fieldvar:"datum",globalvar:function(t){return"_["+l("$"+t)+"]"},functions:function(t){const e=yD(t);VD.forEach(t=>e[t]="event.vega."+t);for(let t in YD)e[t]="this."+t;return e},constants:vD,visitors:GD};var ZD=function(t){var e=(t=t||{}).whitelist?xt(t.whitelist):{},n=t.blacklist?xt(t.blacklist):{},r=t.constants||vD,a=(t.functions||yD)(d),u=t.globalvar,o=t.fieldvar,l={},c={},f=0,h=W(u)?u:function(t){return u+'["'+t+'"]'};function d(t){if(s(t))return t;var e=p[t.type];return null==e&&i("Unsupported type: "+t.type),e(t)}var p={Literal:function(t){return t.raw},Identifier:function(t){var a=t.name;return f>0?a:K(n,a)?i("Illegal identifier: "+a):K(r,a)?r[a]:K(e,a)?a:(l[a]=1,h(a))},MemberExpression:function(t){var e=!t.computed,n=d(t.object);e&&(f+=1);var r=d(t.property);return n===o&&(c[function(t){var e=t&&t.length-1;return e&&('"'===t[0]&&'"'===t[e]||"'"===t[0]&&"'"===t[e])?t.slice(1,-1):t}(r)]=1),e&&(f-=1),n+(e?"."+r:"["+r+"]")},CallExpression:function(t){"Identifier"!==t.callee.type&&i("Illegal callee type: "+t.callee.type);var e=t.callee.name,n=t.arguments,r=K(a,e)&&a[e];return r||i("Unrecognized function: "+e),W(r)?r(n):r+"("+n.map(d).join(",")+")"},ArrayExpression:function(t){return"["+t.elements.map(d).join(",")+"]"},BinaryExpression:function(t){return"("+d(t.left)+t.operator+d(t.right)+")"},UnaryExpression:function(t){return"("+t.operator+d(t.argument)+")"},ConditionalExpression:function(t){return"("+d(t.test)+"?"+d(t.consequent)+":"+d(t.alternate)+")"},LogicalExpression:function(t){return"("+d(t.left)+t.operator+d(t.right)+")"},ObjectExpression:function(t){return"{"+t.properties.map(d).join(",")+"}"},Property:function(t){f+=1;var e=d(t.key);return f-=1,e+":"+d(t.value)}};function g(t){var e={code:d(t),globals:Object.keys(l),fields:Object.keys(c)};return l={},c={},e}return g.functions=a,g.constants=r,g}(JD);function QD(t,e,n){";"!==e[e.length-1]&&(e="return("+e+");");var r=Function.apply(null,t.concat(e));return n&&n.functions?r.bind(n.functions):r}function KD(t,e){return QD(["event"],t,e)}function tC(t,e){return QD(["item","_"],t,e)}function eC(t,e,n){var r,i;for(r in n=n||{},t)i=t[r],n[r]=u(i)?i.map((function(t){return nC(t,e,n)})):nC(i,e,n);return n}function nC(t,e,n){if(!t||!o(t))return t;for(var r,i=0,a=rC.length;i<a;++i)if(K(t,(r=rC[i]).key))return r.parse(t,e,n);return t}var rC=[{key:"$ref",parse:function(t,e){return e.get(t.$ref)||i("Operator not defined: "+t.$ref)}},{key:"$key",parse:function(t,e){var n="k:"+t.$key+"_"+!!t.$flat;return e.fn[n]||(e.fn[n]=lt(t.$key,t.$flat))}},{key:"$expr",parse:function(t,n,r){t.$params&&eC(t.$params,n,r);var i="e:"+t.$expr+"_"+t.$name;return n.fn[i]||(n.fn[i]=e(function(t,e){return QD(["datum","_"],t,e)}(t.$expr,n),t.$fields,t.$name))}},{key:"$field",parse:function(t,e){if(!t.$field)return null;var n="f:"+t.$field+"_"+t.$name;return e.fn[n]||(e.fn[n]=c(t.$field,t.$name))}},{key:"$encode",parse:function(t,n){var r,i,a=t.$encode,u={};for(r in a)i=a[r],u[r]=e(tC(i.$expr,n),i.$fields),u[r].output=i.$output;return u}},{key:"$compare",parse:function(t,e){var n="c:"+t.$compare+"_"+t.$order,r=I(t.$compare).map((function(t){return t&&t.$tupleid?Ct:t}));return e.fn[n]||(e.fn[n]=Y(r,t.$order))}},{key:"$context",parse:function(t,e){return e}},{key:"$subflow",parse:function(t,e){var n=t.$subflow;return function(t,r,i){var a=oC(n,e.fork()),u=a.get(n.operators[0].id),o=a.signals.parent;return o&&o.set(i),u}}},{key:"$tupleid",parse:function(){return Ct}}];function iC(t){return(t+"").toLowerCase()}function aC(t,e){!function(t){return"operator"===iC(t)}(t.type)&&t.type?e.transform(t,t.type):e.operator(t,t.update?function(t,e){return QD(["_"],t,e)}(t.update,e):null)}function uC(t,e){var n=o(n=t.source)?n.$ref:n,r=e.get(n),a=null,u=t.update,s=void 0;r||i("Source not defined: "+t.source),a=t.target&&t.target.$expr?KD(t.target.$expr,e):e.get(t.target),u&&u.$expr&&(u.$params&&(s=eC(u.$params,e)),u=function(t,e){return QD(["_","event"],t,e)}(u.$expr,e)),e.update(t,r,a,u,s)}function oC(t,e){var n=t.operators||[];return t.background&&(e.background=t.background),t.eventConfig&&(e.eventConfig=t.eventConfig),n.forEach((function(t){aC(t,e)})),n.forEach((function(t){!function(t,e){if(t.params){var n=e.get(t.id);n||i("Invalid operator id: "+t.id),e.dataflow.connect(n,n.parameters(eC(t.params,e),t.react,t.initonly))}}(t,e)})),(t.streams||[]).forEach((function(t){!function(t,e){var n,r=null!=t.filter?KD(t.filter,e):void 0,a=null!=t.stream?e.get(t.stream):void 0;t.source?a=e.events(t.source,t.type,r):t.merge&&(a=(n=t.merge.map(e.get.bind(e)))[0].merge.apply(n[0],n.slice(1))),t.between&&(n=t.between.map(e.get.bind(e)),a=a.between(n[0],n[1])),t.filter&&(a=a.filter(r)),null!=t.throttle&&(a=a.throttle(+t.throttle)),null!=t.debounce&&(a=a.debounce(+t.debounce)),null==a&&i("Invalid stream definition: "+JSON.stringify(t)),t.consume&&a.consume(!0),e.stream(t,a)}(t,e)})),(t.updates||[]).forEach((function(t){uC(t,e)})),e.resolve()}var sC={skip:!0};function lC(t,e,n){return new cC(t,e,n)}function cC(t,e,n){this.dataflow=t,this.transforms=e,this.events=t.events.bind(t),this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function fC(t){this.dataflow=t.dataflow,this.transforms=t.transforms,this.functions=t.functions,this.events=t.events,this.signals=Object.create(t.signals),this.scales=Object.create(t.scales),this.nodes=Object.create(t.nodes),this.data=Object.create(t.data),this.fn=Object.create(t.fn),t.functions&&(this.functions=Object.create(t.functions),this.functions.context=this)}cC.prototype=fC.prototype={fork:function(){var t=new fC(this);return(this.subcontext||(this.subcontext=[])).push(t),t},get:function(t){return this.nodes[t]},set:function(t,e){return this.nodes[t]=e},add:function(t,e){var n,r=this,i=r.dataflow;if(r.set(t.id,e),function(t){return"collect"===iC(t)}(t.type)&&(n=t.value)&&(n.$ingest?i.ingest(e,n.$ingest,n.$format):n.$request?i.preload(e,n.$request,n.$format):i.pulse(e,i.changeset().insert(n))),t.root&&(r.root=e),t.parent){var a=r.get(t.parent.$ref);a?(i.connect(a,[e]),e.targets().add(a)):(r.unresolved=r.unresolved||[]).push((function(){a=r.get(t.parent.$ref),i.connect(a,[e]),e.targets().add(a)}))}if(t.signal&&(r.signals[t.signal]=e),t.scale&&(r.scales[t.scale]=e),t.data)for(var u in t.data)n=r.data[u]||(r.data[u]={}),t.data[u].forEach((function(t){n[t]=e}))},resolve:function(){return(this.unresolved||[]).forEach((function(t){t()})),delete this.unresolved,this},operator:function(t,e){this.add(t,this.dataflow.add(t.value,e))},transform:function(t,e){this.add(t,this.dataflow.add(this.transforms[iC(e)]))},stream:function(t,e){this.set(t.id,e)},update:function(t,e,n,r,i){this.dataflow.on(e,n,r,i,t.options)},getState:function(t){var e=this,n={};if(t.signals){var r=n.signals={};Object.keys(e.signals).forEach((function(n){var i=e.signals[n];t.signals(n,i)&&(r[n]=i.value)}))}if(t.data){var i=n.data={};Object.keys(e.data).forEach((function(n){var r=e.data[n];t.data(n,r)&&(i[n]=r.input.value)}))}return e.subcontext&&!1!==t.recurse&&(n.subcontext=e.subcontext.map((function(e){return e.getState(t)}))),n},setState:function(t){var e=this,n=e.dataflow,r=t.data,i=t.signals;Object.keys(i||{}).forEach((function(t){n.update(e.signals[t],i[t],sC)})),Object.keys(r||{}).forEach((function(t){n.pulse(e.data[t].input,n.changeset().remove(m).insert(r[t]))})),(t.subcontext||[]).forEach((function(t,n){var r=e.subcontext[n];r&&r.setState(t)}))}};var hC={skip:!0};function dC(t,e){var n=t.autosize(),r=t.padding();return e-(n&&"padding"===n.contains?r.left+r.right:0)}function pC(t,e){var n=t.autosize(),r=t.padding();return e-(n&&"padding"===n.contains?r.top+r.bottom:0)}function gC(t,e){return e.modified&&u(e.input.value)&&t.indexOf("_:vega:_")}function mC(t,e){return!("parent"===t||e instanceof Yr.proxy)}function vC(t,e,n,r){var i=t.element();i&&i.setAttribute("title",function(t){return null==t?"":u(t)?yC(t):o(t)&&!ut(t)?(e=t,Object.keys(e).map((function(t){var n=e[t];return t+": "+(u(n)?yC(n):_C(n))})).join("\n")):t+"";var e}(r))}function yC(t){return"["+t.map(_C).join(", ")+"]"}function _C(t){return u(t)?"[…]":o(t)&&!ut(t)?"{…}":t}function xC(t,e){e=e||{},$r.call(this),e.loader&&this.loader(e.loader),e.logger&&this.logger(e.logger),null!=e.logLevel&&this.logLevel(e.logLevel),this._el=null,this._elBind=null,this._renderType=e.renderer||Lh.Canvas,this._scenegraph=new Pf;var n=this._scenegraph.root;this._renderer=null,this._tooltip=e.tooltip||vC,this._redraw=!0,this._handler=(new th).scene(n),this._preventDefault=!1,this._timers=[],this._eventListeners=[],this._resizeListeners=[],this._eventConfig=function(t){const e=X({defaults:{}},t),n=(t,e)=>{e.forEach(e=>{u(t[e])&&(t[e]=xt(t[e]))})};return n(e.defaults,["prevent","allow"]),n(e,["view","window","selector"]),e}(t.eventConfig);var r=function(t,e,n){return oC(e,lC(t,Yr,n||YD))}(this,t,e.functions);this._runtime=r,this._signals=r.signals,this._bind=(t.bindings||[]).map((function(t){return{state:null,param:X({},t)}})),r.root&&r.root.set(n),n.source=r.data.root.input,this.pulse(r.data.root.input,this.changeset().insert(n.items)),this._width=this.width(),this._height=this.height(),this._viewWidth=dC(this,this._width),this._viewHeight=pC(this,this._height),this._origin=[0,0],this._resize=0,this._autosize=1,function(t){var e=t._signals,n=e.width,r=e.height,i=e.padding;function a(){t._autosize=t._resize=1}t._resizeWidth=t.add(null,(function(e){t._width=e.size,t._viewWidth=dC(t,e.size),a()}),{size:n}),t._resizeHeight=t.add(null,(function(e){t._height=e.size,t._viewHeight=pC(t,e.size),a()}),{size:r});var u=t.add(null,a,{pad:i});t._resizeWidth.rank=n.rank+1,t._resizeHeight.rank=r.rank+1,u.rank=i.rank+1}(this),function(t){t.add(null,e=>(t._background=e.bg,t._resize=1,e.bg),{bg:t._signals.background})}(this),WM(this),this.description(t.description),e.hover&&this.hover(),e.container&&this.initialize(e.container,e.bind)}var bC=rt(xC,$r);function wC(t,e){return K(t._signals,e)?t._signals[e]:i("Unrecognized signal name: "+l(e))}function AC(t,e){var n=(t._targets||[]).filter((function(t){var n=t._update;return n&&n.handler===e}));return n.length?n[0]:null}function kC(t,e,n,r){var i=AC(n,r);return i||((i=hE(this,(function(){r(e,n.value)}))).handler=r,t.on(n,null,i)),t}function MC(t,e,n){var r=AC(e,n);return r&&e._targets.remove(r),t}function EC(t){return o(t)?t:{type:t||"pad"}}bC.evaluate=async function(t,e,n){if(await $r.prototype.evaluate.call(this,t,e),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,function(t){var e=JM(t),n=GM(t),r=XM(t);t._renderer.background(t.background()),t._renderer.resize(n,r,e),t._handler.origin(e),t._resizeListeners.forEach((function(e){try{e(n,r)}catch(e){t.error(e)}}))}(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(t){this.error(t)}return n&&kt(this,n),this},bC.dirty=function(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},bC.description=function(t){if(arguments.length){const e=null!=t?t+"":null;return e!==this._desc&&HM(this._el,this._desc=e),this}return this._desc},bC.container=function(){return this._el},bC.scenegraph=function(){return this._scenegraph},bC.origin=function(){return this._origin.slice()},bC.signal=function(t,e,n){var r=wC(this,t);return 1===arguments.length?r.value:this.update(r,e,n)},bC.width=function(t){return arguments.length?this.signal("width",t):this.signal("width")},bC.height=function(t){return arguments.length?this.signal("height",t):this.signal("height")},bC.padding=function(t){return arguments.length?this.signal("padding",gE(t)):gE(this.signal("padding"))},bC.autosize=function(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},bC.background=function(t){return arguments.length?this.signal("background",t):this.signal("background")},bC.renderer=function(t){return arguments.length?($h(t)||i("Unrecognized renderer type: "+t),t!==this._renderType&&(this._renderType=t,this._resetRenderer()),this):this._renderType},bC.tooltip=function(t){return arguments.length?(t!==this._tooltip&&(this._tooltip=t,this._resetRenderer()),this):this._tooltip},bC.loader=function(t){return arguments.length?(t!==this._loader&&($r.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},bC.resize=function(){return this._autosize=1,this.touch(wC(this,"autosize"))},bC._resetRenderer=function(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},bC._resizeView=function(t,e,n,r,i,a){this.runAfter((function(u){var o=0;u._autosize=0,u.width()!==n&&(o=1,u.signal("width",n,hC),u._resizeWidth.skip(!0)),u.height()!==r&&(o=1,u.signal("height",r,hC),u._resizeHeight.skip(!0)),u._viewWidth!==t&&(u._resize=1,u._viewWidth=t),u._viewHeight!==e&&(u._resize=1,u._viewHeight=e),u._origin[0]===i[0]&&u._origin[1]===i[1]||(u._resize=1,u._origin=i),o&&u.run("enter"),a&&u.runAfter(t=>t.resize())}),!1,1)},bC.addEventListener=function(t,e,n){var r=e;return n&&!1===n.trap||((r=hE(this,e)).raw=e),this._handler.on(t,r),this},bC.removeEventListener=function(t,e){for(var n,r,i=this._handler.handlers(t),a=i.length;--a>=0;)if(r=i[a].type,n=i[a].handler,t===r&&(e===n||e===n.raw)){this._handler.off(r,n);break}return this},bC.addResizeListener=function(t){var e=this._resizeListeners;return e.indexOf(t)<0&&e.push(t),this},bC.removeResizeListener=function(t){var e=this._resizeListeners,n=e.indexOf(t);return n>=0&&e.splice(n,1),this},bC.addSignalListener=function(t,e){return kC(this,t,wC(this,t),e)},bC.removeSignalListener=function(t,e){return MC(this,wC(this,t),e)},bC.addDataListener=function(t,e){return kC(this,t,YM(this,t).values,e)},bC.removeDataListener=function(t,e){return MC(this,YM(this,t).values,e)},bC.preventDefault=function(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},bC.timer=function(t,e){this._timers.push(function(t,e,n){var r=new lA,i=e;return null==e?(r.restart(t,e,n),r):(e=+e,n=null==n?oA():+n,r.restart((function a(u){u+=i,r.restart(a,i+=e,n),t(u)}),e,n),r)}((function(e){t({timestamp:Date.now(),elapsed:e})}),e))},bC.events=function(t,e,n){var r,i=this,a=new Yt(n),u=function(n,r){i.runAsync(null,()=>{"view"===t&&function(t,e){var n=t._eventConfig.defaults,r=n.prevent,i=n.allow;return!1!==r&&!0!==i&&(!0===r||!1===i||(r?r[e]:i?!i[e]:t.preventDefault()))}(i,e)&&n.preventDefault(),a.receive(ZM(i,n,r))})};if("timer"===t)KM(i,"timer",e)&&i.timer(u,e);else if("view"===t)KM(i,"view",e)&&i.addEventListener(e,u,QM);else if("window"===t?KM(i,"window",e)&&"undefined"!=typeof window&&(r=[window]):"undefined"!=typeof document&&KM(i,"selector",e)&&(r=document.querySelectorAll(t)),r){for(var o=0,s=r.length;o<s;++o)r[o].addEventListener(e,u);i._eventListeners.push({type:e,sources:r,handler:u})}else i.warn("Can not resolve event source: "+t);return a},bC.finalize=function(){var t,e,n,r=this._tooltip,i=this._timers,a=this._eventListeners;for(t=i.length;--t>=0;)i[t].stop();for(t=a.length;--t>=0;)for(e=(n=a[t]).sources.length;--e>=0;)n.sources[e].removeEventListener(n.type,n.handler);return r&&r.call(this,this._handler,null,null,null),this},bC.hover=function(t,e){return e=[e||"update",(t=[t||"hover"])[0]],this.on(this.events("view","mouseover",tE),eE,nE(t)),this.on(this.events("view","mouseout",tE),eE,nE(e)),this},bC.data=function(t,e){return arguments.length<2?YM(this,t).values.value:VM.call(this,t,Rt().remove(m).insert(e))},bC.change=VM,bC.insert=function(t,e){return VM.call(this,t,Rt().insert(e))},bC.remove=function(t,e){return VM.call(this,t,Rt().remove(e))},bC.scale=function(t){var e=this._runtime.scales;return K(e,t)||i("Unrecognized scale or projection: "+t),e[t].value},bC.initialize=function(t,e){const n=this,r=n._renderType,i=n._eventConfig.bind,a=$h(r);t=n._el=t?dE(n,t):null,function(t){const e=t.container();e&&(e.setAttribute("role","figure"),HM(e,t.description()))}(n),a||n.error("Unrecognized renderer type: "+r);const u=a.handler||th,o=t?a.renderer:a.headless;return n._renderer=o?fE(n,n._renderer,t,o):null,n._handler=function(t,e,n,r){var i=new r(t.loader(),hE(t,t.tooltip())).scene(t.scenegraph().root).initialize(n,JM(t),t);return e&&e.handlers().forEach((function(t){i.on(t.type,t.handler)})),i}(n,n._handler,t,u),n._redraw=!0,t&&"none"!==i&&(e=e?n._elBind=dE(n,e):t.appendChild(rE("div",{class:"vega-bindings"})),n._bind.forEach((function(t){t.param.element&&"container"!==i&&(t.element=dE(n,t.param.element))})),n._bind.forEach((function(t){iE(n,t.element||e,t)}))),n},bC.toImageURL=async function(t,e){t!==Lh.Canvas&&t!==Lh.SVG&&t!==Lh.PNG&&i("Unrecognized image type: "+t);const n=await mE(this,t,e);return t===Lh.SVG?function(t,e){var n=new Blob([t],{type:e});return window.URL.createObjectURL(n)}(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")},bC.toCanvas=async function(t,e){return(await mE(this,Lh.Canvas,t,e)).canvas()},bC.toSVG=async function(t){return(await mE(this,Lh.SVG,t)).svg()},bC.getState=function(t){return this._runtime.getState(t||{data:gC,signals:mC,recurse:!0})},bC.setState=function(t){return this.runAsync(null,e=>{e._trigger=!1,e._runtime.setState(t)},t=>{t._trigger=!0}),this};const DC=t=>+t||0;function CC(t){return o(t)?t.signal?t:{top:DC(t.top),bottom:DC(t.bottom),left:DC(t.left),right:DC(t.right)}:{top:e=DC(t),bottom:e,left:e,right:e};var e}var FC=["value","update","init","react","bind"];function SC(t,e){i(t+' for "outer" push: '+l(e))}function BC(t,e){var n=t.name;if("outer"===t.push)e.signals[n]||SC("No prior signal definition",n),FC.forEach((function(e){void 0!==t[e]&&SC("Invalid property ",e)}));else{var r=e.addSignal(n,t.value);!1===t.react&&(r.react=!1),t.bind&&e.addBinding(n,t.bind)}}function zC(t,e,n){var r,a,u={};try{r=function(t){_E=0,xE=(yE=t).length,bE=null,WE();var e=mD();if(2!==bE.type)throw new Error("Unexpect token after expression.");return e}(t=s(t)?t:l(t)+"")}catch(e){i("Expression parse error: "+t)}return r.visit((function(t){if("CallExpression"===t.type){var n=t.callee.name,r=JD.visitors[n];r&&r(n,t.arguments,e,u)}})),(a=ZD(r)).globals.forEach((function(t){var n="$"+t;!K(u,n)&&e.getSignal(t)&&(u[n]=e.signalRef(t))})),{$expr:n?n+"return("+a.code+");":a.code,$fields:a.fields,$params:u}}function TC(t,e,n,r){this.id=-1,this.type=t,this.value=e,this.params=n,r&&(this.parent=r)}function NC(t,e,n,r){return new TC(t,e,n,r)}function OC(t,e){return NC("operator",t,e)}function RC(t){var e={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(e),e}function qC(t,e){return e?{$field:t,$name:e}:{$field:t}}var UC=qC("key");function LC(t,e){return{$compare:t,$order:e}}function PC(t,e){return(t&&t.signal?"$"+t.signal:t||"")+(t&&e?"_":"")+(e&&e.signal?"$"+e.signal:e||"")}function $C(t){return t&&t.signal}function jC(t){if($C(t))return!0;if(o(t))for(var e in t)if(jC(t[e]))return!0;return!1}function IC(t,e){return null!=t?t:e}function HC(t){return t&&t.signal||t}function WC(t,e){return(t.merge?YC:t.stream?VC:t.type?GC:i("Invalid stream specification: "+l(t)))(t,e)}function YC(t,e){var n=XC({merge:t.merge.map(t=>WC(t,e))},t,e);return e.addStream(n).id}function VC(t,e){var n=XC({stream:WC(t.stream,e)},t,e);return e.addStream(n).id}function GC(t,e){var n,r;return"timer"===t.type?(n=e.event("timer",t.throttle),t={between:t.between,filter:t.filter}):n=e.event(function(t){return"scope"===t?"view":t||"view"}(t.source),t.type),r=XC({stream:n},t,e),1===Object.keys(r).length?n:e.addStream(r).id}function XC(t,e,n){var r=e.between;return r&&(2!==r.length&&i('Stream "between" parameter must have 2 entries: '+l(e)),t.between=[WC(r[0],n),WC(r[1],n)]),r=e.filter?[].concat(e.filter):[],(e.marktype||e.markname||e.markrole)&&r.push(function(t,e,n){var r="event.item";return r+(t&&"*"!==t?"&&"+r+".mark.marktype==='"+t+"'":"")+(n?"&&"+r+".mark.role==='"+n+"'":"")+(e?"&&"+r+".mark.name==='"+e+"'":"")}(e.marktype,e.markname,e.markrole)),"scope"===e.source&&r.push("inScope(event.item)"),r.length&&(t.filter=zC("("+r.join(")&&(")+")").$expr),null!=(r=e.throttle)&&(t.throttle=+r),null!=(r=e.debounce)&&(t.debounce=+r),e.consume&&(t.consume=!0),t}var JC,ZC,QC="view",KC=/[[\]{}]/,tF={"*":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};function eF(t,e,n,r,i){for(var a,u=0,o=t.length;e<o;++e){if(a=t[e],!u&&a===n)return e;i&&i.indexOf(a)>=0?--u:r&&r.indexOf(a)>=0&&++u}return e}function nF(t){for(var e=[],n=0,r=t.length,i=0;i<r;)i=eF(t,i,",","[{","]}"),e.push(t.substring(n,i).trim()),n=++i;if(0===e.length)throw"Empty event selector: "+t;return e}function rF(t){return"["===t[0]?function(t){var e,n,r=t.length,i=1;if((i=eF(t,i,"]","[","]"))===r)throw"Empty between selector: "+t;if(2!==(e=nF(t.substring(1,i))).length)throw"Between selector must have two elements: "+t;if(">"!==(t=t.slice(i+1).trim())[0])throw"Expected '>' after between selector: "+t;if(e=e.map(rF),(n=rF(t.slice(1).trim())).between)return{between:e,stream:n};n.between=e;return n}(t):function(t){var e,n,r={source:JC},i=[],a=[0,0],u=0,o=0,s=t.length,l=0;if("}"===t[s-1]){if(!((l=t.lastIndexOf("{"))>=0))throw"Unmatched right brace: "+t;try{a=function(t){var e=t.split(",");if(!t.length||e.length>2)throw t;return e.map((function(e){var n=+e;if(n!=n)throw t;return n}))}(t.substring(l+1,s-1))}catch(e){throw"Invalid throttle specification: "+t}t=t.slice(0,l).trim(),s=t.length,l=0}if(!s)throw t;"@"===t[0]&&(u=++l);(e=eF(t,l,":"))<s&&(i.push(t.substring(o,e).trim()),o=l=++e);if((l=eF(t,l,"["))===s)i.push(t.substring(o,s).trim());else if(i.push(t.substring(o,l).trim()),n=[],(o=++l)===s)throw"Unmatched left bracket: "+t;for(;l<s;){if((l=eF(t,l,"]"))===s)throw"Unmatched left bracket: "+t;if(n.push(t.substring(o,l).trim()),l<s-1&&"["!==t[++l])throw"Expected left bracket: "+t;o=++l}if(!(s=i.length)||KC.test(i[s-1]))throw"Invalid event selector: "+t;s>1?(r.type=i[1],u?r.markname=i[0].slice(1):!function(t){return ZC[t]}(i[0])?r.source=i[0]:r.marktype=i[0]):r.type=i[0];"!"===r.type.slice(-1)&&(r.consume=!0,r.type=r.type.slice(0,-1));null!=n&&(r.filter=n);a[0]&&(r.throttle=a[0]);a[1]&&(r.debounce=a[1]);return r}(t)}var iF="var datum=event.item&&event.item.datum;";function aF(t,e,n){var r=t.events,a=t.update,u=t.encode,o=[],c={target:n};r||i("Signal update missing events specification."),s(r)&&(r=function(t,e,n){return JC=e||QC,ZC=n||tF,nF(t.trim()).map(rF)}(r,e.isSubscope()?"scope":"view")),r=I(r).filter(t=>t.signal||t.scale?(o.push(t),0):1),o.length>1&&(o=[uF(o)]),r.length&&o.push(r.length>1?{merge:r}:r[0]),null!=u&&(a&&i("Signal encode and update are mutually exclusive."),a="encode(item(),"+l(u)+")"),c.update=s(a)?zC(a,e,iF):null!=a.expr?zC(a.expr,e,iF):null!=a.value?a.value:null!=a.signal?{$expr:"_.value",$params:{value:e.signalRef(a.signal)}}:i("Invalid signal update specification."),t.force&&(c.options={force:!0}),o.forEach((function(t){e.addUpdate(X(function(t,e){return{source:t.signal?e.signalRef(t.signal):t.scale?e.scaleRef(t.scale):WC(t,e)}}(t,e),c))}))}function uF(t){return{signal:"["+t.map(t=>t.scale?'scale("'+t.scale+'")':t.signal)+"]"}}function oF(t){return function(e,n,r){return NC(t,n,e||void 0,r)}}var sF=oF("aggregate"),lF=oF("axisticks"),cF=oF("bound"),fF=oF("collect"),hF=oF("compare"),dF=oF("datajoin"),pF=oF("encode"),gF=oF("expression"),mF=oF("facet"),vF=oF("field"),yF=oF("key"),_F=oF("legendentries"),xF=oF("load"),bF=oF("mark"),wF=oF("multiextent"),AF=oF("multivalues"),kF=oF("overlap"),MF=oF("params"),EF=oF("prefacet"),DF=oF("projection"),CF=oF("proxy"),FF=oF("relay"),SF=oF("render"),BF=oF("scale"),zF=oF("sieve"),TF=oF("sortitems"),NF=oF("viewlayout"),OF=oF("values"),RF=0,qF={min:"min",max:"max",count:"sum"};function UF(t,e){var n,r=e.getScale(t.name).params;for(n in r.domain=jF(t.domain,t,e),null!=t.range&&(r.range=function t(e,n,r){var a=e.range,o=n.config.range;if(a.signal)return n.signalRef(a.signal);if(s(a)){if(o&&K(o,a))return e=X({},e,{range:o[a]}),t(e,n,r);"width"===a?a=[0,{signal:"width"}]:"height"===a?a=Lm(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:i("Unrecognized scale range value: "+l(a))}else{if(a.scheme)return r.scheme=u(a.scheme)?PF(a.scheme,n):LF(a.scheme,n),a.extent&&(r.schemeExtent=PF(a.extent,n)),void(a.count&&(r.schemeCount=LF(a.count,n)));if(a.step)return void(r.rangeStep=LF(a.step,n));if(Lm(e.type)&&!u(a))return jF(a,e,n);u(a)||i("Unsupported range type: "+l(a))}return a.map(t=>(u(t)?PF:LF)(t,n))}(t,e,r)),null!=t.interpolate&&function(t,e){e.interpolate=LF(t.type||t),null!=t.gamma&&(e.interpolateGamma=LF(t.gamma))}(t.interpolate,r),null!=t.nice&&(r.nice=function(t){return o(t)?{interval:LF(t.interval),step:LF(t.step)}:LF(t)}(t.nice)),null!=t.bins&&(r.bins=function(t,e){return t.signal||u(t)?PF(t,e):e.objectProperty(t)}(t.bins,e)),t)K(r,n)||"name"===n||(r[n]=LF(t[n],e))}function LF(t,e){return o(t)?t.signal?e.signalRef(t.signal):i("Unsupported object: "+l(t)):t}function PF(t,e){return t.signal?e.signalRef(t.signal):t.map(t=>LF(t,e))}function $F(t){i("Can not find data set: "+l(t))}function jF(t,e,n){if(t)return t.signal?n.signalRef(t.signal):(u(t)?IF:t.fields?WF:HF)(t,e,n);null==e.domainMin&&null==e.domainMax||i("No scale domain defined for domainMin/domainMax to override.")}function IF(t,e,n){return t.map((function(t){return LF(t,n)}))}function HF(t,e,n){var r=n.getData(t.data);return r||$F(t.data),Lm(e.type)?r.valuesRef(n,t.field,VF(t.sort,!1)):Im(e.type)?r.domainRef(n,t.field):r.extentRef(n,t.field)}function WF(t,e,n){var r=t.data,i=t.fields.reduce((function(t,e){return e=s(e)?{data:r,field:e}:u(e)||e.signal?function(t,e){var n="_:vega:_"+RF++,r=fF({});if(u(t))r.value={$ingest:t};else if(t.signal){var i="setdata("+l(n)+","+t.signal+")";r.params.input=e.signalRef(i)}return e.addDataPipeline(n,[r,zF({})]),{data:n,field:"data"}}(e,n):e,t.push(e),t}),[]);return(Lm(e.type)?YF:Im(e.type)?GF:XF)(t,n,i)}function YF(t,e,n){var r,i,a,u,o,s=VF(t.sort,!0);return r=n.map((function(t){var n=e.getData(t.data);return n||$F(t.data),n.countsRef(e,t.field,s)})),i={groupby:UC,pulse:r},s&&(a=s.op||"count",o=s.field?PC(a,s.field):"count",i.ops=[qF[a]],i.fields=[e.fieldRef(o)],i.as=[o]),a=e.add(sF(i)),u=e.add(fF({pulse:RC(a)})),o=e.add(OF({field:UC,sort:e.sortRef(s),pulse:RC(u)})),RC(o)}function VF(t,e){return t&&(t.field||t.op?t.field||"count"===t.op?e&&t.field&&t.op&&!qF[t.op]&&i("Multiple domain scales can not be sorted using "+t.op):i("No field provided for sort aggregate op: "+t.op):o(t)?t.field="key":t={field:"key"}),t}function GF(t,e,n){var r=n.map((function(t){var n=e.getData(t.data);return n||$F(t.data),n.domainRef(e,t.field)}));return RC(e.add(AF({values:r})))}function XF(t,e,n){var r=n.map((function(t){var n=e.getData(t.data);return n||$F(t.data),n.extentRef(e,t.field)}));return RC(e.add(wF({extents:r})))}function JF(t,e,n){return u(t)?t.map((function(t){return JF(t,e,n)})):o(t)?t.signal?n.signalRef(t.signal):"fit"===e?t:i("Unsupported parameter object: "+l(t)):t}const ZF="value",QF=["size","shape","fill","stroke","strokeWidth","strokeDash","opacity"],KF={name:1,style:1,interactive:1},tS={value:0},eS={value:1};var nS=xt(["rule"]),rS=xt(["group","image","rect"]);function iS(t,e,n,r){var i=zC(t,e);return i.$fields.forEach((function(t){r[t]=1})),X(n,i.$params),i.$expr}function aS(t,e,n,r){return function t(e,n,r,u){var o,c,f;if(e.signal)o="datum",f=iS(e.signal,n,r,u);else if(e.group||e.parent){for(c=Math.max(1,e.level||1),o="item";c-- >0;)o+=".mark.group";e.parent?(f=e.parent,o+=".datum"):f=e.group}else e.datum?(o="datum",f=e.datum):i("Invalid field reference: "+l(e));e.signal||(s(f)?(u[f]=1,f=a(f).map(l).join("][")):f=t(f,n,r,u));return o+"["+f+"]"}(o(t)?t:{datum:t},e,n,r)}function uS(t,e,n,r){return o(t)?"("+lS(null,t,e,n,r)+")":t}function oS(t,e,n,r,i){var a,u,o,l=sS(t.scale,n,r,i);return null!=t.range?(u=l+".range()",e=0===(a=+t.range)?u+"[0]":"($="+u+","+(1===a?"$[$.length-1]":"$[0]+"+a+"*($[$.length-1]-$[0])")+")"):(void 0!==e&&(e=l+"("+e+")"),t.band&&(o=function(t,e){if(!s(t))return-1;var n=e.scaleType(t);return"band"===n||"point"===n?1:0}(t.scale,n))&&(u=l+".bandwidth",a=t.band.signal?u+"()*"+uS(t.band,n,r,i):u+"()"+(1===(a=+t.band)?"":"*"+a),o<0&&(a="("+u+"?"+a+":0)"),e=(e?e+"+":"")+a,t.extra&&(e="(datum.extra?"+l+"(datum.extra.value):"+e+")")),null==e&&(e="0")),e}function sS(t,e,n,r){var i;if(s(t))K(n,i="%"+t)||(n[i]=e.scaleRef(t)),i=l(i);else{for(i in e.scales)n["%"+i]=e.scaleRef(i);i=l("%")+"+"+(t.signal?"("+iS(t.signal,e,n,r)+")":aS(t,e,n,r))}return"_["+i+"]"}function lS(t,e,n,r,i){if(null!=e.gradient)return function(t,e,n,r){return"this.gradient("+sS(t.gradient,e,n,r)+","+l(t.start)+","+l(t.stop)+","+l(t.count)+")"}(e,n,r,i);var a=e.signal?iS(e.signal,n,r,i):e.color?function(t,e,n,r){function i(t,i,a,u){return"this."+t+"("+[lS(null,i,e,n,r),lS(null,a,e,n,r),lS(null,u,e,n,r)].join(",")+").toString()"}return t.c?i("hcl",t.h,t.c,t.l):t.h||t.s?i("hsl",t.h,t.s,t.l):t.l||t.a?i("lab",t.l,t.a,t.b):t.r||t.g||t.b?i("rgb",t.r,t.g,t.b):null}(e.color,n,r,i):null!=e.field?aS(e.field,n,r,i):void 0!==e.value?l(e.value):void 0;return null!=e.scale&&(a=oS(e,a,n,r,i)),void 0===a&&(a=null),null!=e.exponent&&(a="Math.pow("+a+","+uS(e.exponent,n,r,i)+")"),null!=e.mult&&(a+="*"+uS(e.mult,n,r,i)),null!=e.offset&&(a+="+"+uS(e.offset,n,r,i)),e.round&&(a="Math.round("+a+")"),a}function cS(t,e,n){const r=t+"["+l(e)+"]";return`$=${n};if(${r}!==$)${r}=$,m=1;`}function fS(t,e,n,r,i){var a="";return e.forEach((function(t){var e=lS(0,t,n,r,i);a+=t.test?iS(t.test,n,r,i)+"?"+e+":":e})),":"===k(a)&&(a+="null"),cS("o",t,a)}function hS(t,e,n,r){var i,a,o={},s="var o=item,datum=o.datum,m=0,$;";for(i in t)a=t[i],u(a)?s+=fS(i,a,r,n,o):s+=cS("o",i,lS(0,a,r,n,o));return s+=function(t,e){var n="";return nS[e]||(t.x2&&(t.x?(rS[e]&&(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);"),t.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),t.y2&&(t.y?(rS[e]&&(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);"),t.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}(t,e),{$expr:s+="return m;",$fields:Object.keys(o),$output:Object.keys(t)}}function dS(t){return o(t)&&!u(t)?X({},t):{value:t}}function pS(t,e,n,r){return null!=n?(o(n)&&!u(n)?t.update[e]=n:t[r||"enter"][e]={value:n},1):0}function gS(t,e,n){for(let n in e)pS(t,n,e[n]);for(let e in n)pS(t,e,n[e],"update")}function mS(t,e,n){for(var r in e)n&&K(n,r)||(t[r]=X(t[r]||{},e[r]));return t}function vS(t,e,n,r,i,a){var u,o;for(o in(a=a||{}).encoders={$encode:u={}},t=function(t,e,n,r,i){var a,u,o,s={},l={};u="lineBreak","text"!==e||null==i[u]||_S(u,t)||yS(s,u,i[u]);"legend"!=n&&0!==String(n).indexOf("axis")||(n=null);for(u in o="frame"===n?i.group:"mark"===n?X({},i.mark,i[e]):null)_S(u,t)||("fill"===u||"stroke"===u)&&(_S("fill",t)||_S("stroke",t))||yS(s,u,o[u]);for(u in I(r).forEach((function(e){var n=i.style&&i.style[e];for(var r in n)_S(r,t)||yS(s,r,n[r])})),t=X({},t),s)(o=s[u]).signal?(a=a||{})[u]=o:l[u]=o;t.enter=X(l,t.enter),a&&(t.update=X(a,t.update));return t}(t,e,n,r,i.config))u[o]=hS(t[o],e,a,i);return a}function yS(t,e,n){t[e]=n&&n.signal?{signal:n.signal}:{value:n}}function _S(t,e){return e&&(e.enter&&e.enter[t]||e.update&&e.update[t])}function xS(t,e,n,r,i,a,u){return{type:t,name:u?u.name:void 0,role:e,style:u&&u.style||n,key:r,from:i,interactive:!(!u||!u.interactive),encode:mS(a,u,KF)}}function bS(t,e){const n=(n,r)=>IC(t[n],IC(e[n],r));return n.isVertical=n=>"vertical"===IC(t.direction,e.direction||(n?e.symbolDirection:e.gradientDirection)),n.gradientLength=()=>IC(t.gradientLength,e.gradientLength||e.gradientWidth),n.gradientThickness=()=>IC(t.gradientThickness,e.gradientThickness||e.gradientHeight),n.entryColumns=()=>IC(t.columns,IC(e.columns,+n.isVertical(!0))),n}function wS(t,e){var n=e&&(e.update&&e.update[t]||e.enter&&e.enter[t]);return n&&n.signal?n:n?n.value:null}function AS(t,e,n){return`item.anchor === "start" ? ${t} : item.anchor === "end" ? ${e} : ${n}`}const kS=AS(l("left"),l("right"),l("center"));function MS(t,e){return e?t?o(t)?{...t,offset:MS(t.offset,e)}:{value:t,offset:e}:e:t}function ES(t,e,n,r){var i,a,u,o,s,l,c=bS(t,n),f=c.isVertical(),h=c.gradientThickness(),d=c.gradientLength();return f?(u=[0,1],o=[0,0],s=h,l=d):(u=[0,0],o=[1,0],s=d,l=h),gS(i={enter:a={opacity:tS,x:tS,y:tS,width:dS(s),height:dS(l)},update:X({},a,{opacity:eS,fill:{gradient:e,start:u,stop:o}}),exit:{opacity:tS}},{stroke:c("gradientStrokeColor"),strokeWidth:c("gradientStrokeWidth")},{opacity:c("gradientOpacity")}),xS("rect","legend-gradient",null,void 0,void 0,i,r)}function DS(t,e,n,r,i){var a,u,o,s,l,c,f=bS(t,n),h=f.isVertical(),d=f.gradientThickness(),p=f.gradientLength(),g="";return h?(o="y",l="y2",s="x",c="width",g="1-"):(o="x",l="x2",s="y",c="height"),(u={opacity:tS,fill:{scale:e,field:ZF}})[o]={signal:g+"datum.perc",mult:p},u[s]=tS,u[l]={signal:g+"datum.perc2",mult:p},u[c]=dS(d),gS(a={enter:u,update:X({},u,{opacity:eS}),exit:{opacity:tS}},{stroke:f("gradientStrokeColor"),strokeWidth:f("gradientStrokeWidth")},{opacity:f("gradientOpacity")}),xS("rect","legend-band",null,ZF,i,a,r)}function CS(t,e,n,r){var i,a,u,o,s,l=bS(t,e),c=l.isVertical(),f=dS(l.gradientThickness()),h=l.gradientLength(),d=l("labelOverlap"),p=l("labelSeparation"),g="";return gS(i={enter:a={opacity:tS},update:u={opacity:eS,text:{field:"label"}},exit:{opacity:tS}},{fill:l("labelColor"),fillOpacity:l("labelOpacity"),font:l("labelFont"),fontSize:l("labelFontSize"),fontStyle:l("labelFontStyle"),fontWeight:l("labelFontWeight"),limit:IC(t.labelLimit,e.gradientLabelLimit)}),c?(a.align={value:"left"},a.baseline=u.baseline={signal:'datum.perc<=0?"bottom":datum.perc>=1?"top":"middle"'},o="y",s="x",g="1-"):(a.align=u.align={signal:'datum.perc<=0?"left":datum.perc>=1?"right":"center"'},a.baseline={value:"top"},o="x",s="y"),a[o]=u[o]={signal:g+"datum.perc",mult:h},a[s]=u[s]=f,f.offset=IC(t.labelOffset,e.gradientLabelOffset)||0,t=xS("text","legend-label","guide-label",ZF,r,i,n),d&&(t.overlap={separation:p,method:d,order:"datum.index"}),t}function FS(t,e,n,r,i,a,u,o){return{type:"group",name:n,role:t,style:e,from:r,interactive:i||!1,encode:a,marks:u,layout:o}}function SS(t,e,n,r,i){var a,u,o,s,l,c,f,h=bS(t,e),d=n.entries,p=!(!d||!d.interactive),g=d?d.name:void 0,m=h("clipHeight"),v=h("symbolOffset"),y={data:"value"},_={},x=`(${i}) ? datum.offset : datum.size`,b=m?dS(m):{field:"size"},w="datum.index",A=`max(1, ${i})`;b.mult=.5,_={enter:a={opacity:tS,x:{signal:x,mult:.5,offset:v},y:b},update:u={opacity:eS,x:a.x,y:a.y},exit:{opacity:tS}};var k=null,M=null;return t.fill||(k=e.symbolBaseFillColor,M=e.symbolBaseStrokeColor),gS(_,{fill:h("symbolFillColor",k),shape:h("symbolType"),size:h("symbolSize"),stroke:h("symbolStrokeColor",M),strokeDash:h("symbolDash"),strokeDashOffset:h("symbolDashOffset"),strokeWidth:h("symbolStrokeWidth")},{opacity:h("symbolOpacity")}),QF.forEach((function(e){t[e]&&(u[e]=a[e]={scale:t[e],field:ZF})})),s=xS("symbol","legend-symbol",null,ZF,y,_,n.symbols),m&&(s.clip=!0),(o=dS(v)).offset=h("labelOffset"),gS(_={enter:a={opacity:tS,x:{signal:x,offset:o},y:b},update:u={opacity:eS,text:{field:"label"},x:a.x,y:a.y},exit:{opacity:tS}},{align:h("labelAlign"),baseline:h("labelBaseline"),fill:h("labelColor"),fillOpacity:h("labelOpacity"),font:h("labelFont"),fontSize:h("labelFontSize"),fontStyle:h("labelFontStyle"),fontWeight:h("labelFontWeight"),limit:h("labelLimit")}),l=xS("text","legend-label","guide-label",ZF,y,_,n.labels),_={enter:{noBound:{value:!m},width:tS,height:m?dS(m):tS,opacity:tS},exit:{opacity:tS},update:u={opacity:eS,row:{signal:null},column:{signal:null}}},h.isVertical(!0)?(c=`ceil(item.mark.items.length / ${A})`,u.row.signal=`${w}%${c}`,u.column.signal=`floor(${w} / ${c})`,f={field:["row",w]}):(u.row.signal=`floor(${w} / ${A})`,u.column.signal=`${w} % ${A}`,f={field:w}),u.column.signal=`(${i})?${u.column.signal}:${w}`,(t=FS("scope",null,g,r={facet:{data:r,name:"value",groupby:"index"}},p,mS(_,d,KF),[s,l])).sort=f,t}const BS='item.orient === "left"',zS='item.orient === "right"',TS=`(${BS} || ${zS})`,NS=`datum.vgrad && ${TS}`,OS=AS('"top"','"bottom"','"middle"'),RS=`datum.vgrad && ${zS} ? (${AS('"right"','"left"','"center"')}) : (${TS} && !(datum.vgrad && ${BS})) ? "left" : ${kS}`,qS=`item._anchor || (${TS} ? "middle" : "start")`,US=`${NS} ? (${BS} ? -90 : 90) : 0`,LS=`${TS} ? (datum.vgrad ? (${zS} ? "bottom" : "top") : ${OS}) : "top"`;function PS(t,e){var n;return o(t)&&(t.signal?n=t.signal:t.path?n="pathShape("+$S(t.path)+")":t.sphere&&(n="geoShape("+$S(t.sphere)+', {type: "Sphere"})')),n?e.signalRef(n):!!t}function $S(t){return o(t)&&t.signal?t.signal:l(t)}function jS(t){var e=t.role||"";return e.indexOf("axis")&&e.indexOf("legend")&&e.indexOf("title")?"group"===t.type?"scope":e||"mark":e}function IS(t){return{marktype:t.type,name:t.name||void 0,role:t.role||jS(t),zindex:+t.zindex||void 0}}function HS(t,e){return t&&t.signal?e.signalRef(t.signal):!1!==t}function WS(t,e){var n=Vr(t.type);n||i("Unrecognized transform type: "+l(t.type));var r=NC(n.type.toLowerCase(),null,YS(n,t,e));return t.signal&&e.addSignal(t.signal,e.proxy(r)),r.metadata=n.metadata||{},r}function YS(t,e,n){var r,i,a,u={};for(i=0,a=t.params.length;i<a;++i)u[(r=t.params[i]).name]=VS(r,e,n);return u}function VS(t,e,n){var r=t.type,a=e[t.name];return"index"===r?function(t,e,n){s(e.from)||i('Lookup "from" parameter must be a string literal.');return n.getData(e.from).lookupRef(n,e.key)}(0,e,n):void 0!==a?"param"===r?function(t,e,n){var r=e[t.name];return t.array?(u(r)||i("Expected an array of sub-parameters. Instead: "+l(r)),r.map((function(e){return XS(t,e,n)}))):XS(t,r,n)}(t,e,n):"projection"===r?n.projectionRef(e[t.name]):t.array&&!$C(a)?a.map((function(e){return GS(t,e,n)})):GS(t,a,n):void(t.required&&i("Missing required "+l(e.type)+" parameter: "+l(t.name)))}function GS(t,e,n){var r=t.type;if($C(e))return JS(r)?i("Expression references can not be signals."):ZS(r)?n.fieldRef(e):QS(r)?n.compareRef(e):n.signalRef(e.signal);var a,u=t.expr||ZS(r);return u&&((a=e)&&a.expr)?n.exprRef(e.expr,e.as):u&&function(t){return t&&t.field}(e)?qC(e.field,e.as):JS(r)?zC(e,n):function(t){return"data"===t}(r)?RC(n.getData(e).values):ZS(r)?qC(e):QS(r)?n.compareRef(e):e}function XS(t,e,n){var r,a,u,o,s;for(o=0,s=t.params.length;o<s;++o){for(u in(a=t.params[o]).key)if(a.key[u]!==e[u]){a=null;break}if(a)break}return a||i("Unsupported parameter: "+l(e)),r=X(YS(a,e,n),a.key),RC(n.add(MF(r)))}function JS(t){return"expr"===t}function ZS(t){return"field"===t}function QS(t){return"compare"===t}function KS(t,e){return t.$ref?t:t.data&&t.data.$ref?t.data:RC(e.getData(t.data).output)}function tB(t,e,n,r,i){this.scope=t,this.input=e,this.output=n,this.values=r,this.aggregate=i,this.index={}}tB.fromEntries=function(t,e){var n=e.length,r=1,i=e[0],a=e[n-1],u=e[n-2],o=null;for(i&&"load"===i.type&&(i=e[1]),t.add(e[0]);r<n;++r)e[r].params.pulse=RC(e[r-1]),t.add(e[r]),"aggregate"===e[r].type&&(o=e[r]);return new tB(t,i,u,a,o)};var eB=tB.prototype;function nB(t){return s(t)?t:null}function rB(t,e,n){var r,i=PC(n.op,n.field);if(e.ops){for(var a=0,u=e.as.length;a<u;++a)if(e.as[a]===i)return}else e.ops=["count"],e.fields=[null],e.as=["count"];n.op&&(e.ops.push((r=n.op.signal)?t.signalRef(r):n.op),e.fields.push(t.fieldRef(n.field)),e.as.push(i))}function iB(t,e,n,r,i,a,u){var s,l,c=e[n]||(e[n]={}),f=function(t){return o(t)?("descending"===t.order?"-":"+")+PC(t.op,t.field):""}(a),h=nB(i);if(null!=h&&(t=e.scope,s=c[h+=f?"|"+f:""]),!s){var d=a?{field:UC,pulse:e.countsRef(t,i,a)}:{field:t.fieldRef(i),pulse:RC(e.output)};f&&(d.sort=t.sortRef(a)),l=t.add(NC(r,void 0,d)),u&&(e.index[i]=l),s=RC(l),null!=h&&(c[h]=s)}return s}function aB(t,e,n){var r,i=t.remove,a=t.insert,u=t.toggle,o=t.modify,s=t.values,l=e.add(OC());r=zC("if("+t.trigger+',modify("'+n+'",'+[a,i,u,o,s].map((function(t){return null==t?"null":t})).join(",")+"),0)",e),l.update=r.$expr,l.params=r.$params}function uB(t,e){var n,r,a,u,o,s,c,f,h,d,p,g,m,v,y=jS(t),_="group"===t.type,x=t.from&&t.from.facet,b=t.layout||"scope"===y||"frame"===y,w="mark"===y||b||x,A=t.overlap;a=function(t,e,n){var r,a,u,o,s;return t?(r=t.facet)&&(e||i("Only group marks can be faceted."),null!=r.field?o=s=KS(r,n):(t.data?s=RC(n.getData(t.data).aggregate):((u=WS(X({type:"aggregate",groupby:I(r.groupby)},r.aggregate),n)).params.key=n.keyRef(r.groupby),u.params.pulse=KS(r,n),o=s=RC(n.add(u))),a=n.keyRef(r.groupby,!0))):o=RC(n.add(fF(null,[{}]))),o||(o=KS(t,n)),{key:a,pulse:o,parent:s}}(t.from,_,e),d=RC(r=e.add(dF({key:a.key||(t.key?qC(t.key):void 0),pulse:a.pulse,clean:!_}))),r=u=e.add(fF({pulse:d})),r=e.add(bF({markdef:IS(t),interactive:HS(t.interactive,e),clip:PS(t.clip,e),context:{$context:!0},groups:e.lookup(),parent:e.signals.parent?e.signalRef("parent"):null,index:e.markpath(),pulse:RC(r)})),p=RC(r),(r=o=e.add(pF(vS(t.encode,t.type,y,t.style,e,{mod:!1,pulse:p})))).params.parent=e.encode(),t.transform&&t.transform.forEach((function(t){const n=WS(t,e),a=n.metadata;(a.generates||a.changes)&&i("Mark transforms should not generate new data."),a.nomod||(o.params.mod=!0),n.params.pulse=RC(r),e.add(r=n)})),t.sort&&(r=e.add(TF({sort:e.compareRef(t.sort),pulse:RC(r)}))),g=RC(r),(x||b)&&(m=RC(b=e.add(NF({layout:e.objectProperty(t.layout),legends:e.legends,mark:p,pulse:g})))),v=RC(s=e.add(cF({mark:p,pulse:m||g}))),_&&(w&&((n=e.operators).pop(),b&&n.pop()),e.pushState(g,m||v,d),x?function(t,e,n){var r,a,u,o,s=t.from.facet,c=s.name,f=KS(s,e);s.name||i("Facet must have a name: "+l(s)),s.data||i("Facet must reference a data set: "+l(s)),s.field?o=e.add(EF({field:e.fieldRef(s.field),pulse:f})):s.groupby?o=e.add(mF({key:e.keyRef(s.groupby),group:RC(e.proxy(n.parent)),pulse:f})):i("Facet must specify groupby or field: "+l(s)),a=(r=e.fork()).add(fF()),u=r.add(zF({pulse:RC(a)})),r.addData(c,new tB(r,a,a,u)),r.addSignal("parent",null),o.params.subflow={$subflow:vB(t,r).toRuntime()}}(t,e,a):w?function(t,e,n){var r=e.add(EF({pulse:n.pulse})),i=e.fork();i.add(zF()),i.addSignal("parent",null),r.params.subflow={$subflow:vB(t,i).toRuntime()}}(t,e,a):vB(t,e),e.popState(),w&&(b&&n.push(b),n.push(s))),A&&(v=function(t,e,n){var r,i=t.method,a=t.bound,u=t.separation,o={separation:$C(u)?n.signalRef(u.signal):u,method:$C(i)?n.signalRef(i.signal):i,pulse:e};t.order&&(o.sort=n.compareRef({field:t.order}));a&&(r=a.tolerance,o.boundTolerance=$C(r)?n.signalRef(r.signal):+r,o.boundScale=n.scaleRef(a.scale),o.boundOrient=a.orient);return RC(n.add(kF(o)))}(A,v,e)),c=e.add(SF({pulse:v})),f=e.add(zF({pulse:RC(c)},void 0,e.parent())),null!=t.name&&(h=t.name,e.addData(h,new tB(e,u,c,f)),t.on&&t.on.forEach((function(t){(t.insert||t.remove||t.toggle)&&i("Marks only support modify triggers."),aB(t,e,h)})))}function oB(t,e){var n,r,a,u,o,s,l,c,f,h=e.config.legend,d=t.encode||{},p=d.legend||{},g=p.name||void 0,m=p.interactive,v=p.style,y=bS(t,h),_=QF.reduce((function(e,n){return e||t[n]}),0);return _||i("Missing valid scale for legend."),o=function(t,e){var n=t.type||"symbol";t.type||1!==function(t){return QF.reduce((function(e,n){return e+(t[n]?1:0)}),0)}(t)||!t.fill&&!t.stroke||(n=Um(e)?"gradient":Pm(e)?"discrete":"symbol");return"gradient"!==n?n:Pm(e)?"discrete":"gradient"}(t,e.scaleType(_)),s={title:null!=t.title,type:o,vgrad:"symbol"!==o&&y.isVertical()},l=RC(e.add(fF(null,[s]))),p=mS(function(t,e){var n={enter:{},update:{}};return gS(n,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:e.strokeWidth,strokeDash:e.strokeDash,x:t("legendX"),y:t("legendY")}),n}(y,h),p,KF),n={enter:{x:{value:0},y:{value:0}}},c=RC(e.add(_F(a={type:o,scale:e.scaleRef(_),count:e.objectProperty(y("tickCount")),limit:e.property(y("symbolLimit")),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)}))),"gradient"===o?(u=[ES(t,_,h,d.gradient),CS(t,h,d.labels,c)],a.count=a.count||e.signalRef(`max(2,2*floor((${HC(y.gradientLength())})/100))`)):"discrete"===o?u=[DS(t,_,h,d.gradient,c),CS(t,h,d.labels,c)]:(r=function(t,e){const n=bS(t,e);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}(t,h),u=[SS(t,h,d,c,HC(r.columns))],a.size=function(t,e,n){var r=HC(sB("size",t,n)),i=HC(sB("strokeWidth",t,n)),a=HC(function(t,e,n){return wS("fontSize",t)||function(t,e,n){var r=e.config.style[n];return r&&r[t]}("fontSize",e,n)}(n[1].encode,e,"guide-label"));return zC(`max(ceil(sqrt(${r})+${i}),${a})`,e)}(t,e,u[0].marks)),u=[FS("legend-entry",null,null,l,m,n,u,r)],s.title&&u.push(function(t,e,n,r){var i,a=bS(t,e);return gS(i={enter:{opacity:tS},update:{opacity:eS,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:tS}},{orient:a("titleOrient"),_anchor:a("titleAnchor"),anchor:{signal:qS},angle:{signal:US},align:{signal:RS},baseline:{signal:LS},text:t.title,fill:a("titleColor"),fillOpacity:a("titleOpacity"),font:a("titleFont"),fontSize:a("titleFontSize"),fontStyle:a("titleFontStyle"),fontWeight:a("titleFontWeight"),limit:a("titleLimit"),lineHeight:a("titleLineHeight")},{align:a("titleAlign"),baseline:a("titleBaseline")}),xS("text","legend-title","guide-title",null,r,i,n)}(t,h,d.title,l)),f=FS("legend",v,g,l,m,p,u),t.zindex&&(f.zindex=t.zindex),uB(f,e)}function sB(t,e,n){return e[t]?`scale("${e[t]}",datum)`:wS(t,n[0].encode)}eB.countsRef=function(t,e,n){var r,i,a,u=this.counts||(this.counts={}),o=nB(e);return null!=o&&(t=this.scope,r=u[o]),r?n&&n.field&&rB(t,r.agg.params,n):(a={groupby:t.fieldRef(e,"key"),pulse:RC(this.output)},n&&n.field&&rB(t,a,n),i=t.add(sF(a)),r=t.add(fF({pulse:RC(i)})),r={agg:i,ref:RC(r)},null!=o&&(u[o]=r)),r.ref},eB.tuplesRef=function(){return RC(this.values)},eB.extentRef=function(t,e){return iB(t,this,"extent","extent",e,!1)},eB.domainRef=function(t,e){return iB(t,this,"domain","values",e,!1)},eB.valuesRef=function(t,e,n){return iB(t,this,"vals","values",e,n||!0)},eB.lookupRef=function(t,e){return iB(t,this,"lookup","tupleindex",e,!1)},eB.indataRef=function(t,e){return iB(t,this,"indata","tupleindex",e,!0,!0)};function lB(t,e){var n,r,i=bS(t=s(t)?{text:t}:t,e.config.title),a=t.encode||{},u=a.group||{},o=u.name||void 0,l=u.interactive,c=u.style,f=[];return n=RC(e.add(fF(null,[{}]))),f.push(function(t,e,n,r){var i={value:0},a=t.text,u={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return gS(u,{text:a,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("color"),font:e("font"),fontSize:e("fontSize"),fontStyle:e("fontStyle"),fontWeight:e("fontWeight"),lineHeight:e("lineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),xS("text","title-text","group-title",null,r,u,n)}(t,i,function(t){const e=t.encode;return e&&e.title||X({name:t.name,interactive:t.interactive,style:t.style},e)}(t),n)),t.subtitle&&f.push(function(t,e,n,r){var i={value:0},a=t.subtitle,u={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return gS(u,{text:a,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:e("dx"),dy:e("dy"),fill:e("subtitleColor"),font:e("subtitleFont"),fontSize:e("subtitleFontSize"),fontStyle:e("subtitleFontStyle"),fontWeight:e("subtitleFontWeight"),lineHeight:e("subtitleLineHeight")},{align:e("align"),angle:e("angle"),baseline:e("baseline")}),xS("text","title-subtitle","group-subtitle",null,r,u,n)}(t,i,a.subtitle,n)),r=FS("title",c,o,n,l,function(t,e){var n={enter:{},update:{}};return gS(n,{orient:t("orient"),anchor:t("anchor"),align:{signal:kS},angle:{signal:'item.orient==="left"?-90:item.orient==="right"?90:0'},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),mS(n,e,KF)}(i,u),f),t.zindex&&(r.zindex=t.zindex),uB(r,e)}function cB(t,e){var n=[];t.transform&&t.transform.forEach((function(t){n.push(WS(t,e))})),t.on&&t.on.forEach((function(n){aB(n,e,t.name)})),e.addDataPipeline(t.name,function(t,e,n){var r,i,a,u,o,s=[],l=null,c=!1,f=!1;t.values?jC(t.values)||jC(t.format)?(s.push(hB(e,t)),s.push(l=fB())):s.push(l=fB({$ingest:t.values,$format:t.format})):t.url?jC(t.url)||jC(t.format)?(s.push(hB(e,t)),s.push(l=fB())):s.push(l=fB({$request:t.url,$format:t.format})):t.source&&(l=r=I(t.source).map((function(t){return RC(e.getData(t).output)})),s.push(null));for(i=0,a=n.length;i<a;++i)u=n[i],o=u.metadata,l||o.source||s.push(l=fB()),s.push(u),o.generates&&(f=!0),o.modifies&&!f&&(c=!0),o.source?l=u:o.changes&&(l=null);r&&(a=r.length-1,s[0]=FF({derive:c,pulse:a?r:r[0]}),(c||a)&&s.splice(1,0,fB()));l||s.push(fB());return s.push(zF({})),s}(t,e,n))}function fB(t){var e=fF({},t);return e.metadata={source:!0},e}function hB(t,e){return xF({url:e.url?t.property(e.url):void 0,async:e.async?t.property(e.async):void 0,values:e.values?t.property(e.values):void 0,format:t.objectProperty(e.format)})}function dB(t,e){return{scale:t.scale,range:e}}function pB(t,e,n,r,i){var a,u,s,l,c,f,h,d,p,g=bS(t,e),m=t.orient,v=t.gridScale,y="left"===m||"top"===m?1:-1,_=function(t,e){if(1===e);else if(o(t)){for(var n=t=X({},t);null!=n.mult;){if(!o(n.mult))return n.mult*=e,t;n=n.mult=X({},n.mult)}n.mult=e}else t=e*(t||0);return t}(t.offset,y);return gS(a={enter:u={opacity:tS},update:l={opacity:eS},exit:s={opacity:tS}},{stroke:g("gridColor"),strokeDash:g("gridDash"),strokeDashOffset:g("gridDashOffset"),strokeOpacity:g("gridOpacity"),strokeWidth:g("gridWidth")}),c={scale:t.scale,field:ZF,band:i.band,extra:i.extra,offset:i.offset,round:g("tickRound")},"top"===m||"bottom"===m?(f="x",h="y",p="height"):(f="y",h="x",p="width"),d=h+"2",l[f]=u[f]=s[f]=c,v?(l[h]=u[h]={scale:v,range:0,mult:y,offset:_},l[d]=u[d]={scale:v,range:1,mult:y,offset:_}):(l[h]=u[h]={value:0,offset:_},l[d]=u[d]={signal:p,mult:y,offset:_}),xS("rule","axis-grid",null,ZF,r,a,n)}function gB(t,e,n,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+e+","+n+","+r+","+i+")"}}function mB(t,e){var n,r,i,a,u,s,l=function(t,e){var n=e.config,r=t.orient,i="top"===r||"bottom"===r?n.axisX:n.axisY,a=n["axis"+r[0].toUpperCase()+r.slice(1)],u="band"===e.scaleType(t.scale)&&n.axisBand;return i||a||u?X({},n.axis,i,a,u):n.axis}(t,e),c=t.encode||{},f=c.axis||{},h=f.name||void 0,d=f.interactive,p=f.style,g=bS(t,l),m=function(t){let e,n,r=t("tickBand"),i=t("tickOffset");return r?r.signal?(e={signal:`(${r.signal})==='extent'?1:0.5`},n={signal:`(${r.signal})==='extent'?true:false`},o(i)||(i={signal:`(${r.signal})==='extent'?0:${i}`})):"extent"===r?(e=1,n=!0,i=0):(e=.5,n=!1):(e=t("bandPosition"),n=t("tickExtra")),{extra:n,band:e,offset:i}}(g);return n={orient:t.orient,ticks:!!g("ticks"),labels:!!g("labels"),grid:!!g("grid"),domain:!!g("domain"),title:null!=t.title,translate:g("translate")},r=RC(e.add(fF({},[n]))),f=mS({update:{offset:dS(g("offset")||0),position:dS(IC(t.position,0)),titlePadding:dS(g("titlePadding")),minExtent:dS(g("minExtent")),maxExtent:dS(g("maxExtent")),range:{signal:`abs(span(range("${t.scale}")))`}}},c.axis,KF),i=RC(e.add(lF({scale:e.scaleRef(t.scale),extra:e.property(m.extra),count:e.objectProperty(t.tickCount),values:e.objectProperty(t.values),minstep:e.property(t.tickMinStep),formatType:e.property(t.formatType),formatSpecifier:e.property(t.format)}))),s=[],n.grid&&s.push(pB(t,l,c.grid,i,m)),n.ticks&&(a=g("tickSize"),s.push(function(t,e,n,r,i,a){var u,o,s,l,c,f,h=bS(t,e),d=t.orient,p="left"===d||"top"===d?-1:1;return gS(u={enter:o={opacity:tS},update:l={opacity:eS},exit:s={opacity:tS}},{stroke:h("tickColor"),strokeDash:h("tickDash"),strokeDashOffset:h("tickDashOffset"),strokeOpacity:h("tickOpacity"),strokeWidth:h("tickWidth")}),(c=dS(i)).mult=p,f={scale:t.scale,field:ZF,band:a.band,extra:a.extra,offset:a.offset,round:h("tickRound")},"top"===d||"bottom"===d?(l.y=o.y=tS,l.y2=o.y2=c,l.x=o.x=s.x=f):(l.x=o.x=tS,l.x2=o.x2=c,l.y=o.y=s.y=f),xS("rule","axis-tick",null,ZF,r,u,n)}(t,l,c.ticks,i,a,m))),n.labels&&(a=n.ticks?a:0,s.push(function(t,e,n,r,i,a){var u,o,s,l,c,f,h,d,p,g,m=bS(t,e),v=t.orient,y="left"===v||"top"===v?-1:1,_="top"===v||"bottom"===v,x=t.scale,b=HC(m("labelFlush")),w=HC(m("labelFlushOffset")),A=0===b||!!b,k=m("labelAlign"),M=m("labelBaseline");return(s=dS(i)).mult=y,s.offset=dS(m("labelPadding")||0),s.offset.mult=y,l={scale:x,field:ZF,band:.5,offset:MS(a.offset,m("labelOffset"))},_?(c=k||(A?gB(x,b,'"left"','"right"','"center"'):"center"),f=M||("top"===v?"bottom":"top"),h=!k):(c=k||("right"===v?"left":"right"),f=M||(A?gB(x,b,'"top"','"bottom"','"middle"'):"middle"),h=!M),h=h&&A&&w?gB(x,b,"-("+w+")",w,0):null,gS(u={enter:o={opacity:tS,x:_?l:s,y:_?s:l},update:{opacity:eS,text:{field:"label"},x:o.x,y:o.y},exit:{opacity:tS,x:o.x,y:o.y}},{[_?"dx":"dy"]:h,align:c,baseline:f,angle:m("labelAngle"),fill:m("labelColor"),fillOpacity:m("labelOpacity"),font:m("labelFont"),fontSize:m("labelFontSize"),fontWeight:m("labelFontWeight"),fontStyle:m("labelFontStyle"),limit:m("labelLimit"),lineHeight:m("labelLineHeight")}),d=m("labelBound"),p=m("labelOverlap"),g=m("labelSeparation"),t=xS("text","axis-label","guide-label",ZF,r,u,n),(p||d)&&(t.overlap={separation:g,method:p,order:"datum.index",bound:d?{scale:x,orient:v,tolerance:d}:null}),t}(t,l,c.labels,i,a,m))),n.domain&&s.push(function(t,e,n,r){var i,a,u,o,s,l,c=bS(t,e),f=t.orient;return gS(i={enter:a={opacity:tS},update:u={opacity:eS},exit:{opacity:tS}},{stroke:c("domainColor"),strokeDash:c("domainDash"),strokeDashOffset:c("domainDashOffset"),strokeWidth:c("domainWidth"),strokeOpacity:c("domainOpacity")}),"top"===f||"bottom"===f?(o="x",l="y"):(o="y",l="x"),s=o+"2",a[l]=tS,u[o]=a[o]=dB(t,0),u[s]=a[s]=dB(t,1),xS("rule","axis-domain",null,null,r,i,n)}(t,l,c.domain,r)),n.title&&s.push(function(t,e,n,r){var i,a,u,o,s=bS(t,e),l=t.orient,c="left"===l||"top"===l?-1:1,f="top"===l||"bottom"===l;return i={enter:a={opacity:tS,anchor:dS(s("titleAnchor")),align:{signal:kS}},update:u=X({},a,{opacity:eS,text:dS(t.title)}),exit:{opacity:tS}},o={signal:`lerp(range("${t.scale}"), ${AS(0,1,.5)})`},f?(u.x=o,a.angle={value:0},a.baseline={value:"top"===l?"bottom":"top"}):(u.y=o,a.angle={value:90*c},a.baseline={value:"bottom"}),gS(i,{angle:s("titleAngle"),baseline:s("titleBaseline"),fill:s("titleColor"),fillOpacity:s("titleOpacity"),font:s("titleFont"),fontSize:s("titleFontSize"),fontStyle:s("titleFontStyle"),fontWeight:s("titleFontWeight"),limit:s("titleLimit"),lineHeight:s("titleLineHeight")},{align:s("titleAlign")}),!pS(i,"x",s("titleX"),"update")&&!f&&!_S("x",n)&&(i.enter.auto={value:!0}),!pS(i,"y",s("titleY"),"update")&&f&&!_S("y",n)&&(i.enter.auto={value:!0}),xS("text","axis-title","guide-title",null,r,i,n)}(t,l,c.title,r)),u=FS("axis",p,h,r,d,f,s),t.zindex&&(u.zindex=t.zindex),uB(u,e)}function vB(t,e,n){var r=I(t.signals),a=I(t.scales);return n||r.forEach(t=>BC(t,e)),I(t.projections).forEach(t=>function(t,e){var n=e.config.projection||{},r={};for(var i in t)"name"!==i&&(r[i]=JF(t[i],i,e));for(i in n)null==r[i]&&(r[i]=JF(n[i],i,e));e.addProjection(t.name,r)}(t,e)),a.forEach(t=>function(t,e){var n=t.type||"linear";Rm(n)||i("Unrecognized scale type: "+l(n)),e.addScale(t.name,{type:n,domain:void 0})}(t,e)),I(t.data).forEach(t=>cB(t,e)),a.forEach(t=>UF(t,e)),(n||r).forEach(t=>function(t,e){var n=e.getSignal(t.name),r=t.update;t.init&&(r?i("Signals can not include both init and update expressions."):(r=t.init,n.initonly=!0)),r&&(r=zC(r,e),n.update=r.$expr,n.params=r.$params),t.on&&t.on.forEach((function(t){aF(t,e,n.id)}))}(t,e)),I(t.axes).forEach(t=>mB(t,e)),I(t.marks).forEach(t=>uB(t,e)),I(t.legends).forEach(t=>oB(t,e)),t.title&&lB(t.title,e),e.parseLambdas(),e}function yB(t,e){var n,r,i,a,u,o,s=e.config;return u=RC(e.root=e.add(OC())),(o=function(t,e){const n=n=>IC(t[n],e[n]),r=[_B("background",n("background")),_B("autosize",EC(n("autosize"))),_B("padding",CC(n("padding"))),_B("width",n("width")||0),_B("height",n("height")||0)],i=r.reduce((t,e)=>(t[e.name]=e,t),{}),a={};return I(t.signals).forEach(t=>{K(i,t.name)?t=X(i[t.name],t):r.push(t),a[t.name]=t}),I(e.signals).forEach(t=>{K(a,t.name)||K(i,t.name)||r.push(t)}),r}(t,s)).forEach(t=>BC(t,e)),e.description=t.description||s.description,e.eventConfig=s.events,e.legends=e.objectProperty(s.legend&&s.legend.layout),r=e.add(fF()),i=mS({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t.encode),i=e.add(pF(vS(i,"group","frame",t.style,e,{pulse:RC(r)}))),a=e.add(NF({layout:e.objectProperty(t.layout),legends:e.legends,autosize:e.signalRef("autosize"),mark:u,pulse:RC(i)})),e.operators.pop(),e.pushState(RC(i),RC(a),null),vB(t,e,o),e.operators.push(a),n=e.add(cF({mark:u,pulse:RC(a)})),n=e.add(SF({pulse:RC(n)})),n=e.add(zF({pulse:RC(n)})),e.addData("root",new tB(e,r,r,n)),e}function _B(t,e){return e&&e.signal?{name:t,update:e.signal}:{name:t,value:e}}function xB(t){this.config=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._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function bB(t){this.config=t.config,this.legends=t.legends,this.field=Object.create(t.field),this.signals=Object.create(t.signals),this.lambdas=Object.create(t.lambdas),this.scales=Object.create(t.scales),this.events=Object.create(t.events),this.data=Object.create(t.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++t._nextsub[0],this._nextsub=t._nextsub,this._parent=t._parent.slice(),this._encode=t._encode.slice(),this._lookup=t._lookup.slice(),this._markpath=t._markpath}var wB=xB.prototype=bB.prototype;function AB(t){return(u(t)?kB:MB)(t)}function kB(t){for(var e,n="[",r=0,i=t.length;r<i;++r)n+=(r>0?",":"")+(o(e=t[r])?e.signal||AB(e):l(e));return n+"]"}function MB(t){var e,n,r="{",i=0;for(e in t)n=t[e],r+=(++i>1?",":"")+l(e)+":"+(o(n)?n.signal||AB(n):l(n));return r+"}"}wB.fork=function(){return new bB(this)},wB.isSubscope=function(){return this._subid>0},wB.toRuntime=function(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig}},wB.id=function(){return(this._subid?this._subid+":":0)+this._id++},wB.add=function(t){return this.operators.push(t),t.id=this.id(),t.refs&&(t.refs.forEach((function(e){e.$ref=t.id})),t.refs=null),t},wB.proxy=function(t){var e=t instanceof TC?RC(t):t;return this.add(CF({value:e}))},wB.addStream=function(t){return this.streams.push(t),t.id=this.id(),t},wB.addUpdate=function(t){return this.updates.push(t),t},wB.finish=function(){var t,e;for(t in this.root&&(this.root.root=!0),this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function n(t,e,n){var r;t&&((r=t.data||(t.data={}))[e]||(r[e]=[])).push(n)}for(t in this.data)for(var r in n((e=this.data[t]).input,t,"input"),n(e.output,t,"output"),n(e.values,t,"values"),e.index)n(e.index[r],t,"index:"+r);return this},wB.pushState=function(t,e,n){this._encode.push(RC(this.add(zF({pulse:t})))),this._parent.push(e),this._lookup.push(n?RC(this.proxy(n)):null),this._markpath.push(-1)},wB.popState=function(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},wB.parent=function(){return k(this._parent)},wB.encode=function(){return k(this._encode)},wB.lookup=function(){return k(this._lookup)},wB.markpath=function(){var t=this._markpath;return++t[t.length-1]},wB.fieldRef=function(t,e){if(s(t))return qC(t,e);t.signal||i("Unsupported field reference: "+l(t));var n,r=t.signal,a=this.field[r];return a||(n={name:this.signalRef(r)},e&&(n.as=e),this.field[r]=a=RC(this.add(vF(n)))),a},wB.compareRef=function(t){function e(t){return $C(t)?(r=!0,n.signalRef(t.signal)):function(t){return t&&t.expr}(t)?(r=!0,n.exprRef(t.expr)):t}var n=this,r=!1,i=I(t.field).map(e),a=I(t.order).map(e);return r?RC(this.add(hF({fields:i,orders:a}))):LC(i,a)},wB.keyRef=function(t,e){var n=this.signals,r=!1;return t=I(t).map((function(t){return $C(t)?(r=!0,RC(n[t.signal])):t})),r?RC(this.add(yF({fields:t,flat:e}))):function(t,e){var n={$key:t};return e&&(n.$flat=!0),n}(t,e)},wB.sortRef=function(t){if(!t)return t;var e=PC(t.op,t.field),n=t.order||"ascending";return n.signal?RC(this.add(hF({fields:e,orders:this.signalRef(n.signal)}))):LC(e,n)},wB.event=function(t,e){var n=t+":"+e;if(!this.events[n]){var r=this.id();this.streams.push({id:r,source:t,type:e}),this.events[n]=r}return this.events[n]},wB.hasOwnSignal=function(t){return K(this.signals,t)},wB.addSignal=function(t,e){this.hasOwnSignal(t)&&i("Duplicate signal name: "+l(t));var n=e instanceof TC?e:this.add(OC(e));return this.signals[t]=n},wB.getSignal=function(t){return this.signals[t]||i("Unrecognized signal name: "+l(t)),this.signals[t]},wB.signalRef=function(t){return this.signals[t]?RC(this.signals[t]):(K(this.lambdas,t)||(this.lambdas[t]=this.add(OC(null))),RC(this.lambdas[t]))},wB.parseLambdas=function(){for(var t=Object.keys(this.lambdas),e=0,n=t.length;e<n;++e){var r=t[e],i=zC(r,this),a=this.lambdas[r];a.params=i.$params,a.update=i.$expr}},wB.property=function(t){return t&&t.signal?this.signalRef(t.signal):t},wB.objectProperty=function(t){return t&&o(t)?this.signalRef(t.signal||AB(t)):t},wB.exprRef=function(t,e){var n={expr:zC(t,this)};return e&&(n.expr.$name=e),RC(this.add(gF(n)))},wB.addBinding=function(t,e){this.bindings||i("Nested signals do not support binding: "+l(t)),this.bindings.push(X({signal:t},e))},wB.addScaleProj=function(t,e){K(this.scales,t)&&i("Duplicate scale or projection name: "+l(t)),this.scales[t]=this.add(e)},wB.addScale=function(t,e){this.addScaleProj(t,BF(e))},wB.addProjection=function(t,e){this.addScaleProj(t,DF(e))},wB.getScale=function(t){return this.scales[t]||i("Unrecognized scale name: "+l(t)),this.scales[t]},wB.projectionRef=wB.scaleRef=function(t){return RC(this.getScale(t))},wB.projectionType=wB.scaleType=function(t){return this.getScale(t).params.type},wB.addData=function(t,e){return K(this.data,t)&&i("Duplicate data set name: "+l(t)),this.data[t]=e},wB.getData=function(t){return this.data[t]||i("Undefined data set name: "+l(t)),this.data[t]},wB.addDataPipeline=function(t,e){return K(this.data,t)&&i("Duplicate data set name: "+l(t)),this.addData(t,tB.fromEntries(this,e))};X(Yr,zo,Sd,Uv,Sw,DA,Hk,Xk,xM,TM,IM),t.Bounds=Uo,t.CanvasHandler=th,t.CanvasRenderer=ah,t.Dataflow=$r,t.Debug=4,t.Error=1,t.EventStream=Yt,t.Gradient=Ho,t.GroupItem=Yo,t.Handler=Xf,t.Info=3,t.Item=Wo,t.Marks=Tf,t.MultiPulse=Or,t.None=0,t.Operator=jt,t.Parameters=Ut,t.Pulse=Sr,t.RenderType=Lh,t.Renderer=Qf,t.ResourceLoader=Xo,t.SVGHandler=ch,t.SVGRenderer=_h,t.SVGStringRenderer=zh,t.Scenegraph=Pf,t.Transform=Hr,t.View=xC,t.Warn=2,t.accessor=e,t.accessorFields=r,t.accessorName=n,t.array=I,t.bandwidthNRD=Mi,t.bin=Ei,t.bootstrapCI=Di,t.boundClip=Vh,t.boundContext=nc,t.boundItem=Nf,t.boundMark=Rf,t.boundStroke=Zl,t.changeset=Rt,t.clampRange=H,t.closeTag=ph,t.compare=Y,t.constant=V,t.cumulativeLogNormal=Pi,t.cumulativeNormal=Ni,t.cumulativeUniform=Yi,t.debounce=G,t.definition=Vr,t.densityLogNormal=Li,t.densityNormal=Ti,t.densityUniform=Wi,t.domChild=Wf,t.domClear=Yf,t.domCreate=If,t.domFind=Hf,t.dotbin=Ci,t.error=i,t.expressionFunction=XD,t.extend=X,t.extent=J,t.extentIndex=Z,t.falsy=v,t.fastmap=et,t.field=c,t.flush=nt,t.font=Df,t.fontFamily=Ef,t.fontSize=bf,t.format=Se,t.formatLocale=em,t.formats=Be,t.hasOwnProperty=K,t.id=h,t.identity=d,t.inferType=oe,t.inferTypes=se,t.ingest=St,t.inherits=rt,t.inrange=it,t.interpolate=Xm,t.interpolateColors=Ym,t.interpolateRange=Wm,t.intersect=jh,t.intersectBoxLine=vc,t.intersectPath=dc,t.intersectPoint=pc,t.intersectRule=mc,t.isArray=u,t.isBoolean=at,t.isDate=ut,t.isFunction=W,t.isNumber=ot,t.isObject=o,t.isRegExp=st,t.isString=s,t.isTuple=Dt,t.key=lt,t.lerp=ct,t.lineHeight=wf,t.loader=kr,t.logger=_,t.lruCache=ft,t.merge=ht,t.mergeConfig=b,t.multiLineOffset=kf,t.one=g,t.openTag=dh,t.pad=pt,t.panLinear=z,t.panLog=T,t.panPow=N,t.panSymlog=O,t.parse=function(t,e){return o(t)||i("Input Vega specification must be an object."),yB(t,new xB(e=b({description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:"#4c78a8"},area:{fill:"#4c78a8"},image:null,line:{stroke:"#4c78a8",strokeWidth:2},path:{stroke:"#4c78a8"},rect:{fill:"#4c78a8"},rule:{stroke:"#000"},shape:{stroke:"#4c78a8"},symbol:{fill:"#4c78a8",size:64},text:{fill:"#000",font:"sans-serif",fontSize:11},style:{"guide-label":{fill:"#000",font:"sans-serif",fontSize:10},"guide-title":{fill:"#000",font:"sans-serif",fontSize:11,fontWeight:"bold"},"group-title":{fill:"#000",font:"sans-serif",fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:"#000",font:"sans-serif",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:"#ddd"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:"#888",grid:!1,gridWidth:1,gridColor:"#ddd",labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:"#888",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:"#ddd",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:"#888",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"]}},e,t.config))).toRuntime()},t.pathCurves=cl,t.pathEqual=Xh,t.pathParse=dl,t.pathRectangle=Rl,t.pathRender=kl,t.pathSymbols=Dl,t.pathTrail=ql,t.peek=k,t.point=Gf,t.projection=yw,t.quantileLogNormal=$i,t.quantileNormal=Oi,t.quantileUniform=Vi,t.quantiles=Ai,t.quantizeInterpolator=Vm,t.quarter=$,t.quartiles=ki,t.randomInteger=function(e,n){null==n&&(n=e,e=0);var r,i,a,u={};return u.min=function(t){return arguments.length?(a=i-(r=t||0),u):r},u.max=function(t){return arguments.length?(a=(i=t||0)-r,u):i},u.sample=function(){return r+Math.floor(a*t.random())},u.pdf=function(t){return t===Math.floor(t)&&t>=r&&t<i?1/a:0},u.cdf=function(t){var e=Math.floor(t);return e<r?0:e>=i?1:(e-r+1)/a},u.icdf=function(t){return t>=0&&t<=1?r-1+Math.floor(t*a):NaN},u.min(e).max(n)},t.randomKDE=qi,t.randomLCG=function(t){return function(){return(t=(1103515245*t+12345)%2147483647)/2147483647}},t.randomLogNormal=ji,t.randomMixture=Ii,t.randomNormal=Ri,t.randomUniform=Gi,t.read=Ar,t.regressionExp=ea,t.regressionLinear=Ki,t.regressionLoess=ua,t.regressionLog=ta,t.regressionPoly=ia,t.regressionPow=na,t.regressionQuad=ra,t.renderModule=$h,t.repeat=dt,t.resetSVGClipId=function(){Hc=1},t.responseType=ze,t.runtime=oC,t.runtimeContext=lC,t.sampleCurve=ca,t.sampleLogNormal=Ui,t.sampleNormal=zi,t.sampleUniform=Hi,t.scale=Om,t.sceneEqual=Gh,t.sceneFromJSON=Lf,t.scenePickVisit=Cc,t.sceneToJSON=Uf,t.sceneVisit=Dc,t.sceneZOrder=Ec,t.scheme=Km,t.setRandom=function(e){t.random=e},t.span=gt,t.splitAccessPath=a,t.stringValue=l,t.textMetrics=gf,t.timeBin=vo,t.timeFloor=Pu,t.timeFormat=ao,t.timeFormatLocale=wr,t.timeInterval=Xu,t.timeOffset=Qu,t.timeSequence=eo,t.timeUnitSpecifier=io,t.timeUnits=Su,t.toBoolean=mt,t.toDate=yt,t.toNumber=M,t.toSet=xt,t.toString=_t,t.transform=Gr,t.transforms=Yr,t.truncate=bt,t.truthy=m,t.tupleid=Ct,t.typeParsers=ie,t.utcFloor=Yu,t.utcFormat=uo,t.utcInterval=Ju,t.utcOffset=Ku,t.utcSequence=no,t.utcquarter=j,t.version="5.10.0",t.visitArray=wt,t.writeConfig=w,t.zero=p,t.zoomLinear=q,t.zoomLog=U,t.zoomPow=L,t.zoomSymlog=P,Object.defineProperty(t,"__esModule",{value:!0})}));
diff --git a/javascript/vega@5.4.0 b/javascript/vega@5.4.0
deleted file mode 100644
--- a/javascript/vega@5.4.0
+++ /dev/null
@@ -1,1 +0,0 @@
-!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t=t||self).vega={})}(this,function(t){"use strict";function n(t,n,e){return t.fields=n||[],t.fname=e,t}function e(t){return null==t?null:t.fname}function r(t){return null==t?null:t.fields}function i(t){throw Error(t)}function a(t){var n,e,r,a=[],u=null,o=0,s=t.length,l="";function c(){a.push(l+t.substring(n,e)),l="",n=e+1}for(t+="",n=e=0;e<s;++e)if("\\"===(r=t[e]))l+=t.substring(n,e),n=++e;else if(r===u)c(),u=null,o=-1;else{if(u)continue;n===o&&'"'===r?(n=e+1,u=r):n===o&&"'"===r?(n=e+1,u=r):"."!==r||o?"["===r?(e>n&&c(),o=n=e+1):"]"===r&&(o||i("Access path missing open bracket: "+t),o>0&&c(),o=0,n=e+1):e>n?c():n=e+1}return o&&i("Access path missing closing bracket: "+t),u&&i("Access path missing closing quote: "+t),e>n&&(e++,c()),a}var u=Array.isArray;function o(t){return t===Object(t)}function s(t){return"string"==typeof t}function l(t){return u(t)?"["+t.map(l)+"]":o(t)||s(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function c(t,e){var r=a(t),i="return _["+r.map(l).join("][")+"];";return n(Function("_",i),[t=1===r.length?r[0]:t],e||t)}var f=[],h=c("id"),d=n(function(t){return t},f,"identity"),p=n(function(){return 0},f,"zero"),g=n(function(){return 1},f,"one"),m=n(function(){return!0},f,"true"),v=n(function(){return!1},f,"false");function y(t,n,e){var r=[n].concat([].slice.call(e));console[t](...r)}var x=0,_=1,b=2,w=3,A=4;function M(t,n){var e=t||x;return{level:function(t){return arguments.length?(e=+t,this):e},error:function(){return e>=_&&y(n||"error","ERROR",arguments),this},warn:function(){return e>=b&&y(n||"warn","WARN",arguments),this},info:function(){return e>=w&&y(n||"log","INFO",arguments),this},debug:function(){return e>=A&&y(n||"log","DEBUG",arguments),this}}}function k(t){return t[t.length-1]}function E(t){return null==t||""===t?null:+t}function C(t){return function(n){return t*Math.exp(n)}}function D(t){return function(n){return Math.log(t*n)}}function F(t){return function(n){return Math.sign(n)*Math.log1p(Math.abs(n/t))}}function S(t){return function(n){return Math.sign(n)*Math.expm1(Math.abs(n))*t}}function B(t){return function(n){return n<0?-Math.pow(-n,t):Math.pow(n,t)}}function O(t,n,e,r){var i=e(t[0]),a=e(k(t)),u=(a-i)*n;return[r(i-u),r(a-u)]}function z(t,n){return O(t,n,E,d)}function N(t,n){var e=Math.sign(t[0]);return O(t,n,D(e),C(e))}function T(t,n,e){return O(t,n,B(e),B(1/e))}function R(t,n,e){return O(t,n,F(e),S(e))}function P(t,n,e,r,i){var a=r(t[0]),u=r(k(t)),o=null!=n?r(n):(a+u)/2;return[i(o+(a-o)*e),i(o+(u-o)*e)]}function L(t,n,e){return P(t,n,e,E,d)}function q(t,n,e){var r=Math.sign(t[0]);return P(t,n,e,D(r),C(r))}function U(t,n,e,r){return P(t,n,e,B(r),B(1/r))}function j(t,n,e,r){return P(t,n,e,F(r),S(r))}function $(t){return 1+~~(new Date(t).getMonth()/3)}function I(t){return 1+~~(new Date(t).getUTCMonth()/3)}function W(t){return null!=t?u(t)?t:[t]:[]}function H(t,n,e){var r,i=t[0],a=t[1];return a<i&&(r=a,a=i,i=r),(r=a-i)>=e-n?[n,e]:[i=Math.min(Math.max(i,n),e-r),i+r]}function Y(t){return"function"==typeof t}function G(t,e){var i,u,o,s,c,f,h,d,p,g=[],m=(t=W(t)).map(function(t,n){return null==t?null:(g.push(n),Y(t)?t:a(t).map(l).join("]["))}),v=g.length-1,y=W(e),x="var u,v;return ";if(v<0)return null;for(u=0;u<=v;++u)Y(o=m[i=g[u]])?(s="(u=this."+(f="f"+i)+"(a))",c="(v=this."+f+"(b))",(h=h||{})[f]=o):(s="(u=a["+o+"])",c="(v=b["+o+"])"),f="((v=v instanceof Date?+v:v),(u=u instanceof Date?+u:u))","descending"!==y[i]?(p=1,d=-1):(p=-1,d=1),x+="("+s+"<"+c+"||u==null)&&v!=null?"+d+":(u>v||v==null)&&u!=null?"+p+":"+f+"!==u&&v===v?"+d+":v!==v&&u===u?"+p+(i<v?":":":0");return o=Function("a","b",x+";"),h&&(o=o.bind(h)),t=t.reduce(function(t,n){return Y(n)?(r(n)||[]).forEach(function(n){t[n]=1}):null!=n&&(t[n+""]=1),t},{}),n(o,Object.keys(t))}function V(t){return Y(t)?t:function(){return t}}function X(t,n){var e,r;function i(){n(r),e=r=null}return function(n){r=n,e&&clearTimeout(e),e=setTimeout(i,t)}}function Z(t){for(var n,e,r=1,i=arguments.length;r<i;++r)for(e in n=arguments[r])t[e]=n[e];return t}function J(t,n){var e,r,i,a,u=0;if(t&&(e=t.length))if(null==n){for(r=t[u];null==r||r!=r;r=t[++u]);for(i=a=r;u<e;++u)null!=(r=t[u])&&(r<i&&(i=r),r>a&&(a=r))}else{for(r=n(t[u]);null==r||r!=r;r=n(t[++u]));for(i=a=r;u<e;++u)null!=(r=n(t[u]))&&(r<i&&(i=r),r>a&&(a=r))}return[i,a]}function Q(t,n){var e,r,i,a,u,o=-1,s=t.length;if(null==n){for(;++o<s;)if(null!=(r=t[o])&&r>=r){e=i=r;break}for(a=u=o;++o<s;)null!=(r=t[o])&&(e>r&&(e=r,a=o),i<r&&(i=r,u=o))}else{for(;++o<s;)if(null!=(r=n(t[o],o,t))&&r>=r){e=i=r;break}for(a=u=o;++o<s;)null!=(r=n(t[o],o,t))&&(e>r&&(e=r,a=o),i<r&&(i=r,u=o))}return[a,u]}var K={};function tt(t){var n,e,r={};function i(t){return r.hasOwnProperty(t)&&r[t]!==K}return n={size:0,empty:0,object:r,has:i,get:function(t){return i(t)?r[t]:void 0},set:function(t,e){return i(t)||(++n.size,r[t]===K&&--n.empty),r[t]=e,this},delete:function(t){return i(t)&&(--n.size,++n.empty,r[t]=K),this},clear:function(){n.size=n.empty=0,n.object=r={}},test:function(t){return arguments.length?(e=t,n):e},clean:function(){var t,i,a={},u=0;for(t in r)(i=r[t])===K||e&&e(i)||(a[t]=i,++u);n.size=u,n.empty=0,n.object=r=a}},t&&Object.keys(t).forEach(function(e){n.set(e,t[e])}),n}function nt(t,n,e,r,i,a){if(!e&&0!==e)return a;var u,o,s=t[0],l=k(t),c=+e;return l<s&&(u=s,s=l,l=u),(u=Math.abs(n-s))<(o=Math.abs(l-n))&&u<=c?r:o<=c?i:a}function et(t,n){var e=t.prototype=Object.create(n.prototype);return e.constructor=t,e}function rt(t,n,e,r){var i,a=n[0],u=n[n.length-1];return a>u&&(i=a,a=u,u=i),r=void 0===r||r,((e=void 0===e||e)?a<=t:a<t)&&(r?t<=u:t<u)}function it(t){return"boolean"==typeof t}function at(t){return"[object Date]"===Object.prototype.toString.call(t)}function ut(t){return"number"==typeof t}function ot(t){return"[object RegExp]"===Object.prototype.toString.call(t)}function st(t,e){return t&&(t=e?W(t).map(function(t){return t.replace(/\\(.)/g,"$1")}):W(t)),n(t&&t.length?Function("_","return ''+"+t.map(function(t){return"_["+(e?l(t):a(t).map(l).join("]["))+"]"}).join("+'|'+")+";"):function(){return""},t,"key")}function lt(t,n){const e=t[0],r=k(t),i=+n;return i?1===i?r:e+i*(r-e):e}function ct(t,n,e,r){var i=n.length,a=e.length;if(!a)return n;if(!i)return e;for(var u=r||new n.constructor(i+a),o=0,s=0,l=0;o<i&&s<a;++l)u[l]=t(n[o],e[s])>0?e[s++]:n[o++];for(;o<i;++o,++l)u[l]=n[o];for(;s<a;++s,++l)u[l]=e[s];return u}function ft(t,n){for(var e="";--n>=0;)e+=t;return e}function ht(t,n,e,r){var i=e||" ",a=t+"",u=n-a.length;return u<=0?a:"left"===r?ft(i,u)+a:"center"===r?ft(i,~~(u/2))+a+ft(i,Math.ceil(u/2)):a+ft(i,u)}function dt(t){return k(t)-t[0]||0}function pt(t){return null==t||""===t?null:!(!t||"false"===t||"0"===t)&&!!t}function gt(t){return ut(t)?t:at(t)?t:Date.parse(t)}function mt(t,n){return n=n||gt,null==t||""===t?null:n(t)}function vt(t){return null==t||""===t?null:t+""}function yt(t){for(var n={},e=0,r=t.length;e<r;++e)n[t[e]]=!0;return n}function xt(t,n,e,r){var i=null!=r?r:"…",a=t+"",u=a.length,o=Math.max(0,n-i.length);return u<=n?a:"left"===e?i+a.slice(u-o):"center"===e?a.slice(0,Math.ceil(o/2))+i+a.slice(u-~~(o/2)):a.slice(0,o)+i}function _t(t,n,e){if(t){var r,i=0,a=t.length;if(n)for(;i<a;++i)(r=n(t[i]))&&e(r,i,t);else t.forEach(e)}}function bt(t){var n=t||d,e=[],r={};return e.add=function(t){var i=n(t);return r[i]||(r[i]=1,e.push(t)),e},e.remove=function(t){var i,a=n(t);return r[a]&&(r[a]=0,(i=e.indexOf(t))>=0&&e.splice(i,1)),e},e}async function wt(t,n){try{await n(t)}catch(n){t.error(n)}}var At=Symbol("vega_id"),Mt=1;function kt(t){return!(!t||!Et(t))}function Et(t){return t[At]}function Ct(t,n){return t[At]=n,t}function Dt(t){var n=t===Object(t)?t:{data:t};return Et(n)?n:Ct(n,Mt++)}function Ft(t){return St(t,Dt({}))}function St(t,n){for(var e in t)n[e]=t[e];return n}function Bt(t,n){return Ct(n,Et(t))}function Ot(t){return t&&t.constructor===zt}function zt(){var t=[],n=[],e=[],r=[],i=[],a=!1;return{constructor:zt,insert:function(n){for(var e=W(n),r=0,i=e.length;r<i;++r)t.push(e[r]);return this},remove:function(t){for(var e=Y(t)?r:n,i=W(t),a=0,u=i.length;a<u;++a)e.push(i[a]);return this},modify:function(t,n,r){var a={field:n,value:V(r)};return Y(t)?(a.filter=t,i.push(a)):(a.tuple=t,e.push(a)),this},encode:function(t,n){return Y(t)?i.push({filter:t,field:n}):e.push({tuple:t,field:n}),this},reflow:function(){return a=!0,this},pulse:function(u,o){var s,l,c,f,h,d,p={},g={};for(s=0,l=o.length;s<l;++s)p[Et(o[s])]=1;for(s=0,l=n.length;s<l;++s)p[Et(h=n[s])]=-1;for(s=0,l=r.length;s<l;++s)f=r[s],o.forEach(function(t){f(t)&&(p[Et(t)]=-1)});for(s=0,l=t.length;s<l;++s)d=Et(h=t[s]),p[d]?p[d]=1:u.add.push(Dt(t[s]));for(s=0,l=o.length;s<l;++s)h=o[s],p[Et(h)]<0&&u.rem.push(h);function m(t,n,e){e?t[n]=e(t):u.encode=n,a||(g[Et(t)]=t)}for(s=0,l=e.length;s<l;++s)h=(c=e[s]).tuple,f=c.field,(d=p[Et(h)])>0&&(m(h,f,c.value),u.modifies(f));for(s=0,l=i.length;s<l;++s)c=i[s],f=c.filter,o.forEach(function(t){f(t)&&p[Et(t)]>0&&m(t,c.field,c.value)}),u.modifies(c.field);if(a)u.mod=n.length||r.length?o.filter(function(t){return p[Et(t)]>0}):o.slice();else for(d in g)u.mod.push(g[d]);return u}}}var Nt="_:mod:_";function Tt(){Object.defineProperty(this,Nt,{writable:!0,value:{}})}var Rt=Tt.prototype;Rt.set=function(t,n,e,r){var i=this,a=i[t],o=i[Nt];return null!=n&&n>=0?(a[n]!==e||r)&&(a[n]=e,o[n+":"+t]=-1,o[t]=-1):(a!==e||r)&&(i[t]=e,o[t]=u(e)?1+e.length:-1),i},Rt.modified=function(t,n){var e,r=this[Nt];if(!arguments.length){for(e in r)if(r[e])return!0;return!1}if(u(t)){for(e=0;e<t.length;++e)if(r[t[e]])return!0;return!1}return null!=n&&n>=0?n+1<r[t]||!!r[n+":"+t]:!!r[t]},Rt.clear=function(){return this[Nt]={},this};var Pt=0,Lt=new Tt;function qt(t,n,e,r){this.id=++Pt,this.value=t,this.stamp=-1,this.rank=-1,this.qrank=-1,this.flags=0,n&&(this._update=n),e&&this.parameters(e,r)}var Ut=qt.prototype;function jt(t){return function(n){var e=this.flags;return 0===arguments.length?!!(e&t):(this.flags=n?e|t:e&~t,this)}}Ut.targets=function(){return this._targets||(this._targets=bt(h))},Ut.set=function(t){return this.value!==t?(this.value=t,1):0},Ut.skip=jt(1),Ut.modified=jt(2),Ut.parameters=function(t,n,e){n=!1!==n;var r,a,o,s,l=this,c=l._argval=l._argval||new Tt,f=l._argops=l._argops||[],h=[];function d(t,e,r){r instanceof qt?(r!==l&&(n&&r.targets().add(l),h.push(r)),f.push({op:r,name:t,index:e})):c.set(t,e,r)}for(r in t)if(a=t[r],"pulse"===r)W(a).forEach(function(t){t instanceof qt?t!==l&&(t.targets().add(l),h.push(t)):i("Pulse parameters must be operator instances.")}),l.source=a;else if(u(a))for(c.set(r,-1,Array(o=a.length)),s=0;s<o;++s)d(r,s,a[s]);else d(r,-1,a);return this.marshall().clear(),e&&(f.initonly=!0),h},Ut.marshall=function(t){var n,e,r,i,a,u=this._argval||Lt,o=this._argops;if(o){for(e=0,r=o.length;e<r;++e)a=(i=(n=o[e]).op).modified()&&i.stamp===t,u.set(n.name,n.index,i.value,a);if(o.initonly){for(e=0;e<r;++e)(n=o[e]).op.targets().remove(this);this._argops=null,this._update=null}}return u},Ut.evaluate=function(t){var n=this._update;if(n){var e=this.marshall(t.stamp),r=n.call(this,e,t);if(e.clear(),r!==this.value)this.value=r;else if(!this.modified())return t.StopPropagation}},Ut.run=function(t){return t.stamp<=this.stamp?t.StopPropagation:(this.skip()?(this.skip(!1),n=0):n=this.evaluate(t),this.stamp=t.stamp,this.pulse=n||t);var n};var $t=0;function It(t,n,e){this.id=++$t,this.value=null,e&&(this.receive=e),t&&(this._filter=t),n&&(this._apply=n)}function Wt(t,n,e){return new It(t,n,e)}var Ht=It.prototype;Ht._filter=m,Ht._apply=d,Ht.targets=function(){return this._targets||(this._targets=bt(h))},Ht.consume=function(t){return arguments.length?(this._consume=!!t,this):!!this._consume},Ht.receive=function(t){if(this._filter(t)){for(var n=this.value=this._apply(t),e=this._targets,r=e?e.length:0,i=0;i<r;++i)e[i].receive(n);this._consume&&(t.preventDefault(),t.stopPropagation())}},Ht.filter=function(t){var n=Wt(t);return this.targets().add(n),n},Ht.apply=function(t){var n=Wt(null,t);return this.targets().add(n),n},Ht.merge=function(){var t=Wt();this.targets().add(t);for(var n=0,e=arguments.length;n<e;++n)arguments[n].targets().add(t);return t},Ht.throttle=function(t){var n=-1;return this.filter(function(){var e=Date.now();return e-n>t?(n=e,1):0})},Ht.debounce=function(t){var n=Wt();return this.targets().add(Wt(null,null,X(t,function(t){var e=t.dataflow;n.receive(t),e&&e.run&&e.run()}))),n},Ht.between=function(t,n){var e=!1;return t.targets().add(Wt(null,null,function(){e=!0})),n.targets().add(Wt(null,null,function(){e=!1})),this.filter(function(){return e})};var Yt=/^([A-Za-z]+:)?\/\//,Gt="file://";async function Vt(t,n){const e=await this.sanitize(t,n),r=e.href;return e.localFile?this.file(r):this.http(r,n)}async function Xt(t,n){n=Z({},this.options,n);const e=this.fileAccess,r={href:null};let a,u,o,s;return null!=t&&"string"==typeof t||i("Sanitize failure, invalid URI: "+l(t)),u=Yt.test(t),(s=n.baseURL)&&!u&&(t.startsWith("/")||"/"===s[s.length-1]||(t="/"+t),t=s+t),o=(a=t.startsWith(Gt))||"file"===n.mode||"http"!==n.mode&&!u&&e,a?t=t.slice(Gt.length):t.startsWith("//")&&("file"===n.defaultProtocol?(t=t.slice(2),o=!0):t=(n.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!o}),r.href=t,n.target&&(r.target=n.target+""),n.rel&&(r.rel=n.rel+""),r}function Zt(t){return t?function(n){return new Promise(function(e,r){t.readFile(n,function(t,n){t?r(t):e(n)})})}:Jt}async function Jt(){i("No file system access.")}function Qt(t){return t?async function(n,e){const r=Z({},this.options.http,e),a=e&&e.response,u=await t(n,r);return u.ok?Y(u[a])?u[a]():u.text():i(u.status+""+u.statusText)}:Kt}async function Kt(){i("No HTTP fetch method available.")}var tn={boolean:pt,integer:E,number:E,date:mt,string:vt,unknown:d},nn=[function(t){return"true"===t||"false"===t||!0===t||!1===t},function(t){return un(t)&&(t=+t)==~~t},un,function(t){return!isNaN(Date.parse(t))}],en=["boolean","integer","number","date"];function rn(t,n){if(!t||!t.length)return"unknown";var e,r,i,a,u=0,o=t.length,s=nn.length,l=nn.map(function(t,n){return n+1});for(r=0,o=t.length;r<o;++r)for(e=n?t[r][n]:t[r],i=0;i<s;++i)if(l[i]&&(null!=(a=e)&&a==a)&&!nn[i](e)&&(l[i]=0,++u===nn.length))return"string";return u=l.reduce(function(t,n){return 0===t?n:t},0)-1,en[u]}function an(t,n){return n.reduce(function(n,e){return n[e]=rn(t,e),n},{})}function un(t){return!(isNaN(+t)||t instanceof Date)}var on={},sn={},ln=34,cn=10,fn=13;function hn(t){return new Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}")}function dn(t){var n=Object.create(null),e=[];return t.forEach(function(t){for(var r in t)r in n||e.push(n[r]=r)}),e}function pn(t,n){var e=t+"",r=e.length;return r<n?new Array(n-r+1).join(0)+e:e}function gn(t){var n,e=t.getUTCHours(),r=t.getUTCMinutes(),i=t.getUTCSeconds(),a=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":((n=t.getUTCFullYear())<0?"-"+pn(-n,6):n>9999?"+"+pn(n,6):pn(n,4))+"-"+pn(t.getUTCMonth()+1,2)+"-"+pn(t.getUTCDate(),2)+(a?"T"+pn(e,2)+":"+pn(r,2)+":"+pn(i,2)+"."+pn(a,3)+"Z":i?"T"+pn(e,2)+":"+pn(r,2)+":"+pn(i,2)+"Z":r||e?"T"+pn(e,2)+":"+pn(r,2)+"Z":"")}function mn(t){var n=new RegExp('["'+t+"\n\r]"),e=t.charCodeAt(0);function r(t,n){var r,i=[],a=t.length,u=0,o=0,s=a<=0,l=!1;function c(){if(s)return sn;if(l)return l=!1,on;var n,r,i=u;if(t.charCodeAt(i)===ln){for(;u++<a&&t.charCodeAt(u)!==ln||t.charCodeAt(++u)===ln;);return(n=u)>=a?s=!0:(r=t.charCodeAt(u++))===cn?l=!0:r===fn&&(l=!0,t.charCodeAt(u)===cn&&++u),t.slice(i+1,n-1).replace(/""/g,'"')}for(;u<a;){if((r=t.charCodeAt(n=u++))===cn)l=!0;else if(r===fn)l=!0,t.charCodeAt(u)===cn&&++u;else if(r!==e)continue;return t.slice(i,n)}return s=!0,t.slice(i,a)}for(t.charCodeAt(a-1)===cn&&--a,t.charCodeAt(a-1)===fn&&--a;(r=c())!==sn;){for(var f=[];r!==on&&r!==sn;)f.push(r),r=c();n&&null==(f=n(f,o++))||i.push(f)}return i}function i(n,e){return n.map(function(n){return e.map(function(t){return u(n[t])}).join(t)})}function a(n){return n.map(u).join(t)}function u(t){return null==t?"":t instanceof Date?gn(t):n.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}return{parse:function(t,n){var e,i,a=r(t,function(t,r){if(e)return e(t,r-1);i=t,e=n?function(t,n){var e=hn(t);return function(r,i){return n(e(r),i,t)}}(t,n):hn(t)});return a.columns=i||[],a},parseRows:r,format:function(n,e){return null==e&&(e=dn(n)),[e.map(u).join(t)].concat(i(n,e)).join("\n")},formatBody:function(t,n){return null==n&&(n=dn(t)),i(t,n).join("\n")},formatRows:function(t){return t.map(a).join("\n")}}}mn(","),mn("\t");function vn(t){const n=function(n,e){const r={delimiter:t};return yn(n,e?Z(e,r):r)};return n.responseType="text",n}function yn(t,n){return n.header&&(t=n.header.map(l).join(n.delimiter)+"\n"+t),mn(n.delimiter).parse(t+"")}function xn(t,n){const e=n&&n.property?c(n.property):d;return!o(t)||(r=t,"function"==typeof Buffer&&Y(Buffer.isBuffer)&&Buffer.isBuffer(r))?e(JSON.parse(t)):function(t,n){return n&&n.copy?JSON.parse(JSON.stringify(t)):t}(e(t));var r}function _n(t){return t}function bn(t,n){return"GeometryCollection"===n.type?{type:"FeatureCollection",features:n.geometries.map(function(n){return wn(t,n)})}:wn(t,n)}function wn(t,n){var e=n.id,r=n.bbox,i=null==n.properties?{}:n.properties,a=An(t,n);return null==e&&null==r?{type:"Feature",properties:i,geometry:a}:null==r?{type:"Feature",id:e,properties:i,geometry:a}:{type:"Feature",id:e,bbox:r,properties:i,geometry:a}}function An(t,n){var e=function(t){if(null==t)return _n;var n,e,r=t.scale[0],i=t.scale[1],a=t.translate[0],u=t.translate[1];return function(t,o){o||(n=e=0);var s=2,l=t.length,c=new Array(l);for(c[0]=(n+=t[0])*r+a,c[1]=(e+=t[1])*i+u;s<l;)c[s]=t[s],++s;return c}}(t.transform),r=t.arcs;function i(t,n){n.length&&n.pop();for(var i=r[t<0?~t:t],a=0,u=i.length;a<u;++a)n.push(e(i[a],a));t<0&&function(t,n){for(var e,r=t.length,i=r-n;i<--r;)e=t[i],t[i++]=t[r],t[r]=e}(n,u)}function a(t){return e(t)}function u(t){for(var n=[],e=0,r=t.length;e<r;++e)i(t[e],n);return n.length<2&&n.push(n[0]),n}function o(t){for(var n=u(t);n.length<4;)n.push(n[0]);return n}function s(t){return t.map(o)}return function t(n){var e,r=n.type;switch(r){case"GeometryCollection":return{type:r,geometries:n.geometries.map(t)};case"Point":e=a(n.coordinates);break;case"MultiPoint":e=n.coordinates.map(a);break;case"LineString":e=u(n.arcs);break;case"MultiLineString":e=n.arcs.map(u);break;case"Polygon":e=s(n.arcs);break;case"MultiPolygon":e=n.arcs.map(s);break;default:return null}return{type:r,coordinates:e}}(n)}function Mn(t,n){var e={},r={},i={},a=[],u=-1;function o(t,n){for(var r in t){var i=t[r];delete n[i.start],delete i.start,delete i.end,i.forEach(function(t){e[t<0?~t:t]=1}),a.push(i)}}return n.forEach(function(e,r){var i,a=t.arcs[e<0?~e:e];a.length<3&&!a[1][0]&&!a[1][1]&&(i=n[++u],n[u]=e,n[r]=i)}),n.forEach(function(n){var e,a,u=function(n){var e,r=t.arcs[n<0?~n:n],i=r[0];t.transform?(e=[0,0],r.forEach(function(t){e[0]+=t[0],e[1]+=t[1]})):e=r[r.length-1];return n<0?[e,i]:[i,e]}(n),o=u[0],s=u[1];if(e=i[o])if(delete i[e.end],e.push(n),e.end=s,a=r[s]){delete r[a.start];var l=a===e?e:e.concat(a);r[l.start=e.start]=i[l.end=a.end]=l}else r[e.start]=i[e.end]=e;else if(e=r[s])if(delete r[e.start],e.unshift(n),e.start=o,a=i[o]){delete i[a.end];var c=a===e?e:a.concat(e);r[c.start=a.start]=i[c.end=e.end]=c}else r[e.start]=i[e.end]=e;else r[(e=[n]).start=o]=i[e.end=s]=e}),o(i,r),o(r,i),n.forEach(function(t){e[t<0?~t:t]||a.push([t])}),a}function kn(t){return An(t,function(t,n,e){var r,i,a;if(arguments.length>1)r=function(t,n,e){var r,i=[],a=[];function u(t){var n=t<0?~t:t;(a[n]||(a[n]=[])).push({i:t,g:r})}function o(t){t.forEach(u)}function s(t){t.forEach(o)}return function t(n){switch(r=n,n.type){case"GeometryCollection":n.geometries.forEach(t);break;case"LineString":o(n.arcs);break;case"MultiLineString":case"Polygon":s(n.arcs);break;case"MultiPolygon":n.arcs.forEach(s)}}(n),a.forEach(null==e?function(t){i.push(t[0].i)}:function(t){e(t[0].g,t[t.length-1].g)&&i.push(t[0].i)}),i}(0,n,e);else for(i=0,r=new Array(a=t.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:Mn(t,r)}}.apply(this,arguments))}yn.responseType="text",xn.responseType="json";const En={interior:(t,n)=>t!==n,exterior:(t,n)=>t===n};function Cn(t,n){let e,r,a,u;return t=xn(t,n),n&&n.feature?(e=bn,a=n.feature):n&&n.mesh?(e=kn,a=n.mesh,u=En[n.filter]):i("Missing TopoJSON feature or mesh parameter."),(r=(r=t.objects[a])?e(t,r,u):i("Invalid TopoJSON object: "+a))&&r.features||[r]}Cn.responseType="json";const Dn={dsv:yn,csv:vn(","),tsv:vn("\t"),json:xn,topojson:Cn};function Fn(t,n){return arguments.length>1?(Dn[t]=n,this):Dn.hasOwnProperty(t)?Dn[t]:null}function Sn(t){const n=Fn(t);return n&&n.responseType||"text"}var Bn=new Date,On=new Date;function zn(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,a){var u,o=[];if(e=i.ceil(e),a=null==a?1:Math.floor(a),!(e<r&&a>0))return o;do{o.push(u=new Date(+e)),n(e,a),t(e)}while(u<e&&e<r);return o},i.filter=function(e){return zn(function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return Bn.setTime(+n),On.setTime(+r),t(Bn),t(On),Math.floor(e(Bn,On))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}var Nn=zn(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});Nn.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?zn(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):Nn:null};var Tn=6e4,Rn=6048e5,Pn=zn(function(t){t.setTime(t-t.getMilliseconds())},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),Ln=zn(function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())},function(t,n){t.setTime(+t+n*Tn)},function(t,n){return(n-t)/Tn},function(t){return t.getMinutes()}),qn=zn(function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-t.getMinutes()*Tn)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),Un=zn(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Tn)/864e5},function(t){return t.getDate()-1});function jn(t){return zn(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Tn)/Rn})}var $n=jn(0),In=jn(1),Wn=(jn(2),jn(3),jn(4)),Hn=(jn(5),jn(6),zn(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()})),Yn=zn(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});Yn.every=function(t){return isFinite(t=Math.floor(t))&&t>0?zn(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var Gn=zn(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*Tn)},function(t,n){return(n-t)/Tn},function(t){return t.getUTCMinutes()}),Vn=zn(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),Xn=zn(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1});function Zn(t){return zn(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Rn})}var Jn=Zn(0),Qn=Zn(1),Kn=(Zn(2),Zn(3),Zn(4)),te=(Zn(5),Zn(6),zn(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()})),ne=zn(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});function ee(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function re(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function ie(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}ne.every=function(t){return isFinite(t=Math.floor(t))&&t>0?zn(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var ae,ue,oe,se,le,ce={"-":"",_:" ",0:"0"},fe=/^\s*\d+/,he=/^%/,de=/[\\^$*+?|[\]().{}]/g;function pe(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a<e?new Array(e-a+1).join(n)+i:i)}function ge(t){return t.replace(de,"\\$&")}function me(t){return new RegExp("^(?:"+t.map(ge).join("|")+")","i")}function ve(t){for(var n={},e=-1,r=t.length;++e<r;)n[t[e].toLowerCase()]=e;return n}function ye(t,n,e){var r=fe.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function xe(t,n,e){var r=fe.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function _e(t,n,e){var r=fe.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function be(t,n,e){var r=fe.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function we(t,n,e){var r=fe.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function Ae(t,n,e){var r=fe.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function Me(t,n,e){var r=fe.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function ke(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function Ee(t,n,e){var r=fe.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function Ce(t,n,e){var r=fe.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function De(t,n,e){var r=fe.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function Fe(t,n,e){var r=fe.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function Se(t,n,e){var r=fe.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function Be(t,n,e){var r=fe.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function Oe(t,n,e){var r=fe.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function ze(t,n,e){var r=fe.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function Ne(t,n,e){var r=he.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function Te(t,n,e){var r=fe.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function Re(t,n,e){var r=fe.exec(n.slice(e));return r?(t.Q=1e3*+r[0],e+r[0].length):-1}function Pe(t,n){return pe(t.getDate(),n,2)}function Le(t,n){return pe(t.getHours(),n,2)}function qe(t,n){return pe(t.getHours()%12||12,n,2)}function Ue(t,n){return pe(1+Un.count(Yn(t),t),n,3)}function je(t,n){return pe(t.getMilliseconds(),n,3)}function $e(t,n){return je(t,n)+"000"}function Ie(t,n){return pe(t.getMonth()+1,n,2)}function We(t,n){return pe(t.getMinutes(),n,2)}function He(t,n){return pe(t.getSeconds(),n,2)}function Ye(t){var n=t.getDay();return 0===n?7:n}function Ge(t,n){return pe($n.count(Yn(t),t),n,2)}function Ve(t,n){var e=t.getDay();return t=e>=4||0===e?Wn(t):Wn.ceil(t),pe(Wn.count(Yn(t),t)+(4===Yn(t).getDay()),n,2)}function Xe(t){return t.getDay()}function Ze(t,n){return pe(In.count(Yn(t),t),n,2)}function Je(t,n){return pe(t.getFullYear()%100,n,2)}function Qe(t,n){return pe(t.getFullYear()%1e4,n,4)}function Ke(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+pe(n/60|0,"0",2)+pe(n%60,"0",2)}function tr(t,n){return pe(t.getUTCDate(),n,2)}function nr(t,n){return pe(t.getUTCHours(),n,2)}function er(t,n){return pe(t.getUTCHours()%12||12,n,2)}function rr(t,n){return pe(1+Xn.count(ne(t),t),n,3)}function ir(t,n){return pe(t.getUTCMilliseconds(),n,3)}function ar(t,n){return ir(t,n)+"000"}function ur(t,n){return pe(t.getUTCMonth()+1,n,2)}function or(t,n){return pe(t.getUTCMinutes(),n,2)}function sr(t,n){return pe(t.getUTCSeconds(),n,2)}function lr(t){var n=t.getUTCDay();return 0===n?7:n}function cr(t,n){return pe(Jn.count(ne(t),t),n,2)}function fr(t,n){var e=t.getUTCDay();return t=e>=4||0===e?Kn(t):Kn.ceil(t),pe(Kn.count(ne(t),t)+(4===ne(t).getUTCDay()),n,2)}function hr(t){return t.getUTCDay()}function dr(t,n){return pe(Qn.count(ne(t),t),n,2)}function pr(t,n){return pe(t.getUTCFullYear()%100,n,2)}function gr(t,n){return pe(t.getUTCFullYear()%1e4,n,4)}function mr(){return"+0000"}function vr(){return"%"}function yr(t){return+t}function xr(t){return Math.floor(+t/1e3)}function _r(t){return ae=function(t){var n=t.dateTime,e=t.date,r=t.time,i=t.periods,a=t.days,u=t.shortDays,o=t.months,s=t.shortMonths,l=me(i),c=ve(i),f=me(a),h=ve(a),d=me(u),p=ve(u),g=me(o),m=ve(o),v=me(s),y=ve(s),x={a:function(t){return u[t.getDay()]},A:function(t){return a[t.getDay()]},b:function(t){return s[t.getMonth()]},B:function(t){return o[t.getMonth()]},c:null,d:Pe,e:Pe,f:$e,H:Le,I:qe,j:Ue,L:je,m:Ie,M:We,p:function(t){return i[+(t.getHours()>=12)]},Q:yr,s:xr,S:He,u:Ye,U:Ge,V:Ve,w:Xe,W:Ze,x:null,X:null,y:Je,Y:Qe,Z:Ke,"%":vr},_={a:function(t){return u[t.getUTCDay()]},A:function(t){return a[t.getUTCDay()]},b:function(t){return s[t.getUTCMonth()]},B:function(t){return o[t.getUTCMonth()]},c:null,d:tr,e:tr,f:ar,H:nr,I:er,j:rr,L:ir,m:ur,M:or,p:function(t){return i[+(t.getUTCHours()>=12)]},Q:yr,s:xr,S:sr,u:lr,U:cr,V:fr,w:hr,W:dr,x:null,X:null,y:pr,Y:gr,Z:mr,"%":vr},b={a:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=p[r[0].toLowerCase()],e+r[0].length):-1},A:function(t,n,e){var r=f.exec(n.slice(e));return r?(t.w=h[r[0].toLowerCase()],e+r[0].length):-1},b:function(t,n,e){var r=v.exec(n.slice(e));return r?(t.m=y[r[0].toLowerCase()],e+r[0].length):-1},B:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.m=m[r[0].toLowerCase()],e+r[0].length):-1},c:function(t,e,r){return M(t,n,e,r)},d:Ce,e:Ce,f:ze,H:Fe,I:Fe,j:De,L:Oe,m:Ee,M:Se,p:function(t,n,e){var r=l.exec(n.slice(e));return r?(t.p=c[r[0].toLowerCase()],e+r[0].length):-1},Q:Te,s:Re,S:Be,u:xe,U:_e,V:be,w:ye,W:we,x:function(t,n,r){return M(t,e,n,r)},X:function(t,n,e){return M(t,r,n,e)},y:Me,Y:Ae,Z:ke,"%":Ne};function w(t,n){return function(e){var r,i,a,u=[],o=-1,s=0,l=t.length;for(e instanceof Date||(e=new Date(+e));++o<l;)37===t.charCodeAt(o)&&(u.push(t.slice(s,o)),null!=(i=ce[r=t.charAt(++o)])?r=t.charAt(++o):i="e"===r?" ":"0",(a=n[r])&&(r=a(e,i)),u.push(r),s=o+1);return u.push(t.slice(s,o)),u.join("")}}function A(t,n){return function(e){var r,i,a=ie(1900);if(M(a,t,e+="",0)!=e.length)return null;if("Q"in a)return new Date(a.Q);if("p"in a&&(a.H=a.H%12+12*a.p),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(r=re(ie(a.y))).getUTCDay(),r=i>4||0===i?Qn.ceil(r):Qn(r),r=Xn.offset(r,7*(a.V-1)),a.y=r.getUTCFullYear(),a.m=r.getUTCMonth(),a.d=r.getUTCDate()+(a.w+6)%7):(i=(r=n(ie(a.y))).getDay(),r=i>4||0===i?In.ceil(r):In(r),r=Un.offset(r,7*(a.V-1)),a.y=r.getFullYear(),a.m=r.getMonth(),a.d=r.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),i="Z"in a?re(ie(a.y)).getUTCDay():n(ie(a.y)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(i+5)%7:a.w+7*a.U-(i+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,re(a)):n(a)}}function M(t,n,e,r){for(var i,a,u=0,o=n.length,s=e.length;u<o;){if(r>=s)return-1;if(37===(i=n.charCodeAt(u++))){if(i=n.charAt(u++),!(a=b[i in ce?n.charAt(u++):i])||(r=a(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}return x.x=w(e,x),x.X=w(r,x),x.c=w(n,x),_.x=w(e,_),_.X=w(r,_),_.c=w(n,_),{format:function(t){var n=w(t+="",x);return n.toString=function(){return t},n},parse:function(t){var n=A(t+="",ee);return n.toString=function(){return t},n},utcFormat:function(t){var n=w(t+="",_);return n.toString=function(){return t},n},utcParse:function(t){var n=A(t,re);return n.toString=function(){return t},n}}}(t),ue=ae.format,oe=ae.parse,se=ae.utcFormat,le=ae.utcParse,ae}_r({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});Date.prototype.toISOString||se("%Y-%m-%dT%H:%M:%S.%LZ");+new Date("2000-01-01T00:00:00.000Z")||le("%Y-%m-%dT%H:%M:%S.%LZ");function br(t,n,e){const r=Fn((n=n||{}).type||"json");return r||i("Unknown data format type: "+n.type),t=r(t,n),n.parse&&function(t,n,e){if(!t.length)return;e=e||oe;var r,i,a,u,o,s,l,c=t.columns||Object.keys(t[0]);"auto"===n&&(n=an(t,c));for(c=Object.keys(n),r=c.map(function(t){var r,i,a=n[t];if(a&&(0===a.indexOf("date:")||0===a.indexOf("utc:")))return("'"===(i=(r=a.split(/:(.+)?/,2))[1])[0]&&"'"===i[i.length-1]||'"'===i[0]&&'"'===i[i.length-1])&&(i=i.slice(1,-1)),"utc"===r[0]?le(i):e(i);if(!tn[a])throw Error("Illegal format pattern: "+t+":"+a);return tn[a]}),u=0,s=t.length,l=c.length;u<s;++u)for(i=t[u],o=0;o<l;++o)a=c[o],i[a]=r[o](i[a])}(t,n.parse,e),t.hasOwnProperty("columns")&&delete t.columns,t}var wr=function(t,n){return function(e){return{options:e||{},sanitize:Xt,load:Vt,fileAccess:!!n,file:Zt(n),http:Qt(t)}}}("undefined"!=typeof fetch&&fetch,null);const Ar=br;var Mr={skip:!0};function kr(t,n,e,r,i,a){var u,o,s=Z({},a,Mr);Y(e)||(e=V(e)),void 0===r?u=(n=>t.touch(e(n))):Y(r)?(o=new qt(null,r,i,!1),u=(n=>{o.evaluate(n);const r=e(n),i=o.value;Ot(i)?t.pulse(r,i,a):t.update(r,i,s)})):u=(n=>t.update(e(n),r,s)),n.apply(u)}function Er(t,n,e,r,i,a){if(void 0===r)n.targets().add(e);else{const u=a||{},o=new qt(null,function(t,n){return n=Y(n)?n:V(n),t?function(e,r){const i=n(e,r);return t.skip()||(t.skip(i!==this.value).value=i),i}:n}(e,r),i,!1);o.modified(u.force),o.rank=n.rank,n.targets().add(o),e&&(o.skip(!0),o.value=e.value,o.targets().add(e),t.connect(e,[o]))}}var Cr={};function Dr(t,n,e){this.dataflow=t,this.stamp=null==n?-1:n,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=e||null}var Fr=Dr.prototype;function Sr(t,n){return t?function(e,r){return t(e,r)&&n(e,r)}:n}function Br(t,n){var e=[];return _t(t,n,function(t){e.push(t)}),e}function Or(t,n){var e={};return t.visit(n,function(t){e[Et(t)]=1}),function(t){return e[Et(t)]?null:t}}function zr(t,n,e,r){var i,a,u,o,s,l=this,c=0;for(this.dataflow=t,this.stamp=n,this.fields=null,this.encode=r||null,this.pulses=e,u=0,o=e.length;u<o;++u)if((i=e[u]).stamp===n){if(i.fields)for(s in a=l.fields||(l.fields={}),i.fields)a[s]=1;i.changed(l.ADD)&&(c|=l.ADD),i.changed(l.REM)&&(c|=l.REM),i.changed(l.MOD)&&(c|=l.MOD)}this.changes=c}Fr.StopPropagation=Cr,Fr.ADD=1,Fr.REM=2,Fr.MOD=4,Fr.ADD_REM=3,Fr.ADD_MOD=5,Fr.ALL=7,Fr.REFLOW=8,Fr.SOURCE=16,Fr.NO_SOURCE=32,Fr.NO_FIELDS=64,Fr.fork=function(t){return new Dr(this.dataflow).init(this,t)},Fr.clone=function(){var t=this.fork(7);return t.add=t.add.slice(),t.rem=t.rem.slice(),t.mod=t.mod.slice(),t.source&&(t.source=t.source.slice()),t.materialize(23)},Fr.addAll=function(){var t=this;return this.source&&this.source.length!==this.add.length?((t=new Dr(this.dataflow).init(this)).add=t.source,t):t},Fr.init=function(t,n){var e=this;return e.stamp=t.stamp,e.encode=t.encode,!t.fields||64&n||(e.fields=t.fields),1&n?(e.addF=t.addF,e.add=t.add):(e.addF=null,e.add=[]),2&n?(e.remF=t.remF,e.rem=t.rem):(e.remF=null,e.rem=[]),4&n?(e.modF=t.modF,e.mod=t.mod):(e.modF=null,e.mod=[]),32&n?(e.srcF=null,e.source=null):(e.srcF=t.srcF,e.source=t.source),e},Fr.runAfter=function(t){this.dataflow.runAfter(t)},Fr.changed=function(t){var n=t||7;return 1&n&&this.add.length||2&n&&this.rem.length||4&n&&this.mod.length},Fr.reflow=function(t){if(t)return this.fork(7).reflow();var n=this.add.length,e=this.source&&this.source.length;return e&&e!==n&&(this.mod=this.source,n&&this.filter(4,Or(this,1))),this},Fr.modifies=function(t){var n=W(t),e=this.fields||(this.fields={});return n.forEach(function(t){e[t]=!0}),this},Fr.modified=function(t){var n=this.fields;return!(!this.mod.length||!n)&&(arguments.length?u(t)?t.some(function(t){return n[t]}):n[t]:!!n)},Fr.filter=function(t,n){var e=this;return 1&t&&(e.addF=Sr(e.addF,n)),2&t&&(e.remF=Sr(e.remF,n)),4&t&&(e.modF=Sr(e.modF,n)),16&t&&(e.srcF=Sr(e.srcF,n)),e},Fr.materialize=function(t){var n=this;return 1&(t=t||7)&&n.addF&&(n.add=Br(n.add,n.addF),n.addF=null),2&t&&n.remF&&(n.rem=Br(n.rem,n.remF),n.remF=null),4&t&&n.modF&&(n.mod=Br(n.mod,n.modF),n.modF=null),16&t&&n.srcF&&(n.source=n.source.filter(n.srcF),n.srcF=null),n},Fr.visit=function(t,n){var e,r,i=this,a=n;return 16&t?(_t(i.source,i.srcF,a),i):(1&t&&_t(i.add,i.addF,a),2&t&&_t(i.rem,i.remF,a),4&t&&_t(i.mod,i.modF,a),8&t&&(e=i.source)&&((r=i.add.length+i.mod.length)===e.length||_t(e,r?Or(i,5):i.srcF,a)),i)};var Nr=et(zr,Dr);function Tr(t){return t.error("Dataflow already running. Use runAsync() to chain invocations."),t}Nr.fork=function(t){var n=new Dr(this.dataflow).init(this,t&this.NO_FIELDS);return void 0!==t&&(t&n.ADD&&this.visit(n.ADD,function(t){return n.add.push(t)}),t&n.REM&&this.visit(n.REM,function(t){return n.rem.push(t)}),t&n.MOD&&this.visit(n.MOD,function(t){return n.mod.push(t)})),n},Nr.changed=function(t){return this.changes&t},Nr.modified=function(t){var n=this,e=n.fields;return e&&n.changes&n.MOD?u(t)?t.some(function(t){return e[t]}):e[t]:0},Nr.filter=function(){i("MultiPulse does not support filtering.")},Nr.materialize=function(){i("MultiPulse does not support materialization.")},Nr.visit=function(t,n){var e=this,r=e.pulses,i=r.length,a=0;if(t&e.SOURCE)for(;a<i;++a)r[a].visit(t,n);else for(;a<i;++a)r[a].stamp===e.stamp&&r[a].visit(t,n);return e};var Rr={skip:!1,force:!1};function Pr(t){var n=[];return{size:()=>n.length,peek:()=>n[0],push:e=>(n.push(e),Lr(n,0,n.length-1,t)),pop:()=>{var e,r=n.pop();return n.length?(e=n[0],n[0]=r,function(t,n,e){var r,i=n,a=t.length,u=t[n],o=1+(n<<1);for(;o<a;)(r=o+1)<a&&e(t[o],t[r])>=0&&(o=r),t[n]=t[o],o=1+((n=o)<<1);t[n]=u,Lr(t,i,n,e)}(n,0,t)):e=r,e}}}function Lr(t,n,e,r){var i,a,u;for(i=t[e];e>n&&r(i,a=t[u=e-1>>1])<0;)t[e]=a,e=u;return t[e]=i}function qr(){this.logger(M()),this.logLevel(_),this._clock=0,this._rank=0;try{this._loader=wr()}catch(t){}this._touched=bt(h),this._pulses={},this._pulse=null,this._heap=Pr((t,n)=>t.qrank-n.qrank),this._postrun=[]}var Ur=qr.prototype;function jr(t){return function(){return this._log[t].apply(this,arguments)}}function $r(t,n){qt.call(this,t,null,n)}Ur.stamp=function(){return this._clock},Ur.loader=function(t){return arguments.length?(this._loader=t,this):this._loader},Ur.cleanThreshold=1e4,Ur.add=function(t,n,e,r){var i,a=1;return t instanceof qt?i=t:t&&t.prototype instanceof qt?i=new t:Y(t)?i=new qt(null,t):(a=0,i=new qt(t,n)),this.rank(i),a&&(r=e,e=n),e&&this.connect(i,i.parameters(e,r)),this.touch(i),i},Ur.connect=function(t,n){var e,r,i=t.rank;for(e=0,r=n.length;e<r;++e)if(i<n[e].rank)return void this.rerank(t)},Ur.rank=function(t){t.rank=++this._rank},Ur.rerank=function(t){for(var n,e,r,a=[t];a.length;)if(this.rank(n=a.pop()),e=n._targets)for(r=e.length;--r>=0;)a.push(n=e[r]),n===t&&i("Cycle detected in dataflow graph.")},Ur.pulse=function(t,n,e){this.touch(t,e||Rr);var r=new Dr(this,this._clock+(this._pulse?0:1)),i=t.pulse&&t.pulse.source||[];return r.target=t,this._pulses[t.id]=n.pulse(r,i),this},Ur.touch=function(t,n){var e=n||Rr;return this._pulse?this._enqueue(t):this._touched.add(t),e.skip&&t.skip(!0),this},Ur.update=function(t,n,e){var r=e||Rr;return(t.set(n)||r.force)&&this.touch(t,r),this},Ur.changeset=zt,Ur.ingest=function(t,n,e){return this.pulse(t,this.changeset().insert(Ar(n,e)))},Ur.parse=Ar,Ur.preload=async function(t,n,e){const r=this,i=r._pending||function(t){var n,e=new Promise(function(t){n=t});return e.requests=0,e.done=function(){0==--e.requests&&(t._pending=null,n(t))},t._pending=e}(r);i.requests+=1;const a=await r.request(n,e);return r.pulse(t,r.changeset().remove(m).insert(a.data||[])),i.done(),a},Ur.request=async function(t,n){const e=this;let r,i=0;try{r=await e.loader().load(t,{context:"dataflow",response:Sn(n&&n.type)});try{r=Ar(r,n)}catch(n){i=-2,e.warn("Data ingestion failed",t,n)}}catch(n){i=-1,e.warn("Loading failed",t,n)}return{data:r,status:i}},Ur.events=function(t,n,e,r){for(var i,a=this,u=Wt(e,r),o=function(t){t.dataflow=a;try{u.receive(t)}catch(t){a.error(t)}finally{a.run()}},s=0,l=(i="string"==typeof t&&"undefined"!=typeof document?document.querySelectorAll(t):W(t)).length;s<l;++s)i[s].addEventListener(n,o);return u},Ur.on=function(t,n,e,r,i){return(t instanceof qt?Er:kr)(this,t,n,e,r,i),this},Ur.evaluate=async function(t,n,e){const r=this,i=r.logLevel();if(r._pulse)return Tr(r);if(r._pending&&await r._pending,n&&await wt(r,n),!r._touched.length)return r.info("Dataflow invoked, but nothing to do."),r;let a,u,o,s,l=++r._clock,c=0;r._pulse=new Dr(r,l,t),i>=w&&(o=Date.now(),r.debug("-- START PROPAGATION ("+l+") -----")),r._touched.forEach(function(t){r._enqueue(t,!0)}),r._touched=bt(h);try{for(;r._heap.size()>0;)(a=r._heap.pop()).rank===a.qrank?((u=a.run(r._getPulse(a,t))).then&&(u=await u),i>=A&&r.debug(a.id,u===Cr?"STOP":u,a),u!==Cr&&(r._pulse=u,a._targets&&a._targets.forEach(t=>r._enqueue(t))),++c):r._enqueue(a,!0)}catch(t){s=t}if(r._pulses={},r._pulse=null,i>=w&&(o=Date.now()-o,r.info("> Pulse "+l+": "+c+" operators; "+o+"ms")),s&&(r._postrun=[],r.error(s)),r._postrun.length){const t=r._postrun.sort((t,n)=>n.priority-t.priority);r._postrun=[];for(let n=0;n<t.length;++n)await wt(r,t[n].callback)}return e&&await wt(r,e),r},Ur.run=function(t,n,e){return this._pulse?Tr(this):(this.evaluate(t,n,e),this)},Ur.runAsync=async function(t,n,e){for(;this._running;)await this._running;const r=()=>this._running=null;return(this._running=this.evaluate(t,n,e)).then(r,r),this._running},Ur.runAfter=function(t,n,e){if(this._pulse||n)this._postrun.push({priority:e||0,callback:t});else try{t(this)}catch(t){this.error(t)}},Ur._enqueue=function(t,n){var e=!this._pulses[t.id];e&&(this._pulses[t.id]=this._pulse),(e||n)&&(t.qrank=t.rank,this._heap.push(t))},Ur._getPulse=function(t,n){var e,r=t.source,i=this._clock;return r&&u(r)?new zr(this,i,e=r.map(function(t){return t.pulse}),n):(e=this._pulses[t.id],r&&((r=r.pulse)&&r!==Cr?r.stamp===i&&e.target!==t?e=r:e.source=r.source:e.source=[]),e)},Ur.logger=function(t){return arguments.length?(this._log=t,this):this._log},Ur.error=jr("error"),Ur.warn=jr("warn"),Ur.info=jr("info"),Ur.debug=jr("debug"),Ur.logLevel=jr("level");var Ir=et($r,qt);Ir.run=function(t){return t.stamp<=this.stamp?t.StopPropagation:(this.skip()?this.skip(!1):n=this.evaluate(t),n=n||t,this.stamp=t.stamp,n.then?n=n.then(t=>this.pulse=t):n!==t.StopPropagation&&(this.pulse=n),n);var n},Ir.evaluate=function(t){var n=this.marshall(t.stamp),e=this.transform(n,t);return n.clear(),e},Ir.transform=function(){};var Wr={};function Hr(t){var n=Yr(t);return n&&n.Definition||null}function Yr(t){return t=t&&t.toLowerCase(),Wr.hasOwnProperty(t)?Wr[t]:null}function Gr(t){return t&&t.length?1===t.length?t[0]:(n=t,function(t){for(var e=n.length,r=1,i=String(n[0](t));r<e;++r)i+="|"+n[r](t);return i}):function(){return""};var n}function Vr(t,n,e){return e||t+(n?"_"+n:"")}var Xr={values:Qr({name:"values",init:"cell.store = true;",set:"cell.data.values()",idx:-1}),count:Qr({name:"count",set:"cell.num"}),__count__:Qr({name:"count",set:"this.missing + this.valid"}),missing:Qr({name:"missing",set:"this.missing"}),valid:Qr({name:"valid",set:"this.valid"}),sum:Qr({name:"sum",init:"this.sum = 0;",add:"this.sum += +v;",rem:"this.sum -= v;",set:"this.sum"}),mean:Qr({name:"mean",init:"this.mean = 0;",add:"var d = v - this.mean; this.mean += d / this.valid;",rem:"var d = v - this.mean; this.mean -= this.valid ? d / this.valid : this.mean;",set:"this.valid ? this.mean : undefined"}),average:Qr({name:"average",set:"this.valid ? this.mean : undefined",req:["mean"],idx:1}),variance:Qr({name:"variance",init:"this.dev = 0;",add:"this.dev += d * (v - this.mean);",rem:"this.dev -= d * (v - this.mean);",set:"this.valid > 1 ? this.dev / (this.valid-1) : undefined",req:["mean"],idx:1}),variancep:Qr({name:"variancep",set:"this.valid > 1 ? this.dev / this.valid : undefined",req:["variance"],idx:2}),stdev:Qr({name:"stdev",set:"this.valid > 1 ? Math.sqrt(this.dev / (this.valid-1)) : undefined",req:["variance"],idx:2}),stdevp:Qr({name:"stdevp",set:"this.valid > 1 ? Math.sqrt(this.dev / this.valid) : undefined",req:["variance"],idx:2}),stderr:Qr({name:"stderr",set:"this.valid > 1 ? Math.sqrt(this.dev / (this.valid * (this.valid-1))) : undefined",req:["variance"],idx:2}),distinct:Qr({name:"distinct",set:"cell.data.distinct(this.get)",req:["values"],idx:3}),ci0:Qr({name:"ci0",set:"cell.data.ci0(this.get)",req:["values"],idx:3}),ci1:Qr({name:"ci1",set:"cell.data.ci1(this.get)",req:["values"],idx:3}),median:Qr({name:"median",set:"cell.data.q2(this.get)",req:["values"],idx:3}),q1:Qr({name:"q1",set:"cell.data.q1(this.get)",req:["values"],idx:3}),q3:Qr({name:"q3",set:"cell.data.q3(this.get)",req:["values"],idx:3}),argmin:Qr({name:"argmin",init:"this.argmin = undefined;",add:"if (v < this.min) this.argmin = t;",rem:"if (v <= this.min) this.argmin = undefined;",set:"this.argmin || cell.data.argmin(this.get)",req:["min"],str:["values"],idx:3}),argmax:Qr({name:"argmax",init:"this.argmax = undefined;",add:"if (v > this.max) this.argmax = t;",rem:"if (v >= this.max) this.argmax = undefined;",set:"this.argmax || cell.data.argmax(this.get)",req:["max"],str:["values"],idx:3}),min:Qr({name:"min",init:"this.min = undefined;",add:"if (v < this.min || this.min === undefined) this.min = v;",rem:"if (v <= this.min) this.min = NaN;",set:"this.min = (isNaN(this.min) ? cell.data.min(this.get) : this.min)",str:["values"],idx:4}),max:Qr({name:"max",init:"this.max = undefined;",add:"if (v > this.max || this.max === undefined) this.max = v;",rem:"if (v >= this.max) this.max = NaN;",set:"this.max = (isNaN(this.max) ? cell.data.max(this.get) : this.max)",str:["values"],idx:4})},Zr=Object.keys(Xr);function Jr(t,n){return Xr[t](n)}function Qr(t){return function(n){var e=Z({init:"",add:"",rem:"",idx:0},t);return e.out=n||t.name,e}}function Kr(t,n){return t.idx-n.idx}function ti(t,n){var e=n||d,r=function(t,n){var e,r=t.reduce(function t(e,r){function i(n){e[n]||t(e,e[n]=Xr[n]())}return r.req&&r.req.forEach(i),n&&r.str&&r.str.forEach(i),e},t.reduce(function(t,n){return t[n.name]=n,t},{})),i=[];for(e in r)i.push(r[e]);return i.sort(Kr)}(t,!0),i="var cell = this.cell; this.valid = 0; this.missing = 0;",a="this.cell = cell; this.init();",u="if(v==null){++this.missing; return;} if(v!==v) return; ++this.valid;",o="if(v==null){--this.missing; return;} if(v!==v) return; --this.valid;",s="var cell = this.cell;";return r.forEach(function(t){i+=t.init,u+=t.add,o+=t.rem}),t.slice().sort(Kr).forEach(function(t){s+="t['"+t.out+"']="+t.set+";"}),s+="return t;",(a=Function("cell",a)).prototype.init=Function(i),a.prototype.add=Function("v","t",u),a.prototype.rem=Function("v","t",o),a.prototype.set=Function("t",s),a.prototype.get=e,a.fields=t.map(function(t){return t.out}),a}function ni(t){var n,e,r,i,a,u,o,s,l=t.maxbins||20,c=t.base||10,f=Math.log(c),h=t.divide||[5,2],d=t.extent[0],p=t.extent[1],g=p-d||Math.abs(d)||1;if(t.step)n=t.step;else if(t.steps){for(a=g/l,u=0,o=t.steps.length;u<o&&t.steps[u]<a;++u);n=t.steps[Math.max(0,u-1)]}else{for(e=Math.ceil(Math.log(l)/f),r=t.minstep||0,n=Math.max(r,Math.pow(c,Math.round(Math.log(g)/f)-e));Math.ceil(g/n)>l;)n*=c;for(u=0,o=h.length;u<o;++u)(a=n/h[u])>=r&&g/a<=l&&(n=a)}return i=(a=Math.log(n))>=0?0:1+~~(-a/f),s=Math.pow(c,-i-1),(t.nice||void 0===t.nice)&&(d=d<(a=Math.floor(d/n+s)*n)?a-n:a,p=Math.ceil(p/n)*n),{start:d,stop:p===d?d+n:p,step:n}}function*ei(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}function ri(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function ii(t){var n;return 1===t.length&&(n=t,t=function(t,e){return ri(n(t),e)}),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var a=r+i>>>1;t(n[a],e)<0?r=a+1:i=a}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var a=r+i>>>1;t(n[a],e)>0?i=a:r=a+1}return r}}}t.random=Math.random;var ai=ii(ri),ui=ai.right,oi=ai.left;function si(t,n){let e,r;if(void 0===n)for(let n of t)null!=n&&n>=n&&(void 0===e?e=r=n:(e>n&&(e=n),r<n&&(r=n)));else{let i=-1;for(let a of t)null!=(a=n(a,++i,t))&&a>=a&&(void 0===e?e=r=a:(e>a&&(e=a),r<a&&(r=a)))}return[e,r]}function li(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),a=new Array(i);++r<i;)a[r]=t+r*e;return a}var ci=Math.sqrt(50),fi=Math.sqrt(10),hi=Math.sqrt(2);function di(t,n,e){var r,i,a,u,o=-1;if(e=+e,(t=+t)===(n=+n)&&e>0)return[t];if((r=n<t)&&(i=t,t=n,n=i),0===(u=pi(t,n,e))||!isFinite(u))return[];if(u>0)for(t=Math.ceil(t/u),n=Math.floor(n/u),a=new Array(i=Math.ceil(n-t+1));++o<i;)a[o]=(t+o)*u;else for(t=Math.floor(t*u),n=Math.ceil(n*u),a=new Array(i=Math.ceil(t-n+1));++o<i;)a[o]=(t-o)/u;return r&&a.reverse(),a}function pi(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),a=r/Math.pow(10,i);return i>=0?(a>=ci?10:a>=fi?5:a>=hi?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=ci?10:a>=fi?5:a>=hi?2:1)}function gi(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=ci?i*=10:a>=fi?i*=5:a>=hi&&(i*=2),n<t?-i:i}function mi(t,n,e=function(t){return null===t?NaN:+t}){if(r=t.length){if((n=+n)<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,a=Math.floor(i),u=+e(t[a],a,t);return u+(+e(t[a+1],a+1,t)-u)*(i-a)}}function vi(t,n,e=0,r=t.length-1,i=ri){for(;r>e;){if(r-e>600){const a=r-e+1,u=n-e+1,o=Math.log(a),s=.5*Math.exp(2*o/3),l=.5*Math.sqrt(o*s*(a-s)/a)*(u-a/2<0?-1:1);vi(t,n,Math.max(e,Math.floor(n-u*s/a+l)),Math.min(r,Math.floor(n+(a-u)*s/a+l)),i)}const a=t[n];let u=e,o=r;for(yi(t,e,n),i(t[r],a)>0&&yi(t,e,r);u<o;){for(yi(t,u,o),++u,--o;i(t[u],a)<0;)++u;for(;i(t[o],a)>0;)--o}0===i(t[e],a)?yi(t,e,o):yi(t,++o,r),o<=n&&(e=o+1),n<=o&&(r=o-1)}return t}function yi(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function xi(t,n){if(!(t=Float64Array.from(function*(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}(t,n))).length)return;const e=t.length,r=e>>1;return vi(t,r-1,0),0==(1&e)&&vi(t,r,r),mi(t,.5)}function _i(n,e,r,i){if(!n.length)return[void 0,void 0];var a,u,o,s,l=Float64Array.from(ei(n,i)),c=l.length,f=e;for(o=0,s=Array(f);o<f;++o){for(a=0,u=0;u<c;++u)a+=l[~~(t.random()*c)];s[o]=a/c}return[mi(s.sort(ri),r/2),mi(s,1-r/2)]}function bi(t,n){var e=Float64Array.from(ei(t,n));return[mi(e.sort(ri),.25),mi(e,.5),mi(e,.75)]}function wi(n,e){var r,i,a=NaN,u={mean:function(t){return arguments.length?(r=t||0,a=NaN,u):r},stdev:function(t){return arguments.length?(i=null==t?1:t,a=NaN,u):i},sample:function(){var n,e,u=0,o=0;if(a==a)return u=a,a=NaN,u;do{n=(u=2*t.random()-1)*u+(o=2*t.random()-1)*o}while(0===n||n>1);return e=Math.sqrt(-2*Math.log(n)/n),a=r+o*e*i,r+u*e*i},pdf:function(t){var n=Math.exp(Math.pow(t-r,2)/(-2*Math.pow(i,2)));return 1/(i*Math.sqrt(2*Math.PI))*n},cdf:function(t){var n,e=(t-r)/i,a=Math.abs(e);if(a>37)n=0;else{var u=Math.exp(-a*a/2);a<7.07106781186547?(n=u*((((((.0352624965998911*a+.700383064443688)*a+6.37396220353165)*a+33.912866078383)*a+112.079291497871)*a+221.213596169931)*a+220.206867912376),n/=((((((.0883883476483184*a+1.75566716318264)*a+16.064177579207)*a+86.7807322029461)*a+296.564248779674)*a+637.333633378831)*a+793.826512519948)*a+440.413735824752):n=u/(a+1/(a+2/(a+3/(a+4/(a+.65)))))/2.506628274631}return e>0?1-n:n},icdf:function(t){if(t<=0||t>=1)return NaN;var n=2*t-1,e=8*(Math.PI-3)/(3*Math.PI*(4-Math.PI)),a=2/(Math.PI*e)+Math.log(1-Math.pow(n,2))/2,u=Math.log(1-n*n)/e,o=(n>0?1:-1)*Math.sqrt(Math.sqrt(a*a-u)-a);return r+i*Math.SQRT2*o}};return u.mean(n).stdev(e)}function Ai(n,e){var r=wi(),i={},a=0;return i.data=function(t){return arguments.length?(n=t,a=t?t.length:0,i.bandwidth(e)):n},i.bandwidth=function(t){return arguments.length?(!(e=t)&&n&&(a=(r=n).length,u=bi(r),o=(u[2]-u[0])/1.34,e=1.06*Math.min(Math.sqrt(function(t,n){let e,r=0,i=0,a=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(a+=(e=n-i)*(n-(i+=e/++r)));else{let u=-1;for(let o of t)null!=(o=n(o,++u,t))&&(o=+o)>=o&&(a+=(e=o-i)*(o-(i+=e/++r)))}if(r>1)return a/(r-1)}(r)),o)*Math.pow(a,-.2)),i):e;var r,a,u,o},i.sample=function(){return n[~~(t.random()*a)]+e*r.sample()},i.pdf=function(t){for(var i=0,u=0;u<a;++u)i+=r.pdf((t-n[u])/e);return i/e/a},i.cdf=function(t){for(var i=0,u=0;u<a;++u)i+=r.cdf((t-n[u])/e);return i/a},i.icdf=function(){throw Error("KDE icdf not supported.")},i.data(n)}function Mi(n,e){var r,i={},a=0;return i.weights=function(t){return arguments.length?(r=function(t){var n,e=[],r=0;for(n=0;n<a;++n)r+=e[n]=null==t[n]?1:+t[n];for(n=0;n<a;++n)e[n]/=r;return e}(e=t||[]),i):e},i.distributions=function(t){return arguments.length?(t?(a=t.length,n=t):(a=0,n=[]),i.weights(e)):n},i.sample=function(){for(var e=t.random(),i=n[a-1],u=r[0],o=0;o<a-1;u+=r[++o])if(e<u){i=n[o];break}return i.sample()},i.pdf=function(t){for(var e=0,i=0;i<a;++i)e+=r[i]*n[i].pdf(t);return e},i.cdf=function(t){for(var e=0,i=0;i<a;++i)e+=r[i]*n[i].cdf(t);return e},i.icdf=function(){throw Error("Mixture icdf not supported.")},i.distributions(n).weights(e)}function ki(n,e){null==e&&(e=null==n?1:n,n=0);var r,i,a,u={};return u.min=function(t){return arguments.length?(a=i-(r=t||0),u):r},u.max=function(t){return arguments.length?(a=(i=t||0)-r,u):i},u.sample=function(){return r+a*t.random()},u.pdf=function(t){return t>=r&&t<=i?1/a:0},u.cdf=function(t){return t<r?0:t>i?1:(t-r)/a},u.icdf=function(t){return t>=0&&t<=1?r+t*a:NaN},u.min(n).max(e)}function Ei(t,n,e,r){const i=r-t*t,a=Math.abs(i)<1e-24?0:(e-t*n)/i;return[n-a*t,a]}function Ci(t,n,e,r){t=t.filter(t=>{let r=n(t),i=e(t);return null!=r&&(r=+r)>=r&&null!=i&&(i=+i)>=i}),r&&t.sort((t,e)=>n(t)-n(e));const i=new Float64Array(t.length),a=new Float64Array(t.length);let u=0;for(let r of t)i[u]=n(r),a[u]=e(r),++u;return[i,a]}function Di(t,n,e,r){let i,a,u=-1,o=-1;for(let s of t)i=n(s,++u,t),a=e(s,u,t),null!=i&&(i=+i)>=i&&null!=a&&(a=+a)>=a&&r(i,a,++o)}function Fi(t,n,e,r,i){let a=0,u=0;return Di(t,n,e,(t,n)=>{const e=n-i(t),o=n-r;a+=e*e,u+=o*o}),1-a/u}function Si(t,n,e){let r=0,i=0,a=0,u=0,o=0;Di(t,n,e,(t,n)=>{r+=t,i+=n,a+=t*n,u+=t*t,++o});const s=Ei(r/o,i/o,a/o,u/o),l=t=>s[0]+s[1]*t;return{coef:s,predict:l,rSquared:Fi(t,n,e,i/o,l)}}function Bi(t,n,e){let r=0,i=0,a=0,u=0,o=0;Di(t,n,e,(t,n)=>{t=Math.log(t),r+=t,i+=n,a+=t*n,u+=t*t,++o});const s=Ei(r/o,i/o,a/o,u/o),l=t=>s[0]+s[1]*Math.log(t);return{coef:s,predict:l,rSquared:Fi(t,n,e,i/o,l)}}function Oi(t,n,e){let r=0,i=0,a=0,u=0,o=0,s=0;Di(t,n,e,(t,n)=>{const e=Math.log(n),l=t*n;r+=n,a+=l,o+=t*l,i+=n*e,u+=l*e,++s});const l=Ei(a/r,i/r,u/r,o/r),c=t=>l[0]*Math.exp(l[1]*t);return l[0]=Math.exp(l[0]),{coef:l,predict:c,rSquared:Fi(t,n,e,r/s,c)}}function zi(t,n,e){let r=0,i=0,a=0,u=0,o=0,s=0;Di(t,n,e,(t,n)=>{const e=Math.log(t),l=Math.log(n);r+=e,i+=l,a+=e*l,u+=e*e,o+=n,++s});const l=Ei(r/s,i/s,a/s,u/s),c=t=>l[0]*Math.pow(t,l[1]);return l[0]=Math.exp(l[0]),{coef:l,predict:c,rSquared:Fi(t,n,e,o/s,c)}}function Ni(t,n,e){let r=0,i=0,a=0,u=0,o=0,s=0,l=0,c=0;Di(t,n,e,(t,n)=>{const e=t*t;r+=t,i+=n,a+=e,u+=e*t,o+=e*e,s+=t*n,l+=e*n,++c});const f=a-r*r/c,h=u-a*r/c,d=o-a*a/c,p=f*d-h*h,g=((l-=a*(i/=c))*f-(s-=r*i)*h)/p,m=(s*d-l*h)/p,v=i-m*(r/c)-g*(a/c),y=t=>g*t*t+m*t+v;return{coef:[v,m,g],predict:y,rSquared:Fi(t,n,e,i,y)}}function Ti(t,n,e,r){if(1===r)return Si(t,n,e);if(2===r)return Ni(t,n,e);const[i,a]=Ci(t,n,e),u=i.length,o=[],s=[],l=r+1;let c,f,h,d,p,g=0;for(c=0;c<u;++c)g+=a[c];for(c=0;c<l;++c){for(h=0,d=0;h<u;++h)d+=Math.pow(i[h],c)*a[h];for(o.push(d),p=new Float64Array(l),f=0;f<l;++f){for(h=0,d=0;h<u;++h)d+=Math.pow(i[h],c+f);p[f]=d}s.push(p)}s.push(o);const m=function(t){const n=t.length-1,e=[];let r,i,a,u,o;for(r=0;r<n;++r){for(u=r,i=r+1;i<n;++i)Math.abs(t[r][i])>Math.abs(t[r][u])&&(u=i);for(a=r;a<n+1;++a)o=t[a][r],t[a][r]=t[a][u],t[a][u]=o;for(i=r+1;i<n;++i)for(a=n;a>=r;a--)t[a][i]-=t[a][r]*t[r][i]/t[r][r]}for(i=n-1;i>=0;--i){for(o=0,a=i+1;a<n;++a)o+=t[a][i]*e[a];e[i]=(t[n][i]-o)/t[i][i]}return e}(s),v=t=>{let n=0,e=0,r=m.length;for(;e<r;++e)n+=m[e]*Math.pow(t,e);return n};return{coef:m,predict:v,rSquared:Fi(t,n,e,g/u,v)}}const Ri=2,Pi=1e-12;function Li(t,n,e,r){const[i,a]=Ci(t,n,e,!0),u=i.length,o=Math.max(2,~~(r*u)),s=new Float64Array(u),l=new Float64Array(u),c=new Float64Array(u).fill(1);for(let t=-1;++t<=Ri;){const n=[0,o-1];for(let t=0;t<u;++t){const e=i[t],r=n[0],u=n[1],o=e-i[r]>i[u]-e?r:u;let f=0,h=0,d=0,p=0,g=0,m=1/Math.abs(i[o]-e||1);for(let t=r;t<=u;++t){const n=i[t],r=a[t],u=qi(Math.abs(e-n)*m)*c[t],o=n*u;f+=u,h+=o,d+=r*u,p+=r*o,g+=n*o}const[v,y]=Ei(h/f,d/f,p/f,g/f);s[t]=v+y*e,l[t]=Math.abs(a[t]-s[t]),Ui(i,t+1,n)}if(t===Ri)break;const e=xi(l);if(Math.abs(e)<Pi)break;for(let t,n,r=0;r<u;++r)t=l[r]/(6*e),c[r]=t>=1?Pi:(n=1-t*t)*n}return function(t,n){const e=t.length,r=[];for(let i,a=0,u=0,o=[];a<e;++a)i=t[a],o[0]===i?o[1]+=(n[a]-o[1])/++u:(u=0,o=[i,n[a]],r.push(o));return r}(i,s)}function qi(t){return(t=1-t*t*t)*t*t}function Ui(t,n,e){let r=t[n],i=e[0],a=e[1]+1;if(!(a>=t.length))for(;n>i&&t[a]-r<=r-t[i];)e[0]=++i,e[1]=a,++a}const ji=.1*Math.PI/180;function $i(t,n,e,r){e=e||25,r=Math.max(e,r||200);const i=n=>[n,t(n)],a=n[0],u=n[1],o=u-a,s=o/r,l=[i(a)],c=[];if(e===r){for(let t=1;t<r;++t)l.push(i(a+t/e*o));return l.push(i(u)),l}c.push(i(u));for(let t=e;--t>0;)c.push(i(a+t/e*o));let f=l[0],h=c[c.length-1];for(;h;){const t=i((f[0]+h[0])/2);t[0]-f[0]>=s&&Ii(f,t,h)>ji?c.push(t):(f=h,l.push(h),c.pop()),h=c[c.length-1]}return l}function Ii(t,n,e){const r=Math.atan2(e[1]-t[1],e[0]-t[0]),i=Math.atan2(n[1]-t[1],n[0]-t[0]);return Math.abs(r-i)}function Wi(t){this._key=t?c(t):Et,this.reset()}var Hi=Wi.prototype;function Yi(t){$r.call(this,null,t),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(t){this._add.push(t)},Hi.rem=function(t){this._rem.push(t)},Hi.values=function(){if(this._get=null,0===this._rem.length)return this._add;var t,n,e,r=this._add,i=this._rem,a=this._key,u=r.length,o=i.length,s=Array(u-o),l={};for(t=0;t<o;++t)l[a(i[t])]=1;for(t=0,n=0;t<u;++t)l[a(e=r[t])]?l[a(e)]=0:s[n++]=e;return this._rem=[],this._add=s},Hi.distinct=function(t){for(var n,e=this.values(),r=e.length,i={},a=0;--r>=0;)n=t(e[r])+"",i.hasOwnProperty(n)||(i[n]=1,++a);return a},Hi.extent=function(t){if(this._get!==t||!this._ext){var n=this.values(),e=Q(n,t);this._ext=[n[e[0]],n[e[1]]],this._get=t}return this._ext},Hi.argmin=function(t){return this.extent(t)[0]||{}},Hi.argmax=function(t){return this.extent(t)[1]||{}},Hi.min=function(t){var n=this.extent(t)[0];return null!=n?t(n):void 0},Hi.max=function(t){var n=this.extent(t)[1];return null!=n?t(n):void 0},Hi.quartile=function(t){return this._get===t&&this._q||(this._q=bi(this.values(),t),this._get=t),this._q},Hi.q1=function(t){return this.quartile(t)[0]},Hi.q2=function(t){return this.quartile(t)[1]},Hi.q3=function(t){return this.quartile(t)[2]},Hi.ci=function(t){return this._get===t&&this._ci||(this._ci=_i(this.values(),1e3,.05,t),this._get=t),this._ci},Hi.ci0=function(t){return this.ci(t)[0]},Hi.ci1=function(t){return this.ci(t)[1]},Yi.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Zr},{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"}]};var Gi=et(Yi,$r);Gi.transform=function(t,n){var e,r=this,i=n.fork(n.NO_SOURCE|n.NO_FIELDS);return this.stamp=i.stamp,this.value&&((e=t.modified())||n.modified(this._inputs))?(this._prev=this.value,this.value=e?this.init(t):{},n.visit(n.SOURCE,function(t){r.add(t)})):(this.value=this.value||this.init(t),n.visit(n.REM,function(t){r.rem(t)}),n.visit(n.ADD,function(t){r.add(t)})),i.modifies(this._outputs),r._drop=!1!==t.drop,t.cross&&r._dims.length>1&&(r._drop=!1,this.cross()),r.changes(i)},Gi.cross=function(){var t=this,n=t.value,e=t._dnames,r=e.map(function(){return{}}),i=e.length;function a(t){var n,a,u,o;for(n in t)for(u=t[n].tuple,a=0;a<i;++a)r[a][o=u[e[a]]]=o}a(t._prev),a(n),function a(u,o,s){var l,c,f=e[s],h=r[s++];for(l in h)o[f]=h[l],c=u?u+"|"+l:l,s<i?a(c,o,s):n[c]||t.cell(c,o)}("",{},0)},Gi.init=function(t){var n=this._inputs=[],a=this._outputs=[],u={};function o(t){for(var e,i=W(r(t)),a=0,o=i.length;a<o;++a)u[e=i[a]]||(u[e]=1,n.push(e))}this._dims=W(t.groupby),this._dnames=this._dims.map(function(t){var n=e(t);return o(t),a.push(n),n}),this.cellkey=t.key?t.key:Gr(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];var s,l,c,f,h,d,p=t.fields||[null],g=t.ops||["count"],m=t.as||[],v=p.length,y={};for(v!==g.length&&i("Unmatched number of fields and aggregate ops."),d=0;d<v;++d)s=p[d],l=g[d],null==s&&"count"!==l&&i("Null aggregate field specified."),h=Vr(l,f=e(s),m[d]),a.push(h),"count"!==l?((c=y[f])||(o(s),(c=y[f]=[]).field=s,this._measures.push(c)),"count"!==l&&(this._countOnly=!1),c.push(Jr(l,h))):this._counts.push(h);return this._measures=this._measures.map(function(t){return ti(t,t.field)}),{}},Gi.cellkey=Gr(),Gi.cell=function(t,n){var e=this.value[t];return e?0===e.num&&this._drop&&e.stamp<this.stamp?(e.stamp=this.stamp,this._adds[this._alen++]=e):e.stamp<this.stamp&&(e.stamp=this.stamp,this._mods[this._mlen++]=e):(e=this.value[t]=this.newcell(t,n),this._adds[this._alen++]=e),e},Gi.newcell=function(t,n){var e={key:t,num:0,agg:null,tuple:this.newtuple(n,this._prev&&this._prev[t]),stamp:this.stamp,store:!1};if(!this._countOnly){var r,i=this._measures,a=i.length;for(e.agg=Array(a),r=0;r<a;++r)e.agg[r]=new i[r](e)}return e.store&&(e.data=new Wi),e},Gi.newtuple=function(t,n){var e,r,i=this._dnames,a=this._dims,u={};for(e=0,r=a.length;e<r;++e)u[i[e]]=a[e](t);return n?Bt(n.tuple,u):Dt(u)},Gi.add=function(t){var n,e,r,i=this.cellkey(t),a=this.cell(i,t);if(a.num+=1,!this._countOnly)for(a.store&&a.data.add(t),e=0,r=(n=a.agg).length;e<r;++e)n[e].add(n[e].get(t),t)},Gi.rem=function(t){var n,e,r,i=this.cellkey(t),a=this.cell(i,t);if(a.num-=1,!this._countOnly)for(a.store&&a.data.rem(t),e=0,r=(n=a.agg).length;e<r;++e)n[e].rem(n[e].get(t),t)},Gi.celltuple=function(t){var n,e,r,i=t.tuple,a=this._counts;for(t.store&&t.data.values(),e=0,r=a.length;e<r;++e)i[a[e]]=t.num;if(!this._countOnly)for(e=0,r=(n=t.agg).length;e<r;++e)n[e].set(i);return i},Gi.changes=function(t){var n,e,r,i,a=this._adds,u=this._mods,o=this._prev,s=this._drop,l=t.add,c=t.rem,f=t.mod;if(o)for(e in o)n=o[e],s&&!n.num||c.push(n.tuple);for(r=0,i=this._alen;r<i;++r)l.push(this.celltuple(a[r])),a[r]=null;for(r=0,i=this._mlen;r<i;++r)(0===(n=u[r]).num&&s?c:f).push(this.celltuple(n)),u[r]=null;return this._alen=this._mlen=0,this._prev=null,t};function Vi(t){$r.call(this,null,t)}Vi.Definition={type:"Bin",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!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:"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"]}]};var Xi=et(Vi,$r);function Zi(t,n,e){var r=t,i=n||[],a=e||[],u={},o=0;return{add:function(t){a.push(t)},remove:function(t){u[r(t)]=++o},size:function(){return i.length},data:function(t,n){return o&&(i=i.filter(function(t){return!u[r(t)]}),u={},o=0),n&&t&&i.sort(t),a.length&&(i=t?ct(t,i,a.sort(t)):i.concat(a),a=[]),i}}}function Ji(t){$r.call(this,[],t)}function Qi(t){qt.call(this,null,Ki,t)}function Ki(t){return this.value&&!t.modified()?this.value:G(t.fields,t.orders)}function ta(t){$r.call(this,null,t)}Xi.transform=function(t,n){var e,i=this._bins(t),a=i.start,u=i.step,o=t.as||["bin0","bin1"],s=o[0],l=o[1];return e=t.modified()?(n=n.reflow(!0)).SOURCE:n.modified(r(t.field))?n.ADD_MOD:n.ADD,n.visit(e,function(t){var n=i(t);t[s]=n,t[l]=null==n?null:a+u*(1+(n-a)/u)}),n.modifies(o)},Xi._bins=function(t){if(this.value&&!t.modified())return this.value;var i,a,u=t.field,o=ni(t),s=o.start,l=o.stop,c=o.step;null!=(i=t.anchor)&&(a=i-(s+c*Math.floor((i-s)/c)),s+=a,l+=a);var f=function(t){var n=u(t);return null==n?null:(n=Math.max(s,Math.min(+n,l-c)),s+c*Math.floor(1e-14+(n-s)/c))};return f.start=s,f.stop=l,f.step=c,this.value=n(f,r(u),t.name||"bin_"+e(u))},Ji.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},et(Ji,$r).transform=function(t,n){var e=n.fork(n.ALL),r=Zi(Et,this.value,e.materialize(e.ADD).add),i=t.sort,a=n.changed()||i&&(t.modified("sort")||n.modified(i.fields));return e.visit(e.REM,r.remove),this.modified(a),this.value=e.source=r.data(i,a),n.source&&n.source.root&&(this.value.root=n.source.root),e},et(Qi,qt),ta.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"]}]};var na=et(ta,$r);function ea(t){$r.call(this,null,t)}na.transform=function(t,n){function e(n){return function(e){for(var r,i=function(t,n,e){switch(n){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase()}return t.match(e)}(o(e),t.case,a)||[],s=0,l=i.length;s<l;++s)u.test(r=i[s])||n(r)}}var r=this._parameterCheck(t,n),i=this._counts,a=this._match,u=this._stop,o=t.field,s=t.as||["text","count"],l=e(function(t){i[t]=1+(i[t]||0)}),c=e(function(t){i[t]-=1});return r?n.visit(n.SOURCE,l):(n.visit(n.ADD,l),n.visit(n.REM,c)),this._finish(n,s)},na._parameterCheck=function(t,n){var e=!1;return!t.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(t.stopwords||"")+"$","i"),e=!0),!t.modified("pattern")&&this._match||(this._match=new RegExp(t.pattern||"[\\w']+","g"),e=!0),(t.modified("field")||n.modified(t.field.fields))&&(e=!0),e&&(this._counts={}),e},na._finish=function(t,n){var e,r,i,a=this._counts,u=this._tuples||(this._tuples={}),o=n[0],s=n[1],l=t.fork(t.NO_SOURCE|t.NO_FIELDS);for(e in a)r=u[e],i=a[e]||0,!r&&i?(u[e]=r=Dt({}),r[o]=e,r[s]=i,l.add.push(r)):0===i?(r&&l.rem.push(r),a[e]=null,u[e]=null):r[s]!==i&&(r[s]=i,l.mod.push(r));return l.modifies(n)},ea.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},et(ea,$r).transform=function(t,n){var e=n.fork(n.NO_SOURCE),r=this.value,i=t.as||["a","b"],a=i[0],u=i[1];return!r||n.changed(n.ADD_REM)||t.modified("as")||t.modified("filter")?(r&&(e.rem=r),r=n.materialize(n.SOURCE).source,e.add=this.value=function(t,n,e,r){for(var i,a,u=[],o={},s=t.length,l=0;l<s;++l)for(o[n]=a=t[l],i=0;i<s;++i)o[e]=t[i],r(o)&&(u.push(Dt(o)),(o={})[n]=a);return u}(r,a,u,t.filter||m)):e.mod=r,e.source=this.value,e.modifies(i)};var ra={kde:Ai,mixture:Mi,normal:wi,uniform:ki},ia="distributions",aa="function",ua="field";function oa(t){$r.call(this,null,t)}var sa=[{key:{function:"normal"},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}]}],la={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:sa},{name:"weights",type:"number",array:!0}]};function ca(t){qt.call(this,null,fa,t),this.modified(!0)}function fa(t){var i=t.expr;return this.value&&!t.modified("expr")?this.value:n(n=>i(n,t),r(i),e(i))}function ha(t){$r.call(this,[void 0,void 0],t)}function da(t,n){qt.call(this,t),this.parent=n}oa.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:sa.concat(la)},{name:"as",type:"string",array:!0,default:["value","density"]}]},et(oa,$r).transform=function(t,n){var e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){var r=function t(n,e){var r=n[aa];ra.hasOwnProperty(r)||i("Unknown distribution function: "+r);var a=ra[r]();for(var u in n)u===ua?a.data((n.from||e()).map(n[u])):u===ia?a[u](n[u].map(function(n){return t(n,e)})):typeof a[u]===aa&&a[u](n[u]);return a}(t.distribution,function(t){return function(){return t.materialize(t.SOURCE).source}}(n)),a=t.steps||t.minsteps||25,u=t.steps||t.maxsteps||200,o=t.method||"pdf";"pdf"!==o&&"cdf"!==o&&i("Invalid density method: "+o),t.extent||r.data||i("Missing density extent parameter."),o=r[o];var s=t.as||["value","density"],l=$i(o,t.extent||J(r.data()),a,u).map(t=>{var n={};return n[s[0]]=t[0],n[s[1]]=t[1],Dt(n)});this.value&&(e.rem=this.value),this.value=e.add=e.source=l}return e},et(ca,qt),ha.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},et(ha,$r).transform=function(t,n){var e,r=this.value,i=t.field,a=r[0],u=r[1];((e=n.changed()||n.modified(i.fields)||t.modified("field"))||null==a)&&(a=1/0,u=-1/0),n.visit(e?n.SOURCE:n.ADD,function(t){var n=i(t);null!=n&&((n=+n)<a&&(a=n),n>u&&(u=n))}),isFinite(a)&&isFinite(u)||(a=u=void 0),this.value=[a,u]};var pa=et(da,qt);function ga(t){$r.call(this,{},t),this._keys=tt();var n=this._targets=[];n.active=0,n.forEach=function(t){for(var e=0,r=n.active;e<r;++e)t(n[e],e,n)}}pa.connect=function(t){return this.targets().add(t),t.source=this},pa.add=function(t){this.value.add.push(t)},pa.rem=function(t){this.value.rem.push(t)},pa.mod=function(t){this.value.mod.push(t)},pa.init=function(t){this.value.init(t,t.NO_SOURCE)},pa.evaluate=function(){return this.value};var ma=et(ga,$r);function va(t){qt.call(this,null,ya,t)}function ya(t){return this.value&&!t.modified()?this.value:u(t.name)?W(t.name).map(function(t){return c(t)}):c(t.name,t.as)}function xa(t){$r.call(this,tt(),t)}function _a(t,n){return t?t.map(function(t,r){return n[r]||e(t)}):null}function ba(t){$r.call(this,[],t)}function wa(t){$r.call(this,[],t)}function Aa(t){$r.call(this,null,t)}function Ma(t){$r.call(this,[],t)}ma.activate=function(t){this._targets[this._targets.active++]=t},ma.subflow=function(t,n,e,r){var i,a,u=this.value,o=u.hasOwnProperty(t)&&u[t];return o?o.value.stamp<e.stamp&&(o.init(e),this.activate(o)):(a=r||(a=this._group[t])&&a.tuple,o=(i=e.dataflow).add(new da(e.fork(e.NO_SOURCE),this)).connect(n(i,t,a)),u[t]=o,this.activate(o)),o},ma.transform=function(t,n){var e=n.dataflow,r=this,i=t.key,a=t.subflow,u=this._keys,o=t.modified("key");function s(t){return r.subflow(t,a,n)}return this._group=t.group||{},this._targets.active=0,n.visit(n.REM,function(t){var n=Et(t),e=u.get(n);void 0!==e&&(u.delete(n),s(e).rem(t))}),n.visit(n.ADD,function(t){var n=i(t);u.set(Et(t),n),s(n).add(t)}),o||n.modified(i.fields)?n.visit(n.MOD,function(t){var n=Et(t),e=u.get(n),r=i(t);e===r?s(r).mod(t):(u.set(n,r),s(e).rem(t),s(r).add(t))}):n.changed(n.MOD)&&n.visit(n.MOD,function(t){s(u.get(Et(t))).mod(t)}),o&&n.visit(n.REFLOW,function(t){var n=Et(t),e=u.get(n),r=i(t);e!==r&&(u.set(n,r),s(e).rem(t),s(r).add(t))}),u.empty>e.cleanThreshold&&e.runAfter(u.clean),n},et(va,qt),xa.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},et(xa,$r).transform=function(t,n){var e=n.dataflow,r=this.value,i=n.fork(),a=i.add,u=i.rem,o=i.mod,s=t.expr,l=!0;function c(n){var e=Et(n),i=s(n,t),c=r.get(e);i&&c?(r.delete(e),a.push(n)):i||c?l&&i&&!c&&o.push(n):(r.set(e,1),u.push(n))}return n.visit(n.REM,function(t){var n=Et(t);r.has(n)?r.delete(n):u.push(t)}),n.visit(n.ADD,function(n){s(n,t)?a.push(n):r.set(Et(n),1)}),n.visit(n.MOD,c),t.modified()&&(l=!1,n.visit(n.REFLOW,c)),r.empty>e.cleanThreshold&&e.runAfter(r.clean),i},ba.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0}]},et(ba,$r).transform=function(t,n){var e=n.fork(n.NO_SOURCE),r=t.fields,i=_a(r,t.as||[]),a=i.length;return e.rem=this.value,n.visit(n.SOURCE,function(t){for(var n,u,o,s=r.map(function(n){return n(t)}),l=s.reduce(function(t,n){return Math.max(t,n.length)},0),c=0;c<l;++c){for(u=Ft(t),n=0;n<a;++n)u[i[n]]=null==(o=s[n][c])?null:o;e.add.push(u)}}),this.value=e.source=e.add,e.modifies(i)},wa.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"]}]},et(wa,$r).transform=function(t,n){var r=n.fork(n.NO_SOURCE),i=t.fields,a=i.map(e),u=t.as||["key","value"],o=u[0],s=u[1],l=i.length;return r.rem=this.value,n.visit(n.SOURCE,function(t){for(var n,e=0;e<l;++e)(n=Ft(t))[o]=a[e],n[s]=i[e](t),r.add.push(n)}),this.value=r.source=r.add,r.modifies(u)},Aa.Definition={type:"Formula",metadata:{modifies:!0},params:[{name:"expr",type:"expr",required:!0},{name:"as",type:"string",required:!0},{name:"initonly",type:"boolean"}]},et(Aa,$r).transform=function(t,n){var e=t.expr,r=t.as,i=t.modified(),a=t.initonly?n.ADD:i?n.SOURCE:n.modified(e.fields)?n.ADD_MOD:n.ADD;return i&&(n=n.materialize().reflow(!0)),t.initonly||n.modifies(r),n.visit(a,function(n){n[r]=e(n,t)})},et(Ma,$r).transform=function(t,n){var e,r,i,a=this.value,u=n.fork(n.ALL),o=t.size-a.length,s=t.generator;if(o>0){for(e=[];--o>=0;)e.push(i=Dt(s(t))),a.push(i);u.add=u.add.length?u.materialize(u.ADD).add.concat(e):e}else r=a.slice(0,-o),u.rem=u.rem.length?u.materialize(u.REM).rem.concat(r):r,a=a.slice(-o);return u.source=this.value=a,u};var ka={value:"value",median:xi,mean:function(t,n){let e=0,r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let i=-1;for(let a of t)null!=(a=n(a,++i,t))&&(a=+a)>=a&&(++e,r+=a)}if(e)return r/e},min:function(t,n){let e;if(void 0===n)for(let n of t)null!=n&&n>=n&&(void 0===e||e>n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&i>=i&&(void 0===e||e>i)&&(e=i)}return e},max:function(t,n){let e;if(void 0===n)for(let n of t)null!=n&&n>=n&&(void 0===e||e<n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&i>=i&&(void 0===e||e<i)&&(e=i)}return e}},Ea=[];function Ca(t){$r.call(this,[],t)}function Da(t){Yi.call(this,t)}Ca.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}]},et(Ca,$r).transform=function(t,n){var r,a,u,o,s,l,c,f,h,d,p=n.fork(n.ALL),g=function(t){var n,e=t.method||ka.value;if(null!=ka[e])return e===ka.value?(n=void 0!==t.value?t.value:0,function(){return n}):ka[e];i("Unrecognized imputation method: "+e)}(t),m=function(t){var n=t.field;return function(t){return t?n(t):NaN}}(t),v=e(t.field),y=e(t.key),x=(t.groupby||[]).map(e),_=function(t,n,e,r){var i,a,u,o,s,l,c,f,h=function(t){return t(f)},d=[],p=r?r.slice():[],g={},m={};for(p.forEach(function(t,n){g[t]=n+1}),o=0,c=t.length;o<c;++o)f=t[o],l=e(f),s=g[l]||(g[l]=p.push(l)),a=(i=n?n.map(h):Ea)+"",(u=m[a])||(u=m[a]=[],d.push(u),u.values=i),u[s-1]=f;return d.domain=p,d}(n.source,t.groupby,t.key,t.keyvals),b=[],w=this.value,A=_.domain.length;for(s=0,f=_.length;s<f;++s)for(u=(r=_[s]).values,a=NaN,c=0;c<A;++c)if(null==r[c]){for(o=_.domain[c],d={_impute:!0},l=0,h=u.length;l<h;++l)d[x[l]]=u[l];d[y]=o,d[v]=isNaN(a)?a=g(r,m):a,b.push(Dt(d))}return b.length&&(p.add=p.materialize(p.ADD).add.concat(b)),w.length&&(p.rem=p.materialize(p.REM).rem.concat(w)),this.value=b,p},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:Zr},{name:"as",type:"string",null:!0,array:!0},{name:"key",type:"field"}]};var Fa=et(Da,Yi);function Sa(t){$r.call(this,null,t)}function Ba(t){qt.call(this,null,Oa,t)}function Oa(t){return this.value&&!t.modified()?this.value:st(t.fields,t.flat)}function za(t){$r.call(this,[],t)}function Na(t,n,e){e.forEach(Dt);const r=n.fork(n.NO_FIELDS&n.NO_SOURCE);return r.rem=t.value,t.value=r.add=r.source=e,r}function Ta(t){$r.call(this,{},t)}function Ra(t){qt.call(this,null,Pa,t)}function Pa(t){if(this.value&&!t.modified())return this.value;var n,e,r,i=1/0,a=-1/0,u=t.extents;for(n=0,e=u.length;n<e;++n)(r=u[n])[0]<i&&(i=r[0]),r[1]>a&&(a=r[1]);return[i,a]}function La(t){qt.call(this,null,qa,t)}function qa(t){return this.value&&!t.modified()?this.value:t.values.reduce(function(t,n){return t.concat(n)},[])}function Ua(t){$r.call(this,null,t)}function ja(t){Yi.call(this,t)}Fa.transform=function(t,n){var e,r=this,i=t.modified();return r.value&&(i||n.modified(r._inputs))?(e=r.value=i?r.init(t):{},n.visit(n.SOURCE,function(t){r.add(t)})):(e=r.value=r.value||this.init(t),n.visit(n.REM,function(t){r.rem(t)}),n.visit(n.ADD,function(t){r.add(t)})),r.changes(),n.visit(n.SOURCE,function(t){Z(t,e[r.cellkey(t)].tuple)}),n.reflow(i).modifies(this._outputs)},Fa.changes=function(){var t,n,e=this._adds,r=this._mods;for(t=0,n=this._alen;t<n;++t)this.celltuple(e[t]),e[t]=null;for(t=0,n=this._mlen;t<n;++t)this.celltuple(r[t]),r[t]=null;this._alen=this._mlen=0},Sa.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:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"as",type:"string",array:!0,default:["value","density"]}]},et(Sa,$r).transform=function(t,n){var r=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const a=function(t,n,e){var r,i,a,u,o,s,l=[],c=function(t){return t(u)};if(null==n)l.push(t.map(e));else for(r={},i=0,a=t.length;i<a;++i)u=t[i],o=n.map(c),(s=r[o])||(r[o]=s=[],s.dims=o,l.push(s)),s.push(e(u));return l}(n.materialize(n.SOURCE).source,t.groupby,t.field),u=(t.groupby||[]).map(e),o=t.bandwidth,s=t.cumulative?"cdf":"pdf",l=t.steps||t.minsteps||25,c=t.steps||t.maxsteps||200,f=t.as||["value","density"],h=[];"pdf"!==s&&"cdf"!==s&&i("Invalid density method: "+s),a.forEach(n=>{const e=Ai(n,o)[s],r=t.counts?n.length:1;$i(e,t.extent||si(n),l,c).forEach(t=>{const e={};for(let t=0;t<u.length;++t)e[u[t]]=n.dims[t];e[f[0]]=t[0],e[f[1]]=t[1]*r,h.push(Dt(e))})}),this.value&&(r.rem=this.value),this.value=r.add=r.source=h}return r},et(Ba,qt),et(za,$r).transform=function(t,n){const e=n.dataflow;return t.values?Na(this,n,e.parse(t.values,t.format)):e.request(t.url,t.format).then(t=>Na(this,n,t.data||[]))},Ta.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}]},et(Ta,$r).transform=function(t,n){var r,a,u=n,o=t.as,s=t.fields,l=t.index,c=t.values,f=null==t.default?null:t.default,h=t.modified(),d=h?n.SOURCE:n.ADD,p=s.length;return c?(a=c.length,p>1&&!o&&i('Multi-field lookup requires explicit "as" parameter.'),o&&o.length!==p*a&&i('The "as" parameter has too few output field names.'),o=o||c.map(e),r=function(t){for(var n,e,r=0,i=0;r<p;++r)if(null==(e=l.get(s[r](t))))for(n=0;n<a;++n,++i)t[o[i]]=f;else for(n=0;n<a;++n,++i)t[o[i]]=c[n](e)}):(o||i("Missing output field names."),r=function(t){for(var n,e=0;e<p;++e)n=l.get(s[e](t)),t[o[e]]=null==n?f:n}),h?u=n.reflow(!0):d|=s.some(function(t){return n.modified(t.fields)})?n.MOD:0,n.visit(d,r),u.modifies(o)},et(Ra,qt),et(La,qt),et(Ua,$r),Ua.prototype.transform=function(t,n){return this.modified(t.modified()),this.value=t,n.fork(n.NO_SOURCE|n.NO_FIELDS)},ja.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:Zr,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]};var $a=et(ja,Yi);function Ia(t){ga.call(this,t)}function Wa(t){$r.call(this,null,t)}function Ha(t){$r.call(this,null,t)}function Ya(t){$r.call(this,null,t)}function Ga(t){$r.call(this,[],t),this.count=0}function Va(t){$r.call(this,null,t)}function Xa(t){$r.call(this,null,t),this.modified(!0)}function Za(t){$r.call(this,tt(),t)}function Ja(t){$r.call(this,null,t)}$a._transform=$a.transform,$a.transform=function(t,e){return this._transform(function(t,e){var i=t.field,a=t.value,u=("count"===t.op?"__count__":t.op)||"sum",o=r(i).concat(r(a)),s=function(t,n,e){var r={},i=[];return e.visit(e.SOURCE,function(n){var e=t(n);r[e]||(r[e]=1,i.push(e))}),i.sort(function(t,n){return(t<n||null==t)&&null!=n?-1:(t>n||null==n)&&null!=t?1:(n=n instanceof Date?+n:n,(t=t instanceof Date?+t:t)!==t&&n==n?-1:n!=n&&t==t?1:0)}),n?i.slice(0,n):i}(i,t.limit||0,e);return{key:t.key,groupby:t.groupby,ops:s.map(function(){return u}),fields:s.map(function(t){return function(t,e,r,i){return n(function(n){return e(n)===t?r(n):NaN},i,t+"")}(t,i,a,o)}),as:s.map(function(t){return t+""}),modified:t.modified.bind(t)}}(t,e),e)},et(Ia,ga).transform=function(t,n){var e=this,a=t.subflow,u=t.field;return(t.modified("field")||u&&n.modified(r(u)))&&i("PreFacet does not support field modification."),this._targets.active=0,n.visit(n.MOD,function(t){var r=e.subflow(Et(t),a,n,t);u?u(t).forEach(function(t){r.mod(t)}):r.mod(t)}),n.visit(n.ADD,function(t){var r=e.subflow(Et(t),a,n,t);u?u(t).forEach(function(t){r.add(Dt(t))}):r.add(t)}),n.visit(n.REM,function(t){var r=e.subflow(Et(t),a,n,t);u?u(t).forEach(function(t){r.rem(t)}):r.rem(t)}),n},Wa.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},et(Wa,$r).transform=function(t,n){var e,r,i=t.fields,a=_a(t.fields,t.as||[]),u=i?function(t,n){return function(t,n,e,r){for(var i=0,a=e.length;i<a;++i)n[r[i]]=e[i](t);return n}(t,n,i,a)}:St;return this.value?r=this.value:(n=n.addAll(),r=this.value={}),e=n.fork(n.NO_SOURCE),n.visit(n.REM,function(t){var n=Et(t);e.rem.push(r[n]),r[n]=null}),n.visit(n.ADD,function(t){var n=u(t,Dt({}));r[Et(t)]=n,e.add.push(n)}),n.visit(n.MOD,function(t){e.mod.push(u(t,r[Et(t)]))}),e},et(Ha,$r).transform=function(t,n){return this.value=t.value,t.modified("value")?n.fork(n.NO_SOURCE|n.NO_FIELDS):n.StopPropagation},et(Ya,$r).transform=function(t,n){var e,r;return this.value?r=this.value:(e=n=n.addAll(),r=this.value={}),t.derive&&(e=n.fork(n.NO_SOURCE),n.visit(n.REM,function(t){var n=Et(t);e.rem.push(r[n]),r[n]=null}),n.visit(n.ADD,function(t){var n=Ft(t);r[Et(t)]=n,e.add.push(n)}),n.visit(n.MOD,function(t){e.mod.push(St(t,r[Et(t)]))})),e},Ga.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},et(Ga,$r).transform=function(n,e){var r=e.fork(e.NO_SOURCE),i=n.modified("size"),a=n.size,u=this.value,o=this.count,s=0,l=u.reduce(function(t,n){return t[Et(n)]=1,t},{});function c(n){var e,i;u.length<a?u.push(n):(i=~~((o+1)*t.random()))<u.length&&i>=s&&(e=u[i],l[Et(e)]&&r.rem.push(e),u[i]=n),++o}if(e.rem.length&&(e.visit(e.REM,function(t){var n=Et(t);l[n]&&(l[n]=-1,r.rem.push(t)),--o}),u=u.filter(function(t){return-1!==l[Et(t)]})),(e.rem.length||i)&&u.length<a&&e.source&&(s=o=u.length,e.visit(e.SOURCE,function(t){l[Et(t)]||c(t)}),s=-1),i&&u.length>a){for(var f=0,h=u.length-a;f<h;++f)l[Et(u[f])]=-1,r.rem.push(u[f]);u=u.slice(h)}return e.mod.length&&e.visit(e.MOD,function(t){l[Et(t)]&&r.mod.push(t)}),e.add.length&&e.visit(e.ADD,c),(e.add.length||s<0)&&(r.add=u.filter(function(t){return!l[Et(t)]})),this.count=o,this.value=r.source=u,r},Va.Definition={type:"Sequence",metadata:{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"}]},et(Va,$r).transform=function(t,n){if(!this.value||t.modified()){var e=n.materialize().fork(n.MOD),r=t.as||"data";return e.rem=this.value?n.rem.concat(this.value):n.rem,this.value=li(t.start,t.stop,t.step||1).map(function(t){var n={};return n[r]=t,Dt(n)}),e.add=n.add.concat(this.value),e}},et(Xa,$r).transform=function(t,n){return this.value=n.source,n.changed()?n.fork(n.NO_SOURCE|n.NO_FIELDS):n.StopPropagation},et(Za,$r).transform=function(t,n){var e=n.dataflow,r=t.field,i=this.value,a=!0;function u(t){i.set(r(t),t)}return t.modified("field")||n.modified(r.fields)?(i.clear(),n.visit(n.SOURCE,u)):n.changed()?(n.visit(n.REM,function(t){i.delete(r(t))}),n.visit(n.ADD,u)):a=!1,this.modified(a),i.empty>e.cleanThreshold&&e.runAfter(i.clean),n.fork()},et(Ja,$r).transform=function(t,n){(!this.value||t.modified("field")||t.modified("sort")||n.changed()||t.sort&&n.modified(t.sort.fields))&&(this.value=(t.sort?n.source.slice().sort(t.sort):n.source).map(t.field))};const Qa={row_number:function(){return{next:t=>t.index+1}},rank:function(){let t;return{init:()=>t=1,next:n=>{let e=n.index,r=n.data;return e&&n.compare(r[e-1],r[e])?t=e+1:t}}},dense_rank:function(){let t;return{init:()=>t=1,next:n=>{let e=n.index,r=n.data;return e&&n.compare(r[e-1],r[e])?++t:t}}},percent_rank:function(){let t=Qa.rank(),n=t.next;return{init:t.init,next:t=>(n(t)-1)/(t.data.length-1)}},cume_dist:function(){let t;return{init:()=>t=0,next:n=>{let e=n.index,r=n.data,i=n.compare;if(t<e){for(;e+1<r.length&&!i(r[e],r[e+1]);)++e;t=e}return(1+t)/r.length}}},ntile:function(t,n){(n=+n)>0||i("ntile num must be greater than zero.");let e=Qa.cume_dist(),r=e.next;return{init:e.init,next:t=>Math.ceil(n*r(t))}},lag:function(t,n){return n=+n||1,{next:e=>{let r=e.index-n;return r>=0?t(e.data[r]):null}}},lead:function(t,n){return n=+n||1,{next:e=>{let r=e.index+n,i=e.data;return r<i.length?t(i[r]):null}}},first_value:function(t){return{next:n=>t(n.data[n.i0])}},last_value:function(t){return{next:n=>t(n.data[n.i1-1])}},nth_value:function(t,n){return(n=+n)>0||i("nth_value nth must be greater than zero."),{next:e=>{let r=e.i0+(n-1);return r<e.i1?t(e.data[r]):null}}},prev_value:function(t){let n=null;return{next:e=>{let r=t(e.data[e.index]);return null!=r?n=r:n}}},next_value:function(t){let n=null,e=-1;return{next:r=>{let i=r.data;return r.index<=e?n:(e=function(t,n,e){for(let r=n.length;e<r;++e){let r=t(n[e]);if(null!=r)return e}return-1}(t,i,r.index))<0?(e=i.length,n=null):n=t(i[e])}}}};var Ka=Object.keys(Qa);function tu(t){let n=this,a=W(t.ops),u=W(t.fields),o=W(t.params),s=W(t.as),l=n.outputs=[],c=n.windows=[],f={},h={},d=!0,g=[],m=[];function v(t){W(r(t)).forEach(t=>f[t]=1)}v(t.sort),a.forEach(function(t,n){let r=u[n],a=e(r),f=Vr(t,a,s[n]);if(v(r),l.push(f),Qa.hasOwnProperty(t))c.push(function(t,n,e,r){let i=Qa[t](n,e);return{init:i.init||p,update:function(t,n){n[r]=i.next(t)}}}(t,u[n],o[n],f));else{if(null==r&&"count"!==t&&i("Null aggregate field specified."),"count"===t)return void g.push(f);d=!1;let n=h[a];n||((n=h[a]=[]).field=r,m.push(n)),n.push(Jr(t,f))}}),(g.length||m.length)&&(n.cell=function(t,n,e){t=t.map(t=>ti(t,t.field));let r={num:0,agg:null,store:!1,count:n};if(!e)for(var i=t.length,a=r.agg=Array(i),u=0;u<i;++u)a[u]=new t[u](r);if(r.store)var o=r.data=new Wi;return r.add=function(t){if(r.num+=1,!e){o&&o.add(t);for(let n=0;n<i;++n)a[n].add(a[n].get(t),t)}},r.rem=function(t){if(r.num-=1,!e){o&&o.rem(t);for(let n=0;n<i;++n)a[n].rem(a[n].get(t),t)}},r.set=function(t){let i,u;for(o&&o.values(),i=0,u=n.length;i<u;++i)t[n[i]]=r.num;if(!e)for(i=0,u=a.length;i<u;++i)a[i].set(t)},r.init=function(){r.num=0,o&&o.reset();for(let t=0;t<i;++t)a[t].init()},r}(m,g,d)),n.inputs=Object.keys(f)}const nu=tu.prototype;function eu(t){$r.call(this,{},t),this._mlen=0,this._mods=[]}nu.init=function(){this.windows.forEach(t=>t.init()),this.cell&&this.cell.init()},nu.update=function(t,n){let e,r=this.cell,i=this.windows,a=t.data,u=i&&i.length;if(r){for(e=t.p0;e<t.i0;++e)r.rem(a[e]);for(e=t.p1;e<t.i1;++e)r.add(a[e]);r.set(n)}for(e=0;e<u;++e)i[e].update(t,n)},eu.Definition={type:"Window",metadata:{modifies:!0},params:[{name:"sort",type:"compare"},{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Ka.concat(Zr)},{name:"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}]};var ru=et(eu,$r);function iu(t,n,e){var r=e.sort,i=r&&!e.ignorePeers,a=e.frame||[null,0],u=t.data(r),o=u.length,s=0,l=i?ii(r):null,c={i0:0,i1:0,p0:0,p1:0,index:0,data:u,compare:r||V(-1)};for(n.init();s<o;++s)au(c,a,s,o),i&&uu(c,l),n.update(c,u[s])}function au(t,n,e,r){t.p0=t.i0,t.p1=t.i1,t.i0=null==n[0]?0:Math.max(0,e-Math.abs(n[0])),t.i1=null==n[1]?r:Math.min(r,e+Math.abs(n[1])+1),t.index=e}function uu(t,n){var e=t.i0,r=t.i1-1,i=t.compare,a=t.data,u=a.length-1;e>0&&!i(a[e],a[e-1])&&(t.i0=n.left(a,a[e])),r<u&&!i(a[r],a[r+1])&&(t.i1=n.right(a,a[r]))}ru.transform=function(t,n){var e,r,i=this,a=i.state,u=t.modified();this.stamp=n.stamp,a&&!u||(a=i.state=new tu(t));var o=Gr(t.groupby);function s(t){return i.group(o(t))}for(u||n.modified(a.inputs)?(i.value={},n.visit(n.SOURCE,function(t){s(t).add(t)})):(n.visit(n.REM,function(t){s(t).remove(t)}),n.visit(n.ADD,function(t){s(t).add(t)})),e=0,r=i._mlen;e<r;++e)iu(i._mods[e],a,t);return i._mlen=0,i._mods=[],n.reflow(u).modifies(a.outputs)},ru.group=function(t){var n=this.value[t];return n||((n=this.value[t]=Zi(Et)).stamp=-1),n.stamp<this.stamp&&(n.stamp=this.stamp,this._mods[this._mlen++]=n),n};var ou=Object.freeze({aggregate:Yi,bin:Vi,collect:Ji,compare:Qi,countpattern:ta,cross:ea,density:oa,expression:ca,extent:ha,facet:ga,field:va,filter:xa,flatten:ba,fold:wa,formula:Aa,generate:Ma,impute:Ca,joinaggregate:Da,kde:Sa,key:Ba,load:za,lookup:Ta,multiextent:Ra,multivalues:La,params:Ua,pivot:ja,prefacet:Ia,project:Wa,proxy:Ha,relay:Ya,sample:Ga,sequence:Va,sieve:Xa,subflow:da,tupleindex:Za,values:Ja,window:eu});const su="top",lu="left",cu="right",fu="bottom",hu="top-left",du="top-right",pu="bottom-left",gu="bottom-right",mu="start",vu="middle",yu="end",xu="x",_u="y",bu="group",wu="axis",Au="title",Mu="frame",ku="scope",Eu="legend",Cu="row-header",Du="row-footer",Fu="row-title",Su="column-header",Bu="column-footer",Ou="column-title",zu="padding",Nu="symbol",Tu="fit",Ru="fit-x",Pu="fit-y",Lu="pad",qu="none",Uu="all",ju="each",$u="flush",Iu="column",Wu="row";function Hu(t){this.clear(),t&&this.union(t)}var Yu=Hu.prototype;Yu.clone=function(){return new Hu(this)},Yu.clear=function(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},Yu.empty=function(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},Yu.equals=function(t){return this.x1===t.x1&&this.y1===t.y1&&this.x2===t.x2&&this.y2===t.y2},Yu.set=function(t,n,e,r){return e<t?(this.x2=t,this.x1=e):(this.x1=t,this.x2=e),r<n?(this.y2=n,this.y1=r):(this.y1=n,this.y2=r),this},Yu.add=function(t,n){return t<this.x1&&(this.x1=t),n<this.y1&&(this.y1=n),t>this.x2&&(this.x2=t),n>this.y2&&(this.y2=n),this},Yu.expand=function(t){return this.x1-=t,this.y1-=t,this.x2+=t,this.y2+=t,this},Yu.round=function(){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},Yu.translate=function(t,n){return this.x1+=t,this.x2+=t,this.y1+=n,this.y2+=n,this},Yu.rotate=function(t,n,e){const r=this.rotatedPoints(t,n,e);return this.clear().add(r[0],r[1]).add(r[2],r[3]).add(r[4],r[5]).add(r[6],r[7])},Yu.rotatedPoints=function(t,n,e){var{x1:r,y1:i,x2:a,y2:u}=this,o=Math.cos(t),s=Math.sin(t),l=n-n*o+e*s,c=e-n*s-e*o;return[o*r-s*i+l,s*r+o*i+c,o*r-s*u+l,s*r+o*u+c,o*a-s*i+l,s*a+o*i+c,o*a-s*u+l,s*a+o*u+c]},Yu.union=function(t){return t.x1<this.x1&&(this.x1=t.x1),t.y1<this.y1&&(this.y1=t.y1),t.x2>this.x2&&(this.x2=t.x2),t.y2>this.y2&&(this.y2=t.y2),this},Yu.intersect=function(t){return t.x1>this.x1&&(this.x1=t.x1),t.y1>this.y1&&(this.y1=t.y1),t.x2<this.x2&&(this.x2=t.x2),t.y2<this.y2&&(this.y2=t.y2),this},Yu.encloses=function(t){return t&&this.x1<=t.x1&&this.x2>=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},Yu.alignsWith=function(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},Yu.intersects=function(t){return t&&!(this.x2<t.x1||this.x1>t.x2||this.y2<t.y1||this.y1>t.y2)},Yu.contains=function(t,n){return!(t<this.x1||t>this.x2||n<this.y1||n>this.y2)},Yu.width=function(){return this.x2-this.x1},Yu.height=function(){return this.y2-this.y1};var Gu=0;const Vu="p_";function Xu(t){return t&&t.gradient}function Zu(t,n,e){let r=t.id,i=t.gradient,a="radial"===i?Vu:"";return r||(r=t.id="gradient_"+Gu++,"radial"===i?(t.x1=Ju(t.x1,.5),t.y1=Ju(t.y1,.5),t.r1=Ju(t.r1,0),t.x2=Ju(t.x2,.5),t.y2=Ju(t.y2,.5),t.r2=Ju(t.r2,.5),a=Vu):(t.x1=Ju(t.x1,0),t.y1=Ju(t.y1,0),t.x2=Ju(t.x2,1),t.y2=Ju(t.y2,0))),n[r]=t,"url("+(e||"")+"#"+a+r+")"}function Ju(t,n){return null!=t?t:n}function Qu(t,n){var e,r=[];return e={gradient:"linear",x1:t?t[0]:0,y1:t?t[1]:0,x2:n?n[0]:1,y2:n?n[1]:0,stops:r,stop:function(t,n){return r.push({offset:t,color:n}),e}}}function Ku(t){this.mark=t,this.bounds=this.bounds||new Hu}function to(t){Ku.call(this,t),this.items=this.items||[]}function no(t,n){if("undefined"!=typeof document&&document.createElement){var e=document.createElement("canvas");if(e&&e.getContext)return e.width=t,e.height=n,e}return null}function eo(){return"undefined"!=typeof Image?Image:null}function ro(t){this._pending=0,this._loader=t||wr()}et(to,Ku);var io=ro.prototype;function ao(t){t._pending+=1}function uo(t){t._pending-=1}io.pending=function(){return this._pending},io.sanitizeURL=function(t){var n=this;return ao(n),n._loader.sanitize(t,{context:"href"}).then(function(t){return uo(n),t}).catch(function(){return uo(n),null})},io.loadImage=function(t){var n=this,e=eo();return ao(n),n._loader.sanitize(t,{context:"image"}).then(function(t){var r=t.href;if(!r||!e)throw{url:r};var i=new e;return i.onload=function(){uo(n),i.loaded=!0},i.onerror=function(){uo(n),i.loaded=!1},i.src=r,i}).catch(function(t){return uo(n),{loaded:!1,width:0,height:0,src:t&&t.url||""}})},io.ready=function(){var t=this;return new Promise(function(n){!function e(r){t.pending()?setTimeout(function(){e(!0)},10):n(r)}(!1)})};var oo=Math.PI,so=2*oo,lo=so-1e-6;function co(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function fo(){return new co}function ho(t){return function(){return t}}co.prototype=fo.prototype={constructor:co,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,a){this._+="C"+ +t+","+ +n+","+ +e+","+ +r+","+(this._x1=+i)+","+(this._y1=+a)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var a=this._x1,u=this._y1,o=e-t,s=r-n,l=a-t,c=u-n,f=l*l+c*c;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(f>1e-6)if(Math.abs(c*o-s*l)>1e-6&&i){var h=e-a,d=r-u,p=o*o+s*s,g=h*h+d*d,m=Math.sqrt(p),v=Math.sqrt(f),y=i*Math.tan((oo-Math.acos((p+f-g)/(2*m*v)))/2),x=y/v,_=y/m;Math.abs(x-1)>1e-6&&(this._+="L"+(t+x*l)+","+(n+x*c)),this._+="A"+i+","+i+",0,0,"+ +(c*h>l*d)+","+(this._x1=t+_*o)+","+(this._y1=n+_*s)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,a){t=+t,n=+n;var u=(e=+e)*Math.cos(r),o=e*Math.sin(r),s=t+u,l=n+o,c=1^a,f=a?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+s+","+l:(Math.abs(this._x1-s)>1e-6||Math.abs(this._y1-l)>1e-6)&&(this._+="L"+s+","+l),e&&(f<0&&(f=f%so+so),f>lo?this._+="A"+e+","+e+",0,1,"+c+","+(t-u)+","+(n-o)+"A"+e+","+e+",0,1,"+c+","+(this._x1=s)+","+(this._y1=l):f>1e-6&&(this._+="A"+e+","+e+",0,"+ +(f>=oo)+","+c+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};var po=Math.abs,go=Math.atan2,mo=Math.cos,vo=Math.max,yo=Math.min,xo=Math.sin,_o=Math.sqrt,bo=1e-12,wo=Math.PI,Ao=wo/2,Mo=2*wo;function ko(t){return t>=1?Ao:t<=-1?-Ao:Math.asin(t)}function Eo(t){return t.innerRadius}function Co(t){return t.outerRadius}function Do(t){return t.startAngle}function Fo(t){return t.endAngle}function So(t){return t&&t.padAngle}function Bo(t,n,e,r,i,a,u){var o=t-e,s=n-r,l=(u?a:-a)/_o(o*o+s*s),c=l*s,f=-l*o,h=t+c,d=n+f,p=e+c,g=r+f,m=(h+p)/2,v=(d+g)/2,y=p-h,x=g-d,_=y*y+x*x,b=i-a,w=h*g-p*d,A=(x<0?-1:1)*_o(vo(0,b*b*_-w*w)),M=(w*x-y*A)/_,k=(-w*y-x*A)/_,E=(w*x+y*A)/_,C=(-w*y+x*A)/_,D=M-m,F=k-v,S=E-m,B=C-v;return D*D+F*F>S*S+B*B&&(M=E,k=C),{cx:M,cy:k,x01:-c,y01:-f,x11:M*(i/b-1),y11:k*(i/b-1)}}function Oo(t){this._context=t}function zo(t){return new Oo(t)}function No(t){return t[0]}function To(t){return t[1]}function Ro(){var t=No,n=To,e=ho(!0),r=null,i=zo,a=null;function u(u){var o,s,l,c=u.length,f=!1;for(null==r&&(a=i(l=fo())),o=0;o<=c;++o)!(o<c&&e(s=u[o],o,u))===f&&((f=!f)?a.lineStart():a.lineEnd()),f&&a.point(+t(s,o,u),+n(s,o,u));if(l)return a=null,l+""||null}return u.x=function(n){return arguments.length?(t="function"==typeof n?n:ho(+n),u):t},u.y=function(t){return arguments.length?(n="function"==typeof t?t:ho(+t),u):n},u.defined=function(t){return arguments.length?(e="function"==typeof t?t:ho(!!t),u):e},u.curve=function(t){return arguments.length?(i=t,null!=r&&(a=i(r)),u):i},u.context=function(t){return arguments.length?(null==t?r=a=null:a=i(r=t),u):r},u}function Po(){var t=No,n=null,e=ho(0),r=To,i=ho(!0),a=null,u=zo,o=null;function s(s){var l,c,f,h,d,p=s.length,g=!1,m=new Array(p),v=new Array(p);for(null==a&&(o=u(d=fo())),l=0;l<=p;++l){if(!(l<p&&i(h=s[l],l,s))===g)if(g=!g)c=l,o.areaStart(),o.lineStart();else{for(o.lineEnd(),o.lineStart(),f=l-1;f>=c;--f)o.point(m[f],v[f]);o.lineEnd(),o.areaEnd()}g&&(m[l]=+t(h,l,s),v[l]=+e(h,l,s),o.point(n?+n(h,l,s):m[l],r?+r(h,l,s):v[l]))}if(d)return o=null,d+""||null}function l(){return Ro().defined(i).curve(u).context(a)}return s.x=function(e){return arguments.length?(t="function"==typeof e?e:ho(+e),n=null,s):t},s.x0=function(n){return arguments.length?(t="function"==typeof n?n:ho(+n),s):t},s.x1=function(t){return arguments.length?(n=null==t?null:"function"==typeof t?t:ho(+t),s):n},s.y=function(t){return arguments.length?(e="function"==typeof t?t:ho(+t),r=null,s):e},s.y0=function(t){return arguments.length?(e="function"==typeof t?t:ho(+t),s):e},s.y1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:ho(+t),s):r},s.lineX0=s.lineY0=function(){return l().x(t).y(e)},s.lineY1=function(){return l().x(t).y(r)},s.lineX1=function(){return l().x(n).y(e)},s.defined=function(t){return arguments.length?(i="function"==typeof t?t:ho(!!t),s):i},s.curve=function(t){return arguments.length?(u=t,null!=a&&(o=u(a)),s):u},s.context=function(t){return arguments.length?(null==t?a=o=null:o=u(a=t),s):a},s}Oo.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var Lo={draw:function(t,n){var e=Math.sqrt(n/wo);t.moveTo(e,0),t.arc(0,0,e,0,Mo)}};function qo(){}function Uo(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function jo(t){this._context=t}function $o(t){this._context=t}function Io(t){this._context=t}function Wo(t,n){this._basis=new jo(t),this._beta=n}jo.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Uo(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Uo(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},$o.prototype={areaStart:qo,areaEnd:qo,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:Uo(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Io.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:Uo(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Wo.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],a=n[0],u=t[e]-i,o=n[e]-a,s=-1;++s<=e;)r=s/e,this._basis.point(this._beta*t[s]+(1-this._beta)*(i+r*u),this._beta*n[s]+(1-this._beta)*(a+r*o));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var Ho=function t(n){function e(t){return 1===n?new jo(t):new Wo(t,n)}return e.beta=function(n){return t(+n)},e}(.85);function Yo(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function Go(t,n){this._context=t,this._k=(1-n)/6}Go.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Yo(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:Yo(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Vo=function t(n){function e(t){return new Go(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Xo(t,n){this._context=t,this._k=(1-n)/6}Xo.prototype={areaStart:qo,areaEnd:qo,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Yo(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Zo=function t(n){function e(t){return new Xo(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Jo(t,n){this._context=t,this._k=(1-n)/6}Jo.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Yo(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Qo=function t(n){function e(t){return new Jo(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Ko(t,n,e){var r=t._x1,i=t._y1,a=t._x2,u=t._y2;if(t._l01_a>bo){var o=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,s=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*o-t._x0*t._l12_2a+t._x2*t._l01_2a)/s,i=(i*o-t._y0*t._l12_2a+t._y2*t._l01_2a)/s}if(t._l23_a>bo){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,c=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*l+t._x1*t._l23_2a-n*t._l12_2a)/c,u=(u*l+t._y1*t._l23_2a-e*t._l12_2a)/c}t._context.bezierCurveTo(r,i,a,u,t._x2,t._y2)}function ts(t,n){this._context=t,this._alpha=n}ts.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Ko(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var ns=function t(n){function e(t){return n?new ts(t,n):new Go(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function es(t,n){this._context=t,this._alpha=n}es.prototype={areaStart:qo,areaEnd:qo,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Ko(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var rs=function t(n){function e(t){return n?new es(t,n):new Xo(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function is(t,n){this._context=t,this._alpha=n}is.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Ko(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var as=function t(n){function e(t){return n?new is(t,n):new Jo(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function us(t){this._context=t}function os(t){return t<0?-1:1}function ss(t,n,e){var r=t._x1-t._x0,i=n-t._x1,a=(t._y1-t._y0)/(r||i<0&&-0),u=(e-t._y1)/(i||r<0&&-0),o=(a*i+u*r)/(r+i);return(os(a)+os(u))*Math.min(Math.abs(a),Math.abs(u),.5*Math.abs(o))||0}function ls(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function cs(t,n,e){var r=t._x0,i=t._y0,a=t._x1,u=t._y1,o=(a-r)/3;t._context.bezierCurveTo(r+o,i+o*n,a-o,u-o*e,a,u)}function fs(t){this._context=t}function hs(t){this._context=new ds(t)}function ds(t){this._context=t}function ps(t){this._context=t}function gs(t){var n,e,r=t.length-1,i=new Array(r),a=new Array(r),u=new Array(r);for(i[0]=0,a[0]=2,u[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,a[n]=4,u[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,a[r-1]=7,u[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/a[n-1],a[n]-=e,u[n]-=e*u[n-1];for(i[r-1]=u[r-1]/a[r-1],n=r-2;n>=0;--n)i[n]=(u[n]-i[n+1])/a[n];for(a[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)a[n]=2*t[n+1]-i[n+1];return[i,a]}function ms(t,n){this._context=t,this._t=n}us.prototype={areaStart:qo,areaEnd:qo,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}},fs.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:cs(this,this._t0,ls(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(n=+n,(t=+t)!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,cs(this,ls(this,e=ss(this,t,n)),e);break;default:cs(this,this._t0,e=ss(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(hs.prototype=Object.create(fs.prototype)).point=function(t,n){fs.prototype.point.call(this,n,t)},ds.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,a){this._context.bezierCurveTo(n,t,r,e,a,i)}},ps.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=gs(t),i=gs(n),a=0,u=1;u<e;++a,++u)this._context.bezierCurveTo(r[0][a],i[0][a],r[1][a],i[1][a],t[u],n[u]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}},ms.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var vs={basis:{curve:function(t){return new jo(t)}},"basis-closed":{curve:function(t){return new $o(t)}},"basis-open":{curve:function(t){return new Io(t)}},bundle:{curve:Ho,tension:"beta",value:.85},cardinal:{curve:Vo,tension:"tension",value:0},"cardinal-open":{curve:Qo,tension:"tension",value:0},"cardinal-closed":{curve:Zo,tension:"tension",value:0},"catmull-rom":{curve:ns,tension:"alpha",value:.5},"catmull-rom-closed":{curve:rs,tension:"alpha",value:.5},"catmull-rom-open":{curve:as,tension:"alpha",value:.5},linear:{curve:zo},"linear-closed":{curve:function(t){return new us(t)}},monotone:{horizontal:function(t){return new hs(t)},vertical:function(t){return new fs(t)}},natural:{curve:function(t){return new ps(t)}},step:{curve:function(t){return new ms(t,.5)}},"step-after":{curve:function(t){return new ms(t,1)}},"step-before":{curve:function(t){return new ms(t,0)}}};function ys(t,n,e){var r=vs.hasOwnProperty(t)&&vs[t],i=null;return r&&(i=r.curve||r[n||"vertical"],r.tension&&null!=e&&(i=i[r.tension](e))),i}var xs={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},_s=[/([MLHVCSQTAZmlhvcsqtaz])/g,/###/,/(\d)([-+])/g,/\s|,|###/];function bs(t){var n,e,r,i,a,u,o,s,l,c,f,h=[];for(s=0,c=(n=t.slice().replace(_s[0],"###$1").split(_s[1]).slice(1)).length;s<c;++s){for(r=(e=n[s]).slice(1).trim().replace(_s[2],"$1###$2").split(_s[3]),i=[u=e.charAt(0)],l=0,f=r.length;l<f;++l)(a=+r[l])===a&&i.push(a);if(o=xs[u.toLowerCase()],i.length-1>o)for(l=1,f=i.length;l<f;l+=o)h.push([u].concat(i.slice(l,l+o)));else h.push(i)}return h}var ws=Math.PI/180,As=Math.PI/2,Ms=2*Math.PI,ks=Math.sqrt(3)/2,Es={},Cs={},Ds=[].join;function Fs(t){var n=Ds.call(t);if(Cs[n])return Cs[n];var e=t[0],r=t[1],i=t[2],a=t[3],u=t[4],o=t[5],s=t[6],l=t[7],c=l*u,f=-s*o,h=s*u,d=l*o,p=Math.cos(i),g=Math.sin(i),m=Math.cos(a),v=Math.sin(a),y=.5*(a-i),x=Math.sin(.5*y),_=8/3*x*x/Math.sin(y),b=e+p-_*g,w=r+g+_*p,A=e+m,M=r+v,k=A+_*v,E=M-_*m;return Cs[n]=[c*b+f*w,h*b+d*w,c*k+f*E,h*k+d*E,c*A+f*M,h*A+d*M]}var Ss=["l",0,0,0,0,0,0,0];function Bs(t,n){var e=Ss[0]=t[0];if("a"===e||"A"===e)Ss[1]=n*t[1],Ss[2]=n*t[2],Ss[3]=t[3],Ss[4]=t[4],Ss[5]=t[5],Ss[6]=n*t[6],Ss[7]=n*t[7];else for(var r=1,i=t.length;r<i;++r)Ss[r]=n*t[r];return Ss}function Os(t,n,e,r,i){var a,u,o,s,l,c=null,f=0,h=0,d=0,p=0;null==e&&(e=0),null==r&&(r=0),null==i&&(i=1),t.beginPath&&t.beginPath();for(var g=0,m=n.length;g<m;++g){switch(a=n[g],1!==i&&(a=Bs(a,i)),a[0]){case"l":f+=a[1],h+=a[2],t.lineTo(f+e,h+r);break;case"L":f=a[1],h=a[2],t.lineTo(f+e,h+r);break;case"h":f+=a[1],t.lineTo(f+e,h+r);break;case"H":f=a[1],t.lineTo(f+e,h+r);break;case"v":h+=a[1],t.lineTo(f+e,h+r);break;case"V":h=a[1],t.lineTo(f+e,h+r);break;case"m":f+=a[1],h+=a[2],t.moveTo(f+e,h+r);break;case"M":f=a[1],h=a[2],t.moveTo(f+e,h+r);break;case"c":u=f+a[5],o=h+a[6],d=f+a[3],p=h+a[4],t.bezierCurveTo(f+a[1]+e,h+a[2]+r,d+e,p+r,u+e,o+r),f=u,h=o;break;case"C":f=a[5],h=a[6],d=a[3],p=a[4],t.bezierCurveTo(a[1]+e,a[2]+r,d+e,p+r,f+e,h+r);break;case"s":u=f+a[3],o=h+a[4],d=2*f-d,p=2*h-p,t.bezierCurveTo(d+e,p+r,f+a[1]+e,h+a[2]+r,u+e,o+r),d=f+a[1],p=h+a[2],f=u,h=o;break;case"S":u=a[3],o=a[4],d=2*f-d,p=2*h-p,t.bezierCurveTo(d+e,p+r,a[1]+e,a[2]+r,u+e,o+r),f=u,h=o,d=a[1],p=a[2];break;case"q":u=f+a[3],o=h+a[4],d=f+a[1],p=h+a[2],t.quadraticCurveTo(d+e,p+r,u+e,o+r),f=u,h=o;break;case"Q":u=a[3],o=a[4],t.quadraticCurveTo(a[1]+e,a[2]+r,u+e,o+r),f=u,h=o,d=a[1],p=a[2];break;case"t":u=f+a[1],o=h+a[2],null===c[0].match(/[QqTt]/)?(d=f,p=h):"t"===c[0]?(d=2*f-s,p=2*h-l):"q"===c[0]&&(d=2*f-d,p=2*h-p),s=d,l=p,t.quadraticCurveTo(d+e,p+r,u+e,o+r),h=o,d=(f=u)+a[1],p=h+a[2];break;case"T":u=a[1],o=a[2],d=2*f-d,p=2*h-p,t.quadraticCurveTo(d+e,p+r,u+e,o+r),f=u,h=o;break;case"a":zs(t,f+e,h+r,[a[1],a[2],a[3],a[4],a[5],a[6]+f+e,a[7]+h+r]),f+=a[6],h+=a[7];break;case"A":zs(t,f+e,h+r,[a[1],a[2],a[3],a[4],a[5],a[6]+e,a[7]+r]),f=a[6],h=a[7];break;case"z":case"Z":t.closePath()}c=a}}function zs(t,n,e,r){for(var i=function(t,n,e,r,i,a,u,o,s){var l=Ds.call(arguments);if(Es[l])return Es[l];var c=u*ws,f=Math.sin(c),h=Math.cos(c),d=h*(o-t)*.5+f*(s-n)*.5,p=h*(s-n)*.5-f*(o-t)*.5,g=d*d/((e=Math.abs(e))*e)+p*p/((r=Math.abs(r))*r);g>1&&(e*=g=Math.sqrt(g),r*=g);var m=h/e,v=f/e,y=-f/r,x=h/r,_=m*o+v*s,b=y*o+x*s,w=m*t+v*n,A=y*t+x*n,M=1/((w-_)*(w-_)+(A-b)*(A-b))-.25;M<0&&(M=0);var k=Math.sqrt(M);a==i&&(k=-k);var E=.5*(_+w)-k*(A-b),C=.5*(b+A)+k*(w-_),D=Math.atan2(b-C,_-E),F=Math.atan2(A-C,w-E)-D;F<0&&1===a?F+=Ms:F>0&&0===a&&(F-=Ms);for(var S=Math.ceil(Math.abs(F/(As+.001))),B=[],O=0;O<S;++O){var z=D+O*F/S,N=D+(O+1)*F/S;B[O]=[E,C,z,N,e,r,f,h]}return Es[l]=B}(r[5],r[6],r[0],r[1],r[3],r[4],r[2],n,e),a=0;a<i.length;++a){var u=Fs(i[a]);t.bezierCurveTo(u[0],u[1],u[2],u[3],u[4],u[5])}}var Ns={circle:{draw:function(t,n){var e=Math.sqrt(n)/2;t.moveTo(e,0),t.arc(0,0,e,0,Ms)}},cross:{draw:function(t,n){var e=Math.sqrt(n)/2,r=e/2.5;t.moveTo(-e,-r),t.lineTo(-e,r),t.lineTo(-r,r),t.lineTo(-r,e),t.lineTo(r,e),t.lineTo(r,r),t.lineTo(e,r),t.lineTo(e,-r),t.lineTo(r,-r),t.lineTo(r,-e),t.lineTo(-r,-e),t.lineTo(-r,-r),t.closePath()}},diamond:{draw:function(t,n){var e=Math.sqrt(n)/2;t.moveTo(-e,0),t.lineTo(0,-e),t.lineTo(e,0),t.lineTo(0,e),t.closePath()}},square:{draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},arrow:{draw:function(t,n){var e=Math.sqrt(n)/2,r=e/7,i=e/2.5,a=e/8;t.moveTo(-r,e),t.lineTo(r,e),t.lineTo(r,-a),t.lineTo(i,-a),t.lineTo(0,-e),t.lineTo(-i,-a),t.lineTo(-r,-a),t.closePath()}},wedge:{draw:function(t,n){var e=Math.sqrt(n)/2,r=ks*e,i=r-.5773502691896257*e,a=e/4;t.moveTo(0,-r-i),t.lineTo(-a,r-i),t.lineTo(a,r-i),t.closePath()}},triangle:{draw:function(t,n){var e=Math.sqrt(n)/2,r=ks*e,i=r-.5773502691896257*e;t.moveTo(0,-r-i),t.lineTo(-e,r-i),t.lineTo(e,r-i),t.closePath()}},"triangle-up":{draw:function(t,n){var e=Math.sqrt(n)/2,r=ks*e;t.moveTo(0,-r),t.lineTo(-e,r),t.lineTo(e,r),t.closePath()}},"triangle-down":{draw:function(t,n){var e=Math.sqrt(n)/2,r=ks*e;t.moveTo(0,r),t.lineTo(-e,-r),t.lineTo(e,-r),t.closePath()}},"triangle-right":{draw:function(t,n){var e=Math.sqrt(n)/2,r=ks*e;t.moveTo(r,0),t.lineTo(-r,-e),t.lineTo(-r,e),t.closePath()}},"triangle-left":{draw:function(t,n){var e=Math.sqrt(n)/2,r=ks*e;t.moveTo(-r,0),t.lineTo(r,-e),t.lineTo(r,e),t.closePath()}},stroke:{draw:function(t,n){var e=Math.sqrt(n)/2;t.moveTo(-e,0),t.lineTo(e,0)}}};function Ts(t){return Ns.hasOwnProperty(t)?Ns[t]:function(t){if(!Rs.hasOwnProperty(t)){var n=bs(t);Rs[t]={draw:function(t,e){Os(t,n,0,0,Math.sqrt(e)/2)}}}return Rs[t]}(t)}var Rs={};function Ps(t){return t.x}function Ls(t){return t.y}function qs(t){return t.width}function Us(t){return t.height}function js(t){return function(){return t}}function $s(){var t=Ps,n=Ls,e=qs,r=Us,i=js(0),a=null;function u(u,o,s){var l,c=null!=o?o:+t.call(this,u),f=null!=s?s:+n.call(this,u),h=+e.call(this,u),d=+r.call(this,u),p=+i.call(this,u);if(a||(a=l=fo()),p<=0)a.rect(c,f,h,d);else{var g=c+h,m=f+d;a.moveTo(c+p,f),a.lineTo(g-p,f),a.quadraticCurveTo(g,f,g,f+p),a.lineTo(g,m-p),a.quadraticCurveTo(g,m,g-p,m),a.lineTo(c+p,m),a.quadraticCurveTo(c,m,c,m-p),a.lineTo(c,f+p),a.quadraticCurveTo(c,f,c+p,f),a.closePath()}if(l)return a=null,l+""||null}return u.x=function(n){return arguments.length?(t="function"==typeof n?n:js(+n),u):t},u.y=function(t){return arguments.length?(n="function"==typeof t?t:js(+t),u):n},u.width=function(t){return arguments.length?(e="function"==typeof t?t:js(+t),u):e},u.height=function(t){return arguments.length?(r="function"==typeof t?t:js(+t),u):r},u.cornerRadius=function(t){return arguments.length?(i="function"==typeof t?t:js(+t),u):i},u.context=function(t){return arguments.length?(a=null==t?null:t,u):a},u}function Is(){var t,n,e,r,i,a,u,o,s=null;function l(t,n,e){var r=e/2;if(i){var l=u-n,c=t-a;if(l||c){var f=Math.sqrt(l*l+c*c),h=(l/=f)*o,d=(c/=f)*o,p=Math.atan2(c,l);s.moveTo(a-h,u-d),s.lineTo(t-l*r,n-c*r),s.arc(t,n,r,p-Math.PI,p),s.lineTo(a+h,u+d),s.arc(a,u,o,p,p+Math.PI)}else s.arc(t,n,r,0,Ms);s.closePath()}else i=1;a=t,u=n,o=r}function c(a){var u,o,c,f=a.length,h=!1;for(null==s&&(s=c=fo()),u=0;u<=f;++u)!(u<f&&r(o=a[u],u,a))===h&&(h=!h)&&(i=0),h&&l(+t(o,u,a),+n(o,u,a),+e(o,u,a));if(c)return s=null,c+""||null}return c.x=function(n){return arguments.length?(t=n,c):t},c.y=function(t){return arguments.length?(n=t,c):n},c.size=function(t){return arguments.length?(e=t,c):e},c.defined=function(t){return arguments.length?(r=t,c):r},c.context=function(t){return arguments.length?(s=null==t?null:t,c):s},c}function Ws(t){return t.x||0}function Hs(t){return t.y||0}function Ys(t){return t.cornerRadius||0}function Gs(t){return!(!1===t.defined)}var Vs=function(){var t=Eo,n=Co,e=ho(0),r=null,i=Do,a=Fo,u=So,o=null;function s(){var s,l,c,f=+t.apply(this,arguments),h=+n.apply(this,arguments),d=i.apply(this,arguments)-Ao,p=a.apply(this,arguments)-Ao,g=po(p-d),m=p>d;if(o||(o=s=fo()),h<f&&(l=h,h=f,f=l),h>bo)if(g>Mo-bo)o.moveTo(h*mo(d),h*xo(d)),o.arc(0,0,h,d,p,!m),f>bo&&(o.moveTo(f*mo(p),f*xo(p)),o.arc(0,0,f,p,d,m));else{var v,y,x=d,_=p,b=d,w=p,A=g,M=g,k=u.apply(this,arguments)/2,E=k>bo&&(r?+r.apply(this,arguments):_o(f*f+h*h)),C=yo(po(h-f)/2,+e.apply(this,arguments)),D=C,F=C;if(E>bo){var S=ko(E/f*xo(k)),B=ko(E/h*xo(k));(A-=2*S)>bo?(b+=S*=m?1:-1,w-=S):(A=0,b=w=(d+p)/2),(M-=2*B)>bo?(x+=B*=m?1:-1,_-=B):(M=0,x=_=(d+p)/2)}var O=h*mo(x),z=h*xo(x),N=f*mo(w),T=f*xo(w);if(C>bo){var R,P=h*mo(_),L=h*xo(_),q=f*mo(b),U=f*xo(b);if(g<wo&&(R=function(t,n,e,r,i,a,u,o){var s=e-t,l=r-n,c=u-i,f=o-a,h=f*s-c*l;if(!(h*h<bo))return[t+(h=(c*(n-a)-f*(t-i))/h)*s,n+h*l]}(O,z,q,U,P,L,N,T))){var j=O-R[0],$=z-R[1],I=P-R[0],W=L-R[1],H=1/xo(((c=(j*I+$*W)/(_o(j*j+$*$)*_o(I*I+W*W)))>1?0:c<-1?wo:Math.acos(c))/2),Y=_o(R[0]*R[0]+R[1]*R[1]);D=yo(C,(f-Y)/(H-1)),F=yo(C,(h-Y)/(H+1))}}M>bo?F>bo?(v=Bo(q,U,O,z,h,F,m),y=Bo(P,L,N,T,h,F,m),o.moveTo(v.cx+v.x01,v.cy+v.y01),F<C?o.arc(v.cx,v.cy,F,go(v.y01,v.x01),go(y.y01,y.x01),!m):(o.arc(v.cx,v.cy,F,go(v.y01,v.x01),go(v.y11,v.x11),!m),o.arc(0,0,h,go(v.cy+v.y11,v.cx+v.x11),go(y.cy+y.y11,y.cx+y.x11),!m),o.arc(y.cx,y.cy,F,go(y.y11,y.x11),go(y.y01,y.x01),!m))):(o.moveTo(O,z),o.arc(0,0,h,x,_,!m)):o.moveTo(O,z),f>bo&&A>bo?D>bo?(v=Bo(N,T,P,L,f,-D,m),y=Bo(O,z,q,U,f,-D,m),o.lineTo(v.cx+v.x01,v.cy+v.y01),D<C?o.arc(v.cx,v.cy,D,go(v.y01,v.x01),go(y.y01,y.x01),!m):(o.arc(v.cx,v.cy,D,go(v.y01,v.x01),go(v.y11,v.x11),!m),o.arc(0,0,f,go(v.cy+v.y11,v.cx+v.x11),go(y.cy+y.y11,y.cx+y.x11),m),o.arc(y.cx,y.cy,D,go(y.y11,y.x11),go(y.y01,y.x01),!m))):o.arc(0,0,f,w,b,m):o.lineTo(N,T)}else o.moveTo(0,0);if(o.closePath(),s)return o=null,s+""||null}return s.centroid=function(){var e=(+t.apply(this,arguments)+ +n.apply(this,arguments))/2,r=(+i.apply(this,arguments)+ +a.apply(this,arguments))/2-wo/2;return[mo(r)*e,xo(r)*e]},s.innerRadius=function(n){return arguments.length?(t="function"==typeof n?n:ho(+n),s):t},s.outerRadius=function(t){return arguments.length?(n="function"==typeof t?t:ho(+t),s):n},s.cornerRadius=function(t){return arguments.length?(e="function"==typeof t?t:ho(+t),s):e},s.padRadius=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:ho(+t),s):r},s.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:ho(+t),s):i},s.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:ho(+t),s):a},s.padAngle=function(t){return arguments.length?(u="function"==typeof t?t:ho(+t),s):u},s.context=function(t){return arguments.length?(o=null==t?null:t,s):o},s}().startAngle(function(t){return t.startAngle||0}).endAngle(function(t){return t.endAngle||0}).padAngle(function(t){return t.padAngle||0}).innerRadius(function(t){return t.innerRadius||0}).outerRadius(function(t){return t.outerRadius||0}).cornerRadius(Ys),Xs=Po().x(Ws).y1(Hs).y0(function(t){return(t.y||0)+(t.height||0)}).defined(Gs),Zs=Po().y(Hs).x1(Ws).x0(function(t){return(t.x||0)+(t.width||0)}).defined(Gs),Js=Ro().x(Ws).y(Hs).defined(Gs),Qs=$s().x(Ws).y(Hs).width(function(t){return t.width||0}).height(function(t){return t.height||0}).cornerRadius(Ys),Ks=function(){var t=ho(Lo),n=ho(64),e=null;function r(){var r;if(e||(e=r=fo()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),r)return e=null,r+""||null}return r.type=function(n){return arguments.length?(t="function"==typeof n?n:ho(n),r):t},r.size=function(t){return arguments.length?(n="function"==typeof t?t:ho(+t),r):n},r.context=function(t){return arguments.length?(e=null==t?null:t,r):e},r}().type(function(t){return Ts(t.shape||"circle")}).size(function(t){return null==t.size?64:t.size}),tl=Is().x(Ws).y(Hs).defined(Gs).size(function(t){return t.size||1});function nl(t,n,e,r){return Qs.context(t)(n,e,r)}function el(t,n){return n.stroke&&0!==n.opacity&&0!==n.strokeOpacity&&t.expand(null!=n.strokeWidth?+n.strokeWidth:1),t}var rl,il=Ms-1e-8;function al(t){return rl=t,al}function ul(){}function ol(t,n){rl.add(t,n)}al.beginPath=ul,al.closePath=ul,al.moveTo=ol,al.lineTo=ol,al.rect=function(t,n,e,r){ol(t,n),ol(t+e,n+r)},al.quadraticCurveTo=function(t,n,e,r){ol(t,n),ol(e,r)},al.bezierCurveTo=function(t,n,e,r,i,a){ol(t,n),ol(e,r),ol(i,a)},al.arc=function(t,n,e,r,i,a){if(Math.abs(i-r)>il)return ol(t-e,n-e),void ol(t+e,n+e);var u,o,s,l,c=1/0,f=-1/0,h=1/0,d=-1/0;function p(t){s=e*Math.cos(t),l=e*Math.sin(t),s<c&&(c=s),s>f&&(f=s),l<h&&(h=l),l>d&&(d=l)}if(p(r),p(i),i!==r)if((r%=Ms)<0&&(r+=Ms),(i%=Ms)<0&&(i+=Ms),i<r&&(a=!a,u=r,r=i,i=u),a)for(i-=Ms,u=r-r%As,o=0;o<4&&u>i;++o,u-=As)p(u);else for(u=r-r%As+As,o=0;o<4&&u<i;++o,u+=As)p(u);ol(t+c,n+h),ol(t+f,n+d)};var sl=(sl=no(1,1))?sl.getContext("2d"):null;const ll=new Hu;function cl(t){return function(n,e){if(!sl)return!0;t(sl,n),ll.clear().union(n.bounds).intersect(e).round();const{x1:r,y1:i,x2:a,y2:u}=ll;for(let t=i;t<=u;++t)for(let n=r;n<=a;++n)if(sl.isPointInPath(n,t))return!0;return!1}}function fl(t,n){return n.contains(t.x||0,t.y||0)}function hl(t,n){const e=t.x||0,r=t.y||0,i=t.width||0,a=t.height||0;return n.intersects(ll.set(e,r,e+i,r+a))}function dl(t,n){const e=t.x||0,r=t.y||0;return pl(n,e,r,null!=t.x2?t.x2:e,null!=t.y2?t.y2:r)}function pl(t,n,e,r,i){const{x1:a,y1:u,x2:o,y2:s}=t,l=r-n,c=i-e;let f,h,d,p,g=0,m=1;for(p=0;p<4;++p){if(0===p&&(f=-l,h=-(a-n)),1===p&&(f=l,h=o-n),2===p&&(f=-c,h=-(u-e)),3===p&&(f=c,h=s-e),Math.abs(f)<1e-10&&h<0)return!1;if(d=h/f,f<0){if(d>m)return!1;d>g&&(g=d)}else if(f>0){if(d<g)return!1;d<m&&(m=d)}}return!0}function gl(t,n,e){return Xu(e)?function(t,n,e){const r=e.width(),i=e.height(),a=n.stops,u=a.length,o="radial"===n.gradient?t.createRadialGradient(e.x1+(n.x1||.5)*r,e.y1+(n.y1||.5)*i,Math.max(r,i)*(n.r1||0),e.x1+(n.x2||.5)*r,e.y1+(n.y2||.5)*i,Math.max(r,i)*(n.r2||.5)):t.createLinearGradient(e.x1+(n.x1||0)*r,e.y1+(n.y1||0)*i,e.x1+(n.x2||1)*r,e.y1+(n.y2||0)*i);for(let t=0;t<u;++t)o.addColorStop(a[t].offset,a[t].color);return o}(t,e,n.bounds):e}function ml(t,n,e){return(e*=null==n.fillOpacity?1:n.fillOpacity)>0&&(t.globalAlpha=e,t.fillStyle=gl(t,n,n.fill),!0)}var vl=[];function yl(t,n,e){var r=null!=(r=n.strokeWidth)?r:1;return!(r<=0)&&((e*=null==n.strokeOpacity?1:n.strokeOpacity)>0&&(t.globalAlpha=e,t.strokeStyle=gl(t,n,n.stroke),t.lineWidth=r,t.lineCap=n.strokeCap||"butt",t.lineJoin=n.strokeJoin||"miter",t.miterLimit=n.strokeMiterLimit||10,t.setLineDash&&(t.setLineDash(n.strokeDash||vl),t.lineDashOffset=n.strokeDashOffset||0),!0))}function xl(t,n){return t.zindex-n.zindex||t.index-n.index}function _l(t){if(!t.zdirty)return t.zitems;var n,e,r,i=t.items,a=[];for(e=0,r=i.length;e<r;++e)(n=i[e]).index=e,n.zindex&&a.push(n);return t.zdirty=!1,t.zitems=a.sort(xl)}function bl(t,n){var e,r,i=t.items;if(i&&i.length){var a=_l(t);if(a&&a.length){for(e=0,r=i.length;e<r;++e)i[e].zindex||n(i[e]);i=a}for(e=0,r=i.length;e<r;++e)n(i[e])}}function wl(t,n){var e,r,i=t.items;if(!i||!i.length)return null;var a=_l(t);for(a&&a.length&&(i=a),r=i.length;--r>=0;)if(e=n(i[r]))return e;if(i===a)for(r=(i=t.items).length;--r>=0;)if(!i[r].zindex&&(e=n(i[r])))return e;return null}function Al(t){return function(n,e,r){bl(e,function(e){r&&!r.intersects(e.bounds)||Ml(t,n,e,e)})}}function Ml(t,n,e,r){var i=null==e.opacity?1:e.opacity;0!==i&&(t(n,r)||(e.fill&&ml(n,e,i)&&n.fill(),e.stroke&&yl(n,e,i)&&n.stroke()))}function kl(t){return t=t||m,function(n,e,r,i,a,u){return r*=n.pixelRatio,i*=n.pixelRatio,wl(e,function(e){var o=e.bounds;if((!o||o.contains(a,u))&&o)return t(n,e,r,i,a,u)?e:void 0})}}function El(t,n){return function(e,r,i,a){var u,o,s=Array.isArray(r)?r[0]:r,l=null==n?s.fill:n,c=s.stroke&&e.isPointInStroke;return c&&(u=s.strokeWidth,o=s.strokeCap,e.lineWidth=null!=u?u:1,e.lineCap=null!=o?o:"butt"),!t(e,r)&&(l&&e.isPointInPath(i,a)||c&&e.isPointInStroke(i,a))}}function Cl(t){return kl(El(t))}function Dl(t,n){return"translate("+t+","+n+")"}function Fl(t){return"rotate("+t+")"}function Sl(t){return Dl(t.x||0,t.y||0)}function Bl(t,n,e){function r(t,e){var r=e.x||0,i=e.y||0,a=e.angle||0;t.translate(r,i),a&&t.rotate(a*=ws),t.beginPath(),n(t,e),a&&t.rotate(-a),t.translate(-r,-i)}return{type:t,tag:"path",nested:!1,attr:function(t,e){t("transform",function(t){return Dl(t.x||0,t.y||0)+(t.angle?" "+Fl(t.angle):"")}(e)),t("d",n(null,e))},bound:function(t,e){var r=e.x||0,i=e.y||0;return n(al(t),e),el(t,e).translate(r,i),e.angle&&t.rotate(e.angle*ws,r,i),t},draw:Al(r),pick:Cl(r),isect:e||cl(r)}}var Ol=Bl("arc",function(t,n){return Vs.context(t)(n)});function zl(t,n,e){function r(t,e){t.beginPath(),n(t,e)}var i,a=El(r);return{type:t,tag:"path",nested:!0,attr:function(t,e){var r=e.mark.items;r.length&&t("d",n(null,r))},bound:function(t,e){var r=e.items;return 0===r.length?t:(n(al(t),r),el(t,r[0]))},draw:(i=r,function(t,n,e){!n.items.length||e&&!e.intersects(n.bounds)||Ml(i,t,n.items[0],n.items)}),pick:function(t,n,e,r,i,u){var o=n.items,s=n.bounds;return!o||!o.length||s&&!s.contains(i,u)?null:(e*=t.pixelRatio,r*=t.pixelRatio,a(t,o,e,r)?o[0]:null)},isect:fl,tip:e}}var Nl=zl("area",function(t,n){var e=n[0],r=e.interpolate||"linear";return("horizontal"===e.orient?Zs:Xs).curve(ys(r,e.orient,e.tension)).context(t)(n)},function(t,n){for(var e,r,i="horizontal"===t[0].orient?n[1]:n[0],a="horizontal"===t[0].orient?"y":"x",u=t.length,o=1/0;--u>=0;)!1!==t[u].defined&&(r=Math.abs(t[u][a]-i))<o&&(o=r,e=t[u]);return e}),Tl=1;function Rl(t,n,e){var r=n.clip,i=t._defs,a=n.clip_id||(n.clip_id="clip"+Tl++),u=i.clipping[a]||(i.clipping[a]={id:a});return Y(r)?u.path=r(null):(u.width=e.width||0,u.height=e.height||0),"url(#"+a+")"}var Pl=.5;function Ll(t,n){var e=n.stroke?Pl:0;t.beginPath(),nl(t,n,e,e)}var ql=El(Ll);var Ul={type:"group",tag:"g",nested:!1,attr:function(t,n){t("transform",Sl(n))},bound:function(t,n){if(!n.clip&&n.items)for(var e=n.items,r=0,i=e.length;r<i;++r)t.union(e[r].bounds);return(n.clip||n.width||n.height)&&!n.noBound&&t.add(0,0).add(n.width||0,n.height||0),el(t,n),t.translate(n.x||0,n.y||0)},draw:function(t,n,e){var r=this;bl(n,function(n){var i,a=n.x||0,u=n.y||0,o=n.width||0,s=n.height||0;t.save(),t.translate(a,u),(n.stroke||n.fill)&&(i=null==n.opacity?1:n.opacity)>0&&(Ll(t,n),n.fill&&ml(t,n,i)&&t.fill(),n.stroke&&yl(t,n,i)&&t.stroke()),n.clip&&(t.beginPath(),t.rect(0,0,o,s),t.clip()),e&&e.translate(-a,-u),bl(n,function(n){r.draw(t,n,e)}),e&&e.translate(a,u),t.restore()})},pick:function(t,n,e,r,i,a){if(n.bounds&&!n.bounds.contains(i,a)||!n.items)return null;var u=this,o=e*t.pixelRatio,s=r*t.pixelRatio;return wl(n,function(l){var c,f,h,d;if(!(d=l.bounds)||d.contains(i,a))return f=l.x||0,h=l.y||0,t.save(),t.translate(f,h),f=i-f,h=a-h,!(c=wl(l,function(t){return function(t,n,e){return(!1!==t.interactive||"group"===t.marktype)&&t.bounds&&t.bounds.contains(n,e)}(t,f,h)?u.pick(t,e,r,f,h):null}))&&!1!==n.interactive&&(l.fill||l.stroke)&&ql(t,l,o,s)&&(c=l),t.restore(),c||null})},isect:hl,background:function(t,n){var e=n.stroke?Pl:0;t("class","background"),t("d",nl(null,n,e,e))},foreground:function(t,n,e){t("clip-path",n.clip?Rl(e,n,n):null)}};function jl(t,n){var e=t.image;return e&&e.url===t.url||(e={loaded:!1,width:0,height:0},n.loadImage(t.url).then(function(n){t.image=n,t.image.url=t.url})),e}function $l(t,n){return"center"===t?n/2:"right"===t?n:0}function Il(t,n){return"middle"===t?n/2:"bottom"===t?n:0}var Wl={type:"image",tag:"image",nested:!1,attr:function(t,n,e){var r=jl(n,e),i=n.x||0,a=n.y||0,u=(null!=n.width?n.width:r.width)||0,o=(null!=n.height?n.height:r.height)||0,s=!1===n.aspect?"none":"xMidYMid";i-=$l(n.align,u),a-=Il(n.baseline,o),t("href",r.src||"","http://www.w3.org/1999/xlink","xlink:href"),t("transform",Dl(i,a)),t("width",u),t("height",o),t("preserveAspectRatio",s)},bound:function(t,n){var e=n.image,r=n.x||0,i=n.y||0,a=(null!=n.width?n.width:e&&e.width)||0,u=(null!=n.height?n.height:e&&e.height)||0;return r-=$l(n.align,a),i-=Il(n.baseline,u),t.set(r,i,r+a,i+u)},draw:function(t,n,e){var r=this;bl(n,function(n){if(!e||e.intersects(n.bounds)){var i,a,u,o,s=jl(n,r),l=n.x||0,c=n.y||0,f=(null!=n.width?n.width:s.width)||0,h=(null!=n.height?n.height:s.height)||0;l-=$l(n.align,f),c-=Il(n.baseline,h),!1!==n.aspect&&(a=s.width/s.height,u=n.width/n.height,a==a&&u==u&&a!==u&&(u<a?(c+=(h-(o=f/a))/2,h=o):(l+=(f-(o=h*a))/2,f=o))),s.loaded&&(t.globalAlpha=null!=(i=n.opacity)?i:1,t.drawImage(s,l,c,f,h))}})},pick:kl(),isect:m,get:jl,xOffset:$l,yOffset:Il},Hl=zl("line",function(t,n){var e=n[0],r=e.interpolate||"linear";return Js.curve(ys(r,e.orient,e.tension)).context(t)(n)},function(t,n){for(var e,r,i=Math.pow(t[0].strokeWidth||1,2),a=t.length;--a>=0;)if(!1!==t[a].defined&&(e=t[a].x-n[0])*e+(r=t[a].y-n[1])*r<i)return t[a];return null});function Yl(t,n){var e=n.path;if(null==e)return!0;var r=n.pathCache;r&&r.path===e||((n.pathCache=r=bs(e)).path=e),Os(t,r,n.x,n.y)}var Gl={type:"path",tag:"path",nested:!1,attr:function(t,n){t("transform",Sl(n)),t("d",n.path)},bound:function(t,n){return Yl(al(t),n)?t.set(0,0,0,0):el(t,n)},draw:Al(Yl),pick:Cl(Yl),isect:cl(Yl)};function Vl(t,n){t.beginPath(),nl(t,n)}var Xl={type:"rect",tag:"path",nested:!1,attr:function(t,n){t("d",nl(null,n))},bound:function(t,n){var e,r;return el(t.set(e=n.x||0,r=n.y||0,e+n.width||0,r+n.height||0),n)},draw:Al(Vl),pick:Cl(Vl),isect:hl};function Zl(t,n,e){var r,i,a,u;return!(!n.stroke||!yl(t,n,e))&&(r=n.x||0,i=n.y||0,a=null!=n.x2?n.x2:r,u=null!=n.y2?n.y2:i,t.beginPath(),t.moveTo(r,i),t.lineTo(a,u),!0)}var Jl,Ql={type:"rule",tag:"line",nested:!1,attr:function(t,n){t("transform",Sl(n)),t("x2",null!=n.x2?n.x2-(n.x||0):0),t("y2",null!=n.y2?n.y2-(n.y||0):0)},bound:function(t,n){var e,r;return el(t.set(e=n.x||0,r=n.y||0,null!=n.x2?n.x2:e,null!=n.y2?n.y2:r),n)},draw:function(t,n,e){bl(n,function(n){if(!e||e.intersects(n.bounds)){var r=null==n.opacity?1:n.opacity;r&&Zl(t,n,r)&&t.stroke()}})},pick:kl(function(t,n,e,r){return!!t.isPointInStroke&&Zl(t,n,1)&&t.isPointInStroke(e,r)}),isect:dl},Kl=Bl("shape",function(t,n){return(n.mark.shape||n.shape).context(t)(n)}),tc=Bl("symbol",function(t,n){return Ks.context(t)(n)},fl),nc={height:uc,measureWidth:ic,estimateWidth:ec,width:ec,canvas:oc};function ec(t){return Jl=uc(t),rc(sc(t))}function rc(t){return~~(.8*t.length*Jl)}function ic(t){return uc(t)<=0?0:(sl.font=cc(t),ac(sc(t)))}function ac(t){return sl.measureText(t).width}function uc(t){return null!=t.fontSize?t.fontSize:11}function oc(t){nc.width=t&&sl?ic:ec}function sc(t){var n=t.text;return null==n?"":t.limit>0?function(t){var n,e=+t.limit,r=t.text+"";nc.width===ic?(sl.font=cc(t),n=ac):(Jl=uc(t),n=rc);if(n(r)<e)return r;var i,a=t.ellipsis||"…",u="rtl"===t.dir,o=0,s=r.length;if(e-=n(a),u){for(;o<s;)i=o+s>>>1,n(r.slice(i))>e?o=i+1:s=i;return a+r.slice(o)}for(;o<s;)i=1+(o+s>>>1),n(r.slice(0,i))<e?o=i:s=i-1;return r.slice(0,o)+a}(t):n+""}function lc(t,n){var e=t.font;return(n&&e?String(e).replace(/"/g,"'"):e)||"sans-serif"}function cc(t,n){return(t.fontStyle?t.fontStyle+" ":"")+(t.fontVariant?t.fontVariant+" ":"")+(t.fontWeight?t.fontWeight+" ":"")+uc(t)+"px "+lc(t,n)}function fc(t){var n=t.baseline,e=uc(t);return Math.round("top"===n?.79*e:"middle"===n?.3*e:"bottom"===n?-.21*e:0)}oc(!0);var hc={left:"start",center:"middle",right:"end"},dc=new Hu;function pc(t){var n,e=t.x||0,r=t.y||0,i=t.radius||0;return i&&(n=(t.theta||0)-As,e+=i*Math.cos(n),r+=i*Math.sin(n)),dc.x1=e,dc.y1=r,dc}function gc(t,n,e){var r,i=nc.height(n),a=n.align,u=pc(n),o=u.x1,s=u.y1,l=n.dx||0,c=(n.dy||0)+fc(n)-Math.round(.8*i);if(r=nc.width(n),"center"===a?l-=r/2:"right"===a&&(l-=r),t.set(l+=o,c+=s,l+r,c+i),n.angle&&!e)t.rotate(n.angle*ws,o,s);else if(2===e)return t.rotatedPoints(n.angle*ws,o,s);return t}var mc={arc:Ol,area:Nl,group:Ul,image:Wl,line:Hl,path:Gl,rect:Xl,rule:Ql,shape:Kl,symbol:tc,text:{type:"text",tag:"text",nested:!1,attr:function(t,n){var e,r=n.dx||0,i=(n.dy||0)+fc(n),a=pc(n),u=a.x1,o=a.y1,s=n.angle||0;t("text-anchor",hc[n.align]||"start"),s?(e=Dl(u,o)+" "+Fl(s),(r||i)&&(e+=" "+Dl(r,i))):e=Dl(u+r,o+i),t("transform",e)},bound:gc,draw:function(t,n,e){bl(n,function(n){var r,i,a,u,o;e&&!e.intersects(n.bounds)||(o=sc(n))&&(0===(r=null==n.opacity?1:n.opacity)||n.fontSize<=0||(t.font=cc(n),t.textAlign=n.align||"left",a=(i=pc(n)).x1,u=i.y1,n.angle&&(t.save(),t.translate(a,u),t.rotate(n.angle*ws),a=u=0),a+=n.dx||0,u+=(n.dy||0)+fc(n),n.fill&&ml(t,n,r)&&t.fillText(o,a,u),n.stroke&&yl(t,n,r)&&t.strokeText(o,a,u),n.angle&&t.restore()))})},pick:kl(function(t,n,e,r,i,a){if(n.fontSize<=0)return!1;if(!n.angle)return!0;var u=pc(n),o=u.x1,s=u.y1,l=gc(dc,n,1),c=-n.angle*ws,f=Math.cos(c),h=Math.sin(c),d=f*i-h*a+(o-f*o+h*s),p=h*i+f*a+(s-h*o-f*s);return l.contains(d,p)}),isect:function(t,n){var e=gc(dc,t,2);return pl(n,e[0],e[1],e[2],e[3])||pl(n,e[0],e[1],e[4],e[5])||pl(n,e[4],e[5],e[6],e[7])||pl(n,e[2],e[3],e[6],e[7])}},trail:zl("trail",function(t,n){return tl.context(t)(n)},function(t,n){for(var e,r,i=t.length;--i>=0;)if(!1!==t[i].defined&&(e=t[i].x-n[0])*e+(r=t[i].y-n[1])*r<(e=t[i].size||1)*e)return t[i];return null})};function vc(t,n,e){var r=mc[t.mark.marktype],i=n||r.bound;return r.nested&&(t=t.mark),i(t.bounds||(t.bounds=new Hu),t,e)}var yc={mark:null};function xc(t,n,e){var r,i,a,u,o=mc[t.marktype],s=o.bound,l=t.items,c=l&&l.length;if(o.nested)return c?a=l[0]:(yc.mark=t,a=yc),u=vc(a,s,e),n=n&&n.union(u)||u;if(n=n||t.bounds&&t.bounds.clear()||new Hu,c)for(r=0,i=l.length;r<i;++r)n.union(vc(l[r],s,e));return t.bounds=n}var _c=["marktype","name","role","interactive","clip","items","zindex","x","y","width","height","align","baseline","fill","fillOpacity","opacity","stroke","strokeOpacity","strokeWidth","strokeCap","strokeDash","strokeDashOffset","startAngle","endAngle","innerRadius","outerRadius","cornerRadius","padAngle","interpolate","tension","orient","defined","url","path","x2","y2","size","shape","text","angle","theta","radius","dx","dy","font","fontSize","fontWeight","fontStyle","fontVariant"];function bc(t,n){return JSON.stringify(t,_c,n)}function wc(t){return function t(n){var e,r,i,a=n.marktype,u=n.items;if(u)for(r=0,i=u.length;r<i;++r)e=a?"mark":"group",u[r][e]=n,u[r].zindex&&(u[r][e].zdirty=!0),"group"===(a||e)&&t(u[r]);a&&xc(n);return n}("string"==typeof t?JSON.parse(t):t)}function Ac(t){arguments.length?this.root=wc(t):(this.root=kc({marktype:"group",name:"root",role:"frame"}),this.root.items=[new to(this.root)])}var Mc=Ac.prototype;function kc(t,n){return{bounds:new Hu,clip:!!t.clip,group:n,interactive:!1!==t.interactive,items:[],marktype:t.marktype,name:t.name||void 0,role:t.role||void 0,zindex:t.zindex||0}}function Ec(t,n,e){return!t&&"undefined"!=typeof document&&document.createElement&&(t=document),t?e?t.createElementNS(e,n):t.createElement(n):null}function Cc(t,n){n=n.toLowerCase();for(var e=t.childNodes,r=0,i=e.length;r<i;++r)if(e[r].tagName.toLowerCase()===n)return e[r]}function Dc(t,n,e,r){var i,a=t.childNodes[n];return a&&a.tagName.toLowerCase()===e.toLowerCase()||(i=a||null,a=Ec(t.ownerDocument,e,r),t.insertBefore(a,i)),a}function Fc(t,n){for(var e=t.childNodes,r=e.length;r>n;)t.removeChild(e[--r]);return t}function Sc(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function Bc(t,n){var e=n.getBoundingClientRect();return[t.clientX-e.left-(n.clientLeft||0),t.clientY-e.top-(n.clientTop||0)]}function Oc(t,n){this._active=null,this._handlers={},this._loader=t||wr(),this._tooltip=n||zc}function zc(t,n,e,r){t.element().setAttribute("title",r||"")}Mc.toJSON=function(t){return bc(this.root,t||0)},Mc.mark=function(t,n,e){var r=kc(t,n=n||this.root.items[0]);return n.items[e]=r,r.zindex&&(r.group.zdirty=!0),r};var Nc=Oc.prototype;function Tc(t){this._el=null,this._bgcolor=null,this._loader=new ro(t)}Nc.initialize=function(t,n,e){return this._el=t,this._obj=e||null,this.origin(n)},Nc.element=function(){return this._el},Nc.canvas=function(){return this._el&&this._el.firstChild},Nc.origin=function(t){return arguments.length?(this._origin=t||[0,0],this):this._origin.slice()},Nc.scene=function(t){return arguments.length?(this._scene=t,this):this._scene},Nc.on=function(){},Nc.off=function(){},Nc._handlerIndex=function(t,n,e){for(var r=t?t.length:0;--r>=0;)if(t[r].type===n&&(!e||t[r].handler===e))return r;return-1},Nc.handlers=function(t){var n,e=this._handlers,r=[];if(t)r.push.apply(r,e[this.eventName(t)]);else for(n in e)r.push.apply(r,e[n]);return r},Nc.eventName=function(t){var n=t.indexOf(".");return n<0?t:t.slice(0,n)},Nc.handleHref=function(t,n,e){this._loader.sanitize(e,{context:"href"}).then(function(n){var e=new MouseEvent(t.type,t),r=Ec(null,"a");for(var i in n)r.setAttribute(i,n[i]);r.dispatchEvent(e)}).catch(function(){})},Nc.handleTooltip=function(t,n,e){if(n&&null!=n.tooltip){n=function(t,n,e,r){var i,a,u=t&&t.mark;if(u&&(i=mc[u.marktype]).tip){for((a=Bc(n,e))[0]-=r[0],a[1]-=r[1];t=t.mark.group;)a[0]-=t.x||0,a[1]-=t.y||0;t=i.tip(u.items,a)}return t}(n,t,this.canvas(),this._origin);var r=e&&n&&n.tooltip||null;this._tooltip.call(this._obj,this,t,n,r)}},Nc.getItemBoundingClientRect=function(t){if(n=this.canvas()){for(var n,e=n.getBoundingClientRect(),r=this._origin,i=t.bounds,a=i.x1+r[0]+e.left,u=i.y1+r[1]+e.top,o=i.width(),s=i.height();t.mark&&(t=t.mark.group);)a+=t.x||0,u+=t.y||0;return{x:a,y:u,width:o,height:s,left:a,top:u,right:a+o,bottom:u+s}}};var Rc=Tc.prototype;Rc.initialize=function(t,n,e,r,i){return this._el=t,this.resize(n,e,r,i)},Rc.element=function(){return this._el},Rc.canvas=function(){return this._el&&this._el.firstChild},Rc.background=function(t){return 0===arguments.length?this._bgcolor:(this._bgcolor=t,this)},Rc.resize=function(t,n,e,r){return this._width=t,this._height=n,this._origin=e||[0,0],this._scale=r||1,this},Rc.dirty=function(){},Rc.render=function(t){var n=this;return n._call=function(){n._render(t)},n._call(),n._call=null,n},Rc._render=function(){},Rc.renderAsync=function(t){var n=this.render(t);return this._ready?this._ready.then(function(){return n}):Promise.resolve(n)},Rc._load=function(t,n){var e=this,r=e._loader[t](n);if(!e._ready){var i=e._call;e._ready=e._loader.ready().then(function(t){t&&i(),e._ready=null})}return r},Rc.sanitizeURL=function(t){return this._load("sanitizeURL",t)},Rc.loadImage=function(t){return this._load("loadImage",t)};var Pc="mouseout";function Lc(t,n){Oc.call(this,t,n),this._down=null,this._touch=null,this._first=!0}var qc=et(Lc,Oc);function Uc(t,n,e){return function(r){var i=this._active,a=this.pickEvent(r);a===i?this.fire(t,r):(i&&i.exit||this.fire(e,r),this._active=a,this.fire(n,r),this.fire(t,r))}}function jc(t){return function(n){this.fire(t,n),this._active=null}}qc.initialize=function(t,n,e){var r=this._canvas=t&&Cc(t,"canvas");if(r){var i=this;this.events.forEach(function(t){r.addEventListener(t,function(n){qc[t]?qc[t].call(i,n):i.fire(t,n)})})}return Oc.prototype.initialize.call(this,t,n,e)},qc.canvas=function(){return this._canvas},qc.context=function(){return this._canvas.getContext("2d")},qc.events=["keydown","keypress","keyup","dragenter","dragleave","dragover","mousedown","mouseup","mousemove","mouseout","mouseover","click","dblclick","wheel","mousewheel","touchstart","touchmove","touchend"],qc.DOMMouseScroll=function(t){this.fire("mousewheel",t)},qc.mousemove=Uc("mousemove","mouseover","mouseout"),qc.dragover=Uc("dragover","dragenter","dragleave"),qc.mouseout=jc("mouseout"),qc.dragleave=jc("dragleave"),qc.mousedown=function(t){this._down=this._active,this.fire("mousedown",t)},qc.click=function(t){this._down===this._active&&(this.fire("click",t),this._down=null)},qc.touchstart=function(t){this._touch=this.pickEvent(t.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire("touchstart",t,!0)},qc.touchmove=function(t){this.fire("touchmove",t,!0)},qc.touchend=function(t){this.fire("touchend",t,!0),this._touch=null},qc.fire=function(t,n,e){var r,i,a=e?this._touch:this._active,u=this._handlers[t];if(n.vegaType=t,"click"===t&&a&&a.href?this.handleHref(n,a,a.href):"mousemove"!==t&&t!==Pc||this.handleTooltip(n,a,t!==Pc),u)for(r=0,i=u.length;r<i;++r)u[r].handler.call(this._obj,n,a)},qc.on=function(t,n){var e=this.eventName(t),r=this._handlers;return this._handlerIndex(r[e],t,n)<0&&(r[e]||(r[e]=[])).push({type:t,handler:n}),this},qc.off=function(t,n){var e=this.eventName(t),r=this._handlers[e],i=this._handlerIndex(r,t,n);return i>=0&&r.splice(i,1),this},qc.pickEvent=function(t){var n=Bc(t,this._canvas),e=this._origin;return this.pick(this._scene,n[0],n[1],n[0]-e[0],n[1]-e[1])},qc.pick=function(t,n,e,r,i){var a=this.context();return mc[t.marktype].pick.call(this,a,t,n,e,r,i)};var $c="undefined"!=typeof window&&window.devicePixelRatio||1;function Ic(t){Tc.call(this,t),this._redraw=!1,this._dirty=new Hu}var Wc=et(Ic,Tc),Hc=Tc.prototype,Yc=new Hu;function Gc(t,n){Oc.call(this,t,n);var e=this;e._hrefHandler=Xc(e,function(t,n){n&&n.href&&e.handleHref(t,n,n.href)}),e._tooltipHandler=Xc(e,function(t,n){e.handleTooltip(t,n,t.type!==Pc)})}Wc.initialize=function(t,n,e,r,i,a){return this._options=a,this._canvas=no(1,1,a&&a.type),t&&(Fc(t,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),Hc.initialize.call(this,t,n,e,r,i)},Wc.resize=function(t,n,e,r){return Hc.resize.call(this,t,n,e,r),function(t,n,e,r,i,a){var u,o="undefined"!=typeof HTMLElement&&t instanceof HTMLElement&&null!=t.parentNode,s=t.getContext("2d"),l=o?$c:i;for(u in t.width=n*l,t.height=e*l,a)s[u]=a[u];o&&1!==l&&(t.style.width=n+"px",t.style.height=e+"px"),s.pixelRatio=l,s.setTransform(l,0,0,l,l*r[0],l*r[1])}(this._canvas,this._width,this._height,this._origin,this._scale,this._options&&this._options.context),this._redraw=!0,this},Wc.canvas=function(){return this._canvas},Wc.context=function(){return this._canvas?this._canvas.getContext("2d"):null},Wc.dirty=function(t){var n=function(t,n){if(null==n)return t;for(var e=Yc.clear().union(t);null!=n;n=n.mark.group)e.translate(n.x||0,n.y||0);return e}(t.bounds,t.mark.group);this._dirty.union(n)},Wc._render=function(t){var n=this.context(),e=this._origin,r=this._width,i=this._height,a=this._dirty;return n.save(),this._redraw||a.empty()?(this._redraw=!1,a=null):a=function(t,n,e){return n.expand(1).round(),n.translate(-e[0]%1,-e[1]%1),t.beginPath(),t.rect(n.x1,n.y1,n.width(),n.height()),t.clip(),n}(n,a,e),this.clear(-e[0],-e[1],r,i),this.draw(n,t,a),n.restore(),this._dirty.clear(),this},Wc.draw=function(t,n,e){var r=mc[n.marktype];n.clip&&function(t,n){var e=n.clip;if(t.save(),t.beginPath(),Y(e))e(t);else{var r=n.group;t.rect(0,0,r.width||0,r.height||0)}t.clip()}(t,n),r.draw.call(this,t,n,e),n.clip&&t.restore()},Wc.clear=function(t,n,e,r){var i=this.context();i.clearRect(t,n,e,r),null!=this._bgcolor&&(i.fillStyle=this._bgcolor,i.fillRect(t,n,e,r))};var Vc=et(Gc,Oc);function Xc(t,n){return function(e){var r=e.target.__data__;e.vegaType=e.type,r=Array.isArray(r)?r[0]:r,n.call(t._obj,e,r)}}function Zc(t,n,e){var r,i,a="<"+t;if(n)for(r in n)null!=(i=n[r])&&(a+=" "+r+'="'+i+'"');return e&&(a+=" "+e),a+">"}function Jc(t){return"</"+t+">"}Vc.initialize=function(t,n,e){var r=this._svg;return r&&(r.removeEventListener("click",this._hrefHandler),r.removeEventListener("mousemove",this._tooltipHandler),r.removeEventListener(Pc,this._tooltipHandler)),this._svg=r=t&&Cc(t,"svg"),r&&(r.addEventListener("click",this._hrefHandler),r.addEventListener("mousemove",this._tooltipHandler),r.addEventListener(Pc,this._tooltipHandler)),Oc.prototype.initialize.call(this,t,n,e)},Vc.canvas=function(){return this._svg},Vc.on=function(t,n){var e=this.eventName(t),r=this._handlers;if(this._handlerIndex(r[e],t,n)<0){var i={type:t,handler:n,listener:Xc(this,n)};(r[e]||(r[e]=[])).push(i),this._svg&&this._svg.addEventListener(e,i.listener)}return this},Vc.off=function(t,n){var e=this.eventName(t),r=this._handlers[e],i=this._handlerIndex(r,t,n);return i>=0&&(this._svg&&this._svg.removeEventListener(e,r[i].listener),r.splice(i,1)),this};var Qc={version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Kc={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"},tf=Object.keys(Kc),nf=Qc.xmlns;function ef(t){Tc.call(this,t),this._dirtyID=1,this._dirty=[],this._svg=null,this._root=null,this._defs=null}var rf=et(ef,Tc),af=Tc.prototype;function uf(t,n,e){var r,i,a;if("radial"===n.gradient){var u=Dc(t,e++,"pattern",nf);u.setAttribute("id",Vu+n.id),u.setAttribute("viewBox","0,0,1,1"),u.setAttribute("width","100%"),u.setAttribute("height","100%"),u.setAttribute("preserveAspectRatio","xMidYMid slice"),(u=Dc(u,0,"rect",nf)).setAttribute("width","1"),u.setAttribute("height","1"),u.setAttribute("fill","url("+gf()+"#"+n.id+")"),(t=Dc(t,e++,"radialGradient",nf)).setAttribute("id",n.id),t.setAttribute("fx",n.x1),t.setAttribute("fy",n.y1),t.setAttribute("fr",n.r1),t.setAttribute("cx",n.x2),t.setAttribute("cy",n.y2),t.setAttribute("r",n.r2)}else(t=Dc(t,e++,"linearGradient",nf)).setAttribute("id",n.id),t.setAttribute("x1",n.x1),t.setAttribute("x2",n.x2),t.setAttribute("y1",n.y1),t.setAttribute("y2",n.y2);for(r=0,i=n.stops.length;r<i;++r)(a=Dc(t,r,"stop",nf)).setAttribute("offset",n.stops[r].offset),a.setAttribute("stop-color",n.stops[r].color);return Fc(t,r),e}function of(t,n,e){var r;return(t=Dc(t,e,"clipPath",nf)).setAttribute("id",n.id),n.path?(r=Dc(t,0,"path",nf)).setAttribute("d",n.path):((r=Dc(t,0,"rect",nf)).setAttribute("x",0),r.setAttribute("y",0),r.setAttribute("width",n.width),r.setAttribute("height",n.height)),e+1}function sf(t,n){for(;t&&t.dirty!==n;t=t.mark.group){if(t.dirty=n,!t.mark||t.mark.dirty===n)return;t.mark.dirty=n}}function lf(t,n,e,r,i){var a,u=t._svg;if(!u&&(u=Ec(a=n.ownerDocument,r,nf),t._svg=u,t.mark&&(u.__data__=t,u.__values__={fill:"default"},"g"===r))){var o=Ec(a,"path",nf);o.setAttribute("class","background"),u.appendChild(o),o.__data__=t;var s=Ec(a,"g",nf);u.appendChild(s),s.__data__=t}return(u.ownerSVGElement!==i||function(t){var n=t.mark||t.group;return n&&n.items.length>1}(t)&&u.previousSibling!==e)&&n.insertBefore(u,e?e.nextSibling:n.firstChild),u}rf.initialize=function(t,n,e,r){return t&&(this._svg=Dc(t,0,"svg",nf),this._svg.setAttribute("class","marks"),Fc(t,1),this._root=Dc(this._svg,0,"g",nf),Fc(this._svg,1)),this._defs={gradient:{},clipping:{}},this.background(this._bgcolor),af.initialize.call(this,t,n,e,r)},rf.background=function(t){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",t),af.background.apply(this,arguments)},rf.resize=function(t,n,e,r){return af.resize.call(this,t,n,e,r),this._svg&&(this._svg.setAttribute("width",this._width*this._scale),this._svg.setAttribute("height",this._height*this._scale),this._svg.setAttribute("viewBox","0 0 "+this._width+" "+this._height),this._root.setAttribute("transform","translate("+this._origin+")")),this._dirty=[],this},rf.canvas=function(){return this._svg},rf.svg=function(){if(!this._svg)return null;var t={class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:"0 0 "+this._width+" "+this._height};for(var n in Qc)t[n]=Qc[n];var e=this._bgcolor?Zc("rect",{width:this._width,height:this._height,style:"fill: "+this._bgcolor+";"})+Jc("rect"):"";return Zc("svg",t)+e+this._svg.innerHTML+Jc("svg")},rf._render=function(t){return this._dirtyCheck()&&(this._dirtyAll&&this._resetDefs(),this.draw(this._root,t),Fc(this._root,1)),this.updateDefs(),this._dirty=[],++this._dirtyID,this},rf.updateDefs=function(){var t,n=this._svg,e=this._defs,r=e.el,i=0;for(t in e.gradient)r||(e.el=r=Dc(n,0,"defs",nf)),i=uf(r,e.gradient[t],i);for(t in e.clipping)r||(e.el=r=Dc(n,0,"defs",nf)),i=of(r,e.clipping[t],i);r&&(0===i?(n.removeChild(r),e.el=null):Fc(r,i))},rf._resetDefs=function(){var t=this._defs;t.gradient={},t.clipping={}},rf.dirty=function(t){t.dirty!==this._dirtyID&&(t.dirty=this._dirtyID,this._dirty.push(t))},rf.isDirty=function(t){return this._dirtyAll||!t._svg||t.dirty===this._dirtyID},rf._dirtyCheck=function(){this._dirtyAll=!0;var t=this._dirty;if(!t.length)return!0;var n,e,r,i,a,u,o,s=++this._dirtyID;for(a=0,u=t.length;a<u;++a)(e=(n=t[a]).mark).marktype!==r&&(r=e.marktype,i=mc[r]),e.zdirty&&e.dirty!==s&&(this._dirtyAll=!1,sf(n,s),e.items.forEach(function(t){t.dirty=s})),e.zdirty||(n.exit?(i.nested&&e.items.length?(o=e.items[0])._svg&&this._update(i,o._svg,o):n._svg&&(o=n._svg.parentNode)&&o.removeChild(n._svg),n._svg=null):(n=i.nested?e.items[0]:n)._update!==s&&(n._svg&&n._svg.ownerSVGElement?this._update(i,n._svg,n):(this._dirtyAll=!1,sf(n,s)),n._update=s));return!this._dirtyAll},rf.draw=function(t,n,e){if(!this.isDirty(n))return n._svg;var r,i=this,a=this._svg,u=mc[n.marktype],o=!1===n.interactive?"none":null,s="g"===u.tag,l=null,c=0;function f(t){var n=i.isDirty(t),e=lf(t,r,l,u.tag,a);n&&(i._update(u,e,t),s&&function(t,n,e){n=n.lastChild;var r,i=0;bl(e,function(e){r=t.draw(n,e,r),++i}),Fc(n,1+i)}(i,e,t)),l=e,++c}return(r=lf(n,t,e,"g",a)).setAttribute("class",Sc(n)),s||r.style.setProperty("pointer-events",o),n.clip?r.setAttribute("clip-path",Rl(i,n,n.group)):r.removeAttribute("clip-path"),u.nested?n.items.length&&f(n.items[0]):bl(n,f),Fc(r,c),r};var cf=null,ff=null,hf={group:function(t,n,e){ff=n.__values__,cf=n.childNodes[1],t.foreground(pf,e,this),cf=n.childNodes[0],t.background(pf,e,this);var r=!1===e.mark.interactive?"none":null;r!==ff.events&&(cf.style.setProperty("pointer-events",r),ff.events=r)},text:function(t,n,e){var r;(r=sc(e))!==ff.text&&(n.textContent=r,ff.text=r),df(n,"font-family",lc(e)),df(n,"font-size",uc(e)+"px"),df(n,"font-style",e.fontStyle),df(n,"font-variant",e.fontVariant),df(n,"font-weight",e.fontWeight)}};function df(t,n,e){e!==ff[n]&&(null==e?t.style.removeProperty(n):t.style.setProperty(n,e+""),ff[n]=e)}function pf(t,n,e){n!==ff[t]&&(null!=n?e?cf.setAttributeNS(e,t,n):cf.setAttribute(t,n):e?cf.removeAttributeNS(e,t):cf.removeAttribute(t),ff[t]=n)}function gf(){var t;return"undefined"==typeof window?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}function mf(t){Tc.call(this,t),this._text={head:"",bg:"",root:"",foot:"",defs:"",body:""},this._defs={gradient:{},clipping:{}}}rf._update=function(t,n,e){cf=n,ff=n.__values__,t.attr(pf,e,this);var r=hf[t.type];r&&r.call(this,t,n,e),this.style(cf,e)},rf.style=function(t,n){var e,r,i,a,u;if(null!=n)for(e=0,r=tf.length;e<r;++e)u=n[i=tf[e]],"font"===i&&(u=lc(n)),u!==ff[i]&&(a=Kc[i],null==u?"fill"===a?t.style.setProperty(a,"none"):t.style.removeProperty(a):(Xu(u)&&(u=Zu(u,this._defs.gradient,gf())),t.style.setProperty(a,u+"")),ff[i]=u)};var vf,yf=et(mf,Tc),xf=Tc.prototype;function _f(t,n,e,r){vf[r||t]=n}function bf(t,n,e,r){if(null==t)return"";var i,a,u,o,s,l="";for("bgrect"===e&&!1===n.interactive&&(l+="pointer-events: none; "),"text"===e&&(l+="font-family: "+lc(t)+"; ",l+="font-size: "+uc(t)+"px; ",t.fontStyle&&(l+="font-style: "+t.fontStyle+"; "),t.fontVariant&&(l+="font-variant: "+t.fontVariant+"; "),t.fontWeight&&(l+="font-weight: "+t.fontWeight+"; ")),i=0,a=tf.length;i<a;++i)u=tf[i],o=Kc[u],null==(s=t[u])?"fill"===o&&(l+="fill: none; "):"transparent"!==s||"fill"!==o&&"stroke"!==o?(Xu(s)&&(s=Zu(s,r.gradient,"")),l+=o+": "+s+"; "):l+=o+": none; ";return l?'style="'+l.trim()+'"':null}yf.resize=function(t,n,e,r){xf.resize.call(this,t,n,e,r);var i=this._origin,a=this._text,u={class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:"0 0 "+this._width+" "+this._height};for(var o in Qc)u[o]=Qc[o];a.head=Zc("svg",u);var s=this._bgcolor;return"transparent"!==s&&"none"!==s||(s=null),a.bg=s?Zc("rect",{width:this._width,height:this._height,style:"fill: "+s+";"})+Jc("rect"):"",a.root=Zc("g",{transform:"translate("+i+")"}),a.foot=Jc("g")+Jc("svg"),this},yf.background=function(){var t=xf.background.apply(this,arguments);return arguments.length&&this._text.head&&this.resize(this._width,this._height,this._origin,this._scale),t},yf.svg=function(){var t=this._text;return t.head+t.bg+t.defs+t.root+t.body+t.foot},yf._render=function(t){return this._text.body=this.mark(t),this._text.defs=this.buildDefs(),this},yf.buildDefs=function(){var t,n,e,r,i,a=this._defs,u="";for(n in a.gradient){for(i=(e=a.gradient[n]).stops,"radial"===e.gradient?(u+=Zc(r="pattern",{id:Vu+n,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),u+=Zc("rect",{width:"1",height:"1",fill:"url(#"+n+")"})+Jc("rect"),u+=Jc(r),u+=Zc(r="radialGradient",{id:n,fx:e.x1,fy:e.y1,fr:e.r1,cx:e.x2,cy:e.y2,r:e.r2})):u+=Zc(r="linearGradient",{id:n,x1:e.x1,x2:e.x2,y1:e.y1,y2:e.y2}),t=0;t<i.length;++t)u+=Zc("stop",{offset:i[t].offset,"stop-color":i[t].color})+Jc("stop");u+=Jc(r)}for(n in a.clipping)e=a.clipping[n],u+=Zc("clipPath",{id:n}),e.path?u+=Zc("path",{d:e.path})+Jc("path"):u+=Zc("rect",{x:0,y:0,width:e.width,height:e.height})+Jc("rect"),u+=Jc("clipPath");return u.length>0?Zc("defs")+u+Jc("defs"):""},yf.attributes=function(t,n){return vf={},t(_f,n,this),vf},yf.href=function(t){var n,e=this,r=t.href;if(r){if(n=e._hrefs&&e._hrefs[r])return n;e.sanitizeURL(r).then(function(t){t["xlink:href"]=t.href,t.href=null,(e._hrefs||(e._hrefs={}))[r]=t})}return null},yf.mark=function(t){var n,e=this,r=mc[t.marktype],i=r.tag,a=this._defs,u="";function o(o){var s=e.href(o);s&&(u+=Zc("a",s)),n="g"!==i?bf(o,t,i,a):null,u+=Zc(i,e.attributes(r.attr,o),n),"text"===i?u+=sc(o).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):"g"===i&&(u+=Zc("path",e.attributes(r.background,o),bf(o,t,"bgrect",a))+Jc("path"),u+=Zc("g",e.attributes(r.foreground,o))+e.markGroup(o)+Jc("g")),u+=Jc(i),s&&(u+=Jc("a"))}return"g"!==i&&!1===t.interactive&&(n='style="pointer-events: none;"'),u+=Zc("g",{class:Sc(t),"clip-path":t.clip?Rl(e,t,t.group):null},n),r.nested?t.items&&t.items.length&&o(t.items[0]):bl(t,o),u+Jc("g")},yf.markGroup=function(t){var n=this,e="";return bl(t,function(t){e+=n.mark(t)}),e};var wf={Canvas:"canvas",PNG:"png",SVG:"svg",None:"none"},Af={};function Mf(t,n){return t=String(t||"").toLowerCase(),arguments.length>1?(Af[t]=n,this):Af[t]}function kf(t,n,e){const r=[],a=(new Hu).union(n),u=t.marktype;return u?Ef(t,a,e,r):"group"===u?Cf(t,a,e,r):i("Intersect scene must be mark node or group item.")}function Ef(t,n,e,r){if(function(t,n,e){return t.bounds&&n.intersects(t.bounds)&&("group"===t.marktype||!1!==t.interactive&&(!e||e(t)))}(t,n,e)){const i=t.items,a=t.marktype,u=i.length;let o=0;if("group"===a)for(;o<u;++o)Cf(i[o],n,e,r);else for(const t=mc[a].isect;o<u;++o){let e=i[o];Df(e,n,t)&&r.push(e)}}return r}function Cf(t,n,e,r){e&&e(t.mark)&&Df(t,n,mc.group.isect)&&r.push(t);const i=t.items,a=i&&i.length;if(a){const u=t.x||0,o=t.y||0;n.translate(-u,-o);for(let t=0;t<a;++t)Ef(i[t],n,e,r);n.translate(u,o)}return r}function Df(t,n,e){const r=t.bounds;return n.encloses(r)||n.intersects(r)&&e(t,n)}Af.canvas=Af.png={renderer:Ic,headless:Ic,handler:Lc},Af.svg={renderer:ef,headless:mf,handler:Gc},Af.none={};var Ff=new Hu;function Sf(t){var n=t.clip;if(Y(n))n(al(Ff.clear()));else{if(!n)return;Ff.set(0,0,t.group.width,t.group.height)}t.bounds.intersect(Ff)}var Bf=1e-9;function Of(t,n,e){return t===n||("path"===e?zf(t,n):t instanceof Date&&n instanceof Date?+t==+n:ut(t)&&ut(n)?Math.abs(t-n)<=Bf:t&&n&&(o(t)||o(n))?null!=t&&null!=n&&function(t,n){var e,r,i=Object.keys(t),a=Object.keys(n);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(e=i[r],!Of(t[e],n[e],e))return!1;return typeof t==typeof n}(t,n):t==n)}function zf(t,n){return Of(bs(t),bs(n))}function Nf(t){$r.call(this,null,t)}function Tf(t,n,e){return n(t.bounds.clear(),t,e)}et(Nf,$r).transform=function(t,n){var e,r=n.dataflow,i=t.mark,a=i.marktype,u=mc[a],o=u.bound,s=i.bounds;return u.nested?(i.items.length&&r.dirty(i.items[0]),s=Tf(i,o),i.items.forEach(function(t){t.bounds.clear().union(s)})):a===bu||t.modified()?(n.visit(n.MOD,function(t){r.dirty(t)}),s.clear(),i.items.forEach(function(t){s.union(Tf(t,o))}),i.role===Eu&&n.reflow()):(e=n.changed(n.REM),n.visit(n.ADD,function(t){s.union(Tf(t,o))}),n.visit(n.MOD,function(t){e=e||s.alignsWith(t.bounds),r.dirty(t),s.union(Tf(t,o))}),e&&(s.clear(),i.items.forEach(function(t){s.union(t.bounds)}))),Sf(i),n.modifies("bounds")};var Rf=":vega_identifier:";function Pf(t){$r.call(this,0,t)}function Lf(t){$r.call(this,null,t)}function qf(t){$r.call(this,null,t)}Pf.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},et(Pf,$r).transform=function(t,n){var e=function(t){var n=t._signals[Rf];n||(t._signals[Rf]=n=t.add(0));return n}(n.dataflow),r=e.value,i=t.as;return n.visit(n.ADD,function(t){t[i]||(t[i]=++r)}),e.set(this.value=r),n},et(Lf,$r).transform=function(t,n){var e=this.value;e||((e=n.dataflow.scenegraph().mark(t.markdef,function(t){var n=t.groups,e=t.parent;return n&&1===n.size?n.get(Object.keys(n.object)[0]):n&&e?n.lookup(e):null}(t),t.index)).group.context=t.context,t.context.group||(t.context.group=e.group),e.source=this,e.clip=t.clip,e.interactive=t.interactive,this.value=e);var r=e.marktype===bu?to:Ku;return n.visit(n.ADD,function(t){r.call(t,e)}),(t.modified("clip")||t.modified("interactive"))&&(e.clip=t.clip,e.interactive=!!t.interactive,e.zdirty=!0,n.reflow()),e.items=n.source,n};var Uf=et(qf,$r),jf={parity:function(t){return t.filter((t,n)=>n%2?t.opacity=0:1)},greedy:function(t,n){var e;return t.filter((t,r)=>r&&$f(e.bounds,t.bounds,n)?t.opacity=0:(e=t,1))}};function $f(t,n,e){return e>Math.max(n.x1-t.x2,t.x1-n.x2,n.y1-t.y2,t.y1-n.y2)}function If(t,n){for(var e,r=1,i=t.length,a=t[0].bounds;r<i;a=e,++r)if($f(a,e=t[r].bounds,n))return!0}function Wf(t){var n=t.bounds;return n.width()>1&&n.height()>1}function Hf(t){return t.forEach(t=>t.opacity=1),t}function Yf(t,n){return t.reflow(n.modified()).modifies("opacity")}function Gf(t){$r.call(this,null,t)}Uf.transform=function(t,n){var e,r,i,a=jf[t.method]||jf.parity,u=n.materialize(n.SOURCE).source,o=t.separation||0;if(u&&u.length){if(!t.method)return t.modified("method")&&(Hf(u),n=Yf(n,t)),n;if(t.sort&&(u=u.slice().sort(t.sort)),e=Hf(u=u.filter(Wf)),n=Yf(n,t),e.length>=3&&If(e,o)){do{e=a(e,o)}while(e.length>=3&&If(e,o));e.length<3&&!k(u).opacity&&(e.length>1&&(k(e).opacity=0),k(u).opacity=1)}var s,l,c,f,h;return t.boundScale&&t.boundTolerance>=0&&(s=t.boundScale,l=t.boundOrient,c=+t.boundTolerance,f=s.range(),h=new Hu,l===su||l===fu?h.set(f[0],-1/0,f[1],1/0):h.set(-1/0,f[0],1/0,f[1]),h.expand(c||1),r=(t=>h.encloses(t.bounds)),u.forEach(t=>{r(t)||(t.opacity=0)})),i=e[0].mark.bounds.clear(),u.forEach(t=>{t.opacity&&i.union(t.bounds)}),n}},et(Gf,$r).transform=function(t,n){var e=n.dataflow;if(n.visit(n.ALL,function(t){e.dirty(t)}),n.fields&&n.fields.zindex){var r=n.source&&n.source[0];r&&(r.mark.zdirty=!0)}};const Vf=new Hu;function Xf(t,n,e){return t[n]===e?0:(t[n]=e,1)}const Zf=.5;function Jf(t){var n=t.items[0].datum.orient;return n===lu||n===cu}function Qf(t,n,e,r){var i,a,u=n.items[0],o=u.datum,s=o.orient,l=function(t){var n=+t.grid;return[t.ticks?n++:-1,t.labels?n++:-1,n+ +t.domain]}(o),c=u.range,f=u.offset,h=u.position,d=u.minExtent,p=u.maxExtent,g=o.title&&u.items[l[2]].items[0],m=u.titlePadding,v=u.bounds,y=0,x=0;switch(Vf.clear().union(v),v.clear(),(i=l[0])>-1&&v.union(u.items[i].bounds),(i=l[1])>-1&&v.union(u.items[i].bounds),s){case su:y=h||0,x=-f,a=Math.max(d,Math.min(p,-v.y1)),g&&(a=Kf(g,a,m,0,-1,v)),v.add(0,-a).add(c,0);break;case lu:y=-f,x=h||0,a=Math.max(d,Math.min(p,-v.x1)),g&&(a=Kf(g,a,m,1,-1,v)),v.add(-a,0).add(0,c);break;case cu:y=e+f,x=h||0,a=Math.max(d,Math.min(p,v.x2)),g&&(a=Kf(g,a,m,1,1,v)),v.add(0,0).add(a,c);break;case fu:y=h||0,x=r+f,a=Math.max(d,Math.min(p,v.y2)),g&&(a=Kf(g,a,m,0,1,v)),v.add(0,0).add(c,a);break;default:y=u.x,x=u.y}return el(v.translate(y,x),u),Xf(u,"x",y+Zf)|Xf(u,"y",x+Zf)&&(u.bounds=Vf,t.dirty(u),u.bounds=v,t.dirty(u)),u.mark.bounds.clear().union(v)}function Kf(t,n,e,r,i,a){var u=t.bounds,o=0,s=0;return t.auto?(n+=e,r?o=(t.x||0)-(t.x=i*n):s=(t.y||0)-(t.y=i*n),u.translate(-o,-s),t.mark.bounds.set(u.x1,u.y1,u.x2,u.y2),r?(a.add(0,u.y1).add(0,u.y2),n+=u.width()):(a.add(u.x1,0).add(u.x2,0),n+=u.height())):a.union(u),n}function th(t){return(new Hu).set(0,0,t.width||0,t.height||0)}function nh(t){var n=t.bounds.clone();return n.empty()?n.set(0,0,0,0):n.translate(-(t.x||0),-(t.y||0))}function eh(t,n,e){var r=o(t)?t[n]:t;return null!=r?r:void 0!==e?e:0}function rh(t){return t<0?Math.ceil(-t):0}function ih(t,n,e){var r,i,a,u,o,s,l,c,f,h,d,p=!e.nodirty,g=e.bounds===$u?th:nh,m=Vf.set(0,0,0,0),v=eh(e.align,Iu),y=eh(e.align,Wu),x=eh(e.padding,Iu),_=eh(e.padding,Wu),b=e.columns||n.length,w=b<0?1:Math.ceil(n.length/b),A=n.length,M=Array(A),k=Array(b),E=0,C=Array(A),D=Array(w),F=0,S=Array(A),B=Array(A),O=Array(A);for(i=0;i<b;++i)k[i]=0;for(i=0;i<w;++i)D[i]=0;for(i=0;i<A;++i)s=n[i],o=O[i]=g(s),s.x=s.x||0,S[i]=0,s.y=s.y||0,B[i]=0,a=i%b,u=~~(i/b),E=Math.max(E,l=Math.ceil(o.x2)),F=Math.max(F,c=Math.ceil(o.y2)),k[a]=Math.max(k[a],l),D[u]=Math.max(D[u],c),M[i]=x+rh(o.x1),C[i]=_+rh(o.y1),p&&t.dirty(n[i]);for(i=0;i<A;++i)i%b==0&&(M[i]=0),i<b&&(C[i]=0);if(v===ju)for(a=1;a<b;++a){for(d=0,i=a;i<A;i+=b)d<M[i]&&(d=M[i]);for(i=a;i<A;i+=b)M[i]=d+k[a-1]}else if(v===Uu){for(d=0,i=0;i<A;++i)i%b&&d<M[i]&&(d=M[i]);for(i=0;i<A;++i)i%b&&(M[i]=d+E)}else for(v=!1,a=1;a<b;++a)for(i=a;i<A;i+=b)M[i]+=k[a-1];if(y===ju)for(u=1;u<w;++u){for(d=0,r=(i=u*b)+b;i<r;++i)d<C[i]&&(d=C[i]);for(i=u*b;i<r;++i)C[i]=d+D[u-1]}else if(y===Uu){for(d=0,i=b;i<A;++i)d<C[i]&&(d=C[i]);for(i=b;i<A;++i)C[i]=d+F}else for(y=!1,u=1;u<w;++u)for(r=(i=u*b)+b;i<r;++i)C[i]+=D[u-1];for(f=0,i=0;i<A;++i)f=M[i]+(i%b?f:0),S[i]+=f-n[i].x;for(a=0;a<b;++a)for(h=0,i=a;i<A;i+=b)h+=C[i],B[i]+=h-n[i].y;if(v&&eh(e.center,Iu)&&w>1)for(i=0;i<A;++i)(f=(o=v===Uu?E:k[i%b])-O[i].x2-n[i].x-S[i])>0&&(S[i]+=f/2);if(y&&eh(e.center,Wu)&&1!==b)for(i=0;i<A;++i)(h=(o=y===Uu?F:D[~~(i/b)])-O[i].y2-n[i].y-B[i])>0&&(B[i]+=h/2);for(i=0;i<A;++i)m.union(O[i].translate(S[i],B[i]));switch(f=eh(e.anchor,xu),h=eh(e.anchor,_u),eh(e.anchor,Iu)){case yu:f-=m.width();break;case vu:f-=m.width()/2}switch(eh(e.anchor,Wu)){case yu:h-=m.height();break;case vu:h-=m.height()/2}for(f=Math.round(f),h=Math.round(h),m.clear(),i=0;i<A;++i)n[i].mark.bounds.clear();for(i=0;i<A;++i)(s=n[i]).x+=S[i]+=f,s.y+=B[i]+=h,m.union(s.mark.bounds.union(s.bounds.translate(S[i],B[i]))),p&&t.dirty(s);return m}function ah(t,n,e){var r,i,a,u,o,s,l,c=function(t){for(var n,e,r=t.items,i=r.length,a=0,u={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};a<i;++a)if(e=(n=r[a]).items,n.marktype===bu)switch(n.role){case wu:case Eu:break;case Cu:u.rowheaders.push(...e);break;case Du:u.rowfooters.push(...e);break;case Su:u.colheaders.push(...e);break;case Bu:u.colfooters.push(...e);break;case Fu:u.rowtitle=e[0];break;case Ou:u.coltitle=e[0];break;default:u.marks.push(...e)}return u}(n),f=c.marks,h=e.bounds===$u?uh:oh,d=e.offset,p=e.columns||f.length,g=p<0?1:Math.ceil(f.length/p),m=g*p;const v=ih(t,f,e);c.rowheaders&&(s=eh(e.headerBand,Wu,null),r=ch(t,c.rowheaders,f,p,g,-eh(d,"rowHeader"),sh,0,h,"x1",0,p,1,s)),c.colheaders&&(s=eh(e.headerBand,Iu,null),i=ch(t,c.colheaders,f,p,p,-eh(d,"columnHeader"),sh,1,h,"y1",0,1,p,s)),c.rowfooters&&(s=eh(e.footerBand,Wu,null),a=ch(t,c.rowfooters,f,p,g,eh(d,"rowFooter"),lh,0,h,"x2",p-1,p,1,s)),c.colfooters&&(s=eh(e.footerBand,Iu,null),u=ch(t,c.colfooters,f,p,p,eh(d,"columnFooter"),lh,1,h,"y2",m-p,1,p,s)),c.rowtitle&&(o=eh(e.titleAnchor,Wu),l=eh(d,"rowTitle"),l=o===yu?a+l:r-l,s=eh(e.titleBand,Wu,.5),fh(t,c.rowtitle,l,0,v,s)),c.coltitle&&(o=eh(e.titleAnchor,Iu),l=eh(d,"columnTitle"),l=o===yu?u+l:i-l,s=eh(e.titleBand,Iu,.5),fh(t,c.coltitle,l,1,v,s))}function uh(t,n){return"x1"===n?t.x||0:"y1"===n?t.y||0:"x2"===n?(t.x||0)+(t.width||0):"y2"===n?(t.y||0)+(t.height||0):void 0}function oh(t,n){return t.bounds[n]}function sh(t,n){return Math.floor(Math.min(t,n))}function lh(t,n){return Math.ceil(Math.max(t,n))}function ch(t,n,e,r,i,a,u,o,s,l,c,f,h,d){var p,g,m,v,y,x,_,b,w,A=e.length,M=0,k=0;if(!A)return M;for(p=c;p<A;p+=f)e[p]&&(M=u(M,s(e[p],l)));if(!n.length)return M;for(n.length>i&&(t.warn("Grid headers exceed limit: "+i),n=n.slice(0,i)),M+=a,g=0,v=n.length;g<v;++g)t.dirty(n[g]),n[g].mark.bounds.clear();for(p=c,g=0,v=n.length;g<v;++g,p+=f){for(y=(x=n[g]).mark.bounds,m=p;m>=0&&null==(_=e[m]);m-=h);o?(b=null==d?_.x:Math.round(_.bounds.x1+d*_.bounds.width()),w=M):(b=M,w=null==d?_.y:Math.round(_.bounds.y1+d*_.bounds.height())),y.union(x.bounds.translate(b-(x.x||0),w-(x.y||0))),x.x=b,x.y=w,t.dirty(x),k=u(k,y[l])}return k}function fh(t,n,e,r,i,a){if(n){t.dirty(n);var u=e,o=e;r?u=Math.round(i.x1+a*i.width()):o=Math.round(i.y1+a*i.height()),n.bounds.translate(u-(n.x||0),o-(n.y||0)),n.mark.bounds.clear().union(n.bounds),n.x=u,n.y=o,t.dirty(n)}}function hh(t,n,e,r,i,a,u){const o=function(t,n){const e=t[n]||{};return(n,r)=>null!=e[n]?e[n]:null!=t[n]?t[n]:r}(e,n),s=(f=t,h=o("offset",0),d=-1/0,f.forEach(t=>{null!=t.offset&&(d=Math.max(d,t.offset))}),d>-1/0?d:h),l=o("anchor",mu),c=l===yu?1:l===vu?.5:0;var f,h,d;const p={align:ju,bounds:o("bounds",$u),columns:"vertical"===o("direction")?1:t.length,padding:o("margin",8),center:o("center"),nodirty:!0};switch(n){case lu:p.anchor={x:Math.floor(r.x1)-s,column:yu,y:c*(u||r.height()+2*r.y1),row:l};break;case cu:p.anchor={x:Math.ceil(r.x2)+s,y:c*(u||r.height()+2*r.y1),row:l};break;case su:p.anchor={y:Math.floor(i.y1)-s,row:yu,x:c*(a||i.width()+2*i.x1),column:l};break;case fu:p.anchor={y:Math.ceil(i.y2)+s,x:c*(a||i.width()+2*i.x1),column:l};break;case hu:p.anchor={x:s,y:s};break;case du:p.anchor={x:a-s,y:s,column:yu};break;case pu:p.anchor={x:s,y:u-s,row:yu};break;case gu:p.anchor={x:a-s,y:u-s,column:yu,row:yu}}return p}function dh(t,n){var e,r,i,a,u=n.items[0],o=u.datum,s=u.orient,l=u.bounds,c=u.x,f=u.y;return u._bounds?u._bounds.clear().union(l):u._bounds=l.clone(),l.clear(),function(t,n,e){var r=n.padding,i=r-e.x,a=r-e.y;if(n.datum.title){var u=n.items[1].items[0],o=u.anchor,s=n.titlePadding||0,l=r-u.x,c=r-u.y;switch(u.orient){case lu:i+=Math.ceil(u.bounds.width())+s;break;case cu:case fu:break;default:a+=u.fontSize+s}switch((i||a)&&gh(t,e,i,a),u.orient){case lu:c+=ph(n,e,u,o,0,1);break;case cu:l+=ph(n,e,u,yu,1,0)+s,c+=ph(n,e,u,o,0,1);break;case fu:l+=ph(n,e,u,o,1,0),c+=ph(n,e,u,yu,0,0,1)+s;break;default:l+=ph(n,e,u,o,1,0)}(l||c)&&gh(t,u,l,c),(l=Math.round(u.bounds.x1-r))<0&&(gh(t,e,-l,0),gh(t,u,-l,0))}else(i||a)&&gh(t,e,i,a)}(t,u,u.items[0].items[0]),l=function(t,n){return t.items.forEach(t=>n.union(t.bounds)),n.x1=t.padding,n.y1=t.padding,n}(u,l),e=2*u.padding,r=2*u.padding,l.empty()||(e=Math.ceil(l.width()+e),r=Math.ceil(l.height()+r)),o.type===Nu&&(i=u.items[0].items[0].items[0].items,a=i.reduce(function(t,n){return t[n.column]=Math.max(n.bounds.x2-n.x,t[n.column]||0),t},{}),i.forEach(function(t){t.width=a[t.column],t.height=t.bounds.y2-t.y})),s!==qu&&(u.x=c=0,u.y=f=0),u.width=e,u.height=r,el(l.set(c,f,c+e,f+r),u),u.mark.bounds.clear().union(l),u}function ph(t,n,e,r,i,a,u){const o="symbol"!==t.datum.type,s=e.datum.vgrad,l=(!o||!a&&s||u?n:n.items[0]).bounds[i?"x2":"y2"]-t.padding,c=s&&a?l:0,f=s&&a?0:l;return Math.round(r===mu?c:r===yu?f:.5*l)}function gh(t,n,e,r){n.x+=e,n.y+=r,n.bounds.translate(e,r),n.mark.bounds.translate(e,r),t.dirty(n)}function mh(t){$r.call(this,null,t)}et(mh,$r).transform=function(t,n){var e=n.dataflow;return t.mark.items.forEach(function(n){t.layout&&ah(e,n,t.layout),function(t,n,e){var r,i,a,u,o,s=n.items,l=Math.max(0,n.width||0),c=Math.max(0,n.height||0),f=(new Hu).set(0,0,l,c),h=f.clone(),d=f.clone(),p=[];for(u=0,o=s.length;u<o;++u)switch((i=s[u]).role){case wu:(Jf(i)?h:d).union(Qf(t,i,l,c));break;case Au:r=i;break;case Eu:p.push(dh(t,i));break;case Mu:case ku:case Cu:case Du:case Fu:case Su:case Bu:case Ou:h.union(i.bounds),d.union(i.bounds);break;default:f.union(i.bounds)}if(p.length){const n={};p.forEach(t=>{(a=t.orient||cu)!==qu&&(n[a]||(n[a]=[])).push(t)});for(let r in n){const i=n[r];ih(t,i,hh(i,r,e.legends,h,d,l,c))}p.forEach(n=>{const r=n.bounds;if(r.equals(n._bounds)||(n.bounds=n._bounds,t.dirty(n),n.bounds=r,t.dirty(n)),e.autosize&&e.autosize.type===Tu)switch(n.orient){case lu:case cu:f.add(r.x1,0).add(r.x2,0);break;case su:case fu:f.add(0,r.y1).add(0,r.y2)}else f.union(r)})}f.union(h).union(d),r&&f.union(function(t,n,e,r,i){var a,u=n.items[0],o=u.frame,s=u.orient,l=u.anchor,c=u.offset,f=u.bounds,h=0,d=s===lu||s===cu?r:e,p=0,g=0;switch(o!==bu?s===lu?(h=i.y2,d=i.y1):s===cu?(h=i.y1,d=i.y2):(h=i.x1,d=i.x2):s===lu&&(h=r,d=0),a=l===mu?h:l===yu?d:(h+d)/2,Vf.clear().union(f),s){case su:p=a,g=i.y1-c;break;case lu:p=i.x1-c,g=a;break;case cu:p=i.x2+c,g=a;break;case fu:p=a,g=i.y2+c;break;default:p=u.x,g=u.y}return f.translate(p-(u.x||0),g-(u.y||0)),Xf(u,"x",p)|Xf(u,"y",g)&&(u.bounds=Vf,t.dirty(u),u.bounds=f,t.dirty(u)),n.bounds.clear().union(f)}(t,r,l,c,f));!function(t,n,e,r){var i=r.autosize||{},a=i.type,u=t._width,o=t._height,s=t.padding();if(t._autosize<1||!a)return;var l=Math.max(0,n.width||0),c=Math.max(0,Math.ceil(-e.x1)),f=Math.max(0,Math.ceil(e.x2-l)),h=Math.max(0,n.height||0),d=Math.max(0,Math.ceil(-e.y1)),p=Math.max(0,Math.ceil(e.y2-h));i.contains===zu&&(u-=s.left+s.right,o-=s.top+s.bottom);a===qu?(c=0,d=0,l=u,h=o):a===Tu?(l=Math.max(0,u-c-f),h=Math.max(0,o-d-p)):a===Ru?(l=Math.max(0,u-c-f),o=h+d+p):a===Pu?(u=l+c+f,h=Math.max(0,o-d-p)):a===Lu&&(u=l+c+f,o=h+d+p);t._resizeView(u,o,l,h,[c,d],i.resize)}(t,n,f,e)}(e,n,t)}),t.modified()&&n.reflow(),n};var vh=Object.freeze({bound:Nf,identifier:Pf,mark:Lf,overlap:qf,render:Gf,viewlayout:mh});function yh(t,n,e){var r=t-n+2*e;return t?r>0?r:1:0}const xh="identity",_h="linear",bh="log",wh="pow",Ah="sqrt",Mh="symlog",kh="time",Eh="utc",Ch="sequential",Dh="diverging",Fh="quantile",Sh="quantize",Bh="threshold",Oh="ordinal",zh="point",Nh="band",Th="bin-ordinal";function Rh(t){return t===Fh}function Ph(t){return function(t){return t&&t.startsWith(Ch)}(t)||function(t){return t&&t.startsWith(Dh)}(t)}function Lh(t){return t===bh||t.endsWith("-log")}function qh(t){switch(t){case _h:case bh:case wh:case Ah:case Mh:case kh:case Eh:case Ch:return!0}return!1}function Uh(t){return t===Th||t===Oh||t===Nh||t===zh}function jh(t){return t===Th||t===Fh||t===Sh||t===Bh}var $h={millisecond:Nn,second:Pn,minute:Ln,hour:qn,day:Un,week:$n,month:Hn,year:Yn},Ih={millisecond:Nn,second:Pn,minute:Gn,hour:Vn,day:Xn,week:Jn,month:te,year:ne};function Wh(t,n){const e=n===Eh?Ih:$h;return e.hasOwnProperty(t)&&e[t]}function Hh(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}function Yh(t,n){switch(arguments.length){case 0:break;case 1:this.interpolator(t);break;default:this.interpolator(n).domain(t)}return this}const Gh=Symbol("implicit");function Vh(){var t=new Map,n=[],e=[],r=Gh;function i(i){var a=i+"",u=t.get(a);if(!u){if(r!==Gh)return r;t.set(a,u=n.push(i))}return e[(u-1)%e.length]}return i.domain=function(e){if(!arguments.length)return n.slice();n=[],t=new Map;for(const r of e){const e=r+"";t.has(e)||t.set(e,n.push(r))}return i},i.range=function(t){return arguments.length?(e=Array.from(t),i):e.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return Vh(n,e).unknown(r)},Hh.apply(i,arguments),i}function Xh(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function Zh(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Jh(){}var Qh="\\s*([+-]?\\d+)\\s*",Kh="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",td="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",nd=/^#([0-9a-f]{3})$/,ed=/^#([0-9a-f]{6})$/,rd=new RegExp("^rgb\\("+[Qh,Qh,Qh]+"\\)$"),id=new RegExp("^rgb\\("+[td,td,td]+"\\)$"),ad=new RegExp("^rgba\\("+[Qh,Qh,Qh,Kh]+"\\)$"),ud=new RegExp("^rgba\\("+[td,td,td,Kh]+"\\)$"),od=new RegExp("^hsl\\("+[Kh,td,td]+"\\)$"),sd=new RegExp("^hsla\\("+[Kh,td,td,Kh]+"\\)$"),ld={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function cd(t){var n;return t=(t+"").trim().toLowerCase(),(n=nd.exec(t))?new gd((n=parseInt(n[1],16))>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):(n=ed.exec(t))?fd(parseInt(n[1],16)):(n=rd.exec(t))?new gd(n[1],n[2],n[3],1):(n=id.exec(t))?new gd(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=ad.exec(t))?hd(n[1],n[2],n[3],n[4]):(n=ud.exec(t))?hd(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=od.exec(t))?vd(n[1],n[2]/100,n[3]/100,1):(n=sd.exec(t))?vd(n[1],n[2]/100,n[3]/100,n[4]):ld.hasOwnProperty(t)?fd(ld[t]):"transparent"===t?new gd(NaN,NaN,NaN,0):null}function fd(t){return new gd(t>>16&255,t>>8&255,255&t,1)}function hd(t,n,e,r){return r<=0&&(t=n=e=NaN),new gd(t,n,e,r)}function dd(t){return t instanceof Jh||(t=cd(t)),t?new gd((t=t.rgb()).r,t.g,t.b,t.opacity):new gd}function pd(t,n,e,r){return 1===arguments.length?dd(t):new gd(t,n,e,null==r?1:r)}function gd(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function md(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function vd(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new xd(t,n,e,r)}function yd(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof xd)return new xd(t.h,t.s,t.l,t.opacity);if(t instanceof Jh||(t=cd(t)),!t)return new xd;if(t instanceof xd)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),a=Math.max(n,e,r),u=NaN,o=a-i,s=(a+i)/2;return o?(u=n===a?(e-r)/o+6*(e<r):e===a?(r-n)/o+2:(n-e)/o+4,o/=s<.5?a+i:2-a-i,u*=60):o=s>0&&s<1?0:u,new xd(u,o,s,t.opacity)}(t):new xd(t,n,e,null==r?1:r)}function xd(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function _d(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}Xh(Jh,cd,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+""}}),Xh(gd,pd,Zh(Jh,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new gd(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new gd(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return"#"+md(this.r)+md(this.g)+md(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),Xh(xd,yd,Zh(Jh,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new xd(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new xd(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new gd(_d(t>=240?t-240:t+120,i,r),_d(t,i,r),_d(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var bd=Math.PI/180,wd=180/Math.PI,Ad=.96422,Md=1,kd=.82521,Ed=4/29,Cd=6/29,Dd=3*Cd*Cd,Fd=Cd*Cd*Cd;function Sd(t){if(t instanceof Od)return new Od(t.l,t.a,t.b,t.opacity);if(t instanceof Ld){if(isNaN(t.h))return new Od(t.l,0,0,t.opacity);var n=t.h*bd;return new Od(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof gd||(t=dd(t));var e,r,i=Rd(t.r),a=Rd(t.g),u=Rd(t.b),o=zd((.2225045*i+.7168786*a+.0606169*u)/Md);return i===a&&a===u?e=r=o:(e=zd((.4360747*i+.3850649*a+.1430804*u)/Ad),r=zd((.0139322*i+.0971045*a+.7141733*u)/kd)),new Od(116*o-16,500*(e-o),200*(o-r),t.opacity)}function Bd(t,n,e,r){return 1===arguments.length?Sd(t):new Od(t,n,e,null==r?1:r)}function Od(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function zd(t){return t>Fd?Math.pow(t,1/3):t/Dd+Ed}function Nd(t){return t>Cd?t*t*t:Dd*(t-Ed)}function Td(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Rd(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Pd(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Ld)return new Ld(t.h,t.c,t.l,t.opacity);if(t instanceof Od||(t=Sd(t)),0===t.a&&0===t.b)return new Ld(NaN,0,t.l,t.opacity);var n=Math.atan2(t.b,t.a)*wd;return new Ld(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}(t):new Ld(t,n,e,null==r?1:r)}function Ld(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}Xh(Od,Bd,Zh(Jh,{brighter:function(t){return new Od(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new Od(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return new gd(Td(3.1338561*(n=Ad*Nd(n))-1.6168667*(t=Md*Nd(t))-.4906146*(e=kd*Nd(e))),Td(-.9787684*n+1.9161415*t+.033454*e),Td(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}})),Xh(Ld,Pd,Zh(Jh,{brighter:function(t){return new Ld(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new Ld(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return Sd(this).rgb()}}));var qd=-.14861,Ud=1.78277,jd=-.29227,$d=-.90649,Id=1.97294,Wd=Id*$d,Hd=Id*Ud,Yd=Ud*jd-$d*qd;function Gd(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Vd)return new Vd(t.h,t.s,t.l,t.opacity);t instanceof gd||(t=dd(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Yd*r+Wd*n-Hd*e)/(Yd+Wd-Hd),a=r-i,u=(Id*(e-i)-jd*a)/$d,o=Math.sqrt(u*u+a*a)/(Id*i*(1-i)),s=o?Math.atan2(u,a)*wd-120:NaN;return new Vd(s<0?s+360:s,o,i,t.opacity)}(t):new Vd(t,n,e,null==r?1:r)}function Vd(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Xd(t,n,e,r,i){var a=t*t,u=a*t;return((1-3*t+3*a-u)*n+(4-6*a+3*u)*e+(1+3*t+3*a-3*u)*r+u*i)/6}function Zd(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],a=t[r+1],u=r>0?t[r-1]:2*i-a,o=r<n-1?t[r+2]:2*a-i;return Xd((e-r/n)*n,u,i,a,o)}}function Jd(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],a=t[r%n],u=t[(r+1)%n],o=t[(r+2)%n];return Xd((e-r/n)*n,i,a,u,o)}}function Qd(t){return function(){return t}}function Kd(t,n){return function(e){return t+e*n}}function tp(t,n){var e=n-t;return e?Kd(t,e>180||e<-180?e-360*Math.round(e/360):e):Qd(isNaN(t)?n:t)}function np(t){return 1==(t=+t)?ep:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):Qd(isNaN(n)?e:n)}}function ep(t,n){var e=n-t;return e?Kd(t,e):Qd(isNaN(t)?n:t)}Xh(Vd,Gd,Zh(Jh,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Vd(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Vd(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*bd,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new gd(255*(n+e*(qd*r+Ud*i)),255*(n+e*(jd*r+$d*i)),255*(n+e*(Id*r)),this.opacity)}}));var rp=function t(n){var e=np(n);function r(t,n){var r=e((t=pd(t)).r,(n=pd(n)).r),i=e(t.g,n.g),a=e(t.b,n.b),u=ep(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=a(n),t.opacity=u(n),t+""}}return r.gamma=t,r}(1);function ip(t){return function(n){var e,r,i=n.length,a=new Array(i),u=new Array(i),o=new Array(i);for(e=0;e<i;++e)r=pd(n[e]),a[e]=r.r||0,u[e]=r.g||0,o[e]=r.b||0;return a=t(a),u=t(u),o=t(o),r.opacity=1,function(t){return r.r=a(t),r.g=u(t),r.b=o(t),r+""}}}var ap=ip(Zd),up=ip(Jd);function op(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,a=new Array(i),u=new Array(r);for(e=0;e<i;++e)a[e]=pp(t[e],n[e]);for(;e<r;++e)u[e]=n[e];return function(t){for(e=0;e<i;++e)u[e]=a[e](t);return u}}function sp(t,n){var e=new Date;return n-=t=+t,function(r){return e.setTime(t+n*r),e}}function lp(t,n){return n-=t=+t,function(e){return t+n*e}}function cp(t,n){var e,r={},i={};for(e in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)e in t?r[e]=pp(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}}var fp=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,hp=new RegExp(fp.source,"g");function dp(t,n){var e,r,i,a=fp.lastIndex=hp.lastIndex=0,u=-1,o=[],s=[];for(t+="",n+="";(e=fp.exec(t))&&(r=hp.exec(n));)(i=r.index)>a&&(i=n.slice(a,i),o[u]?o[u]+=i:o[++u]=i),(e=e[0])===(r=r[0])?o[u]?o[u]+=r:o[++u]=r:(o[++u]=null,s.push({i:u,x:lp(e,r)})),a=hp.lastIndex;return a<n.length&&(i=n.slice(a),o[u]?o[u]+=i:o[++u]=i),o.length<2?s[0]?function(t){return function(n){return t(n)+""}}(s[0].x):function(t){return function(){return t}}(n):(n=s.length,function(t){for(var e,r=0;r<n;++r)o[(e=s[r]).i]=e.x(t);return o.join("")})}function pp(t,n){var e,r=typeof n;return null==n||"boolean"===r?Qd(n):("number"===r?lp:"string"===r?(e=cd(n))?(n=e,rp):dp:n instanceof cd?rp:n instanceof Date?sp:Array.isArray(n)?op:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?cp:lp)(t,n)}function gp(t,n){return n-=t=+t,function(e){return Math.round(t+n*e)}}var mp,vp,yp,xp,_p=180/Math.PI,bp={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function wp(t,n,e,r,i,a){var u,o,s;return(u=Math.sqrt(t*t+n*n))&&(t/=u,n/=u),(s=t*e+n*r)&&(e-=t*s,r-=n*s),(o=Math.sqrt(e*e+r*r))&&(e/=o,r/=o,s/=o),t*r<n*e&&(t=-t,n=-n,s=-s,u=-u),{translateX:i,translateY:a,rotate:Math.atan2(n,t)*_p,skewX:Math.atan(s)*_p,scaleX:u,scaleY:o}}function Ap(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(a,u){var o=[],s=[];return a=t(a),u=t(u),function(t,r,i,a,u,o){if(t!==i||r!==a){var s=u.push("translate(",null,n,null,e);o.push({i:s-4,x:lp(t,i)},{i:s-2,x:lp(r,a)})}else(i||a)&&u.push("translate("+i+n+a+e)}(a.translateX,a.translateY,u.translateX,u.translateY,o,s),function(t,n,e,a){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),a.push({i:e.push(i(e)+"rotate(",null,r)-2,x:lp(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(a.rotate,u.rotate,o,s),function(t,n,e,a){t!==n?a.push({i:e.push(i(e)+"skewX(",null,r)-2,x:lp(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(a.skewX,u.skewX,o,s),function(t,n,e,r,a,u){if(t!==e||n!==r){var o=a.push(i(a)+"scale(",null,",",null,")");u.push({i:o-4,x:lp(t,e)},{i:o-2,x:lp(n,r)})}else 1===e&&1===r||a.push(i(a)+"scale("+e+","+r+")")}(a.scaleX,a.scaleY,u.scaleX,u.scaleY,o,s),a=u=null,function(t){for(var n,e=-1,r=s.length;++e<r;)o[(n=s[e]).i]=n.x(t);return o.join("")}}}var Mp=Ap(function(t){return"none"===t?bp:(mp||(mp=document.createElement("DIV"),vp=document.documentElement,yp=document.defaultView),mp.style.transform=t,t=yp.getComputedStyle(vp.appendChild(mp),null).getPropertyValue("transform"),vp.removeChild(mp),wp(+(t=t.slice(7,-1).split(","))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))},"px, ","px)","deg)"),kp=Ap(function(t){return null==t?bp:(xp||(xp=document.createElementNS("http://www.w3.org/2000/svg","g")),xp.setAttribute("transform",t),(t=xp.transform.baseVal.consolidate())?wp((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):bp)},", ",")",")"),Ep=Math.SQRT2,Cp=2,Dp=4,Fp=1e-12;function Sp(t){return((t=Math.exp(t))+1/t)/2}function Bp(t){return function(n,e){var r=t((n=yd(n)).h,(e=yd(e)).h),i=ep(n.s,e.s),a=ep(n.l,e.l),u=ep(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=a(t),n.opacity=u(t),n+""}}}var Op=Bp(tp),zp=Bp(ep);function Np(t){return function(n,e){var r=t((n=Pd(n)).h,(e=Pd(e)).h),i=ep(n.c,e.c),a=ep(n.l,e.l),u=ep(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=a(t),n.opacity=u(t),n+""}}}var Tp=Np(tp),Rp=Np(ep);function Pp(t){return function n(e){function r(n,r){var i=t((n=Gd(n)).h,(r=Gd(r)).h),a=ep(n.s,r.s),u=ep(n.l,r.l),o=ep(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=a(t),n.l=u(Math.pow(t,e)),n.opacity=o(t),n+""}}return e=+e,r.gamma=n,r}(1)}var Lp=Pp(tp),qp=Pp(ep);function Up(t,n){for(var e=0,r=n.length-1,i=n[0],a=new Array(r<0?0:r);e<r;)a[e]=t(i,i=n[++e]);return function(t){var n=Math.max(0,Math.min(r-1,Math.floor(t*=r)));return a[n](t-n)}}var jp=Object.freeze({interpolate:pp,interpolateArray:op,interpolateBasis:Zd,interpolateBasisClosed:Jd,interpolateDate:sp,interpolateDiscrete:function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},interpolateHue:function(t,n){var e=tp(+t,+n);return function(t){var n=e(t);return n-360*Math.floor(n/360)}},interpolateNumber:lp,interpolateObject:cp,interpolateRound:gp,interpolateString:dp,interpolateTransformCss:Mp,interpolateTransformSvg:kp,interpolateZoom:function(t,n){var e,r,i=t[0],a=t[1],u=t[2],o=n[0],s=n[1],l=n[2],c=o-i,f=s-a,h=c*c+f*f;if(h<Fp)r=Math.log(l/u)/Ep,e=function(t){return[i+t*c,a+t*f,u*Math.exp(Ep*t*r)]};else{var d=Math.sqrt(h),p=(l*l-u*u+Dp*h)/(2*u*Cp*d),g=(l*l-u*u-Dp*h)/(2*l*Cp*d),m=Math.log(Math.sqrt(p*p+1)-p),v=Math.log(Math.sqrt(g*g+1)-g);r=(v-m)/Ep,e=function(t){var n,e=t*r,o=Sp(m),s=u/(Cp*d)*(o*(n=Ep*e+m,((n=Math.exp(2*n))-1)/(n+1))-function(t){return((t=Math.exp(t))-1/t)/2}(m));return[i+s*c,a+s*f,u*o/Sp(Ep*e+m)]}}return e.duration=1e3*r,e},interpolateRgb:rp,interpolateRgbBasis:ap,interpolateRgbBasisClosed:up,interpolateHsl:Op,interpolateHslLong:zp,interpolateLab:function(t,n){var e=ep((t=Bd(t)).l,(n=Bd(n)).l),r=ep(t.a,n.a),i=ep(t.b,n.b),a=ep(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=a(n),t+""}},interpolateHcl:Tp,interpolateHclLong:Rp,interpolateCubehelix:Lp,interpolateCubehelixLong:qp,piecewise:Up,quantize:function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e}});function $p(t){return+t}var Ip=[0,1];function Wp(t){return t}function Hp(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:(e=isNaN(n)?NaN:.5,function(){return e});var e}function Yp(t){var n,e=t[0],r=t[t.length-1];return e>r&&(n=e,e=r,r=n),function(t){return Math.max(e,Math.min(r,t))}}function Gp(t,n,e){var r=t[0],i=t[1],a=n[0],u=n[1];return i<r?(r=Hp(i,r),a=e(u,a)):(r=Hp(r,i),a=e(a,u)),function(t){return a(r(t))}}function Vp(t,n,e){var r=Math.min(t.length,n.length)-1,i=new Array(r),a=new Array(r),u=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++u<r;)i[u]=Hp(t[u],t[u+1]),a[u]=e(n[u],n[u+1]);return function(n){var e=ui(t,n,1,r)-1;return a[e](i[e](n))}}function Xp(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Zp(){var t,n,e,r,i,a,u=Ip,o=Ip,s=pp,l=Wp;function c(){return r=Math.min(u.length,o.length)>2?Vp:Gp,i=a=null,f}function f(n){return isNaN(n=+n)?e:(i||(i=r(u.map(t),o,s)))(t(l(n)))}return f.invert=function(e){return l(n((a||(a=r(o,u.map(t),lp)))(e)))},f.domain=function(t){return arguments.length?(u=Array.from(t,$p),l===Wp||(l=Yp(u)),c()):u.slice()},f.range=function(t){return arguments.length?(o=Array.from(t),c()):o.slice()},f.rangeRound=function(t){return o=Array.from(t),s=gp,c()},f.clamp=function(t){return arguments.length?(l=t?Yp(u):Wp,f):l!==Wp},f.interpolate=function(t){return arguments.length?(s=t,c()):s},f.unknown=function(t){return arguments.length?(e=t,f):e},function(e,r){return t=e,n=r,c()}}function Jp(t,n){return Zp()(t,n)}function Qp(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function Kp(t){return(t=Qp(Math.abs(t)))?t[1]:NaN}var tg,ng=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function eg(t){return new rg(t)}function rg(t){if(!(n=ng.exec(t)))throw new Error("invalid format: "+t);var n;this.fill=n[1]||" ",this.align=n[2]||">",this.sign=n[3]||"-",this.symbol=n[4]||"",this.zero=!!n[5],this.width=n[6]&&+n[6],this.comma=!!n[7],this.precision=n[8]&&+n[8].slice(1),this.trim=!!n[9],this.type=n[10]||""}function ig(t,n){var e=Qp(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}eg.prototype=rg.prototype,rg.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var ag={"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return ig(100*t,n)},r:ig,s:function(t,n){var e=Qp(t,n);if(!e)return t+"";var r=e[0],i=e[1],a=i-(tg=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=r.length;return a===u?r:a>u?r+new Array(a-u+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+Qp(t,Math.max(0,n+a-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function ug(t){return t}var og,sg,lg,cg=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function fg(t){var n,e,r=t.grouping&&t.thousands?(n=t.grouping,e=t.thousands,function(t,r){for(var i=t.length,a=[],u=0,o=n[0],s=0;i>0&&o>0&&(s+o+1>r&&(o=Math.max(1,r-s)),a.push(t.substring(i-=o,i+o)),!((s+=o+1)>r));)o=n[u=(u+1)%n.length];return a.reverse().join(e)}):ug,i=t.currency,a=t.decimal,u=t.numerals?function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}}(t.numerals):ug,o=t.percent||"%";function s(t){var n=(t=eg(t)).fill,e=t.align,s=t.sign,l=t.symbol,c=t.zero,f=t.width,h=t.comma,d=t.precision,p=t.trim,g=t.type;"n"===g?(h=!0,g="g"):ag[g]||(null==d&&(d=12),p=!0,g="g"),(c||"0"===n&&"="===e)&&(c=!0,n="0",e="=");var m="$"===l?i[0]:"#"===l&&/[boxX]/.test(g)?"0"+g.toLowerCase():"",v="$"===l?i[1]:/[%p]/.test(g)?o:"",y=ag[g],x=/[defgprs%]/.test(g);function _(t){var i,o,l,_=m,b=v;if("c"===g)b=y(t)+b,t="";else{var w=(t=+t)<0;if(t=y(Math.abs(t),d),p&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r<e;++r)switch(t[r]){case".":i=n=r;break;case"0":0===i&&(i=r),n=r;break;default:if(i>0){if(!+t[r])break t;i=0}}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),w&&0==+t&&(w=!1),_=(w?"("===s?s:"-":"-"===s||"("===s?"":s)+_,b=("s"===g?cg[8+tg/3]:"")+b+(w&&"("===s?")":""),x)for(i=-1,o=t.length;++i<o;)if(48>(l=t.charCodeAt(i))||l>57){b=(46===l?a+t.slice(i+1):t.slice(i))+b,t=t.slice(0,i);break}}h&&!c&&(t=r(t,1/0));var A=_.length+t.length+b.length,M=A<f?new Array(f-A+1).join(n):"";switch(h&&c&&(t=r(M+t,M.length?f-b.length:1/0),M=""),e){case"<":t=_+t+b+M;break;case"=":t=_+M+t+b;break;case"^":t=M.slice(0,A=M.length>>1)+_+t+b+M.slice(A);break;default:t=M+_+t+b}return u(t)}return d=null==d?6:/[gprs]/.test(g)?Math.max(1,Math.min(21,d)):Math.max(0,Math.min(20,d)),_.toString=function(){return t+""},_}return{format:s,formatPrefix:function(t,n){var e=s(((t=eg(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(Kp(n)/3))),i=Math.pow(10,-r),a=cg[8+r/3];return function(t){return e(i*t)+a}}}}function hg(t){return og=fg(t),sg=og.format,lg=og.formatPrefix,og}function dg(t,n,e,r){var i,a=gi(t,n,e);switch((r=eg(null==r?",f":r)).type){case"s":var u=Math.max(Math.abs(t),Math.abs(n));return null!=r.precision||isNaN(i=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Kp(n)/3)))-Kp(Math.abs(t)))}(a,u))||(r.precision=i),lg(r,u);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,Kp(n)-Kp(t))+1}(a,Math.max(Math.abs(t),Math.abs(n))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=function(t){return Math.max(0,-Kp(Math.abs(t)))}(a))||(r.precision=i-2*("%"===r.type))}return sg(r)}function pg(t){var n=t.domain;return t.ticks=function(t){var e=n();return di(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return dg(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i=n(),a=0,u=i.length-1,o=i[a],s=i[u];return s<o&&(r=o,o=s,s=r,r=a,a=u,u=r),(r=pi(o,s,e))>0?r=pi(o=Math.floor(o/r)*r,s=Math.ceil(s/r)*r,e):r<0&&(r=pi(o=Math.ceil(o*r)/r,s=Math.floor(s*r)/r,e)),r>0?(i[a]=Math.floor(o/r)*r,i[u]=Math.ceil(s/r)*r,n(i)):r<0&&(i[a]=Math.ceil(o*r)/r,i[u]=Math.floor(s*r)/r,n(i)),t},t}function gg(t,n){var e,r=0,i=(t=t.slice()).length-1,a=t[r],u=t[i];return u<a&&(e=r,r=i,i=e,e=a,a=u,u=e),t[r]=n.floor(a),t[i]=n.ceil(u),t}function mg(t){return Math.log(t)}function vg(t){return Math.exp(t)}function yg(t){return-Math.log(-t)}function xg(t){return-Math.exp(-t)}function _g(t){return isFinite(t)?+("1e"+t):t<0?0:t}function bg(t){return function(n){return-t(-n)}}function wg(t){var n,e,r=t(mg,vg),i=r.domain,a=10;function u(){return n=function(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}(a),e=function(t){return 10===t?_g:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}(a),i()[0]<0?(n=bg(n),e=bg(e),t(yg,xg)):t(mg,vg),r}return r.base=function(t){return arguments.length?(a=+t,u()):a},r.domain=function(t){return arguments.length?(i(t),u()):i()},r.ticks=function(t){var r,u=i(),o=u[0],s=u[u.length-1];(r=s<o)&&(h=o,o=s,s=h);var l,c,f,h=n(o),d=n(s),p=null==t?10:+t,g=[];if(!(a%1)&&d-h<p){if(h=Math.round(h)-1,d=Math.round(d)+1,o>0){for(;h<d;++h)for(c=1,l=e(h);c<a;++c)if(!((f=l*c)<o)){if(f>s)break;g.push(f)}}else for(;h<d;++h)for(c=a-1,l=e(h);c>=1;--c)if(!((f=l*c)<o)){if(f>s)break;g.push(f)}}else g=di(h,d,Math.min(d-h,p)).map(e);return r?g.reverse():g},r.tickFormat=function(t,i){if(null==i&&(i=10===a?".0e":","),"function"!=typeof i&&(i=sg(i)),t===1/0)return i;null==t&&(t=10);var u=Math.max(1,a*t/r.ticks().length);return function(t){var r=t/e(Math.round(n(t)));return r*a<a-.5&&(r*=a),r<=u?i(t):""}},r.nice=function(){return i(gg(i(),{floor:function(t){return e(Math.floor(n(t)))},ceil:function(t){return e(Math.ceil(n(t)))}}))},r}function Ag(t){return function(n){return Math.sign(n)*Math.log1p(Math.abs(n/t))}}function Mg(t){return function(n){return Math.sign(n)*Math.expm1(Math.abs(n))*t}}function kg(t){var n=1,e=t(Ag(n),Mg(n));return e.constant=function(e){return arguments.length?t(Ag(n=+e),Mg(n)):n},pg(e)}function Eg(t){return function(n){return n<0?-Math.pow(-n,t):Math.pow(n,t)}}function Cg(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function Dg(t){return t<0?-t*t:t*t}function Fg(t){var n=t(Wp,Wp),e=1;return n.exponent=function(n){return arguments.length?1===(e=+n)?t(Wp,Wp):.5===e?t(Cg,Dg):t(Eg(e),Eg(1/e)):e},pg(n)}function Sg(){var t=Fg(Zp());return t.copy=function(){return Xp(t,Sg()).exponent(t.exponent())},Hh.apply(t,arguments),t}hg({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var Bg=1e3,Og=60*Bg,zg=60*Og,Ng=24*zg,Tg=7*Ng,Rg=30*Ng,Pg=365*Ng;function Lg(t){return new Date(t)}function qg(t){return t instanceof Date?+t:+new Date(+t)}function Ug(t,n,e,r,i,a,u,o,s){var l=Jp(Wp,Wp),c=l.invert,f=l.domain,h=s(".%L"),d=s(":%S"),p=s("%I:%M"),g=s("%I %p"),m=s("%a %d"),v=s("%b %d"),y=s("%B"),x=s("%Y"),_=[[u,1,Bg],[u,5,5*Bg],[u,15,15*Bg],[u,30,30*Bg],[a,1,Og],[a,5,5*Og],[a,15,15*Og],[a,30,30*Og],[i,1,zg],[i,3,3*zg],[i,6,6*zg],[i,12,12*zg],[r,1,Ng],[r,2,2*Ng],[e,1,Tg],[n,1,Rg],[n,3,3*Rg],[t,1,Pg]];function b(o){return(u(o)<o?h:a(o)<o?d:i(o)<o?p:r(o)<o?g:n(o)<o?e(o)<o?m:v:t(o)<o?y:x)(o)}function w(n,e,r,i){if(null==n&&(n=10),"number"==typeof n){var a=Math.abs(r-e)/n,u=ii(function(t){return t[2]}).right(_,a);u===_.length?(i=gi(e/Pg,r/Pg,n),n=t):u?(i=(u=_[a/_[u-1][2]<_[u][2]/a?u-1:u])[1],n=u[0]):(i=Math.max(gi(e,r,n),1),n=o)}return null==i?n:n.every(i)}return l.invert=function(t){return new Date(c(t))},l.domain=function(t){return arguments.length?f(Array.from(t,qg)):f().map(Lg)},l.ticks=function(t,n){var e,r=f(),i=r[0],a=r[r.length-1],u=a<i;return u&&(e=i,i=a,a=e),e=(e=w(t,i,a,n))?e.range(i,a+1):[],u?e.reverse():e},l.tickFormat=function(t,n){return null==n?b:s(n)},l.nice=function(t,n){var e=f();return(t=w(t,e[0],e[e.length-1],n))?f(gg(e,t)):l},l.copy=function(){return Xp(l,Ug(t,n,e,r,i,a,u,o,s))},l}function jg(){var t,n,e,r,i,a=0,u=1,o=Wp,s=!1;function l(n){return isNaN(n=+n)?i:o(0===e?.5:(n=(r(n)-t)*e,s?Math.max(0,Math.min(1,n)):n))}return l.domain=function(i){return arguments.length?([a,u]=i,t=r(a=+a),n=r(u=+u),e=t===n?0:1/(n-t),l):[a,u]},l.clamp=function(t){return arguments.length?(s=!!t,l):s},l.interpolator=function(t){return arguments.length?(o=t,l):o},l.unknown=function(t){return arguments.length?(i=t,l):i},function(i){return r=i,t=i(a),n=i(u),e=t===n?0:1/(n-t),l}}function $g(t,n){return n.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function Ig(){var t=pg(jg()(Wp));return t.copy=function(){return $g(t,Ig())},Yh.apply(t,arguments)}function Wg(){var t=Fg(jg());return t.copy=function(){return $g(t,Wg()).exponent(t.exponent())},Yh.apply(t,arguments)}function Hg(){var t,n,e,r,i,a,u,o=0,s=.5,l=1,c=Wp,f=!1;function h(t){return isNaN(t=+t)?u:(t=.5+((t=+a(t))-n)*(t<n?r:i),c(f?Math.max(0,Math.min(1,t)):t))}return h.domain=function(u){return arguments.length?([o,s,l]=u,t=a(o=+o),n=a(s=+s),e=a(l=+l),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),h):[o,s,l]},h.clamp=function(t){return arguments.length?(f=!!t,h):f},h.interpolator=function(t){return arguments.length?(c=t,h):c},h.unknown=function(t){return arguments.length?(u=t,h):u},function(u){return a=u,t=u(o),n=u(s),e=u(l),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),h}}function Yg(){var t=Fg(Hg());return t.copy=function(){return $g(t,Yg()).exponent(t.exponent())},Yh.apply(t,arguments)}function Gg(){var t,n,e=Vh().unknown(void 0),r=e.domain,i=e.range,a=[0,1],u=!1,o=0,s=0,l=.5;function c(){var e=r().length,c=a[1]<a[0],f=a[c-0],h=a[1-c],d=yh(e,o,s);t=(h-f)/(d||1),u&&(t=Math.floor(t)),f+=(h-f-t*(e-o))*l,n=t*(1-o),u&&(f=Math.round(f),n=Math.round(n));var p=li(e).map(function(n){return f+t*n});return i(c?p.reverse():p)}return delete e.unknown,e.domain=function(t){return arguments.length?(r(t),c()):r()},e.range=function(t){return arguments.length?(a=[+t[0],+t[1]],c()):a.slice()},e.rangeRound=function(t){return a=[+t[0],+t[1]],u=!0,c()},e.bandwidth=function(){return n},e.step=function(){return t},e.round=function(t){return arguments.length?(u=!!t,c()):u},e.padding=function(t){return arguments.length?(s=Math.max(0,Math.min(1,t)),o=s,c()):o},e.paddingInner=function(t){return arguments.length?(o=Math.max(0,Math.min(1,t)),c()):o},e.paddingOuter=function(t){return arguments.length?(s=Math.max(0,Math.min(1,t)),c()):s},e.align=function(t){return arguments.length?(l=Math.max(0,Math.min(1,t)),c()):l},e.invertRange=function(t){if(null!=t[0]&&null!=t[1]){var e,u,o,s=+t[0],l=+t[1],c=a[1]<a[0],f=c?i().reverse():i(),h=f.length-1;if(s==s&&l==l&&(l<s&&(o=s,s=l,l=o),!(l<f[0]||s>a[1-c])))return e=Math.max(0,ui(f,s)-1),u=s===l?e:ui(f,l)-1,s-f[e]>n+1e-10&&++e,c&&(o=e,e=h-u,u=h-o),e>u?void 0:r().slice(e,u+1)}},e.invert=function(t){var n=e.invertRange([t,t]);return n?n[0]:n},e.copy=function(){return Gg().domain(r()).range(a).round(u).paddingInner(o).paddingOuter(s).align(l)},c()}var Vg=Array.prototype.map;var Xg=Array.prototype.slice;function Zg(t,n){return arguments.length>1?(Jg[t]=function(t,n){return function(){var e=n();return e.invertRange||(e.invertRange=e.invert?function(t){return function(n){var e,r=n[0],i=n[1];return i<r&&(e=r,r=i,i=e),[t.invert(r),t.invert(i)]}}(e):e.invertExtent?function(t){return function(n){var e,r,i,a,u=t.range(),o=n[0],s=n[1],l=-1;for(s<o&&(r=o,o=s,s=r),i=0,a=u.length;i<a;++i)u[i]>=o&&u[i]<=s&&(l<0&&(l=i),e=i);if(!(l<0))return o=t.invertExtent(u[l]),s=t.invertExtent(u[e]),[void 0===o[0]?o[1]:o[0],void 0===s[1]?s[0]:s[1]]}}(e):void 0),e.type=t,e}}(t,n),this):Jg.hasOwnProperty(t)?Jg[t]:void 0}var Jg={[xh]:function t(n){var e;function r(t){return isNaN(t=+t)?e:t}return r.invert=r,r.domain=r.range=function(t){return arguments.length?(n=Array.from(t,$p),r):n.slice()},r.unknown=function(t){return arguments.length?(e=t,r):e},r.copy=function(){return t(n).unknown(e)},n=arguments.length?Array.from(n,$p):[0,1],pg(r)},[_h]:function t(){var n=Jp(Wp,Wp);return n.copy=function(){return Xp(n,t())},Hh.apply(n,arguments),pg(n)},[bh]:function t(){var n=wg(Zp()).domain([1,10]);return n.copy=function(){return Xp(n,t()).base(n.base())},Hh.apply(n,arguments),n},[wh]:Sg,[Ah]:function(){return Sg.apply(null,arguments).exponent(.5)},[Mh]:function t(){var n=kg(Zp());return n.copy=function(){return Xp(n,t()).constant(n.constant())},Hh.apply(n,arguments)},[kh]:function(){return Hh.apply(Ug(Yn,Hn,$n,Un,qn,Ln,Pn,Nn,ue).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)},[Eh]:function(){return Hh.apply(Ug(ne,te,Jn,Xn,Vn,Gn,Pn,Nn,se).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},[Ch]:Ig,[Ch+"-"+_h]:Ig,[Ch+"-"+bh]:function t(){var n=wg(jg()).domain([1,10]);return n.copy=function(){return $g(n,t()).base(n.base())},Yh.apply(n,arguments)},[Ch+"-"+wh]:Wg,[Ch+"-"+Ah]:function(){return Wg.apply(null,arguments).exponent(.5)},[Ch+"-"+Mh]:function t(){var n=kg(jg());return n.copy=function(){return $g(n,t()).constant(n.constant())},Yh.apply(n,arguments)},[Dh+"-"+_h]:function t(){var n=pg(Hg()(Wp));return n.copy=function(){return $g(n,t())},Yh.apply(n,arguments)},[Dh+"-"+bh]:function t(){var n=wg(Hg()).domain([.1,1,10]);return n.copy=function(){return $g(n,t()).base(n.base())},Yh.apply(n,arguments)},[Dh+"-"+wh]:Yg,[Dh+"-"+Ah]:function(){return Yg.apply(null,arguments).exponent(.5)},[Dh+"-"+Mh]:function t(){var n=kg(Hg());return n.copy=function(){return $g(n,t()).constant(n.constant())},Yh.apply(n,arguments)},[Fh]:function t(){var n,e=[],r=[],i=[];function a(){var t=0,n=Math.max(1,r.length);for(i=new Array(n-1);++t<n;)i[t-1]=mi(e,t/n);return u}function u(t){return isNaN(t=+t)?n:r[ui(i,t)]}return u.invertExtent=function(t){var n=r.indexOf(t);return n<0?[NaN,NaN]:[n>0?i[n-1]:e[0],n<i.length?i[n]:e[e.length-1]]},u.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)null==n||isNaN(n=+n)||e.push(n);return e.sort(ri),a()},u.range=function(t){return arguments.length?(r=Array.from(t),a()):r.slice()},u.unknown=function(t){return arguments.length?(n=t,u):n},u.quantiles=function(){return i.slice()},u.copy=function(){return t().domain(e).range(r).unknown(n)},Hh.apply(u,arguments)},[Sh]:function t(){var n,e=0,r=1,i=1,a=[.5],u=[0,1];function o(t){return t<=t?u[ui(a,t,0,i)]:n}function s(){var t=-1;for(a=new Array(i);++t<i;)a[t]=((t+1)*r-(t-i)*e)/(i+1);return o}return o.domain=function(t){return arguments.length?([e,r]=t,e=+e,r=+r,s()):[e,r]},o.range=function(t){return arguments.length?(i=(u=Array.from(t)).length-1,s()):u.slice()},o.invertExtent=function(t){var n=u.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,a[0]]:n>=i?[a[i-1],r]:[a[n-1],a[n]]},o.unknown=function(t){return arguments.length?(n=t,o):o},o.thresholds=function(){return a.slice()},o.copy=function(){return t().domain([e,r]).range(u).unknown(n)},Hh.apply(pg(o),arguments)},[Bh]:function t(){var n,e=[.5],r=[0,1],i=1;function a(t){return t<=t?r[ui(e,t,0,i)]:n}return a.domain=function(t){return arguments.length?(e=Array.from(t),i=Math.min(e.length,r.length-1),a):e.slice()},a.range=function(t){return arguments.length?(r=Array.from(t),i=Math.min(e.length,r.length-1),a):r.slice()},a.invertExtent=function(t){var n=r.indexOf(t);return[e[n-1],e[n]]},a.unknown=function(t){return arguments.length?(n=t,a):n},a.copy=function(){return t().domain(e).range(r).unknown(n)},Hh.apply(a,arguments)},[Th]:function t(){var n=[],e=[];function r(t){return null==t||t!=t?void 0:e[(ui(n,t)-1)%e.length]}return r.domain=function(t){return arguments.length?(n=function(t){return Vg.call(t,function(t){return+t})}(t),r):n.slice()},r.range=function(t){return arguments.length?(e=Xg.call(t),r):e.slice()},r.tickFormat=function(t,e){return dg(n[0],k(n),null==t?10:t,e)},r.copy=function(){return t().domain(r.domain()).range(r.range())},r},[Oh]:Vh,[Nh]:Gg,[zh]:function(){return function t(n){var e=n.copy;return n.padding=n.paddingOuter,delete n.paddingInner,n.copy=function(){return t(e())},n}(Gg().paddingInner(1))}};for(var Qg in Jg)Zg(Qg,Jg[Qg]);const Kg=["clamp","base","constant","exponent"];function tm(t,n){var e=n[0],r=k(n)-e;return function(n){return t(e+n*r)}}function nm(t,n,e){return Up(im(n||"rgb",e),t)}function em(t,n){for(var e=new Array(n),r=n+1,i=0;i<n;)e[i]=t(++i/r);return e}function rm(t,n,e){var r,i,a,u=e-n;return u&&isFinite(u)?(r=(i=t.type).indexOf("-"),i=r<0?i:i.slice(r+1),a=Zg(i)().domain([n,e]).range([0,1]),Kg.forEach(n=>t[n]?a[n](t[n]()):0),a):V(.5)}function im(t,n){var e=jp[function(t){return"interpolate"+t.toLowerCase().split("-").map(function(t){return t[0].toUpperCase()+t.slice(1)}).join("")}(t)];return null!=n&&e&&e.gamma?e.gamma(n):e}function am(t){for(var n=t.length/6|0,e=new Array(n),r=0;r<n;)e[r]="#"+t.slice(6*r,6*++r);return e}function um(t,n){for(let e in t)sm(e,n(t[e]))}const om={};function sm(t,n){return t=t&&t.toLowerCase(),arguments.length>1?(om[t]=n,this):om[t]}function lm(t,n,e){var r;return ut(n)&&null!=e&&(n=Math.min(n,~~(dt(t.domain())/e)||1)),o(n)&&(r=n.step,n=n.interval),s(n)&&(n=Wh(n,t.type)||i("Only time and utc scales accept interval strings."),r&&(n=n.every(r))),n}function cm(t,n,e){var r=t.range(),i=Math.floor(r[0]),a=Math.ceil(k(r));if(i>a&&(r=a,a=i,i=r),n=n.filter(function(n){return n=t(n),i<=n&&n<=a}),e>0&&n.length>1){for(var u=[n[0],k(n)];n.length>e&&n.length>=3;)n=n.filter(function(t,n){return!(n%2)});n.length<3&&(n=u)}return n}function fm(t,n){return t.bins?cm(t,function(t,n){var e=t.length,r=~~(e/(n||e));return r<2?t.slice():t.filter(function(t,n){return!(n%r)})}(t.bins,n)):t.ticks?t.ticks(n):t.domain()}function hm(t,n,e,r){var i,a,u=t.tickFormat?t.tickFormat(n,e):e&&r===kh?ue(e):e?sg(e):String;if(Lh(t.type)){var o=function(t){var n=eg(t||",");if(null==n.precision){switch(n.precision=12,n.type){case"%":n.precision-=2;break;case"e":n.precision-=1}return e=sg(n),r=sg(".1f")(1)[1],function(t){var n,i,a=e(t),u=a.indexOf(r);if(u<0)return a;for(n=function(t,n){var e,r=t.lastIndexOf("e");if(r>0)return r;for(r=t.length;--r>n;)if((e=t.charCodeAt(r))>=48&&e<=57)return r+1}(a,u),i=n<a.length?a.slice(n):"";--n>u;)if("0"!==a[n]){++n;break}return a.slice(0,n)+i}}return sg(n);var e,r}(e);u=t.bins?o:(i=u,a=o,function(t){return i(t)?a(t):""})}return u}function dm(t){$r.call(this,null,t)}function pm(t){$r.call(this,null,t)}function gm(){return Dt({})}function mm(t){return t.exit}function vm(t){$r.call(this,null,t)}um({category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"},am),um({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",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",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"},t=>nm(am(t))),et(dm,$r).transform=function(t,n){if(this.value&&!t.modified())return n.StopPropagation;var e=n.fork(n.NO_SOURCE|n.NO_FIELDS),r=this.value,i=t.scale,a=lm(i,null==t.count?t.values?t.values.length:10:t.count,t.minstep),u=t.format||hm(i,a,t.formatSpecifier,t.formatType),o=t.values?cm(i,t.values,a):fm(i,a);return r&&(e.rem=r),r=o.map(function(t,n){return Dt({index:n/(o.length-1||1),value:t,label:u(t)})}),t.extra&&r.length&&r.push(Dt({index:-1,extra:{value:r[0].value},label:""})),e.source=r,e.add=r,this.value=r,e},et(pm,$r).transform=function(t,n){var e=n.dataflow,r=n.fork(n.NO_SOURCE|n.NO_FIELDS),a=t.item||gm,o=t.key||Et,s=this.value;return u(r.encode)&&(r.encode=null),s&&(t.modified("key")||n.modified(o))&&i("DataJoin does not support modified key function or fields."),s||(n=n.addAll(),this.value=s=tt().test(mm),s.lookup=function(t){return s.get(o(t))}),n.visit(n.ADD,function(t){var n=o(t),e=s.get(n);e?e.exit?(s.empty--,r.add.push(e)):r.mod.push(e):(s.set(n,e=a(t)),r.add.push(e)),e.datum=t,e.exit=!1}),n.visit(n.MOD,function(t){var n=o(t),e=s.get(n);e&&(e.datum=t,r.mod.push(e))}),n.visit(n.REM,function(t){var n=o(t),e=s.get(n);t!==e.datum||e.exit||(r.rem.push(e),e.exit=!0,++s.empty)}),n.changed(n.ADD_MOD)&&r.modifies("datum"),t.clean&&s.empty>e.cleanThreshold&&e.runAfter(s.clean),r},et(vm,$r).transform=function(t,n){var e=n.fork(n.ADD_REM),r=t.mod||!1,i=t.encoders,a=n.encode;if(u(a)){if(!e.changed()&&!a.every(function(t){return i[t]}))return n.StopPropagation;a=a[0],e.encode=null}var o="enter"===a,s=i.update||v,l=i.enter||v,c=i.exit||v,f=(a&&!o?i[a]:s)||v;if(n.changed(n.ADD)&&(n.visit(n.ADD,function(n){l(n,t),s(n,t)}),e.modifies(l.output),e.modifies(s.output),f!==v&&f!==s&&(n.visit(n.ADD,function(n){f(n,t)}),e.modifies(f.output))),n.changed(n.REM)&&c!==v&&(n.visit(n.REM,function(n){c(n,t)}),e.modifies(c.output)),o||f!==v){var h=n.MOD|(t.modified()?n.REFLOW:0);o?(n.visit(h,function(n){var i=l(n,t)||r;(f(n,t)||i)&&e.mod.push(n)}),e.mod.length&&e.modifies(l.output)):n.visit(h,function(n){(f(n,t)||r)&&e.mod.push(n)}),e.mod.length&&e.modifies(f.output)}return e.changed()?e:n.StopPropagation};var ym="symbol",xm="discrete";const _m={[Fh]:"quantiles",[Sh]:"thresholds",[Bh]:"domain"},bm={[Fh]:"quantiles",[Sh]:"domain"};function wm(t,n){return t.bins?function(t){const n=t.slice(0,-1);return n.max=k(t),n}(t.bins):_m[t.type]?function(t){const n=[-1/0].concat(t);return n.max=1/0,n}(t[_m[t.type]]()):fm(t,n)}function Am(t,n,e,r,i){const a=bm[t.type]&&i!==kh?function(t,n){var e,r=t[bm[t.type]](),i=r.length,a=i>1?r[1]-r[0]:r[0];for(e=1;e<i;++e)a=Math.min(a,r[e]-r[e-1]);return dg(0,a,30,n)}(t,r):hm(t,n,r,i);return e===ym&&function(t){return _m[t.type]||t.bins}(t)?function(t){return function(n,e,r){var i=r[e+1]||r.max||1/0,a=Mm(n,t),u=Mm(i,t);return a&&u?a+"–"+u:u?"< "+u:"≥ "+a}}(a):e===xm?function(t){return function(n,e){return e?t(n):null}}(a):function(t){return function(n){return t(n)}}(a)}function Mm(t,n){return isFinite(t)?n(t):null}function km(t){$r.call(this,[],t)}et(km,$r).transform=function(t,n){if(null!=this.value&&!t.modified())return n.StopPropagation;var e,r,i,a,u=n.fork(n.NO_SOURCE|n.NO_FIELDS),o=this.value,s=t.type||ym,l=t.scale,c=lm(l,null==t.count?5:t.count,t.minstep),f=t.format||Am(l,c,s,t.formatSpecifier,t.formatType),h=t.values||wm(l,c);return o&&(u.rem=o),s===ym?(Y(i=t.size)?(t.values||0!==l(h[0])||(h=h.slice(1)),a=h.reduce(function(n,e){return Math.max(n,i(e,t))},0)):i=V(a=i||8),o=h.map(function(n,e){return Dt({index:e,label:f(n,e,h),value:n,offset:a,size:i(n,t)})})):"gradient"===s?(e=l.domain(),r=rm(l,e[0],k(e)),h.length<3&&!t.values&&e[0]!==k(e)&&(h=[e[0],k(e)]),o=h.map(function(t,n){return Dt({index:n,label:f(t,n,h),value:t,perc:r(t)})})):(i=h.length-1,r=function(t){var n=t.domain(),e=n.length-1,r=+n[0],i=+k(n),a=i-r;if(t.type===Bh){var u=e?a/e:.1;a=(i+=u)-(r-=u)}return function(t){return(t-r)/a}}(l),o=h.map(function(t,n){return Dt({index:n,label:f(t,n,h),value:t,perc:n?r(t):0,perc2:n===i?1:r(h[n+1])})})),u.source=o,u.add=o,this.value=o,u};var Em=tt({line:Om,"line-radial":function(t,n,e,r){return Om(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e))},arc:zm,"arc-radial":function(t,n,e,r){return zm(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e))},curve:Nm,"curve-radial":function(t,n,e,r){return Nm(n*Math.cos(t),n*Math.sin(t),r*Math.cos(e),r*Math.sin(e))},"orthogonal-horizontal":function(t,n,e,r){return"M"+t+","+n+"V"+r+"H"+e},"orthogonal-vertical":function(t,n,e,r){return"M"+t+","+n+"H"+e+"V"+r},"orthogonal-radial":function(t,n,e,r){var i=Math.cos(t),a=Math.sin(t),u=Math.cos(e),o=Math.sin(e),s=Math.abs(e-t)>Math.PI?e<=t:e>t;return"M"+n*i+","+n*a+"A"+n+","+n+" 0 0,"+(s?1:0)+" "+n*u+","+n*o+"L"+r*u+","+r*o},"diagonal-horizontal":function(t,n,e,r){var i=(t+e)/2;return"M"+t+","+n+"C"+i+","+n+" "+i+","+r+" "+e+","+r},"diagonal-vertical":function(t,n,e,r){var i=(n+r)/2;return"M"+t+","+n+"C"+t+","+i+" "+e+","+i+" "+e+","+r},"diagonal-radial":function(t,n,e,r){var i=Math.cos(t),a=Math.sin(t),u=Math.cos(e),o=Math.sin(e),s=(n+r)/2;return"M"+n*i+","+n*a+"C"+s*i+","+s*a+" "+s*u+","+s*o+" "+r*u+","+r*o}});function Cm(t){return t.source.x}function Dm(t){return t.source.y}function Fm(t){return t.target.x}function Sm(t){return t.target.y}function Bm(t){$r.call(this,{},t)}function Om(t,n,e,r){return"M"+t+","+n+"L"+e+","+r}function zm(t,n,e,r){var i=e-t,a=r-n,u=Math.sqrt(i*i+a*a)/2;return"M"+t+","+n+"A"+u+","+u+" "+180*Math.atan2(a,i)/Math.PI+" 0 1 "+e+","+r}function Nm(t,n,e,r){var i=e-t,a=r-n,u=.2*(i+a),o=.2*(a-i);return"M"+t+","+n+"C"+(t+u)+","+(n+o)+" "+(e+o)+","+(r-u)+" "+e+","+r}function Tm(t){$r.call(this,null,t)}Bm.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"}]},et(Bm,$r).transform=function(t,n){var e=t.sourceX||Cm,r=t.sourceY||Dm,a=t.targetX||Fm,u=t.targetY||Sm,o=t.as||"path",s=t.orient||"vertical",l=t.shape||"line",c=Em.get(l+"-"+s)||Em.get(l);return c||i("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:"")),n.visit(n.SOURCE,function(t){t[o]=c(e(t),r(t),a(t),u(t))}),n.reflow(t.modified()).modifies(o)},Tm.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"]}]},et(Tm,$r).transform=function(t,n){var e,r,i,a=t.as||["startAngle","endAngle"],u=a[0],o=a[1],s=t.field||g,l=t.startAngle||0,c=null!=t.endAngle?t.endAngle:2*Math.PI,f=n.source,h=f.map(s),d=h.length,p=l,m=(c-l)/function(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&(e+=i)}return e}(h),v=li(d);for(t.sort&&v.sort(function(t,n){return h[t]-h[n]}),e=0;e<d;++e)i=h[v[e]],(r=f[v[e]])[u]=p,r[o]=p+=i*m;return this.value=h,n.reflow(t.modified()).modifies(a)};var Rm=5;function Pm(t){return qh(t)&&t!==Ch}var Lm=yt(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma"]);function qm(t){$r.call(this,null,t),this.modified(!0)}function Um(t,n,e){Lh(t)&&(Math.abs(n.reduce(function(t,n){return t+(n<0?-1:n>0?1:0)},0))!==n.length&&e.warn("Log scale domain includes zero: "+l(n)));return n}function jm(t,n,e){return Y(t)&&(n||e)?tm(t,$m(n||[0,1],e)):t}function $m(t,n){return n?t.slice().reverse():t}function Im(t){$r.call(this,null,t)}et(qm,$r).transform=function(t,n){var e=n.dataflow,r=this.value,a=function(t){var n,e=t.type,r="";if(e===Ch)return Ch+"-"+_h;(function(t){const n=t.type;return qh(n)&&n!==kh&&n!==Eh&&(t.scheme||t.range&&t.range.length&&t.range.every(s))})(t)&&(n=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(null!=t.domainMid):0,r=2===n?Ch+"-":3===n?Dh+"-":"");return(r+e||_h).toLowerCase()}(t);for(a in r&&a===r.type||(this.value=r=Zg(a)()),t)if(!Lm[a]){if("padding"===a&&Pm(r.type))continue;Y(r[a])?r[a](t[a]):e.warn("Unsupported scale property: "+a)}return function(t,n,e){var r=n.round||!1,a=n.range;if(null!=n.rangeStep)a=function(t,n,e){t!==Nh&&t!==zh&&i("Only band and point scales support rangeStep.");var r=(null!=n.paddingOuter?n.paddingOuter:n.padding)||0,a=t===zh?1:(null!=n.paddingInner?n.paddingInner:n.padding)||0;return[0,n.rangeStep*yh(e,a,r)]}(t.type,n,e);else if(n.scheme){if(a=function(t,n,e){var r,a,o=n.schemeExtent;u(n.scheme)?a=nm(n.scheme,n.interpolate,n.interpolateGamma):(r=n.scheme.toLowerCase(),(a=sm(r))||i("Unrecognized scheme name: "+n.scheme));return e=t===Bh?e+1:t===Th?e-1:t===Fh||t===Sh?+n.schemeCount||Rm:e,Ph(t)?jm(a,o,n.reverse):Y(a)?em(jm(a,o),e):t===Oh?a:a.slice(0,e)}(t.type,n,e),Y(a))return t.interpolator(a)}else if(a&&Ph(t.type))return t.interpolator(nm($m(a,n.reverse),n.interpolate,n.interpolateGamma));a&&n.interpolate&&t.interpolate?t.interpolate(im(n.interpolate,n.interpolateGamma)):Y(t.round)?t.round(r):Y(t.rangeRound)&&t.interpolate(r?gp:pp);a&&t.range($m(a,n.reverse))}(r,t,function(t,n,e){let r=n.bins;if(r&&!u(r)){const n=(null==r.start||null==r.stop)&&t.domain(),e=null==r.start?n[0]:r.start,a=null==r.stop?k(n):r.stop,u=r.step;u||i("Scale bins parameter missing step property."),r=li(e,a+u,u)}r?t.bins=r:t.bins&&delete t.bins;t.type===Th&&(r?n.domain||n.domainRaw||(t.domain(r),e=r.length):t.bins=t.domain());return e}(r,t,function(t,n,e){var r=function(t,n,e){return n?(t.domain(Um(t.type,n,e)),n.length):-1}(t,n.domainRaw,e);if(r>-1)return r;var i,a,u=n.domain,o=t.type,s=n.zero||void 0===n.zero&&function(t){const n=t.type;return!t.bins&&(n===_h||n===wh||n===Ah)}(t);if(!u)return 0;Pm(o)&&n.padding&&u[0]!==k(u)&&(u=function(t,n,e,r,i,a){var u=Math.abs(k(e)-e[0]),o=u/(u-2*r),s=t===bh?q(n,null,o):t===Ah?U(n,null,o,.5):t===wh?U(n,null,o,i||1):t===Mh?j(n,null,o,a||1):L(n,null,o);return(n=n.slice())[0]=s[0],n[n.length-1]=s[1],n}(o,u,n.range,n.padding,n.exponent,n.constant));(s||null!=n.domainMin||null!=n.domainMax||null!=n.domainMid)&&(i=(u=u.slice()).length-1||1,s&&(u[0]>0&&(u[0]=0),u[i]<0&&(u[i]=0)),null!=n.domainMin&&(u[0]=n.domainMin),null!=n.domainMax&&(u[i]=n.domainMax),null!=n.domainMid&&(((a=n.domainMid)<u[0]||a>u[i])&&e.warn("Scale domainMid exceeds domain min or max.",a),u.splice(i,0,a)));t.domain(Um(o,u,e)),o===Oh&&t.unknown(n.domainImplicit?Gh:void 0);n.nice&&t.nice&&t.nice(!0!==n.nice&&lm(t,n.nice)||null);return u.length}(r,t,e))),n.fork(n.NO_SOURCE|n.NO_FIELDS)},et(Im,$r).transform=function(t,n){var e=t.modified("sort")||n.changed(n.ADD)||n.modified(t.sort.fields)||n.modified("datum");return e&&n.source.sort(t.sort),this.modified(e),n};var Wm=["y0","y1"];function Hm(t){$r.call(this,null,t)}function Ym(t,n,e,r,i){for(var a,u=(n-t.sum)/2,o=t.length,s=0;s<o;++s)(a=t[s])[r]=u,a[i]=u+=Math.abs(e(a))}function Gm(t,n,e,r,i){for(var a,u=1/t.sum,o=0,s=t.length,l=0,c=0;l<s;++l)(a=t[l])[r]=o,a[i]=o=u*(c+=Math.abs(e(a)))}function Vm(t,n,e,r,i){for(var a,u,o=0,s=0,l=t.length,c=0;c<l;++c)(a=+e(u=t[c]))<0?(u[r]=s,u[i]=s+=a):(u[r]=o,u[i]=o+=a)}Hm.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:"zero",values:["zero","center","normalize"]},{name:"as",type:"string",array:!0,length:2,default:Wm}]},et(Hm,$r).transform=function(t,n){var e,r,i,a,u=t.as||Wm,o=u[0],s=u[1],l=t.field||g,c="center"===t.offset?Ym:"normalize"===t.offset?Gm:Vm;for(e=function(t,n,e,r){var i,a,u,o,s,l,c,f,h,d=[],p=function(t){return t(s)};if(null==n)d.push(t.slice());else for(i={},a=0,u=t.length;a<u;++a)s=t[a],l=n.map(p),(c=i[l])||(i[l]=c=[],d.push(c)),c.push(s);for(l=0,h=0,o=d.length;l<o;++l){for(c=d[l],a=0,f=0,u=c.length;a<u;++a)f+=Math.abs(r(c[a]));c.sum=f,f>h&&(h=f),e&&c.sort(e)}return d.max=h,d}(n.source,t.groupby,t.sort,l),r=0,i=e.length,a=e.max;r<i;++r)c(e[r],a,l,o,s);return n.reflow(t.modified()).modifies(u)};var Xm=Object.freeze({axisticks:dm,datajoin:pm,encode:vm,legendentries:km,linkpath:Bm,pie:Tm,scale:qm,sortitems:Im,stack:Hm,validTicks:cm});function Zm(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}!function(t){var n;1===t.length&&(n=t,t=function(t,e){return Zm(n(t),e)})}(Zm);function Jm(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),a=new Array(i);++r<i;)a[r]=t+r*e;return a}var Qm=Math.sqrt(50),Km=Math.sqrt(10),tv=Math.sqrt(2);function nv(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),a=r/i;return a>=Qm?i*=10:a>=Km?i*=5:a>=tv&&(i*=2),n<t?-i:i}function ev(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}var rv=Array.prototype.slice;function iv(t,n){return t-n}function av(t){return function(){return t}}function uv(t,n){for(var e,r=-1,i=n.length;++r<i;)if(e=ov(t,n[r]))return e;return 0}function ov(t,n){for(var e=n[0],r=n[1],i=-1,a=0,u=t.length,o=u-1;a<u;o=a++){var s=t[a],l=s[0],c=s[1],f=t[o],h=f[0],d=f[1];if(sv(s,f,n))return 0;c>r!=d>r&&e<(h-l)*(r-c)/(d-c)+l&&(i=-i)}return i}function sv(t,n,e){var r,i,a,u;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],a=e[r],u=n[r],i<=a&&a<=u||u<=a&&a<=i)}function lv(){}var cv=[[],[[[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 fv(){var t=1,n=1,e=ev,r=o;function i(t){var n=e(t);if(Array.isArray(n))n=n.slice().sort(iv);else{var r=function(t,n){var e,r,i,a=t.length,u=-1;if(null==n){for(;++u<a;)if(null!=(e=t[u])&&e>=e)for(r=i=e;++u<a;)null!=(e=t[u])&&(r>e&&(r=e),i<e&&(i=e))}else for(;++u<a;)if(null!=(e=n(t[u],u,t))&&e>=e)for(r=i=e;++u<a;)null!=(e=n(t[u],u,t))&&(r>e&&(r=e),i<e&&(i=e));return[r,i]}(t),i=r[0],u=r[1];n=nv(i,u,n),n=Jm(Math.floor(i/n)*n,Math.floor(u/n)*n,n)}return n.map(function(n){return a(t,n)})}function a(e,i){var a=[],o=[];return function(e,r,i){var a,o,s,l,c,f,h=new Array,d=new Array;a=o=-1,l=e[0]>=r,cv[l<<1].forEach(p);for(;++a<t-1;)s=l,l=e[a+1]>=r,cv[s|l<<1].forEach(p);cv[l<<0].forEach(p);for(;++o<n-1;){for(a=-1,l=e[o*t+t]>=r,c=e[o*t]>=r,cv[l<<1|c<<2].forEach(p);++a<t-1;)s=l,l=e[o*t+t+a+1]>=r,f=c,c=e[o*t+a+1]>=r,cv[s|l<<1|c<<2|f<<3].forEach(p);cv[l|c<<3].forEach(p)}a=-1,c=e[o*t]>=r,cv[c<<2].forEach(p);for(;++a<t-1;)f=c,c=e[o*t+a+1]>=r,cv[c<<2|f<<3].forEach(p);function p(t){var n,e,r=[t[0][0]+a,t[0][1]+o],s=[t[1][0]+a,t[1][1]+o],l=u(r),c=u(s);(n=d[l])?(e=h[c])?(delete d[n.end],delete h[e.start],n===e?(n.ring.push(s),i(n.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[n.end],n.ring.push(s),d[n.end=c]=n):(n=h[c])?(e=d[l])?(delete h[n.start],delete d[e.end],n===e?(n.ring.push(s),i(n.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete h[n.start],n.ring.unshift(r),h[n.start=l]=n):h[l]=d[c]={start:l,end:c,ring:[r,s]}}cv[c<<3].forEach(p)}(e,i,function(t){r(t,e,i),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n<e;)r+=t[n-1][1]*t[n][0]-t[n-1][0]*t[n][1];return r}(t)>0?a.push([t]):o.push(t)}),o.forEach(function(t){for(var n,e=0,r=a.length;e<r;++e)if(-1!==uv((n=a[e])[0],t))return void n.push(t)}),{type:"MultiPolygon",value:i,coordinates:a}}function u(n){return 2*n[0]+n[1]*(t+1)*4}function o(e,r,i){e.forEach(function(e){var a,u=e[0],o=e[1],s=0|u,l=0|o,c=r[l*t+s];u>0&&u<t&&s===u&&(a=r[l*t+s-1],e[0]=u+(i-a)/(c-a)-.5),o>0&&o<n&&l===o&&(a=r[(l-1)*t+s],e[1]=o+(i-a)/(c-a)-.5)})}return i.contour=a,i.size=function(e){if(!arguments.length)return[t,n];var r=Math.ceil(e[0]),a=Math.ceil(e[1]);if(!(r>0&&a>0))throw new Error("invalid size");return t=r,n=a,i},i.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:Array.isArray(t)?av(rv.call(t)):av(t),i):e},i.smooth=function(t){return arguments.length?(r=t?o:lv,i):r===o},i}function hv(t,n,e){for(var r=t.width,i=t.height,a=1+(e<<1),u=0;u<i;++u)for(var o=0,s=0;o<r+e;++o)o<r&&(s+=t.data[o+u*r]),o>=e&&(o>=a&&(s-=t.data[o-a+u*r]),n.data[o-e+u*r]=s/Math.min(o+1,r-1+a-o,a))}function dv(t,n,e){for(var r=t.width,i=t.height,a=1+(e<<1),u=0;u<r;++u)for(var o=0,s=0;o<i+e;++o)o<i&&(s+=t.data[u+o*r]),o>=e&&(o>=a&&(s-=t.data[u+(o-a)*r]),n.data[u+(o-e)*r]=s/Math.min(o+1,i-1+a-o,a))}function pv(t){return t[0]}function gv(t){return t[1]}function mv(){return 1}var vv=["size","smooth"],yv=["x","y","weight","size","cellSize","bandwidth"];function xv(t){$r.call(this,null,t)}xv.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:"smooth",type:"boolean"},{name:"nice",type:"boolean",default:!1},{name:"thresholds",type:"number",array:!0}]},et(xv,$r).transform=function(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e,r,i,a,u=n.fork(n.NO_SOURCE|n.NO_FIELDS),o=t.count||10;return t.values?(e=fv(),r=vv,i=t.values):(e=function(){var t=pv,n=gv,e=mv,r=960,i=500,a=20,u=2,o=3*a,s=r+2*o>>u,l=i+2*o>>u,c=av(20);function f(r){var i=new Float32Array(s*l),f=new Float32Array(s*l);r.forEach(function(r,a,c){var f=+t(r,a,c)+o>>u,h=+n(r,a,c)+o>>u,d=+e(r,a,c);f>=0&&f<s&&h>=0&&h<l&&(i[f+h*s]+=d)}),hv({width:s,height:l,data:i},{width:s,height:l,data:f},a>>u),dv({width:s,height:l,data:f},{width:s,height:l,data:i},a>>u),hv({width:s,height:l,data:i},{width:s,height:l,data:f},a>>u),dv({width:s,height:l,data:f},{width:s,height:l,data:i},a>>u),hv({width:s,height:l,data:i},{width:s,height:l,data:f},a>>u),dv({width:s,height:l,data:f},{width:s,height:l,data:i},a>>u);var d=c(i);if(!Array.isArray(d)){var p=function(t,n){var e,r,i=t.length,a=-1;if(null==n){for(;++a<i;)if(null!=(e=t[a])&&e>=e)for(r=e;++a<i;)null!=(e=t[a])&&e>r&&(r=e)}else for(;++a<i;)if(null!=(e=n(t[a],a,t))&&e>=e)for(r=e;++a<i;)null!=(e=n(t[a],a,t))&&e>r&&(r=e);return r}(i);d=nv(0,p,d),(d=Jm(0,Math.floor(p/d)*d,d)).shift()}return fv().thresholds(d).size([s,l])(i).map(h)}function h(t){return t.value*=Math.pow(2,-2*u),t.coordinates.forEach(d),t}function d(t){t.forEach(p)}function p(t){t.forEach(g)}function g(t){t[0]=t[0]*Math.pow(2,u)-o,t[1]=t[1]*Math.pow(2,u)-o}function m(){return s=r+2*(o=3*a)>>u,l=i+2*o>>u,f}return f.x=function(n){return arguments.length?(t="function"==typeof n?n:av(+n),f):t},f.y=function(t){return arguments.length?(n="function"==typeof t?t:av(+t),f):n},f.weight=function(t){return arguments.length?(e="function"==typeof t?t:av(+t),f):e},f.size=function(t){if(!arguments.length)return[r,i];var n=Math.ceil(t[0]),e=Math.ceil(t[1]);if(!(n>=0||n>=0))throw new Error("invalid size");return r=n,i=e,m()},f.cellSize=function(t){if(!arguments.length)return 1<<u;if(!((t=+t)>=1))throw new Error("invalid cell size");return u=Math.floor(Math.log(t)/Math.LN2),m()},f.thresholds=function(t){return arguments.length?(c="function"==typeof t?t:Array.isArray(t)?av(rv.call(t)):av(t),f):c},f.bandwidth=function(t){if(!arguments.length)return Math.sqrt(a*(a+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return a=Math.round((Math.sqrt(4*t*t+1)-1)/2),m()},f}(),r=yv,i=n.materialize(n.SOURCE).source),e.thresholds(t.thresholds||(t.nice?o:(a=o,function(t){for(var n=si(t),e=n[0],r=n[1]-e,i=[],u=1;u<=a;++u)i.push(e+r*u/(a+1));return i}))),r.forEach(function(n){null!=t[n]&&e[n](t[n])}),this.value&&(u.rem=this.value),i=i&&i.length?e(i).map(Dt):[],this.value=u.source=u.add=i,u};var _v="Feature",bv="FeatureCollection";function wv(t){$r.call(this,null,t)}function Av(){return new Mv}function Mv(){this.reset()}wv.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},et(wv,$r).transform=function(t,n){var e,i=this._features,a=this._points,u=t.fields,o=u&&u[0],s=u&&u[1],l=t.geojson,c=n.ADD;e=t.modified()||n.changed(n.REM)||n.modified(r(l))||o&&n.modified(r(o))||s&&n.modified(r(s)),this.value&&!e||(c=n.SOURCE,this._features=i=[],this._points=a=[]),l&&n.visit(c,function(t){i.push(l(t))}),o&&s&&(n.visit(c,function(t){var n=o(t),e=s(t);null!=n&&null!=e&&(n=+n)===n&&(e=+e)===e&&a.push([n,e])}),i=i.concat({type:_v,geometry:{type:"MultiPoint",coordinates:a}})),this.value={type:bv,features:i}},Mv.prototype={constructor:Mv,reset:function(){this.s=this.t=0},add:function(t){Ev(kv,t,this.t),Ev(this,kv.s,this.s),this.s?this.t+=kv.t:this.s=kv.t},valueOf:function(){return this.s}};var kv=new Mv;function Ev(t,n,e){var r=t.s=n+e,i=r-n,a=r-i;t.t=n-a+(e-i)}var Cv=1e-6,Dv=1e-12,Fv=Math.PI,Sv=Fv/2,Bv=Fv/4,Ov=2*Fv,zv=180/Fv,Nv=Fv/180,Tv=Math.abs,Rv=Math.atan,Pv=Math.atan2,Lv=Math.cos,qv=Math.ceil,Uv=Math.exp,jv=Math.log,$v=Math.pow,Iv=Math.sin,Wv=Math.sign||function(t){return t>0?1:t<0?-1:0},Hv=Math.sqrt,Yv=Math.tan;function Gv(t){return t>1?0:t<-1?Fv:Math.acos(t)}function Vv(t){return t>1?Sv:t<-1?-Sv:Math.asin(t)}function Xv(){}function Zv(t,n){t&&Qv.hasOwnProperty(t.type)&&Qv[t.type](t,n)}var Jv={Feature:function(t,n){Zv(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)Zv(e[r].geometry,n)}},Qv={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){Kv(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)Kv(e[r],n,0)},Polygon:function(t,n){ty(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)ty(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)Zv(e[r],n)}};function Kv(t,n,e){var r,i=-1,a=t.length-e;for(n.lineStart();++i<a;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function ty(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)Kv(t[e],n,1);n.polygonEnd()}function ny(t,n){t&&Jv.hasOwnProperty(t.type)?Jv[t.type](t,n):Zv(t,n)}var ey,ry,iy,ay,uy,oy=Av(),sy=Av(),ly={point:Xv,lineStart:Xv,lineEnd:Xv,polygonStart:function(){oy.reset(),ly.lineStart=cy,ly.lineEnd=fy},polygonEnd:function(){var t=+oy;sy.add(t<0?Ov+t:t),this.lineStart=this.lineEnd=this.point=Xv},sphere:function(){sy.add(Ov)}};function cy(){ly.point=hy}function fy(){dy(ey,ry)}function hy(t,n){ly.point=dy,ey=t,ry=n,iy=t*=Nv,ay=Lv(n=(n*=Nv)/2+Bv),uy=Iv(n)}function dy(t,n){var e=(t*=Nv)-iy,r=e>=0?1:-1,i=r*e,a=Lv(n=(n*=Nv)/2+Bv),u=Iv(n),o=uy*u,s=ay*a+o*Lv(i),l=o*r*Iv(i);oy.add(Pv(l,s)),iy=t,ay=a,uy=u}function py(t){return[Pv(t[1],t[0]),Vv(t[2])]}function gy(t){var n=t[0],e=t[1],r=Lv(e);return[r*Lv(n),r*Iv(n),Iv(e)]}function my(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function vy(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function yy(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function xy(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function _y(t){var n=Hv(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var by,wy,Ay,My,ky,Ey,Cy,Dy,Fy,Sy,By,Oy,zy,Ny,Ty,Ry,Py,Ly,qy,Uy,jy,$y,Iy,Wy,Hy,Yy,Gy=Av(),Vy={point:Xy,lineStart:Jy,lineEnd:Qy,polygonStart:function(){Vy.point=Ky,Vy.lineStart=tx,Vy.lineEnd=nx,Gy.reset(),ly.polygonStart()},polygonEnd:function(){ly.polygonEnd(),Vy.point=Xy,Vy.lineStart=Jy,Vy.lineEnd=Qy,oy<0?(by=-(Ay=180),wy=-(My=90)):Gy>Cv?My=90:Gy<-Cv&&(wy=-90),Sy[0]=by,Sy[1]=Ay}};function Xy(t,n){Fy.push(Sy=[by=t,Ay=t]),n<wy&&(wy=n),n>My&&(My=n)}function Zy(t,n){var e=gy([t*Nv,n*Nv]);if(Dy){var r=vy(Dy,e),i=vy([r[1],-r[0],0],r);_y(i),i=py(i);var a,u=t-ky,o=u>0?1:-1,s=i[0]*zv*o,l=Tv(u)>180;l^(o*ky<s&&s<o*t)?(a=i[1]*zv)>My&&(My=a):l^(o*ky<(s=(s+360)%360-180)&&s<o*t)?(a=-i[1]*zv)<wy&&(wy=a):(n<wy&&(wy=n),n>My&&(My=n)),l?t<ky?ex(by,t)>ex(by,Ay)&&(Ay=t):ex(t,Ay)>ex(by,Ay)&&(by=t):Ay>=by?(t<by&&(by=t),t>Ay&&(Ay=t)):t>ky?ex(by,t)>ex(by,Ay)&&(Ay=t):ex(t,Ay)>ex(by,Ay)&&(by=t)}else Fy.push(Sy=[by=t,Ay=t]);n<wy&&(wy=n),n>My&&(My=n),Dy=e,ky=t}function Jy(){Vy.point=Zy}function Qy(){Sy[0]=by,Sy[1]=Ay,Vy.point=Xy,Dy=null}function Ky(t,n){if(Dy){var e=t-ky;Gy.add(Tv(e)>180?e+(e>0?360:-360):e)}else Ey=t,Cy=n;ly.point(t,n),Zy(t,n)}function tx(){ly.lineStart()}function nx(){Ky(Ey,Cy),ly.lineEnd(),Tv(Gy)>Cv&&(by=-(Ay=180)),Sy[0]=by,Sy[1]=Ay,Dy=null}function ex(t,n){return(n-=t)<0?n+360:n}function rx(t,n){return t[0]-n[0]}function ix(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var ax={sphere:Xv,point:ux,lineStart:sx,lineEnd:fx,polygonStart:function(){ax.lineStart=hx,ax.lineEnd=dx},polygonEnd:function(){ax.lineStart=sx,ax.lineEnd=fx}};function ux(t,n){t*=Nv;var e=Lv(n*=Nv);ox(e*Lv(t),e*Iv(t),Iv(n))}function ox(t,n,e){zy+=(t-zy)/++By,Ny+=(n-Ny)/By,Ty+=(e-Ty)/By}function sx(){ax.point=lx}function lx(t,n){t*=Nv;var e=Lv(n*=Nv);Wy=e*Lv(t),Hy=e*Iv(t),Yy=Iv(n),ax.point=cx,ox(Wy,Hy,Yy)}function cx(t,n){t*=Nv;var e=Lv(n*=Nv),r=e*Lv(t),i=e*Iv(t),a=Iv(n),u=Pv(Hv((u=Hy*a-Yy*i)*u+(u=Yy*r-Wy*a)*u+(u=Wy*i-Hy*r)*u),Wy*r+Hy*i+Yy*a);Oy+=u,Ry+=u*(Wy+(Wy=r)),Py+=u*(Hy+(Hy=i)),Ly+=u*(Yy+(Yy=a)),ox(Wy,Hy,Yy)}function fx(){ax.point=ux}function hx(){ax.point=px}function dx(){gx($y,Iy),ax.point=ux}function px(t,n){$y=t,Iy=n,t*=Nv,n*=Nv,ax.point=gx;var e=Lv(n);Wy=e*Lv(t),Hy=e*Iv(t),Yy=Iv(n),ox(Wy,Hy,Yy)}function gx(t,n){t*=Nv;var e=Lv(n*=Nv),r=e*Lv(t),i=e*Iv(t),a=Iv(n),u=Hy*a-Yy*i,o=Yy*r-Wy*a,s=Wy*i-Hy*r,l=Hv(u*u+o*o+s*s),c=Vv(l),f=l&&-c/l;qy+=f*u,Uy+=f*o,jy+=f*s,Oy+=c,Ry+=c*(Wy+(Wy=r)),Py+=c*(Hy+(Hy=i)),Ly+=c*(Yy+(Yy=a)),ox(Wy,Hy,Yy)}function mx(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e}function vx(t,n){return[Tv(t)>Fv?t+Math.round(-t/Ov)*Ov:t,n]}function yx(t,n,e){return(t%=Ov)?n||e?mx(_x(t),bx(n,e)):_x(t):n||e?bx(n,e):vx}function xx(t){return function(n,e){return[(n+=t)>Fv?n-Ov:n<-Fv?n+Ov:n,e]}}function _x(t){var n=xx(t);return n.invert=xx(-t),n}function bx(t,n){var e=Lv(t),r=Iv(t),i=Lv(n),a=Iv(n);function u(t,n){var u=Lv(n),o=Lv(t)*u,s=Iv(t)*u,l=Iv(n),c=l*e+o*r;return[Pv(s*i-c*a,o*e-l*r),Vv(c*i+s*a)]}return u.invert=function(t,n){var u=Lv(n),o=Lv(t)*u,s=Iv(t)*u,l=Iv(n),c=l*i-s*a;return[Pv(s*i+l*a,o*e+c*r),Vv(c*e-o*r)]},u}function wx(t,n){(n=gy(n))[0]-=t,_y(n);var e=Gv(-n[1]);return((-n[2]<0?-e:e)+Ov-Cv)%Ov}function Ax(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:Xv,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function Mx(t,n){return Tv(t[0]-n[0])<Cv&&Tv(t[1]-n[1])<Cv}function kx(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Ex(t,n,e,r,i){var a,u,o=[],s=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],u=t[n];if(Mx(r,u)){for(i.lineStart(),a=0;a<n;++a)i.point((r=t[a])[0],r[1]);i.lineEnd()}else o.push(e=new kx(r,t,null,!0)),s.push(e.o=new kx(r,null,e,!1)),o.push(e=new kx(u,t,null,!1)),s.push(e.o=new kx(u,null,e,!0))}}),o.length){for(s.sort(n),Cx(o),Cx(s),a=0,u=s.length;a<u;++a)s[a].e=e=!e;for(var l,c,f=o[0];;){for(var h=f,d=!0;h.v;)if((h=h.n)===f)return;l=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(d)for(a=0,u=l.length;a<u;++a)i.point((c=l[a])[0],c[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(d)for(l=h.p.z,a=l.length-1;a>=0;--a)i.point((c=l[a])[0],c[1]);else r(h.x,h.p.x,-1,i);h=h.p}l=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function Cx(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}vx.invert=vx;var Dx=Av();function Fx(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}!function(t){var n;1===t.length&&(n=t,t=function(t,e){return Fx(n(t),e)})}(Fx);function Sx(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),a=new Array(i);++r<i;)a[r]=t+r*e;return a}function Bx(t){for(var n,e,r,i=t.length,a=-1,u=0;++a<i;)u+=t[a].length;for(e=new Array(u);--i>=0;)for(n=(r=t[i]).length;--n>=0;)e[--u]=r[n];return e}function Ox(t,n,e,r){return function(i){var a,u,o,s=n(i),l=Ax(),c=n(l),f=!1,h={point:d,lineStart:g,lineEnd:m,polygonStart:function(){h.point=v,h.lineStart=y,h.lineEnd=x,u=[],a=[]},polygonEnd:function(){h.point=d,h.lineStart=g,h.lineEnd=m,u=Bx(u);var t=function(t,n){var e=n[0],r=n[1],i=Iv(r),a=[Iv(e),-Lv(e),0],u=0,o=0;Dx.reset(),1===i?r=Sv+Cv:-1===i&&(r=-Sv-Cv);for(var s=0,l=t.length;s<l;++s)if(f=(c=t[s]).length)for(var c,f,h=c[f-1],d=h[0],p=h[1]/2+Bv,g=Iv(p),m=Lv(p),v=0;v<f;++v,d=x,g=b,m=w,h=y){var y=c[v],x=y[0],_=y[1]/2+Bv,b=Iv(_),w=Lv(_),A=x-d,M=A>=0?1:-1,k=M*A,E=k>Fv,C=g*b;if(Dx.add(Pv(C*M*Iv(k),m*w+C*Lv(k))),u+=E?A+M*Ov:A,E^d>=e^x>=e){var D=vy(gy(h),gy(y));_y(D);var F=vy(a,D);_y(F);var S=(E^A>=0?-1:1)*Vv(F[2]);(r>S||r===S&&(D[0]||D[1]))&&(o+=E^A>=0?1:-1)}}return(u<-Cv||u<Cv&&Dx<-Cv)^1&o}(a,r);u.length?(f||(i.polygonStart(),f=!0),Ex(u,Nx,t,e,i)):t&&(f||(i.polygonStart(),f=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),f&&(i.polygonEnd(),f=!1),u=a=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function d(n,e){t(n,e)&&i.point(n,e)}function p(t,n){s.point(t,n)}function g(){h.point=p,s.lineStart()}function m(){h.point=d,s.lineEnd()}function v(t,n){o.push([t,n]),c.point(t,n)}function y(){c.lineStart(),o=[]}function x(){v(o[0][0],o[0][1]),c.lineEnd();var t,n,e,r,s=c.clean(),h=l.result(),d=h.length;if(o.pop(),a.push(o),o=null,d)if(1&s){if((n=(e=h[0]).length-1)>0){for(f||(i.polygonStart(),f=!0),i.lineStart(),t=0;t<n;++t)i.point((r=e[t])[0],r[1]);i.lineEnd()}}else d>1&&2&s&&h.push(h.pop().concat(h.shift())),u.push(h.filter(zx))}return h}}function zx(t){return t.length>1}function Nx(t,n){return((t=t.x)[0]<0?t[1]-Sv-Cv:Sv-t[1])-((n=n.x)[0]<0?n[1]-Sv-Cv:Sv-n[1])}var Tx=Ox(function(){return!0},function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(a,u){var o=a>0?Fv:-Fv,s=Tv(a-e);Tv(s-Fv)<Cv?(t.point(e,r=(r+u)/2>0?Sv:-Sv),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(o,r),t.point(a,r),n=0):i!==o&&s>=Fv&&(Tv(e-i)<Cv&&(e-=i*Cv),Tv(a-o)<Cv&&(a-=o*Cv),r=function(t,n,e,r){var i,a,u=Iv(t-e);return Tv(u)>Cv?Rv((Iv(n)*(a=Lv(r))*Iv(e)-Iv(r)*(i=Lv(n))*Iv(t))/(i*a*u)):(n+r)/2}(e,r,a,u),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(o,r),n=0),t.point(e=a,r=u),i=o},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}},function(t,n,e,r){var i;if(null==t)i=e*Sv,r.point(-Fv,i),r.point(0,i),r.point(Fv,i),r.point(Fv,0),r.point(Fv,-i),r.point(0,-i),r.point(-Fv,-i),r.point(-Fv,0),r.point(-Fv,i);else if(Tv(t[0]-n[0])>Cv){var a=t[0]<n[0]?Fv:-Fv;i=e*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(n[0],n[1])},[-Fv,-Sv]);function Rx(t){var n=Lv(t),e=6*Nv,r=n>0,i=Tv(n)>Cv;function a(t,e){return Lv(t)*Lv(e)>n}function u(t,e,r){var i=[1,0,0],a=vy(gy(t),gy(e)),u=my(a,a),o=a[0],s=u-o*o;if(!s)return!r&&t;var l=n*u/s,c=-n*o/s,f=vy(i,a),h=xy(i,l);yy(h,xy(a,c));var d=f,p=my(h,d),g=my(d,d),m=p*p-g*(my(h,h)-1);if(!(m<0)){var v=Hv(m),y=xy(d,(-p-v)/g);if(yy(y,h),y=py(y),!r)return y;var x,_=t[0],b=e[0],w=t[1],A=e[1];b<_&&(x=_,_=b,b=x);var M=b-_,k=Tv(M-Fv)<Cv;if(!k&&A<w&&(x=w,w=A,A=x),k||M<Cv?k?w+A>0^y[1]<(Tv(y[0]-_)<Cv?w:A):w<=y[1]&&y[1]<=A:M>Fv^(_<=y[0]&&y[0]<=b)){var E=xy(d,(-p+v)/g);return yy(E,h),[y,py(E)]}}}function o(n,e){var i=r?t:Fv-t,a=0;return n<-i?a|=1:n>i&&(a|=2),e<-i?a|=4:e>i&&(a|=8),a}return Ox(a,function(t){var n,e,s,l,c;return{lineStart:function(){l=s=!1,c=1},point:function(f,h){var d,p=[f,h],g=a(f,h),m=r?g?0:o(f,h):g?o(f+(f<0?Fv:-Fv),h):0;if(!n&&(l=s=g)&&t.lineStart(),g!==s&&(!(d=u(n,p))||Mx(n,d)||Mx(p,d))&&(p[0]+=Cv,p[1]+=Cv,g=a(p[0],p[1])),g!==s)c=0,g?(t.lineStart(),d=u(p,n),t.point(d[0],d[1])):(d=u(n,p),t.point(d[0],d[1]),t.lineEnd()),n=d;else if(i&&n&&r^g){var v;m&e||!(v=u(p,n,!0))||(c=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1])))}!g||n&&Mx(n,p)||t.point(p[0],p[1]),n=p,s=g,e=m},lineEnd:function(){s&&t.lineEnd(),n=null},clean:function(){return c|(l&&s)<<1}}},function(n,r,i,a){!function(t,n,e,r,i,a){if(e){var u=Lv(n),o=Iv(n),s=r*e;null==i?(i=n+r*Ov,a=n-s/2):(i=wx(u,i),a=wx(u,a),(r>0?i<a:i>a)&&(i+=r*Ov));for(var l,c=i;r>0?c>a:c<a;c-=s)l=py([u,-o*Lv(c),-o*Iv(c)]),t.point(l[0],l[1])}}(a,t,e,i,n,r)},r?[0,-t]:[-Fv,t-Fv])}var Px=1e9,Lx=-Px;function qx(t,n,e,r){function i(i,a){return t<=i&&i<=e&&n<=a&&a<=r}function a(i,a,o,l){var c=0,f=0;if(null==i||(c=u(i,o))!==(f=u(a,o))||s(i,a)<0^o>0)do{l.point(0===c||3===c?t:e,c>1?r:n)}while((c=(c+o+4)%4)!==f);else l.point(a[0],a[1])}function u(r,i){return Tv(r[0]-t)<Cv?i>0?0:3:Tv(r[0]-e)<Cv?i>0?2:1:Tv(r[1]-n)<Cv?i>0?1:0:i>0?3:2}function o(t,n){return s(t.x,n.x)}function s(t,n){var e=u(t,1),r=u(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(u){var s,l,c,f,h,d,p,g,m,v,y,x=u,_=Ax(),b={point:w,lineStart:function(){b.point=A,l&&l.push(c=[]);v=!0,m=!1,p=g=NaN},lineEnd:function(){s&&(A(f,h),d&&m&&_.rejoin(),s.push(_.result()));b.point=w,m&&x.lineEnd()},polygonStart:function(){x=_,s=[],l=[],y=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=l.length;e<i;++e)for(var a,u,o=l[e],s=1,c=o.length,f=o[0],h=f[0],d=f[1];s<c;++s)a=h,u=d,f=o[s],h=f[0],d=f[1],u<=r?d>r&&(h-a)*(r-u)>(d-u)*(t-a)&&++n:d<=r&&(h-a)*(r-u)<(d-u)*(t-a)&&--n;return n}(),e=y&&n,i=(s=Bx(s)).length;(e||i)&&(u.polygonStart(),e&&(u.lineStart(),a(null,null,1,u),u.lineEnd()),i&&Ex(s,o,n,a,u),u.polygonEnd());x=u,s=l=c=null}};function w(t,n){i(t,n)&&x.point(t,n)}function A(a,u){var o=i(a,u);if(l&&c.push([a,u]),v)f=a,h=u,d=o,v=!1,o&&(x.lineStart(),x.point(a,u));else if(o&&m)x.point(a,u);else{var s=[p=Math.max(Lx,Math.min(Px,p)),g=Math.max(Lx,Math.min(Px,g))],_=[a=Math.max(Lx,Math.min(Px,a)),u=Math.max(Lx,Math.min(Px,u))];!function(t,n,e,r,i,a){var u,o=t[0],s=t[1],l=0,c=1,f=n[0]-o,h=n[1]-s;if(u=e-o,f||!(u>0)){if(u/=f,f<0){if(u<l)return;u<c&&(c=u)}else if(f>0){if(u>c)return;u>l&&(l=u)}if(u=i-o,f||!(u<0)){if(u/=f,f<0){if(u>c)return;u>l&&(l=u)}else if(f>0){if(u<l)return;u<c&&(c=u)}if(u=r-s,h||!(u>0)){if(u/=h,h<0){if(u<l)return;u<c&&(c=u)}else if(h>0){if(u>c)return;u>l&&(l=u)}if(u=a-s,h||!(u<0)){if(u/=h,h<0){if(u>c)return;u>l&&(l=u)}else if(h>0){if(u<l)return;u<c&&(c=u)}return l>0&&(t[0]=o+l*f,t[1]=s+l*h),c<1&&(n[0]=o+c*f,n[1]=s+c*h),!0}}}}}(s,_,t,n,e,r)?o&&(x.lineStart(),x.point(a,u),y=!1):(m||(x.lineStart(),x.point(s[0],s[1])),x.point(_[0],_[1]),o||x.lineEnd(),y=!1)}p=a,g=u,m=o}return b}}Av();function Ux(t,n,e){var r=Sx(t,n-Cv,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function jx(t,n,e){var r=Sx(t,n-Cv,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function $x(t){return t}var Ix,Wx,Hx,Yx,Gx=Av(),Vx=Av(),Xx={point:Xv,lineStart:Xv,lineEnd:Xv,polygonStart:function(){Xx.lineStart=Zx,Xx.lineEnd=Kx},polygonEnd:function(){Xx.lineStart=Xx.lineEnd=Xx.point=Xv,Gx.add(Tv(Vx)),Vx.reset()},result:function(){var t=Gx/2;return Gx.reset(),t}};function Zx(){Xx.point=Jx}function Jx(t,n){Xx.point=Qx,Ix=Hx=t,Wx=Yx=n}function Qx(t,n){Vx.add(Yx*t-Hx*n),Hx=t,Yx=n}function Kx(){Qx(Ix,Wx)}var t_=1/0,n_=t_,e_=-t_,r_=e_,i_={point:function(t,n){t<t_&&(t_=t);t>e_&&(e_=t);n<n_&&(n_=n);n>r_&&(r_=n)},lineStart:Xv,lineEnd:Xv,polygonStart:Xv,polygonEnd:Xv,result:function(){var t=[[t_,n_],[e_,r_]];return e_=r_=-(n_=t_=1/0),t}};var a_,u_,o_,s_,l_=0,c_=0,f_=0,h_=0,d_=0,p_=0,g_=0,m_=0,v_=0,y_={point:x_,lineStart:__,lineEnd:A_,polygonStart:function(){y_.lineStart=M_,y_.lineEnd=k_},polygonEnd:function(){y_.point=x_,y_.lineStart=__,y_.lineEnd=A_},result:function(){var t=v_?[g_/v_,m_/v_]:p_?[h_/p_,d_/p_]:f_?[l_/f_,c_/f_]:[NaN,NaN];return l_=c_=f_=h_=d_=p_=g_=m_=v_=0,t}};function x_(t,n){l_+=t,c_+=n,++f_}function __(){y_.point=b_}function b_(t,n){y_.point=w_,x_(o_=t,s_=n)}function w_(t,n){var e=t-o_,r=n-s_,i=Hv(e*e+r*r);h_+=i*(o_+t)/2,d_+=i*(s_+n)/2,p_+=i,x_(o_=t,s_=n)}function A_(){y_.point=x_}function M_(){y_.point=E_}function k_(){C_(a_,u_)}function E_(t,n){y_.point=C_,x_(a_=o_=t,u_=s_=n)}function C_(t,n){var e=t-o_,r=n-s_,i=Hv(e*e+r*r);h_+=i*(o_+t)/2,d_+=i*(s_+n)/2,p_+=i,g_+=(i=s_*t-o_*n)*(o_+t),m_+=i*(s_+n),v_+=3*i,x_(o_=t,s_=n)}function D_(t){this._context=t}D_.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Ov)}},result:Xv};var F_,S_,B_,O_,z_,N_=Av(),T_={point:Xv,lineStart:function(){T_.point=R_},lineEnd:function(){F_&&P_(S_,B_),T_.point=Xv},polygonStart:function(){F_=!0},polygonEnd:function(){F_=null},result:function(){var t=+N_;return N_.reset(),t}};function R_(t,n){T_.point=P_,S_=O_=t,B_=z_=n}function P_(t,n){O_-=t,z_-=n,N_.add(Hv(O_*O_+z_*z_)),O_=t,z_=n}function L_(){this._string=[]}function q_(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function U_(t,n){var e,r,i=4.5;function a(t){return t&&("function"==typeof i&&r.pointRadius(+i.apply(this,arguments)),ny(t,e(r))),r.result()}return a.area=function(t){return ny(t,e(Xx)),Xx.result()},a.measure=function(t){return ny(t,e(T_)),T_.result()},a.bounds=function(t){return ny(t,e(i_)),i_.result()},a.centroid=function(t){return ny(t,e(y_)),y_.result()},a.projection=function(n){return arguments.length?(e=null==n?(t=null,$x):(t=n).stream,a):t},a.context=function(t){return arguments.length?(r=null==t?(n=null,new L_):new D_(n=t),"function"!=typeof i&&r.pointRadius(i),a):n},a.pointRadius=function(t){return arguments.length?(i="function"==typeof t?t:(r.pointRadius(+t),+t),a):i},a.projection(t).context(n)}function j_(t){return function(n){var e=new $_;for(var r in t)e[r]=t[r];return e.stream=n,e}}function $_(){}function I_(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),ny(e,t.stream(i_)),n(i_.result()),null!=r&&t.clipExtent(r),t}function W_(t,n,e){return I_(t,function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],a=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),u=+n[0][0]+(r-a*(e[1][0]+e[0][0]))/2,o=+n[0][1]+(i-a*(e[1][1]+e[0][1]))/2;t.scale(150*a).translate([u,o])},e)}function H_(t,n,e){return W_(t,[[0,0],n],e)}function Y_(t,n,e){return I_(t,function(e){var r=+n,i=r/(e[1][0]-e[0][0]),a=(r-i*(e[1][0]+e[0][0]))/2,u=-i*e[0][1];t.scale(150*i).translate([a,u])},e)}function G_(t,n,e){return I_(t,function(e){var r=+n,i=r/(e[1][1]-e[0][1]),a=-i*e[0][0],u=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([a,u])},e)}L_.prototype={_radius:4.5,_circle:q_(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=q_(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},$_.prototype={constructor:$_,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var V_=16,X_=Lv(30*Nv);function Z_(t,n){return+n?function(t,n){function e(r,i,a,u,o,s,l,c,f,h,d,p,g,m){var v=l-r,y=c-i,x=v*v+y*y;if(x>4*n&&g--){var _=u+h,b=o+d,w=s+p,A=Hv(_*_+b*b+w*w),M=Vv(w/=A),k=Tv(Tv(w)-1)<Cv||Tv(a-f)<Cv?(a+f)/2:Pv(b,_),E=t(k,M),C=E[0],D=E[1],F=C-r,S=D-i,B=y*F-v*S;(B*B/x>n||Tv((v*F+y*S)/x-.5)>.3||u*h+o*d+s*p<X_)&&(e(r,i,a,u,o,s,C,D,k,_/=A,b/=A,w,g,m),m.point(C,D),e(C,D,k,_,b,w,l,c,f,h,d,p,g,m))}}return function(n){var r,i,a,u,o,s,l,c,f,h,d,p,g={point:m,lineStart:v,lineEnd:x,polygonStart:function(){n.polygonStart(),g.lineStart=_},polygonEnd:function(){n.polygonEnd(),g.lineStart=v}};function m(e,r){e=t(e,r),n.point(e[0],e[1])}function v(){c=NaN,g.point=y,n.lineStart()}function y(r,i){var a=gy([r,i]),u=t(r,i);e(c,f,l,h,d,p,c=u[0],f=u[1],l=r,h=a[0],d=a[1],p=a[2],V_,n),n.point(c,f)}function x(){g.point=m,n.lineEnd()}function _(){v(),g.point=b,g.lineEnd=w}function b(t,n){y(r=t,n),i=c,a=f,u=h,o=d,s=p,g.point=y}function w(){e(c,f,l,h,d,p,i,a,r,u,o,s,V_,n),g.lineEnd=x,x()}return g}}(t,n):function(t){return j_({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}(t)}var J_=j_({point:function(t,n){this.stream.point(t*Nv,n*Nv)}});function Q_(t,n,e,r){var i=Lv(r),a=Iv(r),u=i*t,o=a*t,s=i/t,l=a/t,c=(a*e-i*n)/t,f=(a*n+i*e)/t;function h(t,r){return[u*t-o*r+n,e-o*t-u*r]}return h.invert=function(t,n){return[s*t-l*n+c,f-l*t-s*n]},h}function K_(t){return tb(function(){return t})()}function tb(t){var n,e,r,i,a,u,o,s,l,c,f=150,h=480,d=250,p=0,g=0,m=0,v=0,y=0,x=0,_=null,b=Tx,w=null,A=$x,M=.5;function k(t){return s(t[0]*Nv,t[1]*Nv)}function E(t){return(t=s.invert(t[0],t[1]))&&[t[0]*zv,t[1]*zv]}function C(){var t=Q_(f,0,0,x).apply(null,n(p,g)),r=(x?Q_:function(t,n,e){function r(r,i){return[n+t*r,e-t*i]}return r.invert=function(r,i){return[(r-n)/t,(e-i)/t]},r})(f,h-t[0],d-t[1],x);return e=yx(m,v,y),o=mx(n,r),s=mx(e,o),u=Z_(o,M),D()}function D(){return l=c=null,k}return k.stream=function(t){return l&&c===t?l:l=J_(function(t){return j_({point:function(n,e){var r=t(n,e);return this.stream.point(r[0],r[1])}})}(e)(b(u(A(c=t)))))},k.preclip=function(t){return arguments.length?(b=t,_=void 0,D()):b},k.postclip=function(t){return arguments.length?(A=t,w=r=i=a=null,D()):A},k.clipAngle=function(t){return arguments.length?(b=+t?Rx(_=t*Nv):(_=null,Tx),D()):_*zv},k.clipExtent=function(t){return arguments.length?(A=null==t?(w=r=i=a=null,$x):qx(w=+t[0][0],r=+t[0][1],i=+t[1][0],a=+t[1][1]),D()):null==w?null:[[w,r],[i,a]]},k.scale=function(t){return arguments.length?(f=+t,C()):f},k.translate=function(t){return arguments.length?(h=+t[0],d=+t[1],C()):[h,d]},k.center=function(t){return arguments.length?(p=t[0]%360*Nv,g=t[1]%360*Nv,C()):[p*zv,g*zv]},k.rotate=function(t){return arguments.length?(m=t[0]%360*Nv,v=t[1]%360*Nv,y=t.length>2?t[2]%360*Nv:0,C()):[m*zv,v*zv,y*zv]},k.angle=function(t){return arguments.length?(x=t%360*Nv,C()):x*zv},k.precision=function(t){return arguments.length?(u=Z_(o,M=t*t),D()):Hv(M)},k.fitExtent=function(t,n){return W_(k,t,n)},k.fitSize=function(t,n){return H_(k,t,n)},k.fitWidth=function(t,n){return Y_(k,t,n)},k.fitHeight=function(t,n){return G_(k,t,n)},function(){return n=t.apply(this,arguments),k.invert=n.invert&&E,C()}}function nb(t){var n=0,e=Fv/3,r=tb(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Nv,e=t[1]*Nv):[n*zv,e*zv]},i}function eb(t,n){var e=Iv(t),r=(e+Iv(n))/2;if(Tv(r)<Cv)return function(t){var n=Lv(t);function e(t,e){return[t*n,Iv(e)/n]}return e.invert=function(t,e){return[t/n,Vv(e*n)]},e}(t);var i=1+e*(2*r-e),a=Hv(i)/r;function u(t,n){var e=Hv(i-2*r*Iv(n))/r;return[e*Iv(t*=r),a-e*Lv(t)]}return u.invert=function(t,n){var e=a-n;return[Pv(t,Tv(e))/r*Wv(e),Vv((i-(t*t+e*e)*r*r)/(2*r))]},u}function rb(){return nb(eb).scale(155.424).center([0,33.6442])}function ib(){return rb().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function ab(t){return function(n,e){var r=Lv(n),i=Lv(e),a=t(r*i);return[a*i*Iv(n),a*Iv(e)]}}function ub(t){return function(n,e){var r=Hv(n*n+e*e),i=t(r),a=Iv(i),u=Lv(i);return[Pv(n*a,r*u),Vv(r&&e*a/r)]}}var ob=ab(function(t){return Hv(2/(1+t))});ob.invert=ub(function(t){return 2*Vv(t/2)});var sb=ab(function(t){return(t=Gv(t))&&t/Iv(t)});function lb(t,n){return[t,jv(Yv((Sv+n)/2))]}function cb(t){var n,e,r,i=K_(t),a=i.center,u=i.scale,o=i.translate,s=i.clipExtent,l=null;function c(){var a=Fv*u(),o=i(function(t){function n(n){return(n=t(n[0]*Nv,n[1]*Nv))[0]*=zv,n[1]*=zv,n}return t=yx(t[0]*Nv,t[1]*Nv,t.length>2?t[2]*Nv:0),n.invert=function(n){return(n=t.invert(n[0]*Nv,n[1]*Nv))[0]*=zv,n[1]*=zv,n},n}(i.rotate()).invert([0,0]));return s(null==l?[[o[0]-a,o[1]-a],[o[0]+a,o[1]+a]]:t===lb?[[Math.max(o[0]-a,l),n],[Math.min(o[0]+a,e),r]]:[[l,Math.max(o[1]-a,n)],[e,Math.min(o[1]+a,r)]])}return i.scale=function(t){return arguments.length?(u(t),c()):u()},i.translate=function(t){return arguments.length?(o(t),c()):o()},i.center=function(t){return arguments.length?(a(t),c()):a()},i.clipExtent=function(t){return arguments.length?(null==t?l=n=e=r=null:(l=+t[0][0],n=+t[0][1],e=+t[1][0],r=+t[1][1]),c()):null==l?null:[[l,n],[e,r]]},c()}function fb(t){return Yv((Sv+t)/2)}function hb(t,n){var e=Lv(t),r=t===n?Iv(t):jv(e/Lv(n))/jv(fb(n)/fb(t)),i=e*$v(fb(t),r)/r;if(!r)return lb;function a(t,n){i>0?n<-Sv+Cv&&(n=-Sv+Cv):n>Sv-Cv&&(n=Sv-Cv);var e=i/$v(fb(n),r);return[e*Iv(r*t),i-e*Lv(r*t)]}return a.invert=function(t,n){var e=i-n,a=Wv(r)*Hv(t*t+e*e);return[Pv(t,Tv(e))/r*Wv(e),2*Rv($v(i/a,1/r))-Sv]},a}function db(t,n){return[t,n]}function pb(t,n){var e=Lv(t),r=t===n?Iv(t):(e-Lv(n))/(n-t),i=e/r+t;if(Tv(r)<Cv)return db;function a(t,n){var e=i-n,a=r*t;return[e*Iv(a),i-e*Lv(a)]}return a.invert=function(t,n){var e=i-n;return[Pv(t,Tv(e))/r*Wv(e),i-Wv(r)*Hv(t*t+e*e)]},a}function gb(t,n){var e=Lv(n),r=Lv(t)*e;return[e*Iv(t)/r,Iv(n)/r]}function mb(t,n,e,r){return 1===t&&1===n&&0===e&&0===r?$x:j_({point:function(i,a){this.stream.point(i*t+e,a*n+r)}})}function vb(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function yb(t,n){return[Lv(n)*Iv(t),Iv(n)]}function xb(t,n){var e=Lv(n),r=1+Lv(t)*e;return[e*Iv(t)/r,Iv(n)/r]}function _b(t,n){return[jv(Yv((Sv+n)/2)),-t]}sb.invert=ub(function(t){return t}),lb.invert=function(t,n){return[t,2*Rv(Uv(n))-Sv]},db.invert=db,gb.invert=ub(Rv),vb.invert=function(t,n){var e,r=n,i=25;do{var a=r*r,u=a*a;r-=e=(r*(1.007226+a*(.015085+u*(.028874*a-.044475-.005916*u)))-n)/(1.007226+a*(.045255+u*(.259866*a-.311325-.005916*11*u)))}while(Tv(e)>Cv&&--i>0);return[t/(.8707+(a=r*r)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),r]},yb.invert=ub(Vv),xb.invert=ub(function(t){return 2*Rv(t)}),_b.invert=function(t,n){return[-n,2*Rv(Uv(t))-Sv]};var bb=U_(),wb=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function Ab(t,n){if(!t||"string"!=typeof t)throw new Error("Projection type must be a name string.");return t=t.toLowerCase(),arguments.length>1?(kb[t]=function(t,n){return function e(){var r=n();return r.type=t,r.path=U_().projection(r),r.copy=r.copy||function(){var t=e();return wb.forEach(function(n){r.hasOwnProperty(n)&&t[n](r[n]())}),t.path.pointRadius(r.path.pointRadius()),t},r}}(t,n),this):kb.hasOwnProperty(t)?kb[t]:null}function Mb(t){return t&&t.path||bb}var kb={albers:ib,albersusa:function(){var t,n,e,r,i,a,u=ib(),o=rb().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=rb().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){a=[t,n]}};function c(t){var n=t[0],u=t[1];return a=null,e.point(n,u),a||(r.point(n,u),a)||(i.point(n,u),a)}function f(){return t=n=null,c}return c.invert=function(t){var n=u.scale(),e=u.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?o:i>=.166&&i<.234&&r>=-.214&&r<-.115?s:u).invert(t)},c.stream=function(e){return t&&n===e?t:(r=[u.stream(n=e),o.stream(e),s.stream(e)],i=r.length,t={point:function(t,n){for(var e=-1;++e<i;)r[e].point(t,n)},sphere:function(){for(var t=-1;++t<i;)r[t].sphere()},lineStart:function(){for(var t=-1;++t<i;)r[t].lineStart()},lineEnd:function(){for(var t=-1;++t<i;)r[t].lineEnd()},polygonStart:function(){for(var t=-1;++t<i;)r[t].polygonStart()},polygonEnd:function(){for(var t=-1;++t<i;)r[t].polygonEnd()}});var r,i},c.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),s.precision(t),f()):u.precision()},c.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),s.scale(t),c.translate(u.translate())):u.scale()},c.translate=function(t){if(!arguments.length)return u.translate();var n=u.scale(),a=+t[0],c=+t[1];return e=u.translate(t).clipExtent([[a-.455*n,c-.238*n],[a+.455*n,c+.238*n]]).stream(l),r=o.translate([a-.307*n,c+.201*n]).clipExtent([[a-.425*n+Cv,c+.12*n+Cv],[a-.214*n-Cv,c+.234*n-Cv]]).stream(l),i=s.translate([a-.205*n,c+.212*n]).clipExtent([[a-.214*n+Cv,c+.166*n+Cv],[a-.115*n-Cv,c+.234*n-Cv]]).stream(l),f()},c.fitExtent=function(t,n){return W_(c,t,n)},c.fitSize=function(t,n){return H_(c,t,n)},c.fitWidth=function(t,n){return Y_(c,t,n)},c.fitHeight=function(t,n){return G_(c,t,n)},c.scale(1070)},azimuthalequalarea:function(){return K_(ob).scale(124.75).clipAngle(179.999)},azimuthalequidistant:function(){return K_(sb).scale(79.4188).clipAngle(179.999)},conicconformal:function(){return nb(hb).scale(109.5).parallels([30,30])},conicequalarea:rb,conicequidistant:function(){return nb(pb).scale(131.154).center([0,13.9389])},equirectangular:function(){return K_(db).scale(152.63)},gnomonic:function(){return K_(gb).scale(144.049).clipAngle(60)},identity:function(){var t,n,e,r,i,a,u=1,o=0,s=0,l=1,c=1,f=$x,h=null,d=$x;function p(){return r=i=null,a}return a={stream:function(t){return r&&i===t?r:r=f(d(i=t))},postclip:function(r){return arguments.length?(d=r,h=t=n=e=null,p()):d},clipExtent:function(r){return arguments.length?(d=null==r?(h=t=n=e=null,$x):qx(h=+r[0][0],t=+r[0][1],n=+r[1][0],e=+r[1][1]),p()):null==h?null:[[h,t],[n,e]]},scale:function(t){return arguments.length?(f=mb((u=+t)*l,u*c,o,s),p()):u},translate:function(t){return arguments.length?(f=mb(u*l,u*c,o=+t[0],s=+t[1]),p()):[o,s]},reflectX:function(t){return arguments.length?(f=mb(u*(l=t?-1:1),u*c,o,s),p()):l<0},reflectY:function(t){return arguments.length?(f=mb(u*l,u*(c=t?-1:1),o,s),p()):c<0},fitExtent:function(t,n){return W_(a,t,n)},fitSize:function(t,n){return H_(a,t,n)},fitWidth:function(t,n){return Y_(a,t,n)},fitHeight:function(t,n){return G_(a,t,n)}}},mercator:function(){return cb(lb).scale(961/Ov)},naturalEarth1:function(){return K_(vb).scale(175.295)},orthographic:function(){return K_(yb).scale(249.5).clipAngle(90+Cv)},stereographic:function(){return K_(xb).scale(250).clipAngle(142)},transversemercator:function(){var t=cb(_b),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):[(t=n())[1],-t[0]]},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):[(t=e())[0],t[1],t[2]-90]},e([0,0,90]).scale(159.155)}};for(var Eb in kb)Ab(Eb,kb[Eb]);function Cb(t){$r.call(this,null,t)}function Db(t){$r.call(this,null,t)}function Fb(t){$r.call(this,null,t)}function Sb(t){$r.call(this,[],t),this.generator=function(){var t,n,e,r,i,a,u,o,s,l,c,f,h=10,d=h,p=90,g=360,m=2.5;function v(){return{type:"MultiLineString",coordinates:y()}}function y(){return Sx(qv(r/p)*p,e,p).map(c).concat(Sx(qv(o/g)*g,u,g).map(f)).concat(Sx(qv(n/h)*h,t,h).filter(function(t){return Tv(t%p)>Cv}).map(s)).concat(Sx(qv(a/d)*d,i,d).filter(function(t){return Tv(t%g)>Cv}).map(l))}return v.lines=function(){return y().map(function(t){return{type:"LineString",coordinates:t}})},v.outline=function(){return{type:"Polygon",coordinates:[c(r).concat(f(u).slice(1),c(e).reverse().slice(1),f(o).reverse().slice(1))]}},v.extent=function(t){return arguments.length?v.extentMajor(t).extentMinor(t):v.extentMinor()},v.extentMajor=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],o=+t[0][1],u=+t[1][1],r>e&&(t=r,r=e,e=t),o>u&&(t=o,o=u,u=t),v.precision(m)):[[r,o],[e,u]]},v.extentMinor=function(e){return arguments.length?(n=+e[0][0],t=+e[1][0],a=+e[0][1],i=+e[1][1],n>t&&(e=n,n=t,t=e),a>i&&(e=a,a=i,i=e),v.precision(m)):[[n,a],[t,i]]},v.step=function(t){return arguments.length?v.stepMajor(t).stepMinor(t):v.stepMinor()},v.stepMajor=function(t){return arguments.length?(p=+t[0],g=+t[1],v):[p,g]},v.stepMinor=function(t){return arguments.length?(h=+t[0],d=+t[1],v):[h,d]},v.precision=function(h){return arguments.length?(m=+h,s=Ux(a,i,90),l=jx(n,t,m),c=Ux(o,u,90),f=jx(r,e,m),v):m},v.extentMajor([[-180,-90+Cv],[180,90-Cv]]).extentMinor([[-180,-80-Cv],[180,80+Cv]])}()}function Bb(t){$r.call(this,null,t),this.modified(!0)}function Ob(t,n,e){Y(t[n])&&t[n](e)}Cb.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"}]},et(Cb,$r).transform=function(t,n){var e=n.fork(n.ALL),r=this.value,i=t.field||d,a=t.as||"path",u=e.SOURCE;!r||t.modified()?(this.value=r=Mb(t.projection),e.materialize().reflow()):u=i===d||n.modified(i.fields)?e.ADD_MOD:e.ADD;var o=function(t,n){var e=t.pointRadius();t.context(null),null!=n&&t.pointRadius(n);return e}(r,t.pointRadius);return e.visit(u,function(t){t[a]=r(i(t))}),r.pointRadius(o),e.modifies(a)},Db.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"]}]},et(Db,$r).transform=function(t,n){var e,r=t.projection,i=t.fields[0],a=t.fields[1],u=t.as||["x","y"],o=u[0],s=u[1];function l(t){var n=r([i(t),a(t)]);n?(t[o]=n[0],t[s]=n[1]):(t[o]=void 0,t[s]=void 0)}return t.modified()?n=n.materialize().reflow(!0).visit(n.SOURCE,l):(e=n.modified(i.fields)||n.modified(a.fields),n.visit(e?n.ADD_MOD:n.ADD,l)),n.modifies(u)},Fb.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"}]},et(Fb,$r).transform=function(t,n){var e=n.fork(n.ALL),r=this.value,i=t.as||"shape",a=e.ADD;return r&&!t.modified()||(this.value=r=function(t,n,e){var r=null==e?function(e){return t(n(e))}:function(r){var i=t.pointRadius(),a=t.pointRadius(e)(n(r));return t.pointRadius(i),a};return r.context=function(n){return t.context(n),r},r}(Mb(t.projection),t.field||c("datum"),t.pointRadius),e.materialize().reflow(),a=e.SOURCE),e.visit(a,function(t){t[i]=r}),e.modifies(i)},Sb.Definition={type:"Graticule",metadata:{changes:!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}]},et(Sb,$r).transform=function(t,n){var e,r=this.value,i=this.generator;if(!r.length||t.modified())for(var a in t)Y(i[a])&&i[a](t[a]);return e=i(),r.length?n.mod.push(Bt(r[0],e)):n.add.push(Dt(e)),r[0]=e,n},et(Bb,$r).transform=function(t,n){var e=this.value;return!e||t.modified("type")?(this.value=e=function(t){var n=Ab((t||"mercator").toLowerCase());n||i("Unrecognized projection type: "+t);return n()}(t.type),wb.forEach(function(n){null!=t[n]&&Ob(e,n,t[n])})):wb.forEach(function(n){t.modified(n)&&Ob(e,n,t[n])}),null!=t.pointRadius&&e.path.pointRadius(t.pointRadius),t.fit&&function(t,n){var e=function(t){return 1===(t=W(t)).length?t[0]:{type:bv,features:t.reduce((t,n)=>t.concat(function(t){return t.type===bv?t.features:W(t).filter(t=>null!=t).map(t=>t.type===_v?t:{type:_v,geometry:t})}(n)),[])}}(n.fit);n.extent?t.fitExtent(n.extent,e):n.size&&t.fitSize(n.size,e)}(e,t),n.fork(n.NO_SOURCE|n.NO_FIELDS)};var zb=Object.freeze({contour:xv,geojson:wv,geopath:Cb,geopoint:Db,geoshape:Fb,graticule:Sb,projection:Bb});function Nb(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,a,u,o,s,l,c,f,h,d=t._root,p={data:r},g=t._x0,m=t._y0,v=t._x1,y=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((l=n>=(a=(g+v)/2))?g=a:v=a,(c=e>=(u=(m+y)/2))?m=u:y=u,i=d,!(d=d[f=c<<1|l]))return i[f]=p,t;if(o=+t._x.call(null,d.data),s=+t._y.call(null,d.data),n===o&&e===s)return p.next=d,i?i[f]=p:t._root=p,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(l=n>=(a=(g+v)/2))?g=a:v=a,(c=e>=(u=(m+y)/2))?m=u:y=u}while((f=c<<1|l)==(h=(s>=u)<<1|o>=a));return i[h]=d,i[f]=p,t}function Tb(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Rb(t){return t[0]}function Pb(t){return t[1]}function Lb(t,n,e){var r=new qb(null==n?Rb:n,null==e?Pb:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function qb(t,n,e,r,i,a){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function Ub(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var jb=Lb.prototype=qb.prototype;function $b(t){return function(){return t}}function Ib(){return 1e-6*(Math.random()-.5)}function Wb(t){return t.x+t.vx}function Hb(t){return t.y+t.vy}function Yb(t){return t.index}function Gb(t,n){var e=t.get(n);if(!e)throw new Error("missing: "+n);return e}jb.copy=function(){var t,n,e=new qb(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Ub(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Ub(n));return e},jb.add=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return Nb(this.cover(n,e),n,e,t)},jb.addAll=function(t){var n,e,r,i,a=t.length,u=new Array(a),o=new Array(a),s=1/0,l=1/0,c=-1/0,f=-1/0;for(e=0;e<a;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(u[e]=r,o[e]=i,r<s&&(s=r),r>c&&(c=r),i<l&&(l=i),i>f&&(f=i));if(s>c||l>f)return this;for(this.cover(s,l).cover(c,f),e=0;e<a;++e)Nb(this,u[e],o[e],t[e]);return this},jb.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,a=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,a=(r=Math.floor(n))+1;else{for(var u,o,s=i-e,l=this._root;e>t||t>=i||r>n||n>=a;)switch(o=(n<r)<<1|t<e,(u=new Array(4))[o]=l,l=u,s*=2,o){case 0:i=e+s,a=r+s;break;case 1:e=i-s,a=r+s;break;case 2:i=e+s,r=a-s;break;case 3:e=i-s,r=a-s}this._root&&this._root.length&&(this._root=l)}return this._x0=e,this._y0=r,this._x1=i,this._y1=a,this},jb.data=function(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t},jb.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},jb.find=function(t,n,e){var r,i,a,u,o,s,l,c=this._x0,f=this._y0,h=this._x1,d=this._y1,p=[],g=this._root;for(g&&p.push(new Tb(g,c,f,h,d)),null==e?e=1/0:(c=t-e,f=n-e,h=t+e,d=n+e,e*=e);s=p.pop();)if(!(!(g=s.node)||(i=s.x0)>h||(a=s.y0)>d||(u=s.x1)<c||(o=s.y1)<f))if(g.length){var m=(i+u)/2,v=(a+o)/2;p.push(new Tb(g[3],m,v,u,o),new Tb(g[2],i,v,m,o),new Tb(g[1],m,a,u,v),new Tb(g[0],i,a,m,v)),(l=(n>=v)<<1|t>=m)&&(s=p[p.length-1],p[p.length-1]=p[p.length-1-l],p[p.length-1-l]=s)}else{var y=t-+this._x.call(null,g.data),x=n-+this._y.call(null,g.data),_=y*y+x*x;if(_<e){var b=Math.sqrt(e=_);c=t-b,f=n-b,h=t+b,d=n+b,r=g.data}}return r},jb.remove=function(t){if(isNaN(a=+this._x.call(null,t))||isNaN(u=+this._y.call(null,t)))return this;var n,e,r,i,a,u,o,s,l,c,f,h,d=this._root,p=this._x0,g=this._y0,m=this._x1,v=this._y1;if(!d)return this;if(d.length)for(;;){if((l=a>=(o=(p+m)/2))?p=o:m=o,(c=u>=(s=(g+v)/2))?g=s:v=s,n=d,!(d=d[f=c<<1|l]))return this;if(!d.length)break;(n[f+1&3]||n[f+2&3]||n[f+3&3])&&(e=n,h=f)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[f]=i:delete n[f],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},jb.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},jb.root=function(){return this._root},jb.size=function(){var t=0;return this.visit(function(n){if(!n.length)do{++t}while(n=n.next)}),t},jb.visit=function(t){var n,e,r,i,a,u,o=[],s=this._root;for(s&&o.push(new Tb(s,this._x0,this._y0,this._x1,this._y1));n=o.pop();)if(!t(s=n.node,r=n.x0,i=n.y0,a=n.x1,u=n.y1)&&s.length){var l=(r+a)/2,c=(i+u)/2;(e=s[3])&&o.push(new Tb(e,l,c,a,u)),(e=s[2])&&o.push(new Tb(e,r,c,l,u)),(e=s[1])&&o.push(new Tb(e,l,i,a,c)),(e=s[0])&&o.push(new Tb(e,r,i,l,c))}return this},jb.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new Tb(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var a,u=n.x0,o=n.y0,s=n.x1,l=n.y1,c=(u+s)/2,f=(o+l)/2;(a=i[0])&&e.push(new Tb(a,u,o,c,f)),(a=i[1])&&e.push(new Tb(a,c,o,s,f)),(a=i[2])&&e.push(new Tb(a,u,f,c,l)),(a=i[3])&&e.push(new Tb(a,c,f,s,l))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},jb.x=function(t){return arguments.length?(this._x=t,this):this._x},jb.y=function(t){return arguments.length?(this._y=t,this):this._y};var Vb={value:function(){}};function Xb(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r)throw new Error("illegal type: "+t);r[t]=[]}return new Zb(r)}function Zb(t){this._=t}function Jb(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function Qb(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=Vb,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}Zb.prototype=Xb.prototype={constructor:Zb,on:function(t,n){var e,r,i=this._,a=(r=i,(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}})),u=-1,o=a.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++u<o;)if(e=(t=a[u]).type)i[e]=Qb(i[e],t.name,n);else if(null==n)for(e in i)i[e]=Qb(i[e],t.name,null);return this}for(;++u<o;)if((e=(t=a[u]).type)&&(e=Jb(i[e],t.name)))return e},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Zb(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),a=0;a<e;++a)i[a]=arguments[a+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=0,e=(r=this._[t]).length;a<e;++a)r[a].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,a=r.length;i<a;++i)r[i].value.apply(n,e)}};var Kb,tw,nw=0,ew=0,rw=0,iw=1e3,aw=0,uw=0,ow=0,sw="object"==typeof performance&&performance.now?performance:Date,lw="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function cw(){return uw||(lw(fw),uw=sw.now()+ow)}function fw(){uw=0}function hw(){this._call=this._time=this._next=null}function dw(t,n,e){var r=new hw;return r.restart(t,n,e),r}function pw(){uw=(aw=sw.now())+ow,nw=ew=0;try{!function(){cw(),++nw;for(var t,n=Kb;n;)(t=uw-n._time)>=0&&n._call.call(null,t),n=n._next;--nw}()}finally{nw=0,function(){var t,n,e=Kb,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Kb=n);tw=t,mw(r)}(),uw=0}}function gw(){var t=sw.now(),n=t-aw;n>iw&&(ow-=n,aw=t)}function mw(t){nw||(ew&&(ew=clearTimeout(ew)),t-uw>24?(t<1/0&&(ew=setTimeout(pw,t-sw.now()-ow)),rw&&(rw=clearInterval(rw))):(rw||(aw=sw.now(),rw=setInterval(gw,iw)),nw=1,lw(pw)))}function vw(t){return t.x}function yw(t){return t.y}hw.prototype=dw.prototype={constructor:hw,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?cw():+e)+(null==n?0:+n),this._next||tw===this||(tw?tw._next=this:Kb=this,tw=this),this._call=t,this._time=e,mw()},stop:function(){this._call&&(this._call=null,this._time=1/0,mw())}};var xw=10,_w=Math.PI*(3-Math.sqrt(5));var bw={center:function(t,n){var e;function r(){var r,i,a=e.length,u=0,o=0;for(r=0;r<a;++r)u+=(i=e[r]).x,o+=i.y;for(u=u/a-t,o=o/a-n,r=0;r<a;++r)(i=e[r]).x-=u,i.y-=o}return null==t&&(t=0),null==n&&(n=0),r.initialize=function(t){e=t},r.x=function(n){return arguments.length?(t=+n,r):t},r.y=function(t){return arguments.length?(n=+t,r):n},r},collide:function(t){var n,e,r=1,i=1;function a(){for(var t,a,o,s,l,c,f,h=n.length,d=0;d<i;++d)for(a=Lb(n,Wb,Hb).visitAfter(u),t=0;t<h;++t)o=n[t],c=e[o.index],f=c*c,s=o.x+o.vx,l=o.y+o.vy,a.visit(p);function p(t,n,e,i,a){var u=t.data,h=t.r,d=c+h;if(!u)return n>s+d||i<s-d||e>l+d||a<l-d;if(u.index>o.index){var p=s-u.x-u.vx,g=l-u.y-u.vy,m=p*p+g*g;m<d*d&&(0===p&&(m+=(p=Ib())*p),0===g&&(m+=(g=Ib())*g),m=(d-(m=Math.sqrt(m)))/m*r,o.vx+=(p*=m)*(d=(h*=h)/(f+h)),o.vy+=(g*=m)*d,u.vx-=p*(d=1-d),u.vy-=g*d)}}}function u(t){if(t.data)return t.r=e[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function o(){if(n){var r,i,a=n.length;for(e=new Array(a),r=0;r<a;++r)i=n[r],e[i.index]=+t(i,r,n)}}return"function"!=typeof t&&(t=$b(null==t?1:+t)),a.initialize=function(t){n=t,o()},a.iterations=function(t){return arguments.length?(i=+t,a):i},a.strength=function(t){return arguments.length?(r=+t,a):r},a.radius=function(n){return arguments.length?(t="function"==typeof n?n:$b(+n),o(),a):t},a},nbody:function(){var t,n,e,r,i=$b(-30),a=1,u=1/0,o=.81;function s(r){var i,a=t.length,u=Lb(t,vw,yw).visitAfter(c);for(e=r,i=0;i<a;++i)n=t[i],u.visit(f)}function l(){if(t){var n,e,a=t.length;for(r=new Array(a),n=0;n<a;++n)e=t[n],r[e.index]=+i(e,n,t)}}function c(t){var n,e,i,a,u,o=0,s=0;if(t.length){for(i=a=u=0;u<4;++u)(n=t[u])&&(e=Math.abs(n.value))&&(o+=n.value,s+=e,i+=e*n.x,a+=e*n.y);t.x=i/s,t.y=a/s}else{(n=t).x=n.data.x,n.y=n.data.y;do{o+=r[n.data.index]}while(n=n.next)}t.value=o}function f(t,i,s,l){if(!t.value)return!0;var c=t.x-n.x,f=t.y-n.y,h=l-i,d=c*c+f*f;if(h*h/o<d)return d<u&&(0===c&&(d+=(c=Ib())*c),0===f&&(d+=(f=Ib())*f),d<a&&(d=Math.sqrt(a*d)),n.vx+=c*t.value*e/d,n.vy+=f*t.value*e/d),!0;if(!(t.length||d>=u)){(t.data!==n||t.next)&&(0===c&&(d+=(c=Ib())*c),0===f&&(d+=(f=Ib())*f),d<a&&(d=Math.sqrt(a*d)));do{t.data!==n&&(h=r[t.data.index]*e/d,n.vx+=c*h,n.vy+=f*h)}while(t=t.next)}}return s.initialize=function(n){t=n,l()},s.strength=function(t){return arguments.length?(i="function"==typeof t?t:$b(+t),l(),s):i},s.distanceMin=function(t){return arguments.length?(a=t*t,s):Math.sqrt(a)},s.distanceMax=function(t){return arguments.length?(u=t*t,s):Math.sqrt(u)},s.theta=function(t){return arguments.length?(o=t*t,s):Math.sqrt(o)},s},link:function(t){var n,e,r,i,a,u=Yb,o=function(t){return 1/Math.min(i[t.source.index],i[t.target.index])},s=$b(30),l=1;function c(r){for(var i=0,u=t.length;i<l;++i)for(var o,s,c,f,h,d,p,g=0;g<u;++g)s=(o=t[g]).source,f=(c=o.target).x+c.vx-s.x-s.vx||Ib(),h=c.y+c.vy-s.y-s.vy||Ib(),f*=d=((d=Math.sqrt(f*f+h*h))-e[g])/d*r*n[g],h*=d,c.vx-=f*(p=a[g]),c.vy-=h*p,s.vx+=f*(p=1-p),s.vy+=h*p}function f(){if(r){var o,s,l=r.length,c=t.length,f=new Map(r.map((t,n)=>[u(t,n,r),t]));for(o=0,i=new Array(l);o<c;++o)(s=t[o]).index=o,"object"!=typeof s.source&&(s.source=Gb(f,s.source)),"object"!=typeof s.target&&(s.target=Gb(f,s.target)),i[s.source.index]=(i[s.source.index]||0)+1,i[s.target.index]=(i[s.target.index]||0)+1;for(o=0,a=new Array(c);o<c;++o)s=t[o],a[o]=i[s.source.index]/(i[s.source.index]+i[s.target.index]);n=new Array(c),h(),e=new Array(c),d()}}function h(){if(r)for(var e=0,i=t.length;e<i;++e)n[e]=+o(t[e],e,t)}function d(){if(r)for(var n=0,i=t.length;n<i;++n)e[n]=+s(t[n],n,t)}return null==t&&(t=[]),c.initialize=function(t){r=t,f()},c.links=function(n){return arguments.length?(t=n,f(),c):t},c.id=function(t){return arguments.length?(u=t,c):u},c.iterations=function(t){return arguments.length?(l=+t,c):l},c.strength=function(t){return arguments.length?(o="function"==typeof t?t:$b(+t),h(),c):o},c.distance=function(t){return arguments.length?(s="function"==typeof t?t:$b(+t),d(),c):s},c},x:function(t){var n,e,r,i=$b(.1);function a(t){for(var i,a=0,u=n.length;a<u;++a)(i=n[a]).vx+=(r[a]-i.x)*e[a]*t}function u(){if(n){var a,u=n.length;for(e=new Array(u),r=new Array(u),a=0;a<u;++a)e[a]=isNaN(r[a]=+t(n[a],a,n))?0:+i(n[a],a,n)}}return"function"!=typeof t&&(t=$b(null==t?0:+t)),a.initialize=function(t){n=t,u()},a.strength=function(t){return arguments.length?(i="function"==typeof t?t:$b(+t),u(),a):i},a.x=function(n){return arguments.length?(t="function"==typeof n?n:$b(+n),u(),a):t},a},y:function(t){var n,e,r,i=$b(.1);function a(t){for(var i,a=0,u=n.length;a<u;++a)(i=n[a]).vy+=(r[a]-i.y)*e[a]*t}function u(){if(n){var a,u=n.length;for(e=new Array(u),r=new Array(u),a=0;a<u;++a)e[a]=isNaN(r[a]=+t(n[a],a,n))?0:+i(n[a],a,n)}}return"function"!=typeof t&&(t=$b(null==t?0:+t)),a.initialize=function(t){n=t,u()},a.strength=function(t){return arguments.length?(i="function"==typeof t?t:$b(+t),u(),a):i},a.y=function(n){return arguments.length?(t="function"==typeof n?n:$b(+n),u(),a):t},a}},ww="forces",Aw=["alpha","alphaMin","alphaTarget","velocityDecay","forces"],Mw=["static","iterations"],kw=["x","y","vx","vy"];function Ew(t){$r.call(this,null,t)}Ew.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},{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:kw}]};var Cw=et(Ew,$r);function Dw(t,n,e,r){var i,a,u,o,s=W(n.forces);for(i=0,a=Aw.length;i<a;++i)(u=Aw[i])!==ww&&n.modified(u)&&t[u](n[u]);for(i=0,a=s.length;i<a;++i)o=ww+i,(u=e||n.modified(ww,i)?Sw(s[i]):r&&Fw(s[i],r)?t.force(o):null)&&t.force(o,u);for(a=t.numForces||0;i<a;++i)t.force(ww+i,null);return t.numForces=s.length,t}function Fw(t,n){var e,i;for(e in t)if(Y(i=t[e])&&n.modified(r(i)))return 1;return 0}function Sw(t){var n,e;for(e in bw.hasOwnProperty(t.force)||i("Unrecognized force: "+t.force),n=bw[t.force](),t)Y(n[e])&&Bw(n[e],t[e],t);return n}function Bw(t,n,e){t(Y(n)?function(t){return n(t,e)}:n)}Cw.transform=function(t,n){var e,r,i=this.value,a=n.changed(n.ADD_REM),u=t.modified(Aw),o=t.iterations||300;if(i?(a&&(n.modifies("index"),i.nodes(n.source)),(u||n.changed(n.MOD))&&Dw(i,t,0,n)):(this.value=i=function(t,n){var e=function(t){var n,e=1,r=.001,i=1-Math.pow(r,1/300),a=0,u=.6,o=new Map,s=dw(c),l=Xb("tick","end");function c(){f(),l.call("tick",n),e<r&&(s.stop(),l.call("end",n))}function f(r){var s,l,c=t.length;void 0===r&&(r=1);for(var f=0;f<r;++f)for(e+=(a-e)*i,o.forEach(function(t){t(e)}),s=0;s<c;++s)null==(l=t[s]).fx?l.x+=l.vx*=u:(l.x=l.fx,l.vx=0),null==l.fy?l.y+=l.vy*=u:(l.y=l.fy,l.vy=0);return n}function h(){for(var n,e=0,r=t.length;e<r;++e){if((n=t[e]).index=e,null!=n.fx&&(n.x=n.fx),null!=n.fy&&(n.y=n.fy),isNaN(n.x)||isNaN(n.y)){var i=xw*Math.sqrt(e),a=e*_w;n.x=i*Math.cos(a),n.y=i*Math.sin(a)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function d(n){return n.initialize&&n.initialize(t),n}return null==t&&(t=[]),h(),n={tick:f,restart:function(){return s.restart(c),n},stop:function(){return s.stop(),n},nodes:function(e){return arguments.length?(t=e,h(),o.forEach(d),n):t},alpha:function(t){return arguments.length?(e=+t,n):e},alphaMin:function(t){return arguments.length?(r=+t,n):r},alphaDecay:function(t){return arguments.length?(i=+t,n):+i},alphaTarget:function(t){return arguments.length?(a=+t,n):a},velocityDecay:function(t){return arguments.length?(u=1-t,n):1-u},force:function(t,e){return arguments.length>1?(null==e?o.delete(t):o.set(t,d(e)),n):o.get(t)},find:function(n,e,r){var i,a,u,o,s,l=0,c=t.length;for(null==r?r=1/0:r*=r,l=0;l<c;++l)(u=(i=n-(o=t[l]).x)*i+(a=e-o.y)*a)<r&&(s=o,r=u);return s},on:function(t,e){return arguments.length>1?(l.on(t,e),n):l.on(t)}}}(t),r=!1,i=e.stop,a=e.restart;return e.stopped=function(){return r},e.restart=function(){return r=!1,a()},e.stop=function(){return r=!0,i()},Dw(e,n,!0).on("end",function(){r=!0})}(n.source,t),i.on("tick",(e=n.dataflow,r=this,function(){e.touch(r).run()})),t.static||(a=!0,i.tick()),n.modifies("index")),u||a||t.modified(Mw)||n.changed()&&t.restart)if(i.alpha(Math.max(i.alpha(),t.alpha||1)).alphaDecay(1-Math.pow(i.alphaMin(),1/o)),t.static)for(i.stop();--o>=0;)i.tick();else if(i.stopped()&&i.restart(),!a)return n.StopPropagation;return this.finish(t,n)},Cw.finish=function(t,n){for(var e,r=n.dataflow,i=this._argops,a=0,u=i.length;a<u;++a)if((e=i[a]).name===ww&&"link"===e.op._argval.force)for(var o,s=e.op._argops,l=0,c=s.length;l<c;++l)if("links"===s[l].name&&(o=s[l].op.source)){r.pulse(o,r.changeset().reflow());break}return n.reflow(t.modified()).modifies(kw)};var Ow=Object.freeze({force:Ew});function zw(t,n,e){var r={};return t.each(function(t){var i=t.data;e(i)&&(r[n(i)]=t)}),t.lookup=r,t}function Nw(t,n){return t.parent===n.parent?1:2}function Tw(t,n){return t+n.x}function Rw(t,n){return Math.max(t,n.y)}function Pw(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Lw(t,n){var e,r,i,a,u,o=new $w(t),s=+t.value&&(o.value=t.value),l=[o];for(null==n&&(n=qw);e=l.pop();)if(s&&(e.value=+e.data.value),(i=n(e.data))&&(u=i.length))for(e.children=new Array(u),a=u-1;a>=0;--a)l.push(r=e.children[a]=new $w(i[a])),r.parent=e,r.depth=e.depth+1;return o.eachBefore(jw)}function qw(t){return t.children}function Uw(t){t.data=t.data.data}function jw(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function $w(t){this.data=t,this.depth=this.height=0,this.parent=null}$w.prototype=Lw.prototype={constructor:$w,count:function(){return this.eachAfter(Pw)},each:function(t){var n,e,r,i,a=this,u=[a];do{for(n=u.reverse(),u=[];a=n.pop();)if(t(a),e=a.children)for(r=0,i=e.length;r<i;++r)u.push(e[r])}while(u.length);return this},eachAfter:function(t){for(var n,e,r,i=this,a=[i],u=[];i=a.pop();)if(u.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)a.push(n[e]);for(;i=u.pop();)t(i);return this},eachBefore:function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},sort:function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each(function(n){t.push(n)}),t},leaves:function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},links:function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n},copy:function(){return Lw(this).eachBefore(Uw)}};var Iw=Array.prototype.slice;function Ww(t){for(var n,e,r=0,i=(t=function(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}(Iw.call(t))).length,a=[];r<i;)n=t[r],e&&Gw(e,n)?++r:(e=Xw(a=Hw(a,n)),r=0);return e}function Hw(t,n){var e,r;if(Vw(n,t))return[n];for(e=0;e<t.length;++e)if(Yw(n,t[e])&&Vw(Zw(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(Yw(Zw(t[e],t[r]),n)&&Yw(Zw(t[e],n),t[r])&&Yw(Zw(t[r],n),t[e])&&Vw(Jw(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}function Yw(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function Gw(t,n){var e=t.r-n.r+1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function Vw(t,n){for(var e=0;e<n.length;++e)if(!Gw(t,n[e]))return!1;return!0}function Xw(t){switch(t.length){case 1:return{x:(n=t[0]).x,y:n.y,r:n.r};case 2:return Zw(t[0],t[1]);case 3:return Jw(t[0],t[1],t[2])}var n}function Zw(t,n){var e=t.x,r=t.y,i=t.r,a=n.x,u=n.y,o=n.r,s=a-e,l=u-r,c=o-i,f=Math.sqrt(s*s+l*l);return{x:(e+a+s/f*c)/2,y:(r+u+l/f*c)/2,r:(f+i+o)/2}}function Jw(t,n,e){var r=t.x,i=t.y,a=t.r,u=n.x,o=n.y,s=n.r,l=e.x,c=e.y,f=e.r,h=r-u,d=r-l,p=i-o,g=i-c,m=s-a,v=f-a,y=r*r+i*i-a*a,x=y-u*u-o*o+s*s,_=y-l*l-c*c+f*f,b=d*p-h*g,w=(p*_-g*x)/(2*b)-r,A=(g*m-p*v)/b,M=(d*x-h*_)/(2*b)-i,k=(h*v-d*m)/b,E=A*A+k*k-1,C=2*(a+w*A+M*k),D=w*w+M*M-a*a,F=-(E?(C+Math.sqrt(C*C-4*E*D))/(2*E):D/C);return{x:r+w+A*F,y:i+M+k*F,r:F}}function Qw(t,n,e){var r,i,a,u,o=t.x-n.x,s=t.y-n.y,l=o*o+s*s;l?(i=n.r+e.r,i*=i,u=t.r+e.r,i>(u*=u)?(r=(l+u-i)/(2*l),a=Math.sqrt(Math.max(0,u/l-r*r)),e.x=t.x-r*o-a*s,e.y=t.y-r*s+a*o):(r=(l+i-u)/(2*l),a=Math.sqrt(Math.max(0,i/l-r*r)),e.x=n.x+r*o-a*s,e.y=n.y+r*s+a*o)):(e.x=n.x+e.r,e.y=n.y)}function Kw(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function tA(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,a=(n.y*e.r+e.y*n.r)/r;return i*i+a*a}function nA(t){this._=t,this.next=null,this.previous=null}function eA(t){if("function"!=typeof t)throw new Error;return t}function rA(){return 0}function iA(t){return function(){return t}}function aA(t){return Math.sqrt(t.value)}function uA(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function oA(t,n){return function(e){if(r=e.children){var r,i,a,u=r.length,o=t(e)*n||0;if(o)for(i=0;i<u;++i)r[i].r+=o;if(a=function(t){if(!(i=t.length))return 0;var n,e,r,i,a,u,o,s,l,c,f;if((n=t[0]).x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;Qw(e,n,r=t[2]),n=new nA(n),e=new nA(e),r=new nA(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(o=3;o<i;++o){Qw(n._,e._,r=t[o]),r=new nA(r),s=e.next,l=n.previous,c=e._.r,f=n._.r;do{if(c<=f){if(Kw(s._,r._)){e=s,n.next=e,e.previous=n,--o;continue t}c+=s._.r,s=s.next}else{if(Kw(l._,r._)){(n=l).next=e,e.previous=n,--o;continue t}f+=l._.r,l=l.previous}}while(s!==l.next);for(r.previous=n,r.next=e,n.next=e.previous=e=r,a=tA(n);(r=r.next)!==e;)(u=tA(r))<a&&(n=r,a=u);e=n.next}for(n=[e._],r=e;(r=r.next)!==e;)n.push(r._);for(r=Ww(n),o=0;o<i;++o)(n=t[o]).x-=r.x,n.y-=r.y;return r.r}(r),o)for(i=0;i<u;++i)r[i].r-=o;e.r=a+o}}}function sA(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function lA(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function cA(t,n,e,r,i){for(var a,u=t.children,o=-1,s=u.length,l=t.value&&(r-n)/t.value;++o<s;)(a=u[o]).y0=e,a.y1=i,a.x0=n,a.x1=n+=a.value*l}var fA="$",hA={depth:-1},dA={};function pA(t){return t.id}function gA(t){return t.parentId}function mA(){var t=pA,n=gA;function e(e){var r,i,a,u,o,s,l,c=e.length,f=new Array(c),h={};for(i=0;i<c;++i)r=e[i],o=f[i]=new $w(r),null!=(s=t(r,i,e))&&(s+="")&&(h[l=fA+(o.id=s)]=l in h?dA:o);for(i=0;i<c;++i)if(o=f[i],null!=(s=n(e[i],i,e))&&(s+="")){if(!(u=h[fA+s]))throw new Error("missing: "+s);if(u===dA)throw new Error("ambiguous: "+s);u.children?u.children.push(o):u.children=[o],o.parent=u}else{if(a)throw new Error("multiple roots");a=o}if(!a)throw new Error("no root");if(a.parent=hA,a.eachBefore(function(t){t.depth=t.parent.depth+1,--c}).eachBefore(jw),a.parent=null,c>0)throw new Error("cycle");return a}return e.id=function(n){return arguments.length?(t=eA(n),e):t},e.parentId=function(t){return arguments.length?(n=eA(t),e):n},e}function vA(t,n){return t.parent===n.parent?1:2}function yA(t){var n=t.children;return n?n[0]:t.t}function xA(t){var n=t.children;return n?n[n.length-1]:t.t}function _A(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function bA(t,n,e){return t.a.parent===n.parent?t.a:e}function wA(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function AA(t,n,e,r,i){for(var a,u=t.children,o=-1,s=u.length,l=t.value&&(i-e)/t.value;++o<s;)(a=u[o]).x0=n,a.x1=r,a.y0=e,a.y1=e+=a.value*l}wA.prototype=Object.create($w.prototype);var MA=(1+Math.sqrt(5))/2;function kA(t,n,e,r,i,a){for(var u,o,s,l,c,f,h,d,p,g,m,v=[],y=n.children,x=0,_=0,b=y.length,w=n.value;x<b;){s=i-e,l=a-r;do{c=y[_++].value}while(!c&&_<b);for(f=h=c,m=c*c*(g=Math.max(l/s,s/l)/(w*t)),p=Math.max(h/m,m/f);_<b;++_){if(c+=o=y[_].value,o<f&&(f=o),o>h&&(h=o),m=c*c*g,(d=Math.max(h/m,m/f))>p){c-=o;break}p=d}v.push(u={value:c,dice:s<l,children:y.slice(x,_)}),u.dice?cA(u,e,r,i,w?r+=l*c/w:a):AA(u,e,r,w?e+=s*c/w:i,a),w-=c,x=_}return v}var EA=function t(n){function e(t,e,r,i,a){kA(n,t,e,r,i,a)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(MA);var CA=function t(n){function e(t,e,r,i,a){if((u=t._squarify)&&u.ratio===n)for(var u,o,s,l,c,f=-1,h=u.length,d=t.value;++f<h;){for(s=(o=u[f]).children,l=o.value=0,c=s.length;l<c;++l)o.value+=s[l].value;o.dice?cA(o,e,r,i,r+=(a-r)*o.value/d):AA(o,e,r,e+=(i-e)*o.value/d,a),d-=o.value}else t._squarify=u=kA(n,t,e,r,i,a),u.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(MA);function DA(t){$r.call(this,null,t)}function FA(t){return t.values}function SA(){var t,n=[];return t={entries:function(t){return function t(e,r){if(++r>n.length)return e;var i,a=[];for(i in e)a.push({key:i,values:t(e[i],r)});return a}(function t(e,r){if(r>=n.length)return e;for(var i,a,u,o=-1,s=e.length,l=n[r++],c={},f={};++o<s;)(u=c[i=l(a=e[o])+""])?u.push(a):c[i]=[a];for(i in c)f[i]=t(c[i],r);return f}(t,0),0)},key:function(e){return n.push(e),t}}}function BA(t){$r.call(this,null,t)}function OA(t,n){return t.parent===n.parent?1:2}DA.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]},et(DA,$r).transform=function(t,n){n.source||i("Nest transform requires an upstream data source.");var e=t.generate,r=t.modified(),a=n.clone(),u=this.value;return(!u||r||n.changed())&&(u&&u.each(function(t){t.children&&kt(t.data)&&a.rem.push(t.data)}),this.value=u=Lw({values:W(t.keys).reduce(function(t,n){return t.key(n),t},SA()).entries(a.source)},FA),e&&u.each(function(t){t.children&&(t=Dt(t.data),a.add.push(t),a.source.push(t))}),zw(u,Et,Et)),a.source.root=u,a},et(BA,$r).transform=function(t,n){n.source&&n.source.root||i(this.constructor.name+" transform requires a backing tree data source.");var e=this.layout(t.method),r=this.fields,a=n.source.root,u=t.as||r;t.field&&a.sum(t.field),t.sort&&a.sort(t.sort),function(t,n,e){for(var r,i=0,a=n.length;i<a;++i)(r=n[i])in e&&t[r](e[r])}(e,this.params,t),e.separation&&e.separation(!1!==t.separation?OA:g);try{this.value=e(a)}catch(t){i(t)}return a.each(function(t){!function(t,n,e){for(var r=t.data,i=0,a=n.length-1;i<a;++i)r[e[i]]=t[n[i]];r[e[a]]=t.children?t.children.length:0}(t,r,u)}),n.reflow(t.modified()).modifies(u).modifies("leaf")};var zA=["x","y","r","depth","children"];function NA(t){BA.call(this,t)}NA.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:zA.length,default:zA}]};var TA=et(NA,BA);TA.layout=function(){var t=null,n=1,e=1,r=rA;function i(i){return i.x=n/2,i.y=e/2,t?i.eachBefore(uA(t)).eachAfter(oA(r,.5)).eachBefore(sA(1)):i.eachBefore(uA(aA)).eachAfter(oA(rA,1)).eachAfter(oA(r,i.r/Math.min(n,e))).eachBefore(sA(Math.min(n,e)/(2*i.r))),i}return i.radius=function(n){return arguments.length?(t=null==(e=n)?null:eA(e),i):t;var e},i.size=function(t){return arguments.length?(n=+t[0],e=+t[1],i):[n,e]},i.padding=function(t){return arguments.length?(r="function"==typeof t?t:iA(+t),i):r},i},TA.params=["size","padding"],TA.fields=zA;var RA=["x0","y0","x1","y1","depth","children"];function PA(t){BA.call(this,t)}PA.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:RA.length,default:RA}]};var LA=et(PA,BA);function qA(t){$r.call(this,null,t)}LA.layout=function(){var t=1,n=1,e=0,r=!1;function i(i){var a=i.height+1;return i.x0=i.y0=e,i.x1=t,i.y1=n/a,i.eachBefore(function(t,n){return function(r){r.children&&cA(r,r.x0,t*(r.depth+1)/n,r.x1,t*(r.depth+2)/n);var i=r.x0,a=r.y0,u=r.x1-e,o=r.y1-e;u<i&&(i=u=(i+u)/2),o<a&&(a=o=(a+o)/2),r.x0=i,r.y0=a,r.x1=u,r.y1=o}}(n,a)),r&&i.eachBefore(lA),i}return i.round=function(t){return arguments.length?(r=!!t,i):r},i.size=function(e){return arguments.length?(t=+e[0],n=+e[1],i):[t,n]},i.padding=function(t){return arguments.length?(e=+t,i):e},i},LA.params=["size","round","padding"],LA.fields=RA,qA.Definition={type:"Stratify",metadata:{treesource:!0},params:[{name:"key",type:"field",required:!0},{name:"parentKey",type:"field",required:!0}]},et(qA,$r).transform=function(t,n){n.source||i("Stratify transform requires an upstream data source.");var e=this.value,r=t.modified(),a=n.fork(n.ALL).materialize(n.SOURCE),u=!this.value||r||n.changed(n.ADD_REM)||n.modified(t.key.fields)||n.modified(t.parentKey.fields);return a.source=a.source.slice(),u&&(e=a.source.length?zw(mA().id(t.key).parentId(t.parentKey)(a.source),t.key,m):zw(mA()([{}]),t.key,t.key)),a.source.root=this.value=e,a};var UA={tidy:function(){var t=vA,n=1,e=1,r=null;function i(i){var s=function(t){for(var n,e,r,i,a,u=new wA(t,0),o=[u];n=o.pop();)if(r=n._.children)for(n.children=new Array(a=r.length),i=a-1;i>=0;--i)o.push(e=n.children[i]=new wA(r[i],i)),e.parent=n;return(u.parent=new wA(null,0)).children=[u],u}(i);if(s.eachAfter(a),s.parent.m=-s.z,s.eachBefore(u),r)i.eachBefore(o);else{var l=i,c=i,f=i;i.eachBefore(function(t){t.x<l.x&&(l=t),t.x>c.x&&(c=t),t.depth>f.depth&&(f=t)});var h=l===c?1:t(l,c)/2,d=h-l.x,p=n/(c.x+h+d),g=e/(f.depth||1);i.eachBefore(function(t){t.x=(t.x+d)*p,t.y=t.depth*g})}return i}function a(n){var e=n.children,r=n.parent.children,i=n.i?r[n.i-1]:null;if(e){!function(t){for(var n,e=0,r=0,i=t.children,a=i.length;--a>=0;)(n=i[a]).z+=e,n.m+=e,e+=n.s+(r+=n.c)}(n);var a=(e[0].z+e[e.length-1].z)/2;i?(n.z=i.z+t(n._,i._),n.m=n.z-a):n.z=a}else i&&(n.z=i.z+t(n._,i._));n.parent.A=function(n,e,r){if(e){for(var i,a=n,u=n,o=e,s=a.parent.children[0],l=a.m,c=u.m,f=o.m,h=s.m;o=xA(o),a=yA(a),o&&a;)s=yA(s),(u=xA(u)).a=n,(i=o.z+f-a.z-l+t(o._,a._))>0&&(_A(bA(o,n,r),n,i),l+=i,c+=i),f+=o.m,l+=a.m,h+=s.m,c+=u.m;o&&!xA(u)&&(u.t=o,u.m+=f-c),a&&!yA(s)&&(s.t=a,s.m+=l-h,r=n)}return r}(n,i,n.parent.A||r[0])}function u(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function o(t){t.x*=n,t.y=t.depth*e}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},cluster:function(){var t=Nw,n=1,e=1,r=!1;function i(i){var a,u=0;i.eachAfter(function(n){var e=n.children;e?(n.x=function(t){return t.reduce(Tw,0)/t.length}(e),n.y=function(t){return 1+t.reduce(Rw,0)}(e)):(n.x=a?u+=t(n,a):0,n.y=0,a=n)});var o=function(t){for(var n;n=t.children;)t=n[0];return t}(i),s=function(t){for(var n;n=t.children;)t=n[n.length-1];return t}(i),l=o.x-t(o,s)/2,c=s.x+t(s,o)/2;return i.eachAfter(r?function(t){t.x=(t.x-i.x)*n,t.y=(i.y-t.y)*e}:function(t){t.x=(t.x-l)/(c-l)*n,t.y=(1-(i.y?t.y/i.y:1))*e})}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i}},jA=["x","y","depth","children"];function $A(t){BA.call(this,t)}$A.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:jA.length,default:jA}]};var IA=et($A,BA);function WA(t){$r.call(this,[],t)}IA.layout=function(t){var n=t||"tidy";if(UA.hasOwnProperty(n))return UA[n]();i("Unrecognized Tree layout method: "+n)},IA.params=["size","nodeSize"],IA.fields=jA,WA.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},et(WA,$r).transform=function(t,n){var e=this.value,r=n.source&&n.source.root,a=n.fork(n.NO_SOURCE),u={};return r||i("TreeLinks transform requires a tree data source."),n.changed(n.ADD_REM)?(a.rem=e,n.visit(n.SOURCE,function(t){u[Et(t)]=1}),r.each(function(t){var n=t.data,e=t.parent&&t.parent.data;e&&u[Et(n)]&&u[Et(e)]&&a.add.push(Dt({source:e,target:n}))}),this.value=a.add):n.changed(n.MOD)&&(n.visit(n.MOD,function(t){u[Et(t)]=1}),e.forEach(function(t){(u[Et(t.source)]||u[Et(t.target)])&&a.mod.push(t)})),a};var HA={binary:function(t,n,e,r,i){var a,u,o=t.children,s=o.length,l=new Array(s+1);for(l[0]=u=a=0;a<s;++a)l[a+1]=u+=o[a].value;!function t(n,e,r,i,a,u,s){if(n>=e-1){var c=o[n];return c.x0=i,c.y0=a,c.x1=u,void(c.y1=s)}for(var f=l[n],h=r/2+f,d=n+1,p=e-1;d<p;){var g=d+p>>>1;l[g]<h?d=g+1:p=g}h-l[d-1]<l[d]-h&&n+1<d&&--d;var m=l[d]-f,v=r-m;if(u-i>s-a){var y=(i*v+u*m)/r;t(n,d,m,i,a,y,s),t(d,e,v,y,a,u,s)}else{var x=(a*v+s*m)/r;t(n,d,m,i,a,u,x),t(d,e,v,i,x,u,s)}}(0,s,t.value,n,e,r,i)},dice:cA,slice:AA,slicedice:function(t,n,e,r,i){(1&t.depth?AA:cA)(t,n,e,r,i)},squarify:EA,resquarify:CA},YA=["x0","y0","x1","y1","depth","children"];function GA(t){BA.call(this,t)}GA.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:YA.length,default:YA}]};var VA=et(GA,BA);VA.layout=function(){var t=function(){var t=EA,n=!1,e=1,r=1,i=[0],a=rA,u=rA,o=rA,s=rA,l=rA;function c(t){return t.x0=t.y0=0,t.x1=e,t.y1=r,t.eachBefore(f),i=[0],n&&t.eachBefore(lA),t}function f(n){var e=i[n.depth],r=n.x0+e,c=n.y0+e,f=n.x1-e,h=n.y1-e;f<r&&(r=f=(r+f)/2),h<c&&(c=h=(c+h)/2),n.x0=r,n.y0=c,n.x1=f,n.y1=h,n.children&&(e=i[n.depth+1]=a(n)/2,r+=l(n)-e,c+=u(n)-e,(f-=o(n)-e)<r&&(r=f=(r+f)/2),(h-=s(n)-e)<c&&(c=h=(c+h)/2),t(n,r,c,f,h))}return c.round=function(t){return arguments.length?(n=!!t,c):n},c.size=function(t){return arguments.length?(e=+t[0],r=+t[1],c):[e,r]},c.tile=function(n){return arguments.length?(t=eA(n),c):t},c.padding=function(t){return arguments.length?c.paddingInner(t).paddingOuter(t):c.paddingInner()},c.paddingInner=function(t){return arguments.length?(a="function"==typeof t?t:iA(+t),c):a},c.paddingOuter=function(t){return arguments.length?c.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t):c.paddingTop()},c.paddingTop=function(t){return arguments.length?(u="function"==typeof t?t:iA(+t),c):u},c.paddingRight=function(t){return arguments.length?(o="function"==typeof t?t:iA(+t),c):o},c.paddingBottom=function(t){return arguments.length?(s="function"==typeof t?t:iA(+t),c):s},c.paddingLeft=function(t){return arguments.length?(l="function"==typeof t?t:iA(+t),c):l},c}();return t.ratio=function(n){var e=t.tile();e.ratio&&t.tile(e.ratio(n))},t.method=function(n){HA.hasOwnProperty(n)?t.tile(HA[n]):i("Unrecognized Treemap layout method: "+n)},t},VA.params=["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],VA.fields=YA;var XA=Object.freeze({nest:DA,pack:NA,partition:PA,stratify:qA,tree:$A,treelinks:WA,treemap:GA});function ZA(t,n){var e,r,i,a,u,o,s=[],l=function(t){return t(a)};if(null==n)s.push(t);else for(e={},r=0,i=t.length;r<i;++r)a=t[r],(o=e[u=n.map(l)])||(e[u]=o=[],o.dims=u,s.push(o)),o.push(a);return s}function JA(t){$r.call(this,null,t)}JA.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}]},et(JA,$r).transform=function(t,n){var r=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const i=ZA(n.materialize(n.SOURCE).source,t.groupby),a=(t.groupby||[]).map(e),u=a.length,o=t.as||[e(t.x),e(t.y)],s=[];i.forEach(n=>{Li(n,t.x,t.y,t.bandwidth||.3).forEach(t=>{const e={};for(let t=0;t<u;++t)e[a[t]]=n.dims[t];e[o[0]]=t[0],e[o[1]]=t[1],s.push(Dt(e))})}),this.value&&(r.rem=this.value),this.value=r.add=r.source=s}return r};const QA={linear:Si,log:Bi,exp:Oi,pow:zi,quad:Ni,poly:Ti};function KA(t){$r.call(this,null,t)}KA.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(QA)},{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}]},et(KA,$r).transform=function(t,n){var r=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const a=ZA(n.materialize(n.SOURCE).source,t.groupby),u=(t.groupby||[]).map(e),o=t.method||"linear",s=t.order||3,l=function(t,n){return"poly"===t?n:"quad"===t?2:1}(o,s),c=t.as||[e(t.x),e(t.y)],f=QA[o],h=[];let d=t.extent;QA.hasOwnProperty(o)||i("Invalid regression method: "+o),null!=d&&"log"===o&&d[0]<=0&&(n.dataflow.warn("Ignoring extent with values <= 0 for log regression."),d=null),a.forEach(e=>{if(e.length<=l)return void n.dataflow.warn("Skipping regression with more parameters than data points.");const r=f(e,t.x,t.y,s);if(t.params)return void h.push(Dt({keys:e.dims,coef:r.coef,rSquared:r.rSquared}));const i=d||J(e,t.x),a=t=>{const n={};for(let t=0;t<u.length;++t)n[u[t]]=e.dims[t];n[c[0]]=t[0],n[c[1]]=t[1],h.push(Dt(n))};"linear"===o?i.forEach(t=>a([t,r.predict(t)])):$i(r.predict,i,25,200).forEach(a)}),this.value&&(r.rem=this.value),this.value=r.add=r.source=h}return r};var tM=Object.freeze({loess:JA,regression:KA});function nM(t){return function(){return t}}function eM(t){return t[0]}function rM(t){return t[1]}function iM(){this._=null}function aM(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function uM(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function oM(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function sM(t){for(;t.L;)t=t.L;return t}function lM(t,n,e,r){var i=[null,null],a=zM.push(i)-1;return i.left=t,i.right=n,e&&fM(i,t,n,e),r&&fM(i,n,t,r),BM[t.index].halfedges.push(a),BM[n.index].halfedges.push(a),i}function cM(t,n,e){var r=[n,e];return r.left=t,r}function fM(t,n,e,r){t[0]||t[1]?t.left===e?t[1]=r:t[0]=r:(t[0]=r,t.left=n,t.right=e)}function hM(t,n,e,r,i){var a,u=t[0],o=t[1],s=u[0],l=u[1],c=0,f=1,h=o[0]-s,d=o[1]-l;if(a=n-s,h||!(a>0)){if(a/=h,h<0){if(a<c)return;a<f&&(f=a)}else if(h>0){if(a>f)return;a>c&&(c=a)}if(a=r-s,h||!(a<0)){if(a/=h,h<0){if(a>f)return;a>c&&(c=a)}else if(h>0){if(a<c)return;a<f&&(f=a)}if(a=e-l,d||!(a>0)){if(a/=d,d<0){if(a<c)return;a<f&&(f=a)}else if(d>0){if(a>f)return;a>c&&(c=a)}if(a=i-l,d||!(a<0)){if(a/=d,d<0){if(a>f)return;a>c&&(c=a)}else if(d>0){if(a<c)return;a<f&&(f=a)}return!(c>0||f<1)||(c>0&&(t[0]=[s+c*h,l+c*d]),f<1&&(t[1]=[s+f*h,l+f*d]),!0)}}}}}function dM(t,n,e,r,i){var a=t[1];if(a)return!0;var u,o,s=t[0],l=t.left,c=t.right,f=l[0],h=l[1],d=c[0],p=c[1],g=(f+d)/2,m=(h+p)/2;if(p===h){if(g<n||g>=r)return;if(f>d){if(s){if(s[1]>=i)return}else s=[g,e];a=[g,i]}else{if(s){if(s[1]<e)return}else s=[g,i];a=[g,e]}}else if(o=m-(u=(f-d)/(p-h))*g,u<-1||u>1)if(f>d){if(s){if(s[1]>=i)return}else s=[(e-o)/u,e];a=[(i-o)/u,i]}else{if(s){if(s[1]<e)return}else s=[(i-o)/u,i];a=[(e-o)/u,e]}else if(h<p){if(s){if(s[0]>=r)return}else s=[n,u*n+o];a=[r,u*r+o]}else{if(s){if(s[0]<n)return}else s=[r,u*r+o];a=[n,u*n+o]}return t[0]=s,t[1]=a,!0}function pM(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function gM(t,n){return n[+(n.left!==t.site)]}function mM(t,n){return n[+(n.left===t.site)]}iM.prototype={constructor:iM,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=sM(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)e===(r=e.U).L?(i=r.R)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(uM(this,e),e=(t=e).U),e.C=!1,r.C=!0,oM(this,r)):(i=r.L)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(oM(this,e),e=(t=e).U),e.C=!1,r.C=!0,uM(this,r)),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,a=t.L,u=t.R;if(e=a?u?sM(u):a:u,i?i.L===t?i.L=e:i.R=e:this._=e,a&&u?(r=e.C,e.C=t.C,e.L=a,a.U=e,e!==u?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=u,u.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((n=i.R).C&&(n.C=!1,i.C=!0,uM(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,oM(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,uM(this,i),t=this._;break}}else if((n=i.L).C&&(n.C=!1,i.C=!0,oM(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,uM(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,oM(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var vM,yM=[];function xM(){aM(this),this.x=this.y=this.arc=this.site=this.cy=null}function _M(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,a=e.site;if(r!==a){var u=i[0],o=i[1],s=r[0]-u,l=r[1]-o,c=a[0]-u,f=a[1]-o,h=2*(s*f-l*c);if(!(h>=-TM)){var d=s*s+l*l,p=c*c+f*f,g=(f*d-l*p)/h,m=(s*p-c*d)/h,v=yM.pop()||new xM;v.arc=t,v.site=i,v.x=g+u,v.y=(v.cy=m+o)+Math.sqrt(g*g+m*m),t.circle=v;for(var y=null,x=OM._;x;)if(v.y<x.y||v.y===x.y&&v.x<=x.x){if(!x.L){y=x.P;break}x=x.L}else{if(!x.R){y=x;break}x=x.R}OM.insert(y,v),y||(vM=v)}}}}function bM(t){var n=t.circle;n&&(n.P||(vM=n.N),OM.remove(n),yM.push(n),aM(n),t.circle=null)}var wM=[];function AM(){aM(this),this.edge=this.site=this.circle=null}function MM(t){var n=wM.pop()||new AM;return n.site=t,n}function kM(t){bM(t),SM.remove(t),wM.push(t),aM(t)}function EM(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],a=t.P,u=t.N,o=[t];kM(t);for(var s=a;s.circle&&Math.abs(e-s.circle.x)<NM&&Math.abs(r-s.circle.cy)<NM;)a=s.P,o.unshift(s),kM(s),s=a;o.unshift(s),bM(s);for(var l=u;l.circle&&Math.abs(e-l.circle.x)<NM&&Math.abs(r-l.circle.cy)<NM;)u=l.N,o.push(l),kM(l),l=u;o.push(l),bM(l);var c,f=o.length;for(c=1;c<f;++c)l=o[c],s=o[c-1],fM(l.edge,s.site,l.site,i);s=o[0],(l=o[f-1]).edge=lM(s.site,l.site,null,i),_M(s),_M(l)}function CM(t){for(var n,e,r,i,a=t[0],u=t[1],o=SM._;o;)if((r=DM(o,u)-a)>NM)o=o.L;else{if(!((i=a-FM(o,u))>NM)){r>-NM?(n=o.P,e=o):i>-NM?(n=o,e=o.N):n=e=o;break}if(!o.R){n=o;break}o=o.R}!function(t){BM[t.index]={site:t,halfedges:[]}}(t);var s=MM(t);if(SM.insert(n,s),n||e){if(n===e)return bM(n),e=MM(n.site),SM.insert(s,e),s.edge=e.edge=lM(n.site,s.site),_M(n),void _M(e);if(e){bM(n),bM(e);var l=n.site,c=l[0],f=l[1],h=t[0]-c,d=t[1]-f,p=e.site,g=p[0]-c,m=p[1]-f,v=2*(h*m-d*g),y=h*h+d*d,x=g*g+m*m,_=[(m*y-d*x)/v+c,(h*x-g*y)/v+f];fM(e.edge,l,p,_),s.edge=lM(l,t,null,_),e.edge=lM(t,p,null,_),_M(n),_M(e)}else s.edge=lM(n.site,s.site)}}function DM(t,n){var e=t.site,r=e[0],i=e[1],a=i-n;if(!a)return r;var u=t.P;if(!u)return-1/0;var o=(e=u.site)[0],s=e[1],l=s-n;if(!l)return o;var c=o-r,f=1/a-1/l,h=c/l;return f?(-h+Math.sqrt(h*h-2*f*(c*c/(-2*l)-s+l/2+i-a/2)))/f+r:(r+o)/2}function FM(t,n){var e=t.N;if(e)return DM(e,n);var r=t.site;return r[1]===n?r[0]:1/0}var SM,BM,OM,zM,NM=1e-6,TM=1e-12;function RM(t,n){return n[1]-t[1]||n[0]-t[0]}function PM(t,n){var e,r,i,a=t.sort(RM).pop();for(zM=[],BM=new Array(t.length),SM=new iM,OM=new iM;;)if(i=vM,a&&(!i||a[1]<i.y||a[1]===i.y&&a[0]<i.x))a[0]===e&&a[1]===r||(CM(a),e=a[0],r=a[1]),a=t.pop();else{if(!i)break;EM(i.arc)}if(function(){for(var t,n,e,r,i=0,a=BM.length;i<a;++i)if((t=BM[i])&&(r=(n=t.halfedges).length)){var u=new Array(r),o=new Array(r);for(e=0;e<r;++e)u[e]=e,o[e]=pM(t,zM[n[e]]);for(u.sort(function(t,n){return o[n]-o[t]}),e=0;e<r;++e)o[e]=n[u[e]];for(e=0;e<r;++e)n[e]=o[e]}}(),n){var u=+n[0][0],o=+n[0][1],s=+n[1][0],l=+n[1][1];!function(t,n,e,r){for(var i,a=zM.length;a--;)dM(i=zM[a],t,n,e,r)&&hM(i,t,n,e,r)&&(Math.abs(i[0][0]-i[1][0])>NM||Math.abs(i[0][1]-i[1][1])>NM)||delete zM[a]}(u,o,s,l),function(t,n,e,r){var i,a,u,o,s,l,c,f,h,d,p,g,m=BM.length,v=!0;for(i=0;i<m;++i)if(a=BM[i]){for(u=a.site,o=(s=a.halfedges).length;o--;)zM[s[o]]||s.splice(o,1);for(o=0,l=s.length;o<l;)p=(d=mM(a,zM[s[o]]))[0],g=d[1],f=(c=gM(a,zM[s[++o%l]]))[0],h=c[1],(Math.abs(p-f)>NM||Math.abs(g-h)>NM)&&(s.splice(o,0,zM.push(cM(u,d,Math.abs(p-t)<NM&&r-g>NM?[t,Math.abs(f-t)<NM?h:r]:Math.abs(g-r)<NM&&e-p>NM?[Math.abs(h-r)<NM?f:e,r]:Math.abs(p-e)<NM&&g-n>NM?[e,Math.abs(f-e)<NM?h:n]:Math.abs(g-n)<NM&&p-t>NM?[Math.abs(h-n)<NM?f:t,n]:null))-1),++l);l&&(v=!1)}if(v){var y,x,_,b=1/0;for(i=0,v=null;i<m;++i)(a=BM[i])&&(_=(y=(u=a.site)[0]-t)*y+(x=u[1]-n)*x)<b&&(b=_,v=a);if(v){var w=[t,n],A=[t,r],M=[e,r],k=[e,n];v.halfedges.push(zM.push(cM(u=v.site,w,A))-1,zM.push(cM(u,A,M))-1,zM.push(cM(u,M,k))-1,zM.push(cM(u,k,w))-1)}}for(i=0;i<m;++i)(a=BM[i])&&(a.halfedges.length||delete BM[i])}(u,o,s,l)}this.edges=zM,this.cells=BM,SM=OM=zM=BM=null}function LM(t){$r.call(this,null,t)}PM.prototype={constructor:PM,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return gM(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){if(a=(i=e.halfedges).length)for(var i,a,u,o,s,l,c=e.site,f=-1,h=n[i[a-1]],d=h.left===c?h.right:h.left;++f<a;)u=d,d=(h=n[i[f]]).left===c?h.right:h.left,u&&d&&r<u.index&&r<d.index&&(s=u,l=d,((o=c)[0]-l[0])*(s[1]-o[1])-(o[0]-s[0])*(l[1]-o[1])<0)&&t.push([c.data,u.data,d.data])}),t},links:function(){return this.edges.filter(function(t){return t.right}).map(function(t){return{source:t.left.data,target:t.right.data}})},find:function(t,n,e){for(var r,i,a=this,u=a._found||0,o=a.cells.length;!(i=a.cells[u]);)if(++u>=o)return null;var s=t-i.site[0],l=n-i.site[1],c=s*s+l*l;do{i=a.cells[r=u],u=null,i.halfedges.forEach(function(e){var r=a.edges[e],o=r.left;if(o!==i.site&&o||(o=r.right)){var s=t-o[0],l=n-o[1],f=s*s+l*l;f<c&&(c=f,u=o.index)}})}while(null!==u);return a._found=r,null==e||c<=e*e?i.site:null}},LM.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"}]};var qM=et(LM,$r),UM=[[-1e5,-1e5],[1e5,1e5]];qM.transform=function(t,n){var e,r,i,a,u=t.as||"path",o=n.source;for(e=function(){var t=eM,n=rM,e=null;function r(r){return new PM(r.map(function(e,i){var a=[Math.round(t(e,i,r)/NM)*NM,Math.round(n(e,i,r)/NM)*NM];return a.index=i,a.data=e,a}),e)}return r.polygons=function(t){return r(t).polygons()},r.links=function(t){return r(t).links()},r.triangles=function(t){return r(t).triangles()},r.x=function(n){return arguments.length?(t="function"==typeof n?n:nM(+n),r):t},r.y=function(t){return arguments.length?(n="function"==typeof t?t:nM(+t),r):n},r.extent=function(t){return arguments.length?(e=null==t?null:[[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]],r):e&&[[e[0][0],e[0][1]],[e[1][0],e[1][1]]]},r.size=function(t){return arguments.length?(e=null==t?null:[[0,0],[+t[0],+t[1]]],r):e&&[e[1][0]-e[0][0],e[1][1]-e[0][1]]},r}().x(t.x).y(t.y),t.size?e.size(t.size):e.extent(t.extent||UM),this.value=e=e(o),r=e.polygons(),i=0,a=o.length;i<a;++i)o[i][u]=r[i]?"M"+r[i].join("L")+"Z":null;return n.reflow(t.modified()).modifies(u)};var jM=Object.freeze({voronoi:LM}),$M=Math.PI/180,IM=64,WM=2048;function HM(){var t,n,e,r,i,a,u,o=[256,256],s=XM,l=[],c=Math.random,f={};function h(t,n,e){for(var r,i,a,u,l,f=n.x,h=n.y,d=Math.sqrt(o[0]*o[0]+o[1]*o[1]),p=s(o),g=c()<.5?1:-1,m=-g;(r=p(m+=g))&&(i=~~r[0],a=~~r[1],!(Math.min(Math.abs(i),Math.abs(a))>=d));)if(n.x=f+i,n.y=h+a,!(n.x+n.x0<0||n.y+n.y0<0||n.x+n.x1>o[0]||n.y+n.y1>o[1]||e&&GM(n,t,o[0])||e&&(l=e,!((u=n).x+u.x1>l[0].x&&u.x+u.x0<l[1].x&&u.y+u.y1>l[0].y&&u.y+u.y0<l[1].y)))){for(var v,y=n.sprite,x=n.width>>5,_=o[0]>>5,b=n.x-(x<<4),w=127&b,A=32-w,M=n.y1-n.y0,k=(n.y+n.y0)*_+(b>>5),E=0;E<M;E++){v=0;for(var C=0;C<=x;C++)t[k+C]|=v<<A|(C<x?(v=y[E*x+C])>>>w:0);k+=_}return n.sprite=null,!0}return!1}return f.layout=function(){for(var s=function(t){t.width=t.height=1;var n=Math.sqrt(t.getContext("2d").getImageData(0,0,1,1).data.length>>2);t.width=(IM<<5)/n,t.height=WM/n;var e=t.getContext("2d");return e.fillStyle=e.strokeStyle="red",e.textAlign="center",{context:e,ratio:n}}(no()),f=function(t){var n=[],e=-1;for(;++e<t;)n[e]=0;return n}((o[0]>>5)*o[1]),d=null,p=l.length,g=-1,m=[],v=l.map(function(o){return{text:t(o),font:n(o),style:r(o),weight:i(o),rotate:a(o),size:~~e(o),padding:u(o),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:o}}).sort(function(t,n){return n.size-t.size});++g<p;){var y=v[g];y.x=o[0]*(c()+.5)>>1,y.y=o[1]*(c()+.5)>>1,YM(s,y,v,g),y.hasText&&h(f,y,d)&&(m.push(y),d?VM(d,y):d=[{x:y.x+y.x0,y:y.y+y.y0},{x:y.x+y.x1,y:y.y+y.y1}],y.x-=o[0]>>1,y.y-=o[1]>>1)}return m},f.words=function(t){return arguments.length?(l=t,f):l},f.size=function(t){return arguments.length?(o=[+t[0],+t[1]],f):o},f.font=function(t){return arguments.length?(n=ZM(t),f):n},f.fontStyle=function(t){return arguments.length?(r=ZM(t),f):r},f.fontWeight=function(t){return arguments.length?(i=ZM(t),f):i},f.rotate=function(t){return arguments.length?(a=ZM(t),f):a},f.text=function(n){return arguments.length?(t=ZM(n),f):t},f.spiral=function(t){return arguments.length?(s=JM[t]||t,f):s},f.fontSize=function(t){return arguments.length?(e=ZM(t),f):e},f.padding=function(t){return arguments.length?(u=ZM(t),f):u},f.random=function(t){return arguments.length?(c=t,f):c},f}function YM(t,n,e,r){if(!n.sprite){var i=t.context,a=t.ratio;i.clearRect(0,0,(IM<<5)/a,WM/a);var u,o,s,l,c,f=0,h=0,d=0,p=e.length;for(--r;++r<p;){if(n=e[r],i.save(),i.font=n.style+" "+n.weight+" "+~~((n.size+1)/a)+"px "+n.font,u=i.measureText(n.text+"m").width*a,s=n.size<<1,n.rotate){var g=Math.sin(n.rotate*$M),m=Math.cos(n.rotate*$M),v=u*m,y=u*g,x=s*m,_=s*g;u=Math.max(Math.abs(v+_),Math.abs(v-_))+31>>5<<5,s=~~Math.max(Math.abs(y+x),Math.abs(y-x))}else u=u+31>>5<<5;if(s>d&&(d=s),f+u>=IM<<5&&(f=0,h+=d,d=0),h+s>=WM)break;i.translate((f+(u>>1))/a,(h+(s>>1))/a),n.rotate&&i.rotate(n.rotate*$M),i.fillText(n.text,0,0),n.padding&&(i.lineWidth=2*n.padding,i.strokeText(n.text,0,0)),i.restore(),n.width=u,n.height=s,n.xoff=f,n.yoff=h,n.x1=u>>1,n.y1=s>>1,n.x0=-n.x1,n.y0=-n.y1,n.hasText=!0,f+=u}for(var b=i.getImageData(0,0,(IM<<5)/a,WM/a).data,w=[];--r>=0;)if((n=e[r]).hasText){for(o=(u=n.width)>>5,s=n.y1-n.y0,l=0;l<s*o;l++)w[l]=0;if(null==(f=n.xoff))return;h=n.yoff;var A=0,M=-1;for(c=0;c<s;c++){for(l=0;l<u;l++){var k=o*c+(l>>5),E=b[(h+c)*(IM<<5)+(f+l)<<2]?1<<31-l%32:0;w[k]|=E,A|=E}A?M=c:(n.y0++,s--,c--,h++)}n.y1=n.y0+M,n.sprite=w.slice(0,(n.y1-n.y0)*o)}}}function GM(t,n,e){e>>=5;for(var r,i=t.sprite,a=t.width>>5,u=t.x-(a<<4),o=127&u,s=32-o,l=t.y1-t.y0,c=(t.y+t.y0)*e+(u>>5),f=0;f<l;f++){r=0;for(var h=0;h<=a;h++)if((r<<s|(h<a?(r=i[f*a+h])>>>o:0))&n[c+h])return!0;c+=e}return!1}function VM(t,n){var e=t[0],r=t[1];n.x+n.x0<e.x&&(e.x=n.x+n.x0),n.y+n.y0<e.y&&(e.y=n.y+n.y0),n.x+n.x1>r.x&&(r.x=n.x+n.x1),n.y+n.y1>r.y&&(r.y=n.y+n.y1)}function XM(t){var n=t[0]/t[1];return function(t){return[n*(t*=.1)*Math.cos(t),t*Math.sin(t)]}}function ZM(t){return"function"==typeof t?t:function(){return t}}var JM={archimedean:XM,rectangular:function(t){var n=4*t[0]/t[1],e=0,r=0;return function(t){var i=t<0?-1:1;switch(Math.sqrt(1+4*i*t)-i&3){case 0:e+=n;break;case 1:r+=4;break;case 2:e-=n;break;default:r-=4}return[e,r]}}},QM=["x","y","font","fontSize","fontStyle","fontWeight","angle"],KM=["text","font","rotate","fontSize","fontStyle","fontWeight"];function tk(t){$r.call(this,HM(),t)}tk.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:QM}]},et(tk,$r).transform=function(n,e){!n.size||n.size[0]&&n.size[1]||i("Wordcloud size dimensions must be non-zero.");var r=n.modified();if(r||e.changed(e.ADD_REM)||KM.some(function(t){var r=n[t];return Y(r)&&e.modified(r.fields)})){var a,u=e.materialize(e.SOURCE).source,o=this.value,s=n.as||QM,l=n.fontSize||14;if(Y(l)?a=n.fontSizeRange:l=V(l),a){var c=l,f=Zg("sqrt")().domain(function(t,n){for(var e,r=1/0,i=-1/0,a=0,u=n.length;a<u;++a)(e=t(n[a]))<r&&(r=e),e>i&&(i=e);return[r,i]}(c,u)).range(a);l=function(t){return f(c(t))}}u.forEach(function(t){t[s[0]]=NaN,t[s[1]]=NaN,t[s[3]]=0});for(var h,d,p=o.words(u).text(n.text).size(n.size||[500,500]).padding(n.padding||1).spiral(n.spiral||"archimedean").rotate(n.rotate||0).font(n.font||"sans-serif").fontStyle(n.fontStyle||"normal").fontWeight(n.fontWeight||"normal").fontSize(l).random(t.random).layout(),g=o.size(),m=g[0]>>1,v=g[1]>>1,y=0,x=p.length;y<x;++y)(d=(h=p[y]).datum)[s[0]]=h.x+m,d[s[1]]=h.y+v,d[s[2]]=h.font,d[s[3]]=h.size,d[s[4]]=h.style,d[s[5]]=h.weight,d[s[6]]=h.rotate;return e.reflow(r).modifies(s)}};var nk=Object.freeze({wordcloud:tk});function ek(t){return new Uint32Array(t)}function rk(t,n,e){var r=(n<257?function(t){return new Uint8Array(t)}:n<65537?function(t){return new Uint16Array(t)}:ek)(t);return e&&r.set(e),r}function ik(t,n,e){var r=1<<n;return{one:r,zero:~r,range:e.slice(),bisect:t.bisect,index:t.index,size:t.size,onAdd:function(t,n){var e,i=this.bisect(this.range,t.value),a=t.index,u=i[0],o=i[1],s=a.length;for(e=0;e<u;++e)n[a[e]]|=r;for(e=o;e<s;++e)n[a[e]]|=r;return this}}}function ak(){var t=ek(0),n=[],e=0;return{insert:function(r,i,a){if(!i.length)return[];var u,o,s,l=e,c=i.length,f=Array(c),h=ek(c);for(s=0;s<c;++s)f[s]=r(i[s]),h[s]=s;if(f=function(t,n){return t.sort.call(n,function(n,e){var r=t[n],i=t[e];return r<i?-1:r>i?1:0}),function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r}(t,n)}(f,h),l)u=n,o=t,n=Array(l+c),t=ek(l+c),function(t,n,e,r,i,a,u,o,s){var l,c=0,f=0;for(l=0;c<r&&f<u;++l)n[c]<i[f]?(o[l]=n[c],s[l]=e[c++]):(o[l]=i[f],s[l]=a[f++]+t);for(;c<r;++c,++l)o[l]=n[c],s[l]=e[c];for(;f<u;++f,++l)o[l]=i[f],s[l]=a[f]+t}(a,u,o,l,f,h,c,n,t);else{if(a>0)for(s=0;s<c;++s)h[s]+=a;n=f,t=h}return e=l+c,{index:h,value:f}},remove:function(r,i){var a,u,o,s=e;for(u=0;!i[t[u]]&&u<s;++u);for(o=u;u<s;++u)i[a=t[u]]||(t[o]=a,n[o]=n[u],++o);e=s-r},bisect:function(t,r){var i;return r?i=r.length:(r=n,i=e),[oi(r,t[0],0,i),ui(r,t[1],0,i)]},reindex:function(n){for(var r=0,i=e;r<i;++r)t[r]=n[t[r]]},index:function(){return t},size:function(){return e}}}function uk(t){var n,e,r,i,a;$r.call(this,(n=8,e=[],r=ek(0),i=rk(0,n),a=rk(0,n),{data:function(){return e},seen:function(){return t=r,n=e.length,r=t.length>=n?t:((i=i||new t.constructor(n)).set(t),i);var t,n,i},add:function(t){for(var n,r=0,i=e.length,a=t.length;r<a;++r)(n=t[r])._index=i++,e.push(n)},remove:function(t,n){var r,u,o,s=e.length,l=Array(s-t),c=e;for(u=0;!n[u]&&u<s;++u)l[u]=e[u],c[u]=u;for(o=u;u<s;++u)r=e[u],n[u]?c[u]=-1:(c[u]=o,i[o]=i[u],a[o]=a[u],l[o]=r,r._index=o++),i[u]=0;return e=l,c},size:function(){return e.length},curr:function(){return i},prev:function(){return a},reset:function(t){a[t]=i[t]},all:function(){return n<257?255:n<65537?65535:4294967295},set:function(t,n){i[t]|=n},clear:function(t,n){i[t]&=~n},resize:function(t,e){(t>i.length||e>n)&&(n=Math.max(e,n),i=rk(t,n,i),a=rk(t,n))}}),t),this._indices=null,this._dims=null}uk.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}}]};var ok=et(uk,$r);function sk(t){$r.call(this,null,t)}ok.transform=function(t,n){return this._dims?t.modified("fields")||t.fields.some(function(t){return n.modified(t.fields)})?this.reinit(t,n):this.eval(t,n):this.init(t,n)},ok.init=function(t,n){for(var e,r,i=t.fields,a=t.query,u=this._indices={},o=this._dims=[],s=a.length,l=0;l<s;++l)r=u[e=i[l].fname]||(u[e]=ak()),o.push(ik(r,l,a[l]));return this.eval(t,n)},ok.reinit=function(t,n){var e,r,i,a,u,o,s,l,c,f=n.materialize().fork(),h=t.fields,d=t.query,p=this._indices,g=this._dims,m=this.value,v=m.curr(),y=m.prev(),x=m.all(),_=f.rem=f.add,b=f.mod,w=d.length,A={};if(y.set(v),n.rem.length&&(u=this.remove(t,n,f)),n.add.length&&m.add(n.add),n.mod.length)for(o={},s=0,l=(a=n.mod).length;s<l;++s)o[a[s]._index]=1;for(s=0;s<w;++s)c=h[s],(!g[s]||t.modified("fields",s)||n.modified(c.fields))&&((e=A[i=c.fname])||(p[i]=r=ak(),A[i]=e=r.insert(c,n.source,0)),g[s]=ik(r,s,d[s]).onAdd(e,v));for(s=0,l=m.data().length;s<l;++s)u[s]||(y[s]!==v[s]?_.push(s):o[s]&&v[s]!==x&&b.push(s));return m.mask=(1<<w)-1,f},ok.eval=function(t,n){var e=n.materialize().fork(),r=this._dims.length,i=0;return n.rem.length&&(this.remove(t,n,e),i|=(1<<r)-1),t.modified("query")&&!t.modified("fields")&&(i|=this.update(t,n,e)),n.add.length&&(this.insert(t,n,e),i|=(1<<r)-1),n.mod.length&&(this.modify(n,e),i|=(1<<r)-1),this.value.mask=i,e},ok.insert=function(t,n,e){var r,i,a,u=n.add,o=this.value,s=this._dims,l=this._indices,c=t.fields,f={},h=e.add,d=o.size(),p=d+u.length,g=s.length;o.resize(p,g),o.add(u);var m=o.curr(),v=o.prev(),y=o.all();for(r=0;r<g;++r)a=f[i=c[r].fname]||(f[i]=l[i].insert(c[r],u,d)),s[r].onAdd(a,m);for(;d<p;++d)v[d]=y,m[d]!==y&&h.push(d)},ok.modify=function(t,n){var e,r,i,a=n.mod,u=this.value,o=u.curr(),s=u.all(),l=t.mod;for(e=0,r=l.length;e<r;++e)o[i=l[e]._index]!==s&&a.push(i)},ok.remove=function(t,n,e){var r,i,a,u,o=this._indices,s=this.value,l=s.curr(),c=s.prev(),f=s.all(),h={},d=e.rem,p=n.rem;for(r=0,i=p.length;r<i;++r)h[a=p[r]._index]=1,c[a]=u=l[a],l[a]=f,u!==f&&d.push(a);for(a in o)o[a].remove(i,h);return this.reindex(n,i,h),h},ok.reindex=function(t,n,e){var r=this._indices,i=this.value;t.runAfter(function(){var t=i.remove(n,e);for(var a in r)r[a].reindex(t)})},ok.update=function(t,n,e){var r,i,a=this._dims,u=t.query,o=n.stamp,s=a.length,l=0;for(e.filters=0,i=0;i<s;++i)t.modified("query",i)&&(r=i,++l);if(1===l)l=a[r].one,this.incrementOne(a[r],u[r],e.add,e.rem);else for(i=0,l=0;i<s;++i)t.modified("query",i)&&(l|=a[i].one,this.incrementAll(a[i],u[i],o,e.add),e.rem=e.add);return l},ok.incrementAll=function(t,n,e,r){var i,a,u,o=this.value,s=o.seen(),l=o.curr(),c=o.prev(),f=t.index(),h=t.bisect(t.range),d=t.bisect(n),p=d[0],g=d[1],m=h[0],v=h[1],y=t.one;if(p<m)for(i=p,a=Math.min(m,g);i<a;++i)s[u=f[i]]!==e&&(c[u]=l[u],s[u]=e,r.push(u)),l[u]^=y;else if(p>m)for(i=m,a=Math.min(p,v);i<a;++i)s[u=f[i]]!==e&&(c[u]=l[u],s[u]=e,r.push(u)),l[u]^=y;if(g>v)for(i=Math.max(p,v),a=g;i<a;++i)s[u=f[i]]!==e&&(c[u]=l[u],s[u]=e,r.push(u)),l[u]^=y;else if(g<v)for(i=Math.max(m,g),a=v;i<a;++i)s[u=f[i]]!==e&&(c[u]=l[u],s[u]=e,r.push(u)),l[u]^=y;t.range=n.slice()},ok.incrementOne=function(t,n,e,r){var i,a,u,o=this.value.curr(),s=t.index(),l=t.bisect(t.range),c=t.bisect(n),f=c[0],h=c[1],d=l[0],p=l[1],g=t.one;if(f<d)for(i=f,a=Math.min(d,h);i<a;++i)o[u=s[i]]^=g,e.push(u);else if(f>d)for(i=d,a=Math.min(f,p);i<a;++i)o[u=s[i]]^=g,r.push(u);if(h>p)for(i=Math.max(f,p),a=h;i<a;++i)o[u=s[i]]^=g,e.push(u);else if(h<p)for(i=Math.max(d,h),a=p;i<a;++i)o[u=s[i]]^=g,r.push(u);t.range=n.slice()},sk.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."}]},et(sk,$r).transform=function(t,n){var e=~(t.ignore||0),r=t.filter,i=r.mask;if(0==(i&e))return n.StopPropagation;var a=n.fork(n.ALL),u=r.data(),o=r.curr(),s=r.prev(),l=function(t){return o[t]&e?null:u[t]};return a.filter(a.MOD,l),i&i-1?(a.filter(a.ADD,function(t){var n=o[t]&e;return!n&&n^s[t]&e?u[t]:null}),a.filter(a.REM,function(t){var n=o[t]&e;return n&&!(n^n^s[t]&e)?u[t]:null})):(a.filter(a.ADD,l),a.filter(a.REM,function(t){return(o[t]&e)===i?u[t]:null})),a.filter(a.SOURCE,function(t){return l(t._index)})};var lk=Object.freeze({crossfilter:uk,resolvefilter:sk}),ck="default";function fk(t){var n=t._signals.cursor;n||(t._signals.cursor=n=t.add({user:ck,item:null})),t.on(t.events("view","mousemove"),n,function(t,e){var r=n.value,i=r?s(r)?r:r.user:ck,a=e.item&&e.item.cursor||null;return r&&i===r.user&&a==r.item?r:{user:i,item:a}}),t.add(null,function(t){var n,e=t.cursor,r=this.value;return s(e)||(r=e.item,e=e.user),n=e&&e!==ck?e:r||e,"undefined"!=typeof document&&document.body&&(document.body.style.cursor=n),r},{cursor:n})}function hk(t,n){var e=t._runtime.data;return e.hasOwnProperty(n)||i("Unrecognized data set: "+n),e[n]}function dk(t,n){Ot(n)||i("Second argument to changes must be a changeset.");var e=hk(this,t);return e.modified=!0,this.pulse(e.input,n)}function pk(t){var n=t.padding();return Math.max(0,t._viewWidth+n.left+n.right)}function gk(t){var n=t.padding();return Math.max(0,t._viewHeight+n.top+n.bottom)}function mk(t){var n=t.padding(),e=t._origin;return[n.left+e[0],n.top+e[1]]}function vk(t,n,e){var r,i,a=t._renderer,u=a&&a.canvas();return u&&(i=mk(t),(r=Bc(n.changedTouches?n.changedTouches[0]:n,u))[0]-=i[0],r[1]-=i[1]),n.dataflow=t,n.item=e,n.vega=function(t,n,e){var r=n?"group"===n.mark.marktype?n:n.mark.group:null;function i(t){var e,i=r;if(t)for(e=n;e;e=e.mark.group)if(e.mark.name===t){i=e;break}return i&&i.mark&&i.mark.interactive?i:{}}function a(t){if(!t)return e;s(t)&&(t=i(t));for(var n=e.slice();t;)n[0]-=t.x||0,n[1]-=t.y||0,t=t.mark&&t.mark.group;return n}return{view:V(t),item:V(n||{}),group:i,xy:a,x:function(t){return a(t)[0]},y:function(t){return a(t)[1]}}}(t,e,r),n}var yk="view",xk="timer",_k="window",bk={trap:!1};function wk(t){return t.item}function Ak(t){var n=t.item.mark.source;return n.source||n}function Mk(t){return function(n,e){return e.vega.view().changeset().encode(e.item,t)}}function kk(t,n,e){var r=document.createElement(t);for(var i in n)r.setAttribute(i,n[i]);return null!=e&&(r.textContent=e),r}var Ek="vega-bind",Ck="vega-bind-name",Dk="vega-bind-radio",Fk="vega-option-";function Sk(t,n,e){if(n){var r=e.param,i=e.state;return i||(i=e.state={elements:null,active:!1,set:null,update:function(n){n!==t.signal(r.signal)&&t.runAsync(null,function(){i.source=!0,t.signal(r.signal,n)})}},r.debounce&&(i.update=X(r.debounce,i.update))),function(t,n,e,r){var i=kk("div",{class:Ek});i.appendChild(kk("span",{class:Ck},e.name||e.signal)),n.appendChild(i);var a=Bk;switch(e.input){case"checkbox":a=Ok;break;case"select":a=zk;break;case"radio":a=Nk;break;case"range":a=Tk}a(t,i,e,r)}(i,n,r,t.signal(r.signal)),i.active||(t.on(t._signals[r.signal],null,function(){i.source?i.source=!1:i.set(t.signal(r.signal))}),i.active=!0),i}}function Bk(t,n,e,r){var i=kk("input");for(var a in e)"signal"!==a&&"element"!==a&&i.setAttribute("input"===a?"type":a,e[a]);i.setAttribute("name",e.signal),i.value=r,n.appendChild(i),i.addEventListener("input",function(){t.update(i.value)}),t.elements=[i],t.set=function(t){i.value=t}}function Ok(t,n,e,r){var i={type:"checkbox",name:e.signal};r&&(i.checked=!0);var a=kk("input",i);n.appendChild(a),a.addEventListener("change",function(){t.update(a.checked)}),t.elements=[a],t.set=function(t){a.checked=!!t||null}}function zk(t,n,e,r){var i=kk("select",{name:e.signal});e.options.forEach(function(t){var n={value:t};Rk(t,r)&&(n.selected=!0),i.appendChild(kk("option",n,t+""))}),n.appendChild(i),i.addEventListener("change",function(){t.update(e.options[i.selectedIndex])}),t.elements=[i],t.set=function(t){for(var n=0,r=e.options.length;n<r;++n)if(Rk(e.options[n],t))return void(i.selectedIndex=n)}}function Nk(t,n,e,r){var i=kk("span",{class:Dk});n.appendChild(i),t.elements=e.options.map(function(n){var a=Fk+e.signal+"-"+n,u={id:a,type:"radio",name:e.signal,value:n};Rk(n,r)&&(u.checked=!0);var o=kk("input",u);return o.addEventListener("change",function(){t.update(n)}),i.appendChild(o),i.appendChild(kk("label",{for:a},n+"")),o}),t.set=function(n){for(var e=t.elements,r=0,i=e.length;r<i;++r)Rk(e[r].value,n)&&(e[r].checked=!0)}}function Tk(t,n,e,r){r=void 0!==r?r:(+e.max+ +e.min)/2;var i=e.min||Math.min(0,+r)||0,a=e.max||Math.max(100,+r)||100,u=e.step||gi(i,a,100),o=kk("input",{type:"range",name:e.signal,min:i,max:a,step:u});o.value=r;var s=kk("label",{},+r);function l(){s.textContent=o.value,t.update(+o.value)}n.appendChild(o),n.appendChild(s),o.addEventListener("input",l),o.addEventListener("change",l),t.elements=[o],t.set=function(t){o.value=t,s.textContent=t}}function Rk(t,n){return t===n||t+""==n+""}function Pk(t,n,e,r,i,a){return(n=n||new r(t.loader())).initialize(e,pk(t),gk(t),mk(t),i,a).background(t._background)}function Lk(t,n){return n?function(){try{n.apply(this,arguments)}catch(n){t.error(n)}}:null}function qk(t,n){if("string"==typeof n){if("undefined"==typeof document)return t.error("DOM document instance not found."),null;if(!(n=document.querySelector(n)))return t.error("Signal bind element not found: "+n),null}if(n)try{n.innerHTML=""}catch(e){n=null,t.error(e)}return n}async function Uk(t,n,e,r){const a=Mf(n),u=a&&a.headless;return u||i("Unrecognized renderer type: "+n),await t.runAsync(),Pk(t,null,null,u,e,r).renderAsync(t._scenegraph.root)}var jk,$k,Ik,Wk,Hk,Yk="RawCode",Gk="Literal",Vk="Property",Xk="Identifier",Zk="ArrayExpression",Jk="BinaryExpression",Qk="CallExpression",Kk="ConditionalExpression",tE="LogicalExpression",nE="MemberExpression",eE="ObjectExpression",rE="UnaryExpression";function iE(t){this.type=t}iE.prototype.visit=function(t){var n,e,r;if(t(this))return 1;for(e=0,r=(n=function(t){switch(t.type){case Zk:return t.elements;case Jk:case tE:return[t.left,t.right];case Qk:var n=t.arguments.slice();return n.unshift(t.callee),n;case Kk:return[t.test,t.consequent,t.alternate];case nE:return[t.object,t.property];case eE:return t.properties;case Vk:return[t.key,t.value];case rE:return[t.argument];case Xk:case Gk:case Yk:default:return[]}}(this)).length;e<r;++e)if(n[e].visit(t))return 1};var aE=1,uE=2,oE=3,sE=4,lE=5,cE=6,fE=7,hE=8;(jk={})[aE]="Boolean",jk[uE]="<end>",jk[oE]="Identifier",jk[sE]="Keyword",jk[lE]="Null",jk[cE]="Numeric",jk[fE]="Punctuator",jk[hE]="String",jk[9]="RegularExpression";var dE="ArrayExpression",pE="BinaryExpression",gE="CallExpression",mE="ConditionalExpression",vE="Identifier",yE="Literal",xE="LogicalExpression",_E="MemberExpression",bE="ObjectExpression",wE="Property",AE="UnaryExpression",ME="Unexpected token %0",kE="Unexpected number",EE="Unexpected string",CE="Unexpected identifier",DE="Unexpected reserved word",FE="Unexpected end of input",SE="Invalid regular expression",BE="Invalid regular expression: missing /",OE="Octal literals are not allowed in strict mode.",zE="Duplicate data property in object literal not allowed in strict mode",NE="ILLEGAL",TE="Disabled.",RE=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]"),PE=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 LE(t,n){if(!t)throw new Error("ASSERT: "+n)}function qE(t){return t>=48&&t<=57}function UE(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function jE(t){return"01234567".indexOf(t)>=0}function $E(t){return 32===t||9===t||11===t||12===t||160===t||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function IE(t){return 10===t||13===t||8232===t||8233===t}function WE(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||92===t||t>=128&&RE.test(String.fromCharCode(t))}function HE(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||92===t||t>=128&&PE.test(String.fromCharCode(t))}var YE={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 GE(){for(var t;Ik<Wk&&($E(t=$k.charCodeAt(Ik))||IE(t));)++Ik}function VE(t){var n,e,r,i=0;for(e="u"===t?4:2,n=0;n<e;++n)Ik<Wk&&UE($k[Ik])?(r=$k[Ik++],i=16*i+"0123456789abcdef".indexOf(r.toLowerCase())):cC({},ME,NE);return String.fromCharCode(i)}function XE(){var t,n,e,r;for(n=0,"}"===(t=$k[Ik])&&cC({},ME,NE);Ik<Wk&&UE(t=$k[Ik++]);)n=16*n+"0123456789abcdef".indexOf(t.toLowerCase());return(n>1114111||"}"!==t)&&cC({},ME,NE),n<=65535?String.fromCharCode(n):(e=55296+(n-65536>>10),r=56320+(n-65536&1023),String.fromCharCode(e,r))}function ZE(){var t,n;for(t=$k.charCodeAt(Ik++),n=String.fromCharCode(t),92===t&&(117!==$k.charCodeAt(Ik)&&cC({},ME,NE),++Ik,(t=VE("u"))&&"\\"!==t&&WE(t.charCodeAt(0))||cC({},ME,NE),n=t);Ik<Wk&&HE(t=$k.charCodeAt(Ik));)++Ik,n+=String.fromCharCode(t),92===t&&(n=n.substr(0,n.length-1),117!==$k.charCodeAt(Ik)&&cC({},ME,NE),++Ik,(t=VE("u"))&&"\\"!==t&&HE(t.charCodeAt(0))||cC({},ME,NE),n+=t);return n}function JE(){var t,n;return t=Ik,{type:1===(n=92===$k.charCodeAt(Ik)?ZE():function(){var t,n;for(t=Ik++;Ik<Wk;){if(92===(n=$k.charCodeAt(Ik)))return Ik=t,ZE();if(!HE(n))break;++Ik}return $k.slice(t,Ik)}()).length?oE:YE.hasOwnProperty(n)?sE:"null"===n?lE:"true"===n||"false"===n?aE:oE,value:n,start:t,end:Ik}}function QE(){var t,n,e,r,i=Ik,a=$k.charCodeAt(Ik),u=$k[Ik];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++Ik,{type:fE,value:String.fromCharCode(a),start:i,end:Ik};default:if(61===(t=$k.charCodeAt(Ik+1)))switch(a){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return Ik+=2,{type:fE,value:String.fromCharCode(a)+String.fromCharCode(t),start:i,end:Ik};case 33:case 61:return Ik+=2,61===$k.charCodeAt(Ik)&&++Ik,{type:fE,value:$k.slice(i,Ik),start:i,end:Ik}}}return">>>="===(r=$k.substr(Ik,4))?{type:fE,value:r,start:i,end:Ik+=4}:">>>"===(e=r.substr(0,3))||"<<="===e||">>="===e?{type:fE,value:e,start:i,end:Ik+=3}:u===(n=e.substr(0,2))[1]&&"+-<>&|".indexOf(u)>=0||"=>"===n?{type:fE,value:n,start:i,end:Ik+=2}:"<>=!+-*%&|^/".indexOf(u)>=0?{type:fE,value:u,start:i,end:++Ik}:void cC({},ME,NE)}function KE(){var t,n,e;if(LE(qE((e=$k[Ik]).charCodeAt(0))||"."===e,"Numeric literal must start with a decimal digit or a decimal point"),n=Ik,t="","."!==e){if(t=$k[Ik++],e=$k[Ik],"0"===t){if("x"===e||"X"===e)return++Ik,function(t){for(var n="";Ik<Wk&&UE($k[Ik]);)n+=$k[Ik++];return 0===n.length&&cC({},ME,NE),WE($k.charCodeAt(Ik))&&cC({},ME,NE),{type:cE,value:parseInt("0x"+n,16),start:t,end:Ik}}(n);if(jE(e))return function(t){for(var n="0"+$k[Ik++];Ik<Wk&&jE($k[Ik]);)n+=$k[Ik++];return(WE($k.charCodeAt(Ik))||qE($k.charCodeAt(Ik)))&&cC({},ME,NE),{type:cE,value:parseInt(n,8),octal:!0,start:t,end:Ik}}(n);e&&qE(e.charCodeAt(0))&&cC({},ME,NE)}for(;qE($k.charCodeAt(Ik));)t+=$k[Ik++];e=$k[Ik]}if("."===e){for(t+=$k[Ik++];qE($k.charCodeAt(Ik));)t+=$k[Ik++];e=$k[Ik]}if("e"===e||"E"===e)if(t+=$k[Ik++],"+"!==(e=$k[Ik])&&"-"!==e||(t+=$k[Ik++]),qE($k.charCodeAt(Ik)))for(;qE($k.charCodeAt(Ik));)t+=$k[Ik++];else cC({},ME,NE);return WE($k.charCodeAt(Ik))&&cC({},ME,NE),{type:cE,value:parseFloat(t),start:n,end:Ik}}function tC(){var t,n,e,r;return Hk=null,GE(),t=Ik,n=function(){var t,n,e,r;for(LE("/"===(t=$k[Ik]),"Regular expression literal must start with a slash"),n=$k[Ik++],e=!1,r=!1;Ik<Wk;)if(n+=t=$k[Ik++],"\\"===t)IE((t=$k[Ik++]).charCodeAt(0))&&cC({},BE),n+=t;else if(IE(t.charCodeAt(0)))cC({},BE);else if(e)"]"===t&&(e=!1);else{if("/"===t){r=!0;break}"["===t&&(e=!0)}return r||cC({},BE),{value:n.substr(1,n.length-2),literal:n}}(),e=function(){var t,n,e;for(n="",e="";Ik<Wk&&HE((t=$k[Ik]).charCodeAt(0));)++Ik,"\\"===t&&Ik<Wk?cC({},ME,NE):(e+=t,n+=t);return e.search(/[^gimuy]/g)>=0&&cC({},SE,e),{value:e,literal:n}}(),r=function(t,n){var e=t;n.indexOf("u")>=0&&(e=e.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(t,n){if(parseInt(n,16)<=1114111)return"x";cC({},SE)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{return new RegExp(t,n)}catch(t){return null}}(n.value,e.value),{literal:n.literal+e.literal,value:r,regex:{pattern:n.value,flags:e.value},start:t,end:Ik}}function nC(){var t;return GE(),Ik>=Wk?{type:uE,start:Ik,end:Ik}:WE(t=$k.charCodeAt(Ik))?JE():40===t||41===t||59===t?QE():39===t||34===t?function(){var t,n,e,r,i="",a=!1;for(LE("'"===(t=$k[Ik])||'"'===t,"String literal must starts with a quote"),n=Ik,++Ik;Ik<Wk;){if((e=$k[Ik++])===t){t="";break}if("\\"===e)if((e=$k[Ik++])&&IE(e.charCodeAt(0)))"\r"===e&&"\n"===$k[Ik]&&++Ik;else switch(e){case"u":case"x":"{"===$k[Ik]?(++Ik,i+=XE()):i+=VE(e);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:jE(e)?(0!==(r="01234567".indexOf(e))&&(a=!0),Ik<Wk&&jE($k[Ik])&&(a=!0,r=8*r+"01234567".indexOf($k[Ik++]),"0123".indexOf(e)>=0&&Ik<Wk&&jE($k[Ik])&&(r=8*r+"01234567".indexOf($k[Ik++]))),i+=String.fromCharCode(r)):i+=e}else{if(IE(e.charCodeAt(0)))break;i+=e}}return""!==t&&cC({},ME,NE),{type:hE,value:i,octal:a,start:n,end:Ik}}():46===t?qE($k.charCodeAt(Ik+1))?KE():QE():qE(t)?KE():QE()}function eC(){var t;return Ik=(t=Hk).end,Hk=nC(),Ik=t.end,t}function rC(){var t;t=Ik,Hk=nC(),Ik=t}function iC(t,n,e){var r=new iE("||"===t||"&&"===t?xE:pE);return r.operator=t,r.left=n,r.right=e,r}function aC(t,n){var e=new iE(gE);return e.callee=t,e.arguments=n,e}function uC(t){var n=new iE(vE);return n.name=t,n}function oC(t){var n=new iE(yE);return n.value=t.value,n.raw=$k.slice(t.start,t.end),t.regex&&("//"===n.raw&&(n.raw="/(?:)/"),n.regex=t.regex),n}function sC(t,n,e){var r=new iE(_E);return r.computed="["===t,r.object=n,r.property=e,r.computed||(e.member=!0),r}function lC(t,n,e){var r=new iE(wE);return r.key=n,r.value=e,r.kind=t,r}function cC(t,n){var e,r=Array.prototype.slice.call(arguments,2),i=n.replace(/%(\d)/g,function(t,n){return LE(n<r.length,"Message reference must be in range"),r[n]});throw(e=new Error(i)).index=Ik,e.description=i,e}function fC(t){t.type===uE&&cC(t,FE),t.type===cE&&cC(t,kE),t.type===hE&&cC(t,EE),t.type===oE&&cC(t,CE),t.type===sE&&cC(t,DE),cC(t,ME,t.value)}function hC(t){var n=eC();n.type===fE&&n.value===t||fC(n)}function dC(t){return Hk.type===fE&&Hk.value===t}function pC(t){return Hk.type===sE&&Hk.value===t}function gC(){var t=[];for(Ik=Hk.start,hC("[");!dC("]");)dC(",")?(eC(),t.push(null)):(t.push(CC()),dC("]")||hC(","));return eC(),function(t){var n=new iE(dE);return n.elements=t,n}(t)}function mC(){var t;return Ik=Hk.start,(t=eC()).type===hE||t.type===cE?(t.octal&&cC(t,OE),oC(t)):uC(t.value)}function vC(){var t,n,e;return Ik=Hk.start,(t=Hk).type===oE?(e=mC(),hC(":"),lC("init",e,CC())):t.type!==uE&&t.type!==fE?(n=mC(),hC(":"),lC("init",n,CC())):void fC(t)}function yC(){var t,n,e=[],r={},i=String;for(Ik=Hk.start,hC("{");!dC("}");)n="$"+((t=vC()).key.type===vE?t.key.name:i(t.key.value)),Object.prototype.hasOwnProperty.call(r,n)?cC({},zE):r[n]=!0,e.push(t),dC("}")||hC(",");return hC("}"),function(t){var n=new iE(bE);return n.properties=t,n}(e)}var xC={if:1,this:1};function _C(){var t,n,e;if(dC("("))return function(){var t;return hC("("),t=DC(),hC(")"),t}();if(dC("["))return gC();if(dC("{"))return yC();if(t=Hk.type,Ik=Hk.start,t===oE||xC[Hk.value])e=uC(eC().value);else if(t===hE||t===cE)Hk.octal&&cC(Hk,OE),e=oC(eC());else{if(t===sE)throw new Error(TE);t===aE?((n=eC()).value="true"===n.value,e=oC(n)):t===lE?((n=eC()).value=null,e=oC(n)):dC("/")||dC("/=")?(e=oC(tC()),rC()):fC(eC())}return e}function bC(){var t=[];if(hC("("),!dC(")"))for(;Ik<Wk&&(t.push(CC()),!dC(")"));)hC(",");return hC(")"),t}function wC(){var t;return Ik=Hk.start,function(t){return t.type===oE||t.type===sE||t.type===aE||t.type===lE}(t=eC())||fC(t),uC(t.value)}function AC(){var t;return hC("["),t=DC(),hC("]"),t}function MC(){var t=function(){var t;for(t=_C();;)if(dC("."))hC("."),t=sC(".",t,wC());else if(dC("("))t=aC(t,bC());else{if(!dC("["))break;t=sC("[",t,AC())}return t}();if(Hk.type===fE&&(dC("++")||dC("--")))throw new Error(TE);return t}function kC(){var t,n,e,r,i;if(Hk.type!==fE&&Hk.type!==sE)n=MC();else{if(dC("++")||dC("--"))throw new Error(TE);if(dC("+")||dC("-")||dC("~")||dC("!"))t=eC(),n=kC(),e=t.value,r=n,(i=new iE(AE)).operator=e,i.argument=r,i.prefix=!0,n=i;else{if(pC("delete")||pC("void")||pC("typeof"))throw new Error(TE);n=MC()}}return n}function EC(t){var n=0;if(t.type!==fE&&t.type!==sE)return 0;switch(t.value){case"||":n=1;break;case"&&":n=2;break;case"|":n=3;break;case"^":n=4;break;case"&":n=5;break;case"==":case"!=":case"===":case"!==":n=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":n=7;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11}return n}function CC(){var t,n;return t=function(){var t,n,e,r,i,a,u,o,s,l;if(t=Hk,s=kC(),0===(i=EC(r=Hk)))return s;for(r.prec=i,eC(),n=[t,Hk],a=[s,r,u=kC()];(i=EC(Hk))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)u=a.pop(),o=a.pop().value,s=a.pop(),n.pop(),e=iC(o,s,u),a.push(e);(r=eC()).prec=i,a.push(r),n.push(Hk),e=kC(),a.push(e)}for(e=a[l=a.length-1],n.pop();l>1;)n.pop(),e=iC(a[l-1].value,a[l-2],e),l-=2;return e}(),dC("?")&&(eC(),n=CC(),hC(":"),t=function(t,n,e){var r=new iE(mE);return r.test=t,r.consequent=n,r.alternate=e,r}(t,n,CC())),t}function DC(){var t=CC();if(dC(","))throw new Error(TE);return t}var FC={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 SC(t){function n(n,e,r){return function(i){return function(n,e,r,i){var a=t(e[0]);return r&&(a=r+"("+a+")",0===r.lastIndexOf("new ",0)&&(a="("+a+")")),a+"."+n+(i<0?"":0===i?"()":"("+e.slice(1).map(t).join(",")+")")}(n,i,e,r)}}var e="new Date";return{isNaN:"isNaN",isFinite:"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",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(n){n.length<3&&i("Missing arguments to clamp function."),n.length>3&&i("Too many arguments to clamp function.");var e=n.map(t);return"Math.max("+e[1]+", Math.min("+e[2]+","+e[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:e,date:n("getDate",e,0),day:n("getDay",e,0),year:n("getFullYear",e,0),month:n("getMonth",e,0),hours:n("getHours",e,0),minutes:n("getMinutes",e,0),seconds:n("getSeconds",e,0),milliseconds:n("getMilliseconds",e,0),time:n("getTime",e,0),timezoneoffset:n("getTimezoneOffset",e,0),utcdate:n("getUTCDate",e,0),utcday:n("getUTCDay",e,0),utcyear:n("getUTCFullYear",e,0),utcmonth:n("getUTCMonth",e,0),utchours:n("getUTCHours",e,0),utcminutes:n("getUTCMinutes",e,0),utcseconds:n("getUTCSeconds",e,0),utcmilliseconds:n("getUTCMilliseconds",e,0),length:n("length",null,-1),join:n("join",null),indexof:n("indexOf",null),lastindexof:n("lastIndexOf",null),slice:n("slice",null),reverse:function(n){return"("+t(n[0])+").slice().reverse()"},parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase","String",0),lower:n("toLowerCase","String",0),substring:n("substring","String"),split:n("split","String"),replace:n("replace","String"),trim:n("trim","String",0),regexp:"RegExp",test:n("test","RegExp"),if:function(n){n.length<3&&i("Missing arguments to if function."),n.length>3&&i("Too many arguments to if function.");var e=n.map(t);return"("+e[0]+"?"+e[1]+":"+e[2]+")"}}}const BC="intersect",OC="union";var zC="E",NC="R",TC="R-E",RC="R-LE",PC="R-RE",LC="index:unit";function qC(t,n){for(var e,r,i=n.fields,a=n.values,o=i.length,s=0;s<o;++s)if((r=i[s]).getter=c.getter||c(r.field),at(e=r.getter(t))&&(e=E(e)),at(a[s])&&(a[s]=E(a[s])),at(a[s][0])&&(a[s]=a[s].map(E)),r.type===zC){if(u(a[s])?a[s].indexOf(e)<0:e!==a[s])return!1}else if(r.type===NC){if(!rt(e,a[s]))return!1}else if(r.type===PC){if(!rt(e,a[s],!0,!1))return!1}else if(r.type===TC){if(!rt(e,a[s],!1,!1))return!1}else if(r.type===RC&&!rt(e,a[s],!1,!0))return!1;return!0}var UC={E_union:function(t,n){if(!t.length)return n;for(var e=0,r=n.length;e<r;++e)t.indexOf(n[e])<0&&t.push(n[e]);return t},E_intersect:function(t,n){return t.length?t.filter(function(t){return n.indexOf(t)>=0}):n},R_union:function(t,n){var e=E(n[0]),r=E(n[1]);return e>r&&(e=n[1],r=n[0]),t.length?(t[0]>e&&(t[0]=e),t[1]<r&&(t[1]=r),t):[e,r]},R_intersect:function(t,n){var e=E(n[0]),r=E(n[1]);return e>r&&(e=n[1],r=n[0]),t.length?r<t[0]||t[1]<e?[]:(t[0]<e&&(t[0]=e),t[1]>r&&(t[1]=r),t):[e,r]}};const jC=":",$C="@";function IC(t,n,e,r){n[0].type!==Gk&&i("First argument to selection functions must be a string literal.");const a=n[0].value,u=n.length>=2&&k(n).value,o=$C+"unit",s=jC+a;u!==BC||r.hasOwnProperty(o)||(r[o]=e.getData(a).indataRef(e,"unit")),r.hasOwnProperty(s)||(r[s]=e.getData(a).tuplesRef())}function WC(t){const n=this.context.data[t];return n?n.values.value:[]}const HC={};function YC(t,n,e){let r=t+":"+e,i=HC[r];return i&&i[0]===n||(HC[r]=i=[n,n(e)]),i[1]}function GC(t,n){return YC("timeFormat",ue,n)(t)}var VC=new Date(2e3,0,1);function XC(t,n,e){return VC.setMonth(t),VC.setDate(n),GC(VC,e)}function ZC(t,n){let e;return Y(t)?t:s(t)?(e=n.scales[t])&&e.value:void 0}function JC(t,n){return function(e,r,i){if(e){const n=ZC(e,(i||this).context);return n&&n.path[t](r)}return n(r)}}const QC=JC("area",function(t){return sy.reset(),ny(t,ly),2*sy}),KC=JC("bounds",function(t){var n,e,r,i,a,u,o;if(My=Ay=-(by=wy=1/0),Fy=[],ny(t,Vy),e=Fy.length){for(Fy.sort(rx),n=1,a=[r=Fy[0]];n<e;++n)ix(r,(i=Fy[n])[0])||ix(r,i[1])?(ex(r[0],i[1])>ex(r[0],r[1])&&(r[1]=i[1]),ex(i[0],r[1])>ex(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(u=-1/0,n=0,r=a[e=a.length-1];n<=e;r=i,++n)i=a[n],(o=ex(r[1],i[0]))>u&&(u=o,by=i[0],Ay=r[1])}return Fy=Sy=null,by===1/0||wy===1/0?[[NaN,NaN],[NaN,NaN]]:[[by,wy],[Ay,My]]}),tD=JC("centroid",function(t){By=Oy=zy=Ny=Ty=Ry=Py=Ly=qy=Uy=jy=0,ny(t,ax);var n=qy,e=Uy,r=jy,i=n*n+e*e+r*r;return i<Dv&&(n=Ry,e=Py,r=Ly,Oy<Cv&&(n=zy,e=Ny,r=Ty),(i=n*n+e*e+r*r)<Dv)?[NaN,NaN]:[Pv(e,n)*zv,Vv(r/Hv(i))*zv]});function nD(t,n,e){try{t[n].apply(t,["EXPRESSION"].concat([].slice.call(e)))}catch(n){t.warn(n)}return e[e.length-1]}function eD(t,n){return t===n||t!=t&&n!=n||!(!u(t)||!u(n)||t.length!==n.length)&&function(t,n){for(let e=0,r=t.length;e<r;++e)if(!eD(t[e],n[e]))return!1;return!0}(t,n)}function rD(t){return function(n){for(let e in t)if(!eD(n[e],t[e]))return!1;return!0}}const iD={};function aD(t){return t.data}function uD(t,n){const e=WC.call(n,t);return e.root&&e.root.lookup||iD}const oD="undefined"!=typeof window&&window||null;const sD=":",lD="@",cD="%",fD="$";function hD(t,n,e,r){n[0].type!==Gk&&i("First argument to data functions must be a string literal.");const a=n[0].value,u=sD+a;r.hasOwnProperty(u)||(r[u]=e.getData(a).tuplesRef())}function dD(t,n,e,r){if(n[0].type===Gk)pD(e,r,n[0].value);else if(n[0].type===Xk)for(t in e.scales)pD(e,r,t)}function pD(t,n,e){const r=cD+e;if(!n.hasOwnProperty(r))try{n[r]=t.scaleRef(e)}catch(t){}}const gD={random:function(){return t.random()},isArray:u,isBoolean:it,isDate:at,isDefined:function(t){return void 0!==t},isNumber:ut,isObject:o,isRegExp:ot,isString:s,isTuple:kt,isValid:function(t){return null!=t&&t==t},toBoolean:pt,toDate:mt,toNumber:E,toString:vt,flush:nt,lerp:lt,merge:function(){var t=[].slice.call(arguments);return t.unshift({}),Z.apply(null,t)},pad:ht,peek:k,span:dt,inrange:rt,truncate:xt,rgb:pd,lab:Bd,hcl:Pd,hsl:yd,sequence:li,format:function(t,n){return YC("format",sg,n)(t)},utcFormat:function(t,n){return YC("utcFormat",se,n)(t)},utcParse:function(t,n){return YC("utcParse",le,n)(t)},timeFormat:GC,timeParse:function(t,n){return YC("timeParse",oe,n)(t)},monthFormat:function(t){return XC(t,1,"%B")},monthAbbrevFormat:function(t){return XC(t,1,"%b")},dayFormat:function(t){return XC(0,2+t,"%A")},dayAbbrevFormat:function(t){return XC(0,2+t,"%a")},quarter:$,utcquarter:I,warn:function(){return nD(this.context.dataflow,"warn",arguments)},info:function(){return nD(this.context.dataflow,"info",arguments)},debug:function(){return nD(this.context.dataflow,"debug",arguments)},extent:J,inScope:function(t){let n=this.context.group,e=!1;if(n)for(;t;){if(t===n){e=!0;break}t=t.mark.group}return e},intersect:function(t,n,e){if(!t)return[];const[r,i]=t,a=(new Hu).set(r[0],r[1],i[0],i[1]);return kf(e||this.context.dataflow.scenegraph().root,a,function(t){let n=null;if(t){const e=W(t.marktype),r=W(t.markname);n=(t=>(!e.length||e.some(n=>t.marktype===n))&&(!r.length||r.some(n=>t.name===n)))}return n}(n))},clampRange:H,pinchDistance:function(t){const n=t.touches,e=n[0].clientX-n[1].clientX,r=n[0].clientY-n[1].clientY;return Math.sqrt(e*e+r*r)},pinchAngle:function(t){const n=t.touches;return Math.atan2(n[0].clientY-n[1].clientY,n[0].clientX-n[1].clientX)},screen:function(){return oD?oD.screen:{}},containerSize:function(){const t=this.context.dataflow,n=t.container&&t.container();return n?[n.clientWidth,n.clientHeight]:[void 0,void 0]},windowSize:function(){return oD?[oD.innerWidth,oD.innerHeight]:[void 0,void 0]},bandspace:function(t,n,e){return yh(t||0,n||0,e||0)},setdata:function(t,n){const e=this.context.dataflow,r=this.context.data[t].input;return e.pulse(r,e.changeset().remove(m).insert(n)),1},pathShape:function(t){let n=null;return function(e){return e?Os(e,n=n||bs(t)):t}},panLinear:z,panLog:N,panPow:T,panSymlog:R,zoomLinear:L,zoomLog:q,zoomPow:U,zoomSymlog:j,encode:function(t,n,e){if(t){const e=this.context.dataflow,r=t.mark.source;e.pulse(r,e.changeset().encode(t,n))}return void 0!==e?e:t},modify:function(t,n,e,r,i,a){let o,s,l=this.context.dataflow,c=this.context.data[t],f=c.input,h=c.changes,d=l.stamp();if(!1===l._trigger||!(f.value.length||n||r))return 0;if((!h||h.stamp<d)&&(c.changes=h=l.changeset(),h.stamp=d,l.runAfter(function(){c.modified=!0,l.pulse(f,h).run()},!0,1)),e&&(o=!0===e?m:u(e)||kt(e)?e:rD(e),h.remove(o)),n&&h.insert(n),r&&(o=rD(r),f.value.some(o)?h.remove(o):h.insert(r)),i)for(s in a)h.modify(i,s,a[s]);return 1}},mD=["view","item","group","xy","x","y"],vD="event.vega.",yD="this.",xD={};function _D(t,n,e){return 1===arguments.length?gD[t]:(gD[t]=n,e&&(xD[t]=e),wD&&(wD.functions[t]=yD+t),this)}_D("bandwidth",function(t,n){const e=ZC(t,(n||this).context);return e&&e.bandwidth?e.bandwidth():0},dD),_D("copy",function(t,n){const e=ZC(t,(n||this).context);return e?e.copy():void 0},dD),_D("domain",function(t,n){const e=ZC(t,(n||this).context);return e?e.domain():[]},dD),_D("range",function(t,n){const e=ZC(t,(n||this).context);return e&&e.range?e.range():[]},dD),_D("invert",function(t,n,e){const r=ZC(t,(e||this).context);return r?u(n)?(r.invertRange||r.invert)(n):(r.invert||r.invertExtent)(n):void 0},dD),_D("scale",function(t,n,e){const r=ZC(t,(e||this).context);return r&&void 0!==n?r(n):void 0},dD),_D("gradient",function(t,n,e,r,i){t=ZC(t,(i||this).context);const a=Qu(n,e);let u=t.domain(),o=u[0],s=k(u),l=d;return s-o?l=rm(t,o,s):t=(t.interpolator?Zg("sequential")().interpolator(t.interpolator()):Zg("linear")().interpolate(t.interpolate()).range(t.range())).domain([o=0,s=1]),t.ticks&&(o!==(u=t.ticks(+r||15))[0]&&u.unshift(o),s!==k(u)&&u.push(s)),u.forEach(n=>a.stop(l(n),t(n))),a},dD),_D("geoArea",QC,dD),_D("geoBounds",KC,dD),_D("geoCentroid",tD,dD),_D("geoShape",function(t,n,e){const r=ZC(t,(e||this).context);return function(t){return r?r.path.context(t)(n):""}},dD),_D("indata",function(t,n,e){const r=this.context.data[t]["index:"+n],i=r?r.value.get(e):void 0;return i?i.count:i},function(t,n,e,r){n[0].type!==Gk&&i("First argument to indata must be a string literal."),n[1].type!==Gk&&i("Second argument to indata must be a string literal.");const a=n[0].value,u=n[1].value,o=lD+u;r.hasOwnProperty(o)||(r[o]=e.getData(a).indataRef(e,u))}),_D("data",WC,hD),_D("treePath",function(t,n,e){const r=uD(t,this),i=r[n],a=r[e];return i&&a?i.path(a).map(aD):void 0},hD),_D("treeAncestors",function(t,n){const e=uD(t,this)[n];return e?e.ancestors().map(aD):void 0},hD),_D("vlSelectionTest",function(t,n,e){for(var r,i,a,u,o,s=this.context.data[t],l=s?s.values.value:[],c=s?s[LC]&&s[LC].value:void 0,f=e===BC,h=l.length,d=0;d<h;++d)if(r=l[d],c&&f){if(-1===(a=(i=i||{})[u=r.unit]||0))continue;if(o=qC(n,r),i[u]=o?-1:++a,o&&1===c.size)return!0;if(!o&&a===c.get(u).count)return!1}else if(f^(o=qC(n,r)))return o;return h&&f},IC),_D("vlSelectionResolve",function(t,n){for(var e,r,i,a,u,o,s,l,c,f,h,d=this.context.data[t],p=d?d.values.value:[],g={},m={},v=p.length,y=0;y<v;++y)for(a=(e=p[y]).unit,r=e.fields,i=e.values,f=0,h=r.length;f<h;++f)u=r[f],s=(o=g[u.field]||(g[u.field]={}))[a]||(o[a]=[]),m[u.field]=l=u.type.charAt(0),c=UC[l+"_union"],o[a]=c(s,W(i[f]));return n=n||OC,Object.keys(g).forEach(function(t){g[t]=Object.keys(g[t]).map(function(n){return g[t][n]}).reduce(function(e,r){return void 0===e?r:UC[m[t]+"_"+n](e,r)})}),g},IC);const bD={blacklist:["_"],whitelist:["datum","event","item"],fieldvar:"datum",globalvar:function(t){return"_["+l(fD+t)+"]"},functions:function(t){const n=SC(t);mD.forEach(t=>n[t]=vD+t);for(let t in gD)n[t]=yD+t;return n},constants:FC,visitors:xD};var wD=function(t){var n=(t=t||{}).whitelist?yt(t.whitelist):{},e=t.blacklist?yt(t.blacklist):{},r=t.constants||FC,a=(t.functions||SC)(d),u=t.globalvar,o=t.fieldvar,l={},c={},f=0,h=Y(u)?u:function(t){return u+'["'+t+'"]'};function d(t){if(s(t))return t;var n=p[t.type];return null==n&&i("Unsupported type: "+t.type),n(t)}var p={Literal:function(t){return t.raw},Identifier:function(t){var a=t.name;return f>0?a:e.hasOwnProperty(a)?i("Illegal identifier: "+a):r.hasOwnProperty(a)?r[a]:n.hasOwnProperty(a)?a:(l[a]=1,h(a))},MemberExpression:function(t){var n=!t.computed,e=d(t.object);n&&(f+=1);var r=d(t.property);return e===o&&(c[function(t){var n=t&&t.length-1;return n&&('"'===t[0]&&'"'===t[n]||"'"===t[0]&&"'"===t[n])?t.slice(1,-1):t}(r)]=1),n&&(f-=1),e+(n?"."+r:"["+r+"]")},CallExpression:function(t){"Identifier"!==t.callee.type&&i("Illegal callee type: "+t.callee.type);var n=t.callee.name,e=t.arguments,r=a.hasOwnProperty(n)&&a[n];return r||i("Unrecognized function: "+n),Y(r)?r(e):r+"("+e.map(d).join(",")+")"},ArrayExpression:function(t){return"["+t.elements.map(d).join(",")+"]"},BinaryExpression:function(t){return"("+d(t.left)+t.operator+d(t.right)+")"},UnaryExpression:function(t){return"("+t.operator+d(t.argument)+")"},ConditionalExpression:function(t){return"("+d(t.test)+"?"+d(t.consequent)+":"+d(t.alternate)+")"},LogicalExpression:function(t){return"("+d(t.left)+t.operator+d(t.right)+")"},ObjectExpression:function(t){return"{"+t.properties.map(d).join(",")+"}"},Property:function(t){f+=1;var n=d(t.key);return f-=1,n+":"+d(t.value)}};function g(t){var n={code:d(t),globals:Object.keys(l),fields:Object.keys(c)};return l={},c={},n}return g.functions=a,g.constants=r,g}(bD);function AD(t,n,e){";"!==n[n.length-1]&&(n="return("+n+");");var r=Function.apply(null,t.concat(n));return e&&e.functions?r.bind(e.functions):r}function MD(t,n){return AD(["event"],t,n)}function kD(t,n){return AD(["item","_"],t,n)}function ED(t,n,e){var r,i;for(r in e=e||{},t)i=t[r],e[r]=u(i)?i.map(function(t){return CD(t,n,e)}):CD(i,n,e);return e}function CD(t,n,e){if(!t||!o(t))return t;for(var r,i=0,a=DD.length;i<a;++i)if(r=DD[i],t.hasOwnProperty(r.key))return r.parse(t,n,e);return t}var DD=[{key:"$ref",parse:function(t,n){return n.get(t.$ref)||i("Operator not defined: "+t.$ref)}},{key:"$key",parse:function(t,n){var e="k:"+t.$key+"_"+!!t.$flat;return n.fn[e]||(n.fn[e]=st(t.$key,t.$flat))}},{key:"$expr",parse:function(t,e,r){t.$params&&ED(t.$params,e,r);var i="e:"+t.$expr+"_"+t.$name;return e.fn[i]||(e.fn[i]=n(function(t,n){return AD(["datum","_"],t,n)}(t.$expr,e),t.$fields,t.$name))}},{key:"$field",parse:function(t,n){if(!t.$field)return null;var e="f:"+t.$field+"_"+t.$name;return n.fn[e]||(n.fn[e]=c(t.$field,t.$name))}},{key:"$encode",parse:function(t,e){var r,i,a=t.$encode,u={};for(r in a)i=a[r],u[r]=n(kD(i.$expr,e),i.$fields),u[r].output=i.$output;return u}},{key:"$compare",parse:function(t,n){var e="c:"+t.$compare+"_"+t.$order,r=W(t.$compare).map(function(t){return t&&t.$tupleid?Et:t});return n.fn[e]||(n.fn[e]=G(r,t.$order))}},{key:"$context",parse:function(t,n){return n}},{key:"$subflow",parse:function(t,n){var e=t.$subflow;return function(t,r,i){var a=OD(e,n.fork()),u=a.get(e.operators[0].id),o=a.signals.parent;return o&&o.set(i),u}}},{key:"$tupleid",parse:function(){return Et}}];function FD(t){return(t+"").toLowerCase()}function SD(t,n){"operator"!==FD(t.type)&&t.type?n.transform(t,t.type):n.operator(t,t.update?function(t,n){return AD(["_"],t,n)}(t.update,n):null)}function BD(t,n){var e=o(e=t.source)?e.$ref:e,r=n.get(e),a=null,u=t.update,s=void 0;r||i("Source not defined: "+t.source),a=t.target&&t.target.$expr?MD(t.target.$expr,n):n.get(t.target),u&&u.$expr&&(u.$params&&(s=ED(u.$params,n)),u=function(t,n){return AD(["_","event"],t,n)}(u.$expr,n)),n.update(t,r,a,u,s)}function OD(t,n){var e=t.operators||[];return t.background&&(n.background=t.background),t.eventConfig&&(n.eventConfig=t.eventConfig),e.forEach(function(t){SD(t,n)}),e.forEach(function(t){!function(t,n){if(t.params){var e=n.get(t.id);e||i("Invalid operator id: "+t.id),n.dataflow.connect(e,e.parameters(ED(t.params,n),t.react,t.initonly))}}(t,n)}),(t.streams||[]).forEach(function(t){!function(t,n){var e,r=null!=t.filter?MD(t.filter,n):void 0,a=null!=t.stream?n.get(t.stream):void 0;t.source?a=n.events(t.source,t.type,r):t.merge&&(a=(e=t.merge.map(n.get.bind(n)))[0].merge.apply(e[0],e.slice(1))),t.between&&(e=t.between.map(n.get.bind(n)),a=a.between(e[0],e[1])),t.filter&&(a=a.filter(r)),null!=t.throttle&&(a=a.throttle(+t.throttle)),null!=t.debounce&&(a=a.debounce(+t.debounce)),null==a&&i("Invalid stream definition: "+JSON.stringify(t)),t.consume&&a.consume(!0),n.stream(t,a)}(t,n)}),(t.updates||[]).forEach(function(t){BD(t,n)}),n.resolve()}var zD={skip:!0};function ND(t,n,e){return new TD(t,n,e)}function TD(t,n,e){this.dataflow=t,this.transforms=n,this.events=t.events.bind(t),this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},e&&(this.functions=Object.create(e),this.functions.context=this)}function RD(t){this.dataflow=t.dataflow,this.transforms=t.transforms,this.functions=t.functions,this.events=t.events,this.signals=Object.create(t.signals),this.scales=Object.create(t.scales),this.nodes=Object.create(t.nodes),this.data=Object.create(t.data),this.fn=Object.create(t.fn),t.functions&&(this.functions=Object.create(t.functions),this.functions.context=this)}TD.prototype=RD.prototype={fork:function(){var t=new RD(this);return(this.subcontext||(this.subcontext=[])).push(t),t},get:function(t){return this.nodes[t]},set:function(t,n){return this.nodes[t]=n},add:function(t,n){var e,r=this,i=r.dataflow;if(r.set(t.id,n),"collect"===FD(t.type)&&(e=t.value)&&(e.$ingest?i.ingest(n,e.$ingest,e.$format):e.$request?i.preload(n,e.$request,e.$format):i.pulse(n,i.changeset().insert(e))),t.root&&(r.root=n),t.parent){var a=r.get(t.parent.$ref);a?(i.connect(a,[n]),n.targets().add(a)):(r.unresolved=r.unresolved||[]).push(function(){a=r.get(t.parent.$ref),i.connect(a,[n]),n.targets().add(a)})}if(t.signal&&(r.signals[t.signal]=n),t.scale&&(r.scales[t.scale]=n),t.data)for(var u in t.data)e=r.data[u]||(r.data[u]={}),t.data[u].forEach(function(t){e[t]=n})},resolve:function(){return(this.unresolved||[]).forEach(function(t){t()}),delete this.unresolved,this},operator:function(t,n){this.add(t,this.dataflow.add(t.value,n))},transform:function(t,n){this.add(t,this.dataflow.add(this.transforms[FD(n)]))},stream:function(t,n){this.set(t.id,n)},update:function(t,n,e,r,i){this.dataflow.on(n,e,r,i,t.options)},getState:function(t){var n=this,e={};if(t.signals){var r=e.signals={};Object.keys(n.signals).forEach(function(e){var i=n.signals[e];t.signals(e,i)&&(r[e]=i.value)})}if(t.data){var i=e.data={};Object.keys(n.data).forEach(function(e){var r=n.data[e];t.data(e,r)&&(i[e]=r.input.value)})}return n.subcontext&&!1!==t.recurse&&(e.subcontext=n.subcontext.map(function(n){return n.getState(t)})),e},setState:function(t){var n=this,e=n.dataflow,r=t.data,i=t.signals;Object.keys(i||{}).forEach(function(t){e.update(n.signals[t],i[t],zD)}),Object.keys(r||{}).forEach(function(t){e.pulse(n.data[t].input,e.changeset().remove(m).insert(r[t]))}),(t.subcontext||[]).forEach(function(t,e){var r=n.subcontext[e];r&&r.setState(t)})}};var PD="width",LD="height",qD="padding",UD={skip:!0};function jD(t,n){var e=t.autosize(),r=t.padding();return n-(e&&e.contains===qD?r.left+r.right:0)}function $D(t,n){var e=t.autosize(),r=t.padding();return n-(e&&e.contains===qD?r.top+r.bottom:0)}function ID(t,n){return n.modified&&u(n.input.value)&&t.indexOf("_:vega:_")}function WD(t,n){return!("parent"===t||n instanceof Wr.proxy)}function HD(t,n,e,r){var i=t.element();i&&i.setAttribute("title",function(t){return null==t?"":u(t)?YD(t):o(t)&&!at(t)?(n=t,Object.keys(n).map(function(t){var e=n[t];return t+": "+(u(e)?YD(e):GD(e))}).join("\n")):t+"";var n}(r))}function YD(t){return"["+t.map(GD).join(", ")+"]"}function GD(t){return u(t)?"[…]":o(t)&&!at(t)?"{…}":t}function VD(t,n){n=n||{},qr.call(this),n.loader&&this.loader(n.loader),n.logger&&this.logger(n.logger),null!=n.logLevel&&this.logLevel(n.logLevel),this._el=null,this._elBind=null,this._renderType=n.renderer||wf.Canvas,this._scenegraph=new Ac;var e=this._scenegraph.root;this._renderer=null,this._tooltip=n.tooltip||HD,this._redraw=!0,this._handler=(new Lc).scene(e),this._preventDefault=!1,this._timers=[],this._eventListeners=[],this._resizeListeners=[];var r,i,a=function(t,n,e){return OD(n,ND(t,Wr,e||gD))}(this,t,n.functions);this._runtime=a,this._signals=a.signals,this._bind=(t.bindings||[]).map(function(t){return{state:null,param:Z({},t)}}),a.root&&a.root.set(e),e.source=a.data.root.input,this.pulse(a.data.root.input,this.changeset().insert(e.items)),this._background=n.background||a.background||null,this._eventConfig=(r=a.eventConfig,(i=(r=Z({},r)).defaults)&&(u(i.prevent)&&(i.prevent=yt(i.prevent)),u(i.allow)&&(i.allow=yt(i.allow))),r),this._width=this.width(),this._height=this.height(),this._viewWidth=jD(this,this._width),this._viewHeight=$D(this,this._height),this._origin=[0,0],this._resize=0,this._autosize=1,function(t){var n=t._signals,e=n[PD],r=n[LD],i=n[qD];function a(){t._autosize=t._resize=1}t._resizeWidth=t.add(null,function(n){t._width=n.size,t._viewWidth=jD(t,n.size),a()},{size:e}),t._resizeHeight=t.add(null,function(n){t._height=n.size,t._viewHeight=$D(t,n.size),a()},{size:r});var u=t.add(null,a,{pad:i});t._resizeWidth.rank=e.rank+1,t._resizeHeight.rank=r.rank+1,u.rank=i.rank+1}(this),fk(this),n.hover&&this.hover(),n.container&&this.initialize(n.container,n.bind)}var XD=et(VD,qr);function ZD(t,n){return t._signals.hasOwnProperty(n)?t._signals[n]:i("Unrecognized signal name: "+l(n))}function JD(t,n){var e=(t._targets||[]).filter(function(t){var e=t._update;return e&&e.handler===n});return e.length?e[0]:null}function QD(t,n,e,r){var i=JD(e,r);return i||((i=Lk(this,function(){r(n,e.value)})).handler=r,t.on(e,null,i)),t}function KD(t,n,e){var r=JD(n,e);return r&&n._targets.remove(r),t}function tF(t){return+t||0}XD.evaluate=async function(t,n,e){if(await qr.prototype.evaluate.call(this,t,n),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,i=mk(r=this),a=pk(r),u=gk(r),r._renderer.background(r._background),r._renderer.resize(a,u,i),r._handler.origin(i),r._resizeListeners.forEach(function(t){try{t(a,u)}catch(t){r.error(t)}})),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(t){this.error(t)}var r,i,a,u;return e&&wt(this,e),this},XD.dirty=function(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},XD.container=function(){return this._el},XD.scenegraph=function(){return this._scenegraph},XD.origin=function(){return this._origin.slice()},XD.signal=function(t,n,e){var r=ZD(this,t);return 1===arguments.length?r.value:this.update(r,n,e)},XD.background=function(t){return arguments.length?(this._background=t,this._resize=1,this):this._background},XD.width=function(t){return arguments.length?this.signal("width",t):this.signal("width")},XD.height=function(t){return arguments.length?this.signal("height",t):this.signal("height")},XD.padding=function(t){return arguments.length?this.signal("padding",t):this.signal("padding")},XD.autosize=function(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},XD.renderer=function(t){return arguments.length?(Mf(t)||i("Unrecognized renderer type: "+t),t!==this._renderType&&(this._renderType=t,this._resetRenderer()),this):this._renderType},XD.tooltip=function(t){return arguments.length?(t!==this._tooltip&&(this._tooltip=t,this._resetRenderer()),this):this._tooltip},XD.loader=function(t){return arguments.length?(t!==this._loader&&(qr.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},XD.resize=function(){return this._autosize=1,this.touch(ZD(this,"autosize"))},XD._resetRenderer=function(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},XD._resizeView=function(t,n,e,r,i,a){this.runAfter(function(u){var o=0;u._autosize=0,u.width()!==e&&(o=1,u.signal(PD,e,UD),u._resizeWidth.skip(!0)),u.height()!==r&&(o=1,u.signal(LD,r,UD),u._resizeHeight.skip(!0)),u._viewWidth!==t&&(u._resize=1,u._viewWidth=t),u._viewHeight!==n&&(u._resize=1,u._viewHeight=n),u._origin[0]===i[0]&&u._origin[1]===i[1]||(u._resize=1,u._origin=i),o&&u.run("enter"),a&&u.runAfter(t=>t.resize())},!1,1)},XD.addEventListener=function(t,n,e){var r=n;return e&&!1===e.trap||((r=Lk(this,n)).raw=n),this._handler.on(t,r),this},XD.removeEventListener=function(t,n){for(var e,r,i=this._handler.handlers(t),a=i.length;--a>=0;)if(r=i[a].type,e=i[a].handler,t===r&&(n===e||n===e.raw)){this._handler.off(r,e);break}return this},XD.addResizeListener=function(t){var n=this._resizeListeners;return n.indexOf(t)<0&&n.push(t),this},XD.removeResizeListener=function(t){var n=this._resizeListeners,e=n.indexOf(t);return e>=0&&n.splice(e,1),this},XD.addSignalListener=function(t,n){return QD(this,t,ZD(this,t),n)},XD.removeSignalListener=function(t,n){return KD(this,ZD(this,t),n)},XD.addDataListener=function(t,n){return QD(this,t,hk(this,t).values,n)},XD.removeDataListener=function(t,n){return KD(this,hk(this,t).values,n)},XD.preventDefault=function(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},XD.timer=function(t,n){this._timers.push(function(t,n,e){var r=new hw,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?cw():+e,r.restart(function a(u){u+=i,r.restart(a,i+=n,e),t(u)},n,e),r)}(function(n){t({timestamp:Date.now(),elapsed:n})},n))},XD.events=function(t,n,e){var r,i=this,a=new It(e),u=function(e,r){i.runAsync(null,()=>{t===yk&&function(t,n){var e=t._eventConfig.defaults,r=e&&e.prevent,i=e&&e.allow;return!1!==r&&!0!==i&&(!0===r||!1===i||(r?r[n]:i?!i[n]:t.preventDefault()))}(i,n)&&e.preventDefault(),a.receive(vk(i,e,r))})};if(t===xk)i.timer(u,n);else if(t===yk)i.addEventListener(n,u,bk);else if(t===_k?"undefined"!=typeof window&&(r=[window]):"undefined"!=typeof document&&(r=document.querySelectorAll(t)),r){for(var o=0,s=r.length;o<s;++o)r[o].addEventListener(n,u);i._eventListeners.push({type:n,sources:r,handler:u})}else i.warn("Can not resolve event source: "+t);return a},XD.finalize=function(){var t,n,e,r=this._tooltip,i=this._timers,a=this._eventListeners;for(t=i.length;--t>=0;)i[t].stop();for(t=a.length;--t>=0;)for(n=(e=a[t]).sources.length;--n>=0;)e.sources[n].removeEventListener(e.type,e.handler);return r&&r.call(this,this._handler,null,null,null),this},XD.hover=function(t,n){return n=[n||"update",(t=[t||"hover"])[0]],this.on(this.events("view","mouseover",wk),Ak,Mk(t)),this.on(this.events("view","mouseout",wk),Ak,Mk(n)),this},XD.data=function(t){return hk(this,t).values.value},XD.change=dk,XD.insert=function(t,n){return dk.call(this,t,zt().insert(n))},XD.remove=function(t,n){return dk.call(this,t,zt().remove(n))},XD.scale=function(t){var n=this._runtime.scales;return n.hasOwnProperty(t)||i("Unrecognized scale or projection: "+t),n[t].value},XD.initialize=function(t,n){var e,r,i=this,a=i._renderType,u=Mf(a);return t=i._el=t?qk(i,t):null,u||i.error("Unrecognized renderer type: "+a),e=u.handler||Lc,r=t?u.renderer:u.headless,i._renderer=r?Pk(i,i._renderer,t,r):null,i._handler=function(t,n,e,r){var i=new r(t.loader(),Lk(t,t.tooltip())).scene(t.scenegraph().root).initialize(e,mk(t),t);return n&&n.handlers().forEach(function(t){i.on(t.type,t.handler)}),i}(i,i._handler,t,e),i._redraw=!0,t&&(n=n?i._elBind=qk(i,n):t.appendChild(kk("div",{class:"vega-bindings"})),i._bind.forEach(function(t){t.param.element&&(t.element=qk(i,t.param.element))}),i._bind.forEach(function(t){Sk(i,t.element||n,t)})),i},XD.toImageURL=async function(t,n){t!==wf.Canvas&&t!==wf.SVG&&t!==wf.PNG&&i("Unrecognized image type: "+t);const e=await Uk(this,t,n);return t===wf.SVG?(r=e.svg(),a=new Blob([r],{type:"image/svg+xml"}),window.URL.createObjectURL(a)):e.canvas().toDataURL("image/png");var r,a},XD.toCanvas=async function(t,n){return(await Uk(this,wf.Canvas,t,n)).canvas()},XD.toSVG=async function(t){return(await Uk(this,wf.SVG,t)).svg()},XD.getState=function(t){return this._runtime.getState(t||{data:ID,signals:WD,recurse:!0})},XD.setState=function(t){return this.runAsync(null,n=>{n._trigger=!1,n._runtime.setState(t)},t=>{t._trigger=!0}),this};var nF="outer",eF=["value","update","init","react","bind"];function rF(t,n){i(t+' for "outer" push: '+l(n))}function iF(t,n){var e=t.name;if(t.push===nF)n.signals[e]||rF("No prior signal definition",e),eF.forEach(function(n){void 0!==t[n]&&rF("Invalid property ",n)});else{var r=n.addSignal(e,t.value);!1===t.react&&(r.react=!1),t.bind&&n.addBinding(e,t.bind)}}function aF(t,n,e){var r,a,u={};try{r=function(t){Ik=0,Wk=($k=t).length,Hk=null,rC();var n=DC();if(Hk.type!==uE)throw new Error("Unexpect token after expression.");return n}(t=s(t)?t:l(t)+"")}catch(n){i("Expression parse error: "+t)}return r.visit(function(t){if(t.type===Qk){var e=t.callee.name,r=bD.visitors[e];r&&r(e,t.arguments,n,u)}}),(a=wD(r)).globals.forEach(function(t){var e=fD+t;!u.hasOwnProperty(e)&&n.getSignal(t)&&(u[e]=n.signalRef(t))}),{$expr:e?e+"return("+a.code+");":a.code,$fields:a.fields,$params:u}}function uF(t,n,e,r){this.id=-1,this.type=t,this.value=n,this.params=e,r&&(this.parent=r)}function oF(t,n,e,r){return new uF(t,n,e,r)}function sF(t,n){return oF("operator",t,n)}function lF(t){var n={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(n),n}var cF={$tupleid:1,toString:function(){return":_tupleid_:"}};function fF(t,n){return n?{$field:t,$name:n}:{$field:t}}var hF=fF("key");function dF(t,n){return{$compare:t,$order:n}}var pF="descending";function gF(t,n){return(t&&t.signal?"$"+t.signal:t||"")+(t&&n?"_":"")+(n&&n.signal?"$"+n.signal:n||"")}var mF="scope",vF="view";function yF(t){return t&&t.signal}function xF(t){if(yF(t))return!0;if(o(t))for(var n in t)if(xF(t[n]))return!0;return!1}function _F(t,n){return null!=t?t:n}function bF(t){return t&&t.signal||t}var wF="timer";function AF(t,n){return(t.merge?MF:t.stream?kF:t.type?EF:i("Invalid stream specification: "+l(t)))(t,n)}function MF(t,n){var e=CF({merge:t.merge.map(t=>AF(t,n))},t,n);return n.addStream(e).id}function kF(t,n){var e=CF({stream:AF(t.stream,n)},t,n);return n.addStream(e).id}function EF(t,n){var e,r,i;return t.type===wF?(e=n.event(wF,t.throttle),t={between:t.between,filter:t.filter}):e=n.event((i=t.source)===mF?vF:i||vF,t.type),r=CF({stream:e},t,n),1===Object.keys(r).length?e:n.addStream(r).id}function CF(t,n,e){var r,a,u,o,s=n.between;return s&&(2!==s.length&&i('Stream "between" parameter must have 2 entries: '+l(n)),t.between=[AF(s[0],e),AF(s[1],e)]),s=n.filter?[].concat(n.filter):[],(n.marktype||n.markname||n.markrole)&&s.push((r=n.marktype,a=n.markname,u=n.markrole,(o="event.item")+(r&&"*"!==r?"&&"+o+".mark.marktype==='"+r+"'":"")+(u?"&&"+o+".mark.role==='"+u+"'":"")+(a?"&&"+o+".mark.name==='"+a+"'":""))),n.source===mF&&s.push("inScope(event.item)"),s.length&&(t.filter=aF("("+s.join(")&&(")+")").$expr),null!=(s=n.throttle)&&(t.throttle=+s),null!=(s=n.debounce)&&(t.debounce=+s),n.consume&&(t.consume=!0),t}var DF,FF,SF="view",BF="[",OF="]",zF="{",NF="}",TF=":",RF=",",PF="@",LF=">",qF=/[[\]{}]/,UF={"*":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};function jF(t,n,e,r,i){for(var a,u=0,o=t.length;n<o;++n){if(a=t[n],!u&&a===e)return n;i&&i.indexOf(a)>=0?--u:r&&r.indexOf(a)>=0&&++u}return n}function $F(t){for(var n=[],e=0,r=t.length,i=0;i<r;)i=jF(t,i,RF,BF+zF,OF+NF),n.push(t.substring(e,i).trim()),e=++i;if(0===n.length)throw"Empty event selector: "+t;return n}function IF(t){return"["===t[0]?function(t){var n,e,r=t.length,i=1;if((i=jF(t,i,OF,BF,OF))===r)throw"Empty between selector: "+t;if(2!==(n=$F(t.substring(1,i))).length)throw"Between selector must have two elements: "+t;if((t=t.slice(i+1).trim())[0]!==LF)throw"Expected '>' after between selector: "+t;if(n=n.map(IF),(e=IF(t.slice(1).trim())).between)return{between:n,stream:e};e.between=n;return e}(t):function(t){var n,e,r={source:DF},i=[],a=[0,0],u=0,o=0,s=t.length,l=0;if(t[s-1]===NF){if(!((l=t.lastIndexOf(zF))>=0))throw"Unmatched right brace: "+t;try{a=function(t){var n=t.split(RF);if(!t.length||n.length>2)throw t;return n.map(function(n){var e=+n;if(e!=e)throw t;return e})}(t.substring(l+1,s-1))}catch(n){throw"Invalid throttle specification: "+t}t=t.slice(0,l).trim(),s=t.length,l=0}if(!s)throw t;t[0]===PF&&(u=++l);(n=jF(t,l,TF))<s&&(i.push(t.substring(o,n).trim()),o=l=++n);if((l=jF(t,l,BF))===s)i.push(t.substring(o,s).trim());else if(i.push(t.substring(o,l).trim()),e=[],(o=++l)===s)throw"Unmatched left bracket: "+t;for(;l<s;){if((l=jF(t,l,OF))===s)throw"Unmatched left bracket: "+t;if(e.push(t.substring(o,l).trim()),l<s-1&&t[++l]!==BF)throw"Expected left bracket: "+t;o=++l}if(!(s=i.length)||qF.test(i[s-1]))throw"Invalid event selector: "+t;s>1?(r.type=i[1],u?r.markname=i[0].slice(1):(c=i[0],FF.hasOwnProperty(c)?r.marktype=i[0]:r.source=i[0])):r.type=i[0];var c;"!"===r.type.slice(-1)&&(r.consume=!0,r.type=r.type.slice(0,-1));null!=e&&(r.filter=e);a[0]&&(r.throttle=a[0]);a[1]&&(r.debounce=a[1]);return r}(t)}var WF="var datum=event.item&&event.item.datum;";function HF(t,n,e){var r=t.events,a=t.update,u=t.encode,o=[],c={target:e};r||i("Signal update missing events specification."),s(r)&&(r=function(t,n,e){return DF=n||SF,FF=e||UF,$F(t.trim()).map(IF)}(r,n.isSubscope()?mF:vF)),r=W(r).filter(t=>t.signal||t.scale?(o.push(t),0):1),o.length>1&&(o=[YF(o)]),r.length&&o.push(r.length>1?{merge:r}:r[0]),null!=u&&(a&&i("Signal encode and update are mutually exclusive."),a="encode(item(),"+l(u)+")"),c.update=s(a)?aF(a,n,WF):null!=a.expr?aF(a.expr,n,WF):null!=a.value?a.value:null!=a.signal?{$expr:"_.value",$params:{value:n.signalRef(a.signal)}}:i("Invalid signal update specification."),t.force&&(c.options={force:!0}),o.forEach(function(t){n.addUpdate(Z(function(t,n){return{source:t.signal?n.signalRef(t.signal):t.scale?n.scaleRef(t.scale):AF(t,n)}}(t,n),c))})}function YF(t){return{signal:"["+t.map(t=>t.scale?'scale("'+t.scale+'")':t.signal)+"]"}}function GF(t){return function(n,e,r){return oF(t,e,n||void 0,r)}}var VF=GF("aggregate"),XF=GF("axisticks"),ZF=GF("bound"),JF=GF("collect"),QF=GF("compare"),KF=GF("datajoin"),tS=GF("encode"),nS=GF("expression"),eS=GF("facet"),rS=GF("field"),iS=GF("key"),aS=GF("legendentries"),uS=GF("load"),oS=GF("mark"),sS=GF("multiextent"),lS=GF("multivalues"),cS=GF("overlap"),fS=GF("params"),hS=GF("prefacet"),dS=GF("projection"),pS=GF("proxy"),gS=GF("relay"),mS=GF("render"),vS=GF("scale"),yS=GF("sieve"),xS=GF("sortitems"),_S=GF("viewlayout"),bS=GF("values"),wS=0;function AS(t,n){var e=t.type||"linear";(function(t){switch(t){case xh:case _h:case bh:case wh:case Ah:case Mh:case kh:case Eh:case Ch:case Fh:case Sh:case Bh:case Oh:case zh:case Nh:case Th:return!0}return!1})(e)||i("Unrecognized scale type: "+l(e)),n.addScale(t.name,{type:e,domain:void 0})}function MS(t,n){var e,r,a=n.getScale(t.name).params;for(e in a.domain=DS(t.domain,t,n),null!=t.range&&(a.range=function t(n,e,r){var a=n.range,o=e.config.range;if(a.signal)return e.signalRef(a.signal);if(s(a)){if(o&&o.hasOwnProperty(a))return n=Z({},n,{range:o[a]}),t(n,e,r);"width"===a?a=[0,{signal:"width"}]:"height"===a?a=Uh(n.type)?[0,{signal:"height"}]:[{signal:"height"},0]:i("Unrecognized scale range value: "+l(a))}else{if(a.scheme)return r.scheme=u(a.scheme)?ES(a.scheme,e):kS(a.scheme,e),a.extent&&(r.schemeExtent=ES(a.extent,e)),void(a.count&&(r.schemeCount=kS(a.count,e)));if(a.step)return void(r.rangeStep=kS(a.step,e));if(Uh(n.type)&&!u(a))return DS(a,n,e);u(a)||i("Unsupported range type: "+l(a))}return a.map(t=>(u(t)?ES:kS)(t,e))}(t,n,a)),null!=t.interpolate&&function(t,n){n.interpolate=kS(t.type||t),null!=t.gamma&&(n.interpolateGamma=kS(t.gamma))}(t.interpolate,a),null!=t.nice&&(a.nice=o(r=t.nice)?{interval:kS(r.interval),step:kS(r.step)}:kS(r)),null!=t.bins&&(a.bins=function(t,n){return t.signal||u(t)?ES(t,n):n.objectProperty(t)}(t.bins,n)),t)a.hasOwnProperty(e)||"name"===e||(a[e]=kS(t[e],n))}function kS(t,n){return o(t)?t.signal?n.signalRef(t.signal):i("Unsupported object: "+l(t)):t}function ES(t,n){return t.signal?n.signalRef(t.signal):t.map(t=>kS(t,n))}function CS(t){i("Can not find data set: "+l(t))}function DS(t,n,e){if(t)return t.signal?e.signalRef(t.signal):(u(t)?function(t,n,e){return t.map(function(t){return kS(t,e)})}:t.fields?function(t,n,e){var r=t.data,i=t.fields.reduce(function(t,n){return n=s(n)?{data:r,field:n}:u(n)||n.signal?function(t,n){var e="_:vega:_"+wS++,r=JF({});if(u(t))r.value={$ingest:t};else if(t.signal){var i="setdata("+l(e)+","+t.signal+")";r.params.input=n.signalRef(i)}return n.addDataPipeline(e,[r,yS({})]),{data:e,field:"data"}}(n,e):n,t.push(n),t},[]);return(Uh(n.type)?function(t,n,e){var r,i,a,u;return r=e.map(function(t){var e=n.getData(t.data);return e||CS(t.data),e.countsRef(n,t.field)}),i=n.add(VF({groupby:hF,ops:["sum"],fields:[n.fieldRef("count")],as:["count"],pulse:r})),a=n.add(JF({pulse:lF(i)})),u=n.add(bS({field:hF,sort:n.sortRef(FS(t.sort,!0)),pulse:lF(a)})),lF(u)}:Rh(n.type)?function(t,n,e){var r=e.map(function(t){var e=n.getData(t.data);return e||CS(t.data),e.domainRef(n,t.field)});return lF(n.add(lS({values:r})))}:function(t,n,e){var r=e.map(function(t){var e=n.getData(t.data);return e||CS(t.data),e.extentRef(n,t.field)});return lF(n.add(sS({extents:r})))})(t,e,i)}:function(t,n,e){var r=e.getData(t.data);r||CS(t.data);return Uh(n.type)?r.valuesRef(e,t.field,FS(t.sort,!1)):Rh(n.type)?r.domainRef(e,t.field):r.extentRef(e,t.field)})(t,n,e);null==n.domainMin&&null==n.domainMax||i("No scale domain defined for domainMin/domainMax to override.")}function FS(t,n){return t&&(t.field||t.op?t.field||"count"===t.op?n&&t.field?i("Multiple domain scales can not sort by field."):n&&t.op&&"count"!==t.op&&i("Multiple domain scales support op count only."):i("No field provided for sort aggregate op: "+t.op):o(t)?t.field="key":t={field:"key"}),t}function SS(t,n,e){return u(t)?t.map(function(t){return SS(t,n,e)}):o(t)?t.signal?e.signalRef(t.signal):"fit"===n?t:i("Unsupported parameter object: "+l(t)):t}const BS="top",OS="left",zS="right",NS="bottom",TS="vertical",RS="start",PS="end",LS="index",qS="label",US="offset",jS="perc",$S="perc2",IS="size",WS="value",HS="guide-label",YS="guide-title",GS="group-title",VS="symbol",XS="gradient",ZS="discrete",JS=["size","shape","fill","stroke","strokeWidth","strokeDash","opacity"],QS={name:1,interactive:1},KS={value:0},tB={value:1};var nB=yt(["rule"]),eB=yt(["group","image","rect"]);function rB(t,n,e,r){var i=aF(t,n);return i.$fields.forEach(function(t){r[t]=1}),Z(e,i.$params),i.$expr}function iB(t,n,e,r){return function t(n,e,r,u){var o,c,f;if(n.signal)o="datum",f=rB(n.signal,e,r,u);else if(n.group||n.parent){for(c=Math.max(1,n.level||1),o="item";c-- >0;)o+=".mark.group";n.parent?(f=n.parent,o+=".datum"):f=n.group}else n.datum?(o="datum",f=n.datum):i("Invalid field reference: "+l(n));n.signal||(s(f)?(u[f]=1,f=a(f).map(l).join("][")):f=t(f,e,r,u));return o+"["+f+"]"}(o(t)?t:{datum:t},n,e,r)}function aB(t,n,e,r,i){var a,u,o,l=uB(t.scale,e,r,i);return null!=t.range?(u=l+".range()",n=0===(a=+t.range)?u+"[0]":"($="+u+","+(1===a?"$[$.length-1]":"$[0]+"+a+"*($[$.length-1]-$[0])")+")"):(void 0!==n&&(n=l+"("+n+")"),t.band&&(o=function(t,n){if(!s(t))return-1;var e=n.scaleType(t);return"band"===e||"point"===e?1:0}(t.scale,e))&&(a=(u=l+".bandwidth")+"()"+(1===(a=+t.band)?"":"*"+a),o<0&&(a="("+u+"?"+a+":0)"),n=(n?n+"+":"")+a,t.extra&&(n="(datum.extra?"+l+"(datum.extra.value):"+n+")")),null==n&&(n="0")),n}function uB(t,n,e,r){var i;if(s(t))i=cD+t,e.hasOwnProperty(i)||(e[i]=n.scaleRef(t)),i=l(i);else{for(i in n.scales)e[cD+i]=n.scaleRef(i);i=l(cD)+"+"+(t.signal?"("+rB(t.signal,n,e,r)+")":iB(t,n,e,r))}return"_["+i+"]"}function oB(t,n,e,r){return o(t)?"("+sB(null,t,n,e,r)+")":t}function sB(t,n,e,r,i){if(null!=n.gradient)return function(t,n,e,r){return"this.gradient("+uB(t.gradient,n,e,r)+","+l(t.start)+","+l(t.stop)+","+l(t.count)+")"}(n,e,r,i);var a=n.signal?rB(n.signal,e,r,i):n.color?function(t,n,e,r){function i(t,i,a,u){return"this."+t+"("+[sB(null,i,n,e,r),sB(null,a,n,e,r),sB(null,u,n,e,r)].join(",")+").toString()"}return t.c?i("hcl",t.h,t.c,t.l):t.h||t.s?i("hsl",t.h,t.s,t.l):t.l||t.a?i("lab",t.l,t.a,t.b):t.r||t.g||t.b?i("rgb",t.r,t.g,t.b):null}(n.color,e,r,i):null!=n.field?iB(n.field,e,r,i):void 0!==n.value?l(n.value):void 0;return null!=n.scale&&(a=aB(n,a,e,r,i)),void 0===a&&(a=null),null!=n.exponent&&(a="Math.pow("+a+","+oB(n.exponent,e,r,i)+")"),null!=n.mult&&(a+="*"+oB(n.mult,e,r,i)),null!=n.offset&&(a+="+"+oB(n.offset,e,r,i)),n.round&&(a="Math.round("+a+")"),a}function lB(t,n,e){const r=t+"["+l(n)+"]";return`$=${e};if(${r}!==$)${r}=$,m=1;`}function cB(t,n,e,r,i){var a="";return n.forEach(function(t){var n=sB(0,t,e,r,i);a+=t.test?rB(t.test,e,r,i)+"?"+n+":":n}),":"===k(a)&&(a+="null"),lB("o",t,a)}function fB(t,n,e,r){var i,a,o={},s="var o=item,datum=o.datum,m=0,$;";for(i in t)a=t[i],u(a)?s+=cB(i,a,r,e,o):s+=lB("o",i,sB(0,a,r,e,o));return s+=function(t,n){var e="";return nB[n]?e:(t.x2&&(t.x?(eB[n]&&(e+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),e+="o.width=o.x2-o.x;"):e+="o.x=o.x2-(o.width||0);"),t.xc&&(e+="o.x=o.xc-(o.width||0)/2;"),t.y2&&(t.y?(eB[n]&&(e+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),e+="o.height=o.y2-o.y;"):e+="o.y=o.y2-(o.height||0);"),t.yc&&(e+="o.y=o.yc-(o.height||0)/2;"),e)}(t,n),{$expr:s+="return m;",$fields:Object.keys(o),$output:Object.keys(t)}}var hB="mark",dB="frame",pB="scope",gB="axis",mB="axis-domain",vB="axis-grid",yB="axis-label",xB="axis-tick",_B="axis-title",bB="legend",wB="legend-band",AB="legend-entry",MB="legend-gradient",kB="legend-label",EB="legend-symbol",CB="legend-title",DB="title";function FB(t){return o(t)?Z({},t):{value:t}}function SB(t,n,e,r){return null!=e?(o(e)&&!u(e)?t.update[n]=e:t[r||"enter"][n]={value:e},1):0}function BB(t,n,e){for(let e in n)SB(t,e,n[e]);for(let n in e)SB(t,n,e[n],"update")}function OB(t,n,e){for(var r in n)e&&e.hasOwnProperty(r)||(t[r]=Z(t[r]||{},n[r]));return t}function zB(t,n,e,r,i,a){var u,o;for(o in(a=a||{}).encoders={$encode:u={}},t=function(t,n,e,r,i){var a,u,o={};"legend"!=e&&0!==String(e).indexOf("axis")||(e=null);for(a in u=e===dB?i.group:e===hB?Z({},i.mark,i[n]):null)TB(a,t)||("fill"===a||"stroke"===a)&&(TB("fill",t)||TB("stroke",t))||(o[a]=NB(u[a]));return W(r).forEach(function(n){var e=i.style&&i.style[n];for(var r in e)TB(r,t)||(o[r]=NB(e[r]))}),(t=Z({},t)).enter=Z(o,t.enter),t}(t,n,e,r,i.config))u[o]=fB(t[o],n,a,i);return a}function NB(t){return t&&t.signal?{signal:t.signal}:{value:t}}function TB(t,n){return n&&(n.enter&&n.enter[t]||n.update&&n.update[t])}function RB(t,n,e,r,i,a,u){return{type:t,name:u?u.name:void 0,role:n,style:u&&u.style||e,key:r,from:i,interactive:!(!u||!u.interactive),encode:OB(a,u,QS)}}function PB(t,n){const e=e=>_F(t[e],n[e]);return e.isVertical=(e=>TS===_F(t.direction,n.direction||(e?n.symbolDirection:n.gradientDirection))),e.gradientLength=(()=>_F(t.gradientLength,n.gradientLength||n.gradientWidth)),e.gradientThickness=(()=>_F(t.gradientThickness,n.gradientThickness||n.gradientHeight)),e.entryColumns=(()=>_F(t.columns,_F(n.columns,+e.isVertical(!0)))),e}function LB(t,n){var e=n&&(n.update&&n.update[t]||n.enter&&n.enter[t]);return e&&e.signal?e:e?e.value:null}function qB(t,n,e){return`item.anchor === "${RS}" ? ${t} : item.anchor === "${PS}" ? ${n} : ${e}`}const UB=qB(l(OS),l(zS),l("center"));var jB="group",$B="rect",IB="rule",WB="symbol",HB="text";function YB(t,n,e,r){var i,a,u,o,s,l,c=PB(t,e),f=c.isVertical(),h=c.gradientThickness(),d=c.gradientLength();return f?(u=[0,1],o=[0,0],s=h,l=d):(u=[0,0],o=[1,0],s=d,l=h),BB(i={enter:a={opacity:KS,x:KS,y:KS,width:FB(s),height:FB(l)},update:Z({},a,{opacity:tB,fill:{gradient:n,start:u,stop:o}}),exit:{opacity:KS}},{stroke:c("gradientStrokeColor"),strokeWidth:c("gradientStrokeWidth")},{opacity:c("gradientOpacity")}),RB($B,MB,null,void 0,void 0,i,r)}function GB(t,n,e,r,i){var a,u,o,s,l,c,f=PB(t,e),h=f.isVertical(),d=f.gradientThickness(),p=f.gradientLength(),g="";return h?(o="y",l="y2",s="x",c="width",g="1-"):(o="x",l="x2",s="y",c="height"),(u={opacity:KS,fill:{scale:n,field:WS}})[o]={signal:g+"datum."+jS,mult:p},u[s]=KS,u[l]={signal:g+"datum."+$S,mult:p},u[c]=FB(d),BB(a={enter:u,update:Z({},u,{opacity:tB}),exit:{opacity:KS}},{stroke:f("gradientStrokeColor"),strokeWidth:f("gradientStrokeWidth")},{opacity:f("gradientOpacity")}),RB($B,wB,null,WS,i,a,r)}const VB=`datum.${jS}<=0?"${OS}":datum.${jS}>=1?"${zS}":"center"`,XB=`datum.${jS}<=0?"${NS}":datum.${jS}>=1?"${BS}":"middle"`;function ZB(t,n,e,r){var i,a,u,o,s,l=PB(t,n),c=l.isVertical(),f=FB(l.gradientThickness()),h=l.gradientLength(),d=l("labelOverlap"),p=l("labelSeparation"),g="";return BB(i={enter:a={opacity:KS},update:u={opacity:tB,text:{field:qS}},exit:{opacity:KS}},{fill:l("labelColor"),fillOpacity:l("labelOpacity"),font:l("labelFont"),fontSize:l("labelFontSize"),fontStyle:l("labelFontStyle"),fontWeight:l("labelFontWeight"),limit:_F(t.labelLimit,n.gradientLabelLimit)}),c?(a.align={value:"left"},a.baseline=u.baseline={signal:XB},o="y",s="x",g="1-"):(a.align=u.align={signal:VB},a.baseline={value:"top"},o="x",s="y"),a[o]=u[o]={signal:g+"datum."+jS,mult:h},a[s]=u[s]=f,f.offset=_F(t.labelOffset,n.gradientLabelOffset)||0,t=RB(HB,kB,HS,WS,r,i,e),d&&(t.overlap={separation:p,method:d,order:"datum."+LS}),t}function JB(t,n,e,r,i,a,u,o){return{type:jB,name:e,role:t,style:n,from:r,interactive:i||!1,encode:a,marks:u,layout:o}}function QB(t,n,e,r,i){var a,u,o,s,l,c,f,h=PB(t,n),d=e.entries,p=!(!d||!d.interactive),g=d?d.name:void 0,m=h("clipHeight"),v=h("symbolOffset"),y={data:"value"},x={},_=`${i} ? datum.${US} : datum.${IS}`,b=m?FB(m):{field:IS},w=`datum.${LS}`,A=`max(1, ${i})`;return b.mult=.5,x={enter:a={opacity:KS,x:{signal:_,mult:.5,offset:v},y:b},update:u={opacity:tB,x:a.x,y:a.y},exit:{opacity:KS}},t.fill||BB(x,{fill:n.symbolBaseFillColor,stroke:n.symbolBaseStrokeColor}),BB(x,{fill:h("symbolFillColor"),shape:h("symbolType"),size:h("symbolSize"),stroke:h("symbolStrokeColor"),strokeDash:h("symbolDash"),strokeDashOffset:h("symbolDashOffset"),strokeWidth:h("symbolStrokeWidth")},{opacity:h("symbolOpacity")}),JS.forEach(function(n){t[n]&&(u[n]=a[n]={scale:t[n],field:WS})}),s=RB(WB,EB,null,WS,y,x,e.symbols),m&&(s.clip=!0),(o=FB(v)).offset=h("labelOffset"),BB(x={enter:a={opacity:KS,x:{signal:_,offset:o},y:b},update:u={opacity:tB,text:{field:qS},x:a.x,y:a.y},exit:{opacity:KS}},{align:h("labelAlign"),baseline:h("labelBaseline"),fill:h("labelColor"),fillOpacity:h("labelOpacity"),font:h("labelFont"),fontSize:h("labelFontSize"),fontStyle:h("labelFontStyle"),fontWeight:h("labelFontWeight"),limit:h("labelLimit")}),l=RB(HB,kB,HS,WS,y,x,e.labels),x={enter:{noBound:{value:!m},width:KS,height:m?FB(m):KS,opacity:KS},exit:{opacity:KS},update:u={opacity:tB,row:{signal:null},column:{signal:null}}},h.isVertical(!0)?(c=`ceil(item.mark.items.length / ${A})`,u.row.signal=`${w}%${c}`,u.column.signal=`floor(${w} / ${c})`,f={field:["row",w]}):(u.row.signal=`floor(${w} / ${A})`,u.column.signal=`${w} % ${A}`,f={field:w}),u.column.signal=`${i}?${u.column.signal}:${w}`,(t=JB(pB,null,g,r={facet:{data:r,name:"value",groupby:LS}},p,OB(x,d,QS),[s,l])).sort=f,t}const KB='item.orient === "left"',tO='item.orient === "right"',nO=`(${KB} || ${tO})`,eO=`datum.vgrad && ${nO}`,rO=qB('"top"','"bottom"','"middle"'),iO=`datum.vgrad && ${tO} ? (${qB('"right"','"left"','"center"')}) : (${nO} && !(datum.vgrad && ${KB})) ? "left" : ${UB}`,aO=`item._anchor || (${nO} ? "middle" : "start")`,uO=`${eO} ? (${KB} ? -90 : 90) : 0`,oO=`${nO} ? (datum.vgrad ? (${tO} ? "bottom" : "top") : ${rO}) : "top"`;function sO(t,n){var e;return o(t)&&(t.signal?e=t.signal:t.path?e="pathShape("+lO(t.path)+")":t.sphere&&(e="geoShape("+lO(t.sphere)+', {type: "Sphere"})')),e?n.signalRef(e):!!t}function lO(t){return o(t)&&t.signal?t.signal:l(t)}function cO(t){var n=t.role||"";return n.indexOf("axis")&&n.indexOf("legend")?t.type===jB?pB:n||hB:n}function fO(t){return{marktype:t.type,name:t.name||void 0,role:t.role||cO(t),zindex:+t.zindex||void 0}}function hO(t,n){return t&&t.signal?n.signalRef(t.signal):!1!==t}function dO(t,n){var e=Hr(t.type);e||i("Unrecognized transform type: "+l(t.type));var r=oF(e.type.toLowerCase(),null,pO(e,t,n));return t.signal&&n.addSignal(t.signal,n.proxy(r)),r.metadata=e.metadata||{},r}function pO(t,n,e){var r,i,a,u={};for(i=0,a=t.params.length;i<a;++i)u[(r=t.params[i]).name]=gO(r,n,e);return u}function gO(t,n,e){var r=t.type,a=n[t.name];return"index"===r?function(t,n,e){s(n.from)||i('Lookup "from" parameter must be a string literal.');return e.getData(n.from).lookupRef(e,n.key)}(0,n,e):void 0!==a?"param"===r?function(t,n,e){var r=n[t.name];return t.array?(u(r)||i("Expected an array of sub-parameters. Instead: "+l(r)),r.map(function(n){return vO(t,n,e)})):vO(t,r,e)}(t,n,e):"projection"===r?e.projectionRef(n[t.name]):t.array&&!yF(a)?a.map(function(n){return mO(t,n,e)}):mO(t,a,e):void(t.required&&i("Missing required "+l(n.type)+" parameter: "+l(t.name)))}function mO(t,n,e){var r=t.type;if(yF(n))return yO(r)?i("Expression references can not be signals."):xO(r)?e.fieldRef(n):_O(r)?e.compareRef(n):e.signalRef(n.signal);var a,u=t.expr||xO(r);return u&&((a=n)&&a.expr)?e.exprRef(n.expr,n.as):u&&function(t){return t&&t.field}(n)?fF(n.field,n.as):yO(r)?aF(n,e):function(t){return"data"===t}(r)?lF(e.getData(n).values):xO(r)?fF(n):_O(r)?e.compareRef(n):n}function vO(t,n,e){var r,a,u,o,s;for(o=0,s=t.params.length;o<s;++o){for(u in(a=t.params[o]).key)if(a.key[u]!==n[u]){a=null;break}if(a)break}return a||i("Unsupported parameter: "+l(n)),r=Z(pO(a,n,e),a.key),lF(e.add(fS(r)))}function yO(t){return"expr"===t}function xO(t){return"field"===t}function _O(t){return"compare"===t}function bO(t,n){return t.$ref?t:t.data&&t.data.$ref?t.data:lF(n.getData(t.data).output)}function wO(t,n,e,r,i){this.scope=t,this.input=n,this.output=e,this.values=r,this.aggregate=i,this.index={}}wO.fromEntries=function(t,n){var e=n.length,r=1,i=n[0],a=n[e-1],u=n[e-2],o=null;for(i&&"load"===i.type&&(i=n[1]),t.add(n[0]);r<e;++r)n[r].params.pulse=lF(n[r-1]),t.add(n[r]),"aggregate"===n[r].type&&(o=n[r]);return new wO(t,i,u,a,o)};var AO=wO.prototype;function MO(t){return s(t)?t:null}function kO(t,n,e){var r,i=gF(e.op,e.field);if(n.ops){for(var a=0,u=n.as.length;a<u;++a)if(n.as[a]===i)return}else n.ops=["count"],n.fields=[null],n.as=["count"];e.op&&(n.ops.push((r=e.op.signal)?t.signalRef(r):e.op),n.fields.push(t.fieldRef(e.field)),n.as.push(i))}function EO(t,n,e,r,i,a,u){var s,l,c=n[e]||(n[e]={}),f=function(t){return o(t)?(t.order===pF?"-":"+")+gF(t.op,t.field):""}(a),h=MO(i);if(null!=h&&(t=n.scope,s=c[h+=f?"|"+f:""]),!s){var d=a?{field:hF,pulse:n.countsRef(t,i,a)}:{field:t.fieldRef(i),pulse:lF(n.output)};f&&(d.sort=t.sortRef(a)),l=t.add(oF(r,void 0,d)),u&&(n.index[i]=l),s=lF(l),null!=h&&(c[h]=s)}return s}function CO(t,n,e){var r,i=t.remove,a=t.insert,u=t.toggle,o=t.modify,s=t.values,l=n.add(sF());r=aF("if("+t.trigger+',modify("'+e+'",'+[a,i,u,o,s].map(function(t){return null==t?"null":t}).join(",")+"),0)",n),l.update=r.$expr,l.params=r.$params}function DO(t,n){var e,r,a,u,o,s,c,f,h,d,p,g,m,v,y=cO(t),x=t.type===jB,_=t.from&&t.from.facet,b=t.layout||y===pB||y===dB,w=y===hB||b||_,A=t.overlap;a=function(t,n,e){var r,a,u,o,s;return t?(r=t.facet)&&(n||i("Only group marks can be faceted."),null!=r.field?o=s=bO(r,e):(t.data?s=lF(e.getData(t.data).aggregate):((u=dO(Z({type:"aggregate",groupby:W(r.groupby)},r.aggregate),e)).params.key=e.keyRef(r.groupby),u.params.pulse=bO(r,e),o=s=lF(e.add(u))),a=e.keyRef(r.groupby,!0))):o=lF(e.add(JF(null,[{}]))),o||(o=bO(t,e)),{key:a,pulse:o,parent:s}}(t.from,x,n),d=lF(r=n.add(KF({key:a.key||(t.key?fF(t.key):void 0),pulse:a.pulse,clean:!x}))),r=u=n.add(JF({pulse:d})),r=n.add(oS({markdef:fO(t),interactive:hO(t.interactive,n),clip:sO(t.clip,n),context:{$context:!0},groups:n.lookup(),parent:n.signals.parent?n.signalRef("parent"):null,index:n.markpath(),pulse:lF(r)})),p=lF(r),(r=o=n.add(tS(zB(t.encode,t.type,y,t.style,n,{mod:!1,pulse:p})))).params.parent=n.encode(),t.transform&&t.transform.forEach(function(t){const e=dO(t,n),a=e.metadata;(a.generates||a.changes)&&i("Mark transforms should not generate new data."),a.nomod||(o.params.mod=!0),e.params.pulse=lF(r),n.add(r=e)}),t.sort&&(r=n.add(xS({sort:n.compareRef(t.sort,!0),pulse:lF(r)}))),g=lF(r),(_||b)&&(m=lF(b=n.add(_S({layout:n.objectProperty(t.layout),legends:n.legends,mark:p,pulse:g})))),v=lF(s=n.add(ZF({mark:p,pulse:m||g}))),x&&(w&&((e=n.operators).pop(),b&&e.pop()),n.pushState(g,m||v,d),_?function(t,n,e){var r,a,u,o,s=t.from.facet,c=s.name,f=bO(s,n);s.name||i("Facet must have a name: "+l(s)),s.data||i("Facet must reference a data set: "+l(s)),s.field?o=n.add(hS({field:n.fieldRef(s.field),pulse:f})):s.groupby?o=n.add(eS({key:n.keyRef(s.groupby),group:lF(n.proxy(e.parent)),pulse:f})):i("Facet must specify groupby or field: "+l(s)),a=(r=n.fork()).add(JF()),u=r.add(yS({pulse:lF(a)})),r.addData(c,new wO(r,a,a,u)),r.addSignal("parent",null),o.params.subflow={$subflow:jO(t,r).toRuntime()}}(t,n,a):w?function(t,n,e){var r=n.add(hS({pulse:e.pulse})),i=n.fork();i.add(yS()),i.addSignal("parent",null),r.params.subflow={$subflow:jO(t,i).toRuntime()}}(t,n,a):jO(t,n),n.popState(),w&&(b&&e.push(b),e.push(s))),A&&(v=function(t,n,e){var r,i=t.method,a=t.bound,u=t.separation,o={separation:yF(u)?e.signalRef(u.signal):u,method:yF(i)?e.signalRef(i.signal):i,pulse:n};t.order&&(o.sort=e.compareRef({field:t.order}));a&&(r=a.tolerance,o.boundTolerance=yF(r)?e.signalRef(r.signal):+r,o.boundScale=e.scaleRef(a.scale),o.boundOrient=a.orient);return lF(e.add(cS(o)))}(A,v,n)),c=n.add(mS({pulse:v})),f=n.add(yS({pulse:lF(c)},void 0,n.parent())),null!=t.name&&(h=t.name,n.addData(h,new wO(n,u,c,f)),t.on&&t.on.forEach(function(t){(t.insert||t.remove||t.toggle)&&i("Marks only support modify triggers."),CO(t,n,h)}))}function FO(t,n){var e,r,a,u,o,s,l,c,f,h=n.config.legend,d=t.encode||{},p=d.legend||{},g=p.name||void 0,m=p.interactive,v=p.style,y=PB(t,h),x=JS.reduce(function(n,e){return n||t[e]},0);return x||i("Missing valid scale for legend."),o=function(t,n){var e=t.type||VS;t.type||1!==function(t){return JS.reduce(function(n,e){return n+(t[e]?1:0)},0)}(t)||!t.fill&&!t.stroke||(e=qh(n)?XS:jh(n)?ZS:VS);return e!==XS?e:jh(n)?ZS:XS}(t,n.scaleType(x)),s={title:null!=t.title,type:o,vgrad:"symbol"!==o&&y.isVertical()},l=lF(n.add(JF(null,[s]))),p=OB(function(t,n){var e={enter:{},update:{}};return BB(e,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:t("legendX"),y:t("legendY")}),e}(y,h),p,QS),e={enter:{x:{value:0},y:{value:0}}},c=lF(n.add(aS(a={type:o,scale:n.scaleRef(x),count:n.objectProperty(t.tickCount),values:n.objectProperty(t.values),minstep:n.property(t.tickMinStep),formatType:n.property(t.formatType),formatSpecifier:n.property(t.format)}))),o===XS?(u=[YB(t,x,h,d.gradient),ZB(t,h,d.labels,c)],a.count=a.count||n.signalRef(`max(2,2*floor((${bF(y.gradientLength())})/100))`)):o===ZS?u=[GB(t,x,h,d.gradient,c),ZB(t,h,d.labels,c)]:(r=function(t,n){const e=PB(t,n);return{align:e("gridAlign"),columns:e.entryColumns(),center:{row:!0,column:!1},padding:{row:e("rowPadding"),column:e("columnPadding")}}}(t,h),u=[QB(t,h,d,c,bF(r.columns))],a.size=function(t,n,e){var r=bF(SO("size",t,e)),i=bF(SO("strokeWidth",t,e)),a=bF(function(t,n,e){return LB("fontSize",t)||function(t,n,e){var r=n.config.style[e];return r&&r[t]}("fontSize",n,e)}(e[1].encode,n,HS));return aF(`max(ceil(sqrt(${r})+${i}),${a})`,n)}(t,n,u[0].marks)),u=[JB(AB,null,null,l,m,e,u,r)],s.title&&u.push(function(t,n,e,r){var i,a=PB(t,n);return BB(i={enter:{opacity:KS},update:{opacity:tB,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:KS}},{orient:a("titleOrient"),_anchor:a("titleAnchor"),anchor:{signal:aO},angle:{signal:uO},align:{signal:iO},baseline:{signal:oO},text:t.title,fill:a("titleColor"),fillOpacity:a("titleOpacity"),font:a("titleFont"),fontSize:a("titleFontSize"),fontStyle:a("titleFontStyle"),fontWeight:a("titleFontWeight"),limit:a("titleLimit")},{align:a("titleAlign"),baseline:a("titleBaseline")}),RB(HB,CB,YS,null,r,i,e)}(t,h,d.title,l)),f=JB(bB,v,g,l,m,p,u),t.zindex&&(f.zindex=t.zindex),DO(f,n)}function SO(t,n,e){return n[t]?`scale("${n[t]}",datum)`:LB(t,e[0].encode)}AO.countsRef=function(t,n,e){var r,i,a,u=this.counts||(this.counts={}),o=MO(n);return null!=o&&(t=this.scope,r=u[o]),r?e&&e.field&&kO(t,r.agg.params,e):(a={groupby:t.fieldRef(n,"key"),pulse:lF(this.output)},e&&e.field&&kO(t,a,e),i=t.add(VF(a)),r=t.add(JF({pulse:lF(i)})),r={agg:i,ref:lF(r)},null!=o&&(u[o]=r)),r.ref},AO.tuplesRef=function(){return lF(this.values)},AO.extentRef=function(t,n){return EO(t,this,"extent","extent",n,!1)},AO.domainRef=function(t,n){return EO(t,this,"domain","values",n,!1)},AO.valuesRef=function(t,n,e){return EO(t,this,"vals","values",n,e||!0)},AO.lookupRef=function(t,n){return EO(t,this,"lookup","tupleindex",n,!1)},AO.indataRef=function(t,n){return EO(t,this,"indata","tupleindex",n,!0,!0)};const BO=`item.orient==="${OS}"?-90:item.orient==="${zS}"?90:0`,OO=`item.orient==="${NS}"?"${BS}":"${NS}"`;function zO(t,n){t=s(t)?{text:t}:t;var e,r,i=n.config.title,a=Z({},t.encode);return e=lF(n.add(JF(null,[{}]))),a.name=t.name,a.interactive=t.interactive,r=function(t,n,e,r){var i,a=PB(t,n),u={value:0},o=t.text;return BB(i={enter:{opacity:u},update:{opacity:{value:1}},exit:{opacity:u}},{text:o,orient:a("orient"),anchor:a("anchor"),align:{signal:UB},angle:{signal:BO},baseline:{signal:OO},dx:a("dx"),dy:a("dy"),fill:a("color"),font:a("font"),fontSize:a("fontSize"),fontStyle:a("fontStyle"),fontWeight:a("fontWeight"),frame:a("frame"),limit:a("limit"),offset:a("offset")||0},{align:a("align"),angle:a("angle"),baseline:a("baseline")}),RB(HB,DB,t.style||GS,null,r,i,e)}(t,i,a,e),t.zindex&&(r.zindex=t.zindex),DO(r,n)}function NO(t,n){var e=[];t.transform&&t.transform.forEach(function(t){e.push(dO(t,n))}),t.on&&t.on.forEach(function(e){CO(e,n,t.name)}),n.addDataPipeline(t.name,function(t,n,e){var r,i,a,u,o,s=[],l=null,c=!1,f=!1;t.values?xF(t.values)||xF(t.format)?(s.push(RO(n,t)),s.push(l=TO())):s.push(l=TO({$ingest:t.values,$format:t.format})):t.url?xF(t.url)||xF(t.format)?(s.push(RO(n,t)),s.push(l=TO())):s.push(l=TO({$request:t.url,$format:t.format})):t.source&&(l=r=W(t.source).map(function(t){return lF(n.getData(t).output)}),s.push(null));for(i=0,a=e.length;i<a;++i)u=e[i],o=u.metadata,l||o.source||s.push(l=TO()),s.push(u),o.generates&&(f=!0),o.modifies&&!f&&(c=!0),o.source?l=u:o.changes&&(l=null);r&&(a=r.length-1,s[0]=gS({derive:c,pulse:a?r:r[0]}),(c||a)&&s.splice(1,0,TO()));l||s.push(TO());return s.push(yS({})),s}(t,n,e))}function TO(t){var n=JF({},t);return n.metadata={source:!0},n}function RO(t,n){return uS({url:n.url?t.property(n.url):void 0,values:n.values?t.property(n.values):void 0,format:t.objectProperty(n.format)})}function PO(t,n){return{scale:t.scale,range:n}}function LO(t,n,e,r){var i,a,u,s,l,c,f,h,d,p=PB(t,n),g=t.orient,m=t.gridScale,v=g===OS||g===BS?1:-1,y=function(t,n){if(1===n);else if(o(t)){for(var e=t=Z({},t);null!=e.mult;){if(!o(e.mult))return e.mult*=n,t;e=e.mult=Z({},e.mult)}e.mult=n}else t=n*(t||0);return t}(t.offset,v);return BB(i={enter:a={opacity:KS},update:s={opacity:tB},exit:u={opacity:KS}},{stroke:p("gridColor"),strokeDash:p("gridDash"),strokeDashOffset:p("gridDashOffset"),strokeOpacity:p("gridOpacity"),strokeWidth:p("gridWidth")}),l={scale:t.scale,field:WS,band:p("bandPosition"),round:p("tickRound"),extra:p("tickExtra"),offset:p("tickOffset")},g===BS||g===NS?(c="x",f="y",d="height"):(c="y",f="x",d="width"),h=f+"2",s[c]=a[c]=u[c]=l,m?(s[f]=a[f]={scale:m,range:0,mult:v,offset:y},s[h]=a[h]={scale:m,range:1,mult:v,offset:y}):(s[f]=a[f]={value:0,offset:y},s[h]=a[h]={signal:d,mult:v,offset:y}),RB(IB,vB,null,WS,r,i,e)}function qO(t,n,e,r,i){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+n+","+e+","+r+","+i+")"}}function UO(t,n){var e,r,i,a,u,o,s=function(t,n){var e=n.config,r=t.orient,i=r===BS||r===NS?e.axisX:e.axisY,a=e["axis"+r[0].toUpperCase()+r.slice(1)],u="band"===n.scaleType(t.scale)&&e.axisBand;return i||a||u?Z({},e.axis,i,a,u):e.axis}(t,n),l=t.encode||{},c=l.axis||{},f=c.name||void 0,h=c.interactive,d=c.style,p=PB(t,s);return e={orient:t.orient,ticks:!!p("ticks"),labels:!!p("labels"),grid:!!p("grid"),domain:!!p("domain"),title:null!=t.title},r=lF(n.add(JF({},[e]))),c=OB({update:{offset:FB(p("offset")||0),position:FB(_F(t.position,0)),titlePadding:FB(p("titlePadding")),minExtent:FB(p("minExtent")),maxExtent:FB(p("maxExtent")),range:{signal:`abs(span(range("${t.scale}")))`}}},l.axis,QS),i=lF(n.add(XF({scale:n.scaleRef(t.scale),extra:n.property(p("tickExtra")),count:n.objectProperty(t.tickCount),values:n.objectProperty(t.values),minstep:n.property(t.tickMinStep),formatType:n.property(t.formatType),formatSpecifier:n.property(t.format)}))),o=[],e.grid&&o.push(LO(t,s,l.grid,i)),e.ticks&&(a=p("tickSize"),o.push(function(t,n,e,r,i){var a,u,o,s,l,c,f=PB(t,n),h=t.orient,d=h===OS||h===BS?-1:1;return BB(a={enter:u={opacity:KS},update:s={opacity:tB},exit:o={opacity:KS}},{stroke:f("tickColor"),strokeDash:f("tickDash"),strokeDashOffset:f("tickDashOffset"),strokeOpacity:f("tickOpacity"),strokeWidth:f("tickWidth")}),(l=FB(i)).mult=d,c={scale:t.scale,field:WS,band:f("bandPosition"),round:f("tickRound"),extra:f("tickExtra"),offset:f("tickOffset")},h===BS||h===NS?(s.y=u.y=KS,s.y2=u.y2=l,s.x=u.x=o.x=c):(s.x=u.x=KS,s.x2=u.x2=l,s.y=u.y=o.y=c),RB(IB,xB,null,WS,r,a,e)}(t,s,l.ticks,i,a))),e.labels&&(a=e.ticks?a:0,o.push(function(t,n,e,r,i){var a,u,o,s,l,c,f,h,d,p,g=PB(t,n),m=t.orient,v=m===OS||m===BS?-1:1,y=m===BS||m===NS,x=t.scale,_=bF(g("labelFlush")),b=bF(g("labelFlushOffset")),w=0===_||!!_,A=g("labelAlign"),M=g("labelBaseline");return(o=FB(i)).mult=v,o.offset=FB(g("labelPadding")||0),o.offset.mult=v,s={scale:x,field:WS,band:.5,offset:g("tickOffset")},y?(l=A||(w?qO(x,_,'"left"','"right"','"center"'):"center"),c=M||(m===BS?"bottom":"top"),f=!A):(l=A||(m===zS?"left":"right"),c=M||(w?qO(x,_,'"top"','"bottom"','"middle"'):"middle"),f=!M),f=f&&w&&b?qO(x,_,"-"+b,b,0):null,BB(a={enter:u={opacity:KS,x:y?s:o,y:y?o:s},update:{opacity:tB,text:{field:qS},x:u.x,y:u.y},exit:{opacity:KS,x:u.x,y:u.y}},{[y?"dx":"dy"]:f,align:l,baseline:c,angle:g("labelAngle"),fill:g("labelColor"),fillOpacity:g("labelOpacity"),font:g("labelFont"),fontSize:g("labelFontSize"),fontWeight:g("labelFontWeight"),fontStyle:g("labelFontStyle"),limit:g("labelLimit")}),h=g("labelBound"),d=g("labelOverlap"),p=g("labelSeparation"),t=RB(HB,yB,HS,WS,r,a,e),(d||h)&&(t.overlap={separation:p,method:d,order:"datum.index",bound:h?{scale:x,orient:m,tolerance:h}:null}),t}(t,s,l.labels,i,a))),e.domain&&o.push(function(t,n,e,r){var i,a,u,o,s,l,c=PB(t,n),f=t.orient;return BB(i={enter:a={opacity:KS},update:u={opacity:tB},exit:{opacity:KS}},{stroke:c("domainColor"),strokeDash:c("domainDash"),strokeDashOffset:c("domainDashOffset"),strokeWidth:c("domainWidth"),strokeOpacity:c("domainOpacity")}),f===BS||f===NS?(o="x",l="y"):(o="y",l="x"),s=o+"2",a[l]=KS,u[o]=a[o]=PO(t,0),u[s]=a[s]=PO(t,1),RB(IB,mB,null,null,r,i,e)}(t,s,l.domain,r)),e.title&&o.push(function(t,n,e,r){var i,a,u,o,s=PB(t,n),l=t.orient,c=l===OS||l===BS?-1:1,f=l===BS||l===NS;return i={enter:a={opacity:KS,anchor:FB(s("titleAnchor")),align:{signal:UB}},update:u=Z({},a,{opacity:tB,text:FB(t.title)}),exit:{opacity:KS}},o={signal:`lerp(range("${t.scale}"), ${qB(0,1,.5)})`},f?(u.x=o,a.angle={value:0},a.baseline={value:l===BS?"bottom":"top"}):(u.y=o,a.angle={value:90*c},a.baseline={value:"bottom"}),BB(i,{angle:s("titleAngle"),baseline:s("titleBaseline"),fill:s("titleColor"),fillOpacity:s("titleOpacity"),font:s("titleFont"),fontSize:s("titleFontSize"),fontStyle:s("titleFontStyle"),fontWeight:s("titleFontWeight"),limit:s("titleLimit")},{align:s("titleAlign")}),!SB(i,"x",s("titleX"),"update")&&!f&&!TB("x",e)&&(i.enter.auto={value:!0}),!SB(i,"y",s("titleY"),"update")&&f&&!TB("y",e)&&(i.enter.auto={value:!0}),RB(HB,_B,YS,null,r,i,e)}(t,s,l.title,r)),u=JB(gB,d,f,r,h,c,o),t.zindex&&(u.zindex=t.zindex),DO(u,n)}function jO(t,n,e){var r=W(t.signals),a=W(t.scales);return e||r.forEach(function(t){iF(t,n)}),W(t.projections).forEach(function(t){!function(t,n){var e={};for(var r in t)"name"!==r&&(e[r]=SS(t[r],r,n));n.addProjection(t.name,e)}(t,n)}),a.forEach(function(t){AS(t,n)}),W(t.data).forEach(function(t){NO(t,n)}),a.forEach(function(t){MS(t,n)}),r.forEach(function(t){!function(t,n){var e=n.getSignal(t.name),r=t.update;t.init&&(r?i("Signals can not include both init and update expressions."):(r=t.init,e.initonly=!0)),r&&(r=aF(r,n),e.update=r.$expr,e.params=r.$params),t.on&&t.on.forEach(function(t){HF(t,n,e.id)})}(t,n)}),W(t.axes).forEach(function(t){UO(t,n)}),W(t.marks).forEach(function(t){DO(t,n)}),W(t.legends).forEach(function(t){FO(t,n)}),t.title&&zO(t.title,n),n.parseLambdas(),n}var $O=yt(["width","height","padding","autosize"]);function IO(t,n){var e,r,i,a,u,s=n.config;return n.background=t.background||s.background,n.eventConfig=s.events,u=lF(n.root=n.add(sF())),n.addSignal("width",t.width||0),n.addSignal("height",t.height||0),n.addSignal("padding",function(t,n){return o(t=t||n.padding)?{top:tF(t.top),bottom:tF(t.bottom),left:tF(t.left),right:tF(t.right)}:{top:e=tF(t),bottom:e,left:e,right:e};var e}(t.padding,s)),n.addSignal("autosize",function(t,n){return o(t=t||n.autosize)?t:{type:t||"pad"}}(t.autosize,s)),n.legends=n.objectProperty(s.legend&&s.legend.layout),W(t.signals).forEach(function(t){$O[t.name]||iF(t,n)}),r=n.add(JF()),i=OB({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t.encode),i=n.add(tS(zB(i,jB,dB,t.style,n,{pulse:lF(r)}))),a=n.add(_S({layout:n.objectProperty(t.layout),legends:n.legends,autosize:n.signalRef("autosize"),mark:u,pulse:lF(i)})),n.operators.pop(),n.pushState(lF(i),lF(a),null),jO(t,n,!0),n.operators.push(a),e=n.add(ZF({mark:u,pulse:lF(a)})),e=n.add(mS({pulse:lF(e)})),e=n.add(yS({pulse:lF(e)})),n.addData("root",new wO(n,r,r,e)),n}function WO(t){this.config=t,this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.background=null,this.eventConfig=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function HO(t){this.config=t.config,this.legends=t.legends,this.field=Object.create(t.field),this.signals=Object.create(t.signals),this.lambdas=Object.create(t.lambdas),this.scales=Object.create(t.scales),this.events=Object.create(t.events),this.data=Object.create(t.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++t._nextsub[0],this._nextsub=t._nextsub,this._parent=t._parent.slice(),this._encode=t._encode.slice(),this._lookup=t._lookup.slice(),this._markpath=t._markpath}var YO=WO.prototype=HO.prototype;function GO(t){return(u(t)?function(t){for(var n,e="[",r=0,i=t.length;r<i;++r)n=t[r],e+=(r>0?",":"")+(o(n)?n.signal||GO(n):l(n));return e+"]"}:function(t){var n,e,r="{",i=0;for(n in t)e=t[n],r+=(++i>1?",":"")+l(n)+":"+(o(e)?e.signal||GO(e):l(e));return r+"}"})(t)}function VO(t){return(t||[]).reduce((t,n)=>{for(var e in n){var r="legend"===e?{layout:1}:"style"===e||null;XO(t,e,n[e],r)}return t},{padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:KO},area:{fill:KO},image:null,line:{stroke:KO,strokeWidth:QO},path:{stroke:KO},rect:{fill:KO},rule:{stroke:tz},shape:{stroke:KO},symbol:{fill:KO,size:64},text:{fill:tz,font:ZO,fontSize:11},style:{"guide-label":{fill:tz,font:ZO,fontSize:10},"guide-title":{fill:tz,font:ZO,fontSize:11,fontWeight:"bold"},"group-title":{fill:tz,font:ZO,fontSize:13,fontWeight:"bold"},point:{size:JO,strokeWidth:QO,shape:"circle"},circle:{size:JO,strokeWidth:QO},square:{size:JO,strokeWidth:QO,shape:"square"},cell:{fill:"transparent",stroke:ez}},title:{orient:"top",anchor:"middle",offset:4},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:nz,grid:!1,gridWidth:1,gridColor:ez,labels:!0,labelAngle:0,labelLimit:180,labelPadding:2,ticks:!0,tickColor:nz,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-1},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:ez,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:nz,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"]}})}function XO(t,n,e,r){var i,a;if(o(e)&&!u(e))for(i in a=o(t[n])?t[n]:t[n]={},e)r&&(!0===r||r[i])?XO(a,i,e[i]):a[i]=e[i];else t[n]=e}YO.fork=function(){return new HO(this)},YO.isSubscope=function(){return this._subid>0},YO.toRuntime=function(){return this.finish(),{background:this.background,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig}},YO.id=function(){return(this._subid?this._subid+":":0)+this._id++},YO.add=function(t){return this.operators.push(t),t.id=this.id(),t.refs&&(t.refs.forEach(function(n){n.$ref=t.id}),t.refs=null),t},YO.proxy=function(t){var n=t instanceof uF?lF(t):t;return this.add(pS({value:n}))},YO.addStream=function(t){return this.streams.push(t),t.id=this.id(),t},YO.addUpdate=function(t){return this.updates.push(t),t},YO.finish=function(){var t,n;for(t in this.root&&(this.root.root=!0),this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function e(t,n,e){var r;t&&((r=t.data||(t.data={}))[n]||(r[n]=[])).push(e)}for(t in this.data)for(var r in e((n=this.data[t]).input,t,"input"),e(n.output,t,"output"),e(n.values,t,"values"),n.index)e(n.index[r],t,"index:"+r);return this},YO.pushState=function(t,n,e){this._encode.push(lF(this.add(yS({pulse:t})))),this._parent.push(n),this._lookup.push(e?lF(this.proxy(e)):null),this._markpath.push(-1)},YO.popState=function(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},YO.parent=function(){return k(this._parent)},YO.encode=function(){return k(this._encode)},YO.lookup=function(){return k(this._lookup)},YO.markpath=function(){var t=this._markpath;return++t[t.length-1]},YO.fieldRef=function(t,n){if(s(t))return fF(t,n);t.signal||i("Unsupported field reference: "+l(t));var e,r=t.signal,a=this.field[r];return a||(e={name:this.signalRef(r)},n&&(e.as=n),this.field[r]=a=lF(this.add(rS(e)))),a},YO.compareRef=function(t,n){function e(t){return yF(t)?(i=!0,r.signalRef(t.signal)):function(t){return t&&t.expr}(t)?(i=!0,r.exprRef(t.expr)):t}var r=this,i=!1,a=W(t.field).map(e),u=W(t.order).map(e);return n&&a.push(cF),i?lF(this.add(QF({fields:a,orders:u}))):dF(a,u)},YO.keyRef=function(t,n){var e=this.signals,r=!1;return t=W(t).map(function(t){return yF(t)?(r=!0,lF(e[t.signal])):t}),r?lF(this.add(iS({fields:t,flat:n}))):function(t,n){var e={$key:t};return n&&(e.$flat=!0),e}(t,n)},YO.sortRef=function(t){if(!t)return t;var n=[gF(t.op,t.field),cF],e=t.order||"ascending";return e.signal?lF(this.add(QF({fields:n,orders:[e=this.signalRef(e.signal),e]}))):dF(n,[e,e])},YO.event=function(t,n){var e=t+":"+n;if(!this.events[e]){var r=this.id();this.streams.push({id:r,source:t,type:n}),this.events[e]=r}return this.events[e]},YO.addSignal=function(t,n){this.signals.hasOwnProperty(t)&&i("Duplicate signal name: "+l(t));var e=n instanceof uF?n:this.add(sF(n));return this.signals[t]=e},YO.getSignal=function(t){return this.signals[t]||i("Unrecognized signal name: "+l(t)),this.signals[t]},YO.signalRef=function(t){return this.signals[t]?lF(this.signals[t]):(this.lambdas.hasOwnProperty(t)||(this.lambdas[t]=this.add(sF(null))),lF(this.lambdas[t]))},YO.parseLambdas=function(){for(var t=Object.keys(this.lambdas),n=0,e=t.length;n<e;++n){var r=t[n],i=aF(r,this),a=this.lambdas[r];a.params=i.$params,a.update=i.$expr}},YO.property=function(t){return t&&t.signal?this.signalRef(t.signal):t},YO.objectProperty=function(t){return t&&o(t)?this.signalRef(t.signal||GO(t)):t},YO.exprRef=function(t,n){var e={expr:aF(t,this)};return n&&(e.expr.$name=n),lF(this.add(nS(e)))},YO.addBinding=function(t,n){this.bindings||i("Nested signals do not support binding: "+l(t)),this.bindings.push(Z({signal:t},n))},YO.addScaleProj=function(t,n){this.scales.hasOwnProperty(t)&&i("Duplicate scale or projection name: "+l(t)),this.scales[t]=this.add(n)},YO.addScale=function(t,n){this.addScaleProj(t,vS(n))},YO.addProjection=function(t,n){this.addScaleProj(t,dS(n))},YO.getScale=function(t){return this.scales[t]||i("Unrecognized scale name: "+l(t)),this.scales[t]},YO.projectionRef=YO.scaleRef=function(t){return lF(this.getScale(t))},YO.projectionType=YO.scaleType=function(t){return this.getScale(t).params.type},YO.addData=function(t,n){return this.data.hasOwnProperty(t)&&i("Duplicate data set name: "+l(t)),this.data[t]=n},YO.getData=function(t){return this.data[t]||i("Undefined data set name: "+l(t)),this.data[t]},YO.addDataPipeline=function(t,n){return this.data.hasOwnProperty(t)&&i("Duplicate data set name: "+l(t)),this.addData(t,wO.fromEntries(this,n))};var ZO="sans-serif",JO=30,QO=2,KO="#4c78a8",tz="#000",nz="#888",ez="#ddd";Z(Wr,ou,vh,Xm,zb,Ow,XA,tM,jM,nk,lk),t.Bounds=Hu,t.CanvasHandler=Lc,t.CanvasRenderer=Ic,t.Dataflow=qr,t.Debug=A,t.Error=_,t.EventStream=It,t.Gradient=Qu,t.GroupItem=to,t.Handler=Oc,t.Info=w,t.Item=Ku,t.Marks=mc,t.MultiPulse=zr,t.None=x,t.Operator=qt,t.Parameters=Tt,t.Pulse=Dr,t.RenderType=wf,t.Renderer=Tc,t.ResourceLoader=ro,t.SVGHandler=Gc,t.SVGRenderer=ef,t.SVGStringRenderer=mf,t.Scenegraph=Ac,t.Transform=$r,t.View=VD,t.Warn=b,t.accessor=n,t.accessorFields=r,t.accessorName=e,t.array=W,t.bin=ni,t.bootstrapCI=_i,t.boundClip=Sf,t.boundContext=al,t.boundItem=vc,t.boundMark=xc,t.boundStroke=el,t.changeset=zt,t.clampRange=H,t.closeTag=Jc,t.compare=G,t.constant=V,t.debounce=X,t.definition=Hr,t.domChild=Dc,t.domClear=Fc,t.domCreate=Ec,t.domFind=Cc,t.error=i,t.expressionFunction=_D,t.extend=Z,t.extent=J,t.extentIndex=Q,t.falsy=v,t.fastmap=tt,t.field=c,t.flush=nt,t.font=cc,t.fontFamily=lc,t.fontSize=uc,t.format=Dn,t.formatLocale=hg,t.formats=Fn,t.id=h,t.identity=d,t.inferType=rn,t.inferTypes=an,t.ingest=Dt,t.inherits=et,t.inrange=rt,t.interpolate=im,t.interpolateColors=nm,t.interpolateRange=tm,t.intersect=kf,t.intersectBoxLine=pl,t.intersectPath=cl,t.intersectPoint=fl,t.intersectRule=dl,t.isArray=u,t.isBoolean=it,t.isDate=at,t.isFunction=Y,t.isNumber=ut,t.isObject=o,t.isRegExp=ot,t.isString=s,t.isTuple=kt,t.key=st,t.lerp=lt,t.loader=wr,t.logger=M,t.merge=ct,t.one=g,t.openTag=Zc,t.pad=ht,t.panLinear=z,t.panLog=N,t.panPow=T,t.panSymlog=R,t.parse=function(t,n){return o(t)||i("Input Vega specification must be an object."),IO(t,new WO(VO([n,t.config]))).toRuntime()},t.pathCurves=ys,t.pathEqual=zf,t.pathParse=bs,t.pathRectangle=$s,t.pathRender=Os,t.pathSymbols=Ts,t.pathTrail=Is,t.peek=k,t.point=Bc,t.projection=Ab,t.quantizeInterpolator=em,t.quarter=$,t.quartiles=bi,t.randomInteger=function(n,e){null==e&&(e=n,n=0);var r,i,a,u={};return u.min=function(t){return arguments.length?(a=i-(r=t||0),u):r},u.max=function(t){return arguments.length?(a=(i=t||0)-r,u):i},u.sample=function(){return r+Math.floor(a*t.random())},u.pdf=function(t){return t===Math.floor(t)&&t>=r&&t<i?1/a:0},u.cdf=function(t){var n=Math.floor(t);return n<r?0:n>=i?1:(n-r+1)/a},u.icdf=function(t){return t>=0&&t<=1?r-1+Math.floor(t*a):NaN},u.min(n).max(e)},t.randomKDE=Ai,t.randomLCG=function(t){return function(){return(t=(1103515245*t+12345)%2147483647)/2147483647}},t.randomMixture=Mi,t.randomNormal=wi,t.randomUniform=ki,t.read=br,t.regressionExp=Oi,t.regressionLinear=Si,t.regressionLoess=Li,t.regressionLog=Bi,t.regressionPoly=Ti,t.regressionPow=zi,t.regressionQuad=Ni,t.renderModule=Mf,t.repeat=ft,t.resetSVGClipId=function(){Tl=1},t.responseType=Sn,t.runtime=OD,t.runtimeContext=ND,t.sampleCurve=$i,t.scale=Zg,t.sceneEqual=Of,t.sceneFromJSON=wc,t.scenePickVisit=wl,t.sceneToJSON=bc,t.sceneVisit=bl,t.sceneZOrder=_l,t.scheme=sm,t.setRandom=function(n){t.random=n},t.span=dt,t.splitAccessPath=a,t.stringValue=l,t.textMetrics=nc,t.timeFormatLocale=_r,t.timeInterval=Wh,t.toBoolean=pt,t.toDate=mt,t.toNumber=E,t.toSet=yt,t.toString=vt,t.transform=Yr,t.transforms=Wr,t.truncate=xt,t.truthy=m,t.tupleid=Et,t.typeParsers=tn,t.utcquarter=I,t.version="5.4.0",t.visitArray=_t,t.zero=p,t.zoomLinear=L,t.zoomLog=q,t.zoomPow=U,t.zoomSymlog=j,Object.defineProperty(t,"__esModule",{value:!0})});
diff --git a/src/Eventlog/Args.hs b/src/Eventlog/Args.hs
--- a/src/Eventlog/Args.hs
+++ b/src/Eventlog/Args.hs
@@ -1,4 +1,6 @@
 {-# LANGUAGE OverloadedStrings #-}
+-- Warning turned off for CI
+{-# OPTIONS_GHC -Wwarn=unused-imports #-}
 module Eventlog.Args
   (
     args
@@ -9,6 +11,7 @@
 
 import Options.Applicative
 import Data.Text (Text)
+-- Used for GHC 8.6.5
 import Data.Semigroup ((<>))
 import Control.Applicative (optional)
 
diff --git a/src/Eventlog/Events.hs b/src/Eventlog/Events.hs
--- a/src/Eventlog/Events.hs
+++ b/src/Eventlog/Events.hs
@@ -1,7 +1,4 @@
-{-# LANGUAGE BangPatterns #-}
 {-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE PatternGuards #-}
-{-# LANGUAGE ViewPatterns #-}
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE NamedFieldPuns #-}
 {-# LANGUAGE StrictData #-}
@@ -37,6 +34,7 @@
 fromNano :: Word64 -> Double
 fromNano e = fromIntegral e * 1e-9
 
+
 chunk :: Args -> FilePath -> IO ProfData
 chunk a f = do
   (EventLog _ e) <- either error id <$> readEventLogFromFile f
@@ -80,7 +78,7 @@
   return $ (elHeader el, elBucketMap el, ccMap, fir : reverse (las: normalise frames) , traces)
 
 normalise :: [FrameEL] -> [Frame]
-normalise fs = map (\(FrameEL t ss) -> Frame (fromNano t) ss) fs
+normalise = map (\(FrameEL t ss) -> Frame (fromNano t) ss)
 
 type BucketMap = Map.Map Bucket (Text, Maybe [Word32])
 
diff --git a/src/Eventlog/HeapProf.hs b/src/Eventlog/HeapProf.hs
--- a/src/Eventlog/HeapProf.hs
+++ b/src/Eventlog/HeapProf.hs
@@ -57,7 +57,7 @@
 parseSample s =
   let [k,vs] = words s
       !v = readDouble vs
-  in (Sample (Bucket k) v)
+  in Sample (Bucket k) v
 
 
 sampleTime :: Text -> Text -> Double
diff --git a/src/Eventlog/HtmlTemplate.hs b/src/Eventlog/HtmlTemplate.hs
--- a/src/Eventlog/HtmlTemplate.hs
+++ b/src/Eventlog/HtmlTemplate.hs
@@ -17,6 +17,7 @@
 import Eventlog.Args
 import Eventlog.Types (Header(..), HeapProfBreakdown(..))
 import Eventlog.VegaTemplate
+import Eventlog.VegaVersions
 import Paths_eventlog2html
 import Data.Version
 import Control.Monad
@@ -45,28 +46,30 @@
   , "console.log(colour_scheme);" ]
 
 
-data_sets :: [Text]
-data_sets = [
-    ".insert(\"data_json_samples\", data_json.samples)"
-  , ".insert(\"data_json_traces\", data_json.traces)" ]
+data_sets :: IncludeTraceData -> [Text]
+data_sets itd = ["res.view.insert(\"data_json_samples\", data_json.samples)"]
+    ++ ["; res.view.insert(\"data_json_traces\", data_json.traces)" | TraceData <- [itd] ]
 
-encloseScript :: VizID -> Text -> Html
+data IncludeTraceData = TraceData | NoTraceData
+
+encloseScript :: IncludeTraceData -> VizID -> Text -> Html
 encloseScript = encloseScriptX True
 
-encloseRawVegaScript :: VizID -> Text -> Html
+encloseRawVegaScript :: IncludeTraceData -> VizID -> Text -> Html
 encloseRawVegaScript = encloseScriptX False
 
-encloseScriptX :: Bool -> VizID -> Text -> Html
-encloseScriptX insert_data_sets vid vegaspec = preEscapedToHtml $ T.unlines ([
+encloseScriptX :: Bool -> IncludeTraceData -> VizID -> Text -> Html
+encloseScriptX insert_data_sets itd vid vegaspec = preEscapedToHtml $ T.unlines ([
   "var yourVlSpec" `append` vidt `append`"= " `append` vegaspec  `append` ";"
   , "vegaEmbed('#vis" `append` vidt `append` "', yourVlSpec" `append` vidt `append` ")"
-  , ".then((res) => "
-  , "res.view" ]
+  , ".then((res) => { " ]
 -- For the 4 vega lite charts we dynamically insert the data after the
 -- chart is created to avoid duplicating it. For the vega chart, this
 -- causes a harmless error so we just don't do it.
-  ++ (if insert_data_sets then data_sets else []) ++
-  [ ".runAsync());" ])
+  ++ (if insert_data_sets then data_sets itd else []) ++
+  [ "; res.view.resize()"
+  , "; res.view.runAsync()"
+  , "})" ])
   where
     vidt = T.pack $ show vid
 
@@ -86,9 +89,9 @@
         H.style  $ preEscapedToHtml milligram
         H.style  $ preEscapedToHtml normalizecss
       else do
-        script ! src "https://cdn.jsdelivr.net/npm/vega@5.4.0" $ ""
-        script ! src "https://cdn.jsdelivr.net/npm/vega-lite@3.3.0" $ ""
-        script ! src "https://cdn.jsdelivr.net/npm/vega-embed@4.2.0" $ ""
+        script ! src (fromString $ "https://cdn.jsdelivr.net/npm/vega@" ++ vegaVersion) $ ""
+        script ! src (fromString $ "https://cdn.jsdelivr.net/npm/vega-lite@" ++ vegaLiteVersion) $ ""
+        script ! src (fromString $ "https://cdn.jsdelivr.net/npm/vega-embed@" ++ vegaEmbedVersion) $ ""
         link ! rel "stylesheet" ! href "//fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic"
         link ! rel "stylesheet" ! href "//cdn.rawgit.com/necolas/normalize.css/master/normalize.css"
         link ! rel "stylesheet" ! href "//cdn.rawgit.com/milligram/milligram/master/dist/milligram.min.css"
@@ -134,12 +137,12 @@
         button ! class_ "tablink button-black" ! onclick "changeTab('linechart', this)" $ "Linechart"
         when (isJust descs) $ do
           button ! class_ "tablink button-black" ! onclick "changeTab('cost-centres', this)" $ "Cost Centres"
-
+    let itd = if noTraces as then NoTraceData else TraceData
     H.div ! class_ "row" $ do
       H.div ! class_ "column" $ do
         mapM_ (\(vid, chartname, conf) ->
                   H.div ! A.id chartname ! class_ "tabviz" $ do
-                    renderChart True vid
+                    renderChart itd True vid
                       (TL.toStrict (encodeToLazyText (vegaJson (htmlConf as conf)))))
           [(1, "areachart",  AreaChart Stacked)
           ,(2, "normalizedchart", AreaChart Normalized)
@@ -148,25 +151,25 @@
 
         when (isJust descs) $ do
           H.div ! A.id "cost-centres" ! class_ "tabviz" $ do
-            renderChart False 5 treevega
+            renderChart itd False 5 treevega
     script $ preEscapedToHtml tablogic
 
 
 htmlConf :: Args -> ChartType -> ChartConfig
 htmlConf as ct = ChartConfig 1200 1000 (not (noTraces as)) (userColourScheme as) ct (fromIntegral <$> (fixedYAxis as))
 
-renderChart :: Bool -> VizID -> Text -> Html
-renderChart vega_lite vid vegaSpec = do
+renderChart :: IncludeTraceData -> Bool -> VizID -> Text -> Html
+renderChart itd vega_lite vid vegaSpec = do
     H.div ! A.id (fromString $ "vis" ++ show vid) ! class_ "chart" $ ""
     script ! type_ "text/javascript" $ do
       if vega_lite
-        then encloseScript vid vegaSpec
-        else encloseRawVegaScript vid vegaSpec
+        then encloseScript itd vid vegaSpec
+        else encloseRawVegaScript itd vid vegaSpec
 
-renderChartWithJson :: Int -> Value -> Text -> Html
-renderChartWithJson k dat vegaSpec = do
+renderChartWithJson :: IncludeTraceData -> Int -> Value -> Text -> Html
+renderChartWithJson itd k dat vegaSpec = do
     script $ insertJsonData dat
-    renderChart True k vegaSpec
+    renderChart itd True k vegaSpec
 
 
 templateString :: Header -> Value -> Maybe Value -> Args -> String
diff --git a/src/Eventlog/Javascript.hs b/src/Eventlog/Javascript.hs
--- a/src/Eventlog/Javascript.hs
+++ b/src/Eventlog/Javascript.hs
@@ -14,15 +14,16 @@
 import Data.Text
 import Data.Text.Encoding
 import Data.FileEmbed
+import Eventlog.VegaVersions
 
 vegaLite :: Text
-vegaLite = decodeUtf8 $(embedFile "javascript/vega-lite@3.3.0")
+vegaLite = decodeUtf8 $(embedFile ("javascript/vega-lite@" ++ vegaLiteVersion))
 
 vegaEmbed :: Text
-vegaEmbed = decodeUtf8 $(embedFile "javascript/vega-embed@4.2.0")
+vegaEmbed = decodeUtf8 $(embedFile ("javascript/vega-embed@" ++ vegaEmbedVersion))
 
 vega :: Text
-vega = decodeUtf8 $(embedFile "javascript/vega@5.4.0")
+vega = decodeUtf8 $(embedFile ("javascript/vega@" ++ vegaVersion))
 
 stylesheet :: Text
 stylesheet = decodeUtf8 $(embedFile "javascript/stylesheet.css")
diff --git a/src/Eventlog/Total.hs b/src/Eventlog/Total.hs
--- a/src/Eventlog/Total.hs
+++ b/src/Eventlog/Total.hs
@@ -1,5 +1,4 @@
-{-# LANGUAGE BangPatterns #-}
-module Eventlog.Total (total) where
+module Eventlog.Total(total) where
 
 import Control.Monad.State.Strict (State(), execState, get, put, modify)
 import Data.Map (Map, empty, alter)
@@ -25,13 +24,14 @@
       , fmap (stddev $ fromIntegral (count parse1)) (totals parse1)
       )
 
+
 stddev :: Double -> (Double, Double) -> (Double, Double)
 stddev s0 (s1, s2) = (s1, sqrt (s0 * s2 - s1 * s1) / s0)
 
 
 parseFrame :: Frame -> State Parse ()
 parseFrame (Frame _time ls) = do
-  _ <- mapM inserter ls
+  mapM_ inserter ls
   modify $ \p -> p{ count = count p + 1 }
 
 inserter :: Sample -> State Parse Double
diff --git a/src/Eventlog/Trie.hs b/src/Eventlog/Trie.hs
--- a/src/Eventlog/Trie.hs
+++ b/src/Eventlog/Trie.hs
@@ -20,7 +20,7 @@
 
 outputTrie :: Map.Map Word32 CostCentre -> Trie.TMap Word32 (Int, Text, Text) -> [Value]
 outputTrie ccMap (TrieI.TMap (TrieI.Node ni m))  =
-    (mkNode 0 Nothing "MAIN" ni) : outputTrieLoop ccMap 0 m
+    mkNode 0 Nothing "MAIN" ni : outputTrieLoop ccMap 0 m
 
 
 outputTrieLoop :: Map.Map Word32 CostCentre
diff --git a/src/Eventlog/VegaTemplate.hs b/src/Eventlog/VegaTemplate.hs
--- a/src/Eventlog/VegaTemplate.hs
+++ b/src/Eventlog/VegaTemplate.hs
@@ -16,11 +16,6 @@
 import Data.Aeson.Text (encodeToLazyText)
 import Data.Text.Lazy (toStrict)
 
--- | Workaround for some limitations in the HVega library.
--- This function should be removed once the features are merged into HVega.
-injectJSON :: Text -> Value -> BuildLabelledSpecs
-injectJSON t val = \x -> x ++ [(t,val)]
-
 data AreaChartType
   = Stacked
   | Normalized
@@ -73,20 +68,12 @@
   ]
 
 areaChartFull :: AreaChartType -> ChartConfig -> (VLProperty, VLSpec)
-areaChartFull ct c = hConcat
-  [
-    asSpec [vConcat [areaChart ct c, selectionChart c]]
-  , legendDiagram
-  ]
+areaChartFull ct c = vConcat [areaChart ct c,  selectionChart c]
 
 lineChartFull :: ChartConfig -> (VLProperty, VLSpec)
-lineChartFull c = hConcat
-  [
-    asSpec [vConcat [lineChart c, selectionChart c]]
-  , legendDiagram
-  ]
+lineChartFull c = vConcat [lineChart c, selectionChart c]
 
-config :: [LabelledSpec] -> (VLProperty, VLSpec)
+config :: [ConfigureSpec] -> (VLProperty, VLSpec)
 config =
   configure
     . configuration (TextStyle [(MAlign AlignRight), (MdX (-5)), (MdY 5)])
@@ -106,18 +93,21 @@
     dataFromSource "data_json_samples" [],
     VL.mark Line [MPoint (PMMarker [])],
     encodingLineLayer c [],
-    transformLineLayer []
+    transformLineLayer [],
+    selectionRight []
   ]
 
-encodingLineLayer :: ChartConfig -> [LabelledSpec] -> (VLProperty, VLSpec)
+encodingLineLayer :: ChartConfig -> [EncodingSpec] -> (VLProperty, VLSpec)
 encodingLineLayer c
  = encoding
-    . color [MName "c", MmType Nominal, MScale [colourProperty c], MLegend []]
-    . position X [PName "x", PmType Quantitative, PAxis [AxTitle ""],
-                  PScale [SDomain (DSelection "brush")]]
+    . color [MName "c", MmType Nominal, MScale [colourProperty c]
+            , MSort [ByFieldOp "k" Max, Descending]
+            , MLegend [LNoTitle]]
+    . position X [PName "x", PmType Quantitative, PAxis [AxTitle ""]
+                 ,PScale [SDomain (DSelection "brush")]]
     . position Y [PName "norm_y", PmType Quantitative, PAxis [AxTitle "Allocation", AxFormat ".1f"]]
 
-transformLineLayer :: [LabelledSpec] -> (VLProperty, VLSpec)
+transformLineLayer :: [TransformSpec] -> (VLProperty, VLSpec)
 transformLineLayer =
   transform
   . window [([WField "y", WAggregateOp Max], "max_y")] [WFrame Nothing Nothing, WGroupBy ["k"]]
@@ -128,18 +118,20 @@
 -- The Selection Chart
 -----------------------------------------------------------------------------------
 
-encodingSelection :: ChartConfig -> [LabelledSpec] -> (VLProperty, VLSpec)
+encodingSelection :: ChartConfig -> [EncodingSpec] -> (VLProperty, VLSpec)
 encodingSelection c =
   encoding
     . order [OName "k", OmType Quantitative]
-    . injectJSON "tooltip" Null
-    . color [MName "c", MmType Nominal, MScale [colourProperty c], MLegend []]
+    . tooltip []
+    . color [MName "c", MmType Nominal, MScale [colourProperty c], MLegend []
+            , MSort [ByFieldOp "k" Max, Descending]]
     . position X [PName "x", PmType Quantitative, PAxis [AxTitle "Time (s)"]]
     . position Y [PName "y", PmType Quantitative, PAxis [{-AxTitle "Allocation", AxFormat "s"-}], PAggregate Sum, PStack StZero]
 
-brush :: (VLProperty, VLSpec)
-brush = (selection . injectJSON "brush" (object [ "type" .= String "interval"
-                                                , "init" .= object [ "x" .= [Null, Null] ] ])) []
+brush :: [SelectSpec] -> PropertySpec
+brush = selection .
+          select "brush" Interval [SInitInterval (Just (NullValue, NullValue)) Nothing]
+
 -- init field is not supported and necessary for dynamic loading
 
 selectionChart :: ChartConfig -> VLSpec
@@ -149,7 +141,7 @@
     dataFromSource "data_json_samples" [],
     VL.mark Area [],
     encodingSelection c [],
-    brush
+    brush []
   ]
 
 -----------------------------------------------------------------------------------
@@ -173,17 +165,21 @@
     dataFromSource "data_json_samples" [],
     VL.mark Area [],
     encodingBandsLayer ct c [],
-    transformBandsLayer []
+    transformBandsLayer [],
+    selectionRight []
   ]
 
 encodingBandsLayer :: AreaChartType
                    -> ChartConfig
-                   -> [LabelledSpec]
+                   -> [EncodingSpec]
                    -> (VLProperty, VLSpec)
 encodingBandsLayer ct c =
   encoding
     . order [OName "k", OmType Quantitative]
-    . color [MName "c", MmType Nominal, MScale [colourProperty c], MLegend []]
+    . color [MName "c", MmType Nominal, MScale [colourProperty c]
+            , MSort [ByFieldOp "k" Max, Descending]
+            , MLegend [LNoTitle]
+            ]
     . tooltips
         [ [TName "y", TmType Quantitative, TFormat "s", TTitle "Allocation"]
         , [TName "c", TmType Nominal, TTitle "Type"]
@@ -207,7 +203,7 @@
                  ++
                   [PScale [SDomain (DNumbers [0,  extent])] | Just extent <- [fixedYAxisExtent c]] )
 
-transformBandsLayer :: [LabelledSpec] -> (VLProperty, VLSpec)
+transformBandsLayer :: [TransformSpec] -> (VLProperty, VLSpec)
 transformBandsLayer =
   transform
     . filter (FSelection "legend")
@@ -224,49 +220,21 @@
     encodingTracesLayer []
   ]
 
-encodingTracesLayer :: [LabelledSpec] -> (VLProperty, VLSpec)
+encodingTracesLayer :: [EncodingSpec] -> (VLProperty, VLSpec)
 encodingTracesLayer =
   encoding
     . color [MString "grey"]
-    . position X [PmType Quantitative, PAxis [], PName "tx", PScale [SDomain (DSelection "brush")]]
+    . position X [PmType Quantitative, PAxis [], PName "tx"
+                 , PScale [SDomain (DSelection "brush")] ]
     . VL.size [MNumber 2]
     . tooltip [TName "desc", TmType Nominal]
 
 -----------------------------------------------------------------------------------
--- The legend
--- In order to make the legend interactive we make it into another chart.
--- Workaround comes from https://github.com/vega/vega-lite/issues/1657
+-- The legend selection
 -----------------------------------------------------------------------------------
 
-legendDiagram :: VLSpec
-legendDiagram  = asSpec
-  [
-    VL.mark Point [MStroke "transparent"],
-    dataFromSource "data_json_samples" [],
-    encodingRight [],
-    selectionRight []
-  ]
-
-encodingRight :: [LabelledSpec] -> (VLProperty, VLSpec)
-encodingRight =
-  encoding
-  . injectJSON "tooltip" Null
-  . color
-     [
-       MSelectionCondition (SelectionName "legend") [MName "c", MmType Nominal, MLegend []] [MString "lightgray"]
-     ]
-  . position Y [PName "c"
-               , PmType Nominal
-               , PAxis [ AxOrient SRight
-                       , AxDomain False
-                       , AxTicks False
-                       , AxGrid False
-                       , AxMinExtent 100
-                       , AxMaxExtent 100]
-               , PSort [(ByFieldOp "k" Mean), Descending]]
-
-selectionRight :: [LabelledSpec] -> (VLProperty, VLSpec)
+selectionRight :: [SelectSpec] -> (VLProperty, VLSpec)
 selectionRight =
     selection
-     . select "legend" Multi [On "click", Encodings [ChColor], ResolveSelections Global, Toggle "event.shiftKey"]
+      . select "legend" Multi [BindLegend (BLField "c")]
 
diff --git a/src/Eventlog/VegaVersions.hs b/src/Eventlog/VegaVersions.hs
new file mode 100644
--- /dev/null
+++ b/src/Eventlog/VegaVersions.hs
@@ -0,0 +1,6 @@
+module Eventlog.VegaVersions where
+
+vegaVersion, vegaLiteVersion, vegaEmbedVersion :: String
+vegaVersion = "5.10.0"
+vegaLiteVersion = "4.7.0"
+vegaEmbedVersion = "6.3.2"
