/*! For license information please see vegaRenderer.js.LICENSE.txt */ var e={16313: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,l,u,c){"object"==typeof s&&(l=s.depth,u=s.prototype,c=s.includeNonEnumerable,s=s.circular);var f=[],d=[],h="undefined"!=typeof Buffer;return void 0===s&&(s=!0),void 0===l&&(l=1/0),function o(l,p){if(null===l)return null;if(0===p)return l;var g,m;if("object"!=typeof l)return l;if(e(l,t))g=new t;else if(e(l,n))g=new n;else if(e(l,i))g=new i((function(e,t){l.then((function(t){e(o(t,p-1))}),(function(e){t(o(e,p-1))}))}));else if(r.__isArray(l))g=[];else if(r.__isRegExp(l))g=new RegExp(l.source,a(l)),l.lastIndex&&(g.lastIndex=l.lastIndex);else if(r.__isDate(l))g=new Date(l.getTime());else{if(h&&Buffer.isBuffer(l))return g=Buffer.allocUnsafe?Buffer.allocUnsafe(l.length):new Buffer(l.length),l.copy(g),g;e(l,Error)?g=Object.create(l):void 0===u?(m=Object.getPrototypeOf(l),g=Object.create(m)):(g=Object.create(u),m=u)}if(s){var y=f.indexOf(l);if(-1!=y)return d[y];f.push(l),d.push(g)}for(var v in e(l,t)&&l.forEach((function(e,t){var n=o(t,p-1),i=o(e,p-1);g.set(n,i)})),e(l,n)&&l.forEach((function(e){var t=o(e,p-1);g.add(t)})),l){var b;m&&(b=Object.getOwnPropertyDescriptor(m,v)),b&&null==b.set||(g[v]=o(l[v],p-1))}if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(l);for(v=0;v{e.exports=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}},35035:e=>{e.exports=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{var t=/("(?:[^\\"]|\\.)*")|[:,]/g;e.exports=function(e,n){var i,r,o;return n=n||{},i=JSON.stringify([1],void 0,void 0===n.indent?2:n.indent).slice(2,-3),r=""===i?1/0:void 0===n.maxLength?80:n.maxLength,o=n.replacer,function e(n,a,s){var l,u,c,f,d,h,p,g,m,y,v,b;if(n&&"function"==typeof n.toJSON&&(n=n.toJSON()),void 0===(v=JSON.stringify(n,o)))return v;if(p=r-a.length-s,v.length<=p&&(m=v.replace(t,(function(e,t){return t||e+" "}))).length<=p)return m;if(null!=o&&(n=JSON.parse(v),o=void 0),"object"==typeof n&&null!==n){if(g=a+i,c=[],u=0,Array.isArray(n))for(y="[",l="]",p=n.length;u0)return[y,i+c.join(",\n"+g),l].join("\n"+a)}return v}(e,"",0)}}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={exports:{}};return e[i](o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;if("string"==typeof import.meta.url&&(e=import.meta.url),!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})();var i={};(()=>{n.d(i,{Q:()=>T5});var e={};n.r(e),n.d(e,{JsonPatchError:()=>F,_areEquals:()=>U,applyOperation:()=>z,applyPatch:()=>P,applyReducer:()=>R,deepClone:()=>j,getValueByPointer:()=>N,validate:()=>B,validator:()=>L});var t={};n.r(t),n.d(t,{compare:()=>X,generate:()=>G,observe:()=>Y,unobserve:()=>H});var r={};n.r(r),n.d(r,{aggregate:()=>nu,bin:()=>iu,collect:()=>ou,compare:()=>au,countpattern:()=>lu,cross:()=>uu,density:()=>du,dotbin:()=>yu,expression:()=>vu,extent:()=>xu,facet:()=>_u,field:()=>Ou,filter:()=>Eu,flatten:()=>Du,fold:()=>Au,formula:()=>Su,generate:()=>Mu,impute:()=>ju,joinaggregate:()=>$u,kde:()=>Tu,key:()=>Nu,load:()=>Pu,lookup:()=>Lu,multiextent:()=>Bu,multivalues:()=>Iu,params:()=>Wu,pivot:()=>Hu,prefacet:()=>Yu,project:()=>Gu,proxy:()=>Vu,quantile:()=>Xu,relay:()=>Ju,sample:()=>Qu,sequence:()=>Zu,sieve:()=>Ku,subflow:()=>wu,timeunit:()=>ec,tupleindex:()=>nc,values:()=>ic,window:()=>lc});var o={};n.r(o),n.d(o,{interpolate:()=>Pd,interpolateArray:()=>Md,interpolateBasis:()=>yd,interpolateBasisClosed:()=>vd,interpolateCubehelix:()=>Zm,interpolateCubehelixLong:()=>Km,interpolateDate:()=>Fd,interpolateDiscrete:()=>rm,interpolateHcl:()=>Rm,interpolateHclLong:()=>Lm,interpolateHsl:()=>mm,interpolateHslLong:()=>ym,interpolateHue:()=>om,interpolateLab:()=>zm,interpolateNumber:()=>jd,interpolateNumberArray:()=>Ad,interpolateObject:()=>$d,interpolateRgb:()=>Od,interpolateRgbBasis:()=>Ed,interpolateRgbBasisClosed:()=>Dd,interpolateRound:()=>Rd,interpolateString:()=>zd,interpolateTransformCss:()=>fm,interpolateTransformSvg:()=>dm,interpolateZoom:()=>pm,piecewise:()=>Gg,quantize:()=>ey});var a={};n.r(a),n.d(a,{bound:()=>OO,identifier:()=>DO,mark:()=>AO,overlap:()=>SO,render:()=>NO,viewlayout:()=>nk});var s={};n.r(s),n.d(s,{axisticks:()=>rk,datajoin:()=>ok,encode:()=>sk,legendentries:()=>lk,linkpath:()=>hk,pie:()=>vk,scale:()=>wk,sortitems:()=>Ek,stack:()=>Ck});var l={};n.r(l),n.d(l,{contour:()=>dS,geojson:()=>gS,geopath:()=>mS,geopoint:()=>yS,geoshape:()=>vS,graticule:()=>bS,heatmap:()=>xS,isocontour:()=>nS,kde2d:()=>uS,projection:()=>_S});var u={};n.r(u),n.d(u,{force:()=>yM});var c={};n.r(c),n.d(c,{nest:()=>wC,pack:()=>AC,partition:()=>MC,stratify:()=>CC,tree:()=>$C,treelinks:()=>TC,treemap:()=>PC});var f={};n.r(f),n.d(f,{label:()=>iF});var d={};n.r(d),n.d(d,{loess:()=>oF,regression:()=>sF});var h={};n.r(h),n.d(h,{voronoi:()=>PF});var p={};n.r(p),n.d(p,{wordcloud:()=>QF});var g={};n.r(g),n.d(g,{crossfilter:()=>rj,resolvefilter:()=>oj});var m={};n.r(m),n.d(m,{Bounds:()=>mb,CanvasHandler:()=>Gw,CanvasRenderer:()=>Zw,DATE:()=>ai,DAY:()=>si,DAYOFYEAR:()=>li,Dataflow:()=>Fs,Debug:()=>ve,Error:()=>ge,EventStream:()=>ys,Gradient:()=>xv,GroupItem:()=>vb,HOURS:()=>ui,Handler:()=>Mw,Info:()=>ye,Item:()=>yb,MILLISECONDS:()=>di,MINUTES:()=>ci,MONTH:()=>ri,Marks:()=>hw,MultiPulse:()=>As,None:()=>pe,Operator:()=>ps,Parameters:()=>fs,Pulse:()=>Os,QUARTER:()=>ii,RenderType:()=>B_,Renderer:()=>Fw,ResourceLoader:()=>bb,SECONDS:()=>fi,SVGHandler:()=>e_,SVGRenderer:()=>E_,SVGStringRenderer:()=>L_,Scenegraph:()=>ww,TIME_UNITS:()=>hi,Transform:()=>$s,View:()=>gz,WEEK:()=>oi,Warn:()=>me,YEAR:()=>ni,accessor:()=>Z,accessorFields:()=>ee,accessorName:()=>K,array:()=>He,ascending:()=>Xe,bandwidthNRD:()=>Xs,bin:()=>Js,bootstrapCI:()=>Ks,boundClip:()=>V_,boundContext:()=>Bb,boundItem:()=>pw,boundMark:()=>mw,boundStroke:()=>_b,changeset:()=>us,clampRange:()=>Ye,codegenExpression:()=>d$,compare:()=>Ve,constant:()=>Ke,cumulativeLogNormal:()=>pl,cumulativeNormal:()=>ll,cumulativeUniform:()=>xl,dayofyear:()=>xi,debounce:()=>et,defaultLocale:()=>_a,definition:()=>Ns,densityLogNormal:()=>hl,densityNormal:()=>sl,densityUniform:()=>bl,domChild:()=>Ew,domClear:()=>Dw,domCreate:()=>Ow,domFind:()=>kw,dotbin:()=>el,error:()=>re,expressionFunction:()=>yN,extend:()=>tt,extent:()=>nt,extentIndex:()=>it,falsy:()=>de,fastmap:()=>st,field:()=>ae,flush:()=>lt,font:()=>ow,fontFamily:()=>rw,fontSize:()=>Kx,format:()=>Ha,formatLocale:()=>pa,formats:()=>Ya,hasOwnProperty:()=>ot,id:()=>se,identity:()=>le,inferType:()=>Ra,inferTypes:()=>La,ingest:()=>is,inherits:()=>ut,inrange:()=>ct,interpolate:()=>Hy,interpolateColors:()=>Iy,interpolateRange:()=>Uy,intersect:()=>q_,intersectBoxLine:()=>Qb,intersectPath:()=>Gb,intersectPoint:()=>Vb,intersectRule:()=>Jb,isArray:()=>xe,isBoolean:()=>ft,isDate:()=>dt,isFunction:()=>Ge,isIterable:()=>ht,isNumber:()=>pt,isObject:()=>we,isRegExp:()=>gt,isString:()=>mt,isTuple:()=>es,key:()=>yt,lerp:()=>vt,lineHeight:()=>ew,loader:()=>Xa,locale:()=>wa,logger:()=>be,lruCache:()=>bt,markup:()=>y_,merge:()=>xt,mergeConfig:()=>Oe,multiLineOffset:()=>nw,one:()=>ce,pad:()=>_t,panLinear:()=>Te,panLog:()=>Ne,panPow:()=>ze,panSymlog:()=>Pe,parse:()=>nB,parseExpression:()=>u$,parseSelector:()=>kz,path:()=>hf,pathCurves:()=>_v,pathEqual:()=>J_,pathParse:()=>Sv,pathRectangle:()=>Zv,pathRender:()=>Lv,pathSymbols:()=>qv,pathTrail:()=>Kv,peek:()=>De,point:()=>Sw,projection:()=>WA,quantileLogNormal:()=>gl,quantileNormal:()=>ul,quantileUniform:()=>wl,quantiles:()=>Gs,quantizeInterpolator:()=>qy,quarter:()=>qe,quartiles:()=>Vs,random:()=>Qs,randomInteger:()=>nl,randomKDE:()=>fl,randomLCG:()=>tl,randomLogNormal:()=>ml,randomMixture:()=>yl,randomNormal:()=>cl,randomUniform:()=>_l,read:()=>Va,regressionExp:()=>Ml,regressionLinear:()=>Al,regressionLoess:()=>Tl,regressionLog:()=>Sl,regressionPoly:()=>jl,regressionPow:()=>Cl,regressionQuad:()=>Fl,renderModule:()=>I_,repeat:()=>wt,resetDefaultLocale:()=>Oa,resetSVGClipId:()=>pb,resetSVGDefIds:()=>Q_,responseType:()=>Ga,runtimeContext:()=>AN,sampleCurve:()=>Rl,sampleLogNormal:()=>dl,sampleNormal:()=>al,sampleUniform:()=>vl,scale:()=>Fy,sceneEqual:()=>X_,sceneFromJSON:()=>bw,scenePickVisit:()=>lx,sceneToJSON:()=>vw,sceneVisit:()=>sx,sceneZOrder:()=>ax,scheme:()=>Xy,serializeXML:()=>v_,setRandom:()=>Zs,span:()=>Ot,splitAccessPath:()=>oe,stringValue:()=>kt,textMetrics:()=>Gx,timeBin:()=>or,timeFloor:()=>zi,timeFormatLocale:()=>ba,timeInterval:()=>Ii,timeOffset:()=>Hi,timeSequence:()=>Vi,timeUnitSpecifier:()=>yi,timeUnits:()=>gi,toBoolean:()=>Et,toDate:()=>At,toNumber:()=>Ae,toSet:()=>Mt,toString:()=>St,transform:()=>zs,transforms:()=>Ts,truncate:()=>Ct,truthy:()=>fe,tupleid:()=>ts,typeParsers:()=>Na,utcFloor:()=>Li,utcInterval:()=>qi,utcOffset:()=>Yi,utcSequence:()=>Xi,utcdayofyear:()=>Di,utcquarter:()=>We,utcweek:()=>Ai,version:()=>iB,visitArray:()=>Ft,week:()=>wi,writeConfig:()=>ke,zero:()=>ue,zoomLinear:()=>Le,zoomLog:()=>Be,zoomPow:()=>Ue,zoomSymlog:()=>Ie});var y={};n.r(y),n.d(y,{accessPathDepth:()=>aU,accessPathWithDatum:()=>eU,compile:()=>f1,contains:()=>TB,deepEqual:()=>DB,deleteNestedProperty:()=>ZB,duplicate:()=>AB,entries:()=>VB,every:()=>zB,fieldIntersection:()=>WB,flatAccessWithDatum:()=>tU,getFirstDefined:()=>sU,hasIntersection:()=>IB,hash:()=>jB,internalField:()=>fU,isBoolean:()=>XB,isEmpty:()=>HB,isEqual:()=>BB,isInternalField:()=>dU,isNullOrFalse:()=>$B,isNumeric:()=>pU,keys:()=>YB,logicalExpr:()=>QB,mergeDeep:()=>PB,never:()=>SB,normalize:()=>KX,normalizeAngle:()=>hU,omit:()=>CB,pick:()=>MB,prefixGenerator:()=>qB,removePathFromField:()=>oU,replaceAll:()=>rU,replacePathInField:()=>iU,resetIdCounter:()=>cU,setEqual:()=>UB,some:()=>NB,stringify:()=>FB,titleCase:()=>KB,unique:()=>LB,uniqueId:()=>uU,vals:()=>GB,varName:()=>JB,version:()=>d1});var v={};n.r(v),n.d(v,{dark:()=>m1,excel:()=>v1,fivethirtyeight:()=>O1,ggplot2:()=>E1,googlecharts:()=>Y1,latimes:()=>F1,powerbi:()=>o2,quartz:()=>T1,urbaninstitute:()=>I1,version:()=>a2,vox:()=>z1});var b,x=(b=function(e,t){return b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},b(e,t)},function(e,t){function n(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),w=Object.prototype.hasOwnProperty;function _(e,t){return w.call(e,t)}function O(e){if(Array.isArray(e)){for(var t=new Array(e.length),n=0;n=48&&t<=57))return!1;n++}return!0}function D(e){return-1===e.indexOf("/")&&-1===e.indexOf("~")?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function A(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}function S(e){if(void 0===e)return!0;if(e)if(Array.isArray(e)){for(var t=0,n=e.length;t0&&"constructor"==s[u-1]))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` 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(n&&void 0===f&&(void 0===l[d]?f=s.slice(0,u).join("/"):u==c-1&&(f=t.path),void 0!==f&&h(t,0,e,f)),u++,Array.isArray(l)){if("-"===d)d=l.length;else{if(n&&!E(d))throw new F("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",o,t,e);E(d)&&(d=~~d)}if(u>=c){if(n&&"add"===t.op&&d>l.length)throw new F("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",o,t,e);if(!1===(a=T[t.op].call(t,l,d,e)).test)throw new F("Test operation failed","TEST_OPERATION_FAILED",o,t,e);return a}}else if(u>=c){if(!1===(a=$[t.op].call(t,l,d,e)).test)throw new F("Test operation failed","TEST_OPERATION_FAILED",o,t,e);return a}if(l=l[d],n&&u0)throw new F('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",t,e,n);if(("move"===e.op||"copy"===e.op)&&"string"!=typeof e.from)throw new F("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",t,e,n);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&void 0===e.value)throw new F("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",t,e,n);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&S(e.value))throw new F("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",t,e,n);if(n)if("add"==e.op){var r=e.path.split("/").length,o=i.split("/").length;if(r!==o+1&&r!==o)throw new F("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",t,e,n)}else if("replace"===e.op||"remove"===e.op||"_get"===e.op){if(e.path!==i)throw new F("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",t,e,n)}else if("move"===e.op||"copy"===e.op){var a=B([{op:"_get",path:e.from,value:void 0}],n);if(a&&"OPERATION_PATH_UNRESOLVABLE"===a.name)throw new F("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",t,e,n)}}function B(e,t,n){try{if(!Array.isArray(e))throw new F("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)P(k(t),k(e),n||!0);else{n=n||L;for(var i=0;i0&&(e.patches=[],e.callback&&e.callback(i)),i}function V(e,t,n,i,r){if(t!==e){"function"==typeof t.toJSON&&(t=t.toJSON());for(var o=O(t),a=O(e),s=!1,l=a.length-1;l>=0;l--){var u=e[f=a[l]];if(!_(t,f)||void 0===t[f]&&void 0!==u&&!1===Array.isArray(t))Array.isArray(e)===Array.isArray(t)?(r&&n.push({op:"test",path:i+"/"+D(f),value:k(u)}),n.push({op:"remove",path:i+"/"+D(f)}),s=!0):(r&&n.push({op:"test",path:i,value:e}),n.push({op:"replace",path:i,value:t}));else{var c=t[f];"object"==typeof u&&null!=u&&"object"==typeof c&&null!=c&&Array.isArray(u)===Array.isArray(c)?V(u,c,n,i+"/"+D(f),r):u!==c&&(r&&n.push({op:"test",path:i+"/"+D(f),value:k(u)}),n.push({op:"replace",path:i+"/"+D(f),value:k(c)}))}}if(s||o.length!=a.length)for(l=0;lfunction(t){return t[e]},ie=e=>{const t=e.length;return function(n){for(let i=0;ii&&u(),s=i=r+1):"]"===o&&(s||re("Access path missing open bracket: "+e),s>0&&u(),s=0,i=r+1):r>i?u():i=r+1}return s&&re("Access path missing closing bracket: "+e),a&&re("Access path missing closing quote: "+e),r>i&&(r++,u()),t}function ae(e,t,n){const i=oe(e);return e=1===i.length?i[0]:e,Z((n&&n.get||te)(i),[e],t||e)}const se=ae("id"),le=Z((e=>e),[],"identity"),ue=Z((()=>0),[],"zero"),ce=Z((()=>1),[],"one"),fe=Z((()=>!0),[],"true"),de=Z((()=>!1),[],"false");function he(e,t,n){const i=[t].concat([].slice.call(n));console[e].apply(console,i)}const pe=0,ge=1,me=2,ye=3,ve=4;function be(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:he,i=e||pe;return{level(e){return arguments.length?(i=+e,this):i},error(){return i>=ge&&n(t||"error","ERROR",arguments),this},warn(){return i>=me&&n(t||"warn","WARN",arguments),this},info(){return i>=ye&&n(t||"log","INFO",arguments),this},debug(){return i>=ve&&n(t||"log","DEBUG",arguments),this}}}var xe=Array.isArray;function we(e){return e===Object(e)}const _e=e=>"__proto__"!==e;function Oe(){for(var e=arguments.length,t=new Array(e),n=0;n{for(const n in t)if("signals"===n)e.signals=Ee(e.signals,t.signals);else{const i="legend"===n?{layout:1}:"style"===n||null;ke(e,n,t[n],i)}return e}),{})}function ke(e,t,n,i){if(!_e(t))return;let r,o;if(we(n)&&!xe(n))for(r in o=we(e[t])?e[t]:e[t]={},n)i&&(!0===i||i[r])?ke(o,r,n[r]):_e(r)&&(o[r]=n[r]);else e[t]=n}function Ee(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 De(e){return e[e.length-1]}function Ae(e){return null==e||""===e?null:+e}const Se=e=>t=>e*Math.exp(t),Me=e=>t=>Math.log(e*t),Ce=e=>t=>Math.sign(t)*Math.log1p(Math.abs(t/e)),Fe=e=>t=>Math.sign(t)*Math.expm1(Math.abs(t))*e,je=e=>t=>t<0?-Math.pow(-t,e):Math.pow(t,e);function $e(e,t,n,i){const r=n(e[0]),o=n(De(e)),a=(o-r)*t;return[i(r-a),i(o-a)]}function Te(e,t){return $e(e,t,Ae,le)}function Ne(e,t){var n=Math.sign(e[0]);return $e(e,t,Me(n),Se(n))}function ze(e,t,n){return $e(e,t,je(n),je(1/n))}function Pe(e,t,n){return $e(e,t,Ce(n),Fe(n))}function Re(e,t,n,i,r){const o=i(e[0]),a=i(De(e)),s=null!=t?i(t):(o+a)/2;return[r(s+(o-s)*n),r(s+(a-s)*n)]}function Le(e,t,n){return Re(e,t,n,Ae,le)}function Be(e,t,n){const i=Math.sign(e[0]);return Re(e,t,n,Me(i),Se(i))}function Ue(e,t,n,i){return Re(e,t,n,je(i),je(1/i))}function Ie(e,t,n,i){return Re(e,t,n,Ce(i),Fe(i))}function qe(e){return 1+~~(new Date(e).getMonth()/3)}function We(e){return 1+~~(new Date(e).getUTCMonth()/3)}function He(e){return null!=e?xe(e)?e:[e]:[]}function Ye(e,t,n){let i,r=e[0],o=e[1];return o=n-t?[t,n]:[r=Math.min(Math.max(r,t),n-i),r+i]}function Ge(e){return"function"==typeof e}function Ve(e,t,n){n=n||{},t=He(t)||[];const i=[],r=[],o={},a=n.comparator||Je;return He(e).forEach(((e,a)=>{null!=e&&(i.push("descending"===t[a]?-1:1),r.push(e=Ge(e)?e:ae(e,null,n)),(ee(e)||[]).forEach((e=>o[e]=1)))})),0===r.length?null:Z(a(r,i),Object.keys(o))}const Xe=(e,t)=>(et||null==t)&&null!=e?1:(t=t instanceof Date?+t:t,(e=e instanceof Date?+e:e)!==e&&t==t?-1:t!=t&&e==e?1:0),Je=(e,t)=>1===e.length?Qe(e[0],t[0]):Ze(e,t,e.length),Qe=(e,t)=>function(n,i){return Xe(e(n),e(i))*t},Ze=(e,t,n)=>(t.push(0),function(i,r){let o,a=0,s=-1;for(;0===a&&++se}function et(e,t){let n;return i=>{n&&clearTimeout(n),n=setTimeout((()=>(t(i),n=null)),e)}}function tt(e){for(let t,n,i=1,r=arguments.length;io&&(o=i))}else{for(i=t(e[a]);ao&&(o=i))}return[r,o]}function it(e,t){const n=e.length;let i,r,o,a,s,l=-1;if(null==t){for(;++l=r){i=o=r;break}if(l===n)return[-1,-1];for(a=s=l;++lr&&(i=r,a=l),o=r){i=o=r;break}if(l===n)return[-1,-1];for(a=s=l;++lr&&(i=r,a=l),oi(e)?n[e]:void 0,set(e,t){return i(e)||(++r.size,n[e]===at&&--r.empty),n[e]=t,this},delete(e){return i(e)&&(--r.size,++r.empty,n[e]=at),this},clear(){r.size=r.empty=0,r.object=n={}},test(e){return arguments.length?(t=e,r):t},clean(){const e={};let i=0;for(const r in n){const o=n[r];o===at||t&&t(o)||(e[r]=o,++i)}r.size=i,r.empty=0,r.object=n=e}};return e&&Object.keys(e).forEach((t=>{r.set(t,e[t])})),r}function lt(e,t,n,i,r,o){if(!n&&0!==n)return o;const a=+n;let s,l=e[0],u=De(e);ua&&(r=o,o=a,a=r),i=void 0===i||i,((n=void 0===n||n)?o<=e:oe.replace(/\\(.)/g,"$1"))):He(e));const i=e&&e.length,r=n&&n.get||te,o=e=>r(t?[e]:oe(e));let a;if(i)if(1===i){const t=o(e[0]);a=function(e){return""+t(e)}}else{const t=e.map(o);a=function(e){let n=""+t[0](e),r=0;for(;++r{t={},n={},i=0},o=(r,o)=>(++i>e&&(n=t,t={},i=1),t[r]=o);return r(),{clear:r,has:e=>ot(t,e)||ot(n,e),get:e=>ot(t,e)?t[e]:ot(n,e)?o(e,n[e]):void 0,set:(e,n)=>ot(t,e)?t[e]=n:o(e,n)}}function xt(e,t,n,i){const r=t.length,o=n.length;if(!o)return t;if(!r)return n;const a=i||new t.constructor(r+o);let s=0,l=0,u=0;for(;s0?n[l++]:t[s++];for(;s=0;)n+=e;return n}function _t(e,t,n,i){const r=n||" ",o=e+"",a=t-o.length;return a<=0?o:"left"===i?wt(r,a)+o:"center"===i?wt(r,~~(a/2))+o+wt(r,Math.ceil(a/2)):o+wt(r,a)}function Ot(e){return e&&De(e)-e[0]||0}function kt(e){return xe(e)?"["+e.map(kt)+"]":we(e)||mt(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}function Et(e){return null==e||""===e?null:!(!e||"false"===e||"0"===e||!e)}const Dt=e=>pt(e)||dt(e)?e:Date.parse(e);function At(e,t){return t=t||Dt,null==e||""===e?null:t(e)}function St(e){return null==e||""===e?null:e+""}function Mt(e){const t={},n=e.length;for(let i=0;i=o?l=!0:10===(i=e.charCodeAt(a++))?u=!0:13===i&&(u=!0,10===e.charCodeAt(a)&&++a),e.slice(r+1,t-1).replace(/""/g,'"')}for(;a9999?"+"+zt(e,6):zt(e,4)}(e.getUTCFullYear())+"-"+zt(e.getUTCMonth()+1,2)+"-"+zt(e.getUTCDate(),2)+(r?"T"+zt(t,2)+":"+zt(n,2)+":"+zt(i,2)+"."+zt(r,3)+"Z":i?"T"+zt(t,2)+":"+zt(n,2)+":"+zt(i,2)+"Z":n||t?"T"+zt(t,2)+":"+zt(n,2)+"Z":"")}(e):t.test(e+="")?'"'+e.replace(/"/g,'""')+'"':e}return{parse:function(e,t){var n,r,o=i(e,(function(e,i){if(n)return n(e,i-1);r=e,n=t?function(e,t){var n=Tt(e);return function(i,r){return t(n(i),r,e)}}(e,t):Tt(e)}));return o.columns=r||[],o},parseRows:i,format:function(t,n){return null==n&&(n=Nt(t)),[n.map(a).join(e)].concat(r(t,n)).join("\n")},formatBody:function(e,t){return null==t&&(t=Nt(e)),r(e,t).join("\n")},formatRows:function(e){return e.map(o).join("\n")},formatRow:o,formatValue:a}}function Rt(e){return e}function Lt(e,t){return"string"==typeof t&&(t=e.objects[t]),"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map((function(t){return Bt(e,t)}))}:Bt(e,t)}function Bt(e,t){var n=t.id,i=t.bbox,r=null==t.properties?{}:t.properties,o=Ut(e,t);return null==n&&null==i?{type:"Feature",properties:r,geometry:o}:null==i?{type:"Feature",id:n,properties:r,geometry:o}:{type:"Feature",id:n,bbox:i,properties:r,geometry:o}}function Ut(e,t){var n=function(e){if(null==e)return Rt;var t,n,i=e.scale[0],r=e.scale[1],o=e.translate[0],a=e.translate[1];return function(e,s){s||(t=n=0);var l=2,u=e.length,c=new Array(u);for(c[0]=(t+=e[0])*i+o,c[1]=(n+=e[1])*r+a;l1)i=Ht(0,t,n);else for(r=0,i=new Array(o=e.arcs.length);r=Yt?10:o>=Gt?5:o>=Vt?2:1;let s,l,u;return r<0?(u=Math.pow(10,-r)/a,s=Math.round(e*u),l=Math.round(t*u),s/ut&&--l,u=-u):(u=Math.pow(10,r)*a,s=Math.round(e/u),l=Math.round(t/u),s*ut&&--l),l0))return[];if((e=+e)==(t=+t))return[e];const i=t=r))return[];const s=o-r+1,l=new Array(s);if(i)if(a<0)for(let e=0;e=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tn(e){if(!(t=en.exec(e)))throw new Error("invalid format: "+e);var t;return new nn({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function nn(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function rn(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,i=e.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+e.slice(n+1)]}function on(e){return(e=rn(Math.abs(e)))?e[1]:NaN}function an(e,t){var n=rn(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")}tn.prototype=nn.prototype,nn.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const sn={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>an(100*e,t),r:an,s:function(e,t){var n=rn(e,t);if(!n)return e+"";var i=n[0],r=n[1],o=r-(Kt=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")+rn(e,Math.max(0,t+o-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function ln(e){return e}var un,cn,fn,dn=Array.prototype.map,hn=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function pn(e){var t,n,i=void 0===e.grouping||void 0===e.thousands?ln:(t=dn.call(e.grouping,Number),n=e.thousands+"",function(e,i){for(var r=e.length,o=[],a=0,s=t[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(e.substring(r-=s,r+s)),!((l+=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?ln:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(dn.call(e.numerals,String)),l=void 0===e.percent?"%":e.percent+"",u=void 0===e.minus?"−":e.minus+"",c=void 0===e.nan?"NaN":e.nan+"";function f(e){var t=(e=tn(e)).fill,n=e.align,f=e.sign,d=e.symbol,h=e.zero,p=e.width,g=e.comma,m=e.precision,y=e.trim,v=e.type;"n"===v?(g=!0,v="g"):sn[v]||(void 0===m&&(m=12),y=!0,v="g"),(h||"0"===t&&"="===n)&&(h=!0,t="0",n="=");var b="$"===d?r:"#"===d&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",x="$"===d?o:/[%p]/.test(v)?l:"",w=sn[v],_=/[defgprs%]/.test(v);function O(e){var r,o,l,d=b,O=x;if("c"===v)O=w(e)+O,e="";else{var k=(e=+e)<0||1/e<0;if(e=isNaN(e)?c:w(Math.abs(e),m),y&&(e=function(e){e:for(var t,n=e.length,i=1,r=-1;i0&&(r=0)}return r>0?e.slice(0,r)+e.slice(t+1):e}(e)),k&&0==+e&&"+"!==f&&(k=!1),d=(k?"("===f?f:u:"-"===f||"("===f?"":f)+d,O=("s"===v?hn[8+Kt/3]:"")+O+(k&&"("===f?")":""),_)for(r=-1,o=e.length;++r(l=e.charCodeAt(r))||l>57){O=(46===l?a+e.slice(r+1):e.slice(r))+O,e=e.slice(0,r);break}}g&&!h&&(e=i(e,1/0));var E=d.length+e.length+O.length,D=E>1)+d+e+O+D.slice(E);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=tn(e)).type="f",e)),i=3*Math.max(-8,Math.min(8,Math.floor(on(t)/3))),r=Math.pow(10,-i),o=hn[8+i/3];return function(e){return n(r*e)+o}}}}un=pn({thousands:",",grouping:[3],currency:["$",""]}),cn=un.format,fn=un.formatPrefix;const gn=new Date,mn=new Date;function yn(e,t,n,i){function r(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return r.floor=t=>(e(t=new Date(+t)),t),r.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),r.round=e=>{const t=r(e),n=r.ceil(e);return e-t(t(e=new Date(+e),null==n?1:Math.floor(n)),e),r.range=(n,i,o)=>{const a=[];if(n=r.ceil(n),o=null==o?1:Math.floor(o),!(n0))return a;let s;do{a.push(s=new Date(+n)),t(n,o),e(n)}while(syn((t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),((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=(t,i)=>(gn.setTime(+t),mn.setTime(+i),e(gn),e(mn),Math.floor(n(gn,mn))),r.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?r.filter(i?t=>i(t)%e==0:t=>r.count(0,t)%e==0):r:null)),r}const vn=1e3,bn=6e4,xn=36e5,wn=864e5,_n=6048e5,On=yn((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*bn)/wn),(e=>e.getDate()-1)),kn=(On.range,yn((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/wn),(e=>e.getUTCDate()-1))),En=(kn.range,yn((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/wn),(e=>Math.floor(e/wn))));function Dn(e){return yn((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*bn)/_n))}En.range;const An=Dn(0),Sn=Dn(1),Mn=Dn(2),Cn=Dn(3),Fn=Dn(4),jn=Dn(5),$n=Dn(6);function Tn(e){return yn((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/_n))}An.range,Sn.range,Mn.range,Cn.range,Fn.range,jn.range,$n.range;const Nn=Tn(0),zn=Tn(1),Pn=Tn(2),Rn=Tn(3),Ln=Tn(4),Bn=Tn(5),Un=Tn(6),In=(Nn.range,zn.range,Pn.range,Rn.range,Ln.range,Bn.range,Un.range,yn((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear())));In.every=e=>isFinite(e=Math.floor(e))&&e>0?yn((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n*e)})):null,In.range;const qn=yn((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));qn.every=e=>isFinite(e=Math.floor(e))&&e>0?yn((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null,qn.range;const Wn=yn((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth())),Hn=(Wn.range,yn((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth()))),Yn=(Hn.range,yn((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*vn-e.getMinutes()*bn)}),((e,t)=>{e.setTime(+e+t*xn)}),((e,t)=>(t-e)/xn),(e=>e.getHours()))),Gn=(Yn.range,yn((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*xn)}),((e,t)=>(t-e)/xn),(e=>e.getUTCHours()))),Vn=(Gn.range,yn((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*vn)}),((e,t)=>{e.setTime(+e+t*bn)}),((e,t)=>(t-e)/bn),(e=>e.getMinutes()))),Xn=(Vn.range,yn((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*bn)}),((e,t)=>(t-e)/bn),(e=>e.getUTCMinutes()))),Jn=(Xn.range,yn((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*vn)}),((e,t)=>(t-e)/vn),(e=>e.getUTCSeconds()))),Qn=(Jn.range,yn((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e)));function Zn(e,t){return null==e||null==t?NaN:et?1:e>=t?0:NaN}function Kn(e,t){return null==e||null==t?NaN:te?1:t>=e?0:NaN}function ei(e){let t,n,i;function r(e,i,r=0,o=e.length){if(r>>1;n(e[t],i)<0?r=t+1:o=t}while(rZn(e(t),n),i=(t,n)=>e(t)-n):(t=e===Zn||e===Kn?e:ti,n=e,i=e),{left:r,center:function(e,t,n=0,o=e.length){const a=r(e,t,n,o-1);return a>n&&i(e[a-1],t)>-i(e[a],t)?a-1:a},right:function(e,i,r=0,o=e.length){if(r>>1;n(e[t],i)<=0?r=t+1:o=t}while(r(e=Math.floor(e),isFinite(e)&&e>0?e>1?yn((t=>{t.setTime(Math.floor(t/e)*e)}),((t,n)=>{t.setTime(+t+n*e)}),((t,n)=>(n-t)/e)):Qn:null),Qn.range;const ni="year",ii="quarter",ri="month",oi="week",ai="date",si="day",li="dayofyear",ui="hours",ci="minutes",fi="seconds",di="milliseconds",hi=[ni,ii,ri,oi,ai,si,li,ui,ci,fi,di],pi=hi.reduce(((e,t,n)=>(e[t]=1+n,e)),{});function gi(e){const t=He(e).slice(),n={};return t.length||re("Missing time unit."),t.forEach((e=>{ot(pi,e)?n[e]=1:re(`Invalid time unit: ${e}.`)})),(n[oi]||n[si]?1:0)+(n[ii]||n[ri]||n[ai]?1:0)+(n[li]?1:0)>1&&re(`Incompatible time units: ${e}`),t.sort(((e,t)=>pi[e]-pi[t])),t}const mi={[ni]:"%Y ",[ii]:"Q%q ",[ri]:"%b ",[ai]:"%d ",[oi]:"W%U ",[si]:"%a ",[li]:"%j ",[ui]:"%H:00",[ci]:"00:%M",[fi]:":%S",[di]:".%L",[`${ni}-${ri}`]:"%Y-%m ",[`${ni}-${ri}-${ai}`]:"%Y-%m-%d ",[`${ui}-${ci}`]:"%H:%M"};function yi(e,t){const n=tt({},mi,t),i=gi(e),r=i.length;let o,a,s="",l=0;for(l=0;ll;--o)if(a=i.slice(l,o).join("-"),null!=n[a]){s+=n[a],l=o;break}return s.trim()}const vi=new Date;function bi(e){return vi.setFullYear(e),vi.setMonth(0),vi.setDate(1),vi.setHours(0,0,0,0),vi}function xi(e){return _i(new Date(e))}function wi(e){return Oi(new Date(e))}function _i(e){return On.count(bi(e.getFullYear())-1,e)}function Oi(e){return An.count(bi(e.getFullYear())-1,e)}function ki(e){return bi(e).getDay()}function Ei(e,t,n,i,r,o,a){if(0<=e&&e<100){const s=new Date(-1,t,n,i,r,o,a);return s.setFullYear(e),s}return new Date(e,t,n,i,r,o,a)}function Di(e){return Si(new Date(e))}function Ai(e){return Mi(new Date(e))}function Si(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return kn.count(t-1,e)}function Mi(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return Nn.count(t-1,e)}function Ci(e){return vi.setTime(Date.UTC(e,0,1)),vi.getUTCDay()}function Fi(e,t,n,i,r,o,a){if(0<=e&&e<100){const e=new Date(Date.UTC(-1,t,n,i,r,o,a));return e.setUTCFullYear(n.y),e}return new Date(Date.UTC(e,t,n,i,r,o,a))}function ji(e,t,n,i,r){const o=t||1,a=De(e),s=(e,t,r)=>function(e,t,n,i){const r=n<=1?e:i?(t,r)=>i+n*Math.floor((e(t,r)-i)/n):(t,i)=>n*Math.floor(e(t,i)/n);return t?(e,n)=>t(r(e,n),n):r}(n[r=r||e],i[r],e===a&&o,t),l=new Date,u=Mt(e),c=u[ni]?s(ni):Ke(2012),f=u[ri]?s(ri):u[ii]?s(ii):ue,d=u[oi]&&u[si]?s(si,1,oi+si):u[oi]?s(oi,1):u[si]?s(si,1):u[ai]?s(ai,1):u[li]?s(li,1):ce,h=u[ui]?s(ui):ue,p=u[ci]?s(ci):ue,g=u[fi]?s(fi):ue,m=u[di]?s(di):ue;return function(e){l.setTime(+e);const t=c(l);return r(t,f(l),d(l,t),h(l),p(l),g(l),m(l))}}function $i(e,t,n){return t+7*e-(n+6)%7}const Ti={[ni]:e=>e.getFullYear(),[ii]:e=>Math.floor(e.getMonth()/3),[ri]:e=>e.getMonth(),[ai]:e=>e.getDate(),[ui]:e=>e.getHours(),[ci]:e=>e.getMinutes(),[fi]:e=>e.getSeconds(),[di]:e=>e.getMilliseconds(),[li]:e=>_i(e),[oi]:e=>Oi(e),[oi+si]:(e,t)=>$i(Oi(e),e.getDay(),ki(t)),[si]:(e,t)=>$i(1,e.getDay(),ki(t))},Ni={[ii]:e=>3*e,[oi]:(e,t)=>$i(e,0,ki(t))};function zi(e,t){return ji(e,t||1,Ti,Ni,Ei)}const Pi={[ni]:e=>e.getUTCFullYear(),[ii]:e=>Math.floor(e.getUTCMonth()/3),[ri]:e=>e.getUTCMonth(),[ai]:e=>e.getUTCDate(),[ui]:e=>e.getUTCHours(),[ci]:e=>e.getUTCMinutes(),[fi]:e=>e.getUTCSeconds(),[di]:e=>e.getUTCMilliseconds(),[li]:e=>Si(e),[oi]:e=>Mi(e),[si]:(e,t)=>$i(1,e.getUTCDay(),Ci(t)),[oi+si]:(e,t)=>$i(Mi(e),e.getUTCDay(),Ci(t))},Ri={[ii]:e=>3*e,[oi]:(e,t)=>$i(e,0,Ci(t))};function Li(e,t){return ji(e,t||1,Pi,Ri,Fi)}const Bi={[ni]:In,[ii]:Wn.every(3),[ri]:Wn,[oi]:An,[ai]:On,[si]:On,[li]:On,[ui]:Yn,[ci]:Vn,[fi]:Jn,[di]:Qn},Ui={[ni]:qn,[ii]:Hn.every(3),[ri]:Hn,[oi]:Nn,[ai]:kn,[si]:kn,[li]:kn,[ui]:Gn,[ci]:Xn,[fi]:Jn,[di]:Qn};function Ii(e){return Bi[e]}function qi(e){return Ui[e]}function Wi(e,t,n){return e?e.offset(t,n):void 0}function Hi(e,t,n){return Wi(Ii(e),t,n)}function Yi(e,t,n){return Wi(qi(e),t,n)}function Gi(e,t,n,i){return e?e.range(t,n,i):void 0}function Vi(e,t,n,i){return Gi(Ii(e),t,n,i)}function Xi(e,t,n,i){return Gi(qi(e),t,n,i)}const Ji=31536e6,Qi=[ni,ri,ai,ui,ci,fi,di],Zi=Qi.slice(0,-1),Ki=Zi.slice(0,-1),er=Ki.slice(0,-1),tr=er.slice(0,-1),nr=[ni,ri],ir=[ni],rr=[[Zi,1,1e3],[Zi,5,5e3],[Zi,15,15e3],[Zi,30,3e4],[Ki,1,6e4],[Ki,5,3e5],[Ki,15,9e5],[Ki,30,18e5],[er,1,36e5],[er,3,108e5],[er,6,216e5],[er,12,432e5],[tr,1,864e5],[[ni,oi],1,6048e5],[nr,1,2592e6],[nr,3,7776e6],[ir,1,Ji]];function or(e){const t=e.extent,n=e.maxbins||40,i=Math.abs(Ot(t))/n;let r,o,a=ei((e=>e[2])).right(rr,i);return a===rr.length?(r=ir,o=Zt(t[0]/Ji,t[1]/Ji,n)):a?(a=rr[i/rr[a-1][2]0))return s;do{s.push(a=new Date(+n)),t(n,o),e(n)}while(a=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 ar.setTime(+t),sr.setTime(+i),e(ar),e(sr),Math.floor(n(ar,sr))},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 ur=864e5,cr=6048e5;function fr(e){return lr((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)/cr}))}var dr=fr(0),hr=fr(1),pr=fr(2),gr=fr(3),mr=fr(4),yr=fr(5),vr=fr(6),br=(dr.range,hr.range,pr.range,gr.range,mr.range,yr.range,vr.range,lr((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/ur}),(function(e){return e.getUTCDate()-1})));const xr=br;function wr(e){return lr((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()))/cr}))}br.range;var _r=wr(0),Or=wr(1),kr=wr(2),Er=wr(3),Dr=wr(4),Ar=wr(5),Sr=wr(6),Mr=(_r.range,Or.range,kr.range,Er.range,Dr.range,Ar.range,Sr.range,lr((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()))/ur}),(function(e){return e.getDate()-1})));const Cr=Mr;Mr.range;var Fr=lr((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()}));Fr.every=function(e){return isFinite(e=Math.floor(e))&&e>0?lr((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};const jr=Fr;Fr.range;var $r=lr((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()}));$r.every=function(e){return isFinite(e=Math.floor(e))&&e>0?lr((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};const Tr=$r;function Nr(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 zr(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 Pr(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function Rr(e){var t=e.dateTime,n=e.date,i=e.time,r=e.periods,o=e.days,a=e.shortDays,s=e.months,l=e.shortMonths,u=Jr(r),c=Qr(r),f=Jr(o),d=Qr(o),h=Jr(a),p=Qr(a),g=Jr(s),m=Qr(s),y=Jr(l),v=Qr(l),b={a:function(e){return a[e.getDay()]},A:function(e){return o[e.getDay()]},b:function(e){return l[e.getMonth()]},B:function(e){return s[e.getMonth()]},c:null,d:bo,e:bo,f:ko,g:No,G:Po,H:xo,I:wo,j:_o,L:Oo,m:Eo,M:Do,p:function(e){return r[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:aa,s:sa,S:Ao,u:So,U:Mo,V:Fo,w:jo,W:$o,x:null,X:null,y:To,Y:zo,Z:Ro,"%":oa},x={a:function(e){return a[e.getUTCDay()]},A:function(e){return o[e.getUTCDay()]},b:function(e){return l[e.getUTCMonth()]},B:function(e){return s[e.getUTCMonth()]},c:null,d:Lo,e:Lo,f:Wo,g:ta,G:ia,H:Bo,I:Uo,j:Io,L:qo,m:Ho,M:Yo,p:function(e){return r[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:aa,s:sa,S:Go,u:Vo,U:Xo,V:Qo,w:Zo,W:Ko,x:null,X:null,y:ea,Y:na,Z:ra,"%":oa},w={a:function(e,t,n){var i=h.exec(t.slice(n));return i?(e.w=p.get(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.get(i[0].toLowerCase()),n+i[0].length):-1},b:function(e,t,n){var i=y.exec(t.slice(n));return i?(e.m=v.get(i[0].toLowerCase()),n+i[0].length):-1},B:function(e,t,n){var i=g.exec(t.slice(n));return i?(e.m=m.get(i[0].toLowerCase()),n+i[0].length):-1},c:function(e,n,i){return k(e,t,n,i)},d:lo,e:lo,f:go,g:ro,G:io,H:co,I:co,j:uo,L:po,m:so,M:fo,p:function(e,t,n){var i=u.exec(t.slice(n));return i?(e.p=c.get(i[0].toLowerCase()),n+i[0].length):-1},q:ao,Q:yo,s:vo,S:ho,u:Kr,U:eo,V:to,w:Zr,W:no,x:function(e,t,i){return k(e,n,t,i)},X:function(e,t,n){return k(e,i,t,n)},y:ro,Y:io,Z:oo,"%":mo};function _(e,t){return function(n){var i,r,o,a=[],s=-1,l=0,u=e.length;for(n instanceof Date||(n=new Date(+n));++s53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=zr(Pr(o.y,0,1))).getUTCDay(),i=r>4||0===r?hr.ceil(i):hr(i),i=xr.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=Nr(Pr(o.y,0,1))).getDay(),i=r>4||0===r?Or.ceil(i):Or(i),i=Cr.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?zr(Pr(o.y,0,1)).getUTCDay():Nr(Pr(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,zr(o)):Nr(o)}}function k(e,t,n,i){for(var r,o,a=0,s=t.length,l=n.length;a=l)return-1;if(37===(r=t.charCodeAt(a++))){if(r=t.charAt(a++),!(o=w[r in Wr?t.charAt(a++):r])||(i=o(e,n,i))<0)return-1}else if(r!=n.charCodeAt(i++))return-1}return i}return b.x=_(n,b),b.X=_(i,b),b.c=_(t,b),x.x=_(n,x),x.X=_(i,x),x.c=_(t,x),{format:function(e){var t=_(e+="",b);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=_(e+="",x);return t.toString=function(){return e},t},utcParse:function(e){var t=O(e+="",!0);return t.toString=function(){return e},t}}}$r.range;var Lr,Br,Ur,Ir,qr,Wr={"-":"",_:" ",0:"0"},Hr=/^\s*\d+/,Yr=/^%/,Gr=/[\\^$*+?|[\]().{}]/g;function Vr(e,t,n){var i=e<0?"-":"",r=(i?-e:e)+"",o=r.length;return i+(o[e.toLowerCase(),t])))}function Zr(e,t,n){var i=Hr.exec(t.slice(n,n+1));return i?(e.w=+i[0],n+i[0].length):-1}function Kr(e,t,n){var i=Hr.exec(t.slice(n,n+1));return i?(e.u=+i[0],n+i[0].length):-1}function eo(e,t,n){var i=Hr.exec(t.slice(n,n+2));return i?(e.U=+i[0],n+i[0].length):-1}function to(e,t,n){var i=Hr.exec(t.slice(n,n+2));return i?(e.V=+i[0],n+i[0].length):-1}function no(e,t,n){var i=Hr.exec(t.slice(n,n+2));return i?(e.W=+i[0],n+i[0].length):-1}function io(e,t,n){var i=Hr.exec(t.slice(n,n+4));return i?(e.y=+i[0],n+i[0].length):-1}function ro(e,t,n){var i=Hr.exec(t.slice(n,n+2));return i?(e.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function oo(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 ao(e,t,n){var i=Hr.exec(t.slice(n,n+1));return i?(e.q=3*i[0]-3,n+i[0].length):-1}function so(e,t,n){var i=Hr.exec(t.slice(n,n+2));return i?(e.m=i[0]-1,n+i[0].length):-1}function lo(e,t,n){var i=Hr.exec(t.slice(n,n+2));return i?(e.d=+i[0],n+i[0].length):-1}function uo(e,t,n){var i=Hr.exec(t.slice(n,n+3));return i?(e.m=0,e.d=+i[0],n+i[0].length):-1}function co(e,t,n){var i=Hr.exec(t.slice(n,n+2));return i?(e.H=+i[0],n+i[0].length):-1}function fo(e,t,n){var i=Hr.exec(t.slice(n,n+2));return i?(e.M=+i[0],n+i[0].length):-1}function ho(e,t,n){var i=Hr.exec(t.slice(n,n+2));return i?(e.S=+i[0],n+i[0].length):-1}function po(e,t,n){var i=Hr.exec(t.slice(n,n+3));return i?(e.L=+i[0],n+i[0].length):-1}function go(e,t,n){var i=Hr.exec(t.slice(n,n+6));return i?(e.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function mo(e,t,n){var i=Yr.exec(t.slice(n,n+1));return i?n+i[0].length:-1}function yo(e,t,n){var i=Hr.exec(t.slice(n));return i?(e.Q=+i[0],n+i[0].length):-1}function vo(e,t,n){var i=Hr.exec(t.slice(n));return i?(e.s=+i[0],n+i[0].length):-1}function bo(e,t){return Vr(e.getDate(),t,2)}function xo(e,t){return Vr(e.getHours(),t,2)}function wo(e,t){return Vr(e.getHours()%12||12,t,2)}function _o(e,t){return Vr(1+Cr.count(jr(e),e),t,3)}function Oo(e,t){return Vr(e.getMilliseconds(),t,3)}function ko(e,t){return Oo(e,t)+"000"}function Eo(e,t){return Vr(e.getMonth()+1,t,2)}function Do(e,t){return Vr(e.getMinutes(),t,2)}function Ao(e,t){return Vr(e.getSeconds(),t,2)}function So(e){var t=e.getDay();return 0===t?7:t}function Mo(e,t){return Vr(_r.count(jr(e)-1,e),t,2)}function Co(e){var t=e.getDay();return t>=4||0===t?Dr(e):Dr.ceil(e)}function Fo(e,t){return e=Co(e),Vr(Dr.count(jr(e),e)+(4===jr(e).getDay()),t,2)}function jo(e){return e.getDay()}function $o(e,t){return Vr(Or.count(jr(e)-1,e),t,2)}function To(e,t){return Vr(e.getFullYear()%100,t,2)}function No(e,t){return Vr((e=Co(e)).getFullYear()%100,t,2)}function zo(e,t){return Vr(e.getFullYear()%1e4,t,4)}function Po(e,t){var n=e.getDay();return Vr((e=n>=4||0===n?Dr(e):Dr.ceil(e)).getFullYear()%1e4,t,4)}function Ro(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Vr(t/60|0,"0",2)+Vr(t%60,"0",2)}function Lo(e,t){return Vr(e.getUTCDate(),t,2)}function Bo(e,t){return Vr(e.getUTCHours(),t,2)}function Uo(e,t){return Vr(e.getUTCHours()%12||12,t,2)}function Io(e,t){return Vr(1+xr.count(Tr(e),e),t,3)}function qo(e,t){return Vr(e.getUTCMilliseconds(),t,3)}function Wo(e,t){return qo(e,t)+"000"}function Ho(e,t){return Vr(e.getUTCMonth()+1,t,2)}function Yo(e,t){return Vr(e.getUTCMinutes(),t,2)}function Go(e,t){return Vr(e.getUTCSeconds(),t,2)}function Vo(e){var t=e.getUTCDay();return 0===t?7:t}function Xo(e,t){return Vr(dr.count(Tr(e)-1,e),t,2)}function Jo(e){var t=e.getUTCDay();return t>=4||0===t?mr(e):mr.ceil(e)}function Qo(e,t){return e=Jo(e),Vr(mr.count(Tr(e),e)+(4===Tr(e).getUTCDay()),t,2)}function Zo(e){return e.getUTCDay()}function Ko(e,t){return Vr(hr.count(Tr(e)-1,e),t,2)}function ea(e,t){return Vr(e.getUTCFullYear()%100,t,2)}function ta(e,t){return Vr((e=Jo(e)).getUTCFullYear()%100,t,2)}function na(e,t){return Vr(e.getUTCFullYear()%1e4,t,4)}function ia(e,t){var n=e.getUTCDay();return Vr((e=n>=4||0===n?mr(e):mr.ceil(e)).getUTCFullYear()%1e4,t,4)}function ra(){return"+0000"}function oa(){return"%"}function aa(e){return+e}function sa(e){return Math.floor(+e/1e3)}function la(e){const t={};return n=>t[n]||(t[n]=e(n))}function ua(e){const t=la(e.format),n=e.formatPrefix;return{format:t,formatPrefix:n,formatFloat(e){const n=tn(e||",");if(null==n.precision){switch(n.precision=12,n.type){case"%":n.precision-=2;break;case"e":n.precision-=1}return function(e,t){return n=>{const i=e(n),r=i.indexOf(t);if(r<0)return i;let o=function(e,t){let n,i=e.lastIndexOf("e");if(i>0)return i;for(i=e.length;--i>t;)if(n=e.charCodeAt(i),n>=48&&n<=57)return i+1}(i,r);const a=or;)if("0"!==i[o]){++o;break}return i.slice(0,o)+a}}(t(n),t(".1f")(1)[1])}return t(n)},formatSpan(e,i,r,o){o=tn(null==o?",f":o);const a=Zt(e,i,r),s=Math.max(Math.abs(e),Math.abs(i));let l;if(null==o.precision)switch(o.type){case"s":return isNaN(l=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(on(t)/3)))-on(Math.abs(e)))}(a,s))||(o.precision=l),n(o,s);case"":case"e":case"g":case"p":case"r":isNaN(l=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,on(t)-on(e))+1}(a,s))||(o.precision=l-("e"===o.type));break;case"f":case"%":isNaN(l=function(e){return Math.max(0,-on(Math.abs(e)))}(a))||(o.precision=l-2*("%"===o.type))}return t(o)}}}let ca,fa;function da(){return ca=ua({format:cn,formatPrefix:fn})}function ha(e){return ua(pn(e))}function pa(e){return arguments.length?ca=ha(e):ca}function ga(e,t,n){we(n=n||{})||re(`Invalid time multi-format specifier: ${n}`);const i=t(fi),r=t(ci),o=t(ui),a=t(ai),s=t(oi),l=t(ri),u=t(ii),c=t(ni),f=e(n[di]||".%L"),d=e(n[fi]||":%S"),h=e(n[ci]||"%I:%M"),p=e(n[ui]||"%I %p"),g=e(n[ai]||n[si]||"%a %d"),m=e(n[oi]||"%b %d"),y=e(n[ri]||"%B"),v=e(n[ii]||"%B"),b=e(n[ni]||"%Y");return e=>(i(e)mt(e)?t(e):ga(t,Ii,e),utcFormat:e=>mt(e)?n(e):ga(n,qi,e),timeParse:la(e.parse),utcParse:la(e.utcParse)}}function ya(){return fa=ma({format:Br,parse:Ur,utcFormat:Ir,utcParse:qr})}function va(e){return ma(Rr(e))}function ba(e){return arguments.length?fa=va(e):fa}Lr=Rr({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"]}),Br=Lr.format,Ur=Lr.parse,Ir=Lr.utcFormat,qr=Lr.utcParse,da(),ya();const xa=(e,t)=>tt({},e,t);function wa(e,t){const n=e?ha(e):pa(),i=t?va(t):ba();return xa(n,i)}function _a(e,t){const n=arguments.length;return n&&2!==n&&re("defaultLocale expects either zero or two arguments."),n?xa(pa(e),ba(t)):xa(pa(),ba())}function Oa(){return da(),ya(),_a()}const ka=/^(data:|([A-Za-z]+:)?\/\/)/,Ea=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,Da=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Aa="file://";async function Sa(e,t){const n=await this.sanitize(e,t),i=n.href;return n.localFile?this.file(i):this.http(i,t)}async function Ma(e,t){t=tt({},this.options,t);const n=this.fileAccess,i={href:null};let r,o,a;const s=Ea.test(e.replace(Da,""));null!=e&&"string"==typeof e&&s||re("Sanitize failure, invalid URI: "+kt(e));const l=ka.test(e);return(a=t.baseURL)&&!l&&(e.startsWith("/")||a.endsWith("/")||(e="/"+e),e=a+e),o=(r=e.startsWith(Aa))||"file"===t.mode||"http"!==t.mode&&!l&&n,r?e=e.slice(Aa.length):e.startsWith("//")&&("file"===t.defaultProtocol?(e=e.slice(2),o=!0):e=(t.defaultProtocol||"http")+":"+e),Object.defineProperty(i,"localFile",{value:!!o}),i.href=e,t.target&&(i.target=t.target+""),t.rel&&(i.rel=t.rel+""),"image"===t.context&&t.crossOrigin&&(i.crossOrigin=t.crossOrigin+""),i}function Ca(e){return e?t=>new Promise(((n,i)=>{e.readFile(t,((e,t)=>{e?i(e):n(t)}))})):Fa}async function Fa(){re("No file system access.")}function ja(e){return e?async function(t,n){const i=tt({},this.options.http,n),r=n&&n.response,o=await e(t,i);return o.ok?Ge(o[r])?o[r]():o.text():re(o.status+""+o.statusText)}:$a}async function $a(){re("No HTTP fetch method available.")}const Ta=e=>!(Number.isNaN(+e)||e instanceof Date),Na={boolean:Et,integer:Ae,number:Ae,date:At,string:St,unknown:le},za=[e=>"true"===e||"false"===e||!0===e||!1===e,e=>Ta(e)&&Number.isInteger(+e),Ta,e=>!Number.isNaN(Date.parse(e))],Pa=["boolean","integer","number","date"];function Ra(e,t){if(!e||!e.length)return"unknown";const n=e.length,i=za.length,r=za.map(((e,t)=>t+1));for(let a,s,l=0,u=0;l0===e?t:e),0)-1]}function La(e,t){return t.reduce(((t,n)=>(t[n]=Ra(e,n),t)),{})}function Ba(e){const t=function(t,n){const i={delimiter:e};return Ua(t,n?tt(n,i):i)};return t.responseType="text",t}function Ua(e,t){return t.header&&(e=t.header.map(kt).join(t.delimiter)+"\n"+e),Pt(t.delimiter).parse(e+"")}function Ia(e,t){const n=t&&t.property?ae(t.property):le;return!we(e)||(i=e,"function"==typeof Buffer&&Ge(Buffer.isBuffer)&&Buffer.isBuffer(i))?n(JSON.parse(e)):function(e,t){return!xe(e)&&ht(e)&&(e=[...e]),t&&t.copy?JSON.parse(JSON.stringify(e)):e}(n(e),t);var i}Ua.responseType="text",Ia.responseType="json";const qa={interior:(e,t)=>e!==t,exterior:(e,t)=>e===t};function Wa(e,t){let n,i,r,o;return e=Ia(e,t),t&&t.feature?(n=Lt,r=t.feature):t&&t.mesh?(n=qt,r=t.mesh,o=qa[t.filter]):re("Missing TopoJSON feature or mesh parameter."),i=(i=e.objects[r])?n(e,i,o):re("Invalid TopoJSON object: "+r),i&&i.features||[i]}Wa.responseType="json";const Ha={dsv:Ua,csv:Ba(","),tsv:Ba("\t"),json:Ia,topojson:Wa};function Ya(e,t){return arguments.length>1?(Ha[e]=t,this):ot(Ha,e)?Ha[e]:null}function Ga(e){const t=Ya(e);return t&&t.responseType||"text"}function Va(e,t,n,i){const r=Ya((t=t||{}).type||"json");return r||re("Unknown data format type: "+t.type),e=r(e,t),t.parse&&function(e,t,n,i){if(!e.length)return;const r=ba();n=n||r.timeParse,i=i||r.utcParse;let o,a,s,l,u,c,f=e.columns||Object.keys(e[0]);"auto"===t&&(t=La(e,f)),f=Object.keys(t);const d=f.map((e=>{const r=t[e];let o,a;if(r&&(r.startsWith("date:")||r.startsWith("utc:")))return o=r.split(/:(.+)?/,2),a=o[1],("'"===a[0]&&"'"===a[a.length-1]||'"'===a[0]&&'"'===a[a.length-1])&&(a=a.slice(1,-1)),("utc"===o[0]?i:n)(a);if(!Na[r])throw Error("Illegal format pattern: "+e+":"+r);return Na[r]}));for(s=0,u=e.length,c=f.length;s({options:t||{},sanitize:Ma,load:Sa,fileAccess:!1,file:Ca(null),http:ja(e)})}("undefined"!=typeof fetch&&fetch);function Ja(e){const t=e||le,n=[],i={};return n.add=e=>{const r=t(e);return i[r]||(i[r]=1,n.push(e)),n},n.remove=e=>{const r=t(e);if(i[r]){i[r]=0;const t=n.indexOf(e);t>=0&&n.splice(t,1)}return n},n}async function Qa(e,t){try{await t(e)}catch(t){e.error(t)}}const Za=Symbol("vega_id");let Ka=1;function es(e){return!(!e||!ts(e))}function ts(e){return e[Za]}function ns(e,t){return e[Za]=t,e}function is(e){const t=e===Object(e)?e:{data:e};return ts(t)?t:ns(t,Ka++)}function rs(e){return os(e,is({}))}function os(e,t){for(const n in e)t[n]=e[n];return t}function as(e,t){return ns(t,ts(e))}function ss(e,t){return e?t?(n,i)=>e(n,i)||ts(t(n))-ts(t(i)):(t,n)=>e(t,n)||ts(t)-ts(n):null}function ls(e){return e&&e.constructor===us}function us(){const e=[],t=[],n=[],i=[],r=[];let o=null,a=!1;return{constructor:us,insert(t){const n=He(t),i=n.length;for(let t=0;t{p(e)&&(u[ts(e)]=-1)}));for(f=0,d=e.length;f0&&(y(g,p,h.value),s.modifies(p));for(f=0,d=r.length;f{p(e)&&u[ts(e)]>0&&y(e,h.field,h.value)})),s.modifies(h.field);if(a)s.mod=t.length||i.length?l.filter((e=>u[ts(e)]>0)):l.slice();else for(m in c)s.mod.push(c[m]);return(o||null==o&&(t.length||i.length))&&s.clean(!0),s}}}const cs="_:mod:_";function fs(){Object.defineProperty(this,cs,{writable:!0,value:{}})}fs.prototype={set(e,t,n,i){const r=this,o=r[e],a=r[cs];return null!=t&&t>=0?(o[t]!==n||i)&&(o[t]=n,a[t+":"+e]=-1,a[e]=-1):(o!==n||i)&&(r[e]=n,a[e]=xe(n)?1+n.length:-1),r},modified(e,t){const n=this[cs];if(!arguments.length){for(const e in n)if(n[e])return!0;return!1}if(xe(e)){for(let t=0;t=0?t+1{a instanceof ps?(a!==this&&(t&&a.targets().add(this),o.push(a)),r.push({op:a,name:e,index:n})):i.set(e,n,a)};for(a in e)if(s=e[a],"pulse"===a)He(s).forEach((e=>{e instanceof ps?e!==this&&(e.targets().add(this),o.push(e)):re("Pulse parameters must be operator instances.")})),this.source=s;else if(xe(s))for(i.set(a,-1,Array(l=s.length)),u=0;u{const n=Date.now();return n-t>e?(t=n,1):0}))},debounce(e){const t=vs();return this.targets().add(vs(null,null,et(e,(e=>{const n=e.dataflow;t.receive(e),n&&n.run&&n.run()})))),t},between(e,t){let n=!1;return e.targets().add(vs(null,null,(()=>n=!0))),t.targets().add(vs(null,null,(()=>n=!1))),this.filter((()=>n))},detach(){this._filter=fe,this._targets=null}};const bs={skip:!0};function xs(e,t,n,i,r,o){const a=tt({},o,bs);let s,l;Ge(n)||(n=Ke(n)),void 0===i?s=t=>e.touch(n(t)):Ge(i)?(l=new ps(null,i,r,!1),s=t=>{l.evaluate(t);const i=n(t),r=l.value;ls(r)?e.pulse(i,r,o):e.update(i,r,a)}):s=t=>e.update(n(t),i,a),t.apply(s)}function ws(e,t,n,i,r,o){if(void 0===i)t.targets().add(n);else{const a=o||{},s=new ps(null,function(e,t){return t=Ge(t)?t:Ke(t),e?function(n,i){const r=t(n,i);return e.skip()||(e.skip(r!==this.value).value=r),r}:t}(n,i),r,!1);s.modified(a.force),s.rank=t.rank,t.targets().add(s),n&&(s.skip(!0),s.value=n.value,s.targets().add(n),e.connect(n,[s]))}}const _s={};function Os(e,t,n){this.dataflow=e,this.stamp=null==t?-1:t,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=n||null}function ks(e,t){const n=[];return Ft(e,t,(e=>n.push(e))),n}function Es(e,t){const n={};return e.visit(t,(e=>{n[ts(e)]=1})),e=>n[ts(e)]?null:e}function Ds(e,t){return e?(n,i)=>e(n,i)&&t(n,i):t}function As(e,t,n,i){const r=this;let o=0;this.dataflow=e,this.stamp=t,this.fields=null,this.encode=i||null,this.pulses=n;for(const e of n)if(e.stamp===t){if(e.fields){const t=r.fields||(r.fields={});for(const n in e.fields)t[n]=1}e.changed(r.ADD)&&(o|=r.ADD),e.changed(r.REM)&&(o|=r.REM),e.changed(r.MOD)&&(o|=r.MOD)}this.changes=o}function Ss(e){return e.error("Dataflow already running. Use runAsync() to chain invocations."),e}Os.prototype={StopPropagation:_s,ADD:1,REM:2,MOD:4,ADD_REM:3,ADD_MOD:5,ALL:7,REFLOW:8,SOURCE:16,NO_SOURCE:32,NO_FIELDS:64,fork(e){return new Os(this.dataflow).init(this,e)},clone(){const e=this.fork(7);return e.add=e.add.slice(),e.rem=e.rem.slice(),e.mod=e.mod.slice(),e.source&&(e.source=e.source.slice()),e.materialize(23)},addAll(){let e=this;return!e.source||e.add===e.rem||!e.rem.length&&e.source.length===e.add.length||(e=new Os(this.dataflow).init(this),e.add=e.source,e.rem=[]),e},init(e,t){const n=this;return n.stamp=e.stamp,n.encode=e.encode,!e.fields||64&t||(n.fields=e.fields),1&t?(n.addF=e.addF,n.add=e.add):(n.addF=null,n.add=[]),2&t?(n.remF=e.remF,n.rem=e.rem):(n.remF=null,n.rem=[]),4&t?(n.modF=e.modF,n.mod=e.mod):(n.modF=null,n.mod=[]),32&t?(n.srcF=null,n.source=null):(n.srcF=e.srcF,n.source=e.source,e.cleans&&(n.cleans=e.cleans)),n},runAfter(e){this.dataflow.runAfter(e)},changed(e){const t=e||7;return 1&t&&this.add.length||2&t&&this.rem.length||4&t&&this.mod.length},reflow(e){if(e)return this.fork(7).reflow();const t=this.add.length,n=this.source&&this.source.length;return n&&n!==t&&(this.mod=this.source,t&&this.filter(4,Es(this,1))),this},clean(e){return arguments.length?(this.cleans=!!e,this):this.cleans},modifies(e){const t=this.fields||(this.fields={});return xe(e)?e.forEach((e=>t[e]=!0)):t[e]=!0,this},modified(e,t){const n=this.fields;return!(!t&&!this.mod.length||!n)&&(arguments.length?xe(e)?e.some((e=>n[e])):n[e]:!!n)},filter(e,t){const n=this;return 1&e&&(n.addF=Ds(n.addF,t)),2&e&&(n.remF=Ds(n.remF,t)),4&e&&(n.modF=Ds(n.modF,t)),16&e&&(n.srcF=Ds(n.srcF,t)),n},materialize(e){const t=this;return 1&(e=e||7)&&t.addF&&(t.add=ks(t.add,t.addF),t.addF=null),2&e&&t.remF&&(t.rem=ks(t.rem,t.remF),t.remF=null),4&e&&t.modF&&(t.mod=ks(t.mod,t.modF),t.modF=null),16&e&&t.srcF&&(t.source=t.source.filter(t.srcF),t.srcF=null),t},visit(e,t){const n=this,i=t;if(16&e)return Ft(n.source,n.srcF,i),n;1&e&&Ft(n.add,n.addF,i),2&e&&Ft(n.rem,n.remF,i),4&e&&Ft(n.mod,n.modF,i);const r=n.source;if(8&e&&r){const e=n.add.length+n.mod.length;e===r.length||Ft(r,e?Es(n,5):n.srcF,i)}return n}},ut(As,Os,{fork(e){const t=new Os(this.dataflow).init(this,e&this.NO_FIELDS);return void 0!==e&&(e&t.ADD&&this.visit(t.ADD,(e=>t.add.push(e))),e&t.REM&&this.visit(t.REM,(e=>t.rem.push(e))),e&t.MOD&&this.visit(t.MOD,(e=>t.mod.push(e)))),t},changed(e){return this.changes&e},modified(e){const t=this,n=t.fields;return n&&t.changes&t.MOD?xe(e)?e.some((e=>n[e])):n[e]:0},filter(){re("MultiPulse does not support filtering.")},materialize(){re("MultiPulse does not support materialization.")},visit(e,t){const n=this,i=n.pulses,r=i.length;let o=0;if(e&n.SOURCE)for(;ot&&(o=n-1>>1,r=e[o],i(a,r)<0);)e[n]=r,n=o;return e[n]=a}function Fs(){this.logger(be()),this.logLevel(ge),this._clock=0,this._rank=0,this._locale=_a();try{this._loader=Xa()}catch(e){}this._touched=Ja(se),this._input={},this._pulse=null,this._heap=function(e){let t=[];return{clear:()=>t=[],size:()=>t.length,peek:()=>t[0],push:n=>(t.push(n),Cs(t,0,t.length-1,e)),pop:()=>{const n=t.pop();let i;return t.length?(i=t[0],t[0]=n,function(e,t,n){const i=t,r=e.length,o=e[t];let a,s=1+(t<<1);for(;s=0&&(s=a),e[t]=e[s],s=1+((t=s)<<1);e[t]=o,Cs(e,i,t,n)}(t,0,e)):i=n,i}}}(((e,t)=>e.qrank-t.qrank)),this._postrun=[]}function js(e){return function(){return this._log[e].apply(this,arguments)}}function $s(e,t){ps.call(this,e,null,t)}Fs.prototype={stamp(){return this._clock},loader(e){return arguments.length?(this._loader=e,this):this._loader},locale(e){return arguments.length?(this._locale=e,this):this._locale},logger(e){return arguments.length?(this._log=e,this):this._log},error:js("error"),warn:js("warn"),info:js("info"),debug:js("debug"),logLevel:js("level"),cleanThreshold:1e4,add:function(e,t,n,i){let r,o=1;return e instanceof ps?r=e:e&&e.prototype instanceof ps?r=new e:Ge(e)?r=new ps(null,e):(o=0,r=new ps(e,t)),this.rank(r),o&&(i=n,n=t),n&&this.connect(r,r.parameters(n,i)),this.touch(r),r},connect:function(e,t){const n=e.rank,i=t.length;for(let r=0;r=0;)t.push(n=i[r]),n===e&&re("Cycle detected in dataflow graph.")},pulse:function(e,t,n){this.touch(e,n||Ms);const i=new Os(this,this._clock+(this._pulse?0:1)),r=e.pulse&&e.pulse.source||[];return i.target=e,this._input[e.id]=t.pulse(i,r),this},touch:function(e,t){const n=t||Ms;return this._pulse?this._enqueue(e):this._touched.add(e),n.skip&&e.skip(!0),this},update:function(e,t,n){const i=n||Ms;return(e.set(t)||i.force)&&this.touch(e,i),this},changeset:us,ingest:function(e,t,n){return t=this.parse(t,n),this.pulse(e,this.changeset().insert(t))},parse:function(e,t){const n=this.locale();return Va(e,t,n.timeParse,n.utcParse)},preload:async function(e,t,n){const i=this,r=i._pending||function(e){let t;const n=new Promise((e=>t=e));return n.requests=0,n.done=()=>{0==--n.requests&&(e._pending=null,t(e))},e._pending=n}(i);r.requests+=1;const o=await i.request(t,n);return i.pulse(e,i.changeset().remove(fe).insert(o.data||[])),r.done(),o},request:async function(e,t){const n=this;let i,r=0;try{i=await n.loader().load(e,{context:"dataflow",response:Ga(t&&t.type)});try{i=n.parse(i,t)}catch(t){r=-2,n.warn("Data ingestion failed",e,t)}}catch(t){r=-1,n.warn("Loading failed",e,t)}return{data:i,status:r}},events:function(e,t,n,i){const r=this,o=vs(n,i),a=function(e){e.dataflow=r;try{o.receive(e)}catch(e){r.error(e)}finally{r.run()}};let s;s="string"==typeof e&&"undefined"!=typeof document?document.querySelectorAll(e):He(e);const l=s.length;for(let e=0;ei._enqueue(e,!0))),i._touched=Ja(se);let a,s,l,u=0;try{for(;i._heap.size()>0;)a=i._heap.pop(),a.rank===a.qrank?(s=a.run(i._getPulse(a,e)),s.then?s=await s:s.async&&(r.push(s.async),s=_s),s!==_s&&a._targets&&a._targets.forEach((e=>i._enqueue(e))),++u):i._enqueue(a,!0)}catch(e){i._heap.clear(),l=e}if(i._input={},i._pulse=null,i.debug(`Pulse ${o}: ${u} operators`),l&&(i._postrun=[],i.error(l)),i._postrun.length){const e=i._postrun.sort(((e,t)=>t.priority-e.priority));i._postrun=[];for(let t=0;ti.runAsync(null,(()=>{e.forEach((e=>{try{e(i)}catch(e){i.error(e)}}))})))),i},run:function(e,t,n){return this._pulse?Ss(this):(this.evaluate(e,t,n),this)},runAsync:async function(e,t,n){for(;this._running;)await this._running;const i=()=>this._running=null;return(this._running=this.evaluate(e,t,n)).then(i,i),this._running},runAfter:function(e,t,n){if(this._pulse||t)this._postrun.push({priority:n||0,callback:e});else try{e(this)}catch(e){this.error(e)}},_enqueue:function(e,t){const n=e.stampe.pulse)),t):this._input[e.id]||function(e,t){return t&&t.stamp===e.stamp?t:(e=e.fork(),t&&t!==_s&&(e.source=t.source),e)}(this._pulse,n&&n.pulse)}},ut($s,ps,{run(e){if(e.stampthis.pulse=e)):t!==e.StopPropagation&&(this.pulse=t),t},evaluate(e){const t=this.marshall(e.stamp),n=this.transform(t,e);return t.clear(),n},transform(){}});const Ts={};function Ns(e){const t=zs(e);return t&&t.Definition||null}function zs(e){return e=e&&e.toLowerCase(),ot(Ts,e)?Ts[e]:null}function Ps(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n=t)&&(n=t);else{let i=-1;for(let r of e)null!=(r=t(r,++i,e))&&(n=r)&&(n=r)}return n}function Rs(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 Ls(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(et?1:0)}function Bs(e,t,n=0,i=1/0,r){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),i=Math.floor(Math.min(e.length-1,i)),!(n<=t&&t<=i))return e;for(r=void 0===r?Ls:function(e=Zn){if(e===Zn)return Ls;if("function"!=typeof e)throw new TypeError("compare is not a function");return(t,n)=>{const i=e(t,n);return i||0===i?i:(0===e(n,n))-(0===e(t,t))}}(r);i>n;){if(i-n>600){const o=i-n+1,a=t-n+1,s=Math.log(o),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(o-l)/o)*(a-o/2<0?-1:1);Bs(e,t,Math.max(n,Math.floor(t-a*l/o+u)),Math.min(i,Math.floor(t+(o-a)*l/o+u)),r)}const o=e[t];let a=n,s=i;for(Us(e,n,t),r(e[i],o)>0&&Us(e,n,i);a0;)--s}0===r(e[n],o)?Us(e,n,s):(++s,Us(e,s,i)),s<=t&&(n=s+1),t<=s&&(i=s-1)}return e}function Us(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function Is(e){return null===e?NaN:+e}function qs(e,t,n){if(e=Float64Array.from(function*(e,t){if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(yield t);else{let n=-1;for(let i of e)null!=(i=t(i,++n,e))&&(i=+i)>=i&&(yield i)}}(e,n)),(i=e.length)&&!isNaN(t=+t)){if(t<=0||i<2)return Rs(e);if(t>=1)return Ps(e);var i,r=(i-1)*t,o=Math.floor(r),a=Ps(Bs(e,o).subarray(0,o+1));return a+(Rs(e.subarray(o+1))-a)*(r-o)}}function Ws(e,t,n=Is){if((i=e.length)&&!isNaN(t=+t)){if(t<=0||i<2)return+n(e[0],0,e);if(t>=1)return+n(e[i-1],i-1,e);var i,r=(i-1)*t,o=Math.floor(r),a=+n(e[o],o,e);return a+(+n(e[o+1],o+1,e)-a)*(r-o)}}function Hs(e,t){return qs(e,.5,t)}function*Ys(e,t){if(null==t)for(let t of e)null!=t&&""!==t&&(t=+t)>=t&&(yield t);else{let n=-1;for(let i of e)i=t(i,++n,e),null!=i&&""!==i&&(i=+i)>=i&&(yield i)}}function Gs(e,t,n){const i=Float64Array.from(Ys(e,n));return i.sort(Zn),t.map((e=>Ws(i,e)))}function Vs(e,t){return Gs(e,[.25,.5,.75],t)}function Xs(e,t){const n=e.length,i=function(e,t){const n=function(e,t){let n,i=0,r=0,o=0;if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(n=t-r,r+=n/++i,o+=n*(t-r));else{let a=-1;for(let s of e)null!=(s=t(s,++a,e))&&(s=+s)>=s&&(n=s-r,r+=n/++i,o+=n*(s-r))}if(i>1)return o/(i-1)}(e,t);return n?Math.sqrt(n):n}(e,t),r=Vs(e,t),o=(r[2]-r[0])/1.34;return 1.06*(Math.min(i,o)||i||Math.abs(r[0])||1)*Math.pow(n,-.2)}function Js(e){const t=e.maxbins||20,n=e.base||10,i=Math.log(n),r=e.divide||[5,2];let o,a,s,l,u,c,f=e.extent[0],d=e.extent[1];const h=e.span||d-f||Math.abs(f)||1;if(e.step)o=e.step;else if(e.steps){for(l=h/t,u=0,c=e.steps.length;ut;)o*=n;for(u=0,c=r.length;u=s&&h/l<=t&&(o=l)}l=Math.log(o);const p=l>=0?0:1+~~(-l/i),g=Math.pow(n,-p-1);return(e.nice||void 0===e.nice)&&(l=Math.floor(f/o+g)*o,f=fe);const r=e.length,o=new Float64Array(r);let a,s=0,l=1,u=i(e[0]),c=u,f=u+t;for(;l=f){for(c=(u+c)/2;s>1);ra;)e[r--]=e[o]}o=a,a=i}return e}(o,t+t/4):o}function tl(e){return function(){return(e=(1103515245*e+12345)%2147483647)/2147483647}}function nl(e,t){let n,i,r;null==t&&(t=e,e=0);const o={min(e){return arguments.length?(n=e||0,r=i-n,o):n},max(e){return arguments.length?(i=e||0,r=i-n,o):i},sample:()=>n+Math.floor(r*Qs()),pdf:e=>e===Math.floor(e)&&e>=n&&e=i?1:(t-n+1)/r},icdf:e=>e>=0&&e<=1?n-1+Math.floor(e*r):NaN};return o.min(e).max(t)}const il=Math.sqrt(2*Math.PI),rl=Math.SQRT2;let ol=NaN;function al(e,t){e=e||0,t=null==t?1:t;let n,i,r=0,o=0;if(ol==ol)r=ol,ol=NaN;else{do{r=2*Qs()-1,o=2*Qs()-1,n=r*r+o*o}while(0===n||n>1);i=Math.sqrt(-2*Math.log(n)/n),r*=i,ol=o*i}return e+r*t}function sl(e,t,n){const i=(e-(t||0))/(n=null==n?1:n);return Math.exp(-.5*i*i)/(n*il)}function ll(e,t,n){const i=(e-(t=t||0))/(n=null==n?1:n),r=Math.abs(i);let o;if(r>37)o=0;else{const e=Math.exp(-r*r/2);let t;r<7.07106781186547?(t=.0352624965998911*r+.700383064443688,t=t*r+6.37396220353165,t=t*r+33.912866078383,t=t*r+112.079291497871,t=t*r+221.213596169931,t=t*r+220.206867912376,o=e*t,t=.0883883476483184*r+1.75566716318264,t=t*r+16.064177579207,t=t*r+86.7807322029461,t=t*r+296.564248779674,t=t*r+637.333633378831,t=t*r+793.826512519948,t=t*r+440.413735824752,o/=t):(t=r+.65,t=r+4/t,t=r+3/t,t=r+2/t,t=r+1/t,o=e/t/2.506628274631)}return i>0?1-o:o}function ul(e,t,n){return e<0||e>1?NaN:(t||0)+(null==n?1:n)*rl*function(e){let t,n=-Math.log((1-e)*(1+e));return n<6.25?(n-=3.125,t=-364441206401782e-35,t=t*n-16850591381820166e-35,t=128584807152564e-32+t*n,t=11157877678025181e-33+t*n,t=t*n-1333171662854621e-31,t=20972767875968562e-33+t*n,t=6637638134358324e-30+t*n,t=t*n-4054566272975207e-29,t=t*n-8151934197605472e-29,t=26335093153082323e-28+t*n,t=t*n-12975133253453532e-27,t=t*n-5415412054294628e-26,t=1.0512122733215323e-9+t*n,t=t*n-4.112633980346984e-9,t=t*n-2.9070369957882005e-8,t=4.2347877827932404e-7+t*n,t=t*n-13654692000834679e-22,t=t*n-13882523362786469e-21,t=.00018673420803405714+t*n,t=t*n-.000740702534166267,t=t*n-.006033670871430149,t=.24015818242558962+t*n,t=1.6536545626831027+t*n):n<16?(n=Math.sqrt(n)-3.25,t=2.2137376921775787e-9,t=9.075656193888539e-8+t*n,t=t*n-2.7517406297064545e-7,t=1.8239629214389228e-8+t*n,t=15027403968909828e-22+t*n,t=t*n-4013867526981546e-21,t=29234449089955446e-22+t*n,t=12475304481671779e-21+t*n,t=t*n-47318229009055734e-21,t=6828485145957318e-20+t*n,t=24031110387097894e-21+t*n,t=t*n-.0003550375203628475,t=.0009532893797373805+t*n,t=t*n-.0016882755560235047,t=.002491442096107851+t*n,t=t*n-.003751208507569241,t=.005370914553590064+t*n,t=1.0052589676941592+t*n,t=3.0838856104922208+t*n):Number.isFinite(n)?(n=Math.sqrt(n)-5,t=-27109920616438573e-27,t=t*n-2.555641816996525e-10,t=1.5076572693500548e-9+t*n,t=t*n-3.789465440126737e-9,t=7.61570120807834e-9+t*n,t=t*n-1.496002662714924e-8,t=2.914795345090108e-8+t*n,t=t*n-6.771199775845234e-8,t=2.2900482228026655e-7+t*n,t=t*n-9.9298272942317e-7,t=4526062597223154e-21+t*n,t=t*n-1968177810553167e-20,t=7599527703001776e-20+t*n,t=t*n-.00021503011930044477,t=t*n-.00013871931833623122,t=1.0103004648645344+t*n,t=4.849906401408584+t*n):t=1/0,t*e}(2*e-1)}function cl(e,t){let n,i;const r={mean(e){return arguments.length?(n=e||0,r):n},stdev(e){return arguments.length?(i=null==e?1:e,r):i},sample:()=>al(n,i),pdf:e=>sl(e,n,i),cdf:e=>ll(e,n,i),icdf:e=>ul(e,n,i)};return r.mean(e).stdev(t)}function fl(e,t){const n=cl();let i=0;const r={data(n){return arguments.length?(e=n,i=n?n.length:0,r.bandwidth(t)):e},bandwidth(n){return arguments.length?(!(t=n)&&e&&(t=Xs(e)),r):t},sample:()=>e[~~(Qs()*i)]+t*n.sample(),pdf(r){let o=0,a=0;for(;adl(n,i),pdf:e=>hl(e,n,i),cdf:e=>pl(e,n,i),icdf:e=>gl(e,n,i)};return r.mean(e).stdev(t)}function yl(e,t){let n,i=0;const r={weights(e){return arguments.length?(n=function(e){const t=[];let n,r=0;for(n=0;n=t&&e<=n?1/(n-t):0}function xl(e,t,n){return null==n&&(n=null==t?1:t,t=0),en?1:(e-t)/(n-t)}function wl(e,t,n){return null==n&&(n=null==t?1:t,t=0),e>=0&&e<=1?t+e*(n-t):NaN}function _l(e,t){let n,i;const r={min(e){return arguments.length?(n=e||0,r):n},max(e){return arguments.length?(i=null==e?1:e,r):i},sample:()=>vl(n,i),pdf:e=>bl(e,n,i),cdf:e=>xl(e,n,i),icdf:e=>wl(e,n,i)};return null==t&&(t=null==e?1:e,e=0),r.min(e).max(t)}function Ol(e,t,n,i){const r=i-e*e,o=Math.abs(r)<1e-24?0:(n-e*t)/r;return[t-o*e,o]}function kl(e,t,n,i){e=e.filter((e=>{let i=t(e),r=n(e);return null!=i&&(i=+i)>=i&&null!=r&&(r=+r)>=r})),i&&e.sort(((e,n)=>t(e)-t(n)));const r=e.length,o=new Float64Array(r),a=new Float64Array(r);let s,l,u,c=0,f=0,d=0;for(u of e)o[c]=s=+t(u),a[c]=l=+n(u),++c,f+=(s-f)/c,d+=(l-d)/c;for(c=0;c=r&&null!=o&&(o=+o)>=o&&i(r,o,++a)}function Dl(e,t,n,i,r){let o=0,a=0;return El(e,t,n,((e,t)=>{const n=t-r(e),s=t-i;o+=n*n,a+=s*s})),1-o/a}function Al(e,t,n){let i=0,r=0,o=0,a=0,s=0;El(e,t,n,((e,t)=>{++s,i+=(e-i)/s,r+=(t-r)/s,o+=(e*t-o)/s,a+=(e*e-a)/s}));const l=Ol(i,r,o,a),u=e=>l[0]+l[1]*e;return{coef:l,predict:u,rSquared:Dl(e,t,n,r,u)}}function Sl(e,t,n){let i=0,r=0,o=0,a=0,s=0;El(e,t,n,((e,t)=>{++s,e=Math.log(e),i+=(e-i)/s,r+=(t-r)/s,o+=(e*t-o)/s,a+=(e*e-a)/s}));const l=Ol(i,r,o,a),u=e=>l[0]+l[1]*Math.log(e);return{coef:l,predict:u,rSquared:Dl(e,t,n,r,u)}}function Ml(e,t,n){const[i,r,o,a]=kl(e,t,n);let s,l,u,c=0,f=0,d=0,h=0,p=0;El(e,t,n,((e,t)=>{s=i[p++],l=Math.log(t),u=s*t,c+=(t*l-c)/p,f+=(u-f)/p,d+=(u*l-d)/p,h+=(s*u-h)/p}));const[g,m]=Ol(f/a,c/a,d/a,h/a),y=e=>Math.exp(g+m*(e-o));return{coef:[Math.exp(g-m*o),m],predict:y,rSquared:Dl(e,t,n,a,y)}}function Cl(e,t,n){let i=0,r=0,o=0,a=0,s=0,l=0;El(e,t,n,((e,t)=>{const n=Math.log(e),u=Math.log(t);++l,i+=(n-i)/l,r+=(u-r)/l,o+=(n*u-o)/l,a+=(n*n-a)/l,s+=(t-s)/l}));const u=Ol(i,r,o,a),c=e=>u[0]*Math.pow(e,u[1]);return u[0]=Math.exp(u[0]),{coef:u,predict:c,rSquared:Dl(e,t,n,s,c)}}function Fl(e,t,n){const[i,r,o,a]=kl(e,t,n),s=i.length;let l,u,c,f,d=0,h=0,p=0,g=0,m=0;for(l=0;lb*(e-=o)*e+x*e+w+a;return{coef:[w-x*o+b*o*o+a,x-2*b*o,b],predict:_,rSquared:Dl(e,t,n,a,_)}}function jl(e,t,n,i){if(1===i)return Al(e,t,n);if(2===i)return Fl(e,t,n);const[r,o,a,s]=kl(e,t,n),l=r.length,u=[],c=[],f=i+1;let d,h,p,g,m;for(d=0;dMath.abs(e[i][a])&&(a=r);for(o=i;o=i;o--)e[o][r]-=e[o][i]*e[i][r]/e[i][i]}for(r=t-1;r>=0;--r){for(s=0,o=r+1;o{e-=a;let t=s+y[0]+y[1]*e+y[2]*e*e;for(d=3;d=0;--o)for(s=t[o],l=1,r[o]+=s,a=1;a<=o;++a)l*=(o+1-a)/a,r[o-a]+=s*Math.pow(n,a)*l;return r[0]+=i,r}function Tl(e,t,n,i){const[r,o,a,s]=kl(e,t,n,!0),l=r.length,u=Math.max(2,~~(i*l)),c=new Float64Array(l),f=new Float64Array(l),d=new Float64Array(l).fill(1);for(let e=-1;++e<=2;){const t=[0,u-1];for(let e=0;er[a]-n?i:a;let l=0,u=0,h=0,p=0,g=0;const m=1/Math.abs(r[s]-n||1);for(let e=i;e<=a;++e){const t=r[e],i=o[e],a=Nl(Math.abs(n-t)*m)*d[e],s=t*a;l+=a,u+=s,h+=i*a,p+=i*s,g+=t*s}const[y,v]=Ol(u/l,h/l,p/l,g/l);c[e]=y+v*n,f[e]=Math.abs(o[e]-c[e]),zl(r,e+1,t)}if(2===e)break;const n=Hs(f);if(Math.abs(n)<1e-12)break;for(let e,t,i=0;i=1?1e-12:(t=1-e*e)*t}return function(e,t,n,i){const r=e.length,o=[];let a,s=0,l=0,u=[];for(;s=e.length))for(;t>r&&e[o]-i<=i-e[r];)n[0]=++r,n[1]=o,++o}const Pl=.5*Math.PI/180;function Rl(e,t,n,i){n=n||25,i=Math.max(n,i||200);const r=t=>[t,e(t)],o=t[0],a=t[1],s=a-o,l=s/i,u=[r(o)],c=[];if(n===i){for(let e=1;e0;)c.push(r(o+e/n*s));let f=u[0],d=c[c.length-1];const h=1/s,p=function(e,t){let n=e,i=e;const r=t.length;for(let e=0;ei&&(i=r)}return 1/(i-n)}(f[1],c);for(;d;){const e=r((f[0]+d[0])/2);e[0]-f[0]>=l&&Ll(f,e,d,h,p)>Pl?c.push(e):(f=d,u.push(d),c.pop()),d=c[c.length-1]}return u}function Ll(e,t,n,i,r){const o=Math.atan2(r*(n[1]-e[1]),i*(n[0]-e[0])),a=Math.atan2(r*(t[1]-e[1]),i*(t[0]-e[0]));return Math.abs(o-a)}function Bl(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{const n=t.length;let i=1,r=String(t[0](e));for(;i{},Wl={init:ql,add:ql,rem:ql,idx:0},Hl={values:{init:e=>e.cell.store=!0,value:e=>e.cell.data.values(),idx:-1},count:{value:e=>e.cell.num},__count__:{value:e=>e.missing+e.valid},missing:{value:e=>e.missing},valid:{value:e=>e.valid},sum:{init:e=>e.sum=0,value:e=>e.sum,add:(e,t)=>e.sum+=+t,rem:(e,t)=>e.sum-=t},product:{init:e=>e.product=1,value:e=>e.valid?e.product:void 0,add:(e,t)=>e.product*=t,rem:(e,t)=>e.product/=t},mean:{init:e=>e.mean=0,value:e=>e.valid?e.mean:void 0,add:(e,t)=>(e.mean_d=t-e.mean,e.mean+=e.mean_d/e.valid),rem:(e,t)=>(e.mean_d=t-e.mean,e.mean-=e.valid?e.mean_d/e.valid:e.mean)},average:{value:e=>e.valid?e.mean:void 0,req:["mean"],idx:1},variance:{init:e=>e.dev=0,value:e=>e.valid>1?e.dev/(e.valid-1):void 0,add:(e,t)=>e.dev+=e.mean_d*(t-e.mean),rem:(e,t)=>e.dev-=e.mean_d*(t-e.mean),req:["mean"],idx:1},variancep:{value:e=>e.valid>1?e.dev/e.valid:void 0,req:["variance"],idx:2},stdev:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:e=>e.valid>1?Math.sqrt(e.dev/e.valid):void 0,req:["variance"],idx:2},stderr:{value:e=>e.valid>1?Math.sqrt(e.dev/(e.valid*(e.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:e=>e.cell.data.distinct(e.get),req:["values"],idx:3},ci0:{value:e=>e.cell.data.ci0(e.get),req:["values"],idx:3},ci1:{value:e=>e.cell.data.ci1(e.get),req:["values"],idx:3},median:{value:e=>e.cell.data.q2(e.get),req:["values"],idx:3},q1:{value:e=>e.cell.data.q1(e.get),req:["values"],idx:3},q3:{value:e=>e.cell.data.q3(e.get),req:["values"],idx:3},min:{init:e=>e.min=void 0,value:e=>e.min=Number.isNaN(e.min)?e.cell.data.min(e.get):e.min,add:(e,t)=>{(t{t<=e.min&&(e.min=NaN)},req:["values"],idx:4},max:{init:e=>e.max=void 0,value:e=>e.max=Number.isNaN(e.max)?e.cell.data.max(e.get):e.max,add:(e,t)=>{(t>e.max||void 0===e.max)&&(e.max=t)},rem:(e,t)=>{t>=e.max&&(e.max=NaN)},req:["values"],idx:4},argmin:{init:e=>e.argmin=void 0,value:e=>e.argmin||e.cell.data.argmin(e.get),add:(e,t,n)=>{t{t<=e.min&&(e.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:e=>e.argmax=void 0,value:e=>e.argmax||e.cell.data.argmax(e.get),add:(e,t,n)=>{t>e.max&&(e.argmax=n)},rem:(e,t)=>{t>=e.max&&(e.argmax=void 0)},req:["max","values"],idx:3}},Yl=Object.keys(Hl).filter((e=>"__count__"!==e));function Gl(e,t){return Hl[e](t)}function Vl(e,t){return e.idx-t.idx}function Xl(){this.valid=0,this.missing=0,this._ops.forEach((e=>e.init(this)))}function Jl(e,t){null!=e&&""!==e?e==e&&(++this.valid,this._ops.forEach((n=>n.add(this,e,t)))):++this.missing}function Ql(e,t){null!=e&&""!==e?e==e&&(--this.valid,this._ops.forEach((n=>n.rem(this,e,t)))):--this.missing}function Zl(e){return this._out.forEach((t=>e[t.out]=t.value(this))),e}function Kl(e,t){const n=t||le,i=function(e){const t={};e.forEach((e=>t[e.name]=e));const n=e=>{e.req&&e.req.forEach((e=>{t[e]||n(t[e]=Hl[e]())}))};return e.forEach(n),Object.values(t).sort(Vl)}(e),r=e.slice().sort(Vl);function o(e){this._ops=i,this._out=r,this.cell=e,this.init()}return o.prototype.init=Xl,o.prototype.add=Jl,o.prototype.rem=Ql,o.prototype.set=Zl,o.prototype.get=n,o.fields=e.map((e=>e.out)),o}function eu(e){this._key=e?ae(e):ts,this.reset()}[...Yl,"__count__"].forEach((e=>{Hl[e]=function(e,t){return n=>tt({name:e,out:n||e},Wl,t)}(e,Hl[e])}));const tu=eu.prototype;function nu(e){$s.call(this,null,e),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}function iu(e){$s.call(this,null,e)}function ru(e,t,n){const i=e;let r=t||[],o=n||[],a={},s=0;return{add:e=>o.push(e),remove:e=>a[i(e)]=++s,size:()=>r.length,data:(e,t)=>(s&&(r=r.filter((e=>!a[i(e)])),a={},s=0),t&&e&&r.sort(e),o.length&&(r=e?xt(e,r,o.sort(e)):r.concat(o),o=[]),r)}}function ou(e){$s.call(this,[],e)}function au(e){ps.call(this,null,su,e)}function su(e){return this.value&&!e.modified()?this.value:Ve(e.fields,e.orders)}function lu(e){$s.call(this,null,e)}function uu(e){$s.call(this,null,e)}tu.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null},tu.add=function(e){this._add.push(e)},tu.rem=function(e){this._rem.push(e)},tu.values=function(){if(this._get=null,0===this._rem.length)return this._add;const e=this._add,t=this._rem,n=this._key,i=e.length,r=t.length,o=Array(i-r),a={};let s,l,u;for(s=0;s=0;)i=e(t[r])+"",ot(n,i)||(n[i]=1,++o);return o},tu.extent=function(e){if(this._get!==e||!this._ext){const t=this.values(),n=it(t,e);this._ext=[t[n[0]],t[n[1]]],this._get=e}return this._ext},tu.argmin=function(e){return this.extent(e)[0]||{}},tu.argmax=function(e){return this.extent(e)[1]||{}},tu.min=function(e){const t=this.extent(e)[0];return null!=t?e(t):void 0},tu.max=function(e){const t=this.extent(e)[1];return null!=t?e(t):void 0},tu.quartile=function(e){return this._get===e&&this._q||(this._q=Vs(this.values(),e),this._get=e),this._q},tu.q1=function(e){return this.quartile(e)[0]},tu.q2=function(e){return this.quartile(e)[1]},tu.q3=function(e){return this.quartile(e)[2]},tu.ci=function(e){return this._get===e&&this._ci||(this._ci=Ks(this.values(),1e3,.05,e),this._get=e),this._ci},tu.ci0=function(e){return this.ci(e)[0]},tu.ci1=function(e){return this.ci(e)[1]},nu.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Yl},{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"}]},ut(nu,$s,{transform(e,t){const n=this,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.modified();return n.stamp=i.stamp,n.value&&(r||t.modified(n._inputs,!0))?(n._prev=n.value,n.value=r?n.init(e):{},t.visit(t.SOURCE,(e=>n.add(e)))):(n.value=n.value||n.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),i.modifies(n._outputs),n._drop=!1!==e.drop,e.cross&&n._dims.length>1&&(n._drop=!1,n.cross()),t.clean()&&n._drop&&i.clean(!0).runAfter((()=>this.clean())),n.changes(i)},cross(){const e=this,t=e.value,n=e._dnames,i=n.map((()=>({}))),r=n.length;function o(e){let t,o,a,s;for(t in e)for(a=e[t].tuple,o=0;o{const t=K(e);return r(e),n.push(t),t})),this.cellkey=e.key?e.key:Ul(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const o=e.fields||[null],a=e.ops||["count"],s=e.as||[],l=o.length,u={};let c,f,d,h,p,g;for(l!==a.length&&re("Unmatched number of fields and aggregate ops."),g=0;gKl(e,e.field))),{}},cellkey:Ul(),cell(e,t){let n=this.value[e];return n?0===n.num&&this._drop&&n.stamp{const t=i(e);e[s]=t,e[l]=null==t?null:r+o*(1+(t-r)/o)}:e=>e[s]=i(e)),t.modifies(n?a:s)},_bins(e){if(this.value&&!e.modified())return this.value;const t=e.field,n=Js(e),i=n.step;let r,o,a=n.start,s=a+Math.ceil((n.stop-a)/i)*i;null!=(r=e.anchor)&&(o=r-(a+i*Math.floor((r-a)/i)),a+=o,s+=o);const l=function(e){let n=Ae(t(e));return null==n?null:ns?1/0:(n=Math.max(a,Math.min(n,s-i)),a+i*Math.floor(1e-14+(n-a)/i))};return l.start=a,l.stop=n.stop,l.step=i,this.value=Z(l,ee(t),e.name||"bin_"+K(t))}}),ou.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]},ut(ou,$s,{transform(e,t){const n=t.fork(t.ALL),i=ru(ts,this.value,n.materialize(n.ADD).add),r=e.sort,o=t.changed()||r&&(e.modified("sort")||t.modified(r.fields));return n.visit(n.REM,i.remove),this.modified(o),this.value=n.source=i.data(ss(r),o),t.source&&t.source.root&&(this.value.root=t.source.root),n}}),ut(au,ps),lu.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"]}]},ut(lu,$s,{transform(e,t){const n=t=>n=>{for(var i,r=function(e,t,n){switch(t){case"upper":e=e.toUpperCase();break;case"lower":e=e.toLowerCase()}return e.match(n)}(s(n),e.case,o)||[],l=0,u=r.length;lr[e]=1+(r[e]||0))),c=n((e=>r[e]-=1));return i?t.visit(t.SOURCE,u):(t.visit(t.ADD,u),t.visit(t.REM,c)),this._finish(t,l)},_parameterCheck(e,t){let n=!1;return!e.modified("stopwords")&&this._stop||(this._stop=new RegExp("^"+(e.stopwords||"")+"$","i"),n=!0),!e.modified("pattern")&&this._match||(this._match=new RegExp(e.pattern||"[\\w']+","g"),n=!0),(e.modified("field")||t.modified(e.field.fields))&&(n=!0),n&&(this._counts={}),n},_finish(e,t){const n=this._counts,i=this._tuples||(this._tuples={}),r=t[0],o=t[1],a=e.fork(e.NO_SOURCE|e.NO_FIELDS);let s,l,u;for(s in n)l=i[s],u=n[s]||0,!l&&u?(i[s]=l=is({}),l[r]=s,l[o]=u,a.add.push(l)):0===u?(l&&a.rem.push(l),n[s]=null,i[s]=null):l[o]!==u&&(l[o]=u,a.mod.push(l));return a.modifies(t)}}),uu.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]},ut(uu,$s,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.as||["a","b"],r=i[0],o=i[1],a=!this.value||t.changed(t.ADD_REM)||e.modified("as")||e.modified("filter");let s=this.value;return a?(s&&(n.rem=s),s=t.materialize(t.SOURCE).source,n.add=this.value=function(e,t,n,i){for(var r,o,a=[],s={},l=e.length,u=0;ufu(e,t)))):"function"==typeof i[n]&&i[n](e[n]);return i}function du(e){$s.call(this,null,e)}const hu=[{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}]}],pu={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:hu},{name:"weights",type:"number",array:!0}]};function gu(e,t){return e?e.map(((e,n)=>t[n]||K(e))):null}function mu(e,t,n){const i=[],r=e=>e(l);let o,a,s,l,u,c;if(null==t)i.push(e.map(n));else for(o={},a=0,s=e.length;at(n,e)),ee(t),K(t))}function xu(e){$s.call(this,[void 0,void 0],e)}function wu(e,t){ps.call(this,e),this.parent=t,this.count=0}function _u(e){$s.call(this,{},e),this._keys=st();const t=this._targets=[];t.active=0,t.forEach=e=>{for(let n=0,i=t.active;nae(e))):ae(e.name,e.as)}function Eu(e){$s.call(this,st(),e)}function Du(e){$s.call(this,[],e)}function Au(e){$s.call(this,[],e)}function Su(e){$s.call(this,null,e)}function Mu(e){$s.call(this,[],e)}du.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:hu.concat(pu)},{name:"as",type:"string",array:!0,default:["value","density"]}]},ut(du,$s,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=fu(e.distribution,function(e){return()=>e.materialize(e.SOURCE).source}(t)),r=e.steps||e.minsteps||25,o=e.steps||e.maxsteps||200;let a=e.method||"pdf";"pdf"!==a&&"cdf"!==a&&re("Invalid density method: "+a),e.extent||i.data||re("Missing density extent parameter."),a=i[a];const s=e.as||["value","density"],l=Rl(a,e.extent||nt(i.data()),r,o).map((e=>{const t={};return t[s[0]]=e[0],t[s[1]]=e[1],is(t)}));this.value&&(n.rem=this.value),this.value=n.add=n.source=l}return n}}),yu.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"}]},ut(yu,$s,{transform(e,t){if(this.value&&!e.modified()&&!t.changed())return t;const n=t.materialize(t.SOURCE).source,i=mu(t.source,e.groupby,le),r=e.smooth||!1,o=e.field,a=e.step||((e,t)=>Ot(nt(e,t))/30)(n,o),s=ss(((e,t)=>o(e)-o(t))),l=e.as||"bin",u=i.length;let c,f=1/0,d=-1/0,h=0;for(;hd&&(d=t),e[++c][l]=t}return this.value={start:f,stop:d,step:a},t.reflow(!0).modifies(l)}}),ut(vu,ps),xu.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]},ut(xu,$s,{transform(e,t){const n=this.value,i=e.field,r=t.changed()||t.modified(i.fields)||e.modified("field");let o=n[0],a=n[1];if((r||null==o)&&(o=1/0,a=-1/0),t.visit(r?t.SOURCE:t.ADD,(e=>{const t=Ae(i(e));null!=t&&(ta&&(a=t))})),!Number.isFinite(o)||!Number.isFinite(a)){let e=K(i);e&&(e=` for field "${e}"`),t.dataflow.warn(`Infinite extent${e}: [${o}, ${a}]`),o=a=void 0}this.value=[o,a]}}),ut(wu,ps,{connect(e){return this.detachSubflow=e.detachSubflow,this.targets().add(e),e.source=this},add(e){this.count+=1,this.value.add.push(e)},rem(e){this.count-=1,this.value.rem.push(e)},mod(e){this.value.mod.push(e)},init(e){this.value.init(e,e.NO_SOURCE)},evaluate(){return this.value}}),ut(_u,$s,{activate(e){this._targets[this._targets.active++]=e},subflow(e,t,n,i){const r=this.value;let o,a,s=ot(r,e)&&r[e];return s?s.value.stampe&&e.count>0));this.initTargets(e)}},initTargets(e){const t=this._targets,n=t.length,i=e?e.length:0;let r=0;for(;rthis.subflow(e,r,t);return this._group=e.group||{},this.initTargets(),t.visit(t.REM,(e=>{const t=ts(e),n=o.get(t);void 0!==n&&(o.delete(t),s(n).rem(e))})),t.visit(t.ADD,(e=>{const t=i(e);o.set(ts(e),t),s(t).add(e)})),a||t.modified(i.fields)?t.visit(t.MOD,(e=>{const t=ts(e),n=o.get(t),r=i(e);n===r?s(r).mod(e):(o.set(t,r),s(n).rem(e),s(r).add(e))})):t.changed(t.MOD)&&t.visit(t.MOD,(e=>{s(o.get(ts(e))).mod(e)})),a&&t.visit(t.REFLOW,(e=>{const t=ts(e),n=o.get(t),r=i(e);n!==r&&(o.set(t,r),s(n).rem(e),s(r).add(e))})),t.clean()?n.runAfter((()=>{this.clean(),o.clean()})):o.empty>n.cleanThreshold&&n.runAfter(o.clean),t}}),ut(Ou,ps),Eu.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]},ut(Eu,$s,{transform(e,t){const n=t.dataflow,i=this.value,r=t.fork(),o=r.add,a=r.rem,s=r.mod,l=e.expr;let u=!0;function c(t){const n=ts(t),r=l(t,e),c=i.get(n);r&&c?(i.delete(n),o.push(t)):r||c?u&&r&&!c&&s.push(t):(i.set(n,1),a.push(t))}return t.visit(t.REM,(e=>{const t=ts(e);i.has(t)?i.delete(t):a.push(e)})),t.visit(t.ADD,(t=>{l(t,e)?o.push(t):i.set(ts(t),1)})),t.visit(t.MOD,c),e.modified()&&(u=!1,t.visit(t.REFLOW,c)),i.empty>n.cleanThreshold&&n.runAfter(i.clean),r}}),Du.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}]},ut(Du,$s,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=gu(i,e.as||[]),o=e.index||null,a=r.length;return n.rem=this.value,t.visit(t.SOURCE,(e=>{const t=i.map((t=>t(e))),s=t.reduce(((e,t)=>Math.max(e,t.length)),0);let l,u,c,f=0;for(;f{for(let t,o=0;ot[i]=n(t,e)))}}),ut(Mu,$s,{transform(e,t){const n=t.fork(t.ALL),i=e.generator;let r,o,a,s=this.value,l=e.size-s.length;if(l>0){for(r=[];--l>=0;)r.push(a=is(i(e))),s.push(a);n.add=n.add.length?n.materialize(n.ADD).add.concat(r):r}else o=s.slice(0,-l),n.rem=n.rem.length?n.materialize(n.REM).rem.concat(o):o,s=s.slice(-l);return n.source=this.value=s,n}});const Cu={value:"value",median:Hs,mean:function(e,t){let n=0,i=0;if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(++n,i+=t);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(o=+o)>=o&&(++n,i+=o)}if(n)return i/n},min:Rs,max:Ps},Fu=[];function ju(e){$s.call(this,[],e)}function $u(e){nu.call(this,e)}function Tu(e){$s.call(this,null,e)}function Nu(e){ps.call(this,null,zu,e)}function zu(e){return this.value&&!e.modified()?this.value:yt(e.fields,e.flat)}function Pu(e){$s.call(this,[],e),this._pending=null}function Ru(e,t,n){n.forEach(is);const i=t.fork(t.NO_FIELDS&t.NO_SOURCE);return i.rem=e.value,e.value=i.source=i.add=n,e._pending=null,i.rem.length&&i.clean(!0),i}function Lu(e){$s.call(this,{},e)}function Bu(e){ps.call(this,null,Uu,e)}function Uu(e){if(this.value&&!e.modified())return this.value;const t=e.extents,n=t.length;let i,r,o=1/0,a=-1/0;for(i=0;ia&&(a=r[1]);return[o,a]}function Iu(e){ps.call(this,null,qu,e)}function qu(e){return this.value&&!e.modified()?this.value:e.values.reduce(((e,t)=>e.concat(t)),[])}function Wu(e){$s.call(this,null,e)}function Hu(e){nu.call(this,e)}function Yu(e){_u.call(this,e)}function Gu(e){$s.call(this,null,e)}function Vu(e){$s.call(this,null,e)}function Xu(e){$s.call(this,null,e)}function Ju(e){$s.call(this,null,e)}function Qu(e){$s.call(this,[],e),this.count=0}function Zu(e){$s.call(this,null,e)}function Ku(e){$s.call(this,null,e),this.modified(!0)}function ec(e){$s.call(this,null,e)}ju.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}]},ut(ju,$s,{transform(e,t){var n,i,r,o,a,s,l,u,c,f,d=t.fork(t.ALL),h=function(e){var t,n=e.method||Cu.value;if(null!=Cu[n])return n===Cu.value?(t=void 0!==e.value?e.value:0,()=>t):Cu[n];re("Unrecognized imputation method: "+n)}(e),p=function(e){const t=e.field;return e=>e?t(e):NaN}(e),g=K(e.field),m=K(e.key),y=(e.groupby||[]).map(K),v=function(e,t,n,i){var r,o,a,s,l,u,c,f,d=e=>e(f),h=[],p=i?i.slice():[],g={},m={};for(p.forEach(((e,t)=>g[e]=t+1)),s=0,c=e.length;sn.add(e)))):(r=n.value=n.value||this.init(e),t.visit(t.REM,(e=>n.rem(e))),t.visit(t.ADD,(e=>n.add(e)))),n.changes(),t.visit(t.SOURCE,(e=>{tt(e,r[n.cellkey(e)].tuple)})),t.reflow(i).modifies(this._outputs)},changes(){const e=this._adds,t=this._mods;let n,i;for(n=0,i=this._alen;n{const n=fl(t,a)[s],i=e.counts?t.length:1;Rl(n,c||nt(t),f,d).forEach((e=>{const n={};for(let e=0;e(this._pending=He(e.data),e=>e.touch(this))));return{async:t}}return n.request(e.url,e.format).then((e=>Ru(this,t,He(e.data))))}}),Lu.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}]},ut(Lu,$s,{transform(e,t){const n=e.fields,i=e.index,r=e.values,o=null==e.default?null:e.default,a=e.modified(),s=n.length;let l,u,c,f=a?t.SOURCE:t.ADD,d=t,h=e.as;return r?(u=r.length,s>1&&!h&&re('Multi-field lookup requires explicit "as" parameter.'),h&&h.length!==s*u&&re('The "as" parameter has too few output field names.'),h=h||r.map(K),l=function(e){for(var t,a,l=0,c=0;lt.modified(e.fields))),f|=c?t.MOD:0),t.visit(f,l),d.modifies(h)}}),ut(Bu,ps),ut(Iu,ps),ut(Wu,$s,{transform(e,t){return this.modified(e.modified()),this.value=e,t.fork(t.NO_SOURCE|t.NO_FIELDS)}}),Hu.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:Yl,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]},ut(Hu,nu,{_transform:nu.prototype.transform,transform(e,t){return this._transform(function(e,t){const n=e.field,i=e.value,r=("count"===e.op?"__count__":e.op)||"sum",o=ee(n).concat(ee(i)),a=function(e,t,n){const i={},r=[];return n.visit(n.SOURCE,(t=>{const n=e(t);i[n]||(i[n]=1,r.push(n))})),r.sort(Xe),t?r.slice(0,t):r}(n,e.limit||0,t);return t.changed()&&e.set("__pivot__",null,null,!0),{key:e.key,groupby:e.groupby,ops:a.map((()=>r)),fields:a.map((e=>function(e,t,n,i){return Z((i=>t(i)===e?n(i):NaN),i,e+"")}(e,n,i,o))),as:a.map((e=>e+"")),modified:e.modified.bind(e)}}(e,t),t)}}),ut(Yu,_u,{transform(e,t){const n=e.subflow,i=e.field,r=e=>this.subflow(ts(e),n,t,e);return(e.modified("field")||i&&t.modified(ee(i)))&&re("PreFacet does not support field modification."),this.initTargets(),i?(t.visit(t.MOD,(e=>{const t=r(e);i(e).forEach((e=>t.mod(e)))})),t.visit(t.ADD,(e=>{const t=r(e);i(e).forEach((e=>t.add(is(e))))})),t.visit(t.REM,(e=>{const t=r(e);i(e).forEach((e=>t.rem(e)))}))):(t.visit(t.MOD,(e=>r(e).mod(e))),t.visit(t.ADD,(e=>r(e).add(e))),t.visit(t.REM,(e=>r(e).rem(e)))),t.clean()&&t.runAfter((()=>this.clean())),t}}),Gu.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]},ut(Gu,$s,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.fields,r=gu(e.fields,e.as||[]),o=i?(e,t)=>function(e,t,n,i){for(let r=0,o=n.length;r{const t=ts(e);n.rem.push(a[t]),a[t]=null})),t.visit(t.ADD,(e=>{const t=o(e,is({}));a[ts(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{n.mod.push(o(e,a[ts(e)]))})),n}}),ut(Vu,$s,{transform(e,t){return this.value=e.value,e.modified("value")?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}}),Xu.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"]}]},ut(Xu,$s,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=e.as||["prob","value"];if(this.value&&!e.modified()&&!t.changed())return n.source=this.value,n;const r=mu(t.materialize(t.SOURCE).source,e.groupby,e.field),o=(e.groupby||[]).map(K),a=[],s=e.step||.01,l=e.probs||Bl(s/2,1-1e-14,s),u=l.length;return r.forEach((e=>{const t=Gs(e,l);for(let n=0;n{const t=ts(e);n.rem.push(i[t]),i[t]=null})),t.visit(t.ADD,(e=>{const t=rs(e);i[ts(e)]=t,n.add.push(t)})),t.visit(t.MOD,(e=>{const t=i[ts(e)];for(const i in e)t[i]=e[i],n.modifies(i);n.mod.push(t)}))),n}}),Qu.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]},ut(Qu,$s,{transform(e,t){const n=t.fork(t.NO_SOURCE),i=e.modified("size"),r=e.size,o=this.value.reduce(((e,t)=>(e[ts(t)]=1,e)),{});let a=this.value,s=this.count,l=0;function u(e){let t,i;a.length=l&&(t=a[i],o[ts(t)]&&n.rem.push(t),a[i]=e)),++s}if(t.rem.length&&(t.visit(t.REM,(e=>{const t=ts(e);o[t]&&(o[t]=-1,n.rem.push(e)),--s})),a=a.filter((e=>-1!==o[ts(e)]))),(t.rem.length||i)&&a.length{o[ts(e)]||u(e)})),l=-1),i&&a.length>r){const e=a.length-r;for(let t=0;t{o[ts(e)]&&n.mod.push(e)})),t.add.length&&t.visit(t.ADD,u),(t.add.length||l<0)&&(n.add=a.filter((e=>!o[ts(e)]))),this.count=s,this.value=n.source=a,n}}),Zu.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"}]},ut(Zu,$s,{transform(e,t){if(this.value&&!e.modified())return;const n=t.materialize().fork(t.MOD),i=e.as||"data";return n.rem=this.value?t.rem.concat(this.value):t.rem,this.value=Bl(e.start,e.stop,e.step||1).map((e=>{const t={};return t[i]=e,is(t)})),n.add=t.add.concat(this.value),n}}),ut(Ku,$s,{transform(e,t){return this.value=t.source,t.changed()?t.fork(t.NO_SOURCE|t.NO_FIELDS):t.StopPropagation}});const tc=["unit0","unit1"];function nc(e){$s.call(this,st(),e)}function ic(e){$s.call(this,null,e)}ec.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:hi,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:tc}]},ut(ec,$s,{transform(e,t){const n=e.field,i=!1!==e.interval,r="utc"===e.timezone,o=this._floor(e,t),a=(r?qi:Ii)(o.unit).offset,s=e.as||tc,l=s[0],u=s[1],c=o.step;let f=o.start||1/0,d=o.stop||-1/0,h=t.ADD;return(e.modified()||t.changed(t.REM)||t.modified(ee(n)))&&(h=(t=t.reflow(!0)).SOURCE,f=1/0,d=-1/0),t.visit(h,(e=>{const t=n(e);let r,s;null==t?(e[l]=null,i&&(e[u]=null)):(e[l]=r=s=o(t),i&&(e[u]=s=a(r,c)),rd&&(d=s))})),o.start=f,o.stop=d,t.modifies(i?s:l)},_floor(e,t){const n="utc"===e.timezone,{units:i,step:r}=e.units?{units:e.units,step:e.step||1}:or({extent:e.extent||nt(t.materialize(t.SOURCE).source,e.field),maxbins:e.maxbins}),o=gi(i),a=this.value||{},s=(n?Li:zi)(o,r);return s.unit=De(o),s.units=o,s.step=r,s.start=a.start,s.stop=a.stop,this.value=s}}),ut(nc,$s,{transform(e,t){const n=t.dataflow,i=e.field,r=this.value,o=e=>r.set(i(e),e);let a=!0;return e.modified("field")||t.modified(i.fields)?(r.clear(),t.visit(t.SOURCE,o)):t.changed()?(t.visit(t.REM,(e=>r.delete(i(e)))),t.visit(t.ADD,o)):a=!1,this.modified(a),r.empty>n.cleanThreshold&&n.runAfter(r.clean),t.fork()}}),ut(ic,$s,{transform(e,t){(!this.value||e.modified("field")||e.modified("sort")||t.changed()||e.sort&&t.modified(e.sort.fields))&&(this.value=(e.sort?t.source.slice().sort(ss(e.sort)):t.source).map(e.field))}});const rc={row_number:function(){return{next:e=>e.index+1}},rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?e=n+1:e}}},dense_rank:function(){let e;return{init:()=>e=1,next:t=>{const n=t.index,i=t.data;return n&&t.compare(i[n-1],i[n])?++e:e}}},percent_rank:function(){const e=rc.rank(),t=e.next;return{init:e.init,next:e=>(t(e)-1)/(e.data.length-1)}},cume_dist:function(){let e;return{init:()=>e=0,next:t=>{const n=t.data,i=t.compare;let r=t.index;if(e0||re("ntile num must be greater than zero.");const n=rc.cume_dist(),i=n.next;return{init:n.init,next:e=>Math.ceil(t*i(e))}},lag:function(e,t){return t=+t||1,{next:n=>{const i=n.index-t;return i>=0?e(n.data[i]):null}}},lead:function(e,t){return t=+t||1,{next:n=>{const i=n.index+t,r=n.data;return ie(t.data[t.i0])}},last_value:function(e){return{next:t=>e(t.data[t.i1-1])}},nth_value:function(e,t){return(t=+t)>0||re("nth_value nth must be greater than zero."),{next:n=>{const i=n.i0+(t-1);return it=null,next:n=>{const i=e(n.data[n.index]);return null!=i?t=i:t}}},next_value:function(e){let t,n;return{init:()=>(t=null,n=-1),next:i=>{const r=i.data;return i.index<=n?t:(n=function(e,t,n){for(let i=t.length;ns[e]=1))}d(e.sort),t.forEach(((e,t)=>{const s=n[t],h=K(s),p=Il(e,h,r[t]);if(d(s),o.push(p),ot(rc,e))a.push(function(e,t,n,i){const r=rc[e](t,n);return{init:r.init||ue,update:function(e,t){t[i]=r.next(e)}}}(e,n[t],i[t],p));else{if(null==s&&"count"!==e&&re("Null aggregate field specified."),"count"===e)return void u.push(p);f=!1;let t=l[h];t||(t=l[h]=[],t.field=s,c.push(t)),t.push(Gl(e,p))}})),(u.length||c.length)&&(this.cell=function(e,t,n){e=e.map((e=>Kl(e,e.field)));const i={num:0,agg:null,store:!1,count:t};if(!n)for(var r=e.length,o=i.agg=Array(r),a=0;a0&&!r(o[n],o[n-1])&&(e.i0=t.left(o,o[n])),ie.init())),this.cell&&this.cell.init()},sc.update=function(e,t){const n=this.cell,i=this.windows,r=e.data,o=i&&i.length;let a;if(n){for(a=e.p0;athis.group(r(e));let a=this.state;a&&!n||(a=this.state=new ac(e)),n||t.modified(a.inputs)?(this.value={},t.visit(t.SOURCE,(e=>o(e).add(e)))):(t.visit(t.REM,(e=>o(e).remove(e))),t.visit(t.ADD,(e=>o(e).add(e))));for(let t=0,n=this._mlen;t0)for(var i,r=e[0],o=t[0],a=e[n]-r,s=t[n]-o,l=-1;++l<=n;)i=l/n,this._basis.point(this._beta*e[l]+(1-this._beta)*(r+i*a),this._beta*t[l]+(1-this._beta)*(o+i*s));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const vc=function e(t){function n(e){return 1===t?new hc(e):new yc(e,t)}return n.beta=function(t){return e(+t)},n}(.85);function bc(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function xc(e,t){this._context=e,this._k=(1-t)/6}xc.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:bc(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:bc(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const wc=function e(t){function n(e){return new xc(e,t)}return n.tension=function(t){return e(+t)},n}(0);function _c(e,t){this._context=e,this._k=(1-t)/6}_c.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:bc(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Oc=function e(t){function n(e){return new _c(e,t)}return n.tension=function(t){return e(+t)},n}(0);function kc(e,t){this._context=e,this._k=(1-t)/6}kc.prototype={areaStart:pc,areaEnd:pc,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:bc(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Ec=function e(t){function n(e){return new kc(e,t)}return n.tension=function(t){return e(+t)},n}(0),Dc=Math.abs,Ac=Math.atan2,Sc=Math.cos,Mc=Math.max,Cc=Math.min,Fc=Math.sin,jc=Math.sqrt,$c=1e-12,Tc=Math.PI,Nc=Tc/2,zc=2*Tc;function Pc(e){return e>1?0:e<-1?Tc:Math.acos(e)}function Rc(e){return e>=1?Nc:e<=-1?-Nc:Math.asin(e)}function Lc(e,t,n){var i=e._x1,r=e._y1,o=e._x2,a=e._y2;if(e._l01_a>$c){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);i=(i*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,r=(r*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>$c){var u=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,c=3*e._l23_a*(e._l23_a+e._l12_a);o=(o*u+e._x1*e._l23_2a-t*e._l12_2a)/c,a=(a*u+e._y1*e._l23_2a-n*e._l12_2a)/c}e._context.bezierCurveTo(i,r,o,a,e._x2,e._y2)}function Bc(e,t){this._context=e,this._alpha=t}Bc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:Lc(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Uc=function e(t){function n(e){return t?new Bc(e,t):new xc(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function Ic(e,t){this._context=e,this._alpha=t}Ic.prototype={areaStart:pc,areaEnd:pc,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:Lc(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const qc=function e(t){function n(e){return t?new Ic(e,t):new kc(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function Wc(e,t){this._context=e,this._alpha=t}Wc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,i=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,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:Lc(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Hc=function e(t){function n(e){return t?new Wc(e,t):new _c(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function Yc(e){this._context=e}function Gc(e){return new Yc(e)}function Vc(e){this._context=e}function Xc(e){return e<0?-1:1}function Jc(e,t,n){var i=e._x1-e._x0,r=t-e._x1,o=(e._y1-e._y0)/(i||r<0&&-0),a=(n-e._y1)/(r||i<0&&-0),s=(o*r+a*i)/(i+r);return(Xc(o)+Xc(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function Qc(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Zc(e,t,n){var i=e._x0,r=e._y0,o=e._x1,a=e._y1,s=(o-i)/3;e._context.bezierCurveTo(i+s,r+s*t,o-s,a-s*n,o,a)}function Kc(e){this._context=e}function ef(e){this._context=new tf(e)}function tf(e){this._context=e}function nf(e){this._context=e}function rf(e){var t,n,i=e.length-1,r=new Array(i),o=new Array(i),a=new Array(i);for(r[0]=0,o[0]=2,a[0]=e[0]+2*e[1],t=1;t=0;--t)r[t]=(a[t]-r[t+1])/o[t];for(o[i-1]=(e[i]+r[i-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};const sf=Math.PI,lf=2*sf,uf=1e-6,cf=lf-uf;function ff(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return ff;const n=10**t;return function(e){this._+=e[0];for(let t=1,i=e.length;tuf)if(Math.abs(c*s-l*u)>uf&&r){let d=n-o,h=i-a,p=s*s+l*l,g=d*d+h*h,m=Math.sqrt(p),y=Math.sqrt(f),v=r*Math.tan((sf-Math.acos((p+f-g)/(2*m*y)))/2),b=v/y,x=v/m;Math.abs(b-1)>uf&&this._append`L${e+b*u},${t+b*c}`,this._append`A${r},${r},0,0,${+(c*d>u*h)},${this._x1=e+x*s},${this._y1=t+x*l}`}else this._append`L${this._x1=e},${this._y1=t}`}arc(e,t,n,i,r,o){if(e=+e,t=+t,o=!!o,(n=+n)<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(i),s=n*Math.sin(i),l=e+a,u=t+s,c=1^o,f=o?i-r:r-i;null===this._x1?this._append`M${l},${u}`:(Math.abs(this._x1-l)>uf||Math.abs(this._y1-u)>uf)&&this._append`L${l},${u}`,n&&(f<0&&(f=f%lf+lf),f>cf?this._append`A${n},${n},0,1,${c},${e-a},${t-s}A${n},${n},0,1,${c},${this._x1=l},${this._y1=u}`:f>uf&&this._append`A${n},${n},0,${+(f>=sf)},${c},${this._x1=e+n*Math.cos(r)},${this._y1=t+n*Math.sin(r)}`)}rect(e,t,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function hf(){return new df}function pf(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(null==n)t=null;else{const e=Math.floor(n);if(!(e>=0))throw new RangeError(`invalid digits: ${n}`);t=e}return e},()=>new df(t)}function gf(e){return e.innerRadius}function mf(e){return e.outerRadius}function yf(e){return e.startAngle}function vf(e){return e.endAngle}function bf(e){return e&&e.padAngle}function xf(e,t,n,i,r,o,a,s){var l=n-e,u=i-t,c=a-r,f=s-o,d=f*l-c*u;if(!(d*d<$c))return[e+(d=(c*(t-o)-f*(e-r))/d)*l,t+d*u]}function wf(e,t,n,i,r,o,a){var s=e-n,l=t-i,u=(a?o:-o)/jc(s*s+l*l),c=u*l,f=-u*s,d=e+c,h=t+f,p=n+c,g=i+f,m=(d+p)/2,y=(h+g)/2,v=p-d,b=g-h,x=v*v+b*b,w=r-o,_=d*g-p*h,O=(b<0?-1:1)*jc(Mc(0,w*w*x-_*_)),k=(_*b-v*O)/x,E=(-_*v-b*O)/x,D=(_*b+v*O)/x,A=(-_*v+b*O)/x,S=k-m,M=E-y,C=D-m,F=A-y;return S*S+M*M>C*C+F*F&&(k=D,E=A),{cx:k,cy:E,x01:-c,y01:-f,x11:k*(r/w-1),y11:E*(r/w-1)}}function _f(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function Of(e){return e[0]}function kf(e){return e[1]}function Ef(e,t){var n=af(!0),i=null,r=Gc,o=null,a=pf(s);function s(s){var l,u,c,f=(s=_f(s)).length,d=!1;for(null==i&&(o=r(c=a())),l=0;l<=f;++l)!(l=f;--d)s.point(y[d],v[d]);s.lineEnd(),s.areaEnd()}m&&(y[c]=+e(h,c,u),v[c]=+t(h,c,u),s.point(i?+i(h,c,u):y[c],n?+n(h,c,u):v[c]))}if(p)return s=null,p+""||null}function c(){return Ef().defined(r).curve(a).context(o)}return e="function"==typeof e?e:void 0===e?Of:af(+e),t="function"==typeof t?t:af(void 0===t?0:+t),n="function"==typeof n?n:void 0===n?kf:af(+n),u.x=function(t){return arguments.length?(e="function"==typeof t?t:af(+t),i=null,u):e},u.x0=function(t){return arguments.length?(e="function"==typeof t?t:af(+t),u):e},u.x1=function(e){return arguments.length?(i=null==e?null:"function"==typeof e?e:af(+e),u):i},u.y=function(e){return arguments.length?(t="function"==typeof e?e:af(+e),n=null,u):t},u.y0=function(e){return arguments.length?(t="function"==typeof e?e:af(+e),u):t},u.y1=function(e){return arguments.length?(n=null==e?null:"function"==typeof e?e:af(+e),u):n},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(n)},u.lineX1=function(){return c().x(i).y(t)},u.defined=function(e){return arguments.length?(r="function"==typeof e?e:af(!!e),u):r},u.curve=function(e){return arguments.length?(a=e,null!=o&&(s=a(o)),u):a},u.context=function(e){return arguments.length?(null==e?o=s=null:s=a(o=e),u):o},u}hf.prototype=df.prototype,Array.prototype.slice,jc(3);const Af={draw(e,t){const n=jc(t/Tc);e.moveTo(n,0),e.arc(0,0,n,0,zc)}};jc(1/3),Fc(Tc/10),Fc(7*Tc/10);function Sf(e,t){if("undefined"!=typeof document&&document.createElement){const n=document.createElement("canvas");if(n&&n.getContext)return n.width=e,n.height=t,n}return null}Fc(zc/10),Sc(zc/10),jc(3),jc(3),jc(3),jc(12);const Mf=()=>"undefined"!=typeof Image?Image:null,Cf=ei(Zn),Ff=Cf.right,jf=Cf.left,$f=(ei(Is).center,Ff);function Tf(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Nf(e,t){var n=Object.create(e.prototype);for(var i in t)n[i]=t[i];return n}function zf(){}var Pf=.7,Rf=1/Pf,Lf="\\s*([+-]?\\d+)\\s*",Bf="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Uf="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",If=/^#([0-9a-f]{3,8})$/,qf=new RegExp(`^rgb\\(${Lf},${Lf},${Lf}\\)$`),Wf=new RegExp(`^rgb\\(${Uf},${Uf},${Uf}\\)$`),Hf=new RegExp(`^rgba\\(${Lf},${Lf},${Lf},${Bf}\\)$`),Yf=new RegExp(`^rgba\\(${Uf},${Uf},${Uf},${Bf}\\)$`),Gf=new RegExp(`^hsl\\(${Bf},${Uf},${Uf}\\)$`),Vf=new RegExp(`^hsla\\(${Bf},${Uf},${Uf},${Bf}\\)$`),Xf={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 Jf(){return this.rgb().formatHex()}function Qf(){return this.rgb().formatRgb()}function Zf(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=If.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?Kf(t):3===n?new id(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?ed(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?ed(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=qf.exec(e))?new id(t[1],t[2],t[3],1):(t=Wf.exec(e))?new id(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Hf.exec(e))?ed(t[1],t[2],t[3],t[4]):(t=Yf.exec(e))?ed(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Gf.exec(e))?ud(t[1],t[2]/100,t[3]/100,1):(t=Vf.exec(e))?ud(t[1],t[2]/100,t[3]/100,t[4]):Xf.hasOwnProperty(e)?Kf(Xf[e]):"transparent"===e?new id(NaN,NaN,NaN,0):null}function Kf(e){return new id(e>>16&255,e>>8&255,255&e,1)}function ed(e,t,n,i){return i<=0&&(e=t=n=NaN),new id(e,t,n,i)}function td(e){return e instanceof zf||(e=Zf(e)),e?new id((e=e.rgb()).r,e.g,e.b,e.opacity):new id}function nd(e,t,n,i){return 1===arguments.length?td(e):new id(e,t,n,null==i?1:i)}function id(e,t,n,i){this.r=+e,this.g=+t,this.b=+n,this.opacity=+i}function rd(){return`#${ld(this.r)}${ld(this.g)}${ld(this.b)}`}function od(){const e=ad(this.opacity);return`${1===e?"rgb(":"rgba("}${sd(this.r)}, ${sd(this.g)}, ${sd(this.b)}${1===e?")":`, ${e})`}`}function ad(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function sd(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ld(e){return((e=sd(e))<16?"0":"")+e.toString(16)}function ud(e,t,n,i){return i<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new dd(e,t,n,i)}function cd(e){if(e instanceof dd)return new dd(e.h,e.s,e.l,e.opacity);if(e instanceof zf||(e=Zf(e)),!e)return new dd;if(e instanceof dd)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,l=(o+r)/2;return s?(a=t===o?(n-i)/s+6*(n0&&l<1?0:a,new dd(a,s,l,e.opacity)}function fd(e,t,n,i){return 1===arguments.length?cd(e):new dd(e,t,n,null==i?1:i)}function dd(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}function hd(e){return(e=(e||0)%360)<0?e+360:e}function pd(e){return Math.max(0,Math.min(1,e||0))}function gd(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function md(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 yd(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=240?e-240:e+120,r,i),gd(e,r,i),gd(e<120?e+240:e-120,r,i),this.opacity)},clamp(){return new dd(hd(this.h),pd(this.s),pd(this.l),ad(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=ad(this.opacity);return`${1===e?"hsl(":"hsla("}${hd(this.h)}, ${100*pd(this.s)}%, ${100*pd(this.l)}%${1===e?")":`, ${e})`}`}}));const bd=e=>()=>e;function xd(e,t){return function(n){return e+n*t}}function wd(e,t){var n=t-e;return n?xd(e,n>180||n<-180?n-360*Math.round(n/360):n):bd(isNaN(e)?t:e)}function _d(e,t){var n=t-e;return n?xd(e,n):bd(isNaN(e)?t:e)}const Od=function e(t){var n=function(e){return 1==(e=+e)?_d: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):bd(isNaN(t)?n:t)}}(t);function i(e,t){var i=n((e=nd(e)).r,(t=nd(t)).r),r=n(e.g,t.g),o=n(e.b,t.b),a=_d(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 kd(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;no&&(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,l.push({i:a,x:jd(n,i)})),o=Nd.lastIndex;return ot&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}(a[0],a[e-1])),i=e>2?Wd:qd,r=o=null,f}function f(t){return null==t||isNaN(t=+t)?n:(r||(r=i(a.map(e),s,l)))(e(u(t)))}return f.invert=function(n){return u(t((o||(o=i(s,a.map(e),jd)))(n)))},f.domain=function(e){return arguments.length?(a=Array.from(e,Ld),c()):a.slice()},f.range=function(e){return arguments.length?(s=Array.from(e),c()):s.slice()},f.rangeRound=function(e){return s=Array.from(e),l=Rd,c()},f.clamp=function(e){return arguments.length?(u=!!e||Ud,c()):u!==Ud},f.interpolate=function(e){return arguments.length?(l=e,c()):l},f.unknown=function(e){return arguments.length?(n=e,f):n},function(n,i){return e=n,t=i,c()}}function Gd(){return Yd()(Ud,Ud)}function Vd(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function Xd(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}var Jd,Qd=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Zd(e){if(!(t=Qd.exec(e)))throw new Error("invalid format: "+e);var t;return new Kd({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 Kd(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 eh(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 th(e){return(e=eh(Math.abs(e)))?e[1]:NaN}function nh(e,t){var n=eh(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")}Zd.prototype=Kd.prototype,Kd.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const ih={"%":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.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):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 nh(100*e,t)},r:nh,s:function(e,t){var n=eh(e,t);if(!n)return e+"";var i=n[0],r=n[1],o=r-(Jd=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")+eh(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 rh(e){return e}var oh,ah,sh,lh=Array.prototype.map,uh=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function ch(e,t,n,i){var r,o=Zt(e,t,n);switch((i=Zd(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(th(t)/3)))-th(Math.abs(e)))}(o,a))||(i.precision=r),sh(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,th(t)-th(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,-th(Math.abs(e)))}(o))||(i.precision=r-2*("%"===i.type))}return ah(i)}function fh(e){var t=e.domain;return e.ticks=function(e){var n=t();return Jt(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var i=t();return ch(i[0],i[i.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var i,r,o=t(),a=0,s=o.length-1,l=o[a],u=o[s],c=10;for(u0;){if((r=Qt(l,u,n))===i)return o[a]=l,o[s]=u,t(o);if(r>0)l=Math.floor(l/r)*r,u=Math.ceil(u/r)*r;else{if(!(r<0))break;l=Math.ceil(l*r)/r,u=Math.floor(u*r)/r}i=r}return e},e}function dh(e,t){var n,i=0,r=(e=e.slice()).length-1,o=e[i],a=e[r];return a-e(-t,n)}function bh(e){const t=e(hh,ph),n=t.domain;let i,r,o=10;function a(){return i=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}(o),r=function(e){return 10===e?yh:e===Math.E?Math.exp:t=>Math.pow(e,t)}(o),n()[0]<0?(i=vh(i),r=vh(r),e(gh,mh)):e(hh,ph),t}return t.base=function(e){return arguments.length?(o=+e,a()):o},t.domain=function(e){return arguments.length?(n(e),a()):n()},t.ticks=e=>{const t=n();let a=t[0],s=t[t.length-1];const l=s0){for(;f<=d;++f)for(u=1;us)break;p.push(c)}}else for(;f<=d;++f)for(u=o-1;u>=1;--u)if(c=f>0?u/r(-f):u*r(f),!(cs)break;p.push(c)}2*p.length{if(null==e&&(e=10),null==n&&(n=10===o?"s":","),"function"!=typeof n&&(o%1||null!=(n=Zd(n)).precision||(n.trim=!0),n=ah(n)),e===1/0)return n;const a=Math.max(1,o*e/t.ticks().length);return e=>{let t=e/r(Math.round(i(e)));return t*on(dh(n(),{floor:e=>r(Math.floor(i(e))),ceil:e=>r(Math.ceil(i(e)))})),t}function xh(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function wh(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function _h(e){return e<0?-e*e:e*e}function Oh(e){var t=e(Ud,Ud),n=1;function i(){return 1===n?e(Ud,Ud):.5===n?e(wh,_h):e(xh(n),xh(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,i()):n},fh(t)}function kh(){var e=Oh(Yd());return e.copy=function(){return Hd(e,kh()).exponent(e.exponent())},Vd.apply(e,arguments),e}function Eh(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Dh(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Ah(e){var t=1,n=e(Eh(t),Dh(t));return n.constant=function(n){return arguments.length?e(Eh(t=+n),Dh(t)):t},fh(n)}oh=function(e){var t,n,i=void 0===e.grouping||void 0===e.thousands?rh:(t=lh.call(e.grouping,Number),n=e.thousands+"",function(e,i){for(var r=e.length,o=[],a=0,s=t[0],l=0;r>0&&s>0&&(l+s+1>i&&(s=Math.max(1,i-l)),o.push(e.substring(r-=s,r+s)),!((l+=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?rh:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(lh.call(e.numerals,String)),l=void 0===e.percent?"%":e.percent+"",u=void 0===e.minus?"-":e.minus+"",c=void 0===e.nan?"NaN":e.nan+"";function f(e){var t=(e=Zd(e)).fill,n=e.align,f=e.sign,d=e.symbol,h=e.zero,p=e.width,g=e.comma,m=e.precision,y=e.trim,v=e.type;"n"===v?(g=!0,v="g"):ih[v]||(void 0===m&&(m=12),y=!0,v="g"),(h||"0"===t&&"="===n)&&(h=!0,t="0",n="=");var b="$"===d?r:"#"===d&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",x="$"===d?o:/[%p]/.test(v)?l:"",w=ih[v],_=/[defgprs%]/.test(v);function O(e){var r,o,l,d=b,O=x;if("c"===v)O=w(e)+O,e="";else{var k=(e=+e)<0||1/e<0;if(e=isNaN(e)?c:w(Math.abs(e),m),y&&(e=function(e){e:for(var t,n=e.length,i=1,r=-1;i0&&(r=0)}return r>0?e.slice(0,r)+e.slice(t+1):e}(e)),k&&0==+e&&"+"!==f&&(k=!1),d=(k?"("===f?f:u:"-"===f||"("===f?"":f)+d,O=("s"===v?uh[8+Jd/3]:"")+O+(k&&"("===f?")":""),_)for(r=-1,o=e.length;++r(l=e.charCodeAt(r))||l>57){O=(46===l?a+e.slice(r+1):e.slice(r))+O,e=e.slice(0,r);break}}g&&!h&&(e=i(e,1/0));var E=d.length+e.length+O.length,D=E>1)+d+e+O+D.slice(E);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=Zd(e)).type="f",e)),i=3*Math.max(-8,Math.min(8,Math.floor(th(t)/3))),r=Math.pow(10,-i),o=uh[8+i/3];return function(e){return n(r*e)+o}}}}({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),ah=oh.format,sh=oh.formatPrefix;const Sh=1e3,Mh=6e4,Ch=36e5,Fh=864e5,jh=6048e5,$h=31536e6,Th=new Date,Nh=new Date;function zh(e,t,n,i){function r(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return r.floor=t=>(e(t=new Date(+t)),t),r.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),r.round=e=>{const t=r(e),n=r.ceil(e);return e-t(t(e=new Date(+e),null==n?1:Math.floor(n)),e),r.range=(n,i,o)=>{const a=[];if(n=r.ceil(n),o=null==o?1:Math.floor(o),!(n0))return a;let s;do{a.push(s=new Date(+n)),t(n,o),e(n)}while(szh((t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),((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=(t,i)=>(Th.setTime(+t),Nh.setTime(+i),e(Th),e(Nh),Math.floor(n(Th,Nh))),r.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?r.filter(i?t=>i(t)%e==0:t=>r.count(0,t)%e==0):r:null)),r}const Ph=zh((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e));Ph.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?zh((t=>{t.setTime(Math.floor(t/e)*e)}),((t,n)=>{t.setTime(+t+n*e)}),((t,n)=>(n-t)/e)):Ph:null),Ph.range;const Rh=zh((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*Sh)}),((e,t)=>(t-e)/Sh),(e=>e.getUTCSeconds())),Lh=(Rh.range,zh((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Sh)}),((e,t)=>{e.setTime(+e+t*Mh)}),((e,t)=>(t-e)/Mh),(e=>e.getMinutes()))),Bh=(Lh.range,zh((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*Mh)}),((e,t)=>(t-e)/Mh),(e=>e.getUTCMinutes()))),Uh=(Bh.range,zh((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Sh-e.getMinutes()*Mh)}),((e,t)=>{e.setTime(+e+t*Ch)}),((e,t)=>(t-e)/Ch),(e=>e.getHours()))),Ih=(Uh.range,zh((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*Ch)}),((e,t)=>(t-e)/Ch),(e=>e.getUTCHours()))),qh=(Ih.range,zh((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Mh)/Fh),(e=>e.getDate()-1))),Wh=(qh.range,zh((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/Fh),(e=>e.getUTCDate()-1))),Hh=(Wh.range,zh((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/Fh),(e=>Math.floor(e/Fh))));function Yh(e){return zh((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Mh)/jh))}Hh.range;const Gh=Yh(0),Vh=Yh(1),Xh=Yh(2),Jh=Yh(3),Qh=Yh(4),Zh=Yh(5),Kh=Yh(6);function ep(e){return zh((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/jh))}Gh.range,Vh.range,Xh.range,Jh.range,Qh.range,Zh.range,Kh.range;const tp=ep(0),np=ep(1),ip=ep(2),rp=ep(3),op=ep(4),ap=ep(5),sp=ep(6),lp=(tp.range,np.range,ip.range,rp.range,op.range,ap.range,sp.range,zh((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth()))),up=(lp.range,zh((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth()))),cp=(up.range,zh((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear())));cp.every=e=>isFinite(e=Math.floor(e))&&e>0?zh((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n*e)})):null,cp.range;const fp=zh((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));function dp(e,t,n,i,r,o){const a=[[Rh,1,Sh],[Rh,5,5e3],[Rh,15,15e3],[Rh,30,3e4],[o,1,Mh],[o,5,3e5],[o,15,9e5],[o,30,18e5],[r,1,Ch],[r,3,108e5],[r,6,216e5],[r,12,432e5],[i,1,Fh],[i,2,1728e5],[n,1,jh],[t,1,2592e6],[t,3,7776e6],[e,1,$h]];function s(t,n,i){const r=Math.abs(n-t)/i,o=ei((([,,e])=>e)).right(a,r);if(o===a.length)return e.every(Zt(t/$h,n/$h,i));if(0===o)return Ph.every(Math.max(Zt(t,n,i),1));const[s,l]=a[r/a[o-1][2]isFinite(e=Math.floor(e))&&e>0?zh((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null,fp.range;const[hp,pp]=dp(fp,up,tp,Hh,Ih,Bh),[gp,mp]=dp(cp,lp,Gh,qh,Uh,Lh);function yp(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 vp(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 bp(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}var xp,wp,_p,Op={"-":"",_:" ",0:"0"},kp=/^\s*\d+/,Ep=/^%/,Dp=/[\\^$*+?|[\]().{}]/g;function Ap(e,t,n){var i=e<0?"-":"",r=(i?-e:e)+"",o=r.length;return i+(o68?1900:2e3),n+i[0].length):-1}function Rp(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 Lp(e,t,n){var i=kp.exec(t.slice(n,n+1));return i?(e.q=3*i[0]-3,n+i[0].length):-1}function Bp(e,t,n){var i=kp.exec(t.slice(n,n+2));return i?(e.m=i[0]-1,n+i[0].length):-1}function Up(e,t,n){var i=kp.exec(t.slice(n,n+2));return i?(e.d=+i[0],n+i[0].length):-1}function Ip(e,t,n){var i=kp.exec(t.slice(n,n+3));return i?(e.m=0,e.d=+i[0],n+i[0].length):-1}function qp(e,t,n){var i=kp.exec(t.slice(n,n+2));return i?(e.H=+i[0],n+i[0].length):-1}function Wp(e,t,n){var i=kp.exec(t.slice(n,n+2));return i?(e.M=+i[0],n+i[0].length):-1}function Hp(e,t,n){var i=kp.exec(t.slice(n,n+2));return i?(e.S=+i[0],n+i[0].length):-1}function Yp(e,t,n){var i=kp.exec(t.slice(n,n+3));return i?(e.L=+i[0],n+i[0].length):-1}function Gp(e,t,n){var i=kp.exec(t.slice(n,n+6));return i?(e.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function Vp(e,t,n){var i=Ep.exec(t.slice(n,n+1));return i?n+i[0].length:-1}function Xp(e,t,n){var i=kp.exec(t.slice(n));return i?(e.Q=+i[0],n+i[0].length):-1}function Jp(e,t,n){var i=kp.exec(t.slice(n));return i?(e.s=+i[0],n+i[0].length):-1}function Qp(e,t){return Ap(e.getDate(),t,2)}function Zp(e,t){return Ap(e.getHours(),t,2)}function Kp(e,t){return Ap(e.getHours()%12||12,t,2)}function eg(e,t){return Ap(1+Cr.count(jr(e),e),t,3)}function tg(e,t){return Ap(e.getMilliseconds(),t,3)}function ng(e,t){return tg(e,t)+"000"}function ig(e,t){return Ap(e.getMonth()+1,t,2)}function rg(e,t){return Ap(e.getMinutes(),t,2)}function og(e,t){return Ap(e.getSeconds(),t,2)}function ag(e){var t=e.getDay();return 0===t?7:t}function sg(e,t){return Ap(_r.count(jr(e)-1,e),t,2)}function lg(e){var t=e.getDay();return t>=4||0===t?Dr(e):Dr.ceil(e)}function ug(e,t){return e=lg(e),Ap(Dr.count(jr(e),e)+(4===jr(e).getDay()),t,2)}function cg(e){return e.getDay()}function fg(e,t){return Ap(Or.count(jr(e)-1,e),t,2)}function dg(e,t){return Ap(e.getFullYear()%100,t,2)}function hg(e,t){return Ap((e=lg(e)).getFullYear()%100,t,2)}function pg(e,t){return Ap(e.getFullYear()%1e4,t,4)}function gg(e,t){var n=e.getDay();return Ap((e=n>=4||0===n?Dr(e):Dr.ceil(e)).getFullYear()%1e4,t,4)}function mg(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Ap(t/60|0,"0",2)+Ap(t%60,"0",2)}function yg(e,t){return Ap(e.getUTCDate(),t,2)}function vg(e,t){return Ap(e.getUTCHours(),t,2)}function bg(e,t){return Ap(e.getUTCHours()%12||12,t,2)}function xg(e,t){return Ap(1+xr.count(Tr(e),e),t,3)}function wg(e,t){return Ap(e.getUTCMilliseconds(),t,3)}function _g(e,t){return wg(e,t)+"000"}function Og(e,t){return Ap(e.getUTCMonth()+1,t,2)}function kg(e,t){return Ap(e.getUTCMinutes(),t,2)}function Eg(e,t){return Ap(e.getUTCSeconds(),t,2)}function Dg(e){var t=e.getUTCDay();return 0===t?7:t}function Ag(e,t){return Ap(dr.count(Tr(e)-1,e),t,2)}function Sg(e){var t=e.getUTCDay();return t>=4||0===t?mr(e):mr.ceil(e)}function Mg(e,t){return e=Sg(e),Ap(mr.count(Tr(e),e)+(4===Tr(e).getUTCDay()),t,2)}function Cg(e){return e.getUTCDay()}function Fg(e,t){return Ap(hr.count(Tr(e)-1,e),t,2)}function jg(e,t){return Ap(e.getUTCFullYear()%100,t,2)}function $g(e,t){return Ap((e=Sg(e)).getUTCFullYear()%100,t,2)}function Tg(e,t){return Ap(e.getUTCFullYear()%1e4,t,4)}function Ng(e,t){var n=e.getUTCDay();return Ap((e=n>=4||0===n?mr(e):mr.ceil(e)).getUTCFullYear()%1e4,t,4)}function zg(){return"+0000"}function Pg(){return"%"}function Rg(e){return+e}function Lg(e){return Math.floor(+e/1e3)}function Bg(e){return new Date(e)}function Ug(e){return e instanceof Date?+e:+new Date(+e)}function Ig(e,t,n,i,r,o,a,s,l,u){var c=Gd(),f=c.invert,d=c.domain,h=u(".%L"),p=u(":%S"),g=u("%I:%M"),m=u("%I %p"),y=u("%a %d"),v=u("%b %d"),b=u("%B"),x=u("%Y");function w(e){return(l(e)=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:Rg,s:Lg,S:og,u:ag,U:sg,V:ug,w:cg,W:fg,x:null,X:null,y:dg,Y:pg,Z:mg,"%":Pg},x={a:function(e){return a[e.getUTCDay()]},A:function(e){return o[e.getUTCDay()]},b:function(e){return l[e.getUTCMonth()]},B:function(e){return s[e.getUTCMonth()]},c:null,d:yg,e:yg,f:_g,g:$g,G:Ng,H:vg,I:bg,j:xg,L:wg,m:Og,M:kg,p:function(e){return r[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:Rg,s:Lg,S:Eg,u:Dg,U:Ag,V:Mg,w:Cg,W:Fg,x:null,X:null,y:jg,Y:Tg,Z:zg,"%":Pg},w={a:function(e,t,n){var i=h.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=y.exec(t.slice(n));return i?(e.m=v[i[0].toLowerCase()],n+i[0].length):-1},B:function(e,t,n){var i=g.exec(t.slice(n));return i?(e.m=m[i[0].toLowerCase()],n+i[0].length):-1},c:function(e,n,i){return k(e,t,n,i)},d:Up,e:Up,f:Gp,g:Pp,G:zp,H:qp,I:qp,j:Ip,L:Yp,m:Bp,M:Wp,p:function(e,t,n){var i=u.exec(t.slice(n));return i?(e.p=c[i[0].toLowerCase()],n+i[0].length):-1},q:Lp,Q:Xp,s:Jp,S:Hp,u:jp,U:$p,V:Tp,w:Fp,W:Np,x:function(e,t,i){return k(e,n,t,i)},X:function(e,t,n){return k(e,i,t,n)},y:Pp,Y:zp,Z:Rp,"%":Vp};function _(e,t){return function(n){var i,r,o,a=[],s=-1,l=0,u=e.length;for(n instanceof Date||(n=new Date(+n));++s53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=vp(bp(o.y,0,1))).getUTCDay(),i=r>4||0===r?hr.ceil(i):hr(i),i=xr.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=yp(bp(o.y,0,1))).getDay(),i=r>4||0===r?Or.ceil(i):Or(i),i=Cr.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?vp(bp(o.y,0,1)).getUTCDay():yp(bp(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,vp(o)):yp(o)}}function k(e,t,n,i){for(var r,o,a=0,s=t.length,l=n.length;a=l)return-1;if(37===(r=t.charCodeAt(a++))){if(r=t.charAt(a++),!(o=w[r in Op?t.charAt(a++):r])||(i=o(e,n,i))<0)return-1}else if(r!=n.charCodeAt(i++))return-1}return i}return b.x=_(n,b),b.X=_(i,b),b.c=_(t,b),x.x=_(n,x),x.X=_(i,x),x.c=_(t,x),{format:function(e){var t=_(e+="",b);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=_(e+="",x);return t.toString=function(){return e},t},utcParse:function(e){var t=O(e+="",!0);return t.toString=function(){return e},t}}}({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"]}),wp=xp.format,xp.parse,_p=xp.utcFormat,xp.utcParse;class Jg extends Map{constructor(e,t=tm){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const[t,n]of e)this.set(t,n)}get(e){return super.get(Zg(this,e))}has(e){return super.has(Zg(this,e))}set(e,t){return super.set(Kg(this,e),t)}delete(e){return super.delete(em(this,e))}}class Qg extends Set{constructor(e,t=tm){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const t of e)this.add(t)}has(e){return super.has(Zg(this,e))}add(e){return super.add(Kg(this,e))}delete(e){return super.delete(em(this,e))}}function Zg({_intern:e,_key:t},n){const i=t(n);return e.has(i)?e.get(i):n}function Kg({_intern:e,_key:t},n){const i=t(n);return e.has(i)?e.get(i):(e.set(i,n),n)}function em({_intern:e,_key:t},n){const i=t(n);return e.has(i)&&(n=e.get(i),e.delete(i)),n}function tm(e){return null!==e&&"object"==typeof e?e.valueOf():e}const nm=Symbol("implicit");function im(){var e=new Jg,t=[],n=[],i=nm;function r(r){let o=e.get(r);if(void 0===o){if(i!==nm)return i;e.set(r,o=t.push(r)-1)}return n[o%n.length]}return r.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new Jg;for(const i of n)e.has(i)||e.set(i,t.push(i)-1);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 im(t,n).unknown(i)},Vd.apply(r,arguments),r}function rm(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}function om(e,t){var n=wd(+e,+t);return function(e){var t=n(e);return t-360*Math.floor(t/360)}}var am,sm=180/Math.PI,lm={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function um(e,t,n,i,r,o){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(l=e*n+t*i)&&(n-=e*l,i-=t*l),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,l/=s),e*i180?t+=360:t-e>180&&(e+=360),o.push({i:n.push(r(n)+"rotate(",null,i)-2,x:jd(e,t)})):t&&n.push(r(n)+"rotate("+t+i)}(o.rotate,a.rotate,s,l),function(e,t,n,o){e!==t?o.push({i:n.push(r(n)+"skewX(",null,i)-2,x:jd(e,t)}):t&&n.push(r(n)+"skewX("+t+i)}(o.skewX,a.skewX,s,l),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:jd(e,n)},{i:s-2,x:jd(t,i)})}else 1===n&&1===i||o.push(r(o)+"scale("+n+","+i+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(e){for(var t,n=-1,i=l.length;++n.008856451679035631?Math.pow(e,1/3):e/km+_m}function Mm(e){return e>Om?e*e*e:km*(e-_m)}function Cm(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Fm(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function jm(e){if(e instanceof Tm)return new Tm(e.h,e.c,e.l,e.opacity);if(e instanceof Am||(e=Em(e)),0===e.a&&0===e.b)return new Tm(NaN,00?i:1:0}const ny="linear",iy="log",ry="pow",oy="sqrt",ay="symlog",sy="time",ly="utc",uy="sequential",cy="quantile",fy="quantize",dy="threshold",hy="ordinal",py="point",gy="band",my="bin-ordinal",yy="continuous",vy="discrete",by="discretizing",xy="interpolating",wy="temporal";function _y(){const e=im().unknown(void 0),t=e.domain,n=e.range;let i,r,o=[0,1],a=!1,s=0,l=0,u=.5;function c(){const e=t().length,c=o[1]h+i*e));return n(c?p.reverse():p)}return delete e.unknown,e.domain=function(e){return arguments.length?(t(e),c()):t()},e.range=function(e){return arguments.length?(o=[+e[0],+e[1]],c()):o.slice()},e.rangeRound=function(e){return o=[+e[0],+e[1]],a=!0,c()},e.bandwidth=function(){return r},e.step=function(){return i},e.round=function(e){return arguments.length?(a=!!e,c()):a},e.padding=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),s=l,c()):s},e.paddingInner=function(e){return arguments.length?(s=Math.max(0,Math.min(1,e)),c()):s},e.paddingOuter=function(e){return arguments.length?(l=Math.max(0,Math.min(1,e)),c()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),c()):u},e.invertRange=function(e){if(null==e[0]||null==e[1])return;const i=o[1]o[1-i])?void 0:(l=Math.max(0,Ff(a,f)-1),u=f===d?l:Ff(a,d)-1,f-a[l]>r+1e-10&&++l,i&&(c=l,l=s-u,u=s-c),l>u?void 0:t().slice(l,u+1))},e.invert=function(t){const n=e.invertRange([t,t]);return n?n[0]:n},e.copy=function(){return _y().domain(t()).range(o).round(a).paddingInner(s).paddingOuter(l).align(u)},c()}function Oy(e){const t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,e.copy=function(){return Oy(t())},e}var ky=Array.prototype.map;function Ey(e){return ky.call(e,Ae)}const Dy=Array.prototype.slice,Ay=new Map,Sy=Symbol("vega_scale");function My(e){return e[Sy]=!0,e}function Cy(e,t,n){const i=function(){const n=t();return n.invertRange||(n.invertRange=n.invert?(i=n,function(e){let t,n=e[0],r=e[1];return r=s&&n[o]<=l&&(u<0&&(u=o),i=o);if(!(u<0))return s=e.invertExtent(n[u]),l=e.invertExtent(n[i]),[void 0===s[0]?s[1]:s[0],void 0===l[1]?l[0]:l[1]]}}(n):void 0),n.type=e,My(n);var i};return i.metadata=Mt(He(n)),i}function Fy(e,t,n){return arguments.length>1?(Ay.set(e,Cy(e,t,n)),this):jy(e)?Ay.get(e):void 0}function jy(e){return Ay.has(e)}function $y(e,t){const n=Ay.get(e);return n&&n.metadata[t]}function Ty(e){return $y(e,yy)}function Ny(e){return $y(e,vy)}function zy(e){return $y(e,by)}function Py(e){return $y(e,iy)}function Ry(e){return $y(e,xy)}function Ly(e){return $y(e,cy)}Fy("identity",(function e(t){var n;function i(e){return null==e||isNaN(e=+e)?n:e}return i.invert=i,i.domain=i.range=function(e){return arguments.length?(t=Array.from(e,Ld),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,Ld):[0,1],fh(i)})),Fy(ny,(function e(){var t=Gd();return t.copy=function(){return Hd(t,e())},Vd.apply(t,arguments),fh(t)}),yy),Fy(iy,(function e(){const t=bh(Yd()).domain([1,10]);return t.copy=()=>Hd(t,e()).base(t.base()),Vd.apply(t,arguments),t}),[yy,iy]),Fy(ry,kh,yy),Fy(oy,(function(){return kh.apply(null,arguments).exponent(.5)}),yy),Fy(ay,(function e(){var t=Ah(Yd());return t.copy=function(){return Hd(t,e()).constant(t.constant())},Vd.apply(t,arguments)}),yy),Fy(sy,(function(){return Vd.apply(Ig(gp,mp,cp,lp,Gh,qh,Uh,Lh,Rh,wp).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}),[yy,wy]),Fy(ly,(function(){return Vd.apply(Ig(hp,pp,fp,up,tp,Wh,Ih,Bh,Rh,_p).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}),[yy,wy]),Fy(uy,Hg,[yy,xy]),Fy("sequential-linear",Hg,[yy,xy]),Fy("sequential-log",(function e(){var t=bh(qg()).domain([1,10]);return t.copy=function(){return Wg(t,e()).base(t.base())},Xd.apply(t,arguments)}),[yy,xy,iy]),Fy("sequential-pow",Yg,[yy,xy]),Fy("sequential-sqrt",(function(){return Yg.apply(null,arguments).exponent(.5)}),[yy,xy]),Fy("sequential-symlog",(function e(){var t=Ah(qg());return t.copy=function(){return Wg(t,e()).constant(t.constant())},Xd.apply(t,arguments)}),[yy,xy]),Fy("diverging-linear",(function e(){var t=fh(Vg()(Ud));return t.copy=function(){return Wg(t,e())},Xd.apply(t,arguments)}),[yy,xy]),Fy("diverging-log",(function e(){var t=bh(Vg()).domain([.1,1,10]);return t.copy=function(){return Wg(t,e()).base(t.base())},Xd.apply(t,arguments)}),[yy,xy,iy]),Fy("diverging-pow",Xg,[yy,xy]),Fy("diverging-sqrt",(function(){return Xg.apply(null,arguments).exponent(.5)}),[yy,xy]),Fy("diverging-symlog",(function e(){var t=Ah(Vg());return t.copy=function(){return Wg(t,e()).constant(t.constant())},Xd.apply(t,arguments)}),[yy,xy]),Fy(cy,(function e(){var t,n=[],i=[],r=[];function o(){var e=0,t=Math.max(1,i.length);for(r=new Array(t-1);++e0?r[t-1]:n[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)},Vd.apply(fh(s),arguments)}),by),Fy(dy,(function e(){var t,n=[.5],i=[0,1],r=1;function o(e){return null!=e&&e<=e?i[$f(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)},Vd.apply(o,arguments)}),by),Fy(my,(function e(){let t=[],n=[];function i(e){return null==e||e!=e?void 0:n[($f(t,e)-1)%n.length]}return i.domain=function(e){return arguments.length?(t=Ey(e),i):t.slice()},i.range=function(e){return arguments.length?(n=Dy.call(e),i):n.slice()},i.tickFormat=function(e,n){return ch(t[0],De(t),null==e?10:e,n)},i.copy=function(){return e().domain(i.domain()).range(i.range())},i}),[vy,by]),Fy(hy,im,vy),Fy(gy,_y,vy),Fy(py,(function(){return Oy(_y().paddingInner(1))}),vy);const By=["clamp","base","constant","exponent"];function Uy(e,t){const n=t[0],i=De(t)-n;return function(t){return e(n+t*i)}}function Iy(e,t,n){return Gg(Hy(t||"rgb",n),e)}function qy(e,t){const n=new Array(t),i=t+1;for(let r=0;re[t]?a[t](e[t]()):0)),a):Ke(.5)}function Hy(e,t){const n=o[function(e){return"interpolate"+e.toLowerCase().split("-").map((e=>e[0].toUpperCase()+e.slice(1))).join("")}(e)];return null!=t&&n&&n.gamma?n.gamma(t):n}function Yy(e){const t=e.length/6|0,n=new Array(t);for(let i=0;i1?(Vy[e]=t,this):Vy[e]}Gy({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"},Yy),Gy({blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},(e=>Iy(Yy(e))));const Jy="symbol",Qy=e=>xe(e)?e.map((e=>String(e))):String(e),Zy=(e,t)=>e[1]-t[1],Ky=(e,t)=>t[1]-e[1];function ev(e,t,n){let i;return pt(t)&&(e.bins&&(t=Math.max(t,e.bins.length)),null!=n&&(t=Math.min(t,Math.floor(Ot(e.domain())/n||1)))),we(t)&&(i=t.step,t=t.interval),mt(t)&&(t=e.type===sy?Ii(t):e.type==ly?qi(t):re("Only time and utc scales accept interval strings."),i&&(t=t.every(i))),t}function tv(e,t,n){let i=e.range(),r=i[0],o=De(i),a=Zy;if(r>o&&(i=o,o=r,r=i,a=Ky),r=Math.floor(r),o=Math.ceil(o),t=t.map((t=>[t,e(t)])).filter((e=>r<=e[1]&&e[1]<=o)).sort(a).map((e=>e[0])),n>0&&t.length>1){const e=[t[0],De(t)];for(;t.length>n&&t.length>=3;)t=t.filter(((e,t)=>!(t%2)));t.length<3&&(t=e)}return t}function nv(e,t){return e.bins?tv(e,e.bins):e.ticks?e.ticks(t):e.domain()}function iv(e,t,n,i,r,o){const a=t.type;let s=Qy;if(a===sy||r===sy)s=e.timeFormat(i);else if(a===ly||r===ly)s=e.utcFormat(i);else if(Py(a)){const r=e.formatFloat(i);if(o||t.bins)s=r;else{const e=rv(t,n,!1);s=t=>e(t)?r(t):""}}else if(t.tickFormat){const r=t.domain();s=e.formatSpan(r[0],r[r.length-1],n,i)}else i&&(s=e.format(i));return s}function rv(e,t,n){const i=nv(e,t),r=e.base(),o=Math.log(r),a=Math.max(1,r*t/i.length),s=e=>{let t=e/Math.pow(r,Math.round(Math.log(e)/o));return t*r1?i[1]-i[0]:i[0];for(o=1;oov[e.type]||e.bins)(t)?uv(s):"discrete"===i?fv(s):dv(s)}const uv=e=>(t,n,i)=>{const r=cv(i[n+1],cv(i.max,1/0)),o=hv(t,e),a=hv(r,e);return o&&a?o+" – "+a:a?"< "+a:"≥ "+o},cv=(e,t)=>null!=e?e:t,fv=e=>(t,n)=>n?e(t):null,dv=e=>t=>e(t),hv=(e,t)=>Number.isFinite(e)?t(e):null;function pv(e,t,n){n=n||{};const i=Math.max(3,n.maxlen||7),r=function(e,t,n,i){const r=i||t.type;return mt(n)&&function(e){return $y(e,wy)}(r)&&(n=n.replace(/%a/g,"%A").replace(/%b/g,"%B")),n||r!==sy?n||r!==ly?lv(e,t,5,null,n,i,!0):e.utcFormat("%A, %d %B %Y, %X UTC"):e.timeFormat("%A, %d %B %Y, %X")}(e,t,n.format,n.formatType);if(zy(t.type)){const e=sv(t).slice(1).map(r),n=e.length;return`${n} boundar${1===n?"y":"ies"}: ${e.join(", ")}`}if(Ny(t.type)){const e=t.domain(),n=e.length;return`${n} value${1===n?"":"s"}: ${n>i?e.slice(0,i-2).map(r).join(", ")+", ending with "+e.slice(-1).map(r):e.map(r).join(", ")}`}{const e=t.domain();return`values from ${r(e[0])} to ${r(De(e))}`}}let gv=0;const mv="p_";function yv(e){return e&&e.gradient}function vv(e,t,n){const i=e.gradient;let r=e.id,o="radial"===i?mv:"";return r||(r=e.id="gradient_"+gv++,"radial"===i?(e.x1=bv(e.x1,.5),e.y1=bv(e.y1,.5),e.r1=bv(e.r1,0),e.x2=bv(e.x2,.5),e.y2=bv(e.y2,.5),e.r2=bv(e.r2,.5),o=mv):(e.x1=bv(e.x1,0),e.y1=bv(e.y1,0),e.x2=bv(e.x2,1),e.y2=bv(e.y2,0))),t[r]=e,"url("+(n||"")+"#"+o+r+")"}function bv(e,t){return null!=e?e:t}function xv(e,t){var n,i=[];return n={gradient:"linear",x1:e?e[0]:0,y1:e?e[1]:0,x2:t?t[0]:1,y2:t?t[1]:0,stops:i,stop:function(e,t){return i.push({offset:e,color:t}),n}}}const wv={basis:{curve:function(e){return new hc(e)}},"basis-closed":{curve:function(e){return new gc(e)}},"basis-open":{curve:function(e){return new mc(e)}},bundle:{curve:vc,tension:"beta",value:.85},cardinal:{curve:wc,tension:"tension",value:0},"cardinal-open":{curve:Oc,tension:"tension",value:0},"cardinal-closed":{curve:Ec,tension:"tension",value:0},"catmull-rom":{curve:Uc,tension:"alpha",value:.5},"catmull-rom-closed":{curve:qc,tension:"alpha",value:.5},"catmull-rom-open":{curve:Hc,tension:"alpha",value:.5},linear:{curve:Gc},"linear-closed":{curve:function(e){return new Vc(e)}},monotone:{horizontal:function(e){return new ef(e)},vertical:function(e){return new Kc(e)}},natural:{curve:function(e){return new nf(e)}},step:{curve:function(e){return new of(e,.5)}},"step-after":{curve:function(e){return new of(e,1)}},"step-before":{curve:function(e){return new of(e,0)}}};function _v(e,t,n){var i=ot(wv,e)&&wv[e],r=null;return i&&(r=i.curve||i[t||"vertical"],i.tension&&null!=n&&(r=r[i.tension](n))),r}const Ov={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},kv=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,Ev=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,Dv=/^((\s+,?\s*)|(,\s*))/,Av=/^[01]/;function Sv(e){const t=[];return(e.match(kv)||[]).forEach((e=>{let n=e[0];const i=n.toLowerCase(),r=Ov[i],o=function(e,t,n){const i=[];for(let r=0;t&&r1&&(g=Math.sqrt(g),n*=g,i*=g);const m=d/n,y=f/n,v=-f/i,b=d/i,x=m*s+y*l,w=v*s+b*l,_=m*e+y*t,O=v*e+b*t;let k=1/((_-x)*(_-x)+(O-w)*(O-w))-.25;k<0&&(k=0);let E=Math.sqrt(k);o==r&&(E=-E);const D=.5*(x+_)-E*(O-w),A=.5*(w+O)+E*(_-x),S=Math.atan2(w-A,x-D);let M=Math.atan2(O-A,_-D)-S;M<0&&1===o?M+=Fv:M>0&&0===o&&(M-=Fv);const C=Math.ceil(Math.abs(M/(Cv+.001))),F=[];for(let e=0;e+e}function Qv(e,t,n){return Math.max(t,Math.min(e,n))}function Zv(){var e=Yv,t=Gv,n=Vv,i=Xv,r=Jv(0),o=r,a=r,s=r,l=null;function u(u,c,f){var d,h=null!=c?c:+e.call(this,u),p=null!=f?f:+t.call(this,u),g=+n.call(this,u),m=+i.call(this,u),y=Math.min(g,m)/2,v=Qv(+r.call(this,u),0,y),b=Qv(+o.call(this,u),0,y),x=Qv(+a.call(this,u),0,y),w=Qv(+s.call(this,u),0,y);if(l||(l=d=hf()),v<=0&&b<=0&&x<=0&&w<=0)l.rect(h,p,g,m);else{var _=h+g,O=p+m;l.moveTo(h+v,p),l.lineTo(_-b,p),l.bezierCurveTo(_-Hv*b,p,_,p+Hv*b,_,p+b),l.lineTo(_,O-w),l.bezierCurveTo(_,O-Hv*w,_-Hv*w,O,_-w,O),l.lineTo(h+x,O),l.bezierCurveTo(h+Hv*x,O,h,O-Hv*x,h,O-x),l.lineTo(h,p+v),l.bezierCurveTo(h,p+Hv*v,h+Hv*v,p,h+v,p),l.closePath()}if(d)return l=null,d+""||null}return u.x=function(t){return arguments.length?(e=Jv(t),u):e},u.y=function(e){return arguments.length?(t=Jv(e),u):t},u.width=function(e){return arguments.length?(n=Jv(e),u):n},u.height=function(e){return arguments.length?(i=Jv(e),u):i},u.cornerRadius=function(e,t,n,i){return arguments.length?(r=Jv(e),o=null!=t?Jv(t):r,s=null!=n?Jv(n):r,a=null!=i?Jv(i):o,u):r},u.context=function(e){return arguments.length?(l=null==e?null:e,u):l},u}function Kv(){var e,t,n,i,r,o,a,s,l=null;function u(e,t,n){const i=n/2;if(r){var u=a-t,c=e-o;if(u||c){var f=Math.sqrt(u*u+c*c),d=(u/=f)*s,h=(c/=f)*s,p=Math.atan2(c,u);l.moveTo(o-d,a-h),l.lineTo(e-u*i,t-c*i),l.arc(e,t,i,p-Math.PI,p),l.lineTo(o+d,a+h),l.arc(o,a,s,p,p+Math.PI)}else l.arc(e,t,i,0,Fv);l.closePath()}else r=1;o=e,a=t,s=i}function c(o){var a,s,c,f=o.length,d=!1;for(null==l&&(l=c=hf()),a=0;a<=f;++a)!(ae.x||0,nb=e=>e.y||0,ib=e=>!(!1===e.defined),rb=function(){var e=gf,t=mf,n=af(0),i=null,r=yf,o=vf,a=bf,s=null,l=pf(u);function u(){var u,c,f=+e.apply(this,arguments),d=+t.apply(this,arguments),h=r.apply(this,arguments)-Nc,p=o.apply(this,arguments)-Nc,g=Dc(p-h),m=p>h;if(s||(s=u=l()),d$c)if(g>zc-$c)s.moveTo(d*Sc(h),d*Fc(h)),s.arc(0,0,d,h,p,!m),f>$c&&(s.moveTo(f*Sc(p),f*Fc(p)),s.arc(0,0,f,p,h,m));else{var y,v,b=h,x=p,w=h,_=p,O=g,k=g,E=a.apply(this,arguments)/2,D=E>$c&&(i?+i.apply(this,arguments):jc(f*f+d*d)),A=Cc(Dc(d-f)/2,+n.apply(this,arguments)),S=A,M=A;if(D>$c){var C=Rc(D/f*Fc(E)),F=Rc(D/d*Fc(E));(O-=2*C)>$c?(w+=C*=m?1:-1,_-=C):(O=0,w=_=(h+p)/2),(k-=2*F)>$c?(b+=F*=m?1:-1,x-=F):(k=0,b=x=(h+p)/2)}var j=d*Sc(b),$=d*Fc(b),T=f*Sc(_),N=f*Fc(_);if(A>$c){var z,P=d*Sc(x),R=d*Fc(x),L=f*Sc(w),B=f*Fc(w);if(g$c?M>$c?(y=wf(L,B,j,$,d,M,m),v=wf(P,R,T,N,d,M,m),s.moveTo(y.cx+y.x01,y.cy+y.y01),M$c&&O>$c?S>$c?(y=wf(T,N,P,R,f,-S,m),v=wf(j,$,L,B,f,-S,m),s.lineTo(y.cx+y.x01,y.cy+y.y01),Se.startAngle||0)).endAngle((e=>e.endAngle||0)).padAngle((e=>e.padAngle||0)).innerRadius((e=>e.innerRadius||0)).outerRadius((e=>e.outerRadius||0)).cornerRadius((e=>e.cornerRadius||0)),ob=Df().x(tb).y1(nb).y0((e=>(e.y||0)+(e.height||0))).defined(ib),ab=Df().y(nb).x1(tb).x0((e=>(e.x||0)+(e.width||0))).defined(ib),sb=Ef().x(tb).y(nb).defined(ib),lb=Zv().x(tb).y(nb).width((e=>e.width||0)).height((e=>e.height||0)).cornerRadius((e=>eb(e.cornerRadiusTopLeft,e.cornerRadius)||0),(e=>eb(e.cornerRadiusTopRight,e.cornerRadius)||0),(e=>eb(e.cornerRadiusBottomRight,e.cornerRadius)||0),(e=>eb(e.cornerRadiusBottomLeft,e.cornerRadius)||0)),ub=function(e,t){let n=null,i=pf(r);function r(){let r;if(n||(n=r=i()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),r)return n=null,r+""||null}return e="function"==typeof e?e:af(e||Af),t="function"==typeof t?t:af(void 0===t?64:+t),r.type=function(t){return arguments.length?(e="function"==typeof t?t:af(t),r):e},r.size=function(e){return arguments.length?(t="function"==typeof e?e:af(+e),r):t},r.context=function(e){return arguments.length?(n=null==e?null:e,r):n},r}().type((e=>qv(e.shape||"circle"))).size((e=>eb(e.size,64))),cb=Kv().x(tb).y(nb).defined(ib).size((e=>e.size||1));function fb(e){return e.cornerRadius||e.cornerRadiusTopLeft||e.cornerRadiusTopRight||e.cornerRadiusBottomRight||e.cornerRadiusBottomLeft}function db(e,t,n,i){return lb.context(e)(t,n,i)}var hb=1;function pb(){hb=1}function gb(e,t,n){var i=t.clip,r=e._defs,o=t.clip_id||(t.clip_id="clip"+hb++),a=r.clipping[o]||(r.clipping[o]={id:o});return Ge(i)?a.path=i(null):fb(n)?a.path=db(null,n,0,0):(a.width=n.width||0,a.height=n.height||0),"url(#"+o+")"}function mb(e){this.clear(),e&&this.union(e)}function yb(e){this.mark=e,this.bounds=this.bounds||new mb}function vb(e){yb.call(this,e),this.items=this.items||[]}function bb(e){this._pending=0,this._loader=e||Xa()}function xb(e){e._pending+=1}function wb(e){e._pending-=1}function _b(e,t,n){if(t.stroke&&0!==t.opacity&&0!==t.strokeOpacity){const i=null!=t.strokeWidth?+t.strokeWidth:1;e.expand(i+(n?function(e,t){return e.strokeJoin&&"miter"!==e.strokeJoin?0:t}(t,i):0))}return e}mb.prototype={clone(){return new mb(this)},clear(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(e){return this.x1===e.x1&&this.y1===e.y1&&this.x2===e.x2&&this.y2===e.y2},set(e,t,n,i){return nthis.x2&&(this.x2=e),t>this.y2&&(this.y2=t),this},expand(e){return this.x1-=e,this.y1-=e,this.x2+=e,this.y2+=e,this},round(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale(e){return this.x1*=e,this.y1*=e,this.x2*=e,this.y2*=e,this},translate(e,t){return this.x1+=e,this.x2+=e,this.y1+=t,this.y2+=t,this},rotate(e,t,n){const i=this.rotatedPoints(e,t,n);return this.clear().add(i[0],i[1]).add(i[2],i[3]).add(i[4],i[5]).add(i[6],i[7])},rotatedPoints(e,t,n){var{x1:i,y1:r,x2:o,y2:a}=this,s=Math.cos(e),l=Math.sin(e),u=t-t*s+n*l,c=n-t*l-n*s;return[s*i-l*r+u,l*i+s*r+c,s*i-l*a+u,l*i+s*a+c,s*o-l*r+u,l*o+s*r+c,s*o-l*a+u,l*o+s*a+c]},union(e){return e.x1this.x2&&(this.x2=e.x2),e.y2>this.y2&&(this.y2=e.y2),this},intersect(e){return e.x1>this.x1&&(this.x1=e.x1),e.y1>this.y1&&(this.y1=e.y1),e.x2=e.x2&&this.y1<=e.y1&&this.y2>=e.y2},alignsWith(e){return e&&(this.x1==e.x1||this.x2==e.x2||this.y1==e.y1||this.y2==e.y2)},intersects(e){return e&&!(this.x2e.x2||this.y2e.y2)},contains(e,t){return!(ethis.x2||tthis.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}},ut(vb,yb),bb.prototype={pending(){return this._pending},sanitizeURL(e){const t=this;return xb(t),t._loader.sanitize(e,{context:"href"}).then((e=>(wb(t),e))).catch((()=>(wb(t),null)))},loadImage(e){const t=this,n=Mf();return xb(t),t._loader.sanitize(e,{context:"image"}).then((e=>{const i=e.href;if(!i||!n)throw{url:i};const r=new n,o=ot(e,"crossOrigin")?e.crossOrigin:"anonymous";return null!=o&&(r.crossOrigin=o),r.onload=()=>wb(t),r.onerror=()=>wb(t),r.src=i,r})).catch((e=>(wb(t),{complete:!1,width:0,height:0,src:e&&e.url||""})))},ready(){const e=this;return new Promise((t=>{!function n(i){e.pending()?setTimeout((()=>{n(!0)}),10):t(i)}(!1)}))}};const Ob=Fv-1e-8;let kb,Eb,Db,Ab,Sb,Mb,Cb,Fb;const jb=(e,t)=>kb.add(e,t),$b=(e,t)=>jb(Eb=e,Db=t),Tb=e=>jb(e,kb.y1),Nb=e=>jb(kb.x1,e),zb=(e,t)=>Sb*e+Cb*t,Pb=(e,t)=>Mb*e+Fb*t,Rb=(e,t)=>jb(zb(e,t),Pb(e,t)),Lb=(e,t)=>$b(zb(e,t),Pb(e,t));function Bb(e,t){return kb=e,t?(Ab=t*Mv,Sb=Fb=Math.cos(Ab),Mb=Math.sin(Ab),Cb=-Mb):(Sb=Fb=1,Ab=Mb=Cb=0),Ub}const Ub={beginPath(){},closePath(){},moveTo:Lb,lineTo:Lb,rect(e,t,n,i){Ab?(Rb(e+n,t),Rb(e+n,t+i),Rb(e,t+i),Lb(e,t)):(jb(e+n,t+i),$b(e,t))},quadraticCurveTo(e,t,n,i){const r=zb(e,t),o=Pb(e,t),a=zb(n,i),s=Pb(n,i);Ib(Eb,r,a,Tb),Ib(Db,o,s,Nb),$b(a,s)},bezierCurveTo(e,t,n,i,r,o){const a=zb(e,t),s=Pb(e,t),l=zb(n,i),u=Pb(n,i),c=zb(r,o),f=Pb(r,o);qb(Eb,a,l,c,Tb),qb(Db,s,u,f,Nb),$b(c,f)},arc(e,t,n,i,r,o){if(i+=Ab,r+=Ab,Eb=n*Math.cos(r)+e,Db=n*Math.sin(r)+t,Math.abs(r-i)>Ob)jb(e-n,t-n),jb(e+n,t+n);else{const a=i=>jb(n*Math.cos(i)+e,n*Math.sin(i)+t);let s,l;if(a(i),a(r),r!==i)if((i%=Fv)<0&&(i+=Fv),(r%=Fv)<0&&(r+=Fv),rr;++l,s-=Cv)a(s);else for(s=i-i%Cv+Cv,l=0;l<4&&s1e-14?(l=a*a+s*o,l>=0&&(l=Math.sqrt(l),u=(-a+l)/o,c=(-a-l)/o)):u=.5*s/a,0m)return!1;h>g&&(g=h)}else if(f>0){if(h0&&(e.globalAlpha=n,e.fillStyle=tx(e,t,t.fill),!0)}var ix=[];function rx(e,t,n){var i=null!=(i=t.strokeWidth)?i:1;return!(i<=0)&&(n*=null==t.strokeOpacity?1:t.strokeOpacity)>0&&(e.globalAlpha=n,e.strokeStyle=tx(e,t,t.stroke),e.lineWidth=i,e.lineCap=t.strokeCap||"butt",e.lineJoin=t.strokeJoin||"miter",e.miterLimit=t.strokeMiterLimit||10,e.setLineDash&&(e.setLineDash(t.strokeDash||ix),e.lineDashOffset=t.strokeDashOffset||0),!0)}function ox(e,t){return e.zindex-t.zindex||e.index-t.index}function ax(e){if(!e.zdirty)return e.zitems;var t,n,i,r=e.items,o=[];for(n=0,i=r.length;n=0;)if(n=t(r[i]))return n;if(r===o)for(i=(r=e.items).length;--i>=0;)if(!r[i].zindex&&(n=t(r[i])))return n;return null}function ux(e){return function(t,n,i){sx(n,(n=>{i&&!i.intersects(n.bounds)||fx(e,t,n,n)}))}}function cx(e){return function(t,n,i){!n.items.length||i&&!i.intersects(n.bounds)||fx(e,t,n.items[0],n.items)}}function fx(e,t,n,i){var r=null==n.opacity?1:n.opacity;0!==r&&(e(t,i)||(Zb(t,n),n.fill&&nx(t,n,r)&&t.fill(),n.stroke&&rx(t,n,r)&&t.stroke()))}function dx(e){return e=e||fe,function(t,n,i,r,o,a){return i*=t.pixelRatio,r*=t.pixelRatio,lx(n,(n=>{const s=n.bounds;if((!s||s.contains(o,a))&&s)return e(t,n,i,r,o,a)?n:void 0}))}}function hx(e,t){return function(n,i,r,o){var a,s,l=Array.isArray(i)?i[0]:i,u=null==t?l.fill:t,c=l.stroke&&n.isPointInStroke;return c&&(a=l.strokeWidth,s=l.strokeCap,n.lineWidth=null!=a?a:1,n.lineCap=null!=s?s:"butt"),!e(n,i)&&(u&&n.isPointInPath(r,o)||c&&n.isPointInStroke(r,o))}}function px(e){return dx(hx(e))}function gx(e,t){return"translate("+e+","+t+")"}function mx(e){return"rotate("+e+")"}function yx(e){return gx(e.x||0,e.y||0)}function vx(e,t,n){function i(e,n){var i=n.x||0,r=n.y||0,o=n.angle||0;e.translate(i,r),o&&e.rotate(o*=Mv),e.beginPath(),t(e,n),o&&e.rotate(-o),e.translate(-i,-r)}return{type:e,tag:"path",nested:!1,attr:function(e,n){e("transform",function(e){return gx(e.x||0,e.y||0)+(e.angle?" "+mx(e.angle):"")}(n)),e("d",t(null,n))},bound:function(e,n){return t(Bb(e,n.angle),n),_b(e,n).translate(n.x||0,n.y||0)},draw:ux(i),pick:px(i),isect:n||Gb(i)}}var bx=vx("arc",(function(e,t){return rb.context(e)(t)}));function xx(e,t,n){function i(e,n){e.beginPath(),t(e,n)}const r=hx(i);return{type:e,tag:"path",nested:!0,attr:function(e,n){var i=n.mark.items;i.length&&e("d",t(null,i))},bound:function(e,n){var i=n.items;return 0===i.length?e:(t(Bb(e),i),_b(e,i[0]))},draw:cx(i),pick:function(e,t,n,i,o,a){var s=t.items,l=t.bounds;return!s||!s.length||l&&!l.contains(o,a)?null:(n*=e.pixelRatio,i*=e.pixelRatio,r(e,s,n,i)?s[0]:null)},isect:Vb,tip:n}}var wx=xx("area",(function(e,t){const n=t[0],i=n.interpolate||"linear";return("horizontal"===n.orient?ab:ob).curve(_v(i,n.orient,n.tension)).context(e)(t)}),(function(e,t){for(var n,i,r="horizontal"===e[0].orient?t[1]:t[0],o="horizontal"===e[0].orient?"y":"x",a=e.length,s=1/0;--a>=0;)!1!==e[a].defined&&(i=Math.abs(e[a][o]-r)).5&&t<1.5?.5-Math.abs(t-1):0}function kx(e,t){const n=Ox(t);e("d",db(null,t,n,n))}function Ex(e,t,n,i){const r=Ox(t);e.beginPath(),db(e,t,(n||0)+r,(i||0)+r)}const Dx=hx(Ex),Ax=hx(Ex,!1),Sx=hx(Ex,!0);var Mx={type:"group",tag:"g",nested:!1,attr:function(e,t){e("transform",yx(t))},bound:function(e,t){if(!t.clip&&t.items){const n=t.items,i=n.length;for(let t=0;t{const i=t.x||0,r=t.y||0,o=t.strokeForeground,a=null==t.opacity?1:t.opacity;(t.stroke||t.fill)&&a&&(Ex(e,t,i,r),Zb(e,t),t.fill&&nx(e,t,a)&&e.fill(),t.stroke&&!o&&rx(e,t,a)&&e.stroke()),e.save(),e.translate(i,r),t.clip&&_x(e,t),n&&n.translate(-i,-r),sx(t,(t=>{this.draw(e,t,n)})),n&&n.translate(i,r),e.restore(),o&&t.stroke&&a&&(Ex(e,t,i,r),Zb(e,t),rx(e,t,a)&&e.stroke())}))},pick:function(e,t,n,i,r,o){if(t.bounds&&!t.bounds.contains(r,o)||!t.items)return null;const a=n*e.pixelRatio,s=i*e.pixelRatio;return lx(t,(l=>{let u,c,f;const d=l.bounds;if(d&&!d.contains(r,o))return;c=l.x||0,f=l.y||0;const h=c+(l.width||0),p=f+(l.height||0),g=l.clip;if(g&&(rh||op))return;if(e.save(),e.translate(c,f),c=r-c,f=o-f,g&&fb(l)&&!Sx(e,l,a,s))return e.restore(),null;const m=l.strokeForeground,y=!1!==t.interactive;return y&&m&&l.stroke&&Ax(e,l,a,s)?(e.restore(),l):(u=lx(l,(e=>function(e,t,n){return(!1!==e.interactive||"group"===e.marktype)&&e.bounds&&e.bounds.contains(t,n)}(e,c,f)?this.pick(e,n,i,c,f):null)),!u&&y&&(l.fill||!m&&l.stroke)&&Dx(e,l,a,s)&&(u=l),e.restore(),u||null)}))},isect:Xb,content:function(e,t,n){e("clip-path",t.clip?gb(n,t,t):null)},background:function(e,t){e("class","background"),e("aria-hidden",!0),kx(e,t)},foreground:function(e,t){e("class","foreground"),e("aria-hidden",!0),t.strokeForeground?kx(e,t):e("d","")}},Cx={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function Fx(e,t){var n=e.image;return(!n||e.url&&e.url!==n.url)&&(n={complete:!1,width:0,height:0},t.loadImage(e.url).then((t=>{e.image=t,e.image.url=e.url}))),n}function jx(e,t){return null!=e.width?e.width:t&&t.width?!1!==e.aspect&&e.height?e.height*t.width/t.height:t.width:0}function $x(e,t){return null!=e.height?e.height:t&&t.height?!1!==e.aspect&&e.width?e.width*t.height/t.width:t.height:0}function Tx(e,t){return"center"===e?t/2:"right"===e?t:0}function Nx(e,t){return"middle"===e?t/2:"bottom"===e?t:0}var zx={type:"image",tag:"image",nested:!1,attr:function(e,t,n){const i=Fx(t,n),r=jx(t,i),o=$x(t,i),a=(t.x||0)-Tx(t.align,r),s=(t.y||0)-Nx(t.baseline,o);e("href",!i.src&&i.toDataURL?i.toDataURL():i.src||"",Cx["xmlns:xlink"],"xlink:href"),e("transform",gx(a,s)),e("width",r),e("height",o),e("preserveAspectRatio",!1===t.aspect?"none":"xMidYMid")},bound:function(e,t){const n=t.image,i=jx(t,n),r=$x(t,n),o=(t.x||0)-Tx(t.align,i),a=(t.y||0)-Nx(t.baseline,r);return e.set(o,a,o+i,a+r)},draw:function(e,t,n){sx(t,(t=>{if(n&&!n.intersects(t.bounds))return;const i=Fx(t,this);let r=jx(t,i),o=$x(t,i);if(0===r||0===o)return;let a,s,l,u,c=(t.x||0)-Tx(t.align,r),f=(t.y||0)-Nx(t.baseline,o);!1!==t.aspect&&(s=i.width/i.height,l=t.width/t.height,s==s&&l==l&&s!==l&&(l=0;)if(!1!==e[o].defined&&(n=e[o].x-t[0])*n+(i=e[o].y-t[1])*i{if(!n||n.intersects(t.bounds)){var i=null==t.opacity?1:t.opacity;i&&Ix(e,t,i)&&(Zb(e,t),e.stroke())}}))},pick:dx((function(e,t,n,i){return!!e.isPointInStroke&&Ix(e,t,1)&&e.isPointInStroke(n,i)})),isect:Jb},Wx=vx("shape",(function(e,t){return(t.mark.shape||t.shape).context(e)(t)})),Hx=vx("symbol",(function(e,t){return ub.context(e)(t)}),Vb);const Yx=bt();var Gx={height:Kx,measureWidth:Qx,estimateWidth:Xx,width:Xx,canvas:Vx};function Vx(e){Gx.width=e&&Hb?Qx:Xx}function Xx(e,t){return Jx(iw(e,t),Kx(e))}function Jx(e,t){return~~(.8*e.length*t)}function Qx(e,t){return Kx(e)<=0||!(t=iw(e,t))?0:Zx(t,ow(e))}function Zx(e,t){const n=`(${t}) ${e}`;let i=Yx.get(n);return void 0===i&&(Hb.font=t,i=Hb.measureText(e).width,Yx.set(n,i)),i}function Kx(e){return null!=e.fontSize?+e.fontSize||0:11}function ew(e){return null!=e.lineHeight?e.lineHeight:Kx(e)+2}function tw(e){return t=e.lineBreak&&e.text&&!xe(e.text)?e.text.split(e.lineBreak):e.text,xe(t)?t.length>1?t:t[0]:t;var t}function nw(e){const t=tw(e);return(xe(t)?t.length-1:0)*ew(e)}function iw(e,t){const n=null==t?"":(t+"").trim();return e.limit>0&&n.length?function(e,t){var n=+e.limit,i=function(e){if(Gx.width===Qx){const t=ow(e);return e=>Zx(e,t)}{const t=Kx(e);return e=>Jx(e,t)}}(e);if(i(t)>>1,i(t.slice(r))>n?s=r+1:l=r;return o+t.slice(s)}for(;s>>1),i(t.slice(0,r))Math.max(e,Gx.width(t,n))),0)):i=Gx.width(t,f),"center"===o?u-=i/2:"right"===o&&(u-=i),e.set(u+=s,c+=l,u+i,c+r),t.angle&&!n)e.rotate(t.angle*Mv,s,l);else if(2===n)return e.rotatedPoints(t.angle*Mv,s,l);return e}var fw={type:"text",tag:"text",nested:!1,attr:function(e,t){var n,i=t.dx||0,r=(t.dy||0)+aw(t),o=uw(t),a=o.x1,s=o.y1,l=t.angle||0;e("text-anchor",sw[t.align]||"start"),l?(n=gx(a,s)+" "+mx(l),(i||r)&&(n+=" "+gx(i,r))):n=gx(a+i,s+r),e("transform",n)},bound:cw,draw:function(e,t,n){sx(t,(t=>{var i,r,o,a,s,l,u,c=null==t.opacity?1:t.opacity;if(!(n&&!n.intersects(t.bounds)||0===c||t.fontSize<=0||null==t.text||0===t.text.length)){if(e.font=ow(t),e.textAlign=t.align||"left",r=(i=uw(t)).x1,o=i.y1,t.angle&&(e.save(),e.translate(r,o),e.rotate(t.angle*Mv),r=o=0),r+=t.dx||0,o+=(t.dy||0)+aw(t),l=tw(t),Zb(e,t),xe(l))for(s=ew(t),a=0;a=0;)if(!1!==e[r].defined&&(n=e[r].x-t[0])*n+(i=e[r].y-t[1])*i<(n=e[r].size||1)*n)return e[r];return null})),hw={arc:bx,area:wx,group:Mx,image:zx,line:Px,path:Lx,rect:Ux,rule:qx,shape:Wx,symbol:Hx,text:fw,trail:dw};function pw(e,t,n){var i=hw[e.mark.marktype],r=t||i.bound;return i.nested&&(e=e.mark),r(e.bounds||(e.bounds=new mb),e,n)}var gw={mark:null};function mw(e,t,n){var i,r,o,a,s=hw[e.marktype],l=s.bound,u=e.items,c=u&&u.length;if(s.nested)return c?o=u[0]:(gw.mark=e,o=gw),a=pw(o,l,n),t&&t.union(a)||a;if(t=t||e.bounds&&e.bounds.clear()||new mb,c)for(i=0,r=u.length;it;)e.removeChild(n[--i]);return e}function Aw(e){return"mark-"+e.marktype+(e.role?" role-"+e.role:"")+(e.name?" "+e.name:"")}function Sw(e,t){const n=t.getBoundingClientRect();return[e.clientX-n.left-(t.clientLeft||0),e.clientY-n.top-(t.clientTop||0)]}function Mw(e,t){this._active=null,this._handlers={},this._loader=e||Xa(),this._tooltip=t||Cw}function Cw(e,t,n,i){e.element().setAttribute("title",i||"")}function Fw(e){this._el=null,this._bgcolor=null,this._loader=new bb(e)}ww.prototype={toJSON(e){return vw(this.root,e||0)},mark(e,t,n){const i=_w(e,t=t||this.root.items[0]);return t.items[n]=i,i.zindex&&(i.group.zdirty=!0),i}},Mw.prototype={initialize(e,t,n){return this._el=e,this._obj=n||null,this.origin(t)},element(){return this._el},canvas(){return this._el&&this._el.firstChild},origin(e){return arguments.length?(this._origin=e||[0,0],this):this._origin.slice()},scene(e){return arguments.length?(this._scene=e,this):this._scene},on(){},off(){},_handlerIndex(e,t,n){for(let i=e?e.length:0;--i>=0;)if(e[i].type===t&&(!n||e[i].handler===n))return i;return-1},handlers(e){const t=this._handlers,n=[];if(e)n.push(...t[this.eventName(e)]);else for(const e in t)n.push(...t[e]);return n},eventName(e){const t=e.indexOf(".");return t<0?e:e.slice(0,t)},handleHref(e,t,n){this._loader.sanitize(n,{context:"href"}).then((t=>{const n=new MouseEvent(e.type,e),i=Ow(null,"a");for(const e in t)i.setAttribute(e,t[e]);i.dispatchEvent(n)})).catch((()=>{}))},handleTooltip(e,t,n){if(t&&null!=t.tooltip){t=function(e,t,n,i){var r,o,a=e&&e.mark;if(a&&(r=hw[a.marktype]).tip){for((o=Sw(t,n))[0]-=i[0],o[1]-=i[1];e=e.mark.group;)o[0]-=e.x||0,o[1]-=e.y||0;e=r.tip(a.items,o)}return e}(t,e,this.canvas(),this._origin);const i=n&&t&&t.tooltip||null;this._tooltip.call(this._obj,this,e,t,i)}},getItemBoundingClientRect(e){const t=this.canvas();if(!t)return;const n=t.getBoundingClientRect(),i=this._origin,r=e.bounds,o=r.width(),a=r.height();let s=r.x1+i[0]+n.left,l=r.y1+i[1]+n.top;for(;e.mark&&(e=e.mark.group);)s+=e.x||0,l+=e.y||0;return{x:s,y:l,width:o,height:a,left:s,top:l,right:s+o,bottom:l+a}}},Fw.prototype={initialize(e,t,n,i,r){return this._el=e,this.resize(t,n,i,r)},element(){return this._el},canvas(){return this._el&&this._el.firstChild},background(e){return 0===arguments.length?this._bgcolor:(this._bgcolor=e,this)},resize(e,t,n,i){return this._width=e,this._height=t,this._origin=n||[0,0],this._scale=i||1,this},dirty(){},render(e){const t=this;return t._call=function(){t._render(e)},t._call(),t._call=null,t},_render(){},renderAsync(e){const t=this.render(e);return this._ready?this._ready.then((()=>t)):Promise.resolve(t)},_load(e,t){var n=this,i=n._loader[e](t);if(!n._ready){const e=n._call;n._ready=n._loader.ready().then((t=>{t&&e(),n._ready=null}))}return i},sanitizeURL(e){return this._load("sanitizeURL",e)},loadImage(e){return this._load("loadImage",e)}};const jw="dragenter",$w="dragleave",Tw="dragover",Nw="mousedown",zw="mousemove",Pw="mouseout",Rw="mouseover",Lw="click",Bw="mousewheel",Uw="touchstart",Iw="touchmove",qw="touchend",Ww=zw,Hw=Pw,Yw=Lw;function Gw(e,t){Mw.call(this,e,t),this._down=null,this._touch=null,this._first=!0,this._events={}}function Vw(e,t){(e=>e===Uw||e===Iw||e===qw?[Uw,Iw,qw]:[e])(t).forEach((t=>function(e,t){const n=e.canvas();n&&!e._events[t]&&(e._events[t]=1,n.addEventListener(t,e[t]?n=>e[t](n):n=>e.fire(t,n)))}(e,t)))}function Xw(e,t,n){return function(i){const r=this._active,o=this.pickEvent(i);o===r||(r&&r.exit||this.fire(n,i),this._active=o,this.fire(t,i)),this.fire(e,i)}}function Jw(e){return function(t){this.fire(e,t),this._active=null}}ut(Gw,Mw,{initialize(e,t,n){return this._canvas=e&&kw(e,"canvas"),[Lw,Nw,zw,Pw,$w].forEach((e=>Vw(this,e))),Mw.prototype.initialize.call(this,e,t,n)},canvas(){return this._canvas},context(){return this._canvas.getContext("2d")},events:["keydown","keypress","keyup",jw,$w,Tw,Nw,"mouseup",zw,Pw,Rw,Lw,"dblclick","wheel",Bw,Uw,Iw,qw],DOMMouseScroll(e){this.fire(Bw,e)},mousemove:Xw(zw,Rw,Pw),dragover:Xw(Tw,jw,$w),mouseout:Jw(Pw),dragleave:Jw($w),mousedown(e){this._down=this._active,this.fire(Nw,e)},click(e){this._down===this._active&&(this.fire(Lw,e),this._down=null)},touchstart(e){this._touch=this.pickEvent(e.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(Uw,e,!0)},touchmove(e){this.fire(Iw,e,!0)},touchend(e){this.fire(qw,e,!0),this._touch=null},fire(e,t,n){const i=n?this._touch:this._active,r=this._handlers[e];if(t.vegaType=e,e===Yw&&i&&i.href?this.handleHref(t,i,i.href):e!==Ww&&e!==Hw||this.handleTooltip(t,i,e!==Hw),r)for(let e=0,n=r.length;e=0&&i.splice(r,1),this},pickEvent(e){const t=Sw(e,this._canvas),n=this._origin;return this.pick(this._scene,t[0],t[1],t[0]-n[0],t[1]-n[1])},pick(e,t,n,i,r){const o=this.context();return hw[e.marktype].pick.call(this,o,e,t,n,i,r)}});var Qw="undefined"!=typeof window&&window.devicePixelRatio||1;function Zw(e){Fw.call(this,e),this._options={},this._redraw=!1,this._dirty=new mb,this._tempb=new mb}const Kw=Fw.prototype;function e_(e,t){Mw.call(this,e,t);const n=this;n._hrefHandler=t_(n,((e,t)=>{t&&t.href&&n.handleHref(e,t,t.href)})),n._tooltipHandler=t_(n,((e,t)=>{n.handleTooltip(e,t,e.type!==Hw)}))}ut(Zw,Fw,{initialize(e,t,n,i,r,o){return this._options=o||{},this._canvas=this._options.externalContext?null:Sf(1,1,this._options.type),e&&this._canvas&&(Dw(e,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),Kw.initialize.call(this,e,t,n,i,r)},resize(e,t,n,i){if(Kw.resize.call(this,e,t,n,i),this._canvas)!function(e,t,n,i,r,o){const a="undefined"!=typeof HTMLElement&&e instanceof HTMLElement&&null!=e.parentNode,s=e.getContext("2d"),l=a?Qw:r;e.width=t*l,e.height=n*l;for(const e in o)s[e]=o[e];a&&1!==l&&(e.style.width=t+"px",e.style.height=n+"px"),s.pixelRatio=l,s.setTransform(l,0,0,l,l*i[0],l*i[1])}(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const e=this._options.externalContext;e||re("CanvasRenderer is missing a valid canvas or context"),e.scale(this._scale,this._scale),e.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this},canvas(){return this._canvas},context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)},dirty(e){const t=this._tempb.clear().union(e.bounds);let n=e.mark.group;for(;n;)t.translate(n.x||0,n.y||0),n=n.mark.group;this._dirty.union(t)},_render(e){const t=this.context(),n=this._origin,i=this._width,r=this._height,o=this._dirty,a=((e,t,n)=>(new mb).set(0,0,t,n).translate(-e[0],-e[1]))(n,i,r);t.save();const s=this._redraw||o.empty()?(this._redraw=!1,a.expand(1)):function(e,t,n){return t.expand(1).round(),e.pixelRatio%1&&t.scale(e.pixelRatio).round().scale(1/e.pixelRatio),t.translate(-n[0]%1,-n[1]%1),e.beginPath(),e.rect(t.x1,t.y1,t.width(),t.height()),e.clip(),t}(t,a.intersect(o),n);return this.clear(-n[0],-n[1],i,r),this.draw(t,e,s),t.restore(),o.clear(),this},draw(e,t,n){const i=hw[t.marktype];t.clip&&function(e,t){var n=t.clip;e.save(),Ge(n)?(e.beginPath(),n(e),e.clip()):_x(e,t.group)}(e,t),i.draw.call(this,e,t,n),t.clip&&e.restore()},clear(e,t,n,i){const r=this._options,o=this.context();"pdf"===r.type||r.externalContext||o.clearRect(e,t,n,i),null!=this._bgcolor&&(o.fillStyle=this._bgcolor,o.fillRect(e,t,n,i))}});const t_=(e,t)=>n=>{let i=n.target.__data__;i=Array.isArray(i)?i[0]:i,n.vegaType=n.type,t.call(e._obj,n,i)};ut(e_,Mw,{initialize(e,t,n){let i=this._svg;return i&&(i.removeEventListener(Yw,this._hrefHandler),i.removeEventListener(Ww,this._tooltipHandler),i.removeEventListener(Hw,this._tooltipHandler)),this._svg=i=e&&kw(e,"svg"),i&&(i.addEventListener(Yw,this._hrefHandler),i.addEventListener(Ww,this._tooltipHandler),i.addEventListener(Hw,this._tooltipHandler)),Mw.prototype.initialize.call(this,e,t,n)},canvas(){return this._svg},on(e,t){const n=this.eventName(e),i=this._handlers;if(this._handlerIndex(i[n],e,t)<0){const r={type:e,handler:t,listener:t_(this,t)};(i[n]||(i[n]=[])).push(r),this._svg&&this._svg.addEventListener(n,r.listener)}return this},off(e,t){const n=this.eventName(e),i=this._handlers[n],r=this._handlerIndex(i,e,t);return r>=0&&(this._svg&&this._svg.removeEventListener(n,i[r].listener),i.splice(r,1)),this}});const n_="aria-hidden",i_="aria-label",r_="role",o_="aria-roledescription",a_="graphics-object",s_="graphics-symbol",l_=(e,t,n)=>({[r_]:e,[o_]:t,[i_]:n||void 0}),u_=Mt(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),c_={axis:{desc:"axis",caption:function(e){const t=e.datum,n=e.orient,i=t.title?g_(e):null,r=e.context,o=r.scales[t.scale].value,a=r.dataflow.locale(),s=o.type;return("left"===n||"right"===n?"Y":"X")+"-axis"+(i?` titled '${i}'`:"")+` for a ${Ny(s)?"discrete":s} scale`+` with ${pv(a,o,e)}`}},legend:{desc:"legend",caption:function(e){const t=e.datum,n=t.title?g_(e):null,i=`${t.type||""} legend`.trim(),r=t.scales,o=Object.keys(r),a=e.context,s=a.scales[r[o[0]]].value,l=a.dataflow.locale();return((u=i).length?u[0].toUpperCase()+u.slice(1):u)+(n?` titled '${n}'`:"")+` for ${function(e){return(e=e.map((e=>e+("fill"===e||"stroke"===e?" color":"")))).length<2?e[0]:e.slice(0,-1).join(", ")+" and "+De(e)}(o)}`+` with ${pv(l,s,e)}`;var u}},"title-text":{desc:"title",caption:e=>`Title text '${p_(e)}'`},"title-subtitle":{desc:"subtitle",caption:e=>`Subtitle text '${p_(e)}'`}},f_={ariaRole:r_,ariaRoleDescription:o_,description:i_};function d_(e,t){const n=!1===t.aria;if(e(n_,n||void 0),n||null==t.description)for(const t in f_)e(f_[t],void 0);else{const n=t.mark.marktype;e(i_,t.description),e(r_,t.ariaRole||("group"===n?a_:s_)),e(o_,t.ariaRoleDescription||`${n} mark`)}}function h_(e){return!1===e.aria?{[n_]:!0}:u_[e.role]?null:c_[e.role]?function(e,t){try{const n=e.items[0],i=t.caption||(()=>"");return l_(t.role||s_,t.desc,n.description||i(n))}catch(e){return null}}(e,c_[e.role]):function(e){const t=e.marktype,n="group"===t||"text"===t||e.items.some((e=>null!=e.description&&!1!==e.aria));return l_(n?a_:s_,`${t} mark container`,e.description)}(e)}function p_(e){return He(e.text).join(" ")}function g_(e){try{return He(De(e.items).items[0].text).join(" ")}catch(e){return null}}const m_=e=>(e+"").replace(/&/g,"&").replace(//g,">");function y_(){let e="",t="",n="";const i=[],r=()=>t=n="",o=(e,n)=>{var i;return null!=n&&(t+=` ${e}="${i=n,m_(i).replace(/"/g,""").replace(/\t/g," ").replace(/\n/g," ").replace(/\r/g," ")}"`),a},a={open(s){(o=>{t&&(e+=`${t}>${n}`,r()),i.push(o)})(s),t="<"+s;for(var l=arguments.length,u=new Array(l>1?l-1:0),c=1;c${n}`:"/>"):``,r(),a},attr:o,text:e=>(n+=m_(e),a),toString:()=>e};return a}const v_=e=>b_(y_(),e)+"";function b_(e,t){if(e.open(t.tagName),t.hasAttributes()){const n=t.attributes,i=n.length;for(let t=0;t1&&e.previousSibling!=t}(a,n))&&t.insertBefore(a,n?n.nextSibling:t.firstChild),a}ut(E_,Fw,{initialize(e,t,n,i,r){return this._defs={},this._clearDefs(),e&&(this._svg=Ew(e,0,"svg",k_),this._svg.setAttributeNS(O_,"xmlns",k_),this._svg.setAttributeNS(O_,"xmlns:xlink",Cx["xmlns:xlink"]),this._svg.setAttribute("version",Cx.version),this._svg.setAttribute("class","marks"),Dw(e,1),this._root=Ew(this._svg,0,"g",k_),z_(this._root,__),Dw(this._svg,1)),this.background(this._bgcolor),D_.initialize.call(this,e,t,n,i,r)},background(e){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",e),D_.background.apply(this,arguments)},resize(e,t,n,i){return D_.resize.call(this,e,t,n,i),this._svg&&(z_(this._svg,{width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}),this._root.setAttribute("transform",`translate(${this._origin})`)),this._dirty=[],this},canvas(){return this._svg},svg(){const e=this._svg,t=this._bgcolor;if(!e)return null;let n;t&&(e.removeAttribute("style"),n=Ew(e,0,"rect",k_),z_(n,{width:this._width,height:this._height,fill:t}));const i=v_(e);return t&&(e.removeChild(n),this._svg.style.setProperty("background-color",t)),i},_render(e){return this._dirtyCheck()&&(this._dirtyAll&&this._clearDefs(),this.mark(this._root,e),Dw(this._root,1)),this.defs(),this._dirty=[],++this._dirtyID,this},dirty(e){e.dirty!==this._dirtyID&&(e.dirty=this._dirtyID,this._dirty.push(e))},isDirty(e){return this._dirtyAll||!e._svg||!e._svg.ownerSVGElement||e.dirty===this._dirtyID},_dirtyCheck(){this._dirtyAll=!0;const e=this._dirty;if(!e.length||!this._dirtyID)return!0;const t=++this._dirtyID;let n,i,r,o,a,s,l;for(a=0,s=e.length;a{e.dirty=t}))),i.zdirty||(n.exit?(o.nested&&i.items.length?(l=i.items[0],l._svg&&this._update(o,l._svg,l)):n._svg&&(l=n._svg.parentNode,l&&l.removeChild(n._svg)),n._svg=null):(n=o.nested?i.items[0]:n,n._update!==t&&(n._svg&&n._svg.ownerSVGElement?this._update(o,n._svg,n):(this._dirtyAll=!1,A_(n,t)),n._update=t)));return!this._dirtyAll},mark(e,t,n){if(!this.isDirty(t))return t._svg;const i=this._svg,r=hw[t.marktype],o=!1===t.interactive?"none":null,a="g"===r.tag,s=C_(t,e,n,"g",i);s.setAttribute("class",Aw(t));const l=h_(t);for(const e in l)P_(s,e,l[e]);a||P_(s,"pointer-events",o),P_(s,"clip-path",t.clip?gb(this,t,t.group):null);let u=null,c=0;const f=e=>{const t=this.isDirty(e),n=C_(e,s,u,r.tag,i);t&&(this._update(r,n,e),a&&function(e,t,n){t=t.lastChild.previousSibling;let i,r=0;sx(n,(n=>{i=e.mark(t,n,i),++r})),Dw(t,1+r)}(this,n,e)),u=n,++c};return r.nested?t.items.length&&f(t.items[0]):sx(t,f),Dw(s,c),s},_update(e,t,n){F_=t,j_=t.__values__,d_(T_,n),e.attr(T_,n,this);const i=$_[e.type];i&&i.call(this,e,t,n),F_&&this.style(F_,n)},style(e,t){if(null!=t){for(const n in x_){let i="font"===n?rw(t):t[n];if(i===j_[n])continue;const r=x_[n];null==i?e.removeAttribute(r):(yv(i)&&(i=vv(i,this._defs.gradient,R_())),e.setAttribute(r,i+"")),j_[n]=i}for(const n in w_)N_(e,w_[n],t[n])}},defs(){const e=this._svg,t=this._defs;let n=t.el,i=0;for(const r in t.gradient)n||(t.el=n=Ew(e,1,"defs",k_)),i=S_(n,t.gradient[r],i);for(const r in t.clipping)n||(t.el=n=Ew(e,1,"defs",k_)),i=M_(n,t.clipping[r],i);n&&(0===i?(e.removeChild(n),t.el=null):Dw(n,i))},_clearDefs(){const e=this._defs;e.gradient={},e.clipping={}}});let F_=null,j_=null;const $_={group(e,t,n){const i=F_=t.childNodes[2];j_=i.__values__,e.foreground(T_,n,this),j_=t.__values__,F_=t.childNodes[1],e.content(T_,n,this);const r=F_=t.childNodes[0];e.background(T_,n,this);const o=!1===n.mark.interactive?"none":null;if(o!==j_.events&&(P_(i,"pointer-events",o),P_(r,"pointer-events",o),j_.events=o),n.strokeForeground&&n.stroke){const e=n.fill;P_(i,"display",null),this.style(r,n),P_(r,"stroke",null),e&&(n.fill=null),j_=i.__values__,this.style(i,n),e&&(n.fill=e),F_=null}else P_(i,"display","none")},image(e,t,n){!1===n.smooth?(N_(t,"image-rendering","optimizeSpeed"),N_(t,"image-rendering","pixelated")):N_(t,"image-rendering",null)},text(e,t,n){const i=tw(n);let r,o,a,s;xe(i)?(o=i.map((e=>iw(n,e))),r=o.join("\n"),r!==j_.text&&(Dw(t,0),a=t.ownerDocument,s=ew(n),o.forEach(((e,i)=>{const r=Ow(a,"tspan",k_);r.__data__=n,r.textContent=e,i&&(r.setAttribute("x",0),r.setAttribute("dy",s)),t.appendChild(r)})),j_.text=r)):(o=iw(n,i),o!==j_.text&&(t.textContent=o,j_.text=o)),P_(t,"font-family",rw(n)),P_(t,"font-size",Kx(n)+"px"),P_(t,"font-style",n.fontStyle),P_(t,"font-variant",n.fontVariant),P_(t,"font-weight",n.fontWeight)}};function T_(e,t,n){t!==j_[e]&&(n?function(e,t,n,i){null!=n?e.setAttributeNS(i,t,n):e.removeAttributeNS(i,t)}(F_,e,t,n):P_(F_,e,t),j_[e]=t)}function N_(e,t,n){n!==j_[t]&&(null==n?e.style.removeProperty(t):e.style.setProperty(t,n+""),j_[t]=n)}function z_(e,t){for(const n in t)P_(e,n,t[n])}function P_(e,t,n){null!=n?e.setAttribute(t,n):e.removeAttribute(t)}function R_(){let e;return"undefined"==typeof window?"":(e=window.location).hash?e.href.slice(0,-e.hash.length):e.href}function L_(e){Fw.call(this,e),this._text=null,this._defs={gradient:{},clipping:{}}}ut(L_,Fw,{svg(){return this._text},_render(e){const t=y_();t.open("svg",tt({},Cx,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:`0 0 ${this._width} ${this._height}`}));const n=this._bgcolor;return n&&"transparent"!==n&&"none"!==n&&t.open("rect",{width:this._width,height:this._height,fill:n}).close(),t.open("g",__,{transform:"translate("+this._origin+")"}),this.mark(t,e),t.close(),this.defs(t),this._text=t.close()+"",this},mark(e,t){const n=hw[t.marktype],i=n.tag,r=[d_,n.attr];e.open("g",{class:Aw(t),"clip-path":t.clip?gb(this,t,t.group):null},h_(t),{"pointer-events":"g"!==i&&!1===t.interactive?"none":null});const o=o=>{const a=this.href(o);if(a&&e.open("a",a),e.open(i,this.attr(t,o,r,"g"!==i?i:null)),"text"===i){const t=tw(o);if(xe(t)){const n={x:0,dy:ew(o)};for(let i=0;ithis.mark(e,t))),e.close(),i&&a?(r&&(o.fill=null),o.stroke=a,e.open("path",this.attr(t,o,n.foreground,"bgrect")).close(),r&&(o.fill=r)):e.open("path",this.attr(t,o,n.foreground,"bgfore")).close()}e.close(),a&&e.close()};return n.nested?t.items&&t.items.length&&o(t.items[0]):sx(t,o),e.close()},href(e){const t=e.href;let n;if(t){if(n=this._hrefs&&this._hrefs[t])return n;this.sanitizeURL(t).then((e=>{e["xlink:href"]=e.href,e.href=null,(this._hrefs||(this._hrefs={}))[t]=e}))}return null},attr(e,t,n,i){const r={},o=(e,t,n,i)=>{r[i||e]=t};return Array.isArray(n)?n.forEach((e=>e(o,t,this))):n(o,t,this),i&&function(e,t,n,i,r){let o;if(null==t)return e;if("bgrect"===i&&!1===n.interactive&&(e["pointer-events"]="none"),"bgfore"===i&&(!1===n.interactive&&(e["pointer-events"]="none"),e.display="none",null!==t.fill))return e;"image"===i&&!1===t.smooth&&(o=["image-rendering: optimizeSpeed;","image-rendering: pixelated;"]),"text"===i&&(e["font-family"]=rw(t),e["font-size"]=Kx(t)+"px",e["font-style"]=t.fontStyle,e["font-variant"]=t.fontVariant,e["font-weight"]=t.fontWeight);for(const n in x_){let i=t[n];const o=x_[n];("transparent"!==i||"fill"!==o&&"stroke"!==o)&&null!=i&&(yv(i)&&(i=vv(i,r.gradient,"")),e[o]=i)}for(const e in w_){const n=t[e];null!=n&&(o=o||[],o.push(`${w_[e]}: ${n};`))}o&&(e.style=o.join(" "))}(r,t,e,i,this._defs),r},defs(e){const t=this._defs.gradient,n=this._defs.clipping;if(0!==Object.keys(t).length+Object.keys(n).length){e.open("defs");for(const n in t){const i=t[n],r=i.stops;"radial"===i.gradient?(e.open("pattern",{id:mv+n,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),e.open("rect",{width:"1",height:"1",fill:"url(#"+n+")"}).close(),e.close(),e.open("radialGradient",{id:n,fx:i.x1,fy:i.y1,fr:i.r1,cx:i.x2,cy:i.y2,r:i.r2})):e.open("linearGradient",{id:n,x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2});for(let t=0;t1?(U_[e]=t,this):U_[e]}function q_(e,t,n){const i=[],r=(new mb).union(t),o=e.marktype;return o?W_(e,r,n,i):"group"===o?H_(e,r,n,i):re("Intersect scene must be mark node or group item.")}function W_(e,t,n,i){if(function(e,t,n){return e.bounds&&t.intersects(e.bounds)&&("group"===e.marktype||!1!==e.interactive&&(!n||n(e)))}(e,t,n)){const r=e.items,o=e.marktype,a=r.length;let s=0;if("group"===o)for(;s=0;i--)if(r[i]!=o[i])return!1;for(i=r.length-1;i>=0;i--)if(!X_(e[n=r[i]],t[n],n))return!1;return typeof e==typeof t}(e,t):e==t)}function J_(e,t){return X_(Sv(e),Sv(t))}function Q_(){pb(),gv=0}const Z_="top",K_="left",eO="right",tO="bottom",nO="start",iO="middle",rO="end",oO="group",aO="axis",sO="title",lO="legend",uO="row-header",cO="row-footer",fO="row-title",dO="column-header",hO="column-footer",pO="column-title",gO="fit-x",mO="fit-y",yO="none",vO="all",bO="each",xO="flush",wO="column",_O="row";function OO(e){$s.call(this,null,e)}function kO(e,t,n){return t(e.bounds.clear(),e,n)}ut(OO,$s,{transform(e,t){const n=t.dataflow,i=e.mark,r=i.marktype,o=hw[r],a=o.bound;let s,l=i.bounds;if(o.nested)i.items.length&&n.dirty(i.items[0]),l=kO(i,a),i.items.forEach((e=>{e.bounds.clear().union(l)}));else if(r===oO||e.modified())switch(t.visit(t.MOD,(e=>n.dirty(e))),l.clear(),i.items.forEach((e=>l.union(kO(e,a)))),i.role){case aO:case lO:case sO:t.reflow()}else s=t.changed(t.REM),t.visit(t.ADD,(e=>{l.union(kO(e,a))})),t.visit(t.MOD,(e=>{s=s||l.alignsWith(e.bounds),n.dirty(e),l.union(kO(e,a))})),s&&(l.clear(),i.items.forEach((e=>l.union(e.bounds))));return V_(i),t.modifies("bounds")}});const EO=":vega_identifier:";function DO(e){$s.call(this,0,e)}function AO(e){$s.call(this,null,e)}function SO(e){$s.call(this,null,e)}DO.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]},ut(DO,$s,{transform(e,t){const n=(r=t.dataflow)._signals[EO]||(r._signals[EO]=r.add(0)),i=e.as;var r;let o=n.value;return t.visit(t.ADD,(e=>e[i]=e[i]||++o)),n.set(this.value=o),t}}),ut(AO,$s,{transform(e,t){let n=this.value;n||(n=t.dataflow.scenegraph().mark(e.markdef,function(e){const t=e.groups,n=e.parent;return t&&1===t.size?t.get(Object.keys(t.object)[0]):t&&n?t.lookup(n):null}(e),e.index),n.group.context=e.context,e.context.group||(e.context.group=n.group),n.source=this.source,n.clip=e.clip,n.interactive=e.interactive,this.value=n);const i=n.marktype===oO?vb:yb;return t.visit(t.ADD,(e=>i.call(e,n))),(e.modified("clip")||e.modified("interactive"))&&(n.clip=e.clip,n.interactive=!!e.interactive,n.zdirty=!0,t.reflow()),n.items=t.source,t}});const MO={parity:e=>e.filter(((e,t)=>t%2?e.opacity=0:1)),greedy:(e,t)=>{let n;return e.filter(((e,i)=>i&&CO(n.bounds,e.bounds,t)?e.opacity=0:(n=e,1)))}},CO=(e,t,n)=>n>Math.max(t.x1-e.x2,e.x1-t.x2,t.y1-e.y2,e.y1-t.y2),FO=(e,t)=>{for(var n,i=1,r=e.length,o=e[0].bounds;i{const t=e.bounds;return t.width()>1&&t.height()>1},$O=e=>(e.forEach((e=>e.opacity=1)),e),TO=(e,t)=>e.reflow(t.modified()).modifies("opacity");function NO(e){$s.call(this,null,e)}ut(SO,$s,{transform(e,t){const n=MO[e.method]||MO.parity,i=e.separation||0;let r,o,a=t.materialize(t.SOURCE).source;if(!a||!a.length)return;if(!e.method)return e.modified("method")&&($O(a),t=TO(t,e)),t;if(a=a.filter(jO),!a.length)return;if(e.sort&&(a=a.slice().sort(e.sort)),r=$O(a),t=TO(t,e),r.length>=3&&FO(r,i)){do{r=n(r,i)}while(r.length>=3&&FO(r,i));r.length<3&&!De(a).opacity&&(r.length>1&&(De(r).opacity=0),De(a).opacity=1)}e.boundScale&&e.boundTolerance>=0&&(o=((e,t,n)=>{var i=e.range(),r=new mb;return t===Z_||t===tO?r.set(i[0],-1/0,i[1],1/0):r.set(-1/0,i[0],1/0,i[1]),r.expand(n||1),e=>r.encloses(e.bounds)})(e.boundScale,e.boundOrient,+e.boundTolerance),a.forEach((e=>{o(e)||(e.opacity=0)})));const s=r[0].mark.bounds.clear();return a.forEach((e=>{e.opacity&&s.union(e.bounds)})),t}}),ut(NO,$s,{transform(e,t){const n=t.dataflow;if(t.visit(t.ALL,(e=>n.dirty(e))),t.fields&&t.fields.zindex){const e=t.source&&t.source[0];e&&(e.mark.zdirty=!0)}}});const zO=new mb;function PO(e,t,n){return e[t]===n?0:(e[t]=n,1)}function RO(e){var t=e.items[0].orient;return t===K_||t===eO}function LO(e,t,n,i){var r,o,a=t.items[0],s=a.datum,l=null!=a.translate?a.translate:.5,u=a.orient,c=function(e){let t=+e.grid;return[e.ticks?t++:-1,e.labels?t++:-1,t+ +e.domain]}(s),f=a.range,d=a.offset,h=a.position,p=a.minExtent,g=a.maxExtent,m=s.title&&a.items[c[2]].items[0],y=a.titlePadding,v=a.bounds,b=m&&nw(m),x=0,w=0;switch(zO.clear().union(v),v.clear(),(r=c[0])>-1&&v.union(a.items[r].bounds),(r=c[1])>-1&&v.union(a.items[r].bounds),u){case Z_:x=h||0,w=-d,o=Math.max(p,Math.min(g,-v.y1)),v.add(0,-o).add(f,0),m&&BO(e,m,o,y,b,0,-1,v);break;case K_:x=-d,w=h||0,o=Math.max(p,Math.min(g,-v.x1)),v.add(-o,0).add(0,f),m&&BO(e,m,o,y,b,1,-1,v);break;case eO:x=n+d,w=h||0,o=Math.max(p,Math.min(g,v.x2)),v.add(0,0).add(o,f),m&&BO(e,m,o,y,b,1,1,v);break;case tO:x=h||0,w=i+d,o=Math.max(p,Math.min(g,v.y2)),v.add(0,0).add(f,o),m&&BO(e,m,o,y,0,0,1,v);break;default:x=a.x,w=a.y}return _b(v.translate(x,w),a),PO(a,"x",x+l)|PO(a,"y",w+l)&&(a.bounds=zO,e.dirty(a),a.bounds=v,e.dirty(a)),a.mark.bounds.clear().union(v)}function BO(e,t,n,i,r,o,a,s){const l=t.bounds;if(t.auto){const s=a*(n+r+i);let u=0,c=0;e.dirty(t),o?u=(t.x||0)-(t.x=s):c=(t.y||0)-(t.y=s),t.mark.bounds.clear().union(l.translate(-u,-c)),e.dirty(t)}s.union(l)}const UO=(e,t)=>Math.floor(Math.min(e,t)),IO=(e,t)=>Math.ceil(Math.max(e,t));function qO(e){return(new mb).set(0,0,e.width||0,e.height||0)}function WO(e){const t=e.bounds.clone();return t.empty()?t.set(0,0,0,0):t.translate(-(e.x||0),-(e.y||0))}function HO(e,t,n){const i=we(e)?e[t]:e;return null!=i?i:void 0!==n?n:0}function YO(e){return e<0?Math.ceil(-e):0}function GO(e,t,n){var i,r,o,a,s,l,u,c,f,d,h,p=!n.nodirty,g=n.bounds===xO?qO:WO,m=zO.set(0,0,0,0),y=HO(n.align,wO),v=HO(n.align,_O),b=HO(n.padding,wO),x=HO(n.padding,_O),w=n.columns||t.length,_=w<=0?1:Math.ceil(t.length/w),O=t.length,k=Array(O),E=Array(w),D=0,A=Array(O),S=Array(_),M=0,C=Array(O),F=Array(O),j=Array(O);for(r=0;r1)for(r=0;r0&&(C[r]+=f/2);if(v&&HO(n.center,_O)&&1!==w)for(r=0;r0&&(F[r]+=d/2);for(r=0;rr&&(e.warn("Grid headers exceed limit: "+r),t=t.slice(0,r)),k+=o,g=0,y=t.length;g=0&&null==(x=n[m]);m-=d);s?(w=null==h?x.x:Math.round(x.bounds.x1+h*x.bounds.width()),_=k):(w=k,_=null==h?x.y:Math.round(x.bounds.y1+h*x.bounds.height())),v.union(b.bounds.translate(w-(b.x||0),_-(b.y||0))),b.x=w,b.y=_,e.dirty(b),E=a(E,v[u])}return E}function QO(e,t,n,i,r,o){if(t){e.dirty(t);var a=n,s=n;i?a=Math.round(r.x1+o*r.width()):s=Math.round(r.y1+o*r.height()),t.bounds.translate(a-(t.x||0),s-(t.y||0)),t.mark.bounds.clear().union(t.bounds),t.x=a,t.y=s,e.dirty(t)}}function ZO(e,t,n,i,r,o,a){const s=function(e,t){const n=e[t]||{};return(t,i)=>null!=n[t]?n[t]:null!=e[t]?e[t]:i}(n,t),l=function(e,t){let n=-1/0;return e.forEach((e=>{null!=e.offset&&(n=Math.max(n,e.offset))})),n>-1/0?n:t}(e,s("offset",0)),u=s("anchor",nO),c=u===rO?1:u===iO?.5:0,f={align:bO,bounds:s("bounds",xO),columns:"vertical"===s("direction")?1:e.length,padding:s("margin",8),center:s("center"),nodirty:!0};switch(t){case K_:f.anchor={x:Math.floor(i.x1)-l,column:rO,y:c*(a||i.height()+2*i.y1),row:u};break;case eO:f.anchor={x:Math.ceil(i.x2)+l,y:c*(a||i.height()+2*i.y1),row:u};break;case Z_:f.anchor={y:Math.floor(r.y1)-l,row:rO,x:c*(o||r.width()+2*r.x1),column:u};break;case tO:f.anchor={y:Math.ceil(r.y2)+l,x:c*(o||r.width()+2*r.x1),column:u};break;case"top-left":f.anchor={x:l,y:l};break;case"top-right":f.anchor={x:o-l,y:l,column:rO};break;case"bottom-left":f.anchor={x:l,y:a-l,row:rO};break;case"bottom-right":f.anchor={x:o-l,y:a-l,column:rO,row:rO}}return f}function KO(e,t){var n,i,r=t.items[0],o=r.datum,a=r.orient,s=r.bounds,l=r.x,u=r.y;return r._bounds?r._bounds.clear().union(s):r._bounds=s.clone(),s.clear(),function(e,t,n){var i=t.padding,r=i-n.x,o=i-n.y;if(t.datum.title){var a=t.items[1].items[0],s=a.anchor,l=t.titlePadding||0,u=i-a.x,c=i-a.y;switch(a.orient){case K_:r+=Math.ceil(a.bounds.width())+l;break;case eO:case tO:break;default:o+=a.bounds.height()+l}switch((r||o)&&tk(e,n,r,o),a.orient){case K_:c+=ek(t,n,a,s,1,1);break;case eO:u+=ek(t,n,a,rO,0,0)+l,c+=ek(t,n,a,s,1,1);break;case tO:u+=ek(t,n,a,s,0,0),c+=ek(t,n,a,rO,-1,0,1)+l;break;default:u+=ek(t,n,a,s,0,0)}(u||c)&&tk(e,a,u,c),(u=Math.round(a.bounds.x1-i))<0&&(tk(e,n,-u,0),tk(e,a,-u,0))}else(r||o)&&tk(e,n,r,o)}(e,r,r.items[0].items[0]),s=function(e,t){return e.items.forEach((e=>t.union(e.bounds))),t.x1=e.padding,t.y1=e.padding,t}(r,s),n=2*r.padding,i=2*r.padding,s.empty()||(n=Math.ceil(s.width()+n),i=Math.ceil(s.height()+i)),"symbol"===o.type&&function(e){const t=e.reduce(((e,t)=>(e[t.column]=Math.max(t.bounds.x2-t.x,e[t.column]||0),e)),{});e.forEach((e=>{e.width=t[e.column],e.height=e.bounds.y2-e.y}))}(r.items[0].items[0].items[0].items),a!==yO&&(r.x=l=0,r.y=u=0),r.width=n,r.height=i,_b(s.set(l,u,l+n,u+i),r),r.mark.bounds.clear().union(s),r}function ek(e,t,n,i,r,o,a){const s="symbol"!==e.datum.type,l=n.datum.vgrad,u=(!s||!o&&l||a?t:t.items[0]).bounds[r?"y2":"x2"]-e.padding,c=l&&o?u:0,f=l&&o?0:u,d=r<=0?0:nw(n);return Math.round(i===nO?c:i===rO?f-d:.5*(u-d))}function tk(e,t,n,i){t.x+=n,t.y+=i,t.bounds.translate(n,i),t.mark.bounds.translate(n,i),e.dirty(t)}function nk(e){$s.call(this,null,e)}function ik(e,t){let n=0;if(void 0===t)for(let t of e)(t=+t)&&(n+=t);else{let i=-1;for(let r of e)(r=+t(r,++i,e))&&(n+=r)}return n}function rk(e){$s.call(this,null,e)}function ok(e){$s.call(this,null,e)}function ak(){return is({})}function sk(e){$s.call(this,null,e)}function lk(e){$s.call(this,[],e)}ut(nk,$s,{transform(e,t){const n=t.dataflow;return e.mark.items.forEach((t=>{e.layout&&function(e,t,n){var i,r,o,a,s,l,u,c=function(e){var t,n,i=e.items,r=i.length,o=0;const a={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;o{(o=e.orient||eO)!==yO&&(t[o]||(t[o]=[])).push(e)}));for(const i in t){const r=t[i];GO(e,r,ZO(r,i,n.legends,d,h,u,c))}p.forEach((t=>{const i=t.bounds;if(i.equals(t._bounds)||(t.bounds=t._bounds,e.dirty(t),t.bounds=i,e.dirty(t)),!n.autosize||"fit"!==n.autosize.type&&n.autosize.type!==gO&&n.autosize.type!==mO)f.union(i);else switch(t.orient){case K_:case eO:f.add(i.x1,0).add(i.x2,0);break;case Z_:case tO:f.add(0,i.y1).add(0,i.y2)}}))}f.union(d).union(h),i&&f.union(function(e,t,n,i,r){var o,a=t.items[0],s=a.frame,l=a.orient,u=a.anchor,c=a.offset,f=a.padding,d=a.items[0].items[0],h=a.items[1]&&a.items[1].items[0],p=l===K_||l===eO?i:n,g=0,m=0,y=0,v=0,b=0;if(s!==oO?l===K_?(g=r.y2,p=r.y1):l===eO?(g=r.y1,p=r.y2):(g=r.x1,p=r.x2):l===K_&&(g=i,p=0),o=u===nO?g:u===rO?p:(g+p)/2,h&&h.text){switch(l){case Z_:case tO:b=d.bounds.height()+f;break;case K_:v=d.bounds.width()+f;break;case eO:v=-d.bounds.width()-f}zO.clear().union(h.bounds),zO.translate(v-(h.x||0),b-(h.y||0)),PO(h,"x",v)|PO(h,"y",b)&&(e.dirty(h),h.bounds.clear().union(zO),h.mark.bounds.clear().union(zO),e.dirty(h)),zO.clear().union(h.bounds)}else zO.clear();switch(zO.union(d.bounds),l){case Z_:m=o,y=r.y1-zO.height()-c;break;case K_:m=r.x1-zO.width()-c,y=o;break;case eO:m=r.x2+zO.width()+c,y=o;break;case tO:m=o,y=r.y2+c;break;default:m=a.x,y=a.y}return PO(a,"x",m)|PO(a,"y",y)&&(zO.translate(m,y),e.dirty(a),a.bounds.clear().union(zO),t.bounds.clear().union(zO),e.dirty(a)),a.bounds}(e,i,u,c,f)),t.clip&&f.set(0,0,t.width||0,t.height||0),function(e,t,n,i){const r=i.autosize||{},o=r.type;if(e._autosize<1||!o)return;let a=e._width,s=e._height,l=Math.max(0,t.width||0),u=Math.max(0,Math.ceil(-n.x1)),c=Math.max(0,t.height||0),f=Math.max(0,Math.ceil(-n.y1));const d=Math.max(0,Math.ceil(n.x2-l)),h=Math.max(0,Math.ceil(n.y2-c));if("padding"===r.contains){const t=e.padding();a-=t.left+t.right,s-=t.top+t.bottom}o===yO?(u=0,f=0,l=a,c=s):"fit"===o?(l=Math.max(0,a-u-d),c=Math.max(0,s-f-h)):o===gO?(l=Math.max(0,a-u-d),s=c+f+h):o===mO?(a=l+u+d,c=Math.max(0,s-f-h)):"pad"===o&&(a=l+u+d,s=c+f+h),e._resizeView(a,s,l,c,[u,f],r.resize)}(e,t,f,n)}(n,t,e)})),function(e){return e&&"legend-entry"!==e.mark.role}(e.mark.group)?t.reflow():t}}),ut(rk,$s,{transform(e,t){if(this.value&&!e.modified())return t.StopPropagation;var n=t.dataflow.locale(),i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=this.value,o=e.scale,a=ev(o,null==e.count?e.values?e.values.length:10:e.count,e.minstep),s=e.format||iv(n,o,a,e.formatSpecifier,e.formatType,!!e.values),l=e.values?tv(o,e.values,a):nv(o,a);return r&&(i.rem=r),r=l.map(((e,t)=>is({index:t/(l.length-1||1),value:e,label:s(e)}))),e.extra&&r.length&&r.push(is({index:-1,extra:{value:r[0].value},label:""})),i.source=r,i.add=r,this.value=r,i}}),ut(ok,$s,{transform(e,t){var n=t.dataflow,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=e.item||ak,o=e.key||ts,a=this.value;return xe(i.encode)&&(i.encode=null),a&&(e.modified("key")||t.modified(o))&&re("DataJoin does not support modified key function or fields."),a||(t=t.addAll(),this.value=a=function(e){const t=st().test((e=>e.exit));return t.lookup=n=>t.get(e(n)),t}(o)),t.visit(t.ADD,(e=>{const t=o(e);let n=a.get(t);n?n.exit?(a.empty--,i.add.push(n)):i.mod.push(n):(n=r(e),a.set(t,n),i.add.push(n)),n.datum=e,n.exit=!1})),t.visit(t.MOD,(e=>{const t=o(e),n=a.get(t);n&&(n.datum=e,i.mod.push(n))})),t.visit(t.REM,(e=>{const t=o(e),n=a.get(t);e!==n.datum||n.exit||(i.rem.push(n),n.exit=!0,++a.empty)})),t.changed(t.ADD_MOD)&&i.modifies("datum"),(t.clean()||e.clean&&a.empty>n.cleanThreshold)&&n.runAfter(a.clean),i}}),ut(sk,$s,{transform(e,t){var n=t.fork(t.ADD_REM),i=e.mod||!1,r=e.encoders,o=t.encode;if(xe(o)){if(!n.changed()&&!o.every((e=>r[e])))return t.StopPropagation;o=o[0],n.encode=null}var a="enter"===o,s=r.update||de,l=r.enter||de,u=r.exit||de,c=(o&&!a?r[o]:s)||de;if(t.changed(t.ADD)&&(t.visit(t.ADD,(t=>{l(t,e),s(t,e)})),n.modifies(l.output),n.modifies(s.output),c!==de&&c!==s&&(t.visit(t.ADD,(t=>{c(t,e)})),n.modifies(c.output))),t.changed(t.REM)&&u!==de&&(t.visit(t.REM,(t=>{u(t,e)})),n.modifies(u.output)),a||c!==de){const r=t.MOD|(e.modified()?t.REFLOW:0);a?(t.visit(r,(t=>{const r=l(t,e)||i;(c(t,e)||r)&&n.mod.push(t)})),n.mod.length&&n.modifies(l.output)):t.visit(r,(t=>{(c(t,e)||i)&&n.mod.push(t)})),n.mod.length&&n.modifies(c.output)}return n.changed()?n:t.StopPropagation}}),ut(lk,$s,{transform(e,t){if(null!=this.value&&!e.modified())return t.StopPropagation;var n,i,r,o,a,s=t.dataflow.locale(),l=t.fork(t.NO_SOURCE|t.NO_FIELDS),u=this.value,c=e.type||Jy,f=e.scale,d=+e.limit,h=ev(f,null==e.count?5:e.count,e.minstep),p=!!e.values||c===Jy,g=e.format||lv(s,f,h,c,e.formatSpecifier,e.formatType,p),m=e.values||sv(f,h);return u&&(l.rem=u),c===Jy?(d&&m.length>d?(t.dataflow.warn("Symbol legend count exceeds limit, filtering items."),u=m.slice(0,d-1),a=!0):u=m,Ge(r=e.size)?(e.values||0!==f(u[0])||(u=u.slice(1)),o=u.reduce(((t,n)=>Math.max(t,r(n,e))),0)):r=Ke(o=r||8),u=u.map(((t,n)=>is({index:n,label:g(t,n,u),value:t,offset:o,size:r(t,e)}))),a&&(a=m[u.length],u.push(is({index:u.length,label:`…${m.length-u.length} entries`,value:a,offset:o,size:r(a,e)})))):"gradient"===c?(n=f.domain(),i=Wy(f,n[0],De(n)),m.length<3&&!e.values&&n[0]!==De(n)&&(m=[n[0],De(n)]),u=m.map(((e,t)=>is({index:t,label:g(e,t,m),value:e,perc:i(e)})))):(r=m.length-1,i=function(e){const t=e.domain(),n=t.length-1;let i=+t[0],r=+De(t),o=r-i;if(e.type===dy){const e=n?o/n:.1;i-=e,r+=e,o=r-i}return e=>(e-i)/o}(f),u=m.map(((e,t)=>is({index:t,label:g(e,t,m),value:e,perc:t?i(e):0,perc2:t===r?1:i(m[t+1])})))),l.source=u,l.add=u,this.value=u,l}});const uk=e=>e.source.x,ck=e=>e.source.y,fk=e=>e.target.x,dk=e=>e.target.y;function hk(e){$s.call(this,{},e)}hk.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"}]},ut(hk,$s,{transform(e,t){var n=e.sourceX||uk,i=e.sourceY||ck,r=e.targetX||fk,o=e.targetY||dk,a=e.as||"path",s=e.orient||"vertical",l=e.shape||"line",u=yk.get(l+"-"+s)||yk.get(l);return u||re("LinkPath unsupported type: "+e.shape+(e.orient?"-"+e.orient:"")),t.visit(t.SOURCE,(e=>{e[a]=u(n(e),i(e),r(e),o(e))})),t.reflow(e.modified()).modifies(a)}});const pk=(e,t,n,i)=>"M"+e+","+t+"L"+n+","+i,gk=(e,t,n,i)=>{var r=n-e,o=i-t,a=Math.sqrt(r*r+o*o)/2;return"M"+e+","+t+"A"+a+","+a+" "+180*Math.atan2(o,r)/Math.PI+" 0 1 "+n+","+i},mk=(e,t,n,i)=>{const r=n-e,o=i-t,a=.2*(r+o),s=.2*(o-r);return"M"+e+","+t+"C"+(e+a)+","+(t+s)+" "+(n+s)+","+(i-a)+" "+n+","+i},yk=st({line:pk,"line-radial":(e,t,n,i)=>pk(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),arc:gk,"arc-radial":(e,t,n,i)=>gk(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),curve:mk,"curve-radial":(e,t,n,i)=>mk(t*Math.cos(e),t*Math.sin(e),i*Math.cos(n),i*Math.sin(n)),"orthogonal-horizontal":(e,t,n,i)=>"M"+e+","+t+"V"+i+"H"+n,"orthogonal-vertical":(e,t,n,i)=>"M"+e+","+t+"H"+n+"V"+i,"orthogonal-radial":(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),a=Math.cos(n),s=Math.sin(n);return"M"+t*r+","+t*o+"A"+t+","+t+" 0 0,"+((Math.abs(n-e)>Math.PI?n<=e:n>e)?1:0)+" "+t*a+","+t*s+"L"+i*a+","+i*s},"diagonal-horizontal":(e,t,n,i)=>{const r=(e+n)/2;return"M"+e+","+t+"C"+r+","+t+" "+r+","+i+" "+n+","+i},"diagonal-vertical":(e,t,n,i)=>{const r=(t+i)/2;return"M"+e+","+t+"C"+e+","+r+" "+n+","+r+" "+n+","+i},"diagonal-radial":(e,t,n,i)=>{const r=Math.cos(e),o=Math.sin(e),a=Math.cos(n),s=Math.sin(n),l=(t+i)/2;return"M"+t*r+","+t*o+"C"+l*r+","+l*o+" "+l*a+","+l*s+" "+i*a+","+i*s}});function vk(e){$s.call(this,null,e)}function bk(e){return Ty(e)&&e!==uy}vk.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"]}]},ut(vk,$s,{transform(e,t){var n,i,r,o=e.as||["startAngle","endAngle"],a=o[0],s=o[1],l=e.field||ce,u=e.startAngle||0,c=null!=e.endAngle?e.endAngle:2*Math.PI,f=t.source,d=f.map(l),h=d.length,p=u,g=(c-u)/ik(d),m=Bl(h);for(e.sort&&m.sort(((e,t)=>d[e]-d[t])),n=0;ne+(t<0?-1:t>0?1:0)),0))!==t.length&&n.warn("Log scale domain includes zero: "+kt(t)));return t}function Ok(e,t,n){return Ge(e)&&(t||n)?Uy(e,kk(t||[0,1],n)):e}function kk(e,t){return t?e.slice().reverse():e}function Ek(e){$s.call(this,null,e)}ut(wk,$s,{transform(e,t){var n=t.dataflow,i=this.value,r=function(e){var t,n=e.type,i="";return n===uy?"sequential-linear":(function(e){const t=e.type;return Ty(t)&&t!==sy&&t!==ly&&(e.scheme||e.range&&e.range.length&&e.range.every(mt))}(e)&&(i=2===(t=e.rawDomain?e.rawDomain.length:e.domain?e.domain.length+ +(null!=e.domainMid):0)?"sequential-":3===t?"diverging-":""),(i+n||ny).toLowerCase())}(e);for(r in i&&r===i.type||(this.value=i=Fy(r)()),e)if(!xk[r]){if("padding"===r&&bk(i.type))continue;Ge(i[r])?i[r](e[r]):n.warn("Unsupported scale property: "+r)}return function(e,t,n){var i=e.type,r=t.round||!1,o=t.range;if(null!=t.rangeStep)o=function(e,t,n){e!==gy&&e!==py&&re("Only band and point scales support rangeStep.");var i=(null!=t.paddingOuter?t.paddingOuter:t.padding)||0,r=e===py?1:(null!=t.paddingInner?t.paddingInner:t.padding)||0;return[0,t.rangeStep*ty(n,r,i)]}(i,t,n);else if(t.scheme&&(o=function(e,t,n){var i,r=t.schemeExtent;return xe(t.scheme)?i=Iy(t.scheme,t.interpolate,t.interpolateGamma):(i=Xy(t.scheme.toLowerCase()))||re(`Unrecognized scheme name: ${t.scheme}`),n=e===dy?n+1:e===my?n-1:e===cy||e===fy?+t.schemeCount||5:n,Ry(e)?Ok(i,r,t.reverse):Ge(i)?qy(Ok(i,r),n):e===hy?i:i.slice(0,n)}(i,t,n),Ge(o))){if(e.interpolator)return e.interpolator(o);re(`Scale type ${i} does not support interpolating color schemes.`)}if(o&&Ry(i))return e.interpolator(Iy(kk(o,t.reverse),t.interpolate,t.interpolateGamma));o&&t.interpolate&&e.interpolate?e.interpolate(Hy(t.interpolate,t.interpolateGamma)):Ge(e.round)?e.round(r):Ge(e.rangeRound)&&e.interpolate(r?Rd:Pd),o&&e.range(kk(o,t.reverse))}(i,e,function(e,t,n){let i=t.bins;if(i&&!xe(i)){const t=e.domain(),n=t[0],r=De(t),o=i.step;let a=null==i.start?n:i.start,s=null==i.stop?r:i.stop;o||re("Scale bins parameter missing step property."),ar&&(s=o*Math.floor(r/o)),i=Bl(a,s+o/2,o)}return i?e.bins=i:e.bins&&delete e.bins,e.type===my&&(i?t.domain||t.domainRaw||(e.domain(i),n=i.length):e.bins=e.domain()),n}(i,e,function(e,t,n){const i=function(e,t,n){return t?(e.domain(_k(e.type,t,n)),t.length):-1}(e,t.domainRaw,n);if(i>-1)return i;var r,o,a=t.domain,s=e.type,l=t.zero||void 0===t.zero&&function(e){const t=e.type;return!e.bins&&(t===ny||t===ry||t===oy)}(e);if(!a)return 0;if(bk(s)&&t.padding&&a[0]!==De(a)&&(a=function(e,t,n,i,r,o){var a=Math.abs(De(n)-n[0]),s=a/(a-2*i),l=e===iy?Be(t,null,s):e===oy?Ue(t,null,s,.5):e===ry?Ue(t,null,s,r||1):e===ay?Ie(t,null,s,o||1):Le(t,null,s);return(t=t.slice())[0]=l[0],t[t.length-1]=l[1],t}(s,a,t.range,t.padding,t.exponent,t.constant)),(l||null!=t.domainMin||null!=t.domainMax||null!=t.domainMid)&&(r=(a=a.slice()).length-1||1,l&&(a[0]>0&&(a[0]=0),a[r]<0&&(a[r]=0)),null!=t.domainMin&&(a[0]=t.domainMin),null!=t.domainMax&&(a[r]=t.domainMax),null!=t.domainMid)){const e=(o=t.domainMid)>a[r]?r+1:oe(l);if(null==t)h.push(e.slice());else for(r={},o=0,a=e.length;od&&(d=f),n&&c.sort(n)}return h.max=d,h}(t.source,e.groupby,u,c),i=0,r=n.length,o=n.max;ie;function Nk(e,t){e&&Pk.hasOwnProperty(e.type)&&Pk[e.type](e,t)}var zk={Feature:function(e,t){Nk(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,i=-1,r=n.length;++i0){for(o=e[--r];r>0&&(t=o,n=e[--r],o=t+n,i=n-(o-t),!i););r>0&&(i<0&&e[r-1]<0||i>0&&e[r-1]>0)&&(n=2*i,t=o+n,n==t-o&&(o=t))}return o}}var Ik=1e-6,qk=1e-12,Wk=Math.PI,Hk=Wk/2,Yk=Wk/4,Gk=2*Wk,Vk=180/Wk,Xk=Wk/180,Jk=Math.abs,Qk=Math.atan,Zk=Math.atan2,Kk=Math.cos,eE=Math.ceil,tE=Math.exp,nE=(Math.floor,Math.hypot),iE=Math.log,rE=Math.pow,oE=Math.sin,aE=Math.sign||function(e){return e>0?1:e<0?-1:0},sE=Math.sqrt,lE=Math.tan;function uE(e){return e>1?0:e<-1?Wk:Math.acos(e)}function cE(e){return e>1?Hk:e<-1?-Hk:Math.asin(e)}function fE(){}var dE,hE,pE,gE,mE=new Uk,yE=new Uk,vE={point:fE,lineStart:fE,lineEnd:fE,polygonStart:function(){vE.lineStart=bE,vE.lineEnd=_E},polygonEnd:function(){vE.lineStart=vE.lineEnd=vE.point=fE,mE.add(Jk(yE)),yE=new Uk},result:function(){var e=mE/2;return mE=new Uk,e}};function bE(){vE.point=xE}function xE(e,t){vE.point=wE,dE=pE=e,hE=gE=t}function wE(e,t){yE.add(gE*e-pE*t),pE=e,gE=t}function _E(){wE(dE,hE)}const OE=vE;var kE=1/0,EE=kE,DE=-kE,AE=DE,SE={point:function(e,t){eDE&&(DE=e),tAE&&(AE=t)},lineStart:fE,lineEnd:fE,polygonStart:fE,polygonEnd:fE,result:function(){var e=[[kE,EE],[DE,AE]];return DE=AE=-(EE=kE=1/0),e}};const ME=SE;var CE,FE,jE,$E,TE=0,NE=0,zE=0,PE=0,RE=0,LE=0,BE=0,UE=0,IE=0,qE={point:WE,lineStart:HE,lineEnd:VE,polygonStart:function(){qE.lineStart=XE,qE.lineEnd=JE},polygonEnd:function(){qE.point=WE,qE.lineStart=HE,qE.lineEnd=VE},result:function(){var e=IE?[BE/IE,UE/IE]:LE?[PE/LE,RE/LE]:zE?[TE/zE,NE/zE]:[NaN,NaN];return TE=NE=zE=PE=RE=LE=BE=UE=IE=0,e}};function WE(e,t){TE+=e,NE+=t,++zE}function HE(){qE.point=YE}function YE(e,t){qE.point=GE,WE(jE=e,$E=t)}function GE(e,t){var n=e-jE,i=t-$E,r=sE(n*n+i*i);PE+=r*(jE+e)/2,RE+=r*($E+t)/2,LE+=r,WE(jE=e,$E=t)}function VE(){qE.point=WE}function XE(){qE.point=QE}function JE(){ZE(CE,FE)}function QE(e,t){qE.point=ZE,WE(CE=jE=e,FE=$E=t)}function ZE(e,t){var n=e-jE,i=t-$E,r=sE(n*n+i*i);PE+=r*(jE+e)/2,RE+=r*($E+t)/2,LE+=r,BE+=(r=$E*e-jE*t)*(jE+e),UE+=r*($E+t),IE+=3*r,WE(jE=e,$E=t)}const KE=qE;function eD(e){this._context=e}eD.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,Gk)}},result:fE};var tD,nD,iD,rD,oD,aD=new Uk,sD={point:fE,lineStart:function(){sD.point=lD},lineEnd:function(){tD&&uD(nD,iD),sD.point=fE},polygonStart:function(){tD=!0},polygonEnd:function(){tD=null},result:function(){var e=+aD;return aD=new Uk,e}};function lD(e,t){sD.point=uD,nD=rD=e,iD=oD=t}function uD(e,t){rD-=e,oD-=t,aD.add(sE(rD*rD+oD*oD)),rD=e,oD=t}const cD=sD;let fD,dD,hD,pD;class gD{constructor(e){this._append=null==e?mD:function(e){const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return mD;if(t!==fD){const e=10**t;fD=t,dD=function(t){let n=1;this._+=t[0];for(const i=t.length;n=0))throw new RangeError(`invalid digits: ${e}`);r=t}return null===t&&(i=new gD(r)),a},a.projection(e).digits(r).context(t)}function vD(){var e,t=[];return{point:function(t,n,i){e.push([t,n,i])},lineStart:function(){t.push(e=[])},lineEnd:fE,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function bD(e,t){return Jk(e[0]-t[0])=0;--o)r.point((c=u[o])[0],c[1]);else i(d.x,d.p.x,-1,r);d=d.p}u=(d=d.o).z,h=!h}while(!d.v);r.lineEnd()}}}function _D(e){if(t=e.length){for(var t,n,i=0,r=e[0];++i=0?1:-1,D=E*k,A=D>Wk,S=m*_;if(l.add(Zk(S*E*oE(D),y*O+S*Kk(D))),a+=A?k+E*Gk:k,A^p>=n^x>=n){var M=DD(kD(h),kD(b));MD(M);var C=DD(o,M);MD(C);var F=(A^k>=0?-1:1)*cE(C[2]);(i>F||i===F&&(M[0]||M[1]))&&(s+=A^k>=0?1:-1)}}return(a<-1e-6||a0){for(f||(r.polygonStart(),f=!0),r.lineStart(),e=0;e1&&2&l&&d.push(d.pop().concat(d.shift())),a.push(d.filter($D))}return d}}function $D(e){return e.length>1}function TD(e,t){return((e=e.x)[0]<0?e[1]-Hk-Ik:Hk-e[1])-((t=t.x)[0]<0?t[1]-Hk-Ik:Hk-t[1])}const ND=jD((function(){return!0}),(function(e){var t,n=NaN,i=NaN,r=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(o,a){var s=o>0?Wk:-Wk,l=Jk(o-n);Jk(l-Wk)0?Hk:-Hk),e.point(r,i),e.lineEnd(),e.lineStart(),e.point(s,i),e.point(o,i),t=0):r!==s&&l>=Wk&&(Jk(n-r)Ik?Qk((oE(t)*(o=Kk(i))*oE(n)-oE(i)*(r=Kk(t))*oE(e))/(r*o*a)):(t+i)/2}(n,i,o,a),e.point(r,i),e.lineEnd(),e.lineStart(),e.point(s,i),t=0),e.point(n=o,i=a),r=s},lineEnd:function(){e.lineEnd(),n=i=NaN},clean:function(){return 2-t}}}),(function(e,t,n,i){var r;if(null==e)r=n*Hk,i.point(-Wk,r),i.point(0,r),i.point(Wk,r),i.point(Wk,0),i.point(Wk,-r),i.point(0,-r),i.point(-Wk,-r),i.point(-Wk,0),i.point(-Wk,r);else if(Jk(e[0]-t[0])>Ik){var o=e[0]0,r=Jk(t)>Ik;function o(e,n){return Kk(e)*Kk(n)>t}function a(e,n,i){var r=[1,0,0],o=DD(kD(e),kD(n)),a=ED(o,o),s=o[0],l=a-s*s;if(!l)return!i&&e;var u=t*a/l,c=-t*s/l,f=DD(r,o),d=SD(r,u);AD(d,SD(o,c));var h=f,p=ED(d,h),g=ED(h,h),m=p*p-g*(ED(d,d)-1);if(!(m<0)){var y=sE(m),v=SD(h,(-p-y)/g);if(AD(v,d),v=OD(v),!i)return v;var b,x=e[0],w=n[0],_=e[1],O=n[1];w0^v[1]<(Jk(v[0]-x)Wk^(x<=v[0]&&v[0]<=w)){var D=SD(h,(-p+y)/g);return AD(D,d),[v,OD(D)]}}}function s(t,n){var r=i?e:Wk-e,o=0;return t<-r?o|=1:t>r&&(o|=2),n<-r?o|=4:n>r&&(o|=8),o}return jD(o,(function(e){var t,n,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(f,d){var h,p=[f,d],g=o(f,d),m=i?g?0:s(f,d):g?s(f+(f<0?Wk:-Wk),d):0;if(!t&&(u=l=g)&&e.lineStart(),g!==l&&(!(h=a(t,p))||bD(t,h)||bD(p,h))&&(p[2]=1),g!==l)c=0,g?(e.lineStart(),h=a(p,t),e.point(h[0],h[1])):(h=a(t,p),e.point(h[0],h[1],2),e.lineEnd()),t=h;else if(r&&t&&i^g){var y;m&n||!(y=a(p,t,!0))||(c=0,i?(e.lineStart(),e.point(y[0][0],y[0][1]),e.point(y[1][0],y[1][1]),e.lineEnd()):(e.point(y[1][0],y[1][1]),e.lineEnd(),e.lineStart(),e.point(y[0][0],y[0][1],3)))}!g||t&&bD(t,p)||e.point(p[0],p[1]),t=p,l=g,n=m},lineEnd:function(){l&&e.lineEnd(),t=null},clean:function(){return c|(u&&l)<<1}}}),(function(t,i,r,o){!function(e,t,n,i,r,o){if(n){var a=Kk(t),s=oE(t),l=i*n;null==r?(r=t+i*Gk,o=t-l/2):(r=zD(a,r),o=zD(a,o),(i>0?ro)&&(r+=i*Gk));for(var u,c=r;i>0?c>o:c0)do{u.point(0===c||3===c?e:n,c>1?i:t)}while((c=(c+s+4)%4)!==f);else u.point(o[0],o[1])}function a(i,r){return Jk(i[0]-e)0?0:3:Jk(i[0]-n)0?2:1:Jk(i[1]-t)0?1:0:r>0?3:2}function s(e,t){return l(e.x,t.x)}function l(e,t){var n=a(e,1),i=a(t,1);return n!==i?n-i:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(a){var l,u,c,f,d,h,p,g,m,y,v,b=a,x=vD(),w={point:_,lineStart:function(){w.point=O,u&&u.push(c=[]),y=!0,m=!1,p=g=NaN},lineEnd:function(){l&&(O(f,d),h&&m&&x.rejoin(),l.push(x.result())),w.point=_,m&&b.lineEnd()},polygonStart:function(){b=x,l=[],u=[],v=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,r=u.length;ni&&(d-o)*(i-a)>(h-a)*(e-o)&&++t:h<=i&&(d-o)*(i-a)<(h-a)*(e-o)&&--t;return t}(),n=v&&t,r=(l=FD(l)).length;(n||r)&&(a.polygonStart(),n&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),r&&wD(l,s,t,o,a),a.polygonEnd()),b=a,l=u=c=null}};function _(e,t){r(e,t)&&b.point(e,t)}function O(o,a){var s=r(o,a);if(u&&c.push([o,a]),y)f=o,d=a,h=s,y=!1,s&&(b.lineStart(),b.point(o,a));else if(s&&m)b.point(o,a);else{var l=[p=Math.max(LD,Math.min(RD,p)),g=Math.max(LD,Math.min(RD,g))],x=[o=Math.max(LD,Math.min(RD,o)),a=Math.max(LD,Math.min(RD,a))];!function(e,t,n,i,r,o){var a,s=e[0],l=e[1],u=0,c=1,f=t[0]-s,d=t[1]-l;if(a=n-s,f||!(a>0)){if(a/=f,f<0){if(a0){if(a>c)return;a>u&&(u=a)}if(a=r-s,f||!(a<0)){if(a/=f,f<0){if(a>c)return;a>u&&(u=a)}else if(f>0){if(a0)){if(a/=d,d<0){if(a0){if(a>c)return;a>u&&(u=a)}if(a=o-l,d||!(a<0)){if(a/=d,d<0){if(a>c)return;a>u&&(u=a)}else if(d>0){if(a0&&(e[0]=s+u*f,e[1]=l+u*d),c<1&&(t[0]=s+c*f,t[1]=l+c*d),!0}}}}}(l,x,e,t,n,i)?s&&(b.lineStart(),b.point(o,a),v=!1):(m||(b.lineStart(),b.point(l[0],l[1])),b.point(x[0],x[1]),s||b.lineEnd(),v=!1)}p=o,g=a,m=s}return w}}function UD(e,t){function n(n,i){return n=e(n,i),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,i){return(n=t.invert(n,i))&&e.invert(n[0],n[1])}),n}function ID(e,t){return Jk(e)>Wk&&(e-=Math.round(e/Gk)*Gk),[e,t]}function qD(e,t,n){return(e%=Gk)?t||n?UD(HD(e),YD(t,n)):HD(e):t||n?YD(t,n):ID}function WD(e){return function(t,n){return Jk(t+=e)>Wk&&(t-=Math.round(t/Gk)*Gk),[t,n]}}function HD(e){var t=WD(e);return t.invert=WD(-e),t}function YD(e,t){var n=Kk(e),i=oE(e),r=Kk(t),o=oE(t);function a(e,t){var a=Kk(t),s=Kk(e)*a,l=oE(e)*a,u=oE(t),c=u*n+s*i;return[Zk(l*r-c*o,s*n-u*i),cE(c*r+l*o)]}return a.invert=function(e,t){var a=Kk(t),s=Kk(e)*a,l=oE(e)*a,u=oE(t),c=u*r-l*o;return[Zk(l*r+u*o,s*n+c*i),cE(c*n-s*i)]},a}function GD(e){return function(t){var n=new VD;for(var i in e)n[i]=e[i];return n.stream=t,n}}function VD(){}function XD(e,t,n){var i=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=i&&e.clipExtent(null),Bk(n,e.stream(ME)),t(ME.result()),null!=i&&e.clipExtent(i),e}function JD(e,t,n){return XD(e,(function(n){var i=t[1][0]-t[0][0],r=t[1][1]-t[0][1],o=Math.min(i/(n[1][0]-n[0][0]),r/(n[1][1]-n[0][1])),a=+t[0][0]+(i-o*(n[1][0]+n[0][0]))/2,s=+t[0][1]+(r-o*(n[1][1]+n[0][1]))/2;e.scale(150*o).translate([a,s])}),n)}function QD(e,t,n){return JD(e,[[0,0],t],n)}function ZD(e,t,n){return XD(e,(function(n){var i=+t,r=i/(n[1][0]-n[0][0]),o=(i-r*(n[1][0]+n[0][0]))/2,a=-r*n[0][1];e.scale(150*r).translate([o,a])}),n)}function KD(e,t,n){return XD(e,(function(n){var i=+t,r=i/(n[1][1]-n[0][1]),o=-r*n[0][0],a=(i-r*(n[1][1]+n[0][1]))/2;e.scale(150*r).translate([o,a])}),n)}ID.invert=ID,VD.prototype={constructor:VD,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var eA=Kk(30*Xk);function tA(e,t){return+t?function(e,t){function n(i,r,o,a,s,l,u,c,f,d,h,p,g,m){var y=u-i,v=c-r,b=y*y+v*v;if(b>4*t&&g--){var x=a+d,w=s+h,_=l+p,O=sE(x*x+w*w+_*_),k=cE(_/=O),E=Jk(Jk(_)-1)t||Jk((y*M+v*C)/b-.5)>.3||a*d+s*h+l*p2?e[2]%360*Xk:0,M()):[m*Vk,y*Vk,v*Vk]},A.angle=function(e){return arguments.length?(b=e%360*Xk,M()):b*Vk},A.reflectX=function(e){return arguments.length?(x=e?-1:1,M()):x<0},A.reflectY=function(e){return arguments.length?(w=e?-1:1,M()):w<0},A.precision=function(e){return arguments.length?(a=tA(s,D=e*e),C()):sE(D)},A.fitExtent=function(e,t){return JD(A,e,t)},A.fitSize=function(e,t){return QD(A,e,t)},A.fitWidth=function(e,t){return ZD(A,e,t)},A.fitHeight=function(e,t){return KD(A,e,t)},function(){return t=e.apply(this,arguments),A.invert=t.invert&&S,M()}}function aA(e){var t=0,n=Wk/3,i=oA(e),r=i(t,n);return r.parallels=function(e){return arguments.length?i(t=e[0]*Xk,n=e[1]*Xk):[t*Vk,n*Vk]},r}function sA(e,t){var n=oE(e),i=(n+oE(t))/2;if(Jk(i)2?e[2]*Xk:0),t.invert=function(t){return(t=e.invert(t[0]*Xk,t[1]*Xk))[0]*=Vk,t[1]*=Vk,t},t}(r.rotate()).invert([0,0]));return l(null==u?[[s[0]-o,s[1]-o],[s[0]+o,s[1]+o]]:e===pA?[[Math.max(s[0]-o,u),t],[Math.min(s[0]+o,n),i]]:[[u,Math.max(s[1]-o,t)],[n,Math.min(s[1]+o,i)]])}return r.scale=function(e){return arguments.length?(a(e),c()):a()},r.translate=function(e){return arguments.length?(s(e),c()):s()},r.center=function(e){return arguments.length?(o(e),c()):o()},r.clipExtent=function(e){return arguments.length?(null==e?u=t=n=i=null:(u=+e[0][0],t=+e[0][1],n=+e[1][0],i=+e[1][1]),c()):null==u?null:[[u,t],[n,i]]},c()}function mA(e){return lE((Hk+e)/2)}function yA(e,t){var n=Kk(e),i=e===t?oE(e):iE(n/Kk(t))/iE(mA(t)/mA(e)),r=n*rE(mA(e),i)/i;if(!i)return pA;function o(e,t){r>0?t<-Hk+Ik&&(t=-Hk+Ik):t>Hk-Ik&&(t=Hk-Ik);var n=r/rE(mA(t),i);return[n*oE(i*e),r-n*Kk(i*e)]}return o.invert=function(e,t){var n=r-t,o=aE(i)*sE(e*e+n*n),a=Zk(e,Jk(n))*aE(n);return n*i<0&&(a-=Wk*aE(e)*aE(n)),[a/i,2*Qk(rE(r/o,1/i))-Hk]},o}function vA(e,t){return[e,t]}function bA(e,t){var n=Kk(e),i=e===t?oE(e):(n-Kk(t))/(t-e),r=n/i+e;if(Jk(i)Ik&&--r>0);return[e/(.8707+(o=i*i)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),i]},SA.invert=fA(cE),MA.invert=fA((function(e){return 2*Qk(e)})),CA.invert=function(e,t){return[-t,2*Qk(tE(e))-Hk]};var FA=Math.abs,jA=(Math.atan,Math.atan2,Math.ceil,Math.cos),$A=(Math.exp,Math.floor,Math.log,Math.max,Math.min,Math.pow,Math.round,Math.sign,Math.sin),TA=(Math.tan,Math.PI),NA=TA/2,zA=(Math.SQRT1_2,RA(2));function PA(e){return e>1?NA:e<-1?-NA:Math.asin(e)}function RA(e){return e>0?Math.sqrt(e):0}function LA(e,t){var n,i=e*$A(t),r=30;do{t-=n=(t+$A(t)-i)/(1+jA(t))}while(FA(n)>1e-6&&--r>0);return t/2}RA(TA);var BA=function(e,t,n){function i(i,r){return[e*i*jA(r=LA(n,r)),t*$A(r)]}return i.invert=function(i,r){return r=PA(r/t),[i/(e*jA(r)),PA((2*r+$A(2*r))/n)]},i}(zA/NA,zA,TA);const UA=yD(),IA=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function qA(e,t){return function n(){const i=t();return i.type=e,i.path=yD().projection(i),i.copy=i.copy||function(){const e=n();return IA.forEach((t=>{i[t]&&e[t](i[t]())})),e.path.pointRadius(i.path.pointRadius()),e},My(i)}}function WA(e,t){if(!e||"string"!=typeof e)throw new Error("Projection type must be a name string.");return e=e.toLowerCase(),arguments.length>1?(YA[e]=qA(e,t),this):YA[e]||null}function HA(e){return e&&e.path||UA}const YA={albers:uA,albersusa:function(){var e,t,n,i,r,o,a=uA(),s=lA().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=lA().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u={point:function(e,t){o=[e,t]}};function c(e){var t=e[0],a=e[1];return o=null,n.point(t,a),o||(i.point(t,a),o)||(r.point(t,a),o)}function f(){return e=t=null,c}return c.invert=function(e){var t=a.scale(),n=a.translate(),i=(e[0]-n[0])/t,r=(e[1]-n[1])/t;return(r>=.12&&r<.234&&i>=-.425&&i<-.214?s:r>=.166&&r<.234&&i>=-.214&&i<-.115?l:a).invert(e)},c.stream=function(n){return e&&t===n?e:(i=[a.stream(t=n),s.stream(n),l.stream(n)],r=i.length,e={point:function(e,t){for(var n=-1;++n2?e[2]+90:90]):[(e=n())[0],e[1],e[2]-90]},n([0,0,90]).scale(159.155)}};for(const e in YA)WA(e,YA[e]);function GA(e,t,n){var i=Bl(e,t-Ik,n).concat(t);return function(e){return i.map((function(t){return[e,t]}))}}function VA(e,t,n){var i=Bl(e,t-Ik,n).concat(t);return function(e){return i.map((function(t){return[t,e]}))}}function XA(){}const JA=[[],[[[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 QA(){var e=1,t=1,n=a;function i(e,t){return t.map((t=>r(e,t)))}function r(i,r){var a=[],s=[];return function(n,i,r){var a,s,l,u,c,f,d=new Array,h=new Array;for(a=s=-1,u=n[0]>=i,JA[u<<1].forEach(p);++a=i,JA[l|u<<1].forEach(p);for(JA[u<<0].forEach(p);++s=i,c=n[s*e]>=i,JA[u<<1|c<<2].forEach(p);++a=i,f=c,c=n[s*e+a+1]>=i,JA[l|u<<1|c<<2|f<<3].forEach(p);JA[u|c<<3].forEach(p)}for(a=-1,c=n[s*e]>=i,JA[c<<2].forEach(p);++a=i,JA[c<<2|f<<3].forEach(p);function p(e){var t,n,i=[e[0][0]+a,e[0][1]+s],l=[e[1][0]+a,e[1][1]+s],u=o(i),c=o(l);(t=h[u])?(n=d[c])?(delete h[t.end],delete d[n.start],t===n?(t.ring.push(l),r(t.ring)):d[t.start]=h[n.end]={start:t.start,end:n.end,ring:t.ring.concat(n.ring)}):(delete h[t.end],t.ring.push(l),h[t.end=c]=t):(t=d[c])?(n=h[u])?(delete d[t.start],delete h[n.end],t===n?(t.ring.push(l),r(t.ring)):d[n.start]=h[t.end]={start:n.start,end:t.end,ring:n.ring.concat(t.ring)}):(delete d[t.start],t.ring.unshift(i),d[t.start=u]=t):d[u]=h[c]={start:u,end:c,ring:[i,l]}}JA[c<<3].forEach(p)}(i,r,(e=>{n(e,i,r),function(e){for(var t=0,n=e.length,i=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];++t0?a.push([e]):s.push(e)})),s.forEach((e=>{for(var t,n=0,i=a.length;n{var o,a=n[0],s=n[1],l=0|a,u=0|s,c=i[u*e+l];a>0&&a0&&s=0&&o>=0||re("invalid size"),e=r,t=o,i},i.smooth=function(e){return arguments.length?(n=e?a:XA,i):n===a},i}function ZA(e,t){for(var n,i=-1,r=t.length;++ii!=h>i&&n<(d-u)*(i-c)/(h-c)+u&&(r=-r)}return r}function eS(e,t,n){var i,r,o,a;return function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])==(n[0]-e[0])*(t[1]-e[1])}(e,t,n)&&(r=e[i=+(e[0]===t[0])],o=n[i],a=t[i],r<=o&&o<=a||a<=o&&o<=r)}function tS(e,t,n){return function(i){var r=nt(i),o=n?Math.min(r[0],0):r[0],a=r[1],s=a-o,l=t?Zt(o,a,e):s/(e+1);return Bl(o+l,a,l)}}function nS(e){$s.call(this,null,e)}function iS(e,t,n,i,r){const o=e.x1||0,a=e.y1||0,s=t*n<0;function l(e){e.forEach(u)}function u(e){s&&e.reverse(),e.forEach(c)}function c(e){e[0]=(e[0]-o)*t+i,e[1]=(e[1]-a)*n+r}return function(e){return e.coordinates.forEach(l),e}}function rS(e,t,n){const i=e>=0?e:Xs(t,n);return Math.round((Math.sqrt(4*i*i+1)-1)/2)}function oS(e){return Ge(e)?e:Ke(+e)}function aS(){var e=e=>e[0],t=e=>e[1],n=ce,i=[-1,-1],r=960,o=500,a=2;function s(s,l){const u=rS(i[0],s,e)>>a,c=rS(i[1],s,t)>>a,f=u?u+2:0,d=c?c+2:0,h=2*f+(r>>a),p=2*d+(o>>a),g=new Float32Array(h*p),m=new Float32Array(h*p);let y=g;s.forEach((i=>{const r=f+(+e(i)>>a),o=d+(+t(i)>>a);r>=0&&r=0&&o0&&c>0?(sS(h,p,g,m,u),lS(h,p,m,g,c),sS(h,p,g,m,u),lS(h,p,m,g,c),sS(h,p,g,m,u),lS(h,p,m,g,c)):u>0?(sS(h,p,g,m,u),sS(h,p,m,g,u),sS(h,p,g,m,u),y=m):c>0&&(lS(h,p,g,m,c),lS(h,p,m,g,c),lS(h,p,g,m,c),y=m);const v=l?Math.pow(2,-2*a):1/ik(y);for(let e=0,t=h*p;e>a),y2:d+(o>>a)}}return s.x=function(t){return arguments.length?(e=oS(t),s):e},s.y=function(e){return arguments.length?(t=oS(e),s):t},s.weight=function(e){return arguments.length?(n=oS(e),s):n},s.size=function(e){if(!arguments.length)return[r,o];var t=+e[0],n=+e[1];return t>=0&&n>=0||re("invalid size"),r=t,o=n,s},s.cellSize=function(e){return arguments.length?((e=+e)>=1||re("invalid cell size"),a=Math.floor(Math.log(e)/Math.LN2),s):1<=r&&(t>=o&&(s-=n[t-o+a*e]),i[t-r+a*e]=s/Math.min(t+1,e-1+o-t,o))}function lS(e,t,n,i,r){const o=1+(r<<1);for(let a=0;a=r&&(s>=o&&(l-=n[a+(s-o)*e]),i[a+(s-r)*e]=l/Math.min(s+1,t-1+o-s,o))}function uS(e){$s.call(this,null,e)}nS.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"}]},ut(nS,$s,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n=t.fork(t.NO_SOURCE|t.NO_FIELDS),i=t.materialize(t.SOURCE).source,r=e.field||le,o=QA().smooth(!1!==e.smooth),a=e.thresholds||function(e,t,n){const i=tS(n.levels||10,n.nice,!1!==n.zero);return"shared"!==n.resolve?i:i(e.map((e=>Ps(t(e).values))))}(i,r,e),s=null===e.as?null:e.as||"contour",l=[];return i.forEach((t=>{const n=r(t),i=o.size([n.width,n.height])(n.values,xe(a)?a:a(n.values));!function(e,t,n,i){let r=i.scale||t.scale,o=i.translate||t.translate;if(Ge(r)&&(r=r(n,i)),Ge(o)&&(o=o(n,i)),(1===r||null==r)&&!o)return;const a=(pt(r)?r:r[0])||1,s=(pt(r)?r:r[1])||1,l=o&&o[0]||0,u=o&&o[1]||0;e.forEach(iS(t,a,s,l,u))}(i,n,t,e),i.forEach((e=>{l.push(os(t,is(null!=s?{[s]:e}:e)))}))})),this.value&&(n.rem=this.value),this.value=n.source=n.add=l,n}}),uS.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const cS=["x","y","weight","size","cellSize","bandwidth"];function fS(e,t){return cS.forEach((n=>null!=t[n]?e[n](t[n]):0)),e}function dS(e){$s.call(this,null,e)}ut(uS,$s,{transform(e,t){if(this.value&&!t.changed()&&!e.modified())return t.StopPropagation;var n,i=t.fork(t.NO_SOURCE|t.NO_FIELDS),r=function(e,t){var n,i,r,o,a,s,l=[],u=e=>e(o);if(null==t)l.push(e);else for(n={},i=0,r=e.length;iis(function(e,t){for(let n=0;nIk})).map(l)).concat(Bl(eE(o/h)*h,r,h).filter((function(e){return Jk(e%g)>Ik})).map(u))}return y.lines=function(){return v().map((function(e){return{type:"LineString",coordinates:e}}))},y.outline=function(){return{type:"Polygon",coordinates:[c(i).concat(f(a).slice(1),c(n).reverse().slice(1),f(s).reverse().slice(1))]}},y.extent=function(e){return arguments.length?y.extentMajor(e).extentMinor(e):y.extentMinor()},y.extentMajor=function(e){return arguments.length?(i=+e[0][0],n=+e[1][0],s=+e[0][1],a=+e[1][1],i>n&&(e=i,i=n,n=e),s>a&&(e=s,s=a,a=e),y.precision(m)):[[i,s],[n,a]]},y.extentMinor=function(n){return arguments.length?(t=+n[0][0],e=+n[1][0],o=+n[0][1],r=+n[1][1],t>e&&(n=t,t=e,e=n),o>r&&(n=o,o=r,r=n),y.precision(m)):[[t,o],[e,r]]},y.step=function(e){return arguments.length?y.stepMajor(e).stepMinor(e):y.stepMinor()},y.stepMajor=function(e){return arguments.length?(p=+e[0],g=+e[1],y):[p,g]},y.stepMinor=function(e){return arguments.length?(d=+e[0],h=+e[1],y):[d,h]},y.precision=function(d){return arguments.length?(m=+d,l=GA(o,r,90),u=VA(t,e,m),c=GA(s,a,90),f=VA(i,n,m),y):m},y.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}()}function xS(e){$s.call(this,null,e)}function wS(e){if(!Ge(e))return!1;const t=Mt(ee(e));return t.$x||t.$y||t.$value||t.$max}function _S(e){$s.call(this,null,e),this.modified(!0)}function OS(e,t,n){Ge(e[t])&&e[t](n)}function kS(e,t,n,i){if(isNaN(t)||isNaN(n))return e;var r,o,a,s,l,u,c,f,d,h=e._root,p={data:i},g=e._x0,m=e._y0,y=e._x1,v=e._y1;if(!h)return e._root=p,e;for(;h.length;)if((u=t>=(o=(g+y)/2))?g=o:y=o,(c=n>=(a=(m+v)/2))?m=a:v=a,r=h,!(h=h[f=c<<1|u]))return r[f]=p,e;if(s=+e._x.call(null,h.data),l=+e._y.call(null,h.data),t===s&&n===l)return p.next=h,r?r[f]=p:e._root=p,e;do{r=r?r[f]=new Array(4):e._root=new Array(4),(u=t>=(o=(g+y)/2))?g=o:y=o,(c=n>=(a=(m+v)/2))?m=a:v=a}while((f=c<<1|u)==(d=(l>=a)<<1|s>=o));return r[d]=h,r[f]=p,e}function ES(e,t,n,i,r){this.node=e,this.x0=t,this.y0=n,this.x1=i,this.y1=r}function DS(e){return e[0]}function AS(e){return e[1]}function SS(e,t,n){var i=new MS(null==t?DS:t,null==n?AS:n,NaN,NaN,NaN,NaN);return null==e?i:i.addAll(e)}function MS(e,t,n,i,r,o){this._x=e,this._y=t,this._x0=n,this._y0=i,this._x1=r,this._y1=o,this._root=void 0}function CS(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}gS.Definition={type:"GeoJSON",metadata:{},params:[{name:"fields",type:"field",array:!0,length:2},{name:"geojson",type:"field"}]},ut(gS,$s,{transform(e,t){var n,i=this._features,r=this._points,o=e.fields,a=o&&o[0],s=o&&o[1],l=e.geojson||!o&&le,u=t.ADD;n=e.modified()||t.changed(t.REM)||t.modified(ee(l))||a&&t.modified(ee(a))||s&&t.modified(ee(s)),this.value&&!n||(u=t.SOURCE,this._features=i=[],this._points=r=[]),l&&t.visit(u,(e=>i.push(l(e)))),a&&s&&(t.visit(u,(e=>{var t=a(e),n=s(e);null!=t&&null!=n&&(t=+t)===t&&(n=+n)===n&&r.push([t,n])})),i=i.concat({type:hS,geometry:{type:"MultiPoint",coordinates:r}})),this.value={type:pS,features:i}}}),mS.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"}]},ut(mS,$s,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.field||le,o=e.as||"path",a=n.SOURCE;!i||e.modified()?(this.value=i=HA(e.projection),n.materialize().reflow()):a=r===le||t.modified(r.fields)?n.ADD_MOD:n.ADD;const s=function(e,t){const n=e.pointRadius();return e.context(null),null!=t&&e.pointRadius(t),n}(i,e.pointRadius);return n.visit(a,(e=>e[o]=i(r(e)))),i.pointRadius(s),n.modifies(o)}}),yS.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"]}]},ut(yS,$s,{transform(e,t){var n,i=e.projection,r=e.fields[0],o=e.fields[1],a=e.as||["x","y"],s=a[0],l=a[1];function u(e){const t=i([r(e),o(e)]);t?(e[s]=t[0],e[l]=t[1]):(e[s]=void 0,e[l]=void 0)}return e.modified()?t=t.materialize().reflow(!0).visit(t.SOURCE,u):(n=t.modified(r.fields)||t.modified(o.fields),t.visit(n?t.ADD_MOD:t.ADD,u)),t.modifies(a)}}),vS.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"}]},ut(vS,$s,{transform(e,t){var n=t.fork(t.ALL),i=this.value,r=e.as||"shape",o=n.ADD;return i&&!e.modified()||(this.value=i=function(e,t,n){const i=null==n?n=>e(t(n)):i=>{var r=e.pointRadius(),o=e.pointRadius(n)(t(i));return e.pointRadius(r),o};return i.context=t=>(e.context(t),i),i}(HA(e.projection),e.field||ae("datum"),e.pointRadius),n.materialize().reflow(),o=n.SOURCE),n.visit(o,(e=>e[r]=i)),n.modifies(r)}}),bS.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}]},ut(bS,$s,{transform(e,t){var n,i=this.value,r=this.generator;if(!i.length||e.modified())for(const t in e)Ge(r[t])&&r[t](e[t]);return n=r(),i.length?t.mod.push(as(i[0],n)):t.add.push(is(n)),i[0]=n,t}}),xS.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"}]},ut(xS,$s,{transform(e,t){if(!t.changed()&&!e.modified())return t.StopPropagation;var n=t.materialize(t.SOURCE).source,i="shared"===e.resolve,r=e.field||le,o=function(e,t){let n;return Ge(e)?(n=n=>e(n,t),n.dep=wS(e)):e?n=Ke(e):(n=e=>e.$value/e.$max||0,n.dep=!0),n}(e.opacity,e),a=function(e,t){let n;return Ge(e)?(n=n=>nd(e(n,t)),n.dep=wS(e)):n=Ke(nd(e||"#888")),n}(e.color,e),s=e.as||"image",l={$x:0,$y:0,$value:0,$max:i?Ps(n.map((e=>Ps(r(e).values)))):0};return n.forEach((e=>{const t=r(e),n=tt({},e,l);i||(n.$max=Ps(t.values||[])),e[s]=function(e,t,n,i){const r=e.width,o=e.height,a=e.x1||0,s=e.y1||0,l=e.x2||r,u=e.y2||o,c=e.values,f=c?e=>c[e]:ue,d=Sf(l-a,u-s),h=d.getContext("2d"),p=h.getImageData(0,0,l-a,u-s),g=p.data;for(let e=s,o=0;e{null!=e[t]&&OS(n,t,e[t])}))):IA.forEach((t=>{e.modified(t)&&OS(n,t,e[t])})),null!=e.pointRadius&&n.path.pointRadius(e.pointRadius),e.fit&&function(e,t){const n=function(e){return 1===(e=He(e)).length?e[0]:{type:pS,features:e.reduce(((e,t)=>e.concat(function(e){return e.type===pS?e.features:He(e).filter((e=>null!=e)).map((e=>e.type===hS?e:{type:hS,geometry:e}))}(t))),[])}}(t.fit);t.extent?e.fitExtent(t.extent,n):t.size&&e.fitSize(t.size,n)}(n,e),t.fork(t.NO_SOURCE|t.NO_FIELDS)}});var FS=SS.prototype=MS.prototype;function jS(e){return function(){return e}}function $S(e){return 1e-6*(e()-.5)}function TS(e){return e.x+e.vx}function NS(e){return e.y+e.vy}FS.copy=function(){var e,t,n=new MS(this._x,this._y,this._x0,this._y0,this._x1,this._y1),i=this._root;if(!i)return n;if(!i.length)return n._root=CS(i),n;for(e=[{source:i,target:n._root=new Array(4)}];i=e.pop();)for(var r=0;r<4;++r)(t=i.source[r])&&(t.length?e.push({source:t,target:i.target[r]=new Array(4)}):i.target[r]=CS(t));return n},FS.add=function(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return kS(this.cover(t,n),t,n,e)},FS.addAll=function(e){var t,n,i,r,o=e.length,a=new Array(o),s=new Array(o),l=1/0,u=1/0,c=-1/0,f=-1/0;for(n=0;nc&&(c=i),rf&&(f=r));if(l>c||u>f)return this;for(this.cover(l,u).cover(c,f),n=0;ne||e>=r||i>t||t>=o;)switch(s=(td||(o=l.y0)>h||(a=l.x1)=y)<<1|e>=m)&&(l=p[p.length-1],p[p.length-1]=p[p.length-1-u],p[p.length-1-u]=l)}else{var v=e-+this._x.call(null,g.data),b=t-+this._y.call(null,g.data),x=v*v+b*b;if(x=(s=(p+m)/2))?p=s:m=s,(c=a>=(l=(g+y)/2))?g=l:y=l,t=h,!(h=h[f=c<<1|u]))return this;if(!h.length)break;(t[f+1&3]||t[f+2&3]||t[f+3&3])&&(n=t,d=f)}for(;h.data!==e;)if(i=h,!(h=h.next))return this;return(r=h.next)&&delete h.next,i?(r?i.next=r:delete i.next,this):t?(r?t[f]=r:delete t[f],(h=t[0]||t[1]||t[2]||t[3])&&h===(t[3]||t[2]||t[1]||t[0])&&!h.length&&(n?n[d]=h:this._root=h),this):(this._root=r,this)},FS.removeAll=function(e){for(var t=0,n=e.length;t{}};function PS(){for(var e,t=0,n=arguments.length,i={};t=0&&(n=e.slice(i+1),e=e.slice(0,i)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:n}}))}function BS(e,t){for(var n,i=0,r=e.length;i0)for(var n,i,r=new Array(n),o=0;o=0&&t._call.call(void 0,e),t=t._next;--HS}()}finally{HS=0,function(){for(var e,t,n=qS,i=1/0;n;)n._call?(i>n._time&&(i=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:qS=t);WS=e,oM(i)}(),XS=0}}function rM(){var e=QS.now(),t=e-VS;t>1e3&&(JS-=t,VS=e)}function oM(e){HS||(YS&&(YS=clearTimeout(YS)),e-XS>24?(e<1/0&&(YS=setTimeout(iM,e-QS.now()-JS)),GS&&(GS=clearInterval(GS))):(GS||(VS=QS.now(),GS=setInterval(rM,1e3)),HS=1,ZS(iM)))}tM.prototype=nM.prototype={constructor:tM,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?KS():+n)+(null==t?0:+t),this._next||WS===this||(WS?WS._next=this:qS=this,WS=this),this._call=e,this._time=n,oM()},stop:function(){this._call&&(this._call=null,this._time=1/0,oM())}};const aM=4294967296;function sM(e){return e.x}function lM(e){return e.y}var uM=Math.PI*(3-Math.sqrt(5));function cM(e){return e.index}function fM(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}const dM={center:function(e,t){var n,i=1;function r(){var r,o,a=n.length,s=0,l=0;for(r=0;ru+p||oc+p||al.index){var g=u-s.x-s.vx,m=c-s.y-s.vy,y=g*g+m*m;ye.r&&(e.r=e[t].r)}function l(){if(t){var i,r,o=t.length;for(n=new Array(o),i=0;i=s)){(e.data!==t||e.next)&&(0===f&&(p+=(f=$S(n))*f),0===d&&(p+=(d=$S(n))*d),p[s(e,t,i),e])));for(a=0,r=new Array(u);at(e,n):t)}function _M(e){var t=0,n=e.children,i=n&&n.length;if(i)for(;--i>=0;)t+=n[i].value;else t=1;e.value=t}function OM(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=EM)):void 0===t&&(t=kM);for(var n,i,r,o,a,s=new SM(e),l=[s];n=l.pop();)if((r=t(n.data))&&(a=(r=Array.from(r)).length))for(n.children=r,o=a-1;o>=0;--o)l.push(i=r[o]=new SM(r[o])),i.parent=n,i.depth=n.depth+1;return s.eachBefore(AM)}function kM(e){return e.children}function EM(e){return Array.isArray(e)?e[1]:null}function DM(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function AM(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function SM(e){this.data=e,this.depth=this.height=0,this.parent=null}function MM(e){return null==e?null:CM(e)}function CM(e){if("function"!=typeof e)throw new Error;return e}function FM(){return 0}function jM(e){return function(){return e}}yM.Definition={type:"Force",metadata:{modifies:!0},params:[{name:"static",type:"boolean",default:!1},{name:"restart",type:"boolean",default:!1},{name:"iterations",type:"number",default:300},{name:"alpha",type:"number",default:1},{name:"alphaMin",type:"number",default:.001},{name:"alphaTarget",type:"number",default:0},{name:"velocityDecay",type:"number",default:.4},{name:"forces",type:"param",array:!0,params:[{key:{force:"center"},params:[{name:"x",type:"number",default:0},{name:"y",type:"number",default:0}]},{key:{force:"collide"},params:[{name:"radius",type:"number",expr:!0},{name:"strength",type:"number",default:.7},{name:"iterations",type:"number",default:1}]},{key:{force:"nbody"},params:[{name:"strength",type:"number",default:-30,expr:!0},{name:"theta",type:"number",default:.9},{name:"distanceMin",type:"number",default:1},{name:"distanceMax",type:"number"}]},{key:{force:"link"},params:[{name:"links",type:"data"},{name:"id",type:"field"},{name:"distance",type:"number",default:30,expr:!0},{name:"strength",type:"number",expr:!0},{name:"iterations",type:"number",default:1}]},{key:{force:"x"},params:[{name:"strength",type:"number",default:.1},{name:"x",type:"field"}]},{key:{force:"y"},params:[{name:"strength",type:"number",default:.1},{name:"y",type:"field"}]}]},{name:"as",type:"string",array:!0,modify:!1,default:mM}]},ut(yM,$s,{transform(e,t){var n,i,r=this.value,o=t.changed(t.ADD_REM),a=e.modified(pM),s=e.iterations||300;if(r?(o&&(t.modifies("index"),r.nodes(t.source)),(a||t.changed(t.MOD))&&vM(r,e,0,t)):(this.value=r=function(e,t){const n=function(e){var t,n=1,i=.001,r=1-Math.pow(i,1/300),o=0,a=.6,s=new Map,l=nM(f),u=IS("tick","end"),c=function(){let e=1;return()=>(e=(1664525*e+1013904223)%aM)/aM}();function f(){d(),u.call("tick",t),n1?(null==n?s.delete(e):s.set(e,p(n)),t):s.get(e)},find:function(t,n,i){var r,o,a,s,l,u=0,c=e.length;for(null==i?i=1/0:i*=i,u=0;u1?(u.on(e,n),t):u.on(e)}}}(e),i=n.stop,r=n.restart;let o=!1;return n.stopped=()=>o,n.restart=()=>(o=!1,r()),n.stop=()=>(o=!0,i()),vM(n,t,!0).on("end",(()=>o=!0))}(t.source,e),r.on("tick",(n=t.dataflow,i=this,()=>n.touch(i).run())),e.static||(o=!0,r.tick()),t.modifies("index")),a||o||e.modified(gM)||t.changed()&&e.restart)if(r.alpha(Math.max(r.alpha(),e.alpha||1)).alphaDecay(1-Math.pow(r.alphaMin(),1/s)),e.static)for(r.stop();--s>=0;)r.tick();else if(r.stopped()&&r.restart(),!o)return t.StopPropagation;return this.finish(e,t)},finish(e,t){const n=t.dataflow;for(let e,t=this._argops,s=0,l=t.length;s=0;--i)o.push(n[i]);return this},find:function(e,t){let n=-1;for(const i of this)if(e.call(t,i,++n,this))return i},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,i=t.children,r=i&&i.length;--r>=0;)n+=i[r].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),i=t.ancestors(),r=null;for(e=n.pop(),t=i.pop();e===t;)r=e,e=n.pop(),t=i.pop();return r}(t,e),i=[t];t!==n;)t=t.parent,i.push(t);for(var r=i.length;e!==n;)i.splice(r,0,e),e=e.parent;return i},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return OM(this).eachBefore(DM)},[Symbol.iterator]:function*(){var e,t,n,i,r=this,o=[r];do{for(e=o.reverse(),o=[];r=e.pop();)if(yield r,t=r.children)for(n=0,i=t.length;n0&&n*n>i*i+r*r}function PM(e,t){for(var n=0;n1e-6?(A+Math.sqrt(A*A-4*D*S))/(2*D):S/A);return{x:i+_+O*M,y:r+k+E*M,r:M}}function UM(e,t,n){var i,r,o,a,s=e.x-t.x,l=e.y-t.y,u=s*s+l*l;u?(r=t.r+n.r,r*=r,a=e.r+n.r,r>(a*=a)?(i=(u+a-r)/(2*u),o=Math.sqrt(Math.max(0,a/u-i*i)),n.x=e.x-i*s-o*l,n.y=e.y-i*l+o*s):(i=(u+r-a)/(2*u),o=Math.sqrt(Math.max(0,r/u-i*i)),n.x=t.x+i*s-o*l,n.y=t.y+i*l+o*s)):(n.x=t.x+n.r,n.y=t.y)}function IM(e,t){var n=e.r+t.r-1e-6,i=t.x-e.x,r=t.y-e.y;return n>0&&n*n>i*i+r*r}function qM(e){var t=e._,n=e.next._,i=t.r+n.r,r=(t.x*n.r+n.x*t.r)/i,o=(t.y*n.r+n.y*t.r)/i;return r*r+o*o}function WM(e){this._=e,this.next=null,this.previous=null}function HM(e,t){if(!(o=(e=function(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}(e)).length))return 0;var n,i,r,o,a,s,l,u,c,f,d;if((n=e[0]).x=0,n.y=0,!(o>1))return n.r;if(i=e[1],n.x=-i.r,i.x=n.r,i.y=0,!(o>2))return n.r+i.r;UM(i,n,r=e[2]),n=new WM(n),i=new WM(i),r=new WM(r),n.next=r.previous=i,i.next=n.previous=r,r.next=i.previous=n;e:for(l=3;lfunction(e){let t=(e=`${e}`).length;return oC(e,t-1)&&!oC(e,t-2)&&(e=e.slice(0,-1)),"/"===e[0]?e:`/${e}`}(e(t,n,i)))),n=t.map(rC),r=new Set(t).add("");for(const e of n)r.has(e)||(r.add(e),t.push(e),n.push(rC(e)),d.push(eC));h=(e,n)=>t[n],p=(e,t)=>n[t]}for(a=0,r=d.length;a=0&&(u=d[e],u.data===eC);--e)u.data=null}if(s.parent=ZM,s.eachBefore((function(e){e.depth=e.parent.depth+1,--r})).eachBefore(AM),s.parent=null,r>0)throw new Error("cycle");return s}return i.id=function(e){return arguments.length?(t=MM(e),i):t},i.parentId=function(e){return arguments.length?(n=MM(e),i):n},i.path=function(t){return arguments.length?(e=MM(t),i):e},i}function rC(e){let t=e.length;if(t<2)return"";for(;--t>1&&!oC(e,t););return e.slice(0,t)}function oC(e,t){if("/"===e[t]){let n=0;for(;t>0&&"\\"===e[--t];)++n;if(0==(1&n))return!0}return!1}function aC(e,t){return e.parent===t.parent?1:2}function sC(e){var t=e.children;return t?t[0]:e.t}function lC(e){var t=e.children;return t?t[t.length-1]:e.t}function uC(e,t,n){var i=n/(t.i-e.i);t.c-=i,t.s+=n,e.c+=i,t.z+=n,t.m+=n}function cC(e,t,n){return e.a.parent===t.parent?e.a:n}function fC(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function dC(e,t){return e.parent===t.parent?1:2}function hC(e,t){return e+t.x}function pC(e,t){return Math.max(e,t.y)}function gC(e,t,n,i,r){for(var o,a=e.children,s=-1,l=a.length,u=e.value&&(r-n)/e.value;++sd&&(d=s),m=c*c*g,(h=Math.max(d/m,m/f))>p){c-=s;break}p=h}y.push(a={value:c,dice:l1?t:1)},n}(mC),bC=function e(t){function n(e,n,i,r,o){if((a=e._squarify)&&a.ratio===t)for(var a,s,l,u,c,f=-1,d=a.length,h=e.value;++f1?t:1)},n}(mC);function xC(e,t,n){const i={};return e.each((e=>{const r=e.data;n(r)&&(i[t(r)]=e)})),e.lookup=i,e}function wC(e){$s.call(this,null,e)}wC.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const _C=e=>e.values;function OC(){const e=[],t={entries:e=>i(n(e,0),0),key:n=>(e.push(n),t)};function n(t,i){if(i>=e.length)return t;const r=t.length,o=e[i++],a={},s={};let l,u,c,f=-1;for(;++fe.length)return t;const r=[];for(const e in t)r.push({key:e,values:i(t[e],n)});return r}return t}function kC(e){$s.call(this,null,e)}ut(wC,$s,{transform(e,t){t.source||re("Nest transform requires an upstream data source.");var n=e.generate,i=e.modified(),r=t.clone(),o=this.value;return(!o||i||t.changed())&&(o&&o.each((e=>{e.children&&es(e.data)&&r.rem.push(e.data)})),this.value=o=OM({values:He(e.keys).reduce(((e,t)=>(e.key(t),e)),OC()).entries(r.source)},_C),n&&o.each((e=>{e.children&&(e=is(e.data),r.add.push(e),r.source.push(e))})),xC(o,ts,ts)),r.source.root=o,r}});const EC=(e,t)=>e.parent===t.parent?1:2;ut(kC,$s,{transform(e,t){t.source&&t.source.root||re(this.constructor.name+" transform requires a backing tree data source.");const n=this.layout(e.method),i=this.fields,r=t.source.root,o=e.as||i;e.field?r.sum(e.field):r.count(),e.sort&&r.sort(ss(e.sort,(e=>e.data))),function(e,t,n){for(let i,r=0,o=t.length;rfunction(e,t,n){const i=e.data,r=t.length-1;for(let o=0;o(e=(1664525*e+1013904223)%$M)/$M}();return r.x=t/2,r.y=n/2,e?r.eachBefore(GM(e)).eachAfter(VM(i,.5,o)).eachBefore(XM(1)):r.eachBefore(GM(YM)).eachAfter(VM(FM,1,o)).eachAfter(VM(i,r.r/Math.min(t,n),o)).eachBefore(XM(Math.min(t,n)/(2*r.r))),r}return r.radius=function(t){return arguments.length?(e=MM(t),r):e},r.size=function(e){return arguments.length?(t=+e[0],n=+e[1],r):[t,n]},r.padding=function(e){return arguments.length?(i="function"==typeof e?e:jM(+e),r):i},r},params:["radius","size","padding"],fields:DC});const SC=["x0","y0","x1","y1","depth","children"];function MC(e){kC.call(this,e)}function CC(e){$s.call(this,null,e)}MC.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:SC.length,default:SC}]},ut(MC,kC,{layout:function(){var e=1,t=1,n=0,i=!1;function r(r){var o=r.height+1;return r.x0=r.y0=n,r.x1=e,r.y1=t/o,r.eachBefore(function(e,t){return function(i){i.children&&QM(i,i.x0,e*(i.depth+1)/t,i.x1,e*(i.depth+2)/t);var r=i.x0,o=i.y0,a=i.x1-n,s=i.y1-n;a=0;--r)s.push(n=t.children[r]=new fC(i[r],r)),n.parent=t;return(a.parent=new fC(null,0)).children=[a],a}(r);if(l.eachAfter(o),l.parent.m=-l.z,l.eachBefore(a),i)r.eachBefore(s);else{var u=r,c=r,f=r;r.eachBefore((function(e){e.xc.x&&(c=e),e.depth>f.depth&&(f=e)}));var d=u===c?1:e(u,c)/2,h=d-u.x,p=t/(c.x+d+h),g=n/(f.depth||1);r.eachBefore((function(e){e.x=(e.x+h)*p,e.y=e.depth*g}))}return r}function o(t){var n=t.children,i=t.parent.children,r=t.i?i[t.i-1]:null;if(n){!function(e){for(var t,n=0,i=0,r=e.children,o=r.length;--o>=0;)(t=r[o]).z+=n,t.m+=n,n+=t.s+(i+=t.c)}(t);var o=(n[0].z+n[n.length-1].z)/2;r?(t.z=r.z+e(t._,r._),t.m=t.z-o):t.z=o}else r&&(t.z=r.z+e(t._,r._));t.parent.A=function(t,n,i){if(n){for(var r,o=t,a=t,s=n,l=o.parent.children[0],u=o.m,c=a.m,f=s.m,d=l.m;s=lC(s),o=sC(o),s&&o;)l=sC(l),(a=lC(a)).a=t,(r=s.z+f-o.z-u+e(s._,o._))>0&&(uC(cC(s,t,i),t,r),u+=r,c+=r),f+=s.m,u+=o.m,d+=l.m,c+=a.m;s&&!lC(a)&&(a.t=s,a.m+=f-c),o&&!sC(l)&&(l.t=o,l.m+=u-d,i=t)}return i}(t,r,t.parent.A||i[0])}function a(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function s(e){e.x*=t,e.y=e.depth*n}return r.separation=function(t){return arguments.length?(e=t,r):e},r.size=function(e){return arguments.length?(i=!1,t=+e[0],n=+e[1],r):i?null:[t,n]},r.nodeSize=function(e){return arguments.length?(i=!0,t=+e[0],n=+e[1],r):i?[t,n]:null},r},cluster:function(){var e=dC,t=1,n=1,i=!1;function r(r){var o,a=0;r.eachAfter((function(t){var n=t.children;n?(t.x=function(e){return e.reduce(hC,0)/e.length}(n),t.y=function(e){return 1+e.reduce(pC,0)}(n)):(t.x=o?a+=e(t,o):0,t.y=0,o=t)}));var s=function(e){for(var t;t=e.children;)e=t[0];return e}(r),l=function(e){for(var t;t=e.children;)e=t[t.length-1];return e}(r),u=s.x-e(s,l)/2,c=l.x+e(l,s)/2;return r.eachAfter(i?function(e){e.x=(e.x-r.x)*t,e.y=(r.y-e.y)*n}:function(e){e.x=(e.x-u)/(c-u)*t,e.y=(1-(r.y?e.y/r.y:1))*n})}return r.separation=function(t){return arguments.length?(e=t,r):e},r.size=function(e){return arguments.length?(i=!1,t=+e[0],n=+e[1],r):i?null:[t,n]},r.nodeSize=function(e){return arguments.length?(i=!0,t=+e[0],n=+e[1],r):i?[t,n]:null},r}},jC=["x","y","depth","children"];function $C(e){kC.call(this,e)}function TC(e){$s.call(this,[],e)}$C.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:jC.length,default:jC}]},ut($C,kC,{layout(e){const t=e||"tidy";if(ot(FC,t))return FC[t]();re("Unrecognized Tree layout method: "+t)},params:["size","nodeSize"],fields:jC}),TC.Definition={type:"TreeLinks",metadata:{tree:!0,generates:!0,changes:!0},params:[]},ut(TC,$s,{transform(e,t){const n=this.value,i=t.source&&t.source.root,r=t.fork(t.NO_SOURCE),o={};return i||re("TreeLinks transform requires a tree data source."),t.changed(t.ADD_REM)?(r.rem=n,t.visit(t.SOURCE,(e=>o[ts(e)]=1)),i.each((e=>{const t=e.data,n=e.parent&&e.parent.data;n&&o[ts(t)]&&o[ts(n)]&&r.add.push(is({source:n,target:t}))})),this.value=r.add):t.changed(t.MOD)&&(t.visit(t.MOD,(e=>o[ts(e)]=1)),n.forEach((e=>{(o[ts(e.source)]||o[ts(e.target)])&&r.mod.push(e)}))),r}});const NC={binary:function(e,t,n,i,r){var o,a,s=e.children,l=s.length,u=new Array(l+1);for(u[0]=a=o=0;o=n-1){var c=s[t];return c.x0=r,c.y0=o,c.x1=a,void(c.y1=l)}for(var f=u[t],d=i/2+f,h=t+1,p=n-1;h>>1;u[g]l-o){var v=i?(r*y+a*m)/i:a;e(t,h,m,r,o,v,l),e(h,n,y,v,o,a,l)}else{var b=i?(o*y+l*m)/i:l;e(t,h,m,r,o,a,b),e(h,n,y,r,b,a,l)}}(0,l,e.value,t,n,i,r)},dice:QM,slice:gC,slicedice:function(e,t,n,i,r){(1&e.depth?gC:QM)(e,t,n,i,r)},squarify:vC,resquarify:bC},zC=["x0","y0","x1","y1","depth","children"];function PC(e){kC.call(this,e)}PC.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:zC.length,default:zC}]},ut(PC,kC,{layout(){const e=function(){var e=vC,t=!1,n=1,i=1,r=[0],o=FM,a=FM,s=FM,l=FM,u=FM;function c(e){return e.x0=e.y0=0,e.x1=n,e.y1=i,e.eachBefore(f),r=[0],t&&e.eachBefore(JM),e}function f(t){var n=r[t.depth],i=t.x0+n,c=t.y0+n,f=t.x1-n,d=t.y1-n;f{const n=e.tile();n.ratio&&e.tile(n.ratio(t))},e.method=t=>{ot(NC,t)?e.tile(NC[t]):re("Unrecognized Treemap layout method: "+t)},e},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:zC});const RC=4278190080;function LC(e,t,n){return new Uint32Array(e.getImageData(0,0,t,n).data.buffer)}function BC(e,t,n){if(!t.length)return;const i=t[0].mark.marktype;"group"===i?t.forEach((t=>{t.items.forEach((t=>BC(e,t.items,n)))})):hw[i].draw(e,{items:n?t.map(UC):t})}function UC(e){const t=os(e,{});return t.stroke&&0!==t.strokeOpacity||t.fill&&0!==t.fillOpacity?{...t,strokeOpacity:1,stroke:"#000",fillOpacity:0}:t}const IC=31,qC=new Uint32Array(33),WC=new Uint32Array(33);WC[0]=0,qC[0]=~WC[0];for(let e=1;e<=32;++e)WC[e]=WC[e-1]<<1|1,qC[e]=~WC[e];function HC(e,t,n,i,r,o){let a=n/2;return e-a<0||e+a>r||t-(a=i/2)<0||t+a>o}function YC(e,t,n,i,r,o,a,s){const l=r*o/(2*i),u=e(t-l),c=e(t+l),f=e(n-(o/=2)),d=e(n+o);return a.outOfBounds(u,f,c,d)||a.getRange(u,f,c,d)||s&&s.getRange(u,f,c,d)}const GC=[-1,-1,1,1],VC=[-1,1,-1,1],XC=["right","center","left"],JC=["bottom","middle","top"];function QC(e,t,n,i,r,o,a,s,l,u,c,f){return!(r.outOfBounds(e,n,t,i)||(f&&o||r).getRange(e,n,t,i))}const ZC={"top-left":0,top:1,"top-right":2,left:4,middle:5,right:6,"bottom-left":8,bottom:9,"bottom-right":10},KC={naive:function(e,t,n,i){const r=e.width,o=e.height;return function(e){const t=e.datum.datum.items[i].items,n=t.length,a=e.datum.fontSize,s=Gx.width(e.datum,e.datum.text);let l,u,c,f,d,h,p,g=0;for(let i=0;i=g&&(g=p,e.x=d,e.y=h);return d=s/2,h=a/2,l=e.x-d,u=e.x+d,c=e.y-h,f=e.y+h,e.align="center",l<0&&u<=r?e.align="left":0<=l&&r=1;)d=(h+p)/2,YC(e,c,f,u,l,d,a,s)?p=d:h=d;if(h>i)return[c,f,h,!0]}}return function(t){const s=t.datum.datum.items[i].items,u=s.length,c=t.datum.fontSize,f=Gx.width(t.datum,t.datum.text);let d,h,p,g,m,y,v,b,x,w,_,O,k,E,D,A,S,M=n?c:0,C=!1,F=!1,j=0;for(let i=0;ih&&(S=d,d=h,h=S),p>g&&(S=p,p=g,g=S),x=e(d),_=e(h),w=~~((x+_)/2),O=e(p),E=e(g),k=~~((O+E)/2),v=w;v>=x;--v)for(b=k;b>=O;--b)A=l(v,b,M,f,c),A&&([t.x,t.y,M,C]=A);for(v=w;v<=_;++v)for(b=k;b<=E;++b)A=l(v,b,M,f,c),A&&([t.x,t.y,M,C]=A);C||n||(D=Math.abs(h-d+g-p),m=(d+h)/2,y=(p+g)/2,D>=j&&!HC(m,y,f,c,r,o)&&!YC(e,m,y,c,f,c,a,null)&&(j=D,t.x=m,t.y=y,F=!0))}return!(!C&&!F||(m=f/2,y=c/2,a.setRange(e(t.x-m),e(t.y-y),e(t.x+m),e(t.y+y)),t.align="center",t.baseline="middle",0))}},floodfill:function(e,t,n,i){const r=e.width,o=e.height,a=t[0],s=t[1],l=e.bitmap();return function(t){const u=t.datum.datum.items[i].items,c=u.length,f=t.datum.fontSize,d=Gx.width(t.datum,t.datum.text),h=[];let p,g,m,y,v,b,x,w,_,O,k,E,D=n?f:0,A=!1,S=!1,M=0;for(let i=0;i=1;)k=(_+O)/2,YC(e,v,b,f,d,k,a,s)?O=k:_=k;_>D&&(t.x=v,t.y=b,D=_,A=!0)}}A||n||(E=Math.abs(g-p+y-m),v=(p+g)/2,b=(m+y)/2,E>=M&&!HC(v,b,d,f,r,o)&&!YC(e,v,b,f,d,f,a,null)&&(M=E,t.x=v,t.y=b,S=!0))}return!(!A&&!S||(v=d/2,b=f/2,a.setRange(e(t.x-v),e(t.y-b),e(t.x+v),e(t.y+b)),t.align="center",t.baseline="middle",0))}}};function eF(e,t,n,i,r,o,a,s,l,u,c){if(!e.length)return e;const f=Math.max(i.length,r.length),d=function(e,t){const n=new Float64Array(t),i=e.length;for(let t=0;t[e.x,e.x,e.x,e.y,e.y,e.y];return e?"line"===e||"area"===e?e=>r(e.datum):"line"===t?e=>{const t=e.datum.items[i].items;return r(t.length?t["start"===n?0:t.length-1]:{x:NaN,y:NaN})}:e=>{const t=e.datum.bounds;return[t.x1,(t.x1+t.x2)/2,t.x2,t.y1,(t.y1+t.y2)/2,t.y2]}:r}(p,g,s,l),v=null===u||u===1/0,b=m&&"naive"===c;var x;let w=-1,_=-1;const O=e.map((e=>{const t=v?Gx.width(e,e.text):void 0;return w=Math.max(w,t),_=Math.max(_,e.fontSize),{datum:e,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:y(e),textWidth:t}}));u=null===u||u===1/0?Math.max(w,_)+Math.max(...i):u;const k=function(e,t,n){const i=Math.max(1,Math.sqrt(e*t/1e6)),r=~~((e+2*n+i)/i),o=~~((t+2*n+i)/i),a=e=>~~((e+n)/i);return a.invert=e=>e*i-n,a.bitmap=()=>function(e,t){const n=new Uint32Array(~~((e*t+32)/32));function i(e,t){n[e]|=t}function r(e,t){n[e]&=t}return{array:n,get:(t,i)=>{const r=i*e+t;return n[r>>>5]&1<<(r&IC)},set:(t,n)=>{const r=n*e+t;i(r>>>5,1<<(r&IC))},clear:(t,n)=>{const i=n*e+t;r(i>>>5,~(1<<(i&IC)))},getRange:(t,i,r,o)=>{let a,s,l,u,c=o;for(;c>=i;--c)if(a=c*e+t,s=c*e+r,l=a>>>5,u=s>>>5,l===u){if(n[l]&qC[a&IC]&WC[1+(s&IC)])return!0}else{if(n[l]&qC[a&IC])return!0;if(n[u]&WC[1+(s&IC)])return!0;for(let e=l+1;e{let a,s,l,u,c;for(;n<=o;++n)if(a=n*e+t,s=n*e+r,l=a>>>5,u=s>>>5,l===u)i(l,qC[a&IC]&WC[1+(s&IC)]);else for(i(l,qC[a&IC]),i(u,WC[1+(s&IC)]),c=l+1;c{let a,s,l,u,c;for(;n<=o;++n)if(a=n*e+t,s=n*e+i,l=a>>>5,u=s>>>5,l===u)r(l,WC[a&IC]|qC[1+(s&IC)]);else for(r(l,WC[a&IC]),r(u,qC[1+(s&IC)]),c=l+1;cn<0||i<0||o>=t||r>=e}}(r,o),a.ratio=i,a.padding=n,a.width=e,a.height=t,a}(t[0],t[1],u);let E;if(!b){n&&O.sort(((e,t)=>n(e.datum,t.datum)));let t=!1;for(let e=0;ee.datum));E=o.length||i?function(e,t,n,i,r){const o=e.width,a=e.height,s=i||r,l=Sf(o,a).getContext("2d"),u=Sf(o,a).getContext("2d"),c=s&&Sf(o,a).getContext("2d");n.forEach((e=>BC(l,e,!1))),BC(u,t,!1),s&&BC(c,t,!0);const f=LC(l,o,a),d=LC(u,o,a),h=s&&LC(c,o,a),p=e.bitmap(),g=s&&e.bitmap();let m,y,v,b,x,w,_,O;for(y=0;yn.set(e(t.boundary[0]),e(t.boundary[3])))),[n,void 0]}(k,a&&O)}const D=m?KC[c](k,E,a,l):function(e,t,n,i){const r=e.width,o=e.height,a=t[0],s=t[1],l=i.length;return function(t){const u=t.boundary,c=t.datum.fontSize;if(u[2]<0||u[5]<0||u[0]>r||u[3]>o)return!1;let f,d,h,p,g,m,y,v,b,x,w,_,O,k,E,D=t.textWidth??0;for(let r=0;r>>2&3)-1,h=0===f&&0===d||i[r]<0,p=f&&d?Math.SQRT1_2:1,g=i[r]<0?-1:1,m=u[1+f]+i[r]*f*p,w=u[4+d]+g*c*d/2+i[r]*d*p,v=w-c/2,b=w+c/2,_=e(m),k=e(v),E=e(b),!D){if(!QC(_,_,k,E,a,s,0,0,0,0,0,h))continue;D=Gx.width(t.datum,t.datum.text)}if(x=m+g*D*f/2,m=x-D/2,y=x+D/2,_=e(m),O=e(y),QC(_,O,k,E,a,s,0,0,0,0,0,h))return t.x=f?f*g<0?y:m:x,t.y=d?d*g<0?b:v:w,t.align=XC[f*g+1],t.baseline=JC[d*g+1],a.setRange(_,k,O,E),!0}return!1}}(k,E,h,d);return O.forEach((e=>e.opacity=+D(e))),O}const tF=["x","y","opacity","align","baseline"],nF=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function iF(e){$s.call(this,null,e)}function rF(e,t){var n,i,r,o,a,s,l=[],u=function(e){return e(o)};if(null==t)l.push(e);else for(n={},i=0,r=e.length;i{const t=e.datum;t[i[0]]=e.x,t[i[1]]=e.y,t[i[2]]=e.opacity,t[i[3]]=e.align,t[i[4]]=e.baseline})),t.reflow(n).modifies(i)}}),oF.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}]},ut(oF,$s,{transform(e,t){const n=t.fork(t.NO_SOURCE|t.NO_FIELDS);if(!this.value||t.changed()||e.modified()){const i=rF(t.materialize(t.SOURCE).source,e.groupby),r=(e.groupby||[]).map(K),o=r.length,a=e.as||[K(e.x),K(e.y)],s=[];i.forEach((t=>{Tl(t,e.x,e.y,e.bandwidth||.3).forEach((e=>{const n={};for(let e=0;e"poly"===e?t:"quad"===e?2:1)(o,a),l=e.as||[K(e.x),K(e.y)],u=aF[o],c=[];let f=e.extent;ot(aF,o)||re("Invalid regression method: "+o),null!=f&&"log"===o&&f[0]<=0&&(t.dataflow.warn("Ignoring extent with values <= 0 for log regression."),f=null),i.forEach((n=>{if(n.length<=s)return void t.dataflow.warn("Skipping regression with more parameters than data points.");const i=u(n,e.x,e.y,a);if(e.params)return void c.push(is({keys:n.dims,coef:i.coef,rSquared:i.rSquared}));const d=f||nt(n,e.x),h=e=>{const t={};for(let e=0;eh([e,i.predict(e)]))):Rl(i.predict,d,25,200).forEach(h)})),this.value&&(n.rem=this.value),this.value=n.add=n.source=c}return n}});const lF=134217729;function uF(e,t,n,i,r){let o,a,s,l,u=t[0],c=i[0],f=0,d=0;c>u==c>-u?(o=u,u=t[++f]):(o=c,c=i[++d]);let h=0;if(fu==c>-u?(a=u+o,s=o-(a-u),u=t[++f]):(a=c+o,s=o-(a-c),c=i[++d]),o=a,0!==s&&(r[h++]=s);fu==c>-u?(a=o+u,l=a-o,s=o-(a-l)+(u-l),u=t[++f]):(a=o+c,l=a-o,s=o-(a-l)+(c-l),c=i[++d]),o=a,0!==s&&(r[h++]=s);for(;f0!=s>0)return l;const u=Math.abs(a+s);return Math.abs(l)>=33306690738754716e-32*u?l:-function(e,t,n,i,r,o,a){let s,l,u,c,f,d,h,p,g,m,y,v,b,x,w,_,O,k;const E=e-r,D=n-r,A=t-o,S=i-o;x=E*S,d=lF*E,h=d-(d-E),p=E-h,d=lF*S,g=d-(d-S),m=S-g,w=p*m-(x-h*g-p*g-h*m),_=A*D,d=lF*A,h=d-(d-A),p=A-h,d=lF*D,g=d-(d-D),m=D-g,O=p*m-(_-h*g-p*g-h*m),y=w-O,f=w-y,fF[0]=w-(y+f)+(f-O),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,fF[1]=b-(y+f)+(f-_),k=v+y,f=k-v,fF[2]=v-(k-f)+(y-f),fF[3]=k;let M=function(e,t){let n=t[0];for(let e=1;e<4;e++)n+=t[e];return n}(0,fF),C=22204460492503146e-32*a;if(M>=C||-M>=C)return M;if(f=e-E,s=e-(E+f)+(f-r),f=n-D,u=n-(D+f)+(f-r),f=t-A,l=t-(A+f)+(f-o),f=i-S,c=i-(S+f)+(f-o),0===s&&0===l&&0===u&&0===c)return M;if(C=11093356479670487e-47*a+33306690738754706e-32*Math.abs(M),M+=E*c+S*s-(A*u+D*l),M>=C||-M>=C)return M;x=s*S,d=lF*s,h=d-(d-s),p=s-h,d=lF*S,g=d-(d-S),m=S-g,w=p*m-(x-h*g-p*g-h*m),_=l*D,d=lF*l,h=d-(d-l),p=l-h,d=lF*D,g=d-(d-D),m=D-g,O=p*m-(_-h*g-p*g-h*m),y=w-O,f=w-y,gF[0]=w-(y+f)+(f-O),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,gF[1]=b-(y+f)+(f-_),k=v+y,f=k-v,gF[2]=v-(k-f)+(y-f),gF[3]=k;const F=uF(4,fF,4,gF,dF);x=E*c,d=lF*E,h=d-(d-E),p=E-h,d=lF*c,g=d-(d-c),m=c-g,w=p*m-(x-h*g-p*g-h*m),_=A*u,d=lF*A,h=d-(d-A),p=A-h,d=lF*u,g=d-(d-u),m=u-g,O=p*m-(_-h*g-p*g-h*m),y=w-O,f=w-y,gF[0]=w-(y+f)+(f-O),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,gF[1]=b-(y+f)+(f-_),k=v+y,f=k-v,gF[2]=v-(k-f)+(y-f),gF[3]=k;const j=uF(F,dF,4,gF,hF);x=s*c,d=lF*s,h=d-(d-s),p=s-h,d=lF*c,g=d-(d-c),m=c-g,w=p*m-(x-h*g-p*g-h*m),_=l*u,d=lF*l,h=d-(d-l),p=l-h,d=lF*u,g=d-(d-u),m=u-g,O=p*m-(_-h*g-p*g-h*m),y=w-O,f=w-y,gF[0]=w-(y+f)+(f-O),v=x+y,f=v-x,b=x-(v-f)+(y-f),y=b-_,f=b-y,gF[1]=b-(y+f)+(f-_),k=v+y,f=k-v,gF[2]=v-(k-f)+(y-f),gF[3]=k;const $=uF(j,hF,4,gF,pF);return pF[$-1]}(e,t,n,i,r,o,u)}cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(8),cF(8),cF(8),cF(4),cF(8),cF(8),cF(8),cF(12),cF(192),cF(192),cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(8),cF(8),cF(8),cF(8),cF(8),cF(8),cF(8),cF(8),cF(8),cF(4),cF(4),cF(4),cF(8),cF(16),cF(16),cF(16),cF(32),cF(32),cF(48),cF(64),cF(1152),cF(1152),cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(4),cF(24),cF(24),cF(24),cF(24),cF(24),cF(24),cF(24),cF(24),cF(24),cF(24),cF(1152),cF(1152),cF(1152),cF(1152),cF(1152),cF(2304),cF(2304),cF(3456),cF(5760),cF(8),cF(8),cF(8),cF(16),cF(24),cF(48),cF(48),cF(96),cF(192),cF(384),cF(384),cF(384),cF(768),cF(96),cF(96),cF(96),cF(1152);const yF=Math.pow(2,-52),vF=new Uint32Array(512);class bF{static from(e,t=EF,n=DF){const i=e.length,r=new Float64Array(2*i);for(let o=0;o>1;if(t>0&&"number"!=typeof e[0])throw new Error("Expected coords to contain numbers.");this.coords=e;const n=Math.max(2*t-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(t)),this._hullPrev=new Uint32Array(t),this._hullNext=new Uint32Array(t),this._hullTri=new Uint32Array(t),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(t),this._dists=new Float64Array(t),this.update()}update(){const{coords:e,_hullPrev:t,_hullNext:n,_hullTri:i,_hullHash:r}=this,o=e.length>>1;let a=1/0,s=1/0,l=-1/0,u=-1/0;for(let t=0;tl&&(l=n),i>u&&(u=i),this._ids[t]=t}const c=(a+l)/2,f=(s+u)/2;let d,h,p,g=1/0;for(let t=0;t0&&(h=t,g=n)}let v=e[2*h],b=e[2*h+1],x=1/0;for(let t=0;ti&&(t[n++]=r,i=this._dists[r])}return this.hull=t.subarray(0,n),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(mF(m,y,v,b,w,_)<0){const e=h,t=v,n=b;h=p,v=w,b=_,p=e,w=t,_=n}const O=function(e,t,n,i,r,o){const a=n-e,s=i-t,l=r-e,u=o-t,c=a*a+s*s,f=l*l+u*u,d=.5/(a*u-s*l);return{x:e+(u*c-s*f)*d,y:t+(a*f-l*c)*d}}(m,y,v,b,w,_);this._cx=O.x,this._cy=O.y;for(let t=0;t0&&Math.abs(u-o)<=yF&&Math.abs(c-a)<=yF)continue;if(o=u,a=c,l===d||l===h||l===p)continue;let f=0;for(let e=0,t=this._hashKey(u,c);e=0;)if(m=g,m===f){m=-1;break}if(-1===m)continue;let y=this._addTriangle(m,l,n[m],-1,-1,i[m]);i[l]=this._legalize(y+2),i[m]=y,k++;let v=n[m];for(;g=n[v],mF(u,c,e[2*v],e[2*v+1],e[2*g],e[2*g+1])<0;)y=this._addTriangle(v,l,g,i[l],-1,i[v]),i[l]=this._legalize(y+2),n[v]=v,k--,v=g;if(m===f)for(;g=t[m],mF(u,c,e[2*g],e[2*g+1],e[2*m],e[2*m+1])<0;)y=this._addTriangle(g,l,m,-1,i[m],i[g]),this._legalize(y+2),i[g]=y,n[m]=m,k--,m=g;this._hullStart=t[l]=m,n[m]=t[v]=l,n[l]=v,r[this._hashKey(u,c)]=l,r[this._hashKey(e[2*m],e[2*m+1])]=m}this.hull=new Uint32Array(k);for(let e=0,t=this._hullStart;e0?3-n:1+n)/4}(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:t,_halfedges:n,coords:i}=this;let r=0,o=0;for(;;){const a=n[e],s=e-e%3;if(o=s+(e+2)%3,-1===a){if(0===r)break;e=vF[--r];continue}const l=a-a%3,u=s+(e+1)%3,c=l+(a+2)%3,f=t[o],d=t[e],h=t[u],p=t[c];if(wF(i[2*f],i[2*f+1],i[2*d],i[2*d+1],i[2*h],i[2*h+1],i[2*p],i[2*p+1])){t[e]=p,t[a]=f;const i=n[c];if(-1===i){let t=this._hullStart;do{if(this._hullTri[t]===c){this._hullTri[t]=e;break}t=this._hullPrev[t]}while(t!==this._hullStart)}this._link(e,i),this._link(a,n[o]),this._link(o,c);const s=l+(a+1)%3;r=n&&t[e[a]]>o;)e[a+1]=e[a--];e[a+1]=i}else{let r=n+1,o=i;kF(e,n+i>>1,r),t[e[n]]>t[e[i]]&&kF(e,n,i),t[e[r]]>t[e[i]]&&kF(e,r,i),t[e[n]]>t[e[r]]&&kF(e,n,r);const a=e[r],s=t[a];for(;;){do{r++}while(t[e[r]]s);if(o=o-n?(OF(e,t,r,i),OF(e,t,n,o-1)):(OF(e,t,n,o-1),OF(e,t,r,i))}}function kF(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function EF(e){return e[0]}function DF(e){return e[1]}const AF=1e-6;class SF{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,t){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,t){this._+=`L${this._x1=+e},${this._y1=+t}`}arc(e,t,n){const i=(e=+e)+(n=+n),r=t=+t;if(n<0)throw new Error("negative radius");null===this._x1?this._+=`M${i},${r}`:(Math.abs(this._x1-i)>AF||Math.abs(this._y1-r)>AF)&&(this._+="L"+i+","+r),n&&(this._+=`A${n},${n},0,1,1,${e-n},${t}A${n},${n},0,1,1,${this._x1=i},${this._y1=r}`)}rect(e,t,n,i){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${+n}v${+i}h${-n}Z`}value(){return this._||null}}class MF{constructor(){this._=[]}moveTo(e,t){this._.push([e,t])}closePath(){this._.push(this._[0].slice())}lineTo(e,t){this._.push([e,t])}value(){return this._.length?this._:null}}class CF{constructor(e,[t,n,i,r]=[0,0,960,500]){if(!((i=+i)>=(t=+t)&&(r=+r)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(2*e.points.length),this.vectors=new Float64Array(2*e.points.length),this.xmax=i,this.xmin=t,this.ymax=r,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:t,triangles:n},vectors:i}=this,r=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let t,i,o=0,a=0,s=n.length;o1;)r-=2;for(let e=2;e0){if(t>=this.ymax)return null;(r=(this.ymax-t)/i)0){if(e>=this.xmax)return null;(r=(this.xmax-e)/n)this.xmax?2:0)|(tthis.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let t=0;t2&&function(e){const{triangles:t,coords:n}=e;for(let e=0;e1e-10)return!1}return!0}(e)){this.collinear=Int32Array.from({length:t.length/2},((e,t)=>t)).sort(((e,n)=>t[2*e]-t[2*n]||t[2*e+1]-t[2*n+1]));const e=this.collinear[0],n=this.collinear[this.collinear.length-1],i=[t[2*e],t[2*e+1],t[2*n],t[2*n+1]],r=1e-8*Math.hypot(i[3]-i[1],i[2]-i[0]);for(let e=0,n=t.length/2;e0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=i[0],o[i[0]]=1,2===i.length&&(o[i[1]]=0,this.triangles[1]=i[1],this.triangles[2]=i[1]))}voronoi(e){return new CF(this,e)}*neighbors(e){const{inedges:t,hull:n,_hullIndex:i,halfedges:r,triangles:o,collinear:a}=this;if(a){const t=a.indexOf(e);return t>0&&(yield a[t-1]),void(t=0&&r!==n&&r!==i;)n=r;return r}_step(e,t,n){const{inedges:i,hull:r,_hullIndex:o,halfedges:a,triangles:s,points:l}=this;if(-1===i[e]||!l.length)return(e+1)%(l.length>>1);let u=e,c=jF(t-l[2*e],2)+jF(n-l[2*e+1],2);const f=i[e];let d=f;do{let i=s[d];const f=jF(t-l[2*i],2)+jF(n-l[2*i+1],2);if(f>5<<5,l=~~Math.max(Math.abs(v+b),Math.abs(v-b))}else a=a+31>>5<<5;if(l>h&&(h=l),f+a>=2048&&(f=0,d+=h,h=0),d+l>=UF)break;r.translate((f+(a>>1))/o,(d+(l>>1))/o),t.rotate&&r.rotate(t.rotate*BF),r.fillText(t.text,0,0),t.padding&&(r.lineWidth=2*t.padding,r.strokeText(t.text,0,0)),r.restore(),t.width=a,t.height=l,t.xoff=f,t.yoff=d,t.x1=a>>1,t.y1=l>>1,t.x0=-t.x1,t.y0=-t.y1,t.hasText=!0,f+=a}for(var w=r.getImageData(0,0,2048/o,UF/o).data,_=[];--i>=0;)if((t=n[i]).hasText){for(s=(a=t.width)>>5,l=t.y1-t.y0,u=0;u>5),D=w[2048*(d+c)+(f+u)<<2]?1<<31-u%32:0;_[E]|=D,O|=D}O?k=c:(t.y0++,l--,c--,d++)}t.y1=t.y0+k,t.sprite=_.slice(0,(t.y1-t.y0)*s)}}}function qF(e,t,n){n>>=5;for(var i,r=e.sprite,o=e.width>>5,a=e.x-(o<<4),s=127&a,l=32-s,u=e.y1-e.y0,c=(e.y+e.y0)*n+(a>>5),f=0;f>>s:0))&t[c+d])return!0;c+=n}return!1}function WF(e,t){var n=e[0],i=e[1];t.x+t.x0i.x&&(i.x=t.x+t.x1),t.y+t.y1>i.y&&(i.y=t.y+t.y1)}function HF(e,t){return e.x+e.x1>t[0].x&&e.x+e.x0t[0].y&&e.y+e.y0=f));)if(t.x=a+r,t.y=u+o,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>s[0]||t.y+t.y1>s[1])&&(!n||!qF(t,e,s[0]))&&(!n||HF(t,n))){for(var g,m=t.sprite,y=t.width>>5,v=s[0]>>5,b=t.x-(y<<4),x=127&b,w=32-x,_=t.y1-t.y0,O=(t.y+t.y0)*v+(b>>5),k=0;k<_;k++){g=0;for(var E=0;E<=y;E++)e[O+E]|=g<>>x:0);O+=v}return t.sprite=null,!0}return!1}return f.layout=function(){for(var l=function(e){e.width=e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);e.width=2048/t,e.height=UF/t;var n=e.getContext("2d");return n.fillStyle=n.strokeStyle="red",n.textAlign="center",{context:n,ratio:t}}(Sf()),f=function(e){for(var t=[],n=-1;++n>5)*s[1]),h=null,p=u.length,g=-1,m=[],y=u.map((s=>({text:e(s),font:t(s),style:i(s),weight:r(s),rotate:o(s),size:~~(n(s)+1e-14),padding:a(s),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:s}))).sort(((e,t)=>t.size-e.size));++g>1,v.y=s[1]*(c()+.5)>>1,IF(l,v,y,g),v.hasText&&d(f,v,h)&&(m.push(v),h?WF(h,v):h=[{x:v.x+v.x0,y:v.y+v.y0},{x:v.x+v.x1,y:v.y+v.y1}],v.x-=s[0]>>1,v.y-=s[1]>>1)}return m},f.words=function(e){return arguments.length?(u=e,f):u},f.size=function(e){return arguments.length?(s=[+e[0],+e[1]],f):s},f.font=function(e){return arguments.length?(t=GF(e),f):t},f.fontStyle=function(e){return arguments.length?(i=GF(e),f):i},f.fontWeight=function(e){return arguments.length?(r=GF(e),f):r},f.rotate=function(e){return arguments.length?(o=GF(e),f):o},f.text=function(t){return arguments.length?(e=GF(t),f):e},f.spiral=function(e){return arguments.length?(l=VF[e]||e,f):l},f.fontSize=function(e){return arguments.length?(n=GF(e),f):n},f.padding=function(e){return arguments.length?(a=GF(e),f):a},f.random=function(e){return arguments.length?(c=e,f):c},f}(),e)}QF.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:XF}]},ut(QF,$s,{transform(e,t){!e.size||e.size[0]&&e.size[1]||re("Wordcloud size dimensions must be non-zero.");const n=e.modified();if(!(n||t.changed(t.ADD_REM)||JF.some((function(n){const i=e[n];return Ge(i)&&t.modified(i.fields)}))))return;const i=t.materialize(t.SOURCE).source,r=this.value,o=e.as||XF;let a,s=e.fontSize||14;if(Ge(s)?a=e.fontSizeRange:s=Ke(s),a){const e=s,t=Fy("sqrt")().domain(nt(i,e)).range(a);s=n=>t(e(n))}i.forEach((e=>{e[o[0]]=NaN,e[o[1]]=NaN,e[o[3]]=0}));const l=r.words(i).text(e.text).size(e.size||[500,500]).padding(e.padding||1).spiral(e.spiral||"archimedean").rotate(e.rotate||0).font(e.font||"sans-serif").fontStyle(e.fontStyle||"normal").fontWeight(e.fontWeight||"normal").fontSize(s).random(Qs).layout(),u=r.size(),c=u[0]>>1,f=u[1]>>1,d=l.length;for(let e,t,n=0;nnew Uint8Array(e),KF=e=>new Uint16Array(e),ej=e=>new Uint32Array(e);function tj(e,t,n){const i=(t<257?ZF:t<65537?KF:ej)(e);return n&&i.set(n),i}function nj(e,t,n){const i=1<{const i=e[t],r=e[n];return ir?1:0})),function(e,t){return Array.from(t,(t=>e[t]))}(e,t)}(d,l),a)u=t,c=e,t=Array(a+s),e=ej(a+s),function(e,t,n,i,r,o,a,s,l){let u,c=0,f=0;for(u=0;c0)for(f=0;fe,size:()=>n}}function rj(e){$s.call(this,function(){let e=8,t=[],n=ej(0),i=tj(0,e),r=tj(0,e);return{data:()=>t,seen:()=>n=function(e,t,n){return e.length>=t?e:((n=n||new e.constructor(t)).set(e),n)}(n,t.length),add(e){for(let n,i=0,r=t.length,o=e.length;it.length,curr:()=>i,prev:()=>r,reset:e=>r[e]=i[e],all:()=>e<257?255:e<65537?65535:4294967295,set(e,t){i[e]|=t},clear(e,t){i[e]&=~t},resize(t,n){(t>i.length||n>e)&&(e=Math.max(n,e),i=tj(t,e,i),r=tj(t,e))}}}(),e),this._indices=null,this._dims=null}function oj(e){$s.call(this,null,e)}rj.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}}]},ut(rj,$s,{transform(e,t){return this._dims?e.modified("fields")||e.fields.some((e=>t.modified(e.fields)))?this.reinit(e,t):this.eval(e,t):this.init(e,t)},init(e,t){const n=e.fields,i=e.query,r=this._indices={},o=this._dims=[],a=i.length;let s,l,u=0;for(;u{const e=r.remove(t,n);for(const t in i)i[t].reindex(e)}))},update(e,t,n){const i=this._dims,r=e.query,o=t.stamp,a=i.length;let s,l,u=0;for(n.filters=0,l=0;lh)for(m=h,y=Math.min(f,p);mp)for(m=Math.max(f,p),y=d;mc)for(h=c,p=Math.min(l,f);hf)for(h=Math.max(l,f),p=u;hs[e]&n?null:a[e];return o.filter(o.MOD,u),r&r-1?(o.filter(o.ADD,(e=>{const t=s[e]&n;return!t&&t^l[e]&n?a[e]:null})),o.filter(o.REM,(e=>{const t=s[e]&n;return!t||t^t^l[e]&n?null:a[e]}))):(o.filter(o.ADD,u),o.filter(o.REM,(e=>(s[e]&n)===r?a[e]:null))),o.filter(o.SOURCE,(e=>u(e._index)))}});const aj="Literal",sj="CallExpression";function lj(e){this.type=e}var uj,cj,fj,dj,hj;lj.prototype.visit=function(e){let t,n,i;if(e(this))return 1;for(t=function(e){switch(e.type){case"ArrayExpression":return e.elements;case"BinaryExpression":case"LogicalExpression":return[e.left,e.right];case sj:return[e.callee].concat(e.arguments);case"ConditionalExpression":return[e.test,e.consequent,e.alternate];case"MemberExpression":return[e.object,e.property];case"ObjectExpression":return e.properties;case"Property":return[e.key,e.value];case"UnaryExpression":return[e.argument];default:return[]}}(this),n=0,i=t.length;n",uj[3]="Identifier",uj[4]="Keyword",uj[5]="Null",uj[6]="Numeric",uj[7]="Punctuator",uj[8]="String",uj[9]="RegularExpression";var pj="Identifier",gj="Unexpected token %0",mj="Invalid regular expression",yj="Invalid regular expression: missing /",vj="Octal literals are not allowed in strict mode.",bj="ILLEGAL",xj="Disabled.",wj=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]"),_j=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 Oj(e,t){if(!e)throw new Error("ASSERT: "+t)}function kj(e){return e>=48&&e<=57}function Ej(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function Dj(e){return"01234567".indexOf(e)>=0}function Aj(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 Sj(e){return 10===e||13===e||8232===e||8233===e}function Mj(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&wj.test(String.fromCharCode(e))}function Cj(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&_j.test(String.fromCharCode(e))}const Fj={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 jj(){for(;fj1114111||"}"!==e)&&Gj({},gj,bj),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),i=56320+(t-65536&1023),String.fromCharCode(n,i))}function Nj(){var e,t;for(e=cj.charCodeAt(fj++),t=String.fromCharCode(e),92===e&&(117!==cj.charCodeAt(fj)&&Gj({},gj,bj),++fj,(e=$j("u"))&&"\\"!==e&&Mj(e.charCodeAt(0))||Gj({},gj,bj),t=e);fj>>="===(i=cj.substr(fj,4))?{type:7,value:i,start:r,end:fj+=4}:">>>"===(n=i.substr(0,3))||"<<="===n||">>="===n?{type:7,value:n,start:r,end:fj+=3}:a===(t=n.substr(0,2))[1]&&"+-<>&|".indexOf(a)>=0||"=>"===t?{type:7,value:t,start:r,end:fj+=2}:("//"===t&&Gj({},gj,bj),"<>=!+-*%&|^/".indexOf(a)>=0?{type:7,value:a,start:r,end:++fj}:void Gj({},gj,bj))}function Pj(){var e,t,n;if(Oj(kj((n=cj[fj]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),t=fj,e="","."!==n){if(e=cj[fj++],n=cj[fj],"0"===e){if("x"===n||"X"===n)return++fj,function(e){let t="";for(;fj=dj)return{type:2,start:fj,end:fj};const e=cj.charCodeAt(fj);return Mj(e)?function(){var e,t;return e=fj,t=92===cj.charCodeAt(fj)?Nj():function(){var e,t;for(e=fj++;fj=0&&fj(Oj(t=0&&Gj({},mj,n),{value:n,literal:t}}(),i=function(e,t){let n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,((e,t)=>{if(parseInt(t,16)<=1114111)return"x";Gj({},mj)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch(e){Gj({},mj)}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:fj}}()),Bj()):Vj(Lj())}return n}function n$(){const e=[];if(Xj("("),!Jj(")"))for(;fj":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 s$(){var e,t;return e=function(){var e,t,n,i,r,o,a,s,l,u;if(e=hj,l=o$(),0===(r=a$(i=hj)))return l;for(i.prec=r,Lj(),t=[e,hj],o=[l,i,a=o$()];(r=a$(hj))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,l=o.pop(),t.pop(),n=Uj(s,l,a),o.push(n);(i=Lj()).prec=r,o.push(i),t.push(hj),n=o$(),o.push(n)}for(n=o[u=o.length-1],t.pop();u>1;)t.pop(),n=Uj(o[u-1].value,o[u-2],n),u-=2;return n}(),Jj("?")&&(Lj(),t=s$(),Xj(":"),e=function(e,t,n){const i=new lj("ConditionalExpression");return i.test=e,i.consequent=t,i.alternate=n,i}(e,t,s$())),e}function l$(){const e=s$();if(Jj(","))throw new Error(xj);return e}function u$(e){fj=0,dj=(cj=e).length,hj=null,Bj();const t=l$();if(2!==hj.type)throw new Error("Unexpect token after expression.");return t}var c$={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 f$(e){function t(t,n,i){return r=>function(t,n,i,r){let o=e(n[0]);return i&&(o=i+"("+o+")",0===i.lastIndexOf("new ",0)&&(o="("+o+")")),o+"."+t+(r<0?"":0===r?"()":"("+n.slice(1).map(e).join(",")+")")}(t,r,n,i)}const n="new Date",i="String",r="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(t){t.length<3&&re("Missing arguments to clamp function."),t.length>3&&re("Too many arguments to clamp function.");const n=t.map(e);return"Math.max("+n[1]+", Math.min("+n[2]+","+n[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:n,date:t("getDate",n,0),day:t("getDay",n,0),year:t("getFullYear",n,0),month:t("getMonth",n,0),hours:t("getHours",n,0),minutes:t("getMinutes",n,0),seconds:t("getSeconds",n,0),milliseconds:t("getMilliseconds",n,0),time:t("getTime",n,0),timezoneoffset:t("getTimezoneOffset",n,0),utcdate:t("getUTCDate",n,0),utcday:t("getUTCDay",n,0),utcyear:t("getUTCFullYear",n,0),utcmonth:t("getUTCMonth",n,0),utchours:t("getUTCHours",n,0),utcminutes:t("getUTCMinutes",n,0),utcseconds:t("getUTCSeconds",n,0),utcmilliseconds:t("getUTCMilliseconds",n,0),length:t("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:t("toUpperCase",i,0),lower:t("toLowerCase",i,0),substring:t("substring",i),split:t("split",i),trim:t("trim",i,0),regexp:r,test:t("test",r),if:function(t){t.length<3&&re("Missing arguments to if function."),t.length>3&&re("Too many arguments to if function.");const n=t.map(e);return"("+n[0]+"?"+n[1]+":"+n[2]+")"}}}function d$(e){const t=(e=e||{}).allowed?Mt(e.allowed):{},n=e.forbidden?Mt(e.forbidden):{},i=e.constants||c$,r=(e.functions||f$)(f),o=e.globalvar,a=e.fieldvar,s=Ge(o)?o:e=>`${o}["${e}"]`;let l={},u={},c=0;function f(e){if(mt(e))return e;const t=d[e.type];return null==t&&re("Unsupported type: "+e.type),t(e)}const d={Literal:e=>e.raw,Identifier:e=>{const r=e.name;return c>0?r:ot(n,r)?re("Illegal identifier: "+r):ot(i,r)?i[r]:ot(t,r)?r:(l[r]=1,s(r))},MemberExpression:e=>{const t=!e.computed,n=f(e.object);t&&(c+=1);const i=f(e.property);return n===a&&(u[function(e){const t=e&&e.length-1;return t&&('"'===e[0]&&'"'===e[t]||"'"===e[0]&&"'"===e[t])?e.slice(1,-1):e}(i)]=1),t&&(c-=1),n+(t?"."+i:"["+i+"]")},CallExpression:e=>{"Identifier"!==e.callee.type&&re("Illegal callee type: "+e.callee.type);const t=e.callee.name,n=e.arguments,i=ot(r,t)&&r[t];return i||re("Unrecognized function: "+t),Ge(i)?i(n):i+"("+n.map(f).join(",")+")"},ArrayExpression:e=>"["+e.elements.map(f).join(",")+"]",BinaryExpression:e=>"("+f(e.left)+" "+e.operator+" "+f(e.right)+")",UnaryExpression:e=>"("+e.operator+f(e.argument)+")",ConditionalExpression:e=>"("+f(e.test)+"?"+f(e.consequent)+":"+f(e.alternate)+")",LogicalExpression:e=>"("+f(e.left)+e.operator+f(e.right)+")",ObjectExpression:e=>"{"+e.properties.map(f).join(",")+"}",Property:e=>{c+=1;const t=f(e.key);return c-=1,t+":"+f(e.value)}};function h(e){const t={code:f(e),globals:Object.keys(l),fields:Object.keys(u)};return l={},u={},t}return h.functions=r,h.constants=i,h}var h$,p$,g$,m$,y$,v$,b$,x$,w$,_$,O$,k$,E$,D$,A$,S$,M$=new Uk,C$=new Uk,F$={point:fE,lineStart:fE,lineEnd:fE,polygonStart:function(){M$=new Uk,F$.lineStart=j$,F$.lineEnd=$$},polygonEnd:function(){var e=+M$;C$.add(e<0?Gk+e:e),this.lineStart=this.lineEnd=this.point=fE},sphere:function(){C$.add(Gk)}};function j$(){F$.point=T$}function $$(){N$(h$,p$)}function T$(e,t){F$.point=N$,h$=e,p$=t,g$=e*=Xk,m$=Kk(t=(t*=Xk)/2+Yk),y$=oE(t)}function N$(e,t){var n=(e*=Xk)-g$,i=n>=0?1:-1,r=i*n,o=Kk(t=(t*=Xk)/2+Yk),a=oE(t),s=y$*a,l=m$*o+s*Kk(r),u=s*i*oE(r);M$.add(Zk(u,l)),g$=e,m$=o,y$=a}var z$,P$,R$,L$,B$,U$,I$,q$,W$,H$,Y$,G$,V$,X$,J$,Q$,Z$={point:K$,lineStart:tT,lineEnd:nT,polygonStart:function(){Z$.point=iT,Z$.lineStart=rT,Z$.lineEnd=oT,D$=new Uk,F$.polygonStart()},polygonEnd:function(){F$.polygonEnd(),Z$.point=K$,Z$.lineStart=tT,Z$.lineEnd=nT,M$<0?(v$=-(x$=180),b$=-(w$=90)):D$>Ik?w$=90:D$<-1e-6&&(b$=-90),S$[0]=v$,S$[1]=x$},sphere:function(){v$=-(x$=180),b$=-(w$=90)}};function K$(e,t){A$.push(S$=[v$=e,x$=e]),tw$&&(w$=t)}function eT(e,t){var n=kD([e*Xk,t*Xk]);if(E$){var i=DD(E$,n),r=DD([i[1],-i[0],0],i);MD(r),r=OD(r);var o,a=e-_$,s=a>0?1:-1,l=r[0]*Vk*s,u=Jk(a)>180;u^(s*_$w$&&(w$=o):u^(s*_$<(l=(l+360)%360-180)&&lw$&&(w$=t)),u?e<_$?aT(v$,e)>aT(v$,x$)&&(x$=e):aT(e,x$)>aT(v$,x$)&&(v$=e):x$>=v$?(ex$&&(x$=e)):e>_$?aT(v$,e)>aT(v$,x$)&&(x$=e):aT(e,x$)>aT(v$,x$)&&(v$=e)}else A$.push(S$=[v$=e,x$=e]);tw$&&(w$=t),E$=n,_$=e}function tT(){Z$.point=eT}function nT(){S$[0]=v$,S$[1]=x$,Z$.point=K$,E$=null}function iT(e,t){if(E$){var n=e-_$;D$.add(Jk(n)>180?n+(n>0?360:-360):n)}else O$=e,k$=t;F$.point(e,t),eT(e,t)}function rT(){F$.lineStart()}function oT(){iT(O$,k$),F$.lineEnd(),Jk(D$)>Ik&&(v$=-(x$=180)),S$[0]=v$,S$[1]=x$,E$=null}function aT(e,t){return(t-=e)<0?t+360:t}function sT(e,t){return e[0]-t[0]}function lT(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:tt?1:e>=t?0:NaN}function wT(e,t){return null==e||null==t?NaN:te?1:t>=e?0:NaN}function _T(){return 0}function OT(e){return e instanceof Qg?e:new Qg(e)}const kT="intersect",ET="union",DT="_vgsid_",AT=ae(DT),ST="index:unit";function MT(e,t){for(var n,i,r=t.fields,o=t.values,a=r.length,s=0;s>>1;n(e[t],i)<0?r=t+1:o=t}while(rxT(e(t),n),i=(t,n)=>e(t)-n):(t=e===xT||e===wT?e:_T,n=e,i=e),{left:r,center:function(e,t,n=0,o=e.length){const a=r(e,t,n,o-1);return a>n&&i(e[a-1],t)>-i(e[a],t)?a-1:a},right:function(e,i,r=0,o=e.length){if(r>>1;n(e[t],i)<=0?r=t+1:o=t}while(rt.indexOf(e)>=0)):t},R_union:function(e,t){var n=Ae(t[0]),i=Ae(t[1]);return n>i&&(n=t[1],i=t[0]),e.length?(e[0]>n&&(e[0]=n),e[1]i&&(n=t[1],i=t[0]),e.length?ii&&(e[1]=i),e):[n,i]}};function TT(e,t,n,i){t[0].type!==aj&&re("First argument to selection functions must be a string literal.");const r=t[0].value,o=":"+r;(t.length>=2&&De(t).value)!==kT||ot(i,"@unit")||(i["@unit"]=n.getData(r).indataRef(n,"unit")),ot(i,o)||(i[o]=n.getData(r).tuplesRef())}function NT(e){const t=this.context.data[e];return t?t.values.value:[]}const zT=e=>function(t,n){return this.context.dataflow.locale()[e](n)(t)},PT=zT("format"),RT=zT("timeFormat"),LT=zT("utcFormat"),BT=zT("timeParse"),UT=zT("utcParse"),IT=new Date(2e3,0,1);function qT(e,t,n){return Number.isInteger(e)&&Number.isInteger(t)?(IT.setYear(2e3),IT.setMonth(e),IT.setDate(t),RT.call(this,IT,n)):""}function WT(e,t,n,i){t[0].type!==aj&&re("First argument to data functions must be a string literal.");const r=t[0].value,o=":"+r;if(!ot(o,i))try{i[o]=n.getData(r).tuplesRef()}catch(e){}}function HT(e,t,n,i){if(t[0].type===aj)YT(n,i,t[0].value);else for(e in n.scales)YT(n,i,e)}function YT(e,t,n){const i="%"+n;if(!ot(t,i))try{t[i]=e.scaleRef(n)}catch(e){}}function GT(e,t){if(Ge(e))return e;if(mt(e)){const i=t.scales[e];return i&&((n=i.value)&&!0===n[Sy])?i.value:void 0}var n}function VT(e,t){return function(n,i,r){if(n){const t=GT(n,(r||this).context);return t&&t.path[e](i)}return t(i)}}const XT=VT("area",(function(e){return C$=new Uk,Bk(e,F$),2*C$})),JT=VT("bounds",(function(e){var t,n,i,r,o,a,s;if(w$=x$=-(v$=b$=1/0),A$=[],Bk(e,Z$),n=A$.length){for(A$.sort(sT),t=1,o=[i=A$[0]];taT(i[0],i[1])&&(i[1]=r[1]),aT(r[0],i[1])>aT(i[0],i[1])&&(i[0]=r[0])):o.push(i=r);for(a=-1/0,t=0,i=o[n=o.length-1];t<=n;i=r,++t)r=o[t],(s=aT(i[1],r[0]))>a&&(a=s,v$=r[0],x$=i[1])}return A$=S$=null,v$===1/0||b$===1/0?[[NaN,NaN],[NaN,NaN]]:[[v$,b$],[x$,w$]]})),QT=VT("centroid",(function(e){z$=P$=R$=L$=B$=U$=I$=q$=0,W$=new Uk,H$=new Uk,Y$=new Uk,Bk(e,uT);var t=+W$,n=+H$,i=+Y$,r=nE(t,n,i);return rnN(e,t)}const rN={};function oN(e){return xe(e)||ArrayBuffer.isView(e)?e:null}function aN(e){return oN(e)||(mt(e)?e:null)}const sN=e=>e.data;function lN(e,t){const n=NT.call(t,e);return n.root&&n.root.lookup||{}}const uN=()=>"undefined"!=typeof window&&window||null;function cN(e,t,n){if(!e)return[];const[i,r]=e,o=(new mb).set(i[0],i[1],r[0],r[1]);return q_(n||this.context.dataflow.scenegraph().root,o,function(e){let t=null;if(e){const n=He(e.marktype),i=He(e.markname);t=e=>(!n.length||n.some((t=>e.marktype===t)))&&(!i.length||i.some((t=>e.name===t)))}return t}(t))}const fN={random:()=>Qs(),cumulativeNormal:ll,cumulativeLogNormal:pl,cumulativeUniform:xl,densityNormal:sl,densityLogNormal:hl,densityUniform:bl,quantileNormal:ul,quantileLogNormal:gl,quantileUniform:wl,sampleNormal:al,sampleLogNormal:dl,sampleUniform:vl,isArray:xe,isBoolean:ft,isDate:dt,isDefined:e=>void 0!==e,isNumber:pt,isObject:we,isRegExp:gt,isString:mt,isTuple:es,isValid:e=>null!=e&&e==e,toBoolean:Et,toDate:e=>At(e),toNumber:Ae,toString:St,indexof:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;int(e),inScope:function(e){const t=this.context.group;let n=!1;if(t)for(;e;){if(e===t){n=!0;break}e=e.mark.group}return n},intersect:cN,clampRange:Ye,pinchDistance:function(e){const t=e.touches,n=t[0].clientX-t[1].clientX,i=t[0].clientY-t[1].clientY;return Math.sqrt(n*n+i*i)},pinchAngle:function(e){const t=e.touches;return Math.atan2(t[0].clientY-t[1].clientY,t[0].clientX-t[1].clientX)},screen:function(){const e=uN();return e?e.screen:{}},containerSize:function(){const e=this.context.dataflow,t=e.container&&e.container();return t?[t.clientWidth,t.clientHeight]:[void 0,void 0]},windowSize:function(){const e=uN();return e?[e.innerWidth,e.innerHeight]:[void 0,void 0]},bandspace:function(e,t,n){return ty(e||0,t||0,n||0)},setdata:function(e,t){const n=this.context.dataflow,i=this.context.data[e].input;return n.pulse(i,n.changeset().remove(fe).insert(t)),1},pathShape:function(e){let t=null;return function(n){return n?Lv(n,t=t||Sv(e)):e}},panLinear:Te,panLog:Ne,panPow:ze,panSymlog:Pe,zoomLinear:Le,zoomLog:Be,zoomPow:Ue,zoomSymlog:Ie,encode:function(e,t,n){if(e){const n=this.context.dataflow,i=e.mark.source;n.pulse(i,n.changeset().encode(e,t))}return void 0!==n?n:e},modify:function(e,t,n,i,r,o){const a=this.context.dataflow,s=this.context.data[e],l=s.input,u=a.stamp();let c,f,d=s.changes;if(!1===a._trigger||!(l.value.length||t||i))return 0;if((!d||d.stamp{s.modified=!0,a.pulse(l,d).run()}),!0,1)),n&&(c=!0===n?fe:xe(n)||es(n)?n:iN(n),d.remove(c)),t&&d.insert(t),i&&(c=iN(i),l.value.some(c)?d.remove(c):d.insert(i)),r)for(f in o)d.modify(r,f,o[f]);return 1},lassoAppend:function(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5;const r=(e=He(e))[e.length-1];return void 0===r||Math.sqrt((r[0]-t)**2+(r[1]-n)**2)>i?[...e,[t,n]]:e},lassoPath:function(e){return He(e).reduce(((t,n,i)=>{let[r,o]=n;return t+(0==i?`M ${r},${o} `:i===e.length-1?" Z":`L ${r},${o} `)}),"")},intersectLasso:function(e,t,n){const{x:i,y:r,mark:o}=n,a=(new mb).set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[e,n]of t)ea.x2&&(a.x2=e),na.y2&&(a.y2=n);return a.translate(i,r),cN([[a.x1,a.y1],[a.x2,a.y2]],e,o).filter((e=>function(e,t,n){let i=0;for(let r=0,o=n.length-1;rt!=s>t&&e<(a-l)*(t-u)/(s-u)+l&&i++}return 1&i}(e.x,e.y,t)))}},dN=["view","item","group","xy","x","y"],hN="this.",pN={},gN={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:e=>`_[${kt("$"+e)}]`,functions:function(e){const t=f$(e);dN.forEach((e=>t[e]="event.vega."+e));for(const e in fN)t[e]=hN+e;return tt(t,function(e,t,n){t.__bandwidth=e=>e&&e.bandwidth?e.bandwidth():0,n._bandwidth=HT,n._range=HT,n._scale=HT;const i=t=>"_["+(t.type===aj?kt("%"+t.value):kt("%")+"+"+e(t))+"]";return{_bandwidth:e=>`this.__bandwidth(${i(e[0])})`,_range:e=>`${i(e[0])}.range()`,_scale:t=>`${i(t[0])}(${e(t[1])})`}}(e,fN,pN)),t},constants:c$,visitors:pN},mN=d$(gN);function yN(e,t,n){return 1===arguments.length?fN[e]:(fN[e]=t,n&&(pN[e]=n),mN&&(mN.functions[e]=hN+e),this)}function vN(e,t){const n={};let i;try{i=u$(e=mt(e)?e:kt(e)+"")}catch(t){re("Expression parse error: "+e)}i.visit((e=>{if(e.type!==sj)return;const i=e.callee.name,r=gN.visitors[i];r&&r(i,e.arguments,t,n)}));const r=mN(i);return r.globals.forEach((e=>{const i="$"+e;!ot(n,i)&&t.getSignal(e)&&(n[i]=t.signalRef(e))})),{$expr:tt({code:r.code},t.options.ast?{ast:i}:null),$fields:r.fields,$params:n}}yN("bandwidth",(function(e,t){const n=GT(e,(t||this).context);return n&&n.bandwidth?n.bandwidth():0}),HT),yN("copy",(function(e,t){const n=GT(e,(t||this).context);return n?n.copy():void 0}),HT),yN("domain",(function(e,t){const n=GT(e,(t||this).context);return n?n.domain():[]}),HT),yN("range",(function(e,t){const n=GT(e,(t||this).context);return n&&n.range?n.range():[]}),HT),yN("invert",(function(e,t,n){const i=GT(e,(n||this).context);return i?xe(t)?(i.invertRange||i.invert)(t):(i.invert||i.invertExtent)(t):void 0}),HT),yN("scale",(function(e,t,n){const i=GT(e,(n||this).context);return i?i(t):void 0}),HT),yN("gradient",(function(e,t,n,i,r){e=GT(e,(r||this).context);const o=xv(t,n);let a=e.domain(),s=a[0],l=De(a),u=le;return l-s?u=Wy(e,s,l):e=(e.interpolator?Fy("sequential")().interpolator(e.interpolator()):Fy("linear")().interpolate(e.interpolate()).range(e.range())).domain([s=0,l=1]),e.ticks&&(a=e.ticks(+i||15),s!==a[0]&&a.unshift(s),l!==De(a)&&a.push(l)),a.forEach((t=>o.stop(u(t),e(t)))),o}),HT),yN("geoArea",XT,HT),yN("geoBounds",JT,HT),yN("geoCentroid",QT,HT),yN("geoShape",(function(e,t,n){const i=GT(e,(n||this).context);return function(e){return i?i.path.context(e)(t):""}}),HT),yN("indata",(function(e,t,n){const i=this.context.data[e]["index:"+t],r=i?i.value.get(n):void 0;return r?r.count:r}),(function(e,t,n,i){t[0].type!==aj&&re("First argument to indata must be a string literal."),t[1].type!==aj&&re("Second argument to indata must be a string literal.");const r=t[0].value,o=t[1].value,a="@"+o;ot(a,i)||(i[a]=n.getData(r).indataRef(n,o))})),yN("data",NT,WT),yN("treePath",(function(e,t,n){const i=lN(e,this),r=i[t],o=i[n];return r&&o?r.path(o).map(sN):void 0}),WT),yN("treeAncestors",(function(e,t){const n=lN(e,this)[t];return n?n.ancestors().map(sN):void 0}),WT),yN("vlSelectionTest",(function(e,t,n){for(var i,r,o,a,s,l=this.context.data[e],u=l?l.values.value:[],c=l?l[ST]&&l[ST].value:void 0,f=n===kT,d=u.length,h=0;h(e[o[n].field]=t,e)),{}))}else l=DT,u=AT(r),(f=(c=v[l]||(v[l]={}))[s]||(c[s]=[])).push(u),n&&(f=b[s]||(b[s]=[])).push({[DT]:u});return t=t||ET,v._vgsid_?v._vgsid_=$T[`_vgsid__${t}`](...Object.values(v._vgsid_)):Object.keys(v).forEach((e=>{v[e]=Object.keys(v[e]).map((t=>v[e][t])).reduce(((n,i)=>void 0===n?i:$T[`${x[e]}_${t}`](n,i)))})),y=Object.keys(b),n&&y.length&&(v[i?"vlPoint":"vlMulti"]=t===ET?{or:y.reduce(((e,t)=>(e.push(...b[t]),e)),[])}:{and:y.map((e=>({or:b[e]})))}),v}),TT),yN("vlSelectionTuples",(function(e,t){return e.map((e=>tt(t.fields?{values:t.fields.map((t=>(t.getter||(t.getter=ae(t.field)))(e.datum)))}:{[DT]:AT(e.datum)},t)))}));const bN=Mt(["rule"]),xN=Mt(["group","image","rect"]);function wN(e){return(e+"").toLowerCase()}function _N(e,t,n){n.endsWith(";")||(n="return("+n+");");const i=Function(...t.concat(n));return e&&e.functions?i.bind(e.functions):i}var ON={operator:(e,t)=>_N(e,["_"],t.code),parameter:(e,t)=>_N(e,["datum","_"],t.code),event:(e,t)=>_N(e,["event"],t.code),handler:(e,t)=>_N(e,["_","event"],`var datum=event.item&&event.item.datum;return ${t.code};`),encode:(e,t)=>{const{marktype:n,channels:i}=t;let r="var o=item,datum=o.datum,m=0,$;";for(const e in i){const t="o["+kt(e)+"]";r+=`$=${i[e].code};if(${t}!==$)${t}=$,m=1;`}return r+=function(e,t){let n="";return bN[t]||(e.x2&&(e.x?(xN[t]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),e.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),e.y2&&(e.y?(xN[t]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),e.yc&&(n+="o.y=o.yc-(o.height||0)/2;")),n}(i,n),r+="return m;",_N(e,["item","_"],r)},codegen:{get(e){const t=`[${e.map(kt).join("][")}]`,n=Function("_",`return _${t};`);return n.path=t,n},comparator(e,t){let n;const i=Function("a","b","var u, v; return "+e.map(((e,i)=>{const r=t[i];let o,a;return e.path?(o=`a${e.path}`,a=`b${e.path}`):((n=n||{})["f"+i]=e,o=`this.f${i}(a)`,a=`this.f${i}(b)`),function(e,t,n,i){return`((u = ${e}) < (v = ${t}) || u == null) && v != null ? ${n}\n : (u > v || v == null) && u != null ? ${i}\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n}\n : v !== v && u === u ? ${i} : `}(o,a,-r,r)})).join("")+"0;");return n?i.bind(n):i}}};function kN(e,t,n){if(!e||!we(e))return e;for(let i,r=0,o=EN.length;re&&e.$tupleid?ts:e));return t.fn[n]||(t.fn[n]=Ve(i,e.$order,t.expr.codegen))}},{key:"$context",parse:function(e,t){return t}},{key:"$subflow",parse:function(e,t){const n=e.$subflow;return function(e,i,r){const o=t.fork().parse(n),a=o.get(n.operators[0].id),s=o.signals.parent;return s&&s.set(r),a.detachSubflow=()=>t.detach(o),a}}},{key:"$tupleid",parse:function(){return ts}}];const DN={skip:!0};function AN(e,t,n,i){return new SN(e,t,n,i)}function SN(e,t,n,i){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=i||ON,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function MN(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}function CN(e,t){e&&(null==t?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}SN.prototype=MN.prototype={fork(){const e=new MN(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter((t=>t!==e));const t=Object.keys(e.nodes);for(const n of t)e.nodes[n]._targets=null;for(const n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){const n=this,i=n.dataflow,r=e.value;if(n.set(e.id,t),"collect"===wN(e.type)&&r&&(r.$ingest?i.ingest(t,r.$ingest,r.$format):r.$request?i.preload(t,r.$request,r.$format):i.pulse(t,i.changeset().insert(r))),e.root&&(n.root=t),e.parent){let r=n.get(e.parent.$ref);r?(i.connect(r,[t]),t.targets().add(r)):(n.unresolved=n.unresolved||[]).push((()=>{r=n.get(e.parent.$ref),i.connect(r,[t]),t.targets().add(r)}))}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(const i in e.data){const r=n.data[i]||(n.data[i]={});e.data[i].forEach((e=>r[e]=t))}},resolve(){return(this.unresolved||[]).forEach((e=>e())),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[wN(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,i,r){this.dataflow.on(t,n,i,r,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:function(e){const t=this,n=e.operators||[];return e.background&&(t.background=e.background),e.eventConfig&&(t.eventConfig=e.eventConfig),e.locale&&(t.locale=e.locale),n.forEach((e=>t.parseOperator(e))),n.forEach((e=>t.parseOperatorParameters(e))),(e.streams||[]).forEach((e=>t.parseStream(e))),(e.updates||[]).forEach((e=>t.parseUpdate(e))),t.resolve()},parseOperator:function(e){const t=this;"operator"!==wN(e.type)&&e.type?t.transform(e,e.type):t.operator(e,e.update?t.operatorExpression(e.update):null)},parseOperatorParameters:function(e){const t=this;if(e.params){const n=t.get(e.id);n||re("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}},parseParameters:function(e,t){t=t||{};const n=this;for(const i in e){const r=e[i];t[i]=xe(r)?r.map((e=>kN(e,n,t))):kN(r,n,t)}return t},parseStream:function(e){var t,n=this,i=null!=e.filter?n.eventExpression(e.filter):void 0,r=null!=e.stream?n.get(e.stream):void 0;e.source?r=n.events(e.source,e.type,i):e.merge&&(r=(t=e.merge.map((e=>n.get(e))))[0].merge.apply(t[0],t.slice(1))),e.between&&(t=e.between.map((e=>n.get(e))),r=r.between(t[0],t[1])),e.filter&&(r=r.filter(i)),null!=e.throttle&&(r=r.throttle(+e.throttle)),null!=e.debounce&&(r=r.debounce(+e.debounce)),null==r&&re("Invalid stream definition: "+JSON.stringify(e)),e.consume&&r.consume(!0),n.stream(e,r)},parseUpdate:function(e){var t,n=this,i=we(i=e.source)?i.$ref:i,r=n.get(i),o=e.update,a=void 0;r||re("Source not defined: "+e.source),t=e.target&&e.target.$expr?n.eventExpression(e.target.$expr):n.get(e.target),o&&o.$expr&&(o.$params&&(a=n.parseParameters(o.$params)),o=n.handlerExpression(o.$expr)),n.update(e,r,t,o,a)},getState:function(e){var t=this,n={};if(e.signals){var i=n.signals={};Object.keys(t.signals).forEach((n=>{const r=t.signals[n];e.signals(n,r)&&(i[n]=r.value)}))}if(e.data){var r=n.data={};Object.keys(t.data).forEach((n=>{const i=t.data[n];e.data(n,i)&&(r[n]=i.input.value)}))}return t.subcontext&&!1!==e.recurse&&(n.subcontext=t.subcontext.map((t=>t.getState(e)))),n},setState:function(e){var t=this,n=t.dataflow,i=e.data,r=e.signals;Object.keys(r||{}).forEach((e=>{n.update(t.signals[e],r[e],DN)})),Object.keys(i||{}).forEach((e=>{n.pulse(t.data[e].input,n.changeset().remove(fe).insert(i[e]))})),(e.subcontext||[]).forEach(((e,n)=>{const i=t.subcontext[n];i&&i.setState(e)}))}};const FN="default";function jN(e,t){const n=e.globalCursor()?"undefined"!=typeof document&&document.body:e.container();if(n)return null==t?n.style.removeProperty("cursor"):n.style.cursor=t}function $N(e,t){var n=e._runtime.data;return ot(n,t)||re("Unrecognized data set: "+t),n[t]}function TN(e,t){ls(t)||re("Second argument to changes must be a changeset.");const n=$N(this,e);return n.modified=!0,this.pulse(n.input,t)}function NN(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function zN(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function PN(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}const RN="view",LN={trap:!1};function BN(e,t,n,i){e._eventListeners.push({type:n,sources:He(t),handler:i})}function UN(e,t,n){const i=e._eventConfig&&e._eventConfig[t];return!(!1===i||we(i)&&!i[n])||(e.warn(`Blocked ${t} ${n} event listener.`),!1)}function IN(e){return e.item}function qN(e){return e.item.mark.source}function WN(e){return function(t,n){return n.vega.view().changeset().encode(n.item,e)}}function HN(e,t,n){const i=document.createElement(e);for(const e in t)i.setAttribute(e,t[e]);return null!=n&&(i.textContent=n),i}function YN(e,t,n,i){const r=n.event||"input",o=()=>e.update(t.value);i.signal(n.signal,t.value),t.addEventListener(r,o),BN(i,t,r,o),e.set=e=>{t.value=e,t.dispatchEvent(function(e){return"undefined"!=typeof Event?new Event(e):{type:e}}(r))}}function GN(e,t,n,i){const r=i.signal(n.signal),o=HN("div",{class:"vega-bind"}),a="radio"===n.input?o:o.appendChild(HN("label"));a.appendChild(HN("span",{class:"vega-bind-name"},n.name||n.signal)),t.appendChild(o);let s=VN;switch(n.input){case"checkbox":s=XN;break;case"select":s=JN;break;case"radio":s=QN;break;case"range":s=ZN}s(e,a,n,r)}function VN(e,t,n,i){const r=HN("input");for(const e in n)"signal"!==e&&"element"!==e&&r.setAttribute("input"===e?"type":e,n[e]);r.setAttribute("name",n.signal),r.value=i,t.appendChild(r),r.addEventListener("input",(()=>e.update(r.value))),e.elements=[r],e.set=e=>r.value=e}function XN(e,t,n,i){const r={type:"checkbox",name:n.signal};i&&(r.checked=!0);const o=HN("input",r);t.appendChild(o),o.addEventListener("change",(()=>e.update(o.checked))),e.elements=[o],e.set=e=>o.checked=!!e||null}function JN(e,t,n,i){const r=HN("select",{name:n.signal}),o=n.labels||[];n.options.forEach(((e,t)=>{const n={value:e};KN(e,i)&&(n.selected=!0),r.appendChild(HN("option",n,(o[t]||e)+""))})),t.appendChild(r),r.addEventListener("change",(()=>{e.update(n.options[r.selectedIndex])})),e.elements=[r],e.set=e=>{for(let t=0,i=n.options.length;t{const s={type:"radio",name:n.signal,value:t};KN(t,i)&&(s.checked=!0);const l=HN("input",s);l.addEventListener("change",(()=>e.update(t)));const u=HN("label",{},(o[a]||t)+"");return u.prepend(l),r.appendChild(u),l})),e.set=t=>{const n=e.elements,i=n.length;for(let e=0;e{l.textContent=s.value,e.update(+s.value)};s.addEventListener("input",u),s.addEventListener("change",u),e.elements=[s],e.set=e=>{s.value=e,l.textContent=e}}function KN(e,t){return e===t||e+""==t+""}function ez(e,t,n,i,r,o){return(t=t||new i(e.loader())).initialize(n,NN(e),zN(e),PN(e),r,o).background(e.background())}function tz(e,t){return t?function(){try{t.apply(this,arguments)}catch(t){e.error(t)}}:null}function nz(e,t,n){if("string"==typeof t){if("undefined"==typeof document)return e.error("DOM document instance not found."),null;if(!(t=document.querySelector(t)))return e.error("Signal bind element not found: "+t),null}if(t&&n)try{t.textContent=""}catch(n){t=null,e.error(n)}return t}const iz=e=>+e||0;function rz(e){return we(e)?{top:iz(e.top),bottom:iz(e.bottom),left:iz(e.left),right:iz(e.right)}:(e=>({top:e,bottom:e,left:e,right:e}))(iz(e))}async function oz(e,t,n,i){const r=I_(t),o=r&&r.headless;return o||re("Unrecognized renderer type: "+t),await e.runAsync(),ez(e,null,null,o,n,i).renderAsync(e._scenegraph.root)}var az="padding",sz={skip:!0};function lz(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===az?i.left+i.right:0)}function uz(e,t){var n=e.autosize(),i=e.padding();return t-(n&&n.contains===az?i.top+i.bottom:0)}function cz(e,t){return t.modified&&xe(t.input.value)&&e.indexOf("_:vega:_")}function fz(e,t){return!("parent"===e||t instanceof Ts.proxy)}function dz(e,t,n,i){const r=e.element();r&&r.setAttribute("title",function(e){return null==e?"":xe(e)?hz(e):we(e)&&!dt(e)?(t=e,Object.keys(t).map((e=>{const n=t[e];return e+": "+(xe(n)?hz(n):pz(n))})).join("\n")):e+"";var t}(i))}function hz(e){return"["+e.map(pz).join(", ")+"]"}function pz(e){return xe(e)?"[…]":we(e)&&!dt(e)?"{…}":e}function gz(e,t){const n=this;if(t=t||{},Fs.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),null!=t.logLevel&&n.logLevel(t.logLevel),t.locale||e.locale){const i=tt({},e.locale,t.locale);n.locale(wa(i.number,i.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||B_.Canvas,n._scenegraph=new ww;const i=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||dz,n._redraw=!0,n._handler=(new Gw).scene(i),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=function(e){const t=tt({defaults:{}},e),n=(e,t)=>{t.forEach((t=>{xe(e[t])&&(e[t]=Mt(e[t]))}))};return n(t.defaults,["prevent","allow"]),n(t,["view","window","selector"]),t}(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const r=function(e,t,n){return AN(e,Ts,fN,n).parse(t)}(n,e,t.expr);n._runtime=r,n._signals=r.signals,n._bind=(e.bindings||[]).map((e=>({state:null,param:tt({},e)}))),r.root&&r.root.set(i),i.source=r.data.root.input,n.pulse(r.data.root.input,n.changeset().insert(i.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=lz(n,n._width),n._viewHeight=uz(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,function(e){var t=e._signals,n=t.width,i=t.height,r=t.padding;function o(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,(t=>{e._width=t.size,e._viewWidth=lz(e,t.size),o()}),{size:n}),e._resizeHeight=e.add(null,(t=>{e._height=t.size,e._viewHeight=uz(e,t.size),o()}),{size:i});const a=e.add(null,o,{pad:r});e._resizeWidth.rank=n.rank+1,e._resizeHeight.rank=i.rank+1,a.rank=r.rank+1}(n),function(e){e.add(null,(t=>(e._background=t.bg,e._resize=1,t.bg)),{bg:e._signals.background})}(n),function(e){const t=e._signals.cursor||(e._signals.cursor=e.add({user:FN,item:null}));e.on(e.events("view","mousemove"),t,((e,n)=>{const i=t.value,r=i?mt(i)?i:i.user:FN,o=n.item&&n.item.cursor||null;return i&&r===i.user&&o==i.item?i:{user:r,item:o}})),e.add(null,(function(t){let n=t.cursor,i=this.value;return mt(n)||(i=n.item,n=n.user),jN(e,n&&n!==FN?n:i||n),i}),{cursor:t})}(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind)}function mz(e,t){return ot(e._signals,t)?e._signals[t]:re("Unrecognized signal name: "+kt(t))}function yz(e,t){const n=(e._targets||[]).filter((e=>e._update&&e._update.handler===t));return n.length?n[0]:null}function vz(e,t,n,i){let r=yz(n,i);return r||(r=tz(e,(()=>i(t,n.value))),r.handler=i,e.on(n,null,r)),e}function bz(e,t,n){const i=yz(t,n);return i&&t._targets.remove(i),e}ut(gz,Fs,{async evaluate(e,t,n){if(await Fs.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,r=PN(i=this),o=NN(i),a=zN(i),i._renderer.background(i.background()),i._renderer.resize(o,a,r),i._handler.origin(r),i._resizeListeners.forEach((e=>{try{e(o,a)}catch(e){i.error(e)}}))),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(e){this.error(e)}var i,r,o,a;return n&&Qa(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){const t=null!=e?e+"":null;return t!==this._desc&&CN(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){const i=mz(this,e);return 1===arguments.length?i.value:this.update(i,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",rz(e)):rz(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(I_(e)||re("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(Fs.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(mz(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:function(e,t,n,i,r,o){this.runAfter((a=>{let s=0;a._autosize=0,a.width()!==n&&(s=1,a.signal("width",n,sz),a._resizeWidth.skip(!0)),a.height()!==i&&(s=1,a.signal("height",i,sz),a._resizeHeight.skip(!0)),a._viewWidth!==e&&(a._resize=1,a._viewWidth=e),a._viewHeight!==t&&(a._resize=1,a._viewHeight=t),a._origin[0]===r[0]&&a._origin[1]===r[1]||(a._resize=1,a._origin=r),s&&a.run("enter"),o&&a.runAfter((e=>e.resize()))}),!1,1)},addEventListener(e,t,n){let i=t;return n&&!1===n.trap||(i=tz(this,t),i.raw=t),this._handler.on(e,i),this},removeEventListener(e,t){for(var n,i,r=this._handler.handlers(e),o=r.length;--o>=0;)if(i=r[o].type,n=r[o].handler,e===i&&(t===n||t===n.raw)){this._handler.off(i,n);break}return this},addResizeListener(e){const t=this._resizeListeners;return t.indexOf(e)<0&&t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return vz(this,e,mz(this,e),t)},removeSignalListener(e,t){return bz(this,mz(this,e),t)},addDataListener(e,t){return vz(this,e,$N(this,e).values,t)},removeDataListener(e,t){return bz(this,$N(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=jN(this,null);this._globalCursor=!!e,t&&jN(this,t)}return this}return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:function(e,t){this._timers.push(function(e,t,n){var i=new tM,r=t;return null==t?(i.restart(e,t,n),i):(i._restart=i.restart,i.restart=function(e,t,n){t=+t,n=null==n?KS():+n,i._restart((function o(a){a+=r,i._restart(o,r+=t,n),e(a)}),t,n)},i.restart(e,t,n),i)}((function(t){e({timestamp:Date.now(),elapsed:t})}),t))},events:function(e,t,n){var i,r=this,o=new ys(n),a=function(n,i){r.runAsync(null,(()=>{e===RN&&function(e,t){var n=e._eventConfig.defaults,i=n.prevent,r=n.allow;return!1!==i&&!0!==r&&(!0===i||!1===r||(i?i[t]:r?!r[t]:e.preventDefault()))}(r,t)&&n.preventDefault(),o.receive(function(e,t,n){var i,r,o=e._renderer,a=o&&o.canvas();return a&&(r=PN(e),(i=Sw(t.changedTouches?t.changedTouches[0]:t,a))[0]-=r[0],i[1]-=r[1]),t.dataflow=e,t.item=n,t.vega=function(e,t,n){const i=t?"group"===t.mark.marktype?t:t.mark.group:null;function r(e){var n,r=i;if(e)for(n=t;n;n=n.mark.group)if(n.mark.name===e){r=n;break}return r&&r.mark&&r.mark.interactive?r:{}}function o(e){if(!e)return n;mt(e)&&(e=r(e));const t=n.slice();for(;e;)t[0]-=e.x||0,t[1]-=e.y||0,e=e.mark&&e.mark.group;return t}return{view:Ke(e),item:Ke(t||{}),group:r,xy:o,x:e=>o(e)[0],y:e=>o(e)[1]}}(e,n,i),t}(r,n,i))}))};if("timer"===e)UN(r,"timer",t)&&r.timer(a,t);else if(e===RN)UN(r,"view",t)&&r.addEventListener(t,a,LN);else if("window"===e?UN(r,"window",t)&&"undefined"!=typeof window&&(i=[window]):"undefined"!=typeof document&&UN(r,"selector",t)&&(i=Array.from(document.querySelectorAll(e))),i){for(var s=0,l=i.length;s=0;)r[e].stop();for(e=o.length;--e>=0;)for(t=(n=o[e]).sources.length;--t>=0;)n.sources[t].removeEventListener(n.type,n.handler);return i&&i.call(this,this._handler,null,null,null),this},hover:function(e,t){return t=[t||"update",(e=[e||"hover"])[0]],this.on(this.events("view","mouseover",IN),qN,WN(e)),this.on(this.events("view","mouseout",IN),qN,WN(t)),this},data:function(e,t){return arguments.length<2?$N(this,e).values.value:TN.call(this,e,us().remove(fe).insert(t))},change:TN,insert:function(e,t){return TN.call(this,e,us().insert(t))},remove:function(e,t){return TN.call(this,e,us().remove(t))},scale:function(e){var t=this._runtime.scales;return ot(t,e)||re("Unrecognized scale or projection: "+e),t[e].value},initialize:function(e,t){const n=this,i=n._renderType,r=n._eventConfig.bind,o=I_(i);e=n._el=e?nz(n,e,!0):null,function(e){const t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),CN(t,e.description()))}(n),o||n.error("Unrecognized renderer type: "+i);const a=o.handler||Gw,s=e?o.renderer:o.headless;return n._renderer=s?ez(n,n._renderer,e,s):null,n._handler=function(e,t,n,i){const r=new i(e.loader(),tz(e,e.tooltip())).scene(e.scenegraph().root).initialize(n,PN(e),e);return t&&t.handlers().forEach((e=>{r.on(e.type,e.handler)})),r}(n,n._handler,e,a),n._redraw=!0,e&&"none"!==r&&(t=t?n._elBind=nz(n,t,!0):e.appendChild(HN("form",{class:"vega-bindings"})),n._bind.forEach((e=>{e.param.element&&"container"!==r&&(e.element=nz(n,e.param.element,!!e.param.input))})),n._bind.forEach((e=>{!function(e,t,n){if(!t)return;const i=n.param;let r=n.state;r||(r=n.state={elements:null,active:!1,set:null,update:t=>{t!=e.signal(i.signal)&&e.runAsync(null,(()=>{r.source=!0,e.signal(i.signal,t)}))}},i.debounce&&(r.update=et(i.debounce,r.update))),(null==i.input&&i.element?YN:GN)(r,t,i,e),r.active||(e.on(e._signals[i.signal],null,(()=>{r.source?r.source=!1:r.set(e.signal(i.signal))})),r.active=!0)}(n,e.element||t,e)}))),n},toImageURL:async function(e,t){e!==B_.Canvas&&e!==B_.SVG&&e!==B_.PNG&&re("Unrecognized image type: "+e);const n=await oz(this,e,t);return e===B_.SVG?function(e,t){const n=new Blob([e],{type:"image/svg+xml"});return window.URL.createObjectURL(n)}(n.svg()):n.canvas().toDataURL("image/png")},toCanvas:async function(e,t){return(await oz(this,B_.Canvas,e,t)).canvas()},toSVG:async function(e){return(await oz(this,B_.SVG,e)).svg()},getState:function(e){return this._runtime.getState(e||{data:cz,signals:fz,recurse:!0})},setState:function(e){return this.runAsync(null,(t=>{t._trigger=!1,t._runtime.setState(e)}),(e=>{e._trigger=!0})),this}});const xz=/[[\]{}]/,wz={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let _z,Oz;function kz(e,t,n){return _z=t||"view",Oz=n||wz,Dz(e.trim()).map(Az)}function Ez(e,t,n,i,r){const o=e.length;let a,s=0;for(;t=0?--s:i&&i.indexOf(a)>=0&&++s}return t}function Dz(e){const t=[],n=e.length;let i=0,r=0;for(;r"!==(e=e.slice(i+1).trim())[0])throw"Expected '>' after between selector: "+e;n=n.map(Az);const r=Az(e.slice(1).trim());return r.between?{between:n,stream:r}:(r.between=n,r)}(e):function(e){const t={source:_z},n=[];let i,r,o=[0,0],a=0,s=0,l=e.length,u=0;if("}"===e[l-1]){if(u=e.lastIndexOf("{"),!(u>=0))throw"Unmatched right brace: "+e;try{o=function(e){const t=e.split(",");if(!e.length||t.length>2)throw e;return t.map((t=>{const n=+t;if(n!=n)throw e;return n}))}(e.substring(u+1,l-1))}catch(t){throw"Invalid throttle specification: "+e}l=(e=e.slice(0,u).trim()).length,u=0}if(!l)throw e;if("@"===e[0]&&(a=++u),i=Ez(e,u,":"),i1?(t.type=n[1],a?t.markname=n[0].slice(1):(c=n[0],Oz[c]?t.marktype=n[0]:t.source=n[0])):t.type=n[0],"!"===t.type.slice(-1)&&(t.consume=!0,t.type=t.type.slice(0,-1)),null!=r&&(t.filter=r),o[0]&&(t.throttle=o[0]),o[1]&&(t.debounce=o[1]),t}(e)}function Sz(e){return we(e)?e:{type:e||"pad"}}const Mz=e=>+e||0;function Cz(e){return we(e)?e.signal?e:{top:Mz(e.top),bottom:Mz(e.bottom),left:Mz(e.left),right:Mz(e.right)}:{top:t=Mz(e),bottom:t,left:t,right:t};var t}const Fz=e=>we(e)&&!xe(e)?tt({},e):{value:e};function jz(e,t,n,i){return null!=n?(we(n)&&!xe(n)||xe(n)&&n.length&&we(n[0])?e.update[t]=n:e[i||"enter"][t]={value:n},1):0}function $z(e,t,n){for(const n in t)jz(e,n,t[n]);for(const t in n)jz(e,t,n[t],"update")}function Tz(e,t,n){for(const i in t)n&&ot(n,i)||(e[i]=tt(e[i]||{},t[i]));return e}function Nz(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const zz="mark",Pz="frame",Rz="scope",Lz="legend-label";function Bz(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const Uz=e=>mt(e)?kt(e):e.signal?`(${e.signal})`:Hz(e);function Iz(e){if(null!=e.gradient)return function(e){const t=[e.start,e.stop,e.count].map((e=>null==e?null:kt(e)));for(;t.length&&null==De(t);)t.pop();return t.unshift(Uz(e.gradient)),`gradient(${t.join(",")})`}(e);let t=e.signal?`(${e.signal})`:e.color?function(e){return e.c?qz("hcl",e.h,e.c,e.l):e.h||e.s?qz("hsl",e.h,e.s,e.l):e.l||e.a?qz("lab",e.l,e.a,e.b):e.r||e.g||e.b?qz("rgb",e.r,e.g,e.b):null}(e.color):null!=e.field?Hz(e.field):void 0!==e.value?kt(e.value):void 0;return null!=e.scale&&(t=function(e,t){const n=Uz(e.scale);return null!=e.range?t=`lerp(_range(${n}), ${+e.range})`:(void 0!==t&&(t=`_scale(${n}, ${t})`),e.band&&(t=(t?t+"+":"")+`_bandwidth(${n})`+(1==+e.band?"":"*"+Wz(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),null==t&&(t="0")),t}(e,t)),void 0===t&&(t=null),null!=e.exponent&&(t=`pow(${t},${Wz(e.exponent)})`),null!=e.mult&&(t+=`*${Wz(e.mult)}`),null!=e.offset&&(t+=`+${Wz(e.offset)}`),e.round&&(t=`round(${t})`),t}const qz=(e,t,n,i)=>`(${e}(${[t,n,i].map(Iz).join(",")})+'')`;function Wz(e){return we(e)?"("+Iz(e)+")":e}function Hz(e){return Yz(we(e)?e:{datum:e})}function Yz(e){let t,n,i;if(e.signal)t="datum",i=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(i=e.parent,t+=".datum"):i=e.group}else e.datum?(t="datum",i=e.datum):re("Invalid field reference: "+kt(e));return e.signal||(i=mt(i)?oe(i).map(kt).join("]["):Yz(i)),t+"["+i+"]"}function Gz(e,t,n,i,r,o){const a={};(o=o||{}).encoders={$encode:a},e=function(e,t,n,i,r){const o={},a={};let s,l,u,c;for(l in l="lineBreak","text"!==t||null==r[l]||Nz(l,e)||Bz(o,l,r[l]),("legend"==n||String(n).startsWith("axis"))&&(n=null),c=n===Pz?r.group:n===zz?tt({},r.mark,r[t]):null,c)u=Nz(l,e)||("fill"===l||"stroke"===l)&&(Nz("fill",e)||Nz("stroke",e)),u||Bz(o,l,c[l]);for(l in He(i).forEach((t=>{const n=r.style&&r.style[t];for(const t in n)Nz(t,e)||Bz(o,t,n[t])})),e=tt({},e),o)c=o[l],c.signal?(s=s||{})[l]=c:a[l]=c;return e.enter=tt(a,e.enter),s&&(e.update=tt(s,e.update)),e}(e,t,n,i,r.config);for(const n in e)a[n]=Vz(e[n],t,o,r);return o}function Vz(e,t,n,i){const r={},o={};for(const t in e)null!=e[t]&&(r[t]=Xz((a=e[t],xe(a)?function(e){let t="";return e.forEach((e=>{const n=Iz(e);t+=e.test?`(${e.test})?${n}:`:n})),":"===De(t)&&(t+="null"),t}(a):Iz(a)),i,n,o));var a;return{$expr:{marktype:t,channels:r},$fields:Object.keys(o),$output:Object.keys(e)}}function Xz(e,t,n,i){const r=vN(e,t);return r.$fields.forEach((e=>i[e]=1)),tt(n,r.$params),r.$expr}const Jz=["value","update","init","react","bind"];function Qz(e,t){re(e+' for "outer" push: '+kt(t))}function Zz(e,t){const n=e.name;if("outer"===e.push)t.signals[n]||Qz("No prior signal definition",n),Jz.forEach((t=>{void 0!==e[t]&&Qz("Invalid property ",t)}));else{const i=t.addSignal(n,e.value);!1===e.react&&(i.react=!1),e.bind&&t.addBinding(n,e.bind)}}function Kz(e,t,n,i){this.id=-1,this.type=e,this.value=t,this.params=n,i&&(this.parent=i)}function eP(e,t,n,i){return new Kz(e,t,n,i)}function tP(e,t){return eP("operator",e,t)}function nP(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function iP(e,t){return t?{$field:e,$name:t}:{$field:e}}const rP=iP("key");function oP(e,t){return{$compare:e,$order:t}}function aP(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const sP="scope",lP="view";function uP(e){return e&&e.signal}function cP(e){if(uP(e))return!0;if(we(e))for(const t in e)if(cP(e[t]))return!0;return!1}function fP(e,t){return null!=e?e:t}function dP(e){return e&&e.signal||e}const hP="timer";function pP(e,t){return(e.merge?gP:e.stream?mP:e.type?yP:re("Invalid stream specification: "+kt(e)))(e,t)}function gP(e,t){const n=vP({merge:e.merge.map((e=>pP(e,t)))},e,t);return t.addStream(n).id}function mP(e,t){const n=vP({stream:pP(e.stream,t)},e,t);return t.addStream(n).id}function yP(e,t){let n;var i;e.type===hP?(n=t.event(hP,e.throttle),e={between:e.between,filter:e.filter}):n=t.event((i=e.source)===sP?lP:i||lP,e.type);const r=vP({stream:n},e,t);return 1===Object.keys(r).length?n:t.addStream(r).id}function vP(e,t,n){let i=t.between;return i&&(2!==i.length&&re('Stream "between" parameter must have 2 entries: '+kt(t)),e.between=[pP(i[0],n),pP(i[1],n)]),i=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&i.push(function(e,t,n){const i="event.item";return i+(e&&"*"!==e?"&&"+i+".mark.marktype==='"+e+"'":"")+(n?"&&"+i+".mark.role==='"+n+"'":"")+(t?"&&"+i+".mark.name==='"+t+"'":"")}(t.marktype,t.markname,t.markrole)),t.source===sP&&i.push("inScope(event.item)"),i.length&&(e.filter=vN("("+i.join(")&&(")+")",n).$expr),null!=(i=t.throttle)&&(e.throttle=+i),null!=(i=t.debounce)&&(e.debounce=+i),t.consume&&(e.consume=!0),e}const bP={code:"_.$value",ast:{type:"Identifier",value:"value"}};function xP(e){return{signal:"["+e.map((e=>e.scale?'scale("'+e.scale+'")':e.signal))+"]"}}const wP=e=>(t,n,i)=>eP(e,n,t||void 0,i),_P=wP("aggregate"),OP=wP("axisticks"),kP=wP("bound"),EP=wP("collect"),DP=wP("compare"),AP=wP("datajoin"),SP=wP("encode"),MP=wP("expression"),CP=wP("facet"),FP=wP("field"),jP=wP("key"),$P=wP("legendentries"),TP=wP("load"),NP=wP("mark"),zP=wP("multiextent"),PP=wP("multivalues"),RP=wP("overlap"),LP=wP("params"),BP=wP("prefacet"),UP=wP("projection"),IP=wP("proxy"),qP=wP("relay"),WP=wP("render"),HP=wP("scale"),YP=wP("sieve"),GP=wP("sortitems"),VP=wP("viewlayout"),XP=wP("values");let JP=0;const QP={min:"min",max:"max",count:"sum"};function ZP(e,t){const n=t.getScale(e.name).params;let i;for(i in n.domain=nR(e.domain,e,t),null!=e.range&&(n.range=cR(e,t,n)),null!=e.interpolate&&function(e,t){t.interpolate=KP(e.type||e),null!=e.gamma&&(t.interpolateGamma=KP(e.gamma))}(e.interpolate,n),null!=e.nice&&(n.nice=function(e){return we(e)?{interval:KP(e.interval),step:KP(e.step)}:KP(e)}(e.nice)),null!=e.bins&&(n.bins=function(e,t){return e.signal||xe(e)?eR(e,t):t.objectProperty(e)}(e.bins,t)),e)ot(n,i)||"name"===i||(n[i]=KP(e[i],t))}function KP(e,t){return we(e)?e.signal?t.signalRef(e.signal):re("Unsupported object: "+kt(e)):e}function eR(e,t){return e.signal?t.signalRef(e.signal):e.map((e=>KP(e,t)))}function tR(e){re("Can not find data set: "+kt(e))}function nR(e,t,n){if(e)return e.signal?n.signalRef(e.signal):(xe(e)?iR:e.fields?oR:rR)(e,t,n);null==t.domainMin&&null==t.domainMax||re("No scale domain defined for domainMin/domainMax to override.")}function iR(e,t,n){return e.map((e=>KP(e,n)))}function rR(e,t,n){const i=n.getData(e.data);return i||tR(e.data),Ny(t.type)?i.valuesRef(n,e.field,sR(e.sort,!1)):Ly(t.type)?i.domainRef(n,e.field):i.extentRef(n,e.field)}function oR(e,t,n){const i=e.data,r=e.fields.reduce(((e,t)=>(t=mt(t)?{data:i,field:t}:xe(t)||t.signal?function(e,t){const n="_:vega:_"+JP++,i=EP({});if(xe(e))i.value={$ingest:e};else if(e.signal){const r="setdata("+kt(n)+","+e.signal+")";i.params.input=t.signalRef(r)}return t.addDataPipeline(n,[i,YP({})]),{data:n,field:"data"}}(t,n):t,e.push(t),e)),[]);return(Ny(t.type)?aR:Ly(t.type)?lR:uR)(e,n,r)}function aR(e,t,n){const i=sR(e.sort,!0);let r,o;const a=n.map((e=>{const n=t.getData(e.data);return n||tR(e.data),n.countsRef(t,e.field,i)})),s={groupby:rP,pulse:a};i&&(r=i.op||"count",o=i.field?aP(r,i.field):"count",s.ops=[QP[r]],s.fields=[t.fieldRef(o)],s.as=[o]),r=t.add(_P(s));const l=t.add(EP({pulse:nP(r)}));return o=t.add(XP({field:rP,sort:t.sortRef(i),pulse:nP(l)})),nP(o)}function sR(e,t){return e&&(e.field||e.op?e.field||"count"===e.op?t&&e.field&&e.op&&!QP[e.op]&&re("Multiple domain scales can not be sorted using "+e.op):re("No field provided for sort aggregate op: "+e.op):we(e)?e.field="key":e={field:"key"}),e}function lR(e,t,n){const i=n.map((e=>{const n=t.getData(e.data);return n||tR(e.data),n.domainRef(t,e.field)}));return nP(t.add(PP({values:i})))}function uR(e,t,n){const i=n.map((e=>{const n=t.getData(e.data);return n||tR(e.data),n.extentRef(t,e.field)}));return nP(t.add(zP({extents:i})))}function cR(e,t,n){const i=t.config.range;let r=e.range;if(r.signal)return t.signalRef(r.signal);if(mt(r)){if(i&&ot(i,r))return cR(e=tt({},e,{range:i[r]}),t,n);"width"===r?r=[0,{signal:"width"}]:"height"===r?r=Ny(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:re("Unrecognized scale range value: "+kt(r))}else{if(r.scheme)return n.scheme=xe(r.scheme)?eR(r.scheme,t):KP(r.scheme,t),r.extent&&(n.schemeExtent=eR(r.extent,t)),void(r.count&&(n.schemeCount=KP(r.count,t)));if(r.step)return void(n.rangeStep=KP(r.step,t));if(Ny(e.type)&&!xe(r))return nR(r,e,t);xe(r)||re("Unsupported range type: "+kt(r))}return r.map((e=>(xe(e)?eR:KP)(e,t)))}function fR(e,t,n){return xe(e)?e.map((e=>fR(e,t,n))):we(e)?e.signal?n.signalRef(e.signal):"fit"===t?e:re("Unsupported parameter object: "+kt(e)):e}const dR="top",hR="left",pR="right",gR="bottom",mR="label",yR="perc",vR="value",bR="guide-label",xR="guide-title",wR="symbol",_R="gradient",OR="discrete",kR="size",ER=[kR,"shape","fill","stroke","strokeWidth","strokeDash","opacity"],DR={name:1,style:1,interactive:1},AR={value:0},SR={value:1},MR="group",CR="rect",FR="rule",jR="text";function $R(e){return e.type=MR,e.interactive=e.interactive||!1,e}function TR(e,t){const n=(n,i)=>fP(e[n],fP(t[n],i));return n.isVertical=n=>"vertical"===fP(e.direction,t.direction||(n?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>fP(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>fP(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>fP(e.columns,fP(t.columns,+n.isVertical(!0))),n}function NR(e,t){const n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function zR(e,t,n){return`item.anchor === 'start' ? ${e} : item.anchor === 'end' ? ${t} : ${n}`}const PR=zR(kt(hR),kt(pR),kt("center"));function RR(e,t){return t?e?we(e)?Object.assign({},e,{offset:RR(e.offset,t)}):{value:e,offset:t}:t:e}function LR(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=Tz(e.encode,t,DR)):e.interactive=!1,e}function BR(e,t,n,i){const r=TR(e,n),o=r.isVertical(),a=r.gradientThickness(),s=r.gradientLength();let l,u,c,f,d;o?(u=[0,1],c=[0,0],f=a,d=s):(u=[0,0],c=[1,0],f=s,d=a);const h={enter:l={opacity:AR,x:AR,y:AR,width:Fz(f),height:Fz(d)},update:tt({},l,{opacity:SR,fill:{gradient:t,start:u,stop:c}}),exit:{opacity:AR}};return $z(h,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")}),LR({type:CR,role:"legend-gradient",encode:h},i)}function UR(e,t,n,i,r){const o=TR(e,n),a=o.isVertical(),s=o.gradientThickness(),l=o.gradientLength();let u,c,f,d,h="";a?(u="y",f="y2",c="x",d="width",h="1-"):(u="x",f="x2",c="y",d="height");const p={opacity:AR,fill:{scale:t,field:vR}};p[u]={signal:h+"datum."+yR,mult:l},p[c]=AR,p[f]={signal:h+"datum.perc2",mult:l},p[d]=Fz(s);const g={enter:p,update:tt({},p,{opacity:SR}),exit:{opacity:AR}};return $z(g,{stroke:o("gradientStrokeColor"),strokeWidth:o("gradientStrokeWidth")},{opacity:o("gradientOpacity")}),LR({type:CR,role:"legend-band",key:vR,from:r,encode:g},i)}function IR(e,t,n,i){const r=TR(e,t),o=r.isVertical(),a=Fz(r.gradientThickness()),s=r.gradientLength();let l,u,c,f,d=r("labelOverlap"),h="";const p={enter:l={opacity:AR},update:u={opacity:SR,text:{field:mR}},exit:{opacity:AR}};return $z(p,{fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:fP(e.labelLimit,t.gradientLabelLimit)}),o?(l.align={value:"left"},l.baseline=u.baseline={signal:'datum.perc<=0?"bottom":datum.perc>=1?"top":"middle"'},c="y",f="x",h="1-"):(l.align=u.align={signal:'datum.perc<=0?"left":datum.perc>=1?"right":"center"'},l.baseline={value:"top"},c="x",f="y"),l[c]=u[c]={signal:h+"datum."+yR,mult:s},l[f]=u[f]=a,a.offset=fP(e.labelOffset,t.gradientLabelOffset)||0,d=d?{separation:r("labelSeparation"),method:d,order:"datum.index"}:void 0,LR({type:jR,role:Lz,style:bR,key:vR,from:i,encode:p,overlap:d},n)}function qR(e,t,n,i,r){const o=TR(e,t),a=n.entries,s=!(!a||!a.interactive),l=a?a.name:void 0,u=o("clipHeight"),c=o("symbolOffset"),f={data:"value"},d=`(${r}) ? datum.offset : datum.size`,h=u?Fz(u):{field:kR},p="datum.index",g=`max(1, ${r})`;let m,y,v,b,x;h.mult=.5,m={enter:y={opacity:AR,x:{signal:d,mult:.5,offset:c},y:h},update:v={opacity:SR,x:y.x,y:y.y},exit:{opacity:AR}};let w=null,_=null;e.fill||(w=t.symbolBaseFillColor,_=t.symbolBaseStrokeColor),$z(m,{fill:o("symbolFillColor",w),shape:o("symbolType"),size:o("symbolSize"),stroke:o("symbolStrokeColor",_),strokeDash:o("symbolDash"),strokeDashOffset:o("symbolDashOffset"),strokeWidth:o("symbolStrokeWidth")},{opacity:o("symbolOpacity")}),ER.forEach((t=>{e[t]&&(v[t]=y[t]={scale:e[t],field:vR})}));const O=LR({type:"symbol",role:"legend-symbol",key:vR,from:f,clip:!!u||void 0,encode:m},n.symbols),k=Fz(c);k.offset=o("labelOffset"),m={enter:y={opacity:AR,x:{signal:d,offset:k},y:h},update:v={opacity:SR,text:{field:mR},x:y.x,y:y.y},exit:{opacity:AR}},$z(m,{align:o("labelAlign"),baseline:o("labelBaseline"),fill:o("labelColor"),fillOpacity:o("labelOpacity"),font:o("labelFont"),fontSize:o("labelFontSize"),fontStyle:o("labelFontStyle"),fontWeight:o("labelFontWeight"),limit:o("labelLimit")});const E=LR({type:jR,role:Lz,style:bR,key:vR,from:f,encode:m},n.labels);return m={enter:{noBound:{value:!u},width:AR,height:u?Fz(u):AR,opacity:AR},exit:{opacity:AR},update:v={opacity:SR,row:{signal:null},column:{signal:null}}},o.isVertical(!0)?(b=`ceil(item.mark.items.length / ${g})`,v.row.signal=`${p}%${b}`,v.column.signal=`floor(${p} / ${b})`,x={field:["row",p]}):(v.row.signal=`floor(${p} / ${g})`,v.column.signal=`${p} % ${g}`,x={field:p}),v.column.signal=`(${r})?${v.column.signal}:${p}`,$R({role:Rz,from:i={facet:{data:i,name:"value",groupby:"index"}},encode:Tz(m,a,DR),marks:[O,E],name:l,interactive:s,sort:x})}const WR='item.orient === "left"',HR='item.orient === "right"',YR=`(${WR} || ${HR})`,GR=`datum.vgrad && ${YR}`,VR=zR('"top"','"bottom"','"middle"'),XR=`datum.vgrad && ${HR} ? (${zR('"right"','"left"','"center"')}) : (${YR} && !(datum.vgrad && ${WR})) ? "left" : ${PR}`,JR=`item._anchor || (${YR} ? "middle" : "start")`,QR=`${GR} ? (${WR} ? -90 : 90) : 0`,ZR=`${YR} ? (datum.vgrad ? (${HR} ? "bottom" : "top") : ${VR}) : "top"`;function KR(e,t){let n;return we(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+eL(e.path)+")":e.sphere&&(n="geoShape("+eL(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function eL(e){return we(e)&&e.signal?e.signal:kt(e)}function tL(e){const t=e.role||"";return t.indexOf("axis")&&t.indexOf("legend")&&t.indexOf("title")?e.type===MR?Rz:t||zz:t}function nL(e){return{marktype:e.type,name:e.name||void 0,role:e.role||tL(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function iL(e,t){return e&&e.signal?t.signalRef(e.signal):!1!==e}function rL(e,t){const n=Ns(e.type);n||re("Unrecognized transform type: "+kt(e.type));const i=eP(n.type.toLowerCase(),null,oL(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(i)),i.metadata=n.metadata||{},i}function oL(e,t,n){const i={},r=e.params.length;for(let o=0;olL(e,t,n)))):lL(e,i,n)}(e,t,n):"projection"===i?n.projectionRef(t[e.name]):e.array&&!uP(r)?r.map((t=>sL(e,t,n))):sL(e,r,n):void(e.required&&re("Missing required "+kt(t.type)+" parameter: "+kt(e.name)))}function sL(e,t,n){const i=e.type;if(uP(t))return dL(i)?re("Expression references can not be signals."):hL(i)?n.fieldRef(t):pL(i)?n.compareRef(t):n.signalRef(t.signal);{const r=e.expr||hL(i);return r&&uL(t)?n.exprRef(t.expr,t.as):r&&cL(t)?iP(t.field,t.as):dL(i)?vN(t,n):fL(i)?nP(n.getData(t).values):hL(i)?iP(t):pL(i)?n.compareRef(t):t}}function lL(e,t,n){const i=e.params.length;let r;for(let n=0;ne&&e.expr,cL=e=>e&&e.field,fL=e=>"data"===e,dL=e=>"expr"===e,hL=e=>"field"===e,pL=e=>"compare"===e;function gL(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:nP(t.getData(e.data).output)}function mL(e,t,n,i,r){this.scope=e,this.input=t,this.output=n,this.values=i,this.aggregate=r,this.index={}}function yL(e){return mt(e)?e:null}function vL(e,t,n){const i=aP(n.op,n.field);let r;if(t.ops){for(let e=0,n=t.as.length;enull==e?"null":e)).join(",")+"),0)",t);l.update=u.$expr,l.params=u.$params}function wL(e,t){const n=tL(e),i=e.type===MR,r=e.from&&e.from.facet,o=e.overlap;let a,s,l,u,c,f,d,h=e.layout||n===Rz||n===Pz;const p=n===zz||h||r,g=function(e,t,n){let i,r,o,a,s;return e?(i=e.facet)&&(t||re("Only group marks can be faceted."),null!=i.field?a=s=gL(i,n):(e.data?s=nP(n.getData(e.data).aggregate):(o=rL(tt({type:"aggregate",groupby:He(i.groupby)},i.aggregate),n),o.params.key=n.keyRef(i.groupby),o.params.pulse=gL(i,n),a=s=nP(n.add(o))),r=n.keyRef(i.groupby,!0))):a=nP(n.add(EP(null,[{}]))),a||(a=gL(e,n)),{key:r,pulse:a,parent:s}}(e.from,i,t);s=t.add(AP({key:g.key||(e.key?iP(e.key):void 0),pulse:g.pulse,clean:!i}));const m=nP(s);s=l=t.add(EP({pulse:m})),s=t.add(NP({markdef:nL(e),interactive:iL(e.interactive,t),clip:KR(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:nP(s)}));const y=nP(s);s=u=t.add(SP(Gz(e.encode,e.type,n,e.style,t,{mod:!1,pulse:y}))),s.params.parent=t.encode(),e.transform&&e.transform.forEach((e=>{const n=rL(e,t),i=n.metadata;(i.generates||i.changes)&&re("Mark transforms should not generate new data."),i.nomod||(u.params.mod=!0),n.params.pulse=nP(s),t.add(s=n)})),e.sort&&(s=t.add(GP({sort:t.compareRef(e.sort),pulse:nP(s)})));const v=nP(s);(r||h)&&(h=t.add(VP({layout:t.objectProperty(e.layout),legends:t.legends,mark:y,pulse:v})),f=nP(h));const b=t.add(kP({mark:y,pulse:f||v}));d=nP(b),i&&(p&&(a=t.operators,a.pop(),h&&a.pop()),t.pushState(v,f||d,m),r?function(e,t,n){const i=e.from.facet,r=i.name,o=gL(i,t);let a;i.name||re("Facet must have a name: "+kt(i)),i.data||re("Facet must reference a data set: "+kt(i)),i.field?a=t.add(BP({field:t.fieldRef(i.field),pulse:o})):i.groupby?a=t.add(CP({key:t.keyRef(i.groupby),group:nP(t.proxy(n.parent)),pulse:o})):re("Facet must specify groupby or field: "+kt(i));const s=t.fork(),l=s.add(EP()),u=s.add(YP({pulse:nP(l)}));s.addData(r,new mL(s,l,l,u)),s.addSignal("parent",null),a.params.subflow={$subflow:s.parse(e).toRuntime()}}(e,t,g):p?function(e,t,n){const i=t.add(BP({pulse:n.pulse})),r=t.fork();r.add(YP()),r.addSignal("parent",null),i.params.subflow={$subflow:r.parse(e).toRuntime()}}(e,t,g):t.parse(e),t.popState(),p&&(h&&a.push(h),a.push(b))),o&&(d=function(e,t,n){const i=e.method,r=e.bound,o=e.separation,a={separation:uP(o)?n.signalRef(o.signal):o,method:uP(i)?n.signalRef(i.signal):i,pulse:t};if(e.order&&(a.sort=n.compareRef({field:e.order})),r){const e=r.tolerance;a.boundTolerance=uP(e)?n.signalRef(e.signal):+e,a.boundScale=n.scaleRef(r.scale),a.boundOrient=r.orient}return nP(n.add(RP(a)))}(o,d,t));const x=t.add(WP({pulse:d})),w=t.add(YP({pulse:nP(x)},void 0,t.parent()));null!=e.name&&(c=e.name,t.addData(c,new mL(t,l,x,w)),e.on&&e.on.forEach((e=>{(e.insert||e.remove||e.toggle)&&re("Marks only support modify triggers."),xL(e,t,c)})))}function _L(e,t,n){const i={enter:{},update:{}};return $z(i,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),i}function OL(e,t,n){return t[e]?`scale("${t[e]}",datum)`:NR(e,n[0].encode)}function kL(e,t){const n={enter:{},update:{}};return $z(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:PR},angle:{signal:'item.orient==="left"?-90:item.orient==="right"?90:0'},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),Tz(n,t,DR)}function EL(e){const t=EP({},e);return t.metadata={source:!0},t}function DL(e,t){return TP({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}mL.fromEntries=function(e,t){const n=t.length,i=t[n-1],r=t[n-2];let o=t[0],a=null,s=1;for(o&&"load"===o.type&&(o=t[1]),e.add(t[0]);se===gR||e===dR,SL=(e,t,n)=>uP(e)?TL(e.signal,t,n):e===hR||e===dR?t:n,ML=(e,t,n)=>uP(e)?jL(e.signal,t,n):AL(e)?t:n,CL=(e,t,n)=>uP(e)?$L(e.signal,t,n):AL(e)?n:t,FL=(e,t,n)=>uP(e)?NL(e.signal,t,n):e===dR?{value:t}:{value:n},jL=(e,t,n)=>zL(`${e} === 'top' || ${e} === 'bottom'`,t,n),$L=(e,t,n)=>zL(`${e} !== 'top' && ${e} !== 'bottom'`,t,n),TL=(e,t,n)=>RL(`${e} === 'left' || ${e} === 'top'`,t,n),NL=(e,t,n)=>RL(`${e} === 'top'`,t,n),zL=(e,t,n)=>(t=null!=t?Fz(t):t,n=null!=n?Fz(n):n,PL(t)&&PL(n)?{signal:`${e} ? (${t=t?t.signal||kt(t.value):null}) : (${n=n?n.signal||kt(n.value):null})`}:[tt({test:e},t)].concat(n||[])),PL=e=>null==e||1===Object.keys(e).length,RL=(e,t,n)=>({signal:`${e} ? (${BL(t)}) : (${BL(n)})`}),LL=(e,t,n,i,r)=>({signal:(null!=i?`${e} === 'left' ? (${BL(i)}) : `:"")+(null!=n?`${e} === 'bottom' ? (${BL(n)}) : `:"")+(null!=r?`${e} === 'right' ? (${BL(r)}) : `:"")+(null!=t?`${e} === 'top' ? (${BL(t)}) : `:"")+"(null)"}),BL=e=>uP(e)?e.signal:null==e?null:kt(e),UL=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function IL(e,t,n,i){let r;if(t&&ot(t,e))return t[e];if(ot(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":r="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":r=e[5].toLowerCase()+e.slice(6)}return i["guide-title"][r]}if(e.startsWith("label")){switch(e){case"labelColor":r="fill";break;case"labelFont":case"labelFontSize":r=e[5].toLowerCase()+e.slice(6)}return i["guide-label"][r]}return null}function qL(e){const t={};for(const n of e)if(n)for(const e in n)t[e]=1;return Object.keys(t)}function WL(e,t){return{scale:e.scale,range:t}}function HL(e,t,n,i,r){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+i+","+r+")"}}function YL(e,t,n,i,r,o){const a=TR(e,t),s=e.orient,l=e.scale,u=SL(s,-1,1),c=dP(a("labelFlush")),f=dP(a("labelFlushOffset")),d=a("labelAlign"),h=a("labelBaseline");let p,g=0===c||!!c;const m=Fz(r);m.mult=u,m.offset=Fz(a("labelPadding")||0),m.offset.mult=u;const y={scale:l,field:vR,band:.5,offset:RR(o.offset,a("labelOffset"))},v=ML(s,g?HL(l,c,'"left"','"right"','"center"'):{value:"center"},((e,t,n)=>uP(e)?((e,t,n)=>RL(`${e} === 'right'`,t,n))(e.signal,t,n):e===pR?{value:t}:{value:n})(s,"left","right")),b=ML(s,FL(s,"bottom","top"),g?HL(l,c,'"top"','"bottom"','"middle"'):{value:"middle"}),x=HL(l,c,`-(${f})`,f,0);g=g&&f;const w={opacity:AR,x:ML(s,y,m),y:CL(s,y,m)},_={enter:w,update:p={opacity:SR,text:{field:mR},x:w.x,y:w.y,align:v,baseline:b},exit:{opacity:AR,x:w.x,y:w.y}};$z(_,{dx:!d&&g?ML(s,x):null,dy:!h&&g?CL(s,x):null}),$z(_,{angle:a("labelAngle"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontWeight:a("labelFontWeight"),fontStyle:a("labelFontStyle"),limit:a("labelLimit"),lineHeight:a("labelLineHeight")},{align:d,baseline:h});const O=a("labelBound");let k=a("labelOverlap");return k=k||O?{separation:a("labelSeparation"),method:k,order:"datum.index",bound:O?{scale:l,orient:s,tolerance:O}:null}:void 0,p.align!==v&&(p.align=UL(p.align,v)),p.baseline!==b&&(p.baseline=UL(p.baseline,b)),LR({type:jR,role:"axis-label",style:bR,key:vR,from:i,encode:_,overlap:k},n)}function GL(e,t){const n=function(e,t){var n,i,r,o=t.config,a=o.style,s=o.axis,l="band"===t.scaleType(e.scale)&&o.axisBand,u=e.orient;if(uP(u)){const e=qL([o.axisX,o.axisY]),t=qL([o.axisTop,o.axisBottom,o.axisLeft,o.axisRight]);for(r of(n={},e))n[r]=ML(u,IL(r,o.axisX,s,a),IL(r,o.axisY,s,a));for(r of(i={},t))i[r]=LL(u.signal,IL(r,o.axisTop,s,a),IL(r,o.axisBottom,s,a),IL(r,o.axisLeft,s,a),IL(r,o.axisRight,s,a))}else n=u===dR||u===gR?o.axisX:o.axisY,i=o["axis"+u[0].toUpperCase()+u.slice(1)];return n||i||l?tt({},s,n,i,l):s}(e,t),i=e.encode||{},r=i.axis||{},o=r.name||void 0,a=r.interactive,s=r.style,l=TR(e,n),u=function(e){const t=e("tickBand");let n,i,r=e("tickOffset");return t?t.signal?(n={signal:`(${t.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${t.signal}) === 'extent'`},we(r)||(r={signal:`(${t.signal}) === 'extent' ? 0 : ${r}`})):"extent"===t?(n=1,i=!0,r=0):(n=.5,i=!1):(n=e("bandPosition"),i=e("tickExtra")),{extra:i,band:n,offset:r}}(l),c={scale:e.scale,ticks:!!l("ticks"),labels:!!l("labels"),grid:!!l("grid"),domain:!!l("domain"),title:null!=e.title},f=nP(t.add(EP({},[c]))),d=nP(t.add(OP({scale:t.scaleRef(e.scale),extra:t.property(u.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),h=[];let p;return c.grid&&h.push(function(e,t,n,i,r){const o=TR(e,t),a=e.orient,s=e.gridScale,l=SL(a,1,-1),u=function(e,t){if(1===t);else if(we(e)){let n=e=tt({},e);for(;null!=n.mult;){if(!we(n.mult))return n.mult=uP(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n=n.mult=tt({},n.mult)}n.mult=t}else e=uP(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);return e}(e.offset,l);let c,f,d;const h={enter:c={opacity:AR},update:d={opacity:SR},exit:f={opacity:AR}};$z(h,{stroke:o("gridColor"),strokeCap:o("gridCap"),strokeDash:o("gridDash"),strokeDashOffset:o("gridDashOffset"),strokeOpacity:o("gridOpacity"),strokeWidth:o("gridWidth")});const p={scale:e.scale,field:vR,band:r.band,extra:r.extra,offset:r.offset,round:o("tickRound")},g=ML(a,{signal:"height"},{signal:"width"}),m=s?{scale:s,range:0,mult:l,offset:u}:{value:0,offset:u},y=s?{scale:s,range:1,mult:l,offset:u}:tt(g,{mult:l,offset:u});return c.x=d.x=ML(a,p,m),c.y=d.y=CL(a,p,m),c.x2=d.x2=CL(a,y),c.y2=d.y2=ML(a,y),f.x=ML(a,p),f.y=CL(a,p),LR({type:FR,role:"axis-grid",key:vR,from:i,encode:h},n)}(e,n,i.grid,d,u)),c.ticks&&(p=l("tickSize"),h.push(function(e,t,n,i,r,o){const a=TR(e,t),s=e.orient,l=SL(s,-1,1);let u,c,f;const d={enter:u={opacity:AR},update:f={opacity:SR},exit:c={opacity:AR}};$z(d,{stroke:a("tickColor"),strokeCap:a("tickCap"),strokeDash:a("tickDash"),strokeDashOffset:a("tickDashOffset"),strokeOpacity:a("tickOpacity"),strokeWidth:a("tickWidth")});const h=Fz(r);h.mult=l;const p={scale:e.scale,field:vR,band:o.band,extra:o.extra,offset:o.offset,round:a("tickRound")};return f.y=u.y=ML(s,AR,p),f.y2=u.y2=ML(s,h),c.x=ML(s,p),f.x=u.x=CL(s,AR,p),f.x2=u.x2=CL(s,h),c.y=CL(s,p),LR({type:FR,role:"axis-tick",key:vR,from:i,encode:d},n)}(e,n,i.ticks,d,p,u))),c.labels&&(p=c.ticks?p:0,h.push(YL(e,n,i.labels,d,p,u))),c.domain&&h.push(function(e,t,n,i){const r=TR(e,t),o=e.orient;let a,s;const l={enter:a={opacity:AR},update:s={opacity:SR},exit:{opacity:AR}};$z(l,{stroke:r("domainColor"),strokeCap:r("domainCap"),strokeDash:r("domainDash"),strokeDashOffset:r("domainDashOffset"),strokeWidth:r("domainWidth"),strokeOpacity:r("domainOpacity")});const u=WL(e,0),c=WL(e,1);return a.x=s.x=ML(o,u,AR),a.x2=s.x2=ML(o,c),a.y=s.y=CL(o,u,AR),a.y2=s.y2=CL(o,c),LR({type:FR,role:"axis-domain",from:i,encode:l},n)}(e,n,i.domain,f)),c.title&&h.push(function(e,t,n,i){const r=TR(e,t),o=e.orient,a=SL(o,-1,1);let s,l;const u={enter:s={opacity:AR,anchor:Fz(r("titleAnchor",null)),align:{signal:PR}},update:l=tt({},s,{opacity:SR,text:Fz(e.title)}),exit:{opacity:AR}},c={signal:`lerp(range("${e.scale}"), ${zR(0,1,.5)})`};return l.x=ML(o,c),l.y=CL(o,c),s.angle=ML(o,AR,((e,t)=>uP(e)?{signal:`(${e.signal}) * 90`}:{value:90*e})(a)),s.baseline=ML(o,FL(o,gR,dR),{value:gR}),l.angle=s.angle,l.baseline=s.baseline,$z(u,{fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),angle:r("titleAngle"),baseline:r("titleBaseline")}),function(e,t,n,i){const r=(e,t)=>null!=e?(n.update[t]=UL(Fz(e),n.update[t]),!1):!Nz(t,i),o=r(e("titleX"),"x"),a=r(e("titleY"),"y");n.enter.auto=a===o?Fz(a):ML(t,Fz(a),Fz(o))}(r,o,u,n),u.update.align=UL(u.update.align,s.align),u.update.angle=UL(u.update.angle,s.angle),u.update.baseline=UL(u.update.baseline,s.baseline),LR({type:jR,role:"axis-title",style:xR,from:i,encode:u},n)}(e,n,i.title,f)),wL($R({role:"axis",from:f,encode:Tz(VL(l,e),r,DR),marks:h,aria:l("aria"),description:l("description"),zindex:l("zindex"),name:o,interactive:a,style:s}),t)}function VL(e,t){const n={enter:{},update:{}};return $z(n,{orient:e("orient"),offset:e("offset")||0,position:fP(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function XL(e,t,n){const i=He(e.signals),r=He(e.scales);return n||i.forEach((e=>Zz(e,t))),He(e.projections).forEach((e=>function(e,t){const n=t.config.projection||{},i={};for(const n in e)"name"!==n&&(i[n]=fR(e[n],n,t));for(const e in n)null==i[e]&&(i[e]=fR(n[e],e,t));t.addProjection(e.name,i)}(e,t))),r.forEach((e=>function(e,t){const n=e.type||"linear";jy(n)||re("Unrecognized scale type: "+kt(n)),t.addScale(e.name,{type:n,domain:void 0})}(e,t))),He(e.data).forEach((e=>function(e,t){const n=[];e.transform&&e.transform.forEach((e=>{n.push(rL(e,t))})),e.on&&e.on.forEach((n=>{xL(n,t,e.name)})),t.addDataPipeline(e.name,function(e,t,n){const i=[];let r,o,a,s,l,u=null,c=!1,f=!1;for(e.values?uP(e.values)||cP(e.format)?(i.push(DL(t,e)),i.push(u=EL())):i.push(u=EL({$ingest:e.values,$format:e.format})):e.url?cP(e.url)||cP(e.format)?(i.push(DL(t,e)),i.push(u=EL())):i.push(u=EL({$request:e.url,$format:e.format})):e.source&&(u=r=He(e.source).map((e=>nP(t.getData(e).output))),i.push(null)),o=0,a=n.length;oZP(e,t))),(n||i).forEach((e=>function(e,t){const n=t.getSignal(e.name);let i=e.update;e.init&&(i?re("Signals can not include both init and update expressions."):(i=e.init,n.initonly=!0)),i&&(i=vN(i,t),n.update=i.$expr,n.params=i.$params),e.on&&e.on.forEach((e=>function(e,t,n){const i=e.encode,r={target:n};let o=e.events,a=e.update,s=[];o||re("Signal update missing events specification."),mt(o)&&(o=kz(o,t.isSubscope()?sP:lP)),o=He(o).filter((e=>e.signal||e.scale?(s.push(e),0):1)),s.length>1&&(s=[xP(s)]),o.length&&s.push(o.length>1?{merge:o}:o[0]),null!=i&&(a&&re("Signal encode and update are mutually exclusive."),a="encode(item(),"+kt(i)+")"),r.update=mt(a)?vN(a,t):null!=a.expr?vN(a.expr,t):null!=a.value?a.value:null!=a.signal?{$expr:bP,$params:{$value:t.signalRef(a.signal)}}:re("Invalid signal update specification."),e.force&&(r.options={force:!0}),s.forEach((e=>t.addUpdate(tt(function(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):pP(e,t)}}(e,t),r))))}(e,t,n.id)))}(e,t))),He(e.axes).forEach((e=>GL(e,t))),He(e.marks).forEach((e=>wL(e,t))),He(e.legends).forEach((e=>function(e,t){const n=t.config.legend,i=e.encode||{},r=TR(e,n),o=i.legend||{},a=o.name||void 0,s=o.interactive,l=o.style,u={};let c,f,d,h=0;ER.forEach((t=>e[t]?(u[t]=e[t],h=h||e[t]):0)),h||re("Missing valid scale for legend.");const p=function(e,t){let n=e.type||wR;return e.type||1!==function(e){return ER.reduce(((t,n)=>t+(e[n]?1:0)),0)}(e)||!e.fill&&!e.stroke||(n=Ty(t)?_R:zy(t)?OR:wR),n!==_R?n:zy(t)?OR:_R}(e,t.scaleType(h)),g={title:null!=e.title,scales:u,type:p,vgrad:"symbol"!==p&&r.isVertical()},m=nP(t.add(EP(null,[g]))),y=nP(t.add($P(f={type:p,scale:t.scaleRef(h),count:t.objectProperty(r("tickCount")),limit:t.property(r("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return p===_R?(d=[BR(e,h,n,i.gradient),IR(e,n,i.labels,y)],f.count=f.count||t.signalRef(`max(2,2*floor((${dP(r.gradientLength())})/100))`)):p===OR?d=[UR(e,h,n,i.gradient,y),IR(e,n,i.labels,y)]:(c=function(e,t){const n=TR(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}(e,n),d=[qR(e,n,i,y,dP(c.columns))],f.size=function(e,t,n){const i=dP(OL("size",e,n)),r=dP(OL("strokeWidth",e,n)),o=dP(function(e,t,n){return NR("fontSize",e)||function(e,t,n){const i=t.config.style["guide-label"];return i&&i.fontSize}(0,t)}(n[1].encode,t));return vN(`max(ceil(sqrt(${i})+${r}),${o})`,t)}(e,t,d[0].marks)),d=[$R({role:"legend-entry",from:m,encode:{enter:{x:{value:0},y:{value:0}}},marks:d,layout:c,interactive:s})],g.title&&d.push(function(e,t,n,i){const r=TR(e,t),o={enter:{opacity:AR},update:{opacity:SR,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:AR}};return $z(o,{orient:r("titleOrient"),_anchor:r("titleAnchor"),anchor:{signal:JR},angle:{signal:QR},align:{signal:XR},baseline:{signal:ZR},text:e.title,fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),baseline:r("titleBaseline")}),LR({type:jR,role:"legend-title",style:xR,from:i,encode:o},n)}(e,n,i.title,m)),wL($R({role:"legend",from:m,encode:Tz(_L(r,e,n),o,DR),marks:d,aria:r("aria"),description:r("description"),zindex:r("zindex"),name:a,interactive:s,style:l}),t)}(e,t))),e.title&&function(e,t){const n=TR(e=mt(e)?{text:e}:e,t.config.title),i=e.encode||{},r=i.group||{},o=r.name||void 0,a=r.interactive,s=r.style,l=[],u=nP(t.add(EP(null,[{}])));l.push(function(e,t,n,i){const r={value:0},o={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return $z(o,{text:e.text,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),LR({type:jR,role:"title-text",style:"group-title",from:i,encode:o},n)}(e,n,function(e){const t=e.encode;return t&&t.title||tt({name:e.name,interactive:e.interactive,style:e.style},t)}(e),u)),e.subtitle&&l.push(function(e,t,n,i){const r={value:0},o={enter:{opacity:r},update:{opacity:{value:1}},exit:{opacity:r}};return $z(o,{text:e.subtitle,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),LR({type:jR,role:"title-subtitle",style:"group-subtitle",from:i,encode:o},n)}(e,n,i.subtitle,u)),wL($R({role:"title",from:u,encode:kL(n,r),marks:l,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:o,interactive:a,style:s}),t)}(e.title,t),t.parseLambdas(),t}function JL(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function QL(e,t){this.config=e||{},this.options=t||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function ZL(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}function KL(e){return(xe(e)?eB:tB)(e)}function eB(e){const t=e.length;let n="[";for(let i=0;i0?",":"")+(we(t)?t.signal||KL(t):kt(t))}return n+"]"}function tB(e){let t,n,i="{",r=0;for(t in e)n=e[t],i+=(++r>1?",":"")+kt(t)+":"+(we(n)?n.signal||KL(n):kt(n));return i+"}"}function nB(e,t,n){return we(e)||re("Input Vega specification must be an object."),t=Oe(function(){const e="sans-serif",t="#4c78a8",n="#000",i="#888",r="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:t},area:{fill:t},image:null,line:{stroke:t,strokeWidth:2},path:{stroke:t},rect:{fill:t},rule:{stroke:n},shape:{stroke:t},symbol:{fill:t,size:64},text:{fill:n,font:e,fontSize:11},trail:{fill:t,size:2},style:{"guide-label":{fill:n,font:e,fontSize:10},"guide-title":{fill:n,font:e,fontSize:11,fontWeight:"bold"},"group-title":{fill:n,font:e,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:n,font:e,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:r},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:i,grid:!1,gridWidth:1,gridColor:r,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:i,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:r,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:i,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}(),t,e.config),function(e,t){const n=t.config,i=nP(t.root=t.add(tP())),r=function(e,t){const n=n=>fP(e[n],t[n]),i=[JL("background",n("background")),JL("autosize",Sz(n("autosize"))),JL("padding",Cz(n("padding"))),JL("width",n("width")||0),JL("height",n("height")||0)],r=i.reduce(((e,t)=>(e[t.name]=t,e)),{}),o={};return He(e.signals).forEach((e=>{ot(r,e.name)?e=tt(r[e.name],e):i.push(e),o[e.name]=e})),He(t.signals).forEach((e=>{ot(o,e.name)||ot(r,e.name)||i.push(e)})),i}(e,n);r.forEach((e=>Zz(e,t))),t.description=e.description||n.description,t.eventConfig=n.events,t.legends=t.objectProperty(n.legend&&n.legend.layout),t.locale=n.locale;const o=t.add(EP()),a=t.add(SP(Gz((e=>Tz({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e))(e.encode),MR,Pz,e.style,t,{pulse:nP(o)}))),s=t.add(VP({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:i,pulse:nP(a)}));t.operators.pop(),t.pushState(nP(a),nP(s),null),XL(e,t,r),t.operators.push(s);let l=t.add(kP({mark:i,pulse:nP(s)}));return l=t.add(WP({pulse:nP(l)})),l=t.add(YP({pulse:nP(l)})),t.addData("root",new mL(t,o,o,l)),t}(e,new QL(t,n)).toRuntime()}QL.prototype=ZL.prototype={parse(e){return XL(e,this)},fork(){return new ZL(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach((t=>{t.$ref=e.id})),e.refs=null),e},proxy(e){const t=e instanceof Kz?nP(e):e;return this.add(IP({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(e,t,n){let i,r;e&&(i=e.data||(e.data={}),r=i[t]||(i[t]=[]),r.push(n))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(const i in t.index)n(t.index[i],e,"index:"+i)}return this},pushState(e,t,n){this._encode.push(nP(this.add(YP({pulse:e})))),this._parent.push(t),this._lookup.push(n?nP(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return De(this._parent)},encode(){return De(this._encode)},lookup(){return De(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(mt(e))return iP(e,t);e.signal||re("Unsupported field reference: "+kt(e));const n=e.signal;let i=this.field[n];if(!i){const e={name:this.signalRef(n)};t&&(e.as=t),this.field[n]=i=nP(this.add(FP(e)))}return i},compareRef(e){let t=!1;const n=e=>uP(e)?(t=!0,this.signalRef(e.signal)):function(e){return e&&e.expr}(e)?(t=!0,this.exprRef(e.expr)):e,i=He(e.field).map(n),r=He(e.order).map(n);return t?nP(this.add(DP({fields:i,orders:r}))):oP(i,r)},keyRef(e,t){let n=!1;const i=this.signals;return e=He(e).map((e=>uP(e)?(n=!0,nP(i[e.signal])):e)),n?nP(this.add(jP({fields:e,flat:t}))):function(e,t){const n={$key:e};return t&&(n.$flat=!0),n}(e,t)},sortRef(e){if(!e)return e;const t=aP(e.op,e.field),n=e.order||"ascending";return n.signal?nP(this.add(DP({fields:t,orders:this.signalRef(n.signal)}))):oP(t,n)},event(e,t){const n=e+":"+t;if(!this.events[n]){const i=this.id();this.streams.push({id:i,source:e,type:t}),this.events[n]=i}return this.events[n]},hasOwnSignal(e){return ot(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&re("Duplicate signal name: "+kt(e));const n=t instanceof Kz?t:this.add(tP(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||re("Unrecognized signal name: "+kt(e)),this.signals[e]},signalRef(e){return this.signals[e]?nP(this.signals[e]):(ot(this.lambdas,e)||(this.lambdas[e]=this.add(tP(null))),nP(this.lambdas[e]))},parseLambdas(){const e=Object.keys(this.lambdas);for(let t=0,n=e.length;te*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>ee<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},aB={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const sB=Array.prototype.slice,lB=(e,t,n)=>{const i=n?n(t[0]):t[0];return i[e].apply(i,sB.call(t,1))};var uB={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:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:(e,t,n,i,r,o,a)=>new Date(e,t||0,null!=n?n:1,i||0,r||0,o||0,a||0),date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return lB("join",arguments)},indexof:function(){return lB("indexOf",arguments)},lastindexof:function(){return lB("lastIndexOf",arguments)},slice:function(){return lB("slice",arguments)},reverse:e=>e.slice().reverse(),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return lB("substring",arguments,String)},split:function(){return lB("split",arguments,String)},replace:function(){return lB("replace",arguments,String)},trim:e=>String(e).trim(),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const cB=["view","item","group","xy","x","y"],fB=new Set([Function,eval,setTimeout,setInterval]);"function"==typeof setImmediate&&fB.add(setImmediate);const dB={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:"datum"===n?e.datum:"event"===n?e.event:"item"===n?e.item:rB[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,i=e(t.object);n&&(e.memberDepth+=1);const r=e(t.property);if(n&&(e.memberDepth-=1),!fB.has(i[r]))return i[r];console.error(`Prevented interpretation of member "${r}" which could lead to insecure code execution`)},CallExpression:(e,t)=>{const n=t.arguments;let i=t.callee.name;return i.startsWith("_")&&(i=i.slice(1)),"if"===i?e(n[0])?e(n[1]):e(n[2]):(e.fn[i]||uB[i]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>oB[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>aB[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>"&&"===t.operator?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce(((t,n)=>{e.memberDepth+=1;const i=e(n.key);return e.memberDepth-=1,fB.has(e(n.value))?console.error(`Prevented interpretation of property "${i}" which could lead to insecure code execution`):t[i]=e(n.value),t}),{})};function hB(e,t,n,i,r,o){const a=e=>dB[e.type](a,e);return a.memberDepth=0,a.fn=Object.create(t),a.params=n,a.datum=i,a.event=r,a.item=o,cB.forEach((e=>a.fn[e]=function(){return r.vega[e](...arguments)})),a(e)}var pB={operator(e,t){const n=t.ast,i=e.functions;return e=>hB(n,i,e)},parameter(e,t){const n=t.ast,i=e.functions;return(e,t)=>hB(n,i,t,e)},event(e,t){const n=t.ast,i=e.functions;return e=>hB(n,i,void 0,void 0,e)},handler(e,t){const n=t.ast,i=e.functions;return(e,t)=>{const r=t.item&&t.item.datum;return hB(n,i,e,r,t)}},encode(e,t){const{marktype:n,channels:i}=t,r=e.functions,o="group"===n||"image"===n||"rect"===n;return(e,t)=>{const a=e.datum;let s,l=0;for(const n in i)s=hB(i[n].ast,r,t,a,void 0,e),e[n]!==s&&(e[n]=s,l=1);return"rule"!==n&&function(e,t,n){let i;t.x2&&(t.x?(n&&e.x>e.x2&&(i=e.x,e.x=e.x2,e.x2=i),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(i=e.y,e.y=e.y2,e.y2=i),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}(e,i,o),l}}},gB=n(16313),mB=n.n(gB),yB=n(64063),vB=n.n(yB),bB=n(35035),xB=n.n(bB);function wB(e){return!!e.or}function _B(e){return!!e.and}function OB(e){return!!e.not}function kB(e,t){if(OB(e))kB(e.not,t);else if(_B(e))for(const n of e.and)kB(n,t);else if(wB(e))for(const n of e.or)kB(n,t);else t(e)}function EB(e,t){return OB(e)?{not:EB(e.not,t)}:_B(e)?{and:e.and.map((e=>EB(e,t)))}:wB(e)?{or:e.or.map((e=>EB(e,t)))}:t(e)}const DB=vB(),AB=mB();function SB(e){throw new Error(e)}function MB(e,t){const n={};for(const i of t)ot(e,i)&&(n[i]=e[i]);return n}function CB(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=>xB()(e))).join(",")})`};const FB=xB();function jB(e){if(pt(e))return e;const t=mt(e)?e:xB()(e);if(t.length<250)return t;let n=0;for(let e=0;e0===t?e:`[${e}]`)),i=e.map(((t,n)=>e.slice(0,n+1).join("")));for(const e of i)t.add(e)}return t}function WB(e,t){return void 0===e||void 0===t||IB(qB(e),qB(t))}function HB(e){return 0===YB(e).length}const YB=Object.keys,GB=Object.values,VB=Object.entries;function XB(e){return!0===e||!1===e}function JB(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function QB(e,t){return OB(e)?`!(${QB(e.not,t)})`:_B(e)?`(${e.and.map((e=>QB(e,t))).join(") && (")})`:wB(e)?`(${e.or.map((e=>QB(e,t))).join(") || (")})`:t(e)}function ZB(e,t){if(0===t.length)return!0;const n=t.shift();return n in e&&ZB(e[n],t)&&delete e[n],HB(e)}function KB(e){return e.charAt(0).toUpperCase()+e.substr(1)}function eU(e,t="datum"){const n=oe(e),i=[];for(let e=1;e<=n.length;e++){const r=`[${n.slice(0,e).map(kt).join("][")}]`;i.push(`${t}${r}`)}return i.join(" && ")}function tU(e,t="datum"){return`${t}[${kt(oe(e).join("."))}]`}function nU(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function iU(e){return`${oe(e).map(nU).join("\\.")}`}function rU(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function oU(e){return`${oe(e).join(".")}`}function aU(e){return e?oe(e).length:0}function sU(...e){for(const t of e)if(void 0!==t)return t}let lU=42;function uU(e){const t=++lU;return e?String(e)+t:t}function cU(){lU=42}function fU(e){return dU(e)?e:`__${e}`}function dU(e){return e.startsWith("__")}function hU(e){if(void 0!==e)return(e%360+360)%360}function pU(e){return!!pt(e)||!isNaN(e)&&!isNaN(parseFloat(e))}var gU=function(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);rDq(e[t])?JB(`_${t}_${VB(e[t])}`):JB(`_${t}_${e[t]}`))).join("")}function Oq(e){return!0===e||Eq(e)&&!e.binned}function kq(e){return"binned"===e||Eq(e)&&!0===e.binned}function Eq(e){return we(e)}function Dq(e){return null==e?void 0:e.param}function Aq(e){switch(e){case mU:case yU:case PU:case $U:case TU:case NU:case IU:case LU:case BU:case UU:case zU:return 6;case qU:return 4;default:return 10}}function Sq(e){return!!(null==e?void 0:e.expr)}function Mq(e){const t=YB(e||{}),n={};for(const i of t)n[i]=Bq(e[i]);return n}function Cq(e){const{anchor:t,frame:n,offset:i,orient:r,angle:o,limit:a,color:s,subtitleColor:l,subtitleFont:u,subtitleFontSize:c,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:p}=e,g=function(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{var i;return e.field.push(uG(n,t)),e.order.push(null!==(i=n.sort)&&void 0!==i?i:"ascending"),e}),{field:[],order:[]})}function Zq(e,t){const n=[...e];return t.forEach((e=>{for(const t of n)if(DB(t,e))return;n.push(e)})),n}function Kq(e,t){return DB(e,t)||!t?e:e?[...He(e),...He(t)].join(", "):t}function eW(e,t){const n=e.value,i=t.value;if(null==n||null===i)return{explicit:e.explicit,value:null};if((Fq(n)||jq(n))&&(Fq(i)||jq(i)))return{explicit:e.explicit,value:Kq(n,i)};if(Fq(n)||jq(n))return{explicit:e.explicit,value:n};if(Fq(i)||jq(i))return{explicit:e.explicit,value:i};if(!(Fq(n)||jq(n)||Fq(i)||jq(i)))return{explicit:e.explicit,value:Zq(n,i)};throw new Error("It should never reach here")}function tW(e){return`Invalid specification ${FB(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}function nW(e){return("width"==e?"Width":"Height")+' "container" only works for single views and layered views.'}function iW(e){return`${"width"==e?"Width":"Height"} "container" only works well with autosize "fit" or "fit-${"width"==e?"x":"y"}".`}function rW(e){return e?`Dropping "fit-${e}" because spec has discrete ${_I(e)}.`:'Dropping "fit" because spec has discrete size.'}function oW(e){return`Unknown field for ${e}. Cannot calculate view size.`}function aW(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function sW(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function lW(e){return`Selection not supported for ${e} yet.`}function uW(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}function cW(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}function fW(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function dW(e){return`${e}Offset dropped because ${e} is continuous`}function hW(e){return`There is no ${e} encoding. Replacing ${e}Offset encoding as ${e}.`}function pW(e){return`Invalid field type "${e}".`}function gW(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"}.`}function mW(e,t){return`Dropping ${FB(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}function yW(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`}function vW(e){return`${e} encoding has no scale, so specified scale is ignored.`}function bW(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function xW(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function wW(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${"ordinal"===t?"order":"magnitude"}.`}function _W(e){return`Using unaggregated domain with raw field has no effect (${FB(e)}).`}function OW(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function kW(e){return`Unaggregated domain is currently unsupported for log scale (${FB(e)}).`}function EW(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function DW(e){return`The step for "${e}" is dropped because the ${"width"===e?"x":"y"} is continuous.`}const AW="Domains that should be unioned has conflicting sort properties. Sort will be set to true.";function SW(e,t){return`Invalid ${e}: ${FB(t)}.`}function MW(e){return`1D error band does not support ${e}.`}function CW(e){return`Channel ${e} is required for "binned" bin.`}const FW=be(me);let jW=FW;function $W(...e){jW.warn(...e)}function TW(e){if(e&&we(e))for(const t of IW)if(t in e)return!0;return!1}new WeakMap;const NW=["january","february","march","april","may","june","july","august","september","october","november","december"],zW=NW.map((e=>e.substr(0,3))),PW=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],RW=PW.map((e=>e.substr(0,3)));function LW(e,t){const n=[];if(t&&void 0!==e.day&&YB(e).length>1&&($W(function(e){return`Dropping day from datetime ${FB(e)} as day cannot be combined with other units.`}(e)),delete(e=AB(e)).day),void 0!==e.year?n.push(e.year):n.push(2012),void 0!==e.month){const i=t?function(e){if(pU(e)&&(e=+e),pt(e))return e-1;{const t=e.toLowerCase(),n=NW.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=zW.indexOf(i);if(-1!==r)return r;throw new Error(SW("month",e))}}(e.month):e.month;n.push(i)}else if(void 0!==e.quarter){const i=t?function(e){if(pU(e)&&(e=+e),pt(e))return e>4&&$W(SW("quarter",e)),e-1;throw new Error(SW("quarter",e))}(e.quarter):e.quarter;n.push(pt(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(pU(e)&&(e=+e),pt(e))return e%7;{const t=e.toLowerCase(),n=PW.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=RW.indexOf(i);if(-1!==r)return r;throw new Error(SW("day",e))}}(e.day):e.day;n.push(pt(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 BW(e){const t=LW(e,!0).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}const UW={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},IW=YB(UW);function qW(e){return e.startsWith("utc")}const WW={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function HW(e){return IW.filter((t=>YW(e,t)))}function YW(e,t){const n=e.indexOf(t);return!(n<0||n>0&&"seconds"===t&&"i"===e.charAt(n-1)||e.length>n+3&&"day"===t&&"o"===e.charAt(n+3)||n>0&&"year"===t&&"f"===e.charAt(n-1))}function GW(e){if(!e)return;const t=HW(e);return`timeUnitSpecifier(${FB(t)}, ${FB(WW)})`}function VW(e){if(!e)return;let t;return mt(e)?t={unit:e}:we(e)&&(t=Object.assign(Object.assign({},e),e.unit?{unit:e.unit}:{})),qW(t.unit)&&(t.utc=!0,t.unit=function(e){return e.substr(3)}(t.unit)),t}function XW(e){return!!(null==e?void 0:e.field)&&void 0!==e.equal}function JW(e){return!!(null==e?void 0:e.field)&&void 0!==e.lt}function QW(e){return!!(null==e?void 0:e.field)&&void 0!==e.lte}function ZW(e){return!!(null==e?void 0:e.field)&&void 0!==e.gt}function KW(e){return!!(null==e?void 0:e.field)&&void 0!==e.gte}function eH(e){if(null==e?void 0:e.field){if(xe(e.range)&&2===e.range.length)return!0;if(jq(e.range))return!0}return!1}function tH(e){return!!(null==e?void 0:e.field)&&(xe(e.oneOf)||xe(e.in))}function nH(e){return tH(e)||XW(e)||eH(e)||JW(e)||ZW(e)||QW(e)||KW(e)}function iH(e,t){return DG(e,{timeUnit:t,wrapTime:!0})}function rH(e,t=!0){var n;const{field:i}=e,r=null===(n=VW(e.timeUnit))||void 0===n?void 0:n.unit,o=r?`time(${function(e,t,{end:n}={end:!1}){const i=eU(t),r=qW(e)?"utc":"";let o;const a={};for(const t of IW)YW(e,t)&&(a[t]="quarter"===(s=t)?`(${r}quarter(${i})-1)`:`${r}${s}(${i})`,o=t);var s;return n&&(a[o]+="+1"),function(e){const t=LW(e,!1).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}(a)}(r,i)})`:uG(e,{expr:"datum"});if(XW(e))return`${o}===${iH(e.equal,r)}`;if(JW(e))return`${o}<${iH(e.lt,r)}`;if(ZW(e))return`${o}>${iH(e.gt,r)}`;if(QW(e))return`${o}<=${iH(e.lte,r)}`;if(KW(e))return`${o}>=${iH(e.gte,r)}`;if(tH(e))return`indexof([${function(e,t){return e.map((e=>iH(e,t)))}(e.oneOf,r).join(",")}], ${o}) !== -1`;if(function(e){return!!(null==e?void 0:e.field)&&void 0!==e.valid}(e))return oH(o,e.valid);if(eH(e)){const{range:n}=e,i=jq(n)?{signal:`${n.signal}[0]`}:n[0],a=jq(n)?{signal:`${n.signal}[1]`}:n[1];if(null!==i&&null!==a&&t)return"inrange("+o+", ["+iH(i,r)+", "+iH(a,r)+"])";const s=[];return null!==i&&s.push(`${o} >= ${iH(i,r)}`),null!==a&&s.push(`${o} <= ${iH(a,r)}`),s.length>0?s.join(" && "):"true"}throw new Error(`Invalid field predicate: ${FB(e)}`)}function oH(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function aH(e){var t;return nH(e)&&e.timeUnit?Object.assign(Object.assign({},e),{timeUnit:null===(t=VW(e.timeUnit))||void 0===t?void 0:t.unit}):e}const sH={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function lH(e){return"ordinal"===e||"nominal"===e}const uH=sH.quantitative,cH=sH.ordinal,fH=sH.temporal,dH=sH.nominal,hH=sH.geojson;YB(sH);const pH="time",gH="utc",mH="point",yH="band",vH={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"};function bH(e,t){const n=vH[e],i=vH[t];return n===i||"ordinal-position"===n&&"time"===i||"ordinal-position"===i&&"time"===n}YB(vH);const xH={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 wH(e){return xH[e]}const _H=new Set(["linear","log","pow","sqrt","symlog"]),OH=new Set([..._H,"time","utc"]);function kH(e){return _H.has(e)}const EH=new Set(["quantile","quantize","threshold"]),DH=new Set([...OH,...EH,"sequential","identity"]),AH=new Set(["ordinal","bin-ordinal","point","band"]);function SH(e){return AH.has(e)}function MH(e){return DH.has(e)}function CH(e){return OH.has(e)}function FH(e){return EH.has(e)}function jH(e){return null==e?void 0:e.param}new Set(["time","utc"]);const $H={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,align:1,range:1,rangeMax:1,rangeMin: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:TH,domain:NH,range:zH,rangeMax:PH,rangeMin:RH,scheme:LH}=(YB($H),$H),BH=function(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);rJB(`${"unit"===e?"":`_${e}_`}${i[e]}`))).join(""):(n?"utc":"")+"timeunit"+YB(i).map((e=>JB(`_${e}_${i[e]}`))).join("")}(f),s=(!["range","mid"].includes(t.binSuffix)&&t.binSuffix||"")+(null!==(r=t.suffix)&&void 0!==r?r:""))}a&&(o=o?`${a}_${o}`:a)}return s&&(o=`${o}_${s}`),a&&(o=`${a}_${o}`),t.forAs?oU(o):t.expr?tU(o,t.expr)+l:iU(o)+l}function cG(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return JY(e)&&!!e.bin;case"temporal":return!1}throw new Error(pW(e.type))}const fG=(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(mq(t))return`${r} for argmax(${t.argmax})`;if(gq(t))return`${r} for argmin(${t.argmin})`;const o=VW(i),a=t||(null==o?void 0:o.unit)||(null==o?void 0:o.maxbins)&&"timeunit"||Oq(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(Oq(r))return`${i} (binned)`;if(o){const e=null===(n=VW(o))||void 0===n?void 0:n.unit;if(e)return`${i} (${HW(e).join("-")})`}else if(a)return mq(a)?`${i} for max ${a.argmax}`:gq(a)?`${i} for min ${a.argmin}`:`${KB(a)} of ${i}`;return i}(e,t)}};let dG=fG;function hG(e){dG=e}function pG(e,t,{allowDisabling:n,includeDefault:i=!0}){var r,o;const a=null===(r=gG(e))||void 0===r?void 0:r.title;if(!JY(e))return null!=a?a:e.title;const s=e,l=i?mG(s,t):void 0;return n?sU(a,s.title,l):null!==(o=null!=a?a:s.title)&&void 0!==o?o:l}function gG(e){return oG(e)&&e.axis?e.axis:aG(e)&&e.legend?e.legend:LY(e)&&e.header?e.header:void 0}function mG(e,t){return dG(e,t)}function yG(e){var t;if(sG(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}{const n=null!==(t=gG(e))&&void 0!==t?t:{},{format:i,formatType:r}=n;return{format:i,formatType:r}}}function vG(e){return JY(e)?e:VY(e)?e.condition:void 0}function bG(e){return tG(e)?e:XY(e)?e.condition:void 0}function xG(e,t,n,i={}){return mt(e)||pt(e)||ft(e)?($W(function(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${FB(n)}}.`}(t,mt(e)?"string":pt(e)?"number":"boolean",e)),{value:e}):tG(e)?wG(e,t,n,i):XY(e)?Object.assign(Object.assign({},e),{condition:wG(e.condition,t,n,i)}):e}function wG(e,t,n,i){if(sG(e)){const{format:r,formatType:o}=e,a=UY(e,["format","formatType"]);if(wY(o)&&!n.customFormatTypes)return $W(fW(t)),wG(a,t,n,i)}else{const r=oG(e)?"axis":aG(e)?"legend":LY(e)?"header":null;if(r&&e[r]){const o=e[r],{format:a,formatType:s}=o,l=UY(o,["format","formatType"]);if(wY(s)&&!n.customFormatTypes)return $W(fW(t)),wG(Object.assign(Object.assign({},e),{[r]:l}),t,n,i)}}return JY(e)?_G(e,t,i):function(e){let t=e.type;if(t)return e;const{datum:n}=e;return t=pt(n)?"quantitative":mt(n)?"nominal":TW(n)?"temporal":void 0,Object.assign(Object.assign({},e),{type:t})}(e)}function _G(e,t,{compositeMark:n=!1}={}){const{aggregate:i,timeUnit:r,bin:o,field:a}=e,s=Object.assign({},e);if(n||!i||yq(i)||mq(i)||gq(i)||($W(function(e){return`Invalid aggregation operator "${e}".`}(i)),delete s.aggregate),r&&(s.timeUnit=VW(r)),a&&(s.field=`${a}`),Oq(o)&&(s.bin=OG(o,t)),kq(o)&&!WI(t)&&$W(function(e){return`Channel ${e} should not be used with "binned" bin.`}(t)),nG(s)){const{type:e}=s,t=function(e){if(e)switch(e=e.toLowerCase()){case"q":case uH:return"quantitative";case"t":case fH:return"temporal";case"o":case cH:return"ordinal";case"n":case dH:return"nominal";case hH:return"geojson"}}(e);e!==t&&(s.type=t),"quantitative"!==e&&bq(i)&&($W(function(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}(e,i)),s.type="quantitative")}else if(!vI(t)){const e=function(e,t){var n;switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(qY(e)&&xe(e.sort))return"ordinal";const{aggregate:i,bin:r,timeUnit:o}=e;if(o)return"temporal";if(r||i&&!mq(i)&&!gq(i))return"quantitative";if(rG(e)&&(null===(n=e.scale)||void 0===n?void 0:n.type))switch(vH[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}(s,t);s.type=e}if(nG(s)){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 mU:case yU:case vU:return cG(e)?kG:{compatible:!1,warning:bW(t)};case bU:case xU:case OU:case kU:case $U:case TU:case NU:case WU:case YU:case GU:case VU:case XU:case JU:case RU:case AU:case EU:case QU:return kG;case CU:case jU:case MU:case FU:return n!==uH?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:kG;case LU:case BU:case UU:case IU:case PU:case SU:case DU:case wU:case _U:return"nominal"!==n||e.sort?kG:{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`};case zU:case qU:return cG(e)||function(e){var t;return rG(e)&&FH(null===(t=e.scale)||void 0===t?void 0:t.type)}(e)?kG:{compatible:!1,warning:xW(t)};case HU:return"nominal"!==e.type||"sort"in e?kG:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}}(s,t)||{};!1===e&&$W(n)}if(qY(s)&&mt(s.sort)){const{sort:e}=s;if(TY(e))return Object.assign(Object.assign({},s),{sort:{encoding:e}});const t=e.substr(1);if("-"===e.charAt(0)&&TY(t))return Object.assign(Object.assign({},s),{sort:{encoding:t,order:"descending"}})}if(LY(s)){const{header:e}=s;if(e){const{orient:t}=e,n=UY(e,["orient"]);if(t)return Object.assign(Object.assign({},s),{header:Object.assign(Object.assign({},n),{labelOrient:e.labelOrient||t,titleOrient:e.titleOrient||t})})}}return s}function OG(e,t){return ft(e)?{maxbins:Aq(t)}:"binned"===e?{binned:!0}:e.maxbins||e.step?e:Object.assign(Object.assign({},e),{maxbins:Aq(t)})}const kG={compatible:!0};function EG(e){const{formatType:t}=yG(e);return"time"===t||!t&&function(e){return e&&("temporal"===e.type||JY(e)&&!!e.timeUnit)}(e)}function DG(e,{timeUnit:t,type:n,wrapTime:i,undefinedIfExprNotRequired:r}){var o;const a=t&&(null===(o=VW(t))||void 0===o?void 0:o.unit);let s,l=a||"temporal"===n;return Sq(e)?s=e.expr:jq(e)?s=e.signal:TW(e)?(l=!0,s=BW(e)):(mt(e)||pt(e))&&l&&(s=`datetime(${FB(e)})`,function(e){return!!UW[e]}(a)&&(pt(e)&&e<1e4||mt(e)&&isNaN(Date.parse(e)))&&(s=BW({[a]:e}))),s?i&&l?`time(${s})`:s:r?void 0:FB(e)}function AG(e,t){const{type:n}=e;return t.map((t=>{const i=DG(t,{timeUnit:JY(e)?e.timeUnit:void 0,type:n,undefinedIfExprNotRequired:!0});return void 0!==i?{signal:i}:t}))}function SG(e,t){return Oq(e.bin)?lq(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const MG={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:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function CG(e){return null==e?void 0:e.condition}const FG=["domain","grid","labels","ticks","title"],jG={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"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",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",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"},$G={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap: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,tickCap: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,translate:1,values:1,zindex:1},TG=Object.assign(Object.assign({},$G),{style:1,labelExpr:1,encoding:1});function NG(e){return!!TG[e]}YB(TG);const zG=YB({axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1});function PG(e){return"mark"in e}class RG{constructor(e,t){this.name=e,this.run=t}hasMatchingType(e){return!!PG(e)&&function(e){return lY(e)?e.type:e}(e.mark)===this.name}}function LG(e,t){const n=e&&e[t];return!!n&&(xe(n)?NB(n,(e=>!!e.field)):JY(n)||VY(n))}function BG(e,t){const n=e&&e[t];return!!n&&(xe(n)?NB(n,(e=>!!e.field)):JY(n)||ZY(n)||XY(n))}function UG(e,t){if(WI(t)){const n=e[t];if((JY(n)||ZY(n))&&lH(n.type))return BG(e,OI(t))}return!1}function IG(e){return NB(sI,(t=>{if(LG(e,t)){const n=e[t];if(xe(n))return NB(n,(e=>!!e.aggregate));{const e=vG(n);return e&&!!e.aggregate}}return!1}))}function qG(e,t){const n=[],i=[],r=[],o=[],a={};return YG(e,((s,l)=>{if(JY(s)){const{field:u,aggregate:c,bin:f,timeUnit:d}=s,h=function(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{switch(i){case bU:case xU:case XU:case QU:case JU:case wU:case _U:case OU:case kU:case AU:case SU:case EU:case DU:case MU:case CU:case FU:case jU:case WU:case zU:case RU:case VU:return n;case HU:if("line"===e||"trail"===e)return n;case YU:case GU:{const e=t[i];if(xe(e)||JY(e))for(const t of He(e))t.aggregate||n.push(uG(t,{}));return n}case PU:if("trail"===e)return n;case $U:case TU:case NU:case LU:case BU:case UU:case qU:case IU:{const e=vG(t[i]);return e&&!e.aggregate&&n.push(uG(e,{})),n}}}),[])}var VG=function(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{const r=i?` of ${JG(t)}`:"";return{field:e+t.field,type:t.type,title:jq(n)?{signal:`${n}"${escape(r)}"`}:n+r}})),o=function(e){const t=[];for(const n of YB(e))if(LG(e,n)){const i=He(e[n]);for(const e of i)JY(e)?t.push(e):VY(e)&&t.push(e.condition)}return t}(n).map(lG);return{tooltip:[...r,...LB(o,jB)]}}function JG(e){const{title:t,field:n}=e;return sU(t,n)}function QG(e,t,n,i,r){const{scale:o,axis:a}=n;return({partName:s,mark:l,positionPrefix:u,endPositionPrefix:c,extraEncoding:f={}})=>{const d=JG(n);return ZG(e,s,r,{mark:l,encoding:Object.assign(Object.assign(Object.assign({[t]:Object.assign(Object.assign(Object.assign({field:`${u}_${n.field}`,type:n.type},void 0!==d?{title:d}:{}),void 0!==o?{scale:o}:{}),void 0!==a?{axis:a}:{})},mt(c)?{[`${t}2`]:{field:`${c}_${n.field}`}}:{}),i),f)})}}function ZG(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}:{}),lY(i.mark)?i.mark:{type:i.mark}),{style:`${s}-${String(t)}`}),ft(e[t])?{}:e[t])})]:[]}function KG(e,t,n){const{encoding:i}=e,r="vertical"===t?"y":"x",o=i[r],a=i[`${r}2`],s=i[`${r}Error`],l=i[`${r}Error2`];return{continuousAxisChannelDef:eV(o,n),continuousAxisChannelDef2:eV(a,n),continuousAxisChannelDefError:eV(s,n),continuousAxisChannelDefError2:eV(l,n),continuousAxis:r}}function eV(e,t){if(null==e?void 0:e.aggregate){const{aggregate:n}=e,i=VG(e,["aggregate"]);return n!==t&&$W(function(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}(n,t)),i}return e}function tV(e,t){const{mark:n,encoding:i}=e,{x:r,y:o}=i;if(lY(n)&&n.orient)return n.orient;if(KY(r)){if(KY(o)){const e=JY(r)&&r.aggregate,n=JY(o)&&o.aggregate;if(e||n!==t){if(n||e!==t){if(e===t&&n===t)throw new Error("Both x and y cannot have aggregate");return EG(o)&&!EG(r)?"horizontal":"vertical"}return"horizontal"}return"vertical"}return"horizontal"}if(KY(o))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}var nV=function(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);rQG(u,v,y,e,t.boxplot),M=S(A),C=S(w),F=S(Object.assign(Object.assign({},A),D?{size:D}:{})),j=XG([{fieldPrefix:"min-max"===h?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:"min-max"===h?"lower_whisker_":"min_",titlePrefix:"Min"}],y,w),$={type:"tick",color:"black",opacity:1,orient:_,invalid:d,aria:!1},T="min-max"===h?j:XG([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],y,w),N=[...M({partName:"rule",mark:{type:"rule",invalid:d,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:T}),...M({partName:"rule",mark:{type:"rule",invalid:d,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:T}),...M({partName:"ticks",mark:$,positionPrefix:"lower_whisker",extraEncoding:T}),...M({partName:"ticks",mark:$,positionPrefix:"upper_whisker",extraEncoding:T})],z=[..."tukey"!==h?N:[],...C({partName:"box",mark:Object.assign(Object.assign({type:"bar"},f?{size:f}:{}),{orient:O,invalid:d,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:j}),...F({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:d},we(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{}),f?{size:f}:{}),{orient:_,aria:!1}),positionPrefix:"mid_box",extraEncoding:j})];if("min-max"===h)return Object.assign(Object.assign({},l),{transform:(null!==(i=l.transform)&&void 0!==i?i:[]).concat(m),layer:z});const P=`datum["lower_box_${y.field}"]`,R=`datum["upper_box_${y.field}"]`,L=`(${R} - ${P})`,B=`${P} - ${c} * ${L}`,U=`${R} + ${c} * ${L}`,I=`datum["${y.field}"]`,q={joinaggregate:sV(y.field),groupby:b},W={transform:[{filter:`(${B} <= ${I}) && (${I} <= ${U})`},{aggregate:[{op:"min",field:y.field,as:`lower_whisker_${y.field}`},{op:"max",field:y.field,as:`upper_whisker_${y.field}`},{op:"min",field:`lower_box_${y.field}`,as:`lower_box_${y.field}`},{op:"max",field:`upper_box_${y.field}`,as:`upper_box_${y.field}`},...x],groupby:b}],layer:N},{tooltip:H}=A,Y=nV(A,["tooltip"]),{scale:G,axis:V}=y,X=JG(y),J=CB(V,["title"]),Q=ZG(u,"outliers",t.boxplot,{transform:[{filter:`(${I} < ${B}) || (${I} > ${U})`}],mark:"point",encoding:Object.assign(Object.assign(Object.assign({[v]:Object.assign(Object.assign(Object.assign({field:y.field,type:y.type},void 0!==X?{title:X}:{}),void 0!==G?{scale:G}:{}),HB(J)?{}:{axis:J})},Y),E?{color:E}:{}),k?{tooltip:k}:{})})[0];let Z;const K=[...p,...g,q];return Q?Z={transform:K,layer:[Q,W]}:(Z=W,Z.transform.unshift(...K)),Object.assign(Object.assign({},l),{layer:[Z,{transform:m,layer:z}]})}function sV(e){return[{op:"q1",field:e,as:`lower_box_${e}`},{op:"q3",field:e,as:`upper_box_${e}`}]}var lV=function(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);r1?{layer:p}:Object.assign({},p[0]))}function dV(e,t,n){var i;const{mark:r,encoding:o,params:a,projection:s}=e,l=lV(e,["mark","encoding","params","projection"]),u=lY(r)?r:{type:r};a&&$W(lW(t));const{orient:c,inputType:f}=function(e,t){const{encoding:n}=e;if(function(e){return(tG(e.x)||tG(e.y))&&!tG(e.x2)&&!tG(e.y2)&&!tG(e.xError)&&!tG(e.xError2)&&!tG(e.yError)&&!tG(e.yError2)}(n))return{orient:tV(e,t),inputType:"raw"};const i=function(e){return tG(e.x2)||tG(e.y2)}(n),r=function(e){return tG(e.xError)||tG(e.xError2)||tG(e.yError)||tG(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(tG(e)&&tG(i))throw new Error(`${t} cannot have both x2 and y2`);if(tG(e)){if(KY(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}if(tG(i)){if(KY(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(tG(i)&&!tG(e))throw new Error(`${t} cannot have xError2 without xError`);if(tG(s)&&!tG(r))throw new Error(`${t} cannot have yError2 without yError`);if(tG(e)&&tG(r))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(tG(e)){if(KY(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(tG(r)){if(KY(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")}}(e,t),{continuousAxisChannelDef:d,continuousAxisChannelDef2:h,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:g,continuousAxis:m}=KG(e,c,t),{errorBarSpecificAggregate:y,postAggregateCalculates:v,tooltipSummary:b,tooltipTitleWithFieldName:x}=function(e,t,n,i,r,o,a,s){let l=[],u=[];const c=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)&&$W(function(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}(t,n,a)),"stderr"===n||"stdev"===n)l=[{op:n,field:c,as:`extent_${c}`},{op:t,field:c,as:`center_${c}`}],u=[{calculate:`datum["center_${c}"] + datum["extent_${c}"]`,as:`upper_${c}`},{calculate:`datum["center_${c}"] - datum["extent_${c}"]`,as:`lower_${c}`}],f=[{fieldPrefix:"center_",titlePrefix:KB(t)},{fieldPrefix:"upper_",titlePrefix:hV(t,n,"+")},{fieldPrefix:"lower_",titlePrefix:hV(t,n,"-")}],d=!0;else{let e,t,i;"ci"===n?(e="mean",t="ci0",i="ci1"):(e="median",t="q1",i="q3"),l=[{op:t,field:c,as:`lower_${c}`},{op:i,field:c,as:`upper_${c}`},{op:e,field:c,as:`center_${c}`}],f=[{fieldPrefix:"upper_",titlePrefix:pG({field:c,aggregate:i,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:pG({field:c,aggregate:t,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:pG({field:c,aggregate:e,type:"quantitative"},s,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&$W(function(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`}(e.center,e.extent)),"aggregated-upper-lower"===o?(f=[],u=[{calculate:`datum["${n.field}"]`,as:`upper_${c}`},{calculate:`datum["${c}"]`,as:`lower_${c}`}]):"aggregated-error"===o&&(f=[{fieldPrefix:"",titlePrefix:c}],u=[{calculate:`datum["${c}"] + datum["${i.field}"]`,as:`upper_${c}`}],r?u.push({calculate:`datum["${c}"] + datum["${r.field}"]`,as:`lower_${c}`}):u.push({calculate:`datum["${c}"] - datum["${i.field}"]`,as:`lower_${c}`}));for(const e of u)f.push({fieldPrefix:e.as.substring(0,6),titlePrefix:rU(rU(e.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:u,errorBarSpecificAggregate:l,tooltipSummary:f,tooltipTitleWithFieldName:d}}(u,d,h,p,g,f,t,n),w=o,_=m,O=(w[_],"x"===m?"x2":"y2"),k=(w[O],"x"===m?"xError":"yError"),E=(w[k],"x"===m?"xError2":"yError2"),D=(w[E],lV(w,["symbol"==typeof _?_:_+"","symbol"==typeof O?O:O+"","symbol"==typeof k?k:k+"","symbol"==typeof E?E:E+""])),{bins:A,timeUnits:S,aggregate:M,groupby:C,encoding:F}=qG(D,n),j=[...M,...y],$="raw"!==f?[]:C,T=XG(b,d,F,x);return{transform:[...null!==(i=l.transform)&&void 0!==i?i:[],...A,...S,...0===j.length?[]:[{aggregate:j,groupby:$}],...v],groupby:$,continuousAxisChannelDef:d,continuousAxis:m,encodingWithoutContinuousAxis:F,ticksOrient:"vertical"===c?"horizontal":"vertical",markDef:u,outerSpec:l,tooltipEncoding:T}}function hV(e,t,n){return`${KB(e)} ${n} ${t}`}const pV="errorband",gV=new RG(pV,mV);function mV(e,{config:t}){e=Object.assign(Object.assign({},e),{encoding:HG(e.encoding,t)});const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:a,outerSpec:s,tooltipEncoding:l}=dV(e,pV,t),u=a,c=QG(u,r,i,o,t.errorband),f=void 0!==e.encoding.x&&void 0!==e.encoding.y;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const p=Object.assign(Object.assign({},u.interpolate?{interpolate:u.interpolate}:{}),u.tension&&u.interpolate?{tension:u.tension}:{});return f?(d=Object.assign(Object.assign(Object.assign({},d),p),{ariaRoleDescription:"errorband"}),h=Object.assign(Object.assign(Object.assign({},h),p),{aria:!1})):u.interpolate?$W(MW("interpolate")):u.tension&&$W(MW("tension")),Object.assign(Object.assign({},s),{transform:n,layer:[...c({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:l}),...c({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:l}),...c({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:l})]})}const yV={};function vV(e,t,n){const i=new RG(e,t);yV[e]={normalizer:i,parts:n}}vV(iV,aV,["box","median","outliers","rule","ticks"]),vV(uV,fV,["ticks","rule"]),vV(pV,mV,["band","borders"]);const bV=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],xV={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"},wV={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},_V=YB(xV),OV=YB(wV),kV=YB({header:1,headerRow:1,headerColumn:1,headerFacet:1}),EV=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],DV={aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description: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},AV=(YB(DV),"_vgsid_"),SV={point:{on:"click",fields:[AV],toggle:"event.shiftKey",resolve:"global",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 MV(e){return"legend"===e||!!(null==e?void 0:e.legend)}function CV(e){return MV(e)&&we(e)}function FV(e){return!!(null==e?void 0:e.select)}var jV=function(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);rthis.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=function(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);rthis.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 rX={zero:1,center:1,normalize:1},oX=new Set([HH,GH,YH,ZH,JH,nY,iY,XH,KH,eY]),aX=new Set([GH,YH,HH]);function sX(e){return JY(e)&&"quantitative"===QY(e)&&!e.bin}function lX(e,t){var n,i;const r="x"===t?"y":"radius",o=e[t],a=e[r];if(JY(o)&&JY(a))if(sX(o)&&sX(a)){if(o.stack)return t;if(a.stack)return r;const e=JY(o)&&!!o.aggregate;if(e!==(JY(a)&&!!a.aggregate))return e?t:r;{const e=null===(n=o.scale)||void 0===n?void 0:n.type,s=null===(i=a.scale)||void 0===i?void 0:i.type;if(e&&"linear"!==e)return r;if(s&&"linear"!==s)return t}}else{if(sX(o))return t;if(sX(a))return r}else{if(sX(o))return t;if(sX(a))return r}}function uX(e,t){var n,i;const r=lY(e)?e.type:e;if(!oX.has(r))return null;const o=lX(t,"x")||lX(t,"theta");if(!o)return null;const a=t[o],s=JY(a)?uG(a,{}):void 0,l=function(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}(o),u=[],c=new Set;if(t[l]){const e=t[l],n=JY(e)?uG(e,{}):void 0;n&&n!==s&&(u.push(l),c.add(n));const i="x"===l?"xOffset":"yOffset",r=t[i],o=JY(r)?uG(r,{}):void 0;o&&o!==s&&(u.push(i),c.add(o))}const f=UI.reduce(((e,n)=>{if("tooltip"!==n&&LG(t,n)){const i=t[n];for(const t of He(i)){const i=vG(t);if(i.aggregate)continue;const r=uG(i,{});r&&c.has(r)||e.push({channel:n,fieldDef:i})}}return e}),[]);let d;return void 0!==a.stack?d=ft(a.stack)?a.stack?"zero":null:a.stack:aX.has(r)&&(d="zero"),d&&d in rX?IG(t)&&0===f.length?null:(null===(n=null==a?void 0:a.scale)||void 0===n?void 0:n.type)&&"linear"!==(null===(i=null==a?void 0:a.scale)||void 0===i?void 0:i.type)?($W(function(e){return`Cannot stack non-linear scale (${e}).`}(a.scale.type)),null):tG(t[wI(o)])?(void 0!==a.stack&&$W(`Cannot stack "${h=o}" if there is already "${h}2".`),null):(JY(a)&&a.aggregate&&!xq.has(a.aggregate)&&$W(`Stacking is applied even though the aggregate function is non-summative ("${a.aggregate}").`),{groupbyChannels:u,groupbyFields:c,fieldChannel:o,impute:null!==a.impute&&oY(r),stackBy:f,offset:d}):null;var h}var cX=function(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);r1?i:i.type}function dX(e){for(const t of["line","area","rule","trail"])e[t]&&(e=Object.assign(Object.assign({},e),{[t]:CB(e[t],["point","line"])}));return e}function hX(e,t={},n){return"transparent"===e.point?{opacity:0}:e.point?we(e.point)?e.point:{}:void 0!==e.point?null:t.point||n.shape?we(t.point)?t.point:{}:void 0}function pX(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 gX{constructor(){this.name="path-overlay"}hasMatchingType(e,t){if(PG(e)){const{mark:n,encoding:i}=e,r=lY(n)?n:{type:n};switch(r.type){case"line":case"rule":case"trail":return!!hX(r,t[r.type],i);case"area":return!!hX(r,t[r.type],i)||!!pX(r,t[r.type])}}return!1}run(e,t,n){const{config:i}=t,{params:r,projection:o,mark:a,encoding:s}=e,l=cX(e,["params","projection","mark","encoding"]),u=HG(s,i),c=lY(a)?a:{type:a},f=hX(c,i[c.type],u),d="area"===c.type&&pX(c,i[c.type]),h=[Object.assign(Object.assign({},r?{params:r}:{}),{mark:fX(Object.assign(Object.assign({},"area"===c.type&&void 0===c.opacity&&void 0===c.fillOpacity?{opacity:.7}:{}),c)),encoding:CB(u,["shape"])})],p=uX(c,u);let g=u;if(p){const{fieldChannel:e,offset:t}=p;g=Object.assign(Object.assign({},u),{[e]:Object.assign(Object.assign({},u[e]),t?{stack:t}:{})})}return g=CB(g,["y2","x2"]),d&&h.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"line"},MB(c,["clip","interpolate","tension","tooltip"])),d),encoding:g})),f&&h.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:!0},MB(c,["clip","tooltip"])),f),encoding:g})),n(Object.assign(Object.assign({},l),{layer:h}),Object.assign(Object.assign({},t),{config:dX(i)}))}}function mX(e,t){return t?RY(e)?_X(e,t):bX(e,t):e}function yX(e,t){return t?_X(e,t):e}function vX(e,t,n){const i=t[e];return function(e){return e&&!mt(e)&&"repeat"in e}(i)?i.repeat in n?Object.assign(Object.assign({},t),{[e]:n[i.repeat]}):void $W(function(e){return`Unknown repeated value "${e}".`}(i.repeat)):t}function bX(e,t){if(void 0!==(e=vX("field",e,t))){if(null===e)return null;if(qY(e)&&zY(e.sort)){const n=vX("field",e.sort,t);e=Object.assign(Object.assign({},e),n?{sort:n}:{})}return e}}function xX(e,t){if(JY(e))return bX(e,t);{const n=vX("datum",e,t);return n===e||n.type||(n.type="nominal"),n}}function wX(e,t){if(!tG(e)){if(XY(e)){const n=xX(e.condition,t);if(n)return Object.assign(Object.assign({},e),{condition:n});{const{condition:t}=e;return function(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);rwX(e,t))).filter((e=>e));else{const e=wX(r,t);void 0!==e&&(n[i]=e)}}return n}class OX{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(PG(e)){const{encoding:t,mark:n}=e;if("line"===n||lY(n)&&"line"===n.type)for(const e of yI){const n=t[bI(e)];if(t[e]&&(JY(n)&&!kq(n.bin)||ZY(n)))return!0}}return!1}run(e,t,n){const{encoding:i,mark:r}=e;var o,a;return $W((o=!!i.x2,a=!!i.y2,`Line mark is for continuous lines and thus cannot be used with ${o&&a?"x2 and y2":o?"x2":"y2"}. We will use the rule mark (line segments) instead.`)),n(Object.assign(Object.assign({},e),{mark:we(r)?Object.assign(Object.assign({},r),{type:"rule"}):"rule"}),t)}}var kX=function(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{if(AX(e))return{filter:JX(e,t)};if(BX(e)&&Eq(e.bin))return Object.assign(Object.assign({},e),{bin:XX(e.bin)});if(MX(e)){const t=e.from,{selection:n}=t,i=YX(t,["selection"]);return n?Object.assign(Object.assign({},e),{from:Object.assign({param:n},i)}):e}return e}));return Object.assign(Object.assign({},i),{transform:e})}return e}function VX(e,t){var n,i;const r=AB(e);if(JY(r)&&Eq(r.bin)&&(r.bin=XX(r.bin)),rG(r)&&(null===(i=null===(n=r.scale)||void 0===n?void 0:n.domain)||void 0===i?void 0:i.selection)){const e=r.scale.domain,{selection:t}=e,n=YX(e,["selection"]);r.scale.domain=Object.assign(Object.assign({},n),t?{param:t}:{})}if(GY(r))if(xe(r.condition))r.condition=r.condition.map((e=>{const{selection:n,param:i,test:r}=e,o=YX(e,["selection","param","test"]);return i?e:Object.assign(Object.assign({},o),{test:JX(e,t)})}));else{const e=VX(r.condition,t),{selection:n,param:i,test:o}=e,a=YX(e,["selection","param","test"]);r.condition=i?r.condition:Object.assign(Object.assign({},a),{test:JX(r.condition,t)})}return r}function XX(e){const t=e.extent;if(null==t?void 0:t.selection){const{selection:n}=t,i=YX(t,["selection"]);return Object.assign(Object.assign({},e),{extent:Object.assign(Object.assign({},i),{param:n})})}return e}function JX(e,t){const n=e=>EB(e,(e=>{var n,i,r;const o={param:e,empty:null===(n=t.emptySelections[e])||void 0===n||n};return null!==(i=(r=t.selectionPredicates)[e])&&void 0!==i||(r[e]=[]),t.selectionPredicates[e].push(o),o}));return e.selection?n(e.selection):EB(e.test||e.filter,(e=>e.selection?n(e.selection):e))}class QX extends iX{map(e,t){var n;const i=null!==(n=t.selections)&&void 0!==n?n:[];if(e.params&&!PG(e)){const t=[];for(const n of e.params)FV(n)?i.push(n):t.push(n);e.params=t}return t.selections=i,super.map(e,ZX(e,t))}mapUnit(e,t){var n;const i=t.selections;if(!i||!i.length)return e;const r=(null!==(n=t.path)&&void 0!==n?n:[]).concat(e.name),o=[];for(const t of i)if(t.views&&t.views.length)for(const n of t.views)(mt(n)&&(n===e.name||r.indexOf(n)>=0)||xe(n)&&n.map((e=>r.indexOf(e))).every(((e,t,n)=>-1!==e&&(0===t||e>n[t-1]))))&&o.push(t);else o.push(t);return o.length&&(e.params=o),e}}for(const e of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const t=QX.prototype[e];QX.prototype[e]=function(e,n){return t.call(this,e,ZX(e,n))}}function ZX(e,t){var n;return e.name?Object.assign(Object.assign({},t),{path:(null!==(n=t.path)&&void 0!==n?n:[]).concat(e.name)}):t}function KX(e,t){void 0===t&&(t=QV(e.config));const n=function(e,t={}){const n={config:t};return nJ.map(eJ.map(tJ.map(e,n),n),n)}(e,t),{width:i,height:r}=e,o=function(e,t,n){let{width:i,height:r}=t;const o=PG(e)||nX(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&&($W(nW("width")),i=void 0),"container"==r&&($W(nW("height")),r=void 0));const s=Object.assign(Object.assign(Object.assign({type:"pad"},a),n?iJ(n.autosize):{}),iJ(e.autosize));if("fit"!==s.type||o||($W('Autosize "fit" only works for single views and layered views.'),s.type="pad"),"container"==i&&"fit"!=s.type&&"fit-x"!=s.type&&$W(iW("width")),"container"==r&&"fit"!=s.type&&"fit-y"!=s.type&&$W(iW("height")),!DB(s,{type:"pad"}))return s}(n,{width:i,height:r,autosize:e.autosize},t);return Object.assign(Object.assign({},n),o?{autosize:o}:{})}const eJ=new class extends iX{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[rV,cV,gV,new gX,new OX]}map(e,t){if(PG(e)){const n=LG(e.encoding,mU),i=LG(e.encoding,yU),r=LG(e.encoding,vU);if(n||i||r)return this.mapFacetedUnit(e,t)}return super.map(e,t)}mapUnit(e,t){const{parentEncoding:n,parentProjection:i}=t,r=yX(e.encoding,t.repeater),o=Object.assign(Object.assign({},e),r?{encoding:r}:{});if(n||i)return this.mapUnitWithParentEncodingOrProjection(o,t);const a=this.mapLayerOrUnit.bind(this);for(const e of this.nonFacetUnitNormalizers)if(e.hasMatchingType(o,t.config))return e.run(o,t,a);return o}mapRepeat(e,t){return function(e){return!xe(e.repeat)&&e.repeat.layer}(e)?this.mapLayerRepeat(e,t):this.mapNonLayerRepeat(e,t)}mapLayerRepeat(e,t){const{repeat:n,spec:i}=e,r=kX(e,["repeat","spec"]),{row:o,column:a,layer:s}=n,{repeater:l={},repeaterPrefix:u=""}=t;return o||a?this.mapRepeat(Object.assign(Object.assign({},e),{repeat:Object.assign(Object.assign({},o?{row:o}:{}),a?{column:a}:{}),spec:{repeat:{layer:s},spec:i}}),t):Object.assign(Object.assign({},r),{layer:s.map((e=>{const n=Object.assign(Object.assign({},l),{layer:e}),r=`${(i.name||"")+u}child__layer_${JB(e)}`,o=this.mapLayerOrUnit(i,Object.assign(Object.assign({},t),{repeater:n,repeaterPrefix:r}));return o.name=r,o}))})}mapNonLayerRepeat(e,t){var n;const{repeat:i,spec:r,data:o}=e,a=kX(e,["repeat","spec","data"]);!xe(i)&&e.columns&&(e=CB(e,["columns"]),$W(uW("repeat")));const s=[],{repeater:l={},repeaterPrefix:u=""}=t,c=!xe(i)&&i.row||[l?l.row:null],f=!xe(i)&&i.column||[l?l.column:null],d=xe(i)&&i||[l?l.repeat:null];for(const e of d)for(const n of c)for(const o of f){const a={repeat:e,row:n,column:o,layer:l.layer},c=(r.name||"")+u+"child__"+(xe(i)?`${JB(e)}`:(i.row?`row_${JB(n)}`:"")+(i.column?`column_${JB(o)}`:"")),f=this.map(r,Object.assign(Object.assign({},t),{repeater:a,repeaterPrefix:c}));f.name=c,s.push(CB(f,["data"]))}const h=xe(i)?e.columns:i.column?i.column.length:1;return Object.assign(Object.assign({data:null!==(n=r.data)&&void 0!==n?n:o,align:"all"},a),{columns:h,concat:s})}mapFacet(e,t){const{facet:n}=e;return RY(n)&&e.columns&&(e=CB(e,["columns"]),$W(uW("facet"))),super.mapFacet(e,t)}mapUnitWithParentEncodingOrProjection(e,t){const{encoding:n,projection:i}=e,{parentEncoding:r,parentProjection:o,config:a}=t,s=DX({parentProjection:o,projection:i}),l=EX({parentEncoding:r,encoding:yX(n,t.repeater)});return this.mapUnit(Object.assign(Object.assign(Object.assign({},e),s?{projection:s}:{}),l?{encoding:l}:{}),{config:a})}mapFacetedUnit(e,t){const n=e.encoding,{row:i,column:r,facet:o}=n,a=kX(n,["row","column","facet"]),{mark:s,width:l,projection:u,height:c,view:f,params:d,encoding:h}=e,p=kX(e,["mark","width","projection","height","view","params","encoding"]),{facetMapping:g,layout:m}=this.getFacetMappingAndLayout({row:i,column:r,facet:o},t),y=yX(a,t.repeater);return this.mapFacet(Object.assign(Object.assign(Object.assign({},p),m),{facet:g,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},l?{width:l}:{}),c?{height:c}:{}),f?{view:f}:{}),u?{projection:u}:{}),{mark:s,encoding:y}),d?{params:d}:{})}),t)}getFacetMappingAndLayout(e,t){var n;const{row:i,column:r,facet:o}=e;if(i||r){o&&$W(`Facet encoding dropped as ${(a=[...i?[mU]:[],...r?[yU]:[]]).join(" and ")} ${a.length>1?"are":"is"} also specified.`);const t={},s={};for(const i of[mU,yU]){const r=e[i];if(r){const{align:e,center:o,spacing:a,columns:l}=r,u=kX(r,["align","center","spacing","columns"]);t[i]=u;for(const e of["align","center","spacing"])void 0!==r[e]&&(null!==(n=s[e])&&void 0!==n||(s[e]={}),s[e][i]=r[e])}}return{facetMapping:t,layout:s}}{const{align:e,center:n,spacing:i,columns:r}=o;return{facetMapping:mX(kX(o,["align","center","spacing","columns"]),t.repeater),layout:Object.assign(Object.assign(Object.assign(Object.assign({},e?{align:e}:{}),n?{center:n}:{}),i?{spacing:i}:{}),r?{columns:r}:{})}}var a}mapLayer(e,t){var{parentEncoding:n,parentProjection:i}=t,r=kX(t,["parentEncoding","parentProjection"]);const{encoding:o,projection:a}=e,s=kX(e,["encoding","projection"]),l=Object.assign(Object.assign({},r),{parentEncoding:EX({parentEncoding:n,encoding:o,layer:!0}),parentProjection:DX({parentProjection:i,projection:a})});return super.mapLayer(s,l)}},tJ=new class extends iX{map(e,t){var n,i;return null!==(n=t.emptySelections)&&void 0!==n||(t.emptySelections={}),null!==(i=t.selectionPredicates)&&void 0!==i||(t.selectionPredicates={}),e=GX(e,t),super.map(e,t)}mapLayerOrUnit(e,t){if((e=GX(e,t)).encoding){const n={};for(const[i,r]of VB(e.encoding))n[i]=VX(r,t);e=Object.assign(Object.assign({},e),{encoding:n})}return super.mapLayerOrUnit(e,t)}mapUnit(e,t){const n=e,{selection:i}=n,r=YX(n,["selection"]);return i?Object.assign(Object.assign({},r),{params:VB(i).map((([e,n])=>{var i;const r=n,{init:o,bind:a,empty:s}=r,l=YX(r,["init","bind","empty"]);"single"===l.type?(l.type="point",l.toggle=!1):"multi"===l.type&&(l.type="point"),t.emptySelections[e]="none"!==s;for(const n of GB(null!==(i=t.selectionPredicates[e])&&void 0!==i?i:{}))n.empty="none"!==s;return{name:e,value:o,select:l,bind:a}}))}):e}},nJ=new QX;function iJ(e){return mt(e)?{type:e}:null!=e?e:{}}const rJ=["background","padding"];function oJ(e,t){const n={};for(const t of rJ)e&&void 0!==e[t]&&(n[t]=Bq(e[t]));return t&&(n.params=e.params),n}class aJ{constructor(e={},t={}){this.explicit=e,this.implicit=t}clone(){return new aJ(AB(this.explicit),AB(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return sU(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,{value:t,explicit:n}){void 0!==t&&this.set(e,t,n)}set(e,t,n){return delete this[n?"implicit":"explicit"][e],this[n?"explicit":"implicit"][e]=t,this}copyKeyFromSplit(e,{explicit:t,implicit:n}){void 0!==t[e]?this.set(e,t[e],!0):void 0!==n[e]&&this.set(e,n[e],!1)}copyKeyFromObject(e,t){void 0!==t[e]&&this.set(e,t[e],!0)}copyAll(e){for(const t of YB(e.combine())){const n=e.getWithExplicit(t);this.setWithExplicit(t,n)}}}function sJ(e){return{explicit:!0,value:e}}function lJ(e){return{explicit:!1,value:e}}function uJ(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:cJ(t,n,i,r)}}function cJ(e,t,n,i){return e.explicit&&t.explicit&&$W(function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${FB(n)} and ${FB(i)}). Using ${FB(n)}.`}(n,i,e.value,t.value)),e}function fJ(e,t,n,i,r=cJ){return void 0===e||void 0===e.value?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:DB(e.value,t.value)?e:r(e,t,n,i)}class dJ extends aJ{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}}function hJ(e){return"url"in e}function pJ(e){return"values"in e}function gJ(e){return"name"in e&&!hJ(e)&&!pJ(e)&&!mJ(e)}function mJ(e){return e&&(yJ(e)||vJ(e)||bJ(e))}function yJ(e){return"sequence"in e}function vJ(e){return"sphere"in e}function bJ(e){return"graticule"in e}var xJ;!function(e){e[e.Raw=0]="Raw",e[e.Main=1]="Main",e[e.Row=2]="Row",e[e.Column=3]="Column",e[e.Lookup=4]="Lookup"}(xJ||(xJ={}));var wJ=function(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_J(e,t,n)));return t?`[${i.join(", ")}]`:i}return TW(e)?n(t?BW(e):function(e){const t=LW(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}(e)):t?n(FB(e)):e}function OJ(e,t){var n;for(const i of GB(null!==(n=e.component.selection)&&void 0!==n?n:{})){const n=i.name;let r=`${n}${TQ}, ${"global"===i.resolve?"true":`{unit: ${RQ(e)}}`}`;for(const n of PQ)n.defined(i)&&(n.signals&&(t=n.signals(e,i,t)),n.modifyExpr&&(r=n.modifyExpr(e,i,r)));t.push({name:n+NQ,on:[{events:{signal:i.name+TQ},update:`modify(${kt(i.name+$Q)}, ${r})`}]})}return EJ(t)}function kJ(e,t){var n;for(const i of GB(null!==(n=e.component.selection)&&void 0!==n?n:{}))for(const n of PQ)n.defined(i)&&n.marks&&(t=n.marks(e,i,t));return t}function EJ(e){return e.map((e=>(e.on&&!e.on.length&&delete e.on,e)))}class DJ{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.includes(e)?$W("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);const n=e.parent.removeChild(e);this._parent=t,t.addChild(this,n),e.parent=this}}class AJ extends DJ{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}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)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return void 0===this._hash&&(this._hash=`Output ${uU()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}var SJ=function(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{const{field:n,timeUnit:i}=t;if(i){const r=uG(t,{forAs:!0});e[jB({as:r,field:n,timeUnit:i})]={as:r,field:n,timeUnit:i}}return e}),{});return HB(n)?null:new MJ(e,n)}static makeFromTransform(e,t){const n=Object.assign({},t),{timeUnit:i}=n,r=SJ(n,["timeUnit"]),o=VW(i),a=Object.assign(Object.assign({},r),{timeUnit:o});return new MJ(e,{[jB(a)]:a})}merge(e){this.formula=Object.assign({},this.formula);for(const t in e.formula)this.formula[t]||(this.formula[t]=e.formula[t]);for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}removeFormulas(e){const t={};for(const[n,i]of VB(this.formula))e.has(i.as)||(t[n]=i);this.formula=t}producedFields(){return new Set(GB(this.formula).map((e=>e.as)))}dependentFields(){return new Set(GB(this.formula).map((e=>e.field)))}hash(){return`TimeUnit ${jB(this.formula)}`}assemble(){const e=[];for(const t of GB(this.formula)){const{field:n,as:i,timeUnit:r}=t,o=VW(r),{unit:a,utc:s}=o,l=SJ(o,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:iU(n),type:"timeunit"},a?{units:HW(a)}:{}),s?{timezone:"utc"}:{}),l),{as:[i,`${i}_end`]}))}return e}}const CJ="_tuple_fields";class FJ{constructor(...e){this.items=e,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const jJ={defined:()=>!0,parse:(e,t,n)=>{var i;const r=t.name,o=null!==(i=t.project)&&void 0!==i?i:t.project=new FJ,a={},s={},l=new Set,u=(e,t)=>{const n="visual"===t?e.channel:e.field;let i=JB(`${r}_${n}`);for(let e=1;l.has(i);e++)i=JB(`${r}_${n}_${e}`);return l.add(i),{[t]:i}},c=t.type,f=e.config.selection[c],d=void 0!==n.value?He(n.value):null;let{fields:h,encodings:p}=we(n.select)?n.select:{};if(!h&&!p&&d)for(const e of d)if(we(e))for(const t of YB(e))gI[t]?(p||(p=[])).push(t):"interval"===c?($W('Interval selections should be initialized using "x" and/or "y" keys.'),p=f.encodings):(h||(h=[])).push(t);h||p||(p=f.encodings,"fields"in f&&(h=f.fields));for(const t of null!=p?p:[]){const n=e.fieldDef(t);if(n){let i=n.field;if(n.aggregate){$W(sW(t,n.aggregate));continue}if(!i){$W(aW(t));continue}if(n.timeUnit){i=e.vgField(t);const r={timeUnit:n.timeUnit,as:i,field:n.field};s[jB(r)]=r}if(!a[i]){let r="E";"interval"===c?MH(e.getScaleComponent(t).get("type"))&&(r="R"):n.bin&&(r="R-RE");const s={field:i,channel:t,type:r};s.signals=Object.assign(Object.assign({},u(s,"data")),u(s,"visual")),o.items.push(a[i]=s),o.hasField[i]=o.hasChannel[t]=a[i],o.hasSelectionId=o.hasSelectionId||i===AV}}else $W(aW(t))}for(const e of null!=h?h:[]){if(o.hasField[e])continue;const t={type:"E",field:e};t.signals=Object.assign({},u(t,"data")),o.items.push(t),o.hasField[e]=t,o.hasSelectionId=o.hasSelectionId||e===AV}d&&(t.init=d.map((e=>o.items.map((t=>we(e)?void 0!==e[t.channel]?e[t.channel]:e[t.field]:e))))),HB(s)||(o.timeUnit=new MJ(null,s))},signals:(e,t,n)=>{const i=t.name+CJ;return n.filter((e=>e.name===i)).length>0||t.project.hasSelectionId?n:n.concat({name:i,value:t.project.items.map((e=>{const{signals:t,hasLegend:n}=e,i=function(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"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(!lq(r))continue;const o=e.getScaleComponent(r),a=o?o.get("type"):void 0;o&&MH(a)?(o.set("selectionExtent",{param:t.name,field:i.field},!0),n.push(i)):$W("Scale bindings are currently only supported for scales with unbinned, continuous domains.")}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter((e=>0===n.filter((t=>t.name===e.signals.data)).length));if(!e.parent||PJ(e)||0===i.length)return n;const r=n.filter((e=>e.name===t.name))[0];let o=r.update;if(o.indexOf(zQ)>=0)r.update=`{${i.map((e=>`${kt(iU(e.field))}: ${e.signals.data}`)).join(", ")}}`;else{for(const e of i){const t=`${kt(iU(e.field))}: ${e.signals.data}`;o.includes(t)||(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&&!PJ(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}},NJ=TJ;function zJ(e,t){return`domain(${kt(e.scaleName(t))})`}function PJ(e){var t;return e.parent&&b0(e.parent)&&(null!==(t=!e.parent.parent)&&void 0!==t?t:PJ(e.parent.parent))}const RJ="_brush",LJ="_scale_trigger",BJ={defined:e=>"interval"===e.type,signals:(e,t,n)=>{const i=t.name,r=i+CJ,o=NJ.defined(t),a=t.init?t.init[0]:null,s=[],l=[];if(t.translate&&!o){const e=`!event.item || event.item.mark.name !== ${kt(i+RJ)}`;IJ(t,((t,n)=>{var i,r;const o=He(null!==(i=(r=n.between[0]).filter)&&void 0!==i?i:r.filter=[]);return o.includes(e)||o.push(e),t}))}t.project.items.forEach(((i,r)=>{const o=i.channel;if(o!==bU&&o!==xU)return void $W("Interval selections only support x and y encoding channels.");const u=a?a[r]:null,c=function(e,t,n,i){const r=n.channel,o=n.signals.visual,a=n.signals.data,s=NJ.defined(t),l=kt(e.scaleName(r)),u=e.getScaleComponent(r),c=u?u.get("type"):void 0,f=e=>`scale(${l}, ${e})`,d=e.getSizeSignalRef(r===bU?"width":"height").signal,h=`${r}(unit)`,p=IJ(t,((e,t)=>[...e,{events:t.between[0],update:`[${h}, ${h}]`},{events:t,update:`[${o}[0], clamp(${h}, 0, ${d})]`}]));return p.push({events:{signal:t.name+LJ},update:MH(c)?`[${f(`${a}[0]`)}, ${f(`${a}[1]`)}]`:"[0, 0]"}),s?[{name:a,on:[]}]:[Object.assign(Object.assign({name:o},i?{init:_J(i,!0,f)}:{value:[]}),{on:p}),Object.assign(Object.assign({name:a},i?{init:_J(i)}:{}),{on:[{events:{signal:o},update:`${o}[0] === ${o}[1] ? null : invert(${l}, ${o})`}]})]}(e,t,i,u),f=i.signals.data,d=i.signals.visual,h=kt(e.scaleName(o)),p=MH(e.getScaleComponent(o).get("type"))?"+":"";n.push(...c),s.push(f),l.push({scaleName:e.scaleName(o),expr:`(!isArray(${f}) || (${p}invert(${h}, ${d})[0] === ${p}${f}[0] && ${p}invert(${h}, ${d})[1] === ${p}${f}[1]))`})})),!o&&l.length&&n.push({name:i+LJ,value:{},on:[{events:l.map((e=>({scale:e.scaleName}))),update:`${l.map((e=>e.expr)).join(" && ")} ? ${i+LJ} : {}`}]});const u=`unit: ${RQ(e)}, fields: ${r}, values`;return n.concat(Object.assign(Object.assign({name:i+TQ},a?{init:`{${u}: ${_J(a)}}`}:{}),s.length?{on:[{events:[{signal:s.join(" || ")}],update:`${s.join(" && ")} ? {${u}: [${s}]} : null`}]}:{}))},marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.hasChannel,a=null==r?void 0:r.signals.visual,s=null==o?void 0:o.signals.visual,l=`data(${kt(t.name+$Q)})`;if(NJ.defined(t)||!r&&!o)return n;const u={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 YB(u))u[t]=[Object.assign({test:`${l}.length && ${l}[0].unit === ${RQ(e)}`},u[t]),{value:0}];const c=t.mark,{fill:f,fillOpacity:d,cursor:h}=c,p=function(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(e[t]=[{test:[void 0!==r&&`${a}[0] !== ${a}[1]`,void 0!==o&&`${s}[0] !== ${s}[1]`].filter((e=>e)).join(" && "),value:p[t]},{value:null}],e)),{});return[{name:`${i+RJ}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:f},fillOpacity:{value:d}},update:u}},...n,{name:i+RJ,type:"rect",clip:!0,encode:{enter:Object.assign(Object.assign({},h?{cursor:{value:h}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},u),g)}}]}},UJ=BJ;function IJ(e,t){return e.events.reduce(((e,n)=>n.between?t(e,n):($W(`${n} is not an ordered event stream for interval selections.`),e)),[])}const qJ={defined:e=>"point"===e.type,signals:(e,t,n)=>{var i;const r=t.name,o=r+CJ,a=t.project,s="(item().isVoronoi ? datum.datum : datum)",l=GB(null!==(i=e.component.selection)&&void 0!==i?i:{}).reduce(((e,t)=>"interval"===t.type?e.concat(t.name+RJ):e),[]).map((e=>`indexof(item().mark.name, '${e}') < 0`)).join(" && "),u="datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0"+(l?` && ${l}`:"");let c=`unit: ${RQ(e)}, `;t.project.hasSelectionId?c+=`_vgsid_: ${s}[${kt(AV)}]`:c+=`fields: ${o}, values: [${a.items.map((t=>{const n=e.fieldDef(t.channel);return(null==n?void 0:n.bin)?`[${s}[${kt(e.vgField(t.channel,{}))}], ${s}[${kt(e.vgField(t.channel,{binSuffix:"end"}))}]]`:`${s}[${kt(t.field)}]`})).join(", ")}]`;const f=t.events;return n.concat([{name:r+TQ,on:f?[{events:f,update:`${u} ? {${c}} : null`,force:!0}]:[]}])}},WJ=qJ;function HJ(e,t,n,i){const r=GY(t)&&t.condition,o=i(t);if(r){const t=He(r).map((t=>{const n=i(t);if(function(e){return e.param}(t)){const{param:i,empty:r}=t,o=HQ(e,{param:i,empty:r});return Object.assign({test:o},n)}{const i=GQ(e,t.test);return Object.assign({test:i},n)}}));return{[n]:[...t,...void 0!==o?[o]:[]]}}return void 0!==o?{[n]:o}:{}}function YJ(e,t="text"){const n=e.encoding[t];return HJ(e,n,t,(t=>GJ(t,e.config)))}function GJ(e,t,n="datum"){if(e){if(iG(e))return Iq(e.value);if(tG(e)){const{format:i,formatType:r}=yG(e);return OY({fieldOrDatumDef:e,format:i,formatType:r,expr:n,config:t})}}}function VJ(e,t={}){const{encoding:n,markDef:i,config:r,stack:o}=e,a=n.tooltip;if(xe(a))return{tooltip:JJ({tooltip:a},o,r,t)};{const s=t.reactiveGeom?"datum.datum":"datum";return HJ(e,a,"tooltip",(e=>{const a=GJ(e,r,s);if(a)return a;if(null===e)return;let l=Gq("tooltip",i,r);return!0===l&&(l={content:"encoding"}),mt(l)?{value:l}:we(l)?jq(l)?l:"encoding"===l.content?JJ(n,o,r,t):{signal:s}:void 0}))}}function XJ(e,t,n,{reactiveGeom:i}={}){const r={},o=i?"datum.datum":"datum",a=[];function s(i,s){const l=bI(s),u=nG(i)?i:Object.assign(Object.assign({},i),{type:e[l].type}),c=He(u.title||mG(u,n)).join(", ");let f;if(WI(s)){const t="x"===s?"x2":"y2",i=vG(e[t]);if(kq(u.bin)&&i){const e=uG(u,{expr:o}),a=uG(i,{expr:o}),{format:s,formatType:l}=yG(u);f=FY(e,a,s,l,n),r[t]=!0}}if((WI(s)||s===AU||s===EU)&&t&&t.fieldChannel===s&&"normalize"===t.offset){const{format:e,formatType:t}=yG(u);f=OY({fieldOrDatumDef:u,format:e,formatType:t,expr:o,config:n,normalizeStack:!0}).signal}null!=f||(f=GJ(u,n,o).signal),a.push({channel:s,key:c,value:f})}YG(e,((e,t)=>{JY(e)?s(e,t):VY(e)&&s(e.condition,t)}));const l={};for(const{channel:e,key:t,value:n}of a)r[e]||l[t]||(l[t]=n);return l}function JJ(e,t,n,{reactiveGeom:i}={}){const r=XJ(e,t,n,{reactiveGeom:i}),o=VB(r).map((([e,t])=>`"${e}": ${t}`));return o.length>0?{signal:`{${o.join(", ")}}`}:void 0}function QJ(e,t,n={}){const{markDef:i,encoding:r,config:o}=t,{vgChannel:a}=n;let{defaultRef:s,defaultValue:l}=n;void 0===s&&(null!=l||(l=Gq(e,i,o,{vgChannel:a,ignoreVgConfig:!0})),void 0!==l&&(s=Iq(l)));const u=r[e];return HJ(t,u,null!=a?a:e,(n=>bY({channel:e,channelDef:n,markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e),stack:null,defaultRef:s})))}function ZJ(e,t={filled:void 0}){var n,i,r,o;const{markDef:a,encoding:s,config:l}=e,{type:u}=a,c=null!==(n=t.filled)&&void 0!==n?n:Gq("filled",a,l),f=TB(["bar","point","circle","square","geoshape"],u)?"transparent":void 0,d=null!==(r=null!==(i=Gq(!0===c?"color":void 0,a,l,{vgChannel:"fill"}))&&void 0!==i?i:l.mark[!0===c&&"color"])&&void 0!==r?r:f,h=null!==(o=Gq(!1===c?"color":void 0,a,l,{vgChannel:"stroke"}))&&void 0!==o?o:l.mark[!1===c&&"color"],p=c?"fill":"stroke",g=Object.assign(Object.assign({},d?{fill:Iq(d)}:{}),h?{stroke:Iq(h)}:{});return a.color&&(c?a.fill:a.stroke)&&$W(gW("property",{fill:"fill"in a,stroke:"stroke"in a})),Object.assign(Object.assign(Object.assign(Object.assign({},g),QJ("color",e,{vgChannel:p,defaultValue:c?d:h})),QJ("fill",e,{defaultValue:s.fill?d:void 0})),QJ("stroke",e,{defaultValue:s.stroke?h:void 0}))}function KJ({channel:e,markDef:t,encoding:n={},model:i,bandPosition:r}){const o=`${e}Offset`,a=t[o],s=n[o];if(("xOffset"===o||"yOffset"===o)&&s)return{offsetType:"encoding",offset:bY({channel:o,channelDef:s,markDef:t,config:null==i?void 0:i.config,scaleName:i.scaleName(o),scale:i.getScaleComponent(o),stack:null,defaultRef:Iq(a),bandPosition:r})};const l=t[o];return l?{offsetType:"visual",offset:l}:{}}function eQ(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:a,stack:s}=t,l=r[e],u=r[wI(e)],c=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=KJ({channel:e,markDef:o,encoding:r,model:t,bandPosition:.5}),p=tQ({model:t,defaultPos:n,channel:e,scaleName:c,scale:f}),g=!l&&WI(e)&&(r.latitude||r.longitude)?{field:t.getName(e)}:function(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o,markDef:a}=e;if(tG(n)&&r&&t===r.fieldChannel){if(JY(n)){let e=n.bandPosition;if(void 0!==e||"text"!==a.type||"radius"!==t&&"theta"!==t||(e=.5),void 0!==e)return vY({scaleName:i,fieldOrDatumDef:n,startSuffix:"start",bandPosition:e,offset:o})}return yY(n,i,{suffix:"end"},{offset:o})}return pY(e)}({channel:e,channelDef:l,channel2Def:u,markDef:o,config:a,scaleName:c,scale:f,stack:s,offset:d,defaultRef:p,bandPosition:"encoding"===h?0:void 0});return g?{[i||e]:g}:void 0}function tQ({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:a}=e;return()=>{const s=bI(n),l=xI(n),u=Gq(n,o,a,{vgChannel:l});if(void 0!==u)return xY(n,u);switch(t){case"zeroOrMin":case"zeroOrMax":if(i){const e=r.get("type");if(TB(["log",pH,gH],e));else if(r.domainDefinitelyIncludesZero())return{scale:i,value:0}}if("zeroOrMin"===t)return"y"===s?{field:{group:"height"}}:{value:0};switch(s){case"radius":return{signal:`min(${e.width.signal},${e.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":{const t=e[_I(n)];return Object.assign(Object.assign({},t),{mult:.5})}}}}const nQ={left:"x",center:"xc",right:"x2"},iQ={top:"y",middle:"yc",bottom:"y2"};function rQ(e,t,n,i="middle"){if("radius"===e||"theta"===e)return xI(e);const r="x"===e?"align":"baseline",o=Gq(r,t,n);let a;return jq(o)?($W(function(e){return`The ${e} for range marks cannot be an expression`}(r)),a=void 0):a=o,"x"===e?nQ[a||("top"===i?"left":"center")]:iQ[a||i]}function oQ(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?aQ(e,t,{defaultPos:n,defaultPos2:i}):eQ(e,t,{defaultPos:n})}function aQ(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,a=wI(e),s=_I(e),l=function(e,t,n){const{encoding:i,mark:r,markDef:o,stack:a,config:s}=e,l=bI(n),u=_I(n),c=xI(n),f=i[l],d=e.scaleName(l),h=e.getScaleComponent(l),{offset:p}=KJ(n in i||n in o?{channel:n,markDef:o,encoding:i,model:e}:{channel:l,markDef:o,encoding:i,model:e});if(!f&&("x2"===n||"y2"===n)&&(i.latitude||i.longitude)){const t=_I(n),i=e.markDef[t];return null!=i?{[t]:{value:i}}:{[c]:{field:e.getName(n)}}}const g=function({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:l,defaultRef:u}){return tG(t)&&s&&e.charAt(0)===s.fieldChannel.charAt(0)?yY(t,o,{suffix:"start"},{offset:l}):pY({channel:e,channelDef:n,scaleName:o,scale:a,stack:s,markDef:i,config:r,offset:l,defaultRef:u})}({channel:n,channelDef:f,channel2Def:i[n],markDef:o,config:s,scaleName:d,scale:h,stack:a,offset:p,defaultRef:void 0});return void 0!==g?{[c]:g}:sQ(n,o)||sQ(n,{[n]:Xq(n,o,s.style),[u]:Xq(u,o,s.style)})||sQ(n,s[r])||sQ(n,s.mark)||{[c]:tQ({model:e,defaultPos:t,channel:n,scaleName:d,scale:h})()}}(t,i,a),u=l[s]?rQ(e,r,o):xI(e);return Object.assign(Object.assign({},eQ(e,t,{defaultPos:n,vgChannel:u})),l)}function sQ(e,t){const n=_I(e),i=xI(e);if(void 0!==t[i])return{[i]:xY(e,t[i])};if(void 0!==t[e])return{[i]:xY(e,t[e])};if(t[n]){const i=t[n];if(!dY(i))return{[n]:xY(e,i)};$W(function(e){return`Position range does not support relative band size for ${e}.`}(n))}}function lQ(e,t){var n,i;const{config:r,encoding:o,markDef:a}=e,s=a.type,l=wI(t),u=_I(t),c=o[t],f=o[l],d=e.getScaleComponent(t),h=d?d.get("type"):void 0,p=a.orient,g=null!==(i=null!==(n=o[u])&&void 0!==n?n:o.size)&&void 0!==i?i:Gq("size",a,r,{vgChannel:u}),m="bar"===s&&("x"===t?"vertical"===p:"horizontal"===p);return!JY(c)||!(Oq(c.bin)||kq(c.bin)||c.timeUnit&&!f)||g&&!dY(g)||SH(h)?(tG(c)&&SH(h)||m)&&!f?function(e,t,n){const{markDef:i,encoding:r,config:o,stack:a}=n,s=i.orient,l=n.scaleName(t),u=n.getScaleComponent(t),c=_I(t),f=wI(t),d=function(e){switch(e){case bU:return"xOffset";case xU:return"yOffset";case wU:return"x2Offset";case _U:return"y2Offset";case AU:return"thetaOffset";case EU:return"radiusOffset";case SU:return"theta2Offset";case DU:return"radius2Offset"}}(t),h=n.scaleName(d),p="horizontal"===s&&"y"===t||"vertical"===s&&"x"===t;let g;(r.size||i.size)&&(p?g=QJ("size",n,{vgChannel:c,defaultRef:Iq(i.size)}):$W(function(e){return`Cannot apply size to non-oriented mark "${e}".`}(i.type)));const m=!!g,y=HY({channel:t,fieldDef:e,markDef:i,config:o,scaleType:null==u?void 0:u.get("type"),useVlSizeChannel:p});g=g||{[c]:uQ(c,h||l,u,o,y)};const v=rQ(t,i,o,"band"===(null==u?void 0:u.get("type"))&&dY(y)&&!m?"top":"middle"),b="xc"===v||"yc"===v,{offset:x,offsetType:w}=KJ({channel:t,markDef:i,encoding:r,model:n,bandPosition:b?.5:0}),_=pY({channel:t,channelDef:e,markDef:i,config:o,scaleName:l,scale:u,stack:a,offset:x,defaultRef:tQ({model:n,defaultPos:"mid",channel:t,scaleName:l,scale:u}),bandPosition:b?"encoding"===w?0:.5:jq(y)?{signal:`(1-${y})/2`}:dY(y)?(1-y.band)/2:0});if(c)return Object.assign({[v]:_},g);{const e=xI(f),t=g[c],n=x?Object.assign(Object.assign({},t),{offset:x}):t;return{[v]:_,[e]:xe(_)?[_[0],Object.assign(Object.assign({},_[1]),{offset:n})]:Object.assign(Object.assign({},_),{offset:n})}}}(c,t,e):aQ(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"}):function({fieldDef:e,fieldDef2:t,channel:n,model:i}){var r,o,a;const{config:s,markDef:l,encoding:u}=i,c=i.getScaleComponent(n),f=i.scaleName(n),d=c?c.get("type"):void 0,h=c.get("reverse"),p=HY({channel:n,fieldDef:e,markDef:l,config:s,scaleType:d}),g=null===(r=i.component.axes[n])||void 0===r?void 0:r[0],m=null!==(o=null==g?void 0:g.get("translate"))&&void 0!==o?o:.5,y=WI(n)&&null!==(a=Gq("binSpacing",l,s))&&void 0!==a?a:0,v=wI(n),b=xI(n),x=xI(v),{offset:w}=KJ({channel:n,markDef:l,encoding:u,model:i,bandPosition:0}),_=jq(p)?{signal:`(1-${p.signal})/2`}:dY(p)?(1-p.band)/2:.5;if(Oq(e.bin)||e.timeUnit)return{[x]:fQ({fieldDef:e,scaleName:f,bandPosition:_,offset:cQ(v,y,h,m,w)}),[b]:fQ({fieldDef:e,scaleName:f,bandPosition:jq(_)?{signal:`1-${_.signal}`}:1-_,offset:cQ(n,y,h,m,w)})};if(kq(e.bin)){const i=yY(e,f,{},{offset:cQ(v,y,h,m,w)});if(JY(t))return{[x]:i,[b]:yY(t,f,{},{offset:cQ(n,y,h,m,w)})};if(Eq(e.bin)&&e.bin.step)return{[x]:i,[b]:{signal:`scale("${f}", ${uG(e,{expr:"datum"})} + ${e.bin.step})`,offset:cQ(n,y,h,m,w)}}}$W(CW(v))}({fieldDef:c,fieldDef2:f,channel:t,model:e})}function uQ(e,t,n,i,r){if(dY(r)){if(!n)return{mult:r.band,field:{group:e}};{const e=n.get("type");if("band"===e){let e=`bandwidth('${t}')`;return 1!==r.band&&(e=`${r.band} * ${e}`),{signal:`max(0.25, ${e})`}}1!==r.band&&($W(function(e){return`Cannot use the relative band size with ${e} scale.`}(e)),r=void 0)}}else{if(jq(r))return r;if(r)return{value:r}}if(n){const e=n.get("range");if($q(e)&&pt(e.step))return{value:e.step-2}}return{value:IV(i.view,e)-2}}function cQ(e,t,n,i,r){if(KU(e))return 0;const o="x"===e||"y2"===e?-t/2:t/2;if(jq(n)||jq(r)||jq(i)){const e=Hq(n),t=Hq(r),a=Hq(i);return{signal:(a?`${a} + `:"")+(e?`(${e} ? -1 : 1) * `:"")+(t?`(${t} + ${o})`:o)}}return r=r||0,i+(n?-r-o:+r+o)}function fQ({fieldDef:e,scaleName:t,bandPosition:n,offset:i}){return vY({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:i})}const dQ=new Set(["aria","width","height"]);function hQ(e,t){const{fill:n,stroke:i}="include"===t.color?ZJ(e):{};return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},function(e,t){return Nq.reduce(((n,i)=>(dQ.has(i)||void 0===e[i]||"ignore"===t[i]||(n[i]=Iq(e[i])),n)),{})}(e.markDef,t)),pQ(e,"fill",n)),pQ(e,"stroke",i)),QJ("opacity",e)),QJ("fillOpacity",e)),QJ("strokeOpacity",e)),QJ("strokeWidth",e)),QJ("strokeDash",e)),function(e){const{encoding:t,mark:n}=e,i=t.order;return!oY(n)&&iG(i)?HJ(e,i,"zindex",(e=>Iq(e.value))):{}}(e)),VJ(e)),YJ(e,"href")),function(e){const{markDef:t,config:n}=e,i=Gq("aria",t,n);return!1===i?{}:Object.assign(Object.assign(Object.assign({},i?{aria:i}:{}),function(e){const{mark:t,markDef:n,config:i}=e;if(!1===i.aria)return{};const r=Gq("ariaRoleDescription",n,i);return null!=r?{ariaRoleDescription:{value:r}}:t in zq?{}:{ariaRoleDescription:{value:t}}}(e)),function(e){const{encoding:t,markDef:n,config:i,stack:r}=e,o=t.description;if(o)return HJ(e,o,"description",(t=>GJ(t,e.config)));const a=Gq("description",n,i);if(null!=a)return{description:Iq(a)};if(!1===i.aria)return{};const s=XJ(t,r,i);return HB(s)?void 0:{description:{signal:VB(s).map((([e,t],n)=>`"${n>0?"; ":""}${e}: " + (${t})`)).join(" + ")}}}(e))}(e))}function pQ(e,t,n){const{config:i,mark:r,markDef:o}=e;if("hide"===Gq("invalid",o,i)&&n&&!oY(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&&MH(r)&&(t[o]=!0)}return t}),{}),r=YB(i);if(r.length>0){const e=t?"||":"&&";return r.map((e=>mY(e,t))).join(` ${e} `)}}(e,{invalid:!0,channels:sq});if(i)return{[t]:[{test:i,value:null},...He(n)]}}return n?{[t]:n}:{}}function gQ(e){const{config:t,markDef:n}=e;if(Gq("invalid",n,t)){const t=function(e,{invalid:t=!1,channels:n}){const i=n.reduce(((t,n)=>{var i;const r=e.getScaleComponent(n);if(r){const o=r.get("type"),a=e.vgField(n,{expr:"datum",binSuffix:(null===(i=e.stack)||void 0===i?void 0:i.impute)?"mid":void 0});a&&MH(o)&&(t[a]=!0)}return t}),{}),r=YB(i);if(r.length>0){const e=t?"||":"&&";return r.map((e=>mY(e,t))).join(` ${e} `)}}(e,{channels:qI});if(t)return{defined:{signal:t}}}return{}}function mQ(e,t){if(void 0!==t)return{[e]:Iq(t)}}const yQ="voronoi",vQ={defined:e=>"point"===e.type&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(yQ)},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(oY(o))return $W(`The "nearest" transform is not supported for ${o} marks.`),n;const a={name:e.getName(yQ),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}},VJ(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,l=!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(yQ)>=0&&(l=!0)})),l||n.splice(s+1,0,a),n}},bQ=vQ,xQ={defined:e=>"point"===e.type&&"global"===e.resolve&&e.bind&&"scales"!==e.bind&&!MV(e.bind),parse:(e,t,n)=>BQ(t,n),topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,a=t.init&&t.init[0],s=bQ.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach(((e,r)=>{var l,u;const c=JB(`${i}_${e.field}`);n.filter((e=>e.name===c)).length||n.unshift(Object.assign(Object.assign({name:c},a?{init:_J(a[r])}:{value:null}),{on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${s}[${kt(e.field)}] : null`}]:[],bind:null!==(u=null!==(l=o[e.field])&&void 0!==l?l:o[e.channel])&&void 0!==u?u:o}))})),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.filter((e=>e.name===i+TQ))[0],a=i+CJ,s=r.items.map((e=>JB(`${i}_${e.field}`))),l=s.map((e=>`${e} !== null`)).join(" && ");return s.length&&(o.update=`${l} ? {fields: ${a}, values: [${s.join(", ")}]} : null`),delete o.value,delete o.on,n}},wQ=xQ,_Q="_toggle",OQ={defined:e=>"point"===e.type&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+_Q,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+TQ,i=t.name+_Q;return`${i} ? null : ${n}, `+("global"===t.resolve?`${i} ? null : true, `:`${i} ? null : {unit: ${RQ(e)}}, `)+`${i} ? ${n} : null`}},kQ={defined:e=>void 0!==e.clear&&!1!==e.clear,parse:(e,t)=>{t.clear&&(t.clear=mt(t.clear)?kz(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(wQ.defined(t))for(const e of t.project.items){const i=n.findIndex((n=>n.name===JB(`${t.name}_${e.field}`)));-1!==i&&n[i].on.push({events:t.clear,update:"null"})}return 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)for(const e of t.project.items){const t=n.findIndex((t=>t.name===e.signals.visual));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+TQ));i(e,"null"),OQ.defined(t)&&(e=n.findIndex((e=>e.name===t.name+_Q)),i(e,"false"))}return n}},EQ={defined:e=>{const t="global"===e.resolve&&e.bind&&MV(e.bind),n=1===e.project.items.length&&e.project.items[0].field!==AV;return t&&!n&&$W("Legend bindings are only supported for selections over an individual field or encoding channel."),t&&n},parse:(e,t,n)=>{var i;const r=AB(n);if(r.select=mt(r.select)?{type:r.select,toggle:t.toggle}:Object.assign(Object.assign({},r.select),{toggle:t.toggle}),BQ(t,r),we(n.select)&&(n.select.on||n.select.clear)){const e='event.item && indexof(event.item.mark.role, "legend") < 0';for(const n of t.events)n.filter=He(null!==(i=n.filter)&&void 0!==i?i:[]),n.filter.includes(e)||n.filter.push(e)}const o=CV(t.bind)?t.bind.legend:"click",a=mt(o)?kz(o,"view"):He(o);t.bind={legend:{merge:a}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=CV(t.bind)&&t.bind.legend,o=e=>t=>{const n=AB(t);return n.markname=e,n};for(const e of t.project.items){if(!e.hasLegend)continue;const a=`${JB(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+TQ)),a=i+CJ,s=r.items.filter((e=>e.hasLegend)).map((e=>JB(`${i}_${JB(e.field)}_legend`))),l=`${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:l}):s.length>0&&(o.update=l,delete o.value,delete o.on);const u=n.find((e=>e.name===i+_Q)),c=CV(t.bind)&&t.bind.legend;return u&&(t.events?u.on.push(Object.assign(Object.assign({},u.on[0]),{events:c})):u.on[0].events=c),n}},DQ="_translate_anchor",AQ="_translate_delta",SQ={defined:e=>"interval"===e.type&&e.translate,signals:(e,t,n)=>{const i=t.name,r=NJ.defined(t),o=i+DQ,{x:a,y:s}=t.project.hasChannel;let l=kz(t.translate,"scope");return r||(l=l.map((e=>(e.between[0].markname=i+RJ,e)))),n.push({name:o,value:{},on:[{events:l.map((e=>e.between[0])),update:"{x: x(unit), y: y(unit)"+(void 0!==a?`, extent_x: ${r?zJ(e,bU):`slice(${a.signals.visual})`}`:"")+(void 0!==s?`, extent_y: ${r?zJ(e,xU):`slice(${s.signals.visual})`}`:"")+"}"}]},{name:i+AQ,value:{},on:[{events:l,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),void 0!==a&&MQ(e,t,a,"width",n),void 0!==s&&MQ(e,t,s,"height",n),n}};function MQ(e,t,n,i,r){var o,a;const s=t.name,l=s+DQ,u=s+AQ,c=n.channel,f=NJ.defined(t),d=r.filter((e=>e.name===n.signals[f?"data":"visual"]))[0],h=e.getSizeSignalRef(i).signal,p=e.getScaleComponent(c),g=p.get("type"),m=p.get("reverse"),y=`${l}.extent_${c}`,v=`${f?"log"===g?"panLog":"symlog"===g?"panSymlog":"pow"===g?"panPow":"panLinear":"panLinear"}(${y}, ${f?c===bU?m?"":"-":m?"-":"":""}${u}.${c} / ${f?`${h}`:`span(${y})`}${f?"pow"===g?`, ${null!==(o=p.get("exponent"))&&void 0!==o?o:1}`:"symlog"===g?`, ${null!==(a=p.get("constant"))&&void 0!==a?a:1}`:"":""})`;d.on.push({events:{signal:u},update:f?v:`clampRange(${v}, 0, ${h})`})}const CQ="_zoom_delta",FQ={defined:e=>"interval"===e.type&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=NJ.defined(t),o=i+CQ,{x:a,y:s}=t.project.hasChannel,l=kt(e.scaleName(bU)),u=kt(e.scaleName(xU));let c=kz(t.zoom,"scope");return r||(c=c.map((e=>(e.markname=i+RJ,e)))),n.push({name:i+"_zoom_anchor",on:[{events:c,update:r?"{"+[l?`x: invert(${l}, x(unit))`:"",u?`y: invert(${u}, y(unit))`:""].filter((e=>!!e)).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:c,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),void 0!==a&&jQ(e,t,a,"width",n),void 0!==s&&jQ(e,t,s,"height",n),n}};function jQ(e,t,n,i,r){var o,a;const s=t.name,l=n.channel,u=NJ.defined(t),c=r.filter((e=>e.name===n.signals[u?"data":"visual"]))[0],f=e.getSizeSignalRef(i).signal,d=e.getScaleComponent(l),h=d.get("type"),p=u?zJ(e,l):c.name,g=s+CQ,m=`${u?"log"===h?"zoomLog":"symlog"===h?"zoomSymlog":"pow"===h?"zoomPow":"zoomLinear":"zoomLinear"}(${p}, ${s}_zoom_anchor.${l}, ${g}${u?"pow"===h?`, ${null!==(o=d.get("exponent"))&&void 0!==o?o:1}`:"symlog"===h?`, ${null!==(a=d.get("constant"))&&void 0!==a?a:1}`:"":""})`;c.on.push({events:{signal:g},update:u?m:`clampRange(${m}, 0, ${f})`})}const $Q="_store",TQ="_tuple",NQ="_modify",zQ="vlSelectionResolve",PQ=[WJ,UJ,$J,OQ,wQ,NJ,EQ,kQ,SQ,FQ,bQ];function RQ(e,{escape:t}={escape:!0}){let n=t?kt(e.name):e.name;const i=function(e){let t=e.parent;for(;t&&!y0(t);)t=t.parent;return t}(e);if(i){const{facet:e}=i;for(const t of oI)e[t]&&(n+=` + '__facet_${t}_' + (facet[${kt(i.vgField(t))}])`)}return n}function LQ(e){var t;return GB(null!==(t=e.component.selection)&&void 0!==t?t:{}).reduce(((e,t)=>e||t.project.hasSelectionId),!1)}function BQ(e,t){!mt(t.select)&&t.select.on||delete e.events,!mt(t.select)&&t.select.clear||delete e.clear,!mt(t.select)&&t.select.toggle||delete e.toggle}function UQ(e){const t=[];return"Identifier"===e.type?[e.name]:"Literal"===e.type?[e.value]:("MemberExpression"===e.type&&(t.push(...UQ(e.object)),t.push(...UQ(e.property))),t)}function IQ(e){return"MemberExpression"===e.object.type?IQ(e.object):"datum"===e.object.name}function qQ(e){const t=u$(e),n=new Set;return t.visit((e=>{"MemberExpression"===e.type&&IQ(e)&&n.add(UQ(e).slice(1).join("."))})),n}class WQ extends DJ{clone(){return new WQ(null,this.model,AB(this.filter))}constructor(e,t,n){super(e),this.model=t,this.filter=n,this.expr=GQ(this.model,this.filter,this),this._dependentFields=qQ(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function HQ(e,t,n,i="datum"){const r=mt(t)?t:t.param,o=JB(r),a=kt(o+$Q);let s;try{s=e.getSelectionComponent(o,r)}catch(e){return`!!${o}`}if(s.project.timeUnit){const t=null!=n?n:e.component.data.raw,i=s.project.timeUnit.clone();t.parent?i.insertAsParentOf(t):t.parent=i}const l=`${s.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest("}${a}, ${i}${"global"===s.resolve?")":`, ${kt(s.resolve)})`}`,u=`length(data(${a}))`;return!1===t.empty?`${u} && ${l}`:`!${u} || ${l}`}function YQ(e,t,n){const i=JB(t),r=n.encoding;let o,a=n.field;try{o=e.getSelectionComponent(i,t)}catch(e){return i}if(r||a){if(r&&!a){const e=o.project.items.filter((e=>e.channel===r));!e.length||e.length>1?(a=o.project.items[0].field,$W((e.length?"Multiple ":"No ")+`matching ${kt(r)} encoding found for selection ${kt(n.param)}. `+`Using "field": ${kt(a)}.`)):a=e[0].field}}else a=o.project.items[0].field,o.project.items.length>1&&$W(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${kt(a)}.`);return`${o.name}[${kt(iU(a))}]`}function GQ(e,t,n){return QB(t,(t=>mt(t)?t:function(e){return null==e?void 0:e.param}(t)?HQ(e,t,n):rH(t)))}var VQ=function(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{const{test:t}=e,n=VQ(e,["test"]);return Object.assign({test:GQ(null,t)},n)})),n];XQ(h,i,t,a),delete h[e]}else if(null===o){const t={signal:r.map((e=>{const{test:t}=e,n=VQ(e,["test"]);return`${GQ(null,t)} ? ${Wq(n)} : `})).join("")+Wq(n)};h[e]=t}}else if(jq(i)){const t=MG[e];if(t){const{vgProp:n,part:r}=t;XQ(h,r,n,i),delete h[e]}}TB(["labelAlign","labelBaseline"],e)&&null===h[e]&&delete h[e]}if("grid"===t){if(!h.grid)return;if(h.encode){const{grid:e}=h.encode;h.encode=Object.assign({},e?{grid:e}:{}),HB(h.encode)&&delete h.encode}return Object.assign(Object.assign({scale:u,orient:l},h),{domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:sU(d,0)})}{if(!i.header&&e.mainExtracted)return;if(void 0!==c){let e=c;(null===(o=null===(r=h.encode)||void 0===r?void 0:r.labels)||void 0===o?void 0:o.update)&&jq(h.encode.labels.update.text)&&(e=rU(c,"datum.label",h.encode.labels.update.text.signal)),XQ(h,"labels","text",{signal:e})}if(null===h.labelAlign&&delete h.labelAlign,h.encode){for(const t of FG)e.hasAxisPart(t)||delete h.encode[t];HB(h.encode)&&delete h.encode}const t=function(e,t){if(e)return xe(e)&&!Fq(e)?e.map((e=>mG(e,t))).join(", "):e}(f,n);return Object.assign(Object.assign(Object.assign(Object.assign({scale:u,orient:l,grid:!1},t?{title:t}:{}),h),!1===n.aria?{aria:!1}:{}),{zindex:sU(d,0)})}}}function QQ(e){const{axes:t}=e.component,n=[];for(const i of qI)if(t[i])for(const r of t[i])if(!r.get("disable")&&!r.get("gridScale")){const t="x"===i?"height":"width",r=e.getSizeSignalRef(t).signal;t!==r&&n.push({name:t,update:r})}return n}function ZQ(e,t,n,i){return Object.assign.apply(null,[{},...e.map((e=>{if("axisOrient"===e){const e="x"===n?"bottom":"left",r=t["x"===n?"axisBottom":"axisLeft"]||{},o=t["x"===n?"axisTop":"axisRight"]||{},a=new Set([...YB(r),...YB(o)]),s={};for(const t of a.values())s[t]={signal:`${i.signal} === "${e}" ? ${Hq(r[t])} : ${Hq(o[t])}`};return s}return t[e]}))])}function KQ(e,t){var n;const i=[{}];for(const r of e){let e=null===(n=t[r])||void 0===n?void 0:n.style;if(e){e=He(e);for(const n of e)i.push(t.style[n])}}return Object.assign.apply(null,i)}function eZ(e,t,n,i={}){var r;const o=Jq(e,n,t);if(void 0!==o)return{configFrom:"style",configValue:o};for(const t of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(void 0!==(null===(r=i[t])||void 0===r?void 0:r[e]))return{configFrom:t,configValue:i[t][e]};return{}}const tZ={scale:({model:e,channel:t})=>e.scaleName(t),format:({fieldOrDatumDef:e,config:t,axis:n})=>{const{format:i,formatType:r}=n;return DY(e,e.type,i,r,t,!0)},formatType:({axis:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:i}=e;return AY(i,t,n)},grid:({fieldOrDatumDef:e,axis:t,scaleType:n})=>{var i;return null!==(i=t.grid)&&void 0!==i?i:function(e,t){return!SH(e)&&JY(t)&&!Oq(null==t?void 0:t.bin)&&!kq(null==t?void 0:t.bin)}(n,e)},gridScale:({model:e,channel:t})=>function(e,t){const n="x"===t?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n)}(e,t),labelAlign:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelAlign||rZ(t,n,i),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:t,orient:n,channel:i})=>e.labelBaseline||iZ(t,n,i),labelFlush:({axis:e,fieldOrDatumDef:t,channel:n})=>{var i;return null!==(i=e.labelFlush)&&void 0!==i?i:function(e,t){if("x"===t&&TB(["quantitative","temporal"],e))return!0}(t.type,n)},labelOverlap:({axis:e,fieldOrDatumDef:t,scaleType:n})=>{var i;return null!==(i=e.labelOverlap)&&void 0!==i?i:function(e,t,n,i){if(n&&!we(i)||"nominal"!==e&&"ordinal"!==e)return"log"!==t&&"symlog"!==t||"greedy"}(t.type,n,JY(t)&&!!t.timeUnit,JY(t)?t.sort:void 0)},orient:({orient:e})=>e,tickCount:({channel:e,model:t,axis:n,fieldOrDatumDef:i,scaleType:r})=>{var o;const a="x"===e?"width":"y"===e?"height":void 0,s=a?t.getSizeSignalRef(a):void 0;return null!==(o=n.tickCount)&&void 0!==o?o:function({fieldOrDatumDef:e,scaleType:t,size:n,values:i}){var r;if(!i&&!SH(t)&&"log"!==t){if(JY(e)){if(Oq(e.bin))return{signal:`ceil(${n.signal}/10)`};if(e.timeUnit&&TB(["month","hours","day","quarter"],null===(r=VW(e.timeUnit))||void 0===r?void 0:r.unit))return}return{signal:`ceil(${n.signal}/40)`}}}({fieldOrDatumDef:i,scaleType:r,size:s,values:n.values})},title:({axis:e,model:t,channel:n})=>{if(void 0!==e.title)return e.title;const i=oZ(t,n);if(void 0!==i)return i;const r=t.typedFieldDef(n),o="x"===n?"x2":"y2",a=t.fieldDef(o);return Zq(r?[IY(r)]:[],JY(a)?[IY(a)]:[])},values:({axis:e,fieldOrDatumDef:t})=>function(e,t){const n=e.values;return xe(n)?AG(t,n):jq(n)?n:void 0}(e,t),zindex:({axis:e,fieldOrDatumDef:t,mark:n})=>{var i;return null!==(i=e.zindex)&&void 0!==i?i:function(e,t){return"rect"===e&&cG(t)?1:0}(n,t)}};function nZ(e){return`(((${e.signal} % 360) + 360) % 360)`}function iZ(e,t,n,i){if(void 0!==e){if("x"===n){if(jq(e)){const n=nZ(e);return{signal:`(45 < ${n} && ${n} < 135) || (225 < ${n} && ${n} < 315) ? "middle" :(${n} <= 45 || 315 <= ${n}) === ${jq(t)?`(${t.signal} === "top")`:"top"===t} ? "bottom" : "top"`}}if(45{if(rG(t)&&PY(t.sort)){const{field:i,timeUnit:r}=t,o=t.sort,a=o.map(((e,t)=>`${rH({field:i,timeUnit:r,equal:e})} ? ${t} : `)).join("")+o.length;e=new aZ(e,{calculate:a,as:sZ(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 ${jB(this.transform)}`}}function sZ(e,t,n){return uG(e,Object.assign({prefix:t,suffix:"sort_index"},null!=n?n:{}))}function lZ(e,t){return TB(["top","bottom"],t)?"column":TB(["left","right"],t)||"row"===e?"row":"column"}function uZ(e,t,n,i){const r="row"===i?n.headerRow:"column"===i?n.headerColumn:n.headerFacet;return sU((t||{})[e],r[e],n.header[e])}function cZ(e,t,n,i){const r={};for(const o of e){const e=uZ(o,t||{},n,i);void 0!==e&&(r[o]=e)}return r}const fZ=["row","column"],dZ=["header","footer"];function hZ(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}=cZ(["titleAnchor","titleAngle","titleOrient"],r.header,i,t),l=lZ(t,s),u=hU(a);return{name:`${t}-title`,type:"group",role:`${l}-title`,title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:n},"row"===t?{orient:"left"}:{}),{style:"guide-title"}),gZ(u,l)),pZ(l,u,o)),_Z(i,r,t,_V,xV))}}function pZ(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=rZ(t,"row"===e?"left":"top","row"===e?"y":"x");return i?{align:i}:{}}function gZ(e,t){const n=iZ(e,"row"===t?"left":"top","row"===t?"y":"x",!0);return n?{baseline:n}:{}}function mZ(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of dZ)if(n[r])for(const o of n[r]){const a=bZ(e,t,r,n,o);null!=a&&i.push(a)}return i}function yZ(e,t){var n;const{sort:i}=e;return zY(i)?{field:uG(i,{expr:"datum"}),order:null!==(n=i.order)&&void 0!==n?n:"ascending"}:xe(i)?{field:sZ(e,t,{expr:"datum"}),order:"ascending"}:{field:uG(e,{expr:"datum"}),order:null!=i?i:"ascending"}}function vZ(e,t,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:a,labelOrient:s,labelExpr:l}=cZ(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,n,t),u=OY({fieldOrDatumDef:e,format:i,formatType:r,expr:"parent",config:n}).signal,c=lZ(t,s);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:l?rU(rU(l,"datum.label",u),"datum.value",uG(e,{expr:"parent"})):u}},"row"===t?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),gZ(o,c)),pZ(c,o,a)),_Z(n,e,t,OV,wV))}function bZ(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}=cZ(["labelOrient"],a.header,s,t);("row"===t&&!TB(["top","bottom"],e)||"column"===t&&!TB(["left","right"],e))&&(o=vZ(a,t,s))}const l=y0(e)&&!RY(e.facet),u=r.axes,c=(null==u?void 0:u.length)>0;if(o||c){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:yZ(a,t)}:{}),c&&l?{from:{data:e.getName(`facet_domain_${t}`)}}:{}),o?{title:o}:{}),r.sizeSignal?{encode:{update:{[s]:r.sizeSignal}}}:{}),c?{axes:u}:{})}}return null}const xZ={column:{start:0,end:1},row:{start:1,end:0}};function wZ(e,t){return xZ[t][e]}function _Z(e,t,n,i,r){const o={};for(const a of i){if(!r[a])continue;const i=uZ(a,null==t?void 0:t.header,e,n);void 0!==i&&(o[r[a]]=i)}return o}function OZ(e){return[...kZ(e,"width"),...kZ(e,"height"),...kZ(e,"childWidth"),...kZ(e,"childHeight")]}function kZ(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(SH(i)&&$q(o)){const i=e.scaleName(n);return y0(e.parent)&&"independent"===e.parent.component.resolve.scale[n]?[EZ(i,o)]:[EZ(i,o),{name:r,update:DZ(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} : ${UV(e.config.view,t?"width":"height")}`;return[{name:r,init:i,on:[{update:i,events:"window:resize"}]}]}return[{name:r,value:i}]}function EZ(e,t){const n=`${e}_step`;return jq(t.step)?{name:n,update:t.step.signal}:{name:n,value:t.step}}function DZ(e,t,n){const i=t.get("type"),r=t.get("padding"),o=sU(t.get("paddingOuter"),r);let a=t.get("paddingInner");return a="band"===i?void 0!==a?a:r:1,`bandspace(${n}, ${Hq(a)}, ${Hq(o)}) * ${e}_step`}function AZ(e){return"childWidth"===e?"width":"childHeight"===e?"height":e}function SZ(e,t){return YB(e).reduce(((n,i)=>{const r=e[i];return Object.assign(Object.assign({},n),HJ(t,r,i,(e=>Iq(e.value))))}),{})}function MZ(e,t){if(y0(t))return"theta"===e?"independent":"shared";if(b0(t))return"shared";if(v0(t))return WI(e)||"theta"===e||"radius"===e?"independent":"shared";throw new Error("invalid model type for resolve")}function CZ(e,t){const n=e.scale[t],i=WI(t)?"axis":"legend";return"independent"===n?("shared"===e[i][t]&&$W(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.`}(t)),"independent"):e[i][t]||"shared"}const FZ=Object.assign(Object.assign({},DV),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),jZ=YB(FZ);class $Z extends aJ{}const TZ={symbols:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r,legendType:o}){var a,s,l,u,c,f,d,h;if("symbol"!==o)return;const{markDef:p,encoding:g,config:m,mark:y}=n,v=p.filled&&"trail"!==y;let b=Object.assign(Object.assign({},function(e,t,n){for(const i of n){const n=Vq(i,t.markDef,t.config);void 0!==n&&(e[i]=Iq(n))}return e}({},n,uY)),ZJ(n,{filled:v}));const x=null!==(a=r.get("symbolOpacity"))&&void 0!==a?a:m.legend.symbolOpacity,w=null!==(s=r.get("symbolFillColor"))&&void 0!==s?s:m.legend.symbolFillColor,_=null!==(l=r.get("symbolStrokeColor"))&&void 0!==l?l:m.legend.symbolStrokeColor,O=void 0===x?null!==(u=NZ(g.opacity))&&void 0!==u?u:p.opacity:void 0;if(b.fill)if("fill"===i||v&&i===$U)delete b.fill;else if(b.fill.field)w?delete b.fill:(b.fill=Iq(null!==(c=m.legend.symbolBaseFillColor)&&void 0!==c?c:"black"),b.fillOpacity=Iq(null!=O?O:1));else if(xe(b.fill)){const e=null!==(h=null!==(d=zZ(null!==(f=g.fill)&&void 0!==f?f:g.color))&&void 0!==d?d:p.fill)&&void 0!==h?h:v&&p.color;e&&(b.fill=Iq(e))}if(b.stroke)if("stroke"===i||!v&&i===$U)delete b.stroke;else if(b.stroke.field||_)delete b.stroke;else if(xe(b.stroke)){const e=sU(zZ(g.stroke||g.color),p.stroke,v?p.color:void 0);e&&(b.stroke={value:e})}if(i!==LU){const e=JY(t)&&RZ(0,r,t);e?b.opacity=[Object.assign({test:e},Iq(null!=O?O:1)),Iq(m.legend.unselectedOpacity)]:O&&(b.opacity=Iq(O))}return b=Object.assign(Object.assign({},b),e),HB(b)?void 0:b},gradient:function(e,{model:t,legendType:n,legendCmpt:i}){var r;if("gradient"!==n)return;const{config:o,markDef:a,encoding:s}=t;let l={};const u=void 0===(null!==(r=i.get("gradientOpacity"))&&void 0!==r?r:o.legend.gradientOpacity)?NZ(s.opacity)||a.opacity:void 0;return u&&(l.opacity=Iq(u)),l=Object.assign(Object.assign({},l),e),HB(l)?void 0:l},labels:function(e,{fieldOrDatumDef:t,model:n,channel:i,legendCmpt:r}){const o=n.legend(i)||{},a=n.config,s=JY(t)?RZ(0,r,t):void 0,l=s?[{test:s,value:1},{value:a.legend.unselectedOpacity}]:void 0,{format:u,formatType:c}=o;let f;wY(c)?f=EY({fieldOrDatumDef:t,field:"datum.value",format:u,formatType:c,config:a}):void 0===u&&void 0===c&&a.customFormatTypes&&("quantitative"===t.type&&a.numberFormatType?f=EY({fieldOrDatumDef:t,field:"datum.value",format:a.numberFormat,formatType:a.numberFormatType,config:a}):"temporal"===t.type&&a.timeFormatType&&JY(t)&&void 0===t.timeUnit&&(f=EY({fieldOrDatumDef:t,field:"datum.value",format:a.timeFormat,formatType:a.timeFormatType,config:a})));const d=Object.assign(Object.assign(Object.assign({},l?{opacity:l}:{}),f?{text:f}:{}),e);return HB(d)?void 0:d},entries:function(e,{legendCmpt:t}){const n=t.get("selections");return(null==n?void 0:n.length)?Object.assign(Object.assign({},e),{fill:{value:"transparent"}}):e}};function NZ(e){return PZ(e,((e,t)=>Math.max(e,t.value)))}function zZ(e){return PZ(e,((e,t)=>sU(e,t.value)))}function PZ(e,t){return function(e){const t=null==e?void 0:e.condition;return!!t&&(xe(t)||iG(t))}(e)?He(e.condition).reduce(t,e.value):iG(e)?e.value:void 0}function RZ(e,t,n){const i=t.get("selections");if(!(null==i?void 0:i.length))return;const r=kt(n.field);return i.map((e=>`(!length(data(${kt(JB(e)+$Q)})) || (${e}[${r}] && indexof(${e}[${r}], datum.value) >= 0))`)).join(" || ")}const LZ={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:t,config:n})=>{const{format:i,formatType:r}=t;return DY(e,e.type,i,r,n,!1)},formatType:({legend:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:i}=e;return AY(i,t,n)},gradientLength:e=>{var t,n;const{legend:i,legendConfig:r}=e;return null!==(n=null!==(t=i.gradientLength)&&void 0!==t?t:r.gradientLength)&&void 0!==n?n:function({legendConfig:e,model:t,direction:n,orient:i,scaleType:r}){const{gradientHorizontalMaxLength:o,gradientHorizontalMinLength:a,gradientVerticalMaxLength:s,gradientVerticalMinLength:l}=e;if(CH(r))return"horizontal"===n?"top"===i||"bottom"===i?UZ(t,"width",a,o):a:UZ(t,"height",l,s)}(e)},labelOverlap:({legend:e,legendConfig:t,scaleType:n})=>{var i,r;return null!==(r=null!==(i=e.labelOverlap)&&void 0!==i?i:t.labelOverlap)&&void 0!==r?r:function(e){if(TB(["quantile","threshold","log","symlog"],e))return"greedy"}(n)},symbolType:({legend:e,markDef:t,channel:n,encoding:i})=>{var r;return null!==(r=e.symbolType)&&void 0!==r?r:function(e,t,n,i){var r;if("shape"!==t){const e=null!==(r=zZ(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"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}(t.type,n,i.shape,t.shape)},title:({fieldOrDatumDef:e,config:t})=>pG(e,t,{allowDisabling:!0}),type:({legendType:e,scaleType:t,channel:n})=>{if(iI(n)&&CH(t)){if("gradient"===e)return}else if("symbol"===e)return;return e},values:({fieldOrDatumDef:e,legend:t})=>function(e,t){const n=e.values;return xe(n)?AG(t,n):jq(n)?n:void 0}(t,e)};function BZ({legendConfig:e,legendType:t,orient:n,legend:i}){var r,o;return null!==(o=null!==(r=i.direction)&&void 0!==r?r:e[t?"gradientDirection":"symbolDirection"])&&void 0!==o?o: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}}(n,t)}function UZ(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function IZ(e){const t=m0(e)?function(e){const{encoding:t}=e,n={};for(const i of[$U,...EV]){const r=bG(t[i]);r&&e.getScaleComponent(i)&&(i===zU&&JY(r)&&r.type===hH||(n[i]=WZ(e,i)))}return n}(e):function(e){const{legends:t,resolve:n}=e.component;for(const i of e.children){IZ(i);for(const r of YB(i.component.legends))n.legend[r]=CZ(e.component.resolve,r),"shared"===n.legend[r]&&(t[r]=HZ(t[r],i.component.legends[r]),t[r]||(n.legend[r]="independent",delete t[r]))}for(const i of YB(t))for(const t of e.children)t.component.legends[i]&&"shared"===n.legend[i]&&delete t.component.legends[i];return t}(e);return e.component.legends=t,t}function qZ(e,t,n,i){switch(t){case"disable":return void 0!==n;case"values":return!!(null==n?void 0:n.values);case"title":if("title"===t&&e===(null==i?void 0:i.title))return!0}return e===(n||{})[t]}function WZ(e,t){var n,i,r;let o=e.legend(t);const{markDef:a,encoding:s,config:l}=e,u=l.legend,c=new $Z({},function(e,t){const n=e.scaleName(t);if("trail"===e.mark){if("color"===t)return{stroke:n};if("size"===t)return{strokeWidth:n}}return"color"===t?e.markDef.filled?{fill:n}:{stroke:n}:{[t]:n}}(e,t));!function(e,t,n){var i,r,o,a;const s=null===(i=e.fieldDef(t))||void 0===i?void 0:i.field;for(const i of GB(null!==(r=e.component.selection)&&void 0!==r?r:{})){const e=null!==(o=i.project.hasField[s])&&void 0!==o?o:i.project.hasChannel[t];if(e&&EQ.defined(i)){const t=null!==(a=n.get("selections"))&&void 0!==a?a:[];t.push(i.name),n.set("selections",t,!1),e.hasLegend=!0}}}(e,t,c);const f=void 0!==o?!o:u.disable;if(c.set("disable",f,void 0!==o),f)return c;o=o||{};const d=e.getScaleComponent(t).get("type"),h=bG(s[t]),p=JY(h)?null===(n=VW(h.timeUnit))||void 0===n?void 0:n.unit:void 0,g=o.orient||l.legend.orient||"right",m=function(e){const{legend:t}=e;return sU(t.type,function({channel:e,timeUnit:t,scaleType:n}){if(iI(e)){if(TB(["quarter","month","day"],t))return"symbol";if(CH(n))return"gradient"}return"symbol"}(e))}({legend:o,channel:t,timeUnit:p,scaleType:d}),y={legend:o,channel:t,model:e,markDef:a,encoding:s,fieldOrDatumDef:h,legendConfig:u,config:l,scaleType:d,orient:g,legendType:m,direction:BZ({legend:o,legendType:m,orient:g,legendConfig:u})};for(const n of jZ){if("gradient"===m&&n.startsWith("symbol")||"symbol"===m&&n.startsWith("gradient"))continue;const i=n in LZ?LZ[n](y):o[n];if(void 0!==i){const r=qZ(i,n,o,e.fieldDef(t));(r||void 0===l.legend[n])&&c.set(n,i,r)}}const v=null!==(i=null==o?void 0:o.encoding)&&void 0!==i?i:{},b=c.get("selections"),x={},w={fieldOrDatumDef:h,model:e,channel:t,legendCmpt:c,legendType:m};for(const t of["labels","legend","title","symbols","gradient","entries"]){const n=SZ(null!==(r=v[t])&&void 0!==r?r:{},e),i=t in TZ?TZ[t](n,w):n;void 0===i||HB(i)||(x[t]=Object.assign(Object.assign(Object.assign({},(null==b?void 0:b.length)&&JY(h)?{name:`${JB(h.field)}_legend_${t}`}:{}),(null==b?void 0:b.length)?{interactive:!!b}:{}),{update:i}))}return HB(x)||c.set("encode",x,!!(null==o?void 0:o.encoding)),c}function HZ(e,t){var n,i,r,o;if(!e)return t.clone();const a=e.getWithExplicit("orient"),s=t.getWithExplicit("orient");if(a.explicit&&s.explicit&&a.value!==s.value)return;let l=!1;for(const n of jZ){const i=fJ(e.getWithExplicit(n),t.getWithExplicit(n),n,"legend",((e,t)=>{switch(n){case"symbolType":return i=e,"circle"===(r=t).value?r:i;case"title":return eW(e,t);case"type":return l=!0,lJ("symbol")}var i,r;return cJ(e,t,n,"legend")}));e.setWithExplicit(n,i)}return l&&((null===(i=null===(n=e.implicit)||void 0===n?void 0:n.encode)||void 0===i?void 0:i.gradient)&&ZB(e.implicit,["encode","gradient"]),(null===(o=null===(r=e.explicit)||void 0===r?void 0:r.encode)||void 0===o?void 0:o.gradient)&&ZB(e.explicit,["encode","gradient"])),e}function YZ(e){const t=e.component.legends,n={};for(const i of YB(t)){const r=e.getScaleComponent(i),o=FB(r.get("domains"));if(n[o])for(const e of n[o])HZ(e,t[i])||n[o].push(t[i]);else n[o]=[t[i].clone()]}const i=GB(n).flat().map((t=>function(e,t){var n,i,r;const o=e.combine(),{disable:a,labelExpr:s,selections:l}=o,u=function(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);rvoid 0!==e));return i}function GZ(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:i}=n;if(t.data){const r={signal:`[${t.size.map((e=>e.signal)).join(", ")}]`},o=t.data.reduce(((t,n)=>{const i=jq(n)?n.signal:`data('${e.lookupDataSource(n)}')`;return TB(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:r,fit:{signal:o.length>1?`[${o.join(", ")}]`:o[0]}},n)]}return[Object.assign(Object.assign({name:i},{translate:{signal:"[width / 2, height / 2]"}}),n)]}const VZ=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class XZ extends aJ{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 JZ(e){e.component.projection=m0(e)?function(e){var t;if(e.hasProjection){const n=Mq(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=[],{encoding:n}=e;for(const i of[[CU,MU],[jU,FU]])(bG(n[i[0]])||bG(n[i[1]]))&&t.push({signal:e.getName(`geojson_${t.length}`)});return e.channelHasField(zU)&&e.typedFieldDef(zU).type===hH&&t.push({signal:e.getName(`geojson_${t.length}`)}),0===t.length&&t.push(e.requestDataName(xJ.Main)),t}(e):void 0,a=new XZ(e.projectionName(!0),Object.assign(Object.assign({},null!==(t=Mq(e.config.projection))&&void 0!==t?t:{}),null!=n?n:{}),r,o);return a.get("type")||a.set("type","equalEarth",!1),a}}(e):function(e){if(0===e.children.length)return;let t;for(const t of e.children)JZ(t);const n=zB(e.children,(e=>{const n=e.component.projection;if(n){if(t){const e=function(e,t){const n=zB(VZ,(n=>!ot(e.explicit,n)&&!ot(t.explicit,n)||!!(ot(e.explicit,n)&&ot(t.explicit,n)&&DB(e.get(n),t.get(n)))));if(DB(e.size,t.size)){if(n)return e;if(DB(e.explicit,{}))return t;if(DB(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 XZ(n,t.specifiedProjection,t.size,AB(t.data));for(const t of e.children){const e=t.component.projection;e&&(e.isFit&&i.data.push(...t.component.projection.data),t.renameProjection(e.get("name"),n),e.merged=!0)}return i}}(e)}function QZ(e,t){return`${_q(e)}_${t}`}function ZZ(e,t,n){var i;const r=QZ(null!==(i=OG(n,void 0))&&void 0!==i?i:{},t);return e.getName(`${r}_bins`)}function KZ(e,t,n){let i,r;i=function(e){return"as"in e}(e)?mt(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:[uG(e,{forAs:!0}),uG(e,{binSuffix:"end",forAs:!0})];const o=Object.assign({},OG(t,void 0)),a=QZ(o,e.field),{signal:s,extentSignal:l}=function(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}(n,a);if(Dq(o.extent)){const e=o.extent;r=YQ(n,e.param,e),delete o.extent}return{key:a,binComponent:Object.assign(Object.assign(Object.assign({bin:o,field:e.field,as:[i]},s?{signal:s}:{}),l?{extentSignal:l}:{}),r?{span:r}:{})}}class eK extends DJ{clone(){return new eK(null,AB(this.bins))}constructor(e,t){super(e),this.bins=t}static makeFromEncoding(e,t){const n=t.reduceFieldDef(((e,n,i)=>{if(nG(n)&&Oq(n.bin)){const{key:r,binComponent:o}=KZ(n,n.bin,t);e[r]=Object.assign(Object.assign(Object.assign({},o),e[r]),function(e,t,n,i){var r,o;if(SG(t,n)){const a=m0(e)&&null!==(o=null!==(r=e.axis(n))&&void 0!==r?r:e.legend(n))&&void 0!==o?o:{},s=uG(t,{expr:"datum"}),l=uG(t,{expr:"datum",binSuffix:"end"});return{formulaAs:uG(t,{binSuffix:"range",forAs:!0}),formula:FY(s,l,a.format,a.formatType,i)}}return{}}(t,n,i,t.config))}return e}),{});return HB(n)?null:new eK(e,n)}static makeFromTransform(e,t,n){const{key:i,binComponent:r}=KZ(t,t.bin,n);return new eK(e,{[i]:r})}merge(e,t){for(const n of YB(e.bins))n in this.bins?(t(e.bins[n].signal,this.bins[n].signal),this.bins[n].as=LB([...this.bins[n].as,...e.bins[n].as],jB)):this.bins[n]=e.bins[n];for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}producedFields(){return new Set(GB(this.bins).map((e=>e.as)).flat(2))}dependentFields(){return new Set(GB(this.bins).map((e=>e.field)))}hash(){return`Bin ${jB(this.bins)}`}assemble(){return GB(this.bins).flatMap((e=>{const t=[],[n,...i]=e.as,r=e.bin,{extent:o}=r,a=function(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{e.aggregate&&(n=!0)}));const i={},r=new Set;return n?(t.forEachFieldDef(((e,n)=>{var o,a,s,l;const{aggregate:u,field:c}=e;if(u)if("count"===u)null!==(o=i["*"])&&void 0!==o||(i["*"]={}),i["*"].count=new Set([uG(e,{forAs:!0})]);else{if(gq(u)||mq(u)){const e=gq(u)?"argmin":"argmax",t=u[e];null!==(a=i[t])&&void 0!==a||(i[t]={}),i[t][e]=new Set([uG({op:e,field:t},{forAs:!0})])}else null!==(s=i[c])&&void 0!==s||(i[c]={}),i[c][u]=new Set([uG(e,{forAs:!0})]);lq(n)&&"unaggregated"===t.scaleDomain(n)&&(null!==(l=i[c])&&void 0!==l||(i[c]={}),i[c].min=new Set([uG({field:c,aggregate:"min"},{forAs:!0})]),i[c].max=new Set([uG({field:c,aggregate:"max"},{forAs:!0})]))}else!function(e,t,n,i){var r;const o=m0(i)?i.encoding[wI(t)]:void 0;if(nG(n)&&m0(i)&&YY(n,o,i.markDef,i.config))e.add(uG(n,{})),e.add(uG(n,{suffix:"end"})),n.bin&&SG(n,t)&&e.add(uG(n,{binSuffix:"range"}));else if(t in eI){const n=function(e){switch(e){case MU:return"y";case FU:return"y2";case CU:return"x";case jU:return"x2"}}(t);e.add(i.getName(n))}else e.add(uG(n));rG(n)&&function(e){return we(e)&&"field"in e}(null===(r=n.scale)||void 0===r?void 0:r.range)&&e.add(n.scale.range.field)}(r,n,e,t)})),r.size+YB(i).length===0?null:new tK(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?(null!==(n=a["*"])&&void 0!==n||(a["*"]={}),a["*"].count=new Set([o||uG(e,{forAs:!0})])):(null!==(i=a[r])&&void 0!==i||(a[r]={}),a[r][t]=new Set([o||uG(e,{forAs:!0})])))}for(const e of null!==(r=t.groupby)&&void 0!==r?r:[])o.add(e);return o.size+YB(a).length===0?null:new tK(e,o,a)}merge(e){return UB(this.dimensions,e.dimensions)?(function(e,t){var n;for(const i of YB(t)){const r=t[i];for(const t of YB(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){jW.debug(...e)}("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...YB(this.measures)])}producedFields(){const e=new Set;for(const t of YB(this.measures))for(const n of YB(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 ${jB({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],t=[],n=[];for(const i of YB(this.measures))for(const r of YB(this.measures[i]))for(const o of this.measures[i][r])n.push(o),e.push(r),t.push("*"===i?null:iU(i));return{type:"aggregate",groupby:[...this.dimensions].map(iU),ops:e,fields:t,as:n}}}class nK extends DJ{constructor(e,t,n,i){super(e),this.model=t,this.name=n,this.data=i;for(const e of oI){const n=t.facet[e];if(n){const{bin:i,sort:r}=n;this[e]=Object.assign({name:t.getName(`${e}_domain`),fields:[uG(n),...Oq(i)?[uG(n,{binSuffix:"end"})]:[]]},zY(r)?{sortField:r}:xe(r)?{sortIndexField:sZ(n,e)}:{})}}this.childModel=t.child}hash(){let e="Facet";for(const t of oI)this[t]&&(e+=` ${t.charAt(0)}:${jB(this[t])}`);return e}get fields(){var e;const t=[];for(const n of oI)(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 oI)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 qI){const n=this.childModel.component.scales[t];if(n&&!n.merged){const i=n.get("type"),r=n.get("range");if(SH(i)&&$q(r)){const n=YK(GK(this.childModel,t));n?e[t]=n:$W(oW(t))}}}return e}assembleRowColumnHeaderData(e,t,n){const i={row:"y",column:"x",facet:void 0}[e],r=[],o=[],a=[];i&&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:l}=this[e];if(s){const{op:e=jY,field:t}=s;r.push(t),o.push(e),a.push(uG(s,{forAs:!0}))}else l&&(r.push(l),o.push("max"),a.push(l));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 fZ){for(const i of dZ){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:l}=a;return(s||l)&&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[yU,mU])this[e]&&n.push(this.assembleRowColumnHeaderData(e,i,r));if(s){const e=this.assembleFacetHeaderData(r);e&&n.push(...e)}return n}}function iK(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function rK(e){const t={};return kB(e.filter,(e=>{var n;if(nH(e)){let i=null;XW(e)?i=Bq(e.equal):QW(e)?i=Bq(e.lte):JW(e)?i=Bq(e.lt):ZW(e)?i=Bq(e.gt):KW(e)?i=Bq(e.gte):eH(e)?i=e.range[0]:tH(e)&&(i=(null!==(n=e.oneOf)&&void 0!==n?n:e.in)[0]),i&&(TW(i)?t[e.field]="date":pt(i)?t[e.field]="number":mt(i)&&(t[e.field]="string")),e.timeUnit&&(t[e.field]="date")}})),t}class oK extends DJ{clone(){return new oK(null,AB(this._parse))}constructor(e,t){super(e),this._parse=t}hash(){return`Parse ${jB(this._parse)}`}static makeExplicit(e,t,n){var i;let r={};const o=t.data;return!mJ(o)&&(null===(i=null==o?void 0:o.format)||void 0===i?void 0:i.parse)&&(r=o.format.parse),this.makeWithAncestors(e,r,{},n)}static makeWithAncestors(e,t,n,i){for(const e of YB(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]:$W(cW(e,n[e],t.value)))}for(const e of YB(t)){const n=i.get(e);void 0!==n&&(n===t[e]?delete t[e]:$W(cW(e,t[e],n)))}const r=new aJ(t,n);i.copyAll(r);const o={};for(const e of YB(r.combine())){const t=r.get(e);null!==t&&(o[e]=t)}return 0===YB(o).length||i.parseNothing?null:new oK(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 YB(this._parse)){const n=this._parse[t];1===aU(t)&&(e[t]=n)}return e}producedFields(){return new Set(YB(this._parse))}dependentFields(){return new Set(YB(this._parse))}assembleTransforms(e=!1){return YB(this._parse).filter((t=>!e||aU(t)>1)).map((e=>{const t=function(e,t){const n=eU(e);return"number"===t?`toNumber(${n})`:"boolean"===t?`toBoolean(${n})`:"string"===t?`toString(${n})`:"date"===t?`toDate(${n})`:"flatten"===t?n:t.startsWith("date:")?`timeParse(${n},'${iK(t.slice(5,t.length))}')`:t.startsWith("utc:")?`utcParse(${n},'${iK(t.slice(4,t.length))}')`:($W(`Unrecognized parse "${t}".`),null)}(e,this._parse[e]);return t?{type:"formula",expr:t,as:oU(e)}:null})).filter((e=>null!==e))}}class aK extends DJ{clone(){return new aK(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set([AV])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:AV}}}class sK extends DJ{clone(){return new sK(null,this.params)}constructor(e,t){super(e),this.params=t}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${jB(this.params)}`}assemble(){return Object.assign({type:"graticule"},!0===this.params?{}:this.params)}}class lK extends DJ{clone(){return new lK(null,this.params)}constructor(e,t){super(e),this.params=t}dependentFields(){return new Set}producedFields(){var e;return new Set([null!==(e=this.params.as)&&void 0!==e?e:"data"])}hash(){return`Hash ${jB(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}class uK extends DJ{constructor(e){let t;if(super(null),null!=e||(e={name:"source"}),mJ(e)||(t=e.format?Object.assign({},CB(e.format,["parse"])):{}),pJ(e))this._data={values:e.values};else if(hJ(e)){if(this._data={url:e.url},!t.type){let n=/(?:\.([^.]+))?$/.exec(e.url)[1];TB(["json","csv","tsv","dsv","topojson"],n)||(n="json"),t.type=n}}else vJ(e)?this._data={values:[{type:"Sphere"}]}:(gJ(e)||mJ(e))&&(this._data={});this._generator=mJ(e),e.name&&(this._name=e.name),t&&!HB(t)&&(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:[]})}}var cK,fK=function(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n};function dK(e){return e instanceof uK||e instanceof sK||e instanceof lK}class hK{constructor(){cK.set(this,void 0),fK(this,cK,!1,"f")}setModified(){fK(this,cK,!0,"f")}get modifiedFlag(){return function(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)}(this,cK,"f")}}cK=new WeakMap;class pK extends hK{getNodeDepths(e,t,n){n.set(e,t);for(const i of e.children)this.getNodeDepths(i,t+1,n);return n}optimize(e){const t=[...this.getNodeDepths(e,0,new Map).entries()].sort(((e,t)=>t[1]-e[1]));for(const e of t)this.run(e[0]);return this.modifiedFlag}}class gK extends hK{optimize(e){this.run(e);for(const t of e.children)this.optimize(t);return this.modifiedFlag}}class mK extends gK{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;i1&&(this.setModified(),this.mergeNodes(e,n[t]))}}class yK extends gK{constructor(e){super(),this.requiresSelectionId=e&&LQ(e)}run(e){e instanceof aK&&(this.requiresSelectionId&&(dK(e.parent)||e.parent instanceof tK||e.parent instanceof oK)||(this.setModified(),e.remove()))}}class vK extends hK{optimize(e){return this.run(e,new Set),this.modifiedFlag}run(e,t){let n=new Set;e instanceof MJ&&(n=e.producedFields(),IB(n,t)&&(this.setModified(),e.removeFormulas(t),0===e.producedFields.length&&e.remove()));for(const i of e.children)this.run(i,new Set([...t,...n]))}}class bK extends gK{constructor(){super()}run(e){e instanceof AJ&&!e.isRequired()&&(this.setModified(),e.remove())}}class xK extends pK{run(e){if(!(dK(e)||e.numChildren()>1))for(const t of e.children)if(t instanceof oK)if(e instanceof oK)this.setModified(),e.merge(t);else{if(WB(e.producedFields(),t.dependentFields()))continue;this.setModified(),t.swapWithParent()}}}class wK extends pK{run(e){const t=[...e.children],n=e.children.filter((e=>e instanceof oK));if(e.numChildren()>1&&n.length>=1){const i={},r=new Set;for(const e of n){const t=e.parse;for(const e of YB(t))e in i?i[e]!==t[e]&&r.add(e):i[e]=t[e]}for(const e of r)delete i[e];if(!HB(i)){this.setModified();const n=new oK(e,i);for(const r of t){if(r instanceof oK)for(const e of YB(i))delete r.parse[e];e.removeChild(r),r.parent=n,r instanceof oK&&0===YB(r.parse).length&&r.remove()}}}}}class _K extends pK{run(e){e instanceof AJ||e.numChildren()>0||e instanceof nK||e instanceof uK||(this.setModified(),e.remove())}}class OK extends pK{run(e){const t=e.children.filter((e=>e instanceof MJ)),n=t.pop();for(const e of t)this.setModified(),n.merge(e)}}class kK extends pK{run(e){const t=e.children.filter((e=>e instanceof tK)),n={};for(const e of t){const t=jB(e.groupBy);t in n||(n[t]=[]),n[t].push(e)}for(const t of YB(n)){const i=n[t];if(i.length>1){const t=i.pop();for(const n of i)t.merge(n)&&(e.removeChild(n),n.parent=t,n.remove(),this.setModified())}}}}class EK extends pK{constructor(e){super(),this.model=e}run(e){const t=!(dK(e)||e instanceof WQ||e instanceof oK||e instanceof aK),n=[],i=[];for(const r of e.children)r instanceof eK&&(t&&!WB(e.producedFields(),r.dependentFields())?n.push(r):i.push(r));if(n.length>0){const t=n.pop();for(const e of n)t.merge(e,this.model.renameSignal.bind(this.model));this.setModified(),e instanceof eK?e.merge(t,this.model.renameSignal.bind(this.model)):t.swapWithParent()}if(i.length>1){const e=i.pop();for(const t of i)e.merge(t,this.model.renameSignal.bind(this.model));this.setModified()}}}class DK extends pK{run(e){const t=[...e.children];if(!NB(t,(e=>e instanceof AJ))||e.numChildren()<=1)return;const n=[];let i;for(const r of t)if(r instanceof AJ){let t=r;for(;1===t.numChildren();){const[e]=t.children;if(!(e instanceof AJ))break;t=e}n.push(...t.children),i?(e.removeChild(r),r.parent=i.parent,i.parent.removeChild(i),i.parent=t,this.setModified()):i=t}else n.push(r);if(n.length){this.setModified();for(const e of n)e.parent.removeChild(e),e.parent=i}}}class AK extends DJ{clone(){return new AK(null,AB(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=LB(this.transform.groupby.concat(e),(e=>e))}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(e.add,e),this.transform.joinaggregate.map((e=>e.field)).filter((e=>void 0!==e)).forEach(e.add,e),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){var t;return null!==(t=e.as)&&void 0!==t?t:uG(e)}hash(){return`JoinAggregateTransform ${jB(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 SK extends DJ{clone(){return new SK(null,AB(this._stack))}constructor(e,t){super(e),this._stack=t}static makeFromTransform(e,t){const{stack:n,groupby:i,as:r,offset:o="zero"}=t,a=[],s=[];if(void 0!==t.sort)for(const e of t.sort)a.push(e.field),s.push(sU(e.order,"ascending"));const l={field:a,order:s};let u;return u=function(e){return xe(e)&&e.every((e=>mt(e)))&&e.length>1}(r)?r:mt(r)?[r,`${r}_end`]:[`${t.stack}_start`,`${t.stack}_end`],new SK(e,{dimensionFieldDefs:[],stackField:n,groupby:i,offset:o,sort:l,facetby:[],as:u})}static makeFromEncoding(e,t){const n=t.stack,{encoding:i}=t;if(!n)return null;const{groupbyChannels:r,fieldChannel:o,offset:a,impute:s}=n,l=r.map((e=>vG(i[e]))).filter((e=>!!e)),u=function(e){return e.stack.stackBy.reduce(((e,t)=>{const n=uG(t.fieldDef);return n&&e.push(n),e}),[])}(t),c=t.encoding.order;let f;return f=xe(c)||JY(c)?Qq(c):u.reduce(((e,t)=>(e.field.push(t),e.order.push("y"===o?"descending":"ascending"),e)),{field:[],order:[]}),new SK(e,{dimensionFieldDefs:l,stackField:t.vgField(o),facetby:[],stackby:u,sort:f,offset:a,impute:s,as:[t.vgField(o,{suffix:"start",forAs:!0}),t.vgField(o,{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(e.add,e),this._stack.facetby.forEach(e.add,e),this._stack.sort.field.forEach(e.add,e),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${jB(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:e,impute:t,groupby:n}=this._stack;return e.length>0?e.map((e=>e.bin?t?[uG(e,{binSuffix:"mid"})]:[uG(e,{}),uG(e,{binSuffix:"end"})]:[uG(e)])).flat():null!=n?n:[]}assemble(){const e=[],{facetby:t,dimensionFieldDefs:n,stackField:i,stackby:r,sort:o,offset:a,impute:s,as:l}=this._stack;if(s)for(const o of n){const{bandPosition:n=.5,bin:a}=o;if(a){const t=uG(o,{expr:"datum"}),i=uG(o,{expr:"datum",binSuffix:"end"});e.push({type:"formula",expr:`${n}*${t}+${1-n}*${i}`,as:uG(o,{binSuffix:"mid",forAs:!0})})}e.push({type:"impute",field:i,groupby:[...r,...t],key:uG(o,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...t],field:i,sort:o,as:l,offset:a}),e}}class MK extends DJ{clone(){return new MK(null,AB(this.transform))}constructor(e,t){super(e),this.transform=t}addDimensions(e){this.transform.groupby=LB(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(n.add,n),(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(n.add,n),n}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){var t;return null!==(t=e.as)&&void 0!==t?t:uG(e)}hash(){return`WindowTransform ${jB(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=>yq(e))))return Object.assign({type:"joinaggregate",as:i,ops:n,fields:t},void 0!==a?{groupby:a}:{});const s=[],l=[];if(void 0!==this.transform.sort)for(const t of this.transform.sort)s.push(t.field),l.push(null!==(e=t.order)&&void 0!==e?e:"ascending");const u={field:s,order:l},c=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:r,as:i,ops:n,fields:t,sort:u},void 0!==c?{ignorePeers:c}:{}),void 0!==a?{groupby:a}:{}),void 0!==o?{frame:o}:{})}}function CK(e){if(e instanceof nK)if(1!==e.numChildren()||e.children[0]instanceof AJ){const n=e.model.component.data.main;FK(n);const i=(t=e,function e(n){if(!(n instanceof nK)){const i=n.clone();if(i instanceof AJ){const e=jK+i.getSource();i.setSource(e),t.model.component.data.outputNodes[e]=i}else(i instanceof tK||i instanceof SK||i instanceof MK||i instanceof AK)&&i.addDimensions(t.fields);for(const t of n.children.flatMap(e))t.parent=i;return[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 tK||t instanceof SK||t instanceof MK||t instanceof AK)&&t.addDimensions(e.fields),t.swapWithParent(),CK(e)}else e.children.map(CK);var t}function FK(e){if(e instanceof AJ&&e.type===xJ.Main&&1===e.numChildren()){const t=e.children[0];t instanceof nK||(t.swapWithParent(),FK(e))}}const jK="scale_";function $K(e){for(const t of e){for(const e of t.children)if(e.parent!==t)return!1;if(!$K(t.children))return!1}return!0}function TK(e,t){let n=!1;for(const i of t)n=e.optimize(i)||n;return n}function NK(e,t,n){let i=e.sources,r=!1;return r=TK(new bK,i)||r,r=TK(new yK(t),i)||r,i=i.filter((e=>e.numChildren()>0)),r=TK(new _K,i)||r,i=i.filter((e=>e.numChildren()>0)),n||(r=TK(new xK,i)||r,r=TK(new EK(t),i)||r,r=TK(new vK,i)||r,r=TK(new wK,i)||r,r=TK(new kK,i)||r,r=TK(new OK,i)||r,r=TK(new mK,i)||r,r=TK(new DK,i)||r),e.sources=i,r}class zK{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,t){return new zK((()=>e(t)))}}function PK(e){m0(e)?function(e){const t=e.component.scales;for(const n of YB(t)){const i=RK(e,n);if(t[n].setWithExplicit("domains",i),IK(e,n),e.component.data.isFaceted){let t=e;for(;!y0(t)&&t.parent;)t=t.parent;if("shared"===t.component.resolve.scale[n])for(const e of i.value)Tq(e)&&(e.data=jK+e.data.replace(jK,""))}}}(e):function(e){for(const t of e.children)PK(t);const t=e.component.scales;for(const n of YB(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"):fJ(i,e.getWithExplicit("domains"),"domains","scale",WK);const t=e.get("selectionExtent");r&&t&&r.param!==t.param&&$W("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 RK(e,t){const n=e.getScaleComponent(t).get("type"),{encoding:i}=e,r=function(e,t,n,i){if("unaggregated"===e){const{valid:e,reason:i}=qK(t,n);if(!e)return void $W(i)}else if(void 0===e&&i.useUnaggregatedDomain){const{valid:e}=qK(t,n);if(e)return"unaggregated"}return e}(e.scaleDomain(t),e.typedFieldDef(t),n,e.config.scale);return r!==e.scaleDomain(t)&&(e.specifiedScales[t]=Object.assign(Object.assign({},e.specifiedScales[t]),{domain:r})),"x"===t&&bG(i.x2)?bG(i.x)?fJ(BK(n,r,e,"x"),BK(n,r,e,"x2"),"domain","scale",WK):BK(n,r,e,"x2"):"y"===t&&bG(i.y2)?bG(i.y)?fJ(BK(n,r,e,"y"),BK(n,r,e,"y2"),"domain","scale",WK):BK(n,r,e,"y2"):BK(n,r,e,t)}function LK(e,t,n){var i;const r=null===(i=VW(n))||void 0===i?void 0:i.unit;return"temporal"===t||r?function(e,t,n){return e.map((e=>({signal:`{data: ${DG(e,{timeUnit:n,type:t})}}`})))}(e,t,r):[e]}function BK(e,t,n,i){const{encoding:r}=n,o=bG(r[i]),{type:a}=o,s=o.timeUnit;if(function(e){return null==e?void 0:e.unionWith}(t)){const r=BK(e,void 0,n,i);return sJ([...LK(t.unionWith,a,s),...r.value])}if(jq(t))return sJ([t]);if(t&&"unaggregated"!==t&&!jH(t))return sJ(LK(t,a,s));const l=n.stack;if(l&&i===l.fieldChannel){if("normalize"===l.offset)return lJ([[0,1]]);const e=n.requestDataName(xJ.Main);return lJ([{data:e,field:n.vgField(i,{suffix:"start"})},{data:e,field:n.vgField(i,{suffix:"end"})}])}const u=lq(i)&&JY(o)?function(e,t,n){if(!SH(n))return;const i=e.fieldDef(t),r=i.sort;if(PY(r))return{op:"min",field:sZ(i,t),order:"ascending"};const{stack:o}=e,a=o?new Set([...o.groupbyFields,...o.stackBy.map((e=>e.fieldDef.field))]):void 0;if(zY(r))return UK(r,o&&!a.has(r.field));if(NY(r)){const{encoding:t,order:n}=r,i=e.fieldDef(t),{aggregate:s,field:l}=i,u=o&&!a.has(l);if(gq(s)||mq(s))return UK({field:uG(i),order:n},u);if(yq(s)||!s)return UK({op:s,field:l,order:n},u)}else{if("descending"===r)return{op:"min",field:e.vgField(t),order:"descending"};if(TB(["ascending",void 0],r))return!0}}(n,i,e):void 0;if(ZY(o))return lJ(LK([o.datum],a,s));const c=o;if("unaggregated"===t){const e=n.requestDataName(xJ.Main),{field:t}=o;return lJ([{data:e,field:uG({field:t,aggregate:"min"})},{data:e,field:uG({field:t,aggregate:"max"})}])}if(Oq(c.bin)){if(SH(e))return lJ("bin-ordinal"===e?[]:[{data:XB(u)?n.requestDataName(xJ.Main):n.requestDataName(xJ.Raw),field:n.vgField(i,SG(c,i)?{binSuffix:"range"}:{}),sort:!0!==u&&we(u)?u:{field:n.vgField(i,{}),op:"min"}}]);{const{bin:e}=c;if(Oq(e)){const t=ZZ(n,c.field,e);return lJ([new zK((()=>{const e=n.getSignalName(t);return`[${e}.start, ${e}.stop]`}))])}return lJ([{data:n.requestDataName(xJ.Main),field:n.vgField(i,{})}])}}if(c.timeUnit&&TB(["time","utc"],e)&&YY(c,m0(n)?n.encoding[wI(i)]:void 0,n.markDef,n.config)){const e=n.requestDataName(xJ.Main);return lJ([{data:e,field:n.vgField(i)},{data:e,field:n.vgField(i,{suffix:"end"})}])}return lJ(u?[{data:XB(u)?n.requestDataName(xJ.Main):n.requestDataName(xJ.Raw),field:n.vgField(i),sort:u}]:[{data:n.requestDataName(xJ.Main),field:n.vgField(i)}])}function UK(e,t){const{op:n,field:i,order:r}=e;return Object.assign(Object.assign({op:null!=n?n:t?"sum":jY},i?{field:iU(i)}:{}),r?{order:r}:{})}function IK(e,t){var n;const i=e.component.scales[t],r=e.specifiedScales[t].domain,o=null===(n=e.fieldDef(t))||void 0===n?void 0:n.bin,a=jH(r)&&r,s=Eq(o)&&Dq(o.extent)&&o.extent;(a||s)&&i.set("selectionExtent",null!=a?a:s,!0)}function qK(e,t){const{aggregate:n,type:i}=e;return n?mt(n)&&!wq.has(n)?{valid:!1,reason:OW(n)}:"quantitative"===i&&"log"===t?{valid:!1,reason:kW(e)}:{valid:!0}:{valid:!1,reason:_W(e)}}function WK(e,t,n,i){return e.explicit&&t.explicit&&$W(function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${FB(n)} and ${FB(i)}). Using the union of the two domains.`}(n,i,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function HK(e){const t=LB(e.map((e=>{if(Tq(e)){const{sort:t}=e;return function(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{if(Tq(e)){const t=e.sort;return void 0===t||XB(t)||("op"in t&&"count"===t.op&&delete t.field,"ascending"===t.order&&delete t.order),t}})).filter((e=>void 0!==e)),jB);if(0===t.length)return;if(1===t.length){const t=e[0];if(Tq(t)&&n.length>0){let e=n[0];if(n.length>1)$W(AW),e=!0;else if(we(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=LB(n.map((e=>XB(e)||!("op"in e)||mt(e.op)&&e.op in pq?e:($W(function(e){return`Dropping sort property ${FB(e)} as unioned domains only support boolean or op "count", "min", and "max".`}(e)),!0))),jB);let r;1===i.length?r=i[0]:i.length>1&&($W(AW),r=!0);const o=LB(e.map((e=>Tq(e)?e.data:null)),(e=>e));return 1===o.length&&null!==o[0]?Object.assign({data:o[0],fields:t.map((e=>e.field))},r?{sort:r}:{}):Object.assign({fields:t},r?{sort:r}:{})}function YK(e){if(Tq(e)&&mt(e.field))return e.field;if(function(e){return!xe(e)&&"fields"in e&&!("data"in e)}(e)){let t;for(const n of e.fields)if(Tq(n)&&mt(n.field))if(t){if(t!==n.field)return $W("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 $W("Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect."),t}if(function(e){return!xe(e)&&"fields"in e&&"data"in e}(e)){$W("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 mt(t)?t:void 0}}function GK(e,t){return HK(e.component.scales[t].get("domains").map((t=>(Tq(t)&&(t.data=e.lookupDataSource(t.data)),t))))}function VK(e){return b0(e)||v0(e)?e.children.reduce(((e,t)=>e.concat(VK(t))),XK(e)):XK(e)}function XK(e){return YB(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:l,range:u,reverse:c}=r,f=function(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);ri[1]?`isValid(${r}) && reverse(${r})`:r}}(e,s,i,h):null;return t.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:o,type:a},h?{domain:h}:{}),p?{domainRaw:p}:{}),{range:d}),void 0!==c?{reverse:c}:{}),f)),t}),[])}class JK extends aJ{constructor(e,t){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",t)}domainDefinitelyIncludesZero(){return!1!==this.get("zero")||NB(this.get("domains"),(e=>xe(e)&&2===e.length&&e[0]<=0&&e[1]>=0))}}const QK=["range","scheme"];function ZK(e,t){const n=e.fieldDef(t);if(null==n?void 0:n.bin){const{bin:i,field:r}=n,o=_I(t),a=e.getName(o);if(we(i)&&i.binned&&void 0!==i.step)return new zK((()=>{const n=e.scaleName(t),r=`(domain("${n}")[1] - domain("${n}")[0]) / ${i.step}`;return`${e.getSignalName(a)} / (${r})`}));if(Oq(i)){const t=ZZ(e,r,i);return new zK((()=>{const n=e.getSignalName(t),i=`(${n}.stop - ${n}.start) / ${n}.step`;return`${e.getSignalName(a)} / (${i})`}))}}}function KK(e,t){const n=t.specifiedScales[e],{size:i}=t,r=t.getScaleComponent(e).get("type");for(const i of QK)if(void 0!==n[i]){const o=IH(r,i),a=qH(e,i);if(o)if(a)$W(a);else switch(i){case"range":{const i=n.range;if(xe(i)){if(WI(e))return sJ(i.map((e=>{if("width"===e||"height"===e){const n=t.getName(e),i=t.getSignalName.bind(t);return zK.fromName(i,n)}return e})))}else if(we(i))return sJ({data:t.requestDataName(xJ.Main),field:i.field,sort:{op:"min",field:t.vgField(e)}});return sJ(i)}case"scheme":return sJ(e0(n[i]))}else $W(EW(r,i,e))}const o=e===bU||"xOffset"===e?"width":"height",a=i[o];if(RV(a))if(WI(e))if(SH(r)){const n=t0(a,t,e);if(n)return sJ({step:n})}else $W(DW(o));else if(XI(e)){const n=e===OU?"x":"y";if("band"===t.getScaleComponent(n).get("type")){const e=n0(a,r);if(e)return sJ(e)}}const{rangeMin:s,rangeMax:l}=n,u=function(e,t){const{size:n,config:i,mark:r,encoding:o}=t,a=t.getSignalName.bind(t),{type:s}=bG(o[e]),l=t.getScaleComponent(e).get("type"),{domain:u,domainMid:c}=t.specifiedScales[e];switch(e){case bU:case xU:{if(TB(["point","band"],l)){const r=i0(e,n,i.view);if(RV(r))return{step:t0(r,t,e)}}const r=_I(e),o=t.getName(r);return e===xU&&MH(l)?[zK.fromName(a,o),0]:[0,zK.fromName(a,o)]}case OU:case kU:return function(e,t,n){const i=e===OU?"x":"y",r=t.getScaleComponent(i).get("type"),o=t.scaleName(i);if("band"===r){const e=i0(i,t.size,t.config.view);if(RV(e)){const t=n0(e,n);if(t)return t}return[0,{signal:`bandwidth('${o}')`}]}return SB(`Cannot use ${e} scale if ${i} scale is not discrete.`)}(e,t,l);case PU:{const o=r0(r,t.component.scales[e].get("zero"),i),a=function(e,t,n,i){const r={x:ZK(n,"x"),y:ZK(n,"y")};switch(e){case"bar":case"tick":{if(void 0!==i.scale.maxBandSize)return i.scale.maxBandSize;const e=a0(t,r,i.view);return pt(e)?e-1:new zK((()=>`${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=a0(t,r,i.view);return pt(e)?Math.pow(o0*e,2):new zK((()=>`pow(0.95 * ${e.signal}, 2)`))}}throw new Error(yW("size",e))}(r,n,t,i);return FH(l)?function(e,t,n){const i=()=>{const i=Hq(t),r=Hq(e),o=`(${i} - ${r}) / (${n} - 1)`;return`sequence(${r}, ${i} + ${o}, ${o})`};return jq(t)?new zK(i):{signal:i()}}(o,a,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&&xe(n)?n.length+1:($W(function(e){return`Domain for ${e} is required for threshold scale.`}(i)),3)}}(l,i,u,e)):[o,a]}case AU:return[0,2*Math.PI];case RU:return[0,360];case EU:return[0,new zK((()=>`min(${t.getSignalName("width")},${t.getSignalName("height")})/2`))];case IU:return[i.scale.minStrokeWidth,i.scale.maxStrokeWidth];case qU:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case zU:return"symbol";case $U:case TU:case NU:return"ordinal"===l?"nominal"===s?"category":"ordinal":void 0!==c?"diverging":"rect"===r||"geoshape"===r?"heatmap":"ramp";case LU:case BU:case UU:return[i.scale.minOpacity,i.scale.maxOpacity]}}(e,t);return(void 0!==s||void 0!==l)&&IH(r,"rangeMin")&&xe(u)&&2===u.length?sJ([null!=s?s:u[0],null!=l?l:u[1]]):lJ(u)}function e0(e){return function(e){return!mt(e)&&!!e.name}(e)?Object.assign({scheme:e.name},CB(e,["name"])):{scheme:e}}function t0(e,t,n){var i,r,o,a,s;const{encoding:l}=t,u=t.getScaleComponent(n),c=OI(n),f=l[c];if("offset"===PV({step:e,offsetIsDiscrete:tG(f)&&lH(f.type)})&&BG(l,c)){const n=t.getScaleComponent(c);let l=`domain('${t.scaleName(c)}').length`;"band"===n.get("type")&&(l=`bandspace(${l}, ${null!==(r=null!==(i=n.get("paddingInner"))&&void 0!==i?i:n.get("padding"))&&void 0!==r?r:0}, ${null!==(a=null!==(o=n.get("paddingOuter"))&&void 0!==o?o:n.get("padding"))&&void 0!==a?a:0})`);const f=null!==(s=u.get("paddingInner"))&&void 0!==s?s:u.get("padding");return{signal:`${e.step} * ${l} / (1-${qq(f)})`}}return e.step}function n0(e,t){if("offset"===PV({step:e,offsetIsDiscrete:SH(t)}))return{step:e.step}}function i0(e,t,n){const i=e===bU?"width":"height";return t[i]||qV(n,i)}function r0(e,t,n){if(t)return jq(t)?{signal:`${t.signal} ? 0 : ${r0(e,!1,n)}`}: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(yW("size",e))}const o0=.95;function a0(e,t,n){const i=RV(e.width)?e.width.step:IV(n,"width"),r=RV(e.height)?e.height.step:IV(n,"height");return t.x||t.y?new zK((()=>`min(${[t.x?t.x.signal:i,t.y?t.y.signal:r].join(", ")})`)):Math.min(i,r)}function s0(e,t){m0(e)?function(e,t){const n=e.component.scales,{config:i,encoding:r,markDef:o,specifiedScales:a}=e;for(const s of YB(n)){const l=a[s],u=n[s],c=e.getScaleComponent(s),f=bG(r[s]),d=l[t],h=c.get("type"),p=c.get("padding"),g=c.get("paddingInner"),m=IH(h,t),y=qH(s,t);if(void 0!==d&&(m?y&&$W(y):$W(EW(h,t,s))),m&&void 0===y)if(void 0!==d){const e=f.timeUnit,n=f.type;switch(t){case"domainMax":case"domainMin":TW(l[t])||"temporal"===n||e?u.set(t,{signal:DG(l[t],{type:n,timeUnit:e})},!0):u.set(t,l[t],!0);break;default:u.copyKeyFromObject(t,l)}}else{const n=t in l0?l0[t]({model:e,channel:s,fieldOrDatumDef:f,scaleType:h,scalePadding:p,scalePaddingInner:g,domain:l.domain,domainMin:l.domainMin,domainMax:l.domainMax,markDef:o,config:i,hasNestedOffsetScale:UG(r,s),hasSecondaryRangeChannel:!!r[wI(s)]}):i.scale[t];void 0!==n&&u.set(t,n,!1)}}}(e,t):c0(e,t)}const l0={bins:({model:e,fieldOrDatumDef:t})=>JY(t)?function(e,t){const n=t.bin;if(Oq(n)){const i=ZZ(e,t.field,n);return new zK((()=>e.getSignalName(i)))}if(kq(n)&&Eq(n)&&void 0!==n.step)return{step:n.step}}(e,t):void 0,interpolate:({channel:e,fieldOrDatumDef:t})=>function(e,t){if(TB([$U,TU,NU],e)&&"nominal"!==t)return"hcl"}(e,t.type),nice:({scaleType:e,channel:t,domain:n,domainMin:i,domainMax:r,fieldOrDatumDef:o})=>function(e,t,n,i,r,o){var a;if(!((null===(a=vG(o))||void 0===a?void 0:a.bin)||xe(n)||null!=r||null!=i||TB([pH,gH],e)))return!!WI(t)||void 0}(e,t,n,i,r,o),padding:({channel:e,scaleType:t,fieldOrDatumDef:n,markDef:i,config:r})=>function(e,t,n,i,r,o){if(WI(e)){if(CH(t)){if(void 0!==n.continuousPadding)return n.continuousPadding;const{type:t,orient:a}=r;if("bar"===t&&(!JY(i)||!i.bin&&!i.timeUnit)&&("vertical"===a&&"x"===e||"horizontal"===a&&"y"===e))return o.continuousBandSize}if(t===mH)return n.pointPadding}}(e,t,r.scale,n,i,r.bar),paddingInner:({scalePadding:e,channel:t,markDef:n,scaleType:i,config:r,hasNestedOffsetScale:o})=>function(e,t,n,i,r,o=!1){if(void 0===e){if(WI(t)){const{bandPaddingInner:e,barBandPaddingInner:t,rectBandPaddingInner:i,bandWithNestedOffsetPaddingInner:a}=r;return o?a:sU(e,"bar"===n?t:i)}return XI(t)&&i===yH?r.offsetBandPaddingInner:void 0}}(e,t,n.type,i,r.scale,o),paddingOuter:({scalePadding:e,channel:t,scaleType:n,scalePaddingInner:i,config:r,hasNestedOffsetScale:o})=>function(e,t,n,i,r,o=!1){if(void 0===e)if(WI(t)){const{bandPaddingOuter:e,bandWithNestedOffsetPaddingOuter:t}=r;if(o)return t;if(n===yH)return sU(e,jq(i)?{signal:`${i.signal}/2`}:i/2)}else if(XI(t)){if(n===mH)return.5;if(n===yH)return r.offsetBandPaddingOuter}}(e,t,n,i,r.scale,o),reverse:({fieldOrDatumDef:e,scaleType:t,channel:n,config:i})=>function(e,t,n,i){return"x"===n&&void 0!==i.xReverse?MH(e)&&"descending"===t?jq(i.xReverse)?{signal:`!${i.xReverse.signal}`}:!i.xReverse:i.xReverse:!(!MH(e)||"descending"!==t)||void 0}(t,JY(e)?e.sort:void 0,n,i.scale),zero:({channel:e,fieldOrDatumDef:t,domain:n,markDef:i,scaleType:r,config:o,hasSecondaryRangeChannel:a})=>function(e,t,n,i,r,o,a){if(n&&"unaggregated"!==n&&MH(r)){if(xe(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&&!FH(r))return!0;if((!JY(t)||!t.bin)&&TB([...qI,...YI],e)){const{orient:t,type:n}=i;return(!TB(["bar","area","line","trail"],n)||!("horizontal"===t&&"y"===e||"vertical"===t&&"x"===e))&&(!(!TB(["bar","area"],n)||a)||(null==o?void 0:o.zero))}return!1}(e,t,n,i,r,o.scale,a)};function u0(e){m0(e)?function(e){const t=e.component.scales;for(const n of sq){const i=t[n];if(!i)continue;const r=KK(n,e);i.setWithExplicit("range",r)}}(e):c0(e,"range")}function c0(e,t){const n=e.component.scales;for(const n of e.children)"range"===t?u0(n):s0(n,t);for(const i of YB(n)){let r;for(const n of e.children){const e=n.component.scales[i];e&&(r=fJ(r,e.getWithExplicit(t),t,"scale",uJ(((e,n)=>"range"===t&&e.step&&n.step?e.step-n.step:0))))}n[i].setWithExplicit(t,r)}}function f0(e,t,n,i,r=!1){const o=function(e,t,n,i){var r;switch(t.type){case"nominal":case"ordinal":if(iI(e)||"discrete"===dq(e))return"shape"===e&&"ordinal"===t.type&&$W(wW(e,"ordinal")),"ordinal";if(WI(e)||XI(e)){if(TB(["rect","bar","image","rule"],n.type))return"band";if(i)return"band"}else if("arc"===n.type&&e in HI)return"band";return dY(n[_I(e)])||oG(t)&&(null===(r=t.axis)||void 0===r?void 0:r.tickBand)?"band":"point";case"temporal":return iI(e)?"time":"discrete"===dq(e)?($W(wW(e,"temporal")),"ordinal"):JY(t)&&t.timeUnit&&VW(t.timeUnit).utc?"utc":"time";case"quantitative":return iI(e)?JY(t)&&Oq(t.bin)?"bin-ordinal":"linear":"discrete"===dq(e)?($W(wW(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(pW(t.type))}(t,n,i,r),{type:a}=e;return lq(t)?void 0!==a?function(e,t,n=!1){if(!lq(e))return!1;switch(e){case bU:case xU:case OU:case kU:case AU:case EU:return!!CH(t)||"band"===t||"point"===t&&!n;case PU:case IU:case LU:case BU:case UU:case RU:return CH(t)||FH(t)||TB(["band","point","ordinal"],t);case $U:case TU:case NU:return"band"!==t;case qU:case zU:return"ordinal"===t||FH(t)}}(t,a)?JY(n)&&(s=a,l=n.type,!(TB([cH,dH],l)?void 0===s||SH(s):l===fH?TB([pH,gH,void 0],s):l!==uH||kH(s)||FH(s)||void 0===s))?($W(function(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}(a,o)),o):a:($W(function(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}(t,a,o)),o):o:null;var s,l}function d0(e){m0(e)?e.component.scales=function(e){const{encoding:t,mark:n,markDef:i}=e,r={};for(const o of sq){const a=bG(t[o]);if(a&&n===rY&&o===zU&&a.type===hH)continue;let s=a&&a.scale;if(!XI(o)||UG(t,kI(o))){if(a&&null!==s&&!1!==s){null!=s||(s={});const n=f0(s,o,a,i,UG(t,o));r[o]=new JK(e.scaleName(`${o}`,!0),{value:n,explicit:s.type===n})}}else s&&$W(vW(o))}return r}(e):e.component.scales=function(e){var t,n;const i=e.component.scales={},r={},o=e.component.resolve;for(const i of e.children){d0(i);for(const a of YB(i.component.scales))if(null!==(t=(n=o.scale)[a])&&void 0!==t||(n[a]=MZ(a,e)),"shared"===o.scale[a]){const e=r[a],t=i.component.scales[a].getWithExplicit("type");e?bH(e.value,t.value)?r[a]=fJ(e,t,"type","scale",h0):(o.scale[a]="independent",delete r[a]):r[a]=t}}for(const t of YB(r)){const n=e.scaleName(t,!0),o=r[t];i[t]=new JK(n,o);for(const i of e.children){const e=i.component.scales[t];e&&(i.renameScale(e.get("name"),n),e.merged=!0)}}return i}(e)}const h0=uJ(((e,t)=>wH(e)-wH(t)));var p0=function(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{var t,n,i;return(null===(t=e.from)||void 0===t?void 0:t.data)&&(e.from.data=this.lookupDataSource(e.from.data)),(null===(i=null===(n=e.from)||void 0===n?void 0:n.facet)||void 0===i?void 0:i.data)&&(e.from.facet.data=this.lookupDataSource(e.from.facet.data)),e},this.parent=n,this.config=r,this.view=Mq(a),this.name=null!==(s=e.name)&&void 0!==s?s:i,this.title=Fq(e.title)?{text:e.title}:e.title?Mq(e.title):void 0,this.scaleNameMap=n?n.scaleNameMap:new g0,this.projectionNameMap=n?n.projectionNameMap:new g0,this.signalNameMap=n?n.signalNameMap:new g0,this.data=e.data,this.description=e.description,this.transforms=(null!==(l=e.transform)&&void 0!==l?l:[]).map((e=>AX(e)?{filter:EB(e.filter,aH)}:e)),this.layout="layer"===t||"unit"===t?{}:function(e,t,n){var i,r;const o=n[t],a={},{spacing:s,columns:l}=o;void 0!==s&&(a.spacing=s),void 0!==l&&(BY(e)&&!RY(e.facet)||TV(e))&&(a.columns=l),NV(e)&&(a.columns=1);for(const t of BV)if(void 0!==e[t])if("spacing"===t){const n=e[t];a[t]=pt(n)?n:{row:null!==(i=n.row)&&void 0!==i?i:s,column:null!==(r=n.column)&&void 0!==r?r:s}}else a[t]=e[t];return a}(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:BY(e)||(null==n?void 0:n.component.data.isFaceted)&&void 0===e.data},layoutSize:new aJ,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},o?AB(o):{}),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}={}){d0(e),PK(e);for(const t of UH)s0(e,t);t||u0(e)}(this)}parseProjection(){JZ(this)}renameTopLevelLayoutSizeSignal(){"width"!==this.getName("width")&&this.renameSignal(this.getName("width"),"width"),"height"!==this.getName("height")&&this.renameSignal(this.getName("height"),"height")}parseLegends(){IZ(this)}assembleEncodeFromView(e){const{style:t}=e,n=p0(e,["style"]),i={};for(const e of YB(n)){const t=n[e];void 0!==t&&(i[e]=Iq(t))}return i}assembleGroupEncodeEntry(e){let t={};return this.view&&(t=this.assembleEncodeFromView(this.view)),e||(this.description&&(t.description=Iq(this.description)),"unit"!==this.type&&"layer"!==this.type)?HB(t)?void 0: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=p0(e,["spacing"]),{component:i,config:r}=this,o=function(e,t){const n={};for(const i of oI){const r=e[i];if(null==r?void 0:r.facetFieldDef){const{titleAnchor:e,titleOrient:o}=cZ(["titleAnchor","titleOrient"],r.facetFieldDef.header,t,i),a=lZ(i,o),s=wZ(e,a);void 0!==s&&(n[a]=s)}}return HB(n)?void 0:n}(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 oI)e[n].title&&t.push(hZ(this,n));for(const e of fZ)t=t.concat(mZ(this,e));return t}assembleAxes(){return function(e,t){const{x:n=[],y:i=[]}=e;return[...n.map((e=>JQ(e,"grid",t))),...i.map((e=>JQ(e,"grid",t))),...n.map((e=>JQ(e,"main",t))),...i.map((e=>JQ(e,"main",t)))].filter((e=>e))}(this.component.axes,this.config)}assembleLegends(){return YZ(this)}assembleProjections(){return b0(e=this)||v0(e)?function(e){return e.children.reduce(((e,t)=>e.concat(t.assembleProjections())),GZ(e))}(e):GZ(e);var e}assembleTitle(){var e,t,n;const i=null!==(e=this.title)&&void 0!==e?e:{},{encoding:r}=i,o=p0(i,["encoding"]),a=Object.assign(Object.assign(Object.assign({},Cq(this.config.title).nonMarkTitleProperties),o),r?{encode:{update:r}}:{});if(a.text)return TB(["unit","layer"],this.type)?TB(["middle",void 0],a.anchor)&&(null!==(t=a.frame)&&void 0!==t||(a.frame="group")):null!==(n=a.anchor)&&void 0!==n||(a.anchor="start"),HB(a)?void 0:a}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||y0(this.parent)?VK(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 JB((this.name?`${this.name}_`:"")+e)}getDataName(e){return this.getName(xJ[e].toLowerCase())}requestDataName(e){const t=this.getDataName(e),n=this.component.data.outputNodeRefCounts;return n[t]=(n[t]||0)+1,t}getSizeSignalRef(e){if(y0(this.parent)){const t=GI(AZ(e)),n=this.component.scales[t];if(n&&!n.merged){const e=n.get("type"),i=n.get("range");if(SH(e)&&$q(i)){const e=n.get("name"),i=YK(GK(this,t));return i?{signal:DZ(e,n,uG({aggregate:"distinct",field:i},{expr:"datum"}))}:($W(oW(t)),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):mI(e)&&lq(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(`Cannot find a selection named "${t}".`);return n}hasAxisOrientSignalRef(){var e,t;return(null===(e=this.component.axes.x)||void 0===e?void 0:e.some((e=>e.hasOrientSignalRef())))||(null===(t=this.component.axes.y)||void 0===t?void 0:t.some((e=>e.hasOrientSignalRef())))}}class w0 extends x0{vgField(e,t={}){const n=this.fieldDef(e);if(n)return uG(n,t)}reduceFieldDef(e,t){return function(e,t,n,i){return e?YB(e).reduce(((n,r)=>{const o=e[r];return xe(o)?o.reduce(((e,n)=>t.call(i,e,n,r)),n):t.call(i,n,o,r)}),n):n}(this.getMapping(),((t,n,i)=>{const r=vG(n);return r?e(t,r,i):t}),t)}forEachFieldDef(e,t){YG(this.getMapping(),((t,n)=>{const i=vG(t);i&&e(i,n)}),t)}}class _0 extends DJ{clone(){return new _0(null,AB(this.transform))}constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=AB(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"],t.groupby&&null==t.minsteps&&null==t.maxsteps&&null==t.steps&&(this.transform.steps=200)}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 ${jB(this.transform)}`}assemble(){const e=this.transform,{density:t}=e,n=function(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{const o=lq(r)&&t.getScaleComponent(r);return o&&MH(o.get("type"))&&"count"!==n.aggregate&&!oY(i)&&(e[n.field]=n),e}),{});return YB(o).length?new O0(e,o):null}dependentFields(){return new Set(YB(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${jB(this.filter)}`}assemble(){const e=YB(this.filter).reduce(((e,t)=>{const n=this.filter[t],i=uG(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 k0 extends DJ{clone(){return new k0(this.parent,AB(this.transform))}constructor(e,t){super(e),this.transform=t,this.transform=AB(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}))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${jB(this.transform)}`}assemble(){const{flatten:e,as:t}=this.transform;return{type:"flatten",fields:e,as:t}}}class E0 extends DJ{clone(){return new E0(null,AB(this.transform))}constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=AB(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"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${jB(this.transform)}`}assemble(){const{fold:e,as:t}=this.transform;return{type:"fold",fields:e,as:t}}}class D0 extends DJ{clone(){return new D0(null,AB(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[[CU,MU],[jU,FU]]){const r=i.map((e=>{const n=bG(t.encoding[e]);return JY(n)?n.field:ZY(n)?{expr:`${n.datum}`}:iG(n)?{expr:`${n.value}`}:void 0}));(r[0]||r[1])&&(e=new D0(e,r,null,t.getName("geojson_"+n++)))}if(t.channelHasField(zU)){const i=t.typedFieldDef(zU);i.type===hH&&(e=new D0(e,null,i.field,t.getName("geojson_"+n++)))}return e}constructor(e,t,n,i){super(e),this.fields=t,this.geojson=n,this.signal=i}dependentFields(){var e;const t=(null!==(e=this.fields)&&void 0!==e?e:[]).filter(mt);return new Set([...this.geojson?[this.geojson]:[],...t])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${jB(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})]}}class A0 extends DJ{clone(){return new A0(null,this.projection,AB(this.fields),AB(this.as))}constructor(e,t,n,i){super(e),this.projection=t,this.fields=n,this.as=i}static parseAll(e,t){if(!t.projectionName())return e;for(const n of[[CU,MU],[jU,FU]]){const i=n.map((e=>{const n=bG(t.encoding[e]);return JY(n)?n.field:ZY(n)?{expr:`${n.datum}`}:iG(n)?{expr:`${n.value}`}:void 0})),r=n[0]===jU?"2":"";(i[0]||i[1])&&(e=new A0(e,t.projectionName(),i,[t.getName(`x${r}`),t.getName(`y${r}`)]))}return e}dependentFields(){return new Set(this.fields.filter(mt))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${jB(this.fields)} ${jB(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class S0 extends DJ{clone(){return new S0(null,AB(this.transform))}constructor(e,t){super(e),this.transform=t}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 S0(e,t)}static makeFromEncoding(e,t){const n=t.encoding,i=n.x,r=n.y;if(JY(i)&&JY(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:l,frame:u,keyvals:c}=o.impute,f=GG(t.mark,n);return new S0(e,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:o.field,key:a.field},s?{method:s}:{}),void 0!==l?{value:l}:{}),u?{frame:u}:{}),void 0!==c?{keyvals:c}:{}),f.length?{groupby:f}:{}))}return null}hash(){return`Impute ${jB(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:SX(n)?this.processSequence(n):n}:{}),{method:"value"}),r?{groupby:r}:{}),{value:i&&"value"!==i?null:o});return i&&"value"!==i?[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}]:[s]}}class M0 extends DJ{clone(){return new M0(null,AB(this.transform))}constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=AB(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]}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 ${jB(this.transform)}`}assemble(){const e=this.transform,{loess:t,on:n}=e,i=function(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);re))}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 ${jB(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 T0 extends DJ{clone(){return new T0(null,AB(this.transform))}constructor(e,t){super(e),this.transform=t}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${jB(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function N0(e){let t=0;return function n(i,r){var o;if(i instanceof uK&&!i.isGenerator&&!hJ(i.data)&&(e.push(r),r={name:null,source:r.name,transform:[]}),i instanceof oK&&(i.parent instanceof uK&&!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 nK)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 e.push(...i.assemble());switch((i instanceof sK||i instanceof lK||i instanceof O0||i instanceof WQ||i instanceof aZ||i instanceof A0||i instanceof tK||i instanceof C0||i instanceof MK||i instanceof AK||i instanceof E0||i instanceof k0||i instanceof _0||i instanceof M0||i instanceof F0||i instanceof j0||i instanceof aK||i instanceof T0||i instanceof $0)&&r.transform.push(i.assemble()),(i instanceof eK||i instanceof MJ||i instanceof S0||i instanceof SK||i instanceof D0)&&r.transform.push(...i.assemble()),i instanceof AJ&&(r.source&&0===r.transform.length?i.setSource(r.source):i.parent instanceof AJ?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:[]}))),i.numChildren()){case 0:i instanceof AJ&&(!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;for(const e of i.children)n(e,{name:null,source:o,transform:[]});break}}}}function z0(e,t){var n;const{facet:i,config:r,child:o,component:a}=e;if(e.channelHasField(t)){const s=i[t],l=uZ("title",null,r,t);let u=pG(s,r,{allowDisabling:!0,includeDefault:void 0===l||!!l});o.component.layoutHeaders[t].title&&(u=xe(u)?u.join(", "):u,u+=` / ${o.component.layoutHeaders[t].title}`,o.component.layoutHeaders[t].title=null);const c=uZ("labelOrient",s.header,r,t),f=null!==s.header&&sU(null===(n=s.header)||void 0===n?void 0:n.labels,r.header.labels,!0),d=TB(["bottom","right"],c)?"footer":"header";a.layoutHeaders[t]={title:null!==s.header?u:null,facetFieldDef:s,[d]:"facet"===t?[]:[P0(e,t,f)]}}}function P0(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 R0(e,t){var n;const{child:i}=e;if(i.component.axes[t]){const{layoutHeaders:o,resolve:a}=e.component;if(a.axis[t]=CZ(a,t),"shared"===a.axis[t]){const a="x"===t?"column":"row",s=o[a];for(const o of i.component.axes[t]){const t="top"===(r=o.get("orient"))||"left"===r||jq(r)?"header":"footer";null!==(n=s[t])&&void 0!==n||(s[t]=[P0(e,a,!1)]);const i=JQ(o,"main",e.config,{header:!0});i&&s[t][0].axes.push(i),o.mainExtracted=!0}}}var r}function L0(e){for(const t of e.children)t.parseLayoutSize()}function B0(e,t){var n;const i=AZ(t),r=GI(i),o=e.component.resolve,a=e.component.layoutSize;let s;for(const t of e.children){const a=t.component.layoutSize.getWithExplicit(i),l=null!==(n=o.scale[r])&&void 0!==n?n:MZ(r,e);if("independent"===l&&"step"===a.value){s=void 0;break}if(s){if("independent"===l&&s.value!==a.value){s=void 0;break}s=fJ(s,a,i,"")}else s=a}if(s){for(const n of e.children)e.renameSignal(n.getName(i),e.getName(t)),n.component.layoutSize.set(i,"merged",!1);a.setWithExplicit(t,s)}else a.setWithExplicit(t,{explicit:!1,value:void 0})}function U0(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(SH(e)){const e=qV(i.view,t);return $q(n)||RV(e)?"step":e}return UV(i.view,t)}if(e.hasProjection||"arc"===e.mark)return UV(i.view,t);{const e=qV(i.view,t);return RV(e)?e.step:e}}function I0(e,t,n){return uG(t,Object.assign({suffix:`by_${uG(e)}`},null!=n?n:{}))}class q0 extends w0{constructor(e,t,n,i){super(e,"facet",t,n,i,e.resolve),this.child=c1(e.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(e.facet)}initFacet(e){if(!RY(e))return{facet:this.initFacetFieldDef(e,"facet")};const t=YB(e),n={};for(const i of t){if(![mU,yU].includes(i)){$W(yW(i,"facet"));break}const t=e[i];if(void 0===t.field){$W(mW(t,i));break}n[i]=this.initFacetFieldDef(t,i)}return n}initFacetFieldDef(e,t){const n=_G(e,t);return n.header?n.header=Mq(n.header):null===n.header&&(n.header=null),n}channelHasField(e){return!!this.facet[e]}fieldDef(e){return this.facet[e]}parseData(){this.component.data=H0(this),this.child.parseData()}parseLayoutSize(){L0(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 oI)z0(e,t);R0(e,"x"),R0(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 oI)for(const o of dZ){const a=this.component.layoutHeaders[r],s=a[o],{facetFieldDef:l}=a;if(l){const t=uZ("titleOrient",l.header,this.config,r);if(["right","bottom"].includes(t)){const n=lZ(r,t);null!==(e=i.titleAnchor)&&void 0!==e||(i.titleAnchor={}),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)||(null!==(t=i[s])&&void 0!==t||(i[s]={}),i[s][r]=.5),a.title&&(null!==(n=i.offset)&&void 0!==n||(i.offset={}),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 q0))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(e){return this.parent&&this.parent instanceof q0?Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:uG(this.facet.column,{prefix:"distinct"})}}}}:{}),super.assembleGroup(e)):super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],t=[],n=[];if(this.child instanceof q0){if(this.child.channelHasField("column")){const i=uG(this.child.facet.column);e.push(i),t.push("distinct"),n.push(`distinct_${i}`)}}else for(const i of qI){const r=this.child.component.scales[i];if(r&&!r.merged){const o=r.get("type"),a=r.get("range");if(SH(o)&&$q(a)){const r=YK(GK(this.child,i));r?(e.push(r),t.push("distinct"),n.push(`distinct_${r}`)):$W(oW(i))}}}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:o,as:a}=this.getCardinalityAggregateForChild(),s=[];for(const e of oI){const t=this.facet[e];if(t){s.push(uG(t));const{bin:l,sort:u}=t;if(Oq(l)&&s.push(uG(t,{binSuffix:"end"})),zY(u)){const{field:e,op:s=jY}=u,l=I0(t,u);n&&i?(r.push(l),o.push("max"),a.push(l)):(r.push(e),o.push(s),a.push(l))}else if(xe(u)){const n=sZ(t,e);r.push(n),o.push("max"),a.push(n)}}}const l=!!n&&!!i;return Object.assign({name:e,data:t,groupby:s},l||r.length>0?{aggregate:Object.assign(Object.assign({},l?{cross:l}:{}),r.length?{fields:r,ops:o,as:a}:{})}:{})}facetSortFields(e){const{facet:t}=this,n=t[e];return n?zY(n.sort)?[I0(n,n.sort,{expr:"datum"})]:xe(n.sort)?[sZ(n,e,{expr:"datum"})]:[uG(n,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:t}=this,n=t[e];if(n){const{sort:e}=n;return[(zY(e)?e.order:!xe(e)&&e)||"ascending"]}return[]}assembleLabelTitle(){var e;const{facet:t,config:n}=this;if(t.facet)return vZ(t.facet,"facet",n);const i={row:["top","bottom"],column:["left","right"]};for(const r of fZ)if(t[r]){const o=uZ("labelOrient",null===(e=t[r])||void 0===e?void 0:e.header,n,r);if(i[r].includes(o))return vZ(t[r],r,n)}}assembleMarks(){const{child:e}=this,t=function(e){const t=[],n=N0(t);for(const t of e.children)n(t,{source:e.name,name:null,transform:[]});return 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:oI.map((e=>this.facetSortFields(e))).flat(),order:oI.map((e=>this.facetSortOrder(e))).flat()}}),t.length>0?{data:t}:{}),n?{encode:{update:n}}:{}),e.assembleGroup(function(e,t){if(e.component.selection&&YB(e.component.selection).length){const n=kt(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:kz("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return EJ(t)}(this,[])))]}getMapping(){return this.facet}}function W0(e,t){var n,i,r,o;for(const a of t){const t=a.data;if(e.name&&a.hasName()&&e.name!==a.dataName)continue;const s=null===(n=e.format)||void 0===n?void 0:n.mesh,l=null===(i=t.format)||void 0===i?void 0:i.feature;if(s&&l)continue;const u=null===(r=e.format)||void 0===r?void 0:r.feature;if((u||l)&&u!==l)continue;const c=null===(o=t.format)||void 0===o?void 0:o.mesh;if(!s&&!c||s===c)if(pJ(e)&&pJ(t)){if(DB(e.values,t.values))return a}else if(hJ(e)&&hJ(t)){if(e.url===t.url)return a}else if(gJ(e)&&e.name===a.dataName)return a}return null}function H0(e){var t,n,i,r,o,a,s,l,u,c;let f=function(e,t){if(e.data||!e.parent){if(null===e.data){const e=new uK({values:[]});return t.push(e),e}const n=W0(e.data,t);if(n)return mJ(e.data)||(n.data.format=PB({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const n=new uK(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:d,outputNodeRefCounts:h}=e.component.data,p=e.data,g=p&&(mJ(p)||hJ(p)||pJ(p))||!e.parent?new dJ:e.parent.component.data.ancestorParse.clone();mJ(p)?(yJ(p)?f=new lK(f,p.sequence):bJ(p)&&(f=new sK(f,p.graticule)),g.parseNothing=!0):null===(null===(t=null==p?void 0:p.format)||void 0===t?void 0:t.parse)&&(g.parseNothing=!0),f=null!==(n=oK.makeExplicit(f,e,g))&&void 0!==n?n:f,f=new aK(f);const m=e.parent&&b0(e.parent);(m0(e)||y0(e))&&m&&(f=null!==(i=eK.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,l;if(LX(a))l=e=new aZ(e,a),s="derived";else if(AX(a)){const r=rK(a);l=e=null!==(i=oK.makeWithAncestors(e,{},r,n))&&void 0!==i?i:e,e=new WQ(e,t,a.filter)}else if(BX(a))l=e=eK.makeFromTransform(e,a,t),s="number";else if(IX(a))s="date",void 0===n.getWithExplicit(a.field).value&&(e=new oK(e,{[a.field]:s}),n.set(a.field,s,!1)),l=e=MJ.makeFromTransform(e,a);else if(qX(a))l=e=tK.makeFromTransform(e,a),s="number",LQ(t)&&(e=new aK(e));else if(MX(a))l=e=C0.make(e,t,a,o++),s="derived";else if(zX(a))l=e=new MK(e,a),s="number";else if(PX(a))l=e=new AK(e,a),s="number";else if(WX(a))l=e=SK.makeFromTransform(e,a),s="derived";else if(HX(a))l=e=new E0(e,a),s="derived";else if(RX(a))l=e=new k0(e,a),s="derived";else if(CX(a))l=e=new $0(e,a),s="derived";else if(NX(a))e=new T0(e,a);else if(UX(a))l=e=S0.makeFromTransform(e,a),s="derived";else if(FX(a))l=e=new _0(e,a),s="derived";else if(jX(a))l=e=new F0(e,a),s="derived";else if($X(a))l=e=new j0(e,a),s="derived";else{if(!TX(a)){$W(`Ignoring an invalid transform: ${FB(a)}.`);continue}l=e=new M0(e,a),s="derived"}if(l&&void 0!==s)for(const e of null!==(r=l.producedFields())&&void 0!==r?r:[])n.set(e,s,!1)}return e}(f,e,g));const y=function(e){const t={};if(m0(e)&&e.component.selection)for(const n of YB(e.component.selection)){const i=e.component.selection[n];for(const e of i.project.items)!e.channel&&aU(e.field)>1&&(t[e.field]="flatten")}return t}(e),v=function(e){const t={};function n(e){var n;EG(e)?t[e.field]="date":"quantitative"===e.type&&mt(n=e.aggregate)&&TB(["min","max"],n)?t[e.field]="number":aU(e.field)>1?e.field in t||(t[e.field]="flatten"):rG(e)&&zY(e.sort)&&aU(e.sort.field)>1&&(e.sort.field in t||(t[e.sort.field]="flatten"))}if((m0(e)||y0(e))&&e.forEachFieldDef(((t,i)=>{if(nG(t))n(t);else{const r=bI(i),o=e.fieldDef(r);n(Object.assign(Object.assign({},t),{type:o.type}))}})),m0(e)){const{mark:n,markDef:i,encoding:r}=e;if(oY(n)&&!e.encoding.order){const e=r["horizontal"===i.orient?"y":"x"];JY(e)&&"quantitative"===e.type&&!(e.field in t)&&(t[e.field]="number")}}return t}(e);f=null!==(r=oK.makeWithAncestors(f,{},Object.assign(Object.assign({},y),v),g))&&void 0!==r?r:f,m0(e)&&(f=D0.parseAll(f,e),f=A0.parseAll(f,e)),(m0(e)||y0(e))&&(m||(f=null!==(o=eK.makeFromEncoding(f,e))&&void 0!==o?o:f),f=null!==(a=MJ.makeFromEncoding(f,e))&&void 0!==a?a:f,f=aZ.parseAllForSortIndex(f,e));const b=e.getDataName(xJ.Raw),x=new AJ(f,b,xJ.Raw,h);if(d[b]=x,f=x,m0(e)){const t=tK.makeFromEncoding(f,e);t&&(f=t,LQ(e)&&(f=new aK(f))),f=null!==(s=S0.makeFromEncoding(f,e))&&void 0!==s?s:f,f=null!==(l=SK.makeFromEncoding(f,e))&&void 0!==l?l:f}m0(e)&&(f=null!==(u=O0.make(f,e))&&void 0!==u?u:f);const w=e.getDataName(xJ.Main),_=new AJ(f,w,xJ.Main,h);d[w]=_,f=_,m0(e)&&function(e,t){var n;for(const[i,r]of VB(null!==(n=e.component.selection)&&void 0!==n?n:{})){const n=e.getName(`lookup_${i}`);e.component.data.outputNodes[n]=r.materialized=new AJ(new WQ(t,e,{param:i}),n,xJ.Lookup,e.component.data.outputNodeRefCounts)}}(e,_);let O=null;if(y0(e)){const t=e.getName("facet");f=null!==(c=function(e,t){const{row:n,column:i}=t;if(n&&i){let t=null;for(const r of[n,i])if(zY(r.sort)){const{field:n,op:i=jY}=r.sort;e=t=new AK(e,{joinaggregate:[{op:i,field:n,as:I0(r,r.sort,{forAs:!0})}],groupby:[uG(r)]})}return t}return null}(f,e.facet))&&void 0!==c?c:f,O=new nK(f,e,t,_.getSource()),d[t]=O}return Object.assign(Object.assign({},e.component.data),{outputNodes:d,outputNodeRefCounts:h,raw:x,main:_,facetRoot:O,ancestorParse:g})}class Y0 extends x0{constructor(e,t,n,i){var r,o,a,s;super(e,"concat",t,n,i,e.resolve),"shared"!==(null===(o=null===(r=e.resolve)||void 0===r?void 0:r.axis)||void 0===o?void 0:o.x)&&"shared"!==(null===(s=null===(a=e.resolve)||void 0===a?void 0:a.axis)||void 0===s?void 0:s.y)||$W("Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415)."),this.children=this.getChildren(e).map(((e,t)=>c1(e,this,this.getName(`concat_${t}`),void 0,i)))}parseData(){this.component.data=H0(this);for(const e of this.children)e.parseData()}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const t of YB(e.component.selection))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()}getChildren(e){return NV(e)?e.vconcat:zV(e)?e.hconcat:e.concat}parseLayoutSize(){!function(e){L0(e);const t=1===e.layout.columns?"width":"childWidth",n=void 0===e.layout.columns?"height":"childHeight";B0(e,t),B0(e,n)}(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(e){return this.children.reduce(((e,t)=>t.assembleSelectionTopLevelSignals(e)),e)}assembleSignals(){return this.children.forEach((e=>e.assembleSignals())),[]}assembleLayoutSignals(){const e=OZ(this);for(const t of this.children)e.push(...t.assembleLayoutSignals());return e}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())}))}assembleGroupStyle(){}assembleDefaultLayout(){const e=this.layout.columns;return Object.assign(Object.assign({},null!=e?{columns:e}:{}),{bounds:"full",align:"each"})}}const G0=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},$G),{labelExpr:1,encode:1}),V0=YB(G0);class X0 extends aJ{constructor(e={},t={},n=!1){super(),this.explicit=e,this.implicit=t,this.mainExtracted=n}clone(){return new X0(AB(this.explicit),AB(this.implicit),this.mainExtracted)}hasAxisPart(e){return!("axis"!==e&&("grid"===e||"title"===e?!this.get(e):(t=this.get(e),!1===t||null===t)));var t}hasOrientSignalRef(){return jq(this.explicit.orient)}}const J0={bottom:"top",top:"bottom",left:"right",right:"left"};function Q0(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{switch(n){case"title":return eW(e,t);case"gridScale":return{explicit:e.explicit,value:sU(e.value,t.value)}}return cJ(e,t,n,"axis")}));e.setWithExplicit(n,i)}return e}function K0(e,t,n,i,r){if("disable"===t)return void 0!==n;switch(n=n||{},t){case"titleAngle":case"labelAngle":return e===(jq(n.labelAngle)?n.labelAngle:hU(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===oZ(i,r))return!0}return e===n[t]}const e1=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function t1(e,t){var n,i,r;let o=t.axis(e);const a=new X0,s=bG(t.encoding[e]),{mark:l,config:u}=t,c=(null==o?void 0:o.orient)||(null===(n=u["x"===e?"axisX":"axisY"])||void 0===n?void 0:n.orient)||(null===(i=u.axis)||void 0===i?void 0:i.orient)||function(e){return"x"===e?"bottom":"left"}(e),f=t.getScaleComponent(e).get("type"),d=function(e,t,n,i){const r="band"===t?["axisDiscrete","axisBand"]:"point"===t?["axisDiscrete","axisPoint"]:kH(t)?["axisQuantitative"]:"time"===t||"utc"===t?["axisTemporal"]:[],o="x"===e?"axisX":"axisY",a=jq(n)?"axisOrient":`axis${KB(n)}`,s=[...r,...r.map((e=>o+e.substr(4)))],l=["axis",a,o];return{vlOnlyAxisConfig:ZQ(s,i,e,n),vgAxisConfig:ZQ(l,i,e,n),axisConfigStyle:KQ([...l,...s],i)}}(e,f,c,t.config),h=void 0!==o?!o:eZ("disable",u.style,null==o?void 0:o.style,d).configValue;if(a.set("disable",h,void 0!==o),h)return a;o=o||{};const p=function(e,t,n,i,r){const o=null==t?void 0:t.labelAngle;if(void 0!==o)return jq(o)?o:hU(o);{const{configValue:o}=eZ("labelAngle",i,null==t?void 0:t.style,r);return void 0!==o?hU(o):n!==bU||!TB([dH,cH],e.type)||JY(e)&&e.timeUnit?void 0:270}}(s,o,e,u.style,d),g={fieldOrDatumDef:s,axis:o,channel:e,model:t,scaleType:f,orient:c,labelAngle:p,mark:l,config:u};for(const n of V0){const i=n in tZ?tZ[n](g):NG(n)?o[n]:void 0,r=void 0!==i,s=K0(i,n,o,t,e);if(r&&s)a.set(n,i,s);else{const{configValue:e,configFrom:t}=NG(n)&&"values"!==n?eZ(n,u.style,o.style,d):{},l=void 0!==e;r&&!l?a.set(n,i,s):("vgAxisConfig"!==t||e1.has(n)&&l||CG(e)||jq(e))&&a.set(n,e,!1)}}const m=null!==(r=o.encoding)&&void 0!==r?r:{},y=FG.reduce(((n,i)=>{var r;if(!a.hasAxisPart(i))return n;const o=SZ(null!==(r=m[i])&&void 0!==r?r:{},t),s="labels"===i?function(e,t,n){var i;const{encoding:r,config:o}=e,a=null!==(i=bG(r[t]))&&void 0!==i?i:bG(r[wI(t)]),s=e.axis(t)||{},{format:l,formatType:u}=s;if(wY(u))return Object.assign({text:EY({fieldOrDatumDef:a,field:"datum.value",format:l,formatType:u,config:o})},n);if(void 0===l&&void 0===u&&o.customFormatTypes){if("quantitative"===QY(a)){if(oG(a)&&"normalize"===a.stack&&o.normalizedNumberFormatType)return Object.assign({text:EY({fieldOrDatumDef:a,field:"datum.value",format:o.normalizedNumberFormat,formatType:o.normalizedNumberFormatType,config:o})},n);if(o.numberFormatType)return Object.assign({text:EY({fieldOrDatumDef:a,field:"datum.value",format:o.numberFormat,formatType:o.numberFormatType,config:o})},n)}if("temporal"===QY(a)&&o.timeFormatType&&JY(a)&&!a.timeUnit)return Object.assign({text:EY({fieldOrDatumDef:a,field:"datum.value",format:o.timeFormat,formatType:o.timeFormatType,config:o})},n)}return n}(t,e,o):o;return void 0===s||HB(s)||(n[i]={update:s}),n}),{});return HB(y)||a.set("encode",y,!!o.encoding||void 0!==o.labelAngle),a}function n1(e,t){const{config:n}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},hQ(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),eQ("x",e,{defaultPos:"mid"})),eQ("y",e,{defaultPos:"mid"})),QJ("size",e)),QJ("angle",e)),function(e,t,n){return n?{shape:{value:n}}:QJ("shape",e)}(e,0,t))}function i1(e){var t;const{config:n,markDef:i}=e,{orient:r}=i,o="horizontal"===r?"width":"height",a=e.getScaleComponent("horizontal"===r?"x":"y"),s=null!==(t=Gq("size",i,n,{vgChannel:o}))&&void 0!==t?t:n.tick.bandSize;if(void 0!==s)return s;{const e=a?a.get("range"):void 0;return e&&$q(e)&&pt(e.step)?3*e.step/4:3*IV(n.view,o)/4}}const r1={arc:{vgMark:"arc",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},hQ(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),eQ("x",e,{defaultPos:"mid"})),eQ("y",e,{defaultPos:"mid"})),lQ(e,"radius")),lQ(e,"theta"))},area:{vgMark:"area",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign({},hQ(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),oQ("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"horizontal"===e.markDef.orient})),oQ("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"vertical"===e.markDef.orient})),gQ(e))},bar:{vgMark:"rect",encodeEntry:e=>Object.assign(Object.assign(Object.assign({},hQ(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),lQ(e,"x")),lQ(e,"y"))},circle:{vgMark:"symbol",encodeEntry:e=>n1(e,"circle")},geoshape:{vgMark:"shape",encodeEntry:e=>Object.assign({},hQ(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[Object.assign({type:"geoshape",projection:e.projectionName()},n&&JY(n)&&n.type===hH?{field:uG(n,{expr:"datum"})}:{})]}},image:{vgMark:"image",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign({},hQ(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),lQ(e,"x")),lQ(e,"y")),YJ(e,"url"))},line:{vgMark:"line",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},hQ(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),eQ("x",e,{defaultPos:"mid"})),eQ("y",e,{defaultPos:"mid"})),QJ("size",e,{vgChannel:"strokeWidth"})),gQ(e))},point:{vgMark:"symbol",encodeEntry:e=>n1(e)},rect:{vgMark:"rect",encodeEntry:e=>Object.assign(Object.assign(Object.assign({},hQ(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),lQ(e,"x")),lQ(e,"y"))},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({},hQ(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),oQ("x",e,{defaultPos:"horizontal"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"vertical"!==n})),oQ("y",e,{defaultPos:"vertical"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"horizontal"!==n})),QJ("size",e,{vgChannel:"strokeWidth"})):{}}},square:{vgMark:"symbol",encodeEntry:e=>n1(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(Object.assign(Object.assign(Object.assign({},hQ(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),eQ("x",e,{defaultPos:"mid"})),eQ("y",e,{defaultPos:"mid"})),YJ(e)),QJ("size",e,{vgChannel:"fontSize"})),QJ("angle",e)),mQ("align",function(e,t,n){if(void 0===Gq("align",e,n))return"center"}(e.markDef,0,t))),mQ("baseline",function(e,t,n){if(void 0===Gq("baseline",e,n))return"middle"}(e.markDef,0,t))),eQ("radius",e,{defaultPos:null})),eQ("theta",e,{defaultPos:null}))}},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({},hQ(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),eQ("x",e,{defaultPos:"mid",vgChannel:"xc"})),eQ("y",e,{defaultPos:"mid",vgChannel:"yc"})),QJ("size",e,{defaultValue:i1(e),vgChannel:r})),{[o]:Iq(Gq("thickness",n,t))})}},trail:{vgMark:"trail",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},hQ(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),eQ("x",e,{defaultPos:"mid"})),eQ("y",e,{defaultPos:"mid"})),QJ("size",e)),gQ(e))}};const o1="faceted_path_",a1="stack_group_";function s1(e,t={fromPrefix:""}){const{mark:n,markDef:i,encoding:r,config:o}=e,a=sU(i.clip,function(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return!(!(null==t?void 0:t.get("selectionExtent"))&&!(null==n?void 0:n.get("selectionExtent")))||void 0}(e),function(e){const t=e.component.projection;return!(!t||t.isFit)||void 0}(e)),s=Yq(i),l=r.key,u=function(e){var t;const{encoding:n,stack:i,mark:r,markDef:o,config:a}=e,s=n.order;if(!(!xe(s)&&iG(s)&&$B(s.value)||!s&&$B(Gq("order",o,a)))){if((xe(s)||JY(s))&&!i)return Qq(s,{expr:"datum"});if(oY(r)){const i="horizontal"===o.orient?"y":"x",r=n[i];if(JY(r)){const n=r.sort;return xe(n)?{field:uG(r,{prefix:i,suffix:"sort_index",expr:"datum"})}:zY(n)?{field:uG({aggregate:IG(e.encoding)?n.op:void 0,field:n.field},{expr:"datum"})}:NY(n)?{field:uG(e.fieldDef(n.encoding),{expr:"datum"}),order:n.order}:null===n?void 0:{field:uG(r,{binSuffix:(null===(t=e.stack)||void 0===t?void 0:t.impute)?"mid":void 0,expr:"datum"})}}}}}(e),c=function(e){if(!e.component.selection)return null;const t=YB(e.component.selection).length;let n=t,i=e.parent;for(;i&&0===n;)n=YB(i.component.selection).length,i=i.parent;return n?{interactive:t>0||!!e.encoding.tooltip}:null}(e),f=Gq("aria",i,o),d=r1[n].postEncodingTransform?r1[n].postEncodingTransform(e):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:e.getName("marks"),type:r1[n].vgMark},a?{clip:!0}:{}),s?{style:s}:{}),l?{key:l.field}:{}),u?{sort:u}:{}),c||{}),!1===f?{aria:f}:{}),{from:{data:t.fromPrefix+e.requestDataName(xJ.Main)},encode:{update:r1[n].encodeEntry(e)}}),d?{transform:d}:{})]}class l1 extends w0{constructor(e,t,n,i={},r){var o;super(e,"unit",t,n,r,void 0,LV(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const a=lY(e.mark)?Object.assign({},e.mark):{type:e.mark},s=a.type;void 0===a.filled&&(a.filled=function(e,t,{graticule:n}){if(n)return!1;const i=Vq("filled",e,t),r=e.type;return sU(i,r!==JH&&r!==XH&&r!==ZH)}(a,r,{graticule:e.data&&bJ(e.data)}));const l=this.encoding=function(e,t,n,i){const r={};for(const t of YB(e))mI(t)||$W(`${o=t}-encoding is dropped as ${o} is not a valid encoding channel.`);var o,a;for(let o of EI){if(!e[o])continue;const s=e[o];if(XI(o)){const e=kI(o),t=r[e];if(JY(t)){if(("quantitative"===(a=t.type)||"temporal"===a)&&JY(s)){$W(dW(e));continue}}else o=e,$W(hW(e))}if("angle"!==o||"arc"!==t||e.theta||($W("Arc marks uses theta channel rather than angle, replacing angle with theta."),o=AU),WG(e,o,t)){if(o===PU&&"line"===t){const t=vG(e[o]);if(null==t?void 0:t.aggregate){$W("Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.");continue}}if(o===$U&&(n?"fill"in e:"stroke"in e))$W(gW("encoding",{fill:"fill"in e,stroke:"stroke"in e}));else if(o===YU||o===HU&&!xe(s)&&!iG(s)||o===VU&&xe(s))s&&(r[o]=He(s).reduce(((e,t)=>(JY(t)?e.push(_G(t,o)):$W(mW(t,o)),e)),[]));else{if(o===VU&&null===s)r[o]=null;else if(!(JY(s)||ZY(s)||iG(s)||GY(s)||jq(s))){$W(mW(s,o));continue}r[o]=xG(s,o,i)}}else $W(yW(o,t))}return r}(e.encoding||{},s,a.filled,r);this.markDef=function(e,t,n){const i=Mq(e),r=Gq("orient",i,n);if(i.orient=function(e,t,n){switch(e){case JH:case nY:case iY:case KH:case QH:case VH:return}const{x:i,y:r,x2:o,y2:a}=t;switch(e){case GH:if(JY(i)&&(kq(i.bin)||JY(r)&&r.aggregate&&!i.aggregate))return"vertical";if(JY(r)&&(kq(r.bin)||JY(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(a||o){if(n)return n;if(!o)return(JY(i)&&i.type===uH&&!Oq(i.bin)||eG(i))&&JY(r)&&kq(r.bin)?"horizontal":"vertical";if(!a)return(JY(r)&&r.type===uH&&!Oq(r.bin)||eG(r))&&JY(i)&&kq(i.bin)?"vertical":"horizontal"}case ZH:if(o&&(!JY(i)||!kq(i.bin))&&a&&(!JY(r)||!kq(r.bin)))return;case YH:if(a)return JY(r)&&kq(r.bin)?"horizontal":"vertical";if(o)return JY(i)&&kq(i.bin)?"vertical":"horizontal";if(e===ZH){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case XH:case eY:{const t=KY(i),o=KY(r);if(n)return n;if(t&&!o)return"tick"!==e?"horizontal":"vertical";if(!t&&o)return"tick"!==e?"vertical":"horizontal";if(t&&o){const t=i,n=r,o=t.type===fH,a=n.type===fH;return o&&!a?"tick"!==e?"vertical":"horizontal":!o&&a?"tick"!==e?"horizontal":"vertical":!t.aggregate&&n.aggregate?"tick"!==e?"vertical":"horizontal":t.aggregate&&!n.aggregate&&"tick"!==e?"horizontal":"vertical"}return}}return"vertical"}(i.type,t,r),void 0!==r&&r!==i.orient&&$W(`Specified orient "${i.orient}" overridden with "${r}".`),"bar"===i.type&&i.orient){const e=Gq("cornerRadiusEnd",i,n);if(void 0!==e){const n="horizontal"===i.orient&&t.x2||"vertical"===i.orient&&t.y2?["cornerRadius"]:hY[i.orient];for(const t of n)i[t]=e;void 0!==i.cornerRadiusEnd&&delete i.cornerRadiusEnd}}return void 0===Gq("opacity",i,n)&&(i.opacity=function(e,t){if(TB([JH,eY,nY,iY],e)&&!IG(t))return.7}(i.type,t)),void 0===Gq("cursor",i,n)&&(i.cursor=function(e,t,n){return t.href||e.href||Gq("href",e,n)?"pointer":e.cursor}(i,t,n)),i}(a,l,r),this.size=function({encoding:e,size:t}){for(const n of qI){const i=_I(n);RV(t[i])&&KY(e[n])&&(delete t[i],$W(DW(i)))}return t}({encoding:l,size:LV(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i}),this.stack=uX(s,l),this.specifiedScales=this.initScales(s,l),this.specifiedAxes=this.initAxes(l),this.specifiedLegends=this.initLegends(l),this.specifiedProjection=e.projection,this.selection=(null!==(o=e.params)&&void 0!==o?o:[]).filter((e=>FV(e)))}get hasProjection(){const{encoding:e}=this,t=this.mark===rY,n=e&&tI.some((t=>tG(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 sq.reduce(((e,n)=>{var i;const r=bG(t[n]);return r&&(e[n]=this.initScale(null!==(i=r.scale)&&void 0!==i?i:{})),e}),{})}initScale(e){const{domain:t,range:n}=e,i=Mq(e);return xe(t)&&(i.domain=t.map(Bq)),xe(n)&&(i.range=n.map(Bq)),i}initAxes(e){return qI.reduce(((t,n)=>{const i=e[n];if(tG(i)||n===bU&&tG(e.x2)||n===xU&&tG(e.y2)){const e=tG(i)?i.axis:void 0;t[n]=e?this.initAxis(Object.assign({},e)):e}return t}),{})}initAxis(e){const t=YB(e),n={};for(const i of t){const t=e[i];n[i]=CG(t)?Lq(t):Bq(t)}return n}initLegends(e){return oq.reduce(((t,n)=>{const i=bG(e[n]);if(i&&function(e){switch(e){case $U:case TU:case NU:case PU:case zU:case LU:case IU:case qU:return!0;case BU:case UU:case RU:return!1}}(n)){const e=i.legend;t[n]=e?Mq(e):e}return t}),{})}parseData(){this.component.data=H0(this)}parseLayoutSize(){!function(e){const{size:t,component:n}=e;for(const i of qI){const r=_I(i);if(t[r]){const e=t[r];n.layoutSize.set(r,RV(e)?"step":e,!0)}else{const t=U0(e,r);n.layoutSize.set(r,t,!1)}}}(this)}parseSelections(){this.component.selection=function(e,t){var n;const i={},r=e.config.selection;if(!t||!t.length)return i;for(const o of t){const t=JB(o.name),a=o.select,s=mt(a)?a:a.type,l=we(a)?AB(a):{type:s},u=r[s];for(const e in u)"fields"!==e&&"encodings"!==e&&("mark"===e&&(l[e]=Object.assign(Object.assign({},u[e]),l[e])),void 0!==l[e]&&!0!==l[e]||(l[e]=null!==(n=u[e])&&void 0!==n?n:l[e]));const c=i[t]=Object.assign(Object.assign({},l),{name:t,type:s,init:o.value,bind:o.bind,events:mt(l.on)?kz(l.on,"scope"):He(AB(l.on))});for(const t of PQ)t.defined(c)&&t.parse&&t.parse(e,c,o)}return i}(this,this.selection)}parseMarkGroup(){this.component.mark=function(e){if(TB([XH,YH,tY],e.mark)){const t=GG(e.mark,e.encoding);if(t.length>0)return function(e,t){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:o1+e.requestDataName(xJ.Main),data:e.requestDataName(xJ.Main),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:s1(e,{fromPrefix:o1})}]}(e,t)}else if(e.mark===GH){const t=Pq.some((t=>Gq(t,e.markDef,e.config)));if(e.stack&&!e.fieldDef("size")&&t)return function(e){var t;const[n]=s1(e,{fromPrefix:a1}),i=e.scaleName(e.stack.fieldChannel),r=(t={})=>e.vgField(e.stack.fieldChannel,t),o=(e,t)=>`${e}(${[r({prefix:"min",suffix:"start",expr:t}),r({prefix:"max",suffix:"start",expr:t}),r({prefix:"min",suffix:"end",expr:t}),r({prefix:"max",suffix:"end",expr:t})].map((e=>`scale('${i}',${e})`)).join(",")})`;let a,s;"x"===e.stack.fieldChannel?(a=Object.assign(Object.assign({},MB(n.encode.update,["y","yc","y2","height",...Pq])),{x:{signal:o("min","datum")},x2:{signal:o("max","datum")},clip:{value:!0}}),s={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},n.encode.update=Object.assign(Object.assign({},CB(n.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(a=Object.assign(Object.assign({},MB(n.encode.update,["x","xc","x2","width"])),{y:{signal:o("min","datum")},y2:{signal:o("max","datum")},clip:{value:!0}}),s={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},n.encode.update=Object.assign(Object.assign({},CB(n.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const t of Pq){const i=Vq(t,e.markDef,e.config);n.encode.update[t]?(a[t]=n.encode.update[t],delete n.encode.update[t]):i&&(a[t]=Iq(i)),i&&(n.encode.update[t]={value:0})}const l=[];if((null===(t=e.stack.groupbyChannels)||void 0===t?void 0:t.length)>0)for(const t of e.stack.groupbyChannels){const n=e.fieldDef(t),i=uG(n);i&&l.push(i),((null==n?void 0:n.bin)||(null==n?void 0:n.timeUnit))&&l.push(uG(n,{binSuffix:"end"}))}return a=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce(((t,i)=>{if(n.encode.update[i])return Object.assign(Object.assign({},t),{[i]:n.encode.update[i]});{const n=Vq(i,e.markDef,e.config);return void 0!==n?Object.assign(Object.assign({},t),{[i]:Iq(n)}):t}}),a),a.stroke&&(a.strokeForeground={value:!0},a.strokeOffset={value:0}),[{type:"group",from:{facet:{data:e.requestDataName(xJ.Main),name:a1+e.requestDataName(xJ.Main),groupby:l,aggregate:{fields:[r({suffix:"start"}),r({suffix:"start"}),r({suffix:"end"}),r({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:a},marks:[{type:"group",encode:{update:s},marks:[n]}]}]}(e)}return s1(e)}(this)}parseAxesAndHeaders(){var e;this.component.axes=(e=this,qI.reduce(((t,n)=>(e.component.scales[n]&&(t[n]=[t1(n,e)]),t)),{}))}assembleSelectionTopLevelSignals(e){return function(e,t){var n;let i=!1;for(const r of GB(null!==(n=e.component.selection)&&void 0!==n?n:{})){const n=r.name,o=kt(n+$Q);if(0===t.filter((e=>e.name===n)).length){const e="global"===r.resolve?"union":r.resolve,n="point"===r.type?", true, true)":")";t.push({name:r.name,update:`${zQ}(${o}, ${kt(e)}${n}`})}i=!0;for(const n of PQ)n.defined(r)&&n.topLevelSignals&&(t=n.topLevelSignals(e,r,t))}if(i){0===t.filter((e=>"unit"===e.name)).length&&t.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]})}return EJ(t)}(this,e)}assembleSignals(){return[...QQ(this),...OJ(this,[])]}assembleSelectionData(e){return function(e,t){var n;const i=[...t],r=RQ(e,{escape:!1});for(const t of GB(null!==(n=e.component.selection)&&void 0!==n?n:{})){const e={name:t.name+$Q};if(t.project.hasSelectionId&&(e.transform=[{type:"collect",sort:{field:AV}}]),t.init){const n=t.project.items.map((e=>{const{signals:t}=e;return wJ(e,["signals"])}));e.values=t.project.hasSelectionId?t.init.map((e=>({unit:r,[AV]:_J(e,!1)[0]}))):t.init.map((e=>({unit:r,fields:n,values:_J(e,!1)})))}i.filter((e=>e.name===t.name+$Q)).length||i.push(e)}return i}(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return OZ(this)}assembleMarks(){var e;let t=null!==(e=this.component.mark)&&void 0!==e?e:[];return this.parent&&b0(this.parent)||(t=kJ(this,t)),t.map(this.correctDataNames)}assembleGroupStyle(){const{style:e}=this.view||{};return void 0!==e?e:this.encoding.x||this.encoding.y?"cell":void 0}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return LG(this.encoding,e)}fieldDef(e){return vG(this.encoding[e])}typedFieldDef(e){const t=this.fieldDef(e);return nG(t)?t:null}}class u1 extends x0{constructor(e,t,n,i,r){super(e,"layer",t,n,r,e.resolve,e.view);const o=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(nX(e))return new u1(e,this,this.getName(`layer_${t}`),o,r);if(PG(e))return new l1(e,this,this.getName(`layer_${t}`),o,r);throw new Error(tW(e))}))}parseData(){this.component.data=H0(this);for(const e of this.children)e.parseData()}parseLayoutSize(){L0(this),B0(this,"width"),B0(this,"height")}parseSelections(){this.component.selection={};for(const e of this.children){e.parseSelections();for(const t of YB(e.component.selection))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 YB(t.component.axes))i.axis[r]=CZ(e.component.resolve,r),"shared"===i.axis[r]&&(n[r]=Q0(n[r],t.component.axes[r]),n[r]||(i.axis[r]="independent",delete n[r]))}for(const o of qI){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(!jq(t)){if(r[t]>0&&!n){const n=J0[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())),QQ(this))}assembleLayoutSignals(){return this.children.reduce(((e,t)=>e.concat(t.assembleLayoutSignals())),OZ(this))}assembleSelectionData(e){return this.children.reduce(((e,t)=>t.assembleSelectionData(e)),e)}assembleGroupStyle(){const e=new Set;for(const t of this.children)for(const n of He(t.assembleGroupStyle()))e.add(n);const t=Array.from(e);return t.length>1?t:1===t.length?t[0]:void 0}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)m0(n)&&(t=kJ(n,t));return t}(this,this.children.flatMap((e=>e.assembleMarks())))}assembleLegends(){return this.children.reduce(((e,t)=>e.concat(t.assembleLegends())),YZ(this))}}function c1(e,t,n,i,r){if(BY(e))return new q0(e,t,n,r);if(nX(e))return new u1(e,t,n,i,r);if(PG(e))return new l1(e,t,n,i,r);if(function(e){return NV(e)||zV(e)||TV(e)}(e))return new Y0(e,t,n,r);throw new Error(tW(e))}function f1(e,t={}){var n;t.logger&&(n=t.logger,jW=n),t.fieldTitle&&hG(t.fieldTitle);try{const n=QV(Oe(t.config,e.config)),i=KX(e,n),r=c1(i,null,"",void 0,n);r.parse(),function(e,t){$K(e.sources);let n=0,i=0;for(let i=0;i<5&&NK(e,t,!0);i++)n++;e.sources.map(CK);for(let n=0;n<5&&NK(e,t,!1);n++)i++;$K(e.sources),5===Math.max(n,i)&&$W("Maximum optimization runs(5) reached.")}(r.component.data,r);const o=function(e,t,n={},i){const r=e.config?function(e){e=AB(e);for(const t of KV)delete e[t];if(e.axis)for(const t in e.axis)CG(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of bV)delete e.legend[t];if(e.mark){for(const t of cY)delete e.mark[t];e.mark.tooltip&&we(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat($V(e.params)),delete e.params);for(const t of ZV){for(const n of cY)delete e[t][n];const n=eX[t];if(n)for(const i of n)delete e[t][i];tX(e,t)}for(const t of YB(yV))delete e[t];!function(e){const{titleMarkConfig:t,subtitleMarkConfig:n,subtitle:i}=Cq(e.title);HB(t)||(e.style["group-title"]=Object.assign(Object.assign({},e.style["group-title"]),t)),HB(n)||(e.style["group-subtitle"]=Object.assign(Object.assign({},e.style["group-subtitle"]),n)),HB(i)?delete e.title:e.title=i}(e);for(const t in e)we(e[t])&&HB(e[t])&&delete e[t];return HB(e)?void 0:e}(e.config):void 0,o=[].concat(e.assembleSelectionData([]),function(e,t){var n,i;const r=[],o=N0(r);let a=0;for(const t of e.sources){t.hasName()||(t.dataName="source_"+a++);const e=t.assemble();o(t,e)}for(const e of r)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(),l=e.assembleGroupStyle(),u=e.assembleGroupEncodeEntry(!0);let c=e.assembleLayoutSignals();c=c.filter((e=>"width"!==e.name&&"height"!==e.name||void 0===e.value||(t[e.name]=+e.value,!1)));const{params:f}=t,d=function(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);r0?{projections:a}:{}),e.assembleGroup([...c,...e.assembleSelectionTopLevelSignals([]),...$V(f)])),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");if(void 0===t?(t={type:"pad"},i.hasAxisOrientSignalRef()&&(t.resize=!0)):mt(t)&&(t={type:t}),r&&o&&("fit"===(a=t.type)||"fit-x"===a||"fit-y"===a))if("step"===r&&"step"===o)$W(rW()),t.type="pad";else if("step"===r||"step"===o){const e="step"===r?"width":"height";$W(rW(GI(e)));const n="width"===e?"height":"width";t.type=function(e){return e?`fit-${GI(e)}`:"fit"}(n)}var a;return Object.assign(Object.assign(Object.assign({},1===YB(t).length&&t.type?"pad"===t.type?{}:{autosize:t.type}:{autosize:t}),oJ(n,!1)),oJ(e,!0))}(e,i.autosize,n,r),e.datasets,e.usermeta);return{spec:o,normalized:i}}finally{t.logger&&(jW=FW),t.fieldTitle&&hG(fG)}}const d1="5.6.1",h1=function(e){const[t,n]=/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(e).slice(1,3);return{library:t,version:n}};const p1="#fff",g1="#888",m1={background:"#333",view:{stroke:g1},title:{color:p1,subtitleColor:p1},style:{"guide-label":{fill:p1},"guide-title":{fill:p1}},axis:{domainColor:p1,gridColor:g1,tickColor:p1}},y1="#4572a7",v1={background:"#fff",arc:{fill:y1},area:{fill:y1},line:{stroke:y1,strokeWidth:2},path:{stroke:y1},rect:{fill:y1},shape:{stroke:y1},symbol:{fill:y1,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"]}},b1="#30a2da",x1="#cbcbcb",w1="#f0f0f0",_1="#333",O1={arc:{fill:b1},area:{fill:b1},axis:{domainColor:x1,grid:!0,gridColor:x1,gridWidth:1,labelColor:"#999",labelFontSize:10,titleColor:"#333",tickColor:x1,tickSize:10,titleFontSize:14,titlePadding:10,labelPadding:4},axisBand:{grid:!1},background:w1,group:{fill:w1},legend:{labelColor:_1,labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:_1,titleFontSize:14,titlePadding:10},line:{stroke:b1,strokeWidth:2},path:{stroke:b1,strokeWidth:.5},rect:{fill:b1},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:b1},bar:{binSpacing:2,fill:b1,stroke:null},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}},k1="#000",E1={group:{fill:"#e5e5e5"},arc:{fill:k1},area:{fill:k1},line:{stroke:k1},path:{stroke:k1},rect:{fill:k1},shape:{stroke:k1},symbol:{fill:k1,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"]}},D1="Benton Gothic, sans-serif",A1="#82c6df",S1="Benton Gothic Bold, sans-serif",M1="normal",C1={"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"]},F1={background:"#ffffff",title:{anchor:"start",color:"#000000",font:S1,fontSize:22,fontWeight:"normal"},arc:{fill:A1},area:{fill:A1},line:{stroke:A1,strokeWidth:2},path:{stroke:A1},rect:{fill:A1},shape:{stroke:A1},symbol:{fill:A1,size:30},axis:{labelFont:D1,labelFontSize:11.5,labelFontWeight:"normal",titleFont:S1,titleFontSize:13,titleFontWeight:M1},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:D1,labelFontSize:11.5,symbolType:"square",titleFont:S1,titleFontSize:13,titleFontWeight:M1},range:{category:C1["category-6"],diverging:C1["fireandice-6"],heatmap:C1["fire-7"],ordinal:C1["fire-7"],ramp:C1["fire-7"]}},j1="#ab5787",$1="#979797",T1={background:"#f9f9f9",arc:{fill:j1},area:{fill:j1},line:{stroke:j1},path:{stroke:j1},rect:{fill:j1},shape:{stroke:j1},symbol:{fill:j1,size:30},axis:{domainColor:$1,domainWidth:.5,gridWidth:.2,labelColor:$1,tickColor:$1,tickWidth:.2,titleColor:$1},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"]}},N1="#3e5c69",z1={background:"#fff",arc:{fill:N1},area:{fill:N1},line:{stroke:N1},path:{stroke:N1},rect:{fill:N1},shape:{stroke:N1},symbol:{fill:N1},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"]}},P1="#1696d2",R1="#000000",L1="Lato",B1="Lato",U1={"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"]},I1={background:"#FFFFFF",title:{anchor:"start",fontSize:18,font:L1},axisX:{domain:!0,domainColor:R1,domainWidth:1,grid:!1,labelFontSize:12,labelFont:B1,labelAngle:0,tickColor:R1,tickSize:5,titleFontSize:12,titlePadding:10,titleFont:L1},axisY:{domain:!1,domainWidth:1,grid:!0,gridColor:"#DEDDDD",gridWidth:1,labelFontSize:12,labelFont:B1,labelPadding:8,ticks:!1,titleFontSize:12,titlePadding:10,titleFont:L1,titleAngle:0,titleY:-10,titleX:18},legend:{labelFontSize:12,labelFont:B1,symbolSize:100,titleFontSize:12,titlePadding:10,titleFont:L1,orient:"right",offset:10},view:{stroke:"transparent"},range:{category:U1["six-groups-cat-1"],diverging:U1["diverging-colors"],heatmap:U1["diverging-colors"],ordinal:U1["six-groups-seq"],ramp:U1["shades-blue"]},area:{fill:P1},rect:{fill:P1},line:{color:P1,stroke:P1,strokeWidth:5},trail:{color:P1,stroke:P1,strokeWidth:0,size:1},path:{stroke:P1,strokeWidth:.5},point:{filled:!0},text:{font:"Lato",color:P1,fontSize:11,align:"center",fontWeight:400,size:11},style:{bar:{fill:P1,stroke:null}},arc:{fill:P1},shape:{stroke:P1},symbol:{fill:P1,size:30}},q1="#3366CC",W1="#ccc",H1="Arial, sans-serif",Y1={arc:{fill:q1},area:{fill:q1},path:{stroke:q1},rect:{fill:q1},shape:{stroke:q1},symbol:{stroke:q1},circle:{fill:q1},background:"#fff",padding:{top:10,right:10,bottom:10,left:10},style:{"guide-label":{font:H1,fontSize:12},"guide-title":{font:H1,fontSize:12},"group-title":{font:H1,fontSize:12}},title:{font:H1,fontSize:14,fontWeight:"bold",dy:-3,anchor:"start"},axis:{gridColor:W1,tickColor:W1,domain:!1,grid:!0},range:{category:["#4285F4","#DB4437","#F4B400","#0F9D58","#AB47BC","#00ACC1","#FF7043","#9E9D24","#5C6BC0","#F06292","#00796B","#C2185B"],heatmap:["#c6dafc","#5e97f6","#2a56c6"]}},G1=e=>e*(1/3+1),V1=G1(9),X1=G1(10),J1=G1(12),Q1="Segoe UI",Z1="wf_standard-font, helvetica, arial, sans-serif",K1="#252423",e2="#605E5C",t2="transparent",n2="#118DFF",i2="#DEEFFF",r2=[i2,n2],o2={view:{stroke:t2},background:t2,font:Q1,header:{titleFont:Z1,titleFontSize:J1,titleColor:K1,labelFont:Q1,labelFontSize:X1,labelColor:e2},axis:{ticks:!1,grid:!1,domain:!1,labelColor:e2,labelFontSize:V1,titleFont:Z1,titleColor:K1,titleFontSize:J1,titleFontWeight:"normal"},axisQuantitative:{tickCount:3,grid:!0,gridColor:"#C8C6C4",gridDash:[1,5],labelFlush:!1},axisBand:{tickExtra:!0},axisX:{labelPadding:5},axisY:{labelPadding:10},bar:{fill:n2},line:{stroke:n2,strokeWidth:3,strokeCap:"round",strokeJoin:"round"},text:{font:Q1,fontSize:V1,fill:e2},arc:{fill:n2},area:{fill:n2,line:!0,opacity:.6},path:{stroke:n2},rect:{fill:n2},point:{fill:n2,filled:!0,size:75},shape:{stroke:n2},symbol:{fill:n2,strokeWidth:1.5,size:50},legend:{titleFont:Q1,titleFontWeight:"bold",titleColor:e2,labelFont:Q1,labelFontSize:X1,labelColor:e2,symbolType:"circle",symbolSize:75},range:{category:[n2,"#12239E","#E66C37","#6B007B","#E044A7","#744EC2","#D9B300","#D64550"],diverging:r2,heatmap:r2,ordinal:[i2,"#c7e4ff","#b0d9ff","#9aceff","#83c3ff","#6cb9ff","#55aeff","#3fa3ff","#2898ff",n2]}},a2="2.12.1";function s2(e,t){return JSON.stringify(e,function(e){const t=[];return function(n,i){if("object"!=typeof i||null===i)return i;const r=t.indexOf(this)+1;return t.length=r,t.length>e?"[Object]":t.indexOf(i)>=0?"[Circular]":(t.push(i),i)}}(t))}const l2="vg-tooltip-element",u2={offsetX:10,offsetY:10,id:l2,styleId:"vega-tooltip-style",theme:"light",disableDefaultStyle:!1,sanitize:function(e){return String(e).replace(/&/g,"&").replace(/t(mt(e)?e:s2(e,n)))).join(", ")}]`;if(we(e)){let i="";const r=e,{title:o,image:a}=r,s=function(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${t(o)}`),a&&(i+=``);const l=Object.keys(s);if(l.length>0){i+="";for(const e of l){let r=s[e];void 0!==r&&(we(r)&&(r=s2(r,n)),i+=``)}i+="
${t(e)}:${t(r)}
"}return i||"{}"}return t(e)}};class c2{constructor(e){this.options=Object.assign(Object.assign({},u2),e);const t=this.options.id;if(this.el=null,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"#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}\n#vg-tooltip-element.visible {\n visibility: visible;\n}\n#vg-tooltip-element h2 {\n margin-top: 0;\n margin-bottom: 10px;\n font-size: 13px;\n}\n#vg-tooltip-element img {\n max-width: 200px;\n max-height: 200px;\n}\n#vg-tooltip-element table {\n border-spacing: 0;\n}\n#vg-tooltip-element table tr {\n border: none;\n}\n#vg-tooltip-element table tr td {\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n padding-bottom: 2px;\n}\n#vg-tooltip-element table tr td.key {\n color: #808080;\n max-width: 150px;\n text-align: right;\n padding-right: 4px;\n}\n#vg-tooltip-element table tr td.value {\n display: block;\n max-width: 300px;\n max-height: 7em;\n text-align: left;\n}\n#vg-tooltip-element.dark-theme {\n background-color: rgba(32, 32, 32, 0.9);\n border: 1px solid #f5f5f5;\n color: white;\n}\n#vg-tooltip-element.dark-theme td.key {\n color: #bfbfbf;\n}\n".toString().replace(l2,e)}(t);const n=document.head;n.childNodes.length>0?n.insertBefore(e,n.childNodes[0]):n.appendChild(e)}}tooltipHandler(e,t,n,i){var r;if(this.el=document.getElementById(this.options.id),this.el||(this.el=document.createElement("div"),this.el.setAttribute("id",this.options.id),this.el.classList.add("vg-tooltip"),(null!==(r=document.fullscreenElement)&&void 0!==r?r:document.body).appendChild(this.el)),null==i||""===i)return void this.el.classList.remove("visible",`${this.options.theme}-theme`);this.el.innerHTML=this.options.formatTooltip(i,this.options.sanitize,this.options.maxDepth),this.el.classList.add("visible",`${this.options.theme}-theme`);const{x:o,y:a}=function(e,t,n,i){let r=e.clientX+n;r+t.width>window.innerWidth&&(r=+e.clientX-n-t.width);let o=e.clientY+i;return o+t.height>window.innerHeight&&(o=+e.clientY-i-t.height),{x:r,y:o}}(t,this.el.getBoundingClientRect(),this.options.offsetX,this.options.offsetY);this.el.style.top=`${a}px`,this.el.style.left=`${o}px`}}function f2(e){return f2="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f2(e)}function d2(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==f2(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t);if("object"!==f2(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"===f2(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h2(e,t,n,i,r,o,a){try{var s=e[o](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(i,r)}function p2(e){return function(){var t=this,n=arguments;return new Promise((function(i,r){var o=e.apply(t,n);function a(e){h2(o,i,r,a,s,"next",e)}function s(e){h2(o,i,r,a,s,"throw",e)}a(void 0)}))}}var g2,m2=Object.prototype,y2=m2.hasOwnProperty,v2="function"==typeof Symbol?Symbol:{},b2=v2.iterator||"@@iterator",x2=v2.asyncIterator||"@@asyncIterator",w2=v2.toStringTag||"@@toStringTag";function _2(e,t,n,i){var r=t&&t.prototype instanceof M2?t:M2,o=Object.create(r.prototype),a=new I2(i||[]);return o._invoke=function(e,t,n){var i=k2;return function(r,o){if(i===D2)throw new Error("Generator is already running");if(i===A2){if("throw"===r)throw o;return W2()}for(n.method=r,n.arg=o;;){var a=n.delegate;if(a){var s=L2(a,n);if(s){if(s===S2)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===k2)throw i=A2,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=D2;var l=O2(e,t,n);if("normal"===l.type){if(i=n.done?A2:E2,l.arg===S2)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(i=A2,n.method="throw",n.arg=l.arg)}}}(e,n,a),o}function O2(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}var k2="suspendedStart",E2="suspendedYield",D2="executing",A2="completed",S2={};function M2(){}function C2(){}function F2(){}var j2={};j2[b2]=function(){return this};var $2=Object.getPrototypeOf,T2=$2&&$2($2(q2([])));T2&&T2!==m2&&y2.call(T2,b2)&&(j2=T2);var N2=F2.prototype=M2.prototype=Object.create(j2);function z2(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function P2(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===C2||"GeneratorFunction"===(t.displayName||t.name))}function R2(e,t){function n(i,r,o,a){var s=O2(e[i],e,r);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==typeof u&&y2.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,a)}),(function(e){n("throw",e,o,a)})):t.resolve(u).then((function(e){l.value=e,o(l)}),(function(e){return n("throw",e,o,a)}))}a(s.arg)}var i;this._invoke=function(e,r){function o(){return new t((function(t,i){n(e,r,t,i)}))}return i=i?i.then(o,o):o()}}function L2(e,t){var n=e.iterator[t.method];if(n===g2){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=g2,L2(e,t),"throw"===t.method))return S2;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return S2}var i=O2(n,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,S2;var r=i.arg;return r?r.done?(t[e.resultName]=r.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=g2),t.delegate=null,S2):r:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,S2)}function B2(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function U2(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I2(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(B2,this),this.reset(!0)}function q2(e){if(e){var t=e[b2];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,i=function t(){for(;++n=0;--i){var r=this.tryEntries[i],o=r.completion;if("root"===r.tryLoc)return n("end");if(r.tryLoc<=this.prev){var a=y2.call(r,"catchLoc"),s=y2.call(r,"finallyLoc");if(a&&s){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&y2.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),U2(n),S2}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var i=n.completion;if("throw"===i.type){var r=i.arg;U2(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:q2(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=g2),S2}};var H2,Y2,G2={wrap:_2,isGeneratorFunction:P2,AsyncIterator:R2,mark:function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,F2):(e.__proto__=F2,w2 in e||(e[w2]="GeneratorFunction")),e.prototype=Object.create(N2),e},awrap:function(e){return{__await:e}},async:function(e,t,n,i,r){void 0===r&&(r=Promise);var o=new R2(_2(e,t,n,i),r);return P2(t)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},keys:function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var i=t.pop();if(i in e)return n.value=i,n.done=!1,n}return n.done=!0,n}},values:q2},V2=X2;function X2(e){var t=this;if(t instanceof X2||(t=new X2),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,i=arguments.length;n1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");i=this.head.next,n=this.head.value}for(var r=0;null!==i;r++)n=e(n,i.value,r),i=i.next;return n},X2.prototype.reduceReverse=function(e,t){var n,i=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");i=this.tail.prev,n=this.tail.value}for(var r=this.length-1;null!==i;r--)n=e(n,i.value,r),i=i.prev;return n},X2.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},X2.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},X2.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new X2;if(tthis.length&&(t=this.length);for(var i=0,r=this.head;null!==r&&ithis.length&&(t=this.length);for(var i=this.length,r=this.tail;null!==r&&i>t;i--)r=r.prev;for(;null!==r&&i>e;i--,r=r.prev)n.push(r.value);return n},X2.prototype.splice=function(e,t){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var n=0,i=this.head;null!==i&&n1,d3=(e,t,n)=>{var i=e[u3].get(t);if(i){var r=i.value;if(h3(e,r)){if(g3(e,i),!e[r3])return}else n&&(e[c3]&&(i.value.now=Date.now()),e[l3].unshiftNode(i));return r.value}},h3=(e,t)=>{if(!t||!t.maxAge&&!e[o3])return!1;var n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[o3]&&n>e[o3]},p3=e=>{if(e[n3]>e[t3])for(var t=e[l3].tail;e[n3]>e[t3]&&null!==t;){var n=t.prev;g3(e,t),t=n}},g3=(e,t)=>{if(t){var n=t.value;e[a3]&&e[a3](n.key,n.value),e[n3]-=n.length,e[u3].delete(n.key),e[l3].removeNode(t)}};class m3{constructor(e,t,n,i,r){this.key=e,this.value=t,this.length=n,this.now=i,this.maxAge=r||0}}var y3=(e,t,n,i)=>{var r=n.value;h3(e,r)&&(g3(e,n),e[r3]||(r=void 0)),r&&t.call(i,r.value,r.key,e)},v3=["includePrerelease","loose","rtl"],b3=e=>e?"object"!=typeof e?{loose:!0}:v3.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{},x3={},w3={get exports(){return x3},set exports(e){x3=e}},_3={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16},O3="object"==typeof process&&{}.NODE_DEBUG&&/\bsemver\b/i.test({}.NODE_DEBUG)?function(){for(var e=arguments.length,t=new Array(e),n=0;n{};!function(e,t){var n=_3.MAX_SAFE_COMPONENT_LENGTH,i=O3,r=(t=e.exports={}).re=[],o=t.src=[],a=t.t={},s=0,l=(e,t,n)=>{var l=s++;i(e,l,t),a[e]=l,o[l]=t,r[l]=new RegExp(t,n?"g":void 0)};l("NUMERICIDENTIFIER","0|[1-9]\\d*"),l("NUMERICIDENTIFIERLOOSE","[0-9]+"),l("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),l("MAINVERSION","(".concat(o[a.NUMERICIDENTIFIER],")\\.")+"(".concat(o[a.NUMERICIDENTIFIER],")\\.")+"(".concat(o[a.NUMERICIDENTIFIER],")")),l("MAINVERSIONLOOSE","(".concat(o[a.NUMERICIDENTIFIERLOOSE],")\\.")+"(".concat(o[a.NUMERICIDENTIFIERLOOSE],")\\.")+"(".concat(o[a.NUMERICIDENTIFIERLOOSE],")")),l("PRERELEASEIDENTIFIER","(?:".concat(o[a.NUMERICIDENTIFIER],"|").concat(o[a.NONNUMERICIDENTIFIER],")")),l("PRERELEASEIDENTIFIERLOOSE","(?:".concat(o[a.NUMERICIDENTIFIERLOOSE],"|").concat(o[a.NONNUMERICIDENTIFIER],")")),l("PRERELEASE","(?:-(".concat(o[a.PRERELEASEIDENTIFIER],"(?:\\.").concat(o[a.PRERELEASEIDENTIFIER],")*))")),l("PRERELEASELOOSE","(?:-?(".concat(o[a.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(o[a.PRERELEASEIDENTIFIERLOOSE],")*))")),l("BUILDIDENTIFIER","[0-9A-Za-z-]+"),l("BUILD","(?:\\+(".concat(o[a.BUILDIDENTIFIER],"(?:\\.").concat(o[a.BUILDIDENTIFIER],")*))")),l("FULLPLAIN","v?".concat(o[a.MAINVERSION]).concat(o[a.PRERELEASE],"?").concat(o[a.BUILD],"?")),l("FULL","^".concat(o[a.FULLPLAIN],"$")),l("LOOSEPLAIN","[v=\\s]*".concat(o[a.MAINVERSIONLOOSE]).concat(o[a.PRERELEASELOOSE],"?").concat(o[a.BUILD],"?")),l("LOOSE","^".concat(o[a.LOOSEPLAIN],"$")),l("GTLT","((?:<|>)?=?)"),l("XRANGEIDENTIFIERLOOSE","".concat(o[a.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),l("XRANGEIDENTIFIER","".concat(o[a.NUMERICIDENTIFIER],"|x|X|\\*")),l("XRANGEPLAIN","[v=\\s]*(".concat(o[a.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(o[a.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(o[a.XRANGEIDENTIFIER],")")+"(?:".concat(o[a.PRERELEASE],")?").concat(o[a.BUILD],"?")+")?)?"),l("XRANGEPLAINLOOSE","[v=\\s]*(".concat(o[a.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(o[a.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(o[a.XRANGEIDENTIFIERLOOSE],")")+"(?:".concat(o[a.PRERELEASELOOSE],")?").concat(o[a.BUILD],"?")+")?)?"),l("XRANGE","^".concat(o[a.GTLT],"\\s*").concat(o[a.XRANGEPLAIN],"$")),l("XRANGELOOSE","^".concat(o[a.GTLT],"\\s*").concat(o[a.XRANGEPLAINLOOSE],"$")),l("COERCE","".concat("(^|[^\\d])(\\d{1,").concat(n,"})")+"(?:\\.(\\d{1,".concat(n,"}))?")+"(?:\\.(\\d{1,".concat(n,"}))?")+"(?:$|[^\\d])"),l("COERCERTL",o[a.COERCE],!0),l("LONETILDE","(?:~>?)"),l("TILDETRIM","(\\s*)".concat(o[a.LONETILDE],"\\s+"),!0),t.tildeTrimReplace="$1~",l("TILDE","^".concat(o[a.LONETILDE]).concat(o[a.XRANGEPLAIN],"$")),l("TILDELOOSE","^".concat(o[a.LONETILDE]).concat(o[a.XRANGEPLAINLOOSE],"$")),l("LONECARET","(?:\\^)"),l("CARETTRIM","(\\s*)".concat(o[a.LONECARET],"\\s+"),!0),t.caretTrimReplace="$1^",l("CARET","^".concat(o[a.LONECARET]).concat(o[a.XRANGEPLAIN],"$")),l("CARETLOOSE","^".concat(o[a.LONECARET]).concat(o[a.XRANGEPLAINLOOSE],"$")),l("COMPARATORLOOSE","^".concat(o[a.GTLT],"\\s*(").concat(o[a.LOOSEPLAIN],")$|^$")),l("COMPARATOR","^".concat(o[a.GTLT],"\\s*(").concat(o[a.FULLPLAIN],")$|^$")),l("COMPARATORTRIM","(\\s*)".concat(o[a.GTLT],"\\s*(").concat(o[a.LOOSEPLAIN],"|").concat(o[a.XRANGEPLAIN],")"),!0),t.comparatorTrimReplace="$1$2$3",l("HYPHENRANGE","^\\s*(".concat(o[a.XRANGEPLAIN],")")+"\\s+-\\s+"+"(".concat(o[a.XRANGEPLAIN],")")+"\\s*$"),l("HYPHENRANGELOOSE","^\\s*(".concat(o[a.XRANGEPLAINLOOSE],")")+"\\s+-\\s+"+"(".concat(o[a.XRANGEPLAINLOOSE],")")+"\\s*$"),l("STAR","(<|>)?=?\\s*\\*"),l("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),l("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(w3,x3);var k3,E3,D3,A3,S3=/^[0-9]+$/,M3=(e,t)=>{var n=S3.test(e),i=S3.test(t);return n&&i&&(e=+e,t=+t),e===t?0:n&&!i?-1:i&&!n?1:eF3)throw new TypeError("version is longer than ".concat(F3," characters"));C3("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;var i=t.trim().match(n.loose?$3[T3.LOOSE]:$3[T3.FULL]);if(!i)throw new TypeError("Invalid Version: ".concat(t));if(this.raw=t,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>j3||this.major<0)throw new TypeError("Invalid major version");if(this.minor>j3||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>j3||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);-1===n&&this.prerelease.push(0)}t&&(0===z3(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: ".concat(e))}return this.format(),this.raw=this.version,this}},R3=P3,L3=(e,t,n)=>new R3(e,n).compare(new R3(t,n)),B3=L3,U3=L3,I3=L3,q3=L3,W3=L3,H3=L3,Y3=(e,t,n)=>0===B3(e,t,n),G3=(e,t,n)=>0!==U3(e,t,n),V3=(e,t,n)=>I3(e,t,n)>0,X3=(e,t,n)=>q3(e,t,n)>=0,J3=(e,t,n)=>W3(e,t,n)<0,Q3=(e,t,n)=>H3(e,t,n)<=0,Z3=(e,t,n,i)=>{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 Y3(e,n,i);case"!=":return G3(e,n,i);case">":return V3(e,n,i);case">=":return X3(e,n,i);case"<":return J3(e,n,i);case"<=":return Q3(e,n,i);default:throw new TypeError("Invalid operator: ".concat(t))}};function K3(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return e5(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e5(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function e5(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);nthis.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError("Invalid SemVer Range: ".concat(e));if(this.set.length>1){var o=this.set[0];if(this.set=this.set.filter((e=>!d(e[0]))),0===this.set.length)this.set=[o];else if(this.set.length>1){var a,s=K3(this.set);try{for(s.s();!(a=s.n()).done;){var l=a.value;if(1===l.length&&h(l[0])){this.set=[l];break}}}catch(e){s.e(e)}finally{s.f()}}}this.format()}format(){return this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();var t=Object.keys(this.options).join(","),i="parseRange:".concat(t,":").concat(e),a=n.get(i);if(a)return a;var h=this.options.loose,p=h?s[l.HYPHENRANGELOOSE]:s[l.HYPHENRANGE];e=e.replace(p,E(this.options.includePrerelease)),o("hyphen replace",e),e=e.replace(s[l.COMPARATORTRIM],u),o("comparator trim",e);var m=(e=(e=(e=e.replace(s[l.TILDETRIM],c)).replace(s[l.CARETTRIM],f)).split(/\s+/).join(" ")).split(" ").map((e=>g(e,this.options))).join(" ").split(/\s+/).map((e=>k(e,this.options)));h&&(m=m.filter((e=>(o("loose invalid filter",e,this.options),!!e.match(s[l.COMPARATORLOOSE]))))),o("range list",m);var y,v=new Map,b=m.map((e=>new r(e,this.options))),x=K3(b);try{for(x.s();!(y=x.n()).done;){var w=y.value;if(d(w))return[w];v.set(w.value,w)}}catch(e){x.e(e)}finally{x.f()}v.size>1&&v.has("")&&v.delete("");var _=[...v.values()];return n.set(i,_),_}intersects(e,n){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some((t=>p(t,n)&&e.set.some((e=>p(e,n)&&t.every((t=>e.every((e=>t.intersects(e,n)))))))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new a(e,this.options)}catch(e){return!1}for(var t=0;t{e.length=this[i3](e.value,e.key),this[n3]+=e.length}))),p3(this)}get lengthCalculator(){return this[i3]}get length(){return this[n3]}get itemCount(){return this[l3].length}rforEach(e,t){t=t||this;for(var n=this[l3].tail;null!==n;){var i=n.prev;y3(this,e,n,t),n=i}}forEach(e,t){t=t||this;for(var n=this[l3].head;null!==n;){var i=n.next;y3(this,e,n,t),n=i}}keys(){return this[l3].toArray().map((e=>e.key))}values(){return this[l3].toArray().map((e=>e.value))}reset(){this[a3]&&this[l3]&&this[l3].length&&this[l3].forEach((e=>this[a3](e.key,e.value))),this[u3]=new Map,this[l3]=new e3,this[n3]=0}dump(){return this[l3].map((e=>!h3(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[l3]}set(e,t,n){if((n=n||this[o3])&&"number"!=typeof n)throw new TypeError("maxAge must be a number");var i=n?Date.now():0,r=this[i3](t,e);if(this[u3].has(e)){if(r>this[t3])return g3(this,this[u3].get(e)),!1;var o=this[u3].get(e).value;return this[a3]&&(this[s3]||this[a3](e,o.value)),o.now=i,o.maxAge=n,o.value=t,this[n3]+=r-o.length,o.length=r,this.get(e),p3(this),!0}var a=new m3(e,t,r,i,n);return a.length>this[t3]?(this[a3]&&this[a3](e,t),!1):(this[n3]+=a.length,this[l3].unshift(a),this[u3].set(e,this[l3].head),p3(this),!0)}has(e){if(!this[u3].has(e))return!1;var t=this[u3].get(e).value;return!h3(this,t)}get(e){return d3(this,e,!0)}peek(e){return d3(this,e,!1)}pop(){var e=this[l3].tail;return e?(g3(this,e),e.value):null}del(e){g3(this,this[u3].get(e))}load(e){this.reset();for(var t=Date.now(),n=e.length-1;n>=0;n--){var i=e[n],r=i.e||0;if(0===r)this.set(i.k,i.v);else{var o=r-t;o>0&&this.set(i.k,i.v,o)}}}prune(){this[u3].forEach(((e,t)=>d3(this,t,!1)))}}({max:1e3}),i=b3,r=function(){if(E3)return k3;E3=1;var t=Symbol("SemVer ANY");class n{static get ANY(){return t}constructor(e,r){if(r=i(r),e instanceof n){if(e.loose===!!r.loose)return e;e=e.value}s("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===t?this.value="":this.value=this.operator+this.semver.version,s("comp",this)}parse(e){var n=this.options.loose?r[o.COMPARATORLOOSE]:r[o.COMPARATOR],i=e.match(n);if(!i)throw new TypeError("Invalid comparator: ".concat(e));this.operator=void 0!==i[1]?i[1]:"","="===this.operator&&(this.operator=""),i[2]?this.semver=new l(i[2],this.options.loose):this.semver=t}toString(){return this.value}test(e){if(s("Comparator.test",e,this.options.loose),this.semver===t||e===t)return!0;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}return a(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof n))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new u(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new u(this.value,t).test(e.semver);var i=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),r=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,s=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),l=a(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),c=a(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return i||r||o&&s||l||c}}k3=n;var i=b3,r=x3.re,o=x3.t,a=Z3,s=O3,l=P3,u=e();return k3}(),o=O3,a=P3,s=x3.re,l=x3.t,u=x3.comparatorTrimReplace,c=x3.tildeTrimReplace,f=x3.caretTrimReplace,d=e=>"<0.0.0-0"===e.value,h=e=>""===e.value,p=(e,t)=>{for(var n=!0,i=e.slice(),r=i.pop();n&&i.length;)n=i.every((e=>r.intersects(e,t))),r=i.pop();return n},g=(e,t)=>(o("comp",e,t),e=b(e,t),o("caret",e),e=y(e,t),o("tildes",e),e=w(e,t),o("xrange",e),e=O(e,t),o("stars",e),e),m=e=>!e||"x"===e.toLowerCase()||"*"===e,y=(e,t)=>e.trim().split(/\s+/).map((e=>v(e,t))).join(" "),v=(e,t)=>{var n=t.loose?s[l.TILDELOOSE]:s[l.TILDE];return e.replace(n,((t,n,i,r,a)=>{var s;return o("tilde",e,t,n,i,r,a),m(n)?s="":m(i)?s=">=".concat(n,".0.0 <").concat(+n+1,".0.0-0"):m(r)?s=">=".concat(n,".").concat(i,".0 <").concat(n,".").concat(+i+1,".0-0"):a?(o("replaceTilde pr",a),s=">=".concat(n,".").concat(i,".").concat(r,"-").concat(a," <").concat(n,".").concat(+i+1,".0-0")):s=">=".concat(n,".").concat(i,".").concat(r," <").concat(n,".").concat(+i+1,".0-0"),o("tilde return",s),s}))},b=(e,t)=>e.trim().split(/\s+/).map((e=>x(e,t))).join(" "),x=(e,t)=>{o("caret",e,t);var n=t.loose?s[l.CARETLOOSE]:s[l.CARET],i=t.includePrerelease?"-0":"";return e.replace(n,((t,n,r,a,s)=>{var l;return o("caret",e,t,n,r,a,s),m(n)?l="":m(r)?l=">=".concat(n,".0.0").concat(i," <").concat(+n+1,".0.0-0"):m(a)?l="0"===n?">=".concat(n,".").concat(r,".0").concat(i," <").concat(n,".").concat(+r+1,".0-0"):">=".concat(n,".").concat(r,".0").concat(i," <").concat(+n+1,".0.0-0"):s?(o("replaceCaret pr",s),l="0"===n?"0"===r?">=".concat(n,".").concat(r,".").concat(a,"-").concat(s," <").concat(n,".").concat(r,".").concat(+a+1,"-0"):">=".concat(n,".").concat(r,".").concat(a,"-").concat(s," <").concat(n,".").concat(+r+1,".0-0"):">=".concat(n,".").concat(r,".").concat(a,"-").concat(s," <").concat(+n+1,".0.0-0")):(o("no pr"),l="0"===n?"0"===r?">=".concat(n,".").concat(r,".").concat(a).concat(i," <").concat(n,".").concat(r,".").concat(+a+1,"-0"):">=".concat(n,".").concat(r,".").concat(a).concat(i," <").concat(n,".").concat(+r+1,".0-0"):">=".concat(n,".").concat(r,".").concat(a," <").concat(+n+1,".0.0-0")),o("caret return",l),l}))},w=(e,t)=>(o("replaceXRanges",e,t),e.split(/\s+/).map((e=>_(e,t))).join(" ")),_=(e,t)=>{e=e.trim();var n=t.loose?s[l.XRANGELOOSE]:s[l.XRANGE];return e.replace(n,((n,i,r,a,s,l)=>{o("xRange",e,n,i,r,a,s,l);var u=m(r),c=u||m(a),f=c||m(s),d=f;return"="===i&&d&&(i=""),l=t.includePrerelease?"-0":"",u?n=">"===i||"<"===i?"<0.0.0-0":"*":i&&d?(c&&(a=0),s=0,">"===i?(i=">=",c?(r=+r+1,a=0,s=0):(a=+a+1,s=0)):"<="===i&&(i="<",c?r=+r+1:a=+a+1),"<"===i&&(l="-0"),n="".concat(i+r,".").concat(a,".").concat(s).concat(l)):c?n=">=".concat(r,".0.0").concat(l," <").concat(+r+1,".0.0-0"):f&&(n=">=".concat(r,".").concat(a,".0").concat(l," <").concat(r,".").concat(+a+1,".0-0")),o("xRange return",n),n}))},O=(e,t)=>(o("replaceStars",e,t),e.trim().replace(s[l.STAR],"")),k=(e,t)=>(o("replaceGTE0",e,t),e.trim().replace(s[t.includePrerelease?l.GTE0PRE:l.GTE0],"")),E=e=>(t,n,i,r,o,a,s,l,u,c,f,d,h)=>(n=m(i)?"":m(r)?">=".concat(i,".0.0").concat(e?"-0":""):m(o)?">=".concat(i,".").concat(r,".0").concat(e?"-0":""):a?">=".concat(n):">=".concat(n).concat(e?"-0":""),l=m(u)?"":m(c)?"<".concat(+u+1,".0.0-0"):m(f)?"<".concat(u,".").concat(+c+1,".0-0"):d?"<=".concat(u,".").concat(c,".").concat(f,"-").concat(d):e?"<".concat(u,".").concat(c,".").concat(+f+1,"-0"):"<=".concat(l),"".concat(n," ").concat(l).trim()),D=(e,t,n)=>{for(var i=0;i0){var s=e[a].semver;if(s.major===t.major&&s.minor===t.minor&&s.patch===t.patch)return!0}return!1}return!0};return D3}(),n5=(e,t,n)=>{try{t=new t5(t,n)}catch(e){return!1}return t.test(e)};function i5(e,t,n){var i=e.open(t),r=new URL(t).origin,o=40;e.addEventListener("message",(function t(n){n.source===i&&(o=0,e.removeEventListener("message",t,!1))}),!1),setTimeout((function e(){o<=0||(i.postMessage(n,r),setTimeout(e,250),o-=1)}),250)}var r5,o5='.vega-embed {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n}\n.vega-embed.has-actions {\n padding-right: 38px;\n}\n.vega-embed details:not([open]) > :not(summary) {\n display: none !important;\n}\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 cursor: pointer;\n line-height: 0px;\n}\n.vega-embed summary::-webkit-details-marker {\n display: none;\n}\n.vega-embed summary:active {\n box-shadow: #aaa 0px 0px 0px 1px inset;\n}\n.vega-embed summary svg {\n width: 14px;\n height: 14px;\n}\n.vega-embed details[open] summary {\n opacity: 0.7;\n}\n.vega-embed:hover summary, .vega-embed:focus-within summary {\n opacity: 1 !important;\n transition: opacity 0.2s ease;\n}\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}\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}\n.vega-embed .vega-actions a:hover, .vega-embed .vega-actions a:focus {\n background-color: #f7f7f9;\n color: black;\n}\n.vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n content: "";\n display: inline-block;\n position: absolute;\n}\n.vega-embed .vega-actions::before {\n left: auto;\n right: 14px;\n top: -16px;\n border: 8px solid rgba(0, 0, 0, 0);\n border-bottom-color: #d9d9d9;\n}\n.vega-embed .vega-actions::after {\n left: auto;\n right: 15px;\n top: -14px;\n border: 7px solid rgba(0, 0, 0, 0);\n border-bottom-color: #fff;\n}\n.vega-embed .chart-wrapper.fit-x {\n width: 100%;\n}\n.vega-embed .chart-wrapper.fit-y {\n height: 100%;\n}\n\n.vega-embed-wrapper {\n max-width: 100%;\n overflow: auto;\n padding-right: 14px;\n}\n\n@keyframes scale-in {\n from {\n opacity: 0;\n transform: scale(0.6);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n';function a5(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function u5(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);ne,"vega-lite":(e,t)=>h5.compile(e,{config:t}).spec},x5='\n\n \n \n \n',w5="chart-wrapper";function _5(e){return"function"==typeof e}function O5(e,t,n,i){var r="".concat(t,'
'),o="
".concat(n,""),a=window.open("");a.document.write(r+e+o),a.document.title="".concat(y5[i]," JSON Source")}function k5(e,t){if(e.$schema){var n,i=h1(e.$schema);t&&t!==i.library&&console.warn("The given visualization spec is written in ".concat(y5[i.library],", but mode argument sets ").concat(null!==(n=y5[t])&&void 0!==n?n:t,"."));var r=i.library;return n5(v5[r],"^".concat(i.version.slice(1)))||console.warn("The input spec uses ".concat(y5[r]," ").concat(i.version,", but the current version of ").concat(y5[r]," is v").concat(v5[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":null!=t?t:"vega"}function E5(e){return(t=e)&&"load"in t?e:d5.loader(e);var t}function D5(e){var t,n,i=null!==(t=null===(n=e.usermeta)||void 0===n?void 0:n.embedOptions)&&void 0!==t?t:{};return mt(i.defaultStyle)&&(i.defaultStyle=!1),i}function A5(){return A5=p2(G2.mark((function e(t,n){var i,r,o,a,s,l,u,c,f,d,h,p=arguments;return G2.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=p.length>2&&void 0!==p[2]?p[2]:{},!mt(n)){e.next=10;break}return s=E5(o.loader),e.t0=JSON,e.next=6,s.load(n);case 6:e.t1=e.sent,a=e.t0.parse.call(e.t0,e.t1),e.next=11;break;case 10:a=n;case 11:return l=D5(a),u=l.loader,s&&!u||(s=E5(null!==(c=o.loader)&&void 0!==c?c:u)),e.next=16,S5(l,s);case 16:return f=e.sent,e.next=19,S5(o,s);case 19:return d=e.sent,h=f5(f5({},a5(d,f)),{},{config:Oe(null!==(i=d.config)&&void 0!==i?i:{},null!==(r=f.config)&&void 0!==r?r:{})}),e.next=23,F5(t,a,h,s);case 23:return e.abrupt("return",e.sent);case 24:case"end":return e.stop()}}),e)}))),A5.apply(this,arguments)}function S5(e,t){return M5.apply(this,arguments)}function M5(){return M5=p2(G2.mark((function e(t,n){var i,r,o;return G2.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!mt(t.config)){e.next=8;break}return e.t1=JSON,e.next=4,n.load(t.config);case 4:e.t2=e.sent,e.t0=e.t1.parse.call(e.t1,e.t2),e.next=9;break;case 8:e.t0=null!==(i=t.config)&&void 0!==i?i:{};case 9:if(r=e.t0,!mt(t.patch)){e.next=18;break}return e.t4=JSON,e.next=14,n.load(t.patch);case 14:e.t5=e.sent,e.t3=e.t4.parse.call(e.t4,e.t5),e.next=19;break;case 18:e.t3=t.patch;case 19:return o=e.t3,e.abrupt("return",f5(f5(f5({},t),o?{patch:o}:{}),r?{config:r}:{}));case 21:case"end":return e.stop()}}),e)}))),M5.apply(this,arguments)}function C5(e){var t,n=e.getRootNode?e.getRootNode():document;return n instanceof ShadowRoot?{root:n,rootContainer:n}:{root:document,rootContainer:null!==(t=document.head)&&void 0!==t?t:document.body}}function F5(e,t){return j5.apply(this,arguments)}function j5(){return j5=p2(G2.mark((function e(t,n){var i,r,o,a,s,l,u,c,f,d,h,p,g,m,y,b,x,w,_,O,k,E,D,A,S,M,C,F,j,$,T,N,z,R,L,B,U,I,q,W,H,Y,G,V,X,J,Z,K,ee,te,ne,ie=arguments;return G2.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(ne=function(){I&&document.removeEventListener("click",I),N.finalize()},c=ie.length>2&&void 0!==ie[2]?ie[2]:{},f=ie.length>3?ie[3]:void 0,d=c.theme?Oe(v[c.theme],null!==(i=c.config)&&void 0!==i?i:{}):c.config,h=ft(c.actions)?c.actions:a5({},g5,null!==(r=c.actions)&&void 0!==r?r:{}),p=f5(f5({},m5),c.i18n),g=null!==(o=c.renderer)&&void 0!==o?o:"canvas",m=null!==(a=c.logLevel)&&void 0!==a?a:d5.Warn,y=null!==(s=c.downloadFileName)&&void 0!==s?s:"visualization",b="string"==typeof t?document.querySelector(t):t){e.next=12;break}throw new Error("".concat(t," does not exist"));case 12:if(!1!==c.defaultStyle&&(x="vega-embed-style",w=C5(b),_=w.root,O=w.rootContainer,_.getElementById(x)||((k=document.createElement("style")).id=x,k.innerHTML=void 0===c.defaultStyle||!0===c.defaultStyle?o5.toString():c.defaultStyle,O.appendChild(k))),E=k5(n,c.mode),D=b5[E](n,d),"vega-lite"===E&&D.$schema&&(A=h1(D.$schema),n5(v5.vega,"^".concat(A.version.slice(1)))||console.warn("The compiled spec uses Vega ".concat(A.version,", but current version is v").concat(v5.vega,"."))),b.classList.add("vega-embed"),h&&b.classList.add("has-actions"),b.innerHTML="",S=b,h&&((M=document.createElement("div")).classList.add(w5),b.appendChild(M),S=M),(C=c.patch)&&(D=C instanceof Function?C(D):P(D,C,!0,!1).newDocument),c.formatLocale&&d5.formatLocale(c.formatLocale),c.timeFormatLocale&&d5.timeFormatLocale(c.timeFormatLocale),c.expressionFunctions)for(F in c.expressionFunctions)"fn"in(j=c.expressionFunctions[F])?d5.expressionFunction(F,j.fn,j.visitor):j instanceof Function&&d5.expressionFunction(F,j);return $=c.ast,T=d5.parse(D,"vega-lite"===E?{}:d,{ast:$}),(N=new(c.viewClass||d5.View)(T,f5({loader:f,logLevel:m,renderer:g},$?{expr:null!==(l=null!==(u=d5.expressionInterpreter)&&void 0!==u?u:c.expr)&&void 0!==l?l:pB}:{}))).addSignalListener("autosize",((e,t)=>{var n=t.type;"fit-x"==n?(S.classList.add("fit-x"),S.classList.remove("fit-y")):"fit-y"==n?(S.classList.remove("fit-x"),S.classList.add("fit-y")):"fit"==n?S.classList.add("fit-x","fit-y"):S.classList.remove("fit-x","fit-y")})),!1!==c.tooltip&&(z=_5(c.tooltip)?c.tooltip:new c2(!0===c.tooltip?{}:c.tooltip).call,N.tooltip(z)),void 0===(R=c.hover)&&(R="vega"===E),R&&(B=(L="boolean"==typeof R?{}:R).hoverSet,U=L.updateSet,N.hover(B,U)),c&&(null!=c.width&&N.width(c.width),null!=c.height&&N.height(c.height),null!=c.padding&&N.padding(c.padding)),e.next=37,N.initialize(S,c.bind).runAsync();case 37:if(!1===h){e.next=63;break}if(q=b,!1!==c.defaultStyle&&((W=document.createElement("details")).title=p.CLICK_TO_VIEW_ACTIONS,b.append(W),q=W,(H=document.createElement("summary")).innerHTML=x5,W.append(H),I=e=>{W.contains(e.target)||W.removeAttribute("open")},document.addEventListener("click",I)),Y=document.createElement("div"),q.append(Y),Y.classList.add("vega-actions"),!0!==h&&!1===h.export){e.next=60;break}G=l5(["svg","png"]),e.prev=45,X=G2.mark((function e(){var t,n,i,r;return G2.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=V.value,(!0===h||!0===h.export||h.export[t])&&(n=p["".concat(t.toUpperCase(),"_ACTION")],i=document.createElement("a"),r=we(c.scaleFactor)?c.scaleFactor[t]:c.scaleFactor,i.text=n,i.href="#",i.target="_blank",i.download="".concat(y,".").concat(t),i.addEventListener("mousedown",function(){var e=p2(G2.mark((function e(n){var i;return G2.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n.preventDefault(),e.next=3,N.toImageURL(t,r);case 3:i=e.sent,this.href=i;case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()),Y.append(i));case 2:case"end":return e.stop()}}),e)})),G.s();case 48:if((V=G.n()).done){e.next=52;break}return e.delegateYield(X(),"t0",50);case 50:e.next=48;break;case 52:e.next=57;break;case 54:e.prev=54,e.t1=e.catch(45),G.e(e.t1);case 57:return e.prev=57,G.f(),e.finish(57);case 60:!0!==h&&!1===h.source||((J=document.createElement("a")).text=p.SOURCE_ACTION,J.href="#",J.addEventListener("click",(function(e){var t,i;O5(Q()(n),null!==(t=c.sourceHeader)&&void 0!==t?t:"",null!==(i=c.sourceFooter)&&void 0!==i?i:"",E),e.preventDefault()})),Y.append(J)),"vega-lite"!==E||!0!==h&&!1===h.compiled||((Z=document.createElement("a")).text=p.COMPILED_ACTION,Z.href="#",Z.addEventListener("click",(function(e){var t,n;O5(Q()(D),null!==(t=c.sourceHeader)&&void 0!==t?t:"",null!==(n=c.sourceFooter)&&void 0!==n?n:"","vega"),e.preventDefault()})),Y.append(Z)),!0!==h&&!1===h.editor||(ee=null!==(K=c.editorUrl)&&void 0!==K?K:"https://vega.github.io/editor/",(te=document.createElement("a")).text=p.EDITOR_ACTION,te.href="#",te.addEventListener("click",(function(e){i5(window,ee,{config:d,mode:E,renderer:g,spec:Q()(n)}),e.preventDefault()})),Y.append(te));case 63:return e.abrupt("return",{view:N,spec:n,vgSpec:D,finalize:ne,embedOptions:c});case 64:case"end":return e.stop()}}),e,null,[[45,54,57,60]])}))),j5.apply(this,arguments)}n.p=new URL(import.meta.url.replace(/[^/]+$/,"")).toString();const $5=new Map,T5=e=>({async renderOutputItem(e,t){var n;const i=e.metadata&&"object"==typeof e.metadata&&"metadata"in e.metadata?e.metadata.metadata:{},r="application/vnd.vega.v5+json"===e.mime?"vega":"vega-lite",o=e.json();if(void 0===o)return;const a=i&&e.mime in i&&i[e.mime]||{},s="object"==typeof a&&a&&a.embed_options||{};!function(){try{return(document.body.dataset.vscodeThemeKind||"").toLowerCase().includes("dark")}catch{return!1}}()||s.theme||o.background||(s.theme="dark"),null===(n=$5.get(e.id))||void 0===n||n.finalize();const l=d5.loader({http:{credentials:"same-origin"}}),u=document.createElement("div");t.appendChild(u);const c=await function(e,t){return A5.apply(this,arguments)}(u,o,{actions:{export:!0,compiled:!1,editor:!1,source:!1},defaultStyle:!0,...s,mode:r,loader:{...l,sanitize:async(e,t)=>{const n=this._resolver;if((null==n?void 0:n.isLocal)&&n.isLocal(e)){const t=await n.resolveUrl(e);e=await n.getDownloadUrl(t)}return l.sanitize(e,t)}}});$5.set(e.id,c)},disposeOutputItem(e){var t;e&&(null===(t=$5.get(e))||void 0===t||t.finalize())}})})();var r=i.Q;export{r as activate}; //# sourceMappingURL=vegaRenderer.js.map