@genome-spy/app 0.24.0 → 0.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +68 -75
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,17 +1,17 @@
1
- var uk=Object.defineProperty;var lk=(j,z,ae)=>z in j?uk(j,z,{enumerable:!0,configurable:!0,writable:!0,value:ae}):j[z]=ae;var sb=(j,z,ae)=>(lk(j,typeof z!="symbol"?z+"":z,ae),ae),sd=(j,z,ae)=>{if(!z.has(j))throw TypeError("Cannot "+ae)};var ie=(j,z,ae)=>(sd(j,z,"read from private field"),ae?ae.call(j):z.get(j)),Me=(j,z,ae)=>{if(z.has(j))throw TypeError("Cannot add the same private member more than once");z instanceof WeakSet?z.add(j):z.set(j,ae)},Ho=(j,z,ae,Cn)=>(sd(j,z,"write to private field"),Cn?Cn.call(j,ae):z.set(j,ae),ae),cb=(j,z,ae,Cn)=>({set _(_s){Ho(j,z,_s,ae)},get _(){return ie(j,z,Cn)}}),be=(j,z,ae)=>(sd(j,z,"access private method"),ae);(function(j,z){typeof exports=="object"&&typeof module<"u"?z(exports):typeof define=="function"&&define.amd?define(["exports"],z):(j=typeof globalThis<"u"?globalThis:j||self,z(j.genomeSpyApp={}))})(this,function(j){var Fo,cd,ai,si,tt,ci,Po,ud,Ct,xn,Gs,ub,Hs,lb,hr,Qo,zo,ld,Ro,fd,jo,dd,Qs,fb,Vs,db;"use strict";function z(t,e,n){return t.fields=e||[],t.fname=n,t}function ae(t){return t==null?null:t.fname}function Cn(t){return t==null?null:t.fields}function _s(t){return t.length===1?hb(t[0]):pb(t)}const hb=t=>function(e){return e[t]},pb=t=>{const e=t.length;return function(n){for(let r=0;r<e;++r)n=n[t[r]];return n}};function oe(t){throw Error(t)}function mb(t){const e=[],n=t.length;let r=null,i=0,o="",a,s,c;t=t+"";function u(){e.push(o+t.substring(a,s)),o="",a=s+1}for(a=s=0;s<n;++s)if(c=t[s],c==="\\")o+=t.substring(a,s),o+=t.substring(++s,++s),a=s;else if(c===r)u(),r=null,i=-1;else{if(r)continue;a===i&&c==='"'||a===i&&c==="'"?(a=s+1,r=c):c==="."&&!i?s>a?u():a=s+1:c==="["?(s>a&&u(),i=a=s+1):c==="]"&&(i||oe("Access path missing open bracket: "+t),i>0&&u(),i=0,a=s+1)}return i&&oe("Access path missing closing bracket: "+t),r&&oe("Access path missing closing quote: "+t),s>a&&(s++,u()),e}function Vo(t,e,n){const r=mb(t);return t=r.length===1?r[0]:t,z((n&&n.get||_s)(r),[t],e||t)}Vo("id");const Yo=z(t=>t,[],"identity");z(()=>0,[],"zero"),z(()=>1,[],"one"),z(()=>!0,[],"true"),z(()=>!1,[],"false");var Xe=Array.isArray;function Re(t){return t===Object(t)}function nt(t){return t[t.length-1]}function ui(t){return t==null||t===""?null:+t}const hd=t=>e=>t*Math.exp(e),pd=t=>e=>Math.log(t*e),gb=t=>e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),yb=t=>e=>Math.sign(e)*Math.expm1(Math.abs(e))*t,_o=t=>e=>e<0?-Math.pow(-e,t):Math.pow(e,t);function Ws(t,e,n,r){const i=n(t[0]),o=n(nt(t)),a=(o-i)*e;return[r(i-a),r(o-a)]}function vb(t,e){return Ws(t,e,ui,Yo)}function bb(t,e){var n=Math.sign(t[0]);return Ws(t,e,pd(n),hd(n))}function Ab(t,e,n){return Ws(t,e,_o(n),_o(1/n))}function Wo(t,e,n,r,i){const o=r(t[0]),a=r(nt(t)),s=e!=null?r(e):(o+a)/2;return[i(s+(o-s)*n),i(s+(a-s)*n)]}function Xs(t,e,n){return Wo(t,e,n,ui,Yo)}function md(t,e,n){const r=Math.sign(t[0]);return Wo(t,e,n,pd(r),hd(r))}function Zs(t,e,n,r){return Wo(t,e,n,_o(r),_o(1/r))}function wb(t,e,n,r){return Wo(t,e,n,gb(r),yb(r))}function qs(t){return t!=null?Xe(t)?t:[t]:[]}function xb(t,e,n){let r=t[0],i=t[1],o;return i<r&&(o=i,i=r,r=o),o=i-r,o>=n-e?[e,n]:[r=Math.min(Math.max(r,e),n-o),r+o]}function ke(t){return typeof t=="function"}const Cb="descending";function gd(t,e,n){n=n||{},e=qs(e)||[];const r=[],i=[],o={},a=n.comparator||Eb;return qs(t).forEach((s,c)=>{s!=null&&(r.push(e[c]===Cb?-1:1),i.push(s=ke(s)?s:Vo(s,null,n)),(Cn(s)||[]).forEach(u=>o[u]=1))}),i.length===0?null:z(a(i,r),Object.keys(o))}const yd=(t,e)=>(t<e||t==null)&&e!=null?-1:(t>e||e==null)&&t!=null?1:(e=e instanceof Date?+e:e,(t=t instanceof Date?+t:t)!==t&&e===e?-1:e!==e&&t===t?1:0),Eb=(t,e)=>t.length===1?Sb(t[0],e[0]):Db(t,e,t.length),Sb=(t,e)=>function(n,r){return yd(t(n),t(r))*e},Db=(t,e,n)=>(e.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=t[s],a=yd(o(r),o(i));return a*e[s]});function Mb(t){return ke(t)?t:()=>t}function Ks(t){for(let e,n,r=1,i=arguments.length;r<i;++r){e=arguments[r];for(n in e)t[n]=e[n]}return t}const Tb=Object.prototype.hasOwnProperty;function En(t,e){return Tb.call(t,e)}function Xo(t){return typeof t=="boolean"}function Ib(t){return Object.prototype.toString.call(t)==="[object Date]"}function Nb(t){return t&&ke(t[Symbol.iterator])}function ce(t){return typeof t=="number"}function ee(t){return typeof t=="string"}function kb(t,e){const n=t[0],r=nt(t),i=+e;return i?i===1?r:n+i*(r-n):n}function Zo(t){return t&&nt(t)-t[0]||0}function qo(t){return Xe(t)?"["+t.map(qo)+"]":Re(t)||ee(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function Lb(t){return t==null||t===""?null:!t||t==="false"||t==="0"?!1:!!t}const Ob=t=>ce(t)||Ib(t)?t:Date.parse(t);function Bb(t,e){return e=e||Ob,t==null||t===""?null:e(t)}function Fb(t){return t==null||t===""?null:t+""}function Ko(t){const e={},n=t.length;for(let r=0;r<n;++r)e[t[r]]=!0;return e}var vd={},Js={},$s=34,li=10,ec=13;function bd(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function Pb(t,e){var n=bd(t);return function(r,i){return e(n(r),i,t)}}function Ad(t){var e=Object.create(null),n=[];return t.forEach(function(r){for(var i in r)i in e||n.push(e[i]=i)}),n}function Le(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function zb(t){return t<0?"-"+Le(-t,6):t>9999?"+"+Le(t,6):Le(t,4)}function Rb(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":zb(t.getUTCFullYear())+"-"+Le(t.getUTCMonth()+1,2)+"-"+Le(t.getUTCDate(),2)+(i?"T"+Le(e,2)+":"+Le(n,2)+":"+Le(r,2)+"."+Le(i,3)+"Z":r?"T"+Le(e,2)+":"+Le(n,2)+":"+Le(r,2)+"Z":n||e?"T"+Le(e,2)+":"+Le(n,2)+"Z":"")}function wd(t){var e=new RegExp('["'+t+`
2
- \r]`),n=t.charCodeAt(0);function r(l,d){var h,p,m=i(l,function(y,g){if(h)return h(y,g-1);p=y,h=d?Pb(y,d):bd(y)});return m.columns=p||[],m}function i(l,d){var h=[],p=l.length,m=0,y=0,g,A=p<=0,w=!1;l.charCodeAt(p-1)===li&&--p,l.charCodeAt(p-1)===ec&&--p;function C(){if(A)return Js;if(w)return w=!1,vd;var v,x=m,E;if(l.charCodeAt(x)===$s){for(;m++<p&&l.charCodeAt(m)!==$s||l.charCodeAt(++m)===$s;);return(v=m)>=p?A=!0:(E=l.charCodeAt(m++))===li?w=!0:E===ec&&(w=!0,l.charCodeAt(m)===li&&++m),l.slice(x+1,v-1).replace(/""/g,'"')}for(;m<p;){if((E=l.charCodeAt(v=m++))===li)w=!0;else if(E===ec)w=!0,l.charCodeAt(m)===li&&++m;else if(E!==n)continue;return l.slice(x,v)}return A=!0,l.slice(x,p)}for(;(g=C())!==Js;){for(var b=[];g!==vd&&g!==Js;)b.push(g),g=C();d&&(b=d(b,y++))==null||h.push(b)}return h}function o(l,d){return l.map(function(h){return d.map(function(p){return f(h[p])}).join(t)})}function a(l,d){return d==null&&(d=Ad(l)),[d.map(f).join(t)].concat(o(l,d)).join(`
3
- `)}function s(l,d){return d==null&&(d=Ad(l)),o(l,d).join(`
1
+ var Uk=Object.defineProperty;var Gk=(j,z,ae)=>z in j?Uk(j,z,{enumerable:!0,configurable:!0,writable:!0,value:ae}):j[z]=ae;var W2=(j,z,ae)=>(Gk(j,typeof z!="symbol"?z+"":z,ae),ae),nd=(j,z,ae)=>{if(!z.has(j))throw TypeError("Cannot "+ae)};var ie=(j,z,ae)=>(nd(j,z,"read from private field"),ae?ae.call(j):z.get(j)),De=(j,z,ae)=>{if(z.has(j))throw TypeError("Cannot add the same private member more than once");z instanceof WeakSet?z.add(j):z.set(j,ae)},Uo=(j,z,ae,wn)=>(nd(j,z,"write to private field"),wn?wn.call(j,ae):z.set(j,ae),ae),X2=(j,z,ae,wn)=>({set _(Ys){Uo(j,z,Ys,ae)},get _(){return ie(j,z,wn)}}),be=(j,z,ae)=>(nd(j,z,"access private method"),ae);(function(j,z){typeof exports=="object"&&typeof module<"u"?z(exports):typeof define=="function"&&define.amd?define(["exports"],z):(j=typeof globalThis<"u"?globalThis:j||self,z(j.genomeSpyApp={}))})(this,function(j){var Bo,rd,ri,ii,et,oi,Oo,id,Ct,xn,Us,Z2,Gs,q2,fr,Go,Po,od,Fo,ad,zo,sd,Hs,K2,Qs,J2;"use strict";function z(t,e,n){return t.fields=e||[],t.fname=n,t}function ae(t){return t==null?null:t.fname}function wn(t){return t==null?null:t.fields}function Ys(t){return t.length===1?$2(t[0]):eb(t)}const $2=t=>function(e){return e[t]},eb=t=>{const e=t.length;return function(n){for(let r=0;r<e;++r)n=n[t[r]];return n}};function oe(t){throw Error(t)}function tb(t){const e=[],n=t.length;let r=null,i=0,o="",a,s,c;t=t+"";function u(){e.push(o+t.substring(a,s)),o="",a=s+1}for(a=s=0;s<n;++s)if(c=t[s],c==="\\")o+=t.substring(a,s),o+=t.substring(++s,++s),a=s;else if(c===r)u(),r=null,i=-1;else{if(r)continue;a===i&&c==='"'||a===i&&c==="'"?(a=s+1,r=c):c==="."&&!i?s>a?u():a=s+1:c==="["?(s>a&&u(),i=a=s+1):c==="]"&&(i||oe("Access path missing open bracket: "+t),i>0&&u(),i=0,a=s+1)}return i&&oe("Access path missing closing bracket: "+t),r&&oe("Access path missing closing quote: "+t),s>a&&(s++,u()),e}function Ho(t,e,n){const r=tb(t);return t=r.length===1?r[0]:t,z((n&&n.get||Ys)(r),[t],e||t)}Ho("id");const Qo=z(t=>t,[],"identity");z(()=>0,[],"zero"),z(()=>1,[],"one"),z(()=>!0,[],"true"),z(()=>!1,[],"false");var We=Array.isArray;function ze(t){return t===Object(t)}function tt(t){return t[t.length-1]}function ai(t){return t==null||t===""?null:+t}const cd=t=>e=>t*Math.exp(e),ud=t=>e=>Math.log(t*e),nb=t=>e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),rb=t=>e=>Math.sign(e)*Math.expm1(Math.abs(e))*t,Vo=t=>e=>e<0?-Math.pow(-e,t):Math.pow(e,t);function _s(t,e,n,r){const i=n(t[0]),o=n(tt(t)),a=(o-i)*e;return[r(i-a),r(o-a)]}function ib(t,e){return _s(t,e,ai,Qo)}function ob(t,e){var n=Math.sign(t[0]);return _s(t,e,ud(n),cd(n))}function ab(t,e,n){return _s(t,e,Vo(n),Vo(1/n))}function Yo(t,e,n,r,i){const o=r(t[0]),a=r(tt(t)),s=e!=null?r(e):(o+a)/2;return[i(s+(o-s)*n),i(s+(a-s)*n)]}function Ws(t,e,n){return Yo(t,e,n,ai,Qo)}function ld(t,e,n){const r=Math.sign(t[0]);return Yo(t,e,n,ud(r),cd(r))}function Xs(t,e,n,r){return Yo(t,e,n,Vo(r),Vo(1/r))}function sb(t,e,n,r){return Yo(t,e,n,nb(r),rb(r))}function Zs(t){return t!=null?We(t)?t:[t]:[]}function cb(t,e,n){let r=t[0],i=t[1],o;return i<r&&(o=i,i=r,r=o),o=i-r,o>=n-e?[e,n]:[r=Math.min(Math.max(r,e),n-o),r+o]}function ke(t){return typeof t=="function"}const ub="descending";function fd(t,e,n){n=n||{},e=Zs(e)||[];const r=[],i=[],o={},a=n.comparator||lb;return Zs(t).forEach((s,c)=>{s!=null&&(r.push(e[c]===ub?-1:1),i.push(s=ke(s)?s:Ho(s,null,n)),(wn(s)||[]).forEach(u=>o[u]=1))}),i.length===0?null:z(a(i,r),Object.keys(o))}const dd=(t,e)=>(t<e||t==null)&&e!=null?-1:(t>e||e==null)&&t!=null?1:(e=e instanceof Date?+e:e,(t=t instanceof Date?+t:t)!==t&&e===e?-1:e!==e&&t===t?1:0),lb=(t,e)=>t.length===1?fb(t[0],e[0]):db(t,e,t.length),fb=(t,e)=>function(n,r){return dd(t(n),t(r))*e},db=(t,e,n)=>(e.push(0),function(r,i){let o,a=0,s=-1;for(;a===0&&++s<n;)o=t[s],a=dd(o(r),o(i));return a*e[s]});function hb(t){return ke(t)?t:()=>t}function qs(t){for(let e,n,r=1,i=arguments.length;r<i;++r){e=arguments[r];for(n in e)t[n]=e[n]}return t}const pb=Object.prototype.hasOwnProperty;function Cn(t,e){return pb.call(t,e)}function _o(t){return typeof t=="boolean"}function mb(t){return Object.prototype.toString.call(t)==="[object Date]"}function gb(t){return t&&ke(t[Symbol.iterator])}function ce(t){return typeof t=="number"}function ee(t){return typeof t=="string"}function yb(t,e){const n=t[0],r=tt(t),i=+e;return i?i===1?r:n+i*(r-n):n}function Wo(t){return t&&tt(t)-t[0]||0}function Xo(t){return We(t)?"["+t.map(Xo)+"]":ze(t)||ee(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function bb(t){return t==null||t===""?null:!t||t==="false"||t==="0"?!1:!!t}const vb=t=>ce(t)||mb(t)?t:Date.parse(t);function Ab(t,e){return e=e||vb,t==null||t===""?null:e(t)}function xb(t){return t==null||t===""?null:t+""}function Zo(t){const e={},n=t.length;for(let r=0;r<n;++r)e[t[r]]=!0;return e}var hd={},Ks={},Js=34,si=10,$s=13;function pd(t){return new Function("d","return {"+t.map(function(e,n){return JSON.stringify(e)+": d["+n+'] || ""'}).join(",")+"}")}function wb(t,e){var n=pd(t);return function(r,i){return e(n(r),i,t)}}function md(t){var e=Object.create(null),n=[];return t.forEach(function(r){for(var i in r)i in e||n.push(e[i]=i)}),n}function Ne(t,e){var n=t+"",r=n.length;return r<e?new Array(e-r+1).join(0)+n:n}function Cb(t){return t<0?"-"+Ne(-t,6):t>9999?"+"+Ne(t,6):Ne(t,4)}function Sb(t){var e=t.getUTCHours(),n=t.getUTCMinutes(),r=t.getUTCSeconds(),i=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":Cb(t.getUTCFullYear())+"-"+Ne(t.getUTCMonth()+1,2)+"-"+Ne(t.getUTCDate(),2)+(i?"T"+Ne(e,2)+":"+Ne(n,2)+":"+Ne(r,2)+"."+Ne(i,3)+"Z":r?"T"+Ne(e,2)+":"+Ne(n,2)+":"+Ne(r,2)+"Z":n||e?"T"+Ne(e,2)+":"+Ne(n,2)+"Z":"")}function gd(t){var e=new RegExp('["'+t+`
2
+ \r]`),n=t.charCodeAt(0);function r(l,d){var h,p,m=i(l,function(y,g){if(h)return h(y,g-1);p=y,h=d?wb(y,d):pd(y)});return m.columns=p||[],m}function i(l,d){var h=[],p=l.length,m=0,y=0,g,x=p<=0,A=!1;l.charCodeAt(p-1)===si&&--p,l.charCodeAt(p-1)===$s&&--p;function C(){if(x)return Ks;if(A)return A=!1,hd;var b,w=m,E;if(l.charCodeAt(w)===Js){for(;m++<p&&l.charCodeAt(m)!==Js||l.charCodeAt(++m)===Js;);return(b=m)>=p?x=!0:(E=l.charCodeAt(m++))===si?A=!0:E===$s&&(A=!0,l.charCodeAt(m)===si&&++m),l.slice(w+1,b-1).replace(/""/g,'"')}for(;m<p;){if((E=l.charCodeAt(b=m++))===si)A=!0;else if(E===$s)A=!0,l.charCodeAt(m)===si&&++m;else if(E!==n)continue;return l.slice(w,b)}return x=!0,l.slice(w,p)}for(;(g=C())!==Ks;){for(var v=[];g!==hd&&g!==Ks;)v.push(g),g=C();d&&(v=d(v,y++))==null||h.push(v)}return h}function o(l,d){return l.map(function(h){return d.map(function(p){return f(h[p])}).join(t)})}function a(l,d){return d==null&&(d=md(l)),[d.map(f).join(t)].concat(o(l,d)).join(`
3
+ `)}function s(l,d){return d==null&&(d=md(l)),o(l,d).join(`
4
4
  `)}function c(l){return l.map(u).join(`
5
- `)}function u(l){return l.map(f).join(t)}function f(l){return l==null?"":l instanceof Date?Rb(l):e.test(l+="")?'"'+l.replace(/"/g,'""')+'"':l}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:c,formatRow:u,formatValue:f}}var jb=wd(" "),Ub=jb.parseRows;function Gb(t){return t}function Hb(t){if(t==null)return Gb;var e,n,r=t.scale[0],i=t.scale[1],o=t.translate[0],a=t.translate[1];return function(s,c){c||(e=n=0);var u=2,f=s.length,l=new Array(f);for(l[0]=(e+=s[0])*r+o,l[1]=(n+=s[1])*i+a;u<f;)l[u]=s[u],++u;return l}}function Qb(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}function Vb(t,e){return typeof e=="string"&&(e=t.objects[e]),e.type==="GeometryCollection"?{type:"FeatureCollection",features:e.geometries.map(function(n){return xd(t,n)})}:xd(t,e)}function xd(t,e){var n=e.id,r=e.bbox,i=e.properties==null?{}:e.properties,o=Cd(t,e);return n==null&&r==null?{type:"Feature",properties:i,geometry:o}:r==null?{type:"Feature",id:n,properties:i,geometry:o}:{type:"Feature",id:n,bbox:r,properties:i,geometry:o}}function Cd(t,e){var n=Hb(t.transform),r=t.arcs;function i(f,l){l.length&&l.pop();for(var d=r[f<0?~f:f],h=0,p=d.length;h<p;++h)l.push(n(d[h],h));f<0&&Qb(l,p)}function o(f){return n(f)}function a(f){for(var l=[],d=0,h=f.length;d<h;++d)i(f[d],l);return l.length<2&&l.push(l[0]),l}function s(f){for(var l=a(f);l.length<4;)l.push(l[0]);return l}function c(f){return f.map(s)}function u(f){var l=f.type,d;switch(l){case"GeometryCollection":return{type:l,geometries:f.geometries.map(u)};case"Point":d=o(f.coordinates);break;case"MultiPoint":d=f.coordinates.map(o);break;case"LineString":d=a(f.arcs);break;case"MultiLineString":d=f.arcs.map(a);break;case"Polygon":d=c(f.arcs);break;case"MultiPolygon":d=f.arcs.map(c);break;default:return null}return{type:l,coordinates:d}}return u(e)}function Yb(t,e){var n={},r={},i={},o=[],a=-1;e.forEach(function(u,f){var l=t.arcs[u<0?~u:u],d;l.length<3&&!l[1][0]&&!l[1][1]&&(d=e[++a],e[a]=u,e[f]=d)}),e.forEach(function(u){var f=s(u),l=f[0],d=f[1],h,p;if(h=i[l])if(delete i[h.end],h.push(u),h.end=d,p=r[d]){delete r[p.start];var m=p===h?h:h.concat(p);r[m.start=h.start]=i[m.end=p.end]=m}else r[h.start]=i[h.end]=h;else if(h=r[d])if(delete r[h.start],h.unshift(u),h.start=l,p=i[l]){delete i[p.end];var y=p===h?h:p.concat(h);r[y.start=p.start]=i[y.end=h.end]=y}else r[h.start]=i[h.end]=h;else h=[u],r[h.start=l]=i[h.end=d]=h});function s(u){var f=t.arcs[u<0?~u:u],l=f[0],d;return t.transform?(d=[0,0],f.forEach(function(h){d[0]+=h[0],d[1]+=h[1]})):d=f[f.length-1],u<0?[d,l]:[l,d]}function c(u,f){for(var l in u){var d=u[l];delete f[d.start],delete d.start,delete d.end,d.forEach(function(h){n[h<0?~h:h]=1}),o.push(d)}}return c(i,r),c(r,i),e.forEach(function(u){n[u<0?~u:u]||o.push([u])}),o}function _b(t){return Cd(t,Wb.apply(this,arguments))}function Wb(t,e,n){var r,i,o;if(arguments.length>1)r=Xb(t,e,n);else for(i=0,r=new Array(o=t.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:Yb(t,r)}}function Xb(t,e,n){var r=[],i=[],o;function a(l){var d=l<0?~l:l;(i[d]||(i[d]=[])).push({i:l,g:o})}function s(l){l.forEach(a)}function c(l){l.forEach(s)}function u(l){l.forEach(c)}function f(l){switch(o=l,l.type){case"GeometryCollection":l.geometries.forEach(f);break;case"LineString":s(l.arcs);break;case"MultiLineString":case"Polygon":c(l.arcs);break;case"MultiPolygon":u(l.arcs);break}}return f(e),i.forEach(n==null?function(l){r.push(l[0].i)}:function(l){n(l[0].g,l[l.length-1].g)&&r.push(l[0].i)}),r}function Sn(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Zb(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Jo(t){let e,n,r;t.length!==2?(e=Sn,n=(s,c)=>Sn(t(s),c),r=(s,c)=>t(s)-c):(e=t===Sn||t===Zb?t:qb,n=t,r=t);function i(s,c,u=0,f=s.length){if(u<f){if(e(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<0?u=l+1:f=l}while(u<f)}return u}function o(s,c,u=0,f=s.length){if(u<f){if(e(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<=0?u=l+1:f=l}while(u<f)}return u}function a(s,c,u=0,f=s.length){const l=i(s,c,u,f-1);return l>u&&r(s[l-1],c)>-r(s[l],c)?l-1:l}return{left:i,center:a,right:o}}function qb(){return 0}function Ed(t){return t===null?NaN:+t}const Sd=Jo(Sn),tc=Sd.right;Sd.left,Jo(Ed).center;const mr=tc;function Kb(t,e){let n,r;if(e===void 0)for(const i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}class Dn extends Map{constructor(e,n=e2){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,i]of e)this.set(r,i)}get(e){return super.get(Dd(this,e))}has(e){return super.has(Dd(this,e))}set(e,n){return super.set(Jb(this,e),n)}delete(e){return super.delete($b(this,e))}}function Dd({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function Jb({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function $b({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function e2(t){return t!==null&&typeof t=="object"?t.valueOf():t}function $o(t){return t}function fi(t,...e){return nc(t,$o,$o,e)}function t2(t,...e){return nc(t,Array.from,$o,e)}function n2(t,e,...n){return nc(t,$o,e,n)}function nc(t,e,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new Dn,c=r[a++];let u=-1;for(const f of o){const l=c(f,++u,o),d=s.get(l);d?d.push(f):s.set(l,[f])}for(const[f,l]of s)s.set(f,i(l,a));return e(s)}(t,0)}function r2(t,e){return Array.from(e,n=>t[n])}function i2(t,...e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");t=Array.from(t);let[n]=e;if(n&&n.length!==2||e.length>1){const r=Uint32Array.from(t,(i,o)=>o);return e.length>1?(e=e.map(i=>t.map(i)),r.sort((i,o)=>{for(const a of e){const s=rc(a[i],a[o]);if(s)return s}})):(n=t.map(n),r.sort((i,o)=>rc(n[i],n[o]))),r2(t,r)}return t.sort(o2(n))}function o2(t=Sn){if(t===Sn)return rc;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function rc(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}var ic=Math.sqrt(50),oc=Math.sqrt(10),ac=Math.sqrt(2);function ea(t,e,n){var r,i=-1,o,a,s;if(e=+e,t=+t,n=+n,t===e&&n>0)return[t];if((r=e<t)&&(o=t,t=e,e=o),(s=Md(t,e,n))===0||!isFinite(s))return[];if(s>0){let c=Math.round(t/s),u=Math.round(e/s);for(c*s<t&&++c,u*s>e&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)*s}else{s=-s;let c=Math.round(t*s),u=Math.round(e*s);for(c/s<t&&++c,u/s>e&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)/s}return r&&a.reverse(),a}function Md(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=ic?10:o>=oc?5:o>=ac?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=ic?10:o>=oc?5:o>=ac?2:1)}function Mn(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=ic?i*=10:o>=oc?i*=5:o>=ac&&(i*=2),e<t?-i:i}function sc(t,e,n=Ed){if(!!(r=t.length)){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,o=Math.floor(i),a=+n(t[o],o,t),s=+n(t[o+1],o+1,t);return a+(s-a)*(i-o)}}function Yt(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,o=new Array(i);++r<i;)o[r]=t+r*n;return o}function ta(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function a2(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function na(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function gr(t){return t=na(Math.abs(t)),t?t[1]:NaN}function s2(t,e){return function(n,r){for(var i=n.length,o=[],a=0,s=t[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),o.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}function c2(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var u2=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function _t(t){if(!(e=u2.exec(t)))throw new Error("invalid format: "+t);var e;return new cc({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}_t.prototype=cc.prototype;function cc(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}cc.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function l2(t){e:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var Td;function f2(t,e){var n=na(t,e);if(!n)return t+"";var r=n[0],i=n[1],o=i-(Td=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+na(t,Math.max(0,e+o-1))[0]}function Id(t,e){var n=na(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const Nd={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:a2,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Id(t*100,e),r:Id,s:f2,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function kd(t){return t}var Ld=Array.prototype.map,Od=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function d2(t){var e=t.grouping===void 0||t.thousands===void 0?kd:s2(Ld.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?kd:c2(Ld.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"\u2212":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(l){l=_t(l);var d=l.fill,h=l.align,p=l.sign,m=l.symbol,y=l.zero,g=l.width,A=l.comma,w=l.precision,C=l.trim,b=l.type;b==="n"?(A=!0,b="g"):Nd[b]||(w===void 0&&(w=12),C=!0,b="g"),(y||d==="0"&&h==="=")&&(y=!0,d="0",h="=");var v=m==="$"?n:m==="#"&&/[boxX]/.test(b)?"0"+b.toLowerCase():"",x=m==="$"?r:/[%p]/.test(b)?a:"",E=Nd[b],I=/[defgprs%]/.test(b);w=w===void 0?6:/[gprs]/.test(b)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function L(T){var B=v,H=x,U,we,Ne;if(b==="c")H=E(T)+H,T="";else{T=+T;var wn=T<0||1/T<0;if(T=isNaN(T)?c:E(Math.abs(T),w),C&&(T=l2(T)),wn&&+T==0&&p!=="+"&&(wn=!1),B=(wn?p==="("?p:s:p==="-"||p==="("?"":p)+B,H=(b==="s"?Od[8+Td/3]:"")+H+(wn&&p==="("?")":""),I){for(U=-1,we=T.length;++U<we;)if(Ne=T.charCodeAt(U),48>Ne||Ne>57){H=(Ne===46?i+T.slice(U+1):T.slice(U))+H,T=T.slice(0,U);break}}}A&&!y&&(T=e(T,1/0));var Y=B.length+T.length+H.length,Ye=Y<g?new Array(g-Y+1).join(d):"";switch(A&&y&&(T=e(Ye+T,Ye.length?g-H.length:1/0),Ye=""),h){case"<":T=B+T+H+Ye;break;case"=":T=B+Ye+T+H;break;case"^":T=Ye.slice(0,Y=Ye.length>>1)+B+T+H+Ye.slice(Y);break;default:T=Ye+B+T+H;break}return o(T)}return L.toString=function(){return l+""},L}function f(l,d){var h=u((l=_t(l),l.type="f",l)),p=Math.max(-8,Math.min(8,Math.floor(gr(d)/3)))*3,m=Math.pow(10,-p),y=Od[8+p/3];return function(g){return h(m*g)+y}}return{format:u,formatPrefix:f}}var ra,le,uc;h2({thousands:",",grouping:[3],currency:["$",""]});function h2(t){return ra=d2(t),le=ra.format,uc=ra.formatPrefix,ra}function Bd(t){return Math.max(0,-gr(Math.abs(t)))}function Fd(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(gr(e)/3)))*3-gr(Math.abs(t)))}function Pd(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,gr(e)-gr(t))+1}var lc=new Date,fc=new Date;function de(t,e,n,r){function i(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return t(o=new Date(+o)),o},i.ceil=function(o){return t(o=new Date(o-1)),e(o,1),t(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=function(o,a){return e(o=new Date(+o),a==null?1:Math.floor(a)),o},i.range=function(o,a,s){var c=[],u;if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return c;do c.push(u=new Date(+o)),e(o,s),t(o);while(u<o&&o<a);return c},i.filter=function(o){return de(function(a){if(a>=a)for(;t(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!o(a););else for(;--s>=0;)for(;e(a,1),!o(a););})},n&&(i.count=function(o,a){return lc.setTime(+o),fc.setTime(+a),t(lc),t(fc),Math.floor(n(lc,fc))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}var ia=de(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});ia.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?de(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):ia};const dc=ia;ia.range;const Et=1e3,Ze=Et*60,St=Ze*60,Tn=St*24,hc=Tn*7,zd=Tn*30,pc=Tn*365;var Rd=de(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*Et)},function(t,e){return(e-t)/Et},function(t){return t.getUTCSeconds()});const Wt=Rd;Rd.range;var jd=de(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Et)},function(t,e){t.setTime(+t+e*Ze)},function(t,e){return(e-t)/Ze},function(t){return t.getMinutes()});const mc=jd;jd.range;var Ud=de(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Et-t.getMinutes()*Ze)},function(t,e){t.setTime(+t+e*St)},function(t,e){return(e-t)/St},function(t){return t.getHours()});const gc=Ud;Ud.range;var Gd=de(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Ze)/Tn,t=>t.getDate()-1);const In=Gd;Gd.range;function Nn(t){return de(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,n){e.setDate(e.getDate()+n*7)},function(e,n){return(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*Ze)/hc})}var di=Nn(0),oa=Nn(1),p2=Nn(2),m2=Nn(3),yr=Nn(4),g2=Nn(5),y2=Nn(6);di.range,oa.range,p2.range,m2.range,yr.range,g2.range,y2.range;var Hd=de(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()});const aa=Hd;Hd.range;var yc=de(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});yc.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:de(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)})};const Xt=yc;yc.range;var Qd=de(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*Ze)},function(t,e){return(e-t)/Ze},function(t){return t.getUTCMinutes()});const vc=Qd;Qd.range;var Vd=de(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*St)},function(t,e){return(e-t)/St},function(t){return t.getUTCHours()});const bc=Vd;Vd.range;var Yd=de(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/Tn},function(t){return t.getUTCDate()-1});const kn=Yd;Yd.range;function Ln(t){return de(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCDate(e.getUTCDate()+n*7)},function(e,n){return(n-e)/hc})}var hi=Ln(0),sa=Ln(1),v2=Ln(2),b2=Ln(3),vr=Ln(4),A2=Ln(5),w2=Ln(6);hi.range,sa.range,v2.range,b2.range,vr.range,A2.range,w2.range;var _d=de(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()});const ca=_d;_d.range;var Ac=de(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Ac.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:de(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})};const Zt=Ac;Ac.range;function Wd(t,e,n,r,i,o){const a=[[Wt,1,Et],[Wt,5,5*Et],[Wt,15,15*Et],[Wt,30,30*Et],[o,1,Ze],[o,5,5*Ze],[o,15,15*Ze],[o,30,30*Ze],[i,1,St],[i,3,3*St],[i,6,6*St],[i,12,12*St],[r,1,Tn],[r,2,2*Tn],[n,1,hc],[e,1,zd],[e,3,3*zd],[t,1,pc]];function s(u,f,l){const d=f<u;d&&([u,f]=[f,u]);const h=l&&typeof l.range=="function"?l:c(u,f,l),p=h?h.range(u,+f+1):[];return d?p.reverse():p}function c(u,f,l){const d=Math.abs(f-u)/l,h=Jo(([,,y])=>y).right(a,d);if(h===a.length)return t.every(Mn(u/pc,f/pc,l));if(h===0)return dc.every(Math.max(Mn(u,f,l),1));const[p,m]=a[d/a[h-1][2]<a[h][2]/d?h-1:h];return p.every(m)}return[s,c]}const[x2,C2]=Wd(Zt,ca,hi,kn,bc,vc),[E2,S2]=Wd(Xt,aa,di,In,gc,mc),pi="year",mi="quarter",gi="month",yi="week",vi="date",ua="day",wc="dayofyear",bi="hours",Ai="minutes",wi="seconds",la="milliseconds";[pi,mi,gi,yi,vi,ua,wc,bi,Ai,wi,la].reduce((t,e,n)=>(t[e]=1+n,t),{});const D2={[pi]:Xt,[mi]:aa.every(3),[gi]:aa,[yi]:di,[vi]:In,[ua]:In,[wc]:In,[bi]:gc,[Ai]:mc,[wi]:Wt,[la]:dc},M2={[pi]:Zt,[mi]:ca.every(3),[gi]:ca,[yi]:hi,[vi]:kn,[ua]:kn,[wc]:kn,[bi]:bc,[Ai]:vc,[wi]:Wt,[la]:dc};function T2(t){return D2[t]}function I2(t){return M2[t]}function xc(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Cc(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function xi(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Xd(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,s=t.months,c=t.shortMonths,u=Ci(i),f=Ei(i),l=Ci(o),d=Ei(o),h=Ci(a),p=Ei(a),m=Ci(s),y=Ei(s),g=Ci(c),A=Ei(c),w={a:wn,A:Y,b:Ye,B:Uo,c:null,d:eh,e:eh,f:J2,g:cA,G:lA,H:Z2,I:q2,j:K2,L:th,m:$2,M:eA,p:Go,q:Ys,Q:sh,s:ch,S:tA,u:nA,U:rA,V:iA,w:oA,W:aA,x:null,X:null,y:sA,Y:uA,Z:fA,"%":ah},C={a:ad,A:ik,b:ok,B:ak,c:null,d:rh,e:rh,f:mA,g:SA,G:MA,H:dA,I:hA,j:pA,L:ih,m:gA,M:yA,p:sk,q:ck,Q:sh,s:ch,S:vA,u:bA,U:AA,V:wA,w:xA,W:CA,x:null,X:null,y:EA,Y:DA,Z:TA,"%":ah},b={a:L,A:T,b:B,B:H,c:U,d:Jd,e:Jd,f:Y2,g:Kd,G:qd,H:$d,I:$d,j:G2,L:V2,m:U2,M:H2,p:I,q:j2,Q:W2,s:X2,S:Q2,u:B2,U:F2,V:P2,w:O2,W:z2,x:we,X:Ne,y:Kd,Y:qd,Z:R2,"%":_2};w.x=v(n,w),w.X=v(r,w),w.c=v(e,w),C.x=v(n,C),C.X=v(r,C),C.c=v(e,C);function v(O,G){return function(_){var M=[],ze=-1,K=0,_e=O.length,We,pr,ab;for(_ instanceof Date||(_=new Date(+_));++ze<_e;)O.charCodeAt(ze)===37&&(M.push(O.slice(K,ze)),(pr=Zd[We=O.charAt(++ze)])!=null?We=O.charAt(++ze):pr=We==="e"?" ":"0",(ab=G[We])&&(We=ab(_,pr)),M.push(We),K=ze+1);return M.push(O.slice(K,ze)),M.join("")}}function x(O,G){return function(_){var M=xi(1900,void 0,1),ze=E(M,O,_+="",0),K,_e;if(ze!=_.length)return null;if("Q"in M)return new Date(M.Q);if("s"in M)return new Date(M.s*1e3+("L"in M?M.L:0));if(G&&!("Z"in M)&&(M.Z=0),"p"in M&&(M.H=M.H%12+M.p*12),M.m===void 0&&(M.m="q"in M?M.q:0),"V"in M){if(M.V<1||M.V>53)return null;"w"in M||(M.w=1),"Z"in M?(K=Cc(xi(M.y,0,1)),_e=K.getUTCDay(),K=_e>4||_e===0?sa.ceil(K):sa(K),K=kn.offset(K,(M.V-1)*7),M.y=K.getUTCFullYear(),M.m=K.getUTCMonth(),M.d=K.getUTCDate()+(M.w+6)%7):(K=xc(xi(M.y,0,1)),_e=K.getDay(),K=_e>4||_e===0?oa.ceil(K):oa(K),K=In.offset(K,(M.V-1)*7),M.y=K.getFullYear(),M.m=K.getMonth(),M.d=K.getDate()+(M.w+6)%7)}else("W"in M||"U"in M)&&("w"in M||(M.w="u"in M?M.u%7:"W"in M?1:0),_e="Z"in M?Cc(xi(M.y,0,1)).getUTCDay():xc(xi(M.y,0,1)).getDay(),M.m=0,M.d="W"in M?(M.w+6)%7+M.W*7-(_e+5)%7:M.w+M.U*7-(_e+6)%7);return"Z"in M?(M.H+=M.Z/100|0,M.M+=M.Z%100,Cc(M)):xc(M)}}function E(O,G,_,M){for(var ze=0,K=G.length,_e=_.length,We,pr;ze<K;){if(M>=_e)return-1;if(We=G.charCodeAt(ze++),We===37){if(We=G.charAt(ze++),pr=b[We in Zd?G.charAt(ze++):We],!pr||(M=pr(O,_,M))<0)return-1}else if(We!=_.charCodeAt(M++))return-1}return M}function I(O,G,_){var M=u.exec(G.slice(_));return M?(O.p=f.get(M[0].toLowerCase()),_+M[0].length):-1}function L(O,G,_){var M=h.exec(G.slice(_));return M?(O.w=p.get(M[0].toLowerCase()),_+M[0].length):-1}function T(O,G,_){var M=l.exec(G.slice(_));return M?(O.w=d.get(M[0].toLowerCase()),_+M[0].length):-1}function B(O,G,_){var M=g.exec(G.slice(_));return M?(O.m=A.get(M[0].toLowerCase()),_+M[0].length):-1}function H(O,G,_){var M=m.exec(G.slice(_));return M?(O.m=y.get(M[0].toLowerCase()),_+M[0].length):-1}function U(O,G,_){return E(O,e,G,_)}function we(O,G,_){return E(O,n,G,_)}function Ne(O,G,_){return E(O,r,G,_)}function wn(O){return a[O.getDay()]}function Y(O){return o[O.getDay()]}function Ye(O){return c[O.getMonth()]}function Uo(O){return s[O.getMonth()]}function Go(O){return i[+(O.getHours()>=12)]}function Ys(O){return 1+~~(O.getMonth()/3)}function ad(O){return a[O.getUTCDay()]}function ik(O){return o[O.getUTCDay()]}function ok(O){return c[O.getUTCMonth()]}function ak(O){return s[O.getUTCMonth()]}function sk(O){return i[+(O.getUTCHours()>=12)]}function ck(O){return 1+~~(O.getUTCMonth()/3)}return{format:function(O){var G=v(O+="",w);return G.toString=function(){return O},G},parse:function(O){var G=x(O+="",!1);return G.toString=function(){return O},G},utcFormat:function(O){var G=v(O+="",C);return G.toString=function(){return O},G},utcParse:function(O){var G=x(O+="",!0);return G.toString=function(){return O},G}}}var Zd={"-":"",_:" ",0:"0"},he=/^\s*\d+/,N2=/^%/,k2=/[\\^$*+?|[\]().{}]/g;function Q(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function L2(t){return t.replace(k2,"\\$&")}function Ci(t){return new RegExp("^(?:"+t.map(L2).join("|")+")","i")}function Ei(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function O2(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function B2(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function F2(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function P2(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function z2(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function qd(t,e,n){var r=he.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Kd(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function R2(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function j2(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function U2(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Jd(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function G2(t,e,n){var r=he.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function $d(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function H2(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Q2(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function V2(t,e,n){var r=he.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Y2(t,e,n){var r=he.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function _2(t,e,n){var r=N2.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function W2(t,e,n){var r=he.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function X2(t,e,n){var r=he.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function eh(t,e){return Q(t.getDate(),e,2)}function Z2(t,e){return Q(t.getHours(),e,2)}function q2(t,e){return Q(t.getHours()%12||12,e,2)}function K2(t,e){return Q(1+In.count(Xt(t),t),e,3)}function th(t,e){return Q(t.getMilliseconds(),e,3)}function J2(t,e){return th(t,e)+"000"}function $2(t,e){return Q(t.getMonth()+1,e,2)}function eA(t,e){return Q(t.getMinutes(),e,2)}function tA(t,e){return Q(t.getSeconds(),e,2)}function nA(t){var e=t.getDay();return e===0?7:e}function rA(t,e){return Q(di.count(Xt(t)-1,t),e,2)}function nh(t){var e=t.getDay();return e>=4||e===0?yr(t):yr.ceil(t)}function iA(t,e){return t=nh(t),Q(yr.count(Xt(t),t)+(Xt(t).getDay()===4),e,2)}function oA(t){return t.getDay()}function aA(t,e){return Q(oa.count(Xt(t)-1,t),e,2)}function sA(t,e){return Q(t.getFullYear()%100,e,2)}function cA(t,e){return t=nh(t),Q(t.getFullYear()%100,e,2)}function uA(t,e){return Q(t.getFullYear()%1e4,e,4)}function lA(t,e){var n=t.getDay();return t=n>=4||n===0?yr(t):yr.ceil(t),Q(t.getFullYear()%1e4,e,4)}function fA(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Q(e/60|0,"0",2)+Q(e%60,"0",2)}function rh(t,e){return Q(t.getUTCDate(),e,2)}function dA(t,e){return Q(t.getUTCHours(),e,2)}function hA(t,e){return Q(t.getUTCHours()%12||12,e,2)}function pA(t,e){return Q(1+kn.count(Zt(t),t),e,3)}function ih(t,e){return Q(t.getUTCMilliseconds(),e,3)}function mA(t,e){return ih(t,e)+"000"}function gA(t,e){return Q(t.getUTCMonth()+1,e,2)}function yA(t,e){return Q(t.getUTCMinutes(),e,2)}function vA(t,e){return Q(t.getUTCSeconds(),e,2)}function bA(t){var e=t.getUTCDay();return e===0?7:e}function AA(t,e){return Q(hi.count(Zt(t)-1,t),e,2)}function oh(t){var e=t.getUTCDay();return e>=4||e===0?vr(t):vr.ceil(t)}function wA(t,e){return t=oh(t),Q(vr.count(Zt(t),t)+(Zt(t).getUTCDay()===4),e,2)}function xA(t){return t.getUTCDay()}function CA(t,e){return Q(sa.count(Zt(t)-1,t),e,2)}function EA(t,e){return Q(t.getUTCFullYear()%100,e,2)}function SA(t,e){return t=oh(t),Q(t.getUTCFullYear()%100,e,2)}function DA(t,e){return Q(t.getUTCFullYear()%1e4,e,4)}function MA(t,e){var n=t.getUTCDay();return t=n>=4||n===0?vr(t):vr.ceil(t),Q(t.getUTCFullYear()%1e4,e,4)}function TA(){return"+0000"}function ah(){return"%"}function sh(t){return+t}function ch(t){return Math.floor(+t/1e3)}var br,Ec,uh,Sc,lh;IA({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function IA(t){return br=Xd(t),Ec=br.format,uh=br.parse,Sc=br.utcFormat,lh=br.utcParse,br}function Si(t){const e={};return n=>e[n]||(e[n]=t(n))}function NA(t,e){return n=>{const r=t(n),i=r.indexOf(e);if(i<0)return r;let o=kA(r,i);const a=o<r.length?r.slice(o):"";for(;--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function kA(t,e){let n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}function LA(t){const e=Si(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(r){const i=_t(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return NA(e(i),e(".1f")(1)[1])}else return e(i)},formatSpan(r,i,o,a){a=_t(a==null?",f":a);const s=Mn(r,i,o),c=Math.max(Math.abs(r),Math.abs(i));let u;if(a.precision==null)switch(a.type){case"s":return isNaN(u=Fd(s,c))||(a.precision=u),n(a,c);case"":case"e":case"g":case"p":case"r":{isNaN(u=Pd(s,c))||(a.precision=u-(a.type==="e"));break}case"f":case"%":{isNaN(u=Bd(s))||(a.precision=u-(a.type==="%")*2);break}}return e(a)}}}OA();function OA(){return LA({format:le,formatPrefix:uc})}function fh(t,e,n){n=n||{},Re(n)||oe("Invalid time multi-format specifier: ".concat(n));const r=e(wi),i=e(Ai),o=e(bi),a=e(vi),s=e(yi),c=e(gi),u=e(mi),f=e(pi),l=t(n[la]||".%L"),d=t(n[wi]||":%S"),h=t(n[Ai]||"%I:%M"),p=t(n[bi]||"%I %p"),m=t(n[vi]||n[ua]||"%a %d"),y=t(n[yi]||"%b %d"),g=t(n[gi]||"%B"),A=t(n[mi]||"%B"),w=t(n[pi]||"%Y");return C=>(r(C)<C?l:i(C)<C?d:o(C)<C?h:a(C)<C?p:c(C)<C?s(C)<C?m:y:f(C)<C?u(C)<C?g:A:w)(C)}function dh(t){const e=Si(t.format),n=Si(t.utcFormat);return{timeFormat:r=>ee(r)?e(r):fh(e,T2,r),utcFormat:r=>ee(r)?n(r):fh(n,I2,r),timeParse:Si(t.parse),utcParse:Si(t.utcParse)}}let Dc;BA();function BA(){return Dc=dh({format:Ec,parse:uh,utcFormat:Sc,utcParse:lh})}function FA(t){return dh(Xd(t))}function PA(t){return arguments.length?Dc=FA(t):Dc}const zA=/^(data:|([A-Za-z]+:)?\/\/)/,RA=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,jA=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,hh="file://";function UA(t,e){return n=>({options:n||{},sanitize:HA,load:GA,fileAccess:!!e,file:QA(e),http:YA(t)})}async function GA(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function HA(t,e){e=Ks({},this.options,e);const n=this.fileAccess,r={href:null};let i,o,a;const s=RA.test(t.replace(jA,""));(t==null||typeof t!="string"||!s)&&oe("Sanitize failure, invalid URI: "+qo(t));const c=zA.test(t);return(a=e.baseURL)&&!c&&(!t.startsWith("/")&&!a.endsWith("/")&&(t="/"+t),t=a+t),o=(i=t.startsWith(hh))||e.mode==="file"||e.mode!=="http"&&!c&&n,i?t=t.slice(hh.length):t.startsWith("//")&&(e.defaultProtocol==="file"?(t=t.slice(2),o=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!o}),r.href=t,e.target&&(r.target=e.target+""),e.rel&&(r.rel=e.rel+""),e.context==="image"&&e.crossOrigin&&(r.crossOrigin=e.crossOrigin+""),r}function QA(t){return t?e=>new Promise((n,r)=>{t.readFile(e,(i,o)=>{i?r(i):n(o)})}):VA}async function VA(){oe("No file system access.")}function YA(t){return t?async function(e,n){const r=Ks({},this.options.http,n),i=n&&n.response,o=await t(e,r);return o.ok?ke(o[i])?o[i]():o.text():oe(o.status+""+o.statusText)}:_A}async function _A(){oe("No HTTP fetch method available.")}const WA=t=>t!=null&&t===t,XA=t=>t==="true"||t==="false"||t===!0||t===!1,ZA=t=>!Number.isNaN(Date.parse(t)),ph=t=>!Number.isNaN(+t)&&!(t instanceof Date),qA=t=>ph(t)&&Number.isInteger(+t),mh={boolean:Lb,integer:ui,number:ui,date:Bb,string:Fb,unknown:Yo},fa=[XA,qA,ph,ZA],KA=["boolean","integer","number","date"];function gh(t,e){if(!t||!t.length)return"unknown";const n=t.length,r=fa.length,i=fa.map((o,a)=>a+1);for(let o=0,a=0,s,c;o<n;++o)for(c=e?t[o][e]:t[o],s=0;s<r;++s)if(i[s]&&WA(c)&&!fa[s](c)&&(i[s]=0,++a,a===fa.length))return"string";return KA[i.reduce((o,a)=>o===0?a:o,0)-1]}function JA(t,e){return e.reduce((n,r)=>(n[r]=gh(t,r),n),{})}function yh(t){const e=function(n,r){const i={delimiter:t};return Mc(n,r?Ks(r,i):i)};return e.responseType="text",e}function Mc(t,e){return e.header&&(t=e.header.map(qo).join(e.delimiter)+`
6
- `+t),wd(e.delimiter).parse(t+"")}Mc.responseType="text";function $A(t){return typeof Buffer=="function"&&ke(Buffer.isBuffer)?Buffer.isBuffer(t):!1}function Tc(t,e){const n=e&&e.property?Vo(e.property):Yo;return Re(t)&&!$A(t)?ew(n(t),e):n(JSON.parse(t))}Tc.responseType="json";function ew(t,e){return!Xe(t)&&Nb(t)&&(t=[...t]),e&&e.copy?JSON.parse(JSON.stringify(t)):t}const tw={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function vh(t,e){let n,r,i,o;return t=Tc(t,e),e&&e.feature?(n=Vb,i=e.feature):e&&e.mesh?(n=_b,i=e.mesh,o=tw[e.filter]):oe("Missing TopoJSON feature or mesh parameter."),r=(r=t.objects[i])?n(t,r,o):oe("Invalid TopoJSON object: "+i),r&&r.features||[r]}vh.responseType="json";const Ic={dsv:Mc,csv:yh(","),tsv:yh(" "),json:Tc,topojson:vh};function bh(t,e){return arguments.length>1?(Ic[t]=e,this):En(Ic,t)?Ic[t]:null}function Ah(t,e,n,r){e=e||{};const i=bh(e.type||"json");return i||oe("Unknown data format type: "+e.type),t=i(t,e),e.parse&&nw(t,e.parse,n,r),En(t,"columns")&&delete t.columns,t}function nw(t,e,n,r){if(!t.length)return;const i=PA();n=n||i.timeParse,r=r||i.utcParse;let o=t.columns||Object.keys(t[0]),a,s,c,u,f,l;e==="auto"&&(e=JA(t,o)),o=Object.keys(e);const d=o.map(h=>{const p=e[h];let m,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return m=p.split(/:(.+)?/,2),y=m[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(m[0]==="utc"?r:n)(y);if(!mh[p])throw Error("Illegal format pattern: "+h+":"+p);return mh[p]});for(c=0,f=t.length,l=o.length;c<f;++c)for(a=t[c],u=0;u<l;++u)s=o[u],a[s]=d[u](a[s])}const Di=UA(typeof fetch<"u"&&fetch,null),wh=1;function Nc(){let t=[0,1],e=[0,1],n=1,r=1,i=0,o=0,a=.5,s=0;const u=f=>(f+a-t[0])/n*r+e[0];return u.invert=f=>(f-e[0])/r*n+t[0]-a,u.domain=function(f){if(arguments.length){if(t=Kb(f),n=t[1]-t[0],n<wh){n=wh;const l=(t[0]+t[1])/2;t[0]=l-n/2,t[1]=l+n/2}return u}else return t},u.range=function(f){return arguments.length?(e=[...f],r=e[1]-e[0],u):e},u.numberingOffset=function(f){return arguments.length?(s=f,u):s},u.padding=function(f){return arguments.length?(o=f,i=Math.min(1,f),u):i},u.paddingInner=function(f){return arguments.length?(i=Math.min(1,f),u):i},u.paddingOuter=function(f){return arguments.length?(o=f,u):o},u.align=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),u):a},u.step=()=>r/n,u.bandwidth=()=>u.step(),u.ticks=f=>{const l=u.align(),d=u.numberingOffset();return ea(t[0]-l+d,t[1]-l+d,Math.min(f,Math.ceil(n))).filter(Number.isInteger).map(h=>h-s)},u.tickFormat=(f,l)=>{if(l)throw new Error("Index scale's tickFormat does not support a specifier!");const h=Mn(t[0],t[1],Math.min(f,Math.ceil(n)))<1e5?le(","):le(".3s");return p=>h(p+s)},u.copy=()=>Nc().domain(t).range(e).paddingInner(i).paddingOuter(o).numberingOffset(s),u}function rw(){const t=Nc().numberingOffset(1);let e;t.genome=function(r){return arguments.length?(e=r,t):e},t.ticks=r=>{if(!e)return[];const i=t.domain(),o=t.numberingOffset(),[a,s]=[Math.max(i[0],0),Math.min(i[1],e.totalSize-1)].map(f=>e.toChromosome(f)),c=Math.max(1,Mn(i[0],i[1],r)),u=[];for(let f=a.index;f<=s.index;f++){const l=e.chromosomes[f],d=Math.max(l.continuousStart+c,i[0]-(i[0]-l.continuousStart)%c),h=Math.min(l.continuousEnd-c/4,i[1]+1);for(let p=d;p<=h;p+=c){const m=p-o;m>=i[0]&&m<i[1]&&u.push(m)}}return u},t.tickFormat=(r,i)=>{if(!e)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const o=t.domain(),a=o[1]-o[0],s=t.numberingOffset(),u=Mn(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?le(","):le(".3s"),f=l=>l-e.toChromosome(l).continuousStart;return l=>u(f(l)+s)};const n=t.copy;return t.copy=()=>n().genome(e),t}function iw(t){return t.type=="locus"}function lt(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function qt(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const kc=Symbol("implicit");function Lc(){var t=new Dn,e=[],n=[],r=kc;function i(o){let a=t.get(o);if(a===void 0){if(r!==kc)return r;t.set(o,a=e.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new Dn;for(const a of o)t.has(a)||t.set(a,e.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return Lc(e,n).unknown(r)},lt.apply(i,arguments),i}function Ar(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Mi(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Kt(){}var On=.7,wr=1/On,xr="\\s*([+-]?\\d+)\\s*",Ti="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ft="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ow=/^#([0-9a-f]{3,8})$/,aw=new RegExp(`^rgb\\(${xr},${xr},${xr}\\)$`),sw=new RegExp(`^rgb\\(${ft},${ft},${ft}\\)$`),cw=new RegExp(`^rgba\\(${xr},${xr},${xr},${Ti}\\)$`),uw=new RegExp(`^rgba\\(${ft},${ft},${ft},${Ti}\\)$`),lw=new RegExp(`^hsl\\(${Ti},${ft},${ft}\\)$`),fw=new RegExp(`^hsla\\(${Ti},${ft},${ft},${Ti}\\)$`),xh={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};Ar(Kt,Bn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Ch,formatHex:Ch,formatHex8:dw,formatHsl:hw,formatRgb:Eh,toString:Eh});function Ch(){return this.rgb().formatHex()}function dw(){return this.rgb().formatHex8()}function hw(){return Ih(this).formatHsl()}function Eh(){return this.rgb().formatRgb()}function Bn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=ow.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?Sh(e):n===3?new pe(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?da(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?da(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=aw.exec(t))?new pe(e[1],e[2],e[3],1):(e=sw.exec(t))?new pe(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=cw.exec(t))?da(e[1],e[2],e[3],e[4]):(e=uw.exec(t))?da(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=lw.exec(t))?Th(e[1],e[2]/100,e[3]/100,1):(e=fw.exec(t))?Th(e[1],e[2]/100,e[3]/100,e[4]):xh.hasOwnProperty(t)?Sh(xh[t]):t==="transparent"?new pe(NaN,NaN,NaN,0):null}function Sh(t){return new pe(t>>16&255,t>>8&255,t&255,1)}function da(t,e,n,r){return r<=0&&(t=e=n=NaN),new pe(t,e,n,r)}function Oc(t){return t instanceof Kt||(t=Bn(t)),t?(t=t.rgb(),new pe(t.r,t.g,t.b,t.opacity)):new pe}function ha(t,e,n,r){return arguments.length===1?Oc(t):new pe(t,e,n,r==null?1:r)}function pe(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Ar(pe,ha,Mi(Kt,{brighter(t){return t=t==null?wr:Math.pow(wr,t),new pe(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?On:Math.pow(On,t),new pe(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new pe(Fn(this.r),Fn(this.g),Fn(this.b),pa(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Dh,formatHex:Dh,formatHex8:pw,formatRgb:Mh,toString:Mh}));function Dh(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}`}function pw(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}${Pn((isNaN(this.opacity)?1:this.opacity)*255)}`}function Mh(){const t=pa(this.opacity);return`${t===1?"rgb(":"rgba("}${Fn(this.r)}, ${Fn(this.g)}, ${Fn(this.b)}${t===1?")":`, ${t})`}`}function pa(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Fn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Pn(t){return t=Fn(t),(t<16?"0":"")+t.toString(16)}function Th(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new rt(t,e,n,r)}function Ih(t){if(t instanceof rt)return new rt(t.h,t.s,t.l,t.opacity);if(t instanceof Kt||(t=Bn(t)),!t)return new rt;if(t instanceof rt)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,s=o-i,c=(o+i)/2;return s?(e===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-e)/s+2:a=(e-n)/s+4,s/=c<.5?o+i:2-o-i,a*=60):s=c>0&&c<1?0:a,new rt(a,s,c,t.opacity)}function Bc(t,e,n,r){return arguments.length===1?Ih(t):new rt(t,e,n,r==null?1:r)}function rt(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Ar(rt,Bc,Mi(Kt,{brighter(t){return t=t==null?wr:Math.pow(wr,t),new rt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?On:Math.pow(On,t),new rt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new pe(Fc(t>=240?t-240:t+120,i,r),Fc(t,i,r),Fc(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new rt(Nh(this.h),ma(this.s),ma(this.l),pa(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 t=pa(this.opacity);return`${t===1?"hsl(":"hsla("}${Nh(this.h)}, ${ma(this.s)*100}%, ${ma(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Nh(t){return t=(t||0)%360,t<0?t+360:t}function ma(t){return Math.max(0,Math.min(1,t||0))}function Fc(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const kh=Math.PI/180,Lh=180/Math.PI,ga=18,Oh=.96422,Bh=1,Fh=.82521,Ph=4/29,Cr=6/29,zh=3*Cr*Cr,mw=Cr*Cr*Cr;function Rh(t){if(t instanceof dt)return new dt(t.l,t.a,t.b,t.opacity);if(t instanceof Dt)return jh(t);t instanceof pe||(t=Oc(t));var e=Uc(t.r),n=Uc(t.g),r=Uc(t.b),i=zc((.2225045*e+.7168786*n+.0606169*r)/Bh),o,a;return e===n&&n===r?o=a=i:(o=zc((.4360747*e+.3850649*n+.1430804*r)/Oh),a=zc((.0139322*e+.0971045*n+.7141733*r)/Fh)),new dt(116*i-16,500*(o-i),200*(i-a),t.opacity)}function Pc(t,e,n,r){return arguments.length===1?Rh(t):new dt(t,e,n,r==null?1:r)}function dt(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}Ar(dt,Pc,Mi(Kt,{brighter(t){return new dt(this.l+ga*(t==null?1:t),this.a,this.b,this.opacity)},darker(t){return new dt(this.l-ga*(t==null?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=Oh*Rc(e),t=Bh*Rc(t),n=Fh*Rc(n),new pe(jc(3.1338561*e-1.6168667*t-.4906146*n),jc(-.9787684*e+1.9161415*t+.033454*n),jc(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function zc(t){return t>mw?Math.pow(t,1/3):t/zh+Ph}function Rc(t){return t>Cr?t*t*t:zh*(t-Ph)}function jc(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Uc(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function gw(t){if(t instanceof Dt)return new Dt(t.h,t.c,t.l,t.opacity);if(t instanceof dt||(t=Rh(t)),t.a===0&&t.b===0)return new Dt(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Lh;return new Dt(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Gc(t,e,n,r){return arguments.length===1?gw(t):new Dt(t,e,n,r==null?1:r)}function Dt(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function jh(t){if(isNaN(t.h))return new dt(t.l,0,0,t.opacity);var e=t.h*kh;return new dt(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}Ar(Dt,Gc,Mi(Kt,{brighter(t){return new Dt(this.h,this.c,this.l+ga*(t==null?1:t),this.opacity)},darker(t){return new Dt(this.h,this.c,this.l-ga*(t==null?1:t),this.opacity)},rgb(){return jh(this).rgb()}}));var Uh=-.14861,Hc=1.78277,Qc=-.29227,ya=-.90649,Ii=1.97294,Gh=Ii*ya,Hh=Ii*Hc,Qh=Hc*Qc-ya*Uh;function yw(t){if(t instanceof zn)return new zn(t.h,t.s,t.l,t.opacity);t instanceof pe||(t=Oc(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(Qh*r+Gh*e-Hh*n)/(Qh+Gh-Hh),o=r-i,a=(Ii*(n-i)-Qc*o)/ya,s=Math.sqrt(a*a+o*o)/(Ii*i*(1-i)),c=s?Math.atan2(a,o)*Lh-120:NaN;return new zn(c<0?c+360:c,s,i,t.opacity)}function Vc(t,e,n,r){return arguments.length===1?yw(t):new zn(t,e,n,r==null?1:r)}function zn(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Ar(zn,Vc,Mi(Kt,{brighter(t){return t=t==null?wr:Math.pow(wr,t),new zn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?On:Math.pow(On,t),new zn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*kh,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new pe(255*(e+n*(Uh*r+Hc*i)),255*(e+n*(Qc*r+ya*i)),255*(e+n*(Ii*r)),this.opacity)}}));function Vh(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}function Yh(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,s=r<e-1?t[r+2]:2*o-i;return Vh((n-r/e)*e,a,i,o,s)}}function _h(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return Vh((n-r/e)*e,i,o,a,s)}}const va=t=>()=>t;function Wh(t,e){return function(n){return t+n*e}}function vw(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function ba(t,e){var n=e-t;return n?Wh(t,n>180||n<-180?n-360*Math.round(n/360):n):va(isNaN(t)?e:t)}function bw(t){return(t=+t)==1?me:function(e,n){return n-e?vw(e,n,t):va(isNaN(e)?n:e)}}function me(t,e){var n=e-t;return n?Wh(t,n):va(isNaN(t)?e:t)}const Yc=function t(e){var n=bw(e);function r(i,o){var a=n((i=ha(i)).r,(o=ha(o)).r),s=n(i.g,o.g),c=n(i.b,o.b),u=me(i.opacity,o.opacity);return function(f){return i.r=a(f),i.g=s(f),i.b=c(f),i.opacity=u(f),i+""}}return r.gamma=t,r}(1);function Xh(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=ha(e[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=t(r),i=t(i),o=t(o),s.opacity=1,function(c){return s.r=r(c),s.g=i(c),s.b=o(c),s+""}}}var Aw=Xh(Yh),ww=Xh(_h);function _c(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=t[i]*(1-o)+e[i]*o;return r}}function Zh(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function xw(t,e){return(Zh(e)?_c:qh)(t,e)}function qh(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=Jt(t[a],e[a]);for(;a<n;++a)o[a]=e[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function Kh(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function it(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Jh(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=Jt(t[i],e[i]):r[i]=e[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var Wc=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Xc=new RegExp(Wc.source,"g");function Cw(t){return function(){return t}}function Ew(t){return function(e){return t(e)+""}}function $h(t,e){var n=Wc.lastIndex=Xc.lastIndex=0,r,i,o,a=-1,s=[],c=[];for(t=t+"",e=e+"";(r=Wc.exec(t))&&(i=Xc.exec(e));)(o=i.index)>n&&(o=e.slice(n,o),s[a]?s[a]+=o:s[++a]=o),(r=r[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,c.push({i:a,x:it(r,i)})),n=Xc.lastIndex;return n<e.length&&(o=e.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?c[0]?Ew(c[0].x):Cw(e):(e=c.length,function(u){for(var f=0,l;f<e;++f)s[(l=c[f]).i]=l.x(u);return s.join("")})}function Jt(t,e){var n=typeof e,r;return e==null||n==="boolean"?va(e):(n==="number"?it:n==="string"?(r=Bn(e))?(e=r,Yc):$h:e instanceof Bn?Yc:e instanceof Date?Kh:Zh(e)?_c:Array.isArray(e)?qh:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?Jh:it)(t,e)}function Sw(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function Dw(t,e){var n=ba(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Ni(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var e0=180/Math.PI,Zc={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function t0(t,e,n,r,i,o){var a,s,c;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),t*r<e*n&&(t=-t,e=-e,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*e0,skewX:Math.atan(c)*e0,scaleX:a,scaleY:s}}var Aa;function Mw(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Zc:t0(e.a,e.b,e.c,e.d,e.e,e.f)}function Tw(t){return t==null||(Aa||(Aa=document.createElementNS("http://www.w3.org/2000/svg","g")),Aa.setAttribute("transform",t),!(t=Aa.transform.baseVal.consolidate()))?Zc:(t=t.matrix,t0(t.a,t.b,t.c,t.d,t.e,t.f))}function n0(t,e,n,r){function i(u){return u.length?u.pop()+" ":""}function o(u,f,l,d,h,p){if(u!==l||f!==d){var m=h.push("translate(",null,e,null,n);p.push({i:m-4,x:it(u,l)},{i:m-2,x:it(f,d)})}else(l||d)&&h.push("translate("+l+e+d+n)}function a(u,f,l,d){u!==f?(u-f>180?f+=360:f-u>180&&(u+=360),d.push({i:l.push(i(l)+"rotate(",null,r)-2,x:it(u,f)})):f&&l.push(i(l)+"rotate("+f+r)}function s(u,f,l,d){u!==f?d.push({i:l.push(i(l)+"skewX(",null,r)-2,x:it(u,f)}):f&&l.push(i(l)+"skewX("+f+r)}function c(u,f,l,d,h,p){if(u!==l||f!==d){var m=h.push(i(h)+"scale(",null,",",null,")");p.push({i:m-4,x:it(u,l)},{i:m-2,x:it(f,d)})}else(l!==1||d!==1)&&h.push(i(h)+"scale("+l+","+d+")")}return function(u,f){var l=[],d=[];return u=t(u),f=t(f),o(u.translateX,u.translateY,f.translateX,f.translateY,l,d),a(u.rotate,f.rotate,l,d),s(u.skewX,f.skewX,l,d),c(u.scaleX,u.scaleY,f.scaleX,f.scaleY,l,d),u=f=null,function(h){for(var p=-1,m=d.length,y;++p<m;)l[(y=d[p]).i]=y.x(h);return l.join("")}}}var Iw=n0(Mw,"px, ","px)","deg)"),Nw=n0(Tw,", ",")",")"),kw=1e-12;function r0(t){return((t=Math.exp(t))+1/t)/2}function Lw(t){return((t=Math.exp(t))-1/t)/2}function Ow(t){return((t=Math.exp(2*t))-1)/(t+1)}const i0=function t(e,n,r){function i(o,a){var s=o[0],c=o[1],u=o[2],f=a[0],l=a[1],d=a[2],h=f-s,p=l-c,m=h*h+p*p,y,g;if(m<kw)g=Math.log(d/u)/e,y=function(x){return[s+x*h,c+x*p,u*Math.exp(e*x*g)]};else{var A=Math.sqrt(m),w=(d*d-u*u+r*m)/(2*u*n*A),C=(d*d-u*u-r*m)/(2*d*n*A),b=Math.log(Math.sqrt(w*w+1)-w),v=Math.log(Math.sqrt(C*C+1)-C);g=(v-b)/e,y=function(x){var E=x*g,I=r0(b),L=u/(n*A)*(I*Ow(e*E+b)-Lw(b));return[s+L*h,c+L*p,u*I/r0(e*E+b)]}}return y.duration=g*1e3*e/Math.SQRT2,y}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,c=s*s;return t(a,s,c)},i}(Math.SQRT2,2,4);function o0(t){return function(e,n){var r=t((e=Bc(e)).h,(n=Bc(n)).h),i=me(e.s,n.s),o=me(e.l,n.l),a=me(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=o(s),e.opacity=a(s),e+""}}}const Bw=o0(ba);var Fw=o0(me);function Pw(t,e){var n=me((t=Pc(t)).l,(e=Pc(e)).l),r=me(t.a,e.a),i=me(t.b,e.b),o=me(t.opacity,e.opacity);return function(a){return t.l=n(a),t.a=r(a),t.b=i(a),t.opacity=o(a),t+""}}function a0(t){return function(e,n){var r=t((e=Gc(e)).h,(n=Gc(n)).h),i=me(e.c,n.c),o=me(e.l,n.l),a=me(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=o(s),e.opacity=a(s),e+""}}}const zw=a0(ba);var Rw=a0(me);function s0(t){return function e(n){n=+n;function r(i,o){var a=t((i=Vc(i)).h,(o=Vc(o)).h),s=me(i.s,o.s),c=me(i.l,o.l),u=me(i.opacity,o.opacity);return function(f){return i.h=a(f),i.s=s(f),i.l=c(Math.pow(f,n)),i.opacity=u(f),i+""}}return r.gamma=e,r}(1)}const jw=s0(ba);var Uw=s0(me);function qc(t,e){e===void 0&&(e=t,t=Jt);for(var n=0,r=e.length-1,i=e[0],o=new Array(r<0?0:r);n<r;)o[n]=t(i,i=e[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function Gw(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}const Hw=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Jt,interpolateArray:xw,interpolateBasis:Yh,interpolateBasisClosed:_h,interpolateDate:Kh,interpolateDiscrete:Sw,interpolateHue:Dw,interpolateNumber:it,interpolateNumberArray:_c,interpolateObject:Jh,interpolateRound:Ni,interpolateString:$h,interpolateTransformCss:Iw,interpolateTransformSvg:Nw,interpolateZoom:i0,interpolateRgb:Yc,interpolateRgbBasis:Aw,interpolateRgbBasisClosed:ww,interpolateHsl:Bw,interpolateHslLong:Fw,interpolateLab:Pw,interpolateHcl:zw,interpolateHclLong:Rw,interpolateCubehelix:jw,interpolateCubehelixLong:Uw,piecewise:qc,quantize:Gw},Symbol.toStringTag,{value:"Module"}));function Qw(t){return function(){return t}}function Kc(t){return+t}var c0=[0,1];function Oe(t){return t}function Jc(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:Qw(isNaN(e)?NaN:.5)}function Vw(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function Yw(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i<r?(r=Jc(i,r),o=n(a,o)):(r=Jc(r,i),o=n(o,a)),function(s){return o(r(s))}}function _w(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)i[a]=Jc(t[a],t[a+1]),o[a]=n(e[a],e[a+1]);return function(s){var c=mr(t,s,1,r)-1;return o[c](i[c](s))}}function ki(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function wa(){var t=c0,e=c0,n=Jt,r,i,o,a=Oe,s,c,u;function f(){var d=Math.min(t.length,e.length);return a!==Oe&&(a=Vw(t[0],t[d-1])),s=d>2?_w:Yw,c=u=null,l}function l(d){return d==null||isNaN(d=+d)?o:(c||(c=s(t.map(r),e,n)))(r(a(d)))}return l.invert=function(d){return a(i((u||(u=s(e,t.map(r),it)))(d)))},l.domain=function(d){return arguments.length?(t=Array.from(d,Kc),f()):t.slice()},l.range=function(d){return arguments.length?(e=Array.from(d),f()):e.slice()},l.rangeRound=function(d){return e=Array.from(d),n=Ni,f()},l.clamp=function(d){return arguments.length?(a=d?!0:Oe,f()):a!==Oe},l.interpolate=function(d){return arguments.length?(n=d,f()):n},l.unknown=function(d){return arguments.length?(o=d,l):o},function(d,h){return r=d,i=h,f()}}function u0(){return wa()(Oe,Oe)}function l0(t,e,n,r){var i=Mn(t,e,n),o;switch(r=_t(r==null?",f":r),r.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=Fd(i,a))&&(r.precision=o),uc(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Pd(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Bd(i))&&(r.precision=o-(r.type==="%")*2);break}}return le(r)}function Rn(t){var e=t.domain;return t.ticks=function(n){var r=e();return ea(r[0],r[r.length-1],n==null?10:n)},t.tickFormat=function(n,r){var i=e();return l0(i[0],i[i.length-1],n==null?10:n,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,o=r.length-1,a=r[i],s=r[o],c,u,f=10;for(s<a&&(u=a,a=s,s=u,u=i,i=o,o=u);f-- >0;){if(u=Md(a,s,n),u===c)return r[i]=a,r[o]=s,e(r);if(u>0)a=Math.floor(a/u)*u,s=Math.ceil(s/u)*u;else if(u<0)a=Math.ceil(a*u)/u,s=Math.floor(s*u)/u;else break;c=u}return t},t}function f0(){var t=u0();return t.copy=function(){return ki(t,f0())},lt.apply(t,arguments),Rn(t)}function d0(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,Kc),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return d0(t).unknown(e)},t=arguments.length?Array.from(t,Kc):[0,1],Rn(n)}function h0(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],o=t[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),t[n]=e.floor(i),t[r]=e.ceil(o),t}function p0(t){return Math.log(t)}function m0(t){return Math.exp(t)}function Ww(t){return-Math.log(-t)}function Xw(t){return-Math.exp(-t)}function Zw(t){return isFinite(t)?+("1e"+t):t<0?0:t}function qw(t){return t===10?Zw:t===Math.E?Math.exp:e=>Math.pow(t,e)}function Kw(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function g0(t){return(e,n)=>-t(-e,n)}function $c(t){const e=t(p0,m0),n=e.domain;let r=10,i,o;function a(){return i=Kw(r),o=qw(r),n()[0]<0?(i=g0(i),o=g0(o),t(Ww,Xw)):t(p0,m0),e}return e.base=function(s){return arguments.length?(r=+s,a()):r},e.domain=function(s){return arguments.length?(n(s),a()):n()},e.ticks=s=>{const c=n();let u=c[0],f=c[c.length-1];const l=f<u;l&&([u,f]=[f,u]);let d=i(u),h=i(f),p,m;const y=s==null?10:+s;let g=[];if(!(r%1)&&h-d<y){if(d=Math.floor(d),h=Math.ceil(h),u>0){for(;d<=h;++d)for(p=1;p<r;++p)if(m=d<0?p/o(-d):p*o(d),!(m<u)){if(m>f)break;g.push(m)}}else for(;d<=h;++d)for(p=r-1;p>=1;--p)if(m=d>0?p/o(-d):p*o(d),!(m<u)){if(m>f)break;g.push(m)}g.length*2<y&&(g=ea(u,f,y))}else g=ea(d,h,Math.min(h-d,y)).map(o);return l?g.reverse():g},e.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=_t(c)).precision==null&&(c.trim=!0),c=le(c)),s===1/0)return c;const u=Math.max(1,r*s/e.ticks().length);return f=>{let l=f/o(Math.round(i(f)));return l*r<r-.5&&(l*=r),l<=u?c(f):""}},e.nice=()=>n(h0(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),e}function eu(){const t=$c(wa()).domain([1,10]);return t.copy=()=>ki(t,eu()).base(t.base()),lt.apply(t,arguments),t}function y0(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function v0(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function tu(t){var e=1,n=t(y0(e),v0(e));return n.constant=function(r){return arguments.length?t(y0(e=+r),v0(e)):e},Rn(n)}function b0(){var t=tu(wa());return t.copy=function(){return ki(t,b0()).constant(t.constant())},lt.apply(t,arguments)}function A0(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function Jw(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function $w(t){return t<0?-t*t:t*t}function nu(t){var e=t(Oe,Oe),n=1;function r(){return n===1?t(Oe,Oe):n===.5?t(Jw,$w):t(A0(n),A0(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},Rn(e)}function ru(){var t=nu(wa());return t.copy=function(){return ki(t,ru()).exponent(t.exponent())},lt.apply(t,arguments),t}function ex(){return ru.apply(null,arguments).exponent(.5)}function w0(){var t=[],e=[],n=[],r;function i(){var a=0,s=Math.max(1,e.length);for(n=new Array(s-1);++a<s;)n[a-1]=sc(t,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:e[mr(n,a)]}return o.invertExtent=function(a){var s=e.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},o.domain=function(a){if(!arguments.length)return t.slice();t=[];for(let s of a)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(Sn),i()},o.range=function(a){return arguments.length?(e=Array.from(a),i()):e.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return w0().domain(t).range(e).unknown(r)},lt.apply(o,arguments)}function x0(){var t=0,e=1,n=1,r=[.5],i=[0,1],o;function a(c){return c!=null&&c<=c?i[mr(r,c,0,n)]:o}function s(){var c=-1;for(r=new Array(n);++c<n;)r[c]=((c+1)*e-(c-n)*t)/(n+1);return a}return a.domain=function(c){return arguments.length?([t,e]=c,t=+t,e=+e,s()):[t,e]},a.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,s()):i.slice()},a.invertExtent=function(c){var u=i.indexOf(c);return u<0?[NaN,NaN]:u<1?[t,r[0]]:u>=n?[r[n-1],e]:[r[u-1],r[u]]},a.unknown=function(c){return arguments.length&&(o=c),a},a.thresholds=function(){return r.slice()},a.copy=function(){return x0().domain([t,e]).range(i).unknown(o)},lt.apply(Rn(a),arguments)}function C0(){var t=[.5],e=[0,1],n,r=1;function i(o){return o!=null&&o<=o?e[mr(t,o,0,r)]:n}return i.domain=function(o){return arguments.length?(t=Array.from(o),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(o){return arguments.length?(e=Array.from(o),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(o){var a=e.indexOf(o);return[t[a-1],t[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return C0().domain(t).range(e).unknown(n)},lt.apply(i,arguments)}function tx(t){return new Date(t)}function nx(t){return t instanceof Date?+t:+new Date(+t)}function iu(t,e,n,r,i,o,a,s,c,u){var f=u0(),l=f.invert,d=f.domain,h=u(".%L"),p=u(":%S"),m=u("%I:%M"),y=u("%I %p"),g=u("%a %d"),A=u("%b %d"),w=u("%B"),C=u("%Y");function b(v){return(c(v)<v?h:s(v)<v?p:a(v)<v?m:o(v)<v?y:r(v)<v?i(v)<v?g:A:n(v)<v?w:C)(v)}return f.invert=function(v){return new Date(l(v))},f.domain=function(v){return arguments.length?d(Array.from(v,nx)):d().map(tx)},f.ticks=function(v){var x=d();return t(x[0],x[x.length-1],v==null?10:v)},f.tickFormat=function(v,x){return x==null?b:u(x)},f.nice=function(v){var x=d();return(!v||typeof v.range!="function")&&(v=e(x[0],x[x.length-1],v==null?10:v)),v?d(h0(x,v)):f},f.copy=function(){return ki(f,iu(t,e,n,r,i,o,a,s,c,u))},f}function rx(){return lt.apply(iu(E2,S2,Xt,aa,di,In,gc,mc,Wt,Ec).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ix(){return lt.apply(iu(x2,C2,Zt,ca,hi,kn,bc,vc,Wt,Sc).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function xa(){var t=0,e=1,n,r,i,o,a=Oe,s=!1,c;function u(l){return l==null||isNaN(l=+l)?c:a(i===0?.5:(l=(o(l)-n)*i,s?Math.max(0,Math.min(1,l)):l))}u.domain=function(l){return arguments.length?([t,e]=l,n=o(t=+t),r=o(e=+e),i=n===r?0:1/(r-n),u):[t,e]},u.clamp=function(l){return arguments.length?(s=!!l,u):s},u.interpolator=function(l){return arguments.length?(a=l,u):a};function f(l){return function(d){var h,p;return arguments.length?([h,p]=d,a=l(h,p),u):[a(0),a(1)]}}return u.range=f(Jt),u.rangeRound=f(Ni),u.unknown=function(l){return arguments.length?(c=l,u):c},function(l){return o=l,n=l(t),r=l(e),i=n===r?0:1/(r-n),u}}function $t(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function ou(){var t=Rn(xa()(Oe));return t.copy=function(){return $t(t,ou())},qt.apply(t,arguments)}function E0(){var t=$c(xa()).domain([1,10]);return t.copy=function(){return $t(t,E0()).base(t.base())},qt.apply(t,arguments)}function S0(){var t=tu(xa());return t.copy=function(){return $t(t,S0()).constant(t.constant())},qt.apply(t,arguments)}function au(){var t=nu(xa());return t.copy=function(){return $t(t,au()).exponent(t.exponent())},qt.apply(t,arguments)}function ox(){return au.apply(null,arguments).exponent(.5)}function Ca(){var t=0,e=.5,n=1,r=1,i,o,a,s,c,u=Oe,f,l=!1,d;function h(m){return isNaN(m=+m)?d:(m=.5+((m=+f(m))-o)*(r*m<r*o?s:c),u(l?Math.max(0,Math.min(1,m)):m))}h.domain=function(m){return arguments.length?([t,e,n]=m,i=f(t=+t),o=f(e=+e),a=f(n=+n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,h):[t,e,n]},h.clamp=function(m){return arguments.length?(l=!!m,h):l},h.interpolator=function(m){return arguments.length?(u=m,h):u};function p(m){return function(y){var g,A,w;return arguments.length?([g,A,w]=y,u=qc(m,[g,A,w]),h):[u(0),u(.5),u(1)]}}return h.range=p(Jt),h.rangeRound=p(Ni),h.unknown=function(m){return arguments.length?(d=m,h):d},function(m){return f=m,i=m(t),o=m(e),a=m(n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,h}}function D0(){var t=Rn(Ca()(Oe));return t.copy=function(){return $t(t,D0())},qt.apply(t,arguments)}function M0(){var t=$c(Ca()).domain([.1,1,10]);return t.copy=function(){return $t(t,M0()).base(t.base())},qt.apply(t,arguments)}function T0(){var t=tu(Ca());return t.copy=function(){return $t(t,T0()).constant(t.constant())},qt.apply(t,arguments)}function su(){var t=nu(Ca());return t.copy=function(){return $t(t,su()).exponent(t.exponent())},qt.apply(t,arguments)}function ax(){return su.apply(null,arguments).exponent(.5)}function cu(t,e,n){const r=t-e+n*2;return t?r>0?r:1:0}const sx="identity",Er="linear",en="log",Li="pow",Oi="sqrt",Ea="symlog",I0="time",N0="utc",ht="sequential",Sr="diverging",uu="quantile",k0="quantize",L0="threshold",lu="ordinal",fu="point",O0="band",du="bin-ordinal",fe="continuous",Bi="discrete",Fi="discretizing",qe="interpolating",B0="temporal";function cx(t){return function(e){let n=e[0],r=e[1],i;return r<n&&(i=n,n=r,r=i),[t.invert(n),t.invert(r)]}}function ux(t){return function(e){const n=t.range();let r=e[0],i=e[1],o=-1,a,s,c,u;for(i<r&&(s=r,r=i,i=s),c=0,u=n.length;c<u;++c)n[c]>=r&&n[c]<=i&&(o<0&&(o=c),a=c);if(!(o<0))return r=t.invertExtent(n[o]),i=t.invertExtent(n[a]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function hu(){const t=Lc().unknown(void 0),e=t.domain,n=t.range;let r=[0,1],i,o,a=!1,s=0,c=0,u=.5;delete t.unknown;function f(){const l=e().length,d=r[1]<r[0],h=r[1-d],p=cu(l,s,c);let m=r[d-0];i=(h-m)/(p||1),a&&(i=Math.floor(i)),m+=(h-m-i*(l-s))*u,o=i*(1-s),a&&(m=Math.round(m),o=Math.round(o));const y=Yt(l).map(g=>m+i*g);return n(d?y.reverse():y)}return t.domain=function(l){return arguments.length?(e(l),f()):e()},t.range=function(l){return arguments.length?(r=[+l[0],+l[1]],f()):r.slice()},t.rangeRound=function(l){return r=[+l[0],+l[1]],a=!0,f()},t.bandwidth=function(){return o},t.step=function(){return i},t.round=function(l){return arguments.length?(a=!!l,f()):a},t.padding=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),s=c,f()):s},t.paddingInner=function(l){return arguments.length?(s=Math.max(0,Math.min(1,l)),f()):s},t.paddingOuter=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),f()):c},t.align=function(l){return arguments.length?(u=Math.max(0,Math.min(1,l)),f()):u},t.invertRange=function(l){if(l[0]==null||l[1]==null)return;const d=r[1]<r[0],h=d?n().reverse():n(),p=h.length-1;let m=+l[0],y=+l[1],g,A,w;if(!(m!==m||y!==y)&&(y<m&&(w=m,m=y,y=w),!(y<h[0]||m>r[1-d])))return g=Math.max(0,tc(h,m)-1),A=m===y?g:tc(h,y)-1,m-h[g]>o+1e-10&&++g,d&&(w=g,g=p-A,A=p-w),g>A?void 0:e().slice(g,A+1)},t.invert=function(l){const d=t.invertRange([l,l]);return d&&d[0]},t.copy=function(){return hu().domain(e()).range(r).round(a).paddingInner(s).paddingOuter(c).align(u)},f()}function F0(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return F0(e())},t}function lx(){return F0(hu().paddingInner(1))}var fx=Array.prototype.map;function dx(t){return fx.call(t,ui)}const hx=Array.prototype.slice;function P0(){let t=[],e=[];function n(r){return r==null||r!==r?void 0:e[(mr(t,r)-1)%e.length]}return n.domain=function(r){return arguments.length?(t=dx(r),n):t.slice()},n.range=function(r){return arguments.length?(e=hx.call(r),n):e.slice()},n.tickFormat=function(r,i){return l0(t[0],nt(t),r==null?10:r,i)},n.copy=function(){return P0().domain(n.domain()).range(n.range())},n}const Sa={};function px(t,e,n){const r=function(){const o=e();return o.invertRange||(o.invertRange=o.invert?cx(o):o.invertExtent?ux(o):void 0),o.type=t,o};return r.metadata=Ko(qs(n)),r}function W(t,e,n){return arguments.length>1?(Sa[t]=px(t,e,n),this):mx(t)?Sa[t]:void 0}W(sx,d0),W(Er,f0,fe),W(en,eu,[fe,en]),W(Li,ru,fe),W(Oi,ex,fe),W(Ea,b0,fe),W(I0,rx,[fe,B0]),W(N0,ix,[fe,B0]),W(ht,ou,[fe,qe]),W("".concat(ht,"-").concat(Er),ou,[fe,qe]),W("".concat(ht,"-").concat(en),E0,[fe,qe,en]),W("".concat(ht,"-").concat(Li),au,[fe,qe]),W("".concat(ht,"-").concat(Oi),ox,[fe,qe]),W("".concat(ht,"-").concat(Ea),S0,[fe,qe]),W("".concat(Sr,"-").concat(Er),D0,[fe,qe]),W("".concat(Sr,"-").concat(en),M0,[fe,qe,en]),W("".concat(Sr,"-").concat(Li),su,[fe,qe]),W("".concat(Sr,"-").concat(Oi),ax,[fe,qe]),W("".concat(Sr,"-").concat(Ea),T0,[fe,qe]),W(uu,w0,[Fi,uu]),W(k0,x0,Fi),W(L0,C0,Fi),W(du,P0,[Bi,Fi]),W(lu,Lc,Bi),W(O0,hu,Bi),W(fu,lx,Bi);function mx(t){return En(Sa,t)}function Pi(t,e){const n=Sa[t];return n&&n.metadata[e]}function je(t){return Pi(t,fe)}function tn(t){return Pi(t,Bi)}function Dr(t){return Pi(t,Fi)}function z0(t){return Pi(t,en)}function Da(t){return Pi(t,qe)}function gx(t,e){const n=e[0],r=nt(e)-n;return function(i){return t(n+i*r)}}function Ma(t,e,n){return qc(R0(e||"rgb",n),t)}function yx(t,e){const n=new Array(e),r=e+1;for(let i=0;i<e;)n[i]=t(++i/r);return n}function R0(t,e){const n=Hw[vx(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function vx(t){return"interpolate"+t.toLowerCase().split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}const bx={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"},Ax={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"};function j0(t){const e=t.length/6|0,n=new Array(e);for(let r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}function U0(t,e){for(const n in t)pu(n,e(t[n]))}const G0={};U0(Ax,j0),U0(bx,t=>Ma(j0(t)));function pu(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(G0[t]=e,this):G0[t]}const dk="";function wx(t,e){var n=t.getBoundingClientRect();return[e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop]}/**
5
+ `)}function u(l){return l.map(f).join(t)}function f(l){return l==null?"":l instanceof Date?Sb(l):e.test(l+="")?'"'+l.replace(/"/g,'""')+'"':l}return{parse:r,parseRows:i,format:a,formatBody:s,formatRows:c,formatRow:u,formatValue:f}}var Eb=gd(" "),Db=Eb.parseRows;function Mb(t){return t}function Tb(t){if(t==null)return Mb;var e,n,r=t.scale[0],i=t.scale[1],o=t.translate[0],a=t.translate[1];return function(s,c){c||(e=n=0);var u=2,f=s.length,l=new Array(f);for(l[0]=(e+=s[0])*r+o,l[1]=(n+=s[1])*i+a;u<f;)l[u]=s[u],++u;return l}}function Ib(t,e){for(var n,r=t.length,i=r-e;i<--r;)n=t[i],t[i++]=t[r],t[r]=n}function kb(t,e){return typeof e=="string"&&(e=t.objects[e]),e.type==="GeometryCollection"?{type:"FeatureCollection",features:e.geometries.map(function(n){return yd(t,n)})}:yd(t,e)}function yd(t,e){var n=e.id,r=e.bbox,i=e.properties==null?{}:e.properties,o=bd(t,e);return n==null&&r==null?{type:"Feature",properties:i,geometry:o}:r==null?{type:"Feature",id:n,properties:i,geometry:o}:{type:"Feature",id:n,bbox:r,properties:i,geometry:o}}function bd(t,e){var n=Tb(t.transform),r=t.arcs;function i(f,l){l.length&&l.pop();for(var d=r[f<0?~f:f],h=0,p=d.length;h<p;++h)l.push(n(d[h],h));f<0&&Ib(l,p)}function o(f){return n(f)}function a(f){for(var l=[],d=0,h=f.length;d<h;++d)i(f[d],l);return l.length<2&&l.push(l[0]),l}function s(f){for(var l=a(f);l.length<4;)l.push(l[0]);return l}function c(f){return f.map(s)}function u(f){var l=f.type,d;switch(l){case"GeometryCollection":return{type:l,geometries:f.geometries.map(u)};case"Point":d=o(f.coordinates);break;case"MultiPoint":d=f.coordinates.map(o);break;case"LineString":d=a(f.arcs);break;case"MultiLineString":d=f.arcs.map(a);break;case"Polygon":d=c(f.arcs);break;case"MultiPolygon":d=f.arcs.map(c);break;default:return null}return{type:l,coordinates:d}}return u(e)}function Nb(t,e){var n={},r={},i={},o=[],a=-1;e.forEach(function(u,f){var l=t.arcs[u<0?~u:u],d;l.length<3&&!l[1][0]&&!l[1][1]&&(d=e[++a],e[a]=u,e[f]=d)}),e.forEach(function(u){var f=s(u),l=f[0],d=f[1],h,p;if(h=i[l])if(delete i[h.end],h.push(u),h.end=d,p=r[d]){delete r[p.start];var m=p===h?h:h.concat(p);r[m.start=h.start]=i[m.end=p.end]=m}else r[h.start]=i[h.end]=h;else if(h=r[d])if(delete r[h.start],h.unshift(u),h.start=l,p=i[l]){delete i[p.end];var y=p===h?h:p.concat(h);r[y.start=p.start]=i[y.end=h.end]=y}else r[h.start]=i[h.end]=h;else h=[u],r[h.start=l]=i[h.end=d]=h});function s(u){var f=t.arcs[u<0?~u:u],l=f[0],d;return t.transform?(d=[0,0],f.forEach(function(h){d[0]+=h[0],d[1]+=h[1]})):d=f[f.length-1],u<0?[d,l]:[l,d]}function c(u,f){for(var l in u){var d=u[l];delete f[d.start],delete d.start,delete d.end,d.forEach(function(h){n[h<0?~h:h]=1}),o.push(d)}}return c(i,r),c(r,i),e.forEach(function(u){n[u<0?~u:u]||o.push([u])}),o}function Lb(t){return bd(t,Bb.apply(this,arguments))}function Bb(t,e,n){var r,i,o;if(arguments.length>1)r=Ob(t,e,n);else for(i=0,r=new Array(o=t.arcs.length);i<o;++i)r[i]=i;return{type:"MultiLineString",arcs:Nb(t,r)}}function Ob(t,e,n){var r=[],i=[],o;function a(l){var d=l<0?~l:l;(i[d]||(i[d]=[])).push({i:l,g:o})}function s(l){l.forEach(a)}function c(l){l.forEach(s)}function u(l){l.forEach(c)}function f(l){switch(o=l,l.type){case"GeometryCollection":l.geometries.forEach(f);break;case"LineString":s(l.arcs);break;case"MultiLineString":case"Polygon":c(l.arcs);break;case"MultiPolygon":u(l.arcs);break}}return f(e),i.forEach(n==null?function(l){r.push(l[0].i)}:function(l){n(l[0].g,l[l.length-1].g)&&r.push(l[0].i)}),r}function Sn(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Pb(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function qo(t){let e,n,r;t.length!==2?(e=Sn,n=(s,c)=>Sn(t(s),c),r=(s,c)=>t(s)-c):(e=t===Sn||t===Pb?t:Fb,n=t,r=t);function i(s,c,u=0,f=s.length){if(u<f){if(e(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<0?u=l+1:f=l}while(u<f)}return u}function o(s,c,u=0,f=s.length){if(u<f){if(e(c,c)!==0)return f;do{const l=u+f>>>1;n(s[l],c)<=0?u=l+1:f=l}while(u<f)}return u}function a(s,c,u=0,f=s.length){const l=i(s,c,u,f-1);return l>u&&r(s[l-1],c)>-r(s[l],c)?l-1:l}return{left:i,center:a,right:o}}function Fb(){return 0}function vd(t){return t===null?NaN:+t}const Ad=qo(Sn),ec=Ad.right;Ad.left,qo(vd).center;const hr=ec;function zb(t,e){let n,r;if(e===void 0)for(const i of t)i!=null&&(n===void 0?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)));else{let i=-1;for(let o of t)(o=e(o,++i,t))!=null&&(n===void 0?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}return[n,r]}class En extends Map{constructor(e,n=Ub){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,i]of e)this.set(r,i)}get(e){return super.get(xd(this,e))}has(e){return super.has(xd(this,e))}set(e,n){return super.set(Rb(this,e),n)}delete(e){return super.delete(jb(this,e))}}function xd({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function Rb({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function jb({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function Ub(t){return t!==null&&typeof t=="object"?t.valueOf():t}function Ko(t){return t}function ci(t,...e){return tc(t,Ko,Ko,e)}function Gb(t,...e){return tc(t,Array.from,Ko,e)}function Hb(t,e,...n){return tc(t,Ko,e,n)}function tc(t,e,n,r){return function i(o,a){if(a>=r.length)return n(o);const s=new En,c=r[a++];let u=-1;for(const f of o){const l=c(f,++u,o),d=s.get(l);d?d.push(f):s.set(l,[f])}for(const[f,l]of s)s.set(f,i(l,a));return e(s)}(t,0)}function Qb(t,e){return Array.from(e,n=>t[n])}function Vb(t,...e){if(typeof t[Symbol.iterator]!="function")throw new TypeError("values is not iterable");t=Array.from(t);let[n]=e;if(n&&n.length!==2||e.length>1){const r=Uint32Array.from(t,(i,o)=>o);return e.length>1?(e=e.map(i=>t.map(i)),r.sort((i,o)=>{for(const a of e){const s=nc(a[i],a[o]);if(s)return s}})):(n=t.map(n),r.sort((i,o)=>nc(n[i],n[o]))),Qb(t,r)}return t.sort(Yb(n))}function Yb(t=Sn){if(t===Sn)return nc;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function nc(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}var rc=Math.sqrt(50),ic=Math.sqrt(10),oc=Math.sqrt(2);function Jo(t,e,n){var r,i=-1,o,a,s;if(e=+e,t=+t,n=+n,t===e&&n>0)return[t];if((r=e<t)&&(o=t,t=e,e=o),(s=wd(t,e,n))===0||!isFinite(s))return[];if(s>0){let c=Math.round(t/s),u=Math.round(e/s);for(c*s<t&&++c,u*s>e&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)*s}else{s=-s;let c=Math.round(t*s),u=Math.round(e*s);for(c/s<t&&++c,u/s>e&&--u,a=new Array(o=u-c+1);++i<o;)a[i]=(c+i)/s}return r&&a.reverse(),a}function wd(t,e,n){var r=(e-t)/Math.max(0,n),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=rc?10:o>=ic?5:o>=oc?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=rc?10:o>=ic?5:o>=oc?2:1)}function Dn(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=rc?i*=10:o>=ic?i*=5:o>=oc&&(i*=2),e<t?-i:i}function ac(t,e,n=vd){if(!!(r=t.length)){if((e=+e)<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,o=Math.floor(i),a=+n(t[o],o,t),s=+n(t[o+1],o+1,t);return a+(s-a)*(i-o)}}function Yt(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,o=new Array(i);++r<i;)o[r]=t+r*n;return o}function $o(t,e){let n=0;if(e===void 0)for(let r of t)(r=+r)&&(n+=r);else{let r=-1;for(let i of t)(i=+e(i,++r,t))&&(n+=i)}return n}function _b(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function ea(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function pr(t){return t=ea(Math.abs(t)),t?t[1]:NaN}function Wb(t,e){return function(n,r){for(var i=n.length,o=[],a=0,s=t[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),o.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}function Xb(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var Zb=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function _t(t){if(!(e=Zb.exec(t)))throw new Error("invalid format: "+t);var e;return new sc({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}_t.prototype=sc.prototype;function sc(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}sc.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function qb(t){e:for(var e=t.length,n=1,r=-1,i;n<e;++n)switch(t[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var Cd;function Kb(t,e){var n=ea(t,e);if(!n)return t+"";var r=n[0],i=n[1],o=i-(Cd=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+ea(t,Math.max(0,e+o-1))[0]}function Sd(t,e){var n=ea(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const Ed={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:_b,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Sd(t*100,e),r:Sd,s:Kb,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Dd(t){return t}var Md=Array.prototype.map,Td=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function Jb(t){var e=t.grouping===void 0||t.thousands===void 0?Dd:Wb(Md.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?Dd:Xb(Md.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"\u2212":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(l){l=_t(l);var d=l.fill,h=l.align,p=l.sign,m=l.symbol,y=l.zero,g=l.width,x=l.comma,A=l.precision,C=l.trim,v=l.type;v==="n"?(x=!0,v="g"):Ed[v]||(A===void 0&&(A=12),C=!0,v="g"),(y||d==="0"&&h==="=")&&(y=!0,d="0",h="=");var b=m==="$"?n:m==="#"&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",w=m==="$"?r:/[%p]/.test(v)?a:"",E=Ed[v],I=/[defgprs%]/.test(v);A=A===void 0?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,A)):Math.max(0,Math.min(20,A));function L(T){var O=b,H=w,U,Ae,Ie;if(v==="c")H=E(T)+H,T="";else{T=+T;var An=T<0||1/T<0;if(T=isNaN(T)?c:E(Math.abs(T),A),C&&(T=qb(T)),An&&+T==0&&p!=="+"&&(An=!1),O=(An?p==="("?p:s:p==="-"||p==="("?"":p)+O,H=(v==="s"?Td[8+Cd/3]:"")+H+(An&&p==="("?")":""),I){for(U=-1,Ae=T.length;++U<Ae;)if(Ie=T.charCodeAt(U),48>Ie||Ie>57){H=(Ie===46?i+T.slice(U+1):T.slice(U))+H,T=T.slice(0,U);break}}}x&&!y&&(T=e(T,1/0));var Y=O.length+T.length+H.length,Ve=Y<g?new Array(g-Y+1).join(d):"";switch(x&&y&&(T=e(Ve+T,Ve.length?g-H.length:1/0),Ve=""),h){case"<":T=O+T+H+Ve;break;case"=":T=O+Ve+T+H;break;case"^":T=Ve.slice(0,Y=Ve.length>>1)+O+T+H+Ve.slice(Y);break;default:T=Ve+O+T+H;break}return o(T)}return L.toString=function(){return l+""},L}function f(l,d){var h=u((l=_t(l),l.type="f",l)),p=Math.max(-8,Math.min(8,Math.floor(pr(d)/3)))*3,m=Math.pow(10,-p),y=Td[8+p/3];return function(g){return h(m*g)+y}}return{format:u,formatPrefix:f}}var ta,le,cc;$b({thousands:",",grouping:[3],currency:["$",""]});function $b(t){return ta=Jb(t),le=ta.format,cc=ta.formatPrefix,ta}function Id(t){return Math.max(0,-pr(Math.abs(t)))}function kd(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(pr(e)/3)))*3-pr(Math.abs(t)))}function Nd(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,pr(e)-pr(t))+1}var uc=new Date,lc=new Date;function de(t,e,n,r){function i(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=function(o){return t(o=new Date(+o)),o},i.ceil=function(o){return t(o=new Date(o-1)),e(o,1),t(o),o},i.round=function(o){var a=i(o),s=i.ceil(o);return o-a<s-o?a:s},i.offset=function(o,a){return e(o=new Date(+o),a==null?1:Math.floor(a)),o},i.range=function(o,a,s){var c=[],u;if(o=i.ceil(o),s=s==null?1:Math.floor(s),!(o<a)||!(s>0))return c;do c.push(u=new Date(+o)),e(o,s),t(o);while(u<o&&o<a);return c},i.filter=function(o){return de(function(a){if(a>=a)for(;t(a),!o(a);)a.setTime(a-1)},function(a,s){if(a>=a)if(s<0)for(;++s<=0;)for(;e(a,-1),!o(a););else for(;--s>=0;)for(;e(a,1),!o(a););})},n&&(i.count=function(o,a){return uc.setTime(+o),lc.setTime(+a),t(uc),t(lc),Math.floor(n(uc,lc))},i.every=function(o){return o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?function(a){return r(a)%o===0}:function(a){return i.count(0,a)%o===0}):i}),i}var na=de(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});na.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?de(function(e){e.setTime(Math.floor(e/t)*t)},function(e,n){e.setTime(+e+n*t)},function(e,n){return(n-e)/t}):na};const fc=na;na.range;const St=1e3,Xe=St*60,Et=Xe*60,Mn=Et*24,dc=Mn*7,Ld=Mn*30,hc=Mn*365;var Bd=de(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*St)},function(t,e){return(e-t)/St},function(t){return t.getUTCSeconds()});const Wt=Bd;Bd.range;var Od=de(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*St)},function(t,e){t.setTime(+t+e*Xe)},function(t,e){return(e-t)/Xe},function(t){return t.getMinutes()});const pc=Od;Od.range;var Pd=de(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*St-t.getMinutes()*Xe)},function(t,e){t.setTime(+t+e*Et)},function(t,e){return(e-t)/Et},function(t){return t.getHours()});const mc=Pd;Pd.range;var Fd=de(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Xe)/Mn,t=>t.getDate()-1);const Tn=Fd;Fd.range;function In(t){return de(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,n){e.setDate(e.getDate()+n*7)},function(e,n){return(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*Xe)/dc})}var ui=In(0),ra=In(1),ev=In(2),tv=In(3),mr=In(4),nv=In(5),rv=In(6);ui.range,ra.range,ev.range,tv.range,mr.range,nv.range,rv.range;var zd=de(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()});const ia=zd;zd.range;var gc=de(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});gc.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:de(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)})};const Xt=gc;gc.range;var Rd=de(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*Xe)},function(t,e){return(e-t)/Xe},function(t){return t.getUTCMinutes()});const yc=Rd;Rd.range;var jd=de(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*Et)},function(t,e){return(e-t)/Et},function(t){return t.getUTCHours()});const bc=jd;jd.range;var Ud=de(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/Mn},function(t){return t.getUTCDate()-1});const kn=Ud;Ud.range;function Nn(t){return de(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCDate(e.getUTCDate()+n*7)},function(e,n){return(n-e)/dc})}var li=Nn(0),oa=Nn(1),iv=Nn(2),ov=Nn(3),gr=Nn(4),av=Nn(5),sv=Nn(6);li.range,oa.range,iv.range,ov.range,gr.range,av.range,sv.range;var Gd=de(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()});const aa=Gd;Gd.range;var vc=de(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});vc.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:de(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})};const Zt=vc;vc.range;function Hd(t,e,n,r,i,o){const a=[[Wt,1,St],[Wt,5,5*St],[Wt,15,15*St],[Wt,30,30*St],[o,1,Xe],[o,5,5*Xe],[o,15,15*Xe],[o,30,30*Xe],[i,1,Et],[i,3,3*Et],[i,6,6*Et],[i,12,12*Et],[r,1,Mn],[r,2,2*Mn],[n,1,dc],[e,1,Ld],[e,3,3*Ld],[t,1,hc]];function s(u,f,l){const d=f<u;d&&([u,f]=[f,u]);const h=l&&typeof l.range=="function"?l:c(u,f,l),p=h?h.range(u,+f+1):[];return d?p.reverse():p}function c(u,f,l){const d=Math.abs(f-u)/l,h=qo(([,,y])=>y).right(a,d);if(h===a.length)return t.every(Dn(u/hc,f/hc,l));if(h===0)return fc.every(Math.max(Dn(u,f,l),1));const[p,m]=a[d/a[h-1][2]<a[h][2]/d?h-1:h];return p.every(m)}return[s,c]}const[cv,uv]=Hd(Zt,aa,li,kn,bc,yc),[lv,fv]=Hd(Xt,ia,ui,Tn,mc,pc),fi="year",di="quarter",hi="month",pi="week",mi="date",sa="day",Ac="dayofyear",gi="hours",yi="minutes",bi="seconds",ca="milliseconds";[fi,di,hi,pi,mi,sa,Ac,gi,yi,bi,ca].reduce((t,e,n)=>(t[e]=1+n,t),{});const dv={[fi]:Xt,[di]:ia.every(3),[hi]:ia,[pi]:ui,[mi]:Tn,[sa]:Tn,[Ac]:Tn,[gi]:mc,[yi]:pc,[bi]:Wt,[ca]:fc},hv={[fi]:Zt,[di]:aa.every(3),[hi]:aa,[pi]:li,[mi]:kn,[sa]:kn,[Ac]:kn,[gi]:bc,[yi]:yc,[bi]:Wt,[ca]:fc};function pv(t){return dv[t]}function mv(t){return hv[t]}function xc(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function wc(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function vi(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Qd(t){var e=t.dateTime,n=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,s=t.months,c=t.shortMonths,u=Ai(i),f=xi(i),l=Ai(o),d=xi(o),h=Ai(a),p=xi(a),m=Ai(s),y=xi(s),g=Ai(c),x=xi(c),A={a:An,A:Y,b:Ve,B:Ro,c:null,d:Zd,e:Zd,f:Rv,g:Xv,G:qv,H:Pv,I:Fv,j:zv,L:qd,m:jv,M:Uv,p:jo,q:Vs,Q:nh,s:rh,S:Gv,u:Hv,U:Qv,V:Vv,w:Yv,W:_v,x:null,X:null,y:Wv,Y:Zv,Z:Kv,"%":th},C={a:td,A:Pk,b:Fk,B:zk,c:null,d:Jd,e:Jd,f:tA,g:fA,G:hA,H:Jv,I:$v,j:eA,L:$d,m:nA,M:rA,p:Rk,q:jk,Q:nh,s:rh,S:iA,u:oA,U:aA,V:sA,w:cA,W:uA,x:null,X:null,y:lA,Y:dA,Z:pA,"%":th},v={a:L,A:T,b:O,B:H,c:U,d:Wd,e:Wd,f:Nv,g:_d,G:Yd,H:Xd,I:Xd,j:Mv,L:kv,m:Dv,M:Tv,p:I,q:Ev,Q:Bv,s:Ov,S:Iv,u:Av,U:xv,V:wv,w:vv,W:Cv,x:Ae,X:Ie,y:_d,Y:Yd,Z:Sv,"%":Lv};A.x=b(n,A),A.X=b(r,A),A.c=b(e,A),C.x=b(n,C),C.X=b(r,C),C.c=b(e,C);function b(B,G){return function(_){var M=[],Fe=-1,K=0,Ye=B.length,_e,dr,_2;for(_ instanceof Date||(_=new Date(+_));++Fe<Ye;)B.charCodeAt(Fe)===37&&(M.push(B.slice(K,Fe)),(dr=Vd[_e=B.charAt(++Fe)])!=null?_e=B.charAt(++Fe):dr=_e==="e"?" ":"0",(_2=G[_e])&&(_e=_2(_,dr)),M.push(_e),K=Fe+1);return M.push(B.slice(K,Fe)),M.join("")}}function w(B,G){return function(_){var M=vi(1900,void 0,1),Fe=E(M,B,_+="",0),K,Ye;if(Fe!=_.length)return null;if("Q"in M)return new Date(M.Q);if("s"in M)return new Date(M.s*1e3+("L"in M?M.L:0));if(G&&!("Z"in M)&&(M.Z=0),"p"in M&&(M.H=M.H%12+M.p*12),M.m===void 0&&(M.m="q"in M?M.q:0),"V"in M){if(M.V<1||M.V>53)return null;"w"in M||(M.w=1),"Z"in M?(K=wc(vi(M.y,0,1)),Ye=K.getUTCDay(),K=Ye>4||Ye===0?oa.ceil(K):oa(K),K=kn.offset(K,(M.V-1)*7),M.y=K.getUTCFullYear(),M.m=K.getUTCMonth(),M.d=K.getUTCDate()+(M.w+6)%7):(K=xc(vi(M.y,0,1)),Ye=K.getDay(),K=Ye>4||Ye===0?ra.ceil(K):ra(K),K=Tn.offset(K,(M.V-1)*7),M.y=K.getFullYear(),M.m=K.getMonth(),M.d=K.getDate()+(M.w+6)%7)}else("W"in M||"U"in M)&&("w"in M||(M.w="u"in M?M.u%7:"W"in M?1:0),Ye="Z"in M?wc(vi(M.y,0,1)).getUTCDay():xc(vi(M.y,0,1)).getDay(),M.m=0,M.d="W"in M?(M.w+6)%7+M.W*7-(Ye+5)%7:M.w+M.U*7-(Ye+6)%7);return"Z"in M?(M.H+=M.Z/100|0,M.M+=M.Z%100,wc(M)):xc(M)}}function E(B,G,_,M){for(var Fe=0,K=G.length,Ye=_.length,_e,dr;Fe<K;){if(M>=Ye)return-1;if(_e=G.charCodeAt(Fe++),_e===37){if(_e=G.charAt(Fe++),dr=v[_e in Vd?G.charAt(Fe++):_e],!dr||(M=dr(B,_,M))<0)return-1}else if(_e!=_.charCodeAt(M++))return-1}return M}function I(B,G,_){var M=u.exec(G.slice(_));return M?(B.p=f.get(M[0].toLowerCase()),_+M[0].length):-1}function L(B,G,_){var M=h.exec(G.slice(_));return M?(B.w=p.get(M[0].toLowerCase()),_+M[0].length):-1}function T(B,G,_){var M=l.exec(G.slice(_));return M?(B.w=d.get(M[0].toLowerCase()),_+M[0].length):-1}function O(B,G,_){var M=g.exec(G.slice(_));return M?(B.m=x.get(M[0].toLowerCase()),_+M[0].length):-1}function H(B,G,_){var M=m.exec(G.slice(_));return M?(B.m=y.get(M[0].toLowerCase()),_+M[0].length):-1}function U(B,G,_){return E(B,e,G,_)}function Ae(B,G,_){return E(B,n,G,_)}function Ie(B,G,_){return E(B,r,G,_)}function An(B){return a[B.getDay()]}function Y(B){return o[B.getDay()]}function Ve(B){return c[B.getMonth()]}function Ro(B){return s[B.getMonth()]}function jo(B){return i[+(B.getHours()>=12)]}function Vs(B){return 1+~~(B.getMonth()/3)}function td(B){return a[B.getUTCDay()]}function Pk(B){return o[B.getUTCDay()]}function Fk(B){return c[B.getUTCMonth()]}function zk(B){return s[B.getUTCMonth()]}function Rk(B){return i[+(B.getUTCHours()>=12)]}function jk(B){return 1+~~(B.getUTCMonth()/3)}return{format:function(B){var G=b(B+="",A);return G.toString=function(){return B},G},parse:function(B){var G=w(B+="",!1);return G.toString=function(){return B},G},utcFormat:function(B){var G=b(B+="",C);return G.toString=function(){return B},G},utcParse:function(B){var G=w(B+="",!0);return G.toString=function(){return B},G}}}var Vd={"-":"",_:" ",0:"0"},he=/^\s*\d+/,gv=/^%/,yv=/[\\^$*+?|[\]().{}]/g;function Q(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(e)+i:i)}function bv(t){return t.replace(yv,"\\$&")}function Ai(t){return new RegExp("^(?:"+t.map(bv).join("|")+")","i")}function xi(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function vv(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Av(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function xv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function wv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Cv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Yd(t,e,n){var r=he.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function _d(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Sv(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Ev(t,e,n){var r=he.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Dv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Wd(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Mv(t,e,n){var r=he.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Xd(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Tv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Iv(t,e,n){var r=he.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function kv(t,e,n){var r=he.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Nv(t,e,n){var r=he.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Lv(t,e,n){var r=gv.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Bv(t,e,n){var r=he.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Ov(t,e,n){var r=he.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Zd(t,e){return Q(t.getDate(),e,2)}function Pv(t,e){return Q(t.getHours(),e,2)}function Fv(t,e){return Q(t.getHours()%12||12,e,2)}function zv(t,e){return Q(1+Tn.count(Xt(t),t),e,3)}function qd(t,e){return Q(t.getMilliseconds(),e,3)}function Rv(t,e){return qd(t,e)+"000"}function jv(t,e){return Q(t.getMonth()+1,e,2)}function Uv(t,e){return Q(t.getMinutes(),e,2)}function Gv(t,e){return Q(t.getSeconds(),e,2)}function Hv(t){var e=t.getDay();return e===0?7:e}function Qv(t,e){return Q(ui.count(Xt(t)-1,t),e,2)}function Kd(t){var e=t.getDay();return e>=4||e===0?mr(t):mr.ceil(t)}function Vv(t,e){return t=Kd(t),Q(mr.count(Xt(t),t)+(Xt(t).getDay()===4),e,2)}function Yv(t){return t.getDay()}function _v(t,e){return Q(ra.count(Xt(t)-1,t),e,2)}function Wv(t,e){return Q(t.getFullYear()%100,e,2)}function Xv(t,e){return t=Kd(t),Q(t.getFullYear()%100,e,2)}function Zv(t,e){return Q(t.getFullYear()%1e4,e,4)}function qv(t,e){var n=t.getDay();return t=n>=4||n===0?mr(t):mr.ceil(t),Q(t.getFullYear()%1e4,e,4)}function Kv(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Q(e/60|0,"0",2)+Q(e%60,"0",2)}function Jd(t,e){return Q(t.getUTCDate(),e,2)}function Jv(t,e){return Q(t.getUTCHours(),e,2)}function $v(t,e){return Q(t.getUTCHours()%12||12,e,2)}function eA(t,e){return Q(1+kn.count(Zt(t),t),e,3)}function $d(t,e){return Q(t.getUTCMilliseconds(),e,3)}function tA(t,e){return $d(t,e)+"000"}function nA(t,e){return Q(t.getUTCMonth()+1,e,2)}function rA(t,e){return Q(t.getUTCMinutes(),e,2)}function iA(t,e){return Q(t.getUTCSeconds(),e,2)}function oA(t){var e=t.getUTCDay();return e===0?7:e}function aA(t,e){return Q(li.count(Zt(t)-1,t),e,2)}function eh(t){var e=t.getUTCDay();return e>=4||e===0?gr(t):gr.ceil(t)}function sA(t,e){return t=eh(t),Q(gr.count(Zt(t),t)+(Zt(t).getUTCDay()===4),e,2)}function cA(t){return t.getUTCDay()}function uA(t,e){return Q(oa.count(Zt(t)-1,t),e,2)}function lA(t,e){return Q(t.getUTCFullYear()%100,e,2)}function fA(t,e){return t=eh(t),Q(t.getUTCFullYear()%100,e,2)}function dA(t,e){return Q(t.getUTCFullYear()%1e4,e,4)}function hA(t,e){var n=t.getUTCDay();return t=n>=4||n===0?gr(t):gr.ceil(t),Q(t.getUTCFullYear()%1e4,e,4)}function pA(){return"+0000"}function th(){return"%"}function nh(t){return+t}function rh(t){return Math.floor(+t/1e3)}var yr,Cc,ih,Sc,oh;mA({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function mA(t){return yr=Qd(t),Cc=yr.format,ih=yr.parse,Sc=yr.utcFormat,oh=yr.utcParse,yr}function wi(t){const e={};return n=>e[n]||(e[n]=t(n))}function gA(t,e){return n=>{const r=t(n),i=r.indexOf(e);if(i<0)return r;let o=yA(r,i);const a=o<r.length?r.slice(o):"";for(;--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function yA(t,e){let n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}function bA(t){const e=wi(t.format),n=t.formatPrefix;return{format:e,formatPrefix:n,formatFloat(r){const i=_t(r||",");if(i.precision==null){switch(i.precision=12,i.type){case"%":i.precision-=2;break;case"e":i.precision-=1;break}return gA(e(i),e(".1f")(1)[1])}else return e(i)},formatSpan(r,i,o,a){a=_t(a==null?",f":a);const s=Dn(r,i,o),c=Math.max(Math.abs(r),Math.abs(i));let u;if(a.precision==null)switch(a.type){case"s":return isNaN(u=kd(s,c))||(a.precision=u),n(a,c);case"":case"e":case"g":case"p":case"r":{isNaN(u=Nd(s,c))||(a.precision=u-(a.type==="e"));break}case"f":case"%":{isNaN(u=Id(s))||(a.precision=u-(a.type==="%")*2);break}}return e(a)}}}vA();function vA(){return bA({format:le,formatPrefix:cc})}function ah(t,e,n){n=n||{},ze(n)||oe("Invalid time multi-format specifier: ".concat(n));const r=e(bi),i=e(yi),o=e(gi),a=e(mi),s=e(pi),c=e(hi),u=e(di),f=e(fi),l=t(n[ca]||".%L"),d=t(n[bi]||":%S"),h=t(n[yi]||"%I:%M"),p=t(n[gi]||"%I %p"),m=t(n[mi]||n[sa]||"%a %d"),y=t(n[pi]||"%b %d"),g=t(n[hi]||"%B"),x=t(n[di]||"%B"),A=t(n[fi]||"%Y");return C=>(r(C)<C?l:i(C)<C?d:o(C)<C?h:a(C)<C?p:c(C)<C?s(C)<C?m:y:f(C)<C?u(C)<C?g:x:A)(C)}function sh(t){const e=wi(t.format),n=wi(t.utcFormat);return{timeFormat:r=>ee(r)?e(r):ah(e,pv,r),utcFormat:r=>ee(r)?n(r):ah(n,mv,r),timeParse:wi(t.parse),utcParse:wi(t.utcParse)}}let Ec;AA();function AA(){return Ec=sh({format:Cc,parse:ih,utcFormat:Sc,utcParse:oh})}function xA(t){return sh(Qd(t))}function wA(t){return arguments.length?Ec=xA(t):Ec}const CA=/^(data:|([A-Za-z]+:)?\/\/)/,SA=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,EA=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,ch="file://";function DA(t,e){return n=>({options:n||{},sanitize:TA,load:MA,fileAccess:!!e,file:IA(e),http:NA(t)})}async function MA(t,e){const n=await this.sanitize(t,e),r=n.href;return n.localFile?this.file(r):this.http(r,e)}async function TA(t,e){e=qs({},this.options,e);const n=this.fileAccess,r={href:null};let i,o,a;const s=SA.test(t.replace(EA,""));(t==null||typeof t!="string"||!s)&&oe("Sanitize failure, invalid URI: "+Xo(t));const c=CA.test(t);return(a=e.baseURL)&&!c&&(!t.startsWith("/")&&!a.endsWith("/")&&(t="/"+t),t=a+t),o=(i=t.startsWith(ch))||e.mode==="file"||e.mode!=="http"&&!c&&n,i?t=t.slice(ch.length):t.startsWith("//")&&(e.defaultProtocol==="file"?(t=t.slice(2),o=!0):t=(e.defaultProtocol||"http")+":"+t),Object.defineProperty(r,"localFile",{value:!!o}),r.href=t,e.target&&(r.target=e.target+""),e.rel&&(r.rel=e.rel+""),e.context==="image"&&e.crossOrigin&&(r.crossOrigin=e.crossOrigin+""),r}function IA(t){return t?e=>new Promise((n,r)=>{t.readFile(e,(i,o)=>{i?r(i):n(o)})}):kA}async function kA(){oe("No file system access.")}function NA(t){return t?async function(e,n){const r=qs({},this.options.http,n),i=n&&n.response,o=await t(e,r);return o.ok?ke(o[i])?o[i]():o.text():oe(o.status+""+o.statusText)}:LA}async function LA(){oe("No HTTP fetch method available.")}const BA=t=>t!=null&&t===t,OA=t=>t==="true"||t==="false"||t===!0||t===!1,PA=t=>!Number.isNaN(Date.parse(t)),uh=t=>!Number.isNaN(+t)&&!(t instanceof Date),FA=t=>uh(t)&&Number.isInteger(+t),lh={boolean:bb,integer:ai,number:ai,date:Ab,string:xb,unknown:Qo},ua=[OA,FA,uh,PA],zA=["boolean","integer","number","date"];function fh(t,e){if(!t||!t.length)return"unknown";const n=t.length,r=ua.length,i=ua.map((o,a)=>a+1);for(let o=0,a=0,s,c;o<n;++o)for(c=e?t[o][e]:t[o],s=0;s<r;++s)if(i[s]&&BA(c)&&!ua[s](c)&&(i[s]=0,++a,a===ua.length))return"string";return zA[i.reduce((o,a)=>o===0?a:o,0)-1]}function RA(t,e){return e.reduce((n,r)=>(n[r]=fh(t,r),n),{})}function dh(t){const e=function(n,r){const i={delimiter:t};return Dc(n,r?qs(r,i):i)};return e.responseType="text",e}function Dc(t,e){return e.header&&(t=e.header.map(Xo).join(e.delimiter)+`
6
+ `+t),gd(e.delimiter).parse(t+"")}Dc.responseType="text";function jA(t){return typeof Buffer=="function"&&ke(Buffer.isBuffer)?Buffer.isBuffer(t):!1}function Mc(t,e){const n=e&&e.property?Ho(e.property):Qo;return ze(t)&&!jA(t)?UA(n(t),e):n(JSON.parse(t))}Mc.responseType="json";function UA(t,e){return!We(t)&&gb(t)&&(t=[...t]),e&&e.copy?JSON.parse(JSON.stringify(t)):t}const GA={interior:(t,e)=>t!==e,exterior:(t,e)=>t===e};function hh(t,e){let n,r,i,o;return t=Mc(t,e),e&&e.feature?(n=kb,i=e.feature):e&&e.mesh?(n=Lb,i=e.mesh,o=GA[e.filter]):oe("Missing TopoJSON feature or mesh parameter."),r=(r=t.objects[i])?n(t,r,o):oe("Invalid TopoJSON object: "+i),r&&r.features||[r]}hh.responseType="json";const Tc={dsv:Dc,csv:dh(","),tsv:dh(" "),json:Mc,topojson:hh};function ph(t,e){return arguments.length>1?(Tc[t]=e,this):Cn(Tc,t)?Tc[t]:null}function mh(t,e,n,r){e=e||{};const i=ph(e.type||"json");return i||oe("Unknown data format type: "+e.type),t=i(t,e),e.parse&&HA(t,e.parse,n,r),Cn(t,"columns")&&delete t.columns,t}function HA(t,e,n,r){if(!t.length)return;const i=wA();n=n||i.timeParse,r=r||i.utcParse;let o=t.columns||Object.keys(t[0]),a,s,c,u,f,l;e==="auto"&&(e=RA(t,o)),o=Object.keys(e);const d=o.map(h=>{const p=e[h];let m,y;if(p&&(p.startsWith("date:")||p.startsWith("utc:")))return m=p.split(/:(.+)?/,2),y=m[1],(y[0]==="'"&&y[y.length-1]==="'"||y[0]==='"'&&y[y.length-1]==='"')&&(y=y.slice(1,-1)),(m[0]==="utc"?r:n)(y);if(!lh[p])throw Error("Illegal format pattern: "+h+":"+p);return lh[p]});for(c=0,f=t.length,l=o.length;c<f;++c)for(a=t[c],u=0;u<l;++u)s=o[u],a[s]=d[u](a[s])}const Ci=DA(typeof fetch<"u"&&fetch,null),gh=1;function Ic(){let t=[0,1],e=[0,1],n=1,r=1,i=0,o=0,a=.5,s=0;const u=f=>(f+a-t[0])/n*r+e[0];return u.invert=f=>(f-e[0])/r*n+t[0]-a,u.domain=function(f){if(arguments.length){if(t=zb(f),n=t[1]-t[0],n<gh){n=gh;const l=(t[0]+t[1])/2;t[0]=l-n/2,t[1]=l+n/2}return u}else return t},u.range=function(f){return arguments.length?(e=[...f],r=e[1]-e[0],u):e},u.numberingOffset=function(f){return arguments.length?(s=f,u):s},u.padding=function(f){return arguments.length?(o=f,i=Math.min(1,f),u):i},u.paddingInner=function(f){return arguments.length?(i=Math.min(1,f),u):i},u.paddingOuter=function(f){return arguments.length?(o=f,u):o},u.align=function(f){return arguments.length?(a=Math.max(0,Math.min(1,f)),u):a},u.step=()=>r/n,u.bandwidth=()=>u.step(),u.ticks=f=>{const l=u.align(),d=u.numberingOffset();return Jo(t[0]-l+d,t[1]-l+d,Math.min(f,Math.ceil(n))).filter(Number.isInteger).map(h=>h-s)},u.tickFormat=(f,l)=>{if(l)throw new Error("Index scale's tickFormat does not support a specifier!");const h=Dn(t[0],t[1],Math.min(f,Math.ceil(n)))<1e5?le(","):le(".3s");return p=>h(p+s)},u.copy=()=>Ic().domain(t).range(e).paddingInner(i).paddingOuter(o).numberingOffset(s),u}function QA(){const t=Ic().numberingOffset(1);let e;t.genome=function(r){return arguments.length?(e=r,t):e},t.ticks=r=>{if(!e)return[];const i=t.domain(),o=t.numberingOffset(),[a,s]=[Math.max(i[0],0),Math.min(i[1],e.totalSize-1)].map(f=>e.toChromosome(f)),c=Math.max(1,Dn(i[0],i[1],r)),u=[];for(let f=a.index;f<=s.index;f++){const l=e.chromosomes[f],d=Math.max(l.continuousStart+c,i[0]-(i[0]-l.continuousStart)%c),h=Math.min(l.continuousEnd-c/4,i[1]+1);for(let p=d;p<=h;p+=c){const m=p-o;m>=i[0]&&m<i[1]&&u.push(m)}}return u},t.tickFormat=(r,i)=>{if(!e)return;if(i)throw new Error("Locus scale's tickFormat does not support a specifier!");const o=t.domain(),a=o[1]-o[0],s=t.numberingOffset(),u=Dn(o[0],o[1],Math.min(r,Math.ceil(a)))<1e6?le(","):le(".3s"),f=l=>l-e.toChromosome(l).continuousStart;return l=>u(f(l)+s)};const n=t.copy;return t.copy=()=>n().genome(e),t}function VA(t){return t.type=="locus"}function lt(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function qt(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const kc=Symbol("implicit");function Nc(){var t=new En,e=[],n=[],r=kc;function i(o){let a=t.get(o);if(a===void 0){if(r!==kc)return r;t.set(o,a=e.push(o)-1)}return n[a%n.length]}return i.domain=function(o){if(!arguments.length)return e.slice();e=[],t=new En;for(const a of o)t.has(a)||t.set(a,e.push(a)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return Nc(e,n).unknown(r)},lt.apply(i,arguments),i}function br(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Si(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Kt(){}var Ln=.7,vr=1/Ln,Ar="\\s*([+-]?\\d+)\\s*",Ei="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ft="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",YA=/^#([0-9a-f]{3,8})$/,_A=new RegExp(`^rgb\\(${Ar},${Ar},${Ar}\\)$`),WA=new RegExp(`^rgb\\(${ft},${ft},${ft}\\)$`),XA=new RegExp(`^rgba\\(${Ar},${Ar},${Ar},${Ei}\\)$`),ZA=new RegExp(`^rgba\\(${ft},${ft},${ft},${Ei}\\)$`),qA=new RegExp(`^hsl\\(${Ei},${ft},${ft}\\)$`),KA=new RegExp(`^hsla\\(${Ei},${ft},${ft},${Ei}\\)$`),yh={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};br(Kt,Bn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:bh,formatHex:bh,formatHex8:JA,formatHsl:$A,formatRgb:vh,toString:vh});function bh(){return this.rgb().formatHex()}function JA(){return this.rgb().formatHex8()}function $A(){return Sh(this).formatHsl()}function vh(){return this.rgb().formatRgb()}function Bn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=YA.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?Ah(e):n===3?new pe(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?la(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?la(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=_A.exec(t))?new pe(e[1],e[2],e[3],1):(e=WA.exec(t))?new pe(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=XA.exec(t))?la(e[1],e[2],e[3],e[4]):(e=ZA.exec(t))?la(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=qA.exec(t))?Ch(e[1],e[2]/100,e[3]/100,1):(e=KA.exec(t))?Ch(e[1],e[2]/100,e[3]/100,e[4]):yh.hasOwnProperty(t)?Ah(yh[t]):t==="transparent"?new pe(NaN,NaN,NaN,0):null}function Ah(t){return new pe(t>>16&255,t>>8&255,t&255,1)}function la(t,e,n,r){return r<=0&&(t=e=n=NaN),new pe(t,e,n,r)}function Lc(t){return t instanceof Kt||(t=Bn(t)),t?(t=t.rgb(),new pe(t.r,t.g,t.b,t.opacity)):new pe}function fa(t,e,n,r){return arguments.length===1?Lc(t):new pe(t,e,n,r==null?1:r)}function pe(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}br(pe,fa,Si(Kt,{brighter(t){return t=t==null?vr:Math.pow(vr,t),new pe(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ln:Math.pow(Ln,t),new pe(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new pe(On(this.r),On(this.g),On(this.b),da(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:xh,formatHex:xh,formatHex8:ex,formatRgb:wh,toString:wh}));function xh(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}`}function ex(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}${Pn((isNaN(this.opacity)?1:this.opacity)*255)}`}function wh(){const t=da(this.opacity);return`${t===1?"rgb(":"rgba("}${On(this.r)}, ${On(this.g)}, ${On(this.b)}${t===1?")":`, ${t})`}`}function da(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function On(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Pn(t){return t=On(t),(t<16?"0":"")+t.toString(16)}function Ch(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new nt(t,e,n,r)}function Sh(t){if(t instanceof nt)return new nt(t.h,t.s,t.l,t.opacity);if(t instanceof Kt||(t=Bn(t)),!t)return new nt;if(t instanceof nt)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,s=o-i,c=(o+i)/2;return s?(e===o?a=(n-r)/s+(n<r)*6:n===o?a=(r-e)/s+2:a=(e-n)/s+4,s/=c<.5?o+i:2-o-i,a*=60):s=c>0&&c<1?0:a,new nt(a,s,c,t.opacity)}function Bc(t,e,n,r){return arguments.length===1?Sh(t):new nt(t,e,n,r==null?1:r)}function nt(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}br(nt,Bc,Si(Kt,{brighter(t){return t=t==null?vr:Math.pow(vr,t),new nt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ln:Math.pow(Ln,t),new nt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new pe(Oc(t>=240?t-240:t+120,i,r),Oc(t,i,r),Oc(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new nt(Eh(this.h),ha(this.s),ha(this.l),da(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 t=da(this.opacity);return`${t===1?"hsl(":"hsla("}${Eh(this.h)}, ${ha(this.s)*100}%, ${ha(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Eh(t){return t=(t||0)%360,t<0?t+360:t}function ha(t){return Math.max(0,Math.min(1,t||0))}function Oc(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Dh=Math.PI/180,Mh=180/Math.PI,pa=18,Th=.96422,Ih=1,kh=.82521,Nh=4/29,xr=6/29,Lh=3*xr*xr,tx=xr*xr*xr;function Bh(t){if(t instanceof dt)return new dt(t.l,t.a,t.b,t.opacity);if(t instanceof Dt)return Oh(t);t instanceof pe||(t=Lc(t));var e=jc(t.r),n=jc(t.g),r=jc(t.b),i=Fc((.2225045*e+.7168786*n+.0606169*r)/Ih),o,a;return e===n&&n===r?o=a=i:(o=Fc((.4360747*e+.3850649*n+.1430804*r)/Th),a=Fc((.0139322*e+.0971045*n+.7141733*r)/kh)),new dt(116*i-16,500*(o-i),200*(i-a),t.opacity)}function Pc(t,e,n,r){return arguments.length===1?Bh(t):new dt(t,e,n,r==null?1:r)}function dt(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}br(dt,Pc,Si(Kt,{brighter(t){return new dt(this.l+pa*(t==null?1:t),this.a,this.b,this.opacity)},darker(t){return new dt(this.l-pa*(t==null?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=Th*zc(e),t=Ih*zc(t),n=kh*zc(n),new pe(Rc(3.1338561*e-1.6168667*t-.4906146*n),Rc(-.9787684*e+1.9161415*t+.033454*n),Rc(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function Fc(t){return t>tx?Math.pow(t,1/3):t/Lh+Nh}function zc(t){return t>xr?t*t*t:Lh*(t-Nh)}function Rc(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function jc(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function nx(t){if(t instanceof Dt)return new Dt(t.h,t.c,t.l,t.opacity);if(t instanceof dt||(t=Bh(t)),t.a===0&&t.b===0)return new Dt(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Mh;return new Dt(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Uc(t,e,n,r){return arguments.length===1?nx(t):new Dt(t,e,n,r==null?1:r)}function Dt(t,e,n,r){this.h=+t,this.c=+e,this.l=+n,this.opacity=+r}function Oh(t){if(isNaN(t.h))return new dt(t.l,0,0,t.opacity);var e=t.h*Dh;return new dt(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}br(Dt,Uc,Si(Kt,{brighter(t){return new Dt(this.h,this.c,this.l+pa*(t==null?1:t),this.opacity)},darker(t){return new Dt(this.h,this.c,this.l-pa*(t==null?1:t),this.opacity)},rgb(){return Oh(this).rgb()}}));var Ph=-.14861,Gc=1.78277,Hc=-.29227,ma=-.90649,Di=1.97294,Fh=Di*ma,zh=Di*Gc,Rh=Gc*Hc-ma*Ph;function rx(t){if(t instanceof Fn)return new Fn(t.h,t.s,t.l,t.opacity);t instanceof pe||(t=Lc(t));var e=t.r/255,n=t.g/255,r=t.b/255,i=(Rh*r+Fh*e-zh*n)/(Rh+Fh-zh),o=r-i,a=(Di*(n-i)-Hc*o)/ma,s=Math.sqrt(a*a+o*o)/(Di*i*(1-i)),c=s?Math.atan2(a,o)*Mh-120:NaN;return new Fn(c<0?c+360:c,s,i,t.opacity)}function Qc(t,e,n,r){return arguments.length===1?rx(t):new Fn(t,e,n,r==null?1:r)}function Fn(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}br(Fn,Qc,Si(Kt,{brighter(t){return t=t==null?vr:Math.pow(vr,t),new Fn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ln:Math.pow(Ln,t),new Fn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*Dh,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),i=Math.sin(t);return new pe(255*(e+n*(Ph*r+Gc*i)),255*(e+n*(Hc*r+ma*i)),255*(e+n*(Di*r)),this.opacity)}}));function jh(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}function Uh(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,s=r<e-1?t[r+2]:2*o-i;return jh((n-r/e)*e,a,i,o,s)}}function Gh(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],s=t[(r+2)%e];return jh((n-r/e)*e,i,o,a,s)}}const ga=t=>()=>t;function Hh(t,e){return function(n){return t+n*e}}function ix(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function ya(t,e){var n=e-t;return n?Hh(t,n>180||n<-180?n-360*Math.round(n/360):n):ga(isNaN(t)?e:t)}function ox(t){return(t=+t)==1?me:function(e,n){return n-e?ix(e,n,t):ga(isNaN(e)?n:e)}}function me(t,e){var n=e-t;return n?Hh(t,n):ga(isNaN(t)?e:t)}const Vc=function t(e){var n=ox(e);function r(i,o){var a=n((i=fa(i)).r,(o=fa(o)).r),s=n(i.g,o.g),c=n(i.b,o.b),u=me(i.opacity,o.opacity);return function(f){return i.r=a(f),i.g=s(f),i.b=c(f),i.opacity=u(f),i+""}}return r.gamma=t,r}(1);function Qh(t){return function(e){var n=e.length,r=new Array(n),i=new Array(n),o=new Array(n),a,s;for(a=0;a<n;++a)s=fa(e[a]),r[a]=s.r||0,i[a]=s.g||0,o[a]=s.b||0;return r=t(r),i=t(i),o=t(o),s.opacity=1,function(c){return s.r=r(c),s.g=i(c),s.b=o(c),s+""}}}var ax=Qh(Uh),sx=Qh(Gh);function Yc(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=t[i]*(1-o)+e[i]*o;return r}}function Vh(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function cx(t,e){return(Vh(e)?Yc:Yh)(t,e)}function Yh(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,i=new Array(r),o=new Array(n),a;for(a=0;a<r;++a)i[a]=Jt(t[a],e[a]);for(;a<n;++a)o[a]=e[a];return function(s){for(a=0;a<r;++a)o[a]=i[a](s);return o}}function _h(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function rt(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Wh(t,e){var n={},r={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?n[i]=Jt(t[i],e[i]):r[i]=e[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var _c=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Wc=new RegExp(_c.source,"g");function ux(t){return function(){return t}}function lx(t){return function(e){return t(e)+""}}function Xh(t,e){var n=_c.lastIndex=Wc.lastIndex=0,r,i,o,a=-1,s=[],c=[];for(t=t+"",e=e+"";(r=_c.exec(t))&&(i=Wc.exec(e));)(o=i.index)>n&&(o=e.slice(n,o),s[a]?s[a]+=o:s[++a]=o),(r=r[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,c.push({i:a,x:rt(r,i)})),n=Wc.lastIndex;return n<e.length&&(o=e.slice(n),s[a]?s[a]+=o:s[++a]=o),s.length<2?c[0]?lx(c[0].x):ux(e):(e=c.length,function(u){for(var f=0,l;f<e;++f)s[(l=c[f]).i]=l.x(u);return s.join("")})}function Jt(t,e){var n=typeof e,r;return e==null||n==="boolean"?ga(e):(n==="number"?rt:n==="string"?(r=Bn(e))?(e=r,Vc):Xh:e instanceof Bn?Vc:e instanceof Date?_h:Vh(e)?Yc:Array.isArray(e)?Yh:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?Wh:rt)(t,e)}function fx(t){var e=t.length;return function(n){return t[Math.max(0,Math.min(e-1,Math.floor(n*e)))]}}function dx(t,e){var n=ya(+t,+e);return function(r){var i=n(r);return i-360*Math.floor(i/360)}}function Mi(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var Zh=180/Math.PI,Xc={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function qh(t,e,n,r,i,o){var a,s,c;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),t*r<e*n&&(t=-t,e=-e,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*Zh,skewX:Math.atan(c)*Zh,scaleX:a,scaleY:s}}var ba;function hx(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Xc:qh(e.a,e.b,e.c,e.d,e.e,e.f)}function px(t){return t==null||(ba||(ba=document.createElementNS("http://www.w3.org/2000/svg","g")),ba.setAttribute("transform",t),!(t=ba.transform.baseVal.consolidate()))?Xc:(t=t.matrix,qh(t.a,t.b,t.c,t.d,t.e,t.f))}function Kh(t,e,n,r){function i(u){return u.length?u.pop()+" ":""}function o(u,f,l,d,h,p){if(u!==l||f!==d){var m=h.push("translate(",null,e,null,n);p.push({i:m-4,x:rt(u,l)},{i:m-2,x:rt(f,d)})}else(l||d)&&h.push("translate("+l+e+d+n)}function a(u,f,l,d){u!==f?(u-f>180?f+=360:f-u>180&&(u+=360),d.push({i:l.push(i(l)+"rotate(",null,r)-2,x:rt(u,f)})):f&&l.push(i(l)+"rotate("+f+r)}function s(u,f,l,d){u!==f?d.push({i:l.push(i(l)+"skewX(",null,r)-2,x:rt(u,f)}):f&&l.push(i(l)+"skewX("+f+r)}function c(u,f,l,d,h,p){if(u!==l||f!==d){var m=h.push(i(h)+"scale(",null,",",null,")");p.push({i:m-4,x:rt(u,l)},{i:m-2,x:rt(f,d)})}else(l!==1||d!==1)&&h.push(i(h)+"scale("+l+","+d+")")}return function(u,f){var l=[],d=[];return u=t(u),f=t(f),o(u.translateX,u.translateY,f.translateX,f.translateY,l,d),a(u.rotate,f.rotate,l,d),s(u.skewX,f.skewX,l,d),c(u.scaleX,u.scaleY,f.scaleX,f.scaleY,l,d),u=f=null,function(h){for(var p=-1,m=d.length,y;++p<m;)l[(y=d[p]).i]=y.x(h);return l.join("")}}}var mx=Kh(hx,"px, ","px)","deg)"),gx=Kh(px,", ",")",")"),yx=1e-12;function Jh(t){return((t=Math.exp(t))+1/t)/2}function bx(t){return((t=Math.exp(t))-1/t)/2}function vx(t){return((t=Math.exp(2*t))-1)/(t+1)}const $h=function t(e,n,r){function i(o,a){var s=o[0],c=o[1],u=o[2],f=a[0],l=a[1],d=a[2],h=f-s,p=l-c,m=h*h+p*p,y,g;if(m<yx)g=Math.log(d/u)/e,y=function(w){return[s+w*h,c+w*p,u*Math.exp(e*w*g)]};else{var x=Math.sqrt(m),A=(d*d-u*u+r*m)/(2*u*n*x),C=(d*d-u*u-r*m)/(2*d*n*x),v=Math.log(Math.sqrt(A*A+1)-A),b=Math.log(Math.sqrt(C*C+1)-C);g=(b-v)/e,y=function(w){var E=w*g,I=Jh(v),L=u/(n*x)*(I*vx(e*E+v)-bx(v));return[s+L*h,c+L*p,u*I/Jh(e*E+v)]}}return y.duration=g*1e3*e/Math.SQRT2,y}return i.rho=function(o){var a=Math.max(.001,+o),s=a*a,c=s*s;return t(a,s,c)},i}(Math.SQRT2,2,4);function e0(t){return function(e,n){var r=t((e=Bc(e)).h,(n=Bc(n)).h),i=me(e.s,n.s),o=me(e.l,n.l),a=me(e.opacity,n.opacity);return function(s){return e.h=r(s),e.s=i(s),e.l=o(s),e.opacity=a(s),e+""}}}const Ax=e0(ya);var xx=e0(me);function wx(t,e){var n=me((t=Pc(t)).l,(e=Pc(e)).l),r=me(t.a,e.a),i=me(t.b,e.b),o=me(t.opacity,e.opacity);return function(a){return t.l=n(a),t.a=r(a),t.b=i(a),t.opacity=o(a),t+""}}function t0(t){return function(e,n){var r=t((e=Uc(e)).h,(n=Uc(n)).h),i=me(e.c,n.c),o=me(e.l,n.l),a=me(e.opacity,n.opacity);return function(s){return e.h=r(s),e.c=i(s),e.l=o(s),e.opacity=a(s),e+""}}}const Cx=t0(ya);var Sx=t0(me);function n0(t){return function e(n){n=+n;function r(i,o){var a=t((i=Qc(i)).h,(o=Qc(o)).h),s=me(i.s,o.s),c=me(i.l,o.l),u=me(i.opacity,o.opacity);return function(f){return i.h=a(f),i.s=s(f),i.l=c(Math.pow(f,n)),i.opacity=u(f),i+""}}return r.gamma=e,r}(1)}const Ex=n0(ya);var Dx=n0(me);function Zc(t,e){e===void 0&&(e=t,t=Jt);for(var n=0,r=e.length-1,i=e[0],o=new Array(r<0?0:r);n<r;)o[n]=t(i,i=e[++n]);return function(a){var s=Math.max(0,Math.min(r-1,Math.floor(a*=r)));return o[s](a-s)}}function Mx(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t(r/(e-1));return n}const Tx=Object.freeze(Object.defineProperty({__proto__:null,interpolate:Jt,interpolateArray:cx,interpolateBasis:Uh,interpolateBasisClosed:Gh,interpolateDate:_h,interpolateDiscrete:fx,interpolateHue:dx,interpolateNumber:rt,interpolateNumberArray:Yc,interpolateObject:Wh,interpolateRound:Mi,interpolateString:Xh,interpolateTransformCss:mx,interpolateTransformSvg:gx,interpolateZoom:$h,interpolateRgb:Vc,interpolateRgbBasis:ax,interpolateRgbBasisClosed:sx,interpolateHsl:Ax,interpolateHslLong:xx,interpolateLab:wx,interpolateHcl:Cx,interpolateHclLong:Sx,interpolateCubehelix:Ex,interpolateCubehelixLong:Dx,piecewise:Zc,quantize:Mx},Symbol.toStringTag,{value:"Module"}));function Ix(t){return function(){return t}}function qc(t){return+t}var r0=[0,1];function Le(t){return t}function Kc(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:Ix(isNaN(e)?NaN:.5)}function kx(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function Nx(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i<r?(r=Kc(i,r),o=n(a,o)):(r=Kc(r,i),o=n(o,a)),function(s){return o(r(s))}}function Lx(t,e,n){var r=Math.min(t.length,e.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<r;)i[a]=Kc(t[a],t[a+1]),o[a]=n(e[a],e[a+1]);return function(s){var c=hr(t,s,1,r)-1;return o[c](i[c](s))}}function Ti(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function va(){var t=r0,e=r0,n=Jt,r,i,o,a=Le,s,c,u;function f(){var d=Math.min(t.length,e.length);return a!==Le&&(a=kx(t[0],t[d-1])),s=d>2?Lx:Nx,c=u=null,l}function l(d){return d==null||isNaN(d=+d)?o:(c||(c=s(t.map(r),e,n)))(r(a(d)))}return l.invert=function(d){return a(i((u||(u=s(e,t.map(r),rt)))(d)))},l.domain=function(d){return arguments.length?(t=Array.from(d,qc),f()):t.slice()},l.range=function(d){return arguments.length?(e=Array.from(d),f()):e.slice()},l.rangeRound=function(d){return e=Array.from(d),n=Mi,f()},l.clamp=function(d){return arguments.length?(a=d?!0:Le,f()):a!==Le},l.interpolate=function(d){return arguments.length?(n=d,f()):n},l.unknown=function(d){return arguments.length?(o=d,l):o},function(d,h){return r=d,i=h,f()}}function i0(){return va()(Le,Le)}function o0(t,e,n,r){var i=Dn(t,e,n),o;switch(r=_t(r==null?",f":r),r.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=kd(i,a))&&(r.precision=o),cc(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Nd(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Id(i))&&(r.precision=o-(r.type==="%")*2);break}}return le(r)}function zn(t){var e=t.domain;return t.ticks=function(n){var r=e();return Jo(r[0],r[r.length-1],n==null?10:n)},t.tickFormat=function(n,r){var i=e();return o0(i[0],i[i.length-1],n==null?10:n,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,o=r.length-1,a=r[i],s=r[o],c,u,f=10;for(s<a&&(u=a,a=s,s=u,u=i,i=o,o=u);f-- >0;){if(u=wd(a,s,n),u===c)return r[i]=a,r[o]=s,e(r);if(u>0)a=Math.floor(a/u)*u,s=Math.ceil(s/u)*u;else if(u<0)a=Math.ceil(a*u)/u,s=Math.floor(s*u)/u;else break;c=u}return t},t}function a0(){var t=i0();return t.copy=function(){return Ti(t,a0())},lt.apply(t,arguments),zn(t)}function s0(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,qc),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return s0(t).unknown(e)},t=arguments.length?Array.from(t,qc):[0,1],zn(n)}function c0(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],o=t[r],a;return o<i&&(a=n,n=r,r=a,a=i,i=o,o=a),t[n]=e.floor(i),t[r]=e.ceil(o),t}function u0(t){return Math.log(t)}function l0(t){return Math.exp(t)}function Bx(t){return-Math.log(-t)}function Ox(t){return-Math.exp(-t)}function Px(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Fx(t){return t===10?Px:t===Math.E?Math.exp:e=>Math.pow(t,e)}function zx(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function f0(t){return(e,n)=>-t(-e,n)}function Jc(t){const e=t(u0,l0),n=e.domain;let r=10,i,o;function a(){return i=zx(r),o=Fx(r),n()[0]<0?(i=f0(i),o=f0(o),t(Bx,Ox)):t(u0,l0),e}return e.base=function(s){return arguments.length?(r=+s,a()):r},e.domain=function(s){return arguments.length?(n(s),a()):n()},e.ticks=s=>{const c=n();let u=c[0],f=c[c.length-1];const l=f<u;l&&([u,f]=[f,u]);let d=i(u),h=i(f),p,m;const y=s==null?10:+s;let g=[];if(!(r%1)&&h-d<y){if(d=Math.floor(d),h=Math.ceil(h),u>0){for(;d<=h;++d)for(p=1;p<r;++p)if(m=d<0?p/o(-d):p*o(d),!(m<u)){if(m>f)break;g.push(m)}}else for(;d<=h;++d)for(p=r-1;p>=1;--p)if(m=d>0?p/o(-d):p*o(d),!(m<u)){if(m>f)break;g.push(m)}g.length*2<y&&(g=Jo(u,f,y))}else g=Jo(d,h,Math.min(h-d,y)).map(o);return l?g.reverse():g},e.tickFormat=(s,c)=>{if(s==null&&(s=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=_t(c)).precision==null&&(c.trim=!0),c=le(c)),s===1/0)return c;const u=Math.max(1,r*s/e.ticks().length);return f=>{let l=f/o(Math.round(i(f)));return l*r<r-.5&&(l*=r),l<=u?c(f):""}},e.nice=()=>n(c0(n(),{floor:s=>o(Math.floor(i(s))),ceil:s=>o(Math.ceil(i(s)))})),e}function $c(){const t=Jc(va()).domain([1,10]);return t.copy=()=>Ti(t,$c()).base(t.base()),lt.apply(t,arguments),t}function d0(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function h0(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function eu(t){var e=1,n=t(d0(e),h0(e));return n.constant=function(r){return arguments.length?t(d0(e=+r),h0(e)):e},zn(n)}function p0(){var t=eu(va());return t.copy=function(){return Ti(t,p0()).constant(t.constant())},lt.apply(t,arguments)}function m0(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function Rx(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function jx(t){return t<0?-t*t:t*t}function tu(t){var e=t(Le,Le),n=1;function r(){return n===1?t(Le,Le):n===.5?t(Rx,jx):t(m0(n),m0(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},zn(e)}function nu(){var t=tu(va());return t.copy=function(){return Ti(t,nu()).exponent(t.exponent())},lt.apply(t,arguments),t}function Ux(){return nu.apply(null,arguments).exponent(.5)}function g0(){var t=[],e=[],n=[],r;function i(){var a=0,s=Math.max(1,e.length);for(n=new Array(s-1);++a<s;)n[a-1]=ac(t,a/s);return o}function o(a){return a==null||isNaN(a=+a)?r:e[hr(n,a)]}return o.invertExtent=function(a){var s=e.indexOf(a);return s<0?[NaN,NaN]:[s>0?n[s-1]:t[0],s<n.length?n[s]:t[t.length-1]]},o.domain=function(a){if(!arguments.length)return t.slice();t=[];for(let s of a)s!=null&&!isNaN(s=+s)&&t.push(s);return t.sort(Sn),i()},o.range=function(a){return arguments.length?(e=Array.from(a),i()):e.slice()},o.unknown=function(a){return arguments.length?(r=a,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return g0().domain(t).range(e).unknown(r)},lt.apply(o,arguments)}function y0(){var t=0,e=1,n=1,r=[.5],i=[0,1],o;function a(c){return c!=null&&c<=c?i[hr(r,c,0,n)]:o}function s(){var c=-1;for(r=new Array(n);++c<n;)r[c]=((c+1)*e-(c-n)*t)/(n+1);return a}return a.domain=function(c){return arguments.length?([t,e]=c,t=+t,e=+e,s()):[t,e]},a.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,s()):i.slice()},a.invertExtent=function(c){var u=i.indexOf(c);return u<0?[NaN,NaN]:u<1?[t,r[0]]:u>=n?[r[n-1],e]:[r[u-1],r[u]]},a.unknown=function(c){return arguments.length&&(o=c),a},a.thresholds=function(){return r.slice()},a.copy=function(){return y0().domain([t,e]).range(i).unknown(o)},lt.apply(zn(a),arguments)}function b0(){var t=[.5],e=[0,1],n,r=1;function i(o){return o!=null&&o<=o?e[hr(t,o,0,r)]:n}return i.domain=function(o){return arguments.length?(t=Array.from(o),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(o){return arguments.length?(e=Array.from(o),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(o){var a=e.indexOf(o);return[t[a-1],t[a]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return b0().domain(t).range(e).unknown(n)},lt.apply(i,arguments)}function Gx(t){return new Date(t)}function Hx(t){return t instanceof Date?+t:+new Date(+t)}function ru(t,e,n,r,i,o,a,s,c,u){var f=i0(),l=f.invert,d=f.domain,h=u(".%L"),p=u(":%S"),m=u("%I:%M"),y=u("%I %p"),g=u("%a %d"),x=u("%b %d"),A=u("%B"),C=u("%Y");function v(b){return(c(b)<b?h:s(b)<b?p:a(b)<b?m:o(b)<b?y:r(b)<b?i(b)<b?g:x:n(b)<b?A:C)(b)}return f.invert=function(b){return new Date(l(b))},f.domain=function(b){return arguments.length?d(Array.from(b,Hx)):d().map(Gx)},f.ticks=function(b){var w=d();return t(w[0],w[w.length-1],b==null?10:b)},f.tickFormat=function(b,w){return w==null?v:u(w)},f.nice=function(b){var w=d();return(!b||typeof b.range!="function")&&(b=e(w[0],w[w.length-1],b==null?10:b)),b?d(c0(w,b)):f},f.copy=function(){return Ti(f,ru(t,e,n,r,i,o,a,s,c,u))},f}function Qx(){return lt.apply(ru(lv,fv,Xt,ia,ui,Tn,mc,pc,Wt,Cc).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Vx(){return lt.apply(ru(cv,uv,Zt,aa,li,kn,bc,yc,Wt,Sc).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function Aa(){var t=0,e=1,n,r,i,o,a=Le,s=!1,c;function u(l){return l==null||isNaN(l=+l)?c:a(i===0?.5:(l=(o(l)-n)*i,s?Math.max(0,Math.min(1,l)):l))}u.domain=function(l){return arguments.length?([t,e]=l,n=o(t=+t),r=o(e=+e),i=n===r?0:1/(r-n),u):[t,e]},u.clamp=function(l){return arguments.length?(s=!!l,u):s},u.interpolator=function(l){return arguments.length?(a=l,u):a};function f(l){return function(d){var h,p;return arguments.length?([h,p]=d,a=l(h,p),u):[a(0),a(1)]}}return u.range=f(Jt),u.rangeRound=f(Mi),u.unknown=function(l){return arguments.length?(c=l,u):c},function(l){return o=l,n=l(t),r=l(e),i=n===r?0:1/(r-n),u}}function $t(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function iu(){var t=zn(Aa()(Le));return t.copy=function(){return $t(t,iu())},qt.apply(t,arguments)}function v0(){var t=Jc(Aa()).domain([1,10]);return t.copy=function(){return $t(t,v0()).base(t.base())},qt.apply(t,arguments)}function A0(){var t=eu(Aa());return t.copy=function(){return $t(t,A0()).constant(t.constant())},qt.apply(t,arguments)}function ou(){var t=tu(Aa());return t.copy=function(){return $t(t,ou()).exponent(t.exponent())},qt.apply(t,arguments)}function Yx(){return ou.apply(null,arguments).exponent(.5)}function xa(){var t=0,e=.5,n=1,r=1,i,o,a,s,c,u=Le,f,l=!1,d;function h(m){return isNaN(m=+m)?d:(m=.5+((m=+f(m))-o)*(r*m<r*o?s:c),u(l?Math.max(0,Math.min(1,m)):m))}h.domain=function(m){return arguments.length?([t,e,n]=m,i=f(t=+t),o=f(e=+e),a=f(n=+n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,h):[t,e,n]},h.clamp=function(m){return arguments.length?(l=!!m,h):l},h.interpolator=function(m){return arguments.length?(u=m,h):u};function p(m){return function(y){var g,x,A;return arguments.length?([g,x,A]=y,u=Zc(m,[g,x,A]),h):[u(0),u(.5),u(1)]}}return h.range=p(Jt),h.rangeRound=p(Mi),h.unknown=function(m){return arguments.length?(d=m,h):d},function(m){return f=m,i=m(t),o=m(e),a=m(n),s=i===o?0:.5/(o-i),c=o===a?0:.5/(a-o),r=o<i?-1:1,h}}function x0(){var t=zn(xa()(Le));return t.copy=function(){return $t(t,x0())},qt.apply(t,arguments)}function w0(){var t=Jc(xa()).domain([.1,1,10]);return t.copy=function(){return $t(t,w0()).base(t.base())},qt.apply(t,arguments)}function C0(){var t=eu(xa());return t.copy=function(){return $t(t,C0()).constant(t.constant())},qt.apply(t,arguments)}function au(){var t=tu(xa());return t.copy=function(){return $t(t,au()).exponent(t.exponent())},qt.apply(t,arguments)}function _x(){return au.apply(null,arguments).exponent(.5)}function su(t,e,n){const r=t-e+n*2;return t?r>0?r:1:0}const Wx="identity",wr="linear",en="log",Ii="pow",ki="sqrt",wa="symlog",S0="time",E0="utc",ht="sequential",Cr="diverging",cu="quantile",D0="quantize",M0="threshold",uu="ordinal",lu="point",T0="band",fu="bin-ordinal",fe="continuous",Ni="discrete",Li="discretizing",Ze="interpolating",I0="temporal";function Xx(t){return function(e){let n=e[0],r=e[1],i;return r<n&&(i=n,n=r,r=i),[t.invert(n),t.invert(r)]}}function Zx(t){return function(e){const n=t.range();let r=e[0],i=e[1],o=-1,a,s,c,u;for(i<r&&(s=r,r=i,i=s),c=0,u=n.length;c<u;++c)n[c]>=r&&n[c]<=i&&(o<0&&(o=c),a=c);if(!(o<0))return r=t.invertExtent(n[o]),i=t.invertExtent(n[a]),[r[0]===void 0?r[1]:r[0],i[1]===void 0?i[0]:i[1]]}}function du(){const t=Nc().unknown(void 0),e=t.domain,n=t.range;let r=[0,1],i,o,a=!1,s=0,c=0,u=.5;delete t.unknown;function f(){const l=e().length,d=r[1]<r[0],h=r[1-d],p=su(l,s,c);let m=r[d-0];i=(h-m)/(p||1),a&&(i=Math.floor(i)),m+=(h-m-i*(l-s))*u,o=i*(1-s),a&&(m=Math.round(m),o=Math.round(o));const y=Yt(l).map(g=>m+i*g);return n(d?y.reverse():y)}return t.domain=function(l){return arguments.length?(e(l),f()):e()},t.range=function(l){return arguments.length?(r=[+l[0],+l[1]],f()):r.slice()},t.rangeRound=function(l){return r=[+l[0],+l[1]],a=!0,f()},t.bandwidth=function(){return o},t.step=function(){return i},t.round=function(l){return arguments.length?(a=!!l,f()):a},t.padding=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),s=c,f()):s},t.paddingInner=function(l){return arguments.length?(s=Math.max(0,Math.min(1,l)),f()):s},t.paddingOuter=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),f()):c},t.align=function(l){return arguments.length?(u=Math.max(0,Math.min(1,l)),f()):u},t.invertRange=function(l){if(l[0]==null||l[1]==null)return;const d=r[1]<r[0],h=d?n().reverse():n(),p=h.length-1;let m=+l[0],y=+l[1],g,x,A;if(!(m!==m||y!==y)&&(y<m&&(A=m,m=y,y=A),!(y<h[0]||m>r[1-d])))return g=Math.max(0,ec(h,m)-1),x=m===y?g:ec(h,y)-1,m-h[g]>o+1e-10&&++g,d&&(A=g,g=p-x,x=p-A),g>x?void 0:e().slice(g,x+1)},t.invert=function(l){const d=t.invertRange([l,l]);return d&&d[0]},t.copy=function(){return du().domain(e()).range(r).round(a).paddingInner(s).paddingOuter(c).align(u)},f()}function k0(t){const e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return k0(e())},t}function qx(){return k0(du().paddingInner(1))}var Kx=Array.prototype.map;function Jx(t){return Kx.call(t,ai)}const $x=Array.prototype.slice;function N0(){let t=[],e=[];function n(r){return r==null||r!==r?void 0:e[(hr(t,r)-1)%e.length]}return n.domain=function(r){return arguments.length?(t=Jx(r),n):t.slice()},n.range=function(r){return arguments.length?(e=$x.call(r),n):e.slice()},n.tickFormat=function(r,i){return o0(t[0],tt(t),r==null?10:r,i)},n.copy=function(){return N0().domain(n.domain()).range(n.range())},n}const Ca={};function ew(t,e,n){const r=function(){const o=e();return o.invertRange||(o.invertRange=o.invert?Xx(o):o.invertExtent?Zx(o):void 0),o.type=t,o};return r.metadata=Zo(Zs(n)),r}function W(t,e,n){return arguments.length>1?(Ca[t]=ew(t,e,n),this):tw(t)?Ca[t]:void 0}W(Wx,s0),W(wr,a0,fe),W(en,$c,[fe,en]),W(Ii,nu,fe),W(ki,Ux,fe),W(wa,p0,fe),W(S0,Qx,[fe,I0]),W(E0,Vx,[fe,I0]),W(ht,iu,[fe,Ze]),W("".concat(ht,"-").concat(wr),iu,[fe,Ze]),W("".concat(ht,"-").concat(en),v0,[fe,Ze,en]),W("".concat(ht,"-").concat(Ii),ou,[fe,Ze]),W("".concat(ht,"-").concat(ki),Yx,[fe,Ze]),W("".concat(ht,"-").concat(wa),A0,[fe,Ze]),W("".concat(Cr,"-").concat(wr),x0,[fe,Ze]),W("".concat(Cr,"-").concat(en),w0,[fe,Ze,en]),W("".concat(Cr,"-").concat(Ii),au,[fe,Ze]),W("".concat(Cr,"-").concat(ki),_x,[fe,Ze]),W("".concat(Cr,"-").concat(wa),C0,[fe,Ze]),W(cu,g0,[Li,cu]),W(D0,y0,Li),W(M0,b0,Li),W(fu,N0,[Ni,Li]),W(uu,Nc,Ni),W(T0,du,Ni),W(lu,qx,Ni);function tw(t){return Cn(Ca,t)}function Bi(t,e){const n=Ca[t];return n&&n.metadata[e]}function Re(t){return Bi(t,fe)}function tn(t){return Bi(t,Ni)}function Sr(t){return Bi(t,Li)}function L0(t){return Bi(t,en)}function Sa(t){return Bi(t,Ze)}function nw(t,e){const n=e[0],r=tt(e)-n;return function(i){return t(n+i*r)}}function Ea(t,e,n){return Zc(B0(e||"rgb",n),t)}function rw(t,e){const n=new Array(e),r=e+1;for(let i=0;i<e;)n[i]=t(++i/r);return n}function B0(t,e){const n=Tx[iw(t)];return e!=null&&n&&n.gamma?n.gamma(e):n}function iw(t){return"interpolate"+t.toLowerCase().split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("")}const ow={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"},aw={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"};function O0(t){const e=t.length/6|0,n=new Array(e);for(let r=0;r<e;)n[r]="#"+t.slice(r*6,++r*6);return n}function P0(t,e){for(const n in t)hu(n,e(t[n]))}const F0={};P0(aw,O0),P0(ow,t=>Ea(O0(t)));function hu(t,e){return t=t&&t.toLowerCase(),arguments.length>1?(F0[t]=e,this):F0[t]}const Qk="";function sw(t,e){var n=t.getBoundingClientRect();return[e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop]}/**
7
7
  * @license
8
8
  * Copyright 2017 Google LLC
9
9
  * SPDX-License-Identifier: BSD-3-Clause
10
- */var mu;const Mr=globalThis.trustedTypes,H0=Mr?Mr.createPolicy("lit-html",{createHTML:t=>t}):void 0,nn=`lit$${(Math.random()+"").slice(9)}$`,Q0="?"+nn,xx=`<${Q0}>`,Tr=document,zi=(t="")=>Tr.createComment(t),Ri=t=>t===null||typeof t!="object"&&typeof t!="function",V0=Array.isArray,Cx=t=>{var e;return V0(t)||typeof((e=t)===null||e===void 0?void 0:e[Symbol.iterator])=="function"},ji=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Y0=/-->/g,_0=/>/g,jn=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,W0=/'/g,X0=/"/g,Z0=/^(?:script|style|textarea|title)$/i,Ex=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),D=Ex(1),xe=Symbol.for("lit-noChange"),R=Symbol.for("lit-nothing"),q0=new WeakMap,Be=(t,e,n)=>{var r,i;const o=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:e;let a=o._$litPart$;if(a===void 0){const s=(i=n==null?void 0:n.renderBefore)!==null&&i!==void 0?i:null;o._$litPart$=a=new Gi(e.insertBefore(zi(),s),s,void 0,n!=null?n:{})}return a._$AI(t),a},Ir=Tr.createTreeWalker(Tr,129,null,!1),Sx=(t,e)=>{const n=t.length-1,r=[];let i,o=e===2?"<svg>":"",a=ji;for(let c=0;c<n;c++){const u=t[c];let f,l,d=-1,h=0;for(;h<u.length&&(a.lastIndex=h,l=a.exec(u),l!==null);)h=a.lastIndex,a===ji?l[1]==="!--"?a=Y0:l[1]!==void 0?a=_0:l[2]!==void 0?(Z0.test(l[2])&&(i=RegExp("</"+l[2],"g")),a=jn):l[3]!==void 0&&(a=jn):a===jn?l[0]===">"?(a=i!=null?i:ji,d=-1):l[1]===void 0?d=-2:(d=a.lastIndex-l[2].length,f=l[1],a=l[3]===void 0?jn:l[3]==='"'?X0:W0):a===X0||a===W0?a=jn:a===Y0||a===_0?a=ji:(a=jn,i=void 0);const p=a===jn&&t[c+1].startsWith("/>")?" ":"";o+=a===ji?u+xx:d>=0?(r.push(f),u.slice(0,d)+"$lit$"+u.slice(d)+nn+p):u+nn+(d===-2?(r.push(void 0),c):p)}const s=o+(t[n]||"<?>")+(e===2?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[H0!==void 0?H0.createHTML(s):s,r]};class Ui{constructor({strings:e,_$litType$:n},r){let i;this.parts=[];let o=0,a=0;const s=e.length-1,c=this.parts,[u,f]=Sx(e,n);if(this.el=Ui.createElement(u,r),Ir.currentNode=this.el.content,n===2){const l=this.el.content,d=l.firstChild;d.remove(),l.append(...d.childNodes)}for(;(i=Ir.nextNode())!==null&&c.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const l=[];for(const d of i.getAttributeNames())if(d.endsWith("$lit$")||d.startsWith(nn)){const h=f[a++];if(l.push(d),h!==void 0){const p=i.getAttribute(h.toLowerCase()+"$lit$").split(nn),m=/([.?@])?(.*)/.exec(h);c.push({type:1,index:o,name:m[2],strings:p,ctor:m[1]==="."?Mx:m[1]==="?"?Ix:m[1]==="@"?Nx:Ta})}else c.push({type:6,index:o})}for(const d of l)i.removeAttribute(d)}if(Z0.test(i.tagName)){const l=i.textContent.split(nn),d=l.length-1;if(d>0){i.textContent=Mr?Mr.emptyScript:"";for(let h=0;h<d;h++)i.append(l[h],zi()),Ir.nextNode(),c.push({type:2,index:++o});i.append(l[d],zi())}}}else if(i.nodeType===8)if(i.data===Q0)c.push({type:2,index:o});else{let l=-1;for(;(l=i.data.indexOf(nn,l+1))!==-1;)c.push({type:7,index:o}),l+=nn.length-1}o++}}static createElement(e,n){const r=Tr.createElement("template");return r.innerHTML=e,r}}function Nr(t,e,n=t,r){var i,o,a,s;if(e===xe)return e;let c=r!==void 0?(i=n._$Cl)===null||i===void 0?void 0:i[r]:n._$Cu;const u=Ri(e)?void 0:e._$litDirective$;return(c==null?void 0:c.constructor)!==u&&((o=c==null?void 0:c._$AO)===null||o===void 0||o.call(c,!1),u===void 0?c=void 0:(c=new u(t),c._$AT(t,n,r)),r!==void 0?((a=(s=n)._$Cl)!==null&&a!==void 0?a:s._$Cl=[])[r]=c:n._$Cu=c),c!==void 0&&(e=Nr(t,c._$AS(t,e.values),c,r)),e}class Dx{constructor(e,n){this.v=[],this._$AN=void 0,this._$AD=e,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(e){var n;const{el:{content:r},parts:i}=this._$AD,o=((n=e==null?void 0:e.creationScope)!==null&&n!==void 0?n:Tr).importNode(r,!0);Ir.currentNode=o;let a=Ir.nextNode(),s=0,c=0,u=i[0];for(;u!==void 0;){if(s===u.index){let f;u.type===2?f=new Gi(a,a.nextSibling,this,e):u.type===1?f=new u.ctor(a,u.name,u.strings,this,e):u.type===6&&(f=new kx(a,this,e)),this.v.push(f),u=i[++c]}s!==(u==null?void 0:u.index)&&(a=Ir.nextNode(),s++)}return o}m(e){let n=0;for(const r of this.v)r!==void 0&&(r.strings!==void 0?(r._$AI(e,r,n),n+=r.strings.length-2):r._$AI(e[n])),n++}}class Gi{constructor(e,n,r,i){var o;this.type=2,this._$AH=R,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=r,this.options=i,this._$Cg=(o=i==null?void 0:i.isConnected)===null||o===void 0||o}get _$AU(){var e,n;return(n=(e=this._$AM)===null||e===void 0?void 0:e._$AU)!==null&&n!==void 0?n:this._$Cg}get parentNode(){let e=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&e.nodeType===11&&(e=n.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,n=this){e=Nr(this,e,n),Ri(e)?e===R||e==null||e===""?(this._$AH!==R&&this._$AR(),this._$AH=R):e!==this._$AH&&e!==xe&&this.$(e):e._$litType$!==void 0?this.T(e):e.nodeType!==void 0?this.k(e):Cx(e)?this.S(e):this.$(e)}M(e,n=this._$AB){return this._$AA.parentNode.insertBefore(e,n)}k(e){this._$AH!==e&&(this._$AR(),this._$AH=this.M(e))}$(e){this._$AH!==R&&Ri(this._$AH)?this._$AA.nextSibling.data=e:this.k(Tr.createTextNode(e)),this._$AH=e}T(e){var n;const{values:r,_$litType$:i}=e,o=typeof i=="number"?this._$AC(e):(i.el===void 0&&(i.el=Ui.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===o)this._$AH.m(r);else{const a=new Dx(o,this),s=a.p(this.options);a.m(r),this.k(s),this._$AH=a}}_$AC(e){let n=q0.get(e.strings);return n===void 0&&q0.set(e.strings,n=new Ui(e)),n}S(e){V0(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const o of e)i===n.length?n.push(r=new Gi(this.M(zi()),this.M(zi()),this,this.options)):r=n[i],r._$AI(o),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);e&&e!==this._$AB;){const i=e.nextSibling;e.remove(),e=i}}setConnected(e){var n;this._$AM===void 0&&(this._$Cg=e,(n=this._$AP)===null||n===void 0||n.call(this,e))}}class Ta{constructor(e,n,r,i,o){this.type=1,this._$AH=R,this._$AN=void 0,this.element=e,this.name=n,this._$AM=i,this.options=o,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=R}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,n=this,r,i){const o=this.strings;let a=!1;if(o===void 0)e=Nr(this,e,n,0),a=!Ri(e)||e!==this._$AH&&e!==xe,a&&(this._$AH=e);else{const s=e;let c,u;for(e=o[0],c=0;c<o.length-1;c++)u=Nr(this,s[r+c],n,c),u===xe&&(u=this._$AH[c]),a||(a=!Ri(u)||u!==this._$AH[c]),u===R?e=R:e!==R&&(e+=(u!=null?u:"")+o[c+1]),this._$AH[c]=u}a&&!i&&this.C(e)}C(e){e===R?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e!=null?e:"")}}class Mx extends Ta{constructor(){super(...arguments),this.type=3}C(e){this.element[this.name]=e===R?void 0:e}}const Tx=Mr?Mr.emptyScript:"";class Ix extends Ta{constructor(){super(...arguments),this.type=4}C(e){e&&e!==R?this.element.setAttribute(this.name,Tx):this.element.removeAttribute(this.name)}}class Nx extends Ta{constructor(e,n,r,i,o){super(e,n,r,i,o),this.type=5}_$AI(e,n=this){var r;if((e=(r=Nr(this,e,n,0))!==null&&r!==void 0?r:R)===xe)return;const i=this._$AH,o=e===R&&i!==R||e.capture!==i.capture||e.once!==i.once||e.passive!==i.passive,a=e!==R&&(i===R||o);o&&this.element.removeEventListener(this.name,this,i),a&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var n,r;typeof this._$AH=="function"?this._$AH.call((r=(n=this.options)===null||n===void 0?void 0:n.host)!==null&&r!==void 0?r:this.element,e):this._$AH.handleEvent(e)}}class kx{constructor(e,n,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){Nr(this,e)}}const K0=window.litHtmlPolyfillSupport;K0==null||K0(Ui,Gi),((mu=globalThis.litHtmlVersions)!==null&&mu!==void 0?mu:globalThis.litHtmlVersions=[]).push("2.2.3");function J0(t,e){return t.length==e.length&&t.every((n,r)=>t[r]===e[r])}function Lx(t,e,n,r){return t.length==e.length&&t.every((i,o)=>n(t[o])===r(e[o]))}function Ke(t){return Array.isArray(t)?t:typeof t<"u"?[t]:[]}function Ue(t){return t[t.length-1]}const Un="gs-suppress-tooltip";class Ox{constructor(e){this.container=e,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(e){e!=this._visible&&(this.element.style.display=e?null:"none",this._visible=e)}get visible(){return this._visible}get enabled(){var e;return(e=Ue(this.enabledStack))!=null?e:!0}pushEnabledState(e){this.enabledStack.push(e),e||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(e){this.mouseCoords=wx(this.container,e);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&Bx(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(e){if(!e||!this.enabled||this._isPenalty()){this.visible&&(Be("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Be(e,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(e,n){e!==this._previousTooltipDatum&&(this._previousTooltipDatum=e,n||(n=r=>Promise.resolve(D`${JSON.stringify(r)}`)),n(e).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function Bx(t,e){let n=0;for(let r=0;r<t.length;r++)n+=(t[r]-e[r])**2;return Math.sqrt(n)}const Fx="RawCode",Px="Literal",zx="Property",Rx="Identifier",jx="ArrayExpression",Ux="BinaryExpression",Gx="CallExpression",Hx="ConditionalExpression",Qx="LogicalExpression",Vx="MemberExpression",Yx="ObjectExpression",_x="UnaryExpression";function ot(t){this.type=t}ot.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=Wx(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function Wx(t){switch(t.type){case jx:return t.elements;case Ux:case Qx:return[t.left,t.right];case Gx:return[t.callee].concat(t.arguments);case Hx:return[t.test,t.consequent,t.alternate];case Vx:return[t.object,t.property];case Yx:return t.properties;case zx:return[t.key,t.value];case _x:return[t.argument];case Rx:case Px:case Fx:default:return[]}}var pt,k,S,Ce,X,Ia=1,Hi=2,Gn=3,rn=4,Na=5,Hn=6,Fe=7,Qi=8,Xx=9;pt={},pt[Ia]="Boolean",pt[Hi]="<end>",pt[Gn]="Identifier",pt[rn]="Keyword",pt[Na]="Null",pt[Hn]="Numeric",pt[Fe]="Punctuator",pt[Qi]="String",pt[Xx]="RegularExpression";var Zx="ArrayExpression",qx="BinaryExpression",Kx="CallExpression",Jx="ConditionalExpression",$0="Identifier",$x="Literal",e4="LogicalExpression",t4="MemberExpression",n4="ObjectExpression",r4="Property",i4="UnaryExpression",ge="Unexpected token %0",o4="Unexpected number",a4="Unexpected string",s4="Unexpected identifier",c4="Unexpected reserved word",u4="Unexpected end of input",gu="Invalid regular expression",yu="Invalid regular expression: missing /",ep="Octal literals are not allowed in strict mode.",l4="Duplicate data property in object literal not allowed in strict mode",Ae="ILLEGAL",Vi="Disabled.",f4=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]"),d4=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 ka(t,e){if(!t)throw new Error("ASSERT: "+e)}function Mt(t){return t>=48&&t<=57}function vu(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function Yi(t){return"01234567".indexOf(t)>=0}function h4(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function _i(t){return t===10||t===13||t===8232||t===8233}function Wi(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&f4.test(String.fromCharCode(t))}function La(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&d4.test(String.fromCharCode(t))}const p4={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 tp(){for(;S<Ce;){const t=k.charCodeAt(S);if(h4(t)||_i(t))++S;else break}}function bu(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)S<Ce&&vu(k[S])?(r=k[S++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):V({},ge,Ae);return String.fromCharCode(i)}function m4(){var t,e,n,r;for(t=k[S],e=0,t==="}"&&V({},ge,Ae);S<Ce&&(t=k[S++],!!vu(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&V({},ge,Ae),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function np(){var t,e;for(t=k.charCodeAt(S++),e=String.fromCharCode(t),t===92&&(k.charCodeAt(S)!==117&&V({},ge,Ae),++S,t=bu("u"),(!t||t==="\\"||!Wi(t.charCodeAt(0)))&&V({},ge,Ae),e=t);S<Ce&&(t=k.charCodeAt(S),!!La(t));)++S,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),k.charCodeAt(S)!==117&&V({},ge,Ae),++S,t=bu("u"),(!t||t==="\\"||!La(t.charCodeAt(0)))&&V({},ge,Ae),e+=t);return e}function g4(){var t,e;for(t=S++;S<Ce;){if(e=k.charCodeAt(S),e===92)return S=t,np();if(La(e))++S;else break}return k.slice(t,S)}function y4(){var t,e,n;return t=S,e=k.charCodeAt(S)===92?np():g4(),e.length===1?n=Gn:p4.hasOwnProperty(e)?n=rn:e==="null"?n=Na:e==="true"||e==="false"?n=Ia:n=Gn,{type:n,value:e,start:t,end:S}}function Au(){var t=S,e=k.charCodeAt(S),n,r=k[S],i,o,a;switch(e){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++S,{type:Fe,value:String.fromCharCode(e),start:t,end:S};default:if(n=k.charCodeAt(S+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return S+=2,{type:Fe,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:S};case 33:case 61:return S+=2,k.charCodeAt(S)===61&&++S,{type:Fe,value:k.slice(t,S),start:t,end:S}}}if(a=k.substr(S,4),a===">>>=")return S+=4,{type:Fe,value:a,start:t,end:S};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return S+=3,{type:Fe,value:o,start:t,end:S};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return S+=2,{type:Fe,value:i,start:t,end:S};if(i==="//"&&V({},ge,Ae),"<>=!+-*%&|^/".indexOf(r)>=0)return++S,{type:Fe,value:r,start:t,end:S};V({},ge,Ae)}function v4(t){let e="";for(;S<Ce&&vu(k[S]);)e+=k[S++];return e.length===0&&V({},ge,Ae),Wi(k.charCodeAt(S))&&V({},ge,Ae),{type:Hn,value:parseInt("0x"+e,16),start:t,end:S}}function b4(t){let e="0"+k[S++];for(;S<Ce&&Yi(k[S]);)e+=k[S++];return(Wi(k.charCodeAt(S))||Mt(k.charCodeAt(S)))&&V({},ge,Ae),{type:Hn,value:parseInt(e,8),octal:!0,start:t,end:S}}function rp(){var t,e,n;if(n=k[S],ka(Mt(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=S,t="",n!=="."){if(t=k[S++],n=k[S],t==="0"){if(n==="x"||n==="X")return++S,v4(e);if(Yi(n))return b4(e);n&&Mt(n.charCodeAt(0))&&V({},ge,Ae)}for(;Mt(k.charCodeAt(S));)t+=k[S++];n=k[S]}if(n==="."){for(t+=k[S++];Mt(k.charCodeAt(S));)t+=k[S++];n=k[S]}if(n==="e"||n==="E")if(t+=k[S++],n=k[S],(n==="+"||n==="-")&&(t+=k[S++]),Mt(k.charCodeAt(S)))for(;Mt(k.charCodeAt(S));)t+=k[S++];else V({},ge,Ae);return Wi(k.charCodeAt(S))&&V({},ge,Ae),{type:Hn,value:parseFloat(t),start:e,end:S}}function A4(){var t="",e,n,r,i,o=!1;for(e=k[S],ka(e==="'"||e==='"',"String literal must starts with a quote"),n=S,++S;S<Ce;)if(r=k[S++],r===e){e="";break}else if(r==="\\")if(r=k[S++],!r||!_i(r.charCodeAt(0)))switch(r){case"u":case"x":k[S]==="{"?(++S,t+=m4()):t+=bu(r);break;case"n":t+=`
11
- `;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:Yi(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),S<Ce&&Yi(k[S])&&(o=!0,i=i*8+"01234567".indexOf(k[S++]),"0123".indexOf(r)>=0&&S<Ce&&Yi(k[S])&&(i=i*8+"01234567".indexOf(k[S++]))),t+=String.fromCharCode(i)):t+=r;break}else r==="\r"&&k[S]===`
12
- `&&++S;else{if(_i(r.charCodeAt(0)))break;t+=r}return e!==""&&V({},ge,Ae),{type:Qi,value:t,octal:o,start:n,end:S}}function w4(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";V({},gu)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{V({},gu)}try{return new RegExp(t,e)}catch{return null}}function x4(){var t,e,n,r,i;for(t=k[S],ka(t==="/","Regular expression literal must start with a slash"),e=k[S++],n=!1,r=!1;S<Ce;)if(t=k[S++],e+=t,t==="\\")t=k[S++],_i(t.charCodeAt(0))&&V({},yu),e+=t;else if(_i(t.charCodeAt(0)))V({},yu);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||V({},yu),i=e.substr(1,e.length-2),{value:i,literal:e}}function C4(){var t,e,n;for(e="",n="";S<Ce&&(t=k[S],!!La(t.charCodeAt(0)));)++S,t==="\\"&&S<Ce?V({},ge,Ae):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&V({},gu,n),{value:n,literal:e}}function E4(){var t,e,n,r;return X=null,tp(),t=S,e=x4(),n=C4(),r=w4(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:S}}function S4(t){return t.type===Gn||t.type===rn||t.type===Ia||t.type===Na}function ip(){if(tp(),S>=Ce)return{type:Hi,start:S,end:S};const t=k.charCodeAt(S);return Wi(t)?y4():t===40||t===41||t===59?Au():t===39||t===34?A4():t===46?Mt(k.charCodeAt(S+1))?rp():Au():Mt(t)?rp():Au()}function Pe(){const t=X;return S=t.end,X=ip(),S=t.end,t}function op(){const t=S;X=ip(),S=t}function D4(t){const e=new ot(Zx);return e.elements=t,e}function ap(t,e,n){const r=new ot(t==="||"||t==="&&"?e4:qx);return r.operator=t,r.left=e,r.right=n,r}function M4(t,e){const n=new ot(Kx);return n.callee=t,n.arguments=e,n}function T4(t,e,n){const r=new ot(Jx);return r.test=t,r.consequent=e,r.alternate=n,r}function wu(t){const e=new ot($0);return e.name=t,e}function Xi(t){const e=new ot($x);return e.value=t.value,e.raw=k.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function sp(t,e,n){const r=new ot(t4);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function I4(t){const e=new ot(n4);return e.properties=t,e}function cp(t,e,n){const r=new ot(r4);return r.key=e,r.value=n,r.kind=t,r}function N4(t,e){const n=new ot(i4);return n.operator=t,n.argument=e,n.prefix=!0,n}function V(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(o,a)=>(ka(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=S,n.description=i,n}function Oa(t){t.type===Hi&&V(t,u4),t.type===Hn&&V(t,o4),t.type===Qi&&V(t,a4),t.type===Gn&&V(t,s4),t.type===rn&&V(t,c4),V(t,ge,t.value)}function Ee(t){const e=Pe();(e.type!==Fe||e.value!==t)&&Oa(e)}function J(t){return X.type===Fe&&X.value===t}function xu(t){return X.type===rn&&X.value===t}function k4(){const t=[];for(S=X.start,Ee("[");!J("]");)J(",")?(Pe(),t.push(null)):(t.push(Qn()),J("]")||Ee(","));return Pe(),D4(t)}function up(){S=X.start;const t=Pe();return t.type===Qi||t.type===Hn?(t.octal&&V(t,ep),Xi(t)):wu(t.value)}function L4(){var t,e,n,r;if(S=X.start,t=X,t.type===Gn)return n=up(),Ee(":"),r=Qn(),cp("init",n,r);if(t.type===Hi||t.type===Fe)Oa(t);else return e=up(),Ee(":"),r=Qn(),cp("init",e,r)}function O4(){var t=[],e,n,r,i={},o=String;for(S=X.start,Ee("{");!J("}");)e=L4(),e.key.type===$0?n=e.key.name:n=o(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?V({},l4):i[r]=!0,t.push(e),J("}")||Ee(",");return Ee("}"),I4(t)}function B4(){Ee("(");const t=Cu();return Ee(")"),t}const F4={if:1};function P4(){var t,e,n;if(J("("))return B4();if(J("["))return k4();if(J("{"))return O4();if(t=X.type,S=X.start,t===Gn||F4[X.value])n=wu(Pe().value);else if(t===Qi||t===Hn)X.octal&&V(X,ep),n=Xi(Pe());else{if(t===rn)throw new Error(Vi);t===Ia?(e=Pe(),e.value=e.value==="true",n=Xi(e)):t===Na?(e=Pe(),e.value=null,n=Xi(e)):J("/")||J("/=")?(n=Xi(E4()),op()):Oa(Pe())}return n}function z4(){const t=[];if(Ee("("),!J(")"))for(;S<Ce&&(t.push(Qn()),!J(")"));)Ee(",");return Ee(")"),t}function R4(){S=X.start;const t=Pe();return S4(t)||Oa(t),wu(t.value)}function j4(){return Ee("."),R4()}function U4(){Ee("[");const t=Cu();return Ee("]"),t}function G4(){var t,e,n;for(t=P4();;)if(J("."))n=j4(),t=sp(".",t,n);else if(J("("))e=z4(),t=M4(t,e);else if(J("["))n=U4(),t=sp("[",t,n);else break;return t}function lp(){const t=G4();if(X.type===Fe&&(J("++")||J("--")))throw new Error(Vi);return t}function Ba(){var t,e;if(X.type!==Fe&&X.type!==rn)e=lp();else{if(J("++")||J("--"))throw new Error(Vi);if(J("+")||J("-")||J("~")||J("!"))t=Pe(),e=Ba(),e=N4(t.value,e);else{if(xu("delete")||xu("void")||xu("typeof"))throw new Error(Vi);e=lp()}}return e}function fp(t){let e=0;if(t.type!==Fe&&t.type!==rn)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function H4(){var t,e,n,r,i,o,a,s,c,u;if(t=X,c=Ba(),r=X,i=fp(r),i===0)return c;for(r.prec=i,Pe(),e=[t,X],a=Ba(),o=[c,r,a];(i=fp(X))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,c=o.pop(),e.pop(),n=ap(s,c,a),o.push(n);r=Pe(),r.prec=i,o.push(r),e.push(X),n=Ba(),o.push(n)}for(u=o.length-1,n=o[u],e.pop();u>1;)e.pop(),n=ap(o[u-1].value,o[u-2],n),u-=2;return n}function Qn(){var t,e,n;return t=H4(),J("?")&&(Pe(),e=Qn(),Ee(":"),n=Qn(),t=T4(t,e,n)),t}function Cu(){const t=Qn();if(J(","))throw new Error(Vi);return t}function Q4(t){k=t,S=0,Ce=k.length,X=null,op();const e=Cu();if(X.type!==Hi)throw new Error("Unexpect token after expression.");return e}var V4={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 Y4(t){function e(a,s,c,u){let f=t(s[0]);return c&&(f=c+"("+f+")",c.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+a+(u<0?"":u===0?"()":"("+s.slice(1).map(t).join(",")+")")}function n(a,s,c){return u=>e(a,u,s,c)}const r="new Date",i="String",o="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(a){a.length<3&&oe("Missing arguments to clamp function."),a.length>3&&oe("Too many arguments to clamp function.");const s=a.map(t);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:o,test:n("test",o),if:function(a){a.length<3&&oe("Missing arguments to if function."),a.length>3&&oe("Too many arguments to if function.");const s=a.map(t);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function _4(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function W4(t){t=t||{};const e=t.allowed?Ko(t.allowed):{},n=t.forbidden?Ko(t.forbidden):{},r=t.constants||V4,i=(t.functions||Y4)(l),o=t.globalvar,a=t.fieldvar,s=ke(o)?o:p=>`${o}["${p}"]`;let c={},u={},f=0;function l(p){if(ee(p))return p;const m=d[p.type];return m==null&&oe("Unsupported type: "+p.type),m(p)}const d={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return f>0?m:En(n,m)?oe("Illegal identifier: "+m):En(r,m)?r[m]:En(e,m)?m:(c[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,y=l(p.object);m&&(f+=1);const g=l(p.property);return y===a&&(u[_4(g)]=1),m&&(f-=1),y+(m?"."+g:"["+g+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&oe("Illegal callee type: "+p.callee.type);const m=p.callee.name,y=p.arguments,g=En(i,m)&&i[m];return g||oe("Unrecognized function: "+m),ke(g)?g(y):g+"("+y.map(l).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(l).join(",")+"]",BinaryExpression:p=>"("+l(p.left)+" "+p.operator+" "+l(p.right)+")",UnaryExpression:p=>"("+p.operator+l(p.argument)+")",ConditionalExpression:p=>"("+l(p.test)+"?"+l(p.consequent)+":"+l(p.alternate)+")",LogicalExpression:p=>"("+l(p.left)+p.operator+l(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(l).join(",")+"}",Property:p=>{f+=1;const m=l(p.key);return f-=1,m+":"+l(p.value)}};function h(p){const m={code:l(p),globals:Object.keys(c),fields:Object.keys(u)};return c={},u={},m}return h.functions=i,h.constants=r,h}function Eu(t,e={}){const n=W4({forbidden:[],allowed:["datum"],globalvar:"global",fieldvar:"datum"});try{const r=Q4(t),i=n(r),o=Function("datum","global",`"use strict"; return (${i.code});`),a=s=>o(s,e);return a.fields=i.fields,a}catch(r){throw new Error(`Invalid expression: ${t}, ${r.message}`)}}function X4(){let t=0;const e=new Map,n=r=>{let i=e.get(r);return i===void 0&&(i=t++,e.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of e.entries())if(i[1]==r)return i[0]},n.domain=()=>[...e.keys()],n}function Z4(t,e){const n={};e||(e=t.encoding);for(const[r,i]of Object.entries(e)){if(!i)continue;const o=t.unitView.getScaleResolution(Je(i)&&i.resolutionChannel||r);n[r]=q4(e[r],o==null?void 0:o.getScale(),t.unitView.getAccessor(r),r)}return n}function q4(t,e,n,r){let i;if(at(t)){const o=t.value;i=a=>o,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=o=>{},i.accessor=n,i.constant=n.constant;else{if(!e)throw new Error(`Missing scale! "${r}": ${JSON.stringify(t)}`);if(i=o=>e(n(o)),tn(e.type)){const o=X4();o.addAll(e.domain()),i.indexer=o}i.constant=n.constant,i.accessor=n,i.scale=e}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(t)}`);return i.invert=e?o=>e.invert(o):o=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(t))},i.channelDef=t,i.applyMetadata=o=>{for(const a in i)a in i&&(o[a]=i[a]);return o},i}function at(t){return t&&"value"in t}function Vn(t){return t&&"field"in t}function Zi(t){return t&&"datum"in t}function Je(t){return Vn(t)||Zi(t)||Du(t)||dp(t)}function Su(t,e){const n=t.mark.encoding[e];if(Je(n))return n;throw new Error("Not a channel def with scale!")}function dp(t){return t&&"chrom"in t}function Du(t){return t&&"expr"in t}const qi=["x","y"],K4=["x2","y2"],J4=[...qi,...K4];function hp(t){return qi.includes(t)}function Ki(t){return J4.includes(t)}const Mu={x:"x2",y:"y2"},pp=Object.fromEntries(Object.entries(Mu).map(t=>[t[1],t[0]]));function Ji(t){return t in pp}function $4(t){const e=Mu[t];if(e)return e;throw new Error(`${t} has no secondary channel!`)}function kr(t){var e;return(e=pp[t])!=null?e:t}function Yn(t){return["color","fill","stroke"].includes(kr(t))}function Fa(t){return["shape","squeeze"].includes(t)}function mp(t){switch(t){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function gp(t){if(!Fa(t))throw new Error("Not a discrete channel: "+t);const e=new Map(mp(t).map((n,r)=>[n,r]));return n=>{const r=e.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${t}" channel: ${n}`)}}function Z(t,e=t){if(/^[A-Za-z0-9_]+$/.test(t)){const n=new Function("datum",`return datum[${JSON.stringify(t)}]`);return z(n,[t],e)}else return Vo(t)}class e3{constructor(){this.accessorCreators=[],this.register(e=>{if(Vn(e))try{const n=Z(e.field);return n.constant=!1,n.fields=Cn(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(e=>Du(e)?t3(e.expr):void 0),this.register(e=>{if(Zi(e)){const r=Mb(e.datum);return r.constant=!0,r.fields=[],r}})}register(e){this.accessorCreators.push(e)}createAccessor(e){for(const n of this.accessorCreators){const r=n(e);if(r)return r}}}function t3(t){const e=Eu(t);return e.constant=e.fields.length==0,e}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
10
+ */var pu;const Er=globalThis.trustedTypes,z0=Er?Er.createPolicy("lit-html",{createHTML:t=>t}):void 0,nn=`lit$${(Math.random()+"").slice(9)}$`,R0="?"+nn,cw=`<${R0}>`,Dr=document,Oi=(t="")=>Dr.createComment(t),Pi=t=>t===null||typeof t!="object"&&typeof t!="function",j0=Array.isArray,uw=t=>{var e;return j0(t)||typeof((e=t)===null||e===void 0?void 0:e[Symbol.iterator])=="function"},Fi=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,U0=/-->/g,G0=/>/g,Rn=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,H0=/'/g,Q0=/"/g,V0=/^(?:script|style|textarea|title)$/i,lw=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),D=lw(1),xe=Symbol.for("lit-noChange"),R=Symbol.for("lit-nothing"),Y0=new WeakMap,Be=(t,e,n)=>{var r,i;const o=(r=n==null?void 0:n.renderBefore)!==null&&r!==void 0?r:e;let a=o._$litPart$;if(a===void 0){const s=(i=n==null?void 0:n.renderBefore)!==null&&i!==void 0?i:null;o._$litPart$=a=new Ri(e.insertBefore(Oi(),s),s,void 0,n!=null?n:{})}return a._$AI(t),a},Mr=Dr.createTreeWalker(Dr,129,null,!1),fw=(t,e)=>{const n=t.length-1,r=[];let i,o=e===2?"<svg>":"",a=Fi;for(let c=0;c<n;c++){const u=t[c];let f,l,d=-1,h=0;for(;h<u.length&&(a.lastIndex=h,l=a.exec(u),l!==null);)h=a.lastIndex,a===Fi?l[1]==="!--"?a=U0:l[1]!==void 0?a=G0:l[2]!==void 0?(V0.test(l[2])&&(i=RegExp("</"+l[2],"g")),a=Rn):l[3]!==void 0&&(a=Rn):a===Rn?l[0]===">"?(a=i!=null?i:Fi,d=-1):l[1]===void 0?d=-2:(d=a.lastIndex-l[2].length,f=l[1],a=l[3]===void 0?Rn:l[3]==='"'?Q0:H0):a===Q0||a===H0?a=Rn:a===U0||a===G0?a=Fi:(a=Rn,i=void 0);const p=a===Rn&&t[c+1].startsWith("/>")?" ":"";o+=a===Fi?u+cw:d>=0?(r.push(f),u.slice(0,d)+"$lit$"+u.slice(d)+nn+p):u+nn+(d===-2?(r.push(void 0),c):p)}const s=o+(t[n]||"<?>")+(e===2?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[z0!==void 0?z0.createHTML(s):s,r]};class zi{constructor({strings:e,_$litType$:n},r){let i;this.parts=[];let o=0,a=0;const s=e.length-1,c=this.parts,[u,f]=fw(e,n);if(this.el=zi.createElement(u,r),Mr.currentNode=this.el.content,n===2){const l=this.el.content,d=l.firstChild;d.remove(),l.append(...d.childNodes)}for(;(i=Mr.nextNode())!==null&&c.length<s;){if(i.nodeType===1){if(i.hasAttributes()){const l=[];for(const d of i.getAttributeNames())if(d.endsWith("$lit$")||d.startsWith(nn)){const h=f[a++];if(l.push(d),h!==void 0){const p=i.getAttribute(h.toLowerCase()+"$lit$").split(nn),m=/([.?@])?(.*)/.exec(h);c.push({type:1,index:o,name:m[2],strings:p,ctor:m[1]==="."?hw:m[1]==="?"?mw:m[1]==="@"?gw:Da})}else c.push({type:6,index:o})}for(const d of l)i.removeAttribute(d)}if(V0.test(i.tagName)){const l=i.textContent.split(nn),d=l.length-1;if(d>0){i.textContent=Er?Er.emptyScript:"";for(let h=0;h<d;h++)i.append(l[h],Oi()),Mr.nextNode(),c.push({type:2,index:++o});i.append(l[d],Oi())}}}else if(i.nodeType===8)if(i.data===R0)c.push({type:2,index:o});else{let l=-1;for(;(l=i.data.indexOf(nn,l+1))!==-1;)c.push({type:7,index:o}),l+=nn.length-1}o++}}static createElement(e,n){const r=Dr.createElement("template");return r.innerHTML=e,r}}function Tr(t,e,n=t,r){var i,o,a,s;if(e===xe)return e;let c=r!==void 0?(i=n._$Cl)===null||i===void 0?void 0:i[r]:n._$Cu;const u=Pi(e)?void 0:e._$litDirective$;return(c==null?void 0:c.constructor)!==u&&((o=c==null?void 0:c._$AO)===null||o===void 0||o.call(c,!1),u===void 0?c=void 0:(c=new u(t),c._$AT(t,n,r)),r!==void 0?((a=(s=n)._$Cl)!==null&&a!==void 0?a:s._$Cl=[])[r]=c:n._$Cu=c),c!==void 0&&(e=Tr(t,c._$AS(t,e.values),c,r)),e}class dw{constructor(e,n){this.v=[],this._$AN=void 0,this._$AD=e,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(e){var n;const{el:{content:r},parts:i}=this._$AD,o=((n=e==null?void 0:e.creationScope)!==null&&n!==void 0?n:Dr).importNode(r,!0);Mr.currentNode=o;let a=Mr.nextNode(),s=0,c=0,u=i[0];for(;u!==void 0;){if(s===u.index){let f;u.type===2?f=new Ri(a,a.nextSibling,this,e):u.type===1?f=new u.ctor(a,u.name,u.strings,this,e):u.type===6&&(f=new yw(a,this,e)),this.v.push(f),u=i[++c]}s!==(u==null?void 0:u.index)&&(a=Mr.nextNode(),s++)}return o}m(e){let n=0;for(const r of this.v)r!==void 0&&(r.strings!==void 0?(r._$AI(e,r,n),n+=r.strings.length-2):r._$AI(e[n])),n++}}class Ri{constructor(e,n,r,i){var o;this.type=2,this._$AH=R,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=r,this.options=i,this._$Cg=(o=i==null?void 0:i.isConnected)===null||o===void 0||o}get _$AU(){var e,n;return(n=(e=this._$AM)===null||e===void 0?void 0:e._$AU)!==null&&n!==void 0?n:this._$Cg}get parentNode(){let e=this._$AA.parentNode;const n=this._$AM;return n!==void 0&&e.nodeType===11&&(e=n.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,n=this){e=Tr(this,e,n),Pi(e)?e===R||e==null||e===""?(this._$AH!==R&&this._$AR(),this._$AH=R):e!==this._$AH&&e!==xe&&this.$(e):e._$litType$!==void 0?this.T(e):e.nodeType!==void 0?this.k(e):uw(e)?this.S(e):this.$(e)}M(e,n=this._$AB){return this._$AA.parentNode.insertBefore(e,n)}k(e){this._$AH!==e&&(this._$AR(),this._$AH=this.M(e))}$(e){this._$AH!==R&&Pi(this._$AH)?this._$AA.nextSibling.data=e:this.k(Dr.createTextNode(e)),this._$AH=e}T(e){var n;const{values:r,_$litType$:i}=e,o=typeof i=="number"?this._$AC(e):(i.el===void 0&&(i.el=zi.createElement(i.h,this.options)),i);if(((n=this._$AH)===null||n===void 0?void 0:n._$AD)===o)this._$AH.m(r);else{const a=new dw(o,this),s=a.p(this.options);a.m(r),this.k(s),this._$AH=a}}_$AC(e){let n=Y0.get(e.strings);return n===void 0&&Y0.set(e.strings,n=new zi(e)),n}S(e){j0(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let r,i=0;for(const o of e)i===n.length?n.push(r=new Ri(this.M(Oi()),this.M(Oi()),this,this.options)):r=n[i],r._$AI(o),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,n){var r;for((r=this._$AP)===null||r===void 0||r.call(this,!1,!0,n);e&&e!==this._$AB;){const i=e.nextSibling;e.remove(),e=i}}setConnected(e){var n;this._$AM===void 0&&(this._$Cg=e,(n=this._$AP)===null||n===void 0||n.call(this,e))}}class Da{constructor(e,n,r,i,o){this.type=1,this._$AH=R,this._$AN=void 0,this.element=e,this.name=n,this._$AM=i,this.options=o,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=R}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,n=this,r,i){const o=this.strings;let a=!1;if(o===void 0)e=Tr(this,e,n,0),a=!Pi(e)||e!==this._$AH&&e!==xe,a&&(this._$AH=e);else{const s=e;let c,u;for(e=o[0],c=0;c<o.length-1;c++)u=Tr(this,s[r+c],n,c),u===xe&&(u=this._$AH[c]),a||(a=!Pi(u)||u!==this._$AH[c]),u===R?e=R:e!==R&&(e+=(u!=null?u:"")+o[c+1]),this._$AH[c]=u}a&&!i&&this.C(e)}C(e){e===R?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e!=null?e:"")}}class hw extends Da{constructor(){super(...arguments),this.type=3}C(e){this.element[this.name]=e===R?void 0:e}}const pw=Er?Er.emptyScript:"";class mw extends Da{constructor(){super(...arguments),this.type=4}C(e){e&&e!==R?this.element.setAttribute(this.name,pw):this.element.removeAttribute(this.name)}}class gw extends Da{constructor(e,n,r,i,o){super(e,n,r,i,o),this.type=5}_$AI(e,n=this){var r;if((e=(r=Tr(this,e,n,0))!==null&&r!==void 0?r:R)===xe)return;const i=this._$AH,o=e===R&&i!==R||e.capture!==i.capture||e.once!==i.once||e.passive!==i.passive,a=e!==R&&(i===R||o);o&&this.element.removeEventListener(this.name,this,i),a&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var n,r;typeof this._$AH=="function"?this._$AH.call((r=(n=this.options)===null||n===void 0?void 0:n.host)!==null&&r!==void 0?r:this.element,e):this._$AH.handleEvent(e)}}class yw{constructor(e,n,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){Tr(this,e)}}const _0=window.litHtmlPolyfillSupport;_0==null||_0(zi,Ri),((pu=globalThis.litHtmlVersions)!==null&&pu!==void 0?pu:globalThis.litHtmlVersions=[]).push("2.2.3");function W0(t,e){return t.length==e.length&&t.every((n,r)=>t[r]===e[r])}function bw(t,e,n,r){return t.length==e.length&&t.every((i,o)=>n(t[o])===r(e[o]))}function qe(t){return Array.isArray(t)?t:typeof t<"u"?[t]:[]}function je(t){return t[t.length-1]}const jn="gs-suppress-tooltip";class vw{constructor(e){this.container=e,this.element=document.createElement("div"),this.element.className="tooltip",this._visible=!0,this.container.appendChild(this.element),this._previousTooltipDatum=void 0,this.enabledStack=[!0],this._penaltyUntil=0,this._lastCoords=void 0,this._previousMove=0,this.clear()}set visible(e){e!=this._visible&&(this.element.style.display=e?null:"none",this._visible=e)}get visible(){return this._visible}get enabled(){var e;return(e=je(this.enabledStack))!=null?e:!0}pushEnabledState(e){this.enabledStack.push(e),e||(this.visible=!1)}popEnabledState(){this.enabledStack.pop()}handleMouseMove(e){this.mouseCoords=sw(this.container,e);const n=performance.now();!this.visible&&!this._isPenalty()&&n-this._previousMove>500&&(this._penaltyUntil=n+70),this._lastCoords&&Aw(this.mouseCoords,this._lastCoords)>20&&(this._penaltyUntil=n+400),this._lastCoords=this.mouseCoords,this.visible&&this.updatePlacement(),this._previousMove=n}updatePlacement(){const[n,r]=this.mouseCoords;let i=n+20;i>this.container.clientWidth-this.element.offsetWidth&&(i=n-20-this.element.offsetWidth),this.element.style.left=i+"px",this.element.style.top=Math.min(r+20,this.container.clientHeight-this.element.offsetHeight)+"px"}setContent(e){if(!e||!this.enabled||this._isPenalty()){this.visible&&(Be("",this.element),this.visible=!1),this._previousTooltipDatum=void 0;return}Be(e,this.element),this.visible=!0,this.updatePlacement()}clear(){this._previousTooltipDatum=void 0,this.setContent(void 0)}updateWithDatum(e,n){e!==this._previousTooltipDatum&&(this._previousTooltipDatum=e,n||(n=r=>Promise.resolve(D`${JSON.stringify(r)}`)),n(e).then(r=>this.setContent(r)).catch(r=>{if(r!=="debounced")throw r}))}_isPenalty(){return this._penaltyUntil&&this._penaltyUntil>performance.now()}}function Aw(t,e){let n=0;for(let r=0;r<t.length;r++)n+=(t[r]-e[r])**2;return Math.sqrt(n)}const xw="RawCode",ww="Literal",Cw="Property",Sw="Identifier",Ew="ArrayExpression",Dw="BinaryExpression",Mw="CallExpression",Tw="ConditionalExpression",Iw="LogicalExpression",kw="MemberExpression",Nw="ObjectExpression",Lw="UnaryExpression";function it(t){this.type=t}it.prototype.visit=function(t){let e,n,r;if(t(this))return 1;for(e=Bw(this),n=0,r=e.length;n<r;++n)if(e[n].visit(t))return 1};function Bw(t){switch(t.type){case Ew:return t.elements;case Dw:case Iw:return[t.left,t.right];case Mw:return[t.callee].concat(t.arguments);case Tw:return[t.test,t.consequent,t.alternate];case kw:return[t.object,t.property];case Nw:return t.properties;case Cw:return[t.key,t.value];case Lw:return[t.argument];case Sw:case ww:case xw:default:return[]}}var pt,N,S,we,X,Ma=1,ji=2,Un=3,rn=4,Ta=5,Gn=6,Oe=7,Ui=8,Ow=9;pt={},pt[Ma]="Boolean",pt[ji]="<end>",pt[Un]="Identifier",pt[rn]="Keyword",pt[Ta]="Null",pt[Gn]="Numeric",pt[Oe]="Punctuator",pt[Ui]="String",pt[Ow]="RegularExpression";var Pw="ArrayExpression",Fw="BinaryExpression",zw="CallExpression",Rw="ConditionalExpression",X0="Identifier",jw="Literal",Uw="LogicalExpression",Gw="MemberExpression",Hw="ObjectExpression",Qw="Property",Vw="UnaryExpression",ge="Unexpected token %0",Yw="Unexpected number",_w="Unexpected string",Ww="Unexpected identifier",Xw="Unexpected reserved word",Zw="Unexpected end of input",mu="Invalid regular expression",gu="Invalid regular expression: missing /",Z0="Octal literals are not allowed in strict mode.",qw="Duplicate data property in object literal not allowed in strict mode",ve="ILLEGAL",Gi="Disabled.",Kw=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]"),Jw=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 Ia(t,e){if(!t)throw new Error("ASSERT: "+e)}function Mt(t){return t>=48&&t<=57}function yu(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function Hi(t){return"01234567".indexOf(t)>=0}function $w(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function Qi(t){return t===10||t===13||t===8232||t===8233}function Vi(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&Kw.test(String.fromCharCode(t))}function ka(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&Jw.test(String.fromCharCode(t))}const e4={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 q0(){for(;S<we;){const t=N.charCodeAt(S);if($w(t)||Qi(t))++S;else break}}function bu(t){var e,n,r,i=0;for(n=t==="u"?4:2,e=0;e<n;++e)S<we&&yu(N[S])?(r=N[S++],i=i*16+"0123456789abcdef".indexOf(r.toLowerCase())):V({},ge,ve);return String.fromCharCode(i)}function t4(){var t,e,n,r;for(t=N[S],e=0,t==="}"&&V({},ge,ve);S<we&&(t=N[S++],!!yu(t));)e=e*16+"0123456789abcdef".indexOf(t.toLowerCase());return(e>1114111||t!=="}")&&V({},ge,ve),e<=65535?String.fromCharCode(e):(n=(e-65536>>10)+55296,r=(e-65536&1023)+56320,String.fromCharCode(n,r))}function K0(){var t,e;for(t=N.charCodeAt(S++),e=String.fromCharCode(t),t===92&&(N.charCodeAt(S)!==117&&V({},ge,ve),++S,t=bu("u"),(!t||t==="\\"||!Vi(t.charCodeAt(0)))&&V({},ge,ve),e=t);S<we&&(t=N.charCodeAt(S),!!ka(t));)++S,e+=String.fromCharCode(t),t===92&&(e=e.substr(0,e.length-1),N.charCodeAt(S)!==117&&V({},ge,ve),++S,t=bu("u"),(!t||t==="\\"||!ka(t.charCodeAt(0)))&&V({},ge,ve),e+=t);return e}function n4(){var t,e;for(t=S++;S<we;){if(e=N.charCodeAt(S),e===92)return S=t,K0();if(ka(e))++S;else break}return N.slice(t,S)}function r4(){var t,e,n;return t=S,e=N.charCodeAt(S)===92?K0():n4(),e.length===1?n=Un:e4.hasOwnProperty(e)?n=rn:e==="null"?n=Ta:e==="true"||e==="false"?n=Ma:n=Un,{type:n,value:e,start:t,end:S}}function vu(){var t=S,e=N.charCodeAt(S),n,r=N[S],i,o,a;switch(e){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++S,{type:Oe,value:String.fromCharCode(e),start:t,end:S};default:if(n=N.charCodeAt(S+1),n===61)switch(e){case 43:case 45:case 47:case 60:case 62:case 94:case 124:case 37:case 38:case 42:return S+=2,{type:Oe,value:String.fromCharCode(e)+String.fromCharCode(n),start:t,end:S};case 33:case 61:return S+=2,N.charCodeAt(S)===61&&++S,{type:Oe,value:N.slice(t,S),start:t,end:S}}}if(a=N.substr(S,4),a===">>>=")return S+=4,{type:Oe,value:a,start:t,end:S};if(o=a.substr(0,3),o===">>>"||o==="<<="||o===">>=")return S+=3,{type:Oe,value:o,start:t,end:S};if(i=o.substr(0,2),r===i[1]&&"+-<>&|".indexOf(r)>=0||i==="=>")return S+=2,{type:Oe,value:i,start:t,end:S};if(i==="//"&&V({},ge,ve),"<>=!+-*%&|^/".indexOf(r)>=0)return++S,{type:Oe,value:r,start:t,end:S};V({},ge,ve)}function i4(t){let e="";for(;S<we&&yu(N[S]);)e+=N[S++];return e.length===0&&V({},ge,ve),Vi(N.charCodeAt(S))&&V({},ge,ve),{type:Gn,value:parseInt("0x"+e,16),start:t,end:S}}function o4(t){let e="0"+N[S++];for(;S<we&&Hi(N[S]);)e+=N[S++];return(Vi(N.charCodeAt(S))||Mt(N.charCodeAt(S)))&&V({},ge,ve),{type:Gn,value:parseInt(e,8),octal:!0,start:t,end:S}}function J0(){var t,e,n;if(n=N[S],Ia(Mt(n.charCodeAt(0))||n===".","Numeric literal must start with a decimal digit or a decimal point"),e=S,t="",n!=="."){if(t=N[S++],n=N[S],t==="0"){if(n==="x"||n==="X")return++S,i4(e);if(Hi(n))return o4(e);n&&Mt(n.charCodeAt(0))&&V({},ge,ve)}for(;Mt(N.charCodeAt(S));)t+=N[S++];n=N[S]}if(n==="."){for(t+=N[S++];Mt(N.charCodeAt(S));)t+=N[S++];n=N[S]}if(n==="e"||n==="E")if(t+=N[S++],n=N[S],(n==="+"||n==="-")&&(t+=N[S++]),Mt(N.charCodeAt(S)))for(;Mt(N.charCodeAt(S));)t+=N[S++];else V({},ge,ve);return Vi(N.charCodeAt(S))&&V({},ge,ve),{type:Gn,value:parseFloat(t),start:e,end:S}}function a4(){var t="",e,n,r,i,o=!1;for(e=N[S],Ia(e==="'"||e==='"',"String literal must starts with a quote"),n=S,++S;S<we;)if(r=N[S++],r===e){e="";break}else if(r==="\\")if(r=N[S++],!r||!Qi(r.charCodeAt(0)))switch(r){case"u":case"x":N[S]==="{"?(++S,t+=t4()):t+=bu(r);break;case"n":t+=`
11
+ `;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:Hi(r)?(i="01234567".indexOf(r),i!==0&&(o=!0),S<we&&Hi(N[S])&&(o=!0,i=i*8+"01234567".indexOf(N[S++]),"0123".indexOf(r)>=0&&S<we&&Hi(N[S])&&(i=i*8+"01234567".indexOf(N[S++]))),t+=String.fromCharCode(i)):t+=r;break}else r==="\r"&&N[S]===`
12
+ `&&++S;else{if(Qi(r.charCodeAt(0)))break;t+=r}return e!==""&&V({},ge,ve),{type:Ui,value:t,octal:o,start:n,end:S}}function s4(t,e){let n=t;e.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(r,i)=>{if(parseInt(i,16)<=1114111)return"x";V({},mu)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch{V({},mu)}try{return new RegExp(t,e)}catch{return null}}function c4(){var t,e,n,r,i;for(t=N[S],Ia(t==="/","Regular expression literal must start with a slash"),e=N[S++],n=!1,r=!1;S<we;)if(t=N[S++],e+=t,t==="\\")t=N[S++],Qi(t.charCodeAt(0))&&V({},gu),e+=t;else if(Qi(t.charCodeAt(0)))V({},gu);else if(n)t==="]"&&(n=!1);else if(t==="/"){r=!0;break}else t==="["&&(n=!0);return r||V({},gu),i=e.substr(1,e.length-2),{value:i,literal:e}}function u4(){var t,e,n;for(e="",n="";S<we&&(t=N[S],!!ka(t.charCodeAt(0)));)++S,t==="\\"&&S<we?V({},ge,ve):(n+=t,e+=t);return n.search(/[^gimuy]/g)>=0&&V({},mu,n),{value:n,literal:e}}function l4(){var t,e,n,r;return X=null,q0(),t=S,e=c4(),n=u4(),r=s4(e.value,n.value),{literal:e.literal+n.literal,value:r,regex:{pattern:e.value,flags:n.value},start:t,end:S}}function f4(t){return t.type===Un||t.type===rn||t.type===Ma||t.type===Ta}function $0(){if(q0(),S>=we)return{type:ji,start:S,end:S};const t=N.charCodeAt(S);return Vi(t)?r4():t===40||t===41||t===59?vu():t===39||t===34?a4():t===46?Mt(N.charCodeAt(S+1))?J0():vu():Mt(t)?J0():vu()}function Pe(){const t=X;return S=t.end,X=$0(),S=t.end,t}function ep(){const t=S;X=$0(),S=t}function d4(t){const e=new it(Pw);return e.elements=t,e}function tp(t,e,n){const r=new it(t==="||"||t==="&&"?Uw:Fw);return r.operator=t,r.left=e,r.right=n,r}function h4(t,e){const n=new it(zw);return n.callee=t,n.arguments=e,n}function p4(t,e,n){const r=new it(Rw);return r.test=t,r.consequent=e,r.alternate=n,r}function Au(t){const e=new it(X0);return e.name=t,e}function Yi(t){const e=new it(jw);return e.value=t.value,e.raw=N.slice(t.start,t.end),t.regex&&(e.raw==="//"&&(e.raw="/(?:)/"),e.regex=t.regex),e}function np(t,e,n){const r=new it(Gw);return r.computed=t==="[",r.object=e,r.property=n,r.computed||(n.member=!0),r}function m4(t){const e=new it(Hw);return e.properties=t,e}function rp(t,e,n){const r=new it(Qw);return r.key=e,r.value=n,r.kind=t,r}function g4(t,e){const n=new it(Vw);return n.operator=t,n.argument=e,n.prefix=!0,n}function V(t,e){var n,r=Array.prototype.slice.call(arguments,2),i=e.replace(/%(\d)/g,(o,a)=>(Ia(a<r.length,"Message reference must be in range"),r[a]));throw n=new Error(i),n.index=S,n.description=i,n}function Na(t){t.type===ji&&V(t,Zw),t.type===Gn&&V(t,Yw),t.type===Ui&&V(t,_w),t.type===Un&&V(t,Ww),t.type===rn&&V(t,Xw),V(t,ge,t.value)}function Ce(t){const e=Pe();(e.type!==Oe||e.value!==t)&&Na(e)}function J(t){return X.type===Oe&&X.value===t}function xu(t){return X.type===rn&&X.value===t}function y4(){const t=[];for(S=X.start,Ce("[");!J("]");)J(",")?(Pe(),t.push(null)):(t.push(Hn()),J("]")||Ce(","));return Pe(),d4(t)}function ip(){S=X.start;const t=Pe();return t.type===Ui||t.type===Gn?(t.octal&&V(t,Z0),Yi(t)):Au(t.value)}function b4(){var t,e,n,r;if(S=X.start,t=X,t.type===Un)return n=ip(),Ce(":"),r=Hn(),rp("init",n,r);if(t.type===ji||t.type===Oe)Na(t);else return e=ip(),Ce(":"),r=Hn(),rp("init",e,r)}function v4(){var t=[],e,n,r,i={},o=String;for(S=X.start,Ce("{");!J("}");)e=b4(),e.key.type===X0?n=e.key.name:n=o(e.key.value),r="$"+n,Object.prototype.hasOwnProperty.call(i,r)?V({},qw):i[r]=!0,t.push(e),J("}")||Ce(",");return Ce("}"),m4(t)}function A4(){Ce("(");const t=wu();return Ce(")"),t}const x4={if:1};function w4(){var t,e,n;if(J("("))return A4();if(J("["))return y4();if(J("{"))return v4();if(t=X.type,S=X.start,t===Un||x4[X.value])n=Au(Pe().value);else if(t===Ui||t===Gn)X.octal&&V(X,Z0),n=Yi(Pe());else{if(t===rn)throw new Error(Gi);t===Ma?(e=Pe(),e.value=e.value==="true",n=Yi(e)):t===Ta?(e=Pe(),e.value=null,n=Yi(e)):J("/")||J("/=")?(n=Yi(l4()),ep()):Na(Pe())}return n}function C4(){const t=[];if(Ce("("),!J(")"))for(;S<we&&(t.push(Hn()),!J(")"));)Ce(",");return Ce(")"),t}function S4(){S=X.start;const t=Pe();return f4(t)||Na(t),Au(t.value)}function E4(){return Ce("."),S4()}function D4(){Ce("[");const t=wu();return Ce("]"),t}function M4(){var t,e,n;for(t=w4();;)if(J("."))n=E4(),t=np(".",t,n);else if(J("("))e=C4(),t=h4(t,e);else if(J("["))n=D4(),t=np("[",t,n);else break;return t}function op(){const t=M4();if(X.type===Oe&&(J("++")||J("--")))throw new Error(Gi);return t}function La(){var t,e;if(X.type!==Oe&&X.type!==rn)e=op();else{if(J("++")||J("--"))throw new Error(Gi);if(J("+")||J("-")||J("~")||J("!"))t=Pe(),e=La(),e=g4(t.value,e);else{if(xu("delete")||xu("void")||xu("typeof"))throw new Error(Gi);e=op()}}return e}function ap(t){let e=0;if(t.type!==Oe&&t.type!==rn)return 0;switch(t.value){case"||":e=1;break;case"&&":e=2;break;case"|":e=3;break;case"^":e=4;break;case"&":e=5;break;case"==":case"!=":case"===":case"!==":e=6;break;case"<":case">":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11;break}return e}function T4(){var t,e,n,r,i,o,a,s,c,u;if(t=X,c=La(),r=X,i=ap(r),i===0)return c;for(r.prec=i,Pe(),e=[t,X],a=La(),o=[c,r,a];(i=ap(X))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,c=o.pop(),e.pop(),n=tp(s,c,a),o.push(n);r=Pe(),r.prec=i,o.push(r),e.push(X),n=La(),o.push(n)}for(u=o.length-1,n=o[u],e.pop();u>1;)e.pop(),n=tp(o[u-1].value,o[u-2],n),u-=2;return n}function Hn(){var t,e,n;return t=T4(),J("?")&&(Pe(),e=Hn(),Ce(":"),n=Hn(),t=p4(t,e,n)),t}function wu(){const t=Hn();if(J(","))throw new Error(Gi);return t}function I4(t){N=t,S=0,we=N.length,X=null,ep();const e=wu();if(X.type!==ji)throw new Error("Unexpect token after expression.");return e}var k4={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 N4(t){function e(a,s,c,u){let f=t(s[0]);return c&&(f=c+"("+f+")",c.lastIndexOf("new ",0)===0&&(f="("+f+")")),f+"."+a+(u<0?"":u===0?"()":"("+s.slice(1).map(t).join(",")+")")}function n(a,s,c){return u=>e(a,u,s,c)}const r="new Date",i="String",o="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(a){a.length<3&&oe("Missing arguments to clamp function."),a.length>3&&oe("Too many arguments to clamp function.");const s=a.map(t);return"Math.max("+s[1]+", Math.min("+s[2]+","+s[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:r,date:n("getDate",r,0),day:n("getDay",r,0),year:n("getFullYear",r,0),month:n("getMonth",r,0),hours:n("getHours",r,0),minutes:n("getMinutes",r,0),seconds:n("getSeconds",r,0),milliseconds:n("getMilliseconds",r,0),time:n("getTime",r,0),timezoneoffset:n("getTimezoneOffset",r,0),utcdate:n("getUTCDate",r,0),utcday:n("getUTCDay",r,0),utcyear:n("getUTCFullYear",r,0),utcmonth:n("getUTCMonth",r,0),utchours:n("getUTCHours",r,0),utcminutes:n("getUTCMinutes",r,0),utcseconds:n("getUTCSeconds",r,0),utcmilliseconds:n("getUTCMilliseconds",r,0),length:n("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:n("toUpperCase",i,0),lower:n("toLowerCase",i,0),substring:n("substring",i),split:n("split",i),trim:n("trim",i,0),regexp:o,test:n("test",o),if:function(a){a.length<3&&oe("Missing arguments to if function."),a.length>3&&oe("Too many arguments to if function.");const s=a.map(t);return"("+s[0]+"?"+s[1]+":"+s[2]+")"}}}function L4(t){const e=t&&t.length-1;return e&&(t[0]==='"'&&t[e]==='"'||t[0]==="'"&&t[e]==="'")?t.slice(1,-1):t}function B4(t){t=t||{};const e=t.allowed?Zo(t.allowed):{},n=t.forbidden?Zo(t.forbidden):{},r=t.constants||k4,i=(t.functions||N4)(l),o=t.globalvar,a=t.fieldvar,s=ke(o)?o:p=>`${o}["${p}"]`;let c={},u={},f=0;function l(p){if(ee(p))return p;const m=d[p.type];return m==null&&oe("Unsupported type: "+p.type),m(p)}const d={Literal:p=>p.raw,Identifier:p=>{const m=p.name;return f>0?m:Cn(n,m)?oe("Illegal identifier: "+m):Cn(r,m)?r[m]:Cn(e,m)?m:(c[m]=1,s(m))},MemberExpression:p=>{const m=!p.computed,y=l(p.object);m&&(f+=1);const g=l(p.property);return y===a&&(u[L4(g)]=1),m&&(f-=1),y+(m?"."+g:"["+g+"]")},CallExpression:p=>{p.callee.type!=="Identifier"&&oe("Illegal callee type: "+p.callee.type);const m=p.callee.name,y=p.arguments,g=Cn(i,m)&&i[m];return g||oe("Unrecognized function: "+m),ke(g)?g(y):g+"("+y.map(l).join(",")+")"},ArrayExpression:p=>"["+p.elements.map(l).join(",")+"]",BinaryExpression:p=>"("+l(p.left)+" "+p.operator+" "+l(p.right)+")",UnaryExpression:p=>"("+p.operator+l(p.argument)+")",ConditionalExpression:p=>"("+l(p.test)+"?"+l(p.consequent)+":"+l(p.alternate)+")",LogicalExpression:p=>"("+l(p.left)+p.operator+l(p.right)+")",ObjectExpression:p=>"{"+p.properties.map(l).join(",")+"}",Property:p=>{f+=1;const m=l(p.key);return f-=1,m+":"+l(p.value)}};function h(p){const m={code:l(p),globals:Object.keys(c),fields:Object.keys(u)};return c={},u={},m}return h.functions=i,h.constants=r,h}function Cu(t,e={}){const n=B4({forbidden:[],allowed:["datum"],globalvar:"global",fieldvar:"datum"});try{const r=I4(t),i=n(r),o=Function("datum","global",`"use strict"; return (${i.code});`),a=s=>o(s,e);return a.fields=i.fields,a}catch(r){throw new Error(`Invalid expression: ${t}, ${r.message}`)}}function O4(){let t=0;const e=new Map,n=r=>{let i=e.get(r);return i===void 0&&(i=t++,e.set(r,i)),i};return n.addAll=r=>{for(const i of r)n(i)},n.invert=r=>{for(const i of e.entries())if(i[1]==r)return i[0]},n.domain=()=>[...e.keys()],n}function P4(t,e){const n={};e||(e=t.encoding);for(const[r,i]of Object.entries(e)){if(!i)continue;const o=t.unitView.getScaleResolution(Ke(i)&&i.resolutionChannel||r);n[r]=F4(e[r],o==null?void 0:o.getScale(),t.unitView.getAccessor(r),r)}return n}function F4(t,e,n,r){let i;if(ot(t)){const o=t.value;i=a=>o,i.constant=!0,i.constantValue=!0,i.accessor=void 0}else if(n)if(r=="text")i=o=>{},i.accessor=n,i.constant=n.constant;else{if(!e)throw new Error(`Missing scale! "${r}": ${JSON.stringify(t)}`);if(i=o=>e(n(o)),tn(e.type)){const o=O4();o.addAll(e.domain()),i.indexer=o}i.constant=n.constant,i.accessor=n,i.scale=e}else throw new Error(`Missing value or accessor (field, expr, datum) on channel "${r}": ${JSON.stringify(t)}`);return i.invert=e?o=>e.invert(o):o=>{throw new Error("No scale available, cannot invert: "+JSON.stringify(t))},i.channelDef=t,i.applyMetadata=o=>{for(const a in i)a in i&&(o[a]=i[a]);return o},i}function ot(t){return t&&"value"in t}function Qn(t){return t&&"field"in t}function _i(t){return t&&"datum"in t}function Ke(t){return Qn(t)||_i(t)||Eu(t)||sp(t)}function Su(t,e){const n=t.mark.encoding[e];if(Ke(n))return n;throw new Error("Not a channel def with scale!")}function sp(t){return t&&"chrom"in t}function Eu(t){return t&&"expr"in t}const Wi=["x","y"],z4=["x2","y2"],R4=[...Wi,...z4];function cp(t){return Wi.includes(t)}function Xi(t){return R4.includes(t)}const Du={x:"x2",y:"y2"},up=Object.fromEntries(Object.entries(Du).map(t=>[t[1],t[0]]));function Zi(t){return t in up}function j4(t){const e=Du[t];if(e)return e;throw new Error(`${t} has no secondary channel!`)}function Ir(t){var e;return(e=up[t])!=null?e:t}function Vn(t){return["color","fill","stroke"].includes(Ir(t))}function Ba(t){return["shape","squeeze"].includes(t)}function lp(t){switch(t){case"shape":return["circle","square","triangle-up","cross","diamond","triangle-down","triangle-right","triangle-left"]}}function fp(t){if(!Ba(t))throw new Error("Not a discrete channel: "+t);const e=new Map(lp(t).map((n,r)=>[n,r]));return n=>{const r=e.get(n);if(r!==void 0)return r;throw new Error(`Invalid value for "${t}" channel: ${n}`)}}function Z(t,e=t){if(/^[A-Za-z0-9_]+$/.test(t)){const n=new Function("datum",`return datum[${JSON.stringify(t)}]`);return z(n,[t],e)}else return Ho(t)}class U4{constructor(){this.accessorCreators=[],this.register(e=>{if(Qn(e))try{const n=Z(e.field);return n.constant=!1,n.fields=wn(n),n}catch(n){throw new Error(`Invalid field definition: ${n.message}`)}}),this.register(e=>Eu(e)?G4(e.expr):void 0),this.register(e=>{if(_i(e)){const r=hb(e.datum);return r.constant=!0,r.fields=[],r}})}register(e){this.accessorCreators.push(e)}createAccessor(e){for(const n of this.accessorCreators){const r=n(e);if(r)return r}}}function G4(t){const e=Cu(t);return e.constant=e.fields.length==0,e}/* @license twgl.js 4.22.0 Copyright (c) 2015, Gregg Tavares All Rights Reserved.
13
13
  Available via the MIT license.
14
- see: http://github.com/greggman/twgl.js for details */const Tu=5120,$i=5121,Iu=5122,Nu=5123,ku=5124,Lu=5125,Ou=5126,n3=32819,r3=32820,i3=33635,o3=5131,a3=33640,s3=35899,c3=35902,u3=36269,l3=34042,yp={};{const t=yp;t[Tu]=Int8Array,t[$i]=Uint8Array,t[Iu]=Int16Array,t[Nu]=Uint16Array,t[ku]=Int32Array,t[Lu]=Uint32Array,t[Ou]=Float32Array,t[n3]=Uint16Array,t[r3]=Uint16Array,t[i3]=Uint16Array,t[o3]=Uint16Array,t[a3]=Uint32Array,t[s3]=Uint32Array,t[c3]=Uint32Array,t[u3]=Uint32Array,t[l3]=Uint32Array}function Bu(t){if(t instanceof Int8Array)return Tu;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)return $i;if(t instanceof Int16Array)return Iu;if(t instanceof Uint16Array)return Nu;if(t instanceof Int32Array)return ku;if(t instanceof Uint32Array)return Lu;if(t instanceof Float32Array)return Ou;throw new Error("unsupported typed array type")}function f3(t){if(t===Int8Array)return Tu;if(t===Uint8Array||t===Uint8ClampedArray)return $i;if(t===Int16Array)return Iu;if(t===Uint16Array)return Nu;if(t===Int32Array)return ku;if(t===Uint32Array)return Lu;if(t===Float32Array)return Ou;throw new Error("unsupported typed array type")}function d3(t){const e=yp[t];if(!e)throw new Error("unknown gl type");return e}const Pa=typeof SharedArrayBuffer<"u"?function(e){return e&&e.buffer&&(e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer)}:function(e){return e&&e.buffer&&e.buffer instanceof ArrayBuffer};function h3(...t){console.error(...t)}function vp(...t){console.warn(...t)}function p3(t,e){return typeof WebGLBuffer<"u"&&e instanceof WebGLBuffer}function bp(t,e){return typeof WebGLRenderbuffer<"u"&&e instanceof WebGLRenderbuffer}function za(t,e){return typeof WebGLTexture<"u"&&e instanceof WebGLTexture}function m3(t,e){return typeof WebGLSampler<"u"&&e instanceof WebGLSampler}const Ap=35044,mt=34962,g3=34963,y3=34660,v3=5120,b3=5121,A3=5122,w3=5123,x3=5124,C3=5125,E3=5126,wp={attribPrefix:""};function xp(t,e,n,r,i){t.bindBuffer(e,n),t.bufferData(e,r,i||Ap)}function Cp(t,e,n,r){if(p3(t,e))return e;n=n||mt;const i=t.createBuffer();return xp(t,n,i,e,r),i}function Ep(t){return t==="indices"}function S3(t){return t instanceof Int8Array||t instanceof Uint8Array}function D3(t){return t===Int8Array||t===Uint8Array}function M3(t){return t.length?t:t.data}const T3=/coord|texture/i,I3=/color|colour/i;function Sp(t,e){let n;if(T3.test(t)?n=2:I3.test(t)?n=4:n=3,e%n>0)throw new Error(`Can not guess numComponents for attribute '${t}'. Tried ${n} but ${e} values is not evenly divisible by ${n}. You should specify it.`);return n}function N3(t,e){return t.numComponents||t.size||Sp(e,M3(t).length)}function Fu(t,e){if(Pa(t))return t;if(Pa(t.data))return t.data;Array.isArray(t)&&(t={data:t});let n=t.type;return n||(Ep(e)?n=Uint16Array:n=Float32Array),new n(t.data)}function k3(t,e){const n={};return Object.keys(e).forEach(function(r){if(!Ep(r)){const i=e[r],o=i.attrib||i.name||i.attribName||wp.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!Pa(i.value))throw new Error("array.value is not array or typedarray");n[o]={value:i.value}}else{let a,s,c,u;if(i.buffer&&i.buffer instanceof WebGLBuffer)a=i.buffer,u=i.numComponents||i.size,s=i.type,c=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,l=i.type||Float32Array,d=f*l.BYTES_PER_ELEMENT;s=f3(l),c=i.normalize!==void 0?i.normalize:D3(l),u=i.numComponents||i.size||Sp(r,f),a=t.createBuffer(),t.bindBuffer(mt,a),t.bufferData(mt,d,i.drawType||Ap)}else{const f=Fu(i,r);a=Cp(t,f,void 0,i.drawType),s=Bu(f),c=i.normalize!==void 0?i.normalize:S3(f),u=N3(i,r)}n[o]={buffer:a,numComponents:u,type:s,normalize:c,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),t.bindBuffer(mt,null),n}function L3(t,e,n,r){n=Fu(n),r!==void 0?(t.bindBuffer(mt,e.buffer),t.bufferSubData(mt,r,n)):xp(t,mt,e.buffer,n,e.drawType)}function O3(t,e){return e===v3||e===b3?1:e===A3||e===w3?2:e===x3||e===C3||e===E3?4:0}const Pu=["position","positions","a_position"];function B3(t,e){let n,r;for(r=0;r<Pu.length&&(n=Pu[r],!(n in e||(n=wp.attribPrefix+n,n in e)));++r);r===Pu.length&&(n=Object.keys(e)[0]);const i=e[n];t.bindBuffer(mt,i.buffer);const o=t.getBufferParameter(mt,y3);t.bindBuffer(mt,null);const a=O3(t,i.type),s=o/a,c=i.numComponents||i.size,u=s/c;if(u%1!==0)throw new Error(`numComponents ${c} not correct for length ${length}`);return u}function F3(t,e,n){const r=k3(t,e),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=e.indices;if(o){const a=Fu(o,"indices");i.indices=Cp(t,a,g3),i.numElements=a.length,i.elementType=Bu(a)}else i.numElements||(i.numElements=B3(t,i.attribs));return i}function Lr(t){return!!t.texStorage2D}const zu=function(){const t={},e={};function n(r){const i=r.constructor.name;if(!t[i]){for(const o in r)if(typeof r[o]=="number"){const a=e[r[o]];e[r[o]]=a?`${a} | ${o}`:o}t[i]=!0}}return function(i,o){return n(i),e[o]||(typeof o=="number"?`0x${o.toString(16)}`:o)}}(),on={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Or=Pa,Dp=function(){let t;return function(){return t=t||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),t}}(),Mp=6406,gt=6407,te=6408,Tp=6409,Ip=6410,eo=6402,Np=34041,Ra=33071,P3=9728,z3=9729,Tt=3553,It=34067,an=32879,sn=35866,ja=34069,R3=34070,j3=34071,U3=34072,G3=34073,H3=34074,Ru=10241,ju=10240,Ua=10242,Ga=10243,kp=32882,Q3=33082,V3=33083,Y3=33084,_3=33085,Uu=3317,Lp=3314,Op=32878,Bp=3316,Fp=3315,Pp=32877,W3=37443,X3=37441,Z3=37440,q3=33321,K3=36756,J3=33325,$3=33326,eC=33330,tC=33329,nC=33338,rC=33337,iC=33340,oC=33339,aC=33323,sC=36757,cC=33327,uC=33328,lC=33336,fC=33335,dC=33332,hC=33331,pC=33334,mC=33333,gC=32849,yC=35905,vC=36194,bC=36758,AC=35898,wC=35901,xC=34843,CC=34837,EC=36221,SC=36239,DC=36215,MC=36233,TC=36209,IC=36227,NC=32856,kC=35907,LC=36759,OC=32855,BC=32854,FC=32857,PC=34842,zC=34836,RC=36220,jC=36238,UC=36975,GC=36214,HC=36232,QC=36226,VC=36208,YC=33189,_C=33190,WC=36012,XC=36013,ZC=35056,cn=5120,ne=5121,Ha=5122,Br=5123,Qa=5124,_n=5125,Se=5126,zp=32819,Rp=32820,jp=33635,st=5131,to=36193,Gu=33640,qC=35899,KC=35902,JC=36269,$C=34042,Va=33319,Fr=33320,Ya=6403,Pr=36244,zr=36248,Wn=36249;let Hu;function _a(t){if(!Hu){const e={};e[Mp]={textureFormat:Mp,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[ne,st,to,Se]},e[Tp]={textureFormat:Tp,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[ne,st,to,Se]},e[Ip]={textureFormat:Ip,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[ne,st,to,Se]},e[gt]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[ne,st,to,Se,jp]},e[te]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[ne,st,to,Se,zp,Rp]},e[eo]={textureFormat:eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[_n,Br]},e[q3]={textureFormat:Ya,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[ne]},e[K3]={textureFormat:Ya,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[cn]},e[J3]={textureFormat:Ya,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Se,st]},e[$3]={textureFormat:Ya,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Se]},e[eC]={textureFormat:Pr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[ne]},e[tC]={textureFormat:Pr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[cn]},e[dC]={textureFormat:Pr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Br]},e[hC]={textureFormat:Pr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ha]},e[pC]={textureFormat:Pr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[_n]},e[mC]={textureFormat:Pr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Qa]},e[aC]={textureFormat:Va,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[ne]},e[sC]={textureFormat:Va,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[cn]},e[cC]={textureFormat:Va,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Se,st]},e[uC]={textureFormat:Va,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Se]},e[lC]={textureFormat:Fr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ne]},e[fC]={textureFormat:Fr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[cn]},e[nC]={textureFormat:Fr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Br]},e[rC]={textureFormat:Fr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ha]},e[iC]={textureFormat:Fr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[_n]},e[oC]={textureFormat:Fr,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Qa]},e[gC]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[ne]},e[yC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[ne]},e[vC]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[ne,jp]},e[bC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[cn]},e[AC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Se,st,qC]},e[wC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Se,st,KC]},e[xC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Se,st]},e[CC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Se]},e[EC]={textureFormat:zr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[ne]},e[SC]={textureFormat:zr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[cn]},e[DC]={textureFormat:zr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Br]},e[MC]={textureFormat:zr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ha]},e[TC]={textureFormat:zr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[_n]},e[IC]={textureFormat:zr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Qa]},e[NC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[ne]},e[kC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[ne]},e[LC]={textureFormat:te,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[cn]},e[OC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[ne,Rp,Gu]},e[BC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[ne,zp]},e[FC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Gu]},e[PC]={textureFormat:te,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Se,st]},e[zC]={textureFormat:te,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Se]},e[RC]={textureFormat:Wn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ne]},e[jC]={textureFormat:Wn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[cn]},e[UC]={textureFormat:Wn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Gu]},e[GC]={textureFormat:Wn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Br]},e[HC]={textureFormat:Wn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ha]},e[QC]={textureFormat:Wn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Qa]},e[VC]={textureFormat:Wn,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[_n]},e[YC]={textureFormat:eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Br,_n]},e[_C]={textureFormat:eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[_n]},e[WC]={textureFormat:eo,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Se]},e[ZC]={textureFormat:Np,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[$C]},e[XC]={textureFormat:Np,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[JC]},Object.keys(e).forEach(function(n){const r=e[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,o){const a=r.type[o];r.bytesPerElementMap[a]=i})}),Hu=e}return Hu[t]}function eE(t,e){const n=_a(t);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[e];if(r===void 0)throw"unknown internal format";return r}function Rr(t){const e=_a(t);if(!e)throw"unknown internal format";return{format:e.textureFormat,type:e.type[0]}}function Up(t){return(t&t-1)===0}function tE(t,e,n,r){if(!Lr(t))return Up(e)&&Up(n);const i=_a(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function nE(t){const e=_a(t);if(!e)throw"unknown internal format";return e.textureFilterable}function Gp(t,e,n){return Or(e)?Bu(e):n||ne}function Wa(t,e,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(e===It?6:1));o%1===0?(n=o,r=o):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function jr(t,e){e.colorspaceConversion!==void 0&&t.pixelStorei(W3,e.colorspaceConversion),e.premultiplyAlpha!==void 0&&t.pixelStorei(X3,e.premultiplyAlpha),e.flipY!==void 0&&t.pixelStorei(Z3,e.flipY)}function Hp(t){t.pixelStorei(Uu,4),Lr(t)&&(t.pixelStorei(Lp,0),t.pixelStorei(Op,0),t.pixelStorei(Bp,0),t.pixelStorei(Fp,0),t.pixelStorei(Pp,0))}function rE(t,e,n,r){r.minMag&&(n.call(t,e,Ru,r.minMag),n.call(t,e,ju,r.minMag)),r.min&&n.call(t,e,Ru,r.min),r.mag&&n.call(t,e,ju,r.mag),r.wrap&&(n.call(t,e,Ua,r.wrap),n.call(t,e,Ga,r.wrap),(e===an||m3(t,e))&&n.call(t,e,kp,r.wrap)),r.wrapR&&n.call(t,e,kp,r.wrapR),r.wrapS&&n.call(t,e,Ua,r.wrapS),r.wrapT&&n.call(t,e,Ga,r.wrapT),r.minLod&&n.call(t,e,Q3,r.minLod),r.maxLod&&n.call(t,e,V3,r.maxLod),r.baseLevel&&n.call(t,e,Y3,r.baseLevel),r.maxLevel&&n.call(t,e,_3,r.maxLevel)}function Qp(t,e,n){const r=n.target||Tt;t.bindTexture(r,e),rE(t,r,t.texParameteri,n)}function iE(t){return t=t||on.textureColor,Or(t)?t:new Uint8Array([t[0]*255,t[1]*255,t[2]*255,t[3]*255])}function Qu(t,e,n,r,i,o){n=n||on.textureOptions,o=o||te;const a=n.target||Tt;if(r=r||n.width,i=i||n.height,t.bindTexture(a,e),tE(t,r,i,o))t.generateMipmap(a);else{const s=nE(o)?z3:P3;t.texParameteri(a,Ru,s),t.texParameteri(a,ju,s),t.texParameteri(a,Ua,Ra),t.texParameteri(a,Ga,Ra)}}function no(t){return t.auto===!0||t.auto===void 0&&t.level===void 0}function Vu(t,e){return e=e||{},e.cubeFaceOrder||[ja,R3,j3,U3,G3,H3]}function Yu(t,e){const r=Vu(t,e).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function Vp(t,e,n,r){r=r||on.textureOptions;const i=r.target||Tt,o=r.level||0;let a=n.width,s=n.height;const c=r.internalFormat||r.format||te,u=Rr(c),f=r.format||u.format,l=r.type||u.type;if(jr(t,r),t.bindTexture(i,e),i===It){const d=n.width,h=n.height;let p,m;if(d/6===h)p=h,m=[0,0,1,0,2,0,3,0,4,0,5,0];else if(h/6===d)p=d,m=[0,0,0,1,0,2,0,3,0,4,0,5];else if(d/3===h/2)p=d/3,m=[0,0,1,0,2,0,0,1,1,1,2,1];else if(d/2===h/3)p=d/2,m=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=Dp();y?(y.canvas.width=p,y.canvas.height=p,a=p,s=p,Yu(t,r).forEach(function(g){const A=m[g.ndx*2+0]*p,w=m[g.ndx*2+1]*p;y.drawImage(n,A,w,p,p,0,0,p,p),t.texImage2D(g.face,o,c,f,l,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(a=p,s=p,Yu(t,r).forEach(function(g){const A=m[g.ndx*2+0]*p,w=m[g.ndx*2+1]*p;t.texImage2D(g.face,o,c,p,p,0,f,l,null),createImageBitmap(n,A,w,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(C){jr(t,r),t.bindTexture(i,e),t.texImage2D(g.face,o,c,f,l,C),no(r)&&Qu(t,e,r,a,s,c)})}))}else if(i===an||i===sn){const d=Math.min(n.width,n.height),h=Math.max(n.width,n.height),p=h/d;if(p%1!==0)throw"can not compute 3D dimensions of element";const m=n.width===h?1:0,y=n.height===h?1:0;t.pixelStorei(Uu,1),t.pixelStorei(Lp,n.width),t.pixelStorei(Op,0),t.pixelStorei(Pp,0),t.texImage3D(i,o,c,d,d,d,0,f,l,null);for(let g=0;g<p;++g){const A=g*d*m,w=g*d*y;t.pixelStorei(Bp,A),t.pixelStorei(Fp,w),t.texSubImage3D(i,o,0,0,g,d,d,1,f,l,n)}Hp(t)}else t.texImage2D(i,o,c,f,l,n);no(r)&&Qu(t,e,r,a,s,c),Qp(t,e,r)}function ro(){}function oE(t){if(typeof document<"u"){const e=document.createElement("a");return e.href=t,e.hostname===location.hostname&&e.port===location.port&&e.protocol===location.protocol}else{const e=new URL(location.href).origin;return new URL(t,location.href).origin===e}}function aE(t,e){return e===void 0&&!oE(t)?"anonymous":e}function sE(t,e,n){n=n||ro;let r;if(e=e!==void 0?e:on.crossOrigin,e=aE(t,e),typeof Image<"u"){r=new Image,e!==void 0&&(r.crossOrigin=e);const i=function(){r.removeEventListener("error",o),r.removeEventListener("load",a),r=null},o=function(){const c="couldn't load image: "+t;h3(c),n(c,r),i()},a=function(){n(null,r),i()};return r.addEventListener("error",o),r.addEventListener("load",a),r.src=t,r}else if(typeof ImageBitmap<"u"){let i,o;const a=function(){n(i,o)},s={};e&&(s.mode="cors"),fetch(t,s).then(function(c){if(!c.ok)throw c;return c.blob()}).then(function(c){return createImageBitmap(c,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(c){o=c,setTimeout(a)}).catch(function(c){i=c,setTimeout(a)}),r=null}return r}function Yp(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof ImageData<"u"&&t instanceof ImageData||typeof HTMLElement<"u"&&t instanceof HTMLElement}function _u(t,e,n){return Yp(t)?(setTimeout(function(){n(null,t)}),t):sE(t,e,n)}function Wu(t,e,n){n=n||on.textureOptions;const r=n.target||Tt;if(t.bindTexture(r,e),n.color===!1)return;const i=iE(n.color);if(r===It)for(let o=0;o<6;++o)t.texImage2D(ja+o,0,te,1,1,0,te,ne,i);else r===an||r===sn?t.texImage3D(r,0,te,1,1,1,0,te,ne,i):t.texImage2D(r,0,te,1,1,0,te,ne,i)}function cE(t,e,n,r){return r=r||ro,n=n||on.textureOptions,Wu(t,e,n),n=Object.assign({},n),_u(n.src,n.crossOrigin,function(o,a){o?r(o,e,a):(Vp(t,e,a,n),r(null,e,a))})}function uE(t,e,n,r){r=r||ro;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const o=n.level||0,a=n.internalFormat||n.format||te,s=Rr(a),c=n.format||s.format,u=n.type||ne,f=n.target||Tt;if(f!==It)throw"target must be TEXTURE_CUBE_MAP";Wu(t,e,n),n=Object.assign({},n);let l=6;const d=[],h=Vu(t,n);let p;function m(y){return function(g,A){--l,g?d.push(g):A.width!==A.height?d.push("cubemap face img is not a square: "+A.src):(jr(t,n),t.bindTexture(f,e),l===5?Vu().forEach(function(w){t.texImage2D(w,o,a,c,u,A)}):t.texImage2D(y,o,a,c,u,A),no(n)&&t.generateMipmap(f)),l===0&&r(d.length?d:void 0,e,p)}}p=i.map(function(y,g){return _u(y,n.crossOrigin,m(h[g]))})}function lE(t,e,n,r){r=r||ro;const i=n.src,o=n.internalFormat||n.format||te,a=Rr(o),s=n.format||a.format,c=n.type||ne,u=n.target||sn;if(u!==an&&u!==sn)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";Wu(t,e,n),n=Object.assign({},n);let f=i.length;const l=[];let d;const h=n.level||0;let p=n.width,m=n.height;const y=i.length;let g=!0;function A(w){return function(C,b){if(--f,C)l.push(C);else{if(jr(t,n),t.bindTexture(u,e),g){g=!1,p=n.width||b.width,m=n.height||b.height,t.texImage3D(u,h,o,p,m,y,0,s,c,null);for(let v=0;v<y;++v)t.texSubImage3D(u,h,0,0,v,p,m,1,s,c,b)}else{let v=b,x;(b.width!==p||b.height!==m)&&(x=Dp(),v=x.canvas,x.canvas.width=p,x.canvas.height=m,x.drawImage(b,0,0,p,m)),t.texSubImage3D(u,h,0,0,w,p,m,1,s,c,v),x&&v===x.canvas&&(x.canvas.width=0,x.canvas.height=0)}no(n)&&t.generateMipmap(u)}f===0&&r(l.length?l:void 0,e,d)}}d=i.map(function(w,C){return _u(w,n.crossOrigin,A(C))})}function _p(t,e,n,r){r=r||on.textureOptions;const i=r.target||Tt;t.bindTexture(i,e);let o=r.width,a=r.height,s=r.depth;const c=r.level||0,u=r.internalFormat||r.format||te,f=Rr(u),l=r.format||f.format,d=r.type||Gp(t,n,f.type);if(Or(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=d3(d);n=new y(n)}const h=eE(u,d),p=n.byteLength/h;if(p%1)throw"length wrong size for format: "+zu(t,l);let m;if(i===an||i===sn)if(!o&&!a&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;o=y,a=y,s=y}else o&&(!a||!s)?(m=Wa(t,i,a,s,p/o),a=m.width,s=m.height):a&&(!o||!s)?(m=Wa(t,i,o,s,p/a),o=m.width,s=m.height):(m=Wa(t,i,o,a,p/s),o=m.width,a=m.height);else m=Wa(t,i,o,a,p),o=m.width,a=m.height;if(Hp(t),t.pixelStorei(Uu,r.unpackAlignment||1),jr(t,r),i===It){const y=h/n.BYTES_PER_ELEMENT,g=p/6*y;Yu(t,r).forEach(A=>{const w=g*A.ndx,C=n.subarray(w,w+g);t.texImage2D(A.face,c,u,o,a,0,l,d,C)})}else i===an||i===sn?t.texImage3D(i,c,u,o,a,s,0,l,d,n):t.texImage2D(i,c,u,o,a,0,l,d,n);return{width:o,height:a,depth:s,type:d}}function fE(t,e,n){const r=n.target||Tt;t.bindTexture(r,e);const i=n.level||0,o=n.internalFormat||n.format||te,a=Rr(o),s=n.format||a.format,c=n.type||a.type;if(jr(t,n),r===It)for(let u=0;u<6;++u)t.texImage2D(ja+u,i,o,n.width,n.height,0,s,c,null);else r===an||r===sn?t.texImage3D(r,i,o,n.width,n.height,n.depth,0,s,c,null):t.texImage2D(r,i,o,n.width,n.height,0,s,c,null)}function io(t,e,n){n=n||ro,e=e||on.textureOptions;const r=t.createTexture(),i=e.target||Tt;let o=e.width||1,a=e.height||1;const s=e.internalFormat||te;t.bindTexture(i,r),i===It&&(t.texParameteri(i,Ua,Ra),t.texParameteri(i,Ga,Ra));let c=e.src;if(c)if(typeof c=="function"&&(c=c(t,e)),typeof c=="string")cE(t,r,e,n);else if(Or(c)||Array.isArray(c)&&(typeof c[0]=="number"||Array.isArray(c[0])||Or(c[0]))){const u=_p(t,r,c,e);o=u.width,a=u.height}else Array.isArray(c)&&(typeof c[0]=="string"||Yp(c[0]))?i===It?uE(t,r,e,n):lE(t,r,e,n):(Vp(t,r,c,e),o=c.width,a=c.height);else fE(t,r,e);return no(e)&&Qu(t,r,e,o,a,s),Qp(t,r,e),r}function dE(t,e,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const a=n.target||Tt;t.bindTexture(a,e);const s=n.level||0,c=n.internalFormat||n.format||te,u=Rr(c),f=n.format||u.format;let l;const d=n.src;if(d&&(Or(d)||Array.isArray(d)&&typeof d[0]=="number")?l=n.type||Gp(t,d,u.type):l=n.type||u.type,a===It)for(let h=0;h<6;++h)t.texImage2D(ja+h,s,c,r,i,0,f,l,null);else a===an||a===sn?t.texImage3D(a,s,c,r,i,o,0,f,l,null):t.texImage2D(a,s,c,r,i,0,f,l,null)}const hE=vp,Xa=33984,pE=35048,Za=34962,mE=34963,Xu=35345,Wp=35718,gE=35721,yE=35971,vE=35382,bE=35396,AE=35398,wE=35392,xE=35395,qa=5126,Xp=35664,Zp=35665,qp=35666,Zu=5124,Kp=35667,Jp=35668,$p=35669,em=35670,tm=35671,nm=35672,rm=35673,im=35674,om=35675,am=35676,CE=35678,EE=35680,SE=35679,DE=35682,ME=35685,TE=35686,IE=35687,NE=35688,kE=35689,LE=35690,OE=36289,BE=36292,FE=36293,qu=5125,sm=36294,cm=36295,um=36296,PE=36298,zE=36299,RE=36300,jE=36303,UE=36306,GE=36307,HE=36308,QE=36311,Ka=3553,Ja=34067,Ku=32879,$a=35866,P={};function lm(t,e){return P[e].bindPoint}function VE(t,e){return function(n){t.uniform1f(e,n)}}function YE(t,e){return function(n){t.uniform1fv(e,n)}}function _E(t,e){return function(n){t.uniform2fv(e,n)}}function WE(t,e){return function(n){t.uniform3fv(e,n)}}function XE(t,e){return function(n){t.uniform4fv(e,n)}}function fm(t,e){return function(n){t.uniform1i(e,n)}}function dm(t,e){return function(n){t.uniform1iv(e,n)}}function hm(t,e){return function(n){t.uniform2iv(e,n)}}function pm(t,e){return function(n){t.uniform3iv(e,n)}}function mm(t,e){return function(n){t.uniform4iv(e,n)}}function ZE(t,e){return function(n){t.uniform1ui(e,n)}}function qE(t,e){return function(n){t.uniform1uiv(e,n)}}function KE(t,e){return function(n){t.uniform2uiv(e,n)}}function JE(t,e){return function(n){t.uniform3uiv(e,n)}}function $E(t,e){return function(n){t.uniform4uiv(e,n)}}function eS(t,e){return function(n){t.uniformMatrix2fv(e,!1,n)}}function tS(t,e){return function(n){t.uniformMatrix3fv(e,!1,n)}}function nS(t,e){return function(n){t.uniformMatrix4fv(e,!1,n)}}function rS(t,e){return function(n){t.uniformMatrix2x3fv(e,!1,n)}}function iS(t,e){return function(n){t.uniformMatrix3x2fv(e,!1,n)}}function oS(t,e){return function(n){t.uniformMatrix2x4fv(e,!1,n)}}function aS(t,e){return function(n){t.uniformMatrix4x2fv(e,!1,n)}}function sS(t,e){return function(n){t.uniformMatrix3x4fv(e,!1,n)}}function cS(t,e){return function(n){t.uniformMatrix4x3fv(e,!1,n)}}function Te(t,e,n,r){const i=lm(t,e);return Lr(t)?function(o){let a,s;za(t,o)?(a=o,s=null):(a=o.texture,s=o.sampler),t.uniform1i(r,n),t.activeTexture(Xa+n),t.bindTexture(i,a),t.bindSampler(n,s)}:function(o){t.uniform1i(r,n),t.activeTexture(Xa+n),t.bindTexture(i,o)}}function Ie(t,e,n,r,i){const o=lm(t,e),a=new Int32Array(i);for(let s=0;s<i;++s)a[s]=n+s;return Lr(t)?function(s){t.uniform1iv(r,a),s.forEach(function(c,u){t.activeTexture(Xa+a[u]);let f,l;za(t,c)?(f=c,l=null):(f=c.texture,l=c.sampler),t.bindSampler(n,l),t.bindTexture(o,f)})}:function(s){t.uniform1iv(r,a),s.forEach(function(c,u){t.activeTexture(Xa+a[u]),t.bindTexture(o,c)})}}P[qa]={Type:Float32Array,size:4,setter:VE,arraySetter:YE},P[Xp]={Type:Float32Array,size:8,setter:_E,cols:2},P[Zp]={Type:Float32Array,size:12,setter:WE,cols:3},P[qp]={Type:Float32Array,size:16,setter:XE,cols:4},P[Zu]={Type:Int32Array,size:4,setter:fm,arraySetter:dm},P[Kp]={Type:Int32Array,size:8,setter:hm,cols:2},P[Jp]={Type:Int32Array,size:12,setter:pm,cols:3},P[$p]={Type:Int32Array,size:16,setter:mm,cols:4},P[qu]={Type:Uint32Array,size:4,setter:ZE,arraySetter:qE},P[sm]={Type:Uint32Array,size:8,setter:KE,cols:2},P[cm]={Type:Uint32Array,size:12,setter:JE,cols:3},P[um]={Type:Uint32Array,size:16,setter:$E,cols:4},P[em]={Type:Uint32Array,size:4,setter:fm,arraySetter:dm},P[tm]={Type:Uint32Array,size:8,setter:hm,cols:2},P[nm]={Type:Uint32Array,size:12,setter:pm,cols:3},P[rm]={Type:Uint32Array,size:16,setter:mm,cols:4},P[im]={Type:Float32Array,size:32,setter:eS,rows:2,cols:2},P[om]={Type:Float32Array,size:48,setter:tS,rows:3,cols:3},P[am]={Type:Float32Array,size:64,setter:nS,rows:4,cols:4},P[ME]={Type:Float32Array,size:32,setter:rS,rows:2,cols:3},P[TE]={Type:Float32Array,size:32,setter:oS,rows:2,cols:4},P[IE]={Type:Float32Array,size:48,setter:iS,rows:3,cols:2},P[NE]={Type:Float32Array,size:48,setter:sS,rows:3,cols:4},P[kE]={Type:Float32Array,size:64,setter:aS,rows:4,cols:2},P[LE]={Type:Float32Array,size:64,setter:cS,rows:4,cols:3},P[CE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:Ka},P[EE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:Ja},P[SE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:Ku},P[DE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:Ka},P[OE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:$a},P[BE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:$a},P[FE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:Ja},P[PE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:Ka},P[zE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:Ku},P[RE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:Ja},P[jE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:$a},P[UE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:Ka},P[GE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:Ku},P[HE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:Ja},P[QE]={Type:null,size:0,setter:Te,arraySetter:Ie,bindPoint:$a};function es(t,e){return function(n){if(n.value)switch(t.disableVertexAttribArray(e),n.value.length){case 4:t.vertexAttrib4fv(e,n.value);break;case 3:t.vertexAttrib3fv(e,n.value);break;case 2:t.vertexAttrib2fv(e,n.value);break;case 1:t.vertexAttrib1fv(e,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else t.bindBuffer(Za,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribPointer(e,n.numComponents||n.size,n.type||qa,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function un(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4iv(e,n.value);else throw new Error("The length of an integer constant value must be 4!");else t.bindBuffer(Za,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Zu,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function ts(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4uiv(e,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else t.bindBuffer(Za,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||qu,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function Ju(t,e,n){const r=n.size,i=n.count;return function(o){t.bindBuffer(Za,o.buffer);const a=o.size||o.numComponents||r,s=a/i,c=o.type||qa,f=P[c].size*a,l=o.normalize||!1,d=o.offset||0,h=f/i;for(let p=0;p<i;++p)t.enableVertexAttribArray(e+p),t.vertexAttribPointer(e+p,s,c,l,f,d+h*p),o.divisor!==void 0&&t.vertexAttribDivisor(e+p,o.divisor)}}const ue={};ue[qa]={size:4,setter:es},ue[Xp]={size:8,setter:es},ue[Zp]={size:12,setter:es},ue[qp]={size:16,setter:es},ue[Zu]={size:4,setter:un},ue[Kp]={size:8,setter:un},ue[Jp]={size:12,setter:un},ue[$p]={size:16,setter:un},ue[qu]={size:4,setter:ts},ue[sm]={size:8,setter:ts},ue[cm]={size:12,setter:ts},ue[um]={size:16,setter:ts},ue[em]={size:4,setter:un},ue[tm]={size:8,setter:un},ue[nm]={size:12,setter:un},ue[rm]={size:16,setter:un},ue[im]={size:4,setter:Ju,count:2},ue[om]={size:9,setter:Ju,count:3},ue[am]={size:16,setter:Ju,count:4};function gm(t){const e=t.name;return e.startsWith("gl_")||e.startsWith("webgl_")}const uS=/(\.|\[|]|\w+)/g,lS=t=>t>="0"&&t<="9";function ym(t,e,n,r){const i=t.split(uS).filter(s=>s!=="");let o=0,a="";for(;;){const s=i[o++];a+=s;const c=lS(s[0]),u=c?parseInt(s):s;if(c&&(a+=i[o++]),o===i.length){n[u]=e;break}else{const l=i[o++],d=l==="[",h=n[u]||(d?[]:{});n[u]=h,n=h,r[a]=r[a]||function(p){return function(m){xm(p,m)}}(h),a+=l}}}function fS(t,e){let n=0;function r(s,c,u){const f=c.name.endsWith("[0]"),l=c.type,d=P[l];if(!d)throw new Error(`unknown type: 0x${l.toString(16)}`);let h;if(d.bindPoint){const p=n;n+=c.size,f?h=d.arraySetter(t,l,p,u,c.size):h=d.setter(t,l,p,u,c.size)}else d.arraySetter&&f?h=d.arraySetter(t,u):h=d.setter(t,u);return h.location=u,h}const i={},o={},a=t.getProgramParameter(e,Wp);for(let s=0;s<a;++s){const c=t.getActiveUniform(e,s);if(gm(c))continue;let u=c.name;u.endsWith("[0]")&&(u=u.substr(0,u.length-3));const f=t.getUniformLocation(e,c.name);if(f){const l=r(e,c,f);i[u]=l,ym(u,l,o,i)}}return i}function dS(t,e){const n={},r=t.getProgramParameter(e,yE);for(let i=0;i<r;++i){const o=t.getTransformFeedbackVarying(e,i);n[o.name]={index:i,type:o.type,size:o.size}}return n}function hS(t,e){const n=t.getProgramParameter(e,Wp),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const c=t.getActiveUniform(e,s);r[s].name=c.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const c=s[0],u=s[1];t.getActiveUniforms(e,i,t[c]).forEach(function(f,l){r[l][u]=f})});const o={},a=t.getProgramParameter(e,vE);for(let s=0;s<a;++s){const c=t.getActiveUniformBlockName(e,s),u={index:t.getUniformBlockIndex(e,c),usedByVertexShader:t.getActiveUniformBlockParameter(e,s,bE),usedByFragmentShader:t.getActiveUniformBlockParameter(e,s,AE),size:t.getActiveUniformBlockParameter(e,s,wE),uniformIndices:t.getActiveUniformBlockParameter(e,s,xE)};u.used=u.usedByVertexShader||u.usedByFragmentShader,o[c]=u}return{blockSpecs:o,uniformData:r}}const vm=/\[\d+\]\.$/,pS=(t,e)=>((t+(e-1))/e|0)*e;function mS(t,e,n,r){if(e||n){r=r||1;const o=t.length/4;return function(a){let s=0,c=0;for(let u=0;u<o;++u){for(let f=0;f<r;++f)t[s++]=a[c++];s+=4-r}}}else return function(i){i.length?t.set(i):t[0]=i}}function gS(t,e,n,r){const i=n.blockSpecs,o=n.uniformData,a=i[r];if(!a)return hE("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(a.size),c=t.createBuffer(),u=a.index;t.bindBuffer(Xu,c),t.uniformBlockBinding(e,a.index,u);let f=r+".";vm.test(f)&&(f=f.replace(vm,"."));const l={},d={},h={};return a.uniformIndices.forEach(function(p){const m=o[p];let y=m.name;y.startsWith(f)&&(y=y.substr(f.length));const g=y.endsWith("[0]");g&&(y=y.substr(0,y.length-3));const A=P[m.type],w=A.Type,C=g?pS(A.size,16)*m.size:A.size*m.size,b=new w(s,m.offset,C/w.BYTES_PER_ELEMENT);l[y]=b;const v=mS(b,g,A.rows,A.cols);d[y]=v,ym(y,v,h,d)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:c,uniforms:l,setters:d}}function bm(t,e,n){return gS(t,e.program,e.uniformBlockSpec,n)}function yS(t,e,n){const i=(e.uniformBlockSpec||e).blockSpecs[n.name];if(i){const o=i.index;return t.bindBufferRange(Xu,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function Am(t,e,n){yS(t,e,n)&&t.bufferData(Xu,n.array,pE)}function wm(t,e){const n=t.setters;for(const r in e){const i=n[r];if(i){const o=e[r];i(o)}}}function xm(t,e){for(const n in e){const r=t[n];typeof r=="function"?r(e[n]):xm(t[n],e[n])}}function Ge(t,...e){const n=t.uniformSetters||t,r=e.length;for(let i=0;i<r;++i){const o=e[i];if(Array.isArray(o)){const a=o.length;for(let s=0;s<a;++s)Ge(n,o[s])}else for(const a in o){const s=n[a];s&&s(o[a])}}}function vS(t,e){const n={},r=t.getProgramParameter(e,gE);for(let i=0;i<r;++i){const o=t.getActiveAttrib(e,i);if(gm(o))continue;const a=t.getAttribLocation(e,o.name),s=ue[o.type],c=s.setter(t,a,s);c.location=a,n[o.name]=c}return n}function bS(t,e){for(const n in e){const r=t[n];r&&r(e[n])}}function Ur(t,e,n){n.vertexArrayObject?t.bindVertexArray(n.vertexArrayObject):(bS(e.attribSetters||e,n.attribs),n.indices&&t.bindBuffer(mE,n.indices))}function AS(t,e){const n=fS(t,e),r=vS(t,e),i={program:e,uniformSetters:n,attribSetters:r};return Lr(t)&&(i.uniformBlockSpec=hS(t,e),i.transformFeedbackInfo=dS(t,e)),i}const wS=4,Cm=5123;function oo(t,e,n,r,i,o){n=n===void 0?wS:n;const a=e.indices,s=e.elementType,c=r===void 0?e.numElements:r;i=i===void 0?0:i,s||a?o!==void 0?t.drawElementsInstanced(n,c,s===void 0?Cm:e.elementType,i,o):t.drawElements(n,c,s===void 0?Cm:e.elementType,i):o!==void 0?t.drawArraysInstanced(n,i,c,o):t.drawArrays(n,i,c)}const xS=36160,Xn=36161,CS=3553,ES=5121,SS=6402,DS=6408,MS=33190,TS=36012,IS=35056,NS=36013,kS=32854,LS=32855,OS=36194,Em=33189,Sm=6401,Dm=36168,$u=34041,BS=36064,ns=36096,Mm=36128,el=33306,tl=33071,nl=9729,Tm=[{format:DS,type:ES,min:nl,wrap:tl},{format:$u}],ct={};ct[$u]=el,ct[Sm]=Mm,ct[Dm]=Mm,ct[SS]=ns,ct[Em]=ns,ct[MS]=ns,ct[TS]=ns,ct[IS]=el,ct[NS]=el;function FS(t,e){return ct[t]||ct[e]}const ln={};ln[kS]=!0,ln[LS]=!0,ln[OS]=!0,ln[$u]=!0,ln[Em]=!0,ln[Sm]=!0,ln[Dm]=!0;function PS(t){return ln[t]}function zS(t,e,n,r){const i=xS,o=t.createFramebuffer();t.bindFramebuffer(i,o),n=n||t.drawingBufferWidth,r=r||t.drawingBufferHeight,e=e||Tm;let a=0;const s={framebuffer:o,attachments:[],width:n,height:r};return e.forEach(function(c){let u=c.attachment;const f=c.samples,l=c.format;let d=c.attachmentPoint||FS(l,c.internalFormat);if(d||(d=BS+a++),!u)if(f!==void 0||PS(l))u=t.createRenderbuffer(),t.bindRenderbuffer(Xn,u),f>1?t.renderbufferStorageMultisample(Xn,f,l,n,r):t.renderbufferStorage(Xn,l,n,r);else{const h=Object.assign({},c);h.width=n,h.height=r,h.auto===void 0&&(h.auto=!1,h.min=h.min||h.minMag||nl,h.mag=h.mag||h.minMag||nl,h.wrapS=h.wrapS||h.wrap||tl,h.wrapT=h.wrapT||h.wrap||tl),u=io(t,h)}if(bp(t,u))t.framebufferRenderbuffer(i,d,Xn,u);else if(za(t,u))c.layer!==void 0?t.framebufferTextureLayer(i,d,u,c.level||0,c.layer):t.framebufferTexture2D(i,d,c.target||CS,u,c.level||0);else throw new Error("unknown attachment type");s.attachments.push(u)}),s}function RS(t,e,n,r,i){r=r||t.drawingBufferWidth,i=i||t.drawingBufferHeight,e.width=r,e.height=i,n=n||Tm,n.forEach(function(o,a){const s=e.attachments[a],c=o.format,u=o.samples;if(u!==void 0||bp(t,s))t.bindRenderbuffer(Xn,s),u>1?t.renderbufferStorageMultisample(Xn,u,c,r,i):t.renderbufferStorage(Xn,c,r,i);else if(za(t,s))dE(t,s,o,r,i);else throw new Error("unknown attachment type")})}function jS(t,e,n){const r=t.createVertexArray();return t.bindVertexArray(r),e.length||(e=[e]),e.forEach(function(i){Ur(t,i,n)}),t.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const US=/^(.*?)_/;function GS(t,e){zu(t,0);const n=t.getExtension(e);if(n){const r={},i=US.exec(e)[1],o="_"+i;for(const a in n){const s=n[a],c=typeof s=="function",u=c?i:o;let f=a;a.endsWith(u)&&(f=a.substring(0,a.length-u.length)),t[f]!==void 0?!c&&t[f]!==s&&vp(f,t[f],s,a):c?t[f]=function(l){return function(){return l.apply(n,arguments)}}(s):(t[f]=s,r[f]=s)}r.constructor={name:n.constructor.name},zu(r,0)}return n}const Im=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function Nm(t){for(let e=0;e<Im.length;++e)GS(t,Im[e])}function HS(t,e){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=t.getContext(n[i],e),r){Nm(r);break}return r}function QS(t,e){return HS(t,e)}const VS=`/**
14
+ see: http://github.com/greggman/twgl.js for details */const Mu=5120,qi=5121,Tu=5122,Iu=5123,ku=5124,Nu=5125,Lu=5126,H4=32819,Q4=32820,V4=33635,Y4=5131,_4=33640,W4=35899,X4=35902,Z4=36269,q4=34042,dp={};{const t=dp;t[Mu]=Int8Array,t[qi]=Uint8Array,t[Tu]=Int16Array,t[Iu]=Uint16Array,t[ku]=Int32Array,t[Nu]=Uint32Array,t[Lu]=Float32Array,t[H4]=Uint16Array,t[Q4]=Uint16Array,t[V4]=Uint16Array,t[Y4]=Uint16Array,t[_4]=Uint32Array,t[W4]=Uint32Array,t[X4]=Uint32Array,t[Z4]=Uint32Array,t[q4]=Uint32Array}function Bu(t){if(t instanceof Int8Array)return Mu;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)return qi;if(t instanceof Int16Array)return Tu;if(t instanceof Uint16Array)return Iu;if(t instanceof Int32Array)return ku;if(t instanceof Uint32Array)return Nu;if(t instanceof Float32Array)return Lu;throw new Error("unsupported typed array type")}function K4(t){if(t===Int8Array)return Mu;if(t===Uint8Array||t===Uint8ClampedArray)return qi;if(t===Int16Array)return Tu;if(t===Uint16Array)return Iu;if(t===Int32Array)return ku;if(t===Uint32Array)return Nu;if(t===Float32Array)return Lu;throw new Error("unsupported typed array type")}function J4(t){const e=dp[t];if(!e)throw new Error("unknown gl type");return e}const Oa=typeof SharedArrayBuffer<"u"?function(e){return e&&e.buffer&&(e.buffer instanceof ArrayBuffer||e.buffer instanceof SharedArrayBuffer)}:function(e){return e&&e.buffer&&e.buffer instanceof ArrayBuffer};function $4(...t){console.error(...t)}function hp(...t){console.warn(...t)}function e3(t,e){return typeof WebGLBuffer<"u"&&e instanceof WebGLBuffer}function pp(t,e){return typeof WebGLRenderbuffer<"u"&&e instanceof WebGLRenderbuffer}function Pa(t,e){return typeof WebGLTexture<"u"&&e instanceof WebGLTexture}function t3(t,e){return typeof WebGLSampler<"u"&&e instanceof WebGLSampler}const mp=35044,mt=34962,n3=34963,r3=34660,i3=5120,o3=5121,a3=5122,s3=5123,c3=5124,u3=5125,l3=5126,gp={attribPrefix:""};function yp(t,e,n,r,i){t.bindBuffer(e,n),t.bufferData(e,r,i||mp)}function bp(t,e,n,r){if(e3(t,e))return e;n=n||mt;const i=t.createBuffer();return yp(t,n,i,e,r),i}function vp(t){return t==="indices"}function f3(t){return t instanceof Int8Array||t instanceof Uint8Array}function d3(t){return t===Int8Array||t===Uint8Array}function h3(t){return t.length?t:t.data}const p3=/coord|texture/i,m3=/color|colour/i;function Ap(t,e){let n;if(p3.test(t)?n=2:m3.test(t)?n=4:n=3,e%n>0)throw new Error(`Can not guess numComponents for attribute '${t}'. Tried ${n} but ${e} values is not evenly divisible by ${n}. You should specify it.`);return n}function g3(t,e){return t.numComponents||t.size||Ap(e,h3(t).length)}function Ou(t,e){if(Oa(t))return t;if(Oa(t.data))return t.data;Array.isArray(t)&&(t={data:t});let n=t.type;return n||(vp(e)?n=Uint16Array:n=Float32Array),new n(t.data)}function y3(t,e){const n={};return Object.keys(e).forEach(function(r){if(!vp(r)){const i=e[r],o=i.attrib||i.name||i.attribName||gp.attribPrefix+r;if(i.value){if(!Array.isArray(i.value)&&!Oa(i.value))throw new Error("array.value is not array or typedarray");n[o]={value:i.value}}else{let a,s,c,u;if(i.buffer&&i.buffer instanceof WebGLBuffer)a=i.buffer,u=i.numComponents||i.size,s=i.type,c=i.normalize;else if(typeof i=="number"||typeof i.data=="number"){const f=i.data||i,l=i.type||Float32Array,d=f*l.BYTES_PER_ELEMENT;s=K4(l),c=i.normalize!==void 0?i.normalize:d3(l),u=i.numComponents||i.size||Ap(r,f),a=t.createBuffer(),t.bindBuffer(mt,a),t.bufferData(mt,d,i.drawType||mp)}else{const f=Ou(i,r);a=bp(t,f,void 0,i.drawType),s=Bu(f),c=i.normalize!==void 0?i.normalize:f3(f),u=g3(i,r)}n[o]={buffer:a,numComponents:u,type:s,normalize:c,stride:i.stride||0,offset:i.offset||0,divisor:i.divisor===void 0?void 0:i.divisor,drawType:i.drawType}}}}),t.bindBuffer(mt,null),n}function b3(t,e,n,r){n=Ou(n),r!==void 0?(t.bindBuffer(mt,e.buffer),t.bufferSubData(mt,r,n)):yp(t,mt,e.buffer,n,e.drawType)}function v3(t,e){return e===i3||e===o3?1:e===a3||e===s3?2:e===c3||e===u3||e===l3?4:0}const Pu=["position","positions","a_position"];function A3(t,e){let n,r;for(r=0;r<Pu.length&&(n=Pu[r],!(n in e||(n=gp.attribPrefix+n,n in e)));++r);r===Pu.length&&(n=Object.keys(e)[0]);const i=e[n];t.bindBuffer(mt,i.buffer);const o=t.getBufferParameter(mt,r3);t.bindBuffer(mt,null);const a=v3(t,i.type),s=o/a,c=i.numComponents||i.size,u=s/c;if(u%1!==0)throw new Error(`numComponents ${c} not correct for length ${length}`);return u}function x3(t,e,n){const r=y3(t,e),i=Object.assign({},n||{});i.attribs=Object.assign({},n?n.attribs:{},r);const o=e.indices;if(o){const a=Ou(o,"indices");i.indices=bp(t,a,n3),i.numElements=a.length,i.elementType=Bu(a)}else i.numElements||(i.numElements=A3(t,i.attribs));return i}function kr(t){return!!t.texStorage2D}const Fu=function(){const t={},e={};function n(r){const i=r.constructor.name;if(!t[i]){for(const o in r)if(typeof r[o]=="number"){const a=e[r[o]];e[r[o]]=a?`${a} | ${o}`:o}t[i]=!0}}return function(i,o){return n(i),e[o]||(typeof o=="number"?`0x${o.toString(16)}`:o)}}(),on={textureColor:new Uint8Array([128,192,255,255]),textureOptions:{},crossOrigin:void 0},Nr=Oa,xp=function(){let t;return function(){return t=t||(typeof document<"u"&&document.createElement?document.createElement("canvas").getContext("2d"):null),t}}(),wp=6406,gt=6407,te=6408,Cp=6409,Sp=6410,Ki=6402,Ep=34041,Fa=33071,w3=9728,C3=9729,Tt=3553,It=34067,an=32879,sn=35866,za=34069,S3=34070,E3=34071,D3=34072,M3=34073,T3=34074,zu=10241,Ru=10240,Ra=10242,ja=10243,Dp=32882,I3=33082,k3=33083,N3=33084,L3=33085,ju=3317,Mp=3314,Tp=32878,Ip=3316,kp=3315,Np=32877,B3=37443,O3=37441,P3=37440,F3=33321,z3=36756,R3=33325,j3=33326,U3=33330,G3=33329,H3=33338,Q3=33337,V3=33340,Y3=33339,_3=33323,W3=36757,X3=33327,Z3=33328,q3=33336,K3=33335,J3=33332,$3=33331,eC=33334,tC=33333,nC=32849,rC=35905,iC=36194,oC=36758,aC=35898,sC=35901,cC=34843,uC=34837,lC=36221,fC=36239,dC=36215,hC=36233,pC=36209,mC=36227,gC=32856,yC=35907,bC=36759,vC=32855,AC=32854,xC=32857,wC=34842,CC=34836,SC=36220,EC=36238,DC=36975,MC=36214,TC=36232,IC=36226,kC=36208,NC=33189,LC=33190,BC=36012,OC=36013,PC=35056,cn=5120,ne=5121,Ua=5122,Lr=5123,Ga=5124,Yn=5125,Se=5126,Lp=32819,Bp=32820,Op=33635,at=5131,Ji=36193,Uu=33640,FC=35899,zC=35902,RC=36269,jC=34042,Ha=33319,Br=33320,Qa=6403,Or=36244,Pr=36248,_n=36249;let Gu;function Va(t){if(!Gu){const e={};e[wp]={textureFormat:wp,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[ne,at,Ji,Se]},e[Cp]={textureFormat:Cp,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1,2,2,4],type:[ne,at,Ji,Se]},e[Sp]={textureFormat:Sp,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2,4,4,8],type:[ne,at,Ji,Se]},e[gt]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,6,6,12,2],type:[ne,at,Ji,Se,Op]},e[te]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,8,8,16,2,2],type:[ne,at,Ji,Se,Lp,Bp]},e[Ki]={textureFormat:Ki,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Yn,Lr]},e[F3]={textureFormat:Qa,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[1],type:[ne]},e[z3]={textureFormat:Qa,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[1],type:[cn]},e[R3]={textureFormat:Qa,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4,2],type:[Se,at]},e[j3]={textureFormat:Qa,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[4],type:[Se]},e[U3]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[ne]},e[G3]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[1],type:[cn]},e[J3]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Lr]},e[$3]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[Ua]},e[eC]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Yn]},e[tC]={textureFormat:Or,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ga]},e[_3]={textureFormat:Ha,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[2],type:[ne]},e[W3]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[2],type:[cn]},e[X3]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[8,4],type:[Se,at]},e[Z3]={textureFormat:Ha,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[8],type:[Se]},e[q3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[ne]},e[K3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2],type:[cn]},e[H3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Lr]},e[Q3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Ua]},e[V3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Yn]},e[Y3]={textureFormat:Br,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ga]},e[nC]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3],type:[ne]},e[rC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[ne]},e[iC]={textureFormat:gt,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[3,2],type:[ne,Op]},e[oC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[3],type:[cn]},e[aC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Se,at,FC]},e[sC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6,4],type:[Se,at,zC]},e[cC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[12,6],type:[Se,at]},e[uC]={textureFormat:gt,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Se]},e[lC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[ne]},e[fC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[3],type:[cn]},e[dC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Lr]},e[hC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[6],type:[Ua]},e[pC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Yn]},e[mC]={textureFormat:Pr,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[12],type:[Ga]},e[gC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[ne]},e[yC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[ne]},e[bC]={textureFormat:te,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[4],type:[cn]},e[vC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2,4],type:[ne,Bp,Uu]},e[AC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4,2],type:[ne,Lp]},e[xC]={textureFormat:te,colorRenderable:!0,textureFilterable:!0,bytesPerElement:[4],type:[Uu]},e[wC]={textureFormat:te,colorRenderable:!1,textureFilterable:!0,bytesPerElement:[16,8],type:[Se,at]},e[CC]={textureFormat:te,colorRenderable:!1,textureFilterable:!1,bytesPerElement:[16],type:[Se]},e[SC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[ne]},e[EC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[cn]},e[DC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Uu]},e[MC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Lr]},e[TC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[8],type:[Ua]},e[IC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Ga]},e[kC]={textureFormat:_n,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[16],type:[Yn]},e[NC]={textureFormat:Ki,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[2,4],type:[Lr,Yn]},e[LC]={textureFormat:Ki,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Yn]},e[BC]={textureFormat:Ki,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[Se]},e[PC]={textureFormat:Ep,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[jC]},e[OC]={textureFormat:Ep,colorRenderable:!0,textureFilterable:!1,bytesPerElement:[4],type:[RC]},Object.keys(e).forEach(function(n){const r=e[n];r.bytesPerElementMap={},r.bytesPerElement.forEach(function(i,o){const a=r.type[o];r.bytesPerElementMap[a]=i})}),Gu=e}return Gu[t]}function UC(t,e){const n=Va(t);if(!n)throw"unknown internal format";const r=n.bytesPerElementMap[e];if(r===void 0)throw"unknown internal format";return r}function Fr(t){const e=Va(t);if(!e)throw"unknown internal format";return{format:e.textureFormat,type:e.type[0]}}function Pp(t){return(t&t-1)===0}function GC(t,e,n,r){if(!kr(t))return Pp(e)&&Pp(n);const i=Va(r);if(!i)throw"unknown internal format";return i.colorRenderable&&i.textureFilterable}function HC(t){const e=Va(t);if(!e)throw"unknown internal format";return e.textureFilterable}function Fp(t,e,n){return Nr(e)?Bu(e):n||ne}function Ya(t,e,n,r,i){if(i%1!==0)throw"can't guess dimensions";if(!n&&!r){const o=Math.sqrt(i/(e===It?6:1));o%1===0?(n=o,r=o):(n=i,r=1)}else if(r){if(!n&&(n=i/r,n%1))throw"can't guess dimensions"}else if(r=i/n,r%1)throw"can't guess dimensions";return{width:n,height:r}}function zr(t,e){e.colorspaceConversion!==void 0&&t.pixelStorei(B3,e.colorspaceConversion),e.premultiplyAlpha!==void 0&&t.pixelStorei(O3,e.premultiplyAlpha),e.flipY!==void 0&&t.pixelStorei(P3,e.flipY)}function zp(t){t.pixelStorei(ju,4),kr(t)&&(t.pixelStorei(Mp,0),t.pixelStorei(Tp,0),t.pixelStorei(Ip,0),t.pixelStorei(kp,0),t.pixelStorei(Np,0))}function QC(t,e,n,r){r.minMag&&(n.call(t,e,zu,r.minMag),n.call(t,e,Ru,r.minMag)),r.min&&n.call(t,e,zu,r.min),r.mag&&n.call(t,e,Ru,r.mag),r.wrap&&(n.call(t,e,Ra,r.wrap),n.call(t,e,ja,r.wrap),(e===an||t3(t,e))&&n.call(t,e,Dp,r.wrap)),r.wrapR&&n.call(t,e,Dp,r.wrapR),r.wrapS&&n.call(t,e,Ra,r.wrapS),r.wrapT&&n.call(t,e,ja,r.wrapT),r.minLod&&n.call(t,e,I3,r.minLod),r.maxLod&&n.call(t,e,k3,r.maxLod),r.baseLevel&&n.call(t,e,N3,r.baseLevel),r.maxLevel&&n.call(t,e,L3,r.maxLevel)}function Rp(t,e,n){const r=n.target||Tt;t.bindTexture(r,e),QC(t,r,t.texParameteri,n)}function VC(t){return t=t||on.textureColor,Nr(t)?t:new Uint8Array([t[0]*255,t[1]*255,t[2]*255,t[3]*255])}function Hu(t,e,n,r,i,o){n=n||on.textureOptions,o=o||te;const a=n.target||Tt;if(r=r||n.width,i=i||n.height,t.bindTexture(a,e),GC(t,r,i,o))t.generateMipmap(a);else{const s=HC(o)?C3:w3;t.texParameteri(a,zu,s),t.texParameteri(a,Ru,s),t.texParameteri(a,Ra,Fa),t.texParameteri(a,ja,Fa)}}function $i(t){return t.auto===!0||t.auto===void 0&&t.level===void 0}function Qu(t,e){return e=e||{},e.cubeFaceOrder||[za,S3,E3,D3,M3,T3]}function Vu(t,e){const r=Qu(t,e).map(function(i,o){return{face:i,ndx:o}});return r.sort(function(i,o){return i.face-o.face}),r}function jp(t,e,n,r){r=r||on.textureOptions;const i=r.target||Tt,o=r.level||0;let a=n.width,s=n.height;const c=r.internalFormat||r.format||te,u=Fr(c),f=r.format||u.format,l=r.type||u.type;if(zr(t,r),t.bindTexture(i,e),i===It){const d=n.width,h=n.height;let p,m;if(d/6===h)p=h,m=[0,0,1,0,2,0,3,0,4,0,5,0];else if(h/6===d)p=d,m=[0,0,0,1,0,2,0,3,0,4,0,5];else if(d/3===h/2)p=d/3,m=[0,0,1,0,2,0,0,1,1,1,2,1];else if(d/2===h/3)p=d/2,m=[0,0,1,0,0,1,1,1,0,2,1,2];else throw"can't figure out cube map from element: "+(n.src?n.src:n.nodeName);const y=xp();y?(y.canvas.width=p,y.canvas.height=p,a=p,s=p,Vu(t,r).forEach(function(g){const x=m[g.ndx*2+0]*p,A=m[g.ndx*2+1]*p;y.drawImage(n,x,A,p,p,0,0,p,p),t.texImage2D(g.face,o,c,f,l,y.canvas)}),y.canvas.width=1,y.canvas.height=1):typeof createImageBitmap<"u"&&(a=p,s=p,Vu(t,r).forEach(function(g){const x=m[g.ndx*2+0]*p,A=m[g.ndx*2+1]*p;t.texImage2D(g.face,o,c,p,p,0,f,l,null),createImageBitmap(n,x,A,p,p,{premultiplyAlpha:"none",colorSpaceConversion:"none"}).then(function(C){zr(t,r),t.bindTexture(i,e),t.texImage2D(g.face,o,c,f,l,C),$i(r)&&Hu(t,e,r,a,s,c)})}))}else if(i===an||i===sn){const d=Math.min(n.width,n.height),h=Math.max(n.width,n.height),p=h/d;if(p%1!==0)throw"can not compute 3D dimensions of element";const m=n.width===h?1:0,y=n.height===h?1:0;t.pixelStorei(ju,1),t.pixelStorei(Mp,n.width),t.pixelStorei(Tp,0),t.pixelStorei(Np,0),t.texImage3D(i,o,c,d,d,d,0,f,l,null);for(let g=0;g<p;++g){const x=g*d*m,A=g*d*y;t.pixelStorei(Ip,x),t.pixelStorei(kp,A),t.texSubImage3D(i,o,0,0,g,d,d,1,f,l,n)}zp(t)}else t.texImage2D(i,o,c,f,l,n);$i(r)&&Hu(t,e,r,a,s,c),Rp(t,e,r)}function eo(){}function YC(t){if(typeof document<"u"){const e=document.createElement("a");return e.href=t,e.hostname===location.hostname&&e.port===location.port&&e.protocol===location.protocol}else{const e=new URL(location.href).origin;return new URL(t,location.href).origin===e}}function _C(t,e){return e===void 0&&!YC(t)?"anonymous":e}function WC(t,e,n){n=n||eo;let r;if(e=e!==void 0?e:on.crossOrigin,e=_C(t,e),typeof Image<"u"){r=new Image,e!==void 0&&(r.crossOrigin=e);const i=function(){r.removeEventListener("error",o),r.removeEventListener("load",a),r=null},o=function(){const c="couldn't load image: "+t;$4(c),n(c,r),i()},a=function(){n(null,r),i()};return r.addEventListener("error",o),r.addEventListener("load",a),r.src=t,r}else if(typeof ImageBitmap<"u"){let i,o;const a=function(){n(i,o)},s={};e&&(s.mode="cors"),fetch(t,s).then(function(c){if(!c.ok)throw c;return c.blob()}).then(function(c){return createImageBitmap(c,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}).then(function(c){o=c,setTimeout(a)}).catch(function(c){i=c,setTimeout(a)}),r=null}return r}function Up(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap||typeof ImageData<"u"&&t instanceof ImageData||typeof HTMLElement<"u"&&t instanceof HTMLElement}function Yu(t,e,n){return Up(t)?(setTimeout(function(){n(null,t)}),t):WC(t,e,n)}function _u(t,e,n){n=n||on.textureOptions;const r=n.target||Tt;if(t.bindTexture(r,e),n.color===!1)return;const i=VC(n.color);if(r===It)for(let o=0;o<6;++o)t.texImage2D(za+o,0,te,1,1,0,te,ne,i);else r===an||r===sn?t.texImage3D(r,0,te,1,1,1,0,te,ne,i):t.texImage2D(r,0,te,1,1,0,te,ne,i)}function XC(t,e,n,r){return r=r||eo,n=n||on.textureOptions,_u(t,e,n),n=Object.assign({},n),Yu(n.src,n.crossOrigin,function(o,a){o?r(o,e,a):(jp(t,e,a,n),r(null,e,a))})}function ZC(t,e,n,r){r=r||eo;const i=n.src;if(i.length!==6)throw"there must be 6 urls for a cubemap";const o=n.level||0,a=n.internalFormat||n.format||te,s=Fr(a),c=n.format||s.format,u=n.type||ne,f=n.target||Tt;if(f!==It)throw"target must be TEXTURE_CUBE_MAP";_u(t,e,n),n=Object.assign({},n);let l=6;const d=[],h=Qu(t,n);let p;function m(y){return function(g,x){--l,g?d.push(g):x.width!==x.height?d.push("cubemap face img is not a square: "+x.src):(zr(t,n),t.bindTexture(f,e),l===5?Qu().forEach(function(A){t.texImage2D(A,o,a,c,u,x)}):t.texImage2D(y,o,a,c,u,x),$i(n)&&t.generateMipmap(f)),l===0&&r(d.length?d:void 0,e,p)}}p=i.map(function(y,g){return Yu(y,n.crossOrigin,m(h[g]))})}function qC(t,e,n,r){r=r||eo;const i=n.src,o=n.internalFormat||n.format||te,a=Fr(o),s=n.format||a.format,c=n.type||ne,u=n.target||sn;if(u!==an&&u!==sn)throw"target must be TEXTURE_3D or TEXTURE_2D_ARRAY";_u(t,e,n),n=Object.assign({},n);let f=i.length;const l=[];let d;const h=n.level||0;let p=n.width,m=n.height;const y=i.length;let g=!0;function x(A){return function(C,v){if(--f,C)l.push(C);else{if(zr(t,n),t.bindTexture(u,e),g){g=!1,p=n.width||v.width,m=n.height||v.height,t.texImage3D(u,h,o,p,m,y,0,s,c,null);for(let b=0;b<y;++b)t.texSubImage3D(u,h,0,0,b,p,m,1,s,c,v)}else{let b=v,w;(v.width!==p||v.height!==m)&&(w=xp(),b=w.canvas,w.canvas.width=p,w.canvas.height=m,w.drawImage(v,0,0,p,m)),t.texSubImage3D(u,h,0,0,A,p,m,1,s,c,b),w&&b===w.canvas&&(w.canvas.width=0,w.canvas.height=0)}$i(n)&&t.generateMipmap(u)}f===0&&r(l.length?l:void 0,e,d)}}d=i.map(function(A,C){return Yu(A,n.crossOrigin,x(C))})}function Gp(t,e,n,r){r=r||on.textureOptions;const i=r.target||Tt;t.bindTexture(i,e);let o=r.width,a=r.height,s=r.depth;const c=r.level||0,u=r.internalFormat||r.format||te,f=Fr(u),l=r.format||f.format,d=r.type||Fp(t,n,f.type);if(Nr(n))n instanceof Uint8ClampedArray&&(n=new Uint8Array(n.buffer));else{const y=J4(d);n=new y(n)}const h=UC(u,d),p=n.byteLength/h;if(p%1)throw"length wrong size for format: "+Fu(t,l);let m;if(i===an||i===sn)if(!o&&!a&&!s){const y=Math.cbrt(p);if(y%1!==0)throw"can't guess cube size of array of numElements: "+p;o=y,a=y,s=y}else o&&(!a||!s)?(m=Ya(t,i,a,s,p/o),a=m.width,s=m.height):a&&(!o||!s)?(m=Ya(t,i,o,s,p/a),o=m.width,s=m.height):(m=Ya(t,i,o,a,p/s),o=m.width,a=m.height);else m=Ya(t,i,o,a,p),o=m.width,a=m.height;if(zp(t),t.pixelStorei(ju,r.unpackAlignment||1),zr(t,r),i===It){const y=h/n.BYTES_PER_ELEMENT,g=p/6*y;Vu(t,r).forEach(x=>{const A=g*x.ndx,C=n.subarray(A,A+g);t.texImage2D(x.face,c,u,o,a,0,l,d,C)})}else i===an||i===sn?t.texImage3D(i,c,u,o,a,s,0,l,d,n):t.texImage2D(i,c,u,o,a,0,l,d,n);return{width:o,height:a,depth:s,type:d}}function KC(t,e,n){const r=n.target||Tt;t.bindTexture(r,e);const i=n.level||0,o=n.internalFormat||n.format||te,a=Fr(o),s=n.format||a.format,c=n.type||a.type;if(zr(t,n),r===It)for(let u=0;u<6;++u)t.texImage2D(za+u,i,o,n.width,n.height,0,s,c,null);else r===an||r===sn?t.texImage3D(r,i,o,n.width,n.height,n.depth,0,s,c,null):t.texImage2D(r,i,o,n.width,n.height,0,s,c,null)}function to(t,e,n){n=n||eo,e=e||on.textureOptions;const r=t.createTexture(),i=e.target||Tt;let o=e.width||1,a=e.height||1;const s=e.internalFormat||te;t.bindTexture(i,r),i===It&&(t.texParameteri(i,Ra,Fa),t.texParameteri(i,ja,Fa));let c=e.src;if(c)if(typeof c=="function"&&(c=c(t,e)),typeof c=="string")XC(t,r,e,n);else if(Nr(c)||Array.isArray(c)&&(typeof c[0]=="number"||Array.isArray(c[0])||Nr(c[0]))){const u=Gp(t,r,c,e);o=u.width,a=u.height}else Array.isArray(c)&&(typeof c[0]=="string"||Up(c[0]))?i===It?ZC(t,r,e,n):qC(t,r,e,n):(jp(t,r,c,e),o=c.width,a=c.height);else KC(t,r,e);return $i(e)&&Hu(t,r,e,o,a,s),Rp(t,r,e),r}function JC(t,e,n,r,i,o){r=r||n.width,i=i||n.height,o=o||n.depth;const a=n.target||Tt;t.bindTexture(a,e);const s=n.level||0,c=n.internalFormat||n.format||te,u=Fr(c),f=n.format||u.format;let l;const d=n.src;if(d&&(Nr(d)||Array.isArray(d)&&typeof d[0]=="number")?l=n.type||Fp(t,d,u.type):l=n.type||u.type,a===It)for(let h=0;h<6;++h)t.texImage2D(za+h,s,c,r,i,0,f,l,null);else a===an||a===sn?t.texImage3D(a,s,c,r,i,o,0,f,l,null):t.texImage2D(a,s,c,r,i,0,f,l,null)}const $C=hp,_a=33984,eS=35048,Wa=34962,tS=34963,Wu=35345,Hp=35718,nS=35721,rS=35971,iS=35382,oS=35396,aS=35398,sS=35392,cS=35395,Xa=5126,Qp=35664,Vp=35665,Yp=35666,Xu=5124,_p=35667,Wp=35668,Xp=35669,Zp=35670,qp=35671,Kp=35672,Jp=35673,$p=35674,em=35675,tm=35676,uS=35678,lS=35680,fS=35679,dS=35682,hS=35685,pS=35686,mS=35687,gS=35688,yS=35689,bS=35690,vS=36289,AS=36292,xS=36293,Zu=5125,nm=36294,rm=36295,im=36296,wS=36298,CS=36299,SS=36300,ES=36303,DS=36306,MS=36307,TS=36308,IS=36311,Za=3553,qa=34067,qu=32879,Ka=35866,F={};function om(t,e){return F[e].bindPoint}function kS(t,e){return function(n){t.uniform1f(e,n)}}function NS(t,e){return function(n){t.uniform1fv(e,n)}}function LS(t,e){return function(n){t.uniform2fv(e,n)}}function BS(t,e){return function(n){t.uniform3fv(e,n)}}function OS(t,e){return function(n){t.uniform4fv(e,n)}}function am(t,e){return function(n){t.uniform1i(e,n)}}function sm(t,e){return function(n){t.uniform1iv(e,n)}}function cm(t,e){return function(n){t.uniform2iv(e,n)}}function um(t,e){return function(n){t.uniform3iv(e,n)}}function lm(t,e){return function(n){t.uniform4iv(e,n)}}function PS(t,e){return function(n){t.uniform1ui(e,n)}}function FS(t,e){return function(n){t.uniform1uiv(e,n)}}function zS(t,e){return function(n){t.uniform2uiv(e,n)}}function RS(t,e){return function(n){t.uniform3uiv(e,n)}}function jS(t,e){return function(n){t.uniform4uiv(e,n)}}function US(t,e){return function(n){t.uniformMatrix2fv(e,!1,n)}}function GS(t,e){return function(n){t.uniformMatrix3fv(e,!1,n)}}function HS(t,e){return function(n){t.uniformMatrix4fv(e,!1,n)}}function QS(t,e){return function(n){t.uniformMatrix2x3fv(e,!1,n)}}function VS(t,e){return function(n){t.uniformMatrix3x2fv(e,!1,n)}}function YS(t,e){return function(n){t.uniformMatrix2x4fv(e,!1,n)}}function _S(t,e){return function(n){t.uniformMatrix4x2fv(e,!1,n)}}function WS(t,e){return function(n){t.uniformMatrix3x4fv(e,!1,n)}}function XS(t,e){return function(n){t.uniformMatrix4x3fv(e,!1,n)}}function Me(t,e,n,r){const i=om(t,e);return kr(t)?function(o){let a,s;Pa(t,o)?(a=o,s=null):(a=o.texture,s=o.sampler),t.uniform1i(r,n),t.activeTexture(_a+n),t.bindTexture(i,a),t.bindSampler(n,s)}:function(o){t.uniform1i(r,n),t.activeTexture(_a+n),t.bindTexture(i,o)}}function Te(t,e,n,r,i){const o=om(t,e),a=new Int32Array(i);for(let s=0;s<i;++s)a[s]=n+s;return kr(t)?function(s){t.uniform1iv(r,a),s.forEach(function(c,u){t.activeTexture(_a+a[u]);let f,l;Pa(t,c)?(f=c,l=null):(f=c.texture,l=c.sampler),t.bindSampler(n,l),t.bindTexture(o,f)})}:function(s){t.uniform1iv(r,a),s.forEach(function(c,u){t.activeTexture(_a+a[u]),t.bindTexture(o,c)})}}F[Xa]={Type:Float32Array,size:4,setter:kS,arraySetter:NS},F[Qp]={Type:Float32Array,size:8,setter:LS,cols:2},F[Vp]={Type:Float32Array,size:12,setter:BS,cols:3},F[Yp]={Type:Float32Array,size:16,setter:OS,cols:4},F[Xu]={Type:Int32Array,size:4,setter:am,arraySetter:sm},F[_p]={Type:Int32Array,size:8,setter:cm,cols:2},F[Wp]={Type:Int32Array,size:12,setter:um,cols:3},F[Xp]={Type:Int32Array,size:16,setter:lm,cols:4},F[Zu]={Type:Uint32Array,size:4,setter:PS,arraySetter:FS},F[nm]={Type:Uint32Array,size:8,setter:zS,cols:2},F[rm]={Type:Uint32Array,size:12,setter:RS,cols:3},F[im]={Type:Uint32Array,size:16,setter:jS,cols:4},F[Zp]={Type:Uint32Array,size:4,setter:am,arraySetter:sm},F[qp]={Type:Uint32Array,size:8,setter:cm,cols:2},F[Kp]={Type:Uint32Array,size:12,setter:um,cols:3},F[Jp]={Type:Uint32Array,size:16,setter:lm,cols:4},F[$p]={Type:Float32Array,size:32,setter:US,rows:2,cols:2},F[em]={Type:Float32Array,size:48,setter:GS,rows:3,cols:3},F[tm]={Type:Float32Array,size:64,setter:HS,rows:4,cols:4},F[hS]={Type:Float32Array,size:32,setter:QS,rows:2,cols:3},F[pS]={Type:Float32Array,size:32,setter:YS,rows:2,cols:4},F[mS]={Type:Float32Array,size:48,setter:VS,rows:3,cols:2},F[gS]={Type:Float32Array,size:48,setter:WS,rows:3,cols:4},F[yS]={Type:Float32Array,size:64,setter:_S,rows:4,cols:2},F[bS]={Type:Float32Array,size:64,setter:XS,rows:4,cols:3},F[uS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Za},F[lS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[fS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qu},F[dS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Za},F[vS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka},F[AS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka},F[xS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[wS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Za},F[CS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qu},F[SS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[ES]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka},F[DS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Za},F[MS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qu},F[TS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:qa},F[IS]={Type:null,size:0,setter:Me,arraySetter:Te,bindPoint:Ka};function Ja(t,e){return function(n){if(n.value)switch(t.disableVertexAttribArray(e),n.value.length){case 4:t.vertexAttrib4fv(e,n.value);break;case 3:t.vertexAttrib3fv(e,n.value);break;case 2:t.vertexAttrib2fv(e,n.value);break;case 1:t.vertexAttrib1fv(e,n.value);break;default:throw new Error("the length of a float constant value must be between 1 and 4!")}else t.bindBuffer(Wa,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribPointer(e,n.numComponents||n.size,n.type||Xa,n.normalize||!1,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function un(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4iv(e,n.value);else throw new Error("The length of an integer constant value must be 4!");else t.bindBuffer(Wa,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Xu,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function $a(t,e){return function(n){if(n.value)if(t.disableVertexAttribArray(e),n.value.length===4)t.vertexAttrib4uiv(e,n.value);else throw new Error("The length of an unsigned integer constant value must be 4!");else t.bindBuffer(Wa,n.buffer),t.enableVertexAttribArray(e),t.vertexAttribIPointer(e,n.numComponents||n.size,n.type||Zu,n.stride||0,n.offset||0),n.divisor!==void 0&&t.vertexAttribDivisor(e,n.divisor)}}function Ku(t,e,n){const r=n.size,i=n.count;return function(o){t.bindBuffer(Wa,o.buffer);const a=o.size||o.numComponents||r,s=a/i,c=o.type||Xa,f=F[c].size*a,l=o.normalize||!1,d=o.offset||0,h=f/i;for(let p=0;p<i;++p)t.enableVertexAttribArray(e+p),t.vertexAttribPointer(e+p,s,c,l,f,d+h*p),o.divisor!==void 0&&t.vertexAttribDivisor(e+p,o.divisor)}}const ue={};ue[Xa]={size:4,setter:Ja},ue[Qp]={size:8,setter:Ja},ue[Vp]={size:12,setter:Ja},ue[Yp]={size:16,setter:Ja},ue[Xu]={size:4,setter:un},ue[_p]={size:8,setter:un},ue[Wp]={size:12,setter:un},ue[Xp]={size:16,setter:un},ue[Zu]={size:4,setter:$a},ue[nm]={size:8,setter:$a},ue[rm]={size:12,setter:$a},ue[im]={size:16,setter:$a},ue[Zp]={size:4,setter:un},ue[qp]={size:8,setter:un},ue[Kp]={size:12,setter:un},ue[Jp]={size:16,setter:un},ue[$p]={size:4,setter:Ku,count:2},ue[em]={size:9,setter:Ku,count:3},ue[tm]={size:16,setter:Ku,count:4};function fm(t){const e=t.name;return e.startsWith("gl_")||e.startsWith("webgl_")}const ZS=/(\.|\[|]|\w+)/g,qS=t=>t>="0"&&t<="9";function dm(t,e,n,r){const i=t.split(ZS).filter(s=>s!=="");let o=0,a="";for(;;){const s=i[o++];a+=s;const c=qS(s[0]),u=c?parseInt(s):s;if(c&&(a+=i[o++]),o===i.length){n[u]=e;break}else{const l=i[o++],d=l==="[",h=n[u]||(d?[]:{});n[u]=h,n=h,r[a]=r[a]||function(p){return function(m){ym(p,m)}}(h),a+=l}}}function KS(t,e){let n=0;function r(s,c,u){const f=c.name.endsWith("[0]"),l=c.type,d=F[l];if(!d)throw new Error(`unknown type: 0x${l.toString(16)}`);let h;if(d.bindPoint){const p=n;n+=c.size,f?h=d.arraySetter(t,l,p,u,c.size):h=d.setter(t,l,p,u,c.size)}else d.arraySetter&&f?h=d.arraySetter(t,u):h=d.setter(t,u);return h.location=u,h}const i={},o={},a=t.getProgramParameter(e,Hp);for(let s=0;s<a;++s){const c=t.getActiveUniform(e,s);if(fm(c))continue;let u=c.name;u.endsWith("[0]")&&(u=u.substr(0,u.length-3));const f=t.getUniformLocation(e,c.name);if(f){const l=r(e,c,f);i[u]=l,dm(u,l,o,i)}}return i}function JS(t,e){const n={},r=t.getProgramParameter(e,rS);for(let i=0;i<r;++i){const o=t.getTransformFeedbackVarying(e,i);n[o.name]={index:i,type:o.type,size:o.size}}return n}function $S(t,e){const n=t.getProgramParameter(e,Hp),r=[],i=[];for(let s=0;s<n;++s){i.push(s),r.push({});const c=t.getActiveUniform(e,s);r[s].name=c.name}[["UNIFORM_TYPE","type"],["UNIFORM_SIZE","size"],["UNIFORM_BLOCK_INDEX","blockNdx"],["UNIFORM_OFFSET","offset"]].forEach(function(s){const c=s[0],u=s[1];t.getActiveUniforms(e,i,t[c]).forEach(function(f,l){r[l][u]=f})});const o={},a=t.getProgramParameter(e,iS);for(let s=0;s<a;++s){const c=t.getActiveUniformBlockName(e,s),u={index:t.getUniformBlockIndex(e,c),usedByVertexShader:t.getActiveUniformBlockParameter(e,s,oS),usedByFragmentShader:t.getActiveUniformBlockParameter(e,s,aS),size:t.getActiveUniformBlockParameter(e,s,sS),uniformIndices:t.getActiveUniformBlockParameter(e,s,cS)};u.used=u.usedByVertexShader||u.usedByFragmentShader,o[c]=u}return{blockSpecs:o,uniformData:r}}const hm=/\[\d+\]\.$/,eE=(t,e)=>((t+(e-1))/e|0)*e;function tE(t,e,n,r){if(e||n){r=r||1;const o=t.length/4;return function(a){let s=0,c=0;for(let u=0;u<o;++u){for(let f=0;f<r;++f)t[s++]=a[c++];s+=4-r}}}else return function(i){i.length?t.set(i):t[0]=i}}function nE(t,e,n,r){const i=n.blockSpecs,o=n.uniformData,a=i[r];if(!a)return $C("no uniform block object named:",r),{name:r,uniforms:{}};const s=new ArrayBuffer(a.size),c=t.createBuffer(),u=a.index;t.bindBuffer(Wu,c),t.uniformBlockBinding(e,a.index,u);let f=r+".";hm.test(f)&&(f=f.replace(hm,"."));const l={},d={},h={};return a.uniformIndices.forEach(function(p){const m=o[p];let y=m.name;y.startsWith(f)&&(y=y.substr(f.length));const g=y.endsWith("[0]");g&&(y=y.substr(0,y.length-3));const x=F[m.type],A=x.Type,C=g?eE(x.size,16)*m.size:x.size*m.size,v=new A(s,m.offset,C/A.BYTES_PER_ELEMENT);l[y]=v;const b=tE(v,g,x.rows,x.cols);d[y]=b,dm(y,b,h,d)}),{name:r,array:s,asFloat:new Float32Array(s),buffer:c,uniforms:l,setters:d}}function pm(t,e,n){return nE(t,e.program,e.uniformBlockSpec,n)}function rE(t,e,n){const i=(e.uniformBlockSpec||e).blockSpecs[n.name];if(i){const o=i.index;return t.bindBufferRange(Wu,o,n.buffer,n.offset||0,n.array.byteLength),!0}return!1}function mm(t,e,n){rE(t,e,n)&&t.bufferData(Wu,n.array,eS)}function gm(t,e){const n=t.setters;for(const r in e){const i=n[r];if(i){const o=e[r];i(o)}}}function ym(t,e){for(const n in e){const r=t[n];typeof r=="function"?r(e[n]):ym(t[n],e[n])}}function Ue(t,...e){const n=t.uniformSetters||t,r=e.length;for(let i=0;i<r;++i){const o=e[i];if(Array.isArray(o)){const a=o.length;for(let s=0;s<a;++s)Ue(n,o[s])}else for(const a in o){const s=n[a];s&&s(o[a])}}}function iE(t,e){const n={},r=t.getProgramParameter(e,nS);for(let i=0;i<r;++i){const o=t.getActiveAttrib(e,i);if(fm(o))continue;const a=t.getAttribLocation(e,o.name),s=ue[o.type],c=s.setter(t,a,s);c.location=a,n[o.name]=c}return n}function oE(t,e){for(const n in e){const r=t[n];r&&r(e[n])}}function Rr(t,e,n){n.vertexArrayObject?t.bindVertexArray(n.vertexArrayObject):(oE(e.attribSetters||e,n.attribs),n.indices&&t.bindBuffer(tS,n.indices))}function aE(t,e){const n=KS(t,e),r=iE(t,e),i={program:e,uniformSetters:n,attribSetters:r};return kr(t)&&(i.uniformBlockSpec=$S(t,e),i.transformFeedbackInfo=JS(t,e)),i}const sE=4,bm=5123;function no(t,e,n,r,i,o){n=n===void 0?sE:n;const a=e.indices,s=e.elementType,c=r===void 0?e.numElements:r;i=i===void 0?0:i,s||a?o!==void 0?t.drawElementsInstanced(n,c,s===void 0?bm:e.elementType,i,o):t.drawElements(n,c,s===void 0?bm:e.elementType,i):o!==void 0?t.drawArraysInstanced(n,i,c,o):t.drawArrays(n,i,c)}const cE=36160,Wn=36161,uE=3553,lE=5121,fE=6402,dE=6408,hE=33190,pE=36012,mE=35056,gE=36013,yE=32854,bE=32855,vE=36194,vm=33189,Am=6401,xm=36168,Ju=34041,AE=36064,es=36096,wm=36128,$u=33306,el=33071,tl=9729,Cm=[{format:dE,type:lE,min:tl,wrap:el},{format:Ju}],st={};st[Ju]=$u,st[Am]=wm,st[xm]=wm,st[fE]=es,st[vm]=es,st[hE]=es,st[pE]=es,st[mE]=$u,st[gE]=$u;function xE(t,e){return st[t]||st[e]}const ln={};ln[yE]=!0,ln[bE]=!0,ln[vE]=!0,ln[Ju]=!0,ln[vm]=!0,ln[Am]=!0,ln[xm]=!0;function wE(t){return ln[t]}function CE(t,e,n,r){const i=cE,o=t.createFramebuffer();t.bindFramebuffer(i,o),n=n||t.drawingBufferWidth,r=r||t.drawingBufferHeight,e=e||Cm;let a=0;const s={framebuffer:o,attachments:[],width:n,height:r};return e.forEach(function(c){let u=c.attachment;const f=c.samples,l=c.format;let d=c.attachmentPoint||xE(l,c.internalFormat);if(d||(d=AE+a++),!u)if(f!==void 0||wE(l))u=t.createRenderbuffer(),t.bindRenderbuffer(Wn,u),f>1?t.renderbufferStorageMultisample(Wn,f,l,n,r):t.renderbufferStorage(Wn,l,n,r);else{const h=Object.assign({},c);h.width=n,h.height=r,h.auto===void 0&&(h.auto=!1,h.min=h.min||h.minMag||tl,h.mag=h.mag||h.minMag||tl,h.wrapS=h.wrapS||h.wrap||el,h.wrapT=h.wrapT||h.wrap||el),u=to(t,h)}if(pp(t,u))t.framebufferRenderbuffer(i,d,Wn,u);else if(Pa(t,u))c.layer!==void 0?t.framebufferTextureLayer(i,d,u,c.level||0,c.layer):t.framebufferTexture2D(i,d,c.target||uE,u,c.level||0);else throw new Error("unknown attachment type");s.attachments.push(u)}),s}function SE(t,e,n,r,i){r=r||t.drawingBufferWidth,i=i||t.drawingBufferHeight,e.width=r,e.height=i,n=n||Cm,n.forEach(function(o,a){const s=e.attachments[a],c=o.format,u=o.samples;if(u!==void 0||pp(t,s))t.bindRenderbuffer(Wn,s),u>1?t.renderbufferStorageMultisample(Wn,u,c,r,i):t.renderbufferStorage(Wn,c,r,i);else if(Pa(t,s))JC(t,s,o,r,i);else throw new Error("unknown attachment type")})}function EE(t,e,n){const r=t.createVertexArray();return t.bindVertexArray(r),e.length||(e=[e]),e.forEach(function(i){Rr(t,i,n)}),t.bindVertexArray(null),{numElements:n.numElements,elementType:n.elementType,vertexArrayObject:r}}const DE=/^(.*?)_/;function ME(t,e){Fu(t,0);const n=t.getExtension(e);if(n){const r={},i=DE.exec(e)[1],o="_"+i;for(const a in n){const s=n[a],c=typeof s=="function",u=c?i:o;let f=a;a.endsWith(u)&&(f=a.substring(0,a.length-u.length)),t[f]!==void 0?!c&&t[f]!==s&&hp(f,t[f],s,a):c?t[f]=function(l){return function(){return l.apply(n,arguments)}}(s):(t[f]=s,r[f]=s)}r.constructor={name:n.constructor.name},Fu(r,0)}return n}const Sm=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_color_buffer_float","EXT_color_buffer_half_float","EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2","EXT_frag_depth","EXT_sRGB","EXT_shader_texture_lod","EXT_texture_filter_anisotropic","OES_element_index_uint","OES_standard_derivatives","OES_texture_float","OES_texture_float_linear","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_compressed_texture_atc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_pvrtc","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_depth_texture","WEBGL_draw_buffers"];function Em(t){for(let e=0;e<Sm.length;++e)ME(t,Sm[e])}function TE(t,e){const n=["webgl2","webgl","experimental-webgl"];let r=null;for(let i=0;i<n.length;++i)if(r=t.getContext(n[i],e),r){Em(r);break}return r}function IE(t,e){return TE(t,e)}const kE=`/**
15
15
  * The vertex position wrt the rectangle specified by (x, x2, y, y2).
16
16
  * [0, 0] = [x, y], [1, 1] = [x2, y2].
17
17
  * The x or y component may contain fractional values if the rectangle
@@ -125,7 +125,7 @@ void main(void) {
125
125
 
126
126
  setupPicking();
127
127
  }
128
- `,YS=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
128
+ `,NE=`#if defined(ROUNDED_CORNERS) || defined(STROKED)
129
129
  in vec2 vPosInPixels;
130
130
  #endif
131
131
 
@@ -176,20 +176,20 @@ void main(void) {
176
176
  fragColor = vPickingColor;
177
177
  }
178
178
  }
179
- `,rl="attr_",km="uDomain_",_S="range_",Lm="scale_",Om="getScaled_",il="uRangeTexture_",Bm=3402823466e29;function WS(t){const e=t.match(/^(?:(\w+)-)?(\w+)$/);if(!e)throw new Error("Not a scale type: "+t);return{family:e[1]||"continuous",transform:e[2]}}function XS(t,e){let n;if(Fa(t))n=Zn(gp(t)(e));else if(ee(e))if(Yn(t))n=qS(e);else throw new Error(`String values are not supported on the "${t}" channel: ${e}`);else if(Xo(e))n=Zn(e?1:0);else if(e===null)if(Yn(t))n=Zn([0,0,0]);else throw new Error(`null value is not supported on the "${t}" chanel.`);else n=Zn(e);return`
179
+ `,nl="attr_",Dm="uDomain_",LE="range_",Mm="scale_",Tm="getScaled_",rl="uRangeTexture_",Im=3402823466e29;function BE(t){const e=t.match(/^(?:(\w+)-)?(\w+)$/);if(!e)throw new Error("Not a scale type: "+t);return{family:e[1]||"continuous",transform:e[2]}}function OE(t,e){let n;if(Ba(t))n=Xn(fp(t)(e));else if(ee(e))if(Vn(t))n=FE(e);else throw new Error(`String values are not supported on the "${t}" channel: ${e}`);else if(_o(e))n=Xn(e?1:0);else if(e===null)if(Vn(t))n=Xn([0,0,0]);else throw new Error(`null value is not supported on the "${t}" chanel.`);else n=Xn(e);return`
180
180
  #define ${t}_DEFINED
181
- ${n.type} ${Om}${t}() {
181
+ ${n.type} ${Tm}${t}() {
182
182
  // Constant value
183
183
  return ${n};
184
- }`}function ZS(t,e,n){var x,E;if(at(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);const r=kr(t),i=rl+t,o=km+r,a=_S+r,s=rs(e.type),c=s?"vec2":"float",u=e.domain?e.domain().length:void 0;let f;const l=[];l.push(""),l.push("/".repeat(70)),l.push(`// Channel: ${t}`),l.push(""),l.push(`#define ${t}_DEFINED`);const{transform:d}=WS(e.type),h=(I,...L)=>KS.apply(null,[I,"value",...L]);let p;switch(d){case"linear":p=h("scaleLinear","domain",a);break;case"log":p=h("scaleLog","domain",a,e.base());break;case"symlog":p=h("scaleSymlog","domain",a,e.constant());break;case"pow":case"sqrt":p=h("scalePow","domain",a,e.exponent());break;case"index":case"locus":p=h("scaleBandHp","domain",a,e.paddingInner(),e.paddingOuter(),e.align(),(x=n.band)!=null?x:.5);break;case"point":case"band":p=h("scaleBand","domain",a,e.paddingInner(),e.paddingOuter(),e.align(),(E=n.band)!=null?E:.5);break;case"ordinal":case"null":case"identity":p=h("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${e.type}! ${t}: ${JSON.stringify(n)}`)}const m=Da(e.type)||je(e.type)&&Yn(t)?[0,1]:e.range?e.range():void 0;if(m&&t==r&&m.length&&m.every(ce)){const I=Fm(m);l.push(`const ${I.type} ${a} = ${I};`)}const y=Yn(t)?"vec3":"float";let g;if(Yn(t)){const I=il+r;if(t==r&&l.push(`uniform sampler2D ${I};`),je(e.type))g=`getInterpolatedColor(${I}, transformed)`;else if(tn(e.type)||Dr(e.type))g=`getDiscreteColor(${I}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(e.type==="ordinal"||Dr(e.type)){const I=il+r;t==r&&l.push(`uniform sampler2D ${I};`),g=`getDiscreteColor(${I}, int(transformed)).r`}Zi(n)?l.push(`uniform highp ${c} ${i};`):l.push(`in highp ${c} ${i};`);const A=[],w=je(e.type)&&u>2,C=Dr(e.type)||w;if(A.push("int slot = 0;"),C){const I=o;A.push(w?`while (slot < ${I}.length() - 2 && value >= ${I}[slot + 1]) { slot++; }`:`while (slot < ${I}.length() && value >= ${I}[slot]) { slot++; }`)}const b=je(e.type)||Dr(e.type)||["band","point"].includes(e.type);if(p){const I=o;b&&(s?A.push(`vec3 domain = ${I};`):A.push(`vec2 domain = vec2(${I}[slot], ${I}[slot + 1]);`)),A.push(`float transformed = ${p};`),w&&A.push(`transformed = (float(slot) + transformed) / (float(${I}.length()) - 1.0);`)}else A.push("float transformed = float(slot);");"clamp"in e&&e.clamp()&&A.push(`transformed = clampToRange(transformed, ${Fm(m)});`),A.push(`return ${g!=null?g:"transformed"};`),l.push(`
185
- ${y} ${Lm}${t}(${c} value) {
186
- ${A.map(I=>` ${I}
184
+ }`}function PE(t,e,n){var w,E;if(ot(n))throw new Error(`Cannot create scale for "value": ${JSON.stringify(n)}`);const r=Ir(t),i=nl+t,o=Dm+r,a=LE+r,s=ts(e.type),c=s?"vec2":"float",u=e.domain?e.domain().length:void 0;let f;const l=[];l.push(""),l.push("/".repeat(70)),l.push(`// Channel: ${t}`),l.push(""),l.push(`#define ${t}_DEFINED`);const{transform:d}=BE(e.type),h=(I,...L)=>zE.apply(null,[I,"value",...L]);let p;switch(d){case"linear":p=h("scaleLinear","domain",a);break;case"log":p=h("scaleLog","domain",a,e.base());break;case"symlog":p=h("scaleSymlog","domain",a,e.constant());break;case"pow":case"sqrt":p=h("scalePow","domain",a,e.exponent());break;case"index":case"locus":p=h("scaleBandHp","domain",a,e.paddingInner(),e.paddingOuter(),e.align(),(w=n.band)!=null?w:.5);break;case"point":case"band":p=h("scaleBand","domain",a,e.paddingInner(),e.paddingOuter(),e.align(),(E=n.band)!=null?E:.5);break;case"ordinal":case"null":case"identity":p=h("scaleIdentity");break;case"threshold":break;default:throw new Error(`Unsupported scale type: ${e.type}! ${t}: ${JSON.stringify(n)}`)}const m=Sa(e.type)||Re(e.type)&&Vn(t)?[0,1]:e.range?e.range():void 0;if(m&&t==r&&m.length&&m.every(ce)){const I=km(m);l.push(`const ${I.type} ${a} = ${I};`)}const y=Vn(t)?"vec3":"float";let g;if(Vn(t)){const I=rl+r;if(t==r&&l.push(`uniform sampler2D ${I};`),Re(e.type))g=`getInterpolatedColor(${I}, transformed)`;else if(tn(e.type)||Sr(e.type))g=`getDiscreteColor(${I}, int(transformed))`;else throw new Error("Problem with color scale!")}else if(e.type==="ordinal"||Sr(e.type)){const I=rl+r;t==r&&l.push(`uniform sampler2D ${I};`),g=`getDiscreteColor(${I}, int(transformed)).r`}_i(n)?l.push(`uniform highp ${c} ${i};`):l.push(`in highp ${c} ${i};`);const x=[],A=Re(e.type)&&u>2,C=Sr(e.type)||A;if(x.push("int slot = 0;"),C){const I=o;x.push(A?`while (slot < ${I}.length() - 2 && value >= ${I}[slot + 1]) { slot++; }`:`while (slot < ${I}.length() && value >= ${I}[slot]) { slot++; }`)}const v=Re(e.type)||Sr(e.type)||["band","point"].includes(e.type);if(p){const I=o;v&&(s?x.push(`vec3 domain = ${I};`):x.push(`vec2 domain = vec2(${I}[slot], ${I}[slot + 1]);`)),x.push(`float transformed = ${p};`),A&&x.push(`transformed = (float(slot) + transformed) / (float(${I}.length()) - 1.0);`)}else x.push("float transformed = float(slot);");"clamp"in e&&e.clamp()&&x.push(`transformed = clampToRange(transformed, ${km(m)});`),x.push(`return ${g!=null?g:"transformed"};`),l.push(`
185
+ ${y} ${Mm}${t}(${c} value) {
186
+ ${x.map(I=>` ${I}
187
187
  `).join("")}
188
188
  }`),l.push(`
189
- ${y} ${Om}${t}() {
190
- return ${Lm}${t}(${i});
191
- }`);const v=l.join(`
192
- `);if(b&&t==r){const I=je(e.type)||Dr(e.type)?u:2;f=s?`highp vec3 ${o};`:`mediump float ${o}[${I}];`}return{glsl:v,domainUniform:f}}function ol(t){if(!ce(t))throw new Error(`Not a number: ${t}`);if(t==1/0)return""+Bm;if(t==-1/0)return""+-Bm;{let e=`${t}`;return/^(-)?\d+$/.test(e)&&(e+=".0"),e}}function Zn(t){typeof t=="number"&&(t=[t]);const e=t.length;if(e<1||e>4)throw new Error("Invalid number of components: "+e);let n,r;return e>1?(n=`vec${e}`,r=`${n}(${t.map(ol).join(", ")})`):(n="float",r=ol(t[0])),Object.assign(r,{type:n,numComponents:e})}function qS(t){const e=Bn(t).rgb();return Zn([e.r,e.g,e.b].map(n=>n/255))}function Fm(t){return Zn([t[0],Ue(t)])}function KS(t,...e){const n=[];for(const r of e)ce(r)?n.push(ol(r)):Xe(r)?n.push(Zn(r)):n.push(r);return`${t}(${n.join(", ")})`}function rs(t){return t=="index"||t=="locus"}function al(t,e){const r=t%2048,i=Math.round(t-r);return e!=null||(e=[]),e[0]=i,e[1]=r,e}function JS(t){return[...al(t[0]),t[1]-t[0]]}class $S{constructor(e){this.size=e,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(e,n){const r=this.createUpdater(rl+e,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?o=>r(i(o)):o=>r(i(o)))}createUpdater(e,n,r){if(!ce(this.size))throw new Error("The number of vertices must be defined!");let i,o,a=0;const s=new Float32Array(this.size*n);if(this.arrays[e]={data:s,numComponents:n},n==1){let c=0;const u=f=>{c=+f};i=()=>{s[a++]=c},o=u}else{let c=r!=null?r:[0];const u=r?f=>{}:f=>{c=f};switch(n){case 1:break;case 2:i=()=>{s[a++]=c[0],s[a++]=c[1]},o=u;break;case 3:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2]},o=u;break;case 4:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2],s[a++]=c[3]},o=u;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),o}_unrollPushAll(){let e="",n="";for(let i=0;i<this.pushers.length;i++)e+=`const p${i} = that.pushers[${i}];
189
+ ${y} ${Tm}${t}() {
190
+ return ${Mm}${t}(${i});
191
+ }`);const b=l.join(`
192
+ `);if(v&&t==r){const I=Re(e.type)||Sr(e.type)?u:2;f=s?`highp vec3 ${o};`:`mediump float ${o}[${I}];`}return{glsl:b,domainUniform:f}}function il(t){if(!ce(t))throw new Error(`Not a number: ${t}`);if(t==1/0)return""+Im;if(t==-1/0)return""+-Im;{let e=`${t}`;return/^(-)?\d+$/.test(e)&&(e+=".0"),e}}function Xn(t){typeof t=="number"&&(t=[t]);const e=t.length;if(e<1||e>4)throw new Error("Invalid number of components: "+e);let n,r;return e>1?(n=`vec${e}`,r=`${n}(${t.map(il).join(", ")})`):(n="float",r=il(t[0])),Object.assign(r,{type:n,numComponents:e})}function FE(t){const e=Bn(t).rgb();return Xn([e.r,e.g,e.b].map(n=>n/255))}function km(t){return Xn([t[0],je(t)])}function zE(t,...e){const n=[];for(const r of e)ce(r)?n.push(il(r)):We(r)?n.push(Xn(r)):n.push(r);return`${t}(${n.join(", ")})`}function ts(t){return t=="index"||t=="locus"}function ol(t,e){const r=t%2048,i=Math.round(t-r);return e!=null||(e=[]),e[0]=i,e[1]=r,e}function RE(t){return[...ol(t[0]),t[1]-t[0]]}class jE{constructor(e){this.size=e,this.arrays={},this.pushers=[],this.dataUpdaters=[],this.vertexCount=0}addConverter(e,n){const r=this.createUpdater(nl+e,n.numComponents||1,n.arrayReference),i=n.f;this.dataUpdaters.push(n.arrayReference?o=>r(i(o)):o=>r(i(o)))}createUpdater(e,n,r){if(!ce(this.size))throw new Error("The number of vertices must be defined!");let i,o,a=0;const s=new Float32Array(this.size*n);if(this.arrays[e]={data:s,numComponents:n},n==1){let c=0;const u=f=>{c=+f};i=()=>{s[a++]=c},o=u}else{let c=r!=null?r:[0];const u=r?f=>{}:f=>{c=f};switch(n){case 1:break;case 2:i=()=>{s[a++]=c[0],s[a++]=c[1]},o=u;break;case 3:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2]},o=u;break;case 4:i=()=>{s[a++]=c[0],s[a++]=c[1],s[a++]=c[2],s[a++]=c[3]},o=u;break;default:throw new Error("Invalid numComponents: "+n)}}return this.pushers.push(i),o}_unrollPushAll(){let e="",n="";for(let i=0;i<this.pushers.length;i++)e+=`const p${i} = that.pushers[${i}];
193
193
  `,n+=`p${i}();
194
194
  `;const r=new Function("that",`${e}
195
195
 
@@ -197,7 +197,7 @@ ${y} ${Om}${t}() {
197
197
  ${n}
198
198
  that.vertexCount++;
199
199
  };
200
- `);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(e){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](e)}pushFromDatum(e){this.updateFromDatum(e),this.pushAll()}}const Gr=5,sl=127;function cl(t){const e=[];for(let p=0;p<=sl;p++)e.push(void 0);const n=new Map;for(const p of t.chars)p.id<=sl?e[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,e["-".charCodeAt(0)]);function i(p){return(p<=sl?e[p]:n.get(p))||e[63]}function o(p){return i(p.charCodeAt(0))}const a=t.common.base,s=o("x"),c=o("X"),u=o("q"),f=s.height-Gr*2,l=c.height-Gr*2,d=u.height-s.height+u.yoffset-s.yoffset;function h(p,m=1){let y=0;for(let g=0;g<p.length;g++)y+=i(p.charCodeAt(g)).xadvance;return y/a*m}return{measureWidth:h,getCharByCode:i,getChar:o,xHeight:f,capHeight:l,descent:d,common:t.common}}function ul(t,e=0,n=1){return Math.max(e,Math.min(n,t))}const Pm=2**31-1,eD=-(2**31);function tD(t,e,n,r=n){const i=new Int32Array(t);i.fill(Pm);let o=eD,a=!1;const s=new Int32Array(t),c=e[0],f=(e[1]-e[0])/t,l=(y,g)=>{const A=(y-c)/f,w=Math.floor(A);return ul(g&&w==A?w-1:w,0,t-1)};function d(y,g,A){g>o?o=g:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const w=n(y),C=l(w,!1);i[C]>g&&(i[C]=g),s[C]<A&&(s[C]=A)}function h(y,g,A){g>o?o=g:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const w=n(y),C=r(y),b=l(w,!1),v=l(C,!0);for(let x=b;x<=v;x++)i[x]>g&&(i[x]=g),s[x]<A&&(s[x]=A)}const p=(y,g,A=[0,0])=>{const w=l(y,!1),C=l(g,!0),b=i[w],v=Math.max(s[C],b);return A[0]=b,A[1]=v,A},m=()=>{for(let g=1;g<s.length;g++)s[g]<s[g-1]&&(s[g]=s[g-1]);let y=!0;for(let g=i.length-1;g>0;g--)y&&i[g]==Pm?(i[g]=s[g],y=!1):i[g-1]>i[g]&&(i[g-1]=i[g]);return p};if(d.getIndex=m,h.getIndex=m,!a)return n==r?d:h}class ao{constructor({encoders:e,numVertices:n=void 0,attributes:r=[]}){this.encoders=e,this.variableEncoders=Object.fromEntries(Object.entries(e).filter(([i,o])=>r.includes(i)&&o&&o.scale&&!o.constant)),this.allocatedVertices=n,this.variableBuilder=new $S(n);for(const[i,o]of Object.entries(this.variableEncoders)){const a=o.accessor,s=[0,0],c=rs(o.scale.type),u=o.indexer,f=u?l=>u(a(l)):c?l=>al(a(l),s):a;this.variableBuilder.addConverter(i,{f,numComponents:c?2:1,arrayReference:c?s:void 0})}this.lastOffset=0,this.rangeMap=new Dn([],JSON.stringify)}registerBatch(e){var o;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(e,{offset:n,count:i,xIndex:(o=this.xIndexer)==null?void 0:o.getIndex()}),this.lastOffset=r}addBatches(e){for(const[n,r]of e)this.addBatch(n,r)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.pushFromDatum(a),this.addToXIndex(a)}this.registerBatch(e)}prepareXIndexer(e,n=0,r=n+e.length){const i=()=>{this.addToXIndex=c=>{},this.xIndexer=void 0};if(!e.length||r-n<0){i();return}const o=c=>{var u;return c&&je((u=c.scale)==null?void 0:u.type)&&c},a=o(this.variableEncoders.x),s=o(this.variableEncoders.x2);if(a){const c=a.accessor,u=s?s.accessor:c,f=[c(e[n]),u(e[r-1])];if(f[1]>f[0]){this.xIndexer=tD(50,f,c,u);let l=this.variableBuilder.vertexCount;this.addToXIndex=d=>{let h=this.variableBuilder.vertexCount;this.xIndexer(d,l,h),l=h}}else i()}else i()}addToXIndex(e){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class nD extends ao{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:e,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(e,n,r=0,i=n.length){if(i<=r)return;const o=this.encoders,[a,s]=this.visibleRange,c=d=>d.accessor||(h=>0),u=c(o.x),f=c(o.x2);this.prepareXIndexer(n,r,i);const l=[0,0];this.updateFrac(l);for(let d=r;d<i;d++){const h=n[d];let p=u(h),m=f(h);if(p>m&&([p,m]=[m,p]),m<a||p>s)continue;p<a&&(p=a),m>s&&(m=s),this.variableBuilder.updateFromDatum(h),l[0]=0,l[1]=0;const y=1;this.variableBuilder.pushAll();for(let g=0;g<=y;g++)l[0]=g/y,l[1]=0,this.variableBuilder.pushAll(),l[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(h)}this.registerBatch(e)}}class rD extends ao{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:e,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.updateFromDatum(a),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let c=0;c<=s;c++)this.updatePos(c/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(a)}this.registerBatch(e)}}class iD extends ao{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}}class oD extends ao{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}toArrays(){const e=this.variableBuilder.arrays;for(let n of Object.values(e))n.divisor=1;return super.toArrays()}}class aD extends ao{constructor({encoders:e,attributes:n,fontMetrics:r,properties:i,numCharacters:o=void 0}){super({encoders:e,attributes:n,numVertices:o*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=e.text.channelDef;this.numberFormat=!at(s)&&s.format?le(s.format):c=>c,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(e,n,r=0,i=n.length){var h;const o=this.properties.align||"left",a=(h=this.properties.logoLetters)!=null?h:!1,s=this.metadata.common.base,c=this.metadata.common.scaleH;let u=-Gr;switch(this.properties.baseline){case"top":u+=this.metrics.capHeight;break;case"middle":u+=this.metrics.capHeight/2;break;case"bottom":u-=this.metrics.descent;break}const f=this.encoders.text.accessor||this.encoders.text,l=[0,0];this.updateVertexCoord(l);const d=[0,0];this.updateTextureCoord(d),this.prepareXIndexer(n,r,i);for(let p=r;p<i;p++){const m=n[p],y=this.numberFormat(f(m)),g=ee(y)?y:y===null?"":""+y;if(g.length==0)continue;this.variableBuilder.updateFromDatum(m);const A=a?g.length:this.metrics.measureWidth(g);this.updateWidth(A);let w=o=="right"?-A:o=="center"?-A/2:0;if(!a){const x=this.metrics.getCharByCode(g.charCodeAt(0));w-=(x.width-x.xadvance)/s/2}let C=-.5,b=1,v=1;for(let x=0;x<g.length;x++){const E=this.metrics.getCharByCode(g.charCodeAt(x)),I=a?1:E.xadvance/s;if(E.id==32){w+=I;continue}a?(v=(E.width+Gr*2)/E.width,w=-v/2,b=(E.height+Gr*2)/E.height,C=-.5-Gr/E.height):(b=E.height/s,C=-(E.height+E.yoffset+u)/s,v=E.width/s);const L=E.x,T=E.y;l[0]=w,l[1]=C+b,d[0]=L/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=w+v,l[1]=C+b,d[0]=(L+E.width)/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=w,l[1]=C,d[0]=L/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),l[0]=w+v,l[1]=C+b,d[0]=(L+E.width)/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=w,l[1]=C,d[0]=L/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),l[0]=w+v,l[1]=C,d[0]=(L+E.width)/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),w+=I}this.addToXIndex(m)}this.registerBatch(e)}}const zm=`#define PI 3.141593
200
+ `);this.pushAll=r(this)}pushAll(){this.size>1e5?this._unrollPushAll():this.pushAll=()=>{for(let n=0;n<this.pushers.length;n++)this.pushers[n]();this.vertexCount++},this.pushAll()}updateFromDatum(e){for(let n=0;n<this.dataUpdaters.length;n++)this.dataUpdaters[n](e)}pushFromDatum(e){this.updateFromDatum(e),this.pushAll()}}const jr=5,al=127;function sl(t){const e=[];for(let p=0;p<=al;p++)e.push(void 0);const n=new Map;for(const p of t.chars)p.id<=al?e[p.id]=p:n.set(p.id,p);const r=8722;n.has(r)||n.set(r,e["-".charCodeAt(0)]);function i(p){return(p<=al?e[p]:n.get(p))||e[63]}function o(p){return i(p.charCodeAt(0))}const a=t.common.base,s=o("x"),c=o("X"),u=o("q"),f=s.height-jr*2,l=c.height-jr*2,d=u.height-s.height+u.yoffset-s.yoffset;function h(p,m=1){let y=0;for(let g=0;g<p.length;g++)y+=i(p.charCodeAt(g)).xadvance;return y/a*m}return{measureWidth:h,getCharByCode:i,getChar:o,xHeight:f,capHeight:l,descent:d,common:t.common}}function cl(t,e=0,n=1){return Math.max(e,Math.min(n,t))}const Nm=2**31-1,UE=-(2**31);function GE(t,e,n,r=n){const i=new Int32Array(t);i.fill(Nm);let o=UE,a=!1;const s=new Int32Array(t),c=e[0],f=(e[1]-e[0])/t,l=(y,g)=>{const x=(y-c)/f,A=Math.floor(x);return cl(g&&A==x?A-1:A,0,t-1)};function d(y,g,x){g>o?o=g:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const A=n(y),C=l(A,!1);i[C]>g&&(i[C]=g),s[C]<x&&(s[C]=x)}function h(y,g,x){g>o?o=g:a||(a=!0,console.debug("Items are not ordered properly. Disabling binned index."));const A=n(y),C=r(y),v=l(A,!1),b=l(C,!0);for(let w=v;w<=b;w++)i[w]>g&&(i[w]=g),s[w]<x&&(s[w]=x)}const p=(y,g,x=[0,0])=>{const A=l(y,!1),C=l(g,!0),v=i[A],b=Math.max(s[C],v);return x[0]=v,x[1]=b,x},m=()=>{for(let g=1;g<s.length;g++)s[g]<s[g-1]&&(s[g]=s[g-1]);let y=!0;for(let g=i.length-1;g>0;g--)y&&i[g]==Nm?(i[g]=s[g],y=!1):i[g-1]>i[g]&&(i[g-1]=i[g]);return p};if(d.getIndex=m,h.getIndex=m,!a)return n==r?d:h}class ro{constructor({encoders:e,numVertices:n=void 0,attributes:r=[]}){this.encoders=e,this.variableEncoders=Object.fromEntries(Object.entries(e).filter(([i,o])=>r.includes(i)&&o&&o.scale&&!o.constant)),this.allocatedVertices=n,this.variableBuilder=new jE(n);for(const[i,o]of Object.entries(this.variableEncoders)){const a=o.accessor,s=[0,0],c=ts(o.scale.type),u=o.indexer,f=u?l=>u(a(l)):c?l=>ol(a(l),s):a;this.variableBuilder.addConverter(i,{f,numComponents:c?2:1,arrayReference:c?s:void 0})}this.lastOffset=0,this.rangeMap=new En([],JSON.stringify)}registerBatch(e){var o;const n=this.lastOffset,r=this.variableBuilder.vertexCount,i=r-n;i&&this.rangeMap.set(e,{offset:n,count:i,xIndex:(o=this.xIndexer)==null?void 0:o.getIndex()}),this.lastOffset=r}addBatches(e){for(const[n,r]of e)this.addBatch(n,r)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.pushFromDatum(a),this.addToXIndex(a)}this.registerBatch(e)}prepareXIndexer(e,n=0,r=n+e.length){const i=()=>{this.addToXIndex=c=>{},this.xIndexer=void 0};if(!e.length||r-n<0){i();return}const o=c=>{var u;return c&&Re((u=c.scale)==null?void 0:u.type)&&c},a=o(this.variableEncoders.x),s=o(this.variableEncoders.x2);if(a){const c=a.accessor,u=s?s.accessor:c,f=[c(e[n]),u(e[r-1])];if(f[1]>f[0]){this.xIndexer=GE(50,f,c,u);let l=this.variableBuilder.vertexCount;this.addToXIndex=d=>{let h=this.variableBuilder.vertexCount;this.xIndexer(d,l,h),l=h}}else i()}else i()}addToXIndex(e){}toArrays(){return{arrays:this.variableBuilder.arrays,vertexCount:this.variableBuilder.vertexCount,allocatedVertices:this.allocatedVertices,rangeMap:this.rangeMap}}}class HE extends ro{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:e,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateFrac=this.variableBuilder.createUpdater("frac",2)}addBatch(e,n,r=0,i=n.length){if(i<=r)return;const o=this.encoders,[a,s]=this.visibleRange,c=d=>d.accessor||(h=>0),u=c(o.x),f=c(o.x2);this.prepareXIndexer(n,r,i);const l=[0,0];this.updateFrac(l);for(let d=r;d<i;d++){const h=n[d];let p=u(h),m=f(h);if(p>m&&([p,m]=[m,p]),m<a||p>s)continue;p<a&&(p=a),m>s&&(m=s),this.variableBuilder.updateFromDatum(h),l[0]=0,l[1]=0;const y=1;this.variableBuilder.pushAll();for(let g=0;g<=y;g++)l[0]=g/y,l[1]=0,this.variableBuilder.pushAll(),l[1]=1,this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(h)}this.registerBatch(e)}}class QE extends ro{constructor({encoders:e,attributes:n,tessellationThreshold:r=1/0,visibleRange:i=[-1/0,1/0],numItems:o}){super({encoders:e,attributes:n,numVertices:r==1/0?o*6:void 0}),this.visibleRange=i,this.tessellationThreshold=r||1/0,this.updateSide=this.variableBuilder.createUpdater("side",1),this.updatePos=this.variableBuilder.createUpdater("pos",1)}addBatch(e,n,r=0,i=n.length){this.prepareXIndexer(n,r,i);for(let o=r;o<i;o++){const a=n[o];this.variableBuilder.updateFromDatum(a),this.updateSide(-.5),this.updatePos(0),this.variableBuilder.pushAll();const s=1;for(let c=0;c<=s;c++)this.updatePos(c/s),this.updateSide(-.5),this.variableBuilder.pushAll(),this.updateSide(.5),this.variableBuilder.pushAll();this.variableBuilder.pushAll(),this.addToXIndex(a)}this.registerBatch(e)}}class VE extends ro{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}}class YE extends ro{constructor({encoders:e,attributes:n,numItems:r=void 0}){super({encoders:e,attributes:n,numVertices:r})}toArrays(){const e=this.variableBuilder.arrays;for(let n of Object.values(e))n.divisor=1;return super.toArrays()}}class _E extends ro{constructor({encoders:e,attributes:n,fontMetrics:r,properties:i,numCharacters:o=void 0}){super({encoders:e,attributes:n,numVertices:o*6}),this.metadata=r,this.metrics=r,this.properties=i;const s=e.text.channelDef;this.numberFormat=!ot(s)&&s.format?le(s.format):c=>c,this.updateVertexCoord=this.variableBuilder.createUpdater("vertexCoord",2),this.updateTextureCoord=this.variableBuilder.createUpdater("textureCoord",2),this.updateWidth=this.variableBuilder.createUpdater("width",1)}addBatch(e,n,r=0,i=n.length){var h;const o=this.properties.align||"left",a=(h=this.properties.logoLetters)!=null?h:!1,s=this.metadata.common.base,c=this.metadata.common.scaleH;let u=-jr;switch(this.properties.baseline){case"top":u+=this.metrics.capHeight;break;case"middle":u+=this.metrics.capHeight/2;break;case"bottom":u-=this.metrics.descent;break}const f=this.encoders.text.accessor||this.encoders.text,l=[0,0];this.updateVertexCoord(l);const d=[0,0];this.updateTextureCoord(d),this.prepareXIndexer(n,r,i);for(let p=r;p<i;p++){const m=n[p],y=this.numberFormat(f(m)),g=ee(y)?y:y===null?"":""+y;if(g.length==0)continue;this.variableBuilder.updateFromDatum(m);const x=a?g.length:this.metrics.measureWidth(g);this.updateWidth(x);let A=o=="right"?-x:o=="center"?-x/2:0;if(!a){const w=this.metrics.getCharByCode(g.charCodeAt(0));A-=(w.width-w.xadvance)/s/2}let C=-.5,v=1,b=1;for(let w=0;w<g.length;w++){const E=this.metrics.getCharByCode(g.charCodeAt(w)),I=a?1:E.xadvance/s;if(E.id==32){A+=I;continue}a?(b=(E.width+jr*2)/E.width,A=-b/2,v=(E.height+jr*2)/E.height,C=-.5-jr/E.height):(v=E.height/s,C=-(E.height+E.yoffset+u)/s,b=E.width/s);const L=E.x,T=E.y;l[0]=A,l[1]=C+v,d[0]=L/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=A+b,l[1]=C+v,d[0]=(L+E.width)/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=A,l[1]=C,d[0]=L/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),l[0]=A+b,l[1]=C+v,d[0]=(L+E.width)/c,d[1]=T/c,this.variableBuilder.pushAll(),l[0]=A,l[1]=C,d[0]=L/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),l[0]=A+b,l[1]=C,d[0]=(L+E.width)/c,d[1]=(T+E.height)/c,this.variableBuilder.pushAll(),A+=I}this.addToXIndex(m)}this.registerBatch(e)}}const Lm=`#define PI 3.141593
201
201
 
202
202
  uniform View {
203
203
  /** Offset in "unit" units */
@@ -260,7 +260,7 @@ vec4 distanceToColor(float d, vec4 fill, vec4 stroke, float halfStrokeWidth) {
260
260
  return fill * distanceToRatio(-d);
261
261
  }
262
262
  }
263
- `,sD=`const float inf = 1.0 / 0.0;
263
+ `,WE=`const float inf = 1.0 / 0.0;
264
264
 
265
265
  // Utils ------------
266
266
 
@@ -372,7 +372,7 @@ float scaleBandHp(vec2 value, vec3 domainExtent, vec2 range,
372
372
 
373
373
  return dot(vec4(start, hi, lo, bandwidth), vec4(1.0, step, step, band));
374
374
  }
375
- `,cD=`
375
+ `,XE=`
376
376
  /**
377
377
  * Describes where a sample facet should be shown. Interpolating between the
378
378
  * current and target positions/heights allows for transitioning between facet
@@ -479,7 +479,7 @@ float getSampleFacetHeight(vec2 pos) {
479
479
  return facetPos.height;
480
480
  }
481
481
  }
482
- `,uD=`/*
482
+ `,ZE=`/*
483
483
  * Based on concepts presented at:
484
484
  * https://webglfundamentals.org/webgl/lessons/webgl-picking.html
485
485
  * https://deck.gl/docs/developer-guide/custom-layers/picking
@@ -506,22 +506,22 @@ bool setupPicking() {
506
506
  }
507
507
  return false;
508
508
  }
509
- `,lD=`flat in highp vec4 vPickingColor;
510
- `,is=Symbol("cacheMap");function Hr(t,e,n){let r=co(t).get(e);return r===void 0&&(r=n(e),co(t).set(e,r)),r}function Rm(t,e){co(t).delete(e)}function so(t,e){const n=co(t);for(const r of n.keys())r.startsWith(e)&&n.delete(r);co(t).delete(e)}function jm(t){t[is]=new Map}function co(t){return t[is]||jm(t),t[is]}function fD(t,e,n,r){const i=ee(t)?t:t.name,o=!ee(t)&&t.extent||[0,1];if(n===void 0&&!ee(t)&&(n=t.count),i){const a=pu(i);if(ke(a)){const s=Gm(a,{extent:o,count:n});return uo(e,{minMag:e.LINEAR,format:e.RGB,height:1,wrap:e.CLAMP_TO_EDGE},s,r)}else{if(Xe(a))return Um(a,e);throw new Error("Unknown scheme: "+i)}}}function dD(t,e="rgb",n,r){const i=Ma(t,ee(e)?e:e.type,ee(e)?void 0:e.gamma),o=Gm(i);return uo(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function hD(t,e,n,r){const i=Math.max(t.length,n||0),o=new Float32Array(i);for(let a=0;a<i;a++)o[a]=t[a%t.length];return uo(e,{minMag:e.NEAREST,format:e.RED,internalFormat:e.R32F,height:1},o,r)}function Um(t,e,n,r){const i=Hm(t,n);return uo(e,{minMag:e.NEAREST,format:e.RGB,height:1},i,r)}function Gm(t,{extent:e=[0,1],reverse:n=!1,count:r=256}={}){const i=e[0],o=Ue(e)-i,a=Yt(r).map(s=>s/(r-1)).map(s=>i+s/o).map(t);return n&&a.reverse(),Hm(a)}function Hm(t,e){const n=Math.max(t.length,e||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=Bn(t[i%t.length]).rgb();r[i*3+0]=o.r,r[i*3+1]=o.g,r[i*3+2]=o.b}return r}class pD{constructor(e,n){this._container=e,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const r=document.createElement("canvas");e.appendChild(r);const i=QS(r,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!i)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!Lr(i))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");Nm(i),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),this.canvas=r,this.gl=i,this._pickingAttachmentOptions=[{format:i.RGBA,type:i.UNSIGNED_BYTE,minMag:i.LINEAR,wrap:i.CLAMP_TO_EDGE}],this._pickingBufferInfo=zS(i,this._pickingAttachmentOptions),i.bindFramebuffer(i.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(o=>{this.invalidateSize(),this._emit("resize")}),this._resizeObserver.observe(this._container),this._updateDpr()}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(e,n){const r="#version 300 es",i="precision mediump float;";Xe(n)&&(n=n.join(`
509
+ `,qE=`flat in highp vec4 vPickingColor;
510
+ `,ns=Symbol("cacheMap");function Ur(t,e,n){let r=oo(t).get(e);return r===void 0&&(r=n(e),oo(t).set(e,r)),r}function Bm(t,e){oo(t).delete(e)}function io(t,e){const n=oo(t);for(const r of n.keys())r.startsWith(e)&&n.delete(r);oo(t).delete(e)}function Om(t){t[ns]=new Map}function oo(t){return t[ns]||Om(t),t[ns]}function KE(t,e,n,r){const i=ee(t)?t:t.name,o=!ee(t)&&t.extent||[0,1];if(n===void 0&&!ee(t)&&(n=t.count),i){const a=hu(i);if(ke(a)){const s=Fm(a,{extent:o,count:n});return ao(e,{minMag:e.LINEAR,format:e.RGB,height:1,wrap:e.CLAMP_TO_EDGE},s,r)}else{if(We(a))return Pm(a,e);throw new Error("Unknown scheme: "+i)}}}function JE(t,e="rgb",n,r){const i=Ea(t,ee(e)?e:e.type,ee(e)?void 0:e.gamma),o=Fm(i);return ao(n,{minMag:n.LINEAR,format:n.RGB,height:1,wrap:n.CLAMP_TO_EDGE},o,r)}function $E(t,e,n,r){const i=Math.max(t.length,n||0),o=new Float32Array(i);for(let a=0;a<i;a++)o[a]=t[a%t.length];return ao(e,{minMag:e.NEAREST,format:e.RED,internalFormat:e.R32F,height:1},o,r)}function Pm(t,e,n,r){const i=zm(t,n);return ao(e,{minMag:e.NEAREST,format:e.RGB,height:1},i,r)}function Fm(t,{extent:e=[0,1],reverse:n=!1,count:r=256}={}){const i=e[0],o=je(e)-i,a=Yt(r).map(s=>s/(r-1)).map(s=>i+s/o).map(t);return n&&a.reverse(),zm(a)}function zm(t,e){const n=Math.max(t.length,e||0),r=new Uint8Array(n*3);for(let i=0;i<n;i++){const o=Bn(t[i%t.length]).rgb();r[i*3+0]=o.r,r[i*3+1]=o.g,r[i*3+2]=o.b}return r}class eD{constructor(e,n){this._container=e,this._sizeSource=n,this._shaderCache=new Map,this._listeners=[],this.rangeTextures=new WeakMap;const r=document.createElement("canvas");e.appendChild(r);const i=IE(r,{antialias:!0,depth:!1,premultipliedAlpha:!0});if(!i)throw new Error("Unable to initialize WebGL. Your browser or machine may not support it.");if(!kr(i))throw new Error("Your web browser does not support WebGL 2.0. Chrome, Firefox, and Safari Tech Preview should work.");Em(i),i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA),this.canvas=r,this.gl=i,this._pickingAttachmentOptions=[{format:i.RGBA,type:i.UNSIGNED_BYTE,minMag:i.LINEAR,wrap:i.CLAMP_TO_EDGE}],this._pickingBufferInfo=CE(i,this._pickingAttachmentOptions),i.bindFramebuffer(i.FRAMEBUFFER,null),this.adjustGl(),this._resizeObserver=new ResizeObserver(o=>{this.invalidateSize(),this._emit("resize")}),this._resizeObserver.observe(this._container),this._updateDpr()}invalidateSize(){this._logicalCanvasSize=void 0,this._updateDpr(),this.adjustGl()}_updateDpr(){this.dpr=window.devicePixelRatio}compileShader(e,n){const r="#version 300 es",i="precision mediump float;";We(n)&&(n=n.join(`
511
511
 
512
512
  `));const o=this.gl,a=n.replaceAll(/ {2,}|^\s*\/\/.*$/gm,"");let s=this._shaderCache.get(a);if(!s){const c=[r,i,n].join(`
513
513
 
514
- `);s=o.createShader(e),o.shaderSource(s,c),o.compileShader(s),this._shaderCache.set(a,s)}return s}adjustGl(){const e=this.getLogicalCanvasSize();this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`;const n=this.getPhysicalCanvasSize(e);this.canvas.width=n.width,this.canvas.height=n.height,RS(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(e){return e=e||this.getLogicalCanvasSize(),{width:e.width*this.dpr,height:e.height*this.dpr}}getLogicalCanvasSize(){var o,a,s,c;if(this._logicalCanvasSize)return this._logicalCanvasSize;const e=(a=(o=this._sizeSource)==null?void 0:o.call(this))!=null?a:{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=(s=e.width)!=null?s:this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=(c=e.height)!=null?c:this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(e,n){this._listeners.push({type:e,listener:n})}_emit(e){for(const n of this._listeners)n.type===e&&n.listener()}readPickingPixel(e,n){const r=this.gl;e*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,o=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(e,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,o),r.bindFramebuffer(r.FRAMEBUFFER,null),o}clearAll(){const e=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();e.viewport(0,0,n,r),e.disable(e.SCISSOR_TEST),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)}createRangeTexture(e,n=!1){const r=this.rangeTextures.get(e);if(!n&&r)return;function i(a,s){return tn(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?a!=null?a:4:a}const o=e.channel;if(Yn(o)){const a=e.getScaleProps(),s=e.getScale();let c;if(a.scheme){let u=ee(a.scheme)?void 0:a.scheme.count;u=i(u,s),c=fD(a.scheme,this.gl,u,r)}else{const u=s.range();Da(s.type)?c=dD(u,a.interpolate,this.gl,r):c=Um(u,this.gl,s.domain().length,r)}this.rangeTextures.set(e,c)}else{const a=e.getScale();if(a.type==="ordinal"||Dr(a.type)){const s=Fa(o)?gp(o):u=>u,c=e.getScale().range();this.rangeTextures.set(e,hD(c.map(s),this.gl,a.domain().length,r))}}}}function mD(t,e="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...e.matchAll(r)],o=new Map(i.map((a,s)=>{const c=parseInt(a[1]),u=i[s+1],f=u?u.index:e.length,l=e.substring(a.index,f);return[c-1,l]}));return t.split(`
514
+ `);s=o.createShader(e),o.shaderSource(s,c),o.compileShader(s),this._shaderCache.set(a,s)}return s}adjustGl(){const e=this.getLogicalCanvasSize();this.canvas.style.width=`${e.width}px`,this.canvas.style.height=`${e.height}px`;const n=this.getPhysicalCanvasSize(e);this.canvas.width=n.width,this.canvas.height=n.height,SE(this.gl,this._pickingBufferInfo,this._pickingAttachmentOptions)}finalize(){this._resizeObserver.unobserve(this._container),this.canvas.remove()}getPhysicalCanvasSize(e){return e=e||this.getLogicalCanvasSize(),{width:e.width*this.dpr,height:e.height*this.dpr}}getLogicalCanvasSize(){var o,a,s,c;if(this._logicalCanvasSize)return this._logicalCanvasSize;const e=(a=(o=this._sizeSource)==null?void 0:o.call(this))!=null?a:{width:void 0,height:void 0},n=window.getComputedStyle(this._container,null),r=(s=e.width)!=null?s:this._container.clientWidth-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight),i=(c=e.height)!=null?c:this._container.clientHeight-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom);return this._logicalCanvasSize={width:r,height:i},this._logicalCanvasSize}addEventListener(e,n){this._listeners.push({type:e,listener:n})}_emit(e){for(const n of this._listeners)n.type===e&&n.listener()}readPickingPixel(e,n){const r=this.gl;e*=this.dpr,n*=this.dpr;const i=this.getPhysicalCanvasSize().height,o=new Uint8Array(4);return r.bindFramebuffer(r.FRAMEBUFFER,this._pickingBufferInfo.framebuffer),r.readPixels(e,i-n-1,1,1,r.RGBA,r.UNSIGNED_BYTE,o),r.bindFramebuffer(r.FRAMEBUFFER,null),o}clearAll(){const e=this.gl,{width:n,height:r}=this.getPhysicalCanvasSize();e.viewport(0,0,n,r),e.disable(e.SCISSOR_TEST),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)}createRangeTexture(e,n=!1){const r=this.rangeTextures.get(e);if(!n&&r)return;function i(a,s){return tn(s.type)?s.domain().length:s.type=="threshold"?s.domain().length+1:s.type=="quantize"||s.type=="quantile"?a!=null?a:4:a}const o=e.channel;if(Vn(o)){const a=e.getScaleProps(),s=e.getScale();let c;if(a.scheme){let u=ee(a.scheme)?void 0:a.scheme.count;u=i(u,s),c=KE(a.scheme,this.gl,u,r)}else{const u=s.range();Sa(s.type)?c=JE(u,a.interpolate,this.gl,r):c=Pm(u,this.gl,s.domain().length,r)}this.rangeTextures.set(e,c)}else{const a=e.getScale();if(a.type==="ordinal"||Sr(a.type)){const s=Ba(o)?fp(o):u=>u,c=e.getScale().range();this.rangeTextures.set(e,$E(c.map(s),this.gl,a.domain().length,r))}}}}function tD(t,e="",n=0){const r=/ERROR:\s*\d+:(\d+)/gi,i=[...e.matchAll(r)],o=new Map(i.map((a,s)=>{const c=parseInt(a[1]),u=i[s+1],f=u?u.index:e.length,l=e.substring(a.index,f);return[c-1,l]}));return t.split(`
515
515
  `).map((a,s)=>{const c=o.get(s);return`${s+1+n}: ${a}${c?`
516
516
 
517
517
  ^^^ ${c}`:""}`}).join(`
518
- `)}function gD(t,e,n){const r=t.createProgram();t.attachShader(r,e),t.attachShader(r,n),t.linkProgram(r);function i(){let o,a;if(!t.getProgramParameter(r,t.LINK_STATUS)){o=t.getProgramInfoLog(r);for(const c of[e,n])t.getShaderParameter(c,t.COMPILE_STATUS)||(o=t.getShaderInfoLog(c),a=mD(t.getShaderSource(c),o,0)+`
519
- Error compiling: ${o}`,t.deleteShader(c));t.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function uo(t,e,n,r){return r?_p(t,r,n,e):r=io(t,{...e,src:n}),r}function yD(...t){const e={get(n,r,i){for(const o of t){const s=o()[r];if(s!==void 0)return s}},has(n,r,i){for(const o of t){const a=o();if(r in a)return!0}return!1}};return new Proxy({},e)}function vD(t){return ee(t)||ce(t)||Xo(t)}const bD="SAMPLE_FACET_UNIFORM",Qm="SAMPLE_FACET_TEXTURE";class lo{constructor(e){this.unitView=e,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.rangeMap=new AD,this.defaultProperties={get clip(){return["x","y"].map(n=>e.getScaleResolution(n)).some(n=>{var r;return(r=n==null?void 0:n.isZoomable())!=null?r:!1})},xOffset:0,yOffset:0,minBufferSize:0},this.properties=yD(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const e={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(e.uniqueId={field:"_uniqueId"}),e}fixEncoding(e){return e}get encoding(){return Hr(this,"encoding",()=>{const e=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=a=>{const s=this.properties[a];return vD(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(a=>[a,r(a)]).filter(a=>a[1].value!==void 0)),o=this.fixEncoding({...e,...i,...n});for(const a of Object.keys(o))this.getSupportedChannels().includes(a)||delete o[a];return o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=Z4(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Qm;if(this.unitView.getFacetAccessor())return bD}createAndLinkShaders(e,n,r=[]){const i=this.getAttributes();r.push("// view: "+this.unitView.getPathString()),this.domainUniforms=[];let o=[];const a=this.getSampleFacetMode();a&&r.push(`#define ${a}`);for(const d of i){let h;if(d in this.encoding)h=d;else continue;const p=this.encoding[h];if(!!p)if(at(p))o.push(XS(h,p.value));else{const m=Je(p)&&p.resolutionChannel||h,y=this.unitView.getScaleResolution(m).getScale(),g=ZS(h,y,p);o.push(g.glsl),g.domainUniform&&this.domainUniforms.push(g.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
518
+ `)}function nD(t,e,n){const r=t.createProgram();t.attachShader(r,e),t.attachShader(r,n),t.linkProgram(r);function i(){let o,a;if(!t.getProgramParameter(r,t.LINK_STATUS)){o=t.getProgramInfoLog(r);for(const c of[e,n])t.getShaderParameter(c,t.COMPILE_STATUS)||(o=t.getShaderInfoLog(c),a=tD(t.getShaderSource(c),o,0)+`
519
+ Error compiling: ${o}`,t.deleteShader(c));t.deleteProgram(r)}if(o)return{message:o,detail:a}}return{program:r,getProgramErrors:i}}function ao(t,e,n,r){return r?Gp(t,r,n,e):r=to(t,{...e,src:n}),r}function rD(...t){const e={get(n,r,i){for(const o of t){const s=o()[r];if(s!==void 0)return s}},has(n,r,i){for(const o of t){const a=o();if(r in a)return!0}return!1}};return new Proxy({},e)}function iD(t){return ee(t)||ce(t)||_o(t)}const oD="SAMPLE_FACET_UNIFORM",Rm="SAMPLE_FACET_TEXTURE";class so{constructor(e){this.unitView=e,this.encoders=void 0,this.bufferInfo=void 0,this.programInfo=void 0,this.vertexArrayInfo=void 0,this.domainUniformInfo=void 0,this.viewUniformInfo=void 0,this.rangeMap=new aD,this.defaultProperties={get clip(){return["x","y"].map(n=>e.getScaleResolution(n)).some(n=>{var r;return(r=n==null?void 0:n.isZoomable())!=null?r:!1})},xOffset:0,yOffset:0,minBufferSize:0},this.properties=rD(typeof this.unitView.spec.mark=="object"?()=>this.unitView.spec.mark:()=>({}),()=>this.defaultProperties)}get opaque(){return!1}getAttributes(){throw new Error("Not implemented!")}getSupportedChannels(){return["sample","facetIndex","x","y","color","opacity","search","uniqueId"]}getDefaultEncoding(){const e={sample:void 0,uniqueId:void 0};return this.isPickingParticipant()&&(e.uniqueId={field:"_uniqueId"}),e}fixEncoding(e){return e}get encoding(){return Ur(this,"encoding",()=>{const e=this.getDefaultEncoding(),n=this.unitView.getEncoding(),r=a=>{const s=this.properties[a];return iD(s)&&{value:s}},i=Object.fromEntries(this.getSupportedChannels().map(a=>[a,r(a)]).filter(a=>a[1].value!==void 0)),o=this.fixEncoding({...e,...i,...n});for(const a of Object.keys(o))this.getSupportedChannels().includes(a)||delete o[a];return o})}getContext(){return this.unitView.context}getType(){return this.unitView.getMarkType()}initializeData(){}initializeEncoders(){this.encoders=P4(this)}async initializeGraphics(){}updateGraphicsData(){}getSampleFacetMode(){if(this.encoders.facetIndex)return Rm;if(this.unitView.getFacetAccessor())return oD}createAndLinkShaders(e,n,r=[]){const i=this.getAttributes();r.push("// view: "+this.unitView.getPathString()),this.domainUniforms=[];let o=[];const a=this.getSampleFacetMode();a&&r.push(`#define ${a}`);for(const d of i){let h;if(d in this.encoding)h=d;else continue;const p=this.encoding[h];if(!!p)if(ot(p))o.push(OE(h,p.value));else{const m=Ke(p)&&p.resolutionChannel||h,y=this.unitView.getScaleResolution(m).getScale(),g=PE(h,y,p);o.push(g.glsl),g.domainUniform&&this.domainUniforms.push(g.domainUniform)}}const s=this.domainUniforms.length?`layout(std140) uniform Domains {
520
520
  `+this.domainUniforms.map(d=>` ${d}
521
521
  `).join("")+`};
522
522
 
523
523
  `:"",u=[`precision highp float;
524
- `,...r,zm,sD,s,...o,cD,uD,e],f=[...r,zm,lD,n],l=this.gl;this.programStatus=gD(l,this.glHelper.compileShader(l.VERTEX_SHADER,u),this.glHelper.compileShader(l.FRAGMENT_SHADER,f))}finalizeGraphicsInitialization(){const e=this.programStatus.getProgramErrors();if(e){e.detail&&console.warn(e.detail);const n=new Error("Cannot create shader program: "+e.message);throw n.view=this.unitView,n}this.programInfo=AS(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=bm(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=bm(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Ge(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[e,n]of Object.entries(this.encoding))if(Zi(n)){const r=this.encoders[e],i=r.indexer?r.indexer(n.datum):rs(r.scale.type)?al(+n.datum):+n.datum;Ge(this.programInfo,{[rl+e]:i})}}deleteGraphicsData(){if(this.bufferInfo){const e=this.gl;for(let n=0;n<8;n++)e.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(e){if(this.gl.bindVertexArray(null),this.bufferInfo&&e.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(e.arrays))r.data&&L3(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=F3(this.gl,e.arrays,{numElements:e.vertexCount}),this.bufferInfo.allocatedVertices=e.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const e of this.unitView.getAncestors())if(!e.isPickingSupported())return!1;return!0}prepareRender(e){var a;const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=jS(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[s,c]of Object.entries(this.domainUniformInfo.setters)){const u=s.substring(km.length),f=this.encoding[u],l=Je(f)&&f.resolutionChannel||u,d=this.unitView.getScaleResolution(l);if(d){const h=d.getScale();i.push(()=>{const p=tn(h.type)?[0,h.domain().length]:h.domain();c(rs(h.type)?JS(p):p)})}}i.push(()=>Am(r,this.programInfo,this.domainUniformInfo))}for(const[s,c]of Object.entries(this.encoding))if(Je(c)){const u=Je(c)&&c.resolutionChannel||s,f=this.unitView.getScaleResolution(u),l=n.rangeTextures.get(f);l&&i.push(()=>Ge(this.programInfo,{[il+s]:l}))}this.getSampleFacetMode()==Qm&&i.push(()=>{let s;for(const c of this.unitView.getAncestors())if(s=c.getSampleFacetTexture(),s)break;if(!s)throw new Error("No facet texture available. This is bug.");Ge(this.programInfo,{uSampleFacetTexture:s})});const o=((a=e.picking)!=null?a:!1)&&this.isPickingParticipant();return i.push(()=>wm(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:o})),this.opaque||e.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(e){const n=e.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,o=n.locSize?n.locSize.size:1;if(i>1||i+o<0)return!1;const a=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:o;this.gl.uniform4f(r.location,i,o,a,s)}return!0}render(e){}createRenderCallback(e,n){var f;const r=this;let i;const o=(f=this.unitView.getScaleResolution("x"))==null?void 0:f.getScale(),a=o&&je(o.type),s=["index","locus"].includes(o==null?void 0:o.type)?-1:0,c=[0,0];i=l=>{if(a&&l.xIndex){const d=o.domain(),h=l.xIndex(d[0]+s,d[1],c),p=h[0],m=h[1]-p;m>0&&e(p,m)}else e(l.offset,l.count)};const u=this.rangeMap.get(n.facetId);return n.sampleFacetRenderingOptions?function(){u.count&&r.prepareSampleFacetRendering(n)&&i(u)}:function(){u.count&&i(u)}}setViewport(e,n){const r=this.glHelper.dpr,i=this.gl,o=this.properties,a=this.glHelper.getLogicalCanvasSize(),s=.5,c=(o.xOffset||0)+s,u=(o.yOffset||0)+s;let f,l=e;if(o.clip||n){let d=0,h=0,p;n?(l=o.clip?e.intersect(n):n,p=[e.width/l.width,e.height/l.height],h=Math.max(0,e.y2-n.y2),d=Math.max(0,e.x2-n.x2)):p=[1,1];const m=[e.x,a.height-l.y2,Math.max(0,l.width),Math.max(0,l.height)].map(w=>w*r),y=m.map(w=>Math.floor(w)),[g,A]=m.map((w,C)=>w-y[C]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(c+d+g)/l.width,-(u+h-A)/l.height],uViewScale:p}}else i.viewport(0,0,a.width*r,a.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(e.x+c)/a.width,(a.height-e.y-u-e.height)/a.height],uViewScale:[e.width/a.width,e.height/a.height]};return wm(this.viewUniformInfo,{...f,uViewportSize:[e.width,e.height],uDevicePixelRatio:this.glHelper.dpr}),Am(this.gl,this.programInfo,this.viewUniformInfo),l.height>0&&l.width>0}findDatumAt(e,n){}}class AD extends Dn{constructor(){super([],JSON.stringify)}get(e){let n=super.get(e);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(e,n)),n}migrateEntries(e){for(const[n,r]of e.entries())Object.assign(this.get(n),r)}}function ll(t,e){var o;const n=$4(e);let r=t[e]&&{...t[e]},i=t[n]&&{...t[n]};if(!(at(r)||at(i))){if(r){if(!Je(t[e]))return;if(i){if(r.type!="quantitative"){const a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-((o=r.band)!=null?o:1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};t[e]=r,t[n]=i}}function Vm(t,e){t.stroke||(e?t.stroke={value:null}:t.stroke={resolutionChannel:"color",...t.color}),at(t.stroke)&&t.stroke.value===null&&(t.strokeWidth={value:0}),t.strokeOpacity||(t.strokeOpacity={resolutionChannel:"opacity",...t.opacity})}function Ym(t,e){at(t.fill)&&t.fill.value===null?t.fillOpacity={value:0}:t.fill||(t.fill={resolutionChannel:"color",...t.color},!e&&!t.fillOpacity&&(t.fillOpacity={value:0})),t.fillOpacity||(e?t.fillOpacity={resolutionChannel:"opacity",...t.opacity}:t.fillOpacity={value:0})}class wD extends lo{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return Hr(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&at(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(e){return ll(e,"x"),ll(e,"y"),Vm(e,this.properties.filled),Ym(e,this.properties.filled),delete e.color,delete e.opacity,e}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){return["","TopLeft","TopRight","BottomLeft","BottomRight"].map(e=>"cornerRadius"+e).some(e=>this.properties[e]>0)}_isStroked(){const e=this.encoding.strokeWidth;return!(at(e)&&!e.value)}async initializeGraphics(){await super.initializeGraphics();const e=[];this._isRoundedCorners()&&e.push("ROUNDED_CORNERS"),this._isStroked()&&e.push("STROKED"),this.createAndLinkShaders(VS,YS,e.map(n=>"#define "+n))}finalizeGraphicsInitialization(){var n,r,i,o;super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ge(this.programInfo,{uMinSize:[e.minWidth,e.minHeight],uMinOpacity:e.minOpacity,uCornerRadii:[(n=e.cornerRadiusTopRight)!=null?n:e.cornerRadius,(r=e.cornerRadiusBottomRight)!=null?r:e.cornerRadius,(i=e.cornerRadiusTopLeft)!=null?i:e.cornerRadius,(o=e.cornerRadiusBottomLeft)!=null?o:e.cornerRadius]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new nD({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>Ur(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{oo(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},e)}findDatumAt(e,n){e=Ke(e);const r=this.encoders,i=this.unitView.getCollector().facetBatches.get(e),o=r.x.accessor,a=r.x2.accessor;if(i)return i.find(s=>n>=o(s)&&n<a(s))}}const xD=`/**
524
+ `,...r,Lm,WE,s,...o,XE,ZE,e],f=[...r,Lm,qE,n],l=this.gl;this.programStatus=nD(l,this.glHelper.compileShader(l.VERTEX_SHADER,u),this.glHelper.compileShader(l.FRAGMENT_SHADER,f))}finalizeGraphicsInitialization(){const e=this.programStatus.getProgramErrors();if(e){e.detail&&console.warn(e.detail);const n=new Error("Cannot create shader program: "+e.message);throw n.view=this.unitView,n}this.programInfo=aE(this.gl,this.programStatus.program),delete this.programStatus,this.domainUniforms.length&&(this.domainUniformInfo=pm(this.gl,this.programInfo,"Domains")),this.viewUniformInfo=pm(this.gl,this.programInfo,"View"),this.gl.useProgram(this.programInfo.program),this._setDatums(),Ue(this.programInfo,{uSampleFacet:[0,1,0,1],uTransitionOffset:0})}_setDatums(){for(const[e,n]of Object.entries(this.encoding))if(_i(n)){const r=this.encoders[e],i=r.indexer?r.indexer(n.datum):ts(r.scale.type)?ol(+n.datum):+n.datum;Ue(this.programInfo,{[nl+e]:i})}}deleteGraphicsData(){if(this.bufferInfo){const e=this.gl;for(let n=0;n<8;n++)e.disableVertexAttribArray(n);Object.values(this.bufferInfo.attribs).forEach(n=>this.gl.deleteBuffer(n.buffer)),this.bufferInfo.indices&&this.gl.deleteBuffer(this.bufferInfo.indices),this.bufferInfo=void 0}}updateBufferInfo(e){if(this.gl.bindVertexArray(null),this.bufferInfo&&e.vertexCount<=this.bufferInfo.allocatedVertices)for(const[n,r]of Object.entries(e.arrays))r.data&&b3(this.gl,this.bufferInfo.attribs[n],r.data,0);else this.deleteGraphicsData(),this.bufferInfo=x3(this.gl,e.arrays,{numElements:e.vertexCount}),this.bufferInfo.allocatedVertices=e.allocatedVertices,this.vertexArrayInfo=void 0}get glHelper(){return this.getContext().glHelper}get gl(){return this.glHelper.gl}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}isReady(){return this.bufferInfo&&this.programInfo}isPickingParticipant(){if(this.properties.tooltip===null)return!1;for(const e of this.unitView.getAncestors())if(!e.isPickingSupported())return!1;return!0}prepareRender(e){var a;const n=this.glHelper,r=this.gl,i=[];if(i.push(()=>{this.vertexArrayInfo||(this.vertexArrayInfo=EE(this.gl,this.programInfo,this.bufferInfo)),r.useProgram(this.programInfo.program)}),this.domainUniformInfo){for(const[s,c]of Object.entries(this.domainUniformInfo.setters)){const u=s.substring(Dm.length),f=this.encoding[u],l=Ke(f)&&f.resolutionChannel||u,d=this.unitView.getScaleResolution(l);if(d){const h=d.getScale();i.push(()=>{const p=tn(h.type)?[0,h.domain().length]:h.domain();c(ts(h.type)?RE(p):p)})}}i.push(()=>mm(r,this.programInfo,this.domainUniformInfo))}for(const[s,c]of Object.entries(this.encoding))if(Ke(c)){const u=Ke(c)&&c.resolutionChannel||s,f=this.unitView.getScaleResolution(u),l=n.rangeTextures.get(f);l&&i.push(()=>Ue(this.programInfo,{[rl+s]:l}))}this.getSampleFacetMode()==Rm&&i.push(()=>{let s;for(const c of this.unitView.getAncestors())if(s=c.getSampleFacetTexture(),s)break;if(!s)throw new Error("No facet texture available. This is bug.");Ue(this.programInfo,{uSampleFacetTexture:s})});const o=((a=e.picking)!=null?a:!1)&&this.isPickingParticipant();return i.push(()=>gm(this.viewUniformInfo,{uViewOpacity:this.unitView.getEffectiveOpacity(),uPickingEnabled:o})),this.opaque||e.picking?i.push(()=>r.disable(r.BLEND)):i.push(()=>r.enable(r.BLEND)),i}prepareSampleFacetRendering(e){const n=e.sampleFacetRenderingOptions,r=this.programInfo.uniformSetters.uSampleFacet;if(n&&r){const i=n.locSize?n.locSize.location:0,o=n.locSize?n.locSize.size:1;if(i>1||i+o<0)return!1;const a=n.targetLocSize?n.targetLocSize.location:i,s=n.targetLocSize?n.targetLocSize.size:o;this.gl.uniform4f(r.location,i,o,a,s)}return!0}render(e){}createRenderCallback(e,n){var f;const r=this;let i;const o=(f=this.unitView.getScaleResolution("x"))==null?void 0:f.getScale(),a=o&&Re(o.type),s=["index","locus"].includes(o==null?void 0:o.type)?-1:0,c=[0,0];i=l=>{if(a&&l.xIndex){const d=o.domain(),h=l.xIndex(d[0]+s,d[1],c),p=h[0],m=h[1]-p;m>0&&e(p,m)}else e(l.offset,l.count)};const u=this.rangeMap.get(n.facetId);return n.sampleFacetRenderingOptions?function(){u.count&&r.prepareSampleFacetRendering(n)&&i(u)}:function(){u.count&&i(u)}}setViewport(e,n){const r=this.glHelper.dpr,i=this.gl,o=this.properties,a=this.glHelper.getLogicalCanvasSize(),s=.5,c=(o.xOffset||0)+s,u=(o.yOffset||0)+s;let f,l=e;if(o.clip||n){let d=0,h=0,p;n?(l=o.clip?e.intersect(n):n,p=[e.width/l.width,e.height/l.height],h=Math.max(0,e.y2-n.y2),d=Math.max(0,e.x2-n.x2)):p=[1,1];const m=[e.x,a.height-l.y2,Math.max(0,l.width),Math.max(0,l.height)].map(A=>A*r),y=m.map(A=>Math.floor(A)),[g,x]=m.map((A,C)=>A-y[C]);i.viewport(...y),i.scissor(...y),i.enable(i.SCISSOR_TEST),f={uViewOffset:[(c+d+g)/l.width,-(u+h-x)/l.height],uViewScale:p}}else i.viewport(0,0,a.width*r,a.height*r),i.disable(i.SCISSOR_TEST),f={uViewOffset:[(e.x+c)/a.width,(a.height-e.y-u-e.height)/a.height],uViewScale:[e.width/a.width,e.height/a.height]};return gm(this.viewUniformInfo,{...f,uViewportSize:[e.width,e.height],uDevicePixelRatio:this.glHelper.dpr}),mm(this.gl,this.programInfo,this.viewUniformInfo),l.height>0&&l.width>0}findDatumAt(e,n){}}class aD extends En{constructor(){super([],JSON.stringify)}get(e){let n=super.get(e);return n===void 0&&(n={offset:0,count:0,xIndex:void 0},super.set(e,n)),n}migrateEntries(e){for(const[n,r]of e.entries())Object.assign(this.get(n),r)}}function ul(t,e){var o;const n=j4(e);let r=t[e]&&{...t[e]},i=t[n]&&{...t[n]};if(!(ot(r)||ot(i))){if(r){if(!Ke(t[e]))return;if(i){if(r.type!="quantitative"){const a=(1-(r.band||1))/2;r.band=a,i.band=-a}}else if(r.type=="quantitative")i={datum:0};else{i={...r};const a=(1-((o=r.band)!=null?o:1))/2;r.band=0+a,i.band=1-a}}else r={value:0},i={value:1};t[e]=r,t[n]=i}}function jm(t,e){t.stroke||(e?t.stroke={value:null}:t.stroke={resolutionChannel:"color",...t.color}),ot(t.stroke)&&t.stroke.value===null&&(t.strokeWidth={value:0}),t.strokeOpacity||(t.strokeOpacity={resolutionChannel:"opacity",...t.opacity})}function Um(t,e){ot(t.fill)&&t.fill.value===null?t.fillOpacity={value:0}:t.fill||(t.fill={resolutionChannel:"color",...t.color},!e&&!t.fillOpacity&&(t.fillOpacity={value:0})),t.fillOpacity||(e?t.fillOpacity={resolutionChannel:"opacity",...t.opacity}:t.fillOpacity={value:0})}class sD extends so{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,filled:!0,color:"#4c78a8",opacity:1,strokeWidth:3,cornerRadius:0,minWidth:.5,minHeight:.5,minOpacity:1,tessellationZoomThreshold:10,tessellationTiles:35}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","fill","stroke","fillOpacity","strokeOpacity","strokeWidth"]}get opaque(){return Ur(this,"opaque",()=>!this._isRoundedCorners()&&!this._isStroked()&&ot(this.encoding.fillOpacity)&&this.encoding.fillOpacity.value==1&&this.properties.minOpacity==1)&&this.unitView.getEffectiveOpacity()==1}fixEncoding(e){return ul(e,"x"),ul(e,"y"),jm(e,this.properties.filled),Um(e,this.properties.filled),delete e.color,delete e.opacity,e}onBeforeSampleAnimation(){}onAfterSampleAnimation(){}_isRoundedCorners(){return["","TopLeft","TopRight","BottomLeft","BottomRight"].map(e=>"cornerRadius"+e).some(e=>this.properties[e]>0)}_isStroked(){const e=this.encoding.strokeWidth;return!(ot(e)&&!e.value)}async initializeGraphics(){await super.initializeGraphics();const e=[];this._isRoundedCorners()&&e.push("ROUNDED_CORNERS"),this._isStroked()&&e.push("STROKED"),this.createAndLinkShaders(kE,NE,e.map(n=>"#define "+n))}finalizeGraphicsInitialization(){var n,r,i,o;super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uMinSize:[e.minWidth,e.minHeight],uMinOpacity:e.minOpacity,uCornerRadii:[(n=e.cornerRadiusTopRight)!=null?n:e.cornerRadius,(r=e.cornerRadiusBottomRight)!=null?r:e.cornerRadius,(i=e.cornerRadiusTopLeft)!=null?i:e.cornerRadius,(o=e.cornerRadiusBottomLeft)!=null?o:e.cornerRadius]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new HE({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{no(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r)},e)}findDatumAt(e,n){e=qe(e);const r=this.encoders,i=this.unitView.getCollector().facetBatches.get(e),o=r.x.accessor,a=r.x2.accessor;if(i)return i.find(s=>n>=o(s)&&n<a(s))}}const cD=`/**
525
525
  * The stroke should only grow inwards, e.g, the diameter/outline is not affected by the stroke width.
526
526
  * Thus, a point that has a zero size has no visible stroke. This allows strokes to be used with
527
527
  * geometric zoom, etc.
@@ -650,7 +650,7 @@ void main(void) {
650
650
 
651
651
  setupPicking();
652
652
  }
653
- `,CD=`const lowp vec4 white = vec4(1.0);
653
+ `,uD=`const lowp vec4 white = vec4(1.0);
654
654
  const lowp vec4 black = vec4(0.0, 0.0, 0.0, 1.0);
655
655
 
656
656
  uniform bool uInwardStroke;
@@ -773,10 +773,10 @@ void main() {
773
773
  }
774
774
  }
775
775
 
776
- `,Nt=1<<0,fn=1<<1,ED={};class se{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const e of this.children)e.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",Yt(this.children.length).map(e=>`const child${e} = children[${e}];`).join(`
776
+ `,kt=1<<0,fn=1<<1,lD={};class se{get behavior(){return 0}constructor(){this.children=[],this.parent=void 0,this.completed=!1}reset(){this.completed=!1;for(const e of this.children)e.reset()}initialize(){}_updatePropagator(){this._propagate=Function("children",Yt(this.children.length).map(e=>`const child${e} = children[${e}];`).join(`
777
777
  `)+`return function propagate(datum) {${Yt(this.children.length).map(e=>`child${e}.handle(datum);`).join(`
778
778
  `)}}`)(this.children)}setParent(e){this.parent=e}addChild(e){if(e.parent)throw new Error("Cannot add the child! It already has a parent.");return this.children.push(e),e.setParent(this),this._updatePropagator(),this}adopt(e){e.parent&&e.parent.removeChild(e),this.addChild(e)}adoptChildrenOf(e){for(const n of e.children)this.adopt(n)}insertAsParent(e){if(this.isRoot())throw new Error("Cannot insert a new parent for a root node!");e.parent=this.parent,this.parent.children[this.parent.children.indexOf(this)]=e,this.parent._updatePropagator(),this.parent=void 0,e.addChild(this)}removeChild(e){const n=this.children.indexOf(e);if(n>-1)this.children.splice(n,1),e.parent=void 0,this._updatePropagator();else throw new Error("Trying to remove an unknown child node!")}excise(){if(this.isRoot())throw new Error("Cannot excise root node!");if(this.isTerminal())this.parent.removeChild(this);else if(this.children.length==1){const e=this.children[0];e.setParent(this.parent),this.parent.children[this.parent.children.indexOf(this)]=e,this.parent._updatePropagator(),this.setParent(void 0),this.children.length=0}else throw new Error("Cannot excise a node that has multiple children!")}isRoot(){return!this.parent}isBranching(){return this.children.length>1}isTerminal(){return this.children.length==0}visit(e){e(this);for(const n of this.children)n.visit(e);e.afterChildren&&e.afterChildren(this)}subtreeToString(e=0){var r;const n=this.children.map(i=>i.subtreeToString(e+1)).join("");return" ".repeat(e*2)+"* "+((r=/^class ([A-Za-z0-9_]+)/.exec(""+this.constructor))==null?void 0:r[1])+`
779
- `+n}getGlobalObject(){return this.parent?this.parent.getGlobalObject():ED}handle(e){this._propagate(e)}complete(){this.completed=!0;for(const e of this.children)e.complete()}beginBatch(e){for(const n of this.children)n.beginBatch(e)}_propagate(e){}}function _m(t){return t.type=="file"}function SD(t){return t.type=="facet"}class Wm extends se{constructor(e){super(),this.k=e.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(e){this.reservoir.push(e),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(e){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=e,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(e){this.ingester(e)}complete(){for(const e of this.reservoir)this._propagate(e);super.complete()}}function Xm(t,e,n){const r=new Wm({type:"sample",size:t});for(const i of e)r.handle(n(i));return r.complete(),r.reservoir}const DD={};class MD extends lo{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...DD}}fixEncoding(e){return Vm(e,this.properties.filled),Ym(e,this.properties.filled),delete e.color,delete e.opacity,e}initializeData(){super.initializeData();const e=this.unitView.getAccessor("semanticScore");e&&(this.sampledSemanticScores=Float32Array.from(Xm(1e4,this.unitView.getCollector().getData(),e)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(xD,CD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ge(this.programInfo,{uInwardStroke:e.inwardStroke,uGradientStrength:e.fillGradientStrength,uMaxRelativePointDiameter:1-2*e.sampleFacetPadding})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new iD({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const e=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/e),1/3)}_getMaxPointSize(){const e=this.encoders.size;return e.constant?e(null):e.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const e=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(e<=0)return-1/0;if(e>=1)return 1/0;{const n=this.sampledSemanticScores;return sc(n,e)}}else return-1}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>Ge(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>Ur(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&oo(n,this.vertexArrayInfo,n.POINTS,i,r)},e)}}const TD=`// Line caps
779
+ `+n}getGlobalObject(){return this.parent?this.parent.getGlobalObject():lD}handle(e){this._propagate(e)}complete(){this.completed=!0;for(const e of this.children)e.complete()}beginBatch(e){for(const n of this.children)n.beginBatch(e)}_propagate(e){}}function Gm(t){return t.type=="file"}function fD(t){return t.type=="facet"}class Hm extends se{constructor(e){super(),this.k=e.size||500,this.reset()}reset(){super.reset(),this.reservoir=[],this.W=void 0,this.ingester=this._initialIngester}_initialIngester(e){this.reservoir.push(e),this.reservoir.length==this.k&&(this.W=Math.exp(Math.log(Math.random())/this.k),this.i=this.k,this.next=this.i,this.ingester=this._finalIngester,this._setNextStop())}_finalIngester(e){++this.i==this.next&&(this.reservoir[Math.floor(Math.random()*this.k)]=e,this.W*=Math.exp(Math.log(Math.random())/this.k),this._setNextStop())}_setNextStop(){this.next+=Math.floor(Math.log(Math.random())/Math.log(1-this.W))+1}handle(e){this.ingester(e)}complete(){for(const e of this.reservoir)this._propagate(e);super.complete()}}function Qm(t,e,n){const r=new Hm({type:"sample",size:t});for(const i of e)r.handle(n(i));return r.complete(),r.reservoir}const dD={};class hD extends so{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,color:"#4c78a8",filled:!0,opacity:1,size:100,semanticScore:0,shape:"circle",strokeWidth:2,fillGradientStrength:0,dx:0,dy:0,angle:0,sampleFacetPadding:.1,semanticZoomFraction:.02}))}getAttributes(){return["inwardStroke","uniqueId","facetIndex","x","y","size","semanticScore","shape","strokeWidth","gradientStrength","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"size","semanticScore","shape","strokeWidth","dx","dy","fill","stroke","fillOpacity","strokeOpacity","angle"]}getDefaultEncoding(){return{...super.getDefaultEncoding(),...dD}}fixEncoding(e){return jm(e,this.properties.filled),Um(e,this.properties.filled),delete e.color,delete e.opacity,e}initializeData(){super.initializeData();const e=this.unitView.getAccessor("semanticScore");e&&(this.sampledSemanticScores=Float32Array.from(Qm(1e4,this.unitView.getCollector().getData(),e)),this.sampledSemanticScores.sort((n,r)=>n-r))}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(cD,uD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uInwardStroke:e.inwardStroke,uGradientStrength:e.fillGradientStrength,uMaxRelativePointDiameter:1-2*e.sampleFacetPadding})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new VE({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}_getGeometricScaleFactor(){const e=Math.pow(2,this.properties.geometricZoomBound||0);return Math.pow(Math.min(1,this.unitView.getZoomLevel()/e),1/3)}_getMaxPointSize(){const e=this.encoders.size;return e.constant?e(null):e.scale.range().reduce((n,r)=>Math.max(n,r))}getSemanticThreshold(){if(this.sampledSemanticScores){const e=Math.max(0,1-this.properties.semanticZoomFraction*this.unitView.getZoomLevel());if(e<=0)return-1/0;if(e>=1)return 1/0;{const n=this.sampledSemanticScores;return ac(n,e)}}else return-1}prepareRender(e){const n=super.prepareRender(e);return n.push(()=>Ue(this.programInfo,{uMaxPointSize:this._getMaxPointSize(),uScaleFactor:this._getGeometricScaleFactor(),uSemanticThreshold:this.getSemanticThreshold()})),n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{i&&no(n,this.vertexArrayInfo,n.POINTS,i,r)},e)}}const pD=`// Line caps
780
780
  const int BUTT = 0;
781
781
  const int SQUARE = 1;
782
782
  const int ROUND = 2;
@@ -865,7 +865,7 @@ void main(void) {
865
865
 
866
866
  setupPicking();
867
867
  }
868
- `,ID=`// Line ending
868
+ `,mD=`// Line ending
869
869
  const int BUTT = 0;
870
870
  const int SQUARE = 1;
871
871
  const int ROUND = 2;
@@ -917,7 +917,7 @@ void main(void) {
917
917
  fragColor = vPickingColor;
918
918
  }
919
919
  }
920
- `;class ND extends lo{constructor(e){super(e),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){if(!(e.x&&e.y&&e.x2&&e.y2))if(e.x&&e.x2&&!e.y)e.y={value:.5},e.y2=e.y;else if(e.y&&e.y2&&!e.x)e.x={value:.5},e.x2=e.x;else if(e.x&&!e.y)e.y={value:0},e.y2={value:1},e.x2=e.x;else if(e.y&&!e.x)e.x={value:0},e.x2={value:1},e.y2=e.y;else if(e.x&&e.y&&e.y2)e.x2=e.x;else if(e.y&&e.x&&e.x2)e.y2=e.y;else if(e.y&&e.x)if(!e.x2&&Je(e.y)&&e.y.type=="quantitative")e.x2=e.x,e.y2={datum:0};else if(!e.y2&&Je(e.x)&&e.x.type=="quantitative")e.y2=e.y,e.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(e));return e}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const e=this.gl,n=kD(this.properties.strokeDash);this.dashTexture=io(e,{mag:e.NEAREST,min:e.NEAREST,internalFormat:e.R8,format:e.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(TD,ID)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ge(this.programInfo,{uMinLength:e.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(e.strokeCap)})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new rD({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return this.dashTexture&&n.push(()=>Ge(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>Ur(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>oo(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),e)}}function kD(t){if(t.length==0||t.length%2||t.findIndex(o=>Math.round(o)!=o||o<1||o>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(t));const e=t.reduce((o,a)=>o+a),n=new Uint8Array(e);let r=!0,i=0;for(let o of t){for(;o;)n[i++]=r&&255||0,o--;r=!r}return n}const LD=`uniform float uSagittaScaleFactor;
920
+ `;class gD extends so{constructor(e){super(e),this.dashTextureSize=0,Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x2:void 0,y2:void 0,size:1,color:"black",opacity:1,minLength:0,strokeDash:null,strokeDashOffset:0,strokeCap:"butt"}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){if(!(e.x&&e.y&&e.x2&&e.y2))if(e.x&&e.x2&&!e.y)e.y={value:.5},e.y2=e.y;else if(e.y&&e.y2&&!e.x)e.x={value:.5},e.x2=e.x;else if(e.x&&!e.y)e.y={value:0},e.y2={value:1},e.x2=e.x;else if(e.y&&!e.x)e.x={value:0},e.x2={value:1},e.y2=e.y;else if(e.x&&e.y&&e.y2)e.x2=e.x;else if(e.y&&e.x&&e.x2)e.y2=e.y;else if(e.y&&e.x)if(!e.x2&&Ke(e.y)&&e.y.type=="quantitative")e.x2=e.x,e.y2={datum:0};else if(!e.y2&&Ke(e.x)&&e.x.type=="quantitative")e.y2=e.y,e.x2={datum:0};else throw new Error("A bug!");else throw new Error("Invalid x and y encodings for rule mark: "+JSON.stringify(e));return e}async initializeGraphics(){if(await super.initializeGraphics(),this.properties.strokeDash){const e=this.gl,n=yD(this.properties.strokeDash);this.dashTexture=to(e,{mag:e.NEAREST,min:e.NEAREST,internalFormat:e.R8,format:e.RED,src:n,height:1}),this.dashTextureSize=n.length}this.createAndLinkShaders(pD,mD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uMinLength:e.minLength,uDashTextureSize:this.dashTextureSize,uStrokeCap:["butt","square","round"].indexOf(e.strokeCap)})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new QE({encoders:this.encoders,attributes:this.getAttributes(),numItems:Math.max(n,this.properties.minBufferSize||0)});r.addBatches(e.facetBatches);const i=r.toArrays();this.rangeMap.migrateEntries(i.rangeMap),this.updateBufferInfo(i)}prepareRender(e){const n=super.prepareRender(e);return this.dashTexture&&n.push(()=>Ue(this.programInfo,{uDashTexture:this.dashTexture,uStrokeDashOffset:this.properties.strokeDashOffset})),n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>no(n,this.vertexArrayInfo,n.TRIANGLE_STRIP,i,r),e)}}function yD(t){if(t.length==0||t.length%2||t.findIndex(o=>Math.round(o)!=o||o<1||o>1e3)>=0)throw new Error("Invalid stroke dash pattern: "+JSON.stringify(t));const e=t.reduce((o,a)=>o+a),n=new Uint8Array(e);let r=!0,i=0;for(let o of t){for(;o;)n[i++]=r&&255||0,o--;r=!r}return n}const bD=`uniform float uSagittaScaleFactor;
921
921
 
922
922
  /** Make very small arcs visible */
923
923
  uniform float uMinSagittaLength;
@@ -1028,7 +1028,7 @@ void main(void) {
1028
1028
 
1029
1029
  setupPicking();
1030
1030
  }
1031
- `,OD=`in lowp vec4 vColor;
1031
+ `,vD=`in lowp vec4 vColor;
1032
1032
  in float vSize;
1033
1033
  in float vNormalLengthInPixels;
1034
1034
 
@@ -1046,7 +1046,7 @@ void main(void) {
1046
1046
  fragColor = vPickingColor;
1047
1047
  }
1048
1048
  }
1049
- `;class BD extends lo{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,sagittaScaleFactor:1,minSagittaLength:1.5}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){return e.x||(e.x2=e.x),e.y2||(e.y2=e.y),e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(LD,OD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ge(this.programInfo,{uSagittaScaleFactor:e.sagittaScaleFactor,uMinSagittaLength:e.minSagittaLength})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new oD({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();i.arrays.strip={data:FD(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([o,a])=>[o,{...a,data:void 0}])),this.updateBufferInfo(i)}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);for(const o of Object.entries(this.bufferInfo.attribs)){const[a,s]=o;s.buffer&&this.arrays[a].numComponents&&(s.offset=r*this.arrays[a].numComponents*4)}Ur(n,this.programInfo,this.bufferInfo),oo(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},e)}}function FD(t){let e=0;const n=[];for(;e<=t;e++)n.push(e/t,.5),n.push(e/t,-.5);return n}const PD=`uniform float uSdfNumerator;
1049
+ `;class AD extends so{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:0,x2:void 0,y:0,y2:void 0,size:1,color:"black",opacity:1,segments:101,sagittaScaleFactor:1,minSagittaLength:1.5}))}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","size","height","color","opacity"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size"]}fixEncoding(e){return e.x||(e.x2=e.x),e.y2||(e.y2=e.y),e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(bD,vD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uSagittaScaleFactor:e.sagittaScaleFactor,uMinSagittaLength:e.minSagittaLength})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getItemCount(),r=new YE({encoders:this.encoders,attributes:this.getAttributes(),numItems:n});r.addBatches(e.facetBatches);const i=r.toArrays();i.arrays.strip={data:xD(this.properties.segments),numComponents:2},this.rangeMap.migrateEntries(i.rangeMap),this.arrays=Object.fromEntries(Object.entries(i.arrays).map(([o,a])=>[o,{...a,data:void 0}])),this.updateBufferInfo(i)}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>{this.gl.bindVertexArray(this.vertexArrayInfo.vertexArrayObject);for(const o of Object.entries(this.bufferInfo.attribs)){const[a,s]=o;s.buffer&&this.arrays[a].numComponents&&(s.offset=r*this.arrays[a].numComponents*4)}Rr(n,this.programInfo,this.bufferInfo),no(n,this.bufferInfo,n.TRIANGLE_STRIP,(this.properties.segments+1)*2,0,i)},e)}}function xD(t){let e=0;const n=[];for(;e<=t;e++)n.push(e/t,.5),n.push(e/t,-.5);return n}const wD=`uniform float uSdfNumerator;
1050
1050
 
1051
1051
  uniform vec2 uD; // dx & dy
1052
1052
 
@@ -1292,7 +1292,7 @@ void main(void) {
1292
1292
 
1293
1293
  setupPicking();
1294
1294
  }
1295
- `,zD=`uniform sampler2D uTexture;
1295
+ `,CD=`uniform sampler2D uTexture;
1296
1296
 
1297
1297
  in vec2 vTexCoord;
1298
1298
  in float vEdgeFadeOpacity;
@@ -1323,7 +1323,7 @@ void main() {
1323
1323
  fragColor = vPickingColor;
1324
1324
  }
1325
1325
  }
1326
- `,RD={left:-1,center:0,right:1},jD={top:-1,middle:0,bottom:1,alphabetic:1};class UD extends lo{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?e.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):e.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(e){for(const n of qi)this.properties.fitToBand&&ll(e,n);return e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(PD,zD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ge(this.programInfo,{uPaddingX:e.paddingX,uPaddingY:e.paddingY,uFlushX:!!e.flushX,uFlushY:!!e.flushY,uAlign:[RD[e.align],jD[e.baseline]],uD:[e.dx,-e.dy],uLogoLetter:!!e.logoLetters,uSqueeze:!!e.squeeze,uViewportEdgeFadeWidth:[e.viewportEdgeFadeWidthTop,e.viewportEdgeFadeWidthRight,e.viewportEdgeFadeWidthBottom,e.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[e.viewportEdgeFadeDistanceTop,e.viewportEdgeFadeDistanceRight,e.viewportEdgeFadeDistanceBottom,e.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let o=0;const a=r.text.format?le(r.text.format):u=>u;for(const u of n){const f=a(i(u)),l=ee(f)?f:f===null?"":""+f;o+=l&&l.length||0}const s=new aD({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||0)});s.addBatches(e.facetBatches);const c=s.toArrays();this.rangeMap.migrateEntries(c.rangeMap),this.updateBufferInfo(c)}prepareRender(e){const n=super.prepareRender(e);let r=.35;return this.properties.logoLetters&&(r/=2),n.push(()=>Ge(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:this.font.metrics.common.base/(this.glHelper.dpr/r)})),n.push(()=>Ur(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>oo(n,this.vertexArrayInfo,n.TRIANGLES,i,r),e)}}function fo(t,e,{spacing:n,devicePixelRatio:r,offset:i,reverse:o}={}){n=n||0,i=i||0;let a=0,s=0;for(const p of t)a+=os(p.px)+(fl(p)?0:n),s+=os(p.grow);a-=n;const c=Math.max(0,e-a),u=r!==void 0?p=>Math.round(p*r)/r:p=>p,f=[],l=[],d=p=>{const m=f.length;if(!m)return;const y=(p?n:0)*(o?-1:1);h-=y;for(let g=0;g<m;g++)l.push({location:h+(g+1)/(m+1)*y,size:0});h+=y,f.length=0};let h=o?Math.max(e,a):0+i;if(t.length==1&&fl(t[0]))return[{location:h,size:0}];for(let p=0;p<t.length;p++){const m=t[p];if(fl(m))f.push(m);else{d(l.length>0);const y=os(m.px)+(s?os(m.grow)/s*c:0);o&&(h-=y),l.push({location:u(h),size:u(y)}),o?h-=n:h+=y+n}}return h+=o?n:-n,d(!1),l}function GD(t){var r,i;let e=0,n=0;for(const o of t)e=Math.max(e,(r=o.px)!=null?r:0),n=Math.max(n,(i=o.grow)!=null?i:0);return{px:e,grow:n}}const od=class{constructor(e,n){Me(this,Fo);this.width=e,this.height=n}addPadding(e){return be(this,Fo,cd).call(this,e.width,e.height)}subtractPadding(e){return be(this,Fo,cd).call(this,-e.width,-e.height)}};let qn=od;Fo=new WeakSet,cd=function(e,n){var r,i;return new od({px:((r=this.width.px)!=null?r:0)+e,grow:this.width.grow},{px:((i=this.height.px)!=null?i:0)+n,grow:this.height.grow})};const ho=Object.freeze({px:0,grow:0}),HD=new qn(ho,ho);function fl(t){return!t.px&&!t.grow}function os(t){return t||0}function QD(t){return t&&(ce(t.px)||ce(t.grow))}function VD(t){if(Jm(t))throw new Error("parseSizeDef does not accept step-based sizes.");if(QD(t))return t;if(ce(t))return{px:t,grow:0};if(t==="container")return{px:0,grow:1};if(!t)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${t}`)}function YD(t,e,n){return{get location(){const r=n();switch(r){case 0:return t.location;case 1:return e.location;default:return r*e.location+(1-r)*t.location}},get size(){const r=n();switch(r){case 0:return t.size;case 1:return e.size;default:return r*e.size+(1-r)*t.size}}}}function _D(t,e){const n=ce(e)?()=>e:e;return{get location(){return t.location+n()},get size(){return t.size}}}function WD(t,e){const n=ce(e)?()=>e:e;return{get location(){return t.location*n()},get size(){return t.size*n()}}}function Zm(t,e){return e>=t.location&&e<t.location+t.size}class $e{constructor(e,n,r,i){this.top=e||0,this.right=n||0,this.bottom=r||0,this.left=i||0}get width(){return this.left+this.right}get height(){return this.top+this.bottom}expand(e){return e<=0?this:new $e(this.top+e,this.right+e,this.bottom+e,this.left+e)}add(e){return new $e(this.top+e.top,this.right+e.right,this.bottom+e.bottom,this.left+e.left)}subtract(e){return new $e(this.top-e.top,this.right-e.right,this.bottom-e.bottom,this.left-e.left)}static createFromConfig(e){return typeof e=="number"?this.createUniformPadding(e):e?this.createFromRecord(e):dl}static createFromRecord(e){return new $e(e.top,e.right,e.bottom,e.left)}static zero(){return dl}static createUniformPadding(e){return new $e(e,e,e,e)}}const dl=$e.createUniformPadding(0);Object.freeze(dl);const XD=/^([A-Za-z]+:)?\/\//;function ZD(t,e){if(e&&XD.test(e))return e;const n=t();return n&&e?n.endsWith("/")?n+e:n+"/"+e:n!=null?n:e}const as="VISIT_SKIP",Kn="VISIT_STOP",qm=t=>t;class Km{constructor(e,n,r,i){this.context=n,this.parent=r,this.name=e.name||i,this.spec=e,this.resolutions={scale:{},axis:{}},this._broadcastHandlers={},this._capturingInteractionEventListeners={},this._nonCapturingInteractionEventListeners={},jm(this),this.opacityFunction=qm,this.blockEncodingInheritance=!1}getPadding(){return this._cache("size/padding",()=>$e.createFromConfig(this.spec.padding))}getOverhang(){return $e.zero()}getSize(){return this._cache("size/size",()=>this.isVisible()?this.getSizeFromSpec().addPadding(this.getPadding()):HD)}getSizeFromSpec(){const e=n=>{var i,o;let r=this.spec[n];if(Jm(r)){const a=r.step,s=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(s){let c=0;if(tn(s.type))c=s.domain().length;else if(["locus","index"].includes(s.type)){const f=s.domain();c=Ue(f)-f[0]}else throw new Error(`Cannot use step-based size with "${s.type}" scale!`);const u=s;return c=cu(c,u.paddingInner(),u.paddingOuter()),{px:c*a,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(o=r&&VD(r))!=null?o:{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new qn(e("width"),e("height")))}isVisible(){return this.context.isViewVisible(this)}isVisibleInSpec(){var e;return(e=this.spec.visible)!=null?e:!0}getEffectiveOpacity(){var e,n;return this.opacityFunction((n=(e=this.parent)==null?void 0:e.getEffectiveOpacity())!=null?n:1)}getPathString(){return[...this.getAncestors()].map(e=>e.name).reverse().join("/")}*getAncestors(){let e=this;do yield e,e=e.parent;while(e)}handleBroadcast(e){for(const n of this._broadcastHandlers[e.type]||[])n(e)}_addBroadcastHandler(e,n){let r=this._broadcastHandlers[e];r||(r=[],this._broadcastHandlers[e]=r),r.push(n)}handleInteractionEvent(e,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;for(const o of i[n.type]||[])o(e,n)}addInteractionEventListener(e,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;let o=i[e];o||(o=[],i[e]=o),o.push(n)}visit(e){try{const n=e(this);if(e.postOrder&&e.postOrder(this),n!==Kn)return n}catch(n){throw n.view=this,n}}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===qm)&&(this.opacityFunction=KD(this))}onBeforeRender(){}render(e,n,r={}){}getEncoding(){const e=this.parent&&!this.blockEncodingInheritance?this.parent.getEncoding():{},n=this.spec.encoding||{},r={...e,...n};for(const[i,o]of Object.entries(r))o===null&&delete r[i];return r}getFacetAccessor(e){if(this.parent)return this.parent.getFacetAccessor(this)}getFacetFields(e){var r;const n=this.getEncoding().sample;return Vn(n)?[n.field]:(r=this.parent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}_getResolution(e,n){e=kr(e);let r=this;do{const i=r.resolutions[n][e];if(i)return i;r=r.parent}while(r)}getScaleResolution(e){return this._getResolution(e,"scale")}getAxisResolution(e){return this._getResolution(e,"axis")}getBaseUrl(){return ZD(()=>{var e;return(e=this.parent)==null?void 0:e.getBaseUrl()},this.spec.baseUrl)}getDynamicDataSource(){throw new Error("The view does not provide dynamic data!")}isPickingSupported(){return!0}getTitleText(){const e=this.spec.title;if(e)return ee(e)?e:e.text}_cache(e,n){return Hr(this,e,n)}_invalidateCacheByPrefix(e,n="self"){switch(n){case"self":so(this,e);break;case"ancestors":for(const r of this.getAncestors())so(r,e);break;case"progeny":this.visit(r=>so(r,e));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(e){}}function qD(t){return"unitsPerPixel"in t}function KD(t){const e=t.spec.opacity;if(e!==void 0){if(ce(e))return n=>n*e;if(qD(e)){const n=o=>{var s;const a=(s=t.getScaleResolution(o))==null?void 0:s.getScale();if(["linear","index","locus"].includes(a==null?void 0:a.type))return a},r=e.channel?n(e.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=eu().domain(e.unitsPerPixel).range(e.values).clamp(!0);return o=>{const s=Zo(r.domain())/1e3;return i(s)*o}}}return n=>n}const Jm=t=>!!(t!=null&&t.step);class Jn extends Km{constructor(e,n,r,i){super(e,n,r,i),this.spec=e}*[Symbol.iterator](){}replaceChild(e,n){throw new Error("Not implemented")}visit(e){let n;try{n=e(this)}catch(r){throw r.view=this,r}if(n===Kn)return n;if(n!==as){e.beforeChildren&&e.beforeChildren(this);for(const r of this){const i=r.visit(e);if(i===Kn)return i}e.afterChildren&&e.afterChildren(this),e.postOrder&&e.postOrder(this)}}findDescendantByPath(e){for(const n of this)if(n.name===e[0]){if(e.length==1)return n;if(n instanceof Jn)return n.findDescendantByPath(e.slice(1))}}findChildByName(e){for(const n of this)if(n.name===e)return n}findDescendantByName(e){let n;return this.visit(r=>{if(r.name==e)return n=r,Kn}),n}getConfiguredResolution(e,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[e]}getDefaultResolution(e,n){return"shared"}getConfiguredOrDefaultResolution(e,n){var r,i;return(i=(r=this.getConfiguredResolution(e,n))!=null?r:this.getConfiguredResolution("default",n))!=null?i:this.getDefaultResolution(e,n)}}function ss(t,e,n){if(n=n||[],t.some(a=>a===null)){if(t.every(a=>a===null))return null;throw console.warn(t),new Error("Cannot merge objects with nulls!")}const r={},i=(a,s)=>a===s||Qr(a)&&Qr(s)||Qr(a)&&s===!0||a===!0&&Re(s),o=a=>{for(let s in a){const c=a[s];if(!n.includes(s)&&c!==void 0)if(r[s]!==void 0&&!i(r[s],c))console.warn(`Conflicting property ${s} of ${e}: (${JSON.stringify(r[s])} and ${JSON.stringify(a[s])}). Using ${JSON.stringify(r[s])}.`);else{const u=r[s];if(Qr(u))Qr(c)&&(r[s]=ss([u,c],s));else if(Qr(c)){if(!(u===!0||u===void 0))throw new Error("Bug in merge! Target is: "+u);r[s]=ss([{},c],s)}else r[s]=c}}};for(const a of t)o(a);return r}function Qr(t){return Re(t)&&!Array.isArray(t)}/*!
1326
+ `,SD={left:-1,center:0,right:1},ED={top:-1,middle:0,bottom:1,alphabetic:1};class DD extends so{constructor(e){super(e),Object.defineProperties(this.defaultProperties,Object.getOwnPropertyDescriptors({x:.5,y:.5,x2:void 0,y2:void 0,text:"",size:11,color:"black",opacity:1,font:void 0,fontStyle:void 0,fontWeight:void 0,align:"center",baseline:"middle",dx:0,dy:0,angle:0,fitToBand:!1,squeeze:!0,paddingX:0,paddingY:0,flushX:!0,flushY:!0,logoLetters:!1,viewportEdgeFadeWidthTop:0,viewportEdgeFadeWidthRight:0,viewportEdgeFadeWidthBottom:0,viewportEdgeFadeWidthLeft:0,viewportEdgeFadeDistanceTop:-1/0,viewportEdgeFadeDistanceRight:-1/0,viewportEdgeFadeDistanceBottom:-1/0,viewportEdgeFadeDistanceLeft:-1/0})),this.font=this.properties.font?e.context.fontManager.getFont(this.properties.font,this.properties.fontStyle,this.properties.fontWeight):e.context.fontManager.getDefaultFont()}getAttributes(){return["uniqueId","facetIndex","x","x2","y","y2","color","size","opacity","angle"]}getSupportedChannels(){return[...super.getSupportedChannels(),"x2","y2","size","text","angle"]}fixEncoding(e){for(const n of Wi)this.properties.fitToBand&&ul(e,n);return e}async initializeGraphics(){await super.initializeGraphics(),this.createAndLinkShaders(wD,CD)}finalizeGraphicsInitialization(){super.finalizeGraphicsInitialization(),this.gl.useProgram(this.programInfo.program);const e=this.properties;Ue(this.programInfo,{uPaddingX:e.paddingX,uPaddingY:e.paddingY,uFlushX:!!e.flushX,uFlushY:!!e.flushY,uAlign:[SD[e.align],ED[e.baseline]],uD:[e.dx,-e.dy],uLogoLetter:!!e.logoLetters,uSqueeze:!!e.squeeze,uViewportEdgeFadeWidth:[e.viewportEdgeFadeWidthTop,e.viewportEdgeFadeWidthRight,e.viewportEdgeFadeWidthBottom,e.viewportEdgeFadeWidthLeft],uViewportEdgeFadeDistance:[e.viewportEdgeFadeDistanceTop,e.viewportEdgeFadeDistanceRight,e.viewportEdgeFadeDistanceBottom,e.viewportEdgeFadeDistanceLeft]})}updateGraphicsData(){const e=this.unitView.getCollector(),n=e.getData(),r=this.encoding,i=this.encoders.text.accessor||this.encoders.text;let o=0;const a=r.text.format?le(r.text.format):u=>u;for(const u of n){const f=a(i(u)),l=ee(f)?f:f===null?"":""+f;o+=l&&l.length||0}const s=new _E({encoders:this.encoders,attributes:this.getAttributes(),properties:this.properties,fontMetrics:this.font.metrics,numCharacters:Math.max(o,this.properties.minBufferSize||0)});s.addBatches(e.facetBatches);const c=s.toArrays();this.rangeMap.migrateEntries(c.rangeMap),this.updateBufferInfo(c)}prepareRender(e){const n=super.prepareRender(e);let r=.35;return this.properties.logoLetters&&(r/=2),n.push(()=>Ue(this.programInfo,{uTexture:this.font.texture,uSdfNumerator:this.font.metrics.common.base/(this.glHelper.dpr/r)})),n.push(()=>Rr(this.gl,this.programInfo,this.vertexArrayInfo)),n}render(e){const n=this.gl;return this.createRenderCallback((r,i)=>no(n,this.vertexArrayInfo,n.TRIANGLES,i,r),e)}}function co(t,e,{spacing:n,devicePixelRatio:r,offset:i,reverse:o}={}){n=n||0,i=i||0;let a=0,s=0;for(const p of t)a+=rs(p.px)+(ll(p)?0:n),s+=rs(p.grow);a-=n;const c=Math.max(0,e-a),u=r!==void 0?p=>Math.round(p*r)/r:p=>p,f=[],l=[],d=p=>{const m=f.length;if(!m)return;const y=(p?n:0)*(o?-1:1);h-=y;for(let g=0;g<m;g++)l.push({location:h+(g+1)/(m+1)*y,size:0});h+=y,f.length=0};let h=o?Math.max(e,a):0+i;if(t.length==1&&ll(t[0]))return[{location:h,size:0}];for(let p=0;p<t.length;p++){const m=t[p];if(ll(m))f.push(m);else{d(l.length>0);const y=rs(m.px)+(s?rs(m.grow)/s*c:0);o&&(h-=y),l.push({location:u(h),size:u(y)}),o?h-=n:h+=y+n}}return h+=o?n:-n,d(!1),l}function MD(t){var r,i;let e=0,n=0;for(const o of t)e=Math.max(e,(r=o.px)!=null?r:0),n=Math.max(n,(i=o.grow)!=null?i:0);return{px:e,grow:n}}const ed=class{constructor(e,n){De(this,Bo);this.width=e,this.height=n}addPadding(e){return be(this,Bo,rd).call(this,e.width,e.height)}subtractPadding(e){return be(this,Bo,rd).call(this,-e.width,-e.height)}};let Zn=ed;Bo=new WeakSet,rd=function(e,n){var r,i;return new ed({px:((r=this.width.px)!=null?r:0)+e,grow:this.width.grow},{px:((i=this.height.px)!=null?i:0)+n,grow:this.height.grow})};const uo=Object.freeze({px:0,grow:0}),TD=new Zn(uo,uo);function ll(t){return!t.px&&!t.grow}function rs(t){return t||0}function ID(t){return t&&(ce(t.px)||ce(t.grow))}function kD(t){if(Wm(t))throw new Error("parseSizeDef does not accept step-based sizes.");if(ID(t))return t;if(ce(t))return{px:t,grow:0};if(t==="container")return{px:0,grow:1};if(!t)return{px:0,grow:1};throw new Error(`Invalid sizeDef: ${t}`)}function ND(t,e,n){return{get location(){const r=n();switch(r){case 0:return t.location;case 1:return e.location;default:return r*e.location+(1-r)*t.location}},get size(){const r=n();switch(r){case 0:return t.size;case 1:return e.size;default:return r*e.size+(1-r)*t.size}}}}function LD(t,e){const n=ce(e)?()=>e:e;return{get location(){return t.location+n()},get size(){return t.size}}}function BD(t,e){const n=ce(e)?()=>e:e;return{get location(){return t.location*n()},get size(){return t.size*n()}}}function Vm(t,e){return e>=t.location&&e<t.location+t.size}class Je{constructor(e,n,r,i){this.top=e||0,this.right=n||0,this.bottom=r||0,this.left=i||0}get width(){return this.left+this.right}get height(){return this.top+this.bottom}expand(e){return e<=0?this:new Je(this.top+e,this.right+e,this.bottom+e,this.left+e)}add(e){return new Je(this.top+e.top,this.right+e.right,this.bottom+e.bottom,this.left+e.left)}subtract(e){return new Je(this.top-e.top,this.right-e.right,this.bottom-e.bottom,this.left-e.left)}static createFromConfig(e){return typeof e=="number"?this.createUniformPadding(e):e?this.createFromRecord(e):fl}static createFromRecord(e){return new Je(e.top,e.right,e.bottom,e.left)}static zero(){return fl}static createUniformPadding(e){return new Je(e,e,e,e)}}const fl=Je.createUniformPadding(0);Object.freeze(fl);const OD=/^([A-Za-z]+:)?\/\//;function PD(t,e){if(e&&OD.test(e))return e;const n=t();return n&&e?n.endsWith("/")?n+e:n+"/"+e:n!=null?n:e}const is="VISIT_SKIP",qn="VISIT_STOP",Ym=t=>t;class _m{constructor(e,n,r,i){this.context=n,this.parent=r,this.name=e.name||i,this.spec=e,this.resolutions={scale:{},axis:{}},this._broadcastHandlers={},this._capturingInteractionEventListeners={},this._nonCapturingInteractionEventListeners={},Om(this),this.opacityFunction=Ym,this.blockEncodingInheritance=!1}getPadding(){return this._cache("size/padding",()=>Je.createFromConfig(this.spec.padding))}getOverhang(){return Je.zero()}getSize(){return this._cache("size/size",()=>this.isVisible()?this.getSizeFromSpec().addPadding(this.getPadding()):TD)}getSizeFromSpec(){const e=n=>{var i,o;let r=this.spec[n];if(Wm(r)){const a=r.step,s=(i=this.getScaleResolution(n=="width"?"x":"y"))==null?void 0:i.getScale();if(s){let c=0;if(tn(s.type))c=s.domain().length;else if(["locus","index"].includes(s.type)){const f=s.domain();c=je(f)-f[0]}else throw new Error(`Cannot use step-based size with "${s.type}" scale!`);const u=s;return c=su(c,u.paddingInner(),u.paddingOuter()),{px:c*a,grow:0}}else throw new Error("Cannot use 'step' size with missing scale!")}else return(o=r&&kD(r))!=null?o:{px:0,grow:1}};return this._cache("size/sizeFromSpec",()=>new Zn(e("width"),e("height")))}isVisible(){return this.context.isViewVisible(this)}isVisibleInSpec(){var e;return(e=this.spec.visible)!=null?e:!0}getEffectiveOpacity(){var e,n;return this.opacityFunction((n=(e=this.parent)==null?void 0:e.getEffectiveOpacity())!=null?n:1)}getPathString(){return[...this.getAncestors()].map(e=>e.name).reverse().join("/")}*getAncestors(){let e=this;do yield e,e=e.parent;while(e)}handleBroadcast(e){for(const n of this._broadcastHandlers[e.type]||[])n(e)}_addBroadcastHandler(e,n){let r=this._broadcastHandlers[e];r||(r=[],this._broadcastHandlers[e]=r),r.push(n)}handleInteractionEvent(e,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;for(const o of i[n.type]||[])o(e,n)}addInteractionEventListener(e,n,r){const i=r?this._capturingInteractionEventListeners:this._nonCapturingInteractionEventListeners;let o=i[e];o||(o=[],i[e]=o),o.push(n)}visit(e){try{const n=e(this);if(e.postOrder&&e.postOrder(this),n!==qn)return n}catch(n){throw n.view=this,n}}onScalesResolved(){(!this.opacityFunction||this.opacityFunction===Ym)&&(this.opacityFunction=zD(this))}onBeforeRender(){}render(e,n,r={}){}getEncoding(){const e=this.parent&&!this.blockEncodingInheritance?this.parent.getEncoding():{},n=this.spec.encoding||{},r={...e,...n};for(const[i,o]of Object.entries(r))o===null&&delete r[i];return r}getFacetAccessor(e){if(this.parent)return this.parent.getFacetAccessor(this)}getFacetFields(e){var r;const n=this.getEncoding().sample;return Qn(n)?[n.field]:(r=this.parent)==null?void 0:r.getFacetFields(this)}getSampleFacetTexture(){}_getResolution(e,n){e=Ir(e);let r=this;do{const i=r.resolutions[n][e];if(i)return i;r=r.parent}while(r)}getScaleResolution(e){return this._getResolution(e,"scale")}getAxisResolution(e){return this._getResolution(e,"axis")}getBaseUrl(){return PD(()=>{var e;return(e=this.parent)==null?void 0:e.getBaseUrl()},this.spec.baseUrl)}getDynamicDataSource(){throw new Error("The view does not provide dynamic data!")}isPickingSupported(){return!0}getTitleText(){const e=this.spec.title;if(e)return ee(e)?e:e.text}_cache(e,n){return Ur(this,e,n)}_invalidateCacheByPrefix(e,n="self"){switch(n){case"self":io(this,e);break;case"ancestors":for(const r of this.getAncestors())io(r,e);break;case"progeny":this.visit(r=>io(r,e));break}}invalidateSizeCache(){this._invalidateCacheByPrefix("size/","ancestors")}propagateInteractionEvent(e){}}function FD(t){return"unitsPerPixel"in t}function zD(t){const e=t.spec.opacity;if(e!==void 0){if(ce(e))return n=>n*e;if(FD(e)){const n=o=>{var s;const a=(s=t.getScaleResolution(o))==null?void 0:s.getScale();if(["linear","index","locus"].includes(a==null?void 0:a.type))return a},r=e.channel?n(e.channel):n("x")||n("y");if(!r)throw new Error("Cannot find a resolved quantitative scale for dynamic opacity!");const i=$c().domain(e.unitsPerPixel).range(e.values).clamp(!0);return o=>{const s=Wo(r.domain())/1e3;return i(s)*o}}}return n=>n}const Wm=t=>!!(t!=null&&t.step);class Kn extends _m{constructor(e,n,r,i){super(e,n,r,i),this.spec=e}*[Symbol.iterator](){}replaceChild(e,n){throw new Error("Not implemented")}visit(e){let n;try{n=e(this)}catch(r){throw r.view=this,r}if(n===qn)return n;if(n!==is){e.beforeChildren&&e.beforeChildren(this);for(const r of this){const i=r.visit(e);if(i===qn)return i}e.afterChildren&&e.afterChildren(this),e.postOrder&&e.postOrder(this)}}findDescendantByPath(e){for(const n of this)if(n.name===e[0]){if(e.length==1)return n;if(n instanceof Kn)return n.findDescendantByPath(e.slice(1))}}findChildByName(e){for(const n of this)if(n.name===e)return n}findDescendantByName(e){let n;return this.visit(r=>{if(r.name==e)return n=r,qn}),n}getConfiguredResolution(e,n){var r,i;return(i=(r=this.spec.resolve)==null?void 0:r[n])==null?void 0:i[e]}getDefaultResolution(e,n){return"shared"}getConfiguredOrDefaultResolution(e,n){var r,i;return(i=(r=this.getConfiguredResolution(e,n))!=null?r:this.getConfiguredResolution("default",n))!=null?i:this.getDefaultResolution(e,n)}}function os(t,e,n){if(n=n||[],t.some(a=>a===null)){if(t.every(a=>a===null))return null;throw console.warn(t),new Error("Cannot merge objects with nulls!")}const r={},i=(a,s)=>a===s||Gr(a)&&Gr(s)||Gr(a)&&s===!0||a===!0&&ze(s),o=a=>{for(let s in a){const c=a[s];if(!n.includes(s)&&c!==void 0)if(r[s]!==void 0&&!i(r[s],c))console.warn(`Conflicting property ${s} of ${e}: (${JSON.stringify(r[s])} and ${JSON.stringify(a[s])}). Using ${JSON.stringify(r[s])}.`);else{const u=r[s];if(Gr(u))Gr(c)&&(r[s]=os([u,c],s));else if(Gr(c)){if(!(u===!0||u===void 0))throw new Error("Bug in merge! Target is: "+u);r[s]=os([{},c],s)}else r[s]=c}}};for(const a of t)o(a);return r}function Gr(t){return ze(t)&&!Array.isArray(t)}/*!
1327
1327
  * Adapted from vega-encode:
1328
1328
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
1329
1329
  *
@@ -1331,7 +1331,7 @@ void main() {
1331
1331
  * All rights reserved.
1332
1332
  *
1333
1333
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
1334
- */function $m(t,e,n){return ce(e)&&n!=null&&(e=Math.min(e,~~(Zo(t.domain())/n)||1)),Re(e)&&(e.step,e=e.interval),e}function eg(t,e,n){var r=t.range(),i=Math.floor(r[0]),o=Math.ceil(nt(r));if(i>o&&(r=o,o=i,i=r),e=e.filter(function(s){return s=t(s),i<=s&&s<=o}),n>0&&e.length>1){for(var a=[e[0],nt(e)];e.length>n&&e.length>=3;)e=e.filter(function(s,c){return!(c%2)});e.length<3&&(e=a)}return e}function JD(t,e){return t.bins?eg(t,$D(t.bins,e)):t.ticks?t.ticks(e):t.domain()}function $D(t,e){var n=t.length,r=~~(n/(e||n));return r<2?t.slice():t.filter(function(i,o){return!(o%r)})}function eM(t,e,n){var r=t.tickFormat?t.tickFormat(e,n):n?le(n):String;if(z0(t.type)){var i=nM(n);r=t.bins?i:tM(r,i)}return r}function tM(t,e){return function(n){return t(n)?e(n):""}}function nM(t){var e=_t(t||",");if(e.precision==null){switch(e.precision=12,e.type){case"%":e.precision-=2;break;case"e":e.precision-=1;break}return rM(le(e),le(".1f")(1)[1])}else return le(e)}function rM(t,e){return function(n){var r=t(n),i=r.indexOf(e),o,a;if(i<0)return r;for(o=iM(r,i),a=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function iM(t,e){var n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
1334
+ */function Xm(t,e,n){return ce(e)&&n!=null&&(e=Math.min(e,~~(Wo(t.domain())/n)||1)),ze(e)&&(e.step,e=e.interval),e}function Zm(t,e,n){var r=t.range(),i=Math.floor(r[0]),o=Math.ceil(tt(r));if(i>o&&(r=o,o=i,i=r),e=e.filter(function(s){return s=t(s),i<=s&&s<=o}),n>0&&e.length>1){for(var a=[e[0],tt(e)];e.length>n&&e.length>=3;)e=e.filter(function(s,c){return!(c%2)});e.length<3&&(e=a)}return e}function RD(t,e){return t.bins?Zm(t,jD(t.bins,e)):t.ticks?t.ticks(e):t.domain()}function jD(t,e){var n=t.length,r=~~(n/(e||n));return r<2?t.slice():t.filter(function(i,o){return!(o%r)})}function UD(t,e,n){var r=t.tickFormat?t.tickFormat(e,n):n?le(n):String;if(L0(t.type)){var i=HD(n);r=t.bins?i:GD(r,i)}return r}function GD(t,e){return function(n){return t(n)?e(n):""}}function HD(t){var e=_t(t||",");if(e.precision==null){switch(e.precision=12,e.type){case"%":e.precision-=2;break;case"e":e.precision-=1;break}return QD(le(e),le(".1f")(1)[1])}else return le(e)}function QD(t,e){return function(n){var r=t(n),i=r.indexOf(e),o,a;if(i<0)return r;for(o=VD(r,i),a=o<r.length?r.slice(o):"";--o>i;)if(r[o]!=="0"){++o;break}return r.slice(0,o)+a}}function VD(t,e){var n=t.lastIndexOf("e"),r;if(n>0)return n;for(n=t.length;--n>e;)if(r=t.charCodeAt(n),r>=48&&r<=57)return n+1}/*!
1335
1335
  * Adapted from vega-encode:
1336
1336
  * https://github.com/vega/vega/blob/master/packages/vega-encode/src/Scale.js
1337
1337
  *
@@ -1339,45 +1339,45 @@ void main() {
1339
1339
  * All rights reserved.
1340
1340
  *
1341
1341
  * BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
1342
- */const oM="locus",aM="index";var sM=5;function cM(t){const e=t.type;return!t.bins&&(e===Er||e===Li||e===Oi)}function tg(t){return je(t)&&![ht,aM,oM].includes(t)}function ng(t){return t||{warn:(e,...n)=>console.warn(e,...n)}}var uM=Ko(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma","zoom","fp64","name"]);function rg(t,e,n){n=ng(n);for(const r in t)if(!uM[r]){if(r==="padding"&&tg(e.type))continue;ke(e[r])?e[r](t[r]):n.warn("Unsupported scale property: "+r)}yM(e,t,gM(e,t,hM(e,t,n)))}function lM(t,e){const n=fM(t),r=W(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return rg(t,i,e),i}function fM(t){var e=t.type,n="",r;return e===ht?ht+"-"+Er:(dM(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?ht+"-":r===3?Sr+"-":""),(n+e||Er).toLowerCase())}function dM(t){const e=t.type;return je(e)&&e!==I0&&e!==N0&&(t.scheme||t.range&&t.range.length&&t.range.every(ee))}function hM(t,e,n){if(!t.domain)return 0;n=ng(n);var r=pM(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,o=t.type,a=e.zero||e.zero===void 0&&cM(t),s,c;return i?(tg(o)&&e.padding&&i[0]!==nt(i)&&(i=mM(o,i,e.range,e.padding,e.exponent,e.constant)),(a||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(s=(i=i.slice()).length-1||1,a&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[s]=e.domainMax),e.domainMid!=null&&(c=e.domainMid,(c<i[0]||c>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",c),i.splice(s,0,c))),t.domain(ig(o,i,n)),o===lu&&t.unknown(e.domainImplicit?kc:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&$m(t,e.nice)||null),i.length):0}function pM(t,e,n){return e?(t.domain(ig(t.type,e,n)),e.length):-1}function mM(t,e,n,r,i,o){var a=Math.abs(nt(n)-n[0]),s=a/(a-2*r),c=t===en?md(e,null,s):t===Oi?Zs(e,null,s,.5):t===Li?Zs(e,null,s,i||1):t===Ea?wb(e,null,s,o||1):Xs(e,null,s);return e=e.slice(),e[0]=c[0],e[e.length-1]=c[1],e}function ig(t,e,n){if(z0(t)){var r=Math.abs(e.reduce(function(i,o){return i+(o<0?-1:o>0?1:0)},0));r!==e.length&&n.warn("Log scale domain includes zero: "+qo(e))}return e}function gM(t,e,n){let r=e.bins;if(r&&!Xe(r)){const i=(r.start==null||r.stop==null)&&t.domain(),o=r.start==null?i[0]:r.start,a=r.stop==null?nt(i):r.stop,s=r.step;s||oe("Scale bins parameter missing step property."),r=Yt(o,a+s,s)}return r?t.bins=r:t.bins&&delete t.bins,t.type===du&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function yM(t,e,n){var r=t.type,i=e.round||!1,o=e.range;if(e.rangeStep!=null)o=vM(r,e,n);else if(e.scheme&&(o=bM(r,e,n),ke(o))){if(t.interpolator)return t.interpolator(o);oe(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&Da(r))return t.interpolator(Ma(hl(o,e.reverse),e.interpolate,e.interpolateGamma));o&&e.interpolate&&t.interpolate?t.interpolate(R0(e.interpolate,e.interpolateGamma)):ke(t.round)?t.round(i):ke(t.rangeRound)&&t.interpolate(i?Ni:Jt),o&&t.range(hl(o,e.reverse))}function vM(t,e,n){t!==O0&&t!==fu&&oe("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===fu?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*cu(n,i,r)]}function bM(t,e,n){var r=e.schemeExtent,i,o;return Xe(e.scheme)?o=Ma(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),o=pu(i),o||oe(`Unrecognized scheme name: ${e.scheme}`)),n=t===L0?n+1:t===du?n-1:t===uu||t===k0?+e.schemeCount||sM:n,Da(t)?og(o,r,e.reverse):ke(o)?yx(og(o,r),n):t===lu?o:o.slice(0,n)}function og(t,e,n){return ke(t)&&(e||n)?gx(t,hl(e||[0,1],n)):t}function hl(t,e){return e?t.slice().reverse():t}const pl=le(",d");function AM(t){return t.chrom+":"+pl(Math.floor(t.pos+1))}function wM(t,e){return t.chrom+":"+pl(Math.floor(t.pos+1))+"-"+(t.chrom!=e.chrom?e.chrom+":":"")+pl(Math.ceil(e.pos))}const xM="https://genomespy.app/data/genomes/";class CM{constructor(e){if(this.config=e,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(e){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:e+"/"+this.config.baseUrl:this.baseUrl=xM;try{this.setChromSizes(EM(await Di({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}setChromSizes(e){let n=0;this.startByIndex=[0];for(let r=0;r<e.length;r++){this.startByIndex.push(n);const i=e[r].size,o={...e[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(o);const a=o.name.replace(/^chr/i,"");for(const s of["chr"+a,"CHR"+a,"Chr"+a,o.number,""+o.number,a,o.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,o);n+=o.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(e,n){let r=this.cumulativeChromPositions.get(e);if(r===void 0)throw new Error("Unknown chromosome/contig: "+e);return r+ +n}toChromosome(e){if(e>=this.totalSize)return;e=Math.floor(e);const n=mr(this.startByIndex,e)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(e){const n=this.toChromosome(e);if(!!n)return{chrom:n.name,pos:Math.floor(e)-n.continuousStart}}getChromosome(e){return this.chromosomesByName.get(e)}formatInterval(e){return wM(...this.toChromosomalInterval(e))}toChromosomalInterval(e){const n=this.toChromosomal(e[0]+.5),r=this.toChromosomal(e[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(e){var i,o,a;let[n,r]=e;return r||(r=n),[this.toContinuous(n.chrom,(i=n.pos)!=null?i:0),this.toContinuous(r.chrom,(a=r.pos)!=null?a:(o=this.chromosomesByName.get(r.chrom))==null?void 0:o.size)]}parseInterval(e){const n=e.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,o=parseInt(n[2].replace(/,/g,"")),a=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):o;return[this.toContinuous(r,o-1),this.toContinuous(i,a)]}}}function EM(t){return Ub(t).filter(e=>/^chr[0-9A-Z]+$/.test(e[0])).map(([e,n])=>({name:e,size:parseInt(n)}))}function ag(t){return Re(t)&&"chrom"in t}function SM(t){return t.every(ag)}class po extends Array{constructor(){super(),this.type=void 0}extend(e){return this}extendAll(e){if(e instanceof po&&e.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${e.type}`);for(const n of e)this.extend(n);return this}extendAllWithAccessor(e,n){for(const r of e)this.extend(n(r));return this}}class ml extends po{constructor(){super(),this.type="quantitative"}extend(e){return e==null||Number.isNaN(e)?this:(e=+e,this.length?e<this[0]?this[0]=e:e>this[1]&&(this[1]=e):(this.push(e),this.push(e)),this)}}class sg extends po{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(e){return e==null||Number.isNaN(e)?this:(this.uniqueValues.has(e)||(this.uniqueValues.add(e),this.push(e)),this)}}class cg extends sg{constructor(){super(),this.type="nominal"}}class DM extends po{constructor(e){super();let n=0;for(let r=1;r<e.length;r++)n+=Math.sign(e[r]-e[r-1]);if(Math.abs(n)!=e.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(e));e.forEach(r=>this.push(r))}extend(e){if(this.includes(e))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const ug={quantitative:ml,index:ml,locus:ml,nominal:cg,ordinal:sg};function lg(t,e){if(t=="quantitative"&&MM(e)){const n=new DM(e);return n.type=t,n}else if(ug[t]){const n=new ug[t];return n.type=t,e&&n.extendAll(e),n}throw new Error("Unknown type: "+t)}function MM(t){return t&&t.length>0&&t.length!=2&&t.every(e=>typeof e=="number")}function fg(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function TM(t){return--t*t*t+1}function IM(t){return(Math.pow(2,-10*t)-.0009765625)*1.0009775171065494}function NM(t){return 1-IM(t)}const dg="quantitative",gl="ordinal",yl="nominal",hg="locus",kM="index";class LM{constructor(e){this.channel=e,this.members=[],this.type=null,this._zoomExtent=void 0,this._domainListeners=new Set,this.name=void 0,this._scale=void 0}addEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);this._domainListeners.add(n)}removeEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);this._domainListeners.delete(n)}_notifyDomainListeners(){for(const e of this._domainListeners.values())e({type:"domain",scaleResolution:this})}pushUnitView(e,n){var a;const r=Su(e,n),i=r.type,o=(a=r==null?void 0:r.scale)==null?void 0:a.name;if(o){if(this.name!==void 0&&o!=this.name)throw new Error(`Shared scales have conflicting names: "${o}" vs. "${this.name}"!`);this.name=o}if(!this.type)this.type=i;else if(i!==this.type&&!Ji(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:e,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}_getMergedScaleProps(){return Hr(this,"mergedScaleProps",()=>{const e=this.members.map(n=>Su(n.view,n.channel).scale).filter(n=>n!==void 0);return ss(e,"scale",["domain"])})}getScaleProps(){return Hr(this,"scaleProps",()=>{var i,o;const e=this._getMergedScaleProps();if(e===null||e.type=="null")return{type:"null"};const n={...this._getDefaultScaleProperties(this.type),...e};n.type||(n.type=OM(this.channel,this.type));const r=this.getInitialDomain();return r&&r.length>0?n.domain=r:tn(n.type)&&(n.domain=new cg),!n.domain&&n.domainMid!==void 0&&(n.domain=[(i=n.domainMin)!=null?i:0,(o=n.domainMax)!=null?o:1]),this.channel=="y"&&tn(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),BM(n,this.channel),n})}getInitialDomain(){var e;return(e=this.getConfiguredDomain())!=null?e:this.type==hg?this.getGenome().getExtent():this.getDataDomain()}getConfiguredDomain(){return this._reduceDomains(e=>Ji(e.channel)?void 0:e.view.getConfiguredDomain(e.channel))}getDataDomain(){return this._reduceDomains(e=>Ji(e.channel)?void 0:e.view.extractDataDomain(e.channel))}reconfigure(){if(this._scale&&this._scale.type!="null"){Rm(this,"scaleProps");const e=this.getScaleProps();rg(e,this._scale),je(this._scale.type)&&(this._zoomExtent=this._getZoomExtent())}}getScale(){if(this._scale)return this._scale;const e=this.getScaleProps(),n=lM(e);return this._scale=n,iw(n)&&n.genome(this.getGenome()),je(n.type)&&(this._zoomExtent=this._getZoomExtent()),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var e,n;return(n=(e=this.getGenome())==null?void 0:e.toChromosomalInterval(this.getDomain()))!=null?n:this.getDomain()}isZoomed(){return this.isZoomable()&&J0(this.getInitialDomain(),this.getDomain())}isZoomable(){if(!hp(this.channel))return!1;const e=this.getScale().type;return["linear","locus","index","log","pow","sqrt"].includes(e)?!!this.getScaleProps().zoom:!1}zoom(e,n,r){if(!this.isZoomable())return!1;const i=this.getScale(),o=i.domain();let a=[...o],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=vb(a,r||0),a=Xs(a,s,e);break;case"log":a=bb(a,r||0),a=md(a,s,e);break;case"pow":case"sqrt":{const c=i;a=Ab(a,r||0,c.exponent()),a=Zs(a,s,e,c.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return this._zoomExtent&&(a=xb(a,this._zoomExtent[0],this._zoomExtent[1])),[0,1].some(c=>a[c]!=o[c])?(i.domain(a),this._notifyDomainListeners(),!0):!1}async zoomTo(e,n=!1){var s;if(Xo(n)&&(n=n?700:0),!this.isZoomable())throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(e),i=(s=this.members[0])==null?void 0:s.view.context.animator,o=this.getScale(),a=o.domain();if(n>0&&a.length==2){const c=a[1]-a[0],u=a[0]+c/2,f=r[1]-r[0],l=r[0]+f/2,d=i0([u,0,c],[l,0,f]).rho(.7);await i.transition({duration:n/1e3*d.duration,easingFunction:fg,onUpdate:h=>{const[p,,m]=d(h);o.domain([p-m/2,p+m/2]),this._notifyDomainListeners()}}),o.domain(r),this._notifyDomainListeners()}else o.domain(r),i==null||i.requestRender(),this._notifyDomainListeners()}resetZoom(){if(!this.isZoomable())throw new Error("Not a zoomable scale!");const e=this.getDomain(),n=this.getInitialDomain();return[0,1].some(r=>n[r]!=e[r])?(this._scale.domain(n),this._notifyDomainListeners(),!0):!1}getZoomLevel(){return this.isZoomable()?Zo(this._zoomExtent)/Zo(this.getScale().domain()):1}_getZoomExtent(){const e=this.getScaleProps(),n=e.zoom;if(FM(n)&&Xe(n.extent))return this.fromComplexInterval(n.extent);if(n)return e.type=="locus"?this.getGenome().getExtent():this._scale.domain()}_getDefaultScaleProperties(e){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Ki(n)?r.nice=!this.isExplicitDomain():Yn(n)?r.scheme=e==yl?"tableau10":e==gl?"blues":"viridis":Fa(n)?r.range=mp(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r}getGenome(){var n;if(this.type!=="locus")return;const e=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!e)throw new Error("No genome has been defined!");return e}invertToComplex(e){const n=this.getScale();if("invert"in n){const r=n.invert(e);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(e){const n=this.getGenome();return n?n.toChromosomal(e):e}fromComplex(e){return ag(e)?this.getGenome().toContinuous(e.chrom,e.pos):e}fromComplexInterval(e){return this.type==="locus"&&SM(e)?this.getGenome().toContinuousInterval(e):e}_getViewPaths(){return this.members.map(e=>e.view.getPathString()).join(", ")}_reduceDomains(e){const n=this.members.map(e).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))}}function OM(t,e){if(e==kM||e==hg){if(hp(t))return e;throw new Error(`${t} does not support ${e} data type. Only positional channels do.`)}const n={x:["band","band","linear"],y:["band","band","linear"],size:[void 0,"point","linear"],opacity:[void 0,"point","linear"],fillOpacity:[void 0,"point","linear"],strokeOpacity:[void 0,"point","linear"],color:["ordinal","ordinal","linear"],fill:["ordinal","ordinal","linear"],stroke:["ordinal","ordinal","linear"],strokeWidth:[void 0,void 0,"linear"],shape:["ordinal","ordinal",void 0],dx:[void 0,void 0,"null"],dy:[void 0,void 0,"null"],angle:[void 0,void 0,"linear"]},i=["uniqueId","facetIndex","semanticScore","search","text","sample"].includes(t)?"null":n[t]?n[t][[yl,gl,dg].indexOf(e)]:e==dg?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${t}" is not compatible with "${e}" data type. Use of a proper scale may be needed.`);return i}function BM(t,e){Ki(e)&&t.type!=="ordinal"&&(t.range=[0,1]),e=="opacity"&&je(t.type)&&(t.clamp=!0)}function FM(t){return Re(t)}function vl(...t){for(const e of t)if(e!==void 0)return e}class PM{constructor(e){this.channel=e,this.members=[]}get scaleResolution(){var e;return(e=Ue(this.members))==null?void 0:e.view.getScaleResolution(this.channel)}pushUnitView(e,n){const r=e.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:e,channel:n})}getAxisProps(){return Hr(this,"axisProps",()=>{const e=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return e.length>0&&e.some(n=>n===null)?null:ss(e.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const e=o=>{var s;const a=Su(o.view,o.channel);if(!at(a))return{member:o,explicitTitle:vl((s=a.axis)==null?void 0:s.title,a.title),implicitTitle:vl(Vn(a)?a.field:void 0,Du(a)?a.expr:void 0)}},n=this.members.map(e),r=n.filter(o=>{var a;if(Ji(o.member.channel)&&!o.explicitTitle){const s=kr(o.member.channel);return((a=n.find(c=>c.member.view==o.member.view&&c.member.channel==s))==null?void 0:a.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>vl(o.explicitTitle,o.implicitTitle)).filter(ee));return i.size?[...i].join(", "):null}}class pg extends Km{constructor(e,n,r,i){super(e,n,r,i),this.spec=e}}class kt extends Jn{constructor(e,n,r,i){super(e,n,r,i),this.spec=e,this.children=(e.layer||[]).map((o,a)=>{if(Cl(o)||xl(o))return n.createView(o,this,"layer"+a);throw new Error("LayerView accepts only unit or layer specs as children!")})}*[Symbol.iterator](){for(const e of this.children)yield e}render(e,n,r={}){if(!!this.isVisible()){e.pushView(this,n);for(const i of this.children)i.render(e,n,r);e.popView(this)}}propagateInteractionEvent(e){this.handleInteractionEvent(void 0,e,!0),this.children.length&&this.children.at(-1).propagateInteractionEvent(e),!e.stopped&&this.handleInteractionEvent(void 0,e,!1)}}class mg{constructor(e,n){this.n=e,this.maxCols=n!=null?n:1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const o=[];e.push(o);for(let a=0;a<n;a++){const s=i*n+a;s<this.n&&o.push(s)}}return e}get colIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const o=[];e.push(o);for(let a=0;a<r;a++){const s=a*n+i;s<this.n&&o.push(s)}}return e}getCellIndex(e,n){let r=0;if(this.maxCols==1/0)r=n==0?e:void 0;else{if(e>=this.maxCols)return;r=n*this.nCols+e}return r<this.n?r:void 0}getCellCoords(e){if(!(e<0||e>=this.n))return[e%this.nCols,Math.floor(e/this.nCols)]}}function Lt(t){return()=>t}const Vt=class{static create(e,n,r,i){return new Vt(Lt(e),Lt(n),Lt(r),Lt(i))}_offset(e,n){const r=this["_"+e];if(n===0)return r;switch(typeof n){case"number":return()=>r()+n;case"function":return()=>r()+n();default:throw new Error("Not a number of function")}}_passThrough(e){return this._offset(e,0)}constructor(e,n,r,i){this._x=e,this._y=n,this._width=r,this._height=i}get x(){return this._x()}get y(){return this._y()}get width(){return this._width()}get height(){return this._height()}get x2(){return this._x()+this._width()}get y2(){return this._y()+this._height()}equals(e){return e?this===e||this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height:!1}modify(e){if(!Object.keys(e).length)return this;const n=r=>{const i=e[r];return typeof i=="number"?Lt(i):typeof i=="function"?i:this._passThrough(r)};return new Vt(n("x"),n("y"),n("width"),n("height"))}translate(e,n){return e===0&&n===0?this:new Vt(this._offset("x",e),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(e){return this.translate(e.x,e.y)}expand(e,n=1){return e.left==0&&e.top==0&&e.right==0&&e.bottom==0?this:new Vt(e.left?this._offset("x",-e.left*n):this._passThrough("x"),e.top?this._offset("y",-e.top*n):this._passThrough("y"),e.width?this._offset("width",e.width*n):this._passThrough("width"),e.height?this._offset("height",e.height*n):this._passThrough("height"))}shrink(e){return this.expand(e,-1)}intersect(e){return this===e?this:new Vt(()=>Math.max(this.x,e.x),()=>Math.max(this.y,e.y),()=>Math.min(this.x2,e.x2)-Math.max(this.x,e.x),()=>Math.min(this.y2,e.y2)-Math.max(this.y,e.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Vt(Lt(this.x),Lt(this.y),Lt(this.width),Lt(this.height))}containsPoint(e,n){return e>=this.x&&e<this.x2&&n>=this.y&&n<this.y2}normalizePoint(e,n){return{x:(e-this.x)/this.width,y:(n-this.y)/this.height}}toString(){return`Rectangle: x: ${this.x}, y: ${this.y}, width: ${this.width}, height: ${this.height}`}};let dn=Vt;sb(dn,"ZERO",Vt.create(0,0,0,0));function gg(t,e,n){return n=(n-t)/(e-t),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class $n extends se{get identifier(){}handle(e){throw new Error("Source does not handle incoming data!")}async load(){}}function yg(t){var n,r;const e={...t.format};if((n=e.type)!=null||(e.type=UM(t)&&zM(t.url)),(r=e.parse)!=null||(e.parse="auto"),!e.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(t));return e}function zM(t){var e;if(Array.isArray(t)&&(t=t[0]),t)return(e=t.match(/\.(csv|tsv|json)/))==null?void 0:e[1]}const cs=t=>typeof t!="object"?RM:jM,RM=t=>({data:t}),jM=t=>t;function UM(t){return"url"in t}function GM(t){return"dynamicCallbackSource"in t}class vg extends $n{constructor(e){super(),this.callback=e}loadSynchronously(){if(!this.callback)return;const e=this.callback();if(!e||typeof e[Symbol.iterator]!="function")throw new Error("Dynamic data callback didn't return iterable data!");this.reset(),this.beginBatch({type:"file"});let n;for(const r of e)n||(n=cs(r)),this._propagate(n(r));this.complete()}async load(){this.loadSynchronously()}}const bg="chromosome_ticks_and_labels",Ag={x:"width",y:"height"};function bl(t){return t=="x"?"y":"x"}const Al={x:["bottom","top"],y:["left","right"]},wg=Object.fromEntries(Object.entries(Al).map(([t,e])=>e.map(n=>[n,t])).flat(1));function er(t){return wg[t]}class xg extends kt{constructor(e,n,r,i){const o=n=="locus",a={...o?VM:Cg,...QM(n,e),...e};if(super(o?YM(a):Eg(a),r,i,`axis_${e.orient}`),this.axisProps=a,this.axisUpdateRequested=!0,this._addBroadcastHandler("layout",()=>{this.axisUpdateRequested=!0}),this.previousScaleDomain=[],this.axisLength=void 0,this.ticks=[],this.tickSource=new vg(()=>this.ticks),o){const s=er(this.axisProps.orient),c=this.getScaleResolution(s).getGenome();this.findChildByName(bg).getDynamicDataSource=()=>new vg(()=>c.chromosomes)}this.blockEncodingInheritance=!0}getOrient(){return this.axisProps.orient}getSize(){const e={px:this.getPerpendicularSize()},n={grow:1};return wg[this.axisProps.orient]=="x"?new qn(n,e):new qn(e,n)}getPerpendicularSize(){return wl(this.axisProps)}getDynamicDataSource(){return this.tickSource}_updateAxisData(){const e=er(this.axisProps.orient),n=this.getScaleResolution(e).getScale(),r=n.domain();if(J0(r,this.previousScaleDomain)&&!this.axisUpdateRequested)return;this.previousScaleDomain=r;const i=this.ticks,o=HM(this.axisProps,n,this.axisLength,i);o!==i&&(this.ticks=o,this.tickSource.loadSynchronously()),this.axisUpdateRequested=!1}onBeforeRender(){super.onBeforeRender(),this._updateAxisData()}render(e,n,r={}){!this.isVisible()||(this.axisLength=n[Ag[er(this.getOrient())]],super.render(e,n,r))}isPickingSupported(){return!1}}function wl(t){const e=er(t.orient);let n=t.ticks&&t.tickSize||0;return t.labels&&(n+=t.labelPadding,e=="x"?n+=t.labelFontSize:n+=30),t.title&&(n+=t.titlePadding+t.titleFontSize),n=Math.min(t.maxExtent||1/0,Math.max(t.minExtent||0,n)),n}function HM(t,e,n,r=[]){const i=s=>25+60*gg(100,700,s);let o=ce(t.tickCount)?t.tickCount:Math.round(n/i(n));o=$m(e,o,t.tickMinStep);const a=t.values?eg(e,t.values,o):JD(e,o);if(Lx(a,r,s=>s,s=>s.value))return r;{const s=eM(e,o,t.format);return a.map(c=>({value:c,label:s(c)}))}}const Cg={values:null,minExtent:20,maxExtent:1/0,offset:0,domain:!0,domainWidth:1,domainColor:"gray",domainDash:null,domainDashOffset:0,domainCap:"square",ticks:!0,tickSize:5,tickWidth:1,tickColor:"gray",tickDash:null,tickDashOffset:0,tickCap:"square",tickCount:null,tickMinStep:null,labels:!0,labelAlign:"center",labelBaseline:"middle",labelPadding:4,labelFontSize:10,labelLimit:180,labelColor:"black",format:null,titleColor:"black",titleFont:"sans-serif",titleFontSize:10,titlePadding:3};function QM(t,e){var s;const n=e.orient,r=t=="nominal"||t=="ordinal";let i="center",o="middle",a=(s=e.labelAngle)!=null?s:(n=="top"||n=="bottom")&&r?-90:0;switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(a)>30?(i=a>0==(n=="bottom")?"left":"right",o="middle"):o=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:a,labelBaseline:o}}function Eg(t){const e={...t,extent:wl(t)},n=er(e.orient),r=bl(n),i=e.orient=="bottom"||e.orient=="right"?1:-1,o=e.orient=="bottom"||e.orient=="left"?1:0,a=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:e.domainDash,strokeCap:e.domainCap,color:e.domainColor,[r]:o,size:e.domainWidth}}),s=()=>({name:"labels",mark:{type:"text",clip:!1,align:e.labelAlign,angle:e.labelAngle,baseline:e.labelBaseline,[r+"Offset"]:(e.tickSize+e.labelPadding)*i,[r]:o,size:e.labelFontSize,color:e.labelColor,minBufferSize:1500},encoding:{[n]:{field:"value",type:"quantitative"},text:{field:"label"}}}),c=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:e.tickDash,strokeCap:e.tickCap,color:e.tickColor,size:e.tickWidth,minBufferSize:300},encoding:{[r]:{value:o},[r+"2"]:{value:o-e.tickSize/e.extent*(o?1:-1)}}}),u=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:e.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(e.orient)],text:e.title,color:e.titleColor,[n]:.5,[r]:1-o}}),f=()=>{const d={name:"ticks_and_labels",encoding:{[n]:{field:"value",type:"quantitative"}},layer:[]};return e.ticks&&d.layer.push(c()),e.labels&&d.layer.push(s()),d},l={[Ag[bl(er(e.orient))]]:e.extent,data:{dynamicCallbackSource:!0},layer:[]};return e.domain&&l.layer.push(a()),(e.ticks||e.labels)&&l.layer.push(f()),e.title&&l.layer.push(u()),l}const VM={...Cg,chromTicks:!0,chromTickSize:18,chromTickWidth:1,chromTickColor:"#989898",chromTickDash:[4,2],chromTickDashOffset:1,chromLabels:!0,chromLabelFontSize:13,chromLabelFontWeight:"normal",chromLabelFontStyle:"normal",chromLabelColor:"black",chromLabelAlign:"left",chromLabelPadding:7};function YM(t){const e={...t,extent:wl(t)},n=er(e.orient),r=bl(n),i=e.orient=="bottom"||e.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:t.chromTickDash,strokeDashOffset:t.chromTickDashOffset,[r]:i,[r+"2"]:i-e.chromTickSize/e.extent*(i?1:-1),color:t.chromTickColor,size:e.chromTickWidth}}),a=()=>{let u;switch(e.orient){case"top":u={y:0,angle:0,paddingX:4,dy:-e.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":u={y:1,angle:0,paddingX:4,dy:e.chromLabelPadding+e.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":u={x:1,angle:-90,paddingY:4,dy:-e.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":u={x:0,angle:90,align:"right",paddingY:4,dy:-e.chromLabelPadding};break;default:u={}}return{name:"chromosome_labels",mark:{type:"text",size:e.chromLabelFontSize,font:e.chromLabelFont,fontWeight:e.chromLabelFontWeight,fontStyle:e.chromLabelFontStyle,color:e.chromLabelColor,align:t.chromLabelAlign,baseline:"alphabetic",clip:!1,...u},encoding:{[n+"2"]:{field:"continuousEnd",type:"locus"},text:{field:"name"}}}};let s;switch(e.orient){case"bottom":case"top":s={};break;case"left":s={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":s={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:s={}}const c=Eg({...t,...s});if(t.chromTicks||t.chromLabels){const u={name:bg,data:{dynamicCallbackSource:!0},encoding:{[n]:{field:"continuousStart",type:"locus",band:0}},layer:[]};if(t.chromTicks&&u.layer.push(o()),t.chromLabels){u.layer.push(a());let f;c.layer.filter(l=>l.name=="ticks_and_labels").forEach(l=>l.layer.filter(d=>d.name=="labels").forEach(d=>{f=d.mark})),f&&(e.orient=="top"||e.orient=="bottom"?(f.viewportEdgeFadeWidthLeft=30,f.viewportEdgeFadeDistanceLeft=40):(f.viewportEdgeFadeWidthBottom=30,f.viewportEdgeFadeDistanceBottom=40))}c.layer.push(u)}return c}const Sg={anchor:"middle",frame:"group",offset:10,orient:"top",align:void 0,angle:0,baseline:"alphabetic",dx:0,dy:0,color:void 0,font:void 0,fontSize:12,fontStyle:"normal",fontWeight:"normal"},_M={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},WM={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},XM={start:0,middle:.5,end:1},ZM={start:"left",middle:"center",end:"right"};function qM(t){var u,f,l;if(!t)return;const e=ee(t)?{text:t}:t;if(!e.text||e.orient=="none")return;const n=(u={"track-title":_M,overlay:WM}[e.style])!=null?u:{},r={...Sg,...n,...e};let i={},o={x:0,y:0};const a=XM[(f=r.anchor)!=null?f:"middle"];switch(r.orient){case"top":o={x:a,y:1},i={baseline:"alphabetic",angle:0};break;case"right":o={x:1,y:1-a},i={baseline:"alphabetic",angle:90};break;case"bottom":o={x:a,y:0},i={baseline:"top",angle:0};break;case"left":o={x:0,y:a},i={baseline:"alphabetic",angle:-90};break}const s={...Sg,...i,...n,...e},c={xOffset:0,yOffset:0};switch(r.orient){case"top":c.yOffset=-s.offset;break;case"right":c.xOffset=s.offset;break;case"bottom":c.yOffset=s.offset;break;case"left":c.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...o,...c,text:s.text,align:(l=s.align)!=null?l:ZM[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function Dg(t,e,n,r){if(t.type=="wheel"){t.uiEvent.preventDefault();const i=t.uiEvent,o=i.deltaMode?120:1;let{x:a,y:s}=t.point;if(r){const c=r.mark.encoders;c.x&&!c.x2&&(a=+c.x(r.datum)*e.width+e.x),c.y&&!c.y2&&(s=(1-+c.y(r.datum))*e.height+e.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:a,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*o/300}):n({x:a,y:s,xDelta:-i.deltaX*o,yDelta:0,zDelta:0})}else if(t.type=="mousedown"&&t.uiEvent.button===0){const i=t.uiEvent;i.preventDefault();let o=i;const a=c=>{n({x:o.clientX,y:o.clientY,xDelta:c.clientX-o.clientX,yDelta:c.clientY-o.clientY,zDelta:0}),o=c},s=c=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",a,!1)}}class Mg extends Jn{constructor(n,r,i,o,a){var s;super(n,r,i,o);Me(this,Po);Me(this,Ct);Me(this,Gs);Me(this,Hs);Me(this,hr);Me(this,zo);Me(this,Ro);Me(this,jo);Me(this,Qs);Me(this,ai,1/0);Me(this,si,10);Me(this,tt,[]);Me(this,ci,0);this.spec=n,Ho(this,si,(s=n.spacing)!=null?s:10),Ho(this,ai,a),Ho(this,tt,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){var r;(r=n.parent)!=null||(n.parent=this),ie(this,tt).push(be(this,Po,ud).call(this,n)),cb(this,ci)._++}setChildren(n){for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=ie(this,tt).findIndex(o=>o.view==n);if(i>=0)ie(this,tt)[i]=be(this,Po,ud).call(this,r);else throw new Error("Not my child view!")}get children(){return ie(this,tt).map(n=>n.view)}get childCount(){return ie(this,tt).length}onScalesResolved(){super.onScalesResolved(),be(this,Hs,lb).call(this)}*[Symbol.iterator](){for(const n of ie(this,tt)){n.background&&(yield n.background);for(const r of Object.values(n.axes))r&&(yield r);yield n.view,n.title&&(yield n.title)}}getOverhang(){const n=be(this,hr,Qo).call(this,"column"),r=be(this,hr,Qo).call(this,"row");return!n.length||!r.length?$e.zero():new $e(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)}getSize(){return this._cache("size",()=>new qn(be(this,Ro,fd).call(this,"column"),be(this,Ro,fd).call(this,"row")).subtractPadding(this.getOverhang()).addPadding(this.getPadding()))}render(n,r,i={}){var u;if(!this.isVisible())return;r=r.shrink(this.getPadding()),n.pushView(this,r);const o={devicePixelRatio:this.context.glHelper.dpr},a=fo(be(this,zo,ld).call(this,"column"),r.width,o),s=fo(be(this,zo,ld).call(this,"row"),r.height,o),c=new mg(ie(this,Ct,xn).length,(u=ie(this,ai))!=null?u:1/0);for(const[f,l]of ie(this,Ct,xn).entries()){const{view:d,axes:h,background:p,title:m}=l,[y,g]=c.getCellCoords(f),A=a[be(this,jo,dd).call(this,"column",y)],w=s[be(this,jo,dd).call(this,"row",g)],C=d.getSize(),b=d.getPadding().subtract(d.getOverhang()),v=A.location+b.left,x=w.location+b.top,E=(C.width.grow?A.size:C.width.px)-b.width,I=(C.height.grow?w.size:C.height.px)-b.height,L=new dn(()=>r.x+v,()=>r.y+x,()=>E,()=>I);l.coords=L,p==null||p.render(n,L,i);const T=$M(d);T&&d.render(n,L,i);for(const[B,H]of Object.entries(h)){const U=H.axisProps;let we;const Ne=H.getPerpendicularSize();B=="bottom"?we=L.translate(0,L.height+U.offset).modify({height:Ne}):B=="top"?we=L.translate(0,-Ne-U.offset).modify({height:Ne}):B=="left"?we=L.translate(-Ne-U.offset,0).modify({width:Ne}):B=="right"&&(we=L.translate(L.width+U.offset,0).modify({width:Ne})),H.render(n,we)}T||d.render(n,L,i),m==null||m.render(n,L,{...i,clipRect:void 0})}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=ie(this,Ct,xn).find(o=>o.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof ye||i instanceof kt)&&Dg(n,r.coords,o=>be(this,Qs,fb).call(this,r.coords,r.view,o),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}ai=new WeakMap,si=new WeakMap,tt=new WeakMap,ci=new WeakMap,Po=new WeakSet,ud=function(n){var i;const r={view:n,background:void 0,axes:{},coords:dn.ZERO};if(n instanceof ye||n instanceof kt){const o=(i=n.spec)==null?void 0:i.view;if((o==null?void 0:o.fill)||(o==null?void 0:o.stroke)){const s=new ye(KM(o),this.context,n,"background"+ie(this,ci));s.blockEncodingInheritance=!0,r.background=s}const a=qM(n.spec.title);if(a){const s=new ye(a,this.context,n,"title"+ie(this,ci));s.blockEncodingInheritance=!0,r.title=s}}return r},Ct=new WeakSet,xn=function(){return ie(this,tt).filter(n=>n.view.isVisible())},Gs=new WeakSet,ub=function(){var n;return new mg(ie(this,Ct,xn).length,(n=ie(this,ai))!=null?n:1/0)},Hs=new WeakSet,lb=function(){if(Object.keys(this.resolutions.axis).length)throw new Error("ConcatView does not (currently) support shared axes!");for(const n of ie(this,tt)){const{view:r,axes:i}=n,o=(a,s,c)=>{var f;const u=a.getAxisProps();if(u!==null){if(!u.orient){for(const l of Al[s])if(!i[l]){u.orient=l;break}if(!u.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if((f=u.title)!=null||(u.title=a.getTitle()),!Al[s].includes(u.orient))throw new Error(`Invalid axis orientation "${u.orient}" on channel "${s}"!`);if(i[u.orient])throw new Error(`An axis with the orient "${u.orient}" already exists!`);i[u.orient]=new xg(u,a.scaleResolution.type,this.context,c)}};if(r instanceof ye||r instanceof kt)for(const a of["x","y"]){const s=r.resolutions.axis[a];!s||o(s,a,r)}if(r instanceof kt){for(const a of r.children)for(const[s,c]of Object.entries(a.resolutions.axis)){const u=c.getAxisProps();u&&u.orient&&o(c,s,a)}for(const a of r.children)for(const[s,c]of Object.entries(a.resolutions.axis)){const u=c.getAxisProps();u&&!u.orient&&o(c,s,a)}}}},hr=new WeakSet,Qo=function(n){const r=n=="column"?["left","right"]:["top","bottom"],i=n=="column"?"width":"height",o=(a,s)=>a.map(c=>{const u=ie(this,Ct,xn)[c].axes[r[s]];if(u)return Math.max(u.getPerpendicularSize()+u.axisProps.offset,0);const f=ie(this,Ct,xn)[c].view.getOverhang();return n=="column"?s?f.right:f.left:s?f.bottom:f.top}).reduce((c,u)=>Math.max(c,u),0);return ie(this,Gs,ub)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:o(a,0),axisAfter:o(a,1),view:GD(a.map(s=>ie(this,Ct,xn)[s].view.getSize()[i]))}))},zo=new WeakSet,ld=function(n){const r=be(this,hr,Qo).call(this,n),i=[];i.push(ho);for(const[o,a]of r.entries())o>0&&i.push({px:ie(this,si),grow:0}),(o==0||this.wrappingFacet)&&i.push(ho),i.push({px:a.axisBefore,grow:0}),i.push(a.view),i.push({px:a.axisAfter,grow:0}),(o==r.length-1||this.wrappingFacet)&&i.push(ho);return i},Ro=new WeakSet,fd=function(n){var a,s;let r=0,i=0;const o=be(this,hr,Qo).call(this,n);for(const[c,u]of o.entries())c>0&&(i+=ie(this,si)),(c==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=(a=u.view.px)!=null?a:0,r+=(s=u.view.grow)!=null?s:0,i+=u.axisAfter,(c==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},jo=new WeakSet,dd=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Qs=new WeakSet,fb=function(n,r,i){for(const[o,a]of Object.entries(JM(r))){if(a.size<=0)continue;const s=n.normalizePoint(i.x,i.y),c=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),u={x:c.x-s.x,y:c.y-s.y};for(const f of a)f.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?u.x:-u.y)}this.context.animator.requestRender()};function KM(t){return{configurableVisibility:!1,data:{values:[{}]},mark:{fill:null,strokeWidth:1,fillOpacity:t.fill?1:0,...t,type:"rect",clip:!1,tooltip:null}}}function JM(t){const e={x:new Set,y:new Set};return t.visit(n=>{for(const[r,i]of Object.entries(e)){const o=n.getScaleResolution(r);o&&o.isZoomable()&&i.add(o)}}),e}function $M(t){let e=!0;return t.visit(n=>{n instanceof ye&&e&&(e=n.mark.properties.clip)}),e}class Vr extends Mg{constructor(e,n,r,i){super(e,n,r,i,Sl(e)?e.columns:El(e)?1:1/0),this.spec=e}_createChildren(){const e=this.spec,n=Sl(e)?e.concat:El(e)?e.vconcat:e.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,"grid"+i)))}}class e8{constructor(){this.types=[];const e=n=>(r,i,o,a)=>{var s;return new n(r,i,o,(s=r.name)!=null?s:a)};this.addViewType(t8,e(pg)),this.addViewType(Cl,e(kt)),this.addViewType(xl,e(ye)),this.addViewType(El,e(Vr)),this.addViewType(n8,e(Vr)),this.addViewType(Sl,e(Vr))}addViewType(e,n){this.types.push({specGuard:e,factory:n})}createView(e,n,r,i){const o=this.types.find(a=>a.specGuard(e));if(o)return o.factory(e,n,r,i!=null?i:"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(e)]))}isViewSpec(e){const n=this.types.filter(r=>r.specGuard(e));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function xl(t){return"mark"in t&&(ee(t.mark)||Re(t.mark))}function Cl(t){return"layer"in t&&Re(t.layer)}function Tg(t){return t&&(xl(t)||Cl(t))&&"aggregateSamples"in t}function t8(t){return"import"in t}function El(t){return"vconcat"in t&&Xe(t.vconcat)}function n8(t){return"hconcat"in t&&Xe(t.hconcat)}function Sl(t){return"concat"in t&&Xe(t.concat)}const r8={point:MD,rect:wD,rule:ND,link:BD,text:UD};class ye extends Jn{constructor(e,n,r,i){super(e,n,r,i),this.spec=e;const o=r8[this.getMarkType()];if(o)this.mark=new o(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.sampleAggregateViews=[],this._initializeAggregateViews(),this.coords=void 0}*[Symbol.iterator](){for(const e of this.sampleAggregateViews)yield e}replaceChild(e,n){const r=this.sampleAggregateViews.indexOf(e);if(r>=0)this.sampleAggregateViews[r]=n;else throw new Error("Not my child view!")}render(e,n,r={}){!this.isVisible()||(this.coords=n,e.pushView(this,n),e.renderMark(this.mark,r),e.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(e){var r;const n=this.mark.encoding;for(const[i,o]of Object.entries(n)){if(!Je(o))continue;let a=kr((r=o.resolutionChannel)!=null?r:i);if(e=="axis"&&!Ki(a))continue;let s=this;for(;s.parent instanceof Jn&&["shared","excluded"].includes(s.parent.getConfiguredOrDefaultResolution(a,e))&&s.getConfiguredOrDefaultResolution(a,e)!="excluded";)s=s.parent;s.resolutions[e][a]||(s.resolutions[e][a]=e=="scale"?new LM(a):new PM(a)),Ki(i)?s.resolutions[e][a].pushUnitView(this,i):e=="scale"&&s.resolutions[e][a].pushUnitView(this,i)}}getAccessor(e){return this._cache("accessor/"+e,()=>{const n=this.mark.encoding;if(n&&n[e])return this.context.accessorFactory.createAccessor(n[e])})}getFacetAccessor(e){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(e){if(Ji(e))throw new Error(`getDomain(${e}), must only be called for primary channels!`);const n=this.mark.encoding[e];if(!Je(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(e){var i,o;const n=this._validateDomainQuery(e),r=n&&n.scale&&n.scale.domain;if(r){const a=this.getScaleResolution((i=n.resolutionChannel)!=null?i:e);return lg((o=n.type)!=null?o:"nominal",a.fromComplexInterval(r))}}extractDataDomain(e){var s;const r=(s=this._validateDomainQuery(e).type)!=null?s:"nominal",i=c=>{let u;const f=this.mark.encoding[c];if(f){const l=this.context.accessorFactory.createAccessor(f);if(l)if(u=lg(r),l.constant)u.extend(l({}));else{const d=this.getCollector();d!=null&&d.completed&&d.visitData(h=>u.extend(l(h)))}}return u};let o=i(e);const a=Mu[e];if(a){const c=i(a);c&&o.extendAll(c)}return o}getZoomLevel(){const e=n=>{var r,i;return(i=(r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())!=null?i:1};return qi.map(e).reduce((n,r)=>n*r,1)}_initializeAggregateViews(){var e,n;if(Tg(this.spec))for(const r of this.spec.aggregateSamples){const i=(e=r.transform)!=null?e:[];i.length&&Ue(i).type!="collect"&&i.push({type:"collect"}),i.push({type:"mergeFacets"}),r.transform=i,r.encoding={...(n=r.encoding)!=null?n:{},sample:null};const o=this.context.createView(r,this,"summaryView");o.getFacetFields=a=>{},this.sampleAggregateViews.push(o)}}propagateInteractionEvent(e){e.target=this}getDefaultResolution(e,n){return e=="x"?"shared":"independent"}}function*Dl(t,e=[]){for(const[n,r]of t.entries())if(r instanceof Map)for(const i of Dl(r,[...e,n]))yield i;else yield[[...e,n],r]}class Yr extends se{constructor(e){super(),this.params=e!=null?e:{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new Dn([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(e){this._data.push(e)}beginBatch(e){SD(e)&&(this._data=[],this.facetBatches.set(Ke(e.facetId),this._data))}complete(){var i,o;const e=(i=this.params)==null?void 0:i.sort,n=e?gd(e.field,e.order):void 0,r=a=>{n&&a.sort(n)};if((o=this.params.groupby)!=null&&o.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const a=this.params.groupby.map(c=>Z(c)),s=fi(this._data,...a);this.facetBatches.clear();for(const[c,u]of Dl(s))this.facetBatches.set(c,u)}for(const a of this.facetBatches.values())r(a);if(this.children.length)for(const[a,s]of this.facetBatches.entries()){if(a){const c={type:"facet",facetId:a};for(const u of this.children)u.beginBatch(c)}for(const c of s)this._propagate(c)}super.complete();for(const a of this.observers)a(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const e=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of e.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(e){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)e(n[r])}getItemCount(){let e=0;for(const n of this.facetBatches.values())e+=n.length;return e}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class mo{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(e,n){let r=this.length++;for(;r>0;){const i=r-1>>1,o=this.values[i];if(n>=o)break;this.ids[r]=this.ids[i],this.values[r]=o,r=i}this.ids[r]=e,this.values[r]=n}pop(){if(this.length===0)return;const e=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let o=0;for(;o<i;){let a=(o<<1)+1;const s=a+1;let c=this.ids[a],u=this.values[a];const f=this.values[s];if(s<this.length&&f<u&&(a=s,c=this.ids[s],u=f),u>=r)break;this.ids[o]=c,this.values[o]=u,o=a}this.ids[o]=n,this.values[o]=r}return e}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class i8 extends se{get behavior(){return Nt}constructor(e){super(),this.params=e,this.startAccessor=Z(e.start),this.endAccessor=Z(e.end),this.chromAccessor=e.chrom?Z(e.chrom):n=>{},this.weightAccessor=e.weight?Z(e.weight):n=>1,this.as={coverage:e.as||"coverage",start:e.asStart||e.start,end:e.asEnd||e.end,chrom:e.asChrom||e.chrom},this.createSegment=new Function("start","end","coverage","chrom","return {"+Object.entries(this.as).filter(([n,r])=>r).map(([n,r])=>`${JSON.stringify(r)}: ${n}`).join(", ")+"};"),this.ends=new mo}reset(){super.reset(),this.initialize()}initialize(){const e=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,o=this.endAccessor,a=this.chromAccessor,s=this.weightAccessor;let c,u,f,l=0,d;const h=this.ends;h.clear();const p=(y,g,A)=>{if(y==g)return;let w=!1;c&&(c[e]===A?(c[n]=g,w=!0):c[e]!=0&&this._propagate(c)),w||(c=this.createSegment(y,g,A,f))},m=()=>{let y;for(;(y=h.peekValue())!==void 0;)p(d,y,l),d=y,l-=h.pop();d=void 0,c&&(this._propagate(c),c=void 0)};this.handle=y=>{const g=i(y);let A;for(;(A=h.peekValue())!==void 0&&A<g;)p(d,A,l),d=A,l-=h.pop();if(r){let C=a(y);C!==u&&(m(),f=C,u=f)}d!==void 0&&p(d,g,l),d=g;const w=s(y);l+=w,h.push(w,o(y))},this.complete=()=>{m(),super.complete()}}}function o8(t,e,n=0,r=t.length){const i=new mo,o=r-n;let a;for(a=0;a<e&&a<o;a++)i.push(a,t[n+a]);for(;a<o;a++){const u=t[n+a];u>=i.peekValue()&&(i.push(a,u),i.pop())}const s=[];let c;for(;(c=i.pop())!==void 0;)s.push(n+c);return s.reverse()}class a8{constructor(e,n=-1/0,r=1/0){this.maxSize=e,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(e,n,r=0){if(e>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const o=this._findSlot(e,n,i);return o>=0?o:this._findSlot(e,n,this.upperChildren[r])}else return r}else return-1}reserve(e,n){if(n-e<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(e,n);if(r<0)return!1;const i=this.n++,o=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=e,this.lowerLimits[o]=n,this.upperLimits[o]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=o,!0}}class s8 extends se{constructor(e,n){var i,o;if(super(),this.params=e,this._data=[],this.channel=(i=e.channel)!=null?i:"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Z(this.params.pos),this.posBisector=Jo(this.posAccessor),this.scoreAccessor=Z(this.params.score),this.widthAccessor=Z(this.params.width),this.laneAccessor=this.params.lane?Z(this.params.lane):a=>0,this.padding=(o=this.params.padding)!=null?o:0,this.reservationMaps=new Map,this.resolution=n.getScaleResolution(this.channel);const r=()=>this._filterAndPropagate();this.schedule=()=>n.context.animator.requestTransition(r),this.resolution.addEventListener("domain",a=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const e=this.posAccessor;this._data.sort((n,r)=>e(n)-e(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new a8(200));this.schedule(),super.complete()}_filterAndPropagate(){var a;super.reset();const e=this.resolution.getScale(),n=(a=this.resolution.members[0].view.coords)==null?void 0:a[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=e.domain(),i=70,o=o8(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of o){const c=this._data[s],u=e(this.posAccessor(c))*n,f=this.widthAccessor(c)/2+this.padding;this.reservationMaps.get(this.laneAccessor(c)).reserve(u-f,u+f)&&this._propagate(c)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(e){this._data.push(e)}}class c8 extends se{constructor(e){super(),this.params=e,this.predicate=void 0}initialize(){this.predicate=Eu(this.params.expr,this.getGlobalObject())}handle(e){this.predicate(e)&&this._propagate(e)}}const u8="0".charCodeAt(0);function*l8(t,e=","){const n=e.charCodeAt(0);let r=0;for(let i=0;i<t.length;i++){const o=t.charCodeAt(i);o==n?(yield r,r=0):r=r*10+o-u8}yield r}class f8 extends se{get behavior(){return Nt}constructor(e){var a,s;super();const n=Z((a=e.exons)!=null?a:"exons"),r=Z((s=e.start)!=null?s:"start"),[i,o]=e.as||["exonStart","exonEnd"];this.handle=c=>{let u=r(c),f=u,l=!0;const d=n(c);for(const h of l8(d)){if(l)f=u+h;else{u=f+h;const p=Object.assign({},c);p[i]=f,p[o]=u,this._propagate(p)}l=!l}}}}class d8 extends se{get behavior(){return Nt}constructor(e){super();const n=Ke(e.field).map(o=>Z(o)),r=Ke(e.separator),i=Ke(e.as||e.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=o=>{if(n.some(c=>!c(o)))return;const a=n.map((c,u)=>c(o).split(r[u]));h8(a,o);const s=a[0].length;for(let c=0;c<s;c++){const u=Object.assign({},o);for(let f=0;f<n.length;f++)u[i[f]]=a[f][c];this._propagate(u)}}}}function h8(t,e){const n=t.map(r=>r.length);if(!n.every(r=>r==n[0]))throw new Error("Mismatching number of elements in the fields to be split: "+JSON.stringify(e))}class p8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e,this.as=e.as,this.fn=void 0}initialize(){this.fn=Eu(this.params.expr,this.getGlobalObject())}handle(e){e[this.as]=this.fn(e),this._propagate(e)}}class Ig extends se{get behavior(){return fn}constructor(e,n){var p;super();const r=(p=e.channel)!=null?p:"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const o=Z(e.chrom),a=Ke(e.pos).map(m=>Z(m)),s=Ke(e.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const c=Ke(e.offset);let u;if(c.length==0)u=new Array(a.length).fill(0);else if(c.length==1)u=new Array(a.length).fill(c[0]);else if(c.length==a.length)u=c;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(e.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((m,y)=>`datum[${JSON.stringify(m)}] = chromOffset + +posAccessors[${y}](datum) - ${u[y]};`).join(`
1343
- `));let l,d=0;const h=m=>{if(m!==l){if(d=i.cumulativeChromPositions.get(m),d===void 0)throw new Error("Unknown chromosome/contig: "+m);l=m}return d};this.handle=m=>{f(m,h(o(m)),a),this._propagate(m)}}}const Ng={pages:["Lato-Regular.png"],chars:[{id:87,width:53,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:43.491,chnl:15,x:0,y:0,page:0},{id:124,width:17,height:50,xoffset:0,yoffset:-32.193000000000005,xadvance:10.521,chnl:15,x:0,y:42,page:0},{id:40,width:20,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:94,page:0},{id:41,width:19,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:145,page:0},{id:36,width:32,height:49,xoffset:0,yoffset:-34.419000000000004,xadvance:24.360000000000003,chnl:15,x:0,y:196,page:0},{id:125,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:247,page:0},{id:91,width:22,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:297,page:0},{id:93,width:19,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:347,page:0},{id:123,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:397,page:0},{id:106,width:19,height:48,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:0,y:447,page:0},{id:81,width:43,height:47,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:21,y:447,page:0},{id:77,width:45,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:38.997,chnl:15,x:66,y:447,page:0},{id:64,width:43,height:44,xoffset:0,yoffset:-28.539,xadvance:35.133,chnl:15,x:23,y:397,page:0},{id:92,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:68,y:397,page:0},{id:47,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:98,y:397,page:0},{id:109,width:42,height:32,xoffset:0,yoffset:-21.609,xadvance:34.545,chnl:15,x:113,y:447,page:0},{id:119,width:42,height:31,xoffset:0,yoffset:-21.315,xadvance:32.991,chnl:15,x:157,y:447,page:0},{id:42,width:25,height:42,xoffset:0,yoffset:-31.626,xadvance:17.85,chnl:15,x:128,y:397,page:0},{id:37,width:42,height:41,xoffset:0,yoffset:-30.387,xadvance:33.663000000000004,chnl:15,x:155,y:397,page:0},{id:79,width:42,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:199,y:397,page:0},{id:102,width:24,height:41,xoffset:0,yoffset:-30.534000000000002,xadvance:14.721,chnl:15,x:243,y:397,page:0},{id:100,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:269,y:397,page:0},{id:98,width:32,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:302,y:397,page:0},{id:56,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:336,y:397,page:0},{id:38,width:40,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:29.904000000000003,chnl:15,x:370,y:397,page:0},{id:108,width:17,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:9.912,chnl:15,x:412,y:397,page:0},{id:107,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:21.336000000000002,chnl:15,x:431,y:397,page:0},{id:48,width:33,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:464,y:397,page:0},{id:71,width:38,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:30.681,chnl:15,x:21,y:347,page:0},{id:83,width:31,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:22.785,chnl:15,x:61,y:347,page:0},{id:63,width:27,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:18.795,chnl:15,x:94,y:347,page:0},{id:105,width:18,height:41,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:123,y:347,page:0},{id:51,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:143,y:347,page:0},{id:104,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.436,chnl:15,x:177,y:347,page:0},{id:67,width:37,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:28.056,chnl:15,x:210,y:347,page:0},{id:88,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.258000000000003,chnl:15,x:249,y:347,page:0},{id:68,width:40,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:31.941000000000003,chnl:15,x:288,y:347,page:0},{id:70,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:23.751,chnl:15,x:330,y:347,page:0},{id:34,width:23,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:15.561000000000002,chnl:15,x:364,y:347,page:0},{id:72,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:389,y:347,page:0},{id:73,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.760000000000002,chnl:15,x:429,y:347,page:0},{id:74,width:24,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:17.745,chnl:15,x:449,y:347,page:0},{id:75,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.825000000000003,chnl:15,x:24,y:297,page:0},{id:76,width:31,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:21.567,chnl:15,x:475,y:347,page:0},{id:66,width:35,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.153000000000002,chnl:15,x:64,y:297,page:0},{id:78,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:101,y:297,page:0},{id:33,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.298,chnl:15,x:141,y:297,page:0},{id:80,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.221,chnl:15,x:161,y:297,page:0},{id:65,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:197,y:297,page:0},{id:82,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.313000000000002,chnl:15,x:237,y:297,page:0},{id:35,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:275,y:297,page:0},{id:84,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.801000000000002,chnl:15,x:310,y:297,page:0},{id:85,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:30.891000000000002,chnl:15,x:346,y:297,page:0},{id:86,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:385,y:297,page:0},{id:39,width:16,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:8.568000000000001,chnl:15,x:425,y:297,page:0},{id:69,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.255000000000003,chnl:15,x:443,y:297,page:0},{id:89,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.208000000000002,chnl:15,x:23,y:247,page:0},{id:90,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.284000000000002,chnl:15,x:477,y:297,page:0},{id:49,width:31,height:40,xoffset:0,yoffset:-30.156000000000002,xadvance:24.360000000000003,chnl:15,x:61,y:247,page:0},{id:50,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:94,y:247,page:0},{id:57,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:128,y:247,page:0},{id:94,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:162,y:247,page:0},{id:96,width:21,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:16.8,chnl:15,x:196,y:247,page:0},{id:55,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:219,y:247,page:0},{id:54,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:254,y:247,page:0},{id:53,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:289,y:247,page:0},{id:52,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:323,y:247,page:0},{id:103,width:31,height:39,xoffset:0,yoffset:-21.630000000000003,xadvance:21.84,chnl:15,x:358,y:247,page:0},{id:112,width:32,height:39,xoffset:0,yoffset:-21.651,xadvance:23.541,chnl:15,x:391,y:247,page:0},{id:113,width:31,height:39,xoffset:0,yoffset:-21.651,xadvance:23.520000000000003,chnl:15,x:425,y:247,page:0},{id:116,width:25,height:39,xoffset:0,yoffset:-28.182000000000002,xadvance:15.057,chnl:15,x:458,y:247,page:0},{id:121,width:31,height:38,xoffset:0,yoffset:-21.273,xadvance:21.651,chnl:15,x:34,y:196,page:0},{id:59,width:18,height:36,xoffset:0,yoffset:-20.706,xadvance:10.983,chnl:15,x:485,y:247,page:0},{id:43,width:32,height:34,xoffset:0,yoffset:-24.486,xadvance:24.360000000000003,chnl:15,x:67,y:196,page:0},{id:60,width:30,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:101,y:196,page:0},{id:62,width:31,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:133,y:196,page:0},{id:117,width:30,height:32,xoffset:0,yoffset:-21.273,xadvance:23.415000000000003,chnl:15,x:166,y:196,page:0},{id:99,width:29,height:32,xoffset:0,yoffset:-21.609,xadvance:20.055,chnl:15,x:198,y:196,page:0},{id:110,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:23.436,chnl:15,x:229,y:196,page:0},{id:111,width:32,height:32,xoffset:0,yoffset:-21.609,xadvance:23.814,chnl:15,x:262,y:196,page:0},{id:126,width:32,height:26,xoffset:0,yoffset:-16.128,xadvance:24.360000000000003,chnl:15,x:201,y:447,page:0},{id:101,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:22.176000000000002,chnl:15,x:296,y:196,page:0},{id:114,width:25,height:32,xoffset:0,yoffset:-21.651,xadvance:15.288,chnl:15,x:329,y:196,page:0},{id:115,width:27,height:32,xoffset:0,yoffset:-21.609,xadvance:18.186,chnl:15,x:356,y:196,page:0},{id:97,width:28,height:32,xoffset:0,yoffset:-21.651,xadvance:20.874000000000002,chnl:15,x:385,y:196,page:0},{id:118,width:31,height:31,xoffset:0,yoffset:-21.273,xadvance:21.672,chnl:15,x:415,y:196,page:0},{id:61,width:31,height:29,xoffset:0,yoffset:-19.089000000000002,xadvance:24.360000000000003,chnl:15,x:448,y:196,page:0},{id:120,width:30,height:31,xoffset:0,yoffset:-21.273,xadvance:20.916,chnl:15,x:21,y:145,page:0},{id:58,width:18,height:31,xoffset:0,yoffset:-20.706,xadvance:10.5,chnl:15,x:53,y:145,page:0},{id:122,width:28,height:31,xoffset:0,yoffset:-21.273,xadvance:18.984,chnl:15,x:73,y:145,page:0},{id:95,width:28,height:16,xoffset:0,yoffset:0,xadvance:19.278000000000002,chnl:15,x:235,y:447,page:0},{id:45,width:23,height:24,xoffset:0,yoffset:-14.175,xadvance:15.603000000000002,chnl:15,x:481,y:196,page:0},{id:44,width:17,height:21,xoffset:0,yoffset:-4.956,xadvance:9.534,chnl:15,x:103,y:145,page:0},{id:46,width:18,height:15,xoffset:0,yoffset:-4.956,xadvance:9.912,chnl:15,x:0,y:497,page:0},{id:32,width:0,height:0,xoffset:0,yoffset:0,xadvance:10.752,chnl:15,x:20,y:497,page:0}],info:{face:"Lato Regular",size:42,bold:0,italic:0,charset:[" ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"],unicode:1,stretchH:100,smooth:1,aa:1,padding:[0,0,0,0],spacing:[2,2]},common:{lineHeight:50.400000000000006,base:41.454,scaleW:512,scaleH:512,pages:1,packed:0,alphaChnl:0,redChnl:0,greenChnl:0,blueChnl:0},kernings:[]};class m8 extends se{get behavior(){return fn}constructor(e){super();const n=cl(Ng),r=Z(e.field),i=e.as,o=e.fontSize;this.handle=a=>{const s=r(a);s!==void 0?a[i]=n.measureWidth(s,o):a[i]=0,this._propagate(a)}}}const g8=65536;class y8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e}reset(){this.initialize()}initialize(){const e=this.params,n=e.as||"lane",r=ce(e.spacing)?e.spacing:1,i=Z(e.start),o=Z(e.end);if(!e.preference!=!e.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(e.preference){const a=new Float64Array(g8),s=Z(e.preference),c=e.preferredOrder;let u=1/0;this.handle=f=>{const l=i(f);l<u&&a.fill(-1/0),u=l;const d=c.indexOf(s(f));let h=-1;if(d>=0&&a[d]<l)h=d;else{const p=i(f);for(h=0;h<a.length&&!(a[h]<p);h++);if(h>=a.length)throw new Error("Out of lanes!")}a[h]=o(f)+r,f[n]=h,this._propagate(f)}}else{const a=new mo,s=new mo;let c=-1/0,u=0;this.handle=f=>{const l=i(f);for(;a.length&&(a.peekValue()<=l||l<c);){const h=a.pop();s.push(h,h)}c=l;let d=s.pop();d===void 0&&(d=u++),f[n]=d,this._propagate(f),a.push(d,o(f)+r)}}}}class v8 extends se{get behavior(){return Nt}constructor(e){if(super(),e.as&&e.as.length!=e.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=e.fields.map(i=>Z(i)),r=e.as?e.as:n.map(ae);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class b8 extends se{get behavior(){return fn}constructor(e){super();const n=new RegExp(e.regex),r=typeof e.as=="string"?[e.as]:e.as,i=Z(e.field);this.handle=o=>{const a=i(o);if(ee(a)){const s=a.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let c=0;c<r.length;c++)o[r[c]]=s[c+1]}else if(e.skipInvalidInput)for(let c=0;c<r.length;c++)o[r[c]]=void 0;else throw new Error(`"${a}" does not match the given regex: ${n.toString()}`)}else if(!e.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof a}, field content: "${a}".`);this._propagate(o)}}}class A8 extends se{get behavior(){return Nt}constructor(e){super();const n=Ke(e.columnRegex).map(d=>new RegExp(d)),r=Ke(e.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=e.skipRegex?new RegExp(e.skipRegex):void 0,o=e.asKey||"sample";let a,s,c;const u=d=>{var y;const h=Object.keys(d),p=new Map;for(const[g,A]of n.entries())for(const w of h){const C=(y=A.exec(w))==null?void 0:y[1];if(C!==void 0){let b=p.get(C);b||(b=[],p.set(C,b)),b[g]=w}}a=[...p.entries()],s=h.filter(g=>!n.some(A=>A.test(g))&&!(i&&i.test(g)));const m=[...s.map(g=>JSON.stringify(g)+": datum["+JSON.stringify(g)+"]"),JSON.stringify(o)+": sampleId",...r.map(g=>JSON.stringify(g)+": null")];c=new Function("datum","sampleId",`return {
1342
+ */const YD="locus",_D="index";var WD=5;function XD(t){const e=t.type;return!t.bins&&(e===wr||e===Ii||e===ki)}function qm(t){return Re(t)&&![ht,_D,YD].includes(t)}function Km(t){return t||{warn:(e,...n)=>console.warn(e,...n)}}var ZD=Zo(["set","modified","clear","type","scheme","schemeExtent","schemeCount","domain","domainMin","domainMid","domainMax","domainRaw","domainImplicit","nice","zero","bins","range","rangeStep","round","reverse","interpolate","interpolateGamma","zoom","fp64","name"]);function Jm(t,e,n){n=Km(n);for(const r in t)if(!ZD[r]){if(r==="padding"&&qm(e.type))continue;ke(e[r])?e[r](t[r]):n.warn("Unsupported scale property: "+r)}rM(e,t,nM(e,t,$D(e,t,n)))}function qD(t,e){const n=KD(t),r=W(n);if(!r)throw new Error("Unknown scale type: "+n);const i=r();return Jm(t,i,e),i}function KD(t){var e=t.type,n="",r;return e===ht?ht+"-"+wr:(JD(t)&&(r=t.rawDomain?t.rawDomain.length:t.domain?t.domain.length+ +(t.domainMid!=null):0,n=r===2?ht+"-":r===3?Cr+"-":""),(n+e||wr).toLowerCase())}function JD(t){const e=t.type;return Re(e)&&e!==S0&&e!==E0&&(t.scheme||t.range&&t.range.length&&t.range.every(ee))}function $D(t,e,n){if(!t.domain)return 0;n=Km(n);var r=eM(t,e.domainRaw,n);if(r>-1)return r;var i=e.domain,o=t.type,a=e.zero||e.zero===void 0&&XD(t),s,c;return i?(qm(o)&&e.padding&&i[0]!==tt(i)&&(i=tM(o,i,e.range,e.padding,e.exponent,e.constant)),(a||e.domainMin!=null||e.domainMax!=null||e.domainMid!=null)&&(s=(i=i.slice()).length-1||1,a&&(i[0]>0&&(i[0]=0),i[s]<0&&(i[s]=0)),e.domainMin!=null&&(i[0]=e.domainMin),e.domainMax!=null&&(i[s]=e.domainMax),e.domainMid!=null&&(c=e.domainMid,(c<i[0]||c>i[s])&&n.warn("Scale domainMid exceeds domain min or max.",c),i.splice(s,0,c))),t.domain($m(o,i,n)),o===uu&&t.unknown(e.domainImplicit?kc:void 0),e.nice&&t.nice&&t.nice(e.nice!==!0&&Xm(t,e.nice)||null),i.length):0}function eM(t,e,n){return e?(t.domain($m(t.type,e,n)),e.length):-1}function tM(t,e,n,r,i,o){var a=Math.abs(tt(n)-n[0]),s=a/(a-2*r),c=t===en?ld(e,null,s):t===ki?Xs(e,null,s,.5):t===Ii?Xs(e,null,s,i||1):t===wa?sb(e,null,s,o||1):Ws(e,null,s);return e=e.slice(),e[0]=c[0],e[e.length-1]=c[1],e}function $m(t,e,n){if(L0(t)){var r=Math.abs(e.reduce(function(i,o){return i+(o<0?-1:o>0?1:0)},0));r!==e.length&&n.warn("Log scale domain includes zero: "+Xo(e))}return e}function nM(t,e,n){let r=e.bins;if(r&&!We(r)){const i=(r.start==null||r.stop==null)&&t.domain(),o=r.start==null?i[0]:r.start,a=r.stop==null?tt(i):r.stop,s=r.step;s||oe("Scale bins parameter missing step property."),r=Yt(o,a+s,s)}return r?t.bins=r:t.bins&&delete t.bins,t.type===fu&&(r?!e.domain&&!e.domainRaw&&(t.domain(r),n=r.length):t.bins=t.domain()),n}function rM(t,e,n){var r=t.type,i=e.round||!1,o=e.range;if(e.rangeStep!=null)o=iM(r,e,n);else if(e.scheme&&(o=oM(r,e,n),ke(o))){if(t.interpolator)return t.interpolator(o);oe(`Scale type ${r} does not support interpolating color schemes.`)}if(o&&Sa(r))return t.interpolator(Ea(dl(o,e.reverse),e.interpolate,e.interpolateGamma));o&&e.interpolate&&t.interpolate?t.interpolate(B0(e.interpolate,e.interpolateGamma)):ke(t.round)?t.round(i):ke(t.rangeRound)&&t.interpolate(i?Mi:Jt),o&&t.range(dl(o,e.reverse))}function iM(t,e,n){t!==T0&&t!==lu&&oe("Only band and point scales support rangeStep.");var r=(e.paddingOuter!=null?e.paddingOuter:e.padding)||0,i=t===lu?1:(e.paddingInner!=null?e.paddingInner:e.padding)||0;return[0,e.rangeStep*su(n,i,r)]}function oM(t,e,n){var r=e.schemeExtent,i,o;return We(e.scheme)?o=Ea(e.scheme,e.interpolate,e.interpolateGamma):(i=e.scheme.toLowerCase(),o=hu(i),o||oe(`Unrecognized scheme name: ${e.scheme}`)),n=t===M0?n+1:t===fu?n-1:t===cu||t===D0?+e.schemeCount||WD:n,Sa(t)?eg(o,r,e.reverse):ke(o)?rw(eg(o,r),n):t===uu?o:o.slice(0,n)}function eg(t,e,n){return ke(t)&&(e||n)?nw(t,dl(e||[0,1],n)):t}function dl(t,e){return e?t.slice().reverse():t}const hl=le(",d");function aM(t){return t.chrom+":"+hl(Math.floor(t.pos+1))}function sM(t,e){return t.chrom+":"+hl(Math.floor(t.pos+1))+"-"+(t.chrom!=e.chrom?e.chrom+":":"")+hl(Math.ceil(e.pos))}const cM="https://genomespy.app/data/genomes/";class uM{constructor(e){if(this.config=e,!this.config.contigs&&typeof this.config.name!="string")throw new Error("No name has been defined for the genome assembly!");this.chromosomes=[],this.cumulativeChromPositions=new Map,this.chromosomesByName=new Map,this.startByIndex=[],this.totalSize=0,this.config.contigs&&this.setChromSizes(this.config.contigs)}get name(){return this.config.name}async load(e){if(!this.config.contigs){this.config.baseUrl?this.baseUrl=/^http(s)?/.test(this.config.baseUrl)?this.config.baseUrl:e+"/"+this.config.baseUrl:this.baseUrl=cM;try{this.setChromSizes(lM(await Ci({baseURL:this.baseUrl}).load(`${this.config.name}/${this.name}.chrom.sizes`)))}catch(n){throw new Error(`Could not load chrom sizes: ${n.message}`)}}}setChromSizes(e){let n=0;this.startByIndex=[0];for(let r=0;r<e.length;r++){this.startByIndex.push(n);const i=e[r].size,o={...e[r],continuousStart:n,continuousEnd:n+i,continuousInterval:[n,n+i],index:r,number:r+1,odd:!(r&1)};this.chromosomes.push(o);const a=o.name.replace(/^chr/i,"");for(const s of["chr"+a,"CHR"+a,"Chr"+a,o.number,""+o.number,a,o.name])this.cumulativeChromPositions.set(s,n),this.chromosomesByName.set(s,o);n+=o.size}this.totalSize=n}getExtent(){return[0,this.totalSize]}toContinuous(e,n){let r=this.cumulativeChromPositions.get(e);if(r===void 0)throw new Error("Unknown chromosome/contig: "+e);return r+ +n}toChromosome(e){if(e>=this.totalSize)return;e=Math.floor(e);const n=hr(this.startByIndex,e)-1;if(n>0&&n<=this.chromosomes.length)return this.chromosomes[n-1]}toChromosomal(e){const n=this.toChromosome(e);if(!!n)return{chrom:n.name,pos:Math.floor(e)-n.continuousStart}}getChromosome(e){return this.chromosomesByName.get(e)}formatInterval(e){return sM(...this.toChromosomalInterval(e))}toChromosomalInterval(e){const n=this.toChromosomal(e[0]+.5),r=this.toChromosomal(e[1]-.5);return r.pos+=1,[n,r]}toContinuousInterval(e){var i,o,a;let[n,r]=e;return r||(r=n),[this.toContinuous(n.chrom,(i=n.pos)!=null?i:0),this.toContinuous(r.chrom,(a=r.pos)!=null?a:(o=this.chromosomesByName.get(r.chrom))==null?void 0:o.size)]}parseInterval(e){const n=e.match(/^(chr[0-9A-Z]+)(?::([0-9,]+)(?:-(?:(chr[0-9A-Z]+):)?([0-9,]+))?)?$/);if(n){const r=n[1];if(n.slice(2).every(s=>s===void 0)){const s=this.getChromosome(r);return s?[s.continuousStart,s.continuousEnd]:void 0}const i=n[3]||r,o=parseInt(n[2].replace(/,/g,"")),a=n[4]!==void 0?parseInt(n[4].replace(/,/g,"")):o;return[this.toContinuous(r,o-1),this.toContinuous(i,a)]}}}function lM(t){return Db(t).filter(e=>/^chr[0-9A-Z]+$/.test(e[0])).map(([e,n])=>({name:e,size:parseInt(n)}))}function tg(t){return ze(t)&&"chrom"in t}function fM(t){return t.every(tg)}class lo extends Array{constructor(){super(),this.type=void 0}extend(e){return this}extendAll(e){if(e instanceof lo&&e.type!=this.type)throw new Error(`Cannot combine different types of domains: ${this.type} and ${e.type}`);for(const n of e)this.extend(n);return this}extendAllWithAccessor(e,n){for(const r of e)this.extend(n(r));return this}}class pl extends lo{constructor(){super(),this.type="quantitative"}extend(e){return e==null||Number.isNaN(e)?this:(e=+e,this.length?e<this[0]?this[0]=e:e>this[1]&&(this[1]=e):(this.push(e),this.push(e)),this)}}class ng extends lo{constructor(){super(),this.type="ordinal",this.uniqueValues=new Set}extend(e){return e==null||Number.isNaN(e)?this:(this.uniqueValues.has(e)||(this.uniqueValues.add(e),this.push(e)),this)}}class rg extends ng{constructor(){super(),this.type="nominal"}}class dM extends lo{constructor(e){super();let n=0;for(let r=1;r<e.length;r++)n+=Math.sign(e[r]-e[r-1]);if(Math.abs(n)!=e.length-1)throw new Error("Piecewise domain must be strictly increasing or decreasing: "+JSON.stringify(e));e.forEach(r=>this.push(r))}extend(e){if(this.includes(e))return this;throw new Error("Piecewise domains are immutable and cannot be unioned!")}}const ig={quantitative:pl,index:pl,locus:pl,nominal:rg,ordinal:ng};function og(t,e){if(t=="quantitative"&&hM(e)){const n=new dM(e);return n.type=t,n}else if(ig[t]){const n=new ig[t];return n.type=t,e&&n.extendAll(e),n}throw new Error("Unknown type: "+t)}function hM(t){return t&&t.length>0&&t.length!=2&&t.every(e=>typeof e=="number")}function ag(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function pM(t){return--t*t*t+1}function mM(t){return(Math.pow(2,-10*t)-.0009765625)*1.0009775171065494}function gM(t){return 1-mM(t)}const sg="quantitative",ml="ordinal",gl="nominal",cg="locus",yM="index";class bM{constructor(e){this.channel=e,this.members=[],this.type=null,this._zoomExtent=void 0,this._domainListeners=new Set,this.name=void 0,this._scale=void 0}addEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);this._domainListeners.add(n)}removeEventListener(e,n){if(e!="domain")throw new Error("Unsupported event type: "+e);this._domainListeners.delete(n)}_notifyDomainListeners(){for(const e of this._domainListeners.values())e({type:"domain",scaleResolution:this})}pushUnitView(e,n){var a;const r=Su(e,n),i=r.type,o=(a=r==null?void 0:r.scale)==null?void 0:a.name;if(o){if(this.name!==void 0&&o!=this.name)throw new Error(`Shared scales have conflicting names: "${o}" vs. "${this.name}"!`);this.name=o}if(!this.type)this.type=i;else if(i!==this.type&&!Zi(n))throw new Error(`Can not use shared scale for different data types: ${this.type} vs. ${i}. Use "resolve: independent" for channel ${this.channel}`);this.members.push({view:e,channel:n})}isExplicitDomain(){return!!this.getConfiguredDomain()}_getMergedScaleProps(){return Ur(this,"mergedScaleProps",()=>{const e=this.members.map(n=>Su(n.view,n.channel).scale).filter(n=>n!==void 0);return os(e,"scale",["domain"])})}getScaleProps(){return Ur(this,"scaleProps",()=>{var i,o;const e=this._getMergedScaleProps();if(e===null||e.type=="null")return{type:"null"};const n={...this._getDefaultScaleProperties(this.type),...e};n.type||(n.type=vM(this.channel,this.type));const r=this.getInitialDomain();return r&&r.length>0?n.domain=r:tn(n.type)&&(n.domain=new rg),!n.domain&&n.domainMid!==void 0&&(n.domain=[(i=n.domainMin)!=null?i:0,(o=n.domainMax)!=null?o:1]),this.channel=="y"&&tn(n.type)&&n.reverse==null&&(n.reverse=!0),n.range&&n.scheme&&delete n.scheme,!("zoom"in n)&&["index","locus"].includes(n.type)&&(n.zoom=!0),AM(n,this.channel),n})}getInitialDomain(){var e;return(e=this.getConfiguredDomain())!=null?e:this.type==cg?this.getGenome().getExtent():this.getDataDomain()}getConfiguredDomain(){return this._reduceDomains(e=>Zi(e.channel)?void 0:e.view.getConfiguredDomain(e.channel))}getDataDomain(){return this._reduceDomains(e=>Zi(e.channel)?void 0:e.view.extractDataDomain(e.channel))}reconfigure(){if(this._scale&&this._scale.type!="null"){Bm(this,"scaleProps");const e=this.getScaleProps();Jm(e,this._scale),Re(this._scale.type)&&(this._zoomExtent=this._getZoomExtent())}}getScale(){if(this._scale)return this._scale;const e=this.getScaleProps(),n=qD(e);return this._scale=n,VA(n)&&n.genome(this.getGenome()),Re(n.type)&&(this._zoomExtent=this._getZoomExtent()),n}getDomain(){return this.getScale().domain()}getComplexDomain(){var e,n;return(n=(e=this.getGenome())==null?void 0:e.toChromosomalInterval(this.getDomain()))!=null?n:this.getDomain()}isZoomed(){return this.isZoomable()&&W0(this.getInitialDomain(),this.getDomain())}isZoomable(){if(!cp(this.channel))return!1;const e=this.getScale().type;return["linear","locus","index","log","pow","sqrt"].includes(e)?!!this.getScaleProps().zoom:!1}zoom(e,n,r){if(!this.isZoomable())return!1;const i=this.getScale(),o=i.domain();let a=[...o],s=i.invert(n);switch(this.getScaleProps().reverse&&(r=-r),"align"in i&&(s+=i.align()),i.type){case"linear":case"index":case"locus":a=ib(a,r||0),a=Ws(a,s,e);break;case"log":a=ob(a,r||0),a=ld(a,s,e);break;case"pow":case"sqrt":{const c=i;a=ab(a,r||0,c.exponent()),a=Xs(a,s,e,c.exponent());break}default:throw new Error("Zooming is not implemented for: "+i.type)}return this._zoomExtent&&(a=cb(a,this._zoomExtent[0],this._zoomExtent[1])),[0,1].some(c=>a[c]!=o[c])?(i.domain(a),this._notifyDomainListeners(),!0):!1}async zoomTo(e,n=!1){var s;if(_o(n)&&(n=n?700:0),!this.isZoomable())throw new Error("Not a zoomable scale!");const r=this.fromComplexInterval(e),i=(s=this.members[0])==null?void 0:s.view.context.animator,o=this.getScale(),a=o.domain();if(n>0&&a.length==2){const c=a[1]-a[0],u=a[0]+c/2,f=r[1]-r[0],l=r[0]+f/2,d=$h([u,0,c],[l,0,f]).rho(.7);await i.transition({duration:n/1e3*d.duration,easingFunction:ag,onUpdate:h=>{const[p,,m]=d(h);o.domain([p-m/2,p+m/2]),this._notifyDomainListeners()}}),o.domain(r),this._notifyDomainListeners()}else o.domain(r),i==null||i.requestRender(),this._notifyDomainListeners()}resetZoom(){if(!this.isZoomable())throw new Error("Not a zoomable scale!");const e=this.getDomain(),n=this.getInitialDomain();return[0,1].some(r=>n[r]!=e[r])?(this._scale.domain(n),this._notifyDomainListeners(),!0):!1}getZoomLevel(){return this.isZoomable()?Wo(this._zoomExtent)/Wo(this.getScale().domain()):1}_getZoomExtent(){const e=this.getScaleProps(),n=e.zoom;if(xM(n)&&We(n.extent))return this.fromComplexInterval(n.extent);if(n)return e.type=="locus"?this.getGenome().getExtent():this._scale.domain()}_getDefaultScaleProperties(e){const n=this.channel,r={};return this.isExplicitDomain()&&(r.zero=!1),Xi(n)?r.nice=!this.isExplicitDomain():Vn(n)?r.scheme=e==gl?"tableau10":e==ml?"blues":"viridis":Ba(n)?r.range=lp(n):n=="size"?r.range=[0,400]:n=="angle"&&(r.range=[0,360]),r}getGenome(){var n;if(this.type!=="locus")return;const e=(n=this.members[0].view.context.genomeStore)==null?void 0:n.getGenome();if(!e)throw new Error("No genome has been defined!");return e}invertToComplex(e){const n=this.getScale();if("invert"in n){const r=n.invert(e);return this.toComplex(r)}else throw new Error("The scale does not support inverting!")}toComplex(e){const n=this.getGenome();return n?n.toChromosomal(e):e}fromComplex(e){return tg(e)?this.getGenome().toContinuous(e.chrom,e.pos):e}fromComplexInterval(e){return this.type==="locus"&&fM(e)?this.getGenome().toContinuousInterval(e):e}_getViewPaths(){return this.members.map(e=>e.view.getPathString()).join(", ")}_reduceDomains(e){const n=this.members.map(e).filter(r=>!!r);if(n.length)return n.reduce((r,i)=>r.extendAll(i))}}function vM(t,e){if(e==yM||e==cg){if(cp(t))return e;throw new Error(`${t} does not support ${e} data type. Only positional channels do.`)}const n={x:["band","band","linear"],y:["band","band","linear"],size:[void 0,"point","linear"],opacity:[void 0,"point","linear"],fillOpacity:[void 0,"point","linear"],strokeOpacity:[void 0,"point","linear"],color:["ordinal","ordinal","linear"],fill:["ordinal","ordinal","linear"],stroke:["ordinal","ordinal","linear"],strokeWidth:[void 0,void 0,"linear"],shape:["ordinal","ordinal",void 0],dx:[void 0,void 0,"null"],dy:[void 0,void 0,"null"],angle:[void 0,void 0,"linear"]},i=["uniqueId","facetIndex","semanticScore","search","text","sample"].includes(t)?"null":n[t]?n[t][[gl,ml,sg].indexOf(e)]:e==sg?"linear":"ordinal";if(i===void 0)throw new Error(`Channel "${t}" is not compatible with "${e}" data type. Use of a proper scale may be needed.`);return i}function AM(t,e){Xi(e)&&t.type!=="ordinal"&&(t.range=[0,1]),e=="opacity"&&Re(t.type)&&(t.clamp=!0)}function xM(t){return ze(t)}function yl(...t){for(const e of t)if(e!==void 0)return e}class wM{constructor(e){this.channel=e,this.members=[]}get scaleResolution(){var e;return(e=je(this.members))==null?void 0:e.view.getScaleResolution(this.channel)}pushUnitView(e,n){const r=e.getScaleResolution(this.channel);if(!r)throw new Error("Cannot find a scale resolution!");if(this.scaleResolution&&r!==this.scaleResolution)throw new Error("Shared axes must have a shared scale!");this.members.push({view:e,channel:n})}getAxisProps(){return Ur(this,"axisProps",()=>{const e=this.members.map(n=>{const r=n.view.mark.encoding[n.channel];return"axis"in r&&r.axis});return e.length>0&&e.some(n=>n===null)?null:os(e.filter(n=>n!==void 0),"axis",["title"])})}getTitle(){const e=o=>{var s;const a=Su(o.view,o.channel);if(!ot(a))return{member:o,explicitTitle:yl((s=a.axis)==null?void 0:s.title,a.title),implicitTitle:yl(Qn(a)?a.field:void 0,Eu(a)?a.expr:void 0)}},n=this.members.map(e),r=n.filter(o=>{var a;if(Zi(o.member.channel)&&!o.explicitTitle){const s=Ir(o.member.channel);return((a=n.find(c=>c.member.view==o.member.view&&c.member.channel==s))==null?void 0:a.explicitTitle)===void 0}return!0}),i=new Set(r.map(o=>yl(o.explicitTitle,o.implicitTitle)).filter(ee));return i.size?[...i].join(", "):null}}class ug extends _m{constructor(e,n,r,i){super(e,n,r,i),this.spec=e}}class Nt extends Kn{constructor(e,n,r,i){super(e,n,r,i),this.spec=e,this.children=(e.layer||[]).map((o,a)=>{if(wl(o)||xl(o))return n.createView(o,this,"layer"+a);throw new Error("LayerView accepts only unit or layer specs as children!")})}*[Symbol.iterator](){for(const e of this.children)yield e}render(e,n,r={}){if(!!this.isVisible()){e.pushView(this,n);for(const i of this.children)i.render(e,n,r);e.popView(this)}}propagateInteractionEvent(e){this.handleInteractionEvent(void 0,e,!0),this.children.length&&this.children.at(-1).propagateInteractionEvent(e),!e.stopped&&this.handleInteractionEvent(void 0,e,!1)}}class lg{constructor(e,n){this.n=e,this.maxCols=n!=null?n:1/0}get nRows(){return this.maxCols==1/0?1:Math.ceil(this.n/this.maxCols)}get nCols(){return Math.min(this.n,this.maxCols)}get rowIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<r;i++){const o=[];e.push(o);for(let a=0;a<n;a++){const s=i*n+a;s<this.n&&o.push(s)}}return e}get colIndices(){const e=[],n=this.nCols,r=this.nRows;for(let i=0;i<n;i++){const o=[];e.push(o);for(let a=0;a<r;a++){const s=a*n+i;s<this.n&&o.push(s)}}return e}getCellIndex(e,n){let r=0;if(this.maxCols==1/0)r=n==0?e:void 0;else{if(e>=this.maxCols)return;r=n*this.nCols+e}return r<this.n?r:void 0}getCellCoords(e){if(!(e<0||e>=this.n))return[e%this.nCols,Math.floor(e/this.nCols)]}}function Lt(t){return()=>t}const Vt=class{static create(e,n,r,i){return new Vt(Lt(e),Lt(n),Lt(r),Lt(i))}_offset(e,n){const r=this["_"+e];if(n===0)return r;switch(typeof n){case"number":return()=>r()+n;case"function":return()=>r()+n();default:throw new Error("Not a number of function")}}_passThrough(e){return this._offset(e,0)}constructor(e,n,r,i){this._x=e,this._y=n,this._width=r,this._height=i}get x(){return this._x()}get y(){return this._y()}get width(){return this._width()}get height(){return this._height()}get x2(){return this._x()+this._width()}get y2(){return this._y()+this._height()}equals(e){return e?this===e||this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height:!1}modify(e){if(!Object.keys(e).length)return this;const n=r=>{const i=e[r];return typeof i=="number"?Lt(i):typeof i=="function"?i:this._passThrough(r)};return new Vt(n("x"),n("y"),n("width"),n("height"))}translate(e,n){return e===0&&n===0?this:new Vt(this._offset("x",e),this._offset("y",n),this._passThrough("width"),this._passThrough("height"))}translateBy(e){return this.translate(e.x,e.y)}expand(e,n=1){return e.left==0&&e.top==0&&e.right==0&&e.bottom==0?this:new Vt(e.left?this._offset("x",-e.left*n):this._passThrough("x"),e.top?this._offset("y",-e.top*n):this._passThrough("y"),e.width?this._offset("width",e.width*n):this._passThrough("width"),e.height?this._offset("height",e.height*n):this._passThrough("height"))}shrink(e){return this.expand(e,-1)}intersect(e){return this===e?this:new Vt(()=>Math.max(this.x,e.x),()=>Math.max(this.y,e.y),()=>Math.min(this.x2,e.x2)-Math.max(this.x,e.x),()=>Math.min(this.y2,e.y2)-Math.max(this.y,e.y))}isDefined(){return this.width>=0&&this.height>=0}flatten(){return new Vt(Lt(this.x),Lt(this.y),Lt(this.width),Lt(this.height))}containsPoint(e,n){return e>=this.x&&e<this.x2&&n>=this.y&&n<this.y2}normalizePoint(e,n){return{x:(e-this.x)/this.width,y:(n-this.y)/this.height}}toString(){return`Rectangle: x: ${this.x}, y: ${this.y}, width: ${this.width}, height: ${this.height}`}};let dn=Vt;W2(dn,"ZERO",Vt.create(0,0,0,0));function fg(t,e,n){return n=(n-t)/(e-t),n=Math.max(0,Math.min(1,n)),n*n*(3-2*n)}class Jn extends se{get identifier(){}handle(e){throw new Error("Source does not handle incoming data!")}async load(){}}function dg(t){var n,r;const e={...t.format};if((n=e.type)!=null||(e.type=DM(t)&&CM(t.url)),(r=e.parse)!=null||(e.parse="auto"),!e.type)throw new Error("Format for the data source was not defined and it could not be inferred: "+JSON.stringify(t));return e}function CM(t){var e;if(Array.isArray(t)&&(t=t[0]),t)return(e=t.match(/\.(csv|tsv|json)/))==null?void 0:e[1]}const as=t=>typeof t!="object"?SM:EM,SM=t=>({data:t}),EM=t=>t;function DM(t){return"url"in t}function MM(t){return"dynamicCallbackSource"in t}class hg extends Jn{constructor(e){super(),this.callback=e}loadSynchronously(){if(!this.callback)return;const e=this.callback();if(!e||typeof e[Symbol.iterator]!="function")throw new Error("Dynamic data callback didn't return iterable data!");this.reset(),this.beginBatch({type:"file"});let n;for(const r of e)n||(n=as(r)),this._propagate(n(r));this.complete()}async load(){this.loadSynchronously()}}const pg="chromosome_ticks_and_labels",mg={x:"width",y:"height"};function bl(t){return t=="x"?"y":"x"}const vl={x:["bottom","top"],y:["left","right"]},gg=Object.fromEntries(Object.entries(vl).map(([t,e])=>e.map(n=>[n,t])).flat(1));function $n(t){return gg[t]}class yg extends Nt{constructor(e,n,r,i){const o=n=="locus",a={...o?kM:bg,...IM(n,e),...e};if(super(o?NM(a):vg(a),r,i,`axis_${e.orient}`),this.axisProps=a,this.axisUpdateRequested=!0,this._addBroadcastHandler("layout",()=>{this.axisUpdateRequested=!0}),this.previousScaleDomain=[],this.axisLength=void 0,this.ticks=[],this.tickSource=new hg(()=>this.ticks),o){const s=$n(this.axisProps.orient),c=this.getScaleResolution(s).getGenome();this.findChildByName(pg).getDynamicDataSource=()=>new hg(()=>c.chromosomes)}this.blockEncodingInheritance=!0}getOrient(){return this.axisProps.orient}getSize(){const e={px:this.getPerpendicularSize()},n={grow:1};return gg[this.axisProps.orient]=="x"?new Zn(n,e):new Zn(e,n)}getPerpendicularSize(){return Al(this.axisProps)}getDynamicDataSource(){return this.tickSource}_updateAxisData(){const e=$n(this.axisProps.orient),n=this.getScaleResolution(e).getScale(),r=n.domain();if(W0(r,this.previousScaleDomain)&&!this.axisUpdateRequested)return;this.previousScaleDomain=r;const i=this.ticks,o=TM(this.axisProps,n,this.axisLength,i);o!==i&&(this.ticks=o,this.tickSource.loadSynchronously()),this.axisUpdateRequested=!1}onBeforeRender(){super.onBeforeRender(),this._updateAxisData()}render(e,n,r={}){!this.isVisible()||(this.axisLength=n[mg[$n(this.getOrient())]],super.render(e,n,r))}isPickingSupported(){return!1}}function Al(t){const e=$n(t.orient);let n=t.ticks&&t.tickSize||0;return t.labels&&(n+=t.labelPadding,e=="x"?n+=t.labelFontSize:n+=30),t.title&&(n+=t.titlePadding+t.titleFontSize),n=Math.min(t.maxExtent||1/0,Math.max(t.minExtent||0,n)),n}function TM(t,e,n,r=[]){const i=s=>25+60*fg(100,700,s);let o=ce(t.tickCount)?t.tickCount:Math.round(n/i(n));o=Xm(e,o,t.tickMinStep);const a=t.values?Zm(e,t.values,o):RD(e,o);if(bw(a,r,s=>s,s=>s.value))return r;{const s=UD(e,o,t.format);return a.map(c=>({value:c,label:s(c)}))}}const bg={values:null,minExtent:20,maxExtent:1/0,offset:0,domain:!0,domainWidth:1,domainColor:"gray",domainDash:null,domainDashOffset:0,domainCap:"square",ticks:!0,tickSize:5,tickWidth:1,tickColor:"gray",tickDash:null,tickDashOffset:0,tickCap:"square",tickCount:null,tickMinStep:null,labels:!0,labelAlign:"center",labelBaseline:"middle",labelPadding:4,labelFontSize:10,labelLimit:180,labelColor:"black",format:null,titleColor:"black",titleFont:"sans-serif",titleFontSize:10,titlePadding:3};function IM(t,e){var s;const n=e.orient,r=t=="nominal"||t=="ordinal";let i="center",o="middle",a=(s=e.labelAngle)!=null?s:(n=="top"||n=="bottom")&&r?-90:0;switch(n){case"left":i="right";break;case"right":i="left";break;case"top":case"bottom":Math.abs(a)>30?(i=a>0==(n=="bottom")?"left":"right",o="middle"):o=n=="top"?"alphabetic":"top";break}return{labelAlign:i,labelAngle:a,labelBaseline:o}}function vg(t){const e={...t,extent:Al(t)},n=$n(e.orient),r=bl(n),i=e.orient=="bottom"||e.orient=="right"?1:-1,o=e.orient=="bottom"||e.orient=="left"?1:0,a=()=>({name:"domain",data:{values:[0]},mark:{type:"rule",clip:!1,strokeDash:e.domainDash,strokeCap:e.domainCap,color:e.domainColor,[r]:o,size:e.domainWidth}}),s=()=>({name:"labels",mark:{type:"text",clip:!1,align:e.labelAlign,angle:e.labelAngle,baseline:e.labelBaseline,[r+"Offset"]:(e.tickSize+e.labelPadding)*i,[r]:o,size:e.labelFontSize,color:e.labelColor,minBufferSize:1500},encoding:{[n]:{field:"value",type:"quantitative"},text:{field:"label"}}}),c=()=>({name:"ticks",mark:{type:"rule",clip:!1,strokeDash:e.tickDash,strokeCap:e.tickCap,color:e.tickColor,size:e.tickWidth,minBufferSize:300},encoding:{[r]:{value:o},[r+"2"]:{value:o-e.tickSize/e.extent*(o?1:-1)}}}),u=()=>({name:"title",data:{values:[0]},mark:{type:"text",clip:!1,align:"center",baseline:e.orient=="bottom"?"bottom":"top",angle:[0,90,0,-90][["top","right","bottom","left"].indexOf(e.orient)],text:e.title,color:e.titleColor,[n]:.5,[r]:1-o}}),f=()=>{const d={name:"ticks_and_labels",encoding:{[n]:{field:"value",type:"quantitative"}},layer:[]};return e.ticks&&d.layer.push(c()),e.labels&&d.layer.push(s()),d},l={[mg[bl($n(e.orient))]]:e.extent,data:{dynamicCallbackSource:!0},layer:[]};return e.domain&&l.layer.push(a()),(e.ticks||e.labels)&&l.layer.push(f()),e.title&&l.layer.push(u()),l}const kM={...bg,chromTicks:!0,chromTickSize:18,chromTickWidth:1,chromTickColor:"#989898",chromTickDash:[4,2],chromTickDashOffset:1,chromLabels:!0,chromLabelFontSize:13,chromLabelFontWeight:"normal",chromLabelFontStyle:"normal",chromLabelColor:"black",chromLabelAlign:"left",chromLabelPadding:7};function NM(t){const e={...t,extent:Al(t)},n=$n(e.orient),r=bl(n),i=e.orient=="bottom"||e.orient=="left"?1:0,o=()=>({name:"chromosome_ticks",mark:{type:"rule",strokeDash:t.chromTickDash,strokeDashOffset:t.chromTickDashOffset,[r]:i,[r+"2"]:i-e.chromTickSize/e.extent*(i?1:-1),color:t.chromTickColor,size:e.chromTickWidth}}),a=()=>{let u;switch(e.orient){case"top":u={y:0,angle:0,paddingX:4,dy:-e.chromLabelPadding,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"bottom":u={y:1,angle:0,paddingX:4,dy:e.chromLabelPadding+e.chromLabelFontSize*.73,viewportEdgeFadeWidthLeft:20,viewportEdgeFadeWidthRight:20,viewportEdgeFadeDistanceRight:-10,viewportEdgeFadeDistanceLeft:-20};break;case"left":u={x:1,angle:-90,paddingY:4,dy:-e.chromLabelPadding,viewportEdgeFadeWidthBottom:20,viewportEdgeFadeWidthTop:20,viewportEdgeFadeDistanceBottom:-20,viewportEdgeFadeDistanceTop:-10};break;case"right":u={x:0,angle:90,align:"right",paddingY:4,dy:-e.chromLabelPadding};break;default:u={}}return{name:"chromosome_labels",mark:{type:"text",size:e.chromLabelFontSize,font:e.chromLabelFont,fontWeight:e.chromLabelFontWeight,fontStyle:e.chromLabelFontStyle,color:e.chromLabelColor,align:t.chromLabelAlign,baseline:"alphabetic",clip:!1,...u},encoding:{[n+"2"]:{field:"continuousEnd",type:"locus"},text:{field:"name"}}}};let s;switch(e.orient){case"bottom":case"top":s={};break;case"left":s={labelAngle:-90,labelAlign:"center",labelPadding:6};break;case"right":s={labelAngle:90,labelAlign:"center",labelPadding:6};break;default:s={}}const c=vg({...t,...s});if(t.chromTicks||t.chromLabels){const u={name:pg,data:{dynamicCallbackSource:!0},encoding:{[n]:{field:"continuousStart",type:"locus",band:0}},layer:[]};if(t.chromTicks&&u.layer.push(o()),t.chromLabels){u.layer.push(a());let f;c.layer.filter(l=>l.name=="ticks_and_labels").forEach(l=>l.layer.filter(d=>d.name=="labels").forEach(d=>{f=d.mark})),f&&(e.orient=="top"||e.orient=="bottom"?(f.viewportEdgeFadeWidthLeft=30,f.viewportEdgeFadeDistanceLeft=40):(f.viewportEdgeFadeWidthBottom=30,f.viewportEdgeFadeDistanceBottom=40))}c.layer.push(u)}return c}const Ag={anchor:"middle",frame:"group",offset:10,orient:"top",align:void 0,angle:0,baseline:"alphabetic",dx:0,dy:0,color:void 0,font:void 0,fontSize:12,fontStyle:"normal",fontWeight:"normal"},LM={orient:"left",anchor:"middle",align:"right",baseline:"middle",angle:0,fontSize:12},BM={orient:"top",anchor:"start",align:"left",baseline:"top",offset:-10,dx:10,fontSize:12},OM={start:0,middle:.5,end:1},PM={start:"left",middle:"center",end:"right"};function FM(t){var u,f,l;if(!t)return;const e=ee(t)?{text:t}:t;if(!e.text||e.orient=="none")return;const n=(u={"track-title":LM,overlay:BM}[e.style])!=null?u:{},r={...Ag,...n,...e};let i={},o={x:0,y:0};const a=OM[(f=r.anchor)!=null?f:"middle"];switch(r.orient){case"top":o={x:a,y:1},i={baseline:"alphabetic",angle:0};break;case"right":o={x:1,y:1-a},i={baseline:"alphabetic",angle:90};break;case"bottom":o={x:a,y:0},i={baseline:"top",angle:0};break;case"left":o={x:0,y:a},i={baseline:"alphabetic",angle:-90};break}const s={...Ag,...i,...n,...e},c={xOffset:0,yOffset:0};switch(r.orient){case"top":c.yOffset=-s.offset;break;case"right":c.xOffset=s.offset;break;case"bottom":c.yOffset=s.offset;break;case"left":c.xOffset=-s.offset;break}return{configurableVisibility:!1,data:{values:[{}]},mark:{type:"text",tooltip:null,clip:!1,...o,...c,text:s.text,align:(l=s.align)!=null?l:PM[s.anchor],angle:s.angle,baseline:s.baseline,dx:s.dx,dy:s.dy,color:s.color,font:s.font,size:s.fontSize,fontStyle:s.fontStyle,fontWeight:s.fontWeight}}}function xg(t,e,n,r){if(t.type=="wheel"){t.uiEvent.preventDefault();const i=t.uiEvent,o=i.deltaMode?120:1;let{x:a,y:s}=t.point;if(r){const c=r.mark.encoders;c.x&&!c.x2&&(a=+c.x(r.datum)*e.width+e.x),c.y&&!c.y2&&(s=(1-+c.y(r.datum))*e.height+e.y)}Math.abs(i.deltaX)<Math.abs(i.deltaY)?n({x:a,y:s,xDelta:0,yDelta:0,zDelta:i.deltaY*o/300}):n({x:a,y:s,xDelta:-i.deltaX*o,yDelta:0,zDelta:0})}else if(t.type=="mousedown"&&t.uiEvent.button===0){const i=t.uiEvent;i.preventDefault();let o=i;const a=c=>{n({x:o.clientX,y:o.clientY,xDelta:c.clientX-o.clientX,yDelta:c.clientY-o.clientY,zDelta:0}),o=c},s=c=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",s)};document.addEventListener("mouseup",s,!1),document.addEventListener("mousemove",a,!1)}}class wg extends Kn{constructor(n,r,i,o,a){var s;super(n,r,i,o);De(this,Oo);De(this,Ct);De(this,Us);De(this,Gs);De(this,fr);De(this,Po);De(this,Fo);De(this,zo);De(this,Hs);De(this,ri,1/0);De(this,ii,10);De(this,et,[]);De(this,oi,0);this.spec=n,Uo(this,ii,(s=n.spacing)!=null?s:10),Uo(this,ri,a),Uo(this,et,[]),this.wrappingFacet=!1,this._createChildren()}_createChildren(){}appendChild(n){var r;(r=n.parent)!=null||(n.parent=this),ie(this,et).push(be(this,Oo,id).call(this,n)),X2(this,oi)._++}setChildren(n){for(const r of n)this.appendChild(r)}replaceChild(n,r){const i=ie(this,et).findIndex(o=>o.view==n);if(i>=0)ie(this,et)[i]=be(this,Oo,id).call(this,r);else throw new Error("Not my child view!")}get children(){return ie(this,et).map(n=>n.view)}get childCount(){return ie(this,et).length}onScalesResolved(){super.onScalesResolved(),be(this,Gs,q2).call(this)}*[Symbol.iterator](){for(const n of ie(this,et)){n.background&&(yield n.background);for(const r of Object.values(n.axes))r&&(yield r);yield n.view,n.title&&(yield n.title)}}getOverhang(){const n=be(this,fr,Go).call(this,"column"),r=be(this,fr,Go).call(this,"row");return!n.length||!r.length?Je.zero():new Je(r.at(0).axisBefore,n.at(-1).axisAfter,r.at(-1).axisAfter,n.at(0).axisBefore)}getSize(){return this._cache("size",()=>new Zn(be(this,Fo,ad).call(this,"column"),be(this,Fo,ad).call(this,"row")).subtractPadding(this.getOverhang()).addPadding(this.getPadding()))}render(n,r,i={}){var u;if(!this.isVisible())return;r=r.shrink(this.getPadding()),n.pushView(this,r);const o={devicePixelRatio:this.context.glHelper.dpr},a=co(be(this,Po,od).call(this,"column"),r.width,o),s=co(be(this,Po,od).call(this,"row"),r.height,o),c=new lg(ie(this,Ct,xn).length,(u=ie(this,ri))!=null?u:1/0);for(const[f,l]of ie(this,Ct,xn).entries()){const{view:d,axes:h,background:p,title:m}=l,[y,g]=c.getCellCoords(f),x=a[be(this,zo,sd).call(this,"column",y)],A=s[be(this,zo,sd).call(this,"row",g)],C=d.getSize(),v=d.getPadding().subtract(d.getOverhang()),b=x.location+v.left,w=A.location+v.top,E=(C.width.grow?x.size:C.width.px)-v.width,I=(C.height.grow?A.size:C.height.px)-v.height,L=new dn(()=>r.x+b,()=>r.y+w,()=>E,()=>I);l.coords=L,p==null||p.render(n,L,i);const T=jM(d);T&&d.render(n,L,i);for(const[O,H]of Object.entries(h)){const U=H.axisProps;let Ae;const Ie=H.getPerpendicularSize();O=="bottom"?Ae=L.translate(0,L.height+U.offset).modify({height:Ie}):O=="top"?Ae=L.translate(0,-Ie-U.offset).modify({height:Ie}):O=="left"?Ae=L.translate(-Ie-U.offset,0).modify({width:Ie}):O=="right"&&(Ae=L.translate(L.width+U.offset,0).modify({width:Ie})),H.render(n,Ae)}T||d.render(n,L,i),m==null||m.render(n,L,{...i,clipRect:void 0})}n.popView(this)}propagateInteractionEvent(n){if(this.handleInteractionEvent(void 0,n,!0),n.stopped)return;const r=ie(this,Ct,xn).find(o=>o.coords.containsPoint(n.point.x,n.point.y)),i=r==null?void 0:r.view;i&&(i.propagateInteractionEvent(n),(i instanceof ye||i instanceof Nt)&&xg(n,r.coords,o=>be(this,Hs,K2).call(this,r.coords,r.view,o),this.context.getCurrentHover())),!n.stopped&&this.handleInteractionEvent(void 0,n,!1)}getDefaultResolution(n,r){return"independent"}}ri=new WeakMap,ii=new WeakMap,et=new WeakMap,oi=new WeakMap,Oo=new WeakSet,id=function(n){var i;const r={view:n,background:void 0,axes:{},coords:dn.ZERO};if(n instanceof ye||n instanceof Nt){const o=(i=n.spec)==null?void 0:i.view;if((o==null?void 0:o.fill)||(o==null?void 0:o.stroke)){const s=new ye(zM(o),this.context,n,"background"+ie(this,oi));s.blockEncodingInheritance=!0,r.background=s}const a=FM(n.spec.title);if(a){const s=new ye(a,this.context,n,"title"+ie(this,oi));s.blockEncodingInheritance=!0,r.title=s}}return r},Ct=new WeakSet,xn=function(){return ie(this,et).filter(n=>n.view.isVisible())},Us=new WeakSet,Z2=function(){var n;return new lg(ie(this,Ct,xn).length,(n=ie(this,ri))!=null?n:1/0)},Gs=new WeakSet,q2=function(){if(Object.keys(this.resolutions.axis).length)throw new Error("ConcatView does not (currently) support shared axes!");for(const n of ie(this,et)){const{view:r,axes:i}=n,o=(a,s,c)=>{var f;const u=a.getAxisProps();if(u!==null){if(!u.orient){for(const l of vl[s])if(!i[l]){u.orient=l;break}if(!u.orient)throw new Error("No slots available for an axis! Perhaps a LayerView has more than two children?")}if((f=u.title)!=null||(u.title=a.getTitle()),!vl[s].includes(u.orient))throw new Error(`Invalid axis orientation "${u.orient}" on channel "${s}"!`);if(i[u.orient])throw new Error(`An axis with the orient "${u.orient}" already exists!`);i[u.orient]=new yg(u,a.scaleResolution.type,this.context,c)}};if(r instanceof ye||r instanceof Nt)for(const a of["x","y"]){const s=r.resolutions.axis[a];!s||o(s,a,r)}if(r instanceof Nt){for(const a of r.children)for(const[s,c]of Object.entries(a.resolutions.axis)){const u=c.getAxisProps();u&&u.orient&&o(c,s,a)}for(const a of r.children)for(const[s,c]of Object.entries(a.resolutions.axis)){const u=c.getAxisProps();u&&!u.orient&&o(c,s,a)}}}},fr=new WeakSet,Go=function(n){const r=n=="column"?["left","right"]:["top","bottom"],i=n=="column"?"width":"height",o=(a,s)=>a.map(c=>{const u=ie(this,Ct,xn)[c].axes[r[s]];if(u)return Math.max(u.getPerpendicularSize()+u.axisProps.offset,0);const f=ie(this,Ct,xn)[c].view.getOverhang();return n=="column"?s?f.right:f.left:s?f.bottom:f.top}).reduce((c,u)=>Math.max(c,u),0);return ie(this,Us,Z2)[n=="column"?"colIndices":"rowIndices"].map(a=>({axisBefore:o(a,0),axisAfter:o(a,1),view:MD(a.map(s=>ie(this,Ct,xn)[s].view.getSize()[i]))}))},Po=new WeakSet,od=function(n){const r=be(this,fr,Go).call(this,n),i=[];i.push(uo);for(const[o,a]of r.entries())o>0&&i.push({px:ie(this,ii),grow:0}),(o==0||this.wrappingFacet)&&i.push(uo),i.push({px:a.axisBefore,grow:0}),i.push(a.view),i.push({px:a.axisAfter,grow:0}),(o==r.length-1||this.wrappingFacet)&&i.push(uo);return i},Fo=new WeakSet,ad=function(n){var a,s;let r=0,i=0;const o=be(this,fr,Go).call(this,n);for(const[c,u]of o.entries())c>0&&(i+=ie(this,ii)),(c==0||this.wrappingFacet)&&(i+=0),i+=u.axisBefore,i+=(a=u.view.px)!=null?a:0,r+=(s=u.view.grow)!=null?s:0,i+=u.axisAfter,(c==o.length-1||this.wrappingFacet)&&(i+=0);return{px:i,grow:r}},zo=new WeakSet,sd=function(n,r){return n=="row"&&this.wrappingFacet?1+6*r+2:2+4*r+1},Hs=new WeakSet,K2=function(n,r,i){for(const[o,a]of Object.entries(RM(r))){if(a.size<=0)continue;const s=n.normalizePoint(i.x,i.y),c=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta),u={x:c.x-s.x,y:c.y-s.y};for(const f of a)f.zoom(2**i.zDelta,o=="y"?1-s[o]:s[o],o=="x"?u.x:-u.y)}this.context.animator.requestRender()};function zM(t){return{configurableVisibility:!1,data:{values:[{}]},mark:{fill:null,strokeWidth:1,fillOpacity:t.fill?1:0,...t,type:"rect",clip:!1,tooltip:null}}}function RM(t){const e={x:new Set,y:new Set};return t.visit(n=>{for(const[r,i]of Object.entries(e)){const o=n.getScaleResolution(r);o&&o.isZoomable()&&i.add(o)}}),e}function jM(t){let e=!0;return t.visit(n=>{n instanceof ye&&e&&(e=n.mark.properties.clip)}),e}class Hr extends wg{constructor(e,n,r,i){super(e,n,r,i,Sl(e)?e.columns:Cl(e)?1:1/0),this.spec=e}_createChildren(){const e=this.spec,n=Sl(e)?e.concat:Cl(e)?e.vconcat:e.hconcat;this.setChildren(n.map((r,i)=>this.context.createView(r,this,"grid"+i)))}}class UM{constructor(){this.types=[];const e=n=>(r,i,o,a)=>{var s;return new n(r,i,o,(s=r.name)!=null?s:a)};this.addViewType(GM,e(ug)),this.addViewType(wl,e(Nt)),this.addViewType(xl,e(ye)),this.addViewType(Cl,e(Hr)),this.addViewType(HM,e(Hr)),this.addViewType(Sl,e(Hr))}addViewType(e,n){this.types.push({specGuard:e,factory:n})}createView(e,n,r,i){const o=this.types.find(a=>a.specGuard(e));if(o)return o.factory(e,n,r,i!=null?i:"unnamed");throw new Error("Invalid spec, cannot figure out the view type from the properties: "+JSON.stringify([...Object.keys(e)]))}isViewSpec(e){const n=this.types.filter(r=>r.specGuard(e));if(n.length>1)throw new Error("Ambiguous spec. Cannot create a view!");return n.length==1}}function xl(t){return"mark"in t&&(ee(t.mark)||ze(t.mark))}function wl(t){return"layer"in t&&ze(t.layer)}function Cg(t){return t&&(xl(t)||wl(t))&&"aggregateSamples"in t}function GM(t){return"import"in t}function Cl(t){return"vconcat"in t&&We(t.vconcat)}function HM(t){return"hconcat"in t&&We(t.hconcat)}function Sl(t){return"concat"in t&&We(t.concat)}const QM={point:hD,rect:sD,rule:gD,link:AD,text:DD};class ye extends Kn{constructor(e,n,r,i){super(e,n,r,i),this.spec=e;const o=QM[this.getMarkType()];if(o)this.mark=new o(this);else throw new Error(`No such mark: ${this.getMarkType()}`);this.sampleAggregateViews=[],this._initializeAggregateViews(),this.coords=void 0}*[Symbol.iterator](){for(const e of this.sampleAggregateViews)yield e}replaceChild(e,n){const r=this.sampleAggregateViews.indexOf(e);if(r>=0)this.sampleAggregateViews[r]=n;else throw new Error("Not my child view!")}render(e,n,r={}){!this.isVisible()||(this.coords=n,e.pushView(this,n),e.renderMark(this.mark,r),e.popView(this))}getMarkType(){return typeof this.spec.mark=="object"?this.spec.mark.type:this.spec.mark}resolve(e){var r;const n=this.mark.encoding;for(const[i,o]of Object.entries(n)){if(!Ke(o))continue;let a=Ir((r=o.resolutionChannel)!=null?r:i);if(e=="axis"&&!Xi(a))continue;let s=this;for(;s.parent instanceof Kn&&["shared","excluded"].includes(s.parent.getConfiguredOrDefaultResolution(a,e))&&s.getConfiguredOrDefaultResolution(a,e)!="excluded";)s=s.parent;s.resolutions[e][a]||(s.resolutions[e][a]=e=="scale"?new bM(a):new wM(a)),Xi(i)?s.resolutions[e][a].pushUnitView(this,i):e=="scale"&&s.resolutions[e][a].pushUnitView(this,i)}}getAccessor(e){return this._cache("accessor/"+e,()=>{const n=this.mark.encoding;if(n&&n[e])return this.context.accessorFactory.createAccessor(n[e])})}getFacetAccessor(e){const n=this.getAccessor("sample");return n||super.getFacetAccessor(this)}getCollector(){return this.context.dataFlow.findCollectorByKey(this)}_validateDomainQuery(e){if(Zi(e))throw new Error(`getDomain(${e}), must only be called for primary channels!`);const n=this.mark.encoding[e];if(!Ke(n))throw new Error("The channel has no scale, cannot get domain!");return n}getConfiguredDomain(e){var i,o;const n=this._validateDomainQuery(e),r=n&&n.scale&&n.scale.domain;if(r){const a=this.getScaleResolution((i=n.resolutionChannel)!=null?i:e);return og((o=n.type)!=null?o:"nominal",a.fromComplexInterval(r))}}extractDataDomain(e){var s;const r=(s=this._validateDomainQuery(e).type)!=null?s:"nominal",i=c=>{let u;const f=this.mark.encoding[c];if(f){const l=this.context.accessorFactory.createAccessor(f);if(l)if(u=og(r),l.constant)u.extend(l({}));else{const d=this.getCollector();d!=null&&d.completed&&d.visitData(h=>u.extend(l(h)))}}return u};let o=i(e);const a=Du[e];if(a){const c=i(a);c&&o.extendAll(c)}return o}getZoomLevel(){const e=n=>{var r,i;return(i=(r=this.getScaleResolution(n))==null?void 0:r.getZoomLevel())!=null?i:1};return Wi.map(e).reduce((n,r)=>n*r,1)}_initializeAggregateViews(){var e,n;if(Cg(this.spec))for(const r of this.spec.aggregateSamples){const i=(e=r.transform)!=null?e:[];i.length&&je(i).type!="collect"&&i.push({type:"collect"}),i.push({type:"mergeFacets"}),r.transform=i,r.encoding={...(n=r.encoding)!=null?n:{},sample:null};const o=this.context.createView(r,this,"summaryView");o.getFacetFields=a=>{},this.sampleAggregateViews.push(o)}}propagateInteractionEvent(e){e.target=this}getDefaultResolution(e,n){return e=="x"?"shared":"independent"}}function*El(t,e=[]){for(const[n,r]of t.entries())if(r instanceof Map)for(const i of El(r,[...e,n]))yield i;else yield[[...e,n],r]}class Qr extends se{constructor(e){super(),this.params=e!=null?e:{type:"collect"},this.observers=[],this.facetBatches=void 0,this._init()}_init(){this._data=[],this.facetBatches=new En([],JSON.stringify),this.facetBatches.set(void 0,this._data)}reset(){super.reset(),this._init()}handle(e){this._data.push(e)}beginBatch(e){fD(e)&&(this._data=[],this.facetBatches.set(qe(e.facetId),this._data))}complete(){var i,o;const e=(i=this.params)==null?void 0:i.sort,n=e?fd(e.field,e.order):void 0,r=a=>{n&&a.sort(n)};if((o=this.params.groupby)!=null&&o.length){if(this.facetBatches.size>1)throw new Error("TODO: Support faceted data!");const a=this.params.groupby.map(c=>Z(c)),s=ci(this._data,...a);this.facetBatches.clear();for(const[c,u]of El(s))this.facetBatches.set(c,u)}for(const a of this.facetBatches.values())r(a);if(this.children.length)for(const[a,s]of this.facetBatches.entries()){if(a){const c={type:"facet",facetId:a};for(const u of this.children)u.beginBatch(c)}for(const c of s)this._propagate(c)}super.complete();for(const a of this.observers)a(this)}getData(){switch(this._checkStatus(),this.facetBatches.size){case 0:return[];case 1:return[...this.facetBatches.values()][0];default:{const e=this.facetBatches;return{[Symbol.iterator]:function*(){for(const r of e.values())for(let i=0;i<r.length;i++)yield r[i]}}}}}visitData(e){this._checkStatus();for(const n of this.facetBatches.values())for(let r=0;r<n.length;r++)e(n[r])}getItemCount(){let e=0;for(const n of this.facetBatches.values())e+=n.length;return e}_checkStatus(){if(!this.completed)throw new Error("Data propagation is not completed! No data are available.")}}class fo{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(e,n){let r=this.length++;for(;r>0;){const i=r-1>>1,o=this.values[i];if(n>=o)break;this.ids[r]=this.ids[i],this.values[r]=o,r=i}this.ids[r]=e,this.values[r]=n}pop(){if(this.length===0)return;const e=this.ids[0];if(this.length--,this.length>0){const n=this.ids[0]=this.ids[this.length],r=this.values[0]=this.values[this.length],i=this.length>>1;let o=0;for(;o<i;){let a=(o<<1)+1;const s=a+1;let c=this.ids[a],u=this.values[a];const f=this.values[s];if(s<this.length&&f<u&&(a=s,c=this.ids[s],u=f),u>=r)break;this.ids[o]=c,this.values[o]=u,o=a}this.ids[o]=n,this.values[o]=r}return e}peek(){if(this.length!==0)return this.ids[0]}peekValue(){if(this.length!==0)return this.values[0]}shrink(){this.ids.length=this.values.length=this.length}}class VM extends se{get behavior(){return kt}constructor(e){super(),this.params=e,this.startAccessor=Z(e.start),this.endAccessor=Z(e.end),this.chromAccessor=e.chrom?Z(e.chrom):n=>{},this.weightAccessor=e.weight?Z(e.weight):n=>1,this.as={coverage:e.as||"coverage",start:e.asStart||e.start,end:e.asEnd||e.end,chrom:e.asChrom||e.chrom},this.createSegment=new Function("start","end","coverage","chrom","return {"+Object.entries(this.as).filter(([n,r])=>r).map(([n,r])=>`${JSON.stringify(r)}: ${n}`).join(", ")+"};"),this.ends=new fo}reset(){super.reset(),this.initialize()}initialize(){const e=this.as.coverage,n=this.as.end,r=this.as.chrom,i=this.startAccessor,o=this.endAccessor,a=this.chromAccessor,s=this.weightAccessor;let c,u,f,l=0,d;const h=this.ends;h.clear();const p=(y,g,x)=>{if(y==g)return;let A=!1;c&&(c[e]===x?(c[n]=g,A=!0):c[e]!=0&&this._propagate(c)),A||(c=this.createSegment(y,g,x,f))},m=()=>{let y;for(;(y=h.peekValue())!==void 0;)p(d,y,l),d=y,l-=h.pop();d=void 0,c&&(this._propagate(c),c=void 0)};this.handle=y=>{const g=i(y);let x;for(;(x=h.peekValue())!==void 0&&x<g;)p(d,x,l),d=x,l-=h.pop();if(r){let C=a(y);C!==u&&(m(),f=C,u=f)}d!==void 0&&p(d,g,l),d=g;const A=s(y);l+=A,h.push(A,o(y))},this.complete=()=>{m(),super.complete()}}}function YM(t,e,n=0,r=t.length){const i=new fo,o=r-n;let a;for(a=0;a<e&&a<o;a++)i.push(a,t[n+a]);for(;a<o;a++){const u=t[n+a];u>=i.peekValue()&&(i.push(a,u),i.pop())}const s=[];let c;for(;(c=i.pop())!==void 0;)s.push(n+c);return s.reverse()}class _M{constructor(e,n=-1/0,r=1/0){this.maxSize=e,this.lowerLimit=n,this.upperLimit=r;const i=this.maxSize*2+1;this.lowerLimits=new Float64Array(i),this.upperLimits=new Float64Array(i),this.lowerChildren=new Int32Array(i),this.upperChildren=new Int32Array(i),this.reset()}reset(){this.lowerLimits.fill(0),this.upperLimits.fill(0),this.lowerChildren.fill(0),this.upperChildren.fill(0),this.n=1,this.lowerLimits[0]=this.lowerLimit,this.upperLimits[0]=this.upperLimit}_findSlot(e,n,r=0){if(e>=this.lowerLimits[r]&&n<=this.upperLimits[r]){const i=this.lowerChildren[r];if(i){const o=this._findSlot(e,n,i);return o>=0?o:this._findSlot(e,n,this.upperChildren[r])}else return r}else return-1}reserve(e,n){if(n-e<=0)throw new Error("Cannot reserve an empty or negative-size slot!");if(this.n+1>this.lowerLimits.length)return!1;const r=this._findSlot(e,n);if(r<0)return!1;const i=this.n++,o=this.n++;return this.lowerLimits[i]=this.lowerLimits[r],this.upperLimits[i]=e,this.lowerLimits[o]=n,this.upperLimits[o]=this.upperLimits[r],this.lowerChildren[r]=i,this.upperChildren[r]=o,!0}}class WM extends se{constructor(e,n){var i,o;if(super(),this.params=e,this._data=[],this.channel=(i=e.channel)!=null?i:"x",!["x","y"].includes(this.channel))throw new Error("Invalid channel: "+this.channel);this.posAccessor=Z(this.params.pos),this.posBisector=qo(this.posAccessor),this.scoreAccessor=Z(this.params.score),this.widthAccessor=Z(this.params.width),this.laneAccessor=this.params.lane?Z(this.params.lane):a=>0,this.padding=(o=this.params.padding)!=null?o:0,this.reservationMaps=new Map,this.resolution=n.getScaleResolution(this.channel);const r=()=>this._filterAndPropagate();this.schedule=()=>n.context.animator.requestTransition(r),this.resolution.addEventListener("domain",a=>this.schedule()),n._addBroadcastHandler("layoutComputed",()=>this.schedule())}complete(){const e=this.posAccessor;this._data.sort((n,r)=>e(n)-e(r)),this._scores=this._data.map(this.scoreAccessor);for(const n of new Set(this._data.map(this.laneAccessor)))this.reservationMaps.set(n,new _M(200));this.schedule(),super.complete()}_filterAndPropagate(){var a;super.reset();const e=this.resolution.getScale(),n=(a=this.resolution.members[0].view.coords)==null?void 0:a[this.channel=="x"?"width":"height"];if(!n)return;for(const s of this.reservationMaps.values())s.reset();const r=e.domain(),i=70,o=YM(this._scores,i,this.posBisector.left(this._data,r[0]),this.posBisector.right(this._data,r[1]));for(const s of o){const c=this._data[s],u=e(this.posAccessor(c))*n,f=this.widthAccessor(c)/2+this.padding;this.reservationMaps.get(this.laneAccessor(c)).reserve(u-f,u+f)&&this._propagate(c)}super.complete()}reset(){super.reset(),this._data=[],this.groups=new Map}handle(e){this._data.push(e)}}class XM extends se{constructor(e){super(),this.params=e,this.predicate=void 0}initialize(){this.predicate=Cu(this.params.expr,this.getGlobalObject())}handle(e){this.predicate(e)&&this._propagate(e)}}const ZM="0".charCodeAt(0);function*qM(t,e=","){const n=e.charCodeAt(0);let r=0;for(let i=0;i<t.length;i++){const o=t.charCodeAt(i);o==n?(yield r,r=0):r=r*10+o-ZM}yield r}class KM extends se{get behavior(){return kt}constructor(e){var a,s;super();const n=Z((a=e.exons)!=null?a:"exons"),r=Z((s=e.start)!=null?s:"start"),[i,o]=e.as||["exonStart","exonEnd"];this.handle=c=>{let u=r(c),f=u,l=!0;const d=n(c);for(const h of qM(d)){if(l)f=u+h;else{u=f+h;const p=Object.assign({},c);p[i]=f,p[o]=u,this._propagate(p)}l=!l}}}}class JM extends se{get behavior(){return kt}constructor(e){super();const n=qe(e.field).map(o=>Z(o)),r=qe(e.separator),i=qe(e.as||e.field);if(n.length!==r.length||n.length!==i.length)throw new Error(`Lengths of "separator" (${r.length}), "fields" (${n.length}), and "as" (${i.length}) do not match!`);this.handle=o=>{if(n.some(c=>!c(o)))return;const a=n.map((c,u)=>c(o).split(r[u]));$M(a,o);const s=a[0].length;for(let c=0;c<s;c++){const u=Object.assign({},o);for(let f=0;f<n.length;f++)u[i[f]]=a[f][c];this._propagate(u)}}}}function $M(t,e){const n=t.map(r=>r.length);if(!n.every(r=>r==n[0]))throw new Error("Mismatching number of elements in the fields to be split: "+JSON.stringify(e))}class e8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e,this.as=e.as,this.fn=void 0}initialize(){this.fn=Cu(this.params.expr,this.getGlobalObject())}handle(e){e[this.as]=this.fn(e),this._propagate(e)}}class Sg extends se{get behavior(){return fn}constructor(e,n){var p;super();const r=(p=e.channel)!=null?p:"x";if(!["x","y"].includes(r))throw new Error("Invalid channel: "+r);const i=n.getScaleResolution(r).getGenome();if(!i)throw new Error("LinearizeGenomicCoordinate transform requires a locus scale!");const o=Z(e.chrom),a=qe(e.pos).map(m=>Z(m)),s=qe(e.as);if(a.length!=s.length)throw new Error('The number of "pos" and "as" elements must be equal!');const c=qe(e.offset);let u;if(c.length==0)u=new Array(a.length).fill(0);else if(c.length==1)u=new Array(a.length).fill(c[0]);else if(c.length==a.length)u=c;else throw new Error(`Invalid "offset" parameter: ${JSON.stringify(e.offset)}!`);const f=new Function("datum","chromOffset","posAccessors",s.map((m,y)=>`datum[${JSON.stringify(m)}] = chromOffset + +posAccessors[${y}](datum) - ${u[y]};`).join(`
1343
+ `));let l,d=0;const h=m=>{if(m!==l){if(d=i.cumulativeChromPositions.get(m),d===void 0)throw new Error("Unknown chromosome/contig: "+m);l=m}return d};this.handle=m=>{f(m,h(o(m)),a),this._propagate(m)}}}const Eg={pages:["Lato-Regular.png"],chars:[{id:87,width:53,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:43.491,chnl:15,x:0,y:0,page:0},{id:124,width:17,height:50,xoffset:0,yoffset:-32.193000000000005,xadvance:10.521,chnl:15,x:0,y:42,page:0},{id:40,width:20,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:94,page:0},{id:41,width:19,height:49,xoffset:0,yoffset:-32.571000000000005,xadvance:11.214,chnl:15,x:0,y:145,page:0},{id:36,width:32,height:49,xoffset:0,yoffset:-34.419000000000004,xadvance:24.360000000000003,chnl:15,x:0,y:196,page:0},{id:125,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:247,page:0},{id:91,width:22,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:297,page:0},{id:93,width:19,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.852,chnl:15,x:0,y:347,page:0},{id:123,width:21,height:48,xoffset:0,yoffset:-32.193000000000005,xadvance:12.642000000000001,chnl:15,x:0,y:397,page:0},{id:106,width:19,height:48,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:0,y:447,page:0},{id:81,width:43,height:47,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:21,y:447,page:0},{id:77,width:45,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:38.997,chnl:15,x:66,y:447,page:0},{id:64,width:43,height:44,xoffset:0,yoffset:-28.539,xadvance:35.133,chnl:15,x:23,y:397,page:0},{id:92,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:68,y:397,page:0},{id:47,width:28,height:43,xoffset:0,yoffset:-30.933000000000003,xadvance:18.984,chnl:15,x:98,y:397,page:0},{id:109,width:42,height:32,xoffset:0,yoffset:-21.609,xadvance:34.545,chnl:15,x:113,y:447,page:0},{id:119,width:42,height:31,xoffset:0,yoffset:-21.315,xadvance:32.991,chnl:15,x:157,y:447,page:0},{id:42,width:25,height:42,xoffset:0,yoffset:-31.626,xadvance:17.85,chnl:15,x:128,y:397,page:0},{id:37,width:42,height:41,xoffset:0,yoffset:-30.387,xadvance:33.663000000000004,chnl:15,x:155,y:397,page:0},{id:79,width:42,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:33.621,chnl:15,x:199,y:397,page:0},{id:102,width:24,height:41,xoffset:0,yoffset:-30.534000000000002,xadvance:14.721,chnl:15,x:243,y:397,page:0},{id:100,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:269,y:397,page:0},{id:98,width:32,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.520000000000003,chnl:15,x:302,y:397,page:0},{id:56,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:336,y:397,page:0},{id:38,width:40,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:29.904000000000003,chnl:15,x:370,y:397,page:0},{id:108,width:17,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:9.912,chnl:15,x:412,y:397,page:0},{id:107,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:21.336000000000002,chnl:15,x:431,y:397,page:0},{id:48,width:33,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:464,y:397,page:0},{id:71,width:38,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:30.681,chnl:15,x:21,y:347,page:0},{id:83,width:31,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:22.785,chnl:15,x:61,y:347,page:0},{id:63,width:27,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:18.795,chnl:15,x:94,y:347,page:0},{id:105,width:18,height:41,xoffset:0,yoffset:-30.639000000000003,xadvance:10.08,chnl:15,x:123,y:347,page:0},{id:51,width:32,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:143,y:347,page:0},{id:104,width:31,height:41,xoffset:0,yoffset:-30.933000000000003,xadvance:23.436,chnl:15,x:177,y:347,page:0},{id:67,width:37,height:41,xoffset:0,yoffset:-30.429000000000002,xadvance:28.056,chnl:15,x:210,y:347,page:0},{id:88,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.258000000000003,chnl:15,x:249,y:347,page:0},{id:68,width:40,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:31.941000000000003,chnl:15,x:288,y:347,page:0},{id:70,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:23.751,chnl:15,x:330,y:347,page:0},{id:34,width:23,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:15.561000000000002,chnl:15,x:364,y:347,page:0},{id:72,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:389,y:347,page:0},{id:73,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.760000000000002,chnl:15,x:429,y:347,page:0},{id:74,width:24,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:17.745,chnl:15,x:449,y:347,page:0},{id:75,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.825000000000003,chnl:15,x:24,y:297,page:0},{id:76,width:31,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:21.567,chnl:15,x:475,y:347,page:0},{id:66,width:35,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:27.153000000000002,chnl:15,x:64,y:297,page:0},{id:78,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:32.067,chnl:15,x:101,y:297,page:0},{id:33,width:18,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:11.298,chnl:15,x:141,y:297,page:0},{id:80,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.221,chnl:15,x:161,y:297,page:0},{id:65,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:197,y:297,page:0},{id:82,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.313000000000002,chnl:15,x:237,y:297,page:0},{id:35,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:275,y:297,page:0},{id:84,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.801000000000002,chnl:15,x:310,y:297,page:0},{id:85,width:37,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:30.891000000000002,chnl:15,x:346,y:297,page:0},{id:86,width:38,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:28.434,chnl:15,x:385,y:297,page:0},{id:39,width:16,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:8.568000000000001,chnl:15,x:425,y:297,page:0},{id:69,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.255000000000003,chnl:15,x:443,y:297,page:0},{id:89,width:36,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:26.208000000000002,chnl:15,x:23,y:247,page:0},{id:90,width:34,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:25.284000000000002,chnl:15,x:477,y:297,page:0},{id:49,width:31,height:40,xoffset:0,yoffset:-30.156000000000002,xadvance:24.360000000000003,chnl:15,x:61,y:247,page:0},{id:50,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:94,y:247,page:0},{id:57,width:32,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:24.360000000000003,chnl:15,x:128,y:247,page:0},{id:94,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:162,y:247,page:0},{id:96,width:21,height:40,xoffset:0,yoffset:-30.429000000000002,xadvance:16.8,chnl:15,x:196,y:247,page:0},{id:55,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:219,y:247,page:0},{id:54,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:254,y:247,page:0},{id:53,width:32,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:289,y:247,page:0},{id:52,width:33,height:40,xoffset:0,yoffset:-30.093000000000004,xadvance:24.360000000000003,chnl:15,x:323,y:247,page:0},{id:103,width:31,height:39,xoffset:0,yoffset:-21.630000000000003,xadvance:21.84,chnl:15,x:358,y:247,page:0},{id:112,width:32,height:39,xoffset:0,yoffset:-21.651,xadvance:23.541,chnl:15,x:391,y:247,page:0},{id:113,width:31,height:39,xoffset:0,yoffset:-21.651,xadvance:23.520000000000003,chnl:15,x:425,y:247,page:0},{id:116,width:25,height:39,xoffset:0,yoffset:-28.182000000000002,xadvance:15.057,chnl:15,x:458,y:247,page:0},{id:121,width:31,height:38,xoffset:0,yoffset:-21.273,xadvance:21.651,chnl:15,x:34,y:196,page:0},{id:59,width:18,height:36,xoffset:0,yoffset:-20.706,xadvance:10.983,chnl:15,x:485,y:247,page:0},{id:43,width:32,height:34,xoffset:0,yoffset:-24.486,xadvance:24.360000000000003,chnl:15,x:67,y:196,page:0},{id:60,width:30,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:101,y:196,page:0},{id:62,width:31,height:33,xoffset:0,yoffset:-23.331000000000003,xadvance:24.360000000000003,chnl:15,x:133,y:196,page:0},{id:117,width:30,height:32,xoffset:0,yoffset:-21.273,xadvance:23.415000000000003,chnl:15,x:166,y:196,page:0},{id:99,width:29,height:32,xoffset:0,yoffset:-21.609,xadvance:20.055,chnl:15,x:198,y:196,page:0},{id:110,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:23.436,chnl:15,x:229,y:196,page:0},{id:111,width:32,height:32,xoffset:0,yoffset:-21.609,xadvance:23.814,chnl:15,x:262,y:196,page:0},{id:126,width:32,height:26,xoffset:0,yoffset:-16.128,xadvance:24.360000000000003,chnl:15,x:201,y:447,page:0},{id:101,width:31,height:32,xoffset:0,yoffset:-21.609,xadvance:22.176000000000002,chnl:15,x:296,y:196,page:0},{id:114,width:25,height:32,xoffset:0,yoffset:-21.651,xadvance:15.288,chnl:15,x:329,y:196,page:0},{id:115,width:27,height:32,xoffset:0,yoffset:-21.609,xadvance:18.186,chnl:15,x:356,y:196,page:0},{id:97,width:28,height:32,xoffset:0,yoffset:-21.651,xadvance:20.874000000000002,chnl:15,x:385,y:196,page:0},{id:118,width:31,height:31,xoffset:0,yoffset:-21.273,xadvance:21.672,chnl:15,x:415,y:196,page:0},{id:61,width:31,height:29,xoffset:0,yoffset:-19.089000000000002,xadvance:24.360000000000003,chnl:15,x:448,y:196,page:0},{id:120,width:30,height:31,xoffset:0,yoffset:-21.273,xadvance:20.916,chnl:15,x:21,y:145,page:0},{id:58,width:18,height:31,xoffset:0,yoffset:-20.706,xadvance:10.5,chnl:15,x:53,y:145,page:0},{id:122,width:28,height:31,xoffset:0,yoffset:-21.273,xadvance:18.984,chnl:15,x:73,y:145,page:0},{id:95,width:28,height:16,xoffset:0,yoffset:0,xadvance:19.278000000000002,chnl:15,x:235,y:447,page:0},{id:45,width:23,height:24,xoffset:0,yoffset:-14.175,xadvance:15.603000000000002,chnl:15,x:481,y:196,page:0},{id:44,width:17,height:21,xoffset:0,yoffset:-4.956,xadvance:9.534,chnl:15,x:103,y:145,page:0},{id:46,width:18,height:15,xoffset:0,yoffset:-4.956,xadvance:9.912,chnl:15,x:0,y:497,page:0},{id:32,width:0,height:0,xoffset:0,yoffset:0,xadvance:10.752,chnl:15,x:20,y:497,page:0}],info:{face:"Lato Regular",size:42,bold:0,italic:0,charset:[" ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"],unicode:1,stretchH:100,smooth:1,aa:1,padding:[0,0,0,0],spacing:[2,2]},common:{lineHeight:50.400000000000006,base:41.454,scaleW:512,scaleH:512,pages:1,packed:0,alphaChnl:0,redChnl:0,greenChnl:0,blueChnl:0},kernings:[]};class t8 extends se{get behavior(){return fn}constructor(e){super();const n=sl(Eg),r=Z(e.field),i=e.as,o=e.fontSize;this.handle=a=>{const s=r(a);s!==void 0?a[i]=n.measureWidth(s,o):a[i]=0,this._propagate(a)}}}const n8=65536;class r8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e}reset(){this.initialize()}initialize(){const e=this.params,n=e.as||"lane",r=ce(e.spacing)?e.spacing:1,i=Z(e.start),o=Z(e.end);if(!e.preference!=!e.preferredOrder)throw new Error('Must specify both "preference" and "preferredOrder"');if(e.preference){const a=new Float64Array(n8),s=Z(e.preference),c=e.preferredOrder;let u=1/0;this.handle=f=>{const l=i(f);l<u&&a.fill(-1/0),u=l;const d=c.indexOf(s(f));let h=-1;if(d>=0&&a[d]<l)h=d;else{const p=i(f);for(h=0;h<a.length&&!(a[h]<p);h++);if(h>=a.length)throw new Error("Out of lanes!")}a[h]=o(f)+r,f[n]=h,this._propagate(f)}}else{const a=new fo,s=new fo;let c=-1/0,u=0;this.handle=f=>{const l=i(f);for(;a.length&&(a.peekValue()<=l||l<c);){const h=a.pop();s.push(h,h)}c=l;let d=s.pop();d===void 0&&(d=u++),f[n]=d,this._propagate(f),a.push(d,o(f)+r)}}}}class i8 extends se{get behavior(){return kt}constructor(e){if(super(),e.as&&e.as.length!=e.fields.length)throw new Error('"fields" and "as" have unequal lengths!');const n=e.fields.map(i=>Z(i)),r=e.as?e.as:n.map(ae);this.handle=i=>{const o={};for(let a=0;a<n.length;a++)o[r[a]]=n[a](i);this._propagate(o)}}}class o8 extends se{get behavior(){return fn}constructor(e){super();const n=new RegExp(e.regex),r=typeof e.as=="string"?[e.as]:e.as,i=Z(e.field);this.handle=o=>{const a=i(o);if(ee(a)){const s=a.match(n);if(s){if(s.length-1!=r.length)throw new Error('The number of RegEx groups and the length of "as" do not match!');for(let c=0;c<r.length;c++)o[r[c]]=s[c+1]}else if(e.skipInvalidInput)for(let c=0;c<r.length;c++)o[r[c]]=void 0;else throw new Error(`"${a}" does not match the given regex: ${n.toString()}`)}else if(!e.skipInvalidInput)throw new Error(`Trying to match a non-string field. Encountered type: ${typeof a}, field content: "${a}".`);this._propagate(o)}}}class a8 extends se{get behavior(){return kt}constructor(e){super();const n=qe(e.columnRegex).map(d=>new RegExp(d)),r=qe(e.asValue);if(n.length!=r.length)throw new Error('Lengths of "columnRegex" and "as" are not equal!');const i=e.skipRegex?new RegExp(e.skipRegex):void 0,o=e.asKey||"sample";let a,s,c;const u=d=>{var y;const h=Object.keys(d),p=new Map;for(const[g,x]of n.entries())for(const A of h){const C=(y=x.exec(A))==null?void 0:y[1];if(C!==void 0){let v=p.get(C);v||(v=[],p.set(C,v)),v[g]=A}}a=[...p.entries()],s=h.filter(g=>!n.some(x=>x.test(g))&&!(i&&i.test(g)));const m=[...s.map(g=>JSON.stringify(g)+": datum["+JSON.stringify(g)+"]"),JSON.stringify(o)+": sampleId",...r.map(g=>JSON.stringify(g)+": null")];c=new Function("datum","sampleId",`return {
1344
1344
  `+m.join(`,
1345
1345
  `)+`
1346
- };`)},f=d=>{a||u(d);for(const[h,p]of a){const m=c(d,h);for(let y=0;y<p.length;y++)m[r[y]]=d[p[y]];this._propagate(m)}},l=d=>{u(d),f(d),this.handle=f};this.handle=l,this.beginBatch=d=>{_m(d)&&(this.handle=l),super.beginBatch(d)}}}class w8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){var f;const e=this.params,n=e.as||["y0","y1"],r=e.sort?gd(e.sort.field,e.sort.order):void 0,i=e.field?Z(e.field):()=>1,o=e.groupby.map(l=>Z(l)),a=t2(this.buffer,l=>o.map(d=>d(l)).join()).map(l=>l[1]);let s=l=>!0;if(e.baseField){const l=Z(e.baseField);s=d=>l(d)!==null}let c,u;switch(e.offset){case"normalize":c=(l,d)=>l/d,u=(l,d)=>ta(l,d);break;case"center":c=(l,d)=>l-d/2,u=(l,d)=>ta(l,d);break;case"information":{const l=Math.log2((f=e.cardinality)!=null?f:4);c=(d,h)=>d/h,u=(d,h)=>{const m=ta(d,w=>+!s(w)),y=ta(d,h),g=y-m;let A=0;for(let w=0;w<d.length;w++){const C=d[w];if(s(C)){const b=h(C)/g;A-=b*Math.log2(b)}}return g/(l-(A+0))*(g/y)}}break;default:c=(l,d)=>l,u=(l,d)=>1}for(const l of a){r&&l.sort(r);const d=u(l,i);let h=0;for(const p of l){const m=h+i(p);s(p)&&(p[n[0]]=c(h,d),p[n[1]]=c(m,d),this._propagate(p),h=m)}}super.complete()}}class x8 extends se{get behavior(){return Nt}constructor(e){var o,a;super();const n=Z((o=e.field)!=null?o:"sequence"),[r,i]=(a=e.as)!=null?a:["pos","sequence"];this.handle=s=>{const c=Object.assign({},s,{[i]:"",[r]:0}),u=n(s);for(let f=0;f<u.length;f++){const l=Object.assign({},c);l[r]=f,l[i]=u.charAt(f),this._propagate(l)}}}}class C8 extends se{get behavior(){return Nt}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const n=this.params.groupby,r=n.map(o=>Z(o)),i=fi(this.buffer,...r);for(const[o,a]of Dl(i)){const s={count:a.length};for(let c=0;c<n.length;c++)s[n[c]]=o[c];this._propagate(s)}super.complete()}}const E8="_uniqueId",kg=1e4,Lg=[null];class Og extends se{get behavior(){return fn}constructor(e){var n;super(),this.params=e,this.as=(n=e.as)!=null?n:E8,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(e){e[this.as]=this._nextId(),this._propagate(e)}_nextId(){return++this._id%kg==0&&(this._id=this._getBlock()*kg),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const e=Lg.length;return Lg[e]=this,this._blocks.push(e),this._usedBlocks++,e}}const Bg={aggregate:C8,collect:Yr,coverage:i8,filterScoredLabels:s8,filter:c8,flattenCompressedExons:f8,flattenDelimited:d8,flattenSequence:x8,formula:p8,identifier:Og,linearizeGenomicCoordinate:Ig,measureText:m8,pileup:y8,project:v8,regexExtract:b8,regexFold:A8,sample:Wm,stack:w8};function S8(t,e){const n=Bg[t.type];if(n)return new n(t,e);throw new Error("Unknown transform: "+t.type)}function D8(t){return"values"in t}class M8 extends $n{constructor(e){var n;if(super(),this.params=e,typeof e.values=="string"&&!((n=e==null?void 0:e.format)!=null&&n.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const e=this.params.values;let n=[],r=i=>i;if(Array.isArray(e))e.length>0&&(n=e,r=cs(e[0]));else if(typeof e=="object")n=[e];else if(typeof e=="string")n=Ah(e,yg(this.params));else throw new Error('"values" in data configuration is not an array, object, or a string!');this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}function T8(t){return"url"in t}class I8 extends $n{constructor(e,n){super(),this.params=e,this.baseUrl=n}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const e=this.params.url,n=Array.isArray(e)?e:[e],r=async o=>Di({baseURL:this.baseUrl}).load(o).catch(a=>{throw new Error(`Cannot fetch: ${this.baseUrl}${o}: ${a.message}`)}),i=(o,a)=>{try{const s=Ah(o,yg(this.params));this.beginBatch({type:"file",url:a});for(const c of s)this._propagate(c)}catch(s){throw new Error(`Cannot parse: ${a}: ${s.message}`)}};this.reset(),await Promise.all(n.map(o=>r(o).then(i))),this.complete()}}function N8(t){return"sequence"in t}class k8 extends $n{constructor(e){if(super(),this.sequence=e.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const e=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[e]:i});this.complete()}async load(){this.loadSynchronously()}}function L8(t){return"dynamicSource"in t}class O8 extends $n{publishData(e){this.reset(),this.beginBatch({type:"file"});let n;for(const r of e)n||(n=cs(r)),this._propagate(n(r));this.complete()}async load(){}}function Fg(t,e){if(D8(t))return new M8(t);if(T8(t))return new I8(t,e);if(N8(t))return new k8(t);if(L8(t))return new O8;throw new Error("Cannot figure out the data source type: "+JSON.stringify(t))}function B8(t){const e=Object.keys(t).filter(r=>typeof r=="string"),n=new Function("source","return { "+e.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
1347
- `)+" };");return n.properties=e,n}class Pg extends se{get behavior(){return Nt}constructor(){super();const e=n=>{const r=B8(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=e,this.beginBatch=n=>{_m(n)&&(this.handle=e),super.beginBatch(n)}}}class zg{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(e,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(e)}_relayObserverCallback(e,n){const r=this._observers.get(n);if(r)for(const i of r)i(e)}addDataSource(e,n){this._dataSourcesByHost.set(n,e)}findDataSourceByKey(e){return this._dataSourcesByHost.get(e)}addCollector(e,n){this._collectorsByHost.set(n,e),e.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(e){return this._collectorsByHost.get(e)}initialize(){for(const e of this.dataSources)e.visit(n=>n.initialize())}}function F8(t){return"name"in t}class P8 extends $n{constructor(e,n){super(),this.getNamedData=n,this.params=e}get identifier(){return this.params.name}_getValues(){const e=this.getNamedData(this.params.name);if(e)return e;throw new Error("Cannot find named data: "+this.params.name)}loadSynchronously(){const e=this._getValues();let n=r=>r;if(Array.isArray(e))e.length>0&&(n=cs(e[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const r of e)this._propagate(n(r));this.complete()}async load(){this.loadSynchronously()}}function Rg(t,e){const n=[];let r;const i=e!=null?e:new zg,o=[];function a(f,l=()=>{}){if(!r)throw l()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(f),r=f,f}function s(f,l){return a(f,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${l?JSON.stringify(l):""}`))}function c(f,l){for(const d of f){let h;try{h=S8(d,l)}catch(p){throw console.warn(p),new Error(`Cannot initialize "${d.type}" transform: ${p}`)}h.behavior&fn&&s(new Pg),s(h)}}const u=f=>{if(n.push(r),f.spec.data){const l=GM(f.spec.data)?f.getDynamicDataSource():F8(f.spec.data)?new P8(f.spec.data,f.context.getNamedData):Fg(f.spec.data,f.getBaseUrl());r=l,i.addDataSource(l,f)}if(f.spec.transform&&c(f.spec.transform,f),f instanceof ye){if(!r)throw new Error("A unit view has no (inherited) data source");const l=z8(f);if(l){o.push(l.rewrite);for(const h of l.transforms)s(h)}f.mark.isPickingParticipant()&&s(new Og({type:"identifier"}));const d=new Yr({type:"collect",groupby:f.getFacetFields(),sort:R8(f,l==null?void 0:l.rewrittenEncoding)});a(d),i.addCollector(d,f)}Tg(f.spec)};return u.postOrder=f=>{r=n.pop()},t.visit(u),o.forEach(f=>f()),i}function z8(t){var o,a,s,c;const e=[],n={},r=[];for(const[u,f]of Object.entries(t.getEncoding())){const l=u;Ki(l)&&dp(f)&&r.push({channel:l,chromPosDef:f})}const i=fi(r,u=>kr(u.channel),u=>u.chromPosDef.chrom);for(const[u,f]of i.entries())for(const[l,d]of f.entries()){const h=[],p=[],m=[];for(const{channel:y,chromPosDef:g}of d){const A=b=>b.replace(/[^A-Za-z0-9_]/g,""),w=["_linearized_",A(g.chrom),"_",A(g.pos)].join(""),C={...(s=(a=(o=t.spec.encoding)==null?void 0:o[y])!=null?a:t.getEncoding()[y])!=null?s:{},field:w};delete C.chrom,delete C.pos,!C.type&&g.type&&(C.type=g.type),n[y]=C,h.push(g.pos),m.push((c=g.offset)!=null?c:0),p.push(w)}e.push(new Ig({type:"linearizeGenomicCoordinate",channel:u,chrom:l,pos:h,offset:m,as:p},t))}return e.length?{transforms:e,rewrittenEncoding:n,rewrite:()=>{t.spec.encoding={...t.spec.encoding,...n},Rm(t.mark,"encoding")}}:void 0}function R8(t,e){var r;const n={...t.getEncoding(),...e}.x;if(Je(n)&&(r=t.getScaleResolution("x"))!=null&&r.isZoomable()){if(Vn(n))return{field:n.field};if(!Zi(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function j8(t,...e){let n=t;for(const o of e)n.addChild(o),n=o;let r;n instanceof Yr?r=n:(r=new Yr,n.addChild(r));let i;return t instanceof $n?i=async()=>(await t.load(),r.getData()):i=async()=>{throw new Error("The root node is not derived from DataSource!")},{dataSource:t,collector:r,loadAndCollect:i}}function jg(t,e=void 0){if(t.parent!==e)return!1;for(const n of t.children)if(!jg(n,t))return!1;return!0}function Ml(t,e=!1){if(t instanceof Yr&&(e=!0),t instanceof Pg)if(e)e=!1;else{const n=t.children[0];t.excise(),n&&Ml(n,e);return}t.behavior&Nt&&(e=!1);for(let n=0,r=t.children.length;n<r;n++)Ml(t.children[n],e||n<r-1)}function U8(t){const e=[...t._dataSourcesByHost.entries()],n=new Map;for(const r of e){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}t._dataSourcesByHost.clear();for(let[r,i]of e){const o=n.get(i.identifier);o&&(o.adoptChildrenOf(i),i=o),t.addDataSource(i,r)}}function G8(t){if(Ml(t),!jg(t))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function H8(t){for(const e of t.dataSources)G8(e);U8(t)}function Ug(t){t.visit(n=>{n instanceof ye&&n.resolve("scale")});const e=new Set;t.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&e.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);e.add(i)}}),t.visit(n=>{n instanceof ye&&n.resolve("axis")}),t.visit(n=>n.onScalesResolved())}function Q8(t){for(const e of qi){const n=t.getScaleResolution(e);n&&!n.name&&n.isZoomable()&&(n.name=`${e}_at_root`)}}function V8(t){const e=[];return t.visit(n=>{if(n instanceof ye){const r=n.getEncoding();for(const[i,o]of Object.entries(r))Vn(o)&&"type"in o&&e.push({view:n,channel:i,field:o.field,type:o.type});return as}}),e}async function Y8(t,e,n){var a;if(!t.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(t));const r=Di({baseURL:e}),i=t.import.url,o=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
1348
- Reason: ${s.message}`)}));if(n.isViewSpec(o))return o.baseUrl=(a=i.match(/^[^?#]*\//))==null?void 0:a[0],o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(t)}`)}async function Gg(t){const e=[];t.visit(n=>{if(n instanceof pg)return e.push(n),as});for(const n of e){const r=n.context,i=await Y8(n.spec,n.getBaseUrl(),r),o=r.createView(i,n.parent,n.name);n.parent.replaceChild(n,o),await Gg(o)}}function Hg(t){const e=[];return t.visit(n=>{e.push(n)}),new Set([...n2(e,n=>n.length,n=>n.name)].filter(([n,r])=>r==1&&n!==void 0).map(([n,r])=>n))}const _8=t=>!/^(layer|concat)\d+$/.test(t);class Qg{constructor(e){this.globalOptions=e}pushView(e,n){}popView(e){}renderMark(e,n){}}class Vg extends Qg{constructor(e,n){super(e),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(e,n){this.views.add(e),this.coords=n}renderMark(e,n){if(this.globalOptions.picking&&!e.isPickingParticipant())return;const r=e.render(n);r&&this.buffer.push({mark:e,callback:r,coords:this.coords,clipRect:n.clipRect})}renderDeferred(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const e=this.webGLHelper.gl,n=this.globalOptions.picking;e.bindFramebuffer(e.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&e.bindFramebuffer(e.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let e=!0,n=!0;const r=a=>()=>{e&&a()},i=a=>()=>{e&&n&&a()},o=fi(this.buffer,a=>a.mark);for(const[a,s]of o.entries()){if(!a.isReady())continue;this.batch.push(()=>{e=a.unitView.getEffectiveOpacity()>0}),this.batch.push(...a.prepareRender(this.globalOptions).map(u=>r(u)));let c;for(const u of s){const f=u.coords;f.equals(c)||this.batch.push(r(()=>{n=a.setViewport(f,u.clipRect)})),this.batch.push(i(u.callback)),c=u.coords}}}}class W8 extends Qg{constructor(...e){super({}),this.contexts=e}pushView(e,n){for(const r of this.contexts)r.pushView(e,n)}popView(e){for(const n of this.contexts)n.popView(e)}renderMark(e,n){for(const r of this.contexts)r.renderMark(e,n)}}class X8{constructor(e,n){this.point=e,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class Z8{constructor(e,n){this.x=e,this.y=n}equals(e){return e?e===this||e.x===this.x&&e.y===this.y:!1}}const q8=t=>new Promise(e=>setTimeout(e,t));function us(t){const e=t.requestAnimationFrame||window.requestAnimationFrame,n=t.signal,r=()=>new Promise((i,o)=>{if(n!=null&&n.aborted)return o("aborted");const a=performance.now(),s=a+(t.duration||1e3),c=typeof t.from=="number"?t.from:0,u=typeof t.to=="number"?t.to:1,f=t.easingFunction||(m=>m),l=m=>(m-a)/(s-a),d=m=>m*(u-c)+c,h=m=>Math.max(0,Math.min(1,m)),p=m=>{n!=null&&n.aborted?o("aborted"):(t.onUpdate(d(f(h(l(m))))),m<s?e(p):(t.onUpdate(d(f(1))),i()))};e(p)});return t.delay?n!=null&&n.aborted?Promise.reject("aborted"):q8(t.delay).then(r):r()}class K8{constructor(e){this._renderCallback=e,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(e){this.cancelTransition(e),this.transitions.push(e),this.requestRender()}cancelTransition(e){const n=this.transitions.indexOf(e);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(e=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(e);this._renderCallback(e)}))}transition(e){return us({requestAnimationFrame:n=>this.requestTransition(n),...e})}}function Yg(){const t=e=>e;return t.invert=e=>e,t.copy=Yg,t.invertRange=()=>{},t}class J8{constructor(e){this.genomes=new Map,this.genomeSpy=e}async initialize(e){const n=new CM(e);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.genomeSpy.spec.baseUrl)))}getGenome(e){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(e){const n=this.genomes.get(e);if(!n)throw new Error(`No genome with the name ${e} has been configured!`);return n}else{if(this.genomes.size>1)throw new Error("Cannot pick a default genome! More than one have been configured!");return this.genomes.values().next().value}}}const $8="data:image/png;base64,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",e5={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class t5{constructor(e){this._webGLHelper=e,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new Dn([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:cl(Ng),texture:this._createTextureNow($8)}}async waitUntilReady(){await Promise.all(this._promises)}getFont(e,n="normal",r="regular"){if(ee(r)&&(r=e5[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:e,style:n,weight:r};let o=this._fonts.get(i);return o||(o={metrics:void 0,texture:void 0},this._fonts.set(i,o),this._promises.push(this._loadFontEntry(o,i))),o}async _loadFontEntry(e,n){try{const r=await this._loadMetadata(n.family),i=r5(r,n),o=this.fontRepository+_g(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");e.texture=await a,e.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),e.metrics=this._defaultFontEntry.metrics,e.texture=this._defaultFontEntry.texture}}_loadFont(e){let n=this._fontPromises.get(e);return n||(n=fetch(e).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>cl(r)),this._fontPromises.set(e,n)),n}_loadMetadata(e){const n=_g(e);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>n5(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(e){const n=this._webGLHelper.gl;return new Promise((r,i)=>{io(n,{src:e,min:n.LINEAR},(o,a,s)=>{o?i(o):r(a)})})}_createTextureNow(e){const n=this._webGLHelper.gl;let r;const i=new Promise((o,a)=>{r=io(n,{src:e,min:n.LINEAR},(s,c,u)=>{s?a(s):o(c)})});return this._promises.push(i),r}}function _g(t){return t.toLowerCase().replaceAll(/[^\w]/g,"")}function n5(t){const e=t.split(`
1349
- `),n=[];let r;for(const i of e)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let o=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(o){const a=o[1];r[a]=o[2]}if(o=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),o){const a=o[1];r[a]=+o[2]}}return n}function r5(t,e){let n,r=Number.POSITIVE_INFINITY;for(const i of t)if(e.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&e.style==i.style){const o=Math.abs(e.weight-i.weight);o<r&&(r=o,n=i)}return n==null?void 0:n.filename}function i5(t,e){const n=[];let r;for(const i of t.split(`
1350
- `))if(i.startsWith(">"))r={identifier:i.match(/>(\S+)/)[1],sequence:""},n.push(r);else if(r)r.sequence+=i.trim();else throw new Error("Invalid fasta file!");return n}class o5{constructor(e,n){this.animator=e,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(e,n){if(this.disabled){n(e);return}e*this.momentum<0?this.momentum=0:Math.abs(e)>this.accelerationThreshold?this.momentum=kb([this.momentum,e],this.acceleration):this.momentum=e,this.callback=n,this.loop||this.animate()}animate(e){this.callback(this.momentum);const n=e-this.timestamp||0;this.timestamp=e;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function a5(t){const e={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in t){const o=i;!r.includes(i)&&n.includes(typeof t[o])&&(e[o]=t[o])}return e}function ls(t,e,n=!0){let r,i=a=>{};return function(...s){return new Promise((c,u)=>{const f=()=>{clearTimeout(r),i=l=>{},c(t(...s))};n&&i("debounced"),clearTimeout(r),i=u,r=setTimeout(f,e)})}}const Wg=new Map;async function s5(t,e,n){var o;const r=t.symbol;let i=(o=Wg.get(r))!=null?o:await l5(t.symbol);return i?(Wg.set(r,i),D`<div class="title"><strong>${i.name}</strong> ${i.description}</div><p class="summary">${i.summary}</p><p class="source">Source: NCBI RefSeq Gene</p>`):null}async function c5(t){console.log("Searching: "+t);const e={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${t}[GENE]&sort=relevance&retmode=json`,e).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,e).then(a=>a.json())).result[r]:null}const u5=ls(c5,500);function l5(t){return u5(t)}const f5=le(".4~r"),d5=le(".4~e");function Xg(t){return t===null?D`<span class="na">NA</span>`:ee(t)?t.substring(0,30):Number.isInteger(t)?""+t:ce(t)?Math.abs(t)>Math.pow(10,8)||Math.abs(t)<Math.pow(10,-8)?d5(t):f5(t):Xo(t)?t?"True":"False":"?"+typeof t+" "+t}async function h5(t,e,n){const r=(s,c)=>{var u;for(const[f,l]of Object.entries(e.encoders))if((u=l==null?void 0:l.accessor)!=null&&u.fields.includes(s))switch(f){case"color":case"fill":case"stroke":return D`<span class="color-legend" style="${`background-color: ${l(c)}`}"></span>`}return""},i=D`<table class="attributes">${Object.entries(t).filter(([s,c])=>!s.startsWith("_")).map(([s,c])=>D`<tr><th>${s}</th><td>${Xg(c)} ${r(s,t)}</td></tr>`)}</table>`,o=e.unitView.getTitleText(),a=o?D`<div class="title"><strong>${o}</strong></div>`:"";return D`${a}${i}`}class p5 extends Mg{constructor(e,n){super({vconcat:[]},e,void 0,"implicitRoot",1),n.parent=this,this.appendChild(n)}}W("index",Nc,["continuous"]),W("locus",rw,["continuous"]),W("null",Yg,[]),bh("fasta",i5);class Zg{constructor(e,n,r={}){var i;this.container=e,this.spec=n,this.accessorFactory=new e3,this.viewFactory=new e8,this.namedDataProviders=[],this.animator=new K8(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=o=>o.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new o5(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this.tooltipHandlers={default:h5,refseqgene:s5,...(i=r.tooltipHandlers)!=null?i:{}},this.viewRoot=void 0}registerNamedDataProvider(e){this.namedDataProviders.unshift(e)}getNamedData(e){for(const n of this.namedDataProviders){const r=n(e);if(r)return r}}broadcast(e,n){const r={type:e,payload:n};this.viewRoot.visit(i=>i.handleBroadcast(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new pD(this.container,()=>{if(this.viewRoot){const e=this.viewRoot.getSize().addPadding(this.viewRoot.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(e.width),height:n(e.height)}}}),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.tooltip=new Ox(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[e,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(e,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new J8(this),await this.genomeStore.initialize(this.spec.genome));const e=this,n={dataFlow:new zg,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new t5(this._glHelper),requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedData:this.getNamedData.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,c)=>{document.addEventListener(s,c);let u=this._keyboardListeners.get(s);u||(u=[],this._keyboardListeners.set(s,u)),u.push(c)},isViewVisible:e.viewVisibilityPredicate,isViewSpec:s=>e.viewFactory.isViewSpec(s),createView:function(s,c,u){return e.viewFactory.createView(s,n,c,u)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,"viewRoot"),await Gg(this.viewRoot),(this.viewRoot instanceof ye||this.viewRoot instanceof kt)&&(this.viewRoot=new p5(n,this.viewRoot)),Ug(this.viewRoot),Q8(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof ye&&i.push(s)});const o=Rg(this.viewRoot,n.dataFlow);H8(o),this.broadcast("dataFlowBuilt",o),o.dataSources.forEach(s=>console.log(s.subtreeToString())),i.forEach(s=>s.mark.initializeEncoders());const a=Promise.all(i.map(s=>s.mark.initializeGraphics()));for(const s of i)o.addObserver(c=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(s=>s.load())),this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))c.reconfigure()}),this.broadcast("dataLoaded"),await a,this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(c)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>so(s,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),this._glHelper.addEventListener("resize",()=>{this.computeLayout(),this.renderAll()}),!0}catch(e){const n=`${e.view?`At "${e.view.getPathString()}": `:""}${e.toString()}`;return console.error(e.stack),m5(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const e=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const o=e.getBoundingClientRect(),a=new Z8(r.clientX-o.left-e.clientLeft,r.clientY-o.top-e.clientTop),s=c=>{this.viewRoot.propagateInteractionEvent(new X8(a,c)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(a.x,a.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const c=r;if(Math.abs(c.deltaX)>Math.abs(c.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const u=a5(c);this._wheelInertia.setMomentum(c.deltaY*(c.deltaMode?80:1),f=>{const l=new WheelEvent("wheel",{...u,deltaMode:0,deltaX:0,deltaY:f});s(l)}),c.preventDefault();return}}if(r.type=="click"){const c=this._currentHover?{type:r.type,viewPath:[...this._currentHover.mark.unitView.getAncestors()].map(u=>u.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(u=>u(c))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>e.addEventListener(r,n)),e.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),e.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(e,n){var o;const r=this._glHelper.readPickingPixel(e,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((o=this._currentHover)==null?void 0:o.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(a=>{if(a instanceof ye){if(a.mark.isPickingParticipant()){const s=a.mark.encoders.uniqueId.accessor;a.getCollector().visitData(c=>{s(c)==i&&(this._currentHover={mark:a.mark,datum:c,uniqueId:i})})}if(this._currentHover)return Kn}}),this._currentHover){const a=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{var u;if(!a.isPickingParticipant())return;const c=a.properties.tooltip;if(c!==null){const f=(u=c==null?void 0:c.handler)!=null?u:"default",l=this.tooltipHandlers[f];if(!l)throw new Error("No such tooltip handler: "+f);return l(s,a,c==null?void 0:c.params)}})}}updateTooltip(e,n){if(!this._tooltipUpdateRequested||!e)this.tooltip.updateWithDatum(e,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const e=this.viewRoot;if(!e)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new Vg({picking:!1},this._glHelper),this._pickingContext=new Vg({picking:!0},this._glHelper),e.render(new W8(this._renderingContext,this._pickingContext),dn.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var e;(e=this._renderingContext)==null||e.renderDeferred(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){!this._dirtyPickingBuffer||(this._pickingContext.renderDeferred(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const e=[];return this.viewRoot.visit(n=>{n instanceof ye&&n.getAccessor("search")&&e.push(n)}),e}getNamedScaleResolutions(){const e=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&e.set(r.name,r)}),e}}function m5(t,e){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=e,n.appendChild(r),t.appendChild(n)}const vk="",g5="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";/**
1346
+ };`)},f=d=>{a||u(d);for(const[h,p]of a){const m=c(d,h);for(let y=0;y<p.length;y++)m[r[y]]=d[p[y]];this._propagate(m)}},l=d=>{u(d),f(d),this.handle=f};this.handle=l,this.beginBatch=d=>{Gm(d)&&(this.handle=l),super.beginBatch(d)}}}class s8 extends se{get behavior(){return fn}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){var f;const e=this.params,n=e.as||["y0","y1"],r=e.sort?fd(e.sort.field,e.sort.order):void 0,i=e.field?Z(e.field):()=>1,o=e.groupby.map(l=>Z(l)),a=Gb(this.buffer,l=>o.map(d=>d(l)).join()).map(l=>l[1]);let s=l=>!0;if(e.baseField){const l=Z(e.baseField);s=d=>l(d)!==null}let c,u;switch(e.offset){case"normalize":c=(l,d)=>l/d,u=(l,d)=>$o(l,d);break;case"center":c=(l,d)=>l-d/2,u=(l,d)=>$o(l,d);break;case"information":{const l=Math.log2((f=e.cardinality)!=null?f:4);c=(d,h)=>d/h,u=(d,h)=>{const m=$o(d,A=>+!s(A)),y=$o(d,h),g=y-m;let x=0;for(let A=0;A<d.length;A++){const C=d[A];if(s(C)){const v=h(C)/g;x-=v*Math.log2(v)}}return g/(l-(x+0))*(g/y)}}break;default:c=(l,d)=>l,u=(l,d)=>1}for(const l of a){r&&l.sort(r);const d=u(l,i);let h=0;for(const p of l){const m=h+i(p);s(p)&&(p[n[0]]=c(h,d),p[n[1]]=c(m,d),this._propagate(p),h=m)}}super.complete()}}class c8 extends se{get behavior(){return kt}constructor(e){var o,a;super();const n=Z((o=e.field)!=null?o:"sequence"),[r,i]=(a=e.as)!=null?a:["pos","sequence"];this.handle=s=>{const c=Object.assign({},s,{[i]:"",[r]:0}),u=n(s);for(let f=0;f<u.length;f++){const l=Object.assign({},c);l[r]=f,l[i]=u.charAt(f),this._propagate(l)}}}}class u8 extends se{get behavior(){return kt}constructor(e){super(),this.params=e,this.buffer=[]}reset(){this.buffer=[]}handle(e){this.buffer.push(e)}complete(){const n=this.params.groupby,r=n.map(o=>Z(o)),i=ci(this.buffer,...r);for(const[o,a]of El(i)){const s={count:a.length};for(let c=0;c<n.length;c++)s[n[c]]=o[c];this._propagate(s)}super.complete()}}const l8="_uniqueId",Dg=1e4,Mg=[null];class Tg extends se{get behavior(){return fn}constructor(e){var n;super(),this.params=e,this.as=(n=e.as)!=null?n:l8,this._blocks=[],this._usedBlocks=0,this._id=-1}initialize(){}reset(){super.reset(),this._usedBlocks=0,this._id=-1}handle(e){e[this.as]=this._nextId(),this._propagate(e)}_nextId(){return++this._id%Dg==0&&(this._id=this._getBlock()*Dg),this._id}_getBlock(){return this._usedBlocks<this._blocks.length?this._blocks[this._usedBlocks++]:this._reserveBlock()}_reserveBlock(){const e=Mg.length;return Mg[e]=this,this._blocks.push(e),this._usedBlocks++,e}}const Ig={aggregate:u8,collect:Qr,coverage:VM,filterScoredLabels:WM,filter:XM,flattenCompressedExons:KM,flattenDelimited:JM,flattenSequence:c8,formula:e8,identifier:Tg,linearizeGenomicCoordinate:Sg,measureText:t8,pileup:r8,project:i8,regexExtract:o8,regexFold:a8,sample:Hm,stack:s8};function f8(t,e){const n=Ig[t.type];if(n)return new n(t,e);throw new Error("Unknown transform: "+t.type)}function d8(t){return"values"in t}class h8 extends Jn{constructor(e){var n;if(super(),this.params=e,typeof e.values=="string"&&!((n=e==null?void 0:e.format)!=null&&n.type))throw new Error("Data format type (csv, dsv, ...) must be specified if a string is provided!")}loadSynchronously(){const e=this.params.values;let n=[],r=i=>i;if(Array.isArray(e))e.length>0&&(n=e,r=as(e[0]));else if(typeof e=="object")n=[e];else if(typeof e=="string")n=mh(e,dg(this.params));else throw new Error('"values" in data configuration is not an array, object, or a string!');this.reset(),this.beginBatch({type:"file"});for(const i of n)this._propagate(r(i));this.complete()}async load(){this.loadSynchronously()}}function p8(t){return"url"in t}class m8 extends Jn{constructor(e,n){super(),this.params=e,this.baseUrl=n}get identifier(){return JSON.stringify({params:this.params,baseUrl:this.baseUrl})}async load(){const e=this.params.url,n=Array.isArray(e)?e:[e],r=async o=>Ci({baseURL:this.baseUrl}).load(o).catch(a=>{throw new Error(`Cannot fetch: ${this.baseUrl}${o}: ${a.message}`)}),i=(o,a)=>{try{const s=mh(o,dg(this.params));this.beginBatch({type:"file",url:a});for(const c of s)this._propagate(c)}catch(s){throw new Error(`Cannot parse: ${a}: ${s.message}`)}};this.reset(),await Promise.all(n.map(o=>r(o).then(i))),this.complete()}}function g8(t){return"sequence"in t}class y8 extends Jn{constructor(e){if(super(),this.sequence=e.sequence,!("start"in this.sequence))throw new Error("'start' is missing from sequence parameters!");if(!("stop"in this.sequence))throw new Error("'stop' is missing from sequence parameters!")}loadSynchronously(){const e=this.sequence.as||"data",n=this.sequence.step||1,r=this.sequence.stop;this.reset(),this.beginBatch({type:"file"});for(let i=this.sequence.start;i<r;i+=n)this._propagate({[e]:i});this.complete()}async load(){this.loadSynchronously()}}function b8(t){return"dynamicSource"in t}class v8 extends Jn{publishData(e){this.reset(),this.beginBatch({type:"file"});let n;for(const r of e)n||(n=as(r)),this._propagate(n(r));this.complete()}async load(){}}function kg(t,e){if(d8(t))return new h8(t);if(p8(t))return new m8(t,e);if(g8(t))return new y8(t);if(b8(t))return new v8;throw new Error("Cannot figure out the data source type: "+JSON.stringify(t))}function A8(t){const e=Object.keys(t).filter(r=>typeof r=="string"),n=new Function("source","return { "+e.map(r=>JSON.stringify(r)).map(r=>`${r}: source[${r}]`).join(`,
1347
+ `)+" };");return n.properties=e,n}class Ng extends se{get behavior(){return kt}constructor(){super();const e=n=>{const r=A8(n);this.handle=i=>this._propagate(r(i)),this.handle(n)};this.handle=e,this.beginBatch=n=>{Gm(n)&&(this.handle=e),super.beginBatch(n)}}}class Lg{constructor(){this._dataSourcesByHost=new Map,this._collectorsByHost=new Map,this._observers=new Map}get dataSources(){return[...new Set(this._dataSourcesByHost.values()).values()]}get collectors(){return[...this._collectorsByHost.values()]}addObserver(e,n){let r=this._observers.get(n);r||(r=[],this._observers.set(n,r)),r.push(e)}_relayObserverCallback(e,n){const r=this._observers.get(n);if(r)for(const i of r)i(e)}addDataSource(e,n){this._dataSourcesByHost.set(n,e)}findDataSourceByKey(e){return this._dataSourcesByHost.get(e)}addCollector(e,n){this._collectorsByHost.set(n,e),e.observers.push(r=>this._relayObserverCallback(r,n))}findCollectorByKey(e){return this._collectorsByHost.get(e)}initialize(){for(const e of this.dataSources)e.visit(n=>n.initialize())}}function x8(t){return"name"in t}class w8 extends Jn{constructor(e,n){super(),this.getNamedData=n,this.params=e}get identifier(){return this.params.name}_getValues(){const e=this.getNamedData(this.params.name);if(e)return e;throw new Error("Cannot find named data: "+this.params.name)}loadSynchronously(){const e=this._getValues();let n=r=>r;if(Array.isArray(e))e.length>0&&(n=as(e[0]));else throw new Error(`Named data "${this.params.name}" is not an array!`);this.reset(),this.beginBatch({type:"file"});for(const r of e)this._propagate(n(r));this.complete()}async load(){this.loadSynchronously()}}function Bg(t,e){const n=[];let r;const i=e!=null?e:new Lg,o=[];function a(f,l=()=>{}){if(!r)throw l()||new Error("Cannot append data flow node, no parent exist!");return r.addChild(f),r=f,f}function s(f,l){return a(f,()=>new Error(`Cannot append a transform because no (inherited) data are available! ${l?JSON.stringify(l):""}`))}function c(f,l){for(const d of f){let h;try{h=f8(d,l)}catch(p){throw console.warn(p),new Error(`Cannot initialize "${d.type}" transform: ${p}`)}h.behavior&fn&&s(new Ng),s(h)}}const u=f=>{if(n.push(r),f.spec.data){const l=MM(f.spec.data)?f.getDynamicDataSource():x8(f.spec.data)?new w8(f.spec.data,f.context.getNamedData):kg(f.spec.data,f.getBaseUrl());r=l,i.addDataSource(l,f)}if(f.spec.transform&&c(f.spec.transform,f),f instanceof ye){if(!r)throw new Error("A unit view has no (inherited) data source");const l=C8(f);if(l){o.push(l.rewrite);for(const h of l.transforms)s(h)}f.mark.isPickingParticipant()&&s(new Tg({type:"identifier"}));const d=new Qr({type:"collect",groupby:f.getFacetFields(),sort:S8(f,l==null?void 0:l.rewrittenEncoding)});a(d),i.addCollector(d,f)}Cg(f.spec)};return u.postOrder=f=>{r=n.pop()},t.visit(u),o.forEach(f=>f()),i}function C8(t){var o,a,s,c;const e=[],n={},r=[];for(const[u,f]of Object.entries(t.getEncoding())){const l=u;Xi(l)&&sp(f)&&r.push({channel:l,chromPosDef:f})}const i=ci(r,u=>Ir(u.channel),u=>u.chromPosDef.chrom);for(const[u,f]of i.entries())for(const[l,d]of f.entries()){const h=[],p=[],m=[];for(const{channel:y,chromPosDef:g}of d){const x=v=>v.replace(/[^A-Za-z0-9_]/g,""),A=["_linearized_",x(g.chrom),"_",x(g.pos)].join(""),C={...(s=(a=(o=t.spec.encoding)==null?void 0:o[y])!=null?a:t.getEncoding()[y])!=null?s:{},field:A};delete C.chrom,delete C.pos,!C.type&&g.type&&(C.type=g.type),n[y]=C,h.push(g.pos),m.push((c=g.offset)!=null?c:0),p.push(A)}e.push(new Sg({type:"linearizeGenomicCoordinate",channel:u,chrom:l,pos:h,offset:m,as:p},t))}return e.length?{transforms:e,rewrittenEncoding:n,rewrite:()=>{t.spec.encoding={...t.spec.encoding,...n},Bm(t.mark,"encoding")}}:void 0}function S8(t,e){var r;const n={...t.getEncoding(),...e}.x;if(Ke(n)&&(r=t.getScaleResolution("x"))!=null&&r.isZoomable()){if(Qn(n))return{field:n.field};if(!_i(n))throw new Error("A zoomable x channel must be mapped to a field.")}}function E8(t,...e){let n=t;for(const o of e)n.addChild(o),n=o;let r;n instanceof Qr?r=n:(r=new Qr,n.addChild(r));let i;return t instanceof Jn?i=async()=>(await t.load(),r.getData()):i=async()=>{throw new Error("The root node is not derived from DataSource!")},{dataSource:t,collector:r,loadAndCollect:i}}function Og(t,e=void 0){if(t.parent!==e)return!1;for(const n of t.children)if(!Og(n,t))return!1;return!0}function Dl(t,e=!1){if(t instanceof Qr&&(e=!0),t instanceof Ng)if(e)e=!1;else{const n=t.children[0];t.excise(),n&&Dl(n,e);return}t.behavior&kt&&(e=!1);for(let n=0,r=t.children.length;n<r;n++)Dl(t.children[n],e||n<r-1)}function D8(t){const e=[...t._dataSourcesByHost.entries()],n=new Map;for(const r of e){const i=r[1];i.identifier&&!n.has(i.identifier)&&n.set(i.identifier,i)}t._dataSourcesByHost.clear();for(let[r,i]of e){const o=n.get(i.identifier);o&&(o.adoptChildrenOf(i),i=o),t.addDataSource(i,r)}}function M8(t){if(Dl(t),!Og(t))throw new Error("Encountered a bug! There's a problem in the data flow structure.")}function T8(t){for(const e of t.dataSources)M8(e);D8(t)}function Pg(t){t.visit(n=>{n instanceof ye&&n.resolve("scale")});const e=new Set;t.visit(n=>{for(const r of Object.values(n.resolutions.scale)){const i=r.name;if(i&&e.has(i))throw new Error(`The same scale name "${i}" occurs in multiple scale resolutions!`);e.add(i)}}),t.visit(n=>{n instanceof ye&&n.resolve("axis")}),t.visit(n=>n.onScalesResolved())}function I8(t){for(const e of Wi){const n=t.getScaleResolution(e);n&&!n.name&&n.isZoomable()&&(n.name=`${e}_at_root`)}}function k8(t){const e=[];return t.visit(n=>{if(n instanceof ye){const r=n.getEncoding();for(const[i,o]of Object.entries(r))Qn(o)&&"type"in o&&e.push({view:n,channel:i,field:o.field,type:o.type});return is}}),e}async function N8(t,e,n){var a;if(!t.import.url)throw new Error("Cannot import, not an import spec: "+JSON.stringify(t));const r=Ci({baseURL:e}),i=t.import.url,o=JSON.parse(await r.load(i).catch(s=>{throw new Error(`Could not load imported view spec: ${i}
1348
+ Reason: ${s.message}`)}));if(n.isViewSpec(o))return o.baseUrl=(a=i.match(/^[^?#]*\//))==null?void 0:a[0],o;throw new Error(`The imported spec "${i}" is not a view spec: ${JSON.stringify(t)}`)}async function Fg(t){const e=[];t.visit(n=>{if(n instanceof ug)return e.push(n),is});for(const n of e){const r=n.context,i=await N8(n.spec,n.getBaseUrl(),r),o=r.createView(i,n.parent,n.name);n.parent.replaceChild(n,o),await Fg(o)}}function zg(t){const e=[];return t.visit(n=>{e.push(n)}),new Set([...Hb(e,n=>n.length,n=>n.name)].filter(([n,r])=>r==1&&n!==void 0).map(([n,r])=>n))}const L8=t=>!/^(layer|concat)\d+$/.test(t);class Rg{constructor(e){this.globalOptions=e}pushView(e,n){}popView(e){}renderMark(e,n){}}class jg extends Rg{constructor(e,n){super(e),this.webGLHelper=n,this.buffer=[],this.coords=void 0,this.views=new Set}pushView(e,n){this.views.add(e),this.coords=n}renderMark(e,n){if(this.globalOptions.picking&&!e.isPickingParticipant())return;const r=e.render(n);r&&this.buffer.push({mark:e,callback:r,coords:this.coords,clipRect:n.clipRect})}renderDeferred(){if(this.batch||this._buildBatch(),this.batch.length==0)return;const e=this.webGLHelper.gl,n=this.globalOptions.picking;e.bindFramebuffer(e.FRAMEBUFFER,n?this.webGLHelper._pickingBufferInfo.framebuffer:null),this.webGLHelper.clearAll();for(const r of this.views)r.onBeforeRender();for(const r of this.batch)r();n&&e.bindFramebuffer(e.FRAMEBUFFER,null)}_buildBatch(){this.batch=[];let e=!0,n=!0;const r=a=>()=>{e&&a()},i=a=>()=>{e&&n&&a()},o=ci(this.buffer,a=>a.mark);for(const[a,s]of o.entries()){if(!a.isReady())continue;this.batch.push(()=>{e=a.unitView.getEffectiveOpacity()>0}),this.batch.push(...a.prepareRender(this.globalOptions).map(u=>r(u)));let c;for(const u of s){const f=u.coords;f.equals(c)||this.batch.push(r(()=>{n=a.setViewport(f,u.clipRect)})),this.batch.push(i(u.callback)),c=u.coords}}}}class B8 extends Rg{constructor(...e){super({}),this.contexts=e}pushView(e,n){for(const r of this.contexts)r.pushView(e,n)}popView(e){for(const n of this.contexts)n.popView(e)}renderMark(e,n){for(const r of this.contexts)r.renderMark(e,n)}}class O8{constructor(e,n){this.point=e,this.uiEvent=n,this.stopped=!1,this.target=void 0}stopPropagation(){this.stopped=!0}get type(){return this.uiEvent.type}}class P8{constructor(e,n){this.x=e,this.y=n}equals(e){return e?e===this||e.x===this.x&&e.y===this.y:!1}}const F8=t=>new Promise(e=>setTimeout(e,t));function ss(t){const e=t.requestAnimationFrame||window.requestAnimationFrame,n=t.signal,r=()=>new Promise((i,o)=>{if(n!=null&&n.aborted)return o("aborted");const a=performance.now(),s=a+(t.duration||1e3),c=typeof t.from=="number"?t.from:0,u=typeof t.to=="number"?t.to:1,f=t.easingFunction||(m=>m),l=m=>(m-a)/(s-a),d=m=>m*(u-c)+c,h=m=>Math.max(0,Math.min(1,m)),p=m=>{n!=null&&n.aborted?o("aborted"):(t.onUpdate(d(f(h(l(m))))),m<s?e(p):(t.onUpdate(d(f(1))),i()))};e(p)});return t.delay?n!=null&&n.aborted?Promise.reject("aborted"):F8(t.delay).then(r):r()}class z8{constructor(e){this._renderCallback=e,this._renderRequested=!1,this._warn=!1,this.transitions=[]}requestTransition(e){this.cancelTransition(e),this.transitions.push(e),this.requestRender()}cancelTransition(e){const n=this.transitions.indexOf(e);n>=0&&this.transitions.splice(n,1)}requestRender(){this._renderRequested?this._warn&&console.warn("Render already requested!"):(this._renderRequested=!0,window.requestAnimationFrame(e=>{this._renderRequested=!1;const n=this.transitions;this.transitions=[];let r;for(;r=n.shift();)r(e);this._renderCallback(e)}))}transition(e){return ss({requestAnimationFrame:n=>this.requestTransition(n),...e})}}function Ug(){const t=e=>e;return t.invert=e=>e,t.copy=Ug,t.invertRange=()=>{},t}class R8{constructor(e){this.genomes=new Map,this.genomeSpy=e}async initialize(e){const n=new uM(e);return this.genomes.set(n.name,n),Promise.all([...this.genomes.values()].map(r=>r.load(this.genomeSpy.spec.baseUrl)))}getGenome(e){if(!this.genomes.size)throw new Error("No genomes have been configured!");if(e){const n=this.genomes.get(e);if(!n)throw new Error(`No genome with the name ${e} has been configured!`);return n}else{if(this.genomes.size>1)throw new Error("Cannot pick a default genome! More than one have been configured!");return this.genomes.values().next().value}}}const j8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAEFzklEQVR4AezcRXjr2BnG8b8SQ+gJOiA5d1NmZuZVuU133Zf3++6XxW27Ku7LzIzDrMgByxQGaxwfWVFGMly088z7e76Zi5bu6nvP+Y4sKwgC2n4KP4QfgEcvAVdZGHfuM++Fj8HHwUZERO6aMTocsMGhl4C7bbrzr7C5N0REFAC30nct7qwhdH8REQXAfKf7FrjTLPpJ7EPuMhERycB36XD+hX0/DuzSlsnw3OfyilcwAA/vn/yzQQMoUHg9r59hhn7Oz/njH9ncJAiAXNj9P2qTxdhARETufgDYNs4fsH/Cv2jL53nzm1lcZH2dngKCP/Gnn/LTEiXg+Tw/Q+btvJ1+/vlPfvYz/v1vEwA26w4fs8lm4R4GgIiIAmB5GdvGnmbuh9Rq8MIXcuMGpVJ6AFhEXNwneOI//OfnSz8fL49/jI+9lJcecjjJJD15Ho8+yo9/TKUCb7J5vY1tcw+JiOgMILYJcDpNuFQKq5+neMrFbRXLnI+fu7im6KlSCS9fqXDBccLb31siIgqARBOu1SiV8DzKZbpr0nRxWxnQqs8tv51lol/2Xf63qlS6euOpKYZIREQ7ANOHTYdu1SDL/wMOlguFlxW+Hf8dujMX9ryrNx4KEREFgGXd9BQoWu97S0vLbU36T4EOD6NwGf78R0REAZBoxWaJ3qqDA9Kcx3p9YXW1sLLSCoBM5jIV+i7/gwCWl8Nbzs0xLCIiCgDbDiub7b8JMF3exT3kMOM4a3bLmuNczoX22ScpPluK33KIREQUALmc2QS0KjGqT3BxzWKf2VmKhl0sEhD0ngKZS5ZKOgAQERmVAEg05KhVBwFXnXJ62eWLRYoGrRofv8yGHsv/gwOYmwtvtryMiIgMLQCSxwCHh92mQNGg/4gjEwCTxRZMRdOhPfbSl/86/hURGbUAmJ4eaAoULf/N/OeibDsKgPhf0AOgIiLXIQASbTn+la3ICSfRSS+xru84YY2NpU+BqtXwYr4PU1PaAYiIjFoAxNpy9NKGajV5/HvMcTwApqYuf2X+govboJG+/I82GiIiMiIBsLAQdualpStfCIg/AJqc/9DWewqUfABUy38RkREKgPjpbKJtc8xxdAIc7/dXAyBlCnR8HIuSbFYHACIioxgA6e+EODqKr+tPOU0GQHwKtMmm2SvUqcdzpNmM3SCXQ0RERicAVlbCFj07C81m/CjYrP1T5z/pUyArnALFJ0k6/hURGdEASL4XyNQRR2b5n5z/9JsCRdfQA6AiIqMdAClTIM+Ljn/POEsGQHIK5BF+ZGurZpb/+/uxS09PIyIiIxgApiYnYX/fjIDcrc7x79xc6vyn27NArY/qBXAiItcjAMbGnrkJOLzo4rH3/6yvR8v/vlMgz3tKb4AQEbkWAZBo1Ftb3vb25s6mi3vOeXyRn2S+5GuqRMk9cLd2Wp9u7O5CoRBedH4eEREZzQCIdgCZDJTLZd/f8Xe2m9u95z/JKdB2dXunsuP7uzr+FRG5HgGQz8fadbPpV6t+zW9VvLv3DQDLotwol+vlet2/HvMfEREFQLxdW1Cp16v1amWx0jMArOitotHf8hu+v+c3Gj5zc+HllpcREZFRDoD4AzvVWq1Sq1zOf9bW6CkKgPLr/Uqj0njkA/HLiYjIsGQYwMxMuAlYW+Oz//8/X/4/L3lJcvlvQdBrChR896vf1QHAdSIi2gEkm/Yg85/kFOjC5KQOAERERkEGPjT4McC6w/rfYQ6KS93nPx9K3QS8ulVPgdMJE8tCRESGGgAbDGBhAcdhw4YlWIUiqcv/b8Gn2UgNgI0iWGB3MkBERIYdAJ9iMO8Je3e7iu1Klbjg9HS7+5syV3AsRERk2AGQZzB52/TudhVhjVSpF8ybT0X5kUNERIZrjMGtJpb/gyuaCiPk+hARUQAYzq0GwMzVEZCIiAybFQQBIiLyrN4BiIiIAqAK34T3wxp8CX7N0+zZAQYCQRzF4bfMAQroCKETRMfYvWRHqFt0kI4wkaaQDQQ7+33mDPPz9wBwAQAgAAAIAAALU3KeWwEu+dglp7yNATqEADT35Np+/zGNAHQOEIDWgFsyBQAbAAACAIAAACAAAAgAAAIAgAAAIAAACAAAAgCAAAAgAAAIAAACAIAAACAAAAgAAAIAgAAAIAAAAgCAAAAgAAAIAAACAIAAACAAAAgAAH8iAAAIAAACAIAAACAAAAgAAAIAgAAAULLPD9v0CYCSKXOO6RYAJaPff40ASg75tnm+5QLACAyAAAAgAAAMtdasBAAuAADKkJcHO3eZ3Uh2wFH8GtRkZmb2kXrCWUNWHGbmxAwyW2RmtpXSyOrwfJ9X93f+ghW8K6xZSP3LRvgvf4bvw/fgl7wq8iUlSaqlYgn2P62SgWYqcjBXWSAkyQBUXMCv/ysDST73d5j7/P6csEiSAajYgcy/LzWX7Z3rZQ5WkCSFGICKJ/jrp/cBh4f7f/9xam4q9ffUe94jSQo2ABWH8BPIzM9n5uYyf9/KHGe+zbd76UWSFG4AKtLp1YWF/dLOjjiqp94AxIAkA/D8zNISi4vXCwtn1L/hTTTCJ0n+EWx1lZWVaIn9wgwz0aaYInCSZACKRdbXWVtjdXWSySmmppnuppvASZIB2NxkY4N0mkJhnPFok0wSPkkyAFtbpW1ujjASbYyxDjoInCQZgNNTdnfZ2WFvb4ihYYajIUkKPwCZTGn7+3XU9dM/wMAgg4RPkgxAPk8uRzbbQ08vvX30VVNN4CTJANzfc3BAoRCtm+7yCJ8kGYCjo9dBO+0ddHTSSfgkyQCcnXF6yslJE01ttEXzGnDxIMkAXFxwfh6tmeZoLbQgKRZkAK6uymugIVojjUiKBRmA29vSbm4+8KGOumhIkmIRgLu70u7v3/O+PCRJ4Qfg8fF1kCDhJaAlKTYBeH7m5aV0D7XU1lATDUlS+AEoFl9XQhVV0ZAkhR+AqqrSqquBIsUXXqIhSQo/ALW1pdXUAE88lYckKRYBSCR484aqqgceykOSFH4AIu/elXfL7Q030ZAkxSIAHz6UVld3xdU119E9kqRYBKC+noaGaJdcXnARDUlSLALQ1FRac/MZZ6ecnnCCJCkWAWhpobU12jXXxxxHO+ccSVL4AWhvL62jg0TigIPykCSFH4Dqarq6SuvuLlDIkcuSRZIUfgAiPT309tLXlyWbIRPNH4NKUjwC0NdHfz8DA0+Jqj32dtndYQdJUvgB+PCBwUGGhhgZ2WFnm+1oSJLCD0BkZITR0Wh58ptspknbgHiQZAD6+hgfZ2KC4eE06XXW11hDkhR+ACITE0xOMj29xdYqqyuspEkjSbEXgwAMDzMzU9rU1DLLUQCiEiBJCkItX2x2lu3tod3d5P5d63XrW94iKQ5kAJp6elKpVDKTSWbbkr9Nfo2vETxJMgDJ8j5+TGXzyVxyND/KFpKkkAPQD0lIlQPw7l3qs+8k8glylHaHJCnAANR/OvcrTzqAkQQfeQ3AHwiNJBmAmX8596NN8C8+g1xlewRCkgxAz3+98H/Hv6v7lwbk4ZEvNUlSVbFYRJLkH8FiQpL0D/buAqqtNd/7+DcUSQrBQ4TgGg6NNEyZqZ13pvJed3dZet3d71123WXZdR13OX7OSIVOE6BKC6USCMGC9oS2+z6bTUIoFkrP9Ib+P+u3Uk+C/X/7efZOycHEanzwy/Aq643CS/Cn8MPQBQWk6YU/htNg2jTrmDZJDnwV/Cn087TNwz/B14Ips9TBL8I5duwe/AUcA9Nq/o8TQshVQL3gTMaDIQF9azPKWl6IwdhywuxOIJlOstZ0MkIIkT0FkN4BLihhcO3ov8Im/DAGseVEeFK1cDBZAFksnowQQmRVAYxAL7iYck71Hy9Ln/4zbK7C6IBkHrBzFggkUyoFIIQQz+KVwL30O/v7nH19rnf1NTf3wTCbej9JHoi9SSzKGPRgcOI8ylEUE2g8JhxmYABNS9v8cQd4TwvLvp2thMPh4eHhRCJRWVnZ0dFRVVW11bMzzMOn2Lk6OISy7dOKRLhy5cHUVDw/P15XN+PzIYQQWVQAceJfevClvl41/Qf6XAV91dUPLRYyKQDF72fsc3pi00ZpBAlasfrwsYYJuHWLM2d4/XUePgRaqQpwOkAgkMmkPXPmzJtvvnn58uXFxcWampqxsbETJ05UVFRsUwBP0gF1y2H7Ahgf54031DObHh2dtlimOztZWqKri2whhJACGGDgLd46c+dMX99CzO2mtpaurkwLoLiYQIBYjLHPqhooX7TkkefE6cBhx06ahQVCIT3nzjE4VaaP/oMHCQQwm9nO1NSUGv2qA954443p6Wmv15ubm+t2uw8fPszjPsJ68+Rt3QGvwImlJZRaqCNDg4P09vLaa/H+/nh5eXxxEaeTjg727ycrCCGkAAoosGBZYCHW309dHfX1NDRQUUGGmpqW1wFjxGKTX/ximLADhxPnKU6RJhRayeAgvC9AYDk1NWRgZmZmYmLi7t27k5OTwMDAgN/vV02AYbvD9dIt1hYaXISX4FTsP15+qVqrLqGkkEIysbDAzAyjo3FNi09MxCMRxseZnpYCyBpCSAG00OLBM8jgzbmbsStXaGykuZnDh8lcIKAKwMilG5ecOI1FwAEOsOzmzdUCwOslEFhJZgoKCvbv319SUsIytftfVFRksVi2LoBtpr+G7hb0xLjwMhcufFlr76LLi7eRRjJhtVJeTk3N9NTUtM2maoDsIoSQAjBjbqf9Bjeucz129TwtLQwM0N6uT7cMmc3GRpCesbHwzMoiQKWSytnZ1el/v8xJILn5kzGHw9HS0hIMBvPy8hYWFurq6jo7OxsaGmC9byJNof7rdTRWxOP0vKRGv4pjMu8UXUGCKhYsmS59vF4WF+NtbfEy0/TgJIWF2XT4L4SQAlBaaW2hpZnmy4nLUzduoDI4mGkBGGprjY0gldgbb4QJG4uAE5xITf/he7nGWV89Nhs7cejQoZycnKampkQiYbPZVAHU19fzBDRW9fSo0W+6cKHg5t2TnDSmfzXVZKi0lBdfnKiqmpy8MW39UOLf7Nhs+m9mESGEFEAeeU00NdLYQMPUzesMDenx+cjLI2Ppi4C+K31GATivO0OhDqMAjAN/PR4PO1RaWnry5MmpqamlpSX18/z8/N1O/y9/WY1+lhPkPcb076STHamqGqgaHGLobnCUr+uipobsIoSQAlDqqVepo+7i3EVteJjbt7lzh8bGHczVffvw+03GyYBYLDwediaczj5VAI5QiCV3g7H5o6nbJBM7U1ZWxhPTSDGpektOf4/WHiRohB0aNA320nul8sr1/++hrY2mJrKOEEL+N9ASSmqoceOuppq7d/Xcu8d2ND1pnE413zW//77fHyUajoTDw+Fr13rvThfNqd9fDlbrun/+DvskaBhMKtPTqenvmMw3Rn8XXfvZzxZMjydqip7hTE9uT+jg3H2fj85OSkrIOkIIKQBFjX4VFy599I+M6HnwgHW0tKxnXORzMRD4XZ8v3BgOR8PRaPg3Dx4MGZs/DQ1b3OHTVwg/lD7Adcnpr2/9p6a/C9dOn9YII5fyLvUcuT7Y3U1XF14vQgiRjVtAyuoLuJaWiEaNnRycTnZoqCkQahxTsQyM1X506LW8Xw4H/r8jUG4PlDfzDJhYs/W/UgA9PUEOd9Gl8gIvkKKRIVepy9ftm+vOzTl8+ILqgOwlhJACsGK1YVMpoSQ+Po7KxMROC2B+nlCoIhQKhEK/0fhXFY7PePI/E1G/sh+02/PsDhxFFD2b0a8MDaWmvwdPV/K6TwwaO+CiqrvqePfxfd1VOd3dORbLebKWEEIKQKmgQqWc8vjkJFNTKlvOVY11QiEjnqGhoZPek46I93ok4vyhL4S0kB27ylGOZnp/O2dic9PTqenvnDJ3pV/1r5Hyd/DtUMmWmqFbj6PbceyQIweMnCVrCSGkAMooK6VUhfh14nFmZnY0bwcGCIW4eFG/7aCj09tZH/E6IhFGRsKmsAOHscXUQgtfecnpbx6MBJNX/bs0F2neC9/BdrzQnUwnVXAMcpL5EtlJCCEFUEyxFasK8/PMzel59IicHDKgyiIUWknR2xV+/P58f8DrNc4nJyKR0P2VRYADhxUrOxePx43XAeTm5rITxta/8cqvIEf06a8F07f+Tej+H9v1XXdaGjFUru2AL5CFhBBSAIUUGkFZWFhJURHbW53+d+5wAr9f8/vxO+rr8XqJRFTunDsXYqUDjnGMnZidne3p6RkcHEwkElVVVZ2dnW1tbWRoaCg1/TvoCGorV/6wI4Vrp7+DdOXrOuARWUUIIQVgwaJixozy9ttGMimAq1dXC+AABwIE/Ph9+ACjAIyE765uBLXSSsbOnj376quv9vb2Liws1NfXT05OWiyW2tpatjU9TU+PMf2dk2Zj9KuYMe/s9WhzbK0UvlZPdhJCSAHkkptPvooJk7a0hJHtTE6ubv1XPLD78RvBUFi40gEjI0sjnwk9XN0IKqaYDESj0YGBgQsXLrz00kuapjU1NVmt1paWlkwKwBj9Kub/iATPnlw+99vq5DYqm47+JqgkpRshxN4nBaDsY5+KaoKlhw9RefQo882fkYjpNH7j8N+GjZSWFqMA1O3dixfDhI0OOM5xMnD//v25ubmpqSk1/YGRkZGZmRm1FGBbly+nLvwPvv9IF21BbndsNfqVpuUgBfDcEUIKwIRJBUXTkrdbuXRptQACyWP/tPOrST6fUQAqoWjIWAGoZLIRVFRUVFZW5nK5SkpK4vF4c3OzzWZTP89k7cCtW/T1AV3vvxNEBRNbaIQmHvPHPBeEEFIAj3ikoqGRk4PJpOdxx0mKxVZ2fhZDHIdmmo0CYL3S0pWNoGj0wcJCiFl78oRwCSVsqaKioqOjY3x8vLi4eHFx0e12BwKB1tZWtnhmBk3T35q2Jdq4yO2L8EdwfOsCeG4JIaQAHvDACPv2Gdniu26FQkyHOKQSXbmKNEiwjDI21NHB+DgWCw8f3oMw2BmzE3qRF9nO4cOHLRZLe3t7IpGorKz0eDxqEZDRN4Ts1COE2IaQAkiQMIKSn29kszEbDeMN6aEPgxnzNofzx4/j8RjnFUJgB4eeaBt2thNYpmmayWTCsG0BvKBHCLE9IQWwwMIiiyooZvNKHmdHGcUeAiM7kjxyf2h0QDKlZGSL6a/YN/+1EEKIHDY3x5zKPPPk5LB/vx6LhfUewcXk9J/giUUgvJwQz5QQQsgKYIYZI1itKpu+BCyUzGV2Z3UR4IB2nhEhhJACmGRyiikVSkspKdGzoYPL+VUypPGsvG85f48QQmxNtoDGGZ9gYpJJystXIoTY84QUwDjjY4ypLLCAzaanogIhxJ4npABGGBllVIWiIhwOqqqorEQIsecJKYC73L3HvQgRqqtxOnG5EELseUIKYJTR29y+w50YMWpqVPQaEELseUIKYIihW9xSwWajvp66OimAvU8IIQUQJ36Tm4MMqhqgqYmGBr0DhBB7npACuMa161wfYOB+qZnmZhW9BoQQe5uQAhhn/CpXjQ6gvZ22NlpbsVgQQuxtQgpgmGFVAFe4Mu+w0tGBx6PXgBBCiD0nd92vc61Y22lf6rRffeEFvQPMZoQQe56QAvDhS5BwdDjc3v6aAwf6PZ4RhBB7nZACMLyr7F01vhq3113j9dZAH/TDIkKIvU5IAeDD4XU4fI4aOzXghhroh+sIIfYwIQXQBl7wgZd2cCcLwGiCfhhDCLH3CCmAYvAlk4NSBO82pn/aUqAPEggh9hIhBeBLHv67SFe9nJq0JugnuwkhhDBpmoYQQgh5IVgaIYQQUgCmjXIY/gzukrke+C3wg2mzZPK4Rk7BX8Ntnoj6Z38C74Zq+Bn4ArtzAX4FmsCUWerhF+EcG/hx+Ev4LAyzVlR/ezme8WPkwnfDh8lEDP4W3gsm6ITfhStsYhT+Kvk0fPAHG1wcZnraqYDvYnMP4b/gW1P/4ImfzPNg03eWKS1e+H24yjv1kX0P/N7az/8p+Hf4Xih9Sg+RbgD+GI7tfuyY4TvhP2CerX0GfhSsO3zOJ+EfYIrtDcMfwaHN7+o74P1PswA0NpCHkcw1QSN69rE7juQd1bIXzKx+NXwCPZ9Ev30ZvV7FQT3iK8eMkXeEGw5Ap367qgw6wKPfPn31yVif1h0V7uHLQDOXb4TNGIe6Q2s/zKkOGGAXjLtoIOvNw1W4podDxtpEzw0Y0G/1tOnB9RxP/6CejGmIXb6zLO9kAaSmv4U1OvRZwS39llGepjxoSKaXXUjdC89hAWjrVkp5WxWACQrAt9HoblLZTQFYocHoALLY4iLXrnHNz7VkB/wuKUMqRg3oMWog2gZ27DxP6iG4ixWACfGEKwCLyjs5/Vt4XAF0ZFYAuzh230UBOJN34XwuCyC9A85zfphhLV8jj2/Me6wCvj31hefTk/L+1BWljZ+lcQZ3an+juJiuLioq2FyceA89k0ymHf43UNCVesiNvX/TMwBnSeOCI2zo28egiqcskdBHv8rVWq6BUQCzrHdjNUYNfLKNNpVKKslIxu+XGLzOWp3gSXtHvD91CuCt9S8cpzX1gcjU6CiRCBMTzM+ztERODmYzJSU4HNTVkZcHFCdHfxDKSDmzflf7/OrEN9VR58CBMjvL8DDRqPqJ/hC5uRQVYbfrnzlWK7szPj5+7969iYmJ2dnZJXXnUFBQYLVabTab2+0uUW/IU6Ge/L17q++lffvYv5/yclwu3G629b/sfQdYFGnW9SmBJgoNKJIzggKCIKLojDppZ76dmY3On3POOeecc845rRu+71t3djbNrI6ZIAgiUTI0OTTdQHdD/ef1LmUrdFMdGNedPs996oEOVV1vOOfe+4Zqxs6yaoNAFTnPwfIg1FWGh9WFNjZgscQdOhRXWhrH9wLCzAzGxiC/1uN5+muzspCXByBV2F/Z7qgAhrzMgDotG8ziIpxOSGtJTMShQ8jPR0aGmaaeDhR+jMJ5FBija/x6Y6P6hb4xh7lWtK5gxUtDqoEKo7X7JpmPADuCxBtP2/tlX5cYAe5hb1ze8WeIKSAdE9rEXdz9FJ9SAC5b2FrghW8Y7J8niwp2I53iYhT/KorvbgsAa5Ed/rXX4Bud6PwxfjyIQRwQAfglnmWvW8P3LuOLAD7wqwHZu39f3cm/Um+FE5ub29Tfg94F9OYr6l+Cf/Q+jQOc/bjaj/4KVFAGUpEaugD40IBKoMq7LOQru2nACW+Vv2yS1B4+RH8/ezV5VLGzIQCpqYraSkpw7BjNSP6U7PXjh7e57gAOnMGZ9/T3LO0PtUePMDiIqSksL4sA0NVQ5y8rQ02N2uY2KJD0u7q6BgYGRkdHZ2dnKQAbGxuaplEAyPtHjhwpKCg4evRoVVVVIkkqaHiX0uwsVldFAIT4yKfqLqqqeDuB1vPgtgbwZPX1eP99WDqacf8+r6Uuur7OO4nLzIyraow98XVZELo3WInt7WzVSnEpA/y1IgD8tXTs+GtZp5WVVfn5wv5+/BcjCOBRB9SvYn8ZGnrOXRAtJwnwtLwNEsieRVBYiMIOFN7eFoCKCvXzTp+Gb3Sg44f44RjGkMDvR6PwS+osgG8BCF0DXofArwAYrd4E+4dXAACn7lzRVvpi+o7HtHsVu+4ddEcbS8p8CQCtC12/ioUF4L33VIcnF7Bl7wYq8BCGBjDwK/gVd3EBit5X36dnYRLkL82HBvhgfx3hh/C+lwA0YR4msQU8gsQBN1kONEMGkpEctAD40IBKmt+vGBpwQllA4I03N6OjA2RnupxknJWVGDegwZ1ggZDF0aPkkRNzc/VnztTFxNTtqE5fveEeUKqXFtmLlu9cO9zaigcP0NeH8XFtYUEXAbBaVXhByiCV8BXKQGAgHfU3Nzd3dHT09PQMDQ1NT08vLy9vbm7qum6xWKxWa1ZWVnFx8fHjxycnJxsbG7MNgg6xlPhrLRZsbdGHIPGRhlSXobadOcOYMMB6Fg2g36Xn5GDp/t2M69e1O3fQ2cmyYmYyPi4hvvhy/Hg8pgAbVA3n7CGJuHED9+6hq0u1TZstcWXD4rFsRm3akzQ9I4NlTrYtHh+vbmiorq2thj8UAMdEAFZXH7ISqSvd3eq0/G2GEFIARMt57xQGvnjhAjVgbwGgkdR/BUvuRH5eyVVtrSrY3TCPeeY52NG+i++i8Liw/y574/8AvnAA30/GajDs77seTWvA5f0aBHbB5dJdriSXxcJGv3vK1WD/UuwCegZ0CEQGlABQ3mmPH/sSAHk8PT/khlu+pqJ4c/itUKXn0APPB18Mn/svXgzN0ICZeAQON9ClZEAFATSRAWoAlSDxpZiXwBu/fh23bqGlhe5tNrKLUJGBjAQkQIfT4Zx2TA+PDk0ODuZOT9fZ7XVud/3581HP989x+ADfyF7NdnzqcNz8acadO8XD9/PyFtOaVE93uehgeAYH56Za58hQ6v/4eOoNkyABsf/169dv3brV0tLCIIDkTk//0KFD8fHxFACn0zkzM/P48eNHjx6NjY0tLCwwMrhw4QIlIWD2v3ZNlRLpj8THSOWVV+jukHoU+y8vq5iABcjj0pJytC0Wn91hGH6YIzOTxdC30dys8VrXr6csbCYiFUhdX1+P646Lm4qDDZiCshPAKewOXVdaRQH49FP+4DJPUSkaWaexiKUuUh0nlice93cuDg1Vzc5WOzerPalRpwpA+A8C5ueHbt0aunvX2dZGIU+YWGS3z0R9EpKiEOXcck4tTfUs9ayTGFggBAMCaqE/UDVYTmIMeByK/fl1HhlL+aYdagAA45vmmVYLH3/gLeyKVL7zmY0BkKolCnOvrrqI/+qy/OiqxZKIjjS6JGxNBsFmP91NzifI4aIBdBrWhf15rK7e9dmTpH4xJhNZB/wa/cRABwN1UxrgFchcQOjgfXnzPs06tUbKPoqjWcgKzHmXaPrEifXY2I6+voHR74kA8EiTsYF4xOPnFnTfSFu3b5NrWJn1qD+Jk/zNLAf2agCrWJ3EJO+ly9Z16JPoeldaPXIOw4Lz4MEkHLcdzptLjuvX34y/efw9nS2FTkVsLBMbpH02NvIqo4IJUpX40eYFgEl/+v5k/2vXrg0ODp4+ffrkyZNlZWWZmZkJKo9MN3SVXj8jg9bW1rt3766trR04cIBZoLfeeovZoQCGRuhK81dSA1ZW8MYbOHkSpaXMdLNrUADYAdmo+LPVZ27eVPfGvBm5nO8GiA2Fzo3u9uzm5qqFU3nIk4pgwE1/Im4xToWDU9t2yreoM3Rgzd69ywo9h3NVqMpBDpuiB54FLIxilK20d7C32lFa7a4u2CzAJtAIP8iYxfEbg0M3W4ZvfdzS3Hzcc7QK58pQlotcdhkKAJsKeZlXue68bmfskpLCaIC0sNd4gKpwMQZXW6R+mg8B2MSmvE0NYGnL13Y//+V9Zn8fSew0efmzEAC2ue5u+j8Shbnsdhex6YqJuxLznSSyEkufvMwoj7Ge5sX+KfAFCrZoAI2+oAOGBtDf2cH+IsVsTCg+JxFAqHPeNB/vhHHuCBvPs9SfMm4n7wtT8w/x3GEeLLJz59jbmSHh2Ry9vW2UgbEBkQGaIQMWWBB+6CGWC6uZ3Y7My1omU1zAhbM4ewIn8pEfhzgA61gnWXSjm/08ai2q7kYd7wUC0xpAAXDcufPXs2+91aAzwcPiIDdaLCQ7XlY1VZdLJVSWWWCDg6qOFhdVkZoAXf729nb6/mT/hoYGuvZnz56trq7mkG8cfXPA4XCMjIzk5+dTD9g/Hjx4IGPCOTk5dXV1MAlqFJMe5FP2tbfeUpmNs2dVrt9qNWYQqM5IyqMYfPQRi1Qy7EGks1yufper19Xd/frEa6dwqhSlVlh16MtY1qDxXxC92wLwF3yFXeMsWTbIdKSzWl/BK01oYg0CkDpl/+1BTzWq82x5VderFPuLNfleaXgTx24eG7o5NHJvJAUJbCQ1qOGgEDmY414UAP5CthM2G2rVp85PeXWVEBsd3UsAWIqGBpBvxiUI2DX5TMIR4yVQeALynV3xBV+v/SdlAePfmdGYVHntsxCAvj42R0ZhJDJJR7pWVtxs4B6PJf7Kr0lOth06pFEhqaJsB7W1NQ0NNVFRNdib20jjYmQGcfF3FQBJ/tCY9fOd/zEXBPhgMx1hxfi4wftiySOLivFxwVsAVN4jUOTn0ygALG0aq2alt7e5t7d/QrE/zVsG2E/CxvyhY2aGIsWMNr1FzmStRe1pnKYGHMZhbIP9mcXCO6RXAKByvRI3QASkARv/em3sUuWFV/7q2bOv0HXeBsc1lX+ytqa6PPmTHMsEOhszO78ZAWBuh/kfevednZ3M/NTW1jK/f/HixVSv79LZZ+o/OTmZKRQODnOImJpRWFjINFFlZaWpIGBignXKUuJPZKjH3qSmqZw/D29Qzfi6283fxG7Bz1PJ2DEDFwCK4sDG6OBf6c95A+dexatkWJ+rFG/AJ5aW6CCyJA+hjMEcG56wv1GnPC21ZA5zVJf4uXhc3xYAD3Bux4rQSbK/soM3D9a01Gxgg84+2wMFIBOZRlOkDHCof1abZYNnSn+F5Sa1aQJeAqC8NNGAnQJguP9qwpjxHdP4CG9fAb4B2AMhqNcVrf+eD7BjdkcyfLyw3wIgSVuG7a2t5Gm2cSZh3IWF7vj4xNH45ssrhy8vHaqf4lsSHxyZnz+xulpz7twJEwEp1drgcw6nSRBAGSfHeY/DCPurmiiuheR/LJYwerR6GKeOsxU+O9KbNDSr6BjnvKk/xHy9lJoIAI/Ug6Xe3juUgcmnMmAMEePnBOPK21I1CfDX84fRJfRmf2/K4FsQrD9LPa9hT5wBzh7G+WqcOLlLZdNXZkCgOrsw18qKMhNgTp/ePfP7zPUXFRXJJB/F/jvAgIAywDlC/Fh3dzcHivlFfr20tNTMZVQpsRdI0plKz/Hq3cCmRJ3gxdgxlWzYbIYbax4D9q/8OLHh3W+/W/9KPWk6mC6g6zIuzSNzJh541rCGHYhBDLUBgkVANMADdbzk3Ugg7K8q/T7YgDlKRA1gO9nphdC/ydKzOB86TUtbWR6G1KbHo4b6/aKgQJL5KhyclzEAGQr2+iJpR9x/hqQorBb29znR6Ns+JADOYOnk0lMJ+OoLXAdAF6O5mXlGagB5mblIOlFkZ1damivhkeVfnHvNsgLLwoQ+MaANPHr8aGbmxyfsjhpX/Ak9K+18JeLNUhmNzCApIB55iZ2BGAeOTbj/Wz5e8IFNIA9be330gNef/srK4H2h/gHbUdWDG71zPirHGi6QUGjbMkCb7+u7SRmYUuzvPVOIn8MLx/S0TPzXoDF1SzefdQkzEA0wLQBnoeyED8GnM8d0vTgnWF+nDwyXy1wAM2Oz2Tjxn2l9RgBkefK7b4op4Ac49ksB4KgAv8iv7xSAsV1bEUuJhH74MD0t5OQg3Qk4oe24lWQoArNalU+2sMBEFhnQWwDysDeYpqdzzZZJ9g8y26dpqjSTkmgTqxN96LuN29QAnpZxwAFf/WVFNOBZARjdpn4eOyBI1pPhG3SkeAtxehw0sCrFyOMmgwBW4HyLHYYGlJTsdP99DP+anKLzPcCJgHERghcuAHQxjKQtLl1CUxPDUlKw6/CUK7HD8u9+v8Uy8K5ljiXVp/cVaoXdq90112tObJ2oRCUkZo/fuyaMoeDp7SwQryJTPN1wG8O/Qv08+gjYfUwQ/D5g3z0LJMiGfGdM2W56/ZrXOjAfO5LNAz0Y68WHvXikNODUXzloTS/MPHymOK/46CHF+7SDOLgfGRfyvmHrfX3D5eVkqbn5+T+8cLV/QGTAXY7S8he7aNrtJj2RpGhpirfS6dNJ3t+8BpjEnwZ0v3x14IAy8V7FTPx899LSEmf18JiWlkbHPz09nZM+fYe2GfwAPymLBhYXF/nFvRur0wkpJYeD7K/IPe0B8ACaj2xmLC1WuaX8PL9LPfPCn8DeSEbeYeTnoIBMGvyIT2amLEpYu3//Jm4y6c9Z8+RLOu80iv3uSuCA0gCPd3oTyn7dnmkSFXKsremkes2jHdg8oG1pJmrT51CwW1JAXgKwhS1j/g/FXD7qb5nqd+EbVxMD04BLPzcrgdkW6YzTm2R6p7paLZfgeNSZM8yIufAtl+aKOeWKiclJseS8hxMckOEUguM4XugurLlRA4E5DTCmA01P60YQIAJgDP/aYUdx047hX3Na/JE/DTjD7/hlf4FvAXACo4Yld43GPx79+jffsXJuYEZGQVHB0fLC5PJCHDqI/cRGwdG+jbLejb4B9+NJi23u4MJU0p+MH4hPQGY8QEuAsswXuOkFGYo8BXDkg3RjREL7oQFSxWEE53c6ngAAB3iZ60+iz+sbMvmHnyQ4NYhf5BmwA38Sz6Bxfd0oJeXXJ32CPwDcAzQfYekPobC8rMKFzU1aoAIA5AnvhjTqL+vRGLt4PDOdnd/H9xkHMMIzBIB/k0F3yXyuKw0wB413abNRTRUtra6ynLSNDd0jSaQtBAjvrD4ZblQiAAZSQjtC/TwuYxmFtXtn/y/DF74ugvJSbgUh0ej4OEWV96+82Lo6lhwbGtnfBZfFsmWxaDExugaNLn+BXsAxGTp3ye5k3IBpDRBWl7lAWPGaD0rvxhj+lTleyhgU+8PH2A2Wj2AxOqCRXfuHUNzvxOX/9vF/+29YAmCFNy7ADBKAk0ApUFaF0hiU0hX/X9/u+ST9WlpWlsa+QQXt62PpMRskEXrYN5Xg6Xt7edR6e8v7+spHR+3Rs9Vvud6qiFJjABVIKQdywjkcrAUTAdBcLkkHW2ChIVCsA3gxGuB5AtnvIWYb8AvjY6R+fpHgpPgopjF94y4ZXAycHnvg8oOCywUoK4BP/Aco8ENEfHxQA2M/Af6wtI7gNcBqpXfIMlK0mpvL/jo4OjroHGRyRtx/SfeRIupQ93zez7P3Nk7kA5rsBDE7qwTAbldCycXXbverm5uXgiJYbwGAsSDAEADRAJkzFLQAfA0GXkYBYDFTdhmQxsWxIEheEgSR+tmbeVSdWJn0NdCno0HgftZfexO+QZ5/OhLQ3m43pgPZKqzy1wQmUHxe8j9BTJeN3fmqDoxKtNBx9YMx4N2rwLmQRn8P1uNUCRT7M+FO+93zvT3zPb29VzfZvkj9chQZYDHukfzRTJKqUL/3MX4+t0KR/rsyx5RHdr+ft/mgenDkXB3CpK/wIbjH52maUWKm8lOeDzybqN7EMbNlLVQVzKStvDDUNvsmQ5bMTNX2SaNk68nJtampgcnJgZWBFKTQ/WcvZhyvQWN2yOTGfeT6tjaVHGbvGR3lKemUpi5a0u3JybwceanroOVK1P1vRCEIUKoksX/kCKaNuUC1tQvaorj/PBruv1SKT/wSduJtAC+1AIgzQmH3Tq6JAIgGbAuAj7birQFvmh0KZmV7toOA4YpUkWKkpJie/Xl5J/tf9pli71ACQO7/b/HUgNCJzQprIxpLvWSgzN3b09XT23cVO2UgLS0Eh3QX6o+Zy6reJn05eve0F6wBMTE0aStsOeJABLyXYwOAF6MB4stL0l9CAddeQ8fubTAdxC/y6+L+7+EKiQEbX9tgMn0NJUCtmbLWQ9psWzdf23nAmK8pfa+/ruZwk6qZNpiaImGr0ezBweXu7ubF5iUsUdzSkEaPhBN49mT/hQW1Eu7uXTqFaixyNKFCdf+abHqiMvStx8U9ZI1EDyGqH98JKQiYvrtkzAcdLloU9n9m3fAvNKL9d1rGWqo2pqdZo0zFiADQkrwFwLcGmEFqqqEBpLMpsr/z8eOh8bShXBn+PSbuv/o9e+CNPf7XvfcB6gAxKR+KB86FrgEEk2BNaHpGBly9PZ09A5QByQXJUZSAdx4IOPzV0/M8+2uzGce2SZ/2WU37uQ2chUnExzN3zk4ry33pCa5gJaAyxWllLwoJCir1L6u9Vp8AvsFsj5H657IAGQ8wtdKbUTQTKZpm1+wr+gpz0Lum3nSEF5qc1YzCXISq+AH4QFYWjRkhcgU1gGLABkrS4DTC/ul+WSUwjvECFGAvtLbiyf4UuNdu4UoITkFkl6HfTqWhAOgsKGYmLBNQAuBz6Nj8UPD6kxTQFmfsPhEAmvE2L/e5FAA2xJQUcVQp43TOqb2sWlcO1EZAmuuJOtD0sHgjJSWGAKi03+jw8MiofTh3eD3a81Qcwg1t356ykoEMmrcM9Gz09Hb2DvVffRoKUN0uXlQdxjQ+/lgFxQb1b86kG/6+8QeCAt1TmkS6koqmnw6faAfuBBYBWK1UOx4XlxbnMT+DGQccptZDWKCov0HZi0J0dDRn/qQ9wcITcFsI7vTALYB8zRnlB/gxADIdKNWM0rP009QkKQ7qzs3MzWgzNt3GiY0MCkLh/fDGSxcAC5R1+89l5eQoq6lBZ6di6sVFepCzmGUcQPk3s2iEzfvBA7UpBk7XUgCUVVczy/RsOUxgFbgWtK4/JfmeXuX+c+3eiH1h5OCIkt7CeiP7/7kUAJY1q7CgQA3Okm+Yd9N1hgKuo0ddhS7XATUGwBFgskZYIHsA06jxrP+Jyclx2xrnkxnsr9QorNB8tHwJAsICujw0QwZ47Fnv6X3QOyoy4HZTGkwLAGlF1cMPfqAqZGPaupP6Q1n6y04qbjrBLsoOwL66a/ksoFuxv7IMmAcFUVrU0hJ9wFGMcmyvGtV+NhyUgWJhf3WswwsEN3nmvH5u6kBa59R+LuziCq/jPjaUZiJhfHx8ii4wwK9wsyBODDV5Gdno3z0zwyIa0ob60FetV/tpxMwUyYRaHAdeAy5BHa2h9glfDt1FIBbKLEC7GeGvq5N1tpS3LQLKTGy7BBYeUzKQxXsVFZyDLhGk/ty8gJvALQQLLwHo0cEVG1NTk9Pz4wfHKcPyBgnw8yoADLJIUlVVsNnUPn/NzbINoaukxFVgdV1xWX75lsUyAk8OHaRwTHAXnteoAWvj67bZ2anZ9cm5SRS/bW74N7Dra+aD4JCRi1zaMzKw1tO7NDjBvhDIiKKu06gaB/Omn6d+cmXIWQ7lo7PZM/Cbtk9zyI7JN47dZSLTKB+P7ulARzOa7+HmCG4DM0Cm+UE3WYJJ+RrEYA96mAfgMk4KJJ4FL92GNuaIuDqprqZO2J/HEN3a0GSdLJTH5V3c55k7fXIvoN7eXi4EI61zuu9O9n/48CH3jeCyYfr+/Bi/yK+b3OpDlsaQkPqd/d3opiOdoqXsOpI/hakudNlgY0m+mv8qJEvWCFj3MUFUAli2LdZ4okZ3N5xOVjE1fud2EzS2WjJ/EpISkGBmv0KXS31pfV1FpkpFYmOF/Z8Bs3B3pnBLD0UAZG9JGmWXHhY38JiZnZsunUZhuZH9/7wKAMEIjlrMqmU1tLfLriPuoiJ3Xp4rlxHAty2DOfhODiueDVc5dyFBBEDnMa9L+3Nzc7Y5B2pz8CX1KusnLOyvmWvqEgSEF+ylNC8Z6JWnQNoCYWmgPNeb+sO6/WdmJouZNUmK9pCgKVqyOY8VVgAMCEa0EVLSfdy3nX/72IXZ0b88ij8RgAvNcEe5ckND8w8ftqOdp+Wo4AmcYLGQGljqvARVpxOdLWiZxvRq8WpKQ0rJ6RLF/vF4sSDRc/sHuvzMEty/f5/PA2BWhwO83OSHi36Z5dd1fWVlhe/yLXlgAHfa5H5Bx44d446hatqoGaSk0OuSodS5u3db0cqSoctchSpqQApSGOTR5WcuRbbYfIiHAxg4n34+qTGp7nSdEoCcfU8Q5QEWL7vd2uphanJ+XlXuiRP8/cp3NNj//n15losExMyLcpAMMDUczqhUtr9WLDQ+Tp4x+ijPqTNDRK+Uu9TcHADCEASsPJgTrFo28KUiefXzLQCshHPnFPvLbqsDA2yXGwMDroGB2fh4S/Z3LP0q00fvSJEb57xXVobC1AcOiAYsFhf/1z/Z/N2i+9/iNujhcf8dgRD69rrCiwg/JJ9FAVCG3jJAZGB2rx4BlAMVPH5xm/pJDQgrWNKsQ5LPxAQeLj20wEJGpo8pa5jpkk9isj+6X2/sPNf0tYGmRJxFYGDzGB+Xx0V1jnRq0Oywc7SNvMDBANIcx4eZ9GPSg/KwlrVG9reetvJ4KONQOPgrVHDjT2Z1uLKX2f+2tjZN07jZPff8YXaIY7wUAA788gMMDvguX6+vrz916lRNTQ13DYJ58MOTk+J4dXd2slgWsch0mWweTsmkR72ABabR+CJ1eiZlJq4xThVUY0pJeQk+ExwxckHT07GdndQAB+lYJoAyGmC+i9Th8VAV6DWSpulTVKKSzgSd6jSkmZkVInthMOdJ2lGjtPHxJBmlCS4XE9G8Fh/3VtHefqb81x7+V55Hv/t66AKQ3bH6V+cVjJcYDn++BUBckjfeYI2SHmQ9hnt83DU1FT81ZXn82DI4yIqhAMhe0HwXDQ3sKFAIeih4oLh4kE/cG4q1hmf497/62TzP9xsp+Oky/hX2BdtBAI8rpYAhA7sh2qB+2mko6qcniH0AuxwduNlZtW63pYV+/n2yM1NAZGcdugMOe870iROL9fX66cbvTjUlxiXFrZ9AYMMAbB5OJ9WVF3jw6AGTGAwp6BUyjiHT8RI22MhrK8dycLKp5cwJ6+mKlJJDb6hSePHg0764CzTZn9TPlcDc6ZNbAzG9w2Fe7wfCcGyAue5XXnmF7N/U1MSvqAmg5iEPKWT6Q9P4N3cfnXBMSCmxIigALriWsUwxZu1sHS1F9aWWU3XWM8dT6kqsQPpnVhoyINzZZekaT+hce/BobXjiQ5AQGEJyKNtiUQKwtESXkfNHKu353LyTm0VTBswl3FSnP3ZM+SJMpvFsbJcMUakrsq2IZWKiZrn/1KlHjY3fXDybihDAUxqE/6c4K/wq8OabL4P7XwD8Kdo+C4BMEJE5WFR4sv/EhKttyn1lyvKVSVaDzPSiMfdJ547dm548fb0gZxkkOg6UDB4oHogqHkTsUWF/hDzQ/Dt9LdarUvZCoEFT8zXhKQNKlaFsl/IqN9ifxxglAGnYT9TXK+aJiaEYUO7Z6RbX1xddioiQq7ZuVfFBbS08pxKSEpNOBzExk16CrtOPk0G22ZGR2dkhOLrU0KDFQodLXTj/ouwu0F5fb62uTgGswBl4owg+UASz7xQFGSQVkf3p73OXf+7zzEmD8gQYeSYwnwpAkaioqOBQATM/3DKaD43hJxEoGFW/+qo8sIxur314+IHNxgwc1PY3miq95GRVUDnV8vDkoZqaloYGKSiKZZTZZV55CA0JPbjQeSG+Mz6tO40JQ675Gm0enWu+tmr1eGJiojc3E+1ahjujEOfZ1OtQdxZnj+CIyS3m6IswCiLbMxrgqMriL/d5Dh1iJi3F48k6tFJSsnq8kbQUH9eQlpqfmufvXl41HwSkPwQytv9nxunzgWiTjgl7P8314yXXnank5C9ZvvqBZaxBqQIlurOT0RpDe8kXMeG7+7YH2h6jwmrzsuKBgZKB1X4X3i8OPf/zwy/6WB9MVNP8fxl/AJh5a1+LPrpS2F8dvVEmpO91PJyGzwLM+dGBY/tnOMdQWzzRhATWpzysV6cnMIhCOnRsDQgC9OusVsVx5eX0J3gNiQmU7CQlkfL4lrh/bEUtgPAaj8f2WnpfSjO1QlB0NUiQ9zm0y0Hd8vJyzgWSh8LLujB5KDxHhvlMGNkv2kj9B6MBZD4eWdysCbpWKyvgVQgKAJWSBcUUCeuJH8jOvr9dULTGPZbGC4qUhYJVoBPRndFNnU1MT9FTY+jGAXympxxLjk1scriCQ77M+JOdGe9Wo9ok+xubNlME2SL4B1Niy8tuj2eKxclbJ7vwRTZF5hoGkrM4WUDGFYJ+NK4kON4uUpqIbCmbInxuEK0YptfsHBiXy+pypVomK2O+HBMz9j6GRiTrx5lC7M/yfCLZ9ybQBShuuAcxOHB4YPB3DqJcUb8yOjshwCd75yszgwzsO2KBE8+Q1zvPUn8mPluQe+VR24zgxemkM0pVYMcTlKDksHZ4DWvBz72gMdk9NYXFRaacRADoZPAyjPR5NEimZVsAeMzyzWplynZHK1Dv9ZUKZSGBa7vOnDnD4V+6/0wZM/VvCIDxCDBGA6EvP2PGTMZk6Awr74pX0TQJlaQ+vOdGS0FJWVX4Z7/Q2Z/oVIYuYAqyXpZZKRtsi1h0wikCwMweM/4yGTq4hDC/ydY4PQ27HR6POAmKWuidUwEJBhZxWpwd9lAEgKguVAZaNo+0g58nATgHbAGaqRmbbrfGdmjhJKBEi6XCgop3lJ/C5u5wsD8zccD2yhoLYnxOsT8GeKQTgeJGw/3/nCABBt7dZv8cvCAwjcc+RvMVsiUjmRbqrCPaXpgAjDjgPQjq8Syi5CXfMN63qL/CA3I9gwDsNyiKdKdo/rFDLKVk0YgdiFKvhogxEQBlBmT7z3CvwaafoMwP9opETYUdRwoBbwFIwOdPADaBxwD8rzon+1MDYOFWQJrFoltAMF23vEzqp+/PdB1jVXor6kMBxr9kfzFFPOL+0wH4POJd7/AkgofeAuAbEYx7ieW72Ddsebn/63hB0MPOgt4CEA68rQz/6aUSAB6HfY7cCvuLbe8EaoG+PYPEaqVTZOwip4b1AgETiOL+M4pE8asiAPic4ueT/XW8OIhvG8Ge6PoMBKBrWwAG8AsFQwA+Z25nNMq9BIDHMZ8U4HKJBuzY1d1rx1CRhiDcf0kBqeRm8TPDvxFE4FIaEMGLF0vM70z+vFBfREPYkA78dnwOEQ3imJcAfApMQBblk+0LtIID+gFjD3ojAlAaoFsgWFxUmR+7HSkpNIYCu+ygXeUndB2X5M8okpGYJe6/OkMoiGBzP915/ecpWIgCfq2yvWEBfgPtcxtSGUUVLNL3qQD1F1WIEURDUOUVB1xX64Bu47YTTo7B1KP+MA4DpH6dg8CUgURYRANAzM4az+xRxM3JCbvOff7Av/s/P4AmGX9Ugz6lpXi5UK8Mf3ef11/+QWURRBBBBOEWAOKECACmNqfaP22/PnPdBhttXpvnloQVqHC5LNQAJoIsUCPAPKrZgi0taqegnh7qg5q6VVDA0WDz07FmMDOIzAFcHjQmoGRnIzFx//Psf0JZBBFEEEFEAAQ4CX1L79js6Njq6LjZ0TPTs4CFaUyPYrQPfTmunCfrAOos/RbLA4s2+zGGhtDZqfbtfvAAdXVqDXBFxe7T+yp8uf8ZyiLBXAQRRBDBC18J3FGvdWyld6Cgx1KDVk/nQCcHAx5rj7lT5xH3kWRXssv16yxXHlrW2jA/rzI/8nSS6mo0NlID1KxQ01gCBoEBdYwggggiiOCFCoAN6KA1NDx4suxaVt0t9PXdmrzVoXUcKjh08DcddLkSYq64Y9buqKWiNpvK+F+4gNpaJQBnzwb0mEOD/TfwWSOCCCKIIAJN13Vs4wfb1g1gdJTpHZXcHxigp69PTzcvLn7D6fxva2uXLZYP4uIuyLY/+flqpSIjALr/TP68dIgggggiiEQAD8T9F/YnyOwczi0r05non5jAzIyLezI5HJb1b1ssX46JjZVdCRkiyK6EkYmbLyUiiCCCiADMKOoXDfCCpumyFQmzPXNzrrFl1xWn5TtXLd9MtMR+RXYljHj9LzciiCCCiAB0bNv8rsssrFaa+zF+thPcBYsFCUAlXlpEEEEEEURwAEDnNvt3+Vxkp9FcLo0LwX62ExwseJkRQQQRRBBB9JyR/d+d/eugcBKAy6UsweW1E9xLiwgiiCCCCKKN5M/sLuz/d409HLa2FPvX0DZRjvJMZELDS68BEUQQQQQRAeh8nv0Hn9vAgezf4FZGkP0TkADgZdeACCKIIIKIAOz0/UvwLOJcKHEBNC+8vBoQQQQRRBDBgQ5g2szWqm5gVwEgNLyUiCCCCCKICADMOPEuwK0MiGhABBFEEMEvzFYQn09EEEEEEUTWAUQQQQQRRBARALQAfwYoAjRT5oUfAX8cOBbo12DuC9nA7wC+CTiggFd3ntIkaoC/CfTBBLR9ts/gGsHDiWBxD/gHwLvAwTD91uvAHwKOBHX/2cAfAW7ue+2+ppoVbiMofAj8diB5r2sUAX8aaMY+oVj1fbSGu1v4Pksc8JuAXzX7iNP/C3zN92lfCOSXHAX+AtARdGF9AFx50ZvBhY4qYAwYV4ZVhBtV25ZorE+bB7r3ZzpSBMPAgirkoHDaa8rANXX8hUc90CCGwOEBVoBlwI4XiG7sByLQTYrVyy8AWUC1Yn8lA3cQVhxTp1ZWAcBbAGjTCAQTiMAMepQAoARIQVA4C7i8NOAXGmWK93GKx+C607IyrOAFYgpoRQT7pwGE9osuAEYQYMQB4UGS4f4/53MtKAHAjwCPySBgALiLCPbEgJcANAadWRQNkFDgNn5RccTL909DUFgRQwgIKQZeV+yPFoQf+xib6y+Bf/9ShALRz6efWoAheScaiYlqx/+CAqT5bdvGKeKB6n6Mt3sLQApS6lB3CIdgDhsbuHsX09PYRjWtCNWnkOn9fPnK7Qhg4VlW14BvYDd0deHOIyM0qQGOwg8uwxw2NzE6CpsNS0tYW+O/UmyqwLKykJOD8ICnHhtThbK8rApI1+H1yDajdsxUkRn0XEXvmirbEmWXTNXd5R3XiKMGrMB1Da51uMTDhAYtDWlsD1ZYzf/U68A0QkQ2cM5E7ZrA48fo78fKirR3of5TKC/ECVPFshPL7VjuxzJMopBX9NlcDYr5Bkyj5QZaprwjgGKgPpRuMYKRKUwtYnENa5vYjEZ0EpLYinKRexiHYQLNuw8CtG17FwfykS+nwvo6hoZUD2SNuFyIikJSEjIyFGulpiJ0sLqnprC4qC5ExMXxtKpjFxYC6EGPHXYIYFG8so2GvTRgZgbNzXA6jbINgYbAJtk/MDCwurqanJx89OjRoqKiYAXA0AAyGSkmMxMlJaiuxsmTptilrExR1dj3MTaChyDykMdG8A7egTm0tuKTT/BQfZfItaLqHVRVoWpnqRhZINoAnuKDnQXHkr5zB8rcSMIJqaiQBeDRI/T0qObHFrKwoOpSBIAtkMzMRsKSq6xEXh6Ch8eDzk709WF4mJcRnVECYLEgOdl4IpsqoZSUsAgA70jZPREA3kHWeZwPRgAI/sKzZ6kBytw2PABRhCK2hzfxpumfGroGZLFRmKtdE3Tw8cdoa8PcHIT9UdWA108I+wcnAGSulU+xYjPF/jRTzfUDk/fKjsYe13pTCUCW1A+Kg+4WpP4udA1gYAIT85h3wsm6jkFMkpaU8aOMAhQUohyoAp6l5je8//RTYoOiAVGIakDDe3gvpmeQjp3S48lJxdEiAGx1ZK3SUtUpyFpBY2REdT2enITG7s1+R8THIz1dqcvx49212T849ANKHRRinmtjDXvFAb29bEo8t8+C/YYdOGiyz/Z88sknHR0dCwsLhw4dqquru3TpUgn7bpACACT3osIVPTObskAHs6KCaqUczzNnTHVZqsX4OJR9nx7rJVzKQhYVuxKV2AsTE6pFdnTgww95QYpG9SuoJvvHIQ47kPSsBizu+ntcLqF+GiMLNpQTqrOGCDkrew6bnzwxE/PzcDiUAIhuigtSXq7u6PRpVSTBgCxz7x7a29HdjcFBnktdRgQgNlYxPqOM4mIcO0Zt4GUoBiEKAOWG7M+m2fMp5mzRJXiXGkBjDSK4KINKqDTAJTLAs7+BN47gCJ3BYzgW0E+9BswEyf6XERZQfVnldCZ+/GMqQS1qSf1kolM4FVLwxahO2fcAZ1DsH/zFSZuK/Wk3sD4l7E8LEg/x8DZu38d9+g9Ugtn42fjk+KioKJfLpS/qWVeyilGcicfAGPAbYOCLAEwJgKEBRXoR3cql2y2HWRfsHXTESNbkaFIGBcBqpc+lWMtmU07ZuXMIAqR+9vD793ly+l4kQPY7ht009m1xc+cWGh6ff3xVv4qjMTvb2N/fKxe0uqoa1Ecfwf72Lp/Af5ZTmhWAlpaWH//4x6Ojo8XFxZubm5mZmeYFwBuq9PjFy5dZmJ7x8fn29vn2H40x/GHsozozdXVPMGtE7SUp0m7eZLOg8lMAeGQkuKc/QiOrsirJ+2JlKIMPFHhpwE927VrC+yIA9BHCAdLvjRv49FOeWLUQNrNsZJch6yAOMjhd96zPL86PLo729q4NDZHDWXhslvQYAmf/69dZgGhpwYMHMQ4Hw7oj9fWJiYmapq2trc3Ozo4MDq5SG0ZHeWuqyC5eDDHrRPYXy/lb9X/wO1n/82qPbwEwjexs0QCxrsddZH8xlhhM48gRmvn0cBvwCa1ztRsWi5LlkCFkSSP7k8tI/WKxiEXQYK2trNBIVdXVZIKvK/ORH2Oqj6KfkBC2tKLcDdtX4p8r/X3fzP7o+lgI08aGb+HWNVy7i7vzqfNVVVVnC85arVYRgLm5ucetjz8c/DAJo8A//rcH0n4v86S0HdL57+Rsfi+VgQzHDYfjxrXDt28rsmBTYj2QmlmYlAH2OqoCO4XdDk1TV6mtRUAg6bN7s5PT/aLjxfOfOqXYj+7/1hZPq/r8T35iX1+3H7DPvjbrQLbZwZa4pxpAf1Fsl+b7TgDsz7TP4uLi1NQU2R9g23w8OTnJUGB9fT2OpB2oAJDh2cKoTtROeoIsPYdjoZ8xL51NvkczA/L2+LjYzIiKCikAtDM44599WJsUAEZdzBFXo1oEAH7hHQS0wws2m0H9tIzkf13/3pXvf/f7YeEBnlg0IHYj+RLqK1BBlyQFKQxOGfbOYGYQg+1oZ2KO3Yzkw6iUfgObEMyPLdC7uXWLGsAOSuqvvXSprKwsOzv74MGDFACn02mz2Zj1Y9z3iD9IREZyTwwOggLPIe4/j2eys7Kys28fvvsbZ3+mAaw+BA0mTN1uEQCb61rX+M80oAlNMAEWHeWTR9PsPwDc68TdT/7y9/DaaxRFJR0hoq3NEACmsw32598IBcL+y8tRfz3qOFIqkQLabgOGQmUM9uh9hgXkfbHpq2lvXqmvdwx8hODBPt6GNkYAi6mLzD+cPn2azTU9PT0mJoZMxLb68OHD5NvJzFSc/g2nexNrf5KUVEdXhpoWeNWstq067jhWb7SoJvveeygqUmkZEYDpadWCeVdMI7DjS8cj9/BC5h0vo4fThSX119erWD4zk8xIAWBl8XXPo0f227ft8QWORAfM43+olQ+E06k7HBppluczoBvjOG/DNNjdY+Pj4w8+gd1uT01N5TBAQkICXw8mAhCPzQjfGaRQAvs/GqOiMmLkzSsnZE9YLEYQQHu49VAEgEGAL1+SekPqFyOE+qkBZkaNZEaQ2CgUGLV5Z34KCuYbG6/Mn3HhzwK/D6FgdpbRIR1/xc9k/4u4SFWrQQ1dwnSkUwAo6kyA8j6oB1vYGhwfpDsi4wHmBYBKSC9GOig70quvvsoeVVlZWVBQkJKScuDAAdb0+Pg4O1VaWhqdrC5+nvUiQwLMe4bm/sfMZeXm5ubk51qLinrCIgAyOORyiQx0XruWM9MpGmDmtIzmyX1Op8l5IesP8eD7aL2He3P/LkcNkPDSVKAQwOZksL8FFoP9WekIDZL/oQakfMD6SzmDlHzfk0bogDK3oWmhzzNh+zJuCK866uscR+ucDxAsRjFKj6cXvY/x+NVq1VZfe+01ZqLZMrdlboW5aYYCVILey73lieXDiV+oSyzVk5O1wKvG0exw3Ot20LF64w3U1Sl2Zsu3WKgHinDYOfm3w8HkrGIT5kj5BxOkJsGQWno4T8XQ4ZVXVBKppoY9i6eVmyEnOnJyVuPjV7/1U/wDIGBJFt9faUDoc5ooscz21NTUuN3u+fn5jIwM/s1X6CaGOg2UHZSyR3GllmwsLFANePOmBABguRtxwFpHh5EI8iUABvszm12IQiP/AxNIezYOcDCCM9j/wYOKCr2xcfrUGfeVM27UIkRQDvv6VCNht72Ak2R/0QAN2vaPSWM0wCiV7D+HOYbGvb2bpLCREeVJmFJll4tBEONQ/niKeX19fVNTEzWg1Cv8YiIo8wmio6MdDsf09PQsy45ETReRoxzseAGCzojh/lehpLC4sKCkgNQ52Nvbs6w0QAyhoLJSgoCN6OgutzsXP9MA5s2wB0h8ZqcEPkDfIzxiUxrRRnDpEgWAFipHG2S5uNiAc8L+tSE3JmETseSK5BRdaUB5SBMHJ4FsMyNtxg1VrtfVNdfVr6+fZKwKDUFhHvOMeun30BXNz8/nLBQ2Wrop2AabMVlpaGgoLy/v0ZcfTelTs5idxwX6TEFMkl//I7aN1x0uVi7ZubERBuihUwyokyxSMg95n92V4i2OPH/PniDL8Vu9vYqJSHzsSlSOV19VaW2vm1E+1sGDKky3j2PxMQLC+8CvigDQVBXroe6qyZs75fF4cnJy6BfSQSwvLz9p2guM3ktelFFrN9h1xYMzDRkNliCgd6GX7C9WjnI8i5kZSf2rI51o8f1pvLhZ/9IQgLa2T7cdf1I1y+HMGTaSraUzm5vlm9AQyBDwBVmjuX10M17jDZHKORmEGWneCEeUG9FosL8B+obsD2QiEtyIa4SBKUOH+XmJrkx0UF5jaIh0U1pXd+zYsdraWrL/bgqdy7fGWLy9vbO8ZX6Lv29yknwZtPtvWcrgfZUnlJeWF1CH2B967oZJAAhpl/n5g5ubXUAunJQBxk/hmhC+hjX6oX1aH4/IUe6/RABhSf2TTdgmDfcfut8NcXWz6iLGAf1kJNN8n8UMSaRiLzCQMlL/cbbCerolm/V1ntuax1OEGAQFFrsTThJaUlISuZ5ZCLL/jpHBwxwSYJoCgENzOHXnOtaDXCtVb8WpEkX9tJ0gx7CzMLBgA2BXokdpsymKoTO7J4SvqBns6nRh2XjotZD9d6L0MFY0LELZiMlSWnduM79z1el4AgC3Ibi9c1XVQXjjLHyAzv7Zs2c57sLMMKuA3mHYFoJR5MToVNJMqaj3oJUxGHDtmvdo8HOzeoT6afRDa7Z9/6IAJyTUbW7O37mj7O7d7jt3DkyMnWkS9lfH7+QjcHz9WQFYmZtbnplZmZ5ejltbyUQmyZ3Bii8HlgpBBycVqSMYsdtVtbPvmQKFgnLBhgvQxyfLc2QfPsC36FVlcYSG4Lfm5ujFBCoADO0M9/8kysmatOiKIrI/bbS/v2fhZxrA0Y4waAAN6ARyty09TGuByPu9Wi+PC1jA0XC4/+3thgCw3f6M/fWGeMT7/jnBRAApqEjRUhgEhLYIKg64CrwL3xDqp032JL+J+jrmUPTcVIQEdgExfRvYAe+31Ie1A5quBVmE9cpwyu+8AyaFSNwycW5xkU3clABQJ6gWdKEI9qncXH/JwzpgEfgz/lJAbYBDGZzyBz50YMapOTmG8QTOPwZc8cH+NJgTAIEMA4R5JfD6uhpZoanAKi5OGRBcEDD5+LExGuw9c25wUNhf5VXImHSyxBAYVi1Rd+qK784P3pmPvTPvmqu6JOyv8+gRCddCFQBieXm5bmmlBMvUQ7J/tu+I2wILLRrRMr1SdNRsOsZu59XoRrFGGdPRdYIPMOjmB/gx/rHGb/G7DkfQ7n/i6hFhfxWlxUepgFqCgFtPgwAJy0LHgpcGXAyZ+sWvJPWLkQJCd/8ZURnsn6pbhfp5pLSHbSKORADr6ylQ7M8jQoUVIKv8E1+TG0n9ck9NivrrGAGUwGOu1H2664lI5IQu/vgZ+8zS0hLn/OycgsLsP6emsPvI4lB+PlFLDFI1/wXUYF68nzKwsjhVQEWwU0i/MOkKUS3oQiUl0X9Vo3b+KfUN+MeVZ9hf/r7mwLDj1zucX1BBgLC/2kbzA//sT/xjhIIgBEDKjabrSl9YoDwGpNhUehkNljjgoetpECCju0wpGVM/CSP1T8cZAWAOuEPLyrpTX39nYcHBtkflFvefVTmF4JBJ8ybmhNWVL68ur6yusNfSi2Gex8/vdMHlhtsDjwyKSzLN5BQgKgaNAkCokTS/iNoGXC75YqDTTQ33v2Gb/SlvACgAEgRM9fcbo8FKm8MEEYAcdURpaOwPDX3oE1vCEo7Whur+2+0G+0fNLzXoaso/zc+kZA2BRQUy/EvjRNJkPZm0mIAEeltSg5o0moADjFTA6iu9YWSzKlwnSP00RgDAPVNF7vvFDC1D1vp0bXQNDw9zWjojV6ahmY7Ydqxn7t+/z0lxnKqYgxwOkvHzvN/gd4nIhj8Y3qq3D2smO+ZwKL5jB+RwAhMp8vtN1rcPATDYf1PTyIf8bfpXy64D35jGlQMY/+q3L2+evnwaNM1LAD4zRJsITxWBiaKyUAJukQUFRhxgb2szggAuEAOM1D/fBMklKPdfNp8Tu1tZyWUQnDVI/WamQX9KnhpCRlL2Ki0b5pyJRSySiVh+AAuP0um7Oe1gdI660Diws7GxwSn/HN+P8aEejKnpR/AzhLqANLKg3P+UdTWqQSNxGlPMngYBs4+MIEDxVDigP5sIiguW+gk6Kjvdf1roqX/ee4N+RrH/akP9ag7cY6wgEgTdTA2mUA7YgGU/+Z/+lJR7KclL8bB/i2GBRreI9WixGGvK2Yk0s7piVRqAV4Hrz007MVL/MdO5Qv00UXottF13jugqcKTfZtNsnJfMMQB2Qg5NceaPTAPlLPXu7u579+6N94+z43MNIGeUB7dTkKlvsfuIBRJ9GzOVjcFPWijsTww+O2GTxKTzV0mK7AYUvv1t/J8o4Ks+Bv1ftABIhKoITEwB84Hue2VMCWUQMPN0Sqh1odiY/GOBxXD/tQDKoc+gfmOrEA7d0/YFq2Im2pLiibEpTE1jmqKZlRXIOgB+QeKt2VlGzQyoGT4z0e8jSzHC3kUPa1Pclvj4gNYB2GxP3f+m7ey/kILACALmGATYfhYEkDgQJox5aUBDoOyvwYDB/mywOHoyVPZ/8MAQgOOu4w0PGxpGGhpmRmDvIk1oFADWUXq6oubi4j3rlZ3btm1TPO4cAf5WSspCUsriNxl2aPRDDQFgG2Aim92FiazKSmOlt18xSBUN8JX6H+2NfxOK+uv1ekbh4dpzjSP5c5hb19ctvZbrvddn/sYM5yhTCThLjU4MFy0ODg4udi/KlDle3XcgFSYN0HVlhKbJ0dQKT29oGi28e7vpHP2qqVEXuolt/DpcBiAaAPy8CYAk0LwF4N8icPCLxv4QH38so8G0tEdFDx9qZH+m3eq3ff9A5pt3bFM/j492lvYLFAC61GTNIQw54DhRwnwUO69p15zMwm7PMavBQbpRnDzHmJpDwTsn9nLWV2dnJ6cAcfkfiNRUyX4G4f4f8mQa2f/nnSkJApQAtBtBAFsDwgIfAmDS8RewkTLzIwJAsQ0x+0/dRUeHmgne1pY1kHHqw1OnurMahr6XNDWlka9dLtnvSaiZF2KzJaOaEQDF/t62suKUCOCbhSkL30xZXNRWVrTNLRLPFrZkXqNqBkVFqKjgyKRsKrIXDcZva0Ai4DDkzEj9N6rMjzJWdLjYX2Y/n184H9Mck9aZlt+XP544/iDzgeN/OjajNmNcMcn2ZOZ8mtB0HMd56bM4G4YOqvtdX00RpREWi2RgzUTeYt5p2DDu76kbWfHnGnEU5PIvJAiIlov6z4khN4ktnm7p6yHMATfWhXFWCedHliyUHOo/2ttbzrHfDGQEMvFfYFA/bRj+oYWJ/e3qiC34B12hTnR2o5t8RDY+dowsYXYNtczuVMxC1/LRI/pNpHiG0vSkOM2Lc+mwDSZb+dadO3eYXeXfIEgWDDT4GXOgHBvu/6vb7L9zUpORBVpmImjiZ0FAIxrDqKqiAc9CN1+bQv3UACoBjtaJAJhy+nytkurspAZYZmfrfvjFuvbEUw++Vz84yJH2Y9HRTMdxJJMuLYMARc1s2NPTqp9wTroPnNqOm23P2fIyberI8szQzJX5wz9G8ZeRRLqiALjgojJMOaco7etU95ER2eyMRKbEgNg7C0RzAKrPGdmsMvdxet9iXsXpn17N7UnmdGbdaH7rxq1/3tKSmvrb33t7xl497/zTzs18tRkch3wZbTD1z4qp0Cv2fTtocpYxG0Jyr2ZmRjJ09h45oDGt6h+fAq+E/HvDt132FvDNbdPNXT1aPrBrYxARdbmUiqrSoYUAIwigsa/2P+5fHuReBuW8hPj+ZH81D9osfrrN/tPh3i9cD8X9Z9dlqM0tsR7gAZXg4knmo6hsAaxFZ2mTc+n+s6C4M+rdu3c5wMsJSBQDLvPjIu+trS36/hMTE319fWT/27dvy9Q3zv6kePjYBbfKl/s/3KPe88r+74CmkXQoACoISJ0pwc80QO2CECb0PCMAekBazhyKCIDh/ivfn8egIKooY1Mu4Hu/53vDlZU/LSv7Wm0tZ1sxo+1yubj1CpdhM/Dqp1RMTKhIeWuLxKEGiX0jXRkqgTVh/9VVm7YydX7FVvrlFVv2EduRNFvaQdvB2LFYCgBHLTmAxK7Cm2JbeszCp1dL9pf13juq2EcWaJw0aKT+tZkj5H1x/2P1WHM94D8BH5hUTY2XuXHjfNTtxsarr702E1235Dzg3NK3mIxPRCJbi+kdpUzMAuqFvwBGFt0sLMhkdImMzfQ7cXNVHtVul+wcQwGfyyq7gJZQqF/bVQN04B0EA2re8tracmLickKCHkwKaIcSyORe3j7bN41lEYoqM2EqgwHa2NiU3jw8Nrw+yvyGTQ0f2auqkqoqURmII/+JYn+s7P1DtCDYP3gB4HYo3ISgGc0d6GDGj72N7lZNTeBiabOp9ufx2FtafvSjH5FxuA8EN1fhdE8KgKz+/TcTEx81NFh/rfWjP/zhFlmPtFxUZHInX8YMJLq0XlweAJGJTHH/dy8DyUGvrzvd7h6gBCOUAdkmOoyJoODCOIP96fXhaH2o7j91l2zb1yeL7M+dO8dllsePH2fhc9cNvsKMNhfcMy/HDZr4CuWZWzYxV8PEHTXYzGZ88UARLWkFX1mx2ZZttt+wYsvJtGWm29IpABabBf8PHnjmMc8UIjOl9Ip06ENjQwxKlMCXqDVQewkAzeqd+h/qi3lTpv3odSRi35kM79p/2+SeZJoEGiy3jo64JpJtQmpqYY5LaeK+oBVIA1KBDB8L6RkwUZjZgyiZ9AlkTYAJUCpk9idvhyrCM/A8u2+yO25HK5Rlhsz+OzTg+8B/DnR/SnqB/f3LDsdycvLysWOs6hDHAHRATXOQOQh0eTAzQ85gaVIeg/a3ZV3YL4+PX8kZv/9nx91jY5vnS6ovv2M2+aM/FwG49oP9QxEAbohIAaDdxd3jx9U8VKZtT50KfGsGTeOXqbiyCetWf//DJzv/kP25x5Ou68709Jmioh++9VZHnaOjoWOLQyqs9fJyn4nvHX7ceg/e6AFoCmCQngO/5MWtRgsL6QcoARDDVNh8OmA6qAwe3WRj9iczYOL7KwsODocsBIUaUyHNNnIHDu7DwRmNjL3gBeoxX6EecPLVA6bYmTJiFfDqAezGukzLzFzJzPwKEIcVr4GCs4j+o9FHcETWEpL9F7HI5KmHMsdaJrvV1flNalslAqBeGKn/U4r6VeaHHc1fNltHENA9HtKuGr52Oll+bW0aNzkg5SYm8mey8fNIY1vmK4xhyMb8W/N1MrMCYLXjgmNnbocixNwp1Yj+E3sE64WRsVktYpGzFVHIx9TuZ2wG9JIoukbi3qh+pfr37qNlFDbgIAKEFuZcECv4pz9Fc/MScfgwE5SKpUlAIQ4CFxbqLMDaWjhuakNs4snJmJpSgRJeB9KCebhGUpIxI6j/j/yIWfLT75yWjR+EfczDBPsHQ/2hCAA3oLiJmzTKQP7R9aYm7oJMGieBB3VFlvalS3RJ2HzloTNs0Gsu11pUlP5kBPIn+fltR6faT9ycKJrBF77AgqWT7tvzrYA3BlDRA/QCwwEkpoRY3YChAeGi/6A123D/HXAY7j+7a7AqNK3KeXKSOldYWMhtNrivGTWAurtzEw4qMeMwTsFias7R3886Ug3bIZRk/lGQHRAkK8NRwA3YgD8KAWfL2GDjEDxDgcG1Qf429SPn5pQr5hMJQOroqLW1NaG11UlyKHKXGckf+EDu801SA74Ac5ANb/Un06K03glmzru7NbbcHQJAAqAAkGPJLWyt/BKCQec0rO2IT2Y18SxKdBUpgcVCT4A8SAmiJJMEZfyNMVMAw28UjOJieQIHT6LESuZBMDJgu1pZUcLA12Wz3vz30POPgT8SrsZtaMBvD3TFYlcXd6hettuXjxxZYrHyrkMXADIXm8z6+nJS0t3h4anpD/+OanYxbyOUpysxm9w7hoxxxIxnux9VIb0KBaSufaFsLXynMgRg0if7f4pPb+AGBeBI2Qo3EKRRA/LzQ5Ao9hgKCJsv29zMDBuf7nbjyRzE1vT0lpwbrYWtbVobowyqNNNMbLhmb7dHDMHBEABaPl4YFrBgCAB9tzDM/ZdVoOQRgBke7sPKHVgN9t+5uQ13PeP0ds7Q5TQtGPs9mRWAZWU7EQPkefvkyEUuE3TMoQ9iEEtLsnzMrwDAbif7pz4x59b/S6//RFF/Curuwfht2i6t8RPRJXzy3BD2QQguwSfYShdPnhzc2PjWo0e/t7W1RYtf+3SNzCkCwD8sFhKyKht5oiKDJWrZ+fNBbdT9r4/gWjZ9XlUU9PQZnPHUHo8qHHmMF/NyLCIOy7Nf0DFiWZkEU3n8ZbJ3I/md5+GvZ6vgmBCFS9Mo8HQRZD9ItUlc3xmAFlbXJtDQiCrIeyczkP2BZe5Us7jIv2X0ItStIJIrx6wJtw/ldjomRvS/P++JSeI3QkY1MA6MVeER/6IlvshHNush64dif1K/WHrpIps1jQJA6g49OiHTMJw2appuyGD0SAt+rCJ7rZWulOyuw7Zu3m2GuP/jwU9L6HnxAgAj+bOGNRw9Far7T6ytydQ3LsAmv3OHpXwKuG9wvSs/xpEAmTQd4D4cZp8Er3ZNQKJafGesa3W54BcjrakdLVbOx+nrm3jrSn0q6lqUyb1ou9b0e8BHV2AHrsCAseXO3gLQ5aloT/H0FqaOaGVfP3TIUXbEWep0lbrc75KZlK1jnVHaHOa6YYuN5SCXKiry9i/9EgJGE+DKwKceXL0KVhAjD7pK5DvqAVWFLYJqc+ECA3DlGzHvFeiiJXkIMMuZ0dMPf8iUIJNCssqSzYMyz8sp9q9pQl8jkBoK+4cONnh5NvhabS23KlvOyWGSAGIhRgCsMI5nXiu6dqfoTt9Zy+q7775OuolByMgEqoDf/kPgTwHlCDOuARfMaoAOA8NAIYKAsL+4/9biBfH9KQD0JIKmft1XTVss85jnqF4r6GS1LCa6hPppZtcZu0N1/wWDz8QBLwAsh/C6/yKxYvT6OduKOxlQCfyu2EuMfwKZM+dz5vhvAW4D/XgGunr4l8mt1jRoNACm1jS1I5VTMVtTLa1WAG1X6toUkdcCmg9iOiSPKcEVYf+3gTlhf5o3/jV2x/376uFI9+5VPXz4/mD1+V95553V48VrpWuuIpdH97g1twsuCgAf5DJzbab/p/3N15pbWpbYYEknDG7J4YGhBvAAUReZQmK6n346+VqVv8ySYlKIfY8KU1/PGDzguYskd8oGJZYqQsdrcFDFdszvaZo8I50np0goXZlvBLIBDSjbd+ov2GuS/dzcUmLikt2+lNmOx2rjgTAsBHuMx91aN+mmLWca77/PYUB126q5hyUIUHgT0BF+/AHgX+2tAToM/IMgHxzLwV7D908pWiDvi5GITNxZwOKwiU1x/FkpQxhC7Tlx/5n8Cdj9tyEkvGgBMNifzIKjDcL+yusJAWQQMf0JONsKfqFvQ/LgPt2uC4AFiAG6fdCC7o80GN9wVihN6InEpMwXRoBWWFutFICszay38Bbm2gDa3wP/3rX93QauPMQV9B/HZbR/wNECYxagppnYQFOjAHDs6/r1WNu5d9n6L7EDcM8D6OR9SiLdf5euBGAFK5OuyXZXO5zgxDby6sKC8tqDQT2QVCN0rLz+lRVKrzyPm96ALJ1TXhFfCQI8gwy/FRQwFyQP4pZHsjHdRNVSJ6+qwZWkz8jxLwWa4A8shzfftJWVzTl/ZeH3L+LLauJTaAKggZjF7BSmhjGMjBwORaoRFR7Dg3jsMzKAGX8aoMPA6eDZXxx/HpMLDfbniJGZtFIw0ifUL+sMFN8Z7r9JrIXH/ReMemlABT5TsGUaAsA+GR73HzC2AHOOj3OAl09b5XZM0b5JhHMuuCCDHwMgq414Bp8CINYeMEvwZhewsIQlQNbk+/bvVoBWZYmtidVz1bIqxZz30f3X0B1zGUAtUAbpMaS80lJey/8vJv3SP2aS3Barxnb1qioZftSgxSKW5t3OqxqrNmY2+AA77hW6ubnOtI0e9EZA5UD+F+WJ7bDbKQBUX1mhTZpSpRQKmNZ77TXVoiYmVHixvi77uDHdxJOrSyyHzu/mUAE0KfOP5bSo3rS+x7GPx75YSv0zH1VF+2mLlG6J3YxR/HDO8/A9GrX/4wHmr2bK9z9YIJkfnceKihBcAc2fS8hkN6lfDFYreV/cf/aygN3/OYQBL04AjOw/2yd7qXn33+w0cIBrfbkFE6d7cjoQfIB7W/IB3NyISYZqyA67L9Eq2Wb/GHXEPZgHb5AemOwrBYuFvh4v5GtimbA/WoB+sGWwUOiAm2F/JQAw3KCTsjerTgVITt6zKTscpF9FkohTo73+W6PL5eJCCq6mprKyCVNcKJrBQ+b50PYJubnK9gfGVkMSJDHCo1hKaKtDr5AuVbXN/uf81QOzlkwMPMCD7lM9y8e/QA+UTTFAAdB2fS9ajOoqA82hRzqhf18PyFHYc0xYAxqCZH9x/xPy5kn94vvT9Qn4xjRTL85gxmB/O+w4eUnc/wAaqD2c7r9gSjQAnylYFPvi/gMyB5xFSmbhLnuc38lJPhwK3vX52pz5w3e5xbHah4NeIX2unByfjmeelwDQbgFbaEYz74V7JBzH8SQk+aD01i50UeoYBKD0uOwqtXsK6L6ifmWtT7fpN9+LxoEiq/F6ivlZFLJLAKkY8wuw2bhzeHpGhmW3VAFXs7e3t7PcuMNVXJyHt8KSllxFcEHAi4YWinLJnChpzyMY4VCiFdZpTLO6xfmurq1+yv6F/q7JhsSvt5S1tDNFLxOfTCPaz10kIIHGZrQgWwLZ7T8BLuNlh47QwIFxw/ePz517Qv1uWlElnL6bRxzifD/81tT2EmJ0BtWYj+H+AwG7/0sIG16EABjsz05isL+5bK8JMiMtlZTQhxpub+fOxlx6zdVefJ6t90IwPniP+0C0trY2NzerVWCAqfnmR4CLT0OBttttH69//AiPClBAH78c5YUo9N5izwYb32WNy6pyJCfTv+AP83mV1m3bCrgHaL6I1YQGsGBkU9TBwSW0t38rMTF9eTmdq9YPH+YgOXcx4VAKd4Q29s9guVEGTp0iTakyS0oKjX71l4z6jQwTyy0rSy0160Qn652JPpKtLGzMRGbWqay8pjxrk1Wxfy78YxnLk2WTM03ZW41qrz82lfDsBkqvhFPQaFhZpHwrA37vz4sG3AziHePtWdrz9Zhj6Ow5v+wvjj8tLuf2+fM3z59fSDlvb61yt/ptHixMEnYxihE4DPZnW2HDMeZ9BrDhwWL43X/BnDrlZwe6SEb+h8kQ8xt/mgUZlp1yfBxzc9zmgQMATPEz1ZOdnc3N4DgpiEt/mfPhHm1MZHODezqzaGhgdZDP9l5wlCrjARixjLRZ2qgBP1r5UQlKKADUszzkMRqgo6BDd8BBARjEIGucTW7V4sLpV9VVTpygz+xPAOYDY3/NBLHqfjmvoEAJ0+SkPG244w85HF8bHk7PyUlLT+dMKkMAuIMeU2qPFbpOn3adOcNi894i5SWSAQ0hg1EcGwsdOaYP+/tXPsJHD/GQKaBVrDqtk1VVJztP5+Y25b5y7hVkYk8crz2+2Lh4oNF5oKnpflFR2LaDpi6JYXlYtkYytrXS8cLxDfiCB/i2D4fmDwM//cbsLl/OFV3zLwDMshm+f0zW3z937ttZ56bvnpu3V9tdcPlvGFnI4hyRIASgG92GAAAg74v7TyIIxv1fRdjR8yLcfw88hvuvBqjCBRlcWVjA2trGnTsff/wxaYtZiyNHjtCfFQHgQxooCXRmlxgZNzbKfHOzu68kYfWCq80y3GaZa0v0LN63tgy1kOiLUMR8cypSRQCccNIlHMUogwCVz62/yKvwWv5mtbcAAwGwv2aeWPfiWFL5+joTQapJcn/HT+4MaFo6n2PKCbJUUAoA8/7M/2xtzeTnb3LiP7WSpcUbslh8FZLA9HsHATv2Hwd3/oKkYKebUfyWljhuRTGgs7Hlco2wNHLSmE1ki+6src091piHQ7mAX0KPAhqR25j7SuMrBxpdBwoLDwCt4RKAZCSLUdyNh5dyKPiFhl8GrsAPPMB3nmnJ/xQCzB6+csUv+xP/zPe8WAbjZP85zL079duHzjfcPT8zVzPn0BzYC1/BV9awRtpSYyqmMYlJg/35dfH9xd8MlKTF9gPL+Iwwhann5/7L5j/hBfM5Gxtq1gej366u7icjAdwKlP4sh0XJZcxmbLEH0/WtqFDzzZnOaGpSymEObRZL24ULbfHxA/wKswA9PYt8WMr4gzZPG9OtFlhk6uc61tWQclEdfw/ZglchZfpb5tZqlv21cPvXdBI5ZYY6xfzZ8LCKBrhf3urqPEtxa4s/mZwhz7aRZBFviJGMv1u57PNKvt/77cB/xn7it++8dk4I6RCWA9mfZcI4wFjGwBaRnc23PJWVnTExuQAtzydLH1TsL5bdmP1KBg5ADM1hEQAmf5i4oD19fJ3dLgKww79+DwHibYSIGvhFvQeYhYGPgIPqojU4DLOohcAYaudIvVrNCFUxV8EG58Z/VjsvohbBw/d36QYK9beicwpHYMlTvC/uf6AQ938dLwF8N6Xtp77oW/giGyZpUVEw+03YwUKWSd8MqIeGwE07l5a4167iM4uFwiBzDSWMN78Kj3gItIkxaOD55Wlfwppzc5x56nC5ZMYhyYAiZzwObO90iW7q3fd9FfBJZbvjfSj86h4TaClP1OKxMZaWiqAYHRkCEBuryuzQIeodRWLvmT8fYDdYfb3h1cnfxv7go53XzpWXQkBBAU22/RUBoEyyzkUah4EuQDTg5O5DSo1eloRM4BUYGoC7oQsAUxYJSIhHfCxiN1ifTidtD802hy8geJi5Yr2ykPFByOcO/ipG6v9hK7K65UN0GEg69ARTU4MRANpLgcs+g6FejPahhiZLosiMKv28T+DJc3MVpclGTBL+6jq7KeleNn/+/+y9B1wU2bru/S8FGhAkJ4liAAOimJ0czz5p9rlnNt64z3dzzjnnnHPO+Y4n3JmTdpysM86YYVRMgAhKjgJNqu9Zs37UbYWWohsanKlnv7umraaraq1a63ned721akkezNY3uj32h2kQF1qfWacwNNDfL9a060GqdPa1mboGOYQihhV57uG/QeNy2d/C/vjbS69lJwMV4nEBUJ0lJcXhHW5cHXKP9YqyVu5yiouNRV8rr9xsKSASWx9l/w1YFD6qAZ/EKQDek6BSAvskaPQlAU7GXpcrLQANshXJ5TTGz/6xl+MKt86x5TyN57DARowxPjbRAjM8HTgZrQR5LZxsAdcbRhW1rCrS0uxCpTb29QTAvtJsudMOZiLY/wERsDKgniW32S4I7PnMHu+vBPuH4aS/DhM/7GhGfAgwFLFe6ks+n2HMh28as4hbAOy7UVxcOyUgeqMP4RshVgSZPr+IHdt5FBsW7Fr5s1jchXNst3N6pp62RK1/+G8f96CFUAvcYC1gc2HxwWP/L1gAT91XHK6PfhdivSJA83wEINvBKmAD0THIYD/9QwxNMGEnoHvu51OPGtYtRuAcWPbvIYDBDaw9rbgdIQABAiwHTdBsbHWQxALYVOc441e5ep3r7bTz5VIPFBWZD6uMAN58fst3ATqgBWM3n9pI3lL/eRgjgXDX/3H9YyP8OmPrBFnw22U+6mp9w3FxH0u1neb0AAOTTHbQcZ7zH2z8yH3hBb1tjh//cerq/JRv/SNAgAABAiRFe/B8mmmzFl3pOHtesfNc7LPnXxUECBAgQCAAz7MQd5hpS04hcw9btrB9O/X1Zhai4/DVQYAAAQIEAnCSBagwtnGjyfraBRB27OCrhgABAgQIBKBxMfYX7OoKoRBfTQQIECBAIACFPIpCAgQIECDA1wAbCBAgQIAAgQAECBAgQICvDxzXdQkQIECAAEEEECBAgAABvt4CMAz/Hn4EnEetBv48XMEvRuE/wjfAgTT4/+CXiAbHh5XDt+E/wG3fJ145i/N00dEB/xCOgQOvwL+GfnxhAv4L/AQ4UA9/HW7gIeYaSjTG4H/AX/XfrtZhGR1/9jr8G+/ufg5/CrYtp8W0w9+HIz7OtB/+BtyIcnGvwb+DIXyiCf4i1IIDu+EvQTP+8Dn8SagCBw7A34q+atl78Idhawxd0fFnb2CIo48n4R78IzgOIfhN8A4eVoluDsPfhTaWQBj+O7wRB3mFDHPyzlMdARTA8XnbRoCvyote2ozRru3TW0bXn7OVDTnGDBiEIWMGAaqssTqomD96PgGeSgHYDMfhmDF2E+Crwv7MU7+1u1/hV6R57L8BmIUhGJQlpMTrH1vnKTonwfKy/hEIQMo89R+HBlYHAX6RNcA96/5726eujP6Z1rJ/NkIE+7sE8DTA2kojK6oABEg6FTUJ8D2ioAb2LVjUKspxRuE7RCANfgJY8HOHR9HWRksLIyMYeCM/Bcd58dHfwSkfZ10MGzaQnExaGllZ5OVRUkJ6OkvAx+mSkqiuXnQBVwfcKAfogE95BC9DnlfKaCeeWCSlUg87gWi/9V9FDk4yyWmkbWZzHnkllGSQ4b96/KL9NG1dHvvLXq83d8Q//De/hdjAhhRSVMYssmwZ9TluDXCIgJrwxYv09GDZnwM5bKeRU4O3GLzIkJ1yrxazf7+vSm2Hz+K/LA+vQfaSvalpwXpCu2AvPvH5AlU/ANu9k0aetWqYqu9RBZdh1lsv8ciRGN5H0ELLda5PMRUhLNvZeGCpst6DT/BACN7w05tsQ4sDh6FqkTrxEIZ3iBcLSkSjJwC+NWAn1PjrgQvrJg0a/SyKePcuH3zA2bP09WF9f6qP8eIxji34XYxd3xMAkb5de7W01HTD2tonLGXn63QpKRw/rharQ/k9wAINeBnw1exgHH4ZD/ug3tdvF1bRz0QVAJFjAQWllG5lay21IsoVE4CxMaP07W/TBrNou7eNmnb27cM//Dc/fmZxAUgn3StjNdUqo/7pK+/rLk2258/z/e9z6xaQzSs55OS8BUgABhk6z+AdTCt87rnHVoZ1o1aqpwHx4zX/vSlSA3YZs4hBAw4Yg0XJTj2xqoiqt6nq4DYG7NmjvmQ0YDnoo+8MZz7iozHGcKzv/2NUVfkrq6cBKXDSR2+KXwMOweFodbKiGhCyR/clAJ4G7Nv3a+EkvOkJwPJ7/gh8NxVO+omau7v55BM+/ZT33+f69f3sF/Uf57gslVS/J/bOSlQ4jiHrTZsM4xcWUlHBjh20t3P4sFECixhOV1amHq2mrMPaHu3/AHfhLLy8zBN7GrBPtrzfelWUGjUCEDlmk11IYQUV29neSmsDDbvZvTICIPa3Nv05kNdOZrv5l38B8N/8SI0aAWxiU2QZdUEHOagPvjRAcKNqQDhMVxfXrvH22477LcP+8/7FqaEhpAGDP4TaExw6xPR0xI+XKlwbfE58eHW59XgFWmJhf4vPoB32w4Enn1Usbewyt3+I8c6Skti1SwH1soIA3cE73DnHuSaaqNpK1Td1UFW+77J2wAVojI0ClolDMr9nmYxjDNPTM/9rAv816yebeM9r0yLKlV+71MFTnGFRvzWx/y52ifetWacsBrySmsrJZ2jEPi7pYdadnQxPDoWHHgw8uHNn6NIldu826jMxYYLyykpiw717nDuHFYBXX0Unf8xptPW4rvAKqfDMwuWgw4SHGe6h5zM+u8hFucaddGrPNNP11BM/pLeytraa/1jz5s9t/5u//MtWDu7eVTNb2QLCYmWcYWaSySGGHvDgNrcvcUlNTp+N5whWA+IIBQzFW3Nz5tlfbQvm5rD7JQN4X0U9zAFfu1w4D6fgraGL2a1Q/zTO8tF9txqQn09f37htHsZqavAH3VO1KutZeJJiLFE4Ia062AiyN+Lo6yf87Y0CF8bg+/A9bbvP3L6t0Daf/M1s9i0AkXqxG08DcnJWUABcIjE5aXx/a5cuacBBYz7W5J0RKxoRSuHEY9H5LLMTTKgb3uNeCy0XJi9cuDA1NkZSkumMW7YYRz42NDdbATD27LOsf0RWUaQAWHK8z/1b3LrCFflTAwyI/eU1q3CVVBIPJJW2b/f2FhTUFBQU3N28+cW2EdvlV1AA/jUWi5RRbWCccbUBCdtNbkoALnBBCufiKiwooCCLrFg1wAXHY3lL8dq6WGFwBwcd7Z8LpZGbq/1kZrpPvj8R+DVP6knD8JayDvxN4M2nUQO2brUmAcC2EMmAfwGw1C8NGGVUdZt4AWgEquEgXjOI8TAL8PKyOPUiXOjn4ve5ffsG+Qrc5bTtZKdfAXB5FDvjLE/UMzjMw/P9z57dwhbP96+gIm52W0QDbOfvp1/N5TKX00l/l3dv3JC8qbUo7jRNLga8/o3Xf9j4w3O/d9YKgJSgrs5HRi4B8F1FkQIgxu+g4ypX88jToKqI8nM+zyW3lNI4BcBz7hzXKTpbVFhYWFBY2N46Yrt8vU0Fr1TpomiA2sBDHqoNiC+aadYde5/3FQrIUVILlNN0hCNAzBoglrcaQMGX7D8/CmFVQVvttOYyj/8D34KNUUvwU0uw/yngz3o/ego1wGPsy5eZ6uqy7cTE5kVF+ECk+++JSeJ7k38N8CkALy3Lnb42woXvIUfgwoUyeJ2GAxyQBqhV+xIAd+nzOCv7wJx1/K2Jayz1y/ffwQ7iQx7eyXIXErBYTFF/JpkiArGbQgG1Hfmm9+/HKADT4UOHwsNn7509t9cKgNmWlz/KE2ukAf6ryEMZZfvYV0JJMsnSy1/hV8SPqqVaaiUM5ZQTE2z61/ZtNcqSYv2vJHXLltlbt+xu2b59Kx1jLlZGuflim73stVGm6FpN8AY3lOdQAQ9z2MGJWQPk6Q8NGQ1gZ2QCAMv+ngB4wsBvW8j+wnbmUblECc8v9qPtC3loPSMjA08D5JB5iSI/AtBHn3X/de9ISkq8+y+ULvgUU92XEoEQlPpv5b294n3L/s70dMM8+6sj+5oH4OIH7gr2Sl2r5/5vmkr2Rn7qqEvAE9tppO1hj/wEebVgAk/roMWGsBGAQzXhGrksSgZYGx31X4PrEWo9ysaL9LexDVDv6qKrm258I3r6d7qCirLSstLSUsrKSE/3Rn0TOQEqREhcL9JXARULyhtQ6cQmAwzEms5ichLL8qNjjijeNUNAXgRgtQHL/makQqiALNkKZdQcnlo8ytueRxAOsxQWH/3fvBmf2LhRJuWwps+x139iuru74MCua9nfEfvfv6/OZdlfWxZDUvyPPMfbWK9e9Xz/pJHx4/PP/BziECsEJ/qTGp4bmEuuHfANh03XnZrCdWNYBVk/PFQ5PXxoemjIHWpxur1kwEsvrU4NrmoVRUACqWigmGJFAJYZRWLxp39TSVUbrUyqrKyooLJS1n/tWuyp4Dg6nDSghJJ88tUSFOuMMSYZ0Ic88lgOJp1JPV8AjAxaT38sN6fioWX/jZMIc3hDQGO5uQ9NEJCN85A9sBljbAKDTbGzz9ON0lJL3cbp7+4eV2vwkwqeYca6/7IY079paY/bSvamyH3Oajk4ov4vfX+amuTKeOyvRuZLANwETzK/fdvz/RW5HOc5z/1PJMElkyzplwGOYz5pK4sBc3Pls7OHDs2qgw/9kB+eOzfpJQMaGha5FvvJWfcaYAUyk0zAMuMEE/GnfyupEevLUrWxZgSAOFPBLrFAPV4ykEKKTQ/I5phjOfiYj1Wwaaaxw0nGdPez3zIs3wlv2f3Thv1FL5u+3D9LutlPlrVXPeb/Lcssp7PUHXXBecpSwRKAiCBAAuDD/R9hxKbyjJWXJ14ABMfPQPpncAT4uyvVxJ27d637bww89n/CQHpSwgclXDx0dhret+5/hxlvFe9b919cvBpnjdZdRhn1GC03V2Rto8aYsfcQEgBjp+dOawjISwZUV/vIq6xLDUgiydNI0aK1ONO/gHH/qdSW4mJsEFBU1N7ebb/fv183InEuyRRT8iJlgFUCeQb4xk1uypE5zemwE8aFIasBSi/knMppIrsJwYFb2P3P52h/D7mnsNgse9MW2BMA/3B83NGnNBU80dWl1rBkKthz/2NP/4ZChvTT08nI0DYeAXCffJMqoRFjBn8y/qM7wPi4N/Qv7qmhxhv9JzqS1oz9+/ocO+FLduuWEhTeYz+KXBL8Mqw73Omks4ceMBxdVhZ9VqY/Fi3hkNEAd2jYGW4eaPZmBsgkMLBOZcAlKqSOYcIywDKjLJ70ryyffOv22+yLPloNmO3utn/if1KYywqgjz4xs/EfQffKRjxEwwJu0W/VhC5zuRWoNt//BFyaYWCAb/3bgT/xb+eH0l7jt8HPwrXkpG+9ff3n3qbVHi3riFqJLIa75fhQ9acrCEhL8zRAMWHE86BRBKCffhsB3OWueDz29O+WLeYRwLw864usLPvHDh9hn8f+otM88jz2DxEiOpLWhv3FApb6pQHNzRIrb+Qnh5xEsv8009e4pkcbr3JVo9tqMHV11NaybVuctZKqHMYQQ8MMa3vnzj1PAF55RY607ZRrLwP+K+o+93vpteP+YqnNbM4gIy73f2rKsr/3mK/+ZU3tuL192v6VBCAxuM51NQDRh+5XCSU24SEB8P+gtpRjBGeERluZb4vluxj6Oer/wJVs9g1CNgafaj+zg/xsLrk5vParUAMO2Pno8bC/fw14jacAkQLgJY28WcHRHv9/5JebNrFcyHOTb/PwISUlsvXM/g4RuH7dsr/Zgsf+1rVaQgAShe97/2V01Dl/3rD/+fOVbqU38qMqX/E8V/OiHx1D/WOMPeCB3P8rXJEcFe0a0N0/etQ9cMCEgHFC9CENsAIgu3hxbD4ZoFOsmEvrOAv/sfLsP8poCy2ttHbQAeg2FVJYQAExYN6338AGkb01LDZt8oKA/lu34kwF+8ccc3ICNNv5Epf0AdjN7u1sl7MO+BeAYbKHaRyen4Y52MzQVWYmTmQ3vpnDkez5Yg7SK/ZXk9jGNu3UV1jHXC1jxw784LMovcG3Bnwf/h3rHcXFlsaNU97V9dALAti5k0cxy+yKzf4V+4sF4sCZhR+dqOR7xP9s398ki3K8vj6P/QmHRf2W/f1M109K4POIpxDeATtcdedO+tmzO365ft+Vfcdrjh8PHdcdW41o/xQWn8se8/2VzJRXe3fz3f4t/31nVW5t7WYNOh854qMb+utttdQOu8NDjhEAzTCKTAbU1BA/NmywtuAfK+37K6l0jnPNNPfQk056NdVibfnI8aV/t1r3P3J6uqjfaoDCWPV0/6ngW/jHLSwcptwpue0qoHx/OQFnOdtJp2RbnaeOuhpqeAIOEYkRGDZ6z4xl+Q6GPsZkgMnOOWRSvXDIphks+8szMF+hr+oheRmDM3/cB/v70IDfAUNPTSpYAoDnOkgAorn/upuP6MYawCOc95Zk/0b/L4EIPfFgHvt3dpZT7uV+8YEkN5E18w7eM9L1k5OlP/ZrS//vjoqKmrIDDcXP1pC1SmddhP1d3Jn8mfGS8f6S/l9X8sef3/Kz5eV527eW7K2sLDHNayMrBDsQZDv8xdGLX2qANaeoyCU+JCVZW/CPZaJ1wUdvprQEUo6/xsc0SiYfGdjP/j3sETmKuONJ/1rfX/EfEXDLyx2rATk5bW2D/lPBp/CJJpnXk6Y+nRrdPdqzuUfccZ3rYcLP8Zx9GGG5TyEPz5v7yFQvJ8fOASPHyxOoMWibRZbdn0zyMp4TrPTB/r41IPupSgWPRU8FP+7+W9FYI7yF8C6/B2NdLIpkaCQa/tGyBj489lcdpZHmsX8uSyQbEz4E1DAJDVjMzl7u77/8K/8nP/9sbe2OsbEcBV4vv2zpa4WxyW4Woo/M0czNPZu/0/7vfzG7qrSgYItchm3bTAqooYHSUlYCG9loNcBaa0dr5KviQqH4Dr4R1VtKCo6Dq//oH7IYm6zwhSxyYGSCiX7673HvBjfEj4DI8ShHrYMcT/pX9Gfcf7dCWx6F++UQkGRg9tKg/1TwW/jBFVlkZ5o+Pj32v8b6d/dn7c7amrRVYzIa/FHnOcIR23/8o3yIP/Kz/JHfjoVlf20rsM/5W7LFsr8sx9sfU1jmxBedPi1Qo/Y0oLkZr/1ECoCaqHX/Tfo3Pd1Qv/3BGqF/G40XshuzeQOcKLe3cqXmdnR0eLlfwGP/nez02aqSEvuOjO1wwAoAnZ189lnf6aMff+yKtTT8K3vmmWXViYsPnPTeZrcAM+GZ8e7x/u7+v0qHCO5W0ecmulSdDg+7L7xgnyCOv5/luXmHnP+XEG5qGvQSwipv/D1EJiGZtJ9ky8epBezvCYB9UyZQTrnIUe6/BEAOsnyNuNK/bq2NAJyFzdsGBtKAS5fsL/wIwCWWQGolJ89OnD0Lf5yWGnBdw8O9va//yut5bXn57flbDm+pKq6qoWYve2N5wGnMGM/A6ci5vk69a1g+MgKwQUAO3v5lt2oHi6+FBkQKgNeEIlPB9tHPx0f/U1PX9NVaDbDN/7BejHd5YsJjfzUrkb6X+/VB/WsjAPMaMDPjNjc7GzYwOcl5R93SCoD0+8CBlT/twlWM7J2ZYcamAZQHrqAio/vMpe6PGBiQPjm6moICrxm5xAW5lp4A/IAfnDvn2lGgrCx3717igS7Q2qT3afm4YTdR3pWv9lRCiXrVDnbI8dc/de3xpH8JUzlVaWcATC2kpU05Ng8crqgI3b1rf7QCqeCTwNG/T+VP2JPNzXH/PmfPnv+VN3e35RU+yKuZKX711YrMzHT84QqP4mELY2EeggOjdq4vMxPJ2VcMy98l++6jQ0AapND+MDlXsPfRmR/ZdnxNX/naaEDkjK6OjsdTwbPMLv78D6ypAMSrAQ4+4LH/zZsKWD32Fwv4jyWT1uolSeJ7KZi18atXpQFif5l2686uIKoiP0aBgkeRmvSgn/6OL74wQ85lZSYXLHpeof5ykIPeE0GfT34emRAuww+qowlAWhq5xtKQ6d+xcSO/BpKJgIPjLZZSRFE55ZIxWfyzf8veKhP7h6j8VfLsqRbQUqXVgP929+5fnvf5tGMluuURqARcabxu9Oxs//f/ykcfdYbDZGSQm4sCP584tXCAa+z/MmZpHoYwGeA/n625XpeQWUyBYX+1BLH/fXJOWSnFyczkxRc5ciSBb3pwYpv678ZxQie+VLAEAFF/ZCrYc/9VpY+8QWINsSfi0+rNvWhpWfS5zzLKolH/H4WTcGxtBGAhiebnu8eOORKAyUlZ7507VgNsHCD6FRLm64iPppnuoquFlg46uHXL+JxdXVYA4j+zbQKRCeEbD254yYDsg2T4Y+mFMKqZxsk0MJZGcnLs3MhPQXJkd/WWSyykMN75GV6/hcpTlR0YW8Bp3j+noZKcCrFyW9uYj1SwD9Qt+CSxHBigX6KfeuFCODfXlQDI6upiFoBBxn6A8Br8WhhE7P8uOfB7oQUL/gUMAl+Q8wV/BX4DBpw4sfR5nQT0yuiTwLW179tRT5HhD/aP9St7HGvxpIKHOzuxDaKnh8LChe6/hGK9zadfeQ3o7/fYX+SpgVnL/voQbbJYWZS0c9JaVo1o/tgxFcDGAe3t9z/7zAqA2ebkkLCXwdmHUoopzicf742gw8OsKDazOXJ22PXrPVlZTna2GQ560T9LLxCAxnTwLCb8yIKPK4yxMS9yT0/fdGnTJf7XJfgr0d94lo19q/0tZq/iIxUcSyNwa2sddSTZwMDMmTN6eWJeHlYDSkvdJd3mFh7F7Cxzc+wtc/dyEX72ND87Q1L5/W9x9k3K6ikDOrWfn/+56Q19yXkv0vYtyl6lzIEi7HsHEsH7MYQCqaTKD1AsaF8DJaEbYQR/GGXUvlYPML4KabIYHnaI1ACvQQwUJln3X1syM22YYMd/vuIa4LH/vXty+R957tNdXvtJWuOq2bHDCoC2WgT46tVBbyBIr88MhRLn6CSRFCJk3wpn3uY4NcXMjGxln0yqoMJqwHwyYMpmg7M2cIAno4HFsCstgv3T1uuAcET6t6L6Nx6vhE/haPS26UI3vA2VD7j6q+/4TAXHUM6GBgmAtZ6WlvPnDfvn5cmcZY+lVVYqp+/W1wODsssMNf3FHX90RzY/nkO6Pe0XMPiAgZ8lZ7I9548fzsZSFZnGbHyzHpFFlswmflRTffT10CO/Xp1lSfbXX+rv1doB+/yz3KA4nwf1mlPb/qS2lAWj/zYIXp8asPh8vr8JjbADn7h0ybK/PkibPfbXwyYxeA9JrCGsKtbVWQHQVhqg12d6CeHnn1+5E/mIVSeZnGJqllk7IdB7rH4FR4GEfezzgoAzs2e+TAYkZR3fmJ2UtDW2FMcfN2Zwfr0mBT0fnl8RTx4xT4BGd4pcDIqgUvYOxcX/6cGDWFLBPsrppqU5ERpw/XqfBMDash/Q2rbNLSmx76wffNc+BfS7c04eMY978k0MGGhm8Jr215U0lZhHgHgVcrHsb7brFKqPQgqLKMokU5zeQYc49za3a6ld8hVb+stOOu0b13UEbWOIACBybUe1o4e2Rd29m9K+fcHzP+sE7tJh1xGE/dC4vFzawuc+3QM11MQWOyatC208ciQyDohMCB88iB/E/3YO+zI40QAgSjb+WEYGq4PIV0Rc7XfOnevLygplp6RkQw5x4OC6fDCks9NL/xYW/tiXT3jyoyU+AuOKa9hJYQ8etPtIBcc+DulpwPe/f+GC6w0E7dq1vAZmW62dAqZt0nRado55BCgDbx0Ya527c3fnuHYSQA6W/Y2tX5RSWkGF+LWJJlH/da7rswj9CZmhbrqbaW6h5Ra3AP29jqDjxD8rWM1APNjd2Xm/M6Nze6e6UuRa8uub/Z0oO2U+IHr02H9gYAc7Gtyoz306+ELSmj8PZhlAyQArALLJTz+NfDBU/XDl4RAJ9f7LXL7JTRtO2teBUli4OnKHeCIyIXz7dkpWVkp2YSgbXoENy3lMo6+v78aNG8PDw+np6dXV1eXl5YnXAN/uv/eiB389R39q7dKltrawj1RwrKiv94KAyfOCHQgy26KiZfd0bwpYNiU5To6IHgMePsR+NTm+IXISgAs/aYMA1i+2YmbJ7WSn2Pw+9y9xSRJpl1ErppgFuMc9zRs/xzl1KzvrTb/VEXSc+CcE6L7Q1dVz/37Pg5zume715/4vl/1907XH/jduqF15T/6kkRb9NOsuAojCbSkpkQnhgcuXI+OAePy+URjDYizy7PaRhjHG1KBF/Re5eJ7zIhn7ICrV1fasK6kBEd5uCSURCeGSCxceZr/8zWzIgiO+b+GDBw/ef//9ixcv9vb2bt68ua6u7vnnn9+xY8eKNFJ3pdO/yckepUfJjrkLEtxmSrBRjNmbNyUiPlLBMY7MRSYDutrarAbIXnuNpKTlOXmieBsE5Ni5vk42Lp4wDAxg2V/asMG1Wm/Zn3TWL/LJ381u3QF1ljOcUU8R+08zrfoSs8uvzyIriSTtUZO2a2tLJM5yVhGDfX3IXvbWUmszyfFrABdm+nt7+76Eide96GA9oA/6wW580bKDkIdFHlFw44aX+6WPhv4Gy/7lpEP/cqg/L/Jj0jqaFJKVFRkHdLS0RMYBMcd2p7DotR9x8OBNBBNFXeWqmixiqcOHjZ+5Zw8FBauaEtrFLu8VER/wwbvvvv0uy8O1a9c+++yzd99999atWyUlJWNjWmEwd9u2bRs2bFh5jY4//bvNuv9ORobvJyTm14nk5k17GCsAK39DRCIRGtDcPOoNBB096l80I8d52GmJfj4CGBhw7H7r+8u8Kv6f8APWO5S76qZbbVUOmrwlyYA+y9NXx7HvzZYAqEPZl+tp9P8LvrjBDeAoRxUoiK10hJWaFZx0mf/TLxhQtRu7V81+HcDSTBec8s/+rzseLf9uFsPAgMf+Ysj6U/WG/ck6wFmM4eAT+z0BsCdLSkQO0L9nXFQUGQe0tNy17C97+eUY1+c5FYX9rQCMM25fdzPGGMXFZjTgyBHT6UUHq4/Ip0IVLLNMyP25d+/elStXXNeVBlRWVnZ3dw8NDUkGVly44hr/keG5/8tZ4q6sDPubvDx1dT+p4NjLtm2bupk1JaIiB4J27PAf0WPdfxsBWHtMGEofewuQg/CqyzpHGmmi8jBh+1nekl1Co4IKxQcZZFgBGGVUHpVuuT5vZrN9sdIJTmi7gQ3xu4ieBnzrSv/rL/ZP1U3zzXU2/nPKY39/zCz29xBNAK5f59Ilw/4dHaUvlx44ldfAhQNcWOaATz3sBxYKwNprQKTKe3GAthcu9NpRIJmmSsaAX9Vx/uuv8l+jv1J582YKSigtNRQgx//AASMAycmrUtRHXd1kkiMTwuo2y3x1eXIoFNLgj3IAjuOkpaWlpKQkRRuzSHwoEDFnJyfHSwAss615QUB/f+ypYH+IDALGmpqsBngy4Ace+yfNpFpPX8z42Fd7yLZfPXXvZiii6HmeTyVVF7+FLXLwdTc0fCrjUaiAGpGxL1ZqoEHKoZ+s7Auib9/u/N4/7fRe/WZUdX0g/G74Xf47Mj846PhayUPtpqvLyAB0vtv5n5EtF2VQv4o5gJ8kOlLs175RW2sjAEDbs7Dpoo0D5J2v6InF/qmpZGSYAaaSEtOMamp09kSVE/t4nI0DJplcboxcUVGxe/duufxdXV3y+pUD2Lp1q/TA/0X7v+I34J3lNgPrsae2aa9q2mZV/BOe46WCdV/27pVCt80fcmREqh3/bbGlihDljRutBugEOulduNBD7nmbDPDVFCzFpwzyDTZKtXRzI5ebzcrScZxULwLwU8UxNKm9slXUgFd5tZBCla6W2g46euiRB6PuOstsEklppKlo+oMKKrazXeOc9dRrPx7iK2J5OZbwf7IAeqGKhLv//nuTDzgyx+85XmXFkRSnF+L9phFiePW1wX+Dby8YBJYbPjtLWRnh8DSchXTY1GLiAPnoHuI6sRUA9Uv7Fhi7KHl0xHu66OPd6ifqP3nkSQPwC1tJB8bHx/Py8gYHBzdt2lRTU3No8cWMGuO7Yu9GGXzbZ/XY9G+drN26OKpd0bhPOJFhv7Iy0unJyVlohzZsJmBFb4uHwkITgKpJSAPgIuRC3gPJwMInkhsXFYDiQRqH2MCGUkojlmRS2VUCRkdzwLD/Rjb6rOJGloM9skSMBanRyv3vpLOX3hFG1HTnmFOhFB9kkSXlU/GrqdZn/Hcq35mA56tANgdbZVmJFQD/vckvFmpAY0LYX0iKfczX8fGqmhT7RUwQl8kdm54GhsDEAZAuC7M1tEInlgD4GOpZuXKGIcRiqKNuD3ummV5ms3GeffZZ8f7o6GhqaqrWM/B70bHfGVsGH9WT3M63LF1PeS6wz7bmLIwId+60LaFt3vaxas1v2zaZndIlnIdcKwNhqkJLnHPPoDEGsW9SIgJlZdafycE+/u+7ik8m3vf3AfkrMvuKw1FGIwUgk8xlTvdd3k3aUSWbFwD7IUFY+d6EI/NxjldZJSTFmPdzoqxZ5muvb1gPHYMuLw7AWGHsJ44Jq386+YyhmI5T8CWWe9Gh1a6ekCXqdl/xo++W0D9/0LtQ4eu2xBSVRejVEFyA3Hnb/ORaHYQhGCQaQiHL/jK/COEboTV7UUT8rcY/QhmQAAFIWG9yfNBpKHEC4KNfOqwJbs4LgLYvQQYB1i06wQpAzwq/Cd0bBYIKEoTbNgLAbF8iOgbnbeYJxbLsn008CLBVNi8Am3mK4bC2SCIKBqLs0MQW+aqrNiV4CVyeFwBtXybAukWbJWr/SST/3cGLLEYS1/cjBoJgH1GwlPsPDmRjLId4EGALVMGs2T71cGRreHLXZSGGhzl16l+fOsUPfkBjIydf4qcxcNjClhd44ZExPpenDgECBAgQIIno+N1YL7sX3vLcs+d4roqqOup4mhEgQIAAAZKe50mYeXaO++/yTzD2PLBzhhkXl6ccAQIECBAg6STR8QZfVQQIECBAgKTGryX7BwgQIECApEIWQxZfbQQIECBAgA18fRAgQIAAAQIBCBAgQIAAjuu6fF0RIECAAEEEECBAgAABAgE4DX8YtoDzqL0J/wfmeBxOAi0Z3lit06bAT8N/hB6w6IP/Dr8R8lboFPHDWV2Liln43/AmOFAMfxA+Wt8FibR9ROAm/At4A0IxVIfjw47An4cPeTJGMU3tG6vTSiC+s0cv62H4u9DG0rgH/wiOQwh+E7yDQQf8Q8zOVPi2dsZ0wcv7rcV34LdBJjjwCvxr6E/EiRfiV+G3RlzIv4GBZV9HGvx/8EtfxwhgH9SxSqiZt0KwyIc675xPJwKUwAEisAP2z9vKo3L+0AeIDS5rCZcAwasg1isKoc7YaiAUIQCRqIPOebtFvAjgJJZkUqBBtnBZ7G6M9UAbK4e0eeqXZQbsHyAQgJV3/2Wr6v7nL4iPIjVggqcJwVtvGxYVgE3zGtCj7QreVEv9+2EbMeBt1hJv8/VEgKRTiyQBuoiCN2EDHhpZPsYYe8CDAQZGGBlnfJrpOebsWijppGeRlU9+CSUppBCJXfPsv4dlYHCQe/fo62N0lKkpu4w6GRnk5FBczPz6Wamwc94WojxCA84yj+lp7t7lwQOGhpicZG6OlBQ2b6aoiIoKc4plYmJi4sqVK52dnYAW9tLqvlrikZhhr03FHx9nZoaNG0lPJztbpfa3eN6CRjELP8+jKIbniIbGlWZ/3cTubgYGzK1Uhc/O4jimzlVLKldBAaWlppgR2A4HrAAsLFU17P+Ennt0wydYqAXuY18VVfjDZ5/R3h55tv2k7OdHDpD6SB2cijqo+x0fqulsZGMaaZlk5pJbRJG2+ISPs8f2cvbDRNZRY5Sz3INPHo2x34AO+HTBzhiqy/vlApxqXDQDMMqjeBnyHm2qp3ycdeF5G72f+k8CjBGBVyA38nD+L4U0+AmWi8ZoAuBDA96MbyXPDjpuc1vb+9zvo2+YYQnAFFMurhWATWzKJruAgi1sUT/czvY8e5cyoQ5rfiGaaGri5k3TR0UcIyN4ApCZSV6eYX+7BPy2bZ77nxc99uict3tgjnzjBq2t3L8vShJ5GwGwa36XlFBdze7d1NezHHz00UenT5++desW6Iq2aY3fV199NVlXu1zcvs21a9y5Q1cX/f08fIgnALbU9vK2b/fJG1E0oPhJd/+tFaV+1YkKZSXNarkq3BMAK+fS3fJyVZy5oampQM489R+ATYuWav9+0zC6v0d3H3cQcsiROyL/I4Ol9fv6dT75hNOnwWAz7Of1AzKd3UdvXtCnfxPRYJdZ38xm9YUSSsopr6ZaXQN/8H92nzgEh4GlBMDTgAULJnoaELK/XX512V9GgXl3PUtowMsLCuBPebzz+hIAHxrwChYxiGCa/eNVEgAoaKEA4T/DKfjlK1d+mtghum+i6RrXbnGrjbYuunrpHWLoIQ8jBUAdT52wkEK18q1sraFmL3v3s3/Dvg1Y9i/BF+T1nz3LpUtcvWqoUDQtPz0cRhBNSwDkMJaViQTFLOn792sl9Zq0tBqiIt3TgIGBznPnXHtkEZNOZEnWdc2Rc3ONH7pzp9k/PMxzz+H4IUDp1E25/9KATz/91HXdI0eOpKWlVVZW7hZTLwuffsr581jl6+igt5exMSsAxlNWqcWSujx9NTjI4cPL5A1PA4qiLoDqrqjjL8a/fNnomYrT1kZnpxEAVWykAOhuqtqlu5WV7NhhpKKuTh88378yWqnS0owG9PTQ/V16vqeKOsIRudgi2ROcWDKwVBOQffyxaVy8YKjfHK2iwndVWozAdwkBTxIALzKWY1RJ5Q527GJXHXX6J9Hh/+z+cUi2vLN0wAVoXLDzIjTGdsGGhWMos8e7Ly/nV95ZLfv7/6kPDXgZYrwUUuHkquUA5EyJd/LzXRi31/IpXGmEv0BMuMGNc5xTf2mmWZ/vcMfFBeOPlmSaLrxhg7rz3OTkxMjIxI3hXv2NWrx8HIULnXT2VvYeqTuSU5fDPvxAPVLutOman3/OlSviffXqPLbJjXJwJsOTg+HBzj6J0TV5cfIra/r6tKR6zTPP5GRlER07oPP+/c4zZzrPnr1y/ryOnE+fOCevxjCJAoCRkXBn5/1b5+4byRkYMLSrL0SyPjA0NNTT09Pa2qqBIEBxwIMHDxQEsCycOcOHHxoNuHhR5ZKOKsYRcYhBwrPhgZGBeyP3RsSPMgnD5KRRhYYGVhDuijr+ukG6gypLc7PulDTVjtLkkptOUTLJc+5cOBweDY8O9KnJ3CAnx7j/7e1qAPUDAw1Hj1oBeBKqqmwcIJMzf5nLYn9r8j+IDsv+0ibD/rt26SDGDhwgJjxDCA4RBdNMjzE2wMBFLsrkG+1kp7yoBzw4xKE97CE+nCAEB7EIECSBjV+cnu7Kc7T4xBu1Owk1LBMi/dOcPsvZ85y/whUwbmh1tXGU9UHemyJmx5EAIOobHjbU1NlJa+v4lcEr7bT3JPUM7Rsarxs/UXeiKKWIJaEDXbggEpQGyBEupliO0ja2iQ0lKg7OBBN99N3l7k1uXuu4ltE9WDOSWTO1s2YOnoEcoqOjLuVM5+SZzq4znZfPydeUSm7dKrlUbRkBEF23tYkXxMMDYXGxPG59J4koLGQJqBJSNeKfm5vbpkMYaczLyMgIhUL4x9WrGpMWi6ngqcPhgzwjJ7GCCtGlBGCSSZW6lVZxXHNHs6nrpCSys20iZB2yv+6dkXDdx3PnTNFAZREpl1KaR56GCo0AMBcmPMyw+Fs39NbgrTH9fWdnaV9fw+how9TUgRMnjMg9GZ4A9PSEb96M1IBUUqPVtGV/bXWrLPXLvHP5xz/Bw1Y4zAK4uBKAUUb76e+kU87Tda530KHP2iNh0LcSH2LCP8JDNYEGBALgwfVIYdx3YiiK7y/2/5APz3BGPktKiukme/YYiamoMMSYlRUpAIZD1RM7OuQCq5uJBIaH976XVPcwvy5cVD0Nx6F86aHZ5mZ1Tf1YZKGlKw9zuJZafbYDu+OMq7urIykE0M7BqcGaj2pqZmuyZrOYhWcgn8XQCmfy8s7U1Z3u7Lw8OmoKsm+fGU2RkonqJQCSLvmsKtH0tLhrxFxJTY08cT8CUFFRUVtbK69fvA/oswZ/quSf+sTDh7bUosvk4fHneUmDGOIFKV8BBeJKyZ4cRnGHTSE29zWb2Ki8HOlY/AKwssM+IHdeKmrDOLWGTDIbaJCru4Md8n9VIt1KFcrFlbANMthFl1pXCy3yNm533G4YmW0IZzTMFubPbOQZSOFJSEmxGiAB0LZtpM3TgKMcZQH6+w31W/Z3XSz16wj6RdzjsVWLaoBETgLQQ494X15LFVUXuKBbqZ1TTDk4IUIS+xjP/lXTAJc4EQiAG/fK7d64v0Z+5Ptb9hczyiE7dIj6ehGcfGc5zosOhhg/uqXFKERZmXFS6+o+27dvCqZB2xNQzRPQ3m6GOES+IAY8znFpwGOrV4pKdrNbHUnxgcRAnWfnmZ3MgbVnoJBHcRPOYOx0Xd0XAwPY/PHBg6Sl4UF0KqqfnDQCJvUa6Ow0nCLC8IGsrKzjx4+npKTs0ngCKnjZgQMH8vPz8QkNOok0pT8PHhw4ceToTx194adeOL7juKjBo2SpnUjNxdV90e0Yk8aqru7dIxwmFFqp7uYQN/r7JWNK4UgDVJWie4mZRufrqded0l3bwAYehTRAA1vVVG9hyxd80TDccODDAxJ1ZmAWTkA60WDv3HwyoFtjaIpTvSCgggoegaV+mWoauQB28EdteoW4qoToGGBAXovKmE32x3wsJ0Y9S2GKzQ8rxo377KU83XBjcFMDJPlh/xg0oIkm9RSN/IhuRJTPPMPzz3P8uOHN6M83GsZXh6quFglqa/0z8eOleQHQVlYT9ckf9eGuLnXmMsrk/4rrDfsvgKhfpr40wog6uboQn8LsvD0LxczjmqV+zLbFcXjxRaamzIUthIjUDm3l5DBw9yHj4yau8QcFAaWlpcoEgI5QkJSUxGJ4CUZgeH4bBgOJzd27koHMUGZNeU1ded3h8sOW/SNvl8pbQ41IRJVzffa6odrBQYaHJVzrhf3t4I9Y9sIF6ZN8f7G/JFxbjXdvZCOLIYccfVtOeRFFknZJXcPDBj7ACoDZPrPExCxPAGQPW1psEKAWoq1CDebxxRd4o/9qQd7gT2I8VUVvz/CMtrqzs8w+5OE97ikakEbqOl/hlZU8e/xMunGjMTVja/oM9nOkrZbX7y6zUQYC4LKSuMtdEY1Ccjvu39DA0aNGA559Fj/YvNn88d69aiGeWnyxtACMjRkNEKNBFlnqKk92i0QWROJzmLPm5dibItj/duSwQTRs2IDjGLP/MeYT32PjWxtL/n0Jws9AI/wkC/GtRwVgRDY+PtzTM9LdPez25VVu31KxpaqialPq4hqrChFdGsETJiclZbJ1NM9LEYniGBGtRqhA5KoRPIVxZjRmKYj9v8E3pOi2dIThw3kB0PbHiQpLTPX1XjLg9uBtbyBI0uLNQ7DsLzO32Rv8yc9P5DiFwiCx/yijffR9l++qi0nOlR3ZwQ65MutolCQt7TGzyS5jkTvjQ/wDFgGS/LcJ//Wq+FTjlS202Ai7rs70lMOHn3D/fgFOYWwmYmBk4VCMjQN+Z9QMsDVwcKyxLJy3QYAnAB/Os387/jAwYARISmRELCMjSrDzWdRdWRD2zn6ECBzxBOAxDRgZGdb/a4eGS5iby922I3dLZV40bvZcL+ujichk8fa7/n6nt9dIr33eVKUuLIyBFu1Ylsn/tLTguqIz+xCwpWCfMOzvYQY+8CcAQmkpXjLgvfciB4JKKY188kffc9BQv7HduxM/Sq1qkVLZWTW3uHWDG9qqx/kRADdmVX8WTsJ/jUsA7AerAVYMVpf9Aw3wUVtJ7krXvtwTRQBttLXSap8qqqkxud9QKP6O0AZTRENyMtZgmOF++u9z33Pz/eISzDGPD+AMdPqfgyXuam/HDBAfKKe4WDzo8znfIfg+kXgeWCgAhRjzMA4jjA2/NjYyMibhkQBUVOSWluZg8TcfP9VDHk4wMckkQmam0af09Lie07961RFr68PICNPTRlykfKLNbdsk+8uTgYcPuXvXVF9rK6ARvJ3slMNr5Sp2nIZZ/MAKgLWRq1cjNeCLpg2W/U1kUl6+cPAnwaihRnlgOf6ifvUydTfpgW7uJjatrtf/i1CML4RCYnm1LjkE2noRgD6o1cnszkTkewMNcBP7LqAHPBDzdtHl4ooNKiqU8hUhxNwgre/RuHTTE6PpfNnZdtaxeogdw62nPoss/OMK4EUA3X6lqQ37CH5zM/aZdCN9VVX+J3oMwg+isL/w91gE6bLiseLiMZAJOZBrtsLNxSdj6+700WcnT8lVV3XFMjRsa+nCdxw7KdpOfJuask+XGopUNrunxwzklZUtQ07u36ezk9lZOfLyZ6uoqqaa+PEpvuA4kU8EtfS3lDglJW5JSU9J8+X9Nv0rXrPUb3NTa/WQShllqp9SSlVRI4yor+m2SrgWVpfL2mHLFtMM8vKorKSoyIu07E51De1cXfYPNMBdi5fByfUWxfTQY2eViWfUEhKB9HQ53WIfaY58ybOcVR5qjDGxntzJcsptLO8f/tlfjuH580YAPvmE9r5NPHfUPvFq6XUB2omCQRghxPIwNm9CrrHFIMdfLu0lLt3ghhxG9j7Pjh3qhDFyxFn45LxmHqRdvFg6c116l7LF8H9/P61X2l2RpSTh4UPpgVhSwuz3+Z++PpGvzVXYHGyCu4ZN7To2IfzDHyoTYC6jqaTpUvGlS8W9vXDMUL8r9lftRYGTkMH3IopUS/nkSwDU3dTpBhjwBGBdZHUOHTLhuJqBjaMsDh60O0UK2rmK7B9ogLtGbwNVixxmeIghQNQgXzM/P1FOiR1vamsTjwxPDv+AH8gzUpgsX1JOkwRAW9kKMsvEBGfPcu6c8f21vTFSzIsHOXaMo0YDSATGYHReAP4F/PNODFzuubgzzIj6Bxm8x70WWi5w4Vz6Ofaf4MgRt77eDGHHgHNwGj76YN/tM2/U91RWmvubkkI4bGjz+nVTIf3yltXP8/JMfasq/GBkhKEhmX2wJ5dcsdsadIr6evdLAQh3d6c2N1/pvVJyu6TlWklzc8mt6uptPgZ/7Cmc1WR/W0VZZMnsgKc63SijLMAo/jHqh/0zl9wROSQrDVg48UI748JF778B/Df0xAnAOOMPeSgDM9aXkWFdwISguhp10cFBpqfFx9MDZgL9da7beNnTgEoqNX66ne0ppBAHdBJNVzp92lCeIoC+gl28etD4OGrix4+TIERGAO4/ARdrEy7vzDI7yaRoVYNyrQWtP1c2VbLtxQ0KTXSFUqnYnsM7Lev8S8Mff+MbfV++d8fEeaEQdg6Ejfa+8x3mmpt1OxTvi1J9pfvGx42p4YAGiTPIkK1Jp7ADQZe7u/9qT89fLLxa8hdLejpKfmdGxuUDB4oPHNikb30kTtxVdnnSSZelkWZ7nGRexgK8hU/0wltLsv+PL8L3v41E4xTCp8Z8IGD/d+CNhArAFFOyaaZtKsja45iN9q/o2Bj53+gQr83MGMYpKKClBb1gp79fzq8sk0wJgMRAAqBguZZa+6IIYsXlyxoFwWrAVN1Bkb6I1ZgYNtHsPwfuc+A+YuFZfkECIPew5yd7/njJz/y85hpUVW2tqdm1b19qrCm4wT/J9RdKX3zx548de66hwYZ3jqe/jiPytPnwCSMI9++bf1dWsiTUaqyBhFmWSiprAbWc9v37L3V3X+rpyfje9y53Xu5r+mH6c0eL9+8p3r/3RFXVepicmkyyNUBxnrVY31PWC6c86o/O/hZrLgBv8QkyHwjY/9vQmNAIYI45F1fmPRdv7ckN8x0I80S8CMVY/DqeCHWKl14yA09lZXY4yNBQZyddXaNDQ4oGZEUUyf1vpbWbbgXOMb9NRQfW4T7/nKmtNXaqm5Gf0lISgctQHyEA7lEWgZM8s7G+OTROxif5P//fPy7cUlheXr4j27wy7TCHJYcsH8dzOFGrV51qVocq+/FhD2X7y80DUEZysXPNhoZ8CYDrMjdntmBbjYPDWiAc5vKdvZfvdF++3eP+i9Pf+M7xX5P8nd+4/3LxgWKZ96q49QM3usp8lyUQCocb//t3//t/58l4lnWDvfdgLzGgJRvOf53YPxUaEz0EZLuubMGj+UuEpu/AJFHwEhZ+BMAbyZU7KvffvvBAAiBXVBpgXzXXPWae9eukc5hhXV0aaTXUsHzI6ZLDOjaGEZvaWk6coKSEBGEL/Bv4hfk+7pzF/Qc8ihBzjeYKHz5kYKCv85/33bx59WJL1m52q/gT7sSLvBhDOuS4tSSx/yJZtpwcOwXCG9XxOx1arcZOTZAM6KZYYw3gTfjaf/v2qzv37Szt2l3a1TX5z85f/lOXi5OL7SRhtZm1XQXT8/ptNOBN71g2fiQEL74Nb4DD04BGYNeyNeAGtADnvzbs70BobXIAdtRH8fskk+Ewk5PGRAqP4BcWf8h4ZgV9j8xM9u0z9uCBqN+anHa7ZIr6dxtt6j/ppBdQUEGF/y4dmdCyNmWfdxb5JQ4FsAVKIAuGMXD+GO5dIlevEJdiJaq3l7t3uXqVz/OHT5/+ZIyxjc7GLLI8AfDPUn8b/jSkRp9Ua83qv67AmP/aDIUkGGHCajUyVhjOkkVtb7eve3O0VTOu3Vdb1VVV1rXP7epyytrM5ADXCMAxjvk/z2poQOS4v5quupuMGHDStqWXIuO4dS8Ay9SAG8YEtdwg67vqApBBhjV14NFRZCMjFBYuETeo9/+4HWZ0oRVOyTqVyH076hgo0/hDcbGxhgbDgurfN25QXi550OD9Pe5d5aodDlpsyliKTwFAAiBTH0woSqwGWAGwqFj4KWKhhJISQ83DwzQ1N+WRJ9nbyU4V3xc3RiCLlYd9YEBb0ZpajWyEEd25RK5PPDnpuf8mbDrqmvm++/btK+2alPegGjQPhjpqTMaqqFrD1fCHGLIP/9j5zzL1uDj4NB9eejqelqyO/OQPN75uz/w4aykA2WTbx/j66BscpL/fEO/27U96JreGmh/jx6aZjihJJ5wCGqOsWPcMfAhzy0zu2eUIjKvuugwN0dRk50b10rt45/AhAN80ApBiBCDRsOyv7XU/PCP2V4air4+bN2luxi7PqbDICoDFWg5rZGXJdGt0iQMM9NOvmyJ9In5ULSOrb+3OHSqprKfeWG09nRM2ghxvarKTA+w0hRChtaq0HnpUP6olQFqu7iYjBmz2LitzfT8xH389OgH7J0IA8sm3E3lucMOb3Tk9TXJyVA2opVZdfdadBYt7kWnik4u54idgBj5m+VBPOXIEXdm1axIAuVFyNhVQxyYAP5oCsnSsAKxRBJAO4376R34+RUXk5RmPsXfE0IccSSzWXAN0WZLnwkIJlCRZdKv4bJLJeJ8FKoJj+IFdz8eamN2yv2wTm9i3zyaQtL3Tf8dqgATgCEdYC6h+rHgPMgjoSuy8MOLG060B65/9Xdda5IsjEzrykwAB2MKWUkrLKVdMOjY+Zl/ucusWu3YtuHsRg44bXJs69tscn4FZjH0SG9fYZGVy8ty0GaWOkm/8Jk/EcyH4fwKwJv2gZGpqS2trSXv77YkJtmzh8OEl+od0yr6Ja2RkMkxYtvID6rFBXnVJCaWl0tXwVLiNNvtKwTrqiBmb4Rgc9TWhz77tRzY+zlHM4I9dVMfGjlYDjL3/vicA2lZQkXjVbKFFAZx915Z9rFndbTObE8CnT6cGOKwTqMPJ7LPOKdZWlv2dtReAJJKqqLIzreROacDh+nW2bjVdW5Tr3T2fIjYFISBKBGDt8zik2N6FZJKJASkQkq2RAPTJaS35vLWktVUacHt0VP6qhtDt9F4n2sCn5M6ag2ONdQKJUkUFlZWmrbS03OLWda5XU11GWQ45xIBkOGaNJeGt8+UN/lhjHlYArD28ccNbM0Cm9pNIsrVrn13jmiJsQKGzVMp7MjXQgPXL/mNjcrtQR52edhzvnXgJ8P0TKwCCqL+GGjkp8uO6u4euXDEdJTtbD8pbxfN7967DNTywCRqwINsGAfMacBED+xIICgt58mwd+8oB3YyZmSyyMsmUEQP2G+NvkGi0GqONLa1b5lq3XGjd8lFbaHY2LNd+505qa+3Ei532Eh+ba9Xba5eBQfGZWmA66awfVFfbl3koYOyb7WuiSSQr9n+e5/0MBPXTr5S+4kh57iqapX6OLi0Ara3e254XDP54cJxIDbg9dttLBhzmcMLIVn3KrrCts0vHxf672V1LrZRyxfnUBeep1wCH9YPOTrq76euzg7G5uYYSHWcF2d9ZLwKgTruHPTa/+h7vXbhAVpao3ziehw6p5N7lRi3NHbgG1+GPY0EFNBjzQN58HDBrjCti/+9/nxs32LaNhgYOHoy6TndLi6RC3diOn9qXasU0D2Cmvb19YmIiMzOzsrKSBOCKx/5mm9KaUt5aXjlWeYkqOYYqukom7RN7zePSYwua377N3btyQaiiWKW2mcP1gpISM1Bo5+5dvHiRi9lki/pd3EMcyiPvyWsQfc7nIkf54+OMP3/o+dCxkB/2n5gQ70cZ/Fm4ZoCnAWfORGaDFaastgY85KG8fumUyvgJn6hzqd0e5KCEai97iRMLeuS6hP9rdlhvUNtS51SAqe4HW7ao6chTTQj7J14ABLXLHnrkaavhfjb32enTYn9VgjxQ9XGRlGRgkcHkcNgubsiNeQGwOAAN8xaJIm8sSGhuviov7ld/1fRf+2rJ3bt1pse7+xdfmBc4NDXpfsgLVuxcSeVyOzDoDP1nzpy5fv366OhoXl7e3r17n3322VAoxKribY/9zVbQ9cv7U8glAVDJxFE5OSQlLfI2CsVhZ8+K5kzyW9CvVHDfk4ETFWvX1YleTSsZHlY7OM1pF1eE3kef/Nwqqh6TAX1rV/mX73+BC9IABXPJe5KTjiW9cOyFDcc2kOZz2pfigCiDP7DoQNBoW1tkMmC587AG/e3zFoWXwikj0kyziqk4wFstWRqwYjdxQY90wXn6RoQc1haTk6YBp6YaP99xTNz94IGhnXPnaG5Wy0lONrFuZSXl5cSCe95//XW9soiPCRMAReJqnRNMzDCzkY2fT37+3nszAwPcu4eyAhUVFBWZCCg9XWwlbRD1O6Oj9PS4nZ3GBTSZgx7uQi40RNgOHkepHQtqbp5tapprarqufizq15lU6XJ3y8p0G8zNcF3pj9l565a6u7hQ/6znmV3s2sGOGEZC5KF++OGHn376aV9fn96vMDQ0lJGRcfTo0UQIwAAexD52tE0E0dTf9OmnJuwZGzM+dEmJqV7XNf/s7JTeoVBMfzA4iHxGhWj6YTnlsJ5Gj9UmFCSqKagXue5Ua+v7vD/AwD3u3eCGdFrEJ4oX284xN8WUyLGXXpVd317hijIHodra5OP3ko51JR+9/2xu6ZKDP9b3jzL4swChUKQG3Jy66QmAiJjlIBf+DZF4AKcWvuNhmmm7AGQnndI55UX0T4m3TneMY9IAXe2qOteu+zRqwNphZoYf/AAF4xrgz8lRbxS1iZGMV2tpB7UwOcEarZUTHPvb8G7K/LD/tkdY/48kTADsQNCzPCslSCMtm+wmmi5fvqcuJ/UrLTXhT1YWaWlWACST6vWqKOf+fdrb70gnHM6bVd0p89z/aNVV0c+J5s2zzVs2NO9OY+zS6CX3gw90FJ1JsZa5DVYA5P7buWDygUdG1IU0enuAAzFE0PL6Ozo6rl279vHHH4OilrsKAvbs2bPqAnCehVAtiY366Zfc3mq9pVJK5kT3BQWmeq3wdXerBcr/MBUgV1rc0UDDPvatL/ffYts202dcl5QUNm8WN4vZW2lVrLOFLXnkKW7zBGCMMRVc5CgJnNK+/YfChw+fOXYs6fjx5NLSJDj2xKDcc/9VaQsGf6Jg61ZPA+TTRWaDl+uJ/y54BYv70V7cKQFQGSWB97kfJiz9s2M+dsFkbRPAqq7Lc0RFgHrohh6YA3Uw09N+4RfkfKn1SgAMtQ0MyCPTfhviHjnCgQPs3UuMOLUc9pexRgJg5wS8zMtZZBVSKGezhZY7I3cuXepQl7Prd4mhVEWua99YoIoyYrCJut1UbuMnRFViN7X4/RTzBDRR3VS9oWlD2qBRGnVIOUp32u7Q1mZOIKcyFDLnmJw0J5ieLqJoNwfFgHbB8RieNJ/9EtPT0xigNICGoLRnbm5uw4YNJBYiBXHBJJPS2s1svvbg2g8eTFy5Iv/CEz4bFBlJPsEucZxKLQ3QTWF9QmN3ipMzMkz0VlYmNRttbb0yqzJdCRGSe+4JwEMezjJLUpIR+9pa9Sr1rbEjR85UVCRDEiQT1TP3nvtsa/Mx+BNlIGikq8sOBFlTsMty8EOEsP1vNKSQoh4kr1/6V0WVAlaFrRJvfSZR+Aj+GYsjwE9Dj9UAWTjcHQ4PhsMY1xD7bivvOeeaGuNiyEuUZWURGyY/mfyE/4rsyQjBNpZE0mqHW/LXXuAF23ZrqGmjrZPOHnoGRwdHBcLqwA6OunQW6eVslounjiS1kMdnV4VdgqduQ7OxquYqT2nUSXQiOU0DEwMPJx5OM6ZTiOizqNHB1dt1JepCCgJiSv9KU7KLioqqq6vl9ff29ioDXFVVpT3+2L8i6mGNxQKVV+wvZlTp9Pkud/t6+oZ7xvqYBlTwYjbXU1RBhb6V/yjxe+LgT3L0L/x+k0x82LHDrltJVZX6jYIs7t+XiIVHR8MmPpgzXSs1m4wy+2dUVuondvkBeRZDcMYKgNl6pP6TkevP2+c+Cy6ZvdIV6aId/PH7mikJgER1drYFimktxoQCC11yHTw6Usz34SUeqk4jTbquhmqnHUgJ1Hp9phx+cqmT+8Ib8A4JgI8Ljv0YL63Sia0AeBowOSnr3TI59IIJMaen5REaLzQnh9JSBbcmOdfQIDGI4VLsdawwkuKcz+OfoZSotEPV4uVeeocYGmMsHCEAtqHLS5WHXkqpBEMfeDLC0GSMZnDRb1/kRSmHfc9BN92DDI4zPs20TqFOruNbhVCYv5vd8WUr6zTuLyWwSeD6+vq9foO6kyyGHPtFrFCJxBGqNI0U2xEhece24HIhLYOUUWYXQlBVxHCFaXDS308y4OSKzA1+8UW2bxdbm9xRdzeDg4yN2QEiEzmGQnak1SSUysrUvSJXH+2FM48LQKO3/ryoP+MSb16GSWzKSq6G/8UhpEm6GAUo1r+7DMVQQrNNCfibTZ7sfcl/X/zvbL+QfmeSmUuuuoMcKZaDRh8n94X/xh+AB98mBiT2gv/bon/34mqe2Hb7KasBU1M9h6b6qqZGRowAzMzgOEYAsrIM6VdWmoazlJfY6P864kdSTNM6HZYPB0caIJtgoo++YYbFUJ4AJJNsG7pIvIACfKJ53u7ioZJK2QgjVmZ0Ok8AdHzrSRE35PKnp6fX1taOj49v3rx5+/btehg05kaevRJ3N4ssBZeKbB7wwD5/ZV8XLAFQwfPIEzc5OLFdYVr0K3wbvhnxZcbKtlQxu2xykp4ehoYMeU9NiXaNAKSkGAHIzqagYNE38d2fjwN+z6MqlXSZH78MsjYsrEyyLBw7Znw51wWG4DKUQLEx18FZQktJ8SmREgA7rBQbTvo/uQ8UhyGEHyTggv0f4KWEnDgFymT7ptg3NTFhBGBiQgJg6D4UUlCKX3rgpP/riB9Jyx/XcYgP8vTlg8uIE90RArAA9hWJrCYKvwTLxhEfu+Kq3rhXLPkmj2Kjdvn7SYo+rd48YdkycRfO4CGEcJvQJZBdJk5ETuS/7gkA7MdDNMIMLVJ/LiuOkP+9sWNdXXAoyq6E1dSULC1Nhn/4KkICBMCHBjisHzTPj/+MEA0BAtwhAg/h8rxNsrKwA0GexZ5WC/AUY8oaTwmSWICwE37oPmQR5LF+cGPe979KgAB+cWne2llxDDyqAQQa8HXE9NMtABo+/piP+53+9d4Qm+YtQAD/eMYYf5UY4LJyyITfaiwGrMPTu+v8gr9hjP+QmLO+Zox/t77umH8BaKX1Ez65xCUceMg83k3szfeBN419dfC6Mf49FuuutjfCr5P5y4X9Rtk6LUckAgQIkMTzRMK+HP8aM/eBH8WC55/nq4YAAQIECATgJAuww9hXHAECBAgQCEBjwP5fTwQIECAQgEIeRSFfAwQIECBAgA18fRAgQIAAAQIBCBAgQIAAjuu6fE0QIECAAAGCCCBAgAABAmxwwL+9CP8Cenkczhrb47gOfwdOrNyRnZWwZ+DvQktMa8CdhN8G3yGR8FHyDfC6KRUXWZ9wlml74C/DVVYUw/Dv4UfAgZ3w5+AyfjAL/xveBAeK4Q/CR8SJhHVFZ40sOn4Rvg2pkAW/A74Hq3oTnAUWRAAJQ5UxKiGN9YJ0qJq3SHTzNOPgvB1gfcJleUgyxsaoHTpAAB9wWEsEApAKlZZt15Mm2UsK8Qh+BT6DMZ5CVEcIwFcFSdae6p4dIECQA6iytv6CEhYIgOxX4QtixzRcIrHIiWD/bNYz3PgFIAgFnnYE7n/sawLfvUtnJwMDTE7OL3D8IhRg0UjsePCAnh4GBzFrA4fNwe06fxkZ5ORQWEhx8XIHyz0UQyXfqWS0BO4nJVFezqFDJB7nztHRsWVmxggAWUW8jodGhFR4B9qhzWzZEykS34fXTj1arkz4BkLjp3AMA27BF3AV9rM0bt682dnZqcUstaJ9SkqKlrQsLS3Vcmb4QB99t7k9zTR47J/O1gYi8CyxYGBg4MGDB9pqfc3JyUmtsO84ji5Pa65lZWXl5+eXlJSkpqYSK9xovfLhQ9ra6O5mZITpaTW/jZmZSYWFSWVl5OX56OXuo60vGoYXDDnvhPqIhhDlALPw8zyKYniOaGhkRTDOeAcdPfQMMxwmPMdcCikZZOSRV0ppAQWsHFTrugNigqEhwwGCt4JuZSWx4tSiKYBJIpFFRGdsXKk74BA/1P7b29vVI9RP1R1c11Vf0LKDBQUF5eXl+pAoAdA9uXCBq1dpb6evj/FxXBdeiLfNSUhu3aK1lXv3zJ2XtEgAtNMKgPq5BCA31y70SlUVO3aoUcRw36vMj9+u4vz9lBTsgr0J1oDPPuOHP6S5uWp6upJDlXxzYdX9GFTCF/Ar0D6vAbshv8Xs5bVGODlftEz7G97CfEflfUos9dvtn+EJkNT2nD9//urVq2pbotqpqSm1Kq1mrBXtd+/effDgQTWvJ7UFht7n/c/5fJLJL6k/jYOv0mAJ//+n7jzAokizd38KUERUGhHMNJKlQR1QEAzj5GfdnHdvjk+8Oeecc8453/vf8E8zOzlgwKwgTZLUKCCSJEuy7s86Q03ZQFNd3Yzs2e9hR+jqrq4633ve857zfeU9AHR2dnZ0dPT09PT39w8NDY2Pj4cFAEIUj10jSvEMTgIVwUDiZc3N0tCAK0pfn4yN8aRJ3C9px46kvWVJB78vB0SHpLndv19vlYsYUGAFAIkUAFZGoD0R5hteEbuxEWSDNLRKa7d0szO8PlHVFFOfKgr081Q2nupaKqW7JA43orVVgkHp6IBhwgPBAA0Awk0G/QsLecI/JDA+AQCDac3a6O+8kvxjo9wBvLK5paWFedHX18c8nZmZefr0aXJyMkxoz549zNbCwkIeSM7UWOcAACeqrZXLl3l+NpPkwMCsb8onZobEaC0t3HPuPFOf3EL6+3cNDe3YOr5ly5OEhKeLiwmzsymTMztGMjIWuPPQdp70zXOUAwE5fNhDAGD4+QI7fmNmcZF/8T4aS74EI17i2nx46i9+kTPxdT0ZWWZfEcm2RpCxFAO6nzwJBIOBxgDPSV76VtvkV37guDnBYDC7qVoDAEKeVEkkA1tra2svX758584dkgC8B0KNb4G2oCo5weTk5Llz5yLA6025eUNufCQf9R0akYo3pOK0VKyg/f9TcWnQ7oGGhgYCEufT3d2Nuw8ODo6NjXFWdgBITU1NT0/fvXs3xCc3N7eoqCgQCBw7diyJlC7GJACvvnRJrl+H3+CHwE/ynJFIAEivStx/LOlAEtAvB4Wf8jvFfSoABBhrxIACRjSwZSPQbuLLum6uDd+/Ile40UEJkur1Su+IjCxsXkhgZj55mkb+Krt52mixFPdJX6VUEgkkBuPaX73KfQASuAMyPMzDuzeJyNbN83A/5j2TdXBQamokNzcuAcCOATu4kvG8A/ZNMGIl/nV1dbC0u3fvMinu37/PtJ2amiIDYLYyEfbt28csgK6RHFRVVREP1jMAcGe4P599tvVKQ7VUl0gJMZ/nU/NgcbiAeDDSbe45b3v3LmFud+e9nJyh/YWSeYpH5gPLPD1ZiHVPnkxNTEwND/c/fNjY82lGV1M+MEqugC9IZaVEowOAnn7xP0Pe8f3N5Jk6CCRfjunHhUL+iYN6GjyVfsXHwZ+CzC8NAP1TYkBjYyj4i1AwFDACRaap4o96GYGs6a4RDL7Z9DA7mOEfLCwkXQgwJIKRyN26cuXKZ599hj+dPXsWHkEM4HH2ZAP8CdgFcEkt33zzzRXVzFtyC1x4NnwdEH+gn0GiHgP1a71+/frt27fxdf6bDEBEoDl4OXx/06ZNeMLs7CyKUIdlTICCggL+48GDB8QJvH8nOaLnGMDH4YoXLsjFi5BP+GyOnPCJL3ExMXEocfPQ5qT6JGa7HAgLAK5SAXP9deD1QH+YPk+CuiAXrspVHgeSsDMBZlCxt2Lbtm0EAIgCYNTV1fWb3b8ZkhCBAWkINPD89GkwgPjLHQBjeoeShVl59IBY4sbU48edXV2dHzSTmIEZhoEigB7s8rEp62/e0D9N1jKc8eKFCxeYp0xJIJ6s9/DhwxB/rj/TFsIEeyM/YAogDZHBv/zyy0yWdQkAoC1zlLvEPDkhp8/JuSqpOiAHuOV7ZA/AKlEa8Z1kAkkETdxXX1+a11/8dYI8FJ9bC5IQAMi/QTcepQ+9hbGSG6ASDbe1DTd+GLqPUkSKCKc+fVpwB9cG7Opo7r6tcPwlBwBGjlRYiUgkRVOhxq9jcBB6/04wSABgsvEWX8B7p7wThLOSRDU2JWcX+/1fyc4ObNnCn/Miyiz4TX19PV711ltv4Tfw6O3btwOvfBDY+v777+NbBw4cYM5DMZY/Iwjo1yHgvg5e5tGQxBrxdRz9xo0bnICQAGVnHzp0CIKDJAXiEABgPYAOihDKFVQI6CdUEK6YBiqMnj59Gs3KcxqK+IMrgv5n5MxJOQmrhd8kSVKCJODhsF0ZEGHcjK725wwDxi8P+mOAPvreJblEGMANKisrcRJVnAEg0jKcp62tDWyCpRItgIIdsoOcYKtErUUgLdfXC5efGDDwJE1ePy0vvYRHKaVg8nODkIGCFy5ACgkKe/fKq6+uhvgcwvDpzw3aZZAqsLzIBh9iRmgMIBMlHQf9mRdQIv7JVCVF5vrDmbj++D+MLSUlBcZGohz/AIA0z9wAvHYtphdK4TE59oq8wvQQbwZ2K9uqq8t/dK3i7ALSXkmJoO2DzWhZy66ksbAA6Yf6kyrIvn0Pr1//qAEywG/xCHzBtQLAZFbw3fvwTj9wCiITWHCo9TbYi/Vx+wYSNQIxVWQtK1Y5qDuYbQaDBxuDp0c0BgSMHsM4b9QZ7e/A/Y2mpoL0YMlbhVkB/0wguzVQcTTy5YAywN1IKiHRpaWlJ0+eREsRy+AXo6Oj+ld+ArUEgDBZwEb/0fJDXwQAr8YHoUTh5ZcuXQLQOYGXXnqJrBbQAW7AdCKTHQDAenCHl5ElEACQjEhiSFwWFxeZFa+++irRIuokAHzp7sa3GIgYfBn4DYKGd1E7ciqw4aFfy/vN0oz6j8pHvb2mpgaWQFmIm4IKJyJccHyD688/4Z7IFOmSTkE4T/IAB4m68IMbCKGf6ru8dlzOnJFTp4Qqnc+n4iAlYOY4pcG7d+5kZwveWlYmVrjfYcO9/kfYPzci+m+x0L9GIhgaLPwMPnSVhEi4HmdOnTrFvNCiF65Ojs4sYAowX5gChAFuBEkwKtBx6prxDwBjY4RpaDu3mYnBnfaO/tTWrlyB/hMAApNXa15ByAFAuKPc4tUuoMmflLpnZxsZGQSJOaP2Yn1dIpkCoCVVVeLaVH5h9NsqEAHgy9J/NPzw0/V6sc4TJxr9/qA1JOjvv3U21P+X+jMzz2292PXhxe2Tt1871oM6GggEA4HsgC/bxzeMjF1oJvBoGER1dTUg6+z5ISTAMpjzgDKvIc1fLv3r6MhZjBn9cahh9XI+DofGfcGaEydOHDlypLiYfMaPry8rRY2TwRCWeDFsFIoEV6IGoA1C4FS08o85NGTQewYPQOSXg0BYmVlmo39cY0A4QBgb9Qm89Pzgr+3SToWfG0GVBVc57MiVuS8U4bngpAKU64nibeNtyMI90uMhAEAvoXfMD2ailnrJ7MU2KgAnT9IbwivkGSlJ7+/3DQ6mZ2auiPvOX255YehvrI6vNToiZ6QtpMLgO0AP9KNwotMyNezpwJVnnhIMIP7IQcxTAobdGUGjRLwDwPw8wM1IkjQaABji1ZCfSfaQ+ooeX0VLIthT1Tl0yKUjg1AmJC8hwZidfTr2/vXuWz40I5ICxKNoVaA73XdmFJePHVvXUrA2FzJSux849R8XtqDF4Kyst/mWfj+jhdH36wPTTxaebBrxf/X/+n/f+UBJIJAbQJET7E9bWcM5Wc2YsXgMKSSUAXKNr4SBLL7F7/krr6EUDL+2Gwxuy+3PA0DavS+kf8R3r4aLozXBH6n6cibKNMEayCY6g6xkgD54hDxFLky2CxUlBSYGaHHYdQ+rFmh/oHfHnJw00BlF0P13mjtJEx3z+KvWy2j1SIlXDFghw91I6I8NyzBNn/3Sj6qgsKLoH2Zcc03UYAyt460DMkDqMC7jaEHisMj5DzIv1x56yZD9VrPf8rmMFoT3M2u/970Jn28qMX16ekX0T97o60sU+k8xInVDoHASU1F4uLDa5oAEt5wMcVPgQ7we8sQkIi0mlYcelZeXxzkAgLg69BHBDPFmPT2ofcSAPW03Kt+Q6moivbb3msvlU9jHpExqmzkhJ1VSt2zeIt+Vvf9LTpwwR0eNhw8n79+9u0hOiEyB07guBX9Ow5/kNGsZYJ1LwfoRDP+sJh9a/nV3O65/Xd75OgvDHlx9cM8M3ssO3ssP9gz2VL5X/WQurfGdb83l7kkOFSQHJDlgZGa+LH/3vNVJVCarGIi5YBn+lGSZPG/oLfp7fRmvF81hjG6b/ps296du49VQoihFwHRQEkQEr8XLiQFucli4D3kxp0eIgv4wW4glIBGVA9cBAAPWfwUhEX5jzs8niLHJ3MSt2SSbvMOy2xgQIRK8eEPTp/ef2bctdZuyBFnFiAGEZFXeOIQDmbZ2AHATBvAvBjdBnY9B9V+WG4rQkyfcqbn09GfDp4i/WTaGmW5Wfp1aGjWRThxtDUBHgBUR/DkvL48kjIYIWckQS9vb20mImUQcwoE0UMQ/AECQGSgv3F0dnptaKflB/I4cmabMw0wPR39DpmRKe86gIRMyYQcAeo12Ze06mHUwtzY39+yWQMDs6jLa2tpbkA8RcJGQ4A5RqkDNodtfRi/QUpjJkeN8NEPcW0Aehx4He56VgIMI/v7g5pJgxZF/Har+Sdr75w//mZ82/u7Gnh4qAyjjhwKWpaSUyuoGs060zI4E8rwp6GMaBpR3QOts9B95yR8m/nirc0Jz8F1oC/o+Hkw1AqbjXsEEmHB0rQnDevgJY+INmQZMm5WE1edOtW8liDZ6DX1huO38IgHYL25tclIXNGk/Ow1rRnq6SbKa4plFRng1H4OQtbR+jc4INHKG12Bl6PB2rOvzNpyYz+dR5yFFJSeT5Qbiv/66ICFbA1DY+EZKhGwialVK/yWtRnZoRi0rc1YkNeRZ6BGzj0wXqYcMLMIs4AW8jESNNJqjOJY6meeW0KQVUzU+h9ybn1PSDy8Alz0S4bY2uokKEjoQrUFsfoah/1252yRNbdKGmDgog+AOVxCXIgBAK3Zn7vZn+r+dlVcsufn5eUxz0LQlFCJoUjchAHgpBWsAoEjL1FwH0+I5Y/+jTW7Lv04BaKsESx8Ge64GQ7Wjhcj87SUl5u7Ar3T+67kn21/5+mxGdnd20PDXhogBmaHp0tCuQCDHKJZVDT0HeQfKhrYDfSaFBH9REp0iO79HJlIhiNc7pf92//wX6G8dZXrCLz4CqoLLgt0iAs1hPcvhKMMwfk/OSwghfpAEKAMiEhAA1uzpvqQxQAyRK87X3BfGMvT/vtj2R9xpfvCc9nayHF0yrySK1cRGdrZZXCxHJX7GB+jqKcoYhAENAExYIIDMOBBAWI92VTSdPCTcrPWdmp7iTiEGyiqGSM1f8RYR4fUcCFWMKoLhe2A7Gg+1PZI5YibTmTJAhG1OGHPisP9o3aAdsqGM7imq6MqVBabE8oUaefmUtraq/bEVr6eW6JiGdMGhagLlSv9XM2QiXkMDKLOJAzmcy+g9AKyYqnHWDOThcWkFlBkeAwB5Db0WRVR64NzPIcYT40md1AExXLUWaenKGRwCkSnwJm27PD//s8eP/8Hwx29l7a7IOpSZmQdi7N2by9/5mtuu9U3SJwD9wTyXgjk33m49uz/5xKjKvx2gv47iYoJcoKenem8T05l2qZu5It9AmuaEzfNaGkj0Nx2a/kUg0JOT0yPCCKzOVdFPcBd8C6YAZYCJ27KJUmllEJg2VtIReNOwAsCOVlv6Z76a4t34CJgO3Q40+CMjoN5Q8oXLSJQG1nMghxMAlP7wtiQxsKdIAcAZA2yrlvsEgLA0Pl0rBe4DAKCv61so5XHbATVIrYZe4XLm5xvd3Y+HMqSa38QuOrQRnN8TNDQ+DNykv479E/juTBw6Z2iXgX/QIkHMwVwrUOzxkCVZ+2Rf/XQ9EjMXlsjKdV7WzzFHFOdWgjs7ZSfMhqSDMBAlIzD37OFkCY0ydGsIfBC+C58FQ1zJ5nTYJ/yWhf7GxtJ/gDI6aGullhUSRPsTFvTT2UScwyIEAPrcaMNjxa/KazT20Am9phzKy3ixdlVwLO8QHwnIJgf4kw74OI2ABACEGjhCVPs94Iv46O4pPIl5yy13UF1jQVedsPLw1q5bQ8hDh6sFsrRzJ/nhr8/OPhqt3TbcmPlgIDNzICMDVCQG5LJMlb/7UkcnuV58Z9QMXN9DKVg1ekgHczTu5V/rzVO7e9F/XJZ/BwB9xyBfOI+y87inpCQUCISoxdw0ZGmWQfZNf5rfH/DnBJpJEOzFw4zfvzpx1m4BBBN68PEw6AZ8n5+I8vwGMIVZK7bSdWrT/6dL3N8kYMRmeKoyHREhGhFsIDISvZH5cqwuFmM7I6U/vDnhTcLs8nMyBRUtqkHJ8sp01R+ePjXNZjfm5Yq5r3XIw78j8nfkxnFR+2rU7b50OOuaYpbNzDxNFrxs7y4EIJY1dkxOttUOwHGnquWpyMsxathBglgzPXUU1ZhfTE/YIAGAi0sCQlSAb+m8QGFhyrlFMkPohmJJFw3frPlQJ+EKQ9WdERpvofsQ6ZkMDNAB33Ill50holeyuEKkgGZhIeBvjHHmUDFQDxWLc47QZrNR9+Jj/cRluUwAYBwIjCn019S4EuQ038JEhDSdWUlThkS0HZbxSr0p2rsRtxrAbatb4m9zMzQGbN48MTdBAEAFii4AsJQMnv6MWi5yfy30N+1bSLsx0E8MuLi/de7Uq0Jn6JEjoAzXbHTT/ODszwZHBjPOTWZ9V1cATgisVBo5KZqSGeAsi8IYXIyoS8GzVilYB+x6nVb/zrkt/15zQL8pUinCOQUOHAicZ60WqP5z3RsIW/q/QMrj4PG/eZwY4GcnH+vA+ogBAOhHbIHpM2/pv6S/nrYz+j0QhSB0zGpmO3I8QScjJ+MD+UDp//Cxg6Loz8+Ybcwy+I6IUGOEvyjTidZAJaU/vAnozxvqO2sAiGCH5TDlpcfm4+mr09P/r29afuXvyPdJm8/8QW358QIrYC8NbnV1wp4poD/4xYImGtdIVBGACABM0JHe3k9bvv/00g8Sk4Ra81nPG/C2WyGNTwIxAwGcC8YIWyISkA3TV09UgEqjCIH+/InYQBBySWih8/R0UocbM8bqOuvo0+U6E1khBPZCMDIt3IYuXtaC0fqJZ9A+ywI6idqYtegBTJSnrG2qre2Q63+YWQ3UoGXBAiNXWTdWDDCETjnQX8fe4jGFfoZLejNjGTNR8MElk4jG7dCXsYSTA9XiXATOx9+IMBbiTs0Bt89GtIu/ECvhJhl7yVnA8eeajuulHoi5uv36XNUbdIbSG2TSmqmBQ9oeJT8aTBvMOhFW1lrAQ7SCpC2q+LonFYgAcGtdA4CWf13qP+9YCP5QRHFef+I8sp3/DMlfsfXoEoazVpxZSg+Q+HWs9RAryqeQBeQXujA//vhj6APeQyTAddDiWXLC6jBew01R9L+XPSsVZwX0p0hLDhKz8UEIx0pVtCahFMaDcSCH8yYEAN4TczMBAmaAln94zIx0Tsv/mxZoPy20nc9igPclzfS4ccmW0P/cORrYkTLIuZg7NLuQ4dO6MHbw4K/UvfMrn17/K7GUgq8wpkiphe06mCzwZ+YGkwG9iVQb+s8nfvwxpJrfA6OEfUiVuDYAnWofp0LzRfNo83sn3qPEgiptbwXB1UYwHPrNoZo9NUeMI2wNcEJOeG4QTz3SWtrfMjTUPjrKGu82vghuRngHDVZr8FuQBZPzM0THJlnRNn2Z+k+jNIL7Sv/T84cV+okBLlsUVVWbtUzIDi2LXADA7Fdi3BfeAVMVNJ57AcEj+BwGWAt1YkTntiQ1DKSGQq0miG2UfFl2SPm3sqzsW+Xl36qqylb01wBA7mAM0pVcmknYYIQRQIZ9AtFlnloKZuwduNOvZQAtBa9b+ZfTdxMAitB8lqA/37l7SNOPVY9ettlPkwRKmHr2c2YYkUMNBJmOe0ATCcXeDRRXQ09E+YH704nfk97zufizvRnp31yS/kVEsZvqMbxDU9RoDbmGT+Sn033FkzkPZ+bwnpibWUsWyAD0nTUFwTE89fwDvNBubXPjjeH+oD8xAGi2PxPuAxCr93MR5YP3xbP99gE51SosfKOTmozZmT/Rmwvl5yJQf/jgAzovCAP4YVQBAInsZXl5W8e2PR17Cu4X9Pyenv/15/8X9xqf0QCA0Py1P/u1Uz87lbsvt+RQyUtFL2WmeGk6IswgANxJuhM8Hmwba6v678H5U8Utl4Kic1tjABH0eaNVhGIhHaTK/b+9agD4rfJlGZVLcF8DQErOgEI/g5nv3uwePF1tZ7fhRTZ9GeZ8h3gHAM7JNBls+oFzMKLq/GBqkpySOjI1UlKIJnqYjBqjqMyd0jmSPnKm8Iyf/S6cDQCGAP3EgNHtg0A/VMaJNni4DoEv6IjS7HW5ui0EgwAQ9+5PO9UQF/amzf2X34ySZf9lW8FzCXGprP1hSOfnz59n6S8lPvt5AMgpugUQXVg2/V9ckv5RM1CEKRpT90NqJADQI0ShWHeQ3uT6+j+1jMPtHFZNPJkeq41MvKe+ebQrdgxHt763ttaeHu42VXRIDjcgn7orgOtAf4dVFslkg4yKjKCFiUcL7JYT5SylAR+Xb4dF2gH/APpJBZBeKUxDbqBSTCH35asENv5qaPC3tnaGQjQGfLJ3LzIdd5yrTaAl8frWz+5l75nwHxjLy5+QrinySoq3UT0UhRopoMl+c9r9kXUs6/T583I42fzjZut3Gp0xwNi/33webd+Rd9CiwaHvWKmCvIgAYJ8Sq6YvG58rP3LggUI/MSDaYpm5ZCpvqrkRQtXC3iF+AaC/H3/Cgchh90g5TQI+0yfRGPGDkchIFIZt4Dv7jLOdLNklvRzsAQajc65IBP15TVbWDK4bRv/RD1T8FxRD6rcMzJMKVN9dP60BgPDDu8VunJyu/g31sbWk+/4fuH9JPDYx2eYOOossExHdTscmZTb6Dx3dr7o/FeDLFy8i+KL8EjPQ2XEy+CCBRKMIC9Zd7s4fhviLSyaeTI8F9O135otEpa0YEeb319xvZy1gLLNE6+xAIUx81Y+tgPtQW9PI7cmO8yb8TAP9V6v1IzyT63FmpAKor2iwLgMA6Yzu/Y4LkNH4ExJICr9dVUVxyM4AyBrfffCACvCdW7eIdiYQQeg7exbty/1yM7plaP2g+Hct8dri6dO9lZUdZE6BObPYFBH2e3LGAJuczZgzU8YU3Si/Lr/+HVQJa7zA5h/muco+/Jzd2312SfeHA0RrSmWcbMYNlOvLMOc7eA4AvxK2K6DcE2p26JqJLS3lc0dLTehNPmpGtNU6hpmQwEk6+Rl3kUXgAP3BnQeBj7DandJ/hqJ/mPfyB7x6dMJqIdYKWJSmpWAGa3Sb7X7QkpJ4qv9zOfoRLuXRGnkx5gRNG/3bDs6w0T/oz5q9Omv7aPZdYNcR7U7jEPptWINOCAEOQOHXXnst1V34TF6y2SUDU7w924gDbdmUSgbvSSrjHf01CYjatMIl+CQnoWWuSGibBnzH4/n7Ebq9mRQ+n6bMzF8EWEiJyy1Muf80F7H3OxXt4vx8tqOhIERxiGAP8dcisG4H/awsfOUKz5YwqOcTwiFhfHfKOS4uIvVSbZghDMjJU7oHXB5y1s5RU6z/GWYbGYwjBmgtFcRgAB18mnaC4Lxfvn0kanMDoL/xDP1HM26cq0lT9C8t9fJkSHQbXYqvYo6aG+FITd9BLU4BQDuB6qequ7r2/OPiouwiSj0vyUsSpalEs7Bpk9ZriQHK/9hGHCLAYN4iKIc916b3am9/VT8L6o4sLRVxCuwMaMeEMh2vCx/s9vzm7puq2BAA4rn9Qxj93/DWYDR8Lv1vC9rSf6fV88f+tHQNsQfD0aNH6drUAEDnKFGBvTxVDmInH3FhduEX4NbWN4rS3nYz51i79Y33xFwGIcxYc9uG3xT5b66anLXIRRiSXds4DyGYRZZID0lM9ofWgFjNidFb9fx0uLoCtKk2NenzP3b5fOzNp7tRhu2xQTxgiwJ4gPZ0QQv41kxDMgB90J4R8euT9wclqN0fQqoE8a+qAuLxjDzZKXqsdXQb7+yIAXwEgAApZN8hPpxGcJDhhdj/UwATOgimWSuzWPCdc0feq64u51JRxPS234dWfeExWhDGlNlENl6jLwb3ORxjbnoOAIOyzHa2TX83UJj1s8yc/J1l/T7f6e3RVvt1JwmGtmsi3cAS7I5sfurOBM7yHbWBdl9799/s7vvzfZVb9A2cG+bpcyQTpSQXDHcW2j2Wgh8trQomsNCmGoMhuWoysX9ws7P8u/HtvnHf7vpfWJL+mevt778P0NP0TXsoWAAiAAd4GwuvSNq4a2+//bZuxEYxwE1Z2GcZ7ZsQSbIHAgn/weESpeH6HGgvftF+UE7AO/ovjwG/A9FhzeYNLXKJTmISHIbnz459eyElkzqUIqoG69J7cV0q2nwrvaHQ/xVvDYkg2zfRDkQqwKPc5ltbaeekMcnNk1aZaez4gpRPXEIp50BKJrb6SoMW9N8OA/eIRgZmmFYM6N3d22/2PzQe5u6xE60XYD+VBX5oP9JY0tgf2pFc5hs45puoyOCa53jb72Prktmdctia/RS8EmMuaJVeD/ccAL6//OEk35bxhl9rvrD7g86yTvg6SS5JTrTNegxokb3zH/+yF53zNyYwnkRzuq4+vT90/3rf9YbdDQNpA3/23LmG+U+ZY0wwEgncGHxCeKTd4t7WUpQ2ipPiUJ+9l4KXdJtYA4C+ibP8u+FNd2Gy0X/wyF5t+uQn/A6JnyUC+CJ7NoAINs0HcFFg6CNiTzdWonP7CAlu8NdejcyiM9aa6v4nWoeIdkc5jqUorRVp3hP/WbMUYUSLrylrirCi2qZz50SJ0WKPAZwTA7MZtDsxCyWLPEA7BWgK4KbLKkYMQAUiHeSycwe13sD0JsJLRCMDIIen1wBMEMR9GlUZDkNntpMA7N7t2/oVeBRG15n+UFZoNGGY5J+ZytEvxJLkB99RCJb5toW2f3az9v7Y2AEQSpU3T4nJdst0Bo1bxuxzs6SGV+pWvjssiyUA/CAM/fk3Wny6pD8eeGyMf8A5QrdNdJJodp3mcuAszPuhXl0TZvAeglBpZmQZzxad3+m6A4gAKExpJvPDRw/v9t29+qevHk87Xu579IFFqalLkWVC9ZqbrYeJtefKuQrKtmF6W6ylYOgPKRxkJMbyb7ej/LthzVhhr//WA1NSUaP0HwpJjxAUm/BMvg/C7nt+wlG6100jgHKIvMtl6EAG7wO4oPsRV4guNJXTYqQVaffGUQQeDtczIQvhbb2jv9d6gAK+Bi8YCqGAEe0OPHHeg1hXxjAwe8mMC9MMHTfWhzCDJpEZJS+wZTftyoAjRgYHJF8aeOCByAGybR9vsSJcEgM0AOjPe5A+w2gxjHvG044z7F/CXkcm8xZAekH2/STIsfV1PjM/mzamD7bf4IubwDfn9NprK5YmjIi3Trd/wEREM2PmnUQ0XsDLMBFhhuq6yFgCgJM98Q/9uYtGHWA6Y2brMJMN/Obz+Kri1kjVaEiAUfTfSOnrmyHLpGeMOcOic1aQs4Cwd6yXh3sQyoAYitrDI8NdfV1Vf7mqMquyfN+tu3dyttdCMBGCUFpBV6kfKR07e5w2OPJNz1vSh5eC5/zNdj9oIBDr3p/zzvLvi4f4yMY6jM8DQOpde8Mfsmvn6kQt0oQ9dcveM05XYPFKl837MEfd7VY3n9A93UBw90/14hCUBzYB1QDA4bwh2xV4vQzeYwAAqyNcD4pg9SJH1w39nVgs0bXJaS7DMJKStKXEbQ+iHquHRzTUKGQTRqTsxBSsgP+J2GHAMG7+E8NoNtJ7ftj5la88IvMnOYk1fHu3VxQxq2WUSEYNiKjWduOGQTzT3TNZCBKlMZU0MyaLBdl1yyzYfQRSr/tfkUZrxsaxsLH4PxRe90ln4NzKLCJHs+Ucib40SNr4Pn93dwsLU1DwaZKGObGCfMgYwuOa+5oB/fYt7alm6r7ZfW/JWywxr86vzi2bnx0b+6R5562PR5INYzotbRLFn2ZquD89A3iBw8zYVCBKwbEHAI0BlH9/WfSfB/LApv/z9oY/kHFH274uLUmwbMWeTu3FxMSdIStrIREWjwezoT/uC3mhwOCmh4GN5NiHgNoj8UNrkmQPvKdmAPEzV26OJgrGErk4cZ5RoBXhSCh0n4RLYrV+MqmISo6KrZp/qy7hLjjzfRizU8+M6jricoT1qLp3rAZ+LX6s2ZVJaQIkIWLaCQeXa7VrRQz4PAB0mfJfpel33mgy9h858kdLSy+WlJzZv39XnKK9d3KAOsIzRLnlOvqvX9cAwPDQUaKZMeksxS19NgAThNqbrGTspmVLr0QODtQnacc/AAD5OogCWlyKaopggCEkjXl/71ZLayuh22C3NzyNbafQfNKN9CIpGpXRxSeLcBWqpvyeDUkO5B6Q0wvMLbR+hC6YAhcXBUG3ujVJLOJhbGSoYL3vUX1fLKVgkhTrcMq/GlQ2fvkX8mKj/6Oy3WI1ffLT+YgYDM4+bxnNBmGL19W0/9L9cjA4DuUE/BvfpbmIdlJoDu9ALwBVx8hOTMbAU8D0WWBEAqRPniLJEwV0Q+n1sciNLaArGEsuypycpSGU/1t14dWEhf43iFq8WQxdQLzJG6s/BUub5DgNjOSbM3GHC6pfc3vAZXilPkGaOC0rGeRUNwSFrsIF+P5uIg3hhZ3FfOKj+DeBZsh5hkLUc+CIK8aAQv7XLmadKRflo2Kzt69j/1uXZo8aw2XGsJxhWVKM0B97DKCCUWlWThjPAsBHEx9NEgNAfx0Q32hMHwBAOoskzqJLElz6L4gHK84I2A95MNqp7qmuGziuwzOB24XFQRQJAQvtLWNIlEZ+Ak8Dx/s6O4PBJi4LOwzW1Jgiggp00Dz4wHhADkUqgH/ohrT2w4BIHUh1IBsEAIKBGdmbvSYBCtl9SxoOAcBz9ydv9ctC/230b9k/IRVvKP136sVoMkAz3TUwEa0HhEmQ6P4AAeKj1qDEtYHaYAdvSB8nGQC9pKQRMEpwBzrPTNBNKJ0t/+QKnAZTgl2Mrl27xgQgZtCLwt4VNKeiIMkLMtU4YSZArjbSkOQCu+FxA8J75Zpc75KbY9IWw0KwW1RgIZ+rPFywrY0gSZMctwdEEa2WutTW+A68GBwJhQAg1v3BK5EmwKDlGzqRhIFTxGNuDQjEPOVwN+uy9speHmLKBEF7RMujeZQryIH8DGOTBBnaUgtpBgVV6669XzXzgwu5/+8/XTP+lGH4cA7jjJxh97oXvh9cQAKaAQBin/R9Is4YwHBtTDQSWfyfi4+Ta2bMtGJ7LmcMgCdx8TUJRgjlNQRplmRybLwDwN8WWrX4VgzKHdrPo84UtUHQQiG4yZ33B3btGuay8Jik8nJutJASHjJXbY2mriKMNTL0vZaqesz6+SPPCwLqQ45VwdF8Te6+ij+p3f1+qdz47f+6fdXnAWBrvS39MwmdLAxJEWGR1BK6TbKJX0I0gFqFAAgILB4ajgijj7AQ10a/M23mIL5mFfg6O9NRzoJUKu6QJRB+yCrIEYEYSkTEBv4KLQL6ORmAiYnBgySJAfo0sRdl+lxqfIilSybgSys9lwi2FAhoumzofhH8+erVgrq6vKPp8kdF/qLnuD0uvi6ehiEJSc4GSkV/lnHRyM85aMc+0Ox+SxqwGFlVGzofdnVx07lNKDxAEveXkg8hWTeDwxNAH/YKBaf4phA1QTbks1wYnA9er3uOjnC50tO5SswgzpZACr8E4QwIH+GUi9bWBtel889vmmdPs9I2+c+IlBdf1eqBxgB0GHkh5hCuWCOlOyUzbrTcsNGfgnCUMHlY55Q+7Z0pwDWHe5EW6AJMTbwIvXAgbhAcCI2orKyMlJpEPH4BwPhiva4O6toAsQ7xYNxaxKzBwenHj69e/TQ5ecZq5TaIAVGeNmcD0hpEItyVE7WhX3/GWgq2+0HxaQ+rfxec5d+Na8w9m/7P2crPsmQfRZ6cVFvClWvoQwVwRBy0wTJcEIAgCY2Wg9MOxMIC/BvHJYGot4yUlk/kT7g7EK8BACUavwd3ECXQPTVZZuNScJ+2VGKAvEgjIwX6AEBoN5HM2hgafRMIA7yYLIbBf5PFsoDl4O3bVYf+4EzVr0iVeLbUf7d36wc7t9bW8rZ8JOm1gqagqPBP+DIxABWorIyBEs3Jud+OALenDZQ5xhsSlbnyJGpkXSRkCkb8hjhNAOaX7A6yyOytrsZ5CEUuV+SQ4h+RIyzpAjHZRGGcrj5yI65PMIj6JLwhzVTUBhDTSKc6OhKbm8tmisrN8sqWypOSeNRqb73SecUZA9CUXmwMSDQTK40vigGtziTgxIloWibTcWwyYwgWrTFkxvoEPZIw8gPmHf8kFSbxYrJwL5QAIZwyQ2PtbQ1H/7AAYH8fzwat5p1mZgYWFmprL8/OTo2PE+YNzpzchaUeLjaWNjo7mVZMJWBIvvY1gMLGfYaqwDGWgm8ol/cWAKD/G1//IZmz0X+gNJPZq2M1SoL/Ab64IyQd5yMtoPALK0GQoRKFC+KyAU+Vc1RL0B9qCd8nfsDuec+gZfg6/UV2ALD3edZFZ+S8iEh8LmkEUUpesAGzkGboDcBFf+oD+fBDwItzJWPGswE4HD2vs6OqqqOm5jevVKVuzdk67bl1rXzLlpFDWz6+I2+/ja8BmsQb8JrJBe4zN/gp3A4aUYjrTLqoLDeXA4FgggqxpK21lTIA4ZYbRCeYbgbHrad4g/pHaGGa8CnEgKhgjg0FEJbpCIJ7sSS4E47PxOZyUUhAC+LTuWIjI0n9/bnzh4rkdTSWo3K0oriiQBZ1fQM/67rqnDEAZvpiYwBB6IuCsDnR54wB0bQ449t4Oy0VUCsVgki1ycDQggjA/IlJx8UnJED88X8mIJtxScyWtGIhhSitA0mEEWPnLY7C3YVoDGzZ8uGNm0NDffgqfUFweYpAJAmkg3yIrf2aJvECx4YNwEt0mS0KJ06e+MYbZd3dxxwBID0+peDB+j5V863ClNvyr3XI/qHkjVX+Pb6G9N8sqSCFov9q6i28D4qBUIMaoNDM/Mc7QW1SgTfffBP2gRSDO4onI6vgTYjkEH94jVaGSS/QfBAfKAzg9KQCYBAMCJWJD0WGQnSC8uS547ZrTb6t+pIYDK0MAMRXyZPxYUoAQ2MXL5JAoc/gzZmbZgoKZo9YRZa8k6l3A6mpRup8pBrApgh/SClJSZlISZk7LXBn+D5ArKAJ8hB/EKTYiRo+zgkx3ZhUURrH6pNk8H/QaJ5Hh6L5MFFnZ5mQlIj4UihFZHDMW16gnyVRhmEgmywZ9YZ6AAuDe6eRg0ZmpEMfA47WnCEH91p0ijUBPMOHdIYXS7HYAYAzvPx02pBLdgwAa11dyfj/jbkzRxQ4aBzUGABgfjT20awzBnC5XBtzCvQnLQb3cXUSX2YE3AsyBGFirjElEYUgZ+g/xADmZjwCgLEyW6T8SxFYtmy3K8DeDe85exb3IpBM79p1ubEx9DZ9QRPop4R/ZpHPp08EIkbQg0ifCZOK+AMbYAUCzAZV0Oicyp8rKio0SkOho8eOHU1JORz/UrAOJkA03Z8brvz7fVluQQla6J96U76pHTnAUmSYwOFeffVVNBkAF3TW7aABZeCY30BDQGSJwfB1Crm8lf1cYkQGNB/kZupdBADyAD6O+UDyQQZA3kAS4H7Xwx9EFFT07zEbJA+n1dYP+4HAnPwYhIYaJ27BM/0RQYdytrO25k1508Mppyz9YUfVjq1JlcwWtDD4BxSJqQIEM610Tx4+DMWVYOD9ywBYxFe+CeIM/Au5yQ4AiP6EB3xGnzbjNfZXSRUFYfZ+YP70Sz+Nq1QcNQBANvVRw6wW4gWsQ3LmpNp1ynfkfC6JGAxp0BhA5HB587/n0WlSIjsMtQ3QH8mEMzHvm3J9XnZc12JAVCtMaWxDdoMVkYEB/VB+uL8GACYCUw9K5L3w674LiCUbOrQBlNsf++aTgmhLroeH+f29bQW9XV07Pr6/ZyvawmJaGt4VFgDwPQIAOXTWwD5aFLLxSwhIN32EZWWhlPRiiY8p+tOBGuoOTSmmM4WWlYLTlnXDaQDY1j2z8QMAa/puytab8o2bIrP2Rh0u9tLA4eDp6Dykn/YDYfR5AArEsRsEv9wybS4izDgDAHIQfq+V4XjEQbWt+sd4mT4Ckp9kj3gs3TG4Mf5MkQCQpMaJY2dJyaQxSc4V7Smn2L81hMa5PRXlzCCQWnQ3ZuYoM4uLo08B4yRivC8qXrNTG6k3X4ZJyGzUAAALJPbwQbwmNqOHksHmbloSmLW8kgDAJjHwfTJpNCLBzHBdkgvNWWk2cFHE0CEDZ8QgeKx587/n0WlS3DgMBWF+UucwOe8gV5JhEgbIzKLrLrMMjk/7A2k304HMWyVTpp69f+L6BgD28GeA/eAxg0xT4mFkjjAlBEeyZdBzvLd3fGCgDaIxOA7k85Bvg++akLCgK1MAqcJ0OZWp/RZgLLwjdOBAt0hIJF4BgHUsLEeAlfjmfXPdczD6FUvB31+5+zN988I3WdXMO2yg8u/zvPwJ4o/sA/oZD8WL7bdM1tkyLZP4WZmHv3g1XJWF7gzEGBgzIAxa4sI2hrHS5ZysCQTfDJ+G/GrF9iMGsxLxRwMAHBOAjqPB+ZinjPU0UiKGRGWkIAw1RwxgnCGtW/1KYl8XzP0diHwTVsbMk3JSbLtOAFga5RKtxbTDT+wBgEQGBYsCy0Pdy406V7wMtoL4EAgg65BmwvAJ6bgyAYA1R8R26BPezOzhlTAOnET7lPXG94O91hiAn0p8jOXHzM9SKV0ILQjhpbtv7QBA8hqqku4qYiTpqq5f35h2c2k0/X/2zjOuqXTb/98tVQIiIFEIwtBU0BksyH/G+Yin934O8++99zf/3st9dc+r++b23u89vdw+fYQpeKyoY4NANIAh5BAgkFD2/V122CcaxBDAwjzfWbMNO/t5kuDH9XvWWjvPYtMxyBXLHgX6Z6LA+YONnaYBRY/rfVjpWZR7NSCrnM1jEwA1Y1eeTq7t2vDL9Pdz+TKlpdTVablBeTnrR/5dsbFMsUUkokhTAkC6AJSWpi9tBsEJAnazYeityAiBf8kCsJdUPkEKQ+D/BH4I84RzJUUAth4Gw+K9GvAJniTG79UA79MjADXUNNHUSmuQ4JWzZykqkptWlC4BoLGRj32MjUITao0vy5jBZQ04DPlsNP5ledn7kGtkTzgjKd5/FsOjx2bzMSzA6SdTAIQ/RQM+yxOIZWOzEnL9r/LqaU6f5ez1kusTjfXJL+996Ut0dbl7ntiPY0OOF+GL8CVo3vA9ofI09bKVsAJR+B58d+m48Ij8wzeWrAS64FMYDAbDZkYAoprqk5wspLCKqtbJ1tD5UIzY4qkEtv0kyKoTBDSz0cylLPCfXTVEWOCR0YXsUWEwGIwAiDrqlJ1ppDFAIEx4hhkbmyeAO8uJoBBUPuKY+7kl+59sZQwGgxEA4cFzhCPOd7hXEQCbrYXBYDAYAXAppljGVsFgMBgM2/jgYDAYDAYjAAaDwWDIxSZDDAaDwWAiAIPBYDAYAbAet63CJPwqfCq7eTIZ8+mlF5jkoSzA78NXV3659b6P1cf/BfwrqMrw6lvw09Cx2kUrzlMN/xpezuqtr8o34SXIgb8J3yYD3oP/CM9k/OqF8HfhBxgMRgAMW26PgOqkZUb5sqViZf0q62cxy9+WwWAwAmDwyTJ3zWVQDhWQv5kyk6m+2EkzGAybKgAG60l8YYt1sxOqwQeVWQQBmeFdfomdbCyLj14ADAbzRTD1Zb148eKdO3cANahUJ271ZmIjGGd8lFEdo0RnmZ1n3sLKI6+IolJKnW2oCylkjXzjgUWAP035qLkNNLTRth6nfP48AwPMz+PCp6AEhy4E75DOAvQuT23VUbeHPcCtW9y+rYYLJBLk51Nejnpt1dbauCwu6iKGh3UR8bjT/cNp/7T6FqrfIYXqS1TfxAchnDbWxzi2gx0P+IDlt26VLy6Ww0hNjfrLprTATmGe+Xd59y53wfH+OjbDIZb4chYi+IekYzNv851FXHLgK7h0YTAYNl4A3nrrre7u7ps3bwLqP6nOZB//+Mdz5H3WQT/9t7g1xNAww2HCEoAZZlwB8OCRY5IA+PCpvWIzzbvYtS4BSNOAfPJPcUrT6iXICgliby+vv87cXIr3536P9I3VdoZlG9vUOehD4c+fPZt/+bIlOQmHkwLg9dLczLFjdHQgGBriwgWuXSMQIBJhdjbZ/2/PHhobefZZXcoD+MP7e0i9S/UrnE92wZQWnuQkaYRC+oDlr71WPj9fAXobUhm9pZWbDL/GazqC4/0/plcBMheAG9y4w50o0UUWt7O94hsVPnyS/7TWpLOL/GAbWORadAFGAAyGTRSAGzduaPkvDXjnnXcAtaLX8l9tYNWNnqzQOvEiF69w5QY3/PjvcCdEaIIJVwDcdqC72V1Djdbp+9l/kIOHOSxtWJ8AiCj8mdP1RQJTT33WAnD1KleucOYM16+73n9155uuAe812831wfpXuyd6e73nzqGpRketeFx9n/H5aGsjFiMvjyMlNzl9GglOXx9SiVDIEYBkA/KWFp2RbmiJ/vBfSEXFkgYUU/GdnPDkl/myNHieeckA9xIMSuTKL18uv3ixvLZWg3RmZQHQDAECL/NyZBdUf1mXpnYK+j1WQ33A3+O9S1waZDBCRAKg+M/7DW8NNbXUSp9kHjzAEEMhQhFGPFws4mvSCQwGw6YKgNb7agKutvRKBAGKA0ZGRtSwm6y4zvVees9x7hKXrnFtkEEgPz+/vLzc6/Hm5ubatp1IJKLR6K3xWwoRCilsokkPbnM7RKiDjvRQIOt3Is8iAdBRL8Ea6e+XAMgc778at1d9sjpUHeuOvfnmdE9PZcHZpiN4CyiYZXYkPvJ+//tvTkTz8uSxQzV573rfeiuvu/tA/rWaQ5SUOM3TFvz+SP+liDJHytORn09ZGQcOkMZCWmNfmdz0QvjSCCOOyeGuJABF0oB/8A/Kf/u3S4LBSZ2Jx5E4pSLx1nBpwBhjVD+nadHkmREn3k33m7x5hjP6G9EMkqJiip0OdHXU6W/HSZFZWH78ffT106+VwS52lVPOClxK/yErnk19ZDB8QAWgsLDQ4/HIQfv9fpAzqtCPOsnaUYqgm+53eEca0EcfsHfv3vr6ejUZ17TFxcV5eXkSAHW+lwCEQqFAIHDr1q2+SJ90YpRRLRUVJShZ4cXL+vha19e++cffvDp91REAHXPIIWNsW2v/pABA0ec+99kf/vAbZMV07/TwO9Pd3Z89dO5TinLkmLWwjRHTR9bjN8JvXL5MY+OVlvkLpb29JxquHTlCfT07dyIBCIXQG3j7bc6di6BIxOtFy+X9+7EsVkc+2nHTly45vlt2nwCEw/L+0gCKi8tFzRsVwf80qet0Rm8gFXcGhDOtjpnRR99ZzvbQc5rTcvTHOa6PP820ZnuFVyqo0N+O4gBH9RU7at0wyugn+aTO6w0/NNqZgR+SBccxAmAwAiBqa2sPHDigVb8cNKDMT2tr6zNyNGvkJjd76NFaTxrgx68m90eOHDl48KCKCpKBysrKkpISVwAUdoyOjkpyrl+/funSpQsXLmig3OICC7nkfoSPlFDCOoi1xn7Nf/wf9vYqEyXvL3uWZ9eU/HFsaIhfbG/9RryFbIm9F/uL3m+d/JkPPX/y+SMcabQaHQ8oscwnP0Kk1z8eCPQHJ6+3e/s6OzlxgoMHJcNIALTu372b+XkpgR4Po5BpcFCPpKusTmWlowGKGIYjw04EkLb8dyIAypcJBv06ky4ActaO6VLH+2fY1HOe+X76FQhe4EIrrZL2AxzQ8n+SSQV8fvwyXaDgoIwyIEJEz77Ii/pF6Xp9gExSbjPwg7V6f1kK/w+D4YMqAKWlpS+88IKyNHL9zppdjlvugLUQIfIjfqQbRd7mbT/+3bt3nzhxor29va2tTeoiOUkvKU9OTmr5f+XKlT179kgtVIU+s3hG63TnBqEP8SHWwUzrzMxAixJbrWM/CQLkXDIaO5P0/goCRsrLv9HSEh9chwD8vP2Rlzrk1DrprKEGG+GxPB10yCm/z/vnphtGRv79v7/m/+IXbS3/pQFu++S6OubmCATQO5HbR054dJSxMUcAMgkCZNHIZUcAxhhLTa/J9TsRQFtbuagor7gcTKqCJCc3FzeH43h/zUB1S3LazAgR0ij5eun6czynX4KsggqFegqAZH78AQJ6IzojtSiiSLO30NJOu4yVaVvpVFYYDEYAnCBAWRpVAgAt1ZWpZ40ocj/PeQX7/fRLUeT9Ozs7dTx27Fi663dQQHD48GHpTVlZmeRnYWGhp6fHWQx68frwNdOcvQC0SABaZwcGxt56yw0C5HPXtPzX7yPxYktcAnC9hexpL6J9Lx33JDRssFCmW95Qn/fllwfb2/0+Hw0N3EdNDQoCFBAgJiaIRqWcZIBbBuDyZdeDuwIQiSR9vdSuqqpyz56qam91QXxHMBh1ztfW3r/8lxN3RYUVOcx9TDE1yeQEE/vw6uM306yCPyCBr6MuSlQaIAEYOT+ix5q/kEIvXl0jtXjw7QBd3MtfQ5YtBoMRAP6cnD/MqfrlKsTfgy74PJmjFZwcZh99ivQBBRC6lUjeX0cehmoDJ0+enJ+fn5qaCofD165dk5YoKSwv0ESThUVWJFoTcwPMDbTaAwOe21fcIKCSSlZDJfHk2l9Hu6qqv6VlzmqZm2sle9rhODSRRhFFcnkFFMBveDxSREpL0ys0FBWxfTuS0YXZWRIJZJkg3XDy9Tt2jESTdeBDHEpZ/sv0vGNJ1+4IwPDw/QKgsXpzzoSaOTPPjHw6zHcxDwVQqM9LCjvYobycbOL8hHRikcUCCqSIueSyGl8jhQ5kmWIwGAF4jzSSp0ohDi8h0v9Zdax6y/8Nblzn+iKLyvYcOnRImZ/jx4+TGao9KFBQ/BFQLry//87cHU2lisIAA5IBsiMHu9W2B1oYGIjd/nMFAY4AnOJUhsv/iQk41mK3tJBose08sue/gM1KSN62sc0RuW3bkpaOZaHzOmLbSXPJrBQ8Gr3qFHKnmfbgcQsAsoMHlwRA4NPV7wbfd867aJQzluo6t/yboQDkuOdW3QqutKu0dF8pBoNh8wXgG6TxY/gLUukEMhSAGLEhhpxqHtDY2Lhv3z6VEyzLgsw9VbVKBSoINzQ0KAiQ69eEmjZ7ARBN0NoqAZBduZHMAskUXnA/NljAyEjKzT8qg8v7yy7sZ71YYPPIcTM2+jyOH5c10ihtc8q/09P3RAD605ouDganHA3QKTf/EyOW9P6yB9G8yglrybZhMBieNAEQEXj5wd5ffJ2VcZaH8hjzzCv7r3KCvkSWxU1EultUA1USkAAECGhCTZsgkU9+9i63pYGBv9IAWxow7wQBjgCsjFv7jceXxEPef58EALCeSg1wb9ksLh6ZGnEFwC3/6knHRDVuFui6KwDu8p+SkuTzVVVkw2oRgCvBBoNhswVgkAcQgSgFrJEw4RAhZ5cYr9er+3+0nGftaJRuB9IMBQUF8Xhcc44xpsmrqCJrapATl/fXDgz9ly5dJXlH0AEOkIbfnxSA99+HAwdsZ/lPipI9zRowcn3IWcsvshgMbnMiAGmcKwD607Gzw0kBSK0Au9kkssRZ/uvIBmtAx5J9HYPB8Bh2A51gQhYhAuzcuVO39Di3kGaBBmq4JnH2D9C0UaKsE2chr2NxsSoBMjn5OHHScGu/5OdrSNKeclzHPcusEwGoIOxEAFNTK0cAcxNFjgDcvTvuLP8jRFwhITsc7y8zGAxbSQBixKaZlgEej0cVXd3fSVYUL6FJAE2omWWsk4oKeX/H5Mvk/R0Z4F6uXUsu/wcGwPX+VVVbRABkRUXJL/QGhx3/nur9nU3rnBNLWSCWbPkLwB5PWgFgo1NADjYGg+FpEoAECceA/CWUwyErNNCZ4b5ps8RKCwIqK90gQBEGyyQSKbXfkpK05b/F08u2ba4GOAn90eDovTeA4uJcp3P3C4CrIpZFFpgisMGwVQXAxl5kUUc0+xJWtm4idbjmdKddL0VF9rIGyO9LABxLr/3K2zlqYevisjK2BO43wvTZwzPh8HB4eHgmGl1BAJzlvyw2XjgysjAyMjb247EQodQCwPojABMEGAxbRwCUOsghR0dgYYlFue6sSB2uOd1pNwAnAtCxttbNAjm7m0WjSQGQKUTY5Oy/9RjLABQWRu5GQqPahenH6d7f+Z27peDR0XHVAMKh8EJhXnoBIPsisMFg2EoCUECBY0B8Ce31RlbMLqEZUqfdqEyIqwFx4k4WSMfU2m8kkpL9LyraOg0pc3PdHM7E6MTdu9HR0eiD9nRwS8FjY5Oh0MREaMINIJAiw/qLwCYIMBi2jgB48BRT7Gzeqe0ctMVbNBolKzR2aglAc2pm2Yb52cbGpAbs23eNa04Q0B/qd5f/Tt8V55rUKbZMECCbvDs5Oqo9nydXjACEGwEEQy1jY1OTY5OkasX6U0AGw1bCCEAppTvZmdzONxIJh8NjY2Osnbm5OQ0cHx/XJEA55ZpTk7NB2KnV4Lw8JwjQl86WvL8Vi+Eu/22FC1sLdxXf/5XAr/961OdzBGCFmm4eeclS8LTvN8d+6lrXwIYKwDbABAGPC4Mhl42mkkov3t3s1rJaW/yrr4Cay8uba+t/1sLt27eDwaCGqwywne2aUzPvYtfGLoTdzSGGLly4Gb3ZP9B/69bta9eW4wNZUxNrpD6LJ+szncNlL6txglXJz0/m8Y9Xw88VFPycz2frp3TcUrCOVX9cxTM4AzWDiQDux2AwAlBFlfxFDTUePNOx6cHBQXWXVF/JtbYUVm8A9YcZGhoC9rLXcUPWRrsMVwBk/iG/f9Cv/+cXt+l81rXfLh5EkyyDMV/gYdRoRJbvIUX8amU+GLQspcGsmpqVV9o11Oxn/1f5KqIafKxj+X8A/heyLLB50jEYjADkkltHXT31jTRe5KJcv/Iq2tOtpqYm82+EqTH91atXtRmc/DHQQIPTKXDj918oK8MNAgLnA0u4yR/27s0iX/8SK9KMbEV+pDFr8P57ZVm8h3QBeKkaZDmwsHt36ge078sCfZyPH+UouY73l5VjMBiMAKyIXH8zzVo29tOvHM7Fixe1I5B2dFBPmEwSQcr8nDlz5vz58319fYAzlY4+fGwoNlggR+8IQPwf+odG/+Du9u/T+VlHALJbdx4jnRydzmDAoezmT6eah7FdebWkO4fAQ+/sqkb/kbRCVsZgMBgBqKCildYhhoIEu+k+e/astgXV13qVzT969OiuVfvHKmKQ91cvsN7eXpUBSilto+0QhzThJqUF5ApdDQjMz1NXl/T+Xi9bGjehA4FML3dGGAyGLUHuJm28qx5+o4yGCU8yeXHh4unTp+X9dUOn2ryoPYD2edY2n5Zlpd7yPzw8rGqBMj9a+7/33ntqDZ9Pfgcdxzh2mMM+fNibtgtnayuDg0Qit51b/g8dQg/Sh201XI+ewb6kVopeGAxbCBMBbLwGFFDQTvsUUwkSFtaF2QuvvfaabglVUVctYlQPUBygkoAyQrZty/tPTExIG1QxVvZfmR9d5ol6ni95/gQnpAGaig3E1YDUT67+5BUVTE+Tn09TEzt2APZW9v7CA39HZuquH3AMJgVkw5twio1jD3te5EVHDHaw4wIXVAxQhkedXqqqqrTVs3b6dAQgHo9Ho9FQKKScj1P1rf2vtUd6jrSfan+h8AVpAGlsfBwgj9/RsVnf1cqBv4FsdQ4t2f/lYXxpyX4Hg8GwUZgaQBz+KfwSG8de9n6YD5dQsotdPnzXuDYQG7i8hHZ50z7PrgDEYjHE59gTLhmdOlDfc7gtr+1E3tHOzo7c3Bw2Exsss/z9YGMwGAFIINtodrP7E3xC0UAddfvZP8hgkGCIUHQxOjM5M8+8s3uEpKKsu8z7htc3F/e98cb/7TmvL+fm5TXl5tLZufqq3AY+z4PJf/DTX4Dv8zC+kD6+BpnBYNhqGAHIhXk2lDzyVMhtoqmf/iGGRhgJE44SnWVWAmBh6QKP7Sm1SysTldUJv29u7n+88UZPT1NeHhIAHV944SHZmK4HvzZd2QQB9oPn9jmnDAbDVsEIwOKyAMyzOZRSeoQjsjHGxhmfZPInAmDnFVFUapVWnKgomXuHuTkSidhpq6dH3j9p7e1r/95Tvp7IJhFkP3juGudng8GwhTAC4Hj/OEvYNkksi41G9QDZyrn2fDhxQgLg2MS770oDnCBA1tbGgyjI9GwWFKT/YDAYthJGAOJLlgAWF5meJhZjdhaKCikspKCAR4bHo4yPqwFjZ8+6cYCU4ODBTa8G23zAMBgMJgK4eTMxNZUAxse5cYNgkEQCnvFSXs7OnZvodNMpK5MG6OUdG+nrkwa49YB9+9gwzJ0/BoPBCMDwcOLllxOBQAKYnOTmTS5cgPx8mpupq8Pn4xHj9bq5IHn9QDicmguqryczSuAfIdtAGuG/IDMYDFsEIwCz44noaOLPv5GYgOlpgkGorKSzjWPHlHbZLAGwH9a0RBpgWehBNNoPebK+pAbU1LAeDAaDwZDLKzBEYiiRCCTiTZU3pjsRh4upqmL/fo4epaODR4vFMs88Q1kZgQCxGLZ9DXIdGbhDZy579mAwGAyGrMnloxAhPhSPBw4n7lYjV2tZFBWhCKC+Xsv/x5xuLy1FtsxlRwAgF05BBevBYDAYTAqojETZc4m25xLRKDMzSAC2b6ekhCeS88sCoOMp/rKdO+BQIIgCOP5mupRGYQpQxSEFEZAAhPvcg44OKAClQGkXxoJb2BubAw539txp+v889OYL/GVqpCMVAAB3APltOh0J8wcKqeLtMwBhXgQAUD0A8v+UfMvrbwUAAAjAezk/VtzlL/EBAKooCnk8AAAtAIBoEAAAAAEAABAAAAABAAA8yVeyLNvtdpfLRSnV7/dns1mj0ZC4AQAByPPcObderw+HQ61WG4/H3vvVaiVxAwACsN/vt9utc26z2dTr9cVi0W63n0sCIGIgAN77JEmOx2NeOp1OYQ2HAiBu4BK42WwaY6y1tzV8CGs4FABxA98AhsPhZDK5Xq+9Xk9rPZ1OwzoajQRA3EAArLXL5dIYcz6flVKDwWA+n7daLQHwCMBjcOE8TVOtdbfbFQAAr4ECAPgnMACAAAAA7s0HoDFhsamH/bcAAAAASUVORK5CYII=",U8={thin:100,light:300,regular:400,normal:400,medium:500,bold:700,black:900};class G8{constructor(e){this._webGLHelper=e,this.fontRepository="https://raw.githubusercontent.com/etiennepinchon/aframe-fonts/master/fonts/",this._fonts=new En([],JSON.stringify),this._metadataPromises=new Map,this._fontPromises=new Map,this._promises=[],this._defaultFontEntry={metrics:sl(Eg),texture:this._createTextureNow(j8)}}async waitUntilReady(){await Promise.all(this._promises)}getFont(e,n="normal",r="regular"){if(ee(r)&&(r=U8[r.toLowerCase()],!r))throw new Error("Unknown font weight: "+r);const i={family:e,style:n,weight:r};let o=this._fonts.get(i);return o||(o={metrics:void 0,texture:void 0},this._fonts.set(i,o),this._promises.push(this._loadFontEntry(o,i))),o}async _loadFontEntry(e,n){try{const r=await this._loadMetadata(n.family),i=Q8(r,n),o=this.fontRepository+Gg(n.family)+"/"+i.replace(/\.\w+/,""),a=this._createTexture(o+".png"),s=this._loadFont(o+".json");e.texture=await a,e.metrics=await s}catch(r){console.log("Cannot load font. Using default.",r),e.metrics=this._defaultFontEntry.metrics,e.texture=this._defaultFontEntry.texture}}_loadFont(e){let n=this._fontPromises.get(e);return n||(n=fetch(e).then(r=>{if(!r.ok)throw new Error("Could not load font: "+r.status);return r}).then(r=>r.json()).then(r=>sl(r)),this._fontPromises.set(e,n)),n}_loadMetadata(e){const n=Gg(e);let r=this._metadataPromises.get(n);return r||(r=fetch(this.fontRepository+n+"/METADATA.pb").then(i=>{if(!i.ok)throw new Error("Could not load font metadata: "+i.status);return i}).then(i=>i.text()).then(i=>H8(i)).catch(i=>{console.warn(i)}),this._metadataPromises.set(n,r)),r}getDefaultFont(){return this._defaultFontEntry}_createTexture(e){const n=this._webGLHelper.gl;return new Promise((r,i)=>{to(n,{src:e,min:n.LINEAR},(o,a,s)=>{o?i(o):r(a)})})}_createTextureNow(e){const n=this._webGLHelper.gl;let r;const i=new Promise((o,a)=>{r=to(n,{src:e,min:n.LINEAR},(s,c,u)=>{s?a(s):o(c)})});return this._promises.push(i),r}}function Gg(t){return t.toLowerCase().replaceAll(/[^\w]/g,"")}function H8(t){const e=t.split(`
1349
+ `),n=[];let r;for(const i of e)if(i.startsWith("fonts {")&&(r={name:void 0,style:void 0,weight:void 0,filename:void 0,post_script_name:void 0,full_name:void 0,copyright:void 0}),i.startsWith("}")&&(n.push(r),r=void 0),r){let o=i.match(/^\s*([A-Za-z_]+):[ ]?"(.*)"$/);if(o){const a=o[1];r[a]=o[2]}if(o=i.match(/^\s*([A-Za-z_]+):[ ]?(\d+)$/),o){const a=o[1];r[a]=+o[2]}}return n}function Q8(t,e){let n,r=Number.POSITIVE_INFINITY;for(const i of t)if(e.family.localeCompare(i.name,void 0,{sensitivity:"accent"})==0&&e.style==i.style){const o=Math.abs(e.weight-i.weight);o<r&&(r=o,n=i)}return n==null?void 0:n.filename}function V8(t,e){const n=[];let r;for(const i of t.split(`
1350
+ `))if(i.startsWith(">"))r={identifier:i.match(/>(\S+)/)[1],sequence:""},n.push(r);else if(r)r.sequence+=i.trim();else throw new Error("Invalid fasta file!");return n}class Y8{constructor(e,n){this.animator=e,this.disabled=!!n,this.damping=.015,this.acceleration=.3,this.accelerationThreshold=100,this.lowerLimit=.5,this.loop=!1,this.momentum=0,this.timestamp=0,this.callback=null,this._transitionCallback=this.animate.bind(this),this.clear()}clear(){this.momentum=0,this.timestamp=null,this.loop=null,this.callback=null}cancel(){this.loop&&(this.animator.cancelTransition(this._transitionCallback),this.clear())}setMomentum(e,n){if(this.disabled){n(e);return}e*this.momentum<0?this.momentum=0:Math.abs(e)>this.accelerationThreshold?this.momentum=yb([this.momentum,e],this.acceleration):this.momentum=e,this.callback=n,this.loop||this.animate()}animate(e){this.callback(this.momentum);const n=e-this.timestamp||0;this.timestamp=e;const r=Math.abs(this.momentum);this.momentum=Math.sign(this.momentum)*Math.max(0,r-((r*this.damping)**1.5+.04)*n),Math.abs(this.momentum)>this.lowerLimit?(this.loop=!0,this.animator.requestTransition(this._transitionCallback)):this.clear()}}function _8(t){const e={},n=["string","number","boolean"],r=["wheelDelta","wheelDeltaX","wheelDeltaY"];for(const i in t){const o=i;!r.includes(i)&&n.includes(typeof t[o])&&(e[o]=t[o])}return e}function cs(t,e,n=!0){let r,i=a=>{};return function(...s){return new Promise((c,u)=>{const f=()=>{clearTimeout(r),i=l=>{},c(t(...s))};n&&i("debounced"),clearTimeout(r),i=u,r=setTimeout(f,e)})}}const Hg=new Map;async function W8(t,e,n){var o;const r=t.symbol;let i=(o=Hg.get(r))!=null?o:await q8(t.symbol);return i?(Hg.set(r,i),D`<div class="title"><strong>${i.name}</strong> ${i.description}</div><p class="summary">${i.summary}</p><p class="source">Source: NCBI RefSeq Gene</p>`):null}async function X8(t){console.log("Searching: "+t);const e={mode:"cors"},r=(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=gene&term=${t}[GENE]&sort=relevance&retmode=json`,e).then(i=>i.json())).esearchresult.idlist[0];return r?(await fetch(`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=gene&id=${r}&retmode=json`,e).then(a=>a.json())).result[r]:null}const Z8=cs(X8,500);function q8(t){return Z8(t)}const K8=le(".4~r"),J8=le(".4~e");function Qg(t){return t===null?D`<span class="na">NA</span>`:ee(t)?t.substring(0,30):Number.isInteger(t)?""+t:ce(t)?Math.abs(t)>Math.pow(10,8)||Math.abs(t)<Math.pow(10,-8)?J8(t):K8(t):_o(t)?t?"True":"False":"?"+typeof t+" "+t}async function $8(t,e,n){const r=(s,c)=>{var u;for(const[f,l]of Object.entries(e.encoders))if((u=l==null?void 0:l.accessor)!=null&&u.fields.includes(s))switch(f){case"color":case"fill":case"stroke":return D`<span class="color-legend" style="${`background-color: ${l(c)}`}"></span>`}return""},i=D`<table class="attributes">${Object.entries(t).filter(([s,c])=>!s.startsWith("_")).map(([s,c])=>D`<tr><th>${s}</th><td>${Qg(c)} ${r(s,t)}</td></tr>`)}</table>`,o=e.unitView.getTitleText(),a=o?D`<div class="title"><strong>${o}</strong></div>`:"";return D`${a}${i}`}class e5 extends wg{constructor(e,n){super({vconcat:[]},e,void 0,"implicitRoot",1),n.parent=this,this.appendChild(n)}}W("index",Ic,["continuous"]),W("locus",QA,["continuous"]),W("null",Ug,[]),ph("fasta",V8);class Vg{constructor(e,n,r={}){var i;this.container=e,this.spec=n,this.accessorFactory=new U4,this.viewFactory=new UM,this.namedDataProviders=[],this.animator=new z8(()=>this.renderAll()),this.genomeStore=void 0,this.viewVisibilityPredicate=o=>o.isVisibleInSpec(),this._renderingContext=void 0,this._pickingContext=void 0,this._dirtyPickingBuffer=!1,this._currentHover=void 0,this._wheelInertia=new Y8(this.animator),this._keyboardListeners=new Map,this._eventListeners=new Map,this.tooltipHandlers={default:$8,refseqgene:W8,...(i=r.tooltipHandlers)!=null?i:{}},this.viewRoot=void 0}registerNamedDataProvider(e){this.namedDataProviders.unshift(e)}getNamedData(e){for(const n of this.namedDataProviders){const r=n(e);if(r)return r}}broadcast(e,n){const r={type:e,payload:n};this.viewRoot.visit(i=>i.handleBroadcast(r))}_prepareContainer(){this.container.classList.add("genome-spy"),this.container.classList.add("loading"),this._glHelper=new eD(this.container,()=>{if(this.viewRoot){const e=this.viewRoot.getSize().addPadding(this.viewRoot.getOverhang()),n=r=>r.grow>0?void 0:r.px;return{width:n(e.width),height:n(e.height)}}}),this.loadingMessageElement=document.createElement("div"),this.loadingMessageElement.className="loading-message",this.loadingMessageElement.innerHTML='<div class="message">Loading<span class="ellipsis">...</span></div>',this.container.appendChild(this.loadingMessageElement),this.tooltip=new vw(this.container),this.loadingMessageElement.querySelector(".message").addEventListener("transitionend",()=>{this.loadingMessageElement.style.display="none"})}destroy(){this.container.classList.remove("genome-spy"),this.container.classList.remove("loading");for(const[e,n]of this._keyboardListeners)for(const r of n)document.removeEventListener(e,r);for(this._glHelper.finalize();this.container.firstChild;)this.container.firstChild.remove()}async _prepareViewsAndData(){this.spec.genome&&(this.genomeStore=new R8(this),await this.genomeStore.initialize(this.spec.genome));const e=this,n={dataFlow:new Lg,accessorFactory:this.accessorFactory,glHelper:this._glHelper,animator:this.animator,genomeStore:this.genomeStore,fontManager:new G8(this._glHelper),requestLayoutReflow:()=>{},updateTooltip:this.updateTooltip.bind(this),getNamedData:this.getNamedData.bind(this),getCurrentHover:()=>this._currentHover,addKeyboardListener:(s,c)=>{document.addEventListener(s,c);let u=this._keyboardListeners.get(s);u||(u=[],this._keyboardListeners.set(s,u)),u.push(c)},isViewVisible:e.viewVisibilityPredicate,isViewSpec:s=>e.viewFactory.isViewSpec(s),createView:function(s,c,u){return e.viewFactory.createView(s,n,c,u)}},r=this.spec;r.datasets&&this.registerNamedDataProvider(s=>r.datasets[s]),this.viewRoot=n.createView(r,null,"viewRoot"),await Fg(this.viewRoot),(this.viewRoot instanceof ye||this.viewRoot instanceof Nt)&&(this.viewRoot=new e5(n,this.viewRoot)),Pg(this.viewRoot),I8(this.viewRoot),this._glHelper.invalidateSize();const i=[];this.viewRoot.visit(s=>{s instanceof ye&&i.push(s)});const o=Bg(this.viewRoot,n.dataFlow);T8(o),this.broadcast("dataFlowBuilt",o),o.dataSources.forEach(s=>console.log(s.subtreeToString())),i.forEach(s=>s.mark.initializeEncoders());const a=Promise.all(i.map(s=>s.mark.initializeGraphics()));for(const s of i)o.addObserver(c=>{s.mark.initializeData(),s.mark.updateGraphicsData()},s);await n.fontManager.waitUntilReady(),o.initialize(),await Promise.all(o.dataSources.map(s=>s.load())),this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))c.reconfigure()}),this.broadcast("dataLoaded"),await a,this.viewRoot.visit(s=>{for(const c of Object.values(s.resolutions.scale))this._glHelper.createRangeTexture(c)});for(const s of i)s.mark.finalizeGraphicsInitialization();n.requestLayoutReflow=this.computeLayout.bind(this),this.viewRoot.visit(s=>io(s,"size")),this._glHelper.invalidateSize()}async launch(){try{return this._prepareContainer(),await this._prepareViewsAndData(),this.registerMouseEvents(),this.computeLayout(),this.animator.requestRender(),this._glHelper.addEventListener("resize",()=>{this.computeLayout(),this.renderAll()}),!0}catch(e){const n=`${e.view?`At "${e.view.getPathString()}": `:""}${e.toString()}`;return console.error(e.stack),t5(this.container,n),!1}finally{this.container.classList.remove("loading"),window.setTimeout(()=>{this.loadingMessageElement.style.display="none"},2e3)}}registerMouseEvents(){const e=this._glHelper.canvas,n=r=>{var i;if(r instanceof MouseEvent){r.type=="mousemove"&&(this.tooltip.handleMouseMove(r),this._tooltipUpdateRequested=!1,r.buttons==0&&this.renderPickingFramebuffer());const o=e.getBoundingClientRect(),a=new P8(r.clientX-o.left-e.clientLeft,r.clientY-o.top-e.clientTop),s=c=>{this.viewRoot.propagateInteractionEvent(new O8(a,c)),this._tooltipUpdateRequested||this.tooltip.clear()};if(r.type!="wheel"&&this._wheelInertia.cancel(),r.type=="mousemove")this._handlePicking(a.x,a.y);else if(r.type=="mousedown"||r.type=="mouseup")this.renderPickingFramebuffer();else if(r.type=="wheel"){this._tooltipUpdateRequested=!1;const c=r;if(Math.abs(c.deltaX)>Math.abs(c.deltaY))this._currentHover=null,this._wheelInertia.cancel();else{const u=_8(c);this._wheelInertia.setMomentum(c.deltaY*(c.deltaMode?80:1),f=>{const l=new WheelEvent("wheel",{...u,deltaMode:0,deltaX:0,deltaY:f});s(l)}),c.preventDefault();return}}if(r.type=="click"){const c=this._currentHover?{type:r.type,viewPath:[...this._currentHover.mark.unitView.getAncestors()].map(u=>u.name).reverse(),datum:this._currentHover.datum}:{type:r.type,viewPath:null,datum:null};(i=this._eventListeners.get("click"))==null||i.forEach(u=>u(c))}s(r)}};["mousedown","mouseup","wheel","click","mousemove","gesturechange","contextmenu"].forEach(r=>e.addEventListener(r,n)),e.addEventListener("mousedown",()=>{document.addEventListener("mouseup",()=>this.tooltip.popEnabledState(),{once:!0}),this.tooltip.pushEnabledState(!1)}),e.addEventListener("dragstart",r=>r.stopPropagation())}_handlePicking(e,n){var o;const r=this._glHelper.readPickingPixel(e,n),i=r[0]|r[1]<<8|r[2]<<16;if(i==0){this._currentHover=null;return}if(i!==((o=this._currentHover)==null?void 0:o.uniqueId)&&(this._currentHover=null),this._currentHover||this.viewRoot.visit(a=>{if(a instanceof ye){if(a.mark.isPickingParticipant()){const s=a.mark.encoders.uniqueId.accessor;a.getCollector().visitData(c=>{s(c)==i&&(this._currentHover={mark:a.mark,datum:c,uniqueId:i})})}if(this._currentHover)return qn}}),this._currentHover){const a=this._currentHover.mark;this.updateTooltip(this._currentHover.datum,async s=>{var u;if(!a.isPickingParticipant())return;const c=a.properties.tooltip;if(c!==null){const f=(u=c==null?void 0:c.handler)!=null?u:"default",l=this.tooltipHandlers[f];if(!l)throw new Error("No such tooltip handler: "+f);return l(s,a,c==null?void 0:c.params)}})}}updateTooltip(e,n){if(!this._tooltipUpdateRequested||!e)this.tooltip.updateWithDatum(e,n),this._tooltipUpdateRequested=!0;else throw new Error("Tooltip has already been updated! Duplicate event handler?")}computeLayout(){const e=this.viewRoot;if(!e)return;this.broadcast("layout");const n=this._glHelper.getLogicalCanvasSize();if(isNaN(n.width)||isNaN(n.height)){console.log(`NaN in canvas size: ${n.width}x${n.height}. Skipping computeLayout().`);return}this._renderingContext=new jg({picking:!1},this._glHelper),this._pickingContext=new jg({picking:!0},this._glHelper),e.render(new B8(this._renderingContext,this._pickingContext),dn.create(0,0,n.width,n.height)),this.broadcast("layoutComputed")}renderAll(){var e;(e=this._renderingContext)==null||e.renderDeferred(),this._dirtyPickingBuffer=!0}renderPickingFramebuffer(){!this._dirtyPickingBuffer||(this._pickingContext.renderDeferred(),this._dirtyPickingBuffer=!1)}getSearchableViews(){const e=[];return this.viewRoot.visit(n=>{n instanceof ye&&n.getAccessor("search")&&e.push(n)}),e}getNamedScaleResolutions(){const e=new Map;return this.viewRoot.visit(n=>{for(const r of Object.values(n.resolutions.scale))r.name&&e.set(r.name,r)}),e}}function t5(t,e){const n=document.createElement("div");n.className="message-box";const r=document.createElement("div");r.textContent=e,n.appendChild(r),t.appendChild(n)}const Zk="",n5="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY0IDY0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MS41OyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEwMjIxLDAuMDA2ODM4MjUsLTAuMDA2NzEzNiwwLjEwMDM0NywtOC4wMzQyNCwtMTMuMjIyMikiPgogICAgICAgIDxwYXRoIGQ9Ik0yMDguNjI5LDU0OC4xN0MyMDguNjI5LDU0OC4xNyAyMTkuNzY4LDU5NC4zODkgMjM5LjgxNCw2MTkuMjIyQzI1OS44Niw2NDQuMDU1IDMxOS4xMTksNjgwLjgzMSAzMTkuMTE5LDY4MC44MzFDMzE5LjExOSw2ODAuODMxIDM4NS41NTcsNjIyLjkxNSA0MzcuODcsNDk4LjM0NkM0MzcuODcsNDk4LjM0NiA0NTYuMDIxLDQ5OS4yMzYgNDczLjgwOCw0ODYuNDQ2QzQ5MS41OTQsNDczLjY1NiA0OTAuMjM5LDQ3OC41MzQgNDk0Ljg4Myw0NjEuNjJDNDk0Ljg4Myw0NjEuNjIgNTUxLjg0OCw0NjcuOTM3IDYyNS44MjYsNDUxLjg2M0M2NjcuNjM0LDQ0Mi43NzggNzEwLjIzOCw0MjUuNjQ5IDc0Ny4zODIsMzkzLjE0MkM3NDcuMzgyLDM5My4xNDIgNzIxLjk5MiwzNjAuMjQ0IDY4OS40MjIsMjkxLjQ1QzY3Ny4wMjksMjY1LjI3NSA2NDcuNTE4LDI1Ny4wOTggNTkwLjc0NywyMDMuMzA5TDQzOC4wODMsMzkxLjI3M0wyMDguNjI5LDU0OC4xN1oiIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC4xMTsiLz4KICAgIDwvZz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDgxOTg1LC0wLjA1ODI0OTMsMC4wNTgyNDkzLDAuMDgxOTg1LC00MC40NzU0LDM0Ljc2NjgpIj4KICAgICAgICA8cGF0aCBkPSJNNTYxLjU4OCwzNDkuMTU1QzU2MS41ODgsMzQ5LjE1NSA1MTYuMjk3LDI3MS4zNDEgMzI4Ljg0MSwyNTIuMDQ0QzMyOC44NDEsMjUyLjA0NCAzMDIuMzQyLDMyNS4xODkgMzA3LjY4NiwzNjguMDU2QzMxMy4wMzEsNDEwLjkyMiAzMDMuMDAxLDQ1Ni4xNDcgMzI5LjEzMiw1MDEuMTc0QzMyOS4xMzIsNTAxLjE3NCA0NDMuMTE0LDUwNi43NDMgNTU0LjY0OSw0MjguNDY5TDYyOS4yMDQsNDMyLjExMkM2MjkuMjA0LDQzMi4xMTIgNjczLjc1NSw1MzQuMzUxIDg1Ni45NjQsNTU0LjM3NUM4NTYuOTY0LDU1NC4zNzUgODg2LjcxNyw0OTEuNzY4IDg3OS4xOTMsNDE3LjQ3OEM4NzEuMjExLDMzOC42NzMgODcxLjcxNiwyOTMuNDQzIDg3MS43MTYsMjkzLjQ0M0M4NzEuNzE2LDI5My40NDMgNzc1LjQ4NSwyODMuOTI4IDYzNS40MTgsMzYxLjc5NUw1NjEuNTg4LDM0OS4xNTVaIiBzdHlsZT0iZmlsbDpyZ2IoMTI3LDE4NywyMjEpOyIvPgogICAgICAgIDxjbGlwUGF0aCBpZD0iX2NsaXAxIj4KICAgICAgICAgICAgPHBhdGggZD0iTTU2MS41ODgsMzQ5LjE1NUM1NjEuNTg4LDM0OS4xNTUgNTE2LjI5NywyNzEuMzQxIDMyOC44NDEsMjUyLjA0NEMzMjguODQxLDI1Mi4wNDQgMzAyLjM0MiwzMjUuMTg5IDMwNy42ODYsMzY4LjA1NkMzMTMuMDMxLDQxMC45MjIgMzAzLjAwMSw0NTYuMTQ3IDMyOS4xMzIsNTAxLjE3NEMzMjkuMTMyLDUwMS4xNzQgNDQzLjExNCw1MDYuNzQzIDU1NC42NDksNDI4LjQ2OUw2MjkuMjA0LDQzMi4xMTJDNjI5LjIwNCw0MzIuMTEyIDY3My43NTUsNTM0LjM1MSA4NTYuOTY0LDU1NC4zNzVDODU2Ljk2NCw1NTQuMzc1IDg4Ni43MTcsNDkxLjc2OCA4NzkuMTkzLDQxNy40NzhDODcxLjIxMSwzMzguNjczIDg3MS43MTYsMjkzLjQ0MyA4NzEuNzE2LDI5My40NDNDODcxLjcxNiwyOTMuNDQzIDc3NS40ODUsMjgzLjkyOCA2MzUuNDE4LDM2MS43OTVMNTYxLjU4OCwzNDkuMTU1WiIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1ODYzNywwLjQ1ODkyLC0wLjQ1ODkyLDAuNzU4NjM3LDQyNS42MzUsLTEyMS4yMTMpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODYuODczLDM5Ny4yNDFDMzcxLjM0NSwzODMuNjI4IDMzNS4xMzgsMzc0Ljc4MiAyOTAuNjQ0LDM4MC41NDNDMjQ2LjE0OSwzODYuMzA0IDE5Ni44MjcsNDAyLjI2NiAxNzguODAyLDQxMi4wNjVDMTY4LjIwMiw0MTcuODI4IDE1MS40OTQsNDI5LjM1NCAxNTAuNjgyLDQzOS4zMzRDMTQ5LjUyNyw0NTMuNTI4IDE1My41OTMsNDc3LjA2NiAxNjUuNjI1LDQ5MS4yODRDMTcxLjY5LDQ5OC40NTEgMTc5LjkyNyw1MDMuNDQ1IDE5My44MzgsNTA1LjQyM0MyMTEuNzAxLDUwNy45NjMgMjUyLjcxNCw0ODAuNjI3IDI3NS4zOTksNDY5LjIyQzI5OS4zMzIsNDU3LjE4NyAzMTMuOTgxLDQ1NC41NiAzMzguMzg2LDQ0Ny4wMTRDMzM4LjM4Niw0NDcuMDE0IDI5MS4zNDYsNDc4LjU4NyAyNzAuMjA1LDQ5NC4zOTNDMjM5LjYxLDUxNy4yNjggMjE4LjU3NSw1MjIuNDQ0IDIxMi44NTksNTM5Ljg5N0MyMDkuNzY2LDU0OS4zNCAyMTIuMjM3LDU2Ny43NjcgMjIwLjM1NCw1NzcuNTM4QzIyOS40MjcsNTg4LjQ2MSAyMzMuMTk3LDU5NS4wNjkgMjU0LjU5MSw1OTcuNjI0QzI2Ny4zMDMsNTk5LjE0MyAyNzYuNjg1LDU5OC44MDIgMzE0LjM3LDU2OC45NUMzMzYuMDYsNTUxLjc2NyAzNzAuMjk3LDUwOS44MTcgMzgxLjQxMiw0OTQuNjE2QzM5Ny41ODEsNDcyLjUwNiA0MDUuMTY1LDQ1MS40NjIgNDAyLjY1Niw0MzUuMDRDMzk5LjA0NSw0MTEuMzkxIDM5NC4yNTksNDAzLjcxNiAzODYuODczLDM5Ny4yNDFaIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1MjE0NSwwLjQ1NDk5MywtMC40NTQ5OTMsMC43NTIxNDUsNDY4LjM2LC0xMDguMjkzKSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg0LjczMywzNzguOTM0QzQ3OS4zMywzNjcuODg2IDQ2Ny4wOTIsMzUwLjQ1MiA0ODMuODg2LDMyNS4yMDVDNTAyLjE3MiwyOTcuNzE3IDUxNC44OTgsMjgwLjkzOCA1MjguMTE3LDI2NC42MzJDNTQxLjMzNSwyNDguMzI2IDU3NC43OTMsMjE4LjQ0NyA1ODcuNzM5LDIxMi41M0M2MDAuNjg0LDIwNi42MTMgNjIxLjAyNiwyMDMuODUyIDYzMS44ODksMjEyLjg0MUM2NDIuODc0LDIyMS45MyA2NDguNDE2LDIzMy4zNzcgNjU0LjkyLDI0NS40NzhDNjYyLjMzMSwyNTkuMjY3IDY2Ny4zMTgsMjc0LjgwOCA2NTYuNTE4LDI4OC4yNzhDNjQxLjA5MywzMDcuNTE1IDYyMi4yNDIsMzA1LjI5NCA1OTQuOTEyLDMxOS44NDRDNTY3LjI0NCwzMzQuNTczIDU1Mi42NDQsMzQyLjk0MyA1MzkuMjQ0LDM1NS43MDNDNTM5LjI0NCwzNTUuNzAzIDU5MS40MzEsMzM0LjExNCA2MjEuMjI5LDMyNC40NzRDNjUxLjAyNywzMTQuODMzIDY4MC45NTIsMzA0LjQ2MSA2OTUuOTk1LDMxNS45NzVDNzExLjAzOCwzMjcuNDkgNzEwLjYzMSwzMzEuNDYzIDcxNC40MjUsMzQ3LjE4N0M3MTkuMTA3LDM2Ni41OSA3MDcuMjMxLDM4NS4xNjUgNjk0LjI5NCwzOTUuODM4QzY4MS4zNTYsNDA2LjUxIDY1OS45NTgsNDExLjc1NiA2MzYuODc1LDQxNi44NTJDNjA2LjQyLDQyMy41NzYgNTQwLjI3OCw0MzEuOTE3IDUxMi44MTksNDE5LjM2NkM0ODUuMzYxLDQwNi44MTUgNDg4LjQ4OCwzODYuNjEzIDQ4NC43MzMsMzc4LjkzNFoiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik01NjEuNTg4LDM0OS4xNTVDNTYxLjU4OCwzNDkuMTU1IDUxNi4yOTcsMjcxLjM0MSAzMjguODQxLDI1Mi4wNDRDMzI4Ljg0MSwyNTIuMDQ0IDMwMi4zNDIsMzI1LjE4OSAzMDcuNjg2LDM2OC4wNTZDMzEzLjAzMSw0MTAuOTIyIDMwMy4wMDEsNDU2LjE0NyAzMjkuMTMyLDUwMS4xNzRDMzI5LjEzMiw1MDEuMTc0IDQ0My4xMTQsNTA2Ljc0MyA1NTQuNjQ5LDQyOC40NjlMNjI5LjIwNCw0MzIuMTEyQzYyOS4yMDQsNDMyLjExMiA2NzMuNzU1LDUzNC4zNTEgODU2Ljk2NCw1NTQuMzc1Qzg1Ni45NjQsNTU0LjM3NSA4ODYuNzE3LDQ5MS43NjggODc5LjE5Myw0MTcuNDc4Qzg3MS4yMTEsMzM4LjY3MyA4NzEuNzE2LDI5My40NDMgODcxLjcxNiwyOTMuNDQzQzg3MS43MTYsMjkzLjQ0MyA3NzUuNDg1LDI4My45MjggNjM1LjQxOCwzNjEuNzk1TDU2MS41ODgsMzQ5LjE1NVoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxNi41N3B4OyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMDAyOTgsLTAuMDA3NDA0ODgsMC4wMDc0MDQ4OCwwLjEwMDI5OCwtMTUuNzQ1NywtNS4xNzUyOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0zODQuOTE2LDM4NS40NTlDMzg0LjkxNiwzODUuNDU5IDQzMC43ODEsMzQ3Ljg2OCA0NTAuMDI3LDM1MC4wOTNDNDcxLjY4NSwzNTIuNTk2IDQ5MC40OSw0MDcuNzQ3IDQ5MC4yMDgsNDI0LjQxNkM0ODkuOTI3LDQ0MS4wODUgNDQyLjk0OCw0NjkuODY2IDQyMi41MzcsNDY2LjI0QzQyMi41MzcsNDY2LjI0IDQyNS41MjUsNDQyLjEyOSA0MTIuMTE0LDQxMy4zMzVDMzk4LjcwMiwzODQuNTQgMzg0LjkxNiwzODUuNDU5IDM4NC45MTYsMzg1LjQ1OVoiIHN0eWxlPSJmaWxsOnJnYigxMjcsMTg3LDIyMSk7Ii8+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjkxNiwzODUuNDU5QzM4NC45MTYsMzg1LjQ1OSA0MzAuNzgxLDM0Ny44NjggNDUwLjAyNywzNTAuMDkzQzQ3MS42ODUsMzUyLjU5NiA0OTAuNDksNDA3Ljc0NyA0OTAuMjA4LDQyNC40MTZDNDg5LjkyNyw0NDEuMDg1IDQ0Mi45NDgsNDY5Ljg2NiA0MjIuNTM3LDQ2Ni4yNEM0MjIuNTM3LDQ2Ni4yNCA0MjUuNTI1LDQ0Mi4xMjkgNDEyLjExNCw0MTMuMzM1QzM5OC43MDIsMzg0LjU0IDM4NC45MTYsMzg1LjQ1OSAzODQuOTE2LDM4NS40NTlaIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAyKSI+CiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuOTA5MDY5LDMuNjc2NDFlLTE3LC0zLjc5ODE4ZS0xNywwLjg1ODUyLDM3LjA1MSw1Mi4xODI5KSI+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDEzLjI4Miw0MDIuNjk3QzQzMC43Nyw0MjEuNTggNDIzLjMwNyw0NDguNDI2IDQ0MS42ODMsNDQ2LjEzN0M0NjMuNDA5LDQ0My40MzEgNDcyLjYwNCw0MzAuMzU2IDQ3My4zMTYsNDEzLjQwMkM0NzQuMDI4LDM5Ni40NDggNDcyLjI0NSwzOTMuOTExIDQ2Ni4xNzIsMzc1LjMyMUM0NjAuMDk5LDM1Ni43MzEgNDQ3Ljk1MywzNTIuMTc2IDQyMi44NDIsMzU3LjE3OUM0MDEuOTU3LDM2MS4zMzkgNDA1LjAzOSwzNjAuMjE1IDM5OC43MzUsMzY3LjIyOEMzOTIuNDMsMzc0LjI0MiAzODQuMzE1LDM5My4xODIgMzg0LjMxNSwzOTMuMTgyQzM4NC4zMTUsMzkzLjE4MiAzOTIuNzE1LDM4MC40OTIgNDEzLjI4Miw0MDIuNjk3WiIgc3R5bGU9ImZpbGw6d2hpdGU7Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPHBhdGggZD0iTTM4NC45MTYsMzg1LjQ1OUMzODQuOTE2LDM4NS40NTkgNDMwLjc4MSwzNDcuODY4IDQ1MC4wMjcsMzUwLjA5M0M0NzEuNjg1LDM1Mi41OTYgNDkwLjQ5LDQwNy43NDcgNDkwLjIwOCw0MjQuNDE2QzQ4OS45MjcsNDQxLjA4NSA0NDIuOTQ4LDQ2OS44NjYgNDIyLjUzNyw0NjYuMjRDNDIyLjUzNyw0NjYuMjQgNDI1LjUyNSw0NDIuMTI5IDQxMi4xMTQsNDEzLjMzNUMzOTguNzAyLDM4NC41NCAzODQuOTE2LDM4NS40NTkgMzg0LjkxNiwzODUuNDU5WiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjE2LjU3cHg7Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=";/**
1351
1351
  * @license
1352
1352
  * Copyright 2019 Google LLC
1353
1353
  * SPDX-License-Identifier: BSD-3-Clause
1354
- */const Tl=window.ShadowRoot&&(window.ShadyCSS===void 0||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,qg=Symbol(),Kg=new Map;class y5{constructor(e,n){if(this._$cssResult$=!0,n!==qg)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e}get styleSheet(){let e=Kg.get(this.cssText);return Tl&&e===void 0&&(Kg.set(this.cssText,e=new CSSStyleSheet),e.replaceSync(this.cssText)),e}toString(){return this.cssText}}const v5=t=>new y5(typeof t=="string"?t:t+"",qg),b5=(t,e)=>{Tl?t.adoptedStyleSheets=e.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet):e.forEach(n=>{const r=document.createElement("style"),i=window.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,t.appendChild(r)})},Jg=Tl?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let n="";for(const r of e.cssRules)n+=r.cssText;return v5(n)})(t):t;/**
1354
+ */const Ml=window.ShadowRoot&&(window.ShadyCSS===void 0||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Yg=Symbol(),_g=new Map;class r5{constructor(e,n){if(this._$cssResult$=!0,n!==Yg)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e}get styleSheet(){let e=_g.get(this.cssText);return Ml&&e===void 0&&(_g.set(this.cssText,e=new CSSStyleSheet),e.replaceSync(this.cssText)),e}toString(){return this.cssText}}const i5=t=>new r5(typeof t=="string"?t:t+"",Yg),o5=(t,e)=>{Ml?t.adoptedStyleSheets=e.map(n=>n instanceof CSSStyleSheet?n:n.styleSheet):e.forEach(n=>{const r=document.createElement("style"),i=window.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=n.cssText,t.appendChild(r)})},Wg=Ml?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let n="";for(const r of e.cssRules)n+=r.cssText;return i5(n)})(t):t;/**
1355
1355
  * @license
1356
1356
  * Copyright 2017 Google LLC
1357
1357
  * SPDX-License-Identifier: BSD-3-Clause
1358
- */var Il;const $g=window.trustedTypes,A5=$g?$g.emptyScript:"",e1=window.reactiveElementPolyfillSupport,Nl={toAttribute(t,e){switch(e){case Boolean:t=t?A5:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let n=t;switch(e){case Boolean:n=t!==null;break;case Number:n=t===null?null:Number(t);break;case Object:case Array:try{n=JSON.parse(t)}catch{n=null}}return n}},t1=(t,e)=>e!==t&&(e==e||t==t),kl={attribute:!0,type:String,converter:Nl,reflect:!1,hasChanged:t1};class _r extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(e){var n;(n=this.l)!==null&&n!==void 0||(this.l=[]),this.l.push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach((n,r)=>{const i=this._$Eh(r,n);i!==void 0&&(this._$Eu.set(i,r),e.push(i))}),e}static createProperty(e,n=kl){if(n.state&&(n.attribute=!1),this.finalize(),this.elementProperties.set(e,n),!n.noAccessor&&!this.prototype.hasOwnProperty(e)){const r=typeof e=="symbol"?Symbol():"__"+e,i=this.getPropertyDescriptor(e,r,n);i!==void 0&&Object.defineProperty(this.prototype,e,i)}}static getPropertyDescriptor(e,n,r){return{get(){return this[n]},set(i){const o=this[e];this[n]=i,this.requestUpdate(e,o,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||kl}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),this.elementProperties=new Map(e.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const n=this.properties,r=[...Object.getOwnPropertyNames(n),...Object.getOwnPropertySymbols(n)];for(const i of r)this.createProperty(i,n[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const n=[];if(Array.isArray(e)){const r=new Set(e.flat(1/0).reverse());for(const i of r)n.unshift(Jg(i))}else e!==void 0&&n.push(Jg(e));return n}static _$Eh(e,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof e=="string"?e.toLowerCase():void 0}o(){var e;this._$Ep=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$Em(),this.requestUpdate(),(e=this.constructor.l)===null||e===void 0||e.forEach(n=>n(this))}addController(e){var n,r;((n=this._$Eg)!==null&&n!==void 0?n:this._$Eg=[]).push(e),this.renderRoot!==void 0&&this.isConnected&&((r=e.hostConnected)===null||r===void 0||r.call(e))}removeController(e){var n;(n=this._$Eg)===null||n===void 0||n.splice(this._$Eg.indexOf(e)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach((e,n)=>{this.hasOwnProperty(n)&&(this._$Et.set(n,this[n]),delete this[n])})}createRenderRoot(){var e;const n=(e=this.shadowRoot)!==null&&e!==void 0?e:this.attachShadow(this.constructor.shadowRootOptions);return b5(n,this.constructor.elementStyles),n}connectedCallback(){var e;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$Eg)===null||e===void 0||e.forEach(n=>{var r;return(r=n.hostConnected)===null||r===void 0?void 0:r.call(n)})}enableUpdating(e){}disconnectedCallback(){var e;(e=this._$Eg)===null||e===void 0||e.forEach(n=>{var r;return(r=n.hostDisconnected)===null||r===void 0?void 0:r.call(n)})}attributeChangedCallback(e,n,r){this._$AK(e,r)}_$ES(e,n,r=kl){var i,o;const a=this.constructor._$Eh(e,r);if(a!==void 0&&r.reflect===!0){const s=((o=(i=r.converter)===null||i===void 0?void 0:i.toAttribute)!==null&&o!==void 0?o:Nl.toAttribute)(n,r.type);this._$Ei=e,s==null?this.removeAttribute(a):this.setAttribute(a,s),this._$Ei=null}}_$AK(e,n){var r,i,o;const a=this.constructor,s=a._$Eu.get(e);if(s!==void 0&&this._$Ei!==s){const c=a.getPropertyOptions(s),u=c.converter,f=(o=(i=(r=u)===null||r===void 0?void 0:r.fromAttribute)!==null&&i!==void 0?i:typeof u=="function"?u:null)!==null&&o!==void 0?o:Nl.fromAttribute;this._$Ei=s,this[s]=f(n,c.type),this._$Ei=null}}requestUpdate(e,n,r){let i=!0;e!==void 0&&(((r=r||this.constructor.getPropertyOptions(e)).hasChanged||t1)(this[e],n)?(this._$AL.has(e)||this._$AL.set(e,n),r.reflect===!0&&this._$Ei!==e&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(e,r))):i=!1),!this.isUpdatePending&&i&&(this._$Ep=this._$E_())}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep}catch(n){Promise.reject(n)}const e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach((i,o)=>this[o]=i),this._$Et=void 0);let n=!1;const r=this._$AL;try{n=this.shouldUpdate(r),n?(this.willUpdate(r),(e=this._$Eg)===null||e===void 0||e.forEach(i=>{var o;return(o=i.hostUpdate)===null||o===void 0?void 0:o.call(i)}),this.update(r)):this._$EU()}catch(i){throw n=!1,this._$EU(),i}n&&this._$AE(r)}willUpdate(e){}_$AE(e){var n;(n=this._$Eg)===null||n===void 0||n.forEach(r=>{var i;return(i=r.hostUpdated)===null||i===void 0?void 0:i.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(e){return!0}update(e){this._$EC!==void 0&&(this._$EC.forEach((n,r)=>this._$ES(r,this[r],n)),this._$EC=void 0),this._$EU()}updated(e){}firstUpdated(e){}}_r.finalized=!0,_r.elementProperties=new Map,_r.elementStyles=[],_r.shadowRootOptions={mode:"open"},e1==null||e1({ReactiveElement:_r}),((Il=globalThis.reactiveElementVersions)!==null&&Il!==void 0?Il:globalThis.reactiveElementVersions=[]).push("1.3.2");/**
1358
+ */var Tl;const Xg=window.trustedTypes,a5=Xg?Xg.emptyScript:"",Zg=window.reactiveElementPolyfillSupport,Il={toAttribute(t,e){switch(e){case Boolean:t=t?a5:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let n=t;switch(e){case Boolean:n=t!==null;break;case Number:n=t===null?null:Number(t);break;case Object:case Array:try{n=JSON.parse(t)}catch{n=null}}return n}},qg=(t,e)=>e!==t&&(e==e||t==t),kl={attribute:!0,type:String,converter:Il,reflect:!1,hasChanged:qg};class Vr extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(e){var n;(n=this.l)!==null&&n!==void 0||(this.l=[]),this.l.push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach((n,r)=>{const i=this._$Eh(r,n);i!==void 0&&(this._$Eu.set(i,r),e.push(i))}),e}static createProperty(e,n=kl){if(n.state&&(n.attribute=!1),this.finalize(),this.elementProperties.set(e,n),!n.noAccessor&&!this.prototype.hasOwnProperty(e)){const r=typeof e=="symbol"?Symbol():"__"+e,i=this.getPropertyDescriptor(e,r,n);i!==void 0&&Object.defineProperty(this.prototype,e,i)}}static getPropertyDescriptor(e,n,r){return{get(){return this[n]},set(i){const o=this[e];this[n]=i,this.requestUpdate(e,o,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||kl}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),this.elementProperties=new Map(e.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const n=this.properties,r=[...Object.getOwnPropertyNames(n),...Object.getOwnPropertySymbols(n)];for(const i of r)this.createProperty(i,n[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const n=[];if(Array.isArray(e)){const r=new Set(e.flat(1/0).reverse());for(const i of r)n.unshift(Wg(i))}else e!==void 0&&n.push(Wg(e));return n}static _$Eh(e,n){const r=n.attribute;return r===!1?void 0:typeof r=="string"?r:typeof e=="string"?e.toLowerCase():void 0}o(){var e;this._$Ep=new Promise(n=>this.enableUpdating=n),this._$AL=new Map,this._$Em(),this.requestUpdate(),(e=this.constructor.l)===null||e===void 0||e.forEach(n=>n(this))}addController(e){var n,r;((n=this._$Eg)!==null&&n!==void 0?n:this._$Eg=[]).push(e),this.renderRoot!==void 0&&this.isConnected&&((r=e.hostConnected)===null||r===void 0||r.call(e))}removeController(e){var n;(n=this._$Eg)===null||n===void 0||n.splice(this._$Eg.indexOf(e)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach((e,n)=>{this.hasOwnProperty(n)&&(this._$Et.set(n,this[n]),delete this[n])})}createRenderRoot(){var e;const n=(e=this.shadowRoot)!==null&&e!==void 0?e:this.attachShadow(this.constructor.shadowRootOptions);return o5(n,this.constructor.elementStyles),n}connectedCallback(){var e;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$Eg)===null||e===void 0||e.forEach(n=>{var r;return(r=n.hostConnected)===null||r===void 0?void 0:r.call(n)})}enableUpdating(e){}disconnectedCallback(){var e;(e=this._$Eg)===null||e===void 0||e.forEach(n=>{var r;return(r=n.hostDisconnected)===null||r===void 0?void 0:r.call(n)})}attributeChangedCallback(e,n,r){this._$AK(e,r)}_$ES(e,n,r=kl){var i,o;const a=this.constructor._$Eh(e,r);if(a!==void 0&&r.reflect===!0){const s=((o=(i=r.converter)===null||i===void 0?void 0:i.toAttribute)!==null&&o!==void 0?o:Il.toAttribute)(n,r.type);this._$Ei=e,s==null?this.removeAttribute(a):this.setAttribute(a,s),this._$Ei=null}}_$AK(e,n){var r,i,o;const a=this.constructor,s=a._$Eu.get(e);if(s!==void 0&&this._$Ei!==s){const c=a.getPropertyOptions(s),u=c.converter,f=(o=(i=(r=u)===null||r===void 0?void 0:r.fromAttribute)!==null&&i!==void 0?i:typeof u=="function"?u:null)!==null&&o!==void 0?o:Il.fromAttribute;this._$Ei=s,this[s]=f(n,c.type),this._$Ei=null}}requestUpdate(e,n,r){let i=!0;e!==void 0&&(((r=r||this.constructor.getPropertyOptions(e)).hasChanged||qg)(this[e],n)?(this._$AL.has(e)||this._$AL.set(e,n),r.reflect===!0&&this._$Ei!==e&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(e,r))):i=!1),!this.isUpdatePending&&i&&(this._$Ep=this._$E_())}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep}catch(n){Promise.reject(n)}const e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach((i,o)=>this[o]=i),this._$Et=void 0);let n=!1;const r=this._$AL;try{n=this.shouldUpdate(r),n?(this.willUpdate(r),(e=this._$Eg)===null||e===void 0||e.forEach(i=>{var o;return(o=i.hostUpdate)===null||o===void 0?void 0:o.call(i)}),this.update(r)):this._$EU()}catch(i){throw n=!1,this._$EU(),i}n&&this._$AE(r)}willUpdate(e){}_$AE(e){var n;(n=this._$Eg)===null||n===void 0||n.forEach(r=>{var i;return(i=r.hostUpdated)===null||i===void 0?void 0:i.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(e){return!0}update(e){this._$EC!==void 0&&(this._$EC.forEach((n,r)=>this._$ES(r,this[r],n)),this._$EC=void 0),this._$EU()}updated(e){}firstUpdated(e){}}Vr.finalized=!0,Vr.elementProperties=new Map,Vr.elementStyles=[],Vr.shadowRootOptions={mode:"open"},Zg==null||Zg({ReactiveElement:Vr}),((Tl=globalThis.reactiveElementVersions)!==null&&Tl!==void 0?Tl:globalThis.reactiveElementVersions=[]).push("1.3.2");/**
1359
1359
  * @license
1360
1360
  * Copyright 2017 Google LLC
1361
1361
  * SPDX-License-Identifier: BSD-3-Clause
1362
- */var Ll,Ol;class Ot extends _r{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var e,n;const r=super.createRenderRoot();return(e=(n=this.renderOptions).renderBefore)!==null&&e!==void 0||(n.renderBefore=r.firstChild),r}update(e){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Dt=Be(n,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),(e=this._$Dt)===null||e===void 0||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._$Dt)===null||e===void 0||e.setConnected(!1)}render(){return xe}}Ot.finalized=!0,Ot._$litElement$=!0,(Ll=globalThis.litElementHydrateSupport)===null||Ll===void 0||Ll.call(globalThis,{LitElement:Ot});const n1=globalThis.litElementPolyfillSupport;n1==null||n1({LitElement:Ot}),((Ol=globalThis.litElementVersions)!==null&&Ol!==void 0?Ol:globalThis.litElementVersions=[]).push("3.2.0");/**
1362
+ */var Nl,Ll;class Bt extends Vr{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var e,n;const r=super.createRenderRoot();return(e=(n=this.renderOptions).renderBefore)!==null&&e!==void 0||(n.renderBefore=r.firstChild),r}update(e){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Dt=Be(n,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),(e=this._$Dt)===null||e===void 0||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._$Dt)===null||e===void 0||e.setConnected(!1)}render(){return xe}}Bt.finalized=!0,Bt._$litElement$=!0,(Nl=globalThis.litElementHydrateSupport)===null||Nl===void 0||Nl.call(globalThis,{LitElement:Bt});const Kg=globalThis.litElementPolyfillSupport;Kg==null||Kg({LitElement:Bt}),((Ll=globalThis.litElementVersions)!==null&&Ll!==void 0?Ll:globalThis.litElementVersions=[]).push("3.2.0");/**
1363
1363
  * @license
1364
1364
  * Copyright 2017 Google LLC
1365
1365
  * SPDX-License-Identifier: BSD-3-Clause
1366
- */const Bt={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Wr=t=>(...e)=>({_$litDirective$:t,values:e});class go{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,n,r){this._$Ct=e,this._$AM=n,this._$Ci=r}_$AS(e,n){return this.update(e,n)}update(e,n){return this.render(...n)}}/**
1366
+ */const Ot={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Yr=t=>(...e)=>({_$litDirective$:t,values:e});class ho{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,n,r){this._$Ct=e,this._$AM=n,this._$Ci=r}_$AS(e,n){return this.update(e,n)}update(e,n){return this.render(...n)}}/**
1367
1367
  * @license
1368
1368
  * Copyright 2018 Google LLC
1369
1369
  * SPDX-License-Identifier: BSD-3-Clause
1370
- */const w5=Wr(class extends go{constructor(t){var e;if(super(t),t.type!==Bt.ATTRIBUTE||t.name!=="class"||((e=t.strings)===null||e===void 0?void 0:e.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter(e=>t[e]).join(" ")+" "}update(t,[e]){var n,r;if(this.et===void 0){this.et=new Set,t.strings!==void 0&&(this.st=new Set(t.strings.join(" ").split(/\s/).filter(o=>o!=="")));for(const o in e)e[o]&&!(!((n=this.st)===null||n===void 0)&&n.has(o))&&this.et.add(o);return this.render(e)}const i=t.element.classList;this.et.forEach(o=>{o in e||(i.remove(o),this.et.delete(o))});for(const o in e){const a=!!e[o];a===this.et.has(o)||((r=this.st)===null||r===void 0?void 0:r.has(o))||(a?(i.add(o),this.et.add(o)):(i.remove(o),this.et.delete(o)))}return xe}});/*!
1370
+ */const s5=Yr(class extends ho{constructor(t){var e;if(super(t),t.type!==Ot.ATTRIBUTE||t.name!=="class"||((e=t.strings)===null||e===void 0?void 0:e.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter(e=>t[e]).join(" ")+" "}update(t,[e]){var n,r;if(this.et===void 0){this.et=new Set,t.strings!==void 0&&(this.st=new Set(t.strings.join(" ").split(/\s/).filter(o=>o!=="")));for(const o in e)e[o]&&!(!((n=this.st)===null||n===void 0)&&n.has(o))&&this.et.add(o);return this.render(e)}const i=t.element.classList;this.et.forEach(o=>{o in e||(i.remove(o),this.et.delete(o))});for(const o in e){const a=!!e[o];a===this.et.has(o)||((r=this.st)===null||r===void 0?void 0:r.has(o))||(a?(i.add(o),this.et.add(o)):(i.remove(o),this.et.delete(o)))}return xe}});/*!
1371
1371
  * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com
1372
1372
  * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
1373
1373
  * Copyright 2022 Fonticons, Inc.
1374
- */var x5={prefix:"fas",iconName:"arrow-down-wide-short",icon:[576,512,["sort-amount-asc","sort-amount-down"],"f160","M416 288h-95.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H416c17.67 0 32-14.33 32-32S433.7 288 416 288zM544 32h-223.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H544c17.67 0 32-14.33 32-32S561.7 32 544 32zM352 416h-32c-17.67 0-32 14.33-32 32s14.33 32 32 32h32c17.67 0 31.1-14.33 31.1-32S369.7 416 352 416zM480 160h-159.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H480c17.67 0 32-14.33 32-32S497.7 160 480 160zM192.4 330.7L160 366.1V64.03C160 46.33 145.7 32 128 32S96 46.33 96 64.03v302L63.6 330.7c-6.312-6.883-14.94-10.38-23.61-10.38c-7.719 0-15.47 2.781-21.61 8.414c-13.03 11.95-13.9 32.22-1.969 45.27l87.1 96.09c12.12 13.26 35.06 13.26 47.19 0l87.1-96.09c11.94-13.05 11.06-33.31-1.969-45.27C224.6 316.8 204.4 317.7 192.4 330.7z"]},C5=x5,E5={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M480 256c0 123.4-100.5 223.9-223.9 223.9c-48.86 0-95.19-15.58-134.2-44.86c-14.14-10.59-17-30.66-6.391-44.81c10.61-14.09 30.69-16.97 44.8-6.375c27.84 20.91 61 31.94 95.89 31.94C344.3 415.8 416 344.1 416 256s-71.67-159.8-159.8-159.8C205.9 96.22 158.6 120.3 128.6 160H192c17.67 0 32 14.31 32 32S209.7 224 192 224H48c-17.67 0-32-14.31-32-32V48c0-17.69 14.33-32 32-32s32 14.31 32 32v70.23C122.1 64.58 186.1 32.11 256.1 32.11C379.5 32.11 480 132.6 480 256z"]},S5=E5,D5={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M496 48V192c0 17.69-14.31 32-32 32H320c-17.69 0-32-14.31-32-32s14.31-32 32-32h63.39c-29.97-39.7-77.25-63.78-127.6-63.78C167.7 96.22 96 167.9 96 256s71.69 159.8 159.8 159.8c34.88 0 68.03-11.03 95.88-31.94c14.22-10.53 34.22-7.75 44.81 6.375c10.59 14.16 7.75 34.22-6.375 44.81c-39.03 29.28-85.36 44.86-134.2 44.86C132.5 479.9 32 379.4 32 256s100.5-223.9 223.9-223.9c69.15 0 134 32.47 176.1 86.12V48c0-17.69 14.31-32 32-32S496 30.31 496 48z"]},M5=D5,T5={prefix:"fas",iconName:"backward-step",icon:[320,512,["step-backward"],"f048","M31.1 64.03c-17.67 0-31.1 14.33-31.1 32v319.9c0 17.67 14.33 32 32 32C49.67 447.1 64 433.6 64 415.1V96.03C64 78.36 49.67 64.03 31.1 64.03zM267.5 71.41l-192 159.1C67.82 237.8 64 246.9 64 256c0 9.094 3.82 18.18 11.44 24.62l192 159.1c20.63 17.12 52.51 2.75 52.51-24.62v-319.9C319.1 68.66 288.1 54.28 267.5 71.41z"]},I5=T5,r1={prefix:"fas",iconName:"bookmark",icon:[384,512,[61591,128278],"f02e","M384 48V512l-192-112L0 512V48C0 21.5 21.5 0 48 0h288C362.5 0 384 21.5 384 48z"]},N5={prefix:"fas",iconName:"check",icon:[448,512,[10004,10003],"f00c","M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"]},k5={prefix:"fas",iconName:"chevron-down",icon:[448,512,[],"f078","M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"]},i1={prefix:"fas",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9898,9899,11044,61708,61915,9679],"f111","M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"]},L5={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"]},O5=L5,B5={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"]},o1=B5,F5={prefix:"fas",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"]},P5=F5,z5={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200C94.93 200 120 225.1 120 256zM280 256C280 286.9 254.9 312 224 312C193.1 312 168 286.9 168 256C168 225.1 193.1 200 224 200C254.9 200 280 225.1 280 256zM328 256C328 225.1 353.1 200 384 200C414.9 200 440 225.1 440 256C440 286.9 414.9 312 384 312C353.1 312 328 286.9 328 256z"]},R5=z5,j5={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360C94.93 360 120 385.1 120 416C120 446.9 94.93 472 64 472C33.07 472 8 446.9 8 416C8 385.1 33.07 360 64 360zM64 200C94.93 200 120 225.1 120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200zM64 152C33.07 152 8 126.9 8 96C8 65.07 33.07 40 64 40C94.93 40 120 65.07 120 96C120 126.9 94.93 152 64 152z"]},U5=j5,tr={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.853 54.87C10.47 40.9 24.54 32 40 32H472C487.5 32 501.5 40.9 508.1 54.87C514.8 68.84 512.7 85.37 502.1 97.33L320 320.9V448C320 460.1 313.2 471.2 302.3 476.6C291.5 482 278.5 480.9 268.8 473.6L204.8 425.6C196.7 419.6 192 410.1 192 400V320.9L9.042 97.33C-.745 85.37-2.765 68.84 3.854 54.87L3.853 54.87z"]},G5={prefix:"fas",iconName:"forward-step",icon:[320,512,["step-forward"],"f051","M287.1 447.1c17.67 0 31.1-14.33 31.1-32V96.03c0-17.67-14.33-32-32-32c-17.67 0-31.1 14.33-31.1 31.1v319.9C255.1 433.6 270.3 447.1 287.1 447.1zM52.51 440.6l192-159.1c7.625-6.436 11.43-15.53 11.43-24.62c0-9.094-3.809-18.18-11.43-24.62l-192-159.1C31.88 54.28 0 68.66 0 96.03v319.9C0 443.3 31.88 457.7 52.51 440.6z"]},H5=G5,Q5={prefix:"fas",iconName:"maximize",icon:[448,512,["expand-arrows-alt"],"f31e","M447.1 319.1v135.1c0 13.26-10.75 23.1-23.1 23.1h-135.1c-12.94 0-24.61-7.781-29.56-19.75c-4.906-11.1-2.203-25.72 6.937-34.87l30.06-30.06L224 323.9l-71.43 71.44l30.06 30.06c9.156 9.156 11.91 22.91 6.937 34.87C184.6 472.2 172.9 479.1 160 479.1H24c-13.25 0-23.1-10.74-23.1-23.1v-135.1c0-12.94 7.781-24.61 19.75-29.56C23.72 288.8 27.88 288 32 288c8.312 0 16.5 3.242 22.63 9.367l30.06 30.06l71.44-71.44L84.69 184.6L54.63 214.6c-9.156 9.156-22.91 11.91-34.87 6.937C7.798 216.6 .0013 204.9 .0013 191.1v-135.1c0-13.26 10.75-23.1 23.1-23.1h135.1c12.94 0 24.61 7.781 29.56 19.75C191.2 55.72 191.1 59.87 191.1 63.1c0 8.312-3.237 16.5-9.362 22.63L152.6 116.7l71.44 71.44l71.43-71.44l-30.06-30.06c-9.156-9.156-11.91-22.91-6.937-34.87c4.937-11.95 16.62-19.75 29.56-19.75h135.1c13.26 0 23.1 10.75 23.1 23.1v135.1c0 12.94-7.781 24.61-19.75 29.56c-11.1 4.906-25.72 2.203-34.87-6.937l-30.06-30.06l-71.43 71.43l71.44 71.44l30.06-30.06c9.156-9.156 22.91-11.91 34.87-6.937C440.2 295.4 447.1 307.1 447.1 319.1z"]},V5=Q5,a1={prefix:"fas",iconName:"medal",icon:[512,512,[127941],"f5a2","M223.7 130.8L149.1 7.77C147.1 2.949 141.9 0 136.3 0H16.03c-12.95 0-20.53 14.58-13.1 25.18l111.3 158.9C143.9 156.4 181.7 137.3 223.7 130.8zM256 160c-97.25 0-176 78.75-176 176S158.8 512 256 512s176-78.75 176-176S353.3 160 256 160zM348.5 317.3l-37.88 37l8.875 52.25c1.625 9.25-8.25 16.5-16.63 12l-46.88-24.62L209.1 418.5c-8.375 4.5-18.25-2.75-16.63-12l8.875-52.25l-37.88-37C156.6 310.6 160.5 299 169.9 297.6l52.38-7.625L245.7 242.5c2-4.25 6.125-6.375 10.25-6.375S264.2 238.3 266.2 242.5l23.5 47.5l52.38 7.625C351.6 299 355.4 310.6 348.5 317.3zM495.1 0H375.7c-5.621 0-10.83 2.949-13.72 7.77l-73.76 122.1c42 6.5 79.88 25.62 109.5 53.38l111.3-158.9C516.5 14.58 508.9 0 495.1 0z"]},yo={prefix:"fas",iconName:"object-group",icon:[576,512,[],"f247","M128 160C128 142.3 142.3 128 160 128H288C305.7 128 320 142.3 320 160V256C320 273.7 305.7 288 288 288H160C142.3 288 128 273.7 128 256V160zM288 320C323.3 320 352 291.3 352 256V224H416C433.7 224 448 238.3 448 256V352C448 369.7 433.7 384 416 384H288C270.3 384 256 369.7 256 352V320H288zM32 119.4C12.87 108.4 0 87.69 0 64C0 28.65 28.65 0 64 0C87.69 0 108.4 12.87 119.4 32H456.6C467.6 12.87 488.3 0 512 0C547.3 0 576 28.65 576 64C576 87.69 563.1 108.4 544 119.4V392.6C563.1 403.6 576 424.3 576 448C576 483.3 547.3 512 512 512C488.3 512 467.6 499.1 456.6 480H119.4C108.4 499.1 87.69 512 64 512C28.65 512 0 483.3 0 448C0 424.3 12.87 403.6 32 392.6V119.4zM119.4 96C113.8 105.7 105.7 113.8 96 119.4V392.6C105.7 398.2 113.8 406.3 119.4 416H456.6C462.2 406.3 470.3 398.2 480 392.6V119.4C470.3 113.8 462.2 105.7 456.6 96H119.4z"]},Y5={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L444.3 197.7L314.3 67.72L362.7 19.32zM421.7 220.3L188.5 453.4C178.1 463.8 165.2 471.5 151.1 475.6L30.77 511C22.35 513.5 13.24 511.2 7.03 504.1C.8198 498.8-1.502 489.7 .976 481.2L36.37 360.9C40.53 346.8 48.16 333.9 58.57 323.5L291.7 90.34L421.7 220.3z"]},Bl={prefix:"fas",iconName:"share",icon:[512,512,["arrow-turn-right","mail-forward"],"f064","M503.7 226.2l-176 151.1c-15.38 13.3-39.69 2.545-39.69-18.16V272.1C132.9 274.3 66.06 312.8 111.4 457.8c5.031 16.09-14.41 28.56-28.06 18.62C39.59 444.6 0 383.8 0 322.3c0-152.2 127.4-184.4 288-186.3V56.02c0-20.67 24.28-31.46 39.69-18.16l176 151.1C514.8 199.4 514.8 216.6 503.7 226.2z"]},_5={prefix:"fas",iconName:"sliders",icon:[512,512,["sliders-h"],"f1de","M0 416C0 398.3 14.33 384 32 384H86.66C99 355.7 127.2 336 160 336C192.8 336 220.1 355.7 233.3 384H480C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H233.3C220.1 476.3 192.8 496 160 496C127.2 496 99 476.3 86.66 448H32C14.33 448 0 433.7 0 416V416zM192 416C192 398.3 177.7 384 160 384C142.3 384 128 398.3 128 416C128 433.7 142.3 448 160 448C177.7 448 192 433.7 192 416zM352 176C384.8 176 412.1 195.7 425.3 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H425.3C412.1 316.3 384.8 336 352 336C319.2 336 291 316.3 278.7 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H278.7C291 195.7 319.2 176 352 176zM384 256C384 238.3 369.7 224 352 224C334.3 224 320 238.3 320 256C320 273.7 334.3 288 352 288C369.7 288 384 273.7 384 256zM480 64C497.7 64 512 78.33 512 96C512 113.7 497.7 128 480 128H265.3C252.1 156.3 224.8 176 192 176C159.2 176 131 156.3 118.7 128H32C14.33 128 0 113.7 0 96C0 78.33 14.33 64 32 64H118.7C131 35.75 159.2 16 192 16C224.8 16 252.1 35.75 265.3 64H480zM160 96C160 113.7 174.3 128 192 128C209.7 128 224 113.7 224 96C224 78.33 209.7 64 192 64C174.3 64 160 78.33 160 96z"]},W5=_5,X5={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM394.8 466.1C393.2 492.3 372.3 512 346.9 512H101.1C75.75 512 54.77 492.3 53.19 466.1L31.1 128H416L394.8 466.1z"]},Z5={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM31.1 128H416V448C416 483.3 387.3 512 352 512H95.1C60.65 512 31.1 483.3 31.1 448V128zM111.1 208V432C111.1 440.8 119.2 448 127.1 448C136.8 448 143.1 440.8 143.1 432V208C143.1 199.2 136.8 192 127.1 192C119.2 192 111.1 199.2 111.1 208zM207.1 208V432C207.1 440.8 215.2 448 223.1 448C232.8 448 240 440.8 240 432V208C240 199.2 232.8 192 223.1 192C215.2 192 207.1 199.2 207.1 208zM304 208V432C304 440.8 311.2 448 320 448C328.8 448 336 440.8 336 432V208C336 199.2 328.8 192 320 192C311.2 192 304 199.2 304 208z"]},Fl=Z5,q5={prefix:"fas",iconName:"up-down",icon:[256,512,[11021,8597,"arrows-alt-v"],"f338","M249.6 392.3l-104 112c-9.094 9.781-26.09 9.781-35.19 0l-103.1-112c-6.484-6.984-8.219-17.17-4.406-25.92S14.45 352 24 352H80V160H24C14.45 160 5.812 154.3 1.999 145.6C-1.813 136.8-.0781 126.7 6.406 119.7l104-112c9.094-9.781 26.09-9.781 35.19 0l104 112c6.484 6.984 8.219 17.17 4.406 25.92C250.2 154.3 241.5 160 232 160H176v192h56c9.547 0 18.19 5.656 22 14.41S256.1 385.3 249.6 392.3z"]},K5=q5;/*!
1374
+ */var c5={prefix:"fas",iconName:"arrow-down-wide-short",icon:[576,512,["sort-amount-asc","sort-amount-down"],"f160","M416 288h-95.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H416c17.67 0 32-14.33 32-32S433.7 288 416 288zM544 32h-223.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H544c17.67 0 32-14.33 32-32S561.7 32 544 32zM352 416h-32c-17.67 0-32 14.33-32 32s14.33 32 32 32h32c17.67 0 31.1-14.33 31.1-32S369.7 416 352 416zM480 160h-159.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H480c17.67 0 32-14.33 32-32S497.7 160 480 160zM192.4 330.7L160 366.1V64.03C160 46.33 145.7 32 128 32S96 46.33 96 64.03v302L63.6 330.7c-6.312-6.883-14.94-10.38-23.61-10.38c-7.719 0-15.47 2.781-21.61 8.414c-13.03 11.95-13.9 32.22-1.969 45.27l87.1 96.09c12.12 13.26 35.06 13.26 47.19 0l87.1-96.09c11.94-13.05 11.06-33.31-1.969-45.27C224.6 316.8 204.4 317.7 192.4 330.7z"]},u5=c5,l5={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M480 256c0 123.4-100.5 223.9-223.9 223.9c-48.86 0-95.19-15.58-134.2-44.86c-14.14-10.59-17-30.66-6.391-44.81c10.61-14.09 30.69-16.97 44.8-6.375c27.84 20.91 61 31.94 95.89 31.94C344.3 415.8 416 344.1 416 256s-71.67-159.8-159.8-159.8C205.9 96.22 158.6 120.3 128.6 160H192c17.67 0 32 14.31 32 32S209.7 224 192 224H48c-17.67 0-32-14.31-32-32V48c0-17.69 14.33-32 32-32s32 14.31 32 32v70.23C122.1 64.58 186.1 32.11 256.1 32.11C379.5 32.11 480 132.6 480 256z"]},f5=l5,d5={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M496 48V192c0 17.69-14.31 32-32 32H320c-17.69 0-32-14.31-32-32s14.31-32 32-32h63.39c-29.97-39.7-77.25-63.78-127.6-63.78C167.7 96.22 96 167.9 96 256s71.69 159.8 159.8 159.8c34.88 0 68.03-11.03 95.88-31.94c14.22-10.53 34.22-7.75 44.81 6.375c10.59 14.16 7.75 34.22-6.375 44.81c-39.03 29.28-85.36 44.86-134.2 44.86C132.5 479.9 32 379.4 32 256s100.5-223.9 223.9-223.9c69.15 0 134 32.47 176.1 86.12V48c0-17.69 14.31-32 32-32S496 30.31 496 48z"]},h5=d5,p5={prefix:"fas",iconName:"backward-step",icon:[320,512,["step-backward"],"f048","M31.1 64.03c-17.67 0-31.1 14.33-31.1 32v319.9c0 17.67 14.33 32 32 32C49.67 447.1 64 433.6 64 415.1V96.03C64 78.36 49.67 64.03 31.1 64.03zM267.5 71.41l-192 159.1C67.82 237.8 64 246.9 64 256c0 9.094 3.82 18.18 11.44 24.62l192 159.1c20.63 17.12 52.51 2.75 52.51-24.62v-319.9C319.1 68.66 288.1 54.28 267.5 71.41z"]},m5=p5,Jg={prefix:"fas",iconName:"bookmark",icon:[384,512,[61591,128278],"f02e","M384 48V512l-192-112L0 512V48C0 21.5 21.5 0 48 0h288C362.5 0 384 21.5 384 48z"]},g5={prefix:"fas",iconName:"check",icon:[448,512,[10004,10003],"f00c","M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z"]},y5={prefix:"fas",iconName:"chevron-down",icon:[448,512,[],"f078","M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"]},$g={prefix:"fas",iconName:"circle",icon:[512,512,[128308,128309,128992,128993,128994,128995,128996,9898,9899,11044,61708,61915,9679],"f111","M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z"]},b5={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z"]},v5=b5,A5={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z"]},e1=A5,x5={prefix:"fas",iconName:"circle-question",icon:[512,512,[62108,"question-circle"],"f059","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z"]},w5=x5,C5={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200C94.93 200 120 225.1 120 256zM280 256C280 286.9 254.9 312 224 312C193.1 312 168 286.9 168 256C168 225.1 193.1 200 224 200C254.9 200 280 225.1 280 256zM328 256C328 225.1 353.1 200 384 200C414.9 200 440 225.1 440 256C440 286.9 414.9 312 384 312C353.1 312 328 286.9 328 256z"]},S5=C5,E5={prefix:"fas",iconName:"ellipsis-vertical",icon:[128,512,["ellipsis-v"],"f142","M64 360C94.93 360 120 385.1 120 416C120 446.9 94.93 472 64 472C33.07 472 8 446.9 8 416C8 385.1 33.07 360 64 360zM64 200C94.93 200 120 225.1 120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200zM64 152C33.07 152 8 126.9 8 96C8 65.07 33.07 40 64 40C94.93 40 120 65.07 120 96C120 126.9 94.93 152 64 152z"]},D5=E5,er={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M3.853 54.87C10.47 40.9 24.54 32 40 32H472C487.5 32 501.5 40.9 508.1 54.87C514.8 68.84 512.7 85.37 502.1 97.33L320 320.9V448C320 460.1 313.2 471.2 302.3 476.6C291.5 482 278.5 480.9 268.8 473.6L204.8 425.6C196.7 419.6 192 410.1 192 400V320.9L9.042 97.33C-.745 85.37-2.765 68.84 3.854 54.87L3.853 54.87z"]},M5={prefix:"fas",iconName:"forward-step",icon:[320,512,["step-forward"],"f051","M287.1 447.1c17.67 0 31.1-14.33 31.1-32V96.03c0-17.67-14.33-32-32-32c-17.67 0-31.1 14.33-31.1 31.1v319.9C255.1 433.6 270.3 447.1 287.1 447.1zM52.51 440.6l192-159.1c7.625-6.436 11.43-15.53 11.43-24.62c0-9.094-3.809-18.18-11.43-24.62l-192-159.1C31.88 54.28 0 68.66 0 96.03v319.9C0 443.3 31.88 457.7 52.51 440.6z"]},T5=M5,I5={prefix:"fas",iconName:"maximize",icon:[448,512,["expand-arrows-alt"],"f31e","M447.1 319.1v135.1c0 13.26-10.75 23.1-23.1 23.1h-135.1c-12.94 0-24.61-7.781-29.56-19.75c-4.906-11.1-2.203-25.72 6.937-34.87l30.06-30.06L224 323.9l-71.43 71.44l30.06 30.06c9.156 9.156 11.91 22.91 6.937 34.87C184.6 472.2 172.9 479.1 160 479.1H24c-13.25 0-23.1-10.74-23.1-23.1v-135.1c0-12.94 7.781-24.61 19.75-29.56C23.72 288.8 27.88 288 32 288c8.312 0 16.5 3.242 22.63 9.367l30.06 30.06l71.44-71.44L84.69 184.6L54.63 214.6c-9.156 9.156-22.91 11.91-34.87 6.937C7.798 216.6 .0013 204.9 .0013 191.1v-135.1c0-13.26 10.75-23.1 23.1-23.1h135.1c12.94 0 24.61 7.781 29.56 19.75C191.2 55.72 191.1 59.87 191.1 63.1c0 8.312-3.237 16.5-9.362 22.63L152.6 116.7l71.44 71.44l71.43-71.44l-30.06-30.06c-9.156-9.156-11.91-22.91-6.937-34.87c4.937-11.95 16.62-19.75 29.56-19.75h135.1c13.26 0 23.1 10.75 23.1 23.1v135.1c0 12.94-7.781 24.61-19.75 29.56c-11.1 4.906-25.72 2.203-34.87-6.937l-30.06-30.06l-71.43 71.43l71.44 71.44l30.06-30.06c9.156-9.156 22.91-11.91 34.87-6.937C440.2 295.4 447.1 307.1 447.1 319.1z"]},k5=I5,t1={prefix:"fas",iconName:"medal",icon:[512,512,[127941],"f5a2","M223.7 130.8L149.1 7.77C147.1 2.949 141.9 0 136.3 0H16.03c-12.95 0-20.53 14.58-13.1 25.18l111.3 158.9C143.9 156.4 181.7 137.3 223.7 130.8zM256 160c-97.25 0-176 78.75-176 176S158.8 512 256 512s176-78.75 176-176S353.3 160 256 160zM348.5 317.3l-37.88 37l8.875 52.25c1.625 9.25-8.25 16.5-16.63 12l-46.88-24.62L209.1 418.5c-8.375 4.5-18.25-2.75-16.63-12l8.875-52.25l-37.88-37C156.6 310.6 160.5 299 169.9 297.6l52.38-7.625L245.7 242.5c2-4.25 6.125-6.375 10.25-6.375S264.2 238.3 266.2 242.5l23.5 47.5l52.38 7.625C351.6 299 355.4 310.6 348.5 317.3zM495.1 0H375.7c-5.621 0-10.83 2.949-13.72 7.77l-73.76 122.1c42 6.5 79.88 25.62 109.5 53.38l111.3-158.9C516.5 14.58 508.9 0 495.1 0z"]},po={prefix:"fas",iconName:"object-group",icon:[576,512,[],"f247","M128 160C128 142.3 142.3 128 160 128H288C305.7 128 320 142.3 320 160V256C320 273.7 305.7 288 288 288H160C142.3 288 128 273.7 128 256V160zM288 320C323.3 320 352 291.3 352 256V224H416C433.7 224 448 238.3 448 256V352C448 369.7 433.7 384 416 384H288C270.3 384 256 369.7 256 352V320H288zM32 119.4C12.87 108.4 0 87.69 0 64C0 28.65 28.65 0 64 0C87.69 0 108.4 12.87 119.4 32H456.6C467.6 12.87 488.3 0 512 0C547.3 0 576 28.65 576 64C576 87.69 563.1 108.4 544 119.4V392.6C563.1 403.6 576 424.3 576 448C576 483.3 547.3 512 512 512C488.3 512 467.6 499.1 456.6 480H119.4C108.4 499.1 87.69 512 64 512C28.65 512 0 483.3 0 448C0 424.3 12.87 403.6 32 392.6V119.4zM119.4 96C113.8 105.7 105.7 113.8 96 119.4V392.6C105.7 398.2 113.8 406.3 119.4 416H456.6C462.2 406.3 470.3 398.2 480 392.6V119.4C470.3 113.8 462.2 105.7 456.6 96H119.4z"]},N5={prefix:"fas",iconName:"pen",icon:[512,512,[128394],"f304","M362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L444.3 197.7L314.3 67.72L362.7 19.32zM421.7 220.3L188.5 453.4C178.1 463.8 165.2 471.5 151.1 475.6L30.77 511C22.35 513.5 13.24 511.2 7.03 504.1C.8198 498.8-1.502 489.7 .976 481.2L36.37 360.9C40.53 346.8 48.16 333.9 58.57 323.5L291.7 90.34L421.7 220.3z"]},Bl={prefix:"fas",iconName:"share",icon:[512,512,["arrow-turn-right","mail-forward"],"f064","M503.7 226.2l-176 151.1c-15.38 13.3-39.69 2.545-39.69-18.16V272.1C132.9 274.3 66.06 312.8 111.4 457.8c5.031 16.09-14.41 28.56-28.06 18.62C39.59 444.6 0 383.8 0 322.3c0-152.2 127.4-184.4 288-186.3V56.02c0-20.67 24.28-31.46 39.69-18.16l176 151.1C514.8 199.4 514.8 216.6 503.7 226.2z"]},L5={prefix:"fas",iconName:"sliders",icon:[512,512,["sliders-h"],"f1de","M0 416C0 398.3 14.33 384 32 384H86.66C99 355.7 127.2 336 160 336C192.8 336 220.1 355.7 233.3 384H480C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H233.3C220.1 476.3 192.8 496 160 496C127.2 496 99 476.3 86.66 448H32C14.33 448 0 433.7 0 416V416zM192 416C192 398.3 177.7 384 160 384C142.3 384 128 398.3 128 416C128 433.7 142.3 448 160 448C177.7 448 192 433.7 192 416zM352 176C384.8 176 412.1 195.7 425.3 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H425.3C412.1 316.3 384.8 336 352 336C319.2 336 291 316.3 278.7 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H278.7C291 195.7 319.2 176 352 176zM384 256C384 238.3 369.7 224 352 224C334.3 224 320 238.3 320 256C320 273.7 334.3 288 352 288C369.7 288 384 273.7 384 256zM480 64C497.7 64 512 78.33 512 96C512 113.7 497.7 128 480 128H265.3C252.1 156.3 224.8 176 192 176C159.2 176 131 156.3 118.7 128H32C14.33 128 0 113.7 0 96C0 78.33 14.33 64 32 64H118.7C131 35.75 159.2 16 192 16C224.8 16 252.1 35.75 265.3 64H480zM160 96C160 113.7 174.3 128 192 128C209.7 128 224 113.7 224 96C224 78.33 209.7 64 192 64C174.3 64 160 78.33 160 96z"]},B5=L5,O5={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM394.8 466.1C393.2 492.3 372.3 512 346.9 512H101.1C75.75 512 54.77 492.3 53.19 466.1L31.1 128H416L394.8 466.1z"]},P5={prefix:"fas",iconName:"trash-can",icon:[448,512,[61460,"trash-alt"],"f2ed","M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM31.1 128H416V448C416 483.3 387.3 512 352 512H95.1C60.65 512 31.1 483.3 31.1 448V128zM111.1 208V432C111.1 440.8 119.2 448 127.1 448C136.8 448 143.1 440.8 143.1 432V208C143.1 199.2 136.8 192 127.1 192C119.2 192 111.1 199.2 111.1 208zM207.1 208V432C207.1 440.8 215.2 448 223.1 448C232.8 448 240 440.8 240 432V208C240 199.2 232.8 192 223.1 192C215.2 192 207.1 199.2 207.1 208zM304 208V432C304 440.8 311.2 448 320 448C328.8 448 336 440.8 336 432V208C336 199.2 328.8 192 320 192C311.2 192 304 199.2 304 208z"]},Ol=P5,F5={prefix:"fas",iconName:"up-down",icon:[256,512,[11021,8597,"arrows-alt-v"],"f338","M249.6 392.3l-104 112c-9.094 9.781-26.09 9.781-35.19 0l-103.1-112c-6.484-6.984-8.219-17.17-4.406-25.92S14.45 352 24 352H80V160H24C14.45 160 5.812 154.3 1.999 145.6C-1.813 136.8-.0781 126.7 6.406 119.7l104-112c9.094-9.781 26.09-9.781 35.19 0l104 112c6.484 6.984 8.219 17.17 4.406 25.92C250.2 154.3 241.5 160 232 160H176v192h56c9.547 0 18.19 5.656 22 14.41S256.1 385.3 249.6 392.3z"]},z5=F5;/*!
1375
1375
  * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com
1376
1376
  * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
1377
1377
  * Copyright 2022 Fonticons, Inc.
1378
- */function s1(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function N(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?s1(Object(n),!0).forEach(function(r){eT(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):s1(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function fs(t){return fs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fs(t)}function J5(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c1(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function $5(t,e,n){return e&&c1(t.prototype,e),n&&c1(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function eT(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Pl(t,e){return nT(t)||iT(t,e)||u1(t,e)||aT()}function ds(t){return tT(t)||rT(t)||u1(t)||oT()}function tT(t){if(Array.isArray(t))return zl(t)}function nT(t){if(Array.isArray(t))return t}function rT(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function iT(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r=[],i=!0,o=!1,a,s;try{for(n=n.call(t);!(i=(a=n.next()).done)&&(r.push(a.value),!(e&&r.length===e));i=!0);}catch(c){o=!0,s=c}finally{try{!i&&n.return!=null&&n.return()}finally{if(o)throw s}}return r}}function u1(t,e){if(!!t){if(typeof t=="string")return zl(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return zl(t,e)}}function zl(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function oT(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
1379
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function aT(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1380
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l1=function(){},Rl={},f1={},d1=null,h1={mark:l1,measure:l1};try{typeof window<"u"&&(Rl=window),typeof document<"u"&&(f1=document),typeof MutationObserver<"u"&&(d1=MutationObserver),typeof performance<"u"&&(h1=performance)}catch{}var sT=Rl.navigator||{},p1=sT.userAgent,m1=p1===void 0?"":p1,hn=Rl,$=f1,g1=d1,hs=h1;hn.document;var Ft=!!$.documentElement&&!!$.head&&typeof $.addEventListener=="function"&&typeof $.createElement=="function",y1=~m1.indexOf("MSIE")||~m1.indexOf("Trident/"),Pt="___FONT_AWESOME___",jl=16,v1="fa",b1="svg-inline--fa",nr="data-fa-i2svg",Ul="data-fa-pseudo-element",cT="data-fa-pseudo-element-pending",Gl="data-prefix",Hl="data-icon",A1="fontawesome-i2svg",uT="async",lT=["HTML","HEAD","STYLE","SCRIPT"],w1=function(){try{return process.env.NODE_ENV==="production"}catch{return!1}}(),Ql={fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit",fa:"solid"},ps={solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"},x1={fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},fT={"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},dT=/fa[srltdbk\-\ ]/,C1="fa-layers-text",hT=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Kit)?.*/i,pT={900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},E1=[1,2,3,4,5,6,7,8,9,10],mT=E1.concat([11,12,13,14,15,16,17,18,19,20]),gT=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],rr={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},yT=[].concat(ds(Object.keys(ps)),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",rr.GROUP,rr.SWAP_OPACITY,rr.PRIMARY,rr.SECONDARY]).concat(E1.map(function(t){return"".concat(t,"x")})).concat(mT.map(function(t){return"w-".concat(t)})),S1=hn.FontAwesomeConfig||{};function vT(t){var e=$.querySelector("script["+t+"]");if(e)return e.getAttribute(t)}function bT(t){return t===""?!0:t==="false"?!1:t==="true"?!0:t}if($&&typeof $.querySelector=="function"){var AT=[["data-family-prefix","familyPrefix"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]];AT.forEach(function(t){var e=Pl(t,2),n=e[0],r=e[1],i=bT(vT(n));i!=null&&(S1[r]=i)})}var wT={familyPrefix:v1,styleDefault:"solid",replacementClass:b1,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},vo=N(N({},wT),S1);vo.autoReplaceSvg||(vo.observeMutations=!1);var F={};Object.keys(vo).forEach(function(t){Object.defineProperty(F,t,{enumerable:!0,set:function(n){vo[t]=n,ms.forEach(function(r){return r(F)})},get:function(){return vo[t]}})}),hn.FontAwesomeConfig=F;var ms=[];function xT(t){return ms.push(t),function(){ms.splice(ms.indexOf(t),1)}}var pn=jl,yt={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function CT(t){if(!(!t||!Ft)){var e=$.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=t;for(var n=$.head.childNodes,r=null,i=n.length-1;i>-1;i--){var o=n[i],a=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(a)>-1&&(r=o)}return $.head.insertBefore(e,r),t}}var ET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function bo(){for(var t=12,e="";t-- >0;)e+=ET[Math.random()*62|0];return e}function Xr(t){for(var e=[],n=(t||[]).length>>>0;n--;)e[n]=t[n];return e}function Vl(t){return t.classList?Xr(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(e){return e})}function D1(t){return"".concat(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ST(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,'="').concat(D1(t[n]),'" ')},"").trim()}function gs(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,": ").concat(t[n].trim(),";")},"")}function Yl(t){return t.size!==yt.size||t.x!==yt.x||t.y!==yt.y||t.rotate!==yt.rotate||t.flipX||t.flipY}function DT(t){var e=t.transform,n=t.containerWidth,r=t.iconWidth,i={transform:"translate(".concat(n/2," 256)")},o="translate(".concat(e.x*32,", ").concat(e.y*32,") "),a="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),s="rotate(".concat(e.rotate," 0 0)"),c={transform:"".concat(o," ").concat(a," ").concat(s)},u={transform:"translate(".concat(r/2*-1," -256)")};return{outer:i,inner:c,path:u}}function MT(t){var e=t.transform,n=t.width,r=n===void 0?jl:n,i=t.height,o=i===void 0?jl:i,a=t.startCentered,s=a===void 0?!1:a,c="";return s&&y1?c+="translate(".concat(e.x/pn-r/2,"em, ").concat(e.y/pn-o/2,"em) "):s?c+="translate(calc(-50% + ".concat(e.x/pn,"em), calc(-50% + ").concat(e.y/pn,"em)) "):c+="translate(".concat(e.x/pn,"em, ").concat(e.y/pn,"em) "),c+="scale(".concat(e.size/pn*(e.flipX?-1:1),", ").concat(e.size/pn*(e.flipY?-1:1),") "),c+="rotate(".concat(e.rotate,"deg) "),c}var TT=`:root, :host {
1378
+ */function n1(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function k(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?n1(Object(n),!0).forEach(function(r){U5(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):n1(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function us(t){return us=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},us(t)}function R5(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r1(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function j5(t,e,n){return e&&r1(t.prototype,e),n&&r1(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function U5(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Pl(t,e){return H5(t)||V5(t,e)||i1(t,e)||_5()}function ls(t){return G5(t)||Q5(t)||i1(t)||Y5()}function G5(t){if(Array.isArray(t))return Fl(t)}function H5(t){if(Array.isArray(t))return t}function Q5(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function V5(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r=[],i=!0,o=!1,a,s;try{for(n=n.call(t);!(i=(a=n.next()).done)&&(r.push(a.value),!(e&&r.length===e));i=!0);}catch(c){o=!0,s=c}finally{try{!i&&n.return!=null&&n.return()}finally{if(o)throw s}}return r}}function i1(t,e){if(!!t){if(typeof t=="string")return Fl(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Fl(t,e)}}function Fl(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Y5(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
1379
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _5(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1380
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o1=function(){},zl={},a1={},s1=null,c1={mark:o1,measure:o1};try{typeof window<"u"&&(zl=window),typeof document<"u"&&(a1=document),typeof MutationObserver<"u"&&(s1=MutationObserver),typeof performance<"u"&&(c1=performance)}catch{}var W5=zl.navigator||{},u1=W5.userAgent,l1=u1===void 0?"":u1,hn=zl,$=a1,f1=s1,fs=c1;hn.document;var Pt=!!$.documentElement&&!!$.head&&typeof $.addEventListener=="function"&&typeof $.createElement=="function",d1=~l1.indexOf("MSIE")||~l1.indexOf("Trident/"),Ft="___FONT_AWESOME___",Rl=16,h1="fa",p1="svg-inline--fa",tr="data-fa-i2svg",jl="data-fa-pseudo-element",X5="data-fa-pseudo-element-pending",Ul="data-prefix",Gl="data-icon",m1="fontawesome-i2svg",Z5="async",q5=["HTML","HEAD","STYLE","SCRIPT"],g1=function(){try{return!0}catch{return!1}}(),Hl={fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit",fa:"solid"},ds={solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"},y1={fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},K5={"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},J5=/fa[srltdbk\-\ ]/,b1="fa-layers-text",$5=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Kit)?.*/i,eT={900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},v1=[1,2,3,4,5,6,7,8,9,10],tT=v1.concat([11,12,13,14,15,16,17,18,19,20]),nT=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],nr={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},rT=[].concat(ls(Object.keys(ds)),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",nr.GROUP,nr.SWAP_OPACITY,nr.PRIMARY,nr.SECONDARY]).concat(v1.map(function(t){return"".concat(t,"x")})).concat(tT.map(function(t){return"w-".concat(t)})),A1=hn.FontAwesomeConfig||{};function iT(t){var e=$.querySelector("script["+t+"]");if(e)return e.getAttribute(t)}function oT(t){return t===""?!0:t==="false"?!1:t==="true"?!0:t}if($&&typeof $.querySelector=="function"){var aT=[["data-family-prefix","familyPrefix"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]];aT.forEach(function(t){var e=Pl(t,2),n=e[0],r=e[1],i=oT(iT(n));i!=null&&(A1[r]=i)})}var sT={familyPrefix:h1,styleDefault:"solid",replacementClass:p1,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},mo=k(k({},sT),A1);mo.autoReplaceSvg||(mo.observeMutations=!1);var P={};Object.keys(mo).forEach(function(t){Object.defineProperty(P,t,{enumerable:!0,set:function(n){mo[t]=n,hs.forEach(function(r){return r(P)})},get:function(){return mo[t]}})}),hn.FontAwesomeConfig=P;var hs=[];function cT(t){return hs.push(t),function(){hs.splice(hs.indexOf(t),1)}}var pn=Rl,yt={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function uT(t){if(!(!t||!Pt)){var e=$.createElement("style");e.setAttribute("type","text/css"),e.innerHTML=t;for(var n=$.head.childNodes,r=null,i=n.length-1;i>-1;i--){var o=n[i],a=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(a)>-1&&(r=o)}return $.head.insertBefore(e,r),t}}var lT="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function go(){for(var t=12,e="";t-- >0;)e+=lT[Math.random()*62|0];return e}function _r(t){for(var e=[],n=(t||[]).length>>>0;n--;)e[n]=t[n];return e}function Ql(t){return t.classList?_r(t.classList):(t.getAttribute("class")||"").split(" ").filter(function(e){return e})}function x1(t){return"".concat(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function fT(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,'="').concat(x1(t[n]),'" ')},"").trim()}function ps(t){return Object.keys(t||{}).reduce(function(e,n){return e+"".concat(n,": ").concat(t[n].trim(),";")},"")}function Vl(t){return t.size!==yt.size||t.x!==yt.x||t.y!==yt.y||t.rotate!==yt.rotate||t.flipX||t.flipY}function dT(t){var e=t.transform,n=t.containerWidth,r=t.iconWidth,i={transform:"translate(".concat(n/2," 256)")},o="translate(".concat(e.x*32,", ").concat(e.y*32,") "),a="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),s="rotate(".concat(e.rotate," 0 0)"),c={transform:"".concat(o," ").concat(a," ").concat(s)},u={transform:"translate(".concat(r/2*-1," -256)")};return{outer:i,inner:c,path:u}}function hT(t){var e=t.transform,n=t.width,r=n===void 0?Rl:n,i=t.height,o=i===void 0?Rl:i,a=t.startCentered,s=a===void 0?!1:a,c="";return s&&d1?c+="translate(".concat(e.x/pn-r/2,"em, ").concat(e.y/pn-o/2,"em) "):s?c+="translate(calc(-50% + ".concat(e.x/pn,"em), calc(-50% + ").concat(e.y/pn,"em)) "):c+="translate(".concat(e.x/pn,"em, ").concat(e.y/pn,"em) "),c+="scale(".concat(e.size/pn*(e.flipX?-1:1),", ").concat(e.size/pn*(e.flipY?-1:1),") "),c+="rotate(".concat(e.rotate,"deg) "),c}var pT=`:root, :host {
1381
1381
  --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";
1382
1382
  --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";
1383
1383
  --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";
@@ -2128,47 +2128,40 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
2128
2128
  .fad.fa-inverse,
2129
2129
  .fa-duotone.fa-inverse {
2130
2130
  color: var(--fa-inverse, #fff);
2131
- }`;function M1(){var t=v1,e=b1,n=F.familyPrefix,r=F.replacementClass,i=TT;if(n!==t||r!==e){var o=new RegExp("\\.".concat(t,"\\-"),"g"),a=new RegExp("\\--".concat(t,"\\-"),"g"),s=new RegExp("\\.".concat(e),"g");i=i.replace(o,".".concat(n,"-")).replace(a,"--".concat(n,"-")).replace(s,".".concat(r))}return i}var T1=!1;function _l(){F.autoAddCss&&!T1&&(CT(M1()),T1=!0)}var IT={mixout:function(){return{dom:{css:M1,insertCss:_l}}},hooks:function(){return{beforeDOMElementCreation:function(){_l()},beforeI2svg:function(){_l()}}}},zt=hn||{};zt[Pt]||(zt[Pt]={}),zt[Pt].styles||(zt[Pt].styles={}),zt[Pt].hooks||(zt[Pt].hooks={}),zt[Pt].shims||(zt[Pt].shims=[]);var ut=zt[Pt],I1=[],NT=function t(){$.removeEventListener("DOMContentLoaded",t),ys=1,I1.map(function(e){return e()})},ys=!1;Ft&&(ys=($.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test($.readyState),ys||$.addEventListener("DOMContentLoaded",NT));function kT(t){!Ft||(ys?setTimeout(t,0):I1.push(t))}function Ao(t){var e=t.tag,n=t.attributes,r=n===void 0?{}:n,i=t.children,o=i===void 0?[]:i;return typeof t=="string"?D1(t):"<".concat(e," ").concat(ST(r),">").concat(o.map(Ao).join(""),"</").concat(e,">")}function N1(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}var LT=function(e,n){return function(r,i,o,a){return e.call(n,r,i,o,a)}},Wl=function(e,n,r,i){var o=Object.keys(e),a=o.length,s=i!==void 0?LT(n,i):n,c,u,f;for(r===void 0?(c=1,f=e[o[0]]):(c=0,f=r);c<a;c++)u=o[c],f=s(f,e[u],u,e);return f};function OT(t){for(var e=[],n=0,r=t.length;n<r;){var i=t.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){var o=t.charCodeAt(n++);(o&64512)==56320?e.push(((i&1023)<<10)+(o&1023)+65536):(e.push(i),n--)}else e.push(i)}return e}function Xl(t){var e=OT(t);return e.length===1?e[0].toString(16):null}function BT(t,e){var n=t.length,r=t.charCodeAt(e),i;return r>=55296&&r<=56319&&n>e+1&&(i=t.charCodeAt(e+1),i>=56320&&i<=57343)?(r-55296)*1024+i-56320+65536:r}function k1(t){return Object.keys(t).reduce(function(e,n){var r=t[n],i=!!r.icon;return i?e[r.iconName]=r.icon:e[n]=r,e},{})}function Zl(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,i=r===void 0?!1:r,o=k1(e);typeof ut.hooks.addPack=="function"&&!i?ut.hooks.addPack(t,k1(e)):ut.styles[t]=N(N({},ut.styles[t]||{}),o),t==="fas"&&Zl("fa",e)}var wo=ut.styles,FT=ut.shims,PT=Object.values(x1),ql=null,L1={},O1={},B1={},F1={},P1={},zT=Object.keys(Ql);function RT(t){return~yT.indexOf(t)}function jT(t,e){var n=e.split("-"),r=n[0],i=n.slice(1).join("-");return r===t&&i!==""&&!RT(i)?i:null}var z1=function(){var e=function(o){return Wl(wo,function(a,s,c){return a[c]=Wl(s,o,{}),a},{})};L1=e(function(i,o,a){if(o[3]&&(i[o[3]]=a),o[2]){var s=o[2].filter(function(c){return typeof c=="number"});s.forEach(function(c){i[c.toString(16)]=a})}return i}),O1=e(function(i,o,a){if(i[a]=a,o[2]){var s=o[2].filter(function(c){return typeof c=="string"});s.forEach(function(c){i[c]=a})}return i}),P1=e(function(i,o,a){var s=o[2];return i[a]=a,s.forEach(function(c){i[c]=a}),i});var n="far"in wo||F.autoFetchSvg,r=Wl(FT,function(i,o){var a=o[0],s=o[1],c=o[2];return s==="far"&&!n&&(s="fas"),typeof a=="string"&&(i.names[a]={prefix:s,iconName:c}),typeof a=="number"&&(i.unicodes[a.toString(16)]={prefix:s,iconName:c}),i},{names:{},unicodes:{}});B1=r.names,F1=r.unicodes,ql=vs(F.styleDefault)};xT(function(t){ql=vs(t.styleDefault)}),z1();function Kl(t,e){return(L1[t]||{})[e]}function UT(t,e){return(O1[t]||{})[e]}function Zr(t,e){return(P1[t]||{})[e]}function R1(t){return B1[t]||{prefix:null,iconName:null}}function GT(t){var e=F1[t],n=Kl("fas",t);return e||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function mn(){return ql}var Jl=function(){return{prefix:null,iconName:null,rest:[]}};function vs(t){var e=Ql[t],n=ps[t]||ps[e],r=t in ut.styles?t:null;return n||r||null}function bs(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.skipLookups,r=n===void 0?!1:n,i=null,o=t.reduce(function(a,s){var c=jT(F.familyPrefix,s);if(wo[s]?(s=PT.includes(s)?fT[s]:s,i=s,a.prefix=s):zT.indexOf(s)>-1?(i=s,a.prefix=vs(s)):c?a.iconName=c:s!==F.replacementClass&&a.rest.push(s),!r&&a.prefix&&a.iconName){var u=i==="fa"?R1(a.iconName):{},f=Zr(a.prefix,a.iconName);u.prefix&&(i=null),a.iconName=u.iconName||f||a.iconName,a.prefix=u.prefix||a.prefix,a.prefix==="far"&&!wo.far&&wo.fas&&!F.autoFetchSvg&&(a.prefix="fas")}return a},Jl());return(o.prefix==="fa"||i==="fa")&&(o.prefix=mn()||"fas"),o}var HT=function(){function t(){J5(this,t),this.definitions={}}return $5(t,[{key:"add",value:function(){for(var n=this,r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];var a=i.reduce(this._pullDefinitions,{});Object.keys(a).forEach(function(s){n.definitions[s]=N(N({},n.definitions[s]||{}),a[s]),Zl(s,a[s]);var c=x1[s];c&&Zl(c,a[s]),z1()})}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(n,r){var i=r.prefix&&r.iconName&&r.icon?{0:r}:r;return Object.keys(i).map(function(o){var a=i[o],s=a.prefix,c=a.iconName,u=a.icon,f=u[2];n[s]||(n[s]={}),f.length>0&&f.forEach(function(l){typeof l=="string"&&(n[s][l]=u)}),n[s][c]=u}),n}}]),t}(),j1=[],qr={},Kr={},QT=Object.keys(Kr);function VT(t,e){var n=e.mixoutsTo;return j1=t,qr={},Object.keys(Kr).forEach(function(r){QT.indexOf(r)===-1&&delete Kr[r]}),j1.forEach(function(r){var i=r.mixout?r.mixout():{};if(Object.keys(i).forEach(function(a){typeof i[a]=="function"&&(n[a]=i[a]),fs(i[a])==="object"&&Object.keys(i[a]).forEach(function(s){n[a]||(n[a]={}),n[a][s]=i[a][s]})}),r.hooks){var o=r.hooks();Object.keys(o).forEach(function(a){qr[a]||(qr[a]=[]),qr[a].push(o[a])})}r.provides&&r.provides(Kr)}),n}function $l(t,e){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];var o=qr[t]||[];return o.forEach(function(a){e=a.apply(null,[e].concat(r))}),e}function ir(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=qr[t]||[];i.forEach(function(o){o.apply(null,n)})}function Rt(){var t=arguments[0],e=Array.prototype.slice.call(arguments,1);return Kr[t]?Kr[t].apply(null,e):void 0}function ef(t){t.prefix==="fa"&&(t.prefix="fas");var e=t.iconName,n=t.prefix||mn();if(!!e)return e=Zr(n,e)||e,N1(U1.definitions,n,e)||N1(ut.styles,n,e)}var U1=new HT,YT=function(){F.autoReplaceSvg=!1,F.observeMutations=!1,ir("noAuto")},_T={i2svg:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Ft?(ir("beforeI2svg",e),Rt("pseudoElements2svg",e),Rt("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot;F.autoReplaceSvg===!1&&(F.autoReplaceSvg=!0),F.observeMutations=!0,kT(function(){XT({autoReplaceSvgRoot:n}),ir("watch",e)})}},WT={icon:function(e){if(e===null)return null;if(fs(e)==="object"&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Zr(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&e.length===2){var n=e[1].indexOf("fa-")===0?e[1].slice(3):e[1],r=vs(e[0]);return{prefix:r,iconName:Zr(r,n)||n}}if(typeof e=="string"&&(e.indexOf("".concat(F.familyPrefix,"-"))>-1||e.match(dT))){var i=bs(e.split(" "),{skipLookups:!0});return{prefix:i.prefix||mn(),iconName:Zr(i.prefix,i.iconName)||i.iconName}}if(typeof e=="string"){var o=mn();return{prefix:o,iconName:Zr(o,e)||e}}}},He={noAuto:YT,config:F,dom:_T,parse:WT,library:U1,findIconDefinition:ef,toHtml:Ao},XT=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot,r=n===void 0?$:n;(Object.keys(ut.styles).length>0||F.autoFetchSvg)&&Ft&&F.autoReplaceSvg&&He.dom.i2svg({node:r})};function As(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map(function(r){return Ao(r)})}}),Object.defineProperty(t,"node",{get:function(){if(!!Ft){var r=$.createElement("div");return r.innerHTML=t.html,r.children}}}),t}function ZT(t){var e=t.children,n=t.main,r=t.mask,i=t.attributes,o=t.styles,a=t.transform;if(Yl(a)&&n.found&&!r.found){var s=n.width,c=n.height,u={x:s/c/2,y:.5};i.style=gs(N(N({},o),{},{"transform-origin":"".concat(u.x+a.x/16,"em ").concat(u.y+a.y/16,"em")}))}return[{tag:"svg",attributes:i,children:e}]}function qT(t){var e=t.prefix,n=t.iconName,r=t.children,i=t.attributes,o=t.symbol,a=o===!0?"".concat(e,"-").concat(F.familyPrefix,"-").concat(n):o;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:N(N({},i),{},{id:a}),children:r}]}]}function tf(t){var e=t.icons,n=e.main,r=e.mask,i=t.prefix,o=t.iconName,a=t.transform,s=t.symbol,c=t.title,u=t.maskId,f=t.titleId,l=t.extra,d=t.watchable,h=d===void 0?!1:d,p=r.found?r:n,m=p.width,y=p.height,g=i==="fak",A=[F.replacementClass,o?"".concat(F.familyPrefix,"-").concat(o):""].filter(function(I){return l.classes.indexOf(I)===-1}).filter(function(I){return I!==""||!!I}).concat(l.classes).join(" "),w={children:[],attributes:N(N({},l.attributes),{},{"data-prefix":i,"data-icon":o,class:A,role:l.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(y)})},C=g&&!~l.classes.indexOf("fa-fw")?{width:"".concat(m/y*16*.0625,"em")}:{};h&&(w.attributes[nr]=""),c&&(w.children.push({tag:"title",attributes:{id:w.attributes["aria-labelledby"]||"title-".concat(f||bo())},children:[c]}),delete w.attributes.title);var b=N(N({},w),{},{prefix:i,iconName:o,main:n,mask:r,maskId:u,transform:a,symbol:s,styles:N(N({},C),l.styles)}),v=r.found&&n.found?Rt("generateAbstractMask",b)||{children:[],attributes:{}}:Rt("generateAbstractIcon",b)||{children:[],attributes:{}},x=v.children,E=v.attributes;return b.children=x,b.attributes=E,s?qT(b):ZT(b)}function G1(t){var e=t.content,n=t.width,r=t.height,i=t.transform,o=t.title,a=t.extra,s=t.watchable,c=s===void 0?!1:s,u=N(N(N({},a.attributes),o?{title:o}:{}),{},{class:a.classes.join(" ")});c&&(u[nr]="");var f=N({},a.styles);Yl(i)&&(f.transform=MT({transform:i,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f.transform);var l=gs(f);l.length>0&&(u.style=l);var d=[];return d.push({tag:"span",attributes:u,children:[e]}),o&&d.push({tag:"span",attributes:{class:"sr-only"},children:[o]}),d}function KT(t){var e=t.content,n=t.title,r=t.extra,i=N(N(N({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),o=gs(r.styles);o.length>0&&(i.style=o);var a=[];return a.push({tag:"span",attributes:i,children:[e]}),n&&a.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),a}var nf=ut.styles;function rf(t){var e=t[0],n=t[1],r=t.slice(4),i=Pl(r,1),o=i[0],a=null;return Array.isArray(o)?a={tag:"g",attributes:{class:"".concat(F.familyPrefix,"-").concat(rr.GROUP)},children:[{tag:"path",attributes:{class:"".concat(F.familyPrefix,"-").concat(rr.SECONDARY),fill:"currentColor",d:o[0]}},{tag:"path",attributes:{class:"".concat(F.familyPrefix,"-").concat(rr.PRIMARY),fill:"currentColor",d:o[1]}}]}:a={tag:"path",attributes:{fill:"currentColor",d:o}},{found:!0,width:e,height:n,icon:a}}var JT={found:!1,width:512,height:512};function $T(t,e){!w1&&!F.showMissingIcons&&t&&console.error('Icon with name "'.concat(t,'" and prefix "').concat(e,'" is missing.'))}function of(t,e){var n=e;return e==="fa"&&F.styleDefault!==null&&(e=mn()),new Promise(function(r,i){if(Rt("missingIconAbstract"),n==="fa"){var o=R1(t)||{};t=o.iconName||t,e=o.prefix||e}if(t&&e&&nf[e]&&nf[e][t]){var a=nf[e][t];return r(rf(a))}$T(t,e),r(N(N({},JT),{},{icon:F.showMissingIcons&&t?Rt("missingIconAbstract")||{}:{}}))})}var H1=function(){},af=F.measurePerformance&&hs&&hs.mark&&hs.measure?hs:{mark:H1,measure:H1},xo='FA "6.1.1"',eI=function(e){return af.mark("".concat(xo," ").concat(e," begins")),function(){return Q1(e)}},Q1=function(e){af.mark("".concat(xo," ").concat(e," ends")),af.measure("".concat(xo," ").concat(e),"".concat(xo," ").concat(e," begins"),"".concat(xo," ").concat(e," ends"))},sf={begin:eI,end:Q1},ws=function(){};function V1(t){var e=t.getAttribute?t.getAttribute(nr):null;return typeof e=="string"}function tI(t){var e=t.getAttribute?t.getAttribute(Gl):null,n=t.getAttribute?t.getAttribute(Hl):null;return e&&n}function nI(t){return t&&t.classList&&t.classList.contains&&t.classList.contains(F.replacementClass)}function rI(){if(F.autoReplaceSvg===!0)return xs.replace;var t=xs[F.autoReplaceSvg];return t||xs.replace}function iI(t){return $.createElementNS("http://www.w3.org/2000/svg",t)}function oI(t){return $.createElement(t)}function Y1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.ceFn,r=n===void 0?t.tag==="svg"?iI:oI:n;if(typeof t=="string")return $.createTextNode(t);var i=r(t.tag);Object.keys(t.attributes||[]).forEach(function(a){i.setAttribute(a,t.attributes[a])});var o=t.children||[];return o.forEach(function(a){i.appendChild(Y1(a,{ceFn:r}))}),i}function aI(t){var e=" ".concat(t.outerHTML," ");return e="".concat(e,"Font Awesome fontawesome.com "),e}var xs={replace:function(e){var n=e[0];if(n.parentNode)if(e[1].forEach(function(i){n.parentNode.insertBefore(Y1(i),n)}),n.getAttribute(nr)===null&&F.keepOriginalSource){var r=$.createComment(aI(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(e){var n=e[0],r=e[1];if(~Vl(n).indexOf(F.replacementClass))return xs.replace(e);var i=new RegExp("".concat(F.familyPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var o=r[0].attributes.class.split(" ").reduce(function(s,c){return c===F.replacementClass||c.match(i)?s.toSvg.push(c):s.toNode.push(c),s},{toNode:[],toSvg:[]});r[0].attributes.class=o.toSvg.join(" "),o.toNode.length===0?n.removeAttribute("class"):n.setAttribute("class",o.toNode.join(" "))}var a=r.map(function(s){return Ao(s)}).join(`
2132
- `);n.setAttribute(nr,""),n.innerHTML=a}};function _1(t){t()}function W1(t,e){var n=typeof e=="function"?e:ws;if(t.length===0)n();else{var r=_1;F.mutateApproach===uT&&(r=hn.requestAnimationFrame||_1),r(function(){var i=rI(),o=sf.begin("mutate");t.map(i),o(),n()})}}var cf=!1;function X1(){cf=!0}function uf(){cf=!1}var Cs=null;function Z1(t){if(!!g1&&!!F.observeMutations){var e=t.treeCallback,n=e===void 0?ws:e,r=t.nodeCallback,i=r===void 0?ws:r,o=t.pseudoElementsCallback,a=o===void 0?ws:o,s=t.observeMutationsRoot,c=s===void 0?$:s;Cs=new g1(function(u){if(!cf){var f=mn();Xr(u).forEach(function(l){if(l.type==="childList"&&l.addedNodes.length>0&&!V1(l.addedNodes[0])&&(F.searchPseudoElements&&a(l.target),n(l.target)),l.type==="attributes"&&l.target.parentNode&&F.searchPseudoElements&&a(l.target.parentNode),l.type==="attributes"&&V1(l.target)&&~gT.indexOf(l.attributeName))if(l.attributeName==="class"&&tI(l.target)){var d=bs(Vl(l.target)),h=d.prefix,p=d.iconName;l.target.setAttribute(Gl,h||f),p&&l.target.setAttribute(Hl,p)}else nI(l.target)&&i(l.target)})}}),Ft&&Cs.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function sI(){!Cs||Cs.disconnect()}function cI(t){var e=t.getAttribute("style"),n=[];return e&&(n=e.split(";").reduce(function(r,i){var o=i.split(":"),a=o[0],s=o.slice(1);return a&&s.length>0&&(r[a]=s.join(":").trim()),r},{})),n}function uI(t){var e=t.getAttribute("data-prefix"),n=t.getAttribute("data-icon"),r=t.innerText!==void 0?t.innerText.trim():"",i=bs(Vl(t));return i.prefix||(i.prefix=mn()),e&&n&&(i.prefix=e,i.iconName=n),i.iconName&&i.prefix||i.prefix&&r.length>0&&(i.iconName=UT(i.prefix,t.innerText)||Kl(i.prefix,Xl(t.innerText))),i}function lI(t){var e=Xr(t.attributes).reduce(function(i,o){return i.name!=="class"&&i.name!=="style"&&(i[o.name]=o.value),i},{}),n=t.getAttribute("title"),r=t.getAttribute("data-fa-title-id");return F.autoA11y&&(n?e["aria-labelledby"]="".concat(F.replacementClass,"-title-").concat(r||bo()):(e["aria-hidden"]="true",e.focusable="false")),e}function fI(){return{iconName:null,title:null,titleId:null,prefix:null,transform:yt,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function q1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=uI(t),r=n.iconName,i=n.prefix,o=n.rest,a=lI(t),s=$l("parseNodeAttributes",{},t),c=e.styleParser?cI(t):[];return N({iconName:r,title:t.getAttribute("title"),titleId:t.getAttribute("data-fa-title-id"),prefix:i,transform:yt,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:o,styles:c,attributes:a}},s)}var dI=ut.styles;function K1(t){var e=F.autoReplaceSvg==="nest"?q1(t,{styleParser:!1}):q1(t);return~e.extra.classes.indexOf(C1)?Rt("generateLayersText",t,e):Rt("generateSvgReplacementMutation",t,e)}function J1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!Ft)return Promise.resolve();var n=$.documentElement.classList,r=function(l){return n.add("".concat(A1,"-").concat(l))},i=function(l){return n.remove("".concat(A1,"-").concat(l))},o=F.autoFetchSvg?Object.keys(Ql):Object.keys(dI),a=[".".concat(C1,":not([").concat(nr,"])")].concat(o.map(function(f){return".".concat(f,":not([").concat(nr,"])")})).join(", ");if(a.length===0)return Promise.resolve();var s=[];try{s=Xr(t.querySelectorAll(a))}catch{}if(s.length>0)r("pending"),i("complete");else return Promise.resolve();var c=sf.begin("onTree"),u=s.reduce(function(f,l){try{var d=K1(l);d&&f.push(d)}catch(h){w1||h.name==="MissingIcon"&&console.error(h)}return f},[]);return new Promise(function(f,l){Promise.all(u).then(function(d){W1(d,function(){r("active"),r("complete"),i("pending"),typeof e=="function"&&e(),c(),f()})}).catch(function(d){c(),l(d)})})}function hI(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;K1(t).then(function(n){n&&W1([n],e)})}function pI(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(e||{}).icon?e:ef(e||{}),i=n.mask;return i&&(i=(i||{}).icon?i:ef(i||{})),t(r,N(N({},n),{},{mask:i}))}}var mI=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,i=r===void 0?yt:r,o=n.symbol,a=o===void 0?!1:o,s=n.mask,c=s===void 0?null:s,u=n.maskId,f=u===void 0?null:u,l=n.title,d=l===void 0?null:l,h=n.titleId,p=h===void 0?null:h,m=n.classes,y=m===void 0?[]:m,g=n.attributes,A=g===void 0?{}:g,w=n.styles,C=w===void 0?{}:w;if(!!e){var b=e.prefix,v=e.iconName,x=e.icon;return As(N({type:"icon"},e),function(){return ir("beforeDOMElementCreation",{iconDefinition:e,params:n}),F.autoA11y&&(d?A["aria-labelledby"]="".concat(F.replacementClass,"-title-").concat(p||bo()):(A["aria-hidden"]="true",A.focusable="false")),tf({icons:{main:rf(x),mask:c?rf(c.icon):{found:!1,width:null,height:null,icon:{}}},prefix:b,iconName:v,transform:N(N({},yt),i),symbol:a,title:d,maskId:f,titleId:p,extra:{attributes:A,styles:C,classes:y}})})}},gI={mixout:function(){return{icon:pI(mI)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=J1,n.nodeCallback=hI,n}}},provides:function(e){e.i2svg=function(n){var r=n.node,i=r===void 0?$:r,o=n.callback,a=o===void 0?function(){}:o;return J1(i,a)},e.generateSvgReplacementMutation=function(n,r){var i=r.iconName,o=r.title,a=r.titleId,s=r.prefix,c=r.transform,u=r.symbol,f=r.mask,l=r.maskId,d=r.extra;return new Promise(function(h,p){Promise.all([of(i,s),f.iconName?of(f.iconName,f.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(m){var y=Pl(m,2),g=y[0],A=y[1];h([n,tf({icons:{main:g,mask:A},prefix:s,iconName:i,transform:c,symbol:u,maskId:l,title:o,titleId:a,extra:d,watchable:!0})])}).catch(p)})},e.generateAbstractIcon=function(n){var r=n.children,i=n.attributes,o=n.main,a=n.transform,s=n.styles,c=gs(s);c.length>0&&(i.style=c);var u;return Yl(a)&&(u=Rt("generateAbstractTransformGrouping",{main:o,transform:a,containerWidth:o.width,iconWidth:o.width})),r.push(u||o.icon),{children:r,attributes:i}}}},yI={mixout:function(){return{layer:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.classes,o=i===void 0?[]:i;return As({type:"layer"},function(){ir("beforeDOMElementCreation",{assembler:n,params:r});var a=[];return n(function(s){Array.isArray(s)?s.map(function(c){a=a.concat(c.abstract)}):a=a.concat(s.abstract)}),[{tag:"span",attributes:{class:["".concat(F.familyPrefix,"-layers")].concat(ds(o)).join(" ")},children:a}]})}}}},vI={mixout:function(){return{counter:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.title,o=i===void 0?null:i,a=r.classes,s=a===void 0?[]:a,c=r.attributes,u=c===void 0?{}:c,f=r.styles,l=f===void 0?{}:f;return As({type:"counter",content:n},function(){return ir("beforeDOMElementCreation",{content:n,params:r}),KT({content:n.toString(),title:o,extra:{attributes:u,styles:l,classes:["".concat(F.familyPrefix,"-layers-counter")].concat(ds(s))}})})}}}},bI={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.transform,o=i===void 0?yt:i,a=r.title,s=a===void 0?null:a,c=r.classes,u=c===void 0?[]:c,f=r.attributes,l=f===void 0?{}:f,d=r.styles,h=d===void 0?{}:d;return As({type:"text",content:n},function(){return ir("beforeDOMElementCreation",{content:n,params:r}),G1({content:n,transform:N(N({},yt),o),title:s,extra:{attributes:l,styles:h,classes:["".concat(F.familyPrefix,"-layers-text")].concat(ds(u))}})})}}},provides:function(e){e.generateLayersText=function(n,r){var i=r.title,o=r.transform,a=r.extra,s=null,c=null;if(y1){var u=parseInt(getComputedStyle(n).fontSize,10),f=n.getBoundingClientRect();s=f.width/u,c=f.height/u}return F.autoA11y&&!i&&(a.attributes["aria-hidden"]="true"),Promise.resolve([n,G1({content:n.innerHTML,width:s,height:c,transform:o,title:i,extra:a,watchable:!0})])}}},AI=new RegExp('"',"ug"),$1=[1105920,1112319];function wI(t){var e=t.replace(AI,""),n=BT(e,0),r=n>=$1[0]&&n<=$1[1],i=e.length===2?e[0]===e[1]:!1;return{value:Xl(i?e[0]:e),isSecondary:r||i}}function ey(t,e){var n="".concat(cT).concat(e.replace(":","-"));return new Promise(function(r,i){if(t.getAttribute(n)!==null)return r();var o=Xr(t.children),a=o.filter(function(v){return v.getAttribute(Ul)===e})[0],s=hn.getComputedStyle(t,e),c=s.getPropertyValue("font-family").match(hT),u=s.getPropertyValue("font-weight"),f=s.getPropertyValue("content");if(a&&!c)return t.removeChild(a),r();if(c&&f!=="none"&&f!==""){var l=s.getPropertyValue("content"),d=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(c[2])?ps[c[2].toLowerCase()]:pT[u],h=wI(l),p=h.value,m=h.isSecondary,y=c[0].startsWith("FontAwesome"),g=Kl(d,p),A=g;if(y){var w=GT(p);w.iconName&&w.prefix&&(g=w.iconName,d=w.prefix)}if(g&&!m&&(!a||a.getAttribute(Gl)!==d||a.getAttribute(Hl)!==A)){t.setAttribute(n,A),a&&t.removeChild(a);var C=fI(),b=C.extra;b.attributes[Ul]=e,of(g,d).then(function(v){var x=tf(N(N({},C),{},{icons:{main:v,mask:Jl()},prefix:d,iconName:A,extra:b,watchable:!0})),E=$.createElement("svg");e==="::before"?t.insertBefore(E,t.firstChild):t.appendChild(E),E.outerHTML=x.map(function(I){return Ao(I)}).join(`
2133
- `),t.removeAttribute(n),r()}).catch(i)}else r()}else r()})}function xI(t){return Promise.all([ey(t,"::before"),ey(t,"::after")])}function CI(t){return t.parentNode!==document.head&&!~lT.indexOf(t.tagName.toUpperCase())&&!t.getAttribute(Ul)&&(!t.parentNode||t.parentNode.tagName!=="svg")}function ty(t){if(!!Ft)return new Promise(function(e,n){var r=Xr(t.querySelectorAll("*")).filter(CI).map(xI),i=sf.begin("searchPseudoElements");X1(),Promise.all(r).then(function(){i(),uf(),e()}).catch(function(){i(),uf(),n()})})}var EI={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=ty,n}}},provides:function(e){e.pseudoElements2svg=function(n){var r=n.node,i=r===void 0?$:r;F.searchPseudoElements&&ty(i)}}},ny=!1,SI={mixout:function(){return{dom:{unwatch:function(){X1(),ny=!0}}}},hooks:function(){return{bootstrap:function(){Z1($l("mutationObserverCallbacks",{}))},noAuto:function(){sI()},watch:function(n){var r=n.observeMutationsRoot;ny?uf():Z1($l("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},ry=function(e){var n={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e.toLowerCase().split(" ").reduce(function(r,i){var o=i.toLowerCase().split("-"),a=o[0],s=o.slice(1).join("-");if(a&&s==="h")return r.flipX=!0,r;if(a&&s==="v")return r.flipY=!0,r;if(s=parseFloat(s),isNaN(s))return r;switch(a){case"grow":r.size=r.size+s;break;case"shrink":r.size=r.size-s;break;case"left":r.x=r.x-s;break;case"right":r.x=r.x+s;break;case"up":r.y=r.y-s;break;case"down":r.y=r.y+s;break;case"rotate":r.rotate=r.rotate+s;break}return r},n)},DI={mixout:function(){return{parse:{transform:function(n){return ry(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-transform");return i&&(n.transform=ry(i)),n}}},provides:function(e){e.generateAbstractTransformGrouping=function(n){var r=n.main,i=n.transform,o=n.containerWidth,a=n.iconWidth,s={transform:"translate(".concat(o/2," 256)")},c="translate(".concat(i.x*32,", ").concat(i.y*32,") "),u="scale(".concat(i.size/16*(i.flipX?-1:1),", ").concat(i.size/16*(i.flipY?-1:1),") "),f="rotate(".concat(i.rotate," 0 0)"),l={transform:"".concat(c," ").concat(u," ").concat(f)},d={transform:"translate(".concat(a/2*-1," -256)")},h={outer:s,inner:l,path:d};return{tag:"g",attributes:N({},h.outer),children:[{tag:"g",attributes:N({},h.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:N(N({},r.icon.attributes),h.path)}]}]}}}},lf={x:0,y:0,width:"100%",height:"100%"};function iy(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}function MI(t){return t.tag==="g"?t.children:[t]}var TI={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-mask"),o=i?bs(i.split(" ").map(function(a){return a.trim()})):Jl();return o.prefix||(o.prefix=mn()),n.mask=o,n.maskId=r.getAttribute("data-fa-mask-id"),n}}},provides:function(e){e.generateAbstractMask=function(n){var r=n.children,i=n.attributes,o=n.main,a=n.mask,s=n.maskId,c=n.transform,u=o.width,f=o.icon,l=a.width,d=a.icon,h=DT({transform:c,containerWidth:l,iconWidth:u}),p={tag:"rect",attributes:N(N({},lf),{},{fill:"white"})},m=f.children?{children:f.children.map(iy)}:{},y={tag:"g",attributes:N({},h.inner),children:[iy(N({tag:f.tag,attributes:N(N({},f.attributes),h.path)},m))]},g={tag:"g",attributes:N({},h.outer),children:[y]},A="mask-".concat(s||bo()),w="clip-".concat(s||bo()),C={tag:"mask",attributes:N(N({},lf),{},{id:A,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,g]},b={tag:"defs",children:[{tag:"clipPath",attributes:{id:w},children:MI(d)},C]};return r.push(b,{tag:"rect",attributes:N({fill:"currentColor","clip-path":"url(#".concat(w,")"),mask:"url(#".concat(A,")")},lf)}),{children:r,attributes:i}}}},II={provides:function(e){var n=!1;hn.matchMedia&&(n=hn.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var r=[],i={fill:"currentColor"},o={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};r.push({tag:"path",attributes:N(N({},i),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var a=N(N({},o),{},{attributeName:"opacity"}),s={tag:"circle",attributes:N(N({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||s.children.push({tag:"animate",attributes:N(N({},o),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:N(N({},a),{},{values:"1;0;1;1;0;1;"})}),r.push(s),r.push({tag:"path",attributes:N(N({},i),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:n?[]:[{tag:"animate",attributes:N(N({},a),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:N(N({},i),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:N(N({},a),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},NI={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-symbol"),o=i===null?!1:i===""?!0:i;return n.symbol=o,n}}}},kI=[IT,gI,yI,vI,bI,EI,SI,DI,TI,II,NI];VT(kI,{mixoutsTo:He}),He.noAuto,He.config,He.library,He.dom,He.parse,He.findIconDefinition,He.toHtml;var q=He.icon;He.layer,He.text,He.counter;/**
2131
+ }`;function w1(){var t=h1,e=p1,n=P.familyPrefix,r=P.replacementClass,i=pT;if(n!==t||r!==e){var o=new RegExp("\\.".concat(t,"\\-"),"g"),a=new RegExp("\\--".concat(t,"\\-"),"g"),s=new RegExp("\\.".concat(e),"g");i=i.replace(o,".".concat(n,"-")).replace(a,"--".concat(n,"-")).replace(s,".".concat(r))}return i}var C1=!1;function Yl(){P.autoAddCss&&!C1&&(uT(w1()),C1=!0)}var mT={mixout:function(){return{dom:{css:w1,insertCss:Yl}}},hooks:function(){return{beforeDOMElementCreation:function(){Yl()},beforeI2svg:function(){Yl()}}}},zt=hn||{};zt[Ft]||(zt[Ft]={}),zt[Ft].styles||(zt[Ft].styles={}),zt[Ft].hooks||(zt[Ft].hooks={}),zt[Ft].shims||(zt[Ft].shims=[]);var ct=zt[Ft],S1=[],gT=function t(){$.removeEventListener("DOMContentLoaded",t),ms=1,S1.map(function(e){return e()})},ms=!1;Pt&&(ms=($.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test($.readyState),ms||$.addEventListener("DOMContentLoaded",gT));function yT(t){!Pt||(ms?setTimeout(t,0):S1.push(t))}function yo(t){var e=t.tag,n=t.attributes,r=n===void 0?{}:n,i=t.children,o=i===void 0?[]:i;return typeof t=="string"?x1(t):"<".concat(e," ").concat(fT(r),">").concat(o.map(yo).join(""),"</").concat(e,">")}function E1(t,e,n){if(t&&t[e]&&t[e][n])return{prefix:e,iconName:n,icon:t[e][n]}}var bT=function(e,n){return function(r,i,o,a){return e.call(n,r,i,o,a)}},_l=function(e,n,r,i){var o=Object.keys(e),a=o.length,s=i!==void 0?bT(n,i):n,c,u,f;for(r===void 0?(c=1,f=e[o[0]]):(c=0,f=r);c<a;c++)u=o[c],f=s(f,e[u],u,e);return f};function vT(t){for(var e=[],n=0,r=t.length;n<r;){var i=t.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){var o=t.charCodeAt(n++);(o&64512)==56320?e.push(((i&1023)<<10)+(o&1023)+65536):(e.push(i),n--)}else e.push(i)}return e}function Wl(t){var e=vT(t);return e.length===1?e[0].toString(16):null}function AT(t,e){var n=t.length,r=t.charCodeAt(e),i;return r>=55296&&r<=56319&&n>e+1&&(i=t.charCodeAt(e+1),i>=56320&&i<=57343)?(r-55296)*1024+i-56320+65536:r}function D1(t){return Object.keys(t).reduce(function(e,n){var r=t[n],i=!!r.icon;return i?e[r.iconName]=r.icon:e[n]=r,e},{})}function Xl(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,i=r===void 0?!1:r,o=D1(e);typeof ct.hooks.addPack=="function"&&!i?ct.hooks.addPack(t,D1(e)):ct.styles[t]=k(k({},ct.styles[t]||{}),o),t==="fas"&&Xl("fa",e)}var bo=ct.styles,xT=ct.shims,wT=Object.values(y1),Zl=null,M1={},T1={},I1={},k1={},N1={},CT=Object.keys(Hl);function ST(t){return~rT.indexOf(t)}function ET(t,e){var n=e.split("-"),r=n[0],i=n.slice(1).join("-");return r===t&&i!==""&&!ST(i)?i:null}var L1=function(){var e=function(o){return _l(bo,function(a,s,c){return a[c]=_l(s,o,{}),a},{})};M1=e(function(i,o,a){if(o[3]&&(i[o[3]]=a),o[2]){var s=o[2].filter(function(c){return typeof c=="number"});s.forEach(function(c){i[c.toString(16)]=a})}return i}),T1=e(function(i,o,a){if(i[a]=a,o[2]){var s=o[2].filter(function(c){return typeof c=="string"});s.forEach(function(c){i[c]=a})}return i}),N1=e(function(i,o,a){var s=o[2];return i[a]=a,s.forEach(function(c){i[c]=a}),i});var n="far"in bo||P.autoFetchSvg,r=_l(xT,function(i,o){var a=o[0],s=o[1],c=o[2];return s==="far"&&!n&&(s="fas"),typeof a=="string"&&(i.names[a]={prefix:s,iconName:c}),typeof a=="number"&&(i.unicodes[a.toString(16)]={prefix:s,iconName:c}),i},{names:{},unicodes:{}});I1=r.names,k1=r.unicodes,Zl=gs(P.styleDefault)};cT(function(t){Zl=gs(t.styleDefault)}),L1();function ql(t,e){return(M1[t]||{})[e]}function DT(t,e){return(T1[t]||{})[e]}function Wr(t,e){return(N1[t]||{})[e]}function B1(t){return I1[t]||{prefix:null,iconName:null}}function MT(t){var e=k1[t],n=ql("fas",t);return e||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function mn(){return Zl}var Kl=function(){return{prefix:null,iconName:null,rest:[]}};function gs(t){var e=Hl[t],n=ds[t]||ds[e],r=t in ct.styles?t:null;return n||r||null}function ys(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.skipLookups,r=n===void 0?!1:n,i=null,o=t.reduce(function(a,s){var c=ET(P.familyPrefix,s);if(bo[s]?(s=wT.includes(s)?K5[s]:s,i=s,a.prefix=s):CT.indexOf(s)>-1?(i=s,a.prefix=gs(s)):c?a.iconName=c:s!==P.replacementClass&&a.rest.push(s),!r&&a.prefix&&a.iconName){var u=i==="fa"?B1(a.iconName):{},f=Wr(a.prefix,a.iconName);u.prefix&&(i=null),a.iconName=u.iconName||f||a.iconName,a.prefix=u.prefix||a.prefix,a.prefix==="far"&&!bo.far&&bo.fas&&!P.autoFetchSvg&&(a.prefix="fas")}return a},Kl());return(o.prefix==="fa"||i==="fa")&&(o.prefix=mn()||"fas"),o}var TT=function(){function t(){R5(this,t),this.definitions={}}return j5(t,[{key:"add",value:function(){for(var n=this,r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];var a=i.reduce(this._pullDefinitions,{});Object.keys(a).forEach(function(s){n.definitions[s]=k(k({},n.definitions[s]||{}),a[s]),Xl(s,a[s]);var c=y1[s];c&&Xl(c,a[s]),L1()})}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(n,r){var i=r.prefix&&r.iconName&&r.icon?{0:r}:r;return Object.keys(i).map(function(o){var a=i[o],s=a.prefix,c=a.iconName,u=a.icon,f=u[2];n[s]||(n[s]={}),f.length>0&&f.forEach(function(l){typeof l=="string"&&(n[s][l]=u)}),n[s][c]=u}),n}}]),t}(),O1=[],Xr={},Zr={},IT=Object.keys(Zr);function kT(t,e){var n=e.mixoutsTo;return O1=t,Xr={},Object.keys(Zr).forEach(function(r){IT.indexOf(r)===-1&&delete Zr[r]}),O1.forEach(function(r){var i=r.mixout?r.mixout():{};if(Object.keys(i).forEach(function(a){typeof i[a]=="function"&&(n[a]=i[a]),us(i[a])==="object"&&Object.keys(i[a]).forEach(function(s){n[a]||(n[a]={}),n[a][s]=i[a][s]})}),r.hooks){var o=r.hooks();Object.keys(o).forEach(function(a){Xr[a]||(Xr[a]=[]),Xr[a].push(o[a])})}r.provides&&r.provides(Zr)}),n}function Jl(t,e){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];var o=Xr[t]||[];return o.forEach(function(a){e=a.apply(null,[e].concat(r))}),e}function rr(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=Xr[t]||[];i.forEach(function(o){o.apply(null,n)})}function Rt(){var t=arguments[0],e=Array.prototype.slice.call(arguments,1);return Zr[t]?Zr[t].apply(null,e):void 0}function $l(t){t.prefix==="fa"&&(t.prefix="fas");var e=t.iconName,n=t.prefix||mn();if(!!e)return e=Wr(n,e)||e,E1(P1.definitions,n,e)||E1(ct.styles,n,e)}var P1=new TT,NT=function(){P.autoReplaceSvg=!1,P.observeMutations=!1,rr("noAuto")},LT={i2svg:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Pt?(rr("beforeI2svg",e),Rt("pseudoElements2svg",e),Rt("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot;P.autoReplaceSvg===!1&&(P.autoReplaceSvg=!0),P.observeMutations=!0,yT(function(){OT({autoReplaceSvgRoot:n}),rr("watch",e)})}},BT={icon:function(e){if(e===null)return null;if(us(e)==="object"&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Wr(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&e.length===2){var n=e[1].indexOf("fa-")===0?e[1].slice(3):e[1],r=gs(e[0]);return{prefix:r,iconName:Wr(r,n)||n}}if(typeof e=="string"&&(e.indexOf("".concat(P.familyPrefix,"-"))>-1||e.match(J5))){var i=ys(e.split(" "),{skipLookups:!0});return{prefix:i.prefix||mn(),iconName:Wr(i.prefix,i.iconName)||i.iconName}}if(typeof e=="string"){var o=mn();return{prefix:o,iconName:Wr(o,e)||e}}}},Ge={noAuto:NT,config:P,dom:LT,parse:BT,library:P1,findIconDefinition:$l,toHtml:yo},OT=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.autoReplaceSvgRoot,r=n===void 0?$:n;(Object.keys(ct.styles).length>0||P.autoFetchSvg)&&Pt&&P.autoReplaceSvg&&Ge.dom.i2svg({node:r})};function bs(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map(function(r){return yo(r)})}}),Object.defineProperty(t,"node",{get:function(){if(!!Pt){var r=$.createElement("div");return r.innerHTML=t.html,r.children}}}),t}function PT(t){var e=t.children,n=t.main,r=t.mask,i=t.attributes,o=t.styles,a=t.transform;if(Vl(a)&&n.found&&!r.found){var s=n.width,c=n.height,u={x:s/c/2,y:.5};i.style=ps(k(k({},o),{},{"transform-origin":"".concat(u.x+a.x/16,"em ").concat(u.y+a.y/16,"em")}))}return[{tag:"svg",attributes:i,children:e}]}function FT(t){var e=t.prefix,n=t.iconName,r=t.children,i=t.attributes,o=t.symbol,a=o===!0?"".concat(e,"-").concat(P.familyPrefix,"-").concat(n):o;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:k(k({},i),{},{id:a}),children:r}]}]}function ef(t){var e=t.icons,n=e.main,r=e.mask,i=t.prefix,o=t.iconName,a=t.transform,s=t.symbol,c=t.title,u=t.maskId,f=t.titleId,l=t.extra,d=t.watchable,h=d===void 0?!1:d,p=r.found?r:n,m=p.width,y=p.height,g=i==="fak",x=[P.replacementClass,o?"".concat(P.familyPrefix,"-").concat(o):""].filter(function(I){return l.classes.indexOf(I)===-1}).filter(function(I){return I!==""||!!I}).concat(l.classes).join(" "),A={children:[],attributes:k(k({},l.attributes),{},{"data-prefix":i,"data-icon":o,class:x,role:l.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(y)})},C=g&&!~l.classes.indexOf("fa-fw")?{width:"".concat(m/y*16*.0625,"em")}:{};h&&(A.attributes[tr]=""),c&&(A.children.push({tag:"title",attributes:{id:A.attributes["aria-labelledby"]||"title-".concat(f||go())},children:[c]}),delete A.attributes.title);var v=k(k({},A),{},{prefix:i,iconName:o,main:n,mask:r,maskId:u,transform:a,symbol:s,styles:k(k({},C),l.styles)}),b=r.found&&n.found?Rt("generateAbstractMask",v)||{children:[],attributes:{}}:Rt("generateAbstractIcon",v)||{children:[],attributes:{}},w=b.children,E=b.attributes;return v.children=w,v.attributes=E,s?FT(v):PT(v)}function F1(t){var e=t.content,n=t.width,r=t.height,i=t.transform,o=t.title,a=t.extra,s=t.watchable,c=s===void 0?!1:s,u=k(k(k({},a.attributes),o?{title:o}:{}),{},{class:a.classes.join(" ")});c&&(u[tr]="");var f=k({},a.styles);Vl(i)&&(f.transform=hT({transform:i,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f.transform);var l=ps(f);l.length>0&&(u.style=l);var d=[];return d.push({tag:"span",attributes:u,children:[e]}),o&&d.push({tag:"span",attributes:{class:"sr-only"},children:[o]}),d}function zT(t){var e=t.content,n=t.title,r=t.extra,i=k(k(k({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),o=ps(r.styles);o.length>0&&(i.style=o);var a=[];return a.push({tag:"span",attributes:i,children:[e]}),n&&a.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),a}var tf=ct.styles;function nf(t){var e=t[0],n=t[1],r=t.slice(4),i=Pl(r,1),o=i[0],a=null;return Array.isArray(o)?a={tag:"g",attributes:{class:"".concat(P.familyPrefix,"-").concat(nr.GROUP)},children:[{tag:"path",attributes:{class:"".concat(P.familyPrefix,"-").concat(nr.SECONDARY),fill:"currentColor",d:o[0]}},{tag:"path",attributes:{class:"".concat(P.familyPrefix,"-").concat(nr.PRIMARY),fill:"currentColor",d:o[1]}}]}:a={tag:"path",attributes:{fill:"currentColor",d:o}},{found:!0,width:e,height:n,icon:a}}var RT={found:!1,width:512,height:512};function jT(t,e){!g1&&!P.showMissingIcons&&t&&console.error('Icon with name "'.concat(t,'" and prefix "').concat(e,'" is missing.'))}function rf(t,e){var n=e;return e==="fa"&&P.styleDefault!==null&&(e=mn()),new Promise(function(r,i){if(Rt("missingIconAbstract"),n==="fa"){var o=B1(t)||{};t=o.iconName||t,e=o.prefix||e}if(t&&e&&tf[e]&&tf[e][t]){var a=tf[e][t];return r(nf(a))}jT(t,e),r(k(k({},RT),{},{icon:P.showMissingIcons&&t?Rt("missingIconAbstract")||{}:{}}))})}var z1=function(){},of=P.measurePerformance&&fs&&fs.mark&&fs.measure?fs:{mark:z1,measure:z1},vo='FA "6.1.1"',UT=function(e){return of.mark("".concat(vo," ").concat(e," begins")),function(){return R1(e)}},R1=function(e){of.mark("".concat(vo," ").concat(e," ends")),of.measure("".concat(vo," ").concat(e),"".concat(vo," ").concat(e," begins"),"".concat(vo," ").concat(e," ends"))},af={begin:UT,end:R1},vs=function(){};function j1(t){var e=t.getAttribute?t.getAttribute(tr):null;return typeof e=="string"}function GT(t){var e=t.getAttribute?t.getAttribute(Ul):null,n=t.getAttribute?t.getAttribute(Gl):null;return e&&n}function HT(t){return t&&t.classList&&t.classList.contains&&t.classList.contains(P.replacementClass)}function QT(){if(P.autoReplaceSvg===!0)return As.replace;var t=As[P.autoReplaceSvg];return t||As.replace}function VT(t){return $.createElementNS("http://www.w3.org/2000/svg",t)}function YT(t){return $.createElement(t)}function U1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=e.ceFn,r=n===void 0?t.tag==="svg"?VT:YT:n;if(typeof t=="string")return $.createTextNode(t);var i=r(t.tag);Object.keys(t.attributes||[]).forEach(function(a){i.setAttribute(a,t.attributes[a])});var o=t.children||[];return o.forEach(function(a){i.appendChild(U1(a,{ceFn:r}))}),i}function _T(t){var e=" ".concat(t.outerHTML," ");return e="".concat(e,"Font Awesome fontawesome.com "),e}var As={replace:function(e){var n=e[0];if(n.parentNode)if(e[1].forEach(function(i){n.parentNode.insertBefore(U1(i),n)}),n.getAttribute(tr)===null&&P.keepOriginalSource){var r=$.createComment(_T(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(e){var n=e[0],r=e[1];if(~Ql(n).indexOf(P.replacementClass))return As.replace(e);var i=new RegExp("".concat(P.familyPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var o=r[0].attributes.class.split(" ").reduce(function(s,c){return c===P.replacementClass||c.match(i)?s.toSvg.push(c):s.toNode.push(c),s},{toNode:[],toSvg:[]});r[0].attributes.class=o.toSvg.join(" "),o.toNode.length===0?n.removeAttribute("class"):n.setAttribute("class",o.toNode.join(" "))}var a=r.map(function(s){return yo(s)}).join(`
2132
+ `);n.setAttribute(tr,""),n.innerHTML=a}};function G1(t){t()}function H1(t,e){var n=typeof e=="function"?e:vs;if(t.length===0)n();else{var r=G1;P.mutateApproach===Z5&&(r=hn.requestAnimationFrame||G1),r(function(){var i=QT(),o=af.begin("mutate");t.map(i),o(),n()})}}var sf=!1;function Q1(){sf=!0}function cf(){sf=!1}var xs=null;function V1(t){if(!!f1&&!!P.observeMutations){var e=t.treeCallback,n=e===void 0?vs:e,r=t.nodeCallback,i=r===void 0?vs:r,o=t.pseudoElementsCallback,a=o===void 0?vs:o,s=t.observeMutationsRoot,c=s===void 0?$:s;xs=new f1(function(u){if(!sf){var f=mn();_r(u).forEach(function(l){if(l.type==="childList"&&l.addedNodes.length>0&&!j1(l.addedNodes[0])&&(P.searchPseudoElements&&a(l.target),n(l.target)),l.type==="attributes"&&l.target.parentNode&&P.searchPseudoElements&&a(l.target.parentNode),l.type==="attributes"&&j1(l.target)&&~nT.indexOf(l.attributeName))if(l.attributeName==="class"&&GT(l.target)){var d=ys(Ql(l.target)),h=d.prefix,p=d.iconName;l.target.setAttribute(Ul,h||f),p&&l.target.setAttribute(Gl,p)}else HT(l.target)&&i(l.target)})}}),Pt&&xs.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function WT(){!xs||xs.disconnect()}function XT(t){var e=t.getAttribute("style"),n=[];return e&&(n=e.split(";").reduce(function(r,i){var o=i.split(":"),a=o[0],s=o.slice(1);return a&&s.length>0&&(r[a]=s.join(":").trim()),r},{})),n}function ZT(t){var e=t.getAttribute("data-prefix"),n=t.getAttribute("data-icon"),r=t.innerText!==void 0?t.innerText.trim():"",i=ys(Ql(t));return i.prefix||(i.prefix=mn()),e&&n&&(i.prefix=e,i.iconName=n),i.iconName&&i.prefix||i.prefix&&r.length>0&&(i.iconName=DT(i.prefix,t.innerText)||ql(i.prefix,Wl(t.innerText))),i}function qT(t){var e=_r(t.attributes).reduce(function(i,o){return i.name!=="class"&&i.name!=="style"&&(i[o.name]=o.value),i},{}),n=t.getAttribute("title"),r=t.getAttribute("data-fa-title-id");return P.autoA11y&&(n?e["aria-labelledby"]="".concat(P.replacementClass,"-title-").concat(r||go()):(e["aria-hidden"]="true",e.focusable="false")),e}function KT(){return{iconName:null,title:null,titleId:null,prefix:null,transform:yt,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function Y1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=ZT(t),r=n.iconName,i=n.prefix,o=n.rest,a=qT(t),s=Jl("parseNodeAttributes",{},t),c=e.styleParser?XT(t):[];return k({iconName:r,title:t.getAttribute("title"),titleId:t.getAttribute("data-fa-title-id"),prefix:i,transform:yt,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:o,styles:c,attributes:a}},s)}var JT=ct.styles;function _1(t){var e=P.autoReplaceSvg==="nest"?Y1(t,{styleParser:!1}):Y1(t);return~e.extra.classes.indexOf(b1)?Rt("generateLayersText",t,e):Rt("generateSvgReplacementMutation",t,e)}function W1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!Pt)return Promise.resolve();var n=$.documentElement.classList,r=function(l){return n.add("".concat(m1,"-").concat(l))},i=function(l){return n.remove("".concat(m1,"-").concat(l))},o=P.autoFetchSvg?Object.keys(Hl):Object.keys(JT),a=[".".concat(b1,":not([").concat(tr,"])")].concat(o.map(function(f){return".".concat(f,":not([").concat(tr,"])")})).join(", ");if(a.length===0)return Promise.resolve();var s=[];try{s=_r(t.querySelectorAll(a))}catch{}if(s.length>0)r("pending"),i("complete");else return Promise.resolve();var c=af.begin("onTree"),u=s.reduce(function(f,l){try{var d=_1(l);d&&f.push(d)}catch(h){g1||h.name==="MissingIcon"&&console.error(h)}return f},[]);return new Promise(function(f,l){Promise.all(u).then(function(d){H1(d,function(){r("active"),r("complete"),i("pending"),typeof e=="function"&&e(),c(),f()})}).catch(function(d){c(),l(d)})})}function $T(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;_1(t).then(function(n){n&&H1([n],e)})}function e6(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(e||{}).icon?e:$l(e||{}),i=n.mask;return i&&(i=(i||{}).icon?i:$l(i||{})),t(r,k(k({},n),{},{mask:i}))}}var t6=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,i=r===void 0?yt:r,o=n.symbol,a=o===void 0?!1:o,s=n.mask,c=s===void 0?null:s,u=n.maskId,f=u===void 0?null:u,l=n.title,d=l===void 0?null:l,h=n.titleId,p=h===void 0?null:h,m=n.classes,y=m===void 0?[]:m,g=n.attributes,x=g===void 0?{}:g,A=n.styles,C=A===void 0?{}:A;if(!!e){var v=e.prefix,b=e.iconName,w=e.icon;return bs(k({type:"icon"},e),function(){return rr("beforeDOMElementCreation",{iconDefinition:e,params:n}),P.autoA11y&&(d?x["aria-labelledby"]="".concat(P.replacementClass,"-title-").concat(p||go()):(x["aria-hidden"]="true",x.focusable="false")),ef({icons:{main:nf(w),mask:c?nf(c.icon):{found:!1,width:null,height:null,icon:{}}},prefix:v,iconName:b,transform:k(k({},yt),i),symbol:a,title:d,maskId:f,titleId:p,extra:{attributes:x,styles:C,classes:y}})})}},n6={mixout:function(){return{icon:e6(t6)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=W1,n.nodeCallback=$T,n}}},provides:function(e){e.i2svg=function(n){var r=n.node,i=r===void 0?$:r,o=n.callback,a=o===void 0?function(){}:o;return W1(i,a)},e.generateSvgReplacementMutation=function(n,r){var i=r.iconName,o=r.title,a=r.titleId,s=r.prefix,c=r.transform,u=r.symbol,f=r.mask,l=r.maskId,d=r.extra;return new Promise(function(h,p){Promise.all([rf(i,s),f.iconName?rf(f.iconName,f.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(m){var y=Pl(m,2),g=y[0],x=y[1];h([n,ef({icons:{main:g,mask:x},prefix:s,iconName:i,transform:c,symbol:u,maskId:l,title:o,titleId:a,extra:d,watchable:!0})])}).catch(p)})},e.generateAbstractIcon=function(n){var r=n.children,i=n.attributes,o=n.main,a=n.transform,s=n.styles,c=ps(s);c.length>0&&(i.style=c);var u;return Vl(a)&&(u=Rt("generateAbstractTransformGrouping",{main:o,transform:a,containerWidth:o.width,iconWidth:o.width})),r.push(u||o.icon),{children:r,attributes:i}}}},r6={mixout:function(){return{layer:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.classes,o=i===void 0?[]:i;return bs({type:"layer"},function(){rr("beforeDOMElementCreation",{assembler:n,params:r});var a=[];return n(function(s){Array.isArray(s)?s.map(function(c){a=a.concat(c.abstract)}):a=a.concat(s.abstract)}),[{tag:"span",attributes:{class:["".concat(P.familyPrefix,"-layers")].concat(ls(o)).join(" ")},children:a}]})}}}},i6={mixout:function(){return{counter:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.title,o=i===void 0?null:i,a=r.classes,s=a===void 0?[]:a,c=r.attributes,u=c===void 0?{}:c,f=r.styles,l=f===void 0?{}:f;return bs({type:"counter",content:n},function(){return rr("beforeDOMElementCreation",{content:n,params:r}),zT({content:n.toString(),title:o,extra:{attributes:u,styles:l,classes:["".concat(P.familyPrefix,"-layers-counter")].concat(ls(s))}})})}}}},o6={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.transform,o=i===void 0?yt:i,a=r.title,s=a===void 0?null:a,c=r.classes,u=c===void 0?[]:c,f=r.attributes,l=f===void 0?{}:f,d=r.styles,h=d===void 0?{}:d;return bs({type:"text",content:n},function(){return rr("beforeDOMElementCreation",{content:n,params:r}),F1({content:n,transform:k(k({},yt),o),title:s,extra:{attributes:l,styles:h,classes:["".concat(P.familyPrefix,"-layers-text")].concat(ls(u))}})})}}},provides:function(e){e.generateLayersText=function(n,r){var i=r.title,o=r.transform,a=r.extra,s=null,c=null;if(d1){var u=parseInt(getComputedStyle(n).fontSize,10),f=n.getBoundingClientRect();s=f.width/u,c=f.height/u}return P.autoA11y&&!i&&(a.attributes["aria-hidden"]="true"),Promise.resolve([n,F1({content:n.innerHTML,width:s,height:c,transform:o,title:i,extra:a,watchable:!0})])}}},a6=new RegExp('"',"ug"),X1=[1105920,1112319];function s6(t){var e=t.replace(a6,""),n=AT(e,0),r=n>=X1[0]&&n<=X1[1],i=e.length===2?e[0]===e[1]:!1;return{value:Wl(i?e[0]:e),isSecondary:r||i}}function Z1(t,e){var n="".concat(X5).concat(e.replace(":","-"));return new Promise(function(r,i){if(t.getAttribute(n)!==null)return r();var o=_r(t.children),a=o.filter(function(b){return b.getAttribute(jl)===e})[0],s=hn.getComputedStyle(t,e),c=s.getPropertyValue("font-family").match($5),u=s.getPropertyValue("font-weight"),f=s.getPropertyValue("content");if(a&&!c)return t.removeChild(a),r();if(c&&f!=="none"&&f!==""){var l=s.getPropertyValue("content"),d=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(c[2])?ds[c[2].toLowerCase()]:eT[u],h=s6(l),p=h.value,m=h.isSecondary,y=c[0].startsWith("FontAwesome"),g=ql(d,p),x=g;if(y){var A=MT(p);A.iconName&&A.prefix&&(g=A.iconName,d=A.prefix)}if(g&&!m&&(!a||a.getAttribute(Ul)!==d||a.getAttribute(Gl)!==x)){t.setAttribute(n,x),a&&t.removeChild(a);var C=KT(),v=C.extra;v.attributes[jl]=e,rf(g,d).then(function(b){var w=ef(k(k({},C),{},{icons:{main:b,mask:Kl()},prefix:d,iconName:x,extra:v,watchable:!0})),E=$.createElement("svg");e==="::before"?t.insertBefore(E,t.firstChild):t.appendChild(E),E.outerHTML=w.map(function(I){return yo(I)}).join(`
2133
+ `),t.removeAttribute(n),r()}).catch(i)}else r()}else r()})}function c6(t){return Promise.all([Z1(t,"::before"),Z1(t,"::after")])}function u6(t){return t.parentNode!==document.head&&!~q5.indexOf(t.tagName.toUpperCase())&&!t.getAttribute(jl)&&(!t.parentNode||t.parentNode.tagName!=="svg")}function q1(t){if(!!Pt)return new Promise(function(e,n){var r=_r(t.querySelectorAll("*")).filter(u6).map(c6),i=af.begin("searchPseudoElements");Q1(),Promise.all(r).then(function(){i(),cf(),e()}).catch(function(){i(),cf(),n()})})}var l6={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=q1,n}}},provides:function(e){e.pseudoElements2svg=function(n){var r=n.node,i=r===void 0?$:r;P.searchPseudoElements&&q1(i)}}},K1=!1,f6={mixout:function(){return{dom:{unwatch:function(){Q1(),K1=!0}}}},hooks:function(){return{bootstrap:function(){V1(Jl("mutationObserverCallbacks",{}))},noAuto:function(){WT()},watch:function(n){var r=n.observeMutationsRoot;K1?cf():V1(Jl("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},J1=function(e){var n={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e.toLowerCase().split(" ").reduce(function(r,i){var o=i.toLowerCase().split("-"),a=o[0],s=o.slice(1).join("-");if(a&&s==="h")return r.flipX=!0,r;if(a&&s==="v")return r.flipY=!0,r;if(s=parseFloat(s),isNaN(s))return r;switch(a){case"grow":r.size=r.size+s;break;case"shrink":r.size=r.size-s;break;case"left":r.x=r.x-s;break;case"right":r.x=r.x+s;break;case"up":r.y=r.y-s;break;case"down":r.y=r.y+s;break;case"rotate":r.rotate=r.rotate+s;break}return r},n)},d6={mixout:function(){return{parse:{transform:function(n){return J1(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-transform");return i&&(n.transform=J1(i)),n}}},provides:function(e){e.generateAbstractTransformGrouping=function(n){var r=n.main,i=n.transform,o=n.containerWidth,a=n.iconWidth,s={transform:"translate(".concat(o/2," 256)")},c="translate(".concat(i.x*32,", ").concat(i.y*32,") "),u="scale(".concat(i.size/16*(i.flipX?-1:1),", ").concat(i.size/16*(i.flipY?-1:1),") "),f="rotate(".concat(i.rotate," 0 0)"),l={transform:"".concat(c," ").concat(u," ").concat(f)},d={transform:"translate(".concat(a/2*-1," -256)")},h={outer:s,inner:l,path:d};return{tag:"g",attributes:k({},h.outer),children:[{tag:"g",attributes:k({},h.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:k(k({},r.icon.attributes),h.path)}]}]}}}},uf={x:0,y:0,width:"100%",height:"100%"};function $1(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}function h6(t){return t.tag==="g"?t.children:[t]}var p6={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-mask"),o=i?ys(i.split(" ").map(function(a){return a.trim()})):Kl();return o.prefix||(o.prefix=mn()),n.mask=o,n.maskId=r.getAttribute("data-fa-mask-id"),n}}},provides:function(e){e.generateAbstractMask=function(n){var r=n.children,i=n.attributes,o=n.main,a=n.mask,s=n.maskId,c=n.transform,u=o.width,f=o.icon,l=a.width,d=a.icon,h=dT({transform:c,containerWidth:l,iconWidth:u}),p={tag:"rect",attributes:k(k({},uf),{},{fill:"white"})},m=f.children?{children:f.children.map($1)}:{},y={tag:"g",attributes:k({},h.inner),children:[$1(k({tag:f.tag,attributes:k(k({},f.attributes),h.path)},m))]},g={tag:"g",attributes:k({},h.outer),children:[y]},x="mask-".concat(s||go()),A="clip-".concat(s||go()),C={tag:"mask",attributes:k(k({},uf),{},{id:x,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,g]},v={tag:"defs",children:[{tag:"clipPath",attributes:{id:A},children:h6(d)},C]};return r.push(v,{tag:"rect",attributes:k({fill:"currentColor","clip-path":"url(#".concat(A,")"),mask:"url(#".concat(x,")")},uf)}),{children:r,attributes:i}}}},m6={provides:function(e){var n=!1;hn.matchMedia&&(n=hn.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var r=[],i={fill:"currentColor"},o={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};r.push({tag:"path",attributes:k(k({},i),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var a=k(k({},o),{},{attributeName:"opacity"}),s={tag:"circle",attributes:k(k({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||s.children.push({tag:"animate",attributes:k(k({},o),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:k(k({},a),{},{values:"1;0;1;1;0;1;"})}),r.push(s),r.push({tag:"path",attributes:k(k({},i),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:n?[]:[{tag:"animate",attributes:k(k({},a),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:k(k({},i),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:k(k({},a),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},g6={hooks:function(){return{parseNodeAttributes:function(n,r){var i=r.getAttribute("data-fa-symbol"),o=i===null?!1:i===""?!0:i;return n.symbol=o,n}}}},y6=[mT,n6,r6,i6,o6,l6,f6,d6,p6,m6,g6];kT(y6,{mixoutsTo:Ge}),Ge.noAuto,Ge.config,Ge.library,Ge.dom,Ge.parse,Ge.findIconDefinition,Ge.toHtml;var q=Ge.icon;Ge.layer,Ge.text,Ge.counter;/**
2134
2134
  * @license
2135
2135
  * Copyright 2018 Google LLC
2136
2136
  * SPDX-License-Identifier: BSD-3-Clause
2137
- */const LI=Wr(class extends go{constructor(t){var e;if(super(t),t.type!==Bt.ATTRIBUTE||t.name!=="style"||((e=t.strings)===null||e===void 0?void 0:e.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(t){return Object.keys(t).reduce((e,n)=>{const r=t[n];return r==null?e:e+`${n=n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(t,[e]){const{style:n}=t.element;if(this.ct===void 0){this.ct=new Set;for(const r in e)this.ct.add(r);return this.render(e)}this.ct.forEach(r=>{e[r]==null&&(this.ct.delete(r),r.includes("-")?n.removeProperty(r):n[r]="")});for(const r in e){const i=e[r];i!=null&&(this.ct.add(r),r.includes("-")?n.setProperty(r,i):n[r]=i)}return xe}}),oy="close-dialog";function OI(){return new CustomEvent(oy,{bubbles:!0})}function or(t="default",e=document.body){const n=document.createElement("div");n.classList.add("gs-modal"),t!="default"&&n.classList.add(t);const r=o=>{var a;switch(o.key){case"Escape":{const s=n.querySelector(".btn-cancel");s&&(s.click(),o.stopPropagation());break}case"Enter":{if(((a=o.target)==null?void 0:a.tagName)=="TEXTAREA")return;n.querySelector(".btn-primary").click(),o.stopPropagation();break}}};n.addEventListener("keydown",r),Be(D`<div class="backdrop"></div><div class="content"></div>`,n);const i=()=>{n.querySelector(".backdrop").addEventListener("transitionend",()=>n.remove()),n.classList.remove("visible"),document.body.classList.remove(Un)};return n.addEventListener("keydown",o=>{o.stopPropagation()}),n.addEventListener(oy,i),e.appendChild(n),window.requestAnimationFrame(()=>n.classList.add("visible")),t!="tour"&&document.body.classList.add(Un),{content:n.querySelector(".content"),close:i}}function Qe(t,e={}){var i;const n=or(),r=e.title;return(i=e.okLabel)!=null||(e.okLabel="OK"),new Promise((o,a)=>{const s=()=>{n.close(),o(!0)},c=D`${r?D`<div class="modal-title">${r}</div>`:R}<div class="modal-body" style="max-width:700px">${t}</div><div class="modal-buttons">${e.cancelButton?D`<button @click="${()=>{n.close(),o(!1)}}">Cancel</button>`:R} <button @click="${s}">${e.okLabel}</button></div>`;Be(c,n.content)})}function BI(t,e){var n,r;tn((n=t.scale)==null?void 0:n.type)?FI(t,e):je((r=t.scale)==null?void 0:r.type)?PI(t,e):Qe("Not implemented (yet).")}function FI(t,e){const n=e.provenance.storeHelper.getDispatcher(),r=t.scale,i=or(),o=D`<div class="modal-title">Filter by <em>${t.name}</em></div>`,a=new Set,s=h=>{n(e.actions.filterByNominal({values:r.domain().filter(p=>a.has(p)),attribute:t.attribute,remove:h})),i.close()},c=h=>{const p=h.target;p.checked?a.add(p.value):a.delete(p.value),d()},u=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button ?disabled="${!a.size}" @click="${()=>s(!1)}">${q(tr).node[0]} Retain</button> <button ?disabled="${!a.size}" @click="${()=>s(!0)}">${q(Fl).node[0]} Remove</button></div>`,f=r,l=D`<p>Please select one or more categories and choose an action.</p><ul class="gs-checkbox-list" @input="${c}" tabindex="0">${r.domain().map(h=>D`<li><label class="checkbox"><span class="color" style="${LI({backgroundColor:f(h).toString()})}"></span> <input type="checkbox" .value="${h}"> ${h}</label></li>`)}</ul>`;function d(){Be(D`${o}<div class="modal-body">${l}</div>${u()}`,i.content)}d(),i.content.querySelector(".gs-checkbox-list input[type='checkbox']").focus()}function PI(t,e){const n=e.provenance.storeHelper.getDispatcher();let r="lt",i;const o=or(),a=D`<div class="modal-title">Filter by <em>${t.name}</em></div>`,s=h=>{n(e.actions.filterByQuantitative({attribute:t.attribute,operator:r,operand:i})),o.close()},c=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>o.close()}">Cancel</button> <button class="btn-primary" ?disabled="${typeof i>"u"}" @click="${()=>s()}">${q(tr).node[0]} Retain</button></div>`,u=h=>{r=h.target.value,d()},f=h=>{const p=h.target.value;i=p.length>0?+p:void 0,d()},l=D`<div class="gs-form-group"><label>Select samples where <em>${t.name}</em> is</label> <select .value="${r}" @change="${u}">${Object.entries(zI).map(([h,p])=>D`<option .value="${h}">${p}</option>`)}</select> <input type="number" placeholder="Please enter a numeric value" @input="${f}"></div>`;function d(){Be(D`${a}<div class="modal-body">${l}</div>${c()}`,o.content)}d(),o.content.querySelector("select").focus()}const zI={lt:"less than",lte:"less than or equal to",eq:"equal to",gte:"greater than or equal to",gt:"greater than"};function RI(t,e){const n=e.provenance.storeHelper.getDispatcher(),r=[{operand:void 0,operator:"lt"}],i=or(),o=D`<div class="modal-title">Group by threshold on <em>${t.name}</em></div>`,a=d=>{n(e.actions.groupByThresholds({attribute:t.attribute,thresholds:r})),i.close()},s=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn-primary" ?disabled="${!jI(r)}" @click="${()=>a()}">${q(yo).node[0]} Group</button></div>`,c=d=>{const h=d.target.value;r[0].operator=h,l()},u=d=>{const h=d.target.value;r[0].operand=h.length>0?+h:void 0,l()},f=D`<div class="gs-form-group"><label>Split into 2 groups using the threshold:</label><div class="threshold-flex"><select .value="${r[0].operator}" @change="${c}"><option value="lt">${"<"}</option><option value="lte">${"\u2264"}</option></select> <input .value="${""+r[0].operand}" type="number" placeholder="Numeric value" @input="${u}"></div></div>`;function l(){Be(D`${o}<div class="modal-body">${f}</div>${s()}`,i.content)}l(),i.content.querySelector("select").focus()}function jI(t){return t[0].operator&&typeof t[0].operand=="number"}function UI(t,e){const n=e.provenance.storeHelper.getDispatcher();let r=5;const i=or(),o=D`<div class="modal-title">Retain first n categories of <em>${t.title}</em></div>`,a=f=>{n(e.actions.retainFirstNCategories({attribute:t.attribute,n:r})),i.close()},s=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn-primary" @click="${()=>a()}">${q(tr).node[0]} Retain</button></div>`,c=D`<div class="gs-form-group"><label>Number of categories to retain:</label> <input type="number" min="1" .valueAsNumber="${r}" @change="${f=>{r=f.target.valueAsNumber}}"></div>`;function u(){Be(D`${o}<div class="modal-body">${c}</div>${s()}`,i.content)}u(),i.content.querySelector("input").focus()}function ff(t,e,n,r){var d;const i=r.actions,o=e.attribute,a=r.sampleHierarchy,s=r.provenance.storeHelper.getDispatcher(),c=[];t&&c.push({label:t,type:"header"});const u=(h,p,m)=>{const y=r.provenance.getActionInfo(h);return{label:y.title,icon:y.icon,callback:p?void 0:m!=null?m:()=>s(h)}},f=(...h)=>c.push(...h.map(p=>u(p)));f(i.sortBy({attribute:o}));const l=(d=e==null?void 0:e.type)!=null?d:"identifier";return l!="quantitative"?(l!="identifier"&&(f(i.groupByNominal({attribute:o}),i.retainFirstOfEach({attribute:o})),c.push(u(i.retainFirstNCategories({attribute:o,n:void 0}),!1,()=>UI(e,r)))),f(i.filterByNominal({attribute:o,values:[n]}),i.filterByNominal({attribute:o,remove:!0,values:[n]})),c.push(u(i.retainMatched({attribute:o}),!a.groupMetadata.length))):(f(i.groupToQuartiles({attribute:o})),c.push({icon:yo,label:"Group by thresholds...",callback:()=>RI(e,r)}),GI(n)?f(i.filterByQuantitative({attribute:o,operator:"gte",operand:+n}),i.filterByQuantitative({attribute:o,operator:"lte",operand:+n})):f(i.removeUndefined({attribute:o}))),l!=="identifier"&&c.push({icon:tr,label:"Advanced filter...",callback:()=>BI(e,r)}),c}function GI(t){return t!=null&&t!==""&&!(typeof t=="number"&&isNaN(t))}function HI(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var jt={},ar={};Object.defineProperty(ar,"__esModule",{value:!0}),ar.ActionCreators=ar.ActionTypes=void 0;var sr={UNDO:"@@redux-undo/UNDO",REDO:"@@redux-undo/REDO",JUMP_TO_FUTURE:"@@redux-undo/JUMP_TO_FUTURE",JUMP_TO_PAST:"@@redux-undo/JUMP_TO_PAST",JUMP:"@@redux-undo/JUMP",CLEAR_HISTORY:"@@redux-undo/CLEAR_HISTORY"};ar.ActionTypes=sr;var QI={undo:function(){return{type:sr.UNDO}},redo:function(){return{type:sr.REDO}},jumpToFuture:function(e){return{type:sr.JUMP_TO_FUTURE,index:e}},jumpToPast:function(e){return{type:sr.JUMP_TO_PAST,index:e}},jump:function(e){return{type:sr.JUMP,index:e}},clearHistory:function(){return{type:sr.CLEAR_HISTORY}}};ar.ActionCreators=QI;var vt={};Object.defineProperty(vt,"__esModule",{value:!0}),vt.parseActions=Es,vt.isHistory=VI,vt.includeAction=YI,vt.excludeAction=_I,vt.combineFilters=WI,vt.groupByActionTypes=XI,vt.newHistory=ZI;function Es(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Array.isArray(t)?t:typeof t=="string"?[t]:e}function VI(t){return typeof t.present<"u"&&typeof t.future<"u"&&typeof t.past<"u"&&Array.isArray(t.future)&&Array.isArray(t.past)}function YI(t){var e=Es(t);return function(n){return e.indexOf(n.type)>=0}}function _I(t){var e=Es(t);return function(n){return e.indexOf(n.type)<0}}function WI(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.reduce(function(r,i){return function(o,a,s){return r(o,a,s)&&i(o,a,s)}},function(){return!0})}function XI(t){var e=Es(t);return function(n){return e.indexOf(n.type)>=0?n.type:null}}function ZI(t,e,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return{past:t,present:e,future:n,group:r,_latestUnfiltered:e,index:t.length,limit:t.length+n.length+1}}var ay={},Jr={};Object.defineProperty(Jr,"__esModule",{value:!0}),Jr.set=i6,Jr.start=t6,Jr.end=n6,Jr.log=r6;function bt(t){return JI(t)||KI(t)||qI()}function qI(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function KI(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function JI(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}var Ss,et,df={prevState:"#9E9E9E",action:"#03A9F4",nextState:"#4CAF50"};function $I(){et={header:[],prev:[],action:[],next:[],msgs:[]}}function e6(){var t=et,e=t.header,n=t.prev,r=t.next,i=t.action,o=t.msgs;if(console.group){var a,s,c,u,f;(a=console).groupCollapsed.apply(a,bt(e)),(s=console).log.apply(s,bt(n)),(c=console).log.apply(c,bt(i)),(u=console).log.apply(u,bt(r)),(f=console).log.apply(f,bt(o)),console.groupEnd()}else{var l,d,h,p,m;(l=console).log.apply(l,bt(e)),(d=console).log.apply(d,bt(n)),(h=console).log.apply(h,bt(i)),(p=console).log.apply(p,bt(r)),(m=console).log.apply(m,bt(o))}}function hf(t,e,n){return["%c".concat(t),"color: ".concat(e,"; font-weight: bold"),n]}function t6(t,e){$I(),Ss&&(console.group?(et.header=["%credux-undo","font-style: italic","action",t.type],et.action=hf("action",df.action,t),et.prev=hf("prev history",df.prevState,e)):(et.header=["redux-undo action",t.type],et.action=["action",t],et.prev=["prev history",e]))}function n6(t){Ss&&(console.group?et.next=hf("next history",df.nextState,t):et.next=["next history",t],e6())}function r6(){if(Ss){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];et.msgs=et.msgs.concat([].concat(e,[`
2138
- `]))}}function i6(t){Ss=t}(function(t){function e(b){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?e=function(x){return typeof x}:e=function(x){return x&&typeof Symbol=="function"&&x.constructor===Symbol&&x!==Symbol.prototype?"symbol":typeof x},e(b)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=C;var n=a(Jr),r=ar,i=vt;function o(){if(typeof WeakMap!="function")return null;var b=new WeakMap;return o=function(){return b},b}function a(b){if(b&&b.__esModule)return b;if(b===null||e(b)!=="object"&&typeof b!="function")return{default:b};var v=o();if(v&&v.has(b))return v.get(b);var x={},E=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var I in b)if(Object.prototype.hasOwnProperty.call(b,I)){var L=E?Object.getOwnPropertyDescriptor(b,I):null;L&&(L.get||L.set)?Object.defineProperty(x,I,L):x[I]=b[I]}return x.default=b,v&&v.set(b,x),x}function s(b,v){var x=Object.keys(b);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(b);v&&(E=E.filter(function(I){return Object.getOwnPropertyDescriptor(b,I).enumerable})),x.push.apply(x,E)}return x}function c(b){for(var v=1;v<arguments.length;v++){var x=arguments[v]!=null?arguments[v]:{};v%2?s(Object(x),!0).forEach(function(E){u(b,E,x[E])}):Object.getOwnPropertyDescriptors?Object.defineProperties(b,Object.getOwnPropertyDescriptors(x)):s(Object(x)).forEach(function(E){Object.defineProperty(b,E,Object.getOwnPropertyDescriptor(x,E))})}return b}function u(b,v,x){return v in b?Object.defineProperty(b,v,{value:x,enumerable:!0,configurable:!0,writable:!0}):b[v]=x,b}function f(b){return h(b)||d(b)||l()}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function d(b){if(Symbol.iterator in Object(b)||Object.prototype.toString.call(b)==="[object Arguments]")return Array.from(b)}function h(b){if(Array.isArray(b)){for(var v=0,x=new Array(b.length);v<b.length;v++)x[v]=b[v];return x}}function p(b,v){var x=(0,i.newHistory)([],b,[]);return v&&(x._latestUnfiltered=null),x}function m(b,v,x,E){var I=b.past.length+1;n.log("inserting",v),n.log("new free: ",x-I);var L=b.past,T=b._latestUnfiltered,B=x&&x<=I,H=L.slice(B?1:0),U=T!=null?[].concat(f(H),[T]):H;return(0,i.newHistory)(U,v,[],E)}function y(b,v){if(v<0||v>=b.future.length)return b;var x=b.past,E=b.future,I=b._latestUnfiltered,L=[].concat(f(x),[I],f(E.slice(0,v))),T=E[v],B=E.slice(v+1);return(0,i.newHistory)(L,T,B)}function g(b,v){if(v<0||v>=b.past.length)return b;var x=b.past,E=b.future,I=b._latestUnfiltered,L=x.slice(0,v),T=[].concat(f(x.slice(v+1)),[I],f(E)),B=x[v];return(0,i.newHistory)(L,B,T)}function A(b,v){return v>0?y(b,v-1):v<0?g(b,b.past.length+v):b}function w(b,v){return v.indexOf(b)>-1?b:!b}function C(b){var v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.set(v.debug);var x=c({limit:void 0,filter:function(){return!0},groupBy:function(){return null},undoType:r.ActionTypes.UNDO,redoType:r.ActionTypes.REDO,jumpToPastType:r.ActionTypes.JUMP_TO_PAST,jumpToFutureType:r.ActionTypes.JUMP_TO_FUTURE,jumpType:r.ActionTypes.JUMP,neverSkipReducer:!1,ignoreInitialState:!1,syncFilter:!1},v,{initTypes:(0,i.parseActions)(v.initTypes,["@@redux-undo/INIT"]),clearHistoryType:(0,i.parseActions)(v.clearHistoryType,[r.ActionTypes.CLEAR_HISTORY])}),E=x.neverSkipReducer?function(L,T){for(var B=arguments.length,H=new Array(B>2?B-2:0),U=2;U<B;U++)H[U-2]=arguments[U];return c({},L,{present:b.apply(void 0,[L.present,T].concat(H))})}:function(L){return L},I;return function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:I,T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.start(T,L);for(var B=L,H=arguments.length,U=new Array(H>2?H-2:0),we=2;we<H;we++)U[we-2]=arguments[we];if(!I)if(n.log("history is uninitialized"),L===void 0){var Ne={type:"@@redux-undo/CREATE_HISTORY"},wn=b.apply(void 0,[L,Ne].concat(U));return B=p(wn,x.ignoreInitialState),n.log("do not set initialState on probe actions"),n.end(B),B}else(0,i.isHistory)(L)?(B=I=x.ignoreInitialState?L:(0,i.newHistory)(L.past,L.present,L.future),n.log("initialHistory initialized: initialState is a history",I)):(B=I=p(L,x.ignoreInitialState),n.log("initialHistory initialized: initialState is not a history",I));var Y;switch(T.type){case void 0:return B;case x.undoType:return Y=A(B,-1),n.log("perform undo"),n.end(Y),E.apply(void 0,[Y,T].concat(U));case x.redoType:return Y=A(B,1),n.log("perform redo"),n.end(Y),E.apply(void 0,[Y,T].concat(U));case x.jumpToPastType:return Y=g(B,T.index),n.log("perform jumpToPast to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case x.jumpToFutureType:return Y=y(B,T.index),n.log("perform jumpToFuture to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case x.jumpType:return Y=A(B,T.index),n.log("perform jump to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w(T.type,x.clearHistoryType):return Y=p(B.present,x.ignoreInitialState),n.log("perform clearHistory"),n.end(Y),E.apply(void 0,[Y,T].concat(U));default:if(Y=b.apply(void 0,[B.present,T].concat(U)),x.initTypes.some(function(ad){return ad===T.type}))return n.log("reset history due to init action"),n.end(I),I;if(B._latestUnfiltered===Y)return B;var Ye=typeof x.filter=="function"&&!x.filter(T,Y,B);if(Ye){var Uo=(0,i.newHistory)(B.past,Y,B.future,B.group);return x.syncFilter||(Uo._latestUnfiltered=B._latestUnfiltered),n.log("filter ignored action, not storing it in past"),n.end(Uo),Uo}var Go=x.groupBy(T,Y,B);if(Go!=null&&Go===B.group){var Ys=(0,i.newHistory)(B.past,Y,B.future,B.group);return n.log("groupBy grouped the action with the previous action"),n.end(Ys),Ys}return B=m(B,Y,x.limit,Go),n.log("inserted new state into history"),n.end(B),B}}}})(ay),function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ActionTypes",{enumerable:!0,get:function(){return e.ActionTypes}}),Object.defineProperty(t,"ActionCreators",{enumerable:!0,get:function(){return e.ActionCreators}}),Object.defineProperty(t,"parseActions",{enumerable:!0,get:function(){return n.parseActions}}),Object.defineProperty(t,"isHistory",{enumerable:!0,get:function(){return n.isHistory}}),Object.defineProperty(t,"includeAction",{enumerable:!0,get:function(){return n.includeAction}}),Object.defineProperty(t,"excludeAction",{enumerable:!0,get:function(){return n.excludeAction}}),Object.defineProperty(t,"combineFilters",{enumerable:!0,get:function(){return n.combineFilters}}),Object.defineProperty(t,"groupByActionTypes",{enumerable:!0,get:function(){return n.groupByActionTypes}}),Object.defineProperty(t,"newHistory",{enumerable:!0,get:function(){return n.newHistory}}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.default}});var e=ar,n=vt,r=i(ay);function i(o){return o&&o.__esModule?o:{default:o}}}(jt);const o6=HI(jt);function pf(t){return t.split("-")[0]}function sy(t){return t.split("-")[1]}function cy(t){return["top","bottom"].includes(pf(t))?"x":"y"}function uy(t){return t==="y"?"height":"width"}function ly(t,e,n){let{reference:r,floating:i}=t;const o=r.x+r.width/2-i.width/2,a=r.y+r.height/2-i.height/2,s=cy(e),c=uy(s),u=r[c]/2-i[c]/2,f=pf(e),l=s==="x";let d;switch(f){case"top":d={x:o,y:r.y-i.height};break;case"bottom":d={x:o,y:r.y+r.height};break;case"right":d={x:r.x+r.width,y:a};break;case"left":d={x:r.x-i.width,y:a};break;default:d={x:r.x,y:r.y}}switch(sy(e)){case"start":d[s]-=u*(n&&l?-1:1);break;case"end":d[s]+=u*(n&&l?-1:1);break}return d}const a6=async(t,e,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=await(a.isRTL==null?void 0:a.isRTL(e));if(process.env.NODE_ENV!=="production"&&(a==null&&console.error(["Floating UI: `platform` property was not passed to config. If you","want to use Floating UI on the web, install @floating-ui/dom","instead of the /core package. Otherwise, you can create your own","`platform`: https://floating-ui.com/docs/platform"].join(" ")),o.filter(p=>{let{name:m}=p;return m==="autoPlacement"||m==="flip"}).length>1))throw new Error(["Floating UI: duplicate `flip` and/or `autoPlacement`","middleware detected. This will lead to an infinite loop. Ensure only","one of either has been passed to the `middleware` array."].join(" "));let c=await a.getElementRects({reference:t,floating:e,strategy:i}),{x:u,y:f}=ly(c,r,s),l=r,d={},h=0;for(let p=0;p<o.length;p++){if(process.env.NODE_ENV!=="production"&&(h++,h>100))throw new Error(["Floating UI: The middleware lifecycle appears to be","running in an infinite loop. This is usually caused by a `reset`","continually being returned without a break condition."].join(" "));const{name:m,fn:y}=o[p],{x:g,y:A,data:w,reset:C}=await y({x:u,y:f,initialPlacement:r,placement:l,strategy:i,middlewareData:d,rects:c,platform:a,elements:{reference:t,floating:e}});if(u=g!=null?g:u,f=A!=null?A:f,d={...d,[m]:{...d[m],...w}},C){typeof C=="object"&&(C.placement&&(l=C.placement),C.rects&&(c=C.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:i}):C.rects),{x:u,y:f}=ly(c,l,s)),p=-1;continue}}return{x:u,y:f,placement:l,strategy:i,middlewareData:d}};function s6(t){return{top:0,right:0,bottom:0,left:0,...t}}function c6(t){return typeof t!="number"?s6(t):{top:t,right:t,bottom:t,left:t}}function Ds(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function u6(t,e){var n;e===void 0&&(e={});const{x:r,y:i,platform:o,rects:a,elements:s,strategy:c}=t,{boundary:u="clippingAncestors",rootBoundary:f="viewport",elementContext:l="floating",altBoundary:d=!1,padding:h=0}=e,p=c6(h),y=s[d?l==="floating"?"reference":"floating":l],g=Ds(await o.getClippingRect({element:(n=await(o.isElement==null?void 0:o.isElement(y)))==null||n?y:y.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(s.floating)),boundary:u,rootBoundary:f,strategy:c})),A=Ds(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({rect:l==="floating"?{...a.floating,x:r,y:i}:a.reference,offsetParent:await(o.getOffsetParent==null?void 0:o.getOffsetParent(s.floating)),strategy:c}):a[l]);return{top:g.top-A.top+p.top,bottom:A.bottom-g.bottom+p.bottom,left:g.left-A.left+p.left,right:A.right-g.right+p.right}}const l6={left:"right",right:"left",bottom:"top",top:"bottom"};function Ms(t){return t.replace(/left|right|bottom|top/g,e=>l6[e])}function f6(t,e,n){n===void 0&&(n=!1);const r=sy(t),i=cy(t),o=uy(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[o]>e.floating[o]&&(a=Ms(a)),{main:a,cross:Ms(a)}}const d6={start:"end",end:"start"};function fy(t){return t.replace(/start|end/g,e=>d6[e])}function h6(t){const e=Ms(t);return[fy(t),e,fy(e)]}const p6=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n;const{placement:r,middlewareData:i,rects:o,initialPlacement:a,platform:s,elements:c}=e,{mainAxis:u=!0,crossAxis:f=!0,fallbackPlacements:l,fallbackStrategy:d="bestFit",flipAlignment:h=!0,...p}=t,m=pf(r),g=l||(m===a||!h?[Ms(a)]:h6(a)),A=[a,...g],w=await u6(e,p),C=[];let b=((n=i.flip)==null?void 0:n.overflows)||[];if(u&&C.push(w[m]),f){const{main:I,cross:L}=f6(r,o,await(s.isRTL==null?void 0:s.isRTL(c.floating)));C.push(w[I],w[L])}if(b=[...b,{placement:r,overflows:C}],!C.every(I=>I<=0)){var v,x;const I=((v=(x=i.flip)==null?void 0:x.index)!=null?v:0)+1,L=A[I];if(L)return{data:{index:I,overflows:b},reset:{placement:L}};let T="bottom";switch(d){case"bestFit":{var E;const B=(E=b.map(H=>[H,H.overflows.filter(U=>U>0).reduce((U,we)=>U+we,0)]).sort((H,U)=>H[1]-U[1])[0])==null?void 0:E[0].placement;B&&(T=B);break}case"initialPlacement":T=a;break}if(r!==T)return{reset:{placement:T}}}return{}}}};function dy(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Ut(t){if(t==null)return window;if(!dy(t)){const e=t.ownerDocument;return e&&e.defaultView||window}return t}function Co(t){return Ut(t).getComputedStyle(t)}function Gt(t){return dy(t)?"":t?(t.nodeName||"").toLowerCase():""}function hy(){const t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function At(t){return t instanceof Ut(t).HTMLElement}function $r(t){return t instanceof Ut(t).Element}function m6(t){return t instanceof Ut(t).Node}function mf(t){if(typeof ShadowRoot>"u")return!1;const e=Ut(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Ts(t){const{overflow:e,overflowX:n,overflowY:r}=Co(t);return/auto|scroll|overlay|hidden/.test(e+r+n)}function g6(t){return["table","td","th"].includes(Gt(t))}function py(t){const e=/firefox/i.test(hy()),n=Co(t);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||e&&n.willChange==="filter"||e&&(n.filter?n.filter!=="none":!1)}function my(){return!/^((?!chrome|android).)*safari/i.test(hy())}const gy=Math.min,Eo=Math.max,Is=Math.round;function cr(t,e,n){var r,i,o,a;e===void 0&&(e=!1),n===void 0&&(n=!1);const s=t.getBoundingClientRect();let c=1,u=1;e&&At(t)&&(c=t.offsetWidth>0&&Is(s.width)/t.offsetWidth||1,u=t.offsetHeight>0&&Is(s.height)/t.offsetHeight||1);const f=$r(t)?Ut(t):window,l=!my()&&n,d=(s.left+(l&&(r=(i=f.visualViewport)==null?void 0:i.offsetLeft)!=null?r:0))/c,h=(s.top+(l&&(o=(a=f.visualViewport)==null?void 0:a.offsetTop)!=null?o:0))/u,p=s.width/c,m=s.height/u;return{width:p,height:m,top:h,right:d+p,bottom:h+m,left:d,x:d,y:h}}function gn(t){return((m6(t)?t.ownerDocument:t.document)||window.document).documentElement}function Ns(t){return $r(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function yy(t){return cr(gn(t)).left+Ns(t).scrollLeft}function y6(t){const e=cr(t);return Is(e.width)!==t.offsetWidth||Is(e.height)!==t.offsetHeight}function v6(t,e,n){const r=At(e),i=gn(e),o=cr(t,r&&y6(e),n==="fixed");let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(r||!r&&n!=="fixed")if((Gt(e)!=="body"||Ts(i))&&(a=Ns(e)),At(e)){const c=cr(e,!0);s.x=c.x+e.clientLeft,s.y=c.y+e.clientTop}else i&&(s.x=yy(i));return{x:o.left+a.scrollLeft-s.x,y:o.top+a.scrollTop-s.y,width:o.width,height:o.height}}function vy(t){return Gt(t)==="html"?t:t.assignedSlot||t.parentNode||(mf(t)?t.host:null)||gn(t)}function by(t){return!At(t)||getComputedStyle(t).position==="fixed"?null:t.offsetParent}function b6(t){let e=vy(t);for(mf(e)&&(e=e.host);At(e)&&!["html","body"].includes(Gt(e));){if(py(e))return e;e=e.parentNode}return null}function gf(t){const e=Ut(t);let n=by(t);for(;n&&g6(n)&&getComputedStyle(n).position==="static";)n=by(n);return n&&(Gt(n)==="html"||Gt(n)==="body"&&getComputedStyle(n).position==="static"&&!py(n))?e:n||b6(t)||e}function Ay(t){if(At(t))return{width:t.offsetWidth,height:t.offsetHeight};const e=cr(t);return{width:e.width,height:e.height}}function A6(t){let{rect:e,offsetParent:n,strategy:r}=t;const i=At(n),o=gn(n);if(n===o)return e;let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&r!=="fixed")&&((Gt(n)!=="body"||Ts(o))&&(a=Ns(n)),At(n))){const c=cr(n,!0);s.x=c.x+n.clientLeft,s.y=c.y+n.clientTop}return{...e,x:e.x-a.scrollLeft+s.x,y:e.y-a.scrollTop+s.y}}function w6(t,e){const n=Ut(t),r=gn(t),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,c=0;if(i){o=i.width,a=i.height;const u=my();(u||!u&&e==="fixed")&&(s=i.offsetLeft,c=i.offsetTop)}return{width:o,height:a,x:s,y:c}}function x6(t){var e;const n=gn(t),r=Ns(t),i=(e=t.ownerDocument)==null?void 0:e.body,o=Eo(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=Eo(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0);let s=-r.scrollLeft+yy(t);const c=-r.scrollTop;return Co(i||n).direction==="rtl"&&(s+=Eo(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:c}}function wy(t){const e=vy(t);return["html","body","#document"].includes(Gt(e))?t.ownerDocument.body:At(e)&&Ts(e)?e:wy(e)}function xy(t,e){var n;e===void 0&&(e=[]);const r=wy(t),i=r===((n=t.ownerDocument)==null?void 0:n.body),o=Ut(r),a=i?[o].concat(o.visualViewport||[],Ts(r)?r:[]):r,s=e.concat(a);return i?s:s.concat(xy(a))}function C6(t,e){const n=e==null||e.getRootNode==null?void 0:e.getRootNode();if(t!=null&&t.contains(e))return!0;if(n&&mf(n)){let r=e;do{if(r&&t===r)return!0;r=r.parentNode||r.host}while(r)}return!1}function E6(t,e){const n=cr(t,!1,e==="fixed"),r=n.top+t.clientTop,i=n.left+t.clientLeft;return{top:r,left:i,x:i,y:r,right:i+t.clientWidth,bottom:r+t.clientHeight,width:t.clientWidth,height:t.clientHeight}}function Cy(t,e,n){return e==="viewport"?Ds(w6(t,n)):$r(e)?E6(e,n):Ds(x6(gn(t)))}function S6(t){const e=xy(t),r=["absolute","fixed"].includes(Co(t).position)&&At(t)?gf(t):t;return $r(r)?e.filter(i=>$r(i)&&C6(i,r)&&Gt(i)!=="body"):[]}function D6(t){let{element:e,boundary:n,rootBoundary:r,strategy:i}=t;const a=[...n==="clippingAncestors"?S6(e):[].concat(n),r],s=a[0],c=a.reduce((u,f)=>{const l=Cy(e,f,i);return u.top=Eo(l.top,u.top),u.right=gy(l.right,u.right),u.bottom=gy(l.bottom,u.bottom),u.left=Eo(l.left,u.left),u},Cy(e,s,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}const M6={getClippingRect:D6,convertOffsetParentRelativeRectToViewportRelativeRect:A6,isElement:$r,getDimensions:Ay,getOffsetParent:gf,getDocumentElement:gn,getElementRects:t=>{let{reference:e,floating:n,strategy:r}=t;return{reference:v6(e,gf(n),r),floating:{...Ay(n),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>Co(t).direction==="rtl"},T6=(t,e,n)=>a6(t,e,{platform:M6,...n});let wt;const So=[],yf=ls(t=>t(),150,!1);function Do(t){if((t==null?void 0:t.type)=="contextmenu"){t.preventDefault();return}wt&&(wt.remove(),wt=void 0,document.body.classList.remove(Un))}function Ey(t){var e;if(!(t<1)){for(let n=t;n<So.length;n++)(e=So[n])==null||e.remove(),So[n]=void 0;for(const n of So[t-1].querySelectorAll("li.active"))n.classList.remove("active")}}const I6=()=>D`<li class="menu-divider"></li>`,N6=t=>D`<li class="menu-header">${t.label||"-"}</li>`,k6=(t,e)=>D`<li><a class="submenu-item" @click="${n=>n.stopPropagation()}" @mouseup="${n=>n.stopPropagation()}" @mouseenter="${n=>yf(()=>{const r=n.target.closest("li");B6(t.submenu,r,e+1),n.stopPropagation()})}" @mouseleave="${()=>yf(()=>Ey(e+1))}"><span>${t.label}</span></a></li>`,L6=t=>D`<li><a @mouseup="${()=>{Do(),t.callback()}}">${t.icon?q(t.icon).node[0]:""} ${t.label}</a> ${t.ellipsisCallback?D`<a class="menu-ellipsis" @click="${t.ellipsisCallback}">${q(U5).node[0]}</a>`:R}</li>`,O6=t=>D`<li><span class="disabled-item">${t.icon?q(t.icon).node[0]:""} ${t.label||"-"}</span></li>`;function Sy(t,e=1){switch(t.type){case"divider":return I6();case"header":return N6(t);default:return t.submenu?k6(t,e):t.callback?L6(t):O6(t)}}function B6(t,e,n){Dy(t,e,n,"right-start"),e.classList.add("active")}function Dy(t,e,n,r){const i=document.createElement("ul");i.classList.add("gs-context-menu"),i.addEventListener("mouseenter",()=>{yf(()=>{})}),Be(t.map(o=>Sy(o,n)),i),wt.appendChild(i),Ey(n),So[n]=i,T6(e,i,{placement:r!=null?r:"right-start",middleware:[p6()]}).then(({x:o,y:a})=>{const s=i.querySelector(":scope > li");s&&(a-=s.getBoundingClientRect().top),i.style.left=`${o}px`,i.style.top=`${a}px`})}function My(t,e,n){n!=null||(n="bottom-start"),Do();const r=performance.now(),i=document.body;wt=document.createElement("div"),wt.classList.add("gs-context-menu-backdrop"),wt.addEventListener("click",Do),wt.addEventListener("contextmenu",Do),wt.addEventListener("mouseup",()=>{performance.now()-r>500&&Do()},{once:!0}),i.appendChild(wt),document.body.classList.add(Un),Dy(t.items,e,0,n)}function Ty(t,e){My(t,F6(e),"right-start"),e.preventDefault()}function F6(t){return{getBoundingClientRect(){return{width:0,height:0,x:t.clientX,y:t.clientY,top:t.clientY,left:t.clientX,right:t.clientX,bottom:t.clientY,toJSON:void 0}}}}const vf={NOMINAL:"nominal",ORDINAL:"ordinal",QUANTITATIVE:"quantitative"},ks="SAMPLE_ATTRIBUTE",Iy="SAMPLE_NAME",P6=/^attribute-(.*)$/;class Ny extends Vr{constructor(e){super({title:"Sample metadata",data:{dynamicSource:!0},hconcat:[],spacing:1,resolve:{scale:{default:"independent"},axis:{default:"independent"}}},e.context,void 0,"sample-metadata"),this.sampleView=e,this._attributeHighlighState={backgroundOpacity:1,currentAttribute:void 0,abortController:new AbortController},this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(ks,n=>this.children.map(this.getAttributeInfoFromView.bind(this)).find(r=>r&&r.name==n.specifier)),this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(Iy,n=>ky),this.addInteractionEventListener("contextmenu",this.handleContextMenu.bind(this)),this.addInteractionEventListener("mousemove",(n,r)=>{var s;const i=r.target,o=this._findSampleForMouseEvent(n,r),a=i&&((s=this.getAttributeInfoFromView(i))==null?void 0:s.name)||void 0;if(o){const c=JSON.stringify([o.id,a]);this.context.updateTooltip(c,u=>Promise.resolve(this.sampleToTooltip(u)))}this._handleAttributeHighlight(a)}),Ue([...this.sampleView.getAncestors()]).addInteractionEventListener("mousemove",(n,r)=>{if(!!this._attributeHighlighState.currentAttribute){if(r.target){for(const i of r.target.getAncestors())if(i==this)return}this._handleAttributeHighlight(void 0)}})}getEncoding(){return{}}render(e,n,r={}){!this.isVisible()||super.render(e,n,{...r,clipRect:this.sampleView._clipBySummary(n)})}_handleAttributeHighlight(e){const n=this._attributeHighlighState;e!=n.currentAttribute&&(n.abortController.abort(),n.abortController=new AbortController,this.context.animator.transition({from:n.backgroundOpacity,onUpdate:r=>{n.backgroundOpacity=r},easingFunction:fg,signal:n.abortController.signal,...e?{to:.1,duration:1e3,delay:n.backgroundOpacity<1?0:500}:{to:1,duration:200,delay:150}}).catch(r=>{}),this.context.animator.requestRender()),n.currentAttribute=e}getSample(e){var n;return(n=this.sampleView.sampleHierarchy.sampleData)==null?void 0:n.entities[e]}_findSampleForMouseEvent(e,n){return this.sampleView.getSampleAt(n.point.y-this.sampleView.childCoords.y)}_getAttributeOpacity(e){const n=this._attributeHighlighState;return e==n.currentAttribute?1:n.backgroundOpacity}handleContextMenu(e,n){const r=n.uiEvent,i=this._findSampleForMouseEvent(e,n);if(!i){r.preventDefault();return}const o=[],a=this.getAttributeInfoFromView(n.target);if(a){const s=i.attributes[a.name];o.push(...ff(D`Attribute: <strong>${a.name}</strong>`,a,s,this.sampleView))}else o.push(...ff(D`Sample: <strong>${i.displayName}</strong>`,ky,i.id,this.sampleView));Ty({items:o},r)}_setSamples(e){if(this.childCount)throw new Error("Children are already created!");this._createViews();const n=this.context.dataFlow;Rg(this,n);const r=n.findDataSourceByKey(this);r.visit(o=>o.initialize());const i=[];this.visit(o=>{if(o instanceof ye){const a=o.mark;a.initializeEncoders(),i.push(a.initializeGraphics().then(s=>a)),n.addObserver(s=>{a.initializeData(),a.updateGraphicsData()},o)}}),Promise.allSettled(i).then(o=>{for(const a of o)"value"in a?a.value.finalizeGraphicsInitialization():"reason"in a&&console.error(a.reason)}),r.publishData(e),this.visit(o=>{o.name.startsWith("title")&&n.findDataSourceByKey(o).load()})}_createViews(){const e=[];e.push(this.context.createView(R6(),this));for(const n of this._getAttributeNames()){const r=this.context.createView(this._createAttributeViewSpec(n),this);r.opacityFunction=i=>i*this._getAttributeOpacity(n),e.push(r)}this.setChildren(e),Ug(this)}_getAttributeDef(e){var n,r;return(r=(n=this.sampleView.spec.samples)==null?void 0:n.attributes)==null?void 0:r[e]}_getAttributeNames(){return this._cache("attributeNames",()=>[...this.sampleView.getSamples().flatMap(r=>Object.keys(r.attributes)).reduce((r,i)=>r.add(i),new Set)])}_createAttributeViewSpec(e){const n=this._getAttributeDef(e);let r=n?n.type:void 0;if(!r){const i=this.sampleView.getSamples();switch(gh(i.map(o=>o.attributes[e]))){case"integer":case"number":r=vf.QUANTITATIVE;break;default:r=vf.NOMINAL}}return z6(e,{...n||{},type:r})}_findViewForAttribute(e){return this.children[this._getAttributeNames().indexOf(e)+1]}getAttributeInfoFromView(e){const n=e==null?void 0:e.name.match(P6);if(n){const r=e.getScaleResolution("color"),i=n[1];return{name:i,attribute:{type:ks,specifier:i},accessor:(o,a)=>a.sampleData.entities[o].attributes[i],type:r.type,scale:r.getScale(),title:D`<em class="attribute">${i}</em>`}}}getAttributeInfo(e){return this.getAttributeInfoFromView(this._findViewForAttribute(e))}sampleToTooltip(e){const[n,r]=JSON.parse(e),i=this.getSample(n),o=(s,c)=>j6(c)?this.getAttributeInfo(s).scale(c):"transparent",a=D`<table class="attributes">${Object.entries(i.attributes).map(([s,c])=>D`<tr class="${w5({hovered:s==r})}"><th>${s}</th><td>${Xg(c)}</td><td class="color" .style="background-color: ${o(s,c)}"></td></tr>`)}</table>`;return D`<div class="title"><strong>${i.displayName||i.id}</strong></div>${a}`}getDefaultResolution(e,n){return"independent"}handleVerboseCommand(e){const n=e;for(const r of this._getAttributeNames()){const i=this.getAttributeInfo(r);if((i.type==gl||i.type==yl)&&this.sampleView.getSamples().find(a=>a.attributes[i.name]==n)){const a=this.sampleView.actions.filterByNominal({attribute:{type:ks,specifier:r},values:[n]}),s=this.sampleView.provenance.getPresentState().lastAction,c=this.sampleView.actions.filterByNominal.match(s)&&!s.payload.remove&&s.payload.attribute.type==ks&&s.payload.attribute.specifier==r&&s.payload.values.length==1;return this.sampleView.provenance.storeHelper.dispatch(c?[jt.ActionCreators.undo(),a]:a),!0}}return!1}isPickingSupported(){return!1}}function z6(t,e){var i,o;const n=`attributes["${t}"]`,r={name:`attribute-${t}`,title:{text:t,orient:"bottom",align:"right",baseline:"middle",offset:5,angle:-90,dy:-.5,fontSize:11},visible:(i=e.visible)!=null?i:!0,width:(o=e.width)!=null?o:10,transform:[{type:"filter",expr:`datum.${n} != null`}],mark:{type:"rect",xOffset:-.5},encoding:{facetIndex:{field:"indexNumber"},color:{field:n,type:e.type,scale:e.scale}},opacity:1};return e.barScale&&e.type==vf.QUANTITATIVE&&(r.encoding.x={field:`attributes["${t}"]`,type:e.type,scale:e.barScale,axis:null}),r}function R6(){return{name:"metadata-sample-name",title:{text:"Sample name",orient:"bottom",anchor:"start",offset:5,fontSize:11},width:140,mark:{type:"text",align:"left",baseline:"middle",size:11,flushY:!1},encoding:{facetIndex:{field:"indexNumber"},x:{value:0},x2:{value:1},y:{value:0},y2:{value:1},text:{field:"displayName"}}}}function j6(t){return t!==""&&!(typeof t=="number"&&isNaN(t))&&t!==null}const ky=Object.freeze({name:"sample",attribute:{type:Iy},accessor:t=>t,type:"identifier",scale:void 0});class U6 extends kt{constructor(e){super({title:{text:"Groups",orient:"none"},width:{step:22},data:{dynamicSource:!0},transform:[{type:"filter",expr:"datum._depth > 0"},{type:"formula",as:"_y1",expr:"datum._index * 2"},{type:"formula",as:"_y2",expr:"datum._index * 2 + 1"},{type:"formula",as:"_NA",expr:"datum.label == null"},{type:"formula",as:"label",expr:"datum.label != null ? datum.label: 'NA'"}],encoding:{x:{field:"_depth",type:"ordinal",scale:{align:0,padding:.2272727},axis:null},y:{field:"_y1",type:"nominal",scale:{type:"ordinal",domain:Yt(500)},axis:null},y2:{field:"_y2"}},layer:[{title:"Group",mark:{type:"rect",clip:!0,color:"#e8e8e8"}},{mark:{type:"text",clip:!0,angle:-90,paddingY:5,tooltip:null},encoding:{text:{field:"label"},opacity:{field:"_NA",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[1,.3]}}}}]},e.context,void 0,"sample-groups"),this.sampleView=e,this._addBroadcastHandler("layoutComputed",()=>{this.updateRange()})}updateRange(){var o,a,s;const e=(o=this.sampleView.getLocations())==null?void 0:o.groups;if(!(e!=null&&e.length))return;const n=(s=(a=this.sampleView)==null?void 0:a.childCoords.height)!=null?s:0,r=this.getScaleResolution("y"),i=[];for(const c of e)i.push(1-(c.locSize.location+c.locSize.size)/n),i.push(1-c.locSize.location/n);r.getScale().range(i),this.context.glHelper.createRangeTexture(r,!0)}updateGroups(){var i,o;const e=(o=(i=this.sampleView.getLocations())==null?void 0:i.groups)!=null?o:[],n=this.context.dataFlow.findDataSourceByKey(this);if(!n)return;const r=e.map(a=>({_index:a.key.index,_name:a.key.group.name,_depth:a.key.depth,attribute:a.key.attributeLabel,label:a.key.group.label,n:a.key.n}));n.publishData(r),this.getScaleResolution("x").reconfigure(),this.getScaleResolution("y").reconfigure(),e.length&&this.updateRange(),Ue([...this.getAncestors()]).visit(a=>so(a,"size"))}}function ve(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];if(process.env.NODE_ENV!=="production"){var i=Z6[t],o=i?typeof i=="function"?i.apply(null,n):i:"unknown error nr: "+t;throw Error("[Immer] "+o)}throw Error("[Immer] minified error nr: "+t+(n.length?" "+n.map(function(a){return"'"+a+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function yn(t){return!!t&&!!t[re]}function Ht(t){return!!t&&(function(e){if(!e||typeof e!="object")return!1;var n=Object.getPrototypeOf(e);if(n===null)return!0;var r=Object.hasOwnProperty.call(n,"constructor")&&n.constructor;return r===Object||typeof r=="function"&&Function.toString.call(r)===q6}(t)||Array.isArray(t)||!!t[Gy]||!!t.constructor[Gy]||bf(t)||Af(t))}function ur(t,e,n){n===void 0&&(n=!1),ei(t)===0?(n?Object.keys:ri)(t).forEach(function(r){n&&typeof r=="symbol"||e(r,t[r],t)}):t.forEach(function(r,i){return e(i,r,t)})}function ei(t){var e=t[re];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:bf(t)?2:Af(t)?3:0}function ti(t,e){return ei(t)===2?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function G6(t,e){return ei(t)===2?t.get(e):t[e]}function Ly(t,e,n){var r=ei(t);r===2?t.set(e,n):r===3?(t.delete(e),t.add(n)):t[e]=n}function Oy(t,e){return t===e?t!==0||1/t==1/e:t!=t&&e!=e}function bf(t){return W6&&t instanceof Map}function Af(t){return X6&&t instanceof Set}function vn(t){return t.o||t.t}function wf(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=Hy(t);delete e[re];for(var n=ri(e),r=0;r<n.length;r++){var i=n[r],o=e[i];o.writable===!1&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(e[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[i]})}return Object.create(Object.getPrototypeOf(t),e)}function xf(t,e){return e===void 0&&(e=!1),Cf(t)||yn(t)||!Ht(t)||(ei(t)>1&&(t.set=t.add=t.clear=t.delete=H6),Object.freeze(t),e&&ur(t,function(n,r){return xf(r,!0)},!0)),t}function H6(){ve(2)}function Cf(t){return t==null||typeof t!="object"||Object.isFrozen(t)}function xt(t){var e=Lf[t];return e||ve(18,t),e}function Q6(t,e){Lf[t]||(Lf[t]=e)}function Ef(){return process.env.NODE_ENV==="production"||ni||ve(0),ni}function Sf(t,e){e&&(xt("Patches"),t.u=[],t.s=[],t.v=e)}function Ls(t){Df(t),t.p.forEach(V6),t.p=null}function Df(t){t===ni&&(ni=t.l)}function By(t){return ni={p:[],l:ni,h:t,m:!0,_:0}}function V6(t){var e=t[re];e.i===0||e.i===1?e.j():e.O=!0}function Mf(t,e){e._=e.p.length;var n=e.p[0],r=t!==void 0&&t!==n;return e.h.g||xt("ES5").S(e,t,r),r?(n[re].P&&(Ls(e),ve(4)),Ht(t)&&(t=Os(e,t),e.l||Bs(e,t)),e.u&&xt("Patches").M(n[re].t,t,e.u,e.s)):t=Os(e,n,[]),Ls(e),e.u&&e.v(e.u,e.s),t!==Uy?t:void 0}function Os(t,e,n){if(Cf(e))return e;var r=e[re];if(!r)return ur(e,function(o,a){return Fy(t,r,e,o,a,n)},!0),e;if(r.A!==t)return e;if(!r.P)return Bs(t,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=wf(r.k):r.o;ur(r.i===3?new Set(i):i,function(o,a){return Fy(t,r,i,o,a,n)}),Bs(t,i,!1),n&&t.u&&xt("Patches").R(r,n,t.u,t.s)}return r.o}function Fy(t,e,n,r,i,o){if(process.env.NODE_ENV!=="production"&&i===n&&ve(5),yn(i)){var a=Os(t,i,o&&e&&e.i!==3&&!ti(e.D,r)?o.concat(r):void 0);if(Ly(n,r,a),!yn(a))return;t.m=!1}if(Ht(i)&&!Cf(i)){if(!t.h.F&&t._<1)return;Os(t,i),e&&e.A.l||Bs(t,i)}}function Bs(t,e,n){n===void 0&&(n=!1),t.h.F&&t.m&&xf(e,n)}function Tf(t,e){var n=t[re];return(n?vn(n):t)[e]}function Py(t,e){if(e in t)for(var n=Object.getPrototypeOf(t);n;){var r=Object.getOwnPropertyDescriptor(n,e);if(r)return r;n=Object.getPrototypeOf(n)}}function bn(t){t.P||(t.P=!0,t.l&&bn(t.l))}function If(t){t.o||(t.o=wf(t.t))}function Nf(t,e,n){var r=bf(e)?xt("MapSet").N(e,n):Af(e)?xt("MapSet").T(e,n):t.g?function(i,o){var a=Array.isArray(i),s={i:a?1:0,A:o?o.A:Ef(),P:!1,I:!1,D:{},l:o,t:i,k:null,o:null,j:null,C:!1},c=s,u=Mo;a&&(c=[s],u=To);var f=Proxy.revocable(c,u),l=f.revoke,d=f.proxy;return s.k=d,s.j=l,d}(e,n):xt("ES5").J(e,n);return(n?n.A:Ef()).p.push(r),r}function Y6(t){return yn(t)||ve(22,t),function e(n){if(!Ht(n))return n;var r,i=n[re],o=ei(n);if(i){if(!i.P&&(i.i<4||!xt("ES5").K(i)))return i.t;i.I=!0,r=zy(n,o),i.I=!1}else r=zy(n,o);return ur(r,function(a,s){i&&G6(i.t,a)===s||Ly(r,a,e(s))}),o===3?new Set(r):r}(t)}function zy(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return wf(t)}function _6(){function t(a,s){var c=o[a];return c?c.enumerable=s:o[a]=c={configurable:!0,enumerable:s,get:function(){var u=this[re];return process.env.NODE_ENV!=="production"&&i(u),Mo.get(u,a)},set:function(u){var f=this[re];process.env.NODE_ENV!=="production"&&i(f),Mo.set(f,a,u)}},c}function e(a){for(var s=a.length-1;s>=0;s--){var c=a[s][re];if(!c.P)switch(c.i){case 5:r(c)&&bn(c);break;case 4:n(c)&&bn(c)}}}function n(a){for(var s=a.t,c=a.k,u=ri(c),f=u.length-1;f>=0;f--){var l=u[f];if(l!==re){var d=s[l];if(d===void 0&&!ti(s,l))return!0;var h=c[l],p=h&&h[re];if(p?p.t!==d:!Oy(h,d))return!0}}var m=!!s[re];return u.length!==ri(s).length+(m?0:1)}function r(a){var s=a.k;if(s.length!==a.t.length)return!0;var c=Object.getOwnPropertyDescriptor(s,s.length-1);if(c&&!c.get)return!0;for(var u=0;u<s.length;u++)if(!s.hasOwnProperty(u))return!0;return!1}function i(a){a.O&&ve(3,JSON.stringify(vn(a)))}var o={};Q6("ES5",{J:function(a,s){var c=Array.isArray(a),u=function(l,d){if(l){for(var h=Array(d.length),p=0;p<d.length;p++)Object.defineProperty(h,""+p,t(p,!0));return h}var m=Hy(d);delete m[re];for(var y=ri(m),g=0;g<y.length;g++){var A=y[g];m[A]=t(A,l||!!m[A].enumerable)}return Object.create(Object.getPrototypeOf(d),m)}(c,a),f={i:c?5:4,A:s?s.A:Ef(),P:!1,I:!1,D:{},l:s,t:a,k:u,o:null,O:!1,C:!1};return Object.defineProperty(u,re,{value:f,writable:!0}),u},S:function(a,s,c){c?yn(s)&&s[re].A===a&&e(a.p):(a.u&&function u(f){if(f&&typeof f=="object"){var l=f[re];if(l){var d=l.t,h=l.k,p=l.D,m=l.i;if(m===4)ur(h,function(C){C!==re&&(d[C]!==void 0||ti(d,C)?p[C]||u(h[C]):(p[C]=!0,bn(l)))}),ur(d,function(C){h[C]!==void 0||ti(h,C)||(p[C]=!1,bn(l))});else if(m===5){if(r(l)&&(bn(l),p.length=!0),h.length<d.length)for(var y=h.length;y<d.length;y++)p[y]=!1;else for(var g=d.length;g<h.length;g++)p[g]=!0;for(var A=Math.min(h.length,d.length),w=0;w<A;w++)h.hasOwnProperty(w)||(p[w]=!0),p[w]===void 0&&u(h[w])}}}}(a.p[0]),e(a.p))},K:function(a){return a.i===4?n(a):r(a)}})}var Ry,ni,kf=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",W6=typeof Map<"u",X6=typeof Set<"u",jy=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Uy=kf?Symbol.for("immer-nothing"):((Ry={})["immer-nothing"]=!0,Ry),Gy=kf?Symbol.for("immer-draftable"):"__$immer_draftable",re=kf?Symbol.for("immer-state"):"__$immer_state",Z6={0:"Illegal state",1:"Immer drafts cannot have computed properties",2:"This object has been frozen and should not be mutated",3:function(t){return"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+t},4:"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.",5:"Immer forbids circular references",6:"The first or second argument to `produce` must be a function",7:"The third argument to `produce` must be a function or undefined",8:"First argument to `createDraft` must be a plain object, an array, or an immerable object",9:"First argument to `finishDraft` must be a draft returned by `createDraft`",10:"The given draft is already finalized",11:"Object.defineProperty() cannot be used on an Immer draft",12:"Object.setPrototypeOf() cannot be used on an Immer draft",13:"Immer only supports deleting array indices",14:"Immer only supports setting array indices and the 'length' property",15:function(t){return"Cannot apply patch, path doesn't resolve: "+t},16:'Sets cannot have "replace" patches.',17:function(t){return"Unsupported patch operation: "+t},18:function(t){return"The plugin for '"+t+"' has not been loaded into Immer. To enable the plugin, import and call `enable"+t+"()` when initializing your application."},20:"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available",21:function(t){return"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '"+t+"'"},22:function(t){return"'current' expects a draft, got: "+t},23:function(t){return"'original' expects a draft, got: "+t},24:"Patching reserved attributes like __proto__, prototype and constructor is not allowed"},q6=""+Object.prototype.constructor,ri=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,Hy=Object.getOwnPropertyDescriptors||function(t){var e={};return ri(t).forEach(function(n){e[n]=Object.getOwnPropertyDescriptor(t,n)}),e},Lf={},Mo={get:function(t,e){if(e===re)return t;var n=vn(t);if(!ti(n,e))return function(i,o,a){var s,c=Py(o,a);return c?"value"in c?c.value:(s=c.get)===null||s===void 0?void 0:s.call(i.k):void 0}(t,n,e);var r=n[e];return t.I||!Ht(r)?r:r===Tf(t.t,e)?(If(t),t.o[e]=Nf(t.A.h,r,t)):r},has:function(t,e){return e in vn(t)},ownKeys:function(t){return Reflect.ownKeys(vn(t))},set:function(t,e,n){var r=Py(vn(t),e);if(r!=null&&r.set)return r.set.call(t.k,n),!0;if(!t.P){var i=Tf(vn(t),e),o=i==null?void 0:i[re];if(o&&o.t===n)return t.o[e]=n,t.D[e]=!1,!0;if(Oy(n,i)&&(n!==void 0||ti(t.t,e)))return!0;If(t),bn(t)}return t.o[e]===n&&typeof n!="number"&&(n!==void 0||e in t.o)||(t.o[e]=n,t.D[e]=!0,!0)},deleteProperty:function(t,e){return Tf(t.t,e)!==void 0||e in t.t?(t.D[e]=!1,If(t),bn(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var n=vn(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.i!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},defineProperty:function(){ve(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){ve(12)}},To={};ur(Mo,function(t,e){To[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}}),To.deleteProperty=function(t,e){return process.env.NODE_ENV!=="production"&&isNaN(parseInt(e))&&ve(13),To.set.call(this,t,e,void 0)},To.set=function(t,e,n){return process.env.NODE_ENV!=="production"&&e!=="length"&&isNaN(parseInt(e))&&ve(14),Mo.set.call(this,t[0],e,n,t[0])};var K6=function(){function t(n){var r=this;this.g=jy,this.F=!0,this.produce=function(i,o,a){if(typeof i=="function"&&typeof o!="function"){var s=o;o=i;var c=r;return function(m){var y=this;m===void 0&&(m=s);for(var g=arguments.length,A=Array(g>1?g-1:0),w=1;w<g;w++)A[w-1]=arguments[w];return c.produce(m,function(C){var b;return(b=o).call.apply(b,[y,C].concat(A))})}}var u;if(typeof o!="function"&&ve(6),a!==void 0&&typeof a!="function"&&ve(7),Ht(i)){var f=By(r),l=Nf(r,i,void 0),d=!0;try{u=o(l),d=!1}finally{d?Ls(f):Df(f)}return typeof Promise<"u"&&u instanceof Promise?u.then(function(m){return Sf(f,a),Mf(m,f)},function(m){throw Ls(f),m}):(Sf(f,a),Mf(u,f))}if(!i||typeof i!="object"){if((u=o(i))===void 0&&(u=i),u===Uy&&(u=void 0),r.F&&xf(u,!0),a){var h=[],p=[];xt("Patches").M(i,u,h,p),a(h,p)}return u}ve(21,i)},this.produceWithPatches=function(i,o){if(typeof i=="function")return function(u){for(var f=arguments.length,l=Array(f>1?f-1:0),d=1;d<f;d++)l[d-1]=arguments[d];return r.produceWithPatches(u,function(h){return i.apply(void 0,[h].concat(l))})};var a,s,c=r.produce(i,o,function(u,f){a=u,s=f});return typeof Promise<"u"&&c instanceof Promise?c.then(function(u){return[u,a,s]}):[c,a,s]},typeof(n==null?void 0:n.useProxies)=="boolean"&&this.setUseProxies(n.useProxies),typeof(n==null?void 0:n.autoFreeze)=="boolean"&&this.setAutoFreeze(n.autoFreeze)}var e=t.prototype;return e.createDraft=function(n){Ht(n)||ve(8),yn(n)&&(n=Y6(n));var r=By(this),i=Nf(this,n,void 0);return i[re].C=!0,Df(r),i},e.finishDraft=function(n,r){var i=n&&n[re];process.env.NODE_ENV!=="production"&&(i&&i.C||ve(9),i.I&&ve(10));var o=i.A;return Sf(o,r),Mf(void 0,o)},e.setAutoFreeze=function(n){this.F=n},e.setUseProxies=function(n){n&&!jy&&ve(20),this.g=n},e.applyPatches=function(n,r){var i;for(i=r.length-1;i>=0;i--){var o=r[i];if(o.path.length===0&&o.op==="replace"){n=o.value;break}}i>-1&&(r=r.slice(i+1));var a=xt("Patches").$;return yn(n)?a(n,r):this.produce(n,function(s){return a(s,r)})},t}(),Ve=new K6,Qy=Ve.produce;Ve.produceWithPatches.bind(Ve),Ve.setAutoFreeze.bind(Ve),Ve.setUseProxies.bind(Ve),Ve.applyPatches.bind(Ve),Ve.createDraft.bind(Ve),Ve.finishDraft.bind(Ve);function J6(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Vy(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Yy(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Vy(Object(n),!0).forEach(function(r){J6(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Vy(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function De(t){return"Minified Redux error #"+t+"; visit https://redux.js.org/Errors?code="+t+" for the full message or use the non-minified dev environment for full errors. "}var _y=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),Of=function(){return Math.random().toString(36).substring(7).split("").join(".")},lr={INIT:"@@redux/INIT"+Of(),REPLACE:"@@redux/REPLACE"+Of(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Of()}};function Wy(t){if(typeof t!="object"||t===null)return!1;for(var e=t;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function $6(t){if(t===void 0)return"undefined";if(t===null)return"null";var e=typeof t;switch(e){case"boolean":case"string":case"number":case"symbol":case"function":return e}if(Array.isArray(t))return"array";if(n9(t))return"date";if(t9(t))return"error";var n=e9(t);switch(n){case"Symbol":case"Promise":case"WeakMap":case"WeakSet":case"Map":case"Set":return n}return e.slice(8,-1).toLowerCase().replace(/\s/g,"")}function e9(t){return typeof t.constructor=="function"?t.constructor.name:null}function t9(t){return t instanceof Error||typeof t.message=="string"&&t.constructor&&typeof t.constructor.stackTraceLimit=="number"}function n9(t){return t instanceof Date?!0:typeof t.toDateString=="function"&&typeof t.getDate=="function"&&typeof t.setDate=="function"}function fr(t){var e=typeof t;return process.env.NODE_ENV!=="production"&&(e=$6(t)),e}function Xy(t,e,n){var r;if(typeof e=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(process.env.NODE_ENV==="production"?De(0):"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.");if(typeof e=="function"&&typeof n>"u"&&(n=e,e=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(process.env.NODE_ENV==="production"?De(1):"Expected the enhancer to be a function. Instead, received: '"+fr(n)+"'");return n(Xy)(t,e)}if(typeof t!="function")throw new Error(process.env.NODE_ENV==="production"?De(2):"Expected the root reducer to be a function. Instead, received: '"+fr(t)+"'");var i=t,o=e,a=[],s=a,c=!1;function u(){s===a&&(s=a.slice())}function f(){if(c)throw new Error(process.env.NODE_ENV==="production"?De(3):"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return o}function l(m){if(typeof m!="function")throw new Error(process.env.NODE_ENV==="production"?De(4):"Expected the listener to be a function. Instead, received: '"+fr(m)+"'");if(c)throw new Error(process.env.NODE_ENV==="production"?De(5):"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.");var y=!0;return u(),s.push(m),function(){if(!!y){if(c)throw new Error(process.env.NODE_ENV==="production"?De(6):"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.");y=!1,u();var A=s.indexOf(m);s.splice(A,1),a=null}}}function d(m){if(!Wy(m))throw new Error(process.env.NODE_ENV==="production"?De(7):"Actions must be plain objects. Instead, the actual type was: '"+fr(m)+"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.");if(typeof m.type>"u")throw new Error(process.env.NODE_ENV==="production"?De(8):'Actions may not have an undefined "type" property. You may have misspelled an action type string constant.');if(c)throw new Error(process.env.NODE_ENV==="production"?De(9):"Reducers may not dispatch actions.");try{c=!0,o=i(o,m)}finally{c=!1}for(var y=a=s,g=0;g<y.length;g++){var A=y[g];A()}return m}function h(m){if(typeof m!="function")throw new Error(process.env.NODE_ENV==="production"?De(10):"Expected the nextReducer to be a function. Instead, received: '"+fr(m));i=m,d({type:lr.REPLACE})}function p(){var m,y=l;return m={subscribe:function(A){if(typeof A!="object"||A===null)throw new Error(process.env.NODE_ENV==="production"?De(11):"Expected the observer to be an object. Instead, received: '"+fr(A)+"'");function w(){A.next&&A.next(f())}w();var C=y(w);return{unsubscribe:C}}},m[_y]=function(){return this},m}return d({type:lr.INIT}),r={dispatch:d,subscribe:l,getState:f,replaceReducer:h},r[_y]=p,r}function Bf(t){typeof console<"u"&&typeof console.error=="function"&&console.error(t);try{throw new Error(t)}catch{}}function r9(t,e,n,r){var i=Object.keys(e),o=n&&n.type===lr.INIT?"preloadedState argument passed to createStore":"previous state received by the reducer";if(i.length===0)return"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.";if(!Wy(t))return"The "+o+' has unexpected type of "'+fr(t)+'". Expected argument to be an object with the following '+('keys: "'+i.join('", "')+'"');var a=Object.keys(t).filter(function(s){return!e.hasOwnProperty(s)&&!r[s]});if(a.forEach(function(s){r[s]=!0}),!(n&&n.type===lr.REPLACE)&&a.length>0)return"Unexpected "+(a.length>1?"keys":"key")+" "+('"'+a.join('", "')+'" found in '+o+". ")+"Expected to find one of the known reducer keys instead: "+('"'+i.join('", "')+'". Unexpected keys will be ignored.')}function i9(t){Object.keys(t).forEach(function(e){var n=t[e],r=n(void 0,{type:lr.INIT});if(typeof r>"u")throw new Error(process.env.NODE_ENV==="production"?De(12):'The slice reducer for key "'+e+`" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);if(typeof n(void 0,{type:lr.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(process.env.NODE_ENV==="production"?De(13):'The slice reducer for key "'+e+'" returned undefined when probed with a random type. '+("Don't try to handle '"+lr.INIT+`' or other actions in "redux/*" `)+"namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.")})}function Ff(t){for(var e=Object.keys(t),n={},r=0;r<e.length;r++){var i=e[r];process.env.NODE_ENV!=="production"&&typeof t[i]>"u"&&Bf('No reducer provided for key "'+i+'"'),typeof t[i]=="function"&&(n[i]=t[i])}var o=Object.keys(n),a;process.env.NODE_ENV!=="production"&&(a={});var s;try{i9(n)}catch(c){s=c}return function(u,f){if(u===void 0&&(u={}),s)throw s;if(process.env.NODE_ENV!=="production"){var l=r9(u,n,f,a);l&&Bf(l)}for(var d=!1,h={},p=0;p<o.length;p++){var m=o[p],y=n[m],g=u[m],A=y(g,f);if(typeof A>"u"){var w=f&&f.type;throw new Error(process.env.NODE_ENV==="production"?De(14):"When called with an action of type "+(w?'"'+String(w)+'"':"(unknown type)")+', the slice reducer for key "'+m+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.')}h[m]=A,d=d||A!==g}return d=d||o.length!==Object.keys(u).length,d?h:u}}function Fs(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.length===0?function(r){return r}:e.length===1?e[0]:e.reduce(function(r,i){return function(){return r(i.apply(void 0,arguments))}})}function o9(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(r){return function(){var i=r.apply(void 0,arguments),o=function(){throw new Error(process.env.NODE_ENV==="production"?De(15):"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},a={getState:i.getState,dispatch:function(){return o.apply(void 0,arguments)}},s=e.map(function(c){return c(a)});return o=Fs.apply(void 0,s)(i.dispatch),Yy(Yy({},i),{},{dispatch:o})}}}function Zy(){}process.env.NODE_ENV!=="production"&&typeof Zy.name=="string"&&Zy.name!=="isCrushed"&&Bf('You are currently using minified code outside of NODE_ENV === "production". This means that you are running a slower development build of Redux. You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) to ensure you have the correct code for your production build.');var Ps="NOT_FOUND";function a9(t){var e;return{get:function(r){return e&&t(e.key,r)?e.value:Ps},put:function(r,i){e={key:r,value:i}},getEntries:function(){return e?[e]:[]},clear:function(){e=void 0}}}function s9(t,e){var n=[];function r(s){var c=n.findIndex(function(f){return e(s,f.key)});if(c>-1){var u=n[c];return c>0&&(n.splice(c,1),n.unshift(u)),u.value}return Ps}function i(s,c){r(s)===Ps&&(n.unshift({key:s,value:c}),n.length>t&&n.pop())}function o(){return n}function a(){n=[]}return{get:r,put:i,getEntries:o,clear:a}}var c9=function(e,n){return e===n};function u9(t){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;for(var i=n.length,o=0;o<i;o++)if(!t(n[o],r[o]))return!1;return!0}}function l9(t,e){var n=typeof e=="object"?e:{equalityCheck:e},r=n.equalityCheck,i=r===void 0?c9:r,o=n.maxSize,a=o===void 0?1:o,s=n.resultEqualityCheck,c=u9(i),u=a===1?a9(c):s9(a,c);function f(){var l=u.get(arguments);if(l===Ps){if(l=t.apply(null,arguments),s){var d=u.getEntries(),h=d.find(function(p){return s(p.value,l)});h&&(l=h.value)}u.put(arguments,l)}return l}return f.clearCache=function(){return u.clear()},f}function f9(t){var e=Array.isArray(t[0])?t[0]:t;if(!e.every(function(r){return typeof r=="function"})){var n=e.map(function(r){return typeof r=="function"?"function "+(r.name||"unnamed")+"()":typeof r}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return e}function d9(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=function(){for(var a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];var u=0,f,l={memoizeOptions:void 0},d=s.pop();if(typeof d=="object"&&(l=d,d=s.pop()),typeof d!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof d+"]");var h=l,p=h.memoizeOptions,m=p===void 0?n:p,y=Array.isArray(m)?m:[m],g=f9(s),A=t.apply(void 0,[function(){return u++,d.apply(null,arguments)}].concat(y)),w=t(function(){for(var C=[],b=g.length,v=0;v<b;v++)C.push(g[v].apply(null,arguments));return f=A.apply(null,C),f});return Object.assign(w,{resultFunc:d,memoizedResultFunc:A,dependencies:g,lastResult:function(){return f},recomputations:function(){return u},resetRecomputations:function(){return u=0}}),w};return i}var h9=d9(l9);function qy(t){var e=function(r){var i=r.dispatch,o=r.getState;return function(a){return function(s){return typeof s=="function"?s(i,o,t):a(s)}}};return e}var Ky=qy();Ky.withExtraArgument=qy;const Jy=Ky;var p9=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},t(e,n)};return function(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}();globalThis&&globalThis.__generator;var zs=globalThis&&globalThis.__spreadArray||function(t,e){for(var n=0,r=e.length,i=t.length;n<r;n++,i++)t[i]=e[n];return t},m9=Object.defineProperty,$y=Object.getOwnPropertySymbols,g9=Object.prototype.hasOwnProperty,y9=Object.prototype.propertyIsEnumerable,ev=function(t,e,n){return e in t?m9(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},Io=function(t,e){for(var n in e||(e={}))g9.call(e,n)&&ev(t,n,e[n]);if($y)for(var r=0,i=$y(e);r<i.length;r++){var n=i[r];y9.call(e,n)&&ev(t,n,e[n])}return t},v9=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Fs:Fs.apply(null,arguments)};function tv(t){if(typeof t!="object"||t===null)return!1;var e=Object.getPrototypeOf(t);if(e===null)return!0;for(var n=e;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return e===n}function nv(t,e){var n=0;return{measureTime:function(r){var i=Date.now();try{return r()}finally{var o=Date.now();n+=o-i}},warnIfExceeded:function(){n>t&&console.warn(e+" took "+n+"ms, which is more than the warning threshold of "+t+`ms.
2139
- If your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.
2140
- It is disabled in production builds, so you don't need to worry about that.`)}}}var b9=function(t){p9(e,t);function e(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var i=t.apply(this,n)||this;return Object.setPrototypeOf(i,e.prototype),i}return Object.defineProperty(e,Symbol.species,{get:function(){return e},enumerable:!1,configurable:!0}),e.prototype.concat=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return t.prototype.concat.apply(this,n)},e.prototype.prepend=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return n.length===1&&Array.isArray(n[0])?new(e.bind.apply(e,zs([void 0],n[0].concat(this)))):new(e.bind.apply(e,zs([void 0],n.concat(this))))},e}(Array);function Pf(t){return Ht(t)?Qy(t,function(){}):t}var A9=process.env.NODE_ENV==="production",rv="Invariant failed";function iv(t,e){if(!t)throw A9?new Error(rv):new Error(rv+": "+(e||""))}function w9(t,e,n,r){return JSON.stringify(t,x9(e,r),n)}function x9(t,e){var n=[],r=[];return e||(e=function(i,o){return n[0]===o?"[Circular ~]":"[Circular ~."+r.slice(0,n.indexOf(o)).join(".")+"]"}),function(i,o){if(n.length>0){var a=n.indexOf(this);~a?n.splice(a+1):n.push(this),~a?r.splice(a,1/0,i):r.push(i),~n.indexOf(o)&&(o=e.call(this,i,o))}else n.push(o);return t==null?o:t.call(this,i,o)}}function C9(t){return typeof t!="object"||t===null||typeof t>"u"||Object.isFrozen(t)}function E9(t,e,n){var r=ov(t,e,n);return{detectMutations:function(){return av(t,e,r,n)}}}function ov(t,e,n,r){e===void 0&&(e=[]),r===void 0&&(r="");var i={value:n};if(!t(n)){i.children={};for(var o in n){var a=r?r+"."+o:o;e.length&&e.indexOf(a)!==-1||(i.children[o]=ov(t,e,n[o],a))}}return i}function av(t,e,n,r,i,o){e===void 0&&(e=[]),i===void 0&&(i=!1),o===void 0&&(o="");var a=n?n.value:void 0,s=a===r;if(i&&!s&&!Number.isNaN(r))return{wasMutated:!0,path:o};if(t(a)||t(r))return{wasMutated:!1};var c={};for(var u in n.children)c[u]=!0;for(var u in r)c[u]=!0;for(var u in c){var f=o?o+"."+u:u;if(!(e.length&&e.indexOf(f)!==-1)){var l=av(t,e,n.children[u],r[u],s,f);if(l.wasMutated)return l}}return{wasMutated:!1}}function S9(t){if(t===void 0&&(t={}),process.env.NODE_ENV==="production")return function(){return function(c){return function(u){return c(u)}}};var e=t.isImmutable,n=e===void 0?C9:e,r=t.ignoredPaths,i=t.warnAfter,o=i===void 0?32:i,a=t.ignore;r=r||a;var s=E9.bind(null,n,r);return function(c){var u=c.getState,f=u(),l=s(f),d;return function(h){return function(p){var m=nv(o,"ImmutableStateInvariantMiddleware");m.measureTime(function(){f=u(),d=l.detectMutations(),l=s(f),iv(!d.wasMutated,"A state mutation was detected between dispatches, in the path '"+(d.path||"")+"'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)")});var y=h(p);return m.measureTime(function(){f=u(),d=l.detectMutations(),l=s(f),d.wasMutated&&iv(!d.wasMutated,"A state mutation was detected inside a dispatch, in the path: "+(d.path||"")+". Take a look at the reducer(s) handling the action "+w9(p)+". (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)")}),m.warnIfExceeded(),y}}}}function sv(t){var e=typeof t;return e==="undefined"||t===null||e==="string"||e==="boolean"||e==="number"||Array.isArray(t)||tv(t)}function zf(t,e,n,r,i){e===void 0&&(e=""),n===void 0&&(n=sv),i===void 0&&(i=[]);var o;if(!n(t))return{keyPath:e||"<root>",value:t};if(typeof t!="object"||t===null)return!1;for(var a=r!=null?r(t):Object.entries(t),s=i.length>0,c=0,u=a;c<u.length;c++){var f=u[c],l=f[0],d=f[1],h=e?e+"."+l:l;if(!(s&&i.indexOf(h)>=0)){if(!n(d))return{keyPath:h,value:d};if(typeof d=="object"&&(o=zf(d,h,n,r,i),o))return o}}return!1}function D9(t){if(t===void 0&&(t={}),process.env.NODE_ENV==="production")return function(){return function(y){return function(g){return y(g)}}};var e=t.isSerializable,n=e===void 0?sv:e,r=t.getEntries,i=t.ignoredActions,o=i===void 0?[]:i,a=t.ignoredActionPaths,s=a===void 0?["meta.arg","meta.baseQueryMeta"]:a,c=t.ignoredPaths,u=c===void 0?[]:c,f=t.warnAfter,l=f===void 0?32:f,d=t.ignoreState,h=d===void 0?!1:d,p=t.ignoreActions,m=p===void 0?!1:p;return function(y){return function(g){return function(A){var w=g(A),C=nv(l,"SerializableStateInvariantMiddleware");return!m&&!(o.length&&o.indexOf(A.type)!==-1)&&C.measureTime(function(){var b=zf(A,"",n,r,s);if(b){var v=b.keyPath,x=b.value;console.error("A non-serializable value was detected in an action, in the path: `"+v+"`. Value:",x,`
2141
- Take a look at the logic that dispatched this action: `,A,`
2142
- (See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)`,`
2143
- (To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)`)}}),h||(C.measureTime(function(){var b=y.getState(),v=zf(b,"",n,r,u);if(v){var x=v.keyPath,E=v.value;console.error("A non-serializable value was detected in the state, in the path: `"+x+"`. Value:",E,`
2144
- Take a look at the reducer(s) handling this action type: `+A.type+`.
2145
- (See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)`)}}),C.warnIfExceeded()),w}}}}function Rf(t){return typeof t=="boolean"}function M9(){return function(e){return T9(e)}}function T9(t){t===void 0&&(t={});var e=t.thunk,n=e===void 0?!0:e,r=t.immutableCheck,i=r===void 0?!0:r,o=t.serializableCheck,a=o===void 0?!0:o,s=new b9;if(n&&(Rf(n)?s.push(Jy):s.push(Jy.withExtraArgument(n.extraArgument))),process.env.NODE_ENV!=="production"){if(i){var c={};Rf(i)||(c=i),s.unshift(S9(c))}if(a){var u={};Rf(a)||(u=a),s.push(D9(u))}}return s}var jf=process.env.NODE_ENV==="production";function I9(t){var e=M9(),n=t||{},r=n.reducer,i=r===void 0?void 0:r,o=n.middleware,a=o===void 0?e():o,s=n.devTools,c=s===void 0?!0:s,u=n.preloadedState,f=u===void 0?void 0:u,l=n.enhancers,d=l===void 0?void 0:l,h;if(typeof i=="function")h=i;else if(tv(i))h=Ff(i);else throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');var p=a;if(typeof p=="function"&&(p=p(e),!jf&&!Array.isArray(p)))throw new Error("when using a middleware builder function, an array of middleware must be returned");if(!jf&&p.some(function(w){return typeof w!="function"}))throw new Error("each middleware provided to configureStore must be a function");var m=o9.apply(void 0,p),y=Fs;c&&(y=v9(Io({trace:!jf},typeof c=="object"&&c)));var g=[m];Array.isArray(d)?g=zs([m],d):typeof d=="function"&&(g=d(g));var A=y.apply(void 0,g);return Xy(h,f,A)}function No(t,e){function n(){for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];if(e){var o=e.apply(void 0,r);if(!o)throw new Error("prepareAction did not return an object");return Io(Io({type:t,payload:o.payload},"meta"in o&&{meta:o.meta}),"error"in o&&{error:o.error})}return{type:t,payload:r[0]}}return n.toString=function(){return""+t},n.type=t,n.match=function(r){return r.type===t},n}function cv(t){var e={},n=[],r,i={addCase:function(o,a){if(process.env.NODE_ENV!=="production"){if(n.length>0)throw new Error("`builder.addCase` should only be called before calling `builder.addMatcher`");if(r)throw new Error("`builder.addCase` should only be called before calling `builder.addDefaultCase`")}var s=typeof o=="string"?o:o.type;if(s in e)throw new Error("addCase cannot be called with two reducers for the same action type");return e[s]=a,i},addMatcher:function(o,a){if(process.env.NODE_ENV!=="production"&&r)throw new Error("`builder.addMatcher` should only be called before calling `builder.addDefaultCase`");return n.push({matcher:o,reducer:a}),i},addDefaultCase:function(o){if(process.env.NODE_ENV!=="production"&&r)throw new Error("`builder.addDefaultCase` can only be called once");return r=o,i}};return t(i),[e,n,r]}function N9(t){return typeof t=="function"}function k9(t,e,n,r){n===void 0&&(n=[]);var i=typeof e=="function"?cv(e):[e,n,r],o=i[0],a=i[1],s=i[2],c;if(N9(t))c=function(){return Pf(t())};else{var u=Pf(t);c=function(){return u}}function f(l,d){l===void 0&&(l=c());var h=zs([o[d.type]],a.filter(function(p){var m=p.matcher;return m(d)}).map(function(p){var m=p.reducer;return m}));return h.filter(function(p){return!!p}).length===0&&(h=[s]),h.reduce(function(p,m){if(m)if(yn(p)){var y=p,g=m(y,d);return typeof g>"u"?p:g}else{if(Ht(p))return Qy(p,function(A){return m(A,d)});var g=m(p,d);if(typeof g>"u"){if(p===null)return p;throw Error("A case reducer on a non-draftable value must not return undefined")}return g}return p},l)}return f.getInitialState=c,f}function L9(t,e){return t+"/"+e}function uv(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");typeof process<"u"&&process.env.NODE_ENV==="development"&&t.initialState===void 0&&console.error("You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`");var n=typeof t.initialState=="function"?t.initialState:Pf(t.initialState),r=t.reducers||{},i=Object.keys(r),o={},a={},s={};i.forEach(function(f){var l=r[f],d=L9(e,f),h,p;"reducer"in l?(h=l.reducer,p=l.prepare):h=l,o[f]=h,a[d]=h,s[f]=p?No(d,p):No(d)});function c(){var f=typeof t.extraReducers=="function"?cv(t.extraReducers):[t.extraReducers],l=f[0],d=l===void 0?{}:l,h=f[1],p=h===void 0?[]:h,m=f[2],y=m===void 0?void 0:m,g=Io(Io({},d),a);return k9(n,g,p,y)}var u;return{name:e,reducer:function(f,l){return u||(u=c()),u(f,l)},actions:s,caseReducers:o,getInitialState:function(){return u||(u=c()),u.getInitialState()}}}var Uf="listenerMiddleware";No(Uf+"/add"),No(Uf+"/removeAll"),No(Uf+"/remove"),_6();function lv(t,e,n,r){if(r&&!n)throw new Error("Custom labels need explicit group order!");const i=fi(t.samples,e),o=n?n.map(c=>[c,i.get(c)]).filter(c=>c[1]):[...i],s=t;s.groups=o.map(([c,u],f)=>({name:""+c,label:r?r[f]:c,samples:u})),delete t.samples}function fv(t,e,n){const r=le(".3~r"),i=a=>`${n[a].operator=="lt"?"[":"("}${r(n[a].operand)}, ${r(n[a+1].operand)}${n[a+1].operator=="lte"?"]":")"}`,o=Yt(n.length-1).reverse();lv(t,F9(e,n.slice(1,n.length-1)),o,o.map(i))}function O9(t,e,n){fv(t,e,[{operator:"lt",operand:-1/0},...n,{operator:"lte",operand:1/0}])}function B9(t,e){const n=z9(P9(t.samples,e,[0,.25,.5,.75,1]));n.length==1&&n.push(n[0]),fv(t,e,n.map((r,i,o)=>({operator:i==o.length-1?"lte":"lt",operand:r})))}function F9(t,e){return r=>{const i=t(r);if(!(!ce(i)||isNaN(i))){for(let o=0;o<e.length;o++)if(e[o].operator=="lt"){if(i<e[o].operand)return o}else if(i<=e[o].operand)return o;return e.length}}}function P9(t,e,n){const r=i2(t.map(e).filter(i=>ce(i)&&!isNaN(i)));return n.map(i=>sc(r,i))}function z9(t){const e=[t[0]];for(let n=1;n<t.length;n++)t[n]!=t[n-1]&&e.push(t[n]);return e}function R9(t,e){var n=t+"",r=e+"";return n<r?-1:n==r?0:1}var j9=[].forEach;function U9(t,e,n){if(typeof e!="function")throw new TypeError(e+" is not a function");var r,i=[],o=[],a=[];j9.call(t,function(c,u,f){if(r=e(c,u,f),r===void 0)return void a.push(c);if(n===void 0&&typeof r=="symbol")throw new TypeError("Can't convert symbol to string");i.push(u),o[u]=r}),n===void 0&&(n=R9),i.sort(function(c,u){return n(o[c],o[u])});var s=i.map(function(c){return t[c]}).concat(a);return s.length!=t.length&&(s.length=t.length),s}function G9(t,e){const n=i=>i.copy().range(Yt(0,i.domain().length)).unknown(-1);let r;switch(e.type){case"quantitative":r=i=>ce(i)&&!isNaN(i)?-i:-1/0;break;case"ordinal":r=n(e.scale);break;case"nominal":r=i=>i||"";break}return i=>r(t(i))}function H9(t,e){const n=new Set,r=i=>{const o=n.has(i);return n.add(i),o};return t.filter(i=>!r(e(i)))}function Q9(t,e,n){const r=new Set,i=o=>(r.size<n&&r.add(o),r.has(o));return t.filter(o=>i(e(o)))}function V9(t,e,n=!1){return U9(t,e,(r,i)=>(n&&([r,i]=[i,r]),r<i?-1:r>i?1:0))}const Y9={lt:(t,e)=>t<e,lte:(t,e)=>t<=e,eq:(t,e)=>t==e,gte:(t,e)=>t>=e,gt:(t,e)=>t>e};function _9(t,e,n,r){const i=Y9[n];return t.filter(o=>i(e(o),r))}function dv(t,e,n,r){const i=new Set(r),o=s=>i.has(s),a=n=="remove"?s=>!o(s):o;return t.filter(s=>a(e(s)))}function W9(t,e){const n=r=>r!=null;return t.filter(r=>n(e(r)))}const hv="setSamples",pv="sortBy",mv="retainFirstOfEach",gv="retainFirstNCategories",yv="filterByNominal",vv="filterByQuantitative",bv="removeUndefined",Av="groupByNominal",wv="groupToQuartiles",xv="groupByThresholds",Cv="retainMatched",ii="sampleView";function X9(){return{sampleData:void 0,groupMetadata:[],rootGroup:{name:"ROOT",label:"Root",samples:[]}}}function Z9(t){const e=(n,r)=>{const i=t(n.attribute).accessor;return o=>i(o,r)};return uv({name:ii,initialState:X9(),reducers:{[hv]:(n,r)=>{const i=r.payload.samples;if(n.sampleData)throw new Error("Samples have already been set!");if(i.some(a=>a.id===void 0||a.id===null))throw new Error('The sample metadata contains missing sample ids or the "sample" column is missing!');if(new Set(i.map(a=>a.id)).size!=i.length)throw new Error("The sample metadata contains duplicate sample ids!");const o=i.map((a,s)=>({...a,indexNumber:s}));n.sampleData={ids:o.map(a=>a.id),entities:Object.fromEntries(o.map(a=>[a.id,a]))},n.rootGroup={name:"ROOT",label:"Root",samples:n.sampleData.ids}},[pv]:(n,r)=>{dr(n,i=>V9(i,G9(e(r.payload,n),t(r.payload.attribute)),!1))},[mv]:(n,r)=>{dr(n,i=>H9(i,e(r.payload,n)))},[gv]:(n,r)=>{dr(n,i=>Q9(i,e(r.payload,n),r.payload.n))},[vv]:(n,r)=>{dr(n,i=>_9(i,e(r.payload,n),r.payload.operator,r.payload.operand))},[yv]:(n,r)=>{dr(n,i=>dv(i,e(r.payload,n),r.payload.remove?"remove":"retain",r.payload.values))},[bv]:(n,r)=>{dr(n,i=>W9(i,e(r.payload,n)))},[Av]:(n,r)=>{var o;const i=(o=t(r.payload.attribute).scale)==null?void 0:o.domain();Gf(n,a=>lv(a,e(r.payload,n),i)),n.groupMetadata.push({attribute:r.payload.attribute})},[wv]:(n,r)=>{Gf(n,i=>B9(i,e(r.payload,n))),n.groupMetadata.push({attribute:r.payload.attribute})},[xv]:(n,r)=>{Gf(n,i=>O9(i,e(r.payload,n),r.payload.thresholds)),n.groupMetadata.push({attribute:r.payload.attribute})},[Cv]:(n,r)=>{const i=e(r.payload,n),o=[];for(const s of Hf(n))if(s.samples.length>0){const c=new Set;for(const u of s.samples)c.add(i(u));o.push(c)}const a=[];for(const s of o[0]){let c=!0;for(let u=1;u<o.length&&c;u++)c=o[u].has(s);c&&a.push(s)}dr(n,s=>dv(s,i,"retain",a))}}})}function dr(t,e){for(const n of Hf(t))n.samples=e(n.samples)}function Gf(t,e){for(const n of Hf(t))e(n)}function Hf(t){return Ev(t).map(e=>Ue(e))}function Qf(t){return t.provenance.present[ii]}function Ev(t){const e=[],n=[],r=i=>{if(e.push(i),Dv(i))for(const o of i.groups)r(o);else n.push([...e]);e.pop()};return r(t.rootGroup),n}function Sv(t){return"samples"in t}function Dv(t){return"groups"in t}function*Mv(t){if(yield[t],Dv(t))for(const e of t.groups)for(const n of Mv(e))yield[t,...n]}const q9=le(".4"),Tv={lt:"<",lte:"\u2264",eq:"=",gte:"\u2265",gt:">"};function Iv(t){return t.length>1?D`{${t.map((e,n)=>D`${n>0?", ":""}<strong>${e}</strong>`)}}`:D`<strong>${t[0]}</strong>`}function K9(t,e){if(!t.type.startsWith(ii))return;const n=t.payload,r=n.attribute&&e(n.attribute),i=r==null?void 0:r.name,o=(r==null?void 0:r.title)||D`<em>${i}</em>`,a={attributeName:i};switch(t.type.substring(ii.length+1)){case hv:return{...a,title:"The initial state",icon:N5};case pv:return{...a,title:"Sort by",provenanceTitle:D`Sort by ${o}`,icon:C5};case mv:return{...a,title:D`Retain the first sample of each <em>${i}</em>`,provenanceTitle:D`Retain the first sample of each ${o}`,icon:a1};case gv:return{...a,title:D`Retain first <strong>n</strong> categories of <em>${i}</em>...`,provenanceTitle:D`Retain first <strong>${n.n}</strong> categories of ${o}`,icon:a1};case yv:{const c=n.values,u=f=>D`${n.remove?"Remove":"Retain"} samples having ${c[0]===void 0||c[0]===null?D`undefined ${f}`:D`${f} ${c.length>1?"in":D`<span class="operator">=</span>`} ${Iv(c)}`}`;return{...a,title:u(D`<em>${i}</em>`),provenanceTitle:u(o),icon:n.remove?Fl:tr}}case vv:{const c=u=>D`Retain samples having ${u} <span class="operator">${Tv[n.operator]}</span> <strong>${q9(n.operand)}</strong>`;return{...a,title:c(D`<em>${i}</em>`),provenanceTitle:c(o),icon:tr}}case bv:return{...a,title:"Remove samples having missing attribute",provenanceTitle:D`Remove samples having missing ${o}`,icon:Fl};case Av:return{...a,title:"Group by",provenanceTitle:D`Group by ${o}`,icon:yo};case wv:return{...a,title:"Group by quartiles",provenanceTitle:D`Group by quartiles on ${o}`,icon:yo};case xv:return{...a,title:"Group by thresholds",provenanceTitle:D`Group by thresholds {${Iv(n.thresholds.map(c=>`${Tv[c.operator]} ${c.operand}`))}} on ${o}`,icon:yo};case Cv:return{...a,title:D`Retain group-wise matched samples using <em>${i}</em>`,provenanceTitle:D`Retain group-wise matched samples using ${o}`,icon:tr};default:return{...a,title:JSON.stringify(t),icon:i1}}}class J9{constructor(){this.attributeInfoSourcesByType={}}addAttributeInfoSource(e,n){this.attributeInfoSourcesByType[e]=n}getAttributeInfo(e){const n=this.attributeInfoSourcesByType[e.type];if(!n)throw new Error("Cannot find attribute info source for: "+JSON.stringify(e));const r=n(e);if(r)return r;throw new Error("Unknown attribute: "+JSON.stringify(e))}}function Rs(t,e,n){let r=n&&t(n);return i=>{const o=t(i);o!==r&&(e(o,r),r=o)}}function Nv(t,{viewHeight:e=0,sampleHeight:n=0,groupSpacing:r=5,summaryHeight:i=0}){if(!e&&!n)throw new Error("viewHeight or sampleHeight must be provided!");const o=d=>Ue(d),a=t.map(d=>({path:d,sampleGroup:o(d),samples:o(d).samples})).filter(d=>d.samples.length),s=n?d=>({px:d.length*n+i,grow:0}):d=>({px:i,grow:d.length}),c=[];fo(a.map(d=>s(d.samples)),e,{spacing:r}).forEach((d,h)=>{c.push({key:a[h].path,locSize:d})});const u=[];for(const[d,h]of a.entries()){const p={grow:1},m=h.samples;fo(m.map(y=>p),Math.max(0,c[d].locSize.size-i),{offset:c[d].locSize.location+i}).forEach((y,g)=>{const{size:A,location:w}=y,C=A*.1*gg(15,22,A);y.location=w+C,y.size=A-2*C,u.push({key:m[g],locSize:y})})}function*f(){const d=[];for(const h of c){const p=h.key,m=Ue(p);for(;d.length<=p.length&&d.length&&p[d.length-1]!=d[d.length-1].group;)yield d.pop();for(let y=0;y<d.length;y++){const g=d[y];g.locSize.size=h.locSize.location-g.locSize.location+h.locSize.size}for(let y=d.length;y<p.length;y++)d.push({group:p[y],locSize:{...h.locSize},depth:d.length,n:0});for(const y of d)y.n+=m.samples.length}for(;d.length;)yield d.pop()}const l=[...f()].sort((d,h)=>d.depth-h.depth).map((d,h)=>({key:{index:h,group:d.group,depth:d.depth,n:d.n,attributeLabel:void 0},locSize:d.locSize}));return{samples:u,summaries:c,groups:l}}function $9(t,e){return e.find(n=>Zm(n.locSize,t))}const kv="VALUE_AT_LOCUS",Lv=10;class Vf extends Jn{constructor(n,r,i,o,a){var f;super(n,r,i,o);Me(this,Vs);this.provenance=a,this.spec=n,this.stickySummaries=(f=n.stickySummaries)!=null?f:!0,this.compositeAttributeInfoSource=new J9,this.child=r.createView(n.spec,this,"sample-facets"),this.summaryViews=new Vr({vconcat:[]},r,this,"sampleSummaries"),this.child.visit(l=>{l instanceof ye&&this.summaryViews.setChildren(l.sampleAggregateViews)}),this.childCoords=dn.ZERO,this.facetTexture=void 0,this.facetTextureData=void 0,this.peripheryView=new Vr({title:"Sidebar",resolve:{scale:{default:"independent"},axis:{default:"independent"}},hconcat:[],spacing:0},r,this,"sample-sidebar"),this.peripheryCoords=dn.ZERO,this.groupPanel=new U6(this),this.attributePanel=new Ny(this),this.peripheryView.setChildren([this.groupPanel,this.attributePanel]),this.child.addInteractionEventListener("contextmenu",this._handleContextMenu.bind(this)),this.provenance.storeHelper.subscribe(Rs(l=>Qf(l).rootGroup,l=>{this._locations=void 0,this.groupPanel.updateGroups(),this._peekState=0,this.context.requestLayoutReflow(),this.context.animator.requestRender()})),this.provenance.storeHelper.subscribe(Rs(l=>Qf(l).sampleData,l=>{const d=l&&Object.values(l.entities);!d||(this.attributePanel._setSamples(d),this.facetTextureData=new Float32Array(Math.ceil(d.length*2/4)*4),this.groupPanel.updateGroups())})),this.compositeAttributeInfoSource.addAttributeInfoSource(kv,l=>{var C,b;const d=l.specifier,h=this.findDescendantByName(d.view);let p;if(ce(d.locus))p=d.locus;else{const v=this.getScaleResolution("x").getGenome();if(v)p=v.toContinuous(d.locus.chrom,d.locus.pos);else throw new Error("Encountered a complex locus but no genome is available!")}const m=v=>{var x;return(x=h.mark.findDatumAt(v,p))==null?void 0:x[d.field]},[y,g]=Object.entries(h.getEncoding()).find(([v,x])=>"field"in x&&x.field==d.field),A=y?(C=h.getScaleResolution(y))==null?void 0:C.getScale():void 0;return{name:d.field,attribute:l,title:D`<em class="attribute">${d.field}</em> <span class="viewTitle">(${(b=h.getTitleText())!=null?b:h.name})</span> at <span class="locus">${Ov(d.locus)}</span>`,accessor:m,type:"type"in g?g.type:void 0,scale:A}}),this._addBroadcastHandler("dataLoaded",()=>this.extractSamplesFromData()),this._addBroadcastHandler("layout",()=>{this._locations=void 0}),this._scrollOffset=0,this._scrollableHeight=0,this._peekState=0,this._lastMouseY=-1,this.addInteractionEventListener("mousemove",(l,d)=>{this._lastMouseY=d.point.y-this.childCoords.y}),this.addInteractionEventListener("wheel",(l,d)=>{const h=d.uiEvent;this._peekState&&!h.ctrlKey&&(this._scrollOffset=ul(this._scrollOffset+h.deltaY,0,this._scrollableHeight-this.childCoords.height),this.groupPanel.updateRange(),this.context.animator.requestRender(),d.uiEvent={type:h.type,deltaX:h.deltaX,preventDefault:h.preventDefault.bind(h)})},!0),r.addKeyboardListener("keydown",l=>{l.code=="KeyE"&&!l.repeat&&this._togglePeek()}),r.addKeyboardListener("keyup",l=>{l.code=="KeyE"&&this._togglePeek(!1)});const s=l=>this.compositeAttributeInfoSource.getAttributeInfo(l),c=Z9(s);this.provenance.addReducer(c.name,c.reducer),this.provenance.addActionInfoSource(l=>K9(l,s)),this.actions=c.actions;const u=h9(l=>{var d;return(d=l.sampleData)==null?void 0:d.entities},l=>l&&Object.values(l));this.getSamples=()=>u(this.sampleHierarchy),this.spec.samples.data&&this.loadSamples()}getOverhang(){let n=this.peripheryView.isVisible()?this.peripheryView.getSize().width.px:0;return n&&(n+=Lv),new $e(0,0,0,n)}*[Symbol.iterator](){yield this.child,yield this.peripheryView}replaceChild(n,r){const i=r;if(n===this.child)this.child=i;else throw new Error("Not my child!")}loadSamples(){if(!this.spec.samples.data)throw new Error("SampleView has no explicit sample metadata specified! Cannot load anything.");const{dataSource:n,collector:r}=j8(Fg(this.spec.samples.data,this.getBaseUrl()),new eN);r.observers.push(o=>{const a=o.getData();this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:a}))});const i="samples "+this.getPathString();this.context.dataFlow.addDataSource(n,i)}extractSamplesFromData(){if(this.getSamples())return;const n=this.getScaleResolution("sample");if(n){const r=n.getDataDomain().map((i,o)=>({id:i,displayName:i,indexNumber:o,attributes:[]}));this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:r}))}else throw new Error("No explicit sample data nor sample channels found!")}get sampleHierarchy(){return this.provenance.getPresentState()[ii]}getLocations(){var n,r,i,o;if(!this._locations){if(!((n=this.childCoords)!=null&&n.height))return;const a=this.sampleHierarchy,s=Ev(a),c=[null,...a.groupMetadata],u=(o=((r=this.summaryViews)==null?void 0:r.isVisible())&&((i=this.summaryViews)==null?void 0:i.getSize().height.px))!=null?o:0,f=Nv(s,{viewHeight:this.childCoords.height,groupSpacing:5,summaryHeight:u}),l=Nv(s,{sampleHeight:35,groupSpacing:15,summaryHeight:u}),d=()=>-this._scrollOffset,h=()=>this._peekState;this._scrollableLocations=l,this._scrollableHeight=l.summaries.map(g=>g.locSize.location+g.locSize.size).reduce((g,A)=>Math.max(g,A),0);const p=(g,A)=>{const w=[];for(let C=0;C<g.length;C++){const b=g[C].key;w.push({key:b,locSize:YD(g[C].locSize,_D(A[C].locSize,d),h)})}return w},m=p(f.groups,l.groups),y=document.createElement("div");m.forEach(g=>{if(g.key.depth==0)return;const A=c[g.key.depth].attribute,w=this.compositeAttributeInfoSource.getAttributeInfo(A).title;w?ee(w)?g.key.attributeLabel=w:(Be(w,y),g.key.attributeLabel=y.textContent.replace(/\s+/g," ").trim()):g.key.attributeLabel="unknown"}),this._locations={samples:p(f.samples,l.samples),summaries:p(f.summaries,l.summaries),groups:m}}return this._locations}getSampleAt(n){const r=$9(n,this.getLocations().samples);if(r)return this.sampleHierarchy.sampleData.entities[r.key]}getSummaryAt(n){const r=this.getLocations().summaries,i=r.findIndex(o=>Zm(o.locSize,n));return i>=0?{index:i,location:r[i]}:void 0}_clipBySummary(n){if(this.stickySummaries&&this.summaryViews.childCount){const r=this.summaryViews.getSize().height.px;return n.modify({y:()=>n.y+r,height:()=>n.height-r})}}renderChild(n,r,i={}){const o=1/r.height,a=()=>o,s=this._clipBySummary(r);for(const c of this.getLocations().samples)this.child.render(n,r,{...i,sampleFacetRenderingOptions:{locSize:WD(c.locSize,a)},facetId:[c.key],clipRect:s})}renderSummaries(n,r,i={}){i={...i,clipRect:r};const o=this.summaryViews.getSize().height.px;for(const[a,s]of this.getLocations().summaries.entries()){const c=()=>{const u=s.locSize.location;let f=r.y+u;return this.stickySummaries?f+ul(-u,0,s.locSize.size-o):f};this.summaryViews.render(n,r.modify({y:c,height:o}),{...i,facetId:[a]})}}render(n,r,i={}){if(!this.isVisible())return;n.pushView(this,r);const o=fo([this.peripheryView.isVisible()?this.peripheryView.getSize().width:{px:0},{grow:1}],r.width,{spacing:Lv}),a=s=>r.modify({x:s.location+r.x,width:s.size});this.peripheryCoords=a(o[0]),this.childCoords=a(o[1]),this.peripheryView.render(n,this.peripheryCoords,i),this.renderChild(n,this.childCoords,i),this.renderSummaries(n,this.childCoords,i),n.popView(this)}onBeforeRender(){this._updateFacetTexture()}_updateFacetTexture(){var o;const n=this.facetTextureData;n.fill(0);const r=(o=this.sampleHierarchy.sampleData)==null?void 0:o.entities;if(r){const a=this.getLocations().samples,s=this.childCoords.height;for(const c of a){const u=r[c.key].indexNumber;n[u*2+0]=c.locSize.location/s,n[u*2+1]=c.locSize.size/s}}const i=this.context.glHelper.gl;this.facetTexture=uo(i,{internalFormat:i.RG32F,format:i.RG,height:1},n,this.facetTexture)}_togglePeek(n){var i;if(this._peekState>0&&this._peekState<1||n!==void 0&&n==!!this._peekState)return;const r={requestAnimationFrame:o=>this.context.animator.requestTransition(o),onUpdate:o=>{this._peekState=Math.pow(o,2),this.groupPanel.updateRange(),this.context.animator.requestRender()},from:this._peekState};if(this._peekState==0){const o=this._lastMouseY,a=(i=this.getSampleAt(o))==null?void 0:i.id;let s;if(a)s=(u=>u.location+u.size/2)(this._scrollableLocations.samples.find(u=>u.key==a).locSize);else{const c=this.getSummaryAt(o);c&&(s=this._scrollableLocations.summaries[c.index].locSize.location-(c.location.locSize.location-o))}s?this._scrollOffset=s-o:this._scrollOffset=(this._scrollableHeight-this.childCoords.height)/2,this._scrollableHeight>this.childCoords.height?us({...r,to:1,duration:500,easingFunction:NM}):us({...r,from:0,to:1,duration:300,easingFunction:u=>(1-Math.pow(u*2-1,2))*.5})}else us({...r,to:0,duration:400,easingFunction:TM})}_handleContextMenu(n,r){var l;const i=r.uiEvent,o=this.childCoords.normalizePoint(r.point.x,r.point.y).x,a=this.getScaleResolution("x").invertToComplex(o),s=Hg([...this.getAncestors()].at(-1)),c=V8(this.child).filter(d=>!["sample","x","x2"].includes(d.channel)).filter(d=>["rect","rule"].includes(d.view.getMarkType())).filter(d=>s.has(d.view.name));let u=[{label:`Locus: ${Ov(a)}`,type:"header"},{type:"divider"}],f="";for(const[d,h]of c.entries()){const p={view:h.view.name,field:h.field,locus:a},m=this.compositeAttributeInfoSource.getAttributeInfo({type:kv,specifier:p}),y=(l=h.view.getTitleText())!=null?l:h.view.spec.name;y!=f&&(d>0&&u.push({type:"divider"}),u.push({label:y,type:"header"}),f=y),u.push({label:h.field,submenu:ff(null,m,void 0,this)})}Ty({items:u},i)}getSampleFacetTexture(){return this.facetTexture}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),!n.stopped&&(this.childCoords.containsPoint(n.point.x,n.point.y)&&(this.child.propagateInteractionEvent(n),Dg(n,this.childCoords,r=>be(this,Vs,db).call(this,this.childCoords,this.child,r),this.context.getCurrentHover())),this.peripheryCoords.containsPoint(n.point.x,n.point.y)&&this.peripheryView.propagateInteractionEvent(n),!n.stopped&&this.handleInteractionEvent(void 0,n,!1))}getDefaultResolution(n,r){switch(n){case"x":case"sample":return"shared";default:return"independent"}}}Vs=new WeakSet,db=function(n,r,i){const o=this.child.getScaleResolution("x");if(!o||!o.isZoomable())return;const a=n.normalizePoint(i.x,i.y),s=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta);o.zoom(2**i.zDelta,a.x,s.x-a.x),this.context.animator.requestRender()};function Ov(t){return!ce(t)&&"chrom"in t?AM(t):""+t}class eN extends se{constructor(){super(),this.reset()}reset(){this._index=0}handle(e){this._propagate({id:e.sample,displayName:e.displayName||e.sample,indexNumber:this._index++,attributes:tN(e)})}}function tN(t){const e=Object.assign({},t);return delete e.sample,delete e.displayName,e}function nN(t){return"samples"in t&&Re(t.samples)&&"spec"in t&&Re(t.spec)}const rN=(t,e)=>e.some(n=>t instanceof n);let Bv,Fv;function iN(){return Bv||(Bv=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function oN(){return Fv||(Fv=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const Pv=new WeakMap,Yf=new WeakMap,zv=new WeakMap,_f=new WeakMap,Wf=new WeakMap;function aN(t){const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("success",o),t.removeEventListener("error",a)},o=()=>{n(An(t.result)),i()},a=()=>{r(t.error),i()};t.addEventListener("success",o),t.addEventListener("error",a)});return e.then(n=>{n instanceof IDBCursor&&Pv.set(n,t)}).catch(()=>{}),Wf.set(e,t),e}function sN(t){if(Yf.has(t))return;const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("complete",o),t.removeEventListener("error",a),t.removeEventListener("abort",a)},o=()=>{n(),i()},a=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",o),t.addEventListener("error",a),t.addEventListener("abort",a)});Yf.set(t,e)}let Xf={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return Yf.get(t);if(e==="objectStoreNames")return t.objectStoreNames||zv.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return An(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function cN(t){Xf=t(Xf)}function uN(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){const r=t.call(Zf(this),e,...n);return zv.set(r,e.sort?e.sort():[e]),An(r)}:oN().includes(t)?function(...e){return t.apply(Zf(this),e),An(Pv.get(this))}:function(...e){return An(t.apply(Zf(this),e))}}function lN(t){return typeof t=="function"?uN(t):(t instanceof IDBTransaction&&sN(t),rN(t,iN())?new Proxy(t,Xf):t)}function An(t){if(t instanceof IDBRequest)return aN(t);if(_f.has(t))return _f.get(t);const e=lN(t);return e!==t&&(_f.set(t,e),Wf.set(e,t)),e}const Zf=t=>Wf.get(t);function fN(t,e,{blocked:n,upgrade:r,blocking:i,terminated:o}={}){const a=indexedDB.open(t,e),s=An(a);return r&&a.addEventListener("upgradeneeded",c=>{r(An(a.result),c.oldVersion,c.newVersion,An(a.transaction))}),n&&a.addEventListener("blocked",()=>n()),s.then(c=>{o&&c.addEventListener("close",()=>o()),i&&c.addEventListener("versionchange",()=>i())}).catch(()=>{}),s}const dN=["get","getKey","getAll","getAllKeys","count"],hN=["put","add","delete","clear"],qf=new Map;function Rv(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(qf.get(e))return qf.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=hN.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||dN.includes(n)))return;const o=async function(a,...s){const c=this.transaction(a,i?"readwrite":"readonly");let u=c.store;return r&&(u=u.index(s.shift())),(await Promise.all([u[n](...s),i&&c.done]))[0]};return qf.set(e,o),o}cN(t=>({...t,get:(e,n,r)=>Rv(e,n)||t.get(e,n,r),has:(e,n)=>!!Rv(e,n)||t.has(e,n)}));class jv{isReadonly(){return!0}async put(e,n){this._checkReadonly()}async delete(e){this._checkReadonly()}async getNames(){return[]}async get(e){}_checkReadonly(){if(this.isReadonly())throw new Error("This bookmark")}}const ko="bookmarks";class pN extends jv{constructor(e){super(),this.specId=e,this._db=void 0}async _getDB(){if(!this._db){const e=`GenomeSpy: ${this.specId}`;this._db=fN(e,1,{upgrade(n,r,i,o){n.createObjectStore(ko,{keyPath:"name"})},blocked(){},blocking(){},terminated(){}})}return this._db}isReadonly(){return!1}async put(e,n){const i=(await this._getDB()).transaction(ko,"readwrite");try{n?(await i.store.delete(n),await i.store.put(e)):await i.store.put(e),await i.done}catch(o){throw i.abort(),o}}async delete(e){(await this._getDB()).delete(ko,e)}async getNames(){return(await this._getDB()).getAllKeys(ko)}async get(e){return(await this._getDB()).get(ko,e)}}/**
2137
+ */const b6=Yr(class extends ho{constructor(t){var e;if(super(t),t.type!==Ot.ATTRIBUTE||t.name!=="style"||((e=t.strings)===null||e===void 0?void 0:e.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(t){return Object.keys(t).reduce((e,n)=>{const r=t[n];return r==null?e:e+`${n=n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(t,[e]){const{style:n}=t.element;if(this.ct===void 0){this.ct=new Set;for(const r in e)this.ct.add(r);return this.render(e)}this.ct.forEach(r=>{e[r]==null&&(this.ct.delete(r),r.includes("-")?n.removeProperty(r):n[r]="")});for(const r in e){const i=e[r];i!=null&&(this.ct.add(r),r.includes("-")?n.setProperty(r,i):n[r]=i)}return xe}}),ey="close-dialog";function v6(){return new CustomEvent(ey,{bubbles:!0})}function ir(t="default",e=document.body){const n=document.createElement("div");n.classList.add("gs-modal"),t!="default"&&n.classList.add(t);const r=o=>{var a;switch(o.key){case"Escape":{const s=n.querySelector(".btn-cancel");s&&(s.click(),o.stopPropagation());break}case"Enter":{if(((a=o.target)==null?void 0:a.tagName)=="TEXTAREA")return;n.querySelector(".btn-primary").click(),o.stopPropagation();break}}};n.addEventListener("keydown",r),Be(D`<div class="backdrop"></div><div class="content"></div>`,n);const i=()=>{n.querySelector(".backdrop").addEventListener("transitionend",()=>n.remove()),n.classList.remove("visible"),document.body.classList.remove(jn)};return n.addEventListener("keydown",o=>{o.stopPropagation()}),n.addEventListener(ey,i),e.appendChild(n),window.requestAnimationFrame(()=>n.classList.add("visible")),t!="tour"&&document.body.classList.add(jn),{content:n.querySelector(".content"),close:i}}function He(t,e={}){var i;const n=ir(),r=e.title;return(i=e.okLabel)!=null||(e.okLabel="OK"),new Promise((o,a)=>{const s=()=>{n.close(),o(!0)},c=D`${r?D`<div class="modal-title">${r}</div>`:R}<div class="modal-body" style="max-width:700px">${t}</div><div class="modal-buttons">${e.cancelButton?D`<button @click="${()=>{n.close(),o(!1)}}">Cancel</button>`:R} <button @click="${s}">${e.okLabel}</button></div>`;Be(c,n.content)})}function A6(t,e){var n,r;tn((n=t.scale)==null?void 0:n.type)?x6(t,e):Re((r=t.scale)==null?void 0:r.type)?w6(t,e):He("Not implemented (yet).")}function x6(t,e){const n=e.provenance.storeHelper.getDispatcher(),r=t.scale,i=ir(),o=D`<div class="modal-title">Filter by <em>${t.name}</em></div>`,a=new Set,s=h=>{n(e.actions.filterByNominal({values:r.domain().filter(p=>a.has(p)),attribute:t.attribute,remove:h})),i.close()},c=h=>{const p=h.target;p.checked?a.add(p.value):a.delete(p.value),d()},u=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button ?disabled="${!a.size}" @click="${()=>s(!1)}">${q(er).node[0]} Retain</button> <button ?disabled="${!a.size}" @click="${()=>s(!0)}">${q(Ol).node[0]} Remove</button></div>`,f=r,l=D`<p>Please select one or more categories and choose an action.</p><ul class="gs-checkbox-list" @input="${c}" tabindex="0">${r.domain().map(h=>D`<li><label class="checkbox"><span class="color" style="${b6({backgroundColor:f(h).toString()})}"></span> <input type="checkbox" .value="${h}"> ${h}</label></li>`)}</ul>`;function d(){Be(D`${o}<div class="modal-body">${l}</div>${u()}`,i.content)}d(),i.content.querySelector(".gs-checkbox-list input[type='checkbox']").focus()}function w6(t,e){const n=e.provenance.storeHelper.getDispatcher();let r="lt",i;const o=ir(),a=D`<div class="modal-title">Filter by <em>${t.name}</em></div>`,s=h=>{n(e.actions.filterByQuantitative({attribute:t.attribute,operator:r,operand:i})),o.close()},c=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>o.close()}">Cancel</button> <button class="btn-primary" ?disabled="${typeof i>"u"}" @click="${()=>s()}">${q(er).node[0]} Retain</button></div>`,u=h=>{r=h.target.value,d()},f=h=>{const p=h.target.value;i=p.length>0?+p:void 0,d()},l=D`<div class="gs-form-group"><label>Select samples where <em>${t.name}</em> is</label> <select .value="${r}" @change="${u}">${Object.entries(C6).map(([h,p])=>D`<option .value="${h}">${p}</option>`)}</select> <input type="number" placeholder="Please enter a numeric value" @input="${f}"></div>`;function d(){Be(D`${a}<div class="modal-body">${l}</div>${c()}`,o.content)}d(),o.content.querySelector("select").focus()}const C6={lt:"less than",lte:"less than or equal to",eq:"equal to",gte:"greater than or equal to",gt:"greater than"};function S6(t,e){const n=e.provenance.storeHelper.getDispatcher(),r=[{operand:void 0,operator:"lt"}],i=ir(),o=D`<div class="modal-title">Group by threshold on <em>${t.name}</em></div>`,a=d=>{n(e.actions.groupByThresholds({attribute:t.attribute,thresholds:r})),i.close()},s=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn-primary" ?disabled="${!E6(r)}" @click="${()=>a()}">${q(po).node[0]} Group</button></div>`,c=d=>{const h=d.target.value;r[0].operator=h,l()},u=d=>{const h=d.target.value;r[0].operand=h.length>0?+h:void 0,l()},f=D`<div class="gs-form-group"><label>Split into 2 groups using the threshold:</label><div class="threshold-flex"><select .value="${r[0].operator}" @change="${c}"><option value="lt">${"<"}</option><option value="lte">${"\u2264"}</option></select> <input .value="${""+r[0].operand}" type="number" placeholder="Numeric value" @input="${u}"></div></div>`;function l(){Be(D`${o}<div class="modal-body">${f}</div>${s()}`,i.content)}l(),i.content.querySelector("select").focus()}function E6(t){return t[0].operator&&typeof t[0].operand=="number"}function D6(t,e){const n=e.provenance.storeHelper.getDispatcher();let r=5;const i=ir(),o=D`<div class="modal-title">Retain first n categories of <em>${t.title}</em></div>`,a=f=>{n(e.actions.retainFirstNCategories({attribute:t.attribute,n:r})),i.close()},s=()=>D`<div class="modal-buttons"><button class="btn-cancel" @click="${()=>i.close()}">Cancel</button> <button class="btn-primary" @click="${()=>a()}">${q(er).node[0]} Retain</button></div>`,c=D`<div class="gs-form-group"><label>Number of categories to retain:</label> <input type="number" min="1" .valueAsNumber="${r}" @change="${f=>{r=f.target.valueAsNumber}}"></div>`;function u(){Be(D`${o}<div class="modal-body">${c}</div>${s()}`,i.content)}u(),i.content.querySelector("input").focus()}function lf(t,e,n,r){var d;const i=r.actions,o=e.attribute,a=r.sampleHierarchy,s=r.provenance.storeHelper.getDispatcher(),c=[];t&&c.push({label:t,type:"header"});const u=(h,p,m)=>{const y=r.provenance.getActionInfo(h);return{label:y.title,icon:y.icon,callback:p?void 0:m!=null?m:()=>s(h)}},f=(...h)=>c.push(...h.map(p=>u(p)));f(i.sortBy({attribute:o}));const l=(d=e==null?void 0:e.type)!=null?d:"identifier";return l!="quantitative"?(l!="identifier"&&(f(i.groupByNominal({attribute:o}),i.retainFirstOfEach({attribute:o})),c.push(u(i.retainFirstNCategories({attribute:o,n:void 0}),!1,()=>D6(e,r)))),f(i.filterByNominal({attribute:o,values:[n]}),i.filterByNominal({attribute:o,remove:!0,values:[n]})),c.push(u(i.retainMatched({attribute:o}),!a.groupMetadata.length))):(f(i.groupToQuartiles({attribute:o})),c.push({icon:po,label:"Group by thresholds...",callback:()=>S6(e,r)}),M6(n)?f(i.filterByQuantitative({attribute:o,operator:"gte",operand:+n}),i.filterByQuantitative({attribute:o,operator:"lte",operand:+n})):f(i.removeUndefined({attribute:o}))),l!=="identifier"&&c.push({icon:er,label:"Advanced filter...",callback:()=>A6(e,r)}),c}function M6(t){return t!=null&&t!==""&&!(typeof t=="number"&&isNaN(t))}function T6(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var jt={},or={};Object.defineProperty(or,"__esModule",{value:!0}),or.ActionCreators=or.ActionTypes=void 0;var ar={UNDO:"@@redux-undo/UNDO",REDO:"@@redux-undo/REDO",JUMP_TO_FUTURE:"@@redux-undo/JUMP_TO_FUTURE",JUMP_TO_PAST:"@@redux-undo/JUMP_TO_PAST",JUMP:"@@redux-undo/JUMP",CLEAR_HISTORY:"@@redux-undo/CLEAR_HISTORY"};or.ActionTypes=ar;var I6={undo:function(){return{type:ar.UNDO}},redo:function(){return{type:ar.REDO}},jumpToFuture:function(e){return{type:ar.JUMP_TO_FUTURE,index:e}},jumpToPast:function(e){return{type:ar.JUMP_TO_PAST,index:e}},jump:function(e){return{type:ar.JUMP,index:e}},clearHistory:function(){return{type:ar.CLEAR_HISTORY}}};or.ActionCreators=I6;var bt={};Object.defineProperty(bt,"__esModule",{value:!0}),bt.parseActions=ws,bt.isHistory=k6,bt.includeAction=N6,bt.excludeAction=L6,bt.combineFilters=B6,bt.groupByActionTypes=O6,bt.newHistory=P6;function ws(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Array.isArray(t)?t:typeof t=="string"?[t]:e}function k6(t){return typeof t.present<"u"&&typeof t.future<"u"&&typeof t.past<"u"&&Array.isArray(t.future)&&Array.isArray(t.past)}function N6(t){var e=ws(t);return function(n){return e.indexOf(n.type)>=0}}function L6(t){var e=ws(t);return function(n){return e.indexOf(n.type)<0}}function B6(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.reduce(function(r,i){return function(o,a,s){return r(o,a,s)&&i(o,a,s)}},function(){return!0})}function O6(t){var e=ws(t);return function(n){return e.indexOf(n.type)>=0?n.type:null}}function P6(t,e,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return{past:t,present:e,future:n,group:r,_latestUnfiltered:e,index:t.length,limit:t.length+n.length+1}}var ty={},qr={};Object.defineProperty(qr,"__esModule",{value:!0}),qr.set=V6,qr.start=G6,qr.end=H6,qr.log=Q6;function vt(t){return R6(t)||z6(t)||F6()}function F6(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function z6(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function R6(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}var Cs,$e,ff={prevState:"#9E9E9E",action:"#03A9F4",nextState:"#4CAF50"};function j6(){$e={header:[],prev:[],action:[],next:[],msgs:[]}}function U6(){var t=$e,e=t.header,n=t.prev,r=t.next,i=t.action,o=t.msgs;if(console.group){var a,s,c,u,f;(a=console).groupCollapsed.apply(a,vt(e)),(s=console).log.apply(s,vt(n)),(c=console).log.apply(c,vt(i)),(u=console).log.apply(u,vt(r)),(f=console).log.apply(f,vt(o)),console.groupEnd()}else{var l,d,h,p,m;(l=console).log.apply(l,vt(e)),(d=console).log.apply(d,vt(n)),(h=console).log.apply(h,vt(i)),(p=console).log.apply(p,vt(r)),(m=console).log.apply(m,vt(o))}}function df(t,e,n){return["%c".concat(t),"color: ".concat(e,"; font-weight: bold"),n]}function G6(t,e){j6(),Cs&&(console.group?($e.header=["%credux-undo","font-style: italic","action",t.type],$e.action=df("action",ff.action,t),$e.prev=df("prev history",ff.prevState,e)):($e.header=["redux-undo action",t.type],$e.action=["action",t],$e.prev=["prev history",e]))}function H6(t){Cs&&(console.group?$e.next=df("next history",ff.nextState,t):$e.next=["next history",t],U6())}function Q6(){if(Cs){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];$e.msgs=$e.msgs.concat([].concat(e,[`
2138
+ `]))}}function V6(t){Cs=t}(function(t){function e(v){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?e=function(w){return typeof w}:e=function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},e(v)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=C;var n=a(qr),r=or,i=bt;function o(){if(typeof WeakMap!="function")return null;var v=new WeakMap;return o=function(){return v},v}function a(v){if(v&&v.__esModule)return v;if(v===null||e(v)!=="object"&&typeof v!="function")return{default:v};var b=o();if(b&&b.has(v))return b.get(v);var w={},E=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var I in v)if(Object.prototype.hasOwnProperty.call(v,I)){var L=E?Object.getOwnPropertyDescriptor(v,I):null;L&&(L.get||L.set)?Object.defineProperty(w,I,L):w[I]=v[I]}return w.default=v,b&&b.set(v,w),w}function s(v,b){var w=Object.keys(v);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(v);b&&(E=E.filter(function(I){return Object.getOwnPropertyDescriptor(v,I).enumerable})),w.push.apply(w,E)}return w}function c(v){for(var b=1;b<arguments.length;b++){var w=arguments[b]!=null?arguments[b]:{};b%2?s(Object(w),!0).forEach(function(E){u(v,E,w[E])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(w)):s(Object(w)).forEach(function(E){Object.defineProperty(v,E,Object.getOwnPropertyDescriptor(w,E))})}return v}function u(v,b,w){return b in v?Object.defineProperty(v,b,{value:w,enumerable:!0,configurable:!0,writable:!0}):v[b]=w,v}function f(v){return h(v)||d(v)||l()}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function d(v){if(Symbol.iterator in Object(v)||Object.prototype.toString.call(v)==="[object Arguments]")return Array.from(v)}function h(v){if(Array.isArray(v)){for(var b=0,w=new Array(v.length);b<v.length;b++)w[b]=v[b];return w}}function p(v,b){var w=(0,i.newHistory)([],v,[]);return b&&(w._latestUnfiltered=null),w}function m(v,b,w,E){var I=v.past.length+1;n.log("inserting",b),n.log("new free: ",w-I);var L=v.past,T=v._latestUnfiltered,O=w&&w<=I,H=L.slice(O?1:0),U=T!=null?[].concat(f(H),[T]):H;return(0,i.newHistory)(U,b,[],E)}function y(v,b){if(b<0||b>=v.future.length)return v;var w=v.past,E=v.future,I=v._latestUnfiltered,L=[].concat(f(w),[I],f(E.slice(0,b))),T=E[b],O=E.slice(b+1);return(0,i.newHistory)(L,T,O)}function g(v,b){if(b<0||b>=v.past.length)return v;var w=v.past,E=v.future,I=v._latestUnfiltered,L=w.slice(0,b),T=[].concat(f(w.slice(b+1)),[I],f(E)),O=w[b];return(0,i.newHistory)(L,O,T)}function x(v,b){return b>0?y(v,b-1):b<0?g(v,v.past.length+b):v}function A(v,b){return b.indexOf(v)>-1?v:!v}function C(v){var b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.set(b.debug);var w=c({limit:void 0,filter:function(){return!0},groupBy:function(){return null},undoType:r.ActionTypes.UNDO,redoType:r.ActionTypes.REDO,jumpToPastType:r.ActionTypes.JUMP_TO_PAST,jumpToFutureType:r.ActionTypes.JUMP_TO_FUTURE,jumpType:r.ActionTypes.JUMP,neverSkipReducer:!1,ignoreInitialState:!1,syncFilter:!1},b,{initTypes:(0,i.parseActions)(b.initTypes,["@@redux-undo/INIT"]),clearHistoryType:(0,i.parseActions)(b.clearHistoryType,[r.ActionTypes.CLEAR_HISTORY])}),E=w.neverSkipReducer?function(L,T){for(var O=arguments.length,H=new Array(O>2?O-2:0),U=2;U<O;U++)H[U-2]=arguments[U];return c({},L,{present:v.apply(void 0,[L.present,T].concat(H))})}:function(L){return L},I;return function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:I,T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.start(T,L);for(var O=L,H=arguments.length,U=new Array(H>2?H-2:0),Ae=2;Ae<H;Ae++)U[Ae-2]=arguments[Ae];if(!I)if(n.log("history is uninitialized"),L===void 0){var Ie={type:"@@redux-undo/CREATE_HISTORY"},An=v.apply(void 0,[L,Ie].concat(U));return O=p(An,w.ignoreInitialState),n.log("do not set initialState on probe actions"),n.end(O),O}else(0,i.isHistory)(L)?(O=I=w.ignoreInitialState?L:(0,i.newHistory)(L.past,L.present,L.future),n.log("initialHistory initialized: initialState is a history",I)):(O=I=p(L,w.ignoreInitialState),n.log("initialHistory initialized: initialState is not a history",I));var Y;switch(T.type){case void 0:return O;case w.undoType:return Y=x(O,-1),n.log("perform undo"),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.redoType:return Y=x(O,1),n.log("perform redo"),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.jumpToPastType:return Y=g(O,T.index),n.log("perform jumpToPast to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.jumpToFutureType:return Y=y(O,T.index),n.log("perform jumpToFuture to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case w.jumpType:return Y=x(O,T.index),n.log("perform jump to ".concat(T.index)),n.end(Y),E.apply(void 0,[Y,T].concat(U));case A(T.type,w.clearHistoryType):return Y=p(O.present,w.ignoreInitialState),n.log("perform clearHistory"),n.end(Y),E.apply(void 0,[Y,T].concat(U));default:if(Y=v.apply(void 0,[O.present,T].concat(U)),w.initTypes.some(function(td){return td===T.type}))return n.log("reset history due to init action"),n.end(I),I;if(O._latestUnfiltered===Y)return O;var Ve=typeof w.filter=="function"&&!w.filter(T,Y,O);if(Ve){var Ro=(0,i.newHistory)(O.past,Y,O.future,O.group);return w.syncFilter||(Ro._latestUnfiltered=O._latestUnfiltered),n.log("filter ignored action, not storing it in past"),n.end(Ro),Ro}var jo=w.groupBy(T,Y,O);if(jo!=null&&jo===O.group){var Vs=(0,i.newHistory)(O.past,Y,O.future,O.group);return n.log("groupBy grouped the action with the previous action"),n.end(Vs),Vs}return O=m(O,Y,w.limit,jo),n.log("inserted new state into history"),n.end(O),O}}}})(ty),function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ActionTypes",{enumerable:!0,get:function(){return e.ActionTypes}}),Object.defineProperty(t,"ActionCreators",{enumerable:!0,get:function(){return e.ActionCreators}}),Object.defineProperty(t,"parseActions",{enumerable:!0,get:function(){return n.parseActions}}),Object.defineProperty(t,"isHistory",{enumerable:!0,get:function(){return n.isHistory}}),Object.defineProperty(t,"includeAction",{enumerable:!0,get:function(){return n.includeAction}}),Object.defineProperty(t,"excludeAction",{enumerable:!0,get:function(){return n.excludeAction}}),Object.defineProperty(t,"combineFilters",{enumerable:!0,get:function(){return n.combineFilters}}),Object.defineProperty(t,"groupByActionTypes",{enumerable:!0,get:function(){return n.groupByActionTypes}}),Object.defineProperty(t,"newHistory",{enumerable:!0,get:function(){return n.newHistory}}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.default}});var e=or,n=bt,r=i(ty);function i(o){return o&&o.__esModule?o:{default:o}}}(jt);const Y6=T6(jt);function hf(t){return t.split("-")[0]}function ny(t){return t.split("-")[1]}function ry(t){return["top","bottom"].includes(hf(t))?"x":"y"}function iy(t){return t==="y"?"height":"width"}function oy(t,e,n){let{reference:r,floating:i}=t;const o=r.x+r.width/2-i.width/2,a=r.y+r.height/2-i.height/2,s=ry(e),c=iy(s),u=r[c]/2-i[c]/2,f=hf(e),l=s==="x";let d;switch(f){case"top":d={x:o,y:r.y-i.height};break;case"bottom":d={x:o,y:r.y+r.height};break;case"right":d={x:r.x+r.width,y:a};break;case"left":d={x:r.x-i.width,y:a};break;default:d={x:r.x,y:r.y}}switch(ny(e)){case"start":d[s]-=u*(n&&l?-1:1);break;case"end":d[s]+=u*(n&&l?-1:1);break}return d}const _6=async(t,e,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:a}=n,s=await(a.isRTL==null?void 0:a.isRTL(e));let c=await a.getElementRects({reference:t,floating:e,strategy:i}),{x:u,y:f}=oy(c,r,s),l=r,d={};for(let h=0;h<o.length;h++){const{name:p,fn:m}=o[h],{x:y,y:g,data:x,reset:A}=await m({x:u,y:f,initialPlacement:r,placement:l,strategy:i,middlewareData:d,rects:c,platform:a,elements:{reference:t,floating:e}});if(u=y!=null?y:u,f=g!=null?g:f,d={...d,[p]:{...d[p],...x}},A){typeof A=="object"&&(A.placement&&(l=A.placement),A.rects&&(c=A.rects===!0?await a.getElementRects({reference:t,floating:e,strategy:i}):A.rects),{x:u,y:f}=oy(c,l,s)),h=-1;continue}}return{x:u,y:f,placement:l,strategy:i,middlewareData:d}};function W6(t){return{top:0,right:0,bottom:0,left:0,...t}}function X6(t){return typeof t!="number"?W6(t):{top:t,right:t,bottom:t,left:t}}function Ss(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function Z6(t,e){var n;e===void 0&&(e={});const{x:r,y:i,platform:o,rects:a,elements:s,strategy:c}=t,{boundary:u="clippingAncestors",rootBoundary:f="viewport",elementContext:l="floating",altBoundary:d=!1,padding:h=0}=e,p=X6(h),y=s[d?l==="floating"?"reference":"floating":l],g=Ss(await o.getClippingRect({element:(n=await(o.isElement==null?void 0:o.isElement(y)))==null||n?y:y.contextElement||await(o.getDocumentElement==null?void 0:o.getDocumentElement(s.floating)),boundary:u,rootBoundary:f,strategy:c})),x=Ss(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({rect:l==="floating"?{...a.floating,x:r,y:i}:a.reference,offsetParent:await(o.getOffsetParent==null?void 0:o.getOffsetParent(s.floating)),strategy:c}):a[l]);return{top:g.top-x.top+p.top,bottom:x.bottom-g.bottom+p.bottom,left:g.left-x.left+p.left,right:x.right-g.right+p.right}}const q6={left:"right",right:"left",bottom:"top",top:"bottom"};function Es(t){return t.replace(/left|right|bottom|top/g,e=>q6[e])}function K6(t,e,n){n===void 0&&(n=!1);const r=ny(t),i=ry(t),o=iy(i);let a=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[o]>e.floating[o]&&(a=Es(a)),{main:a,cross:Es(a)}}const J6={start:"end",end:"start"};function ay(t){return t.replace(/start|end/g,e=>J6[e])}function $6(t){const e=Es(t);return[ay(t),e,ay(e)]}const eI=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n;const{placement:r,middlewareData:i,rects:o,initialPlacement:a,platform:s,elements:c}=e,{mainAxis:u=!0,crossAxis:f=!0,fallbackPlacements:l,fallbackStrategy:d="bestFit",flipAlignment:h=!0,...p}=t,m=hf(r),g=l||(m===a||!h?[Es(a)]:$6(a)),x=[a,...g],A=await Z6(e,p),C=[];let v=((n=i.flip)==null?void 0:n.overflows)||[];if(u&&C.push(A[m]),f){const{main:I,cross:L}=K6(r,o,await(s.isRTL==null?void 0:s.isRTL(c.floating)));C.push(A[I],A[L])}if(v=[...v,{placement:r,overflows:C}],!C.every(I=>I<=0)){var b,w;const I=((b=(w=i.flip)==null?void 0:w.index)!=null?b:0)+1,L=x[I];if(L)return{data:{index:I,overflows:v},reset:{placement:L}};let T="bottom";switch(d){case"bestFit":{var E;const O=(E=v.map(H=>[H,H.overflows.filter(U=>U>0).reduce((U,Ae)=>U+Ae,0)]).sort((H,U)=>H[1]-U[1])[0])==null?void 0:E[0].placement;O&&(T=O);break}case"initialPlacement":T=a;break}if(r!==T)return{reset:{placement:T}}}return{}}}};function sy(t){return t&&t.document&&t.location&&t.alert&&t.setInterval}function Ut(t){if(t==null)return window;if(!sy(t)){const e=t.ownerDocument;return e&&e.defaultView||window}return t}function Ao(t){return Ut(t).getComputedStyle(t)}function Gt(t){return sy(t)?"":t?(t.nodeName||"").toLowerCase():""}function cy(){const t=navigator.userAgentData;return t!=null&&t.brands?t.brands.map(e=>e.brand+"/"+e.version).join(" "):navigator.userAgent}function At(t){return t instanceof Ut(t).HTMLElement}function Kr(t){return t instanceof Ut(t).Element}function tI(t){return t instanceof Ut(t).Node}function pf(t){if(typeof ShadowRoot>"u")return!1;const e=Ut(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Ds(t){const{overflow:e,overflowX:n,overflowY:r}=Ao(t);return/auto|scroll|overlay|hidden/.test(e+r+n)}function nI(t){return["table","td","th"].includes(Gt(t))}function uy(t){const e=/firefox/i.test(cy()),n=Ao(t);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||e&&n.willChange==="filter"||e&&(n.filter?n.filter!=="none":!1)}function ly(){return!/^((?!chrome|android).)*safari/i.test(cy())}const fy=Math.min,xo=Math.max,Ms=Math.round;function sr(t,e,n){var r,i,o,a;e===void 0&&(e=!1),n===void 0&&(n=!1);const s=t.getBoundingClientRect();let c=1,u=1;e&&At(t)&&(c=t.offsetWidth>0&&Ms(s.width)/t.offsetWidth||1,u=t.offsetHeight>0&&Ms(s.height)/t.offsetHeight||1);const f=Kr(t)?Ut(t):window,l=!ly()&&n,d=(s.left+(l&&(r=(i=f.visualViewport)==null?void 0:i.offsetLeft)!=null?r:0))/c,h=(s.top+(l&&(o=(a=f.visualViewport)==null?void 0:a.offsetTop)!=null?o:0))/u,p=s.width/c,m=s.height/u;return{width:p,height:m,top:h,right:d+p,bottom:h+m,left:d,x:d,y:h}}function gn(t){return((tI(t)?t.ownerDocument:t.document)||window.document).documentElement}function Ts(t){return Kr(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function dy(t){return sr(gn(t)).left+Ts(t).scrollLeft}function rI(t){const e=sr(t);return Ms(e.width)!==t.offsetWidth||Ms(e.height)!==t.offsetHeight}function iI(t,e,n){const r=At(e),i=gn(e),o=sr(t,r&&rI(e),n==="fixed");let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(r||!r&&n!=="fixed")if((Gt(e)!=="body"||Ds(i))&&(a=Ts(e)),At(e)){const c=sr(e,!0);s.x=c.x+e.clientLeft,s.y=c.y+e.clientTop}else i&&(s.x=dy(i));return{x:o.left+a.scrollLeft-s.x,y:o.top+a.scrollTop-s.y,width:o.width,height:o.height}}function hy(t){return Gt(t)==="html"?t:t.assignedSlot||t.parentNode||(pf(t)?t.host:null)||gn(t)}function py(t){return!At(t)||getComputedStyle(t).position==="fixed"?null:t.offsetParent}function oI(t){let e=hy(t);for(pf(e)&&(e=e.host);At(e)&&!["html","body"].includes(Gt(e));){if(uy(e))return e;e=e.parentNode}return null}function mf(t){const e=Ut(t);let n=py(t);for(;n&&nI(n)&&getComputedStyle(n).position==="static";)n=py(n);return n&&(Gt(n)==="html"||Gt(n)==="body"&&getComputedStyle(n).position==="static"&&!uy(n))?e:n||oI(t)||e}function my(t){if(At(t))return{width:t.offsetWidth,height:t.offsetHeight};const e=sr(t);return{width:e.width,height:e.height}}function aI(t){let{rect:e,offsetParent:n,strategy:r}=t;const i=At(n),o=gn(n);if(n===o)return e;let a={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((i||!i&&r!=="fixed")&&((Gt(n)!=="body"||Ds(o))&&(a=Ts(n)),At(n))){const c=sr(n,!0);s.x=c.x+n.clientLeft,s.y=c.y+n.clientTop}return{...e,x:e.x-a.scrollLeft+s.x,y:e.y-a.scrollTop+s.y}}function sI(t,e){const n=Ut(t),r=gn(t),i=n.visualViewport;let o=r.clientWidth,a=r.clientHeight,s=0,c=0;if(i){o=i.width,a=i.height;const u=ly();(u||!u&&e==="fixed")&&(s=i.offsetLeft,c=i.offsetTop)}return{width:o,height:a,x:s,y:c}}function cI(t){var e;const n=gn(t),r=Ts(t),i=(e=t.ownerDocument)==null?void 0:e.body,o=xo(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=xo(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0);let s=-r.scrollLeft+dy(t);const c=-r.scrollTop;return Ao(i||n).direction==="rtl"&&(s+=xo(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:c}}function gy(t){const e=hy(t);return["html","body","#document"].includes(Gt(e))?t.ownerDocument.body:At(e)&&Ds(e)?e:gy(e)}function yy(t,e){var n;e===void 0&&(e=[]);const r=gy(t),i=r===((n=t.ownerDocument)==null?void 0:n.body),o=Ut(r),a=i?[o].concat(o.visualViewport||[],Ds(r)?r:[]):r,s=e.concat(a);return i?s:s.concat(yy(a))}function uI(t,e){const n=e==null||e.getRootNode==null?void 0:e.getRootNode();if(t!=null&&t.contains(e))return!0;if(n&&pf(n)){let r=e;do{if(r&&t===r)return!0;r=r.parentNode||r.host}while(r)}return!1}function lI(t,e){const n=sr(t,!1,e==="fixed"),r=n.top+t.clientTop,i=n.left+t.clientLeft;return{top:r,left:i,x:i,y:r,right:i+t.clientWidth,bottom:r+t.clientHeight,width:t.clientWidth,height:t.clientHeight}}function by(t,e,n){return e==="viewport"?Ss(sI(t,n)):Kr(e)?lI(e,n):Ss(cI(gn(t)))}function fI(t){const e=yy(t),r=["absolute","fixed"].includes(Ao(t).position)&&At(t)?mf(t):t;return Kr(r)?e.filter(i=>Kr(i)&&uI(i,r)&&Gt(i)!=="body"):[]}function dI(t){let{element:e,boundary:n,rootBoundary:r,strategy:i}=t;const a=[...n==="clippingAncestors"?fI(e):[].concat(n),r],s=a[0],c=a.reduce((u,f)=>{const l=by(e,f,i);return u.top=xo(l.top,u.top),u.right=fy(l.right,u.right),u.bottom=fy(l.bottom,u.bottom),u.left=xo(l.left,u.left),u},by(e,s,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}const hI={getClippingRect:dI,convertOffsetParentRelativeRectToViewportRelativeRect:aI,isElement:Kr,getDimensions:my,getOffsetParent:mf,getDocumentElement:gn,getElementRects:t=>{let{reference:e,floating:n,strategy:r}=t;return{reference:iI(e,mf(n),r),floating:{...my(n),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>Ao(t).direction==="rtl"},pI=(t,e,n)=>_6(t,e,{platform:hI,...n});let xt;const wo=[],gf=cs(t=>t(),150,!1);function Co(t){if((t==null?void 0:t.type)=="contextmenu"){t.preventDefault();return}xt&&(xt.remove(),xt=void 0,document.body.classList.remove(jn))}function vy(t){var e;if(!(t<1)){for(let n=t;n<wo.length;n++)(e=wo[n])==null||e.remove(),wo[n]=void 0;for(const n of wo[t-1].querySelectorAll("li.active"))n.classList.remove("active")}}const mI=()=>D`<li class="menu-divider"></li>`,gI=t=>D`<li class="menu-header">${t.label||"-"}</li>`,yI=(t,e)=>D`<li><a class="submenu-item" @click="${n=>n.stopPropagation()}" @mouseup="${n=>n.stopPropagation()}" @mouseenter="${n=>gf(()=>{const r=n.target.closest("li");AI(t.submenu,r,e+1),n.stopPropagation()})}" @mouseleave="${()=>gf(()=>vy(e+1))}"><span>${t.label}</span></a></li>`,bI=t=>D`<li><a @mouseup="${()=>{Co(),t.callback()}}">${t.icon?q(t.icon).node[0]:""} ${t.label}</a> ${t.ellipsisCallback?D`<a class="menu-ellipsis" @click="${t.ellipsisCallback}">${q(D5).node[0]}</a>`:R}</li>`,vI=t=>D`<li><span class="disabled-item">${t.icon?q(t.icon).node[0]:""} ${t.label||"-"}</span></li>`;function Ay(t,e=1){switch(t.type){case"divider":return mI();case"header":return gI(t);default:return t.submenu?yI(t,e):t.callback?bI(t):vI(t)}}function AI(t,e,n){xy(t,e,n,"right-start"),e.classList.add("active")}function xy(t,e,n,r){const i=document.createElement("ul");i.classList.add("gs-context-menu"),i.addEventListener("mouseenter",()=>{gf(()=>{})}),Be(t.map(o=>Ay(o,n)),i),xt.appendChild(i),vy(n),wo[n]=i,pI(e,i,{placement:r!=null?r:"right-start",middleware:[eI()]}).then(({x:o,y:a})=>{const s=i.querySelector(":scope > li");s&&(a-=s.getBoundingClientRect().top),i.style.left=`${o}px`,i.style.top=`${a}px`})}function wy(t,e,n){n!=null||(n="bottom-start"),Co();const r=performance.now(),i=document.body;xt=document.createElement("div"),xt.classList.add("gs-context-menu-backdrop"),xt.addEventListener("click",Co),xt.addEventListener("contextmenu",Co),xt.addEventListener("mouseup",()=>{performance.now()-r>500&&Co()},{once:!0}),i.appendChild(xt),document.body.classList.add(jn),xy(t.items,e,0,n)}function Cy(t,e){wy(t,xI(e),"right-start"),e.preventDefault()}function xI(t){return{getBoundingClientRect(){return{width:0,height:0,x:t.clientX,y:t.clientY,top:t.clientY,left:t.clientX,right:t.clientX,bottom:t.clientY,toJSON:void 0}}}}const yf={NOMINAL:"nominal",ORDINAL:"ordinal",QUANTITATIVE:"quantitative"},Is="SAMPLE_ATTRIBUTE",Sy="SAMPLE_NAME",wI=/^attribute-(.*)$/;class Ey extends Hr{constructor(e){super({title:"Sample metadata",data:{dynamicSource:!0},hconcat:[],spacing:1,resolve:{scale:{default:"independent"},axis:{default:"independent"}}},e.context,void 0,"sample-metadata"),this.sampleView=e,this._attributeHighlighState={backgroundOpacity:1,currentAttribute:void 0,abortController:new AbortController},this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(Is,n=>this.children.map(this.getAttributeInfoFromView.bind(this)).find(r=>r&&r.name==n.specifier)),this.sampleView.compositeAttributeInfoSource.addAttributeInfoSource(Sy,n=>Dy),this.addInteractionEventListener("contextmenu",this.handleContextMenu.bind(this)),this.addInteractionEventListener("mousemove",(n,r)=>{var s;const i=r.target,o=this._findSampleForMouseEvent(n,r),a=i&&((s=this.getAttributeInfoFromView(i))==null?void 0:s.name)||void 0;if(o){const c=JSON.stringify([o.id,a]);this.context.updateTooltip(c,u=>Promise.resolve(this.sampleToTooltip(u)))}this._handleAttributeHighlight(a)}),je([...this.sampleView.getAncestors()]).addInteractionEventListener("mousemove",(n,r)=>{if(!!this._attributeHighlighState.currentAttribute){if(r.target){for(const i of r.target.getAncestors())if(i==this)return}this._handleAttributeHighlight(void 0)}})}getEncoding(){return{}}render(e,n,r={}){!this.isVisible()||super.render(e,n,{...r,clipRect:this.sampleView._clipBySummary(n)})}_handleAttributeHighlight(e){const n=this._attributeHighlighState;e!=n.currentAttribute&&(n.abortController.abort(),n.abortController=new AbortController,this.context.animator.transition({from:n.backgroundOpacity,onUpdate:r=>{n.backgroundOpacity=r},easingFunction:ag,signal:n.abortController.signal,...e?{to:.1,duration:1e3,delay:n.backgroundOpacity<1?0:500}:{to:1,duration:200,delay:150}}).catch(r=>{}),this.context.animator.requestRender()),n.currentAttribute=e}getSample(e){var n;return(n=this.sampleView.sampleHierarchy.sampleData)==null?void 0:n.entities[e]}_findSampleForMouseEvent(e,n){return this.sampleView.getSampleAt(n.point.y-this.sampleView.childCoords.y)}_getAttributeOpacity(e){const n=this._attributeHighlighState;return e==n.currentAttribute?1:n.backgroundOpacity}handleContextMenu(e,n){const r=n.uiEvent,i=this._findSampleForMouseEvent(e,n);if(!i){r.preventDefault();return}const o=[],a=this.getAttributeInfoFromView(n.target);if(a){const s=i.attributes[a.name];o.push(...lf(D`Attribute: <strong>${a.name}</strong>`,a,s,this.sampleView))}else o.push(...lf(D`Sample: <strong>${i.displayName}</strong>`,Dy,i.id,this.sampleView));Cy({items:o},r)}_setSamples(e){if(this.childCount)throw new Error("Children are already created!");this._createViews();const n=this.context.dataFlow;Bg(this,n);const r=n.findDataSourceByKey(this);r.visit(o=>o.initialize());const i=[];this.visit(o=>{if(o instanceof ye){const a=o.mark;a.initializeEncoders(),i.push(a.initializeGraphics().then(s=>a)),n.addObserver(s=>{a.initializeData(),a.updateGraphicsData()},o)}}),Promise.allSettled(i).then(o=>{for(const a of o)"value"in a?a.value.finalizeGraphicsInitialization():"reason"in a&&console.error(a.reason)}),r.publishData(e),this.visit(o=>{o.name.startsWith("title")&&n.findDataSourceByKey(o).load()})}_createViews(){const e=[];e.push(this.context.createView(SI(),this));for(const n of this._getAttributeNames()){const r=this.context.createView(this._createAttributeViewSpec(n),this);r.opacityFunction=i=>i*this._getAttributeOpacity(n),e.push(r)}this.setChildren(e),Pg(this)}_getAttributeDef(e){var n,r;return(r=(n=this.sampleView.spec.samples)==null?void 0:n.attributes)==null?void 0:r[e]}_getAttributeNames(){return this._cache("attributeNames",()=>[...this.sampleView.getSamples().flatMap(r=>Object.keys(r.attributes)).reduce((r,i)=>r.add(i),new Set)])}_createAttributeViewSpec(e){const n=this._getAttributeDef(e);let r=n?n.type:void 0;if(!r){const i=this.sampleView.getSamples();switch(fh(i.map(o=>o.attributes[e]))){case"integer":case"number":r=yf.QUANTITATIVE;break;default:r=yf.NOMINAL}}return CI(e,{...n||{},type:r})}_findViewForAttribute(e){return this.children[this._getAttributeNames().indexOf(e)+1]}getAttributeInfoFromView(e){const n=e==null?void 0:e.name.match(wI);if(n){const r=e.getScaleResolution("color"),i=n[1];return{name:i,attribute:{type:Is,specifier:i},accessor:(o,a)=>a.sampleData.entities[o].attributes[i],type:r.type,scale:r.getScale(),title:D`<em class="attribute">${i}</em>`}}}getAttributeInfo(e){return this.getAttributeInfoFromView(this._findViewForAttribute(e))}sampleToTooltip(e){const[n,r]=JSON.parse(e),i=this.getSample(n),o=(s,c)=>EI(c)?this.getAttributeInfo(s).scale(c):"transparent",a=D`<table class="attributes">${Object.entries(i.attributes).map(([s,c])=>D`<tr class="${s5({hovered:s==r})}"><th>${s}</th><td>${Qg(c)}</td><td class="color" .style="background-color: ${o(s,c)}"></td></tr>`)}</table>`;return D`<div class="title"><strong>${i.displayName||i.id}</strong></div>${a}`}getDefaultResolution(e,n){return"independent"}handleVerboseCommand(e){const n=e;for(const r of this._getAttributeNames()){const i=this.getAttributeInfo(r);if((i.type==ml||i.type==gl)&&this.sampleView.getSamples().find(a=>a.attributes[i.name]==n)){const a=this.sampleView.actions.filterByNominal({attribute:{type:Is,specifier:r},values:[n]}),s=this.sampleView.provenance.getPresentState().lastAction,c=this.sampleView.actions.filterByNominal.match(s)&&!s.payload.remove&&s.payload.attribute.type==Is&&s.payload.attribute.specifier==r&&s.payload.values.length==1;return this.sampleView.provenance.storeHelper.dispatch(c?[jt.ActionCreators.undo(),a]:a),!0}}return!1}isPickingSupported(){return!1}}function CI(t,e){var i,o;const n=`attributes["${t}"]`,r={name:`attribute-${t}`,title:{text:t,orient:"bottom",align:"right",baseline:"middle",offset:5,angle:-90,dy:-.5,fontSize:11},visible:(i=e.visible)!=null?i:!0,width:(o=e.width)!=null?o:10,transform:[{type:"filter",expr:`datum.${n} != null`}],mark:{type:"rect",xOffset:-.5},encoding:{facetIndex:{field:"indexNumber"},color:{field:n,type:e.type,scale:e.scale}},opacity:1};return e.barScale&&e.type==yf.QUANTITATIVE&&(r.encoding.x={field:`attributes["${t}"]`,type:e.type,scale:e.barScale,axis:null}),r}function SI(){return{name:"metadata-sample-name",title:{text:"Sample name",orient:"bottom",anchor:"start",offset:5,fontSize:11},width:140,mark:{type:"text",align:"left",baseline:"middle",size:11,flushY:!1},encoding:{facetIndex:{field:"indexNumber"},x:{value:0},x2:{value:1},y:{value:0},y2:{value:1},text:{field:"displayName"}}}}function EI(t){return t!==""&&!(typeof t=="number"&&isNaN(t))&&t!==null}const Dy=Object.freeze({name:"sample",attribute:{type:Sy},accessor:t=>t,type:"identifier",scale:void 0});class DI extends Nt{constructor(e){super({title:{text:"Groups",orient:"none"},width:{step:22},data:{dynamicSource:!0},transform:[{type:"filter",expr:"datum._depth > 0"},{type:"formula",as:"_y1",expr:"datum._index * 2"},{type:"formula",as:"_y2",expr:"datum._index * 2 + 1"},{type:"formula",as:"_NA",expr:"datum.label == null"},{type:"formula",as:"label",expr:"datum.label != null ? datum.label: 'NA'"}],encoding:{x:{field:"_depth",type:"ordinal",scale:{align:0,padding:.2272727},axis:null},y:{field:"_y1",type:"nominal",scale:{type:"ordinal",domain:Yt(500)},axis:null},y2:{field:"_y2"}},layer:[{title:"Group",mark:{type:"rect",clip:!0,color:"#e8e8e8"}},{mark:{type:"text",clip:!0,angle:-90,paddingY:5,tooltip:null},encoding:{text:{field:"label"},opacity:{field:"_NA",type:"nominal",scale:{type:"ordinal",domain:[!1,!0],range:[1,.3]}}}}]},e.context,void 0,"sample-groups"),this.sampleView=e,this._addBroadcastHandler("layoutComputed",()=>{this.updateRange()})}updateRange(){var o,a,s;const e=(o=this.sampleView.getLocations())==null?void 0:o.groups;if(!(e!=null&&e.length))return;const n=(s=(a=this.sampleView)==null?void 0:a.childCoords.height)!=null?s:0,r=this.getScaleResolution("y"),i=[];for(const c of e)i.push(1-(c.locSize.location+c.locSize.size)/n),i.push(1-c.locSize.location/n);r.getScale().range(i),this.context.glHelper.createRangeTexture(r,!0)}updateGroups(){var i,o;const e=(o=(i=this.sampleView.getLocations())==null?void 0:i.groups)!=null?o:[],n=this.context.dataFlow.findDataSourceByKey(this);if(!n)return;const r=e.map(a=>({_index:a.key.index,_name:a.key.group.name,_depth:a.key.depth,attribute:a.key.attributeLabel,label:a.key.group.label,n:a.key.n}));n.publishData(r),this.getScaleResolution("x").reconfigure(),this.getScaleResolution("y").reconfigure(),e.length&&this.updateRange(),je([...this.getAncestors()]).visit(a=>io(a,"size"))}}function ut(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];throw Error("[Immer] minified error nr: "+t+(n.length?" "+n.map(function(i){return"'"+i+"'"}).join(","):"")+". Find the full error at: https://bit.ly/3cXEKWf")}function yn(t){return!!t&&!!t[re]}function Ht(t){return!!t&&(function(e){if(!e||typeof e!="object")return!1;var n=Object.getPrototypeOf(e);if(n===null)return!0;var r=Object.hasOwnProperty.call(n,"constructor")&&n.constructor;return r===Object||typeof r=="function"&&Function.toString.call(r)===PI}(t)||Array.isArray(t)||!!t[Fy]||!!t.constructor[Fy]||bf(t)||vf(t))}function cr(t,e,n){n===void 0&&(n=!1),Jr(t)===0?(n?Object.keys:ei)(t).forEach(function(r){n&&typeof r=="symbol"||e(r,t[r],t)}):t.forEach(function(r,i){return e(i,r,t)})}function Jr(t){var e=t[re];return e?e.i>3?e.i-4:e.i:Array.isArray(t)?1:bf(t)?2:vf(t)?3:0}function $r(t,e){return Jr(t)===2?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function MI(t,e){return Jr(t)===2?t.get(e):t[e]}function My(t,e,n){var r=Jr(t);r===2?t.set(e,n):r===3?(t.delete(e),t.add(n)):t[e]=n}function Ty(t,e){return t===e?t!==0||1/t==1/e:t!=t&&e!=e}function bf(t){return BI&&t instanceof Map}function vf(t){return OI&&t instanceof Set}function ur(t){return t.o||t.t}function Af(t){if(Array.isArray(t))return Array.prototype.slice.call(t);var e=zy(t);delete e[re];for(var n=ei(e),r=0;r<n.length;r++){var i=n[r],o=e[i];o.writable===!1&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(e[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[i]})}return Object.create(Object.getPrototypeOf(t),e)}function xf(t,e){return e===void 0&&(e=!1),wf(t)||yn(t)||!Ht(t)||(Jr(t)>1&&(t.set=t.add=t.clear=t.delete=TI),Object.freeze(t),e&&cr(t,function(n,r){return xf(r,!0)},!0)),t}function TI(){ut(2)}function wf(t){return t==null||typeof t!="object"||Object.isFrozen(t)}function wt(t){var e=Nf[t];return e||ut(18,t),e}function II(t,e){Nf[t]||(Nf[t]=e)}function Cf(){return So}function Sf(t,e){e&&(wt("Patches"),t.u=[],t.s=[],t.v=e)}function ks(t){Ef(t),t.p.forEach(kI),t.p=null}function Ef(t){t===So&&(So=t.l)}function Iy(t){return So={p:[],l:So,h:t,m:!0,_:0}}function kI(t){var e=t[re];e.i===0||e.i===1?e.j():e.O=!0}function Df(t,e){e._=e.p.length;var n=e.p[0],r=t!==void 0&&t!==n;return e.h.g||wt("ES5").S(e,t,r),r?(n[re].P&&(ks(e),ut(4)),Ht(t)&&(t=Ns(e,t),e.l||Ls(e,t)),e.u&&wt("Patches").M(n[re].t,t,e.u,e.s)):t=Ns(e,n,[]),ks(e),e.u&&e.v(e.u,e.s),t!==Py?t:void 0}function Ns(t,e,n){if(wf(e))return e;var r=e[re];if(!r)return cr(e,function(o,a){return ky(t,r,e,o,a,n)},!0),e;if(r.A!==t)return e;if(!r.P)return Ls(t,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=Af(r.k):r.o;cr(r.i===3?new Set(i):i,function(o,a){return ky(t,r,i,o,a,n)}),Ls(t,i,!1),n&&t.u&&wt("Patches").R(r,n,t.u,t.s)}return r.o}function ky(t,e,n,r,i,o){if(yn(i)){var a=Ns(t,i,o&&e&&e.i!==3&&!$r(e.D,r)?o.concat(r):void 0);if(My(n,r,a),!yn(a))return;t.m=!1}if(Ht(i)&&!wf(i)){if(!t.h.F&&t._<1)return;Ns(t,i),e&&e.A.l||Ls(t,i)}}function Ls(t,e,n){n===void 0&&(n=!1),t.h.F&&t.m&&xf(e,n)}function Mf(t,e){var n=t[re];return(n?ur(n):t)[e]}function Ny(t,e){if(e in t)for(var n=Object.getPrototypeOf(t);n;){var r=Object.getOwnPropertyDescriptor(n,e);if(r)return r;n=Object.getPrototypeOf(n)}}function bn(t){t.P||(t.P=!0,t.l&&bn(t.l))}function Tf(t){t.o||(t.o=Af(t.t))}function If(t,e,n){var r=bf(e)?wt("MapSet").N(e,n):vf(e)?wt("MapSet").T(e,n):t.g?function(i,o){var a=Array.isArray(i),s={i:a?1:0,A:o?o.A:Cf(),P:!1,I:!1,D:{},l:o,t:i,k:null,o:null,j:null,C:!1},c=s,u=Eo;a&&(c=[s],u=Do);var f=Proxy.revocable(c,u),l=f.revoke,d=f.proxy;return s.k=d,s.j=l,d}(e,n):wt("ES5").J(e,n);return(n?n.A:Cf()).p.push(r),r}function NI(t){return yn(t)||ut(22,t),function e(n){if(!Ht(n))return n;var r,i=n[re],o=Jr(n);if(i){if(!i.P&&(i.i<4||!wt("ES5").K(i)))return i.t;i.I=!0,r=Ly(n,o),i.I=!1}else r=Ly(n,o);return cr(r,function(a,s){i&&MI(i.t,a)===s||My(r,a,e(s))}),o===3?new Set(r):r}(t)}function Ly(t,e){switch(e){case 2:return new Map(t);case 3:return Array.from(t)}return Af(t)}function LI(){function t(o,a){var s=i[o];return s?s.enumerable=a:i[o]=s={configurable:!0,enumerable:a,get:function(){var c=this[re];return Eo.get(c,o)},set:function(c){var u=this[re];Eo.set(u,o,c)}},s}function e(o){for(var a=o.length-1;a>=0;a--){var s=o[a][re];if(!s.P)switch(s.i){case 5:r(s)&&bn(s);break;case 4:n(s)&&bn(s)}}}function n(o){for(var a=o.t,s=o.k,c=ei(s),u=c.length-1;u>=0;u--){var f=c[u];if(f!==re){var l=a[f];if(l===void 0&&!$r(a,f))return!0;var d=s[f],h=d&&d[re];if(h?h.t!==l:!Ty(d,l))return!0}}var p=!!a[re];return c.length!==ei(a).length+(p?0:1)}function r(o){var a=o.k;if(a.length!==o.t.length)return!0;var s=Object.getOwnPropertyDescriptor(a,a.length-1);if(s&&!s.get)return!0;for(var c=0;c<a.length;c++)if(!a.hasOwnProperty(c))return!0;return!1}var i={};II("ES5",{J:function(o,a){var s=Array.isArray(o),c=function(f,l){if(f){for(var d=Array(l.length),h=0;h<l.length;h++)Object.defineProperty(d,""+h,t(h,!0));return d}var p=zy(l);delete p[re];for(var m=ei(p),y=0;y<m.length;y++){var g=m[y];p[g]=t(g,f||!!p[g].enumerable)}return Object.create(Object.getPrototypeOf(l),p)}(s,o),u={i:s?5:4,A:a?a.A:Cf(),P:!1,I:!1,D:{},l:a,t:o,k:c,o:null,O:!1,C:!1};return Object.defineProperty(c,re,{value:u,writable:!0}),c},S:function(o,a,s){s?yn(a)&&a[re].A===o&&e(o.p):(o.u&&function c(u){if(u&&typeof u=="object"){var f=u[re];if(f){var l=f.t,d=f.k,h=f.D,p=f.i;if(p===4)cr(d,function(A){A!==re&&(l[A]!==void 0||$r(l,A)?h[A]||c(d[A]):(h[A]=!0,bn(f)))}),cr(l,function(A){d[A]!==void 0||$r(d,A)||(h[A]=!1,bn(f))});else if(p===5){if(r(f)&&(bn(f),h.length=!0),d.length<l.length)for(var m=d.length;m<l.length;m++)h[m]=!1;else for(var y=l.length;y<d.length;y++)h[y]=!0;for(var g=Math.min(d.length,l.length),x=0;x<g;x++)d.hasOwnProperty(x)||(h[x]=!0),h[x]===void 0&&c(d[x])}}}}(o.p[0]),e(o.p))},K:function(o){return o.i===4?n(o):r(o)}})}var By,So,kf=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",BI=typeof Map<"u",OI=typeof Set<"u",Oy=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Py=kf?Symbol.for("immer-nothing"):((By={})["immer-nothing"]=!0,By),Fy=kf?Symbol.for("immer-draftable"):"__$immer_draftable",re=kf?Symbol.for("immer-state"):"__$immer_state",PI=""+Object.prototype.constructor,ei=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Object.getOwnPropertyNames,zy=Object.getOwnPropertyDescriptors||function(t){var e={};return ei(t).forEach(function(n){e[n]=Object.getOwnPropertyDescriptor(t,n)}),e},Nf={},Eo={get:function(t,e){if(e===re)return t;var n=ur(t);if(!$r(n,e))return function(i,o,a){var s,c=Ny(o,a);return c?"value"in c?c.value:(s=c.get)===null||s===void 0?void 0:s.call(i.k):void 0}(t,n,e);var r=n[e];return t.I||!Ht(r)?r:r===Mf(t.t,e)?(Tf(t),t.o[e]=If(t.A.h,r,t)):r},has:function(t,e){return e in ur(t)},ownKeys:function(t){return Reflect.ownKeys(ur(t))},set:function(t,e,n){var r=Ny(ur(t),e);if(r!=null&&r.set)return r.set.call(t.k,n),!0;if(!t.P){var i=Mf(ur(t),e),o=i==null?void 0:i[re];if(o&&o.t===n)return t.o[e]=n,t.D[e]=!1,!0;if(Ty(n,i)&&(n!==void 0||$r(t.t,e)))return!0;Tf(t),bn(t)}return t.o[e]===n&&typeof n!="number"&&(n!==void 0||e in t.o)||(t.o[e]=n,t.D[e]=!0,!0)},deleteProperty:function(t,e){return Mf(t.t,e)!==void 0||e in t.t?(t.D[e]=!1,Tf(t),bn(t)):delete t.D[e],t.o&&delete t.o[e],!0},getOwnPropertyDescriptor:function(t,e){var n=ur(t),r=Reflect.getOwnPropertyDescriptor(n,e);return r&&{writable:!0,configurable:t.i!==1||e!=="length",enumerable:r.enumerable,value:n[e]}},defineProperty:function(){ut(11)},getPrototypeOf:function(t){return Object.getPrototypeOf(t.t)},setPrototypeOf:function(){ut(12)}},Do={};cr(Eo,function(t,e){Do[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}}),Do.deleteProperty=function(t,e){return Do.set.call(this,t,e,void 0)},Do.set=function(t,e,n){return Eo.set.call(this,t[0],e,n,t[0])};var FI=function(){function t(n){var r=this;this.g=Oy,this.F=!0,this.produce=function(i,o,a){if(typeof i=="function"&&typeof o!="function"){var s=o;o=i;var c=r;return function(m){var y=this;m===void 0&&(m=s);for(var g=arguments.length,x=Array(g>1?g-1:0),A=1;A<g;A++)x[A-1]=arguments[A];return c.produce(m,function(C){var v;return(v=o).call.apply(v,[y,C].concat(x))})}}var u;if(typeof o!="function"&&ut(6),a!==void 0&&typeof a!="function"&&ut(7),Ht(i)){var f=Iy(r),l=If(r,i,void 0),d=!0;try{u=o(l),d=!1}finally{d?ks(f):Ef(f)}return typeof Promise<"u"&&u instanceof Promise?u.then(function(m){return Sf(f,a),Df(m,f)},function(m){throw ks(f),m}):(Sf(f,a),Df(u,f))}if(!i||typeof i!="object"){if((u=o(i))===void 0&&(u=i),u===Py&&(u=void 0),r.F&&xf(u,!0),a){var h=[],p=[];wt("Patches").M(i,u,h,p),a(h,p)}return u}ut(21,i)},this.produceWithPatches=function(i,o){if(typeof i=="function")return function(u){for(var f=arguments.length,l=Array(f>1?f-1:0),d=1;d<f;d++)l[d-1]=arguments[d];return r.produceWithPatches(u,function(h){return i.apply(void 0,[h].concat(l))})};var a,s,c=r.produce(i,o,function(u,f){a=u,s=f});return typeof Promise<"u"&&c instanceof Promise?c.then(function(u){return[u,a,s]}):[c,a,s]},typeof(n==null?void 0:n.useProxies)=="boolean"&&this.setUseProxies(n.useProxies),typeof(n==null?void 0:n.autoFreeze)=="boolean"&&this.setAutoFreeze(n.autoFreeze)}var e=t.prototype;return e.createDraft=function(n){Ht(n)||ut(8),yn(n)&&(n=NI(n));var r=Iy(this),i=If(this,n,void 0);return i[re].C=!0,Ef(r),i},e.finishDraft=function(n,r){var i=n&&n[re],o=i.A;return Sf(o,r),Df(void 0,o)},e.setAutoFreeze=function(n){this.F=n},e.setUseProxies=function(n){n&&!Oy&&ut(20),this.g=n},e.applyPatches=function(n,r){var i;for(i=r.length-1;i>=0;i--){var o=r[i];if(o.path.length===0&&o.op==="replace"){n=o.value;break}}i>-1&&(r=r.slice(i+1));var a=wt("Patches").$;return yn(n)?a(n,r):this.produce(n,function(s){return a(s,r)})},t}(),Qe=new FI,Ry=Qe.produce;Qe.produceWithPatches.bind(Qe),Qe.setAutoFreeze.bind(Qe),Qe.setUseProxies.bind(Qe),Qe.applyPatches.bind(Qe),Qe.createDraft.bind(Qe),Qe.finishDraft.bind(Qe);function zI(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function jy(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Uy(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?jy(Object(n),!0).forEach(function(r){zI(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):jy(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Ee(t){return"Minified Redux error #"+t+"; visit https://redux.js.org/Errors?code="+t+" for the full message or use the non-minified dev environment for full errors. "}var Gy=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),Lf=function(){return Math.random().toString(36).substring(7).split("").join(".")},Bs={INIT:"@@redux/INIT"+Lf(),REPLACE:"@@redux/REPLACE"+Lf(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Lf()}};function RI(t){if(typeof t!="object"||t===null)return!1;for(var e=t;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function Hy(t,e,n){var r;if(typeof e=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(Ee(0));if(typeof e=="function"&&typeof n>"u"&&(n=e,e=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(Ee(1));return n(Hy)(t,e)}if(typeof t!="function")throw new Error(Ee(2));var i=t,o=e,a=[],s=a,c=!1;function u(){s===a&&(s=a.slice())}function f(){if(c)throw new Error(Ee(3));return o}function l(m){if(typeof m!="function")throw new Error(Ee(4));if(c)throw new Error(Ee(5));var y=!0;return u(),s.push(m),function(){if(!!y){if(c)throw new Error(Ee(6));y=!1,u();var x=s.indexOf(m);s.splice(x,1),a=null}}}function d(m){if(!RI(m))throw new Error(Ee(7));if(typeof m.type>"u")throw new Error(Ee(8));if(c)throw new Error(Ee(9));try{c=!0,o=i(o,m)}finally{c=!1}for(var y=a=s,g=0;g<y.length;g++){var x=y[g];x()}return m}function h(m){if(typeof m!="function")throw new Error(Ee(10));i=m,d({type:Bs.REPLACE})}function p(){var m,y=l;return m={subscribe:function(x){if(typeof x!="object"||x===null)throw new Error(Ee(11));function A(){x.next&&x.next(f())}A();var C=y(A);return{unsubscribe:C}}},m[Gy]=function(){return this},m}return d({type:Bs.INIT}),r={dispatch:d,subscribe:l,getState:f,replaceReducer:h},r[Gy]=p,r}function jI(t){Object.keys(t).forEach(function(e){var n=t[e],r=n(void 0,{type:Bs.INIT});if(typeof r>"u")throw new Error(Ee(12));if(typeof n(void 0,{type:Bs.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Ee(13))})}function Bf(t){for(var e=Object.keys(t),n={},r=0;r<e.length;r++){var i=e[r];typeof t[i]=="function"&&(n[i]=t[i])}var o=Object.keys(n),a;try{jI(n)}catch(s){a=s}return function(c,u){if(c===void 0&&(c={}),a)throw a;for(var f=!1,l={},d=0;d<o.length;d++){var h=o[d],p=n[h],m=c[h],y=p(m,u);if(typeof y>"u")throw u&&u.type,new Error(Ee(14));l[h]=y,f=f||y!==m}return f=f||o.length!==Object.keys(c).length,f?l:c}}function Os(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.length===0?function(r){return r}:e.length===1?e[0]:e.reduce(function(r,i){return function(){return r(i.apply(void 0,arguments))}})}function UI(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(r){return function(){var i=r.apply(void 0,arguments),o=function(){throw new Error(Ee(15))},a={getState:i.getState,dispatch:function(){return o.apply(void 0,arguments)}},s=e.map(function(c){return c(a)});return o=Os.apply(void 0,s)(i.dispatch),Uy(Uy({},i),{},{dispatch:o})}}}var Ps="NOT_FOUND";function GI(t){var e;return{get:function(r){return e&&t(e.key,r)?e.value:Ps},put:function(r,i){e={key:r,value:i}},getEntries:function(){return e?[e]:[]},clear:function(){e=void 0}}}function HI(t,e){var n=[];function r(s){var c=n.findIndex(function(f){return e(s,f.key)});if(c>-1){var u=n[c];return c>0&&(n.splice(c,1),n.unshift(u)),u.value}return Ps}function i(s,c){r(s)===Ps&&(n.unshift({key:s,value:c}),n.length>t&&n.pop())}function o(){return n}function a(){n=[]}return{get:r,put:i,getEntries:o,clear:a}}var QI=function(e,n){return e===n};function VI(t){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;for(var i=n.length,o=0;o<i;o++)if(!t(n[o],r[o]))return!1;return!0}}function YI(t,e){var n=typeof e=="object"?e:{equalityCheck:e},r=n.equalityCheck,i=r===void 0?QI:r,o=n.maxSize,a=o===void 0?1:o,s=n.resultEqualityCheck,c=VI(i),u=a===1?GI(c):HI(a,c);function f(){var l=u.get(arguments);if(l===Ps){if(l=t.apply(null,arguments),s){var d=u.getEntries(),h=d.find(function(p){return s(p.value,l)});h&&(l=h.value)}u.put(arguments,l)}return l}return f.clearCache=function(){return u.clear()},f}function _I(t){var e=Array.isArray(t[0])?t[0]:t;if(!e.every(function(r){return typeof r=="function"})){var n=e.map(function(r){return typeof r=="function"?"function "+(r.name||"unnamed")+"()":typeof r}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return e}function WI(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var i=function(){for(var a=arguments.length,s=new Array(a),c=0;c<a;c++)s[c]=arguments[c];var u=0,f,l={memoizeOptions:void 0},d=s.pop();if(typeof d=="object"&&(l=d,d=s.pop()),typeof d!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof d+"]");var h=l,p=h.memoizeOptions,m=p===void 0?n:p,y=Array.isArray(m)?m:[m],g=_I(s),x=t.apply(void 0,[function(){return u++,d.apply(null,arguments)}].concat(y)),A=t(function(){for(var C=[],v=g.length,b=0;b<v;b++)C.push(g[b].apply(null,arguments));return f=x.apply(null,C),f});return Object.assign(A,{resultFunc:d,memoizedResultFunc:x,dependencies:g,lastResult:function(){return f},recomputations:function(){return u},resetRecomputations:function(){return u=0}}),A};return i}var XI=WI(YI);function Qy(t){var e=function(r){var i=r.dispatch,o=r.getState;return function(a){return function(s){return typeof s=="function"?s(i,o,t):a(s)}}};return e}var Vy=Qy();Vy.withExtraArgument=Qy;const Yy=Vy;var ZI=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(r[o]=i[o])},t(e,n)};return function(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}();globalThis&&globalThis.__generator;var Fs=globalThis&&globalThis.__spreadArray||function(t,e){for(var n=0,r=e.length,i=t.length;n<r;n++,i++)t[i]=e[n];return t},qI=Object.defineProperty,_y=Object.getOwnPropertySymbols,KI=Object.prototype.hasOwnProperty,JI=Object.prototype.propertyIsEnumerable,Wy=function(t,e,n){return e in t?qI(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},Mo=function(t,e){for(var n in e||(e={}))KI.call(e,n)&&Wy(t,n,e[n]);if(_y)for(var r=0,i=_y(e);r<i.length;r++){var n=i[r];JI.call(e,n)&&Wy(t,n,e[n])}return t},$I=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Os:Os.apply(null,arguments)};function e9(t){if(typeof t!="object"||t===null)return!1;var e=Object.getPrototypeOf(t);if(e===null)return!0;for(var n=e;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return e===n}var t9=function(t){ZI(e,t);function e(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var i=t.apply(this,n)||this;return Object.setPrototypeOf(i,e.prototype),i}return Object.defineProperty(e,Symbol.species,{get:function(){return e},enumerable:!1,configurable:!0}),e.prototype.concat=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return t.prototype.concat.apply(this,n)},e.prototype.prepend=function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return n.length===1&&Array.isArray(n[0])?new(e.bind.apply(e,Fs([void 0],n[0].concat(this)))):new(e.bind.apply(e,Fs([void 0],n.concat(this))))},e}(Array);function Of(t){return Ht(t)?Ry(t,function(){}):t}function n9(t){return typeof t=="boolean"}function r9(){return function(e){return i9(e)}}function i9(t){t===void 0&&(t={});var e=t.thunk,n=e===void 0?!0:e;t.immutableCheck,t.serializableCheck;var r=new t9;return n&&(n9(n)?r.push(Yy):r.push(Yy.withExtraArgument(n.extraArgument))),r}var o9=!0;function a9(t){var e=r9(),n=t||{},r=n.reducer,i=r===void 0?void 0:r,o=n.middleware,a=o===void 0?e():o,s=n.devTools,c=s===void 0?!0:s,u=n.preloadedState,f=u===void 0?void 0:u,l=n.enhancers,d=l===void 0?void 0:l,h;if(typeof i=="function")h=i;else if(e9(i))h=Bf(i);else throw new Error('"reducer" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');var p=a;typeof p=="function"&&(p=p(e));var m=UI.apply(void 0,p),y=Os;c&&(y=$I(Mo({trace:!o9},typeof c=="object"&&c)));var g=[m];Array.isArray(d)?g=Fs([m],d):typeof d=="function"&&(g=d(g));var x=y.apply(void 0,g);return Hy(h,f,x)}function To(t,e){function n(){for(var r=[],i=0;i<arguments.length;i++)r[i]=arguments[i];if(e){var o=e.apply(void 0,r);if(!o)throw new Error("prepareAction did not return an object");return Mo(Mo({type:t,payload:o.payload},"meta"in o&&{meta:o.meta}),"error"in o&&{error:o.error})}return{type:t,payload:r[0]}}return n.toString=function(){return""+t},n.type=t,n.match=function(r){return r.type===t},n}function Xy(t){var e={},n=[],r,i={addCase:function(o,a){var s=typeof o=="string"?o:o.type;if(s in e)throw new Error("addCase cannot be called with two reducers for the same action type");return e[s]=a,i},addMatcher:function(o,a){return n.push({matcher:o,reducer:a}),i},addDefaultCase:function(o){return r=o,i}};return t(i),[e,n,r]}function s9(t){return typeof t=="function"}function c9(t,e,n,r){n===void 0&&(n=[]);var i=typeof e=="function"?Xy(e):[e,n,r],o=i[0],a=i[1],s=i[2],c;if(s9(t))c=function(){return Of(t())};else{var u=Of(t);c=function(){return u}}function f(l,d){l===void 0&&(l=c());var h=Fs([o[d.type]],a.filter(function(p){var m=p.matcher;return m(d)}).map(function(p){var m=p.reducer;return m}));return h.filter(function(p){return!!p}).length===0&&(h=[s]),h.reduce(function(p,m){if(m)if(yn(p)){var y=p,g=m(y,d);return typeof g>"u"?p:g}else{if(Ht(p))return Ry(p,function(x){return m(x,d)});var g=m(p,d);if(typeof g>"u"){if(p===null)return p;throw Error("A case reducer on a non-draftable value must not return undefined")}return g}return p},l)}return f.getInitialState=c,f}function u9(t,e){return t+"/"+e}function Zy(t){var e=t.name;if(!e)throw new Error("`name` is a required option for createSlice");typeof process<"u";var n=typeof t.initialState=="function"?t.initialState:Of(t.initialState),r=t.reducers||{},i=Object.keys(r),o={},a={},s={};i.forEach(function(f){var l=r[f],d=u9(e,f),h,p;"reducer"in l?(h=l.reducer,p=l.prepare):h=l,o[f]=h,a[d]=h,s[f]=p?To(d,p):To(d)});function c(){var f=typeof t.extraReducers=="function"?Xy(t.extraReducers):[t.extraReducers],l=f[0],d=l===void 0?{}:l,h=f[1],p=h===void 0?[]:h,m=f[2],y=m===void 0?void 0:m,g=Mo(Mo({},d),a);return c9(n,g,p,y)}var u;return{name:e,reducer:function(f,l){return u||(u=c()),u(f,l)},actions:s,caseReducers:o,getInitialState:function(){return u||(u=c()),u.getInitialState()}}}var Pf="listenerMiddleware";To(Pf+"/add"),To(Pf+"/removeAll"),To(Pf+"/remove"),LI();function qy(t,e,n,r){if(r&&!n)throw new Error("Custom labels need explicit group order!");const i=ci(t.samples,e),o=n?n.map(c=>[c,i.get(c)]).filter(c=>c[1]):[...i],s=t;s.groups=o.map(([c,u],f)=>({name:""+c,label:r?r[f]:c,samples:u})),delete t.samples}function Ky(t,e,n){const r=le(".3~r"),i=a=>`${n[a].operator=="lt"?"[":"("}${r(n[a].operand)}, ${r(n[a+1].operand)}${n[a+1].operator=="lte"?"]":")"}`,o=Yt(n.length-1).reverse();qy(t,d9(e,n.slice(1,n.length-1)),o,o.map(i))}function l9(t,e,n){Ky(t,e,[{operator:"lt",operand:-1/0},...n,{operator:"lte",operand:1/0}])}function f9(t,e){const n=p9(h9(t.samples,e,[0,.25,.5,.75,1]));n.length==1&&n.push(n[0]),Ky(t,e,n.map((r,i,o)=>({operator:i==o.length-1?"lte":"lt",operand:r})))}function d9(t,e){return r=>{const i=t(r);if(!(!ce(i)||isNaN(i))){for(let o=0;o<e.length;o++)if(e[o].operator=="lt"){if(i<e[o].operand)return o}else if(i<=e[o].operand)return o;return e.length}}}function h9(t,e,n){const r=Vb(t.map(e).filter(i=>ce(i)&&!isNaN(i)));return n.map(i=>ac(r,i))}function p9(t){const e=[t[0]];for(let n=1;n<t.length;n++)t[n]!=t[n-1]&&e.push(t[n]);return e}function m9(t,e){var n=t+"",r=e+"";return n<r?-1:n==r?0:1}var g9=[].forEach;function y9(t,e,n){if(typeof e!="function")throw new TypeError(e+" is not a function");var r,i=[],o=[],a=[];g9.call(t,function(c,u,f){if(r=e(c,u,f),r===void 0)return void a.push(c);if(n===void 0&&typeof r=="symbol")throw new TypeError("Can't convert symbol to string");i.push(u),o[u]=r}),n===void 0&&(n=m9),i.sort(function(c,u){return n(o[c],o[u])});var s=i.map(function(c){return t[c]}).concat(a);return s.length!=t.length&&(s.length=t.length),s}function b9(t,e){const n=i=>i.copy().range(Yt(0,i.domain().length)).unknown(-1);let r;switch(e.type){case"quantitative":r=i=>ce(i)&&!isNaN(i)?-i:-1/0;break;case"ordinal":r=n(e.scale);break;case"nominal":r=i=>i||"";break}return i=>r(t(i))}function v9(t,e){const n=new Set,r=i=>{const o=n.has(i);return n.add(i),o};return t.filter(i=>!r(e(i)))}function A9(t,e,n){const r=new Set,i=o=>(r.size<n&&r.add(o),r.has(o));return t.filter(o=>i(e(o)))}function x9(t,e,n=!1){return y9(t,e,(r,i)=>(n&&([r,i]=[i,r]),r<i?-1:r>i?1:0))}const w9={lt:(t,e)=>t<e,lte:(t,e)=>t<=e,eq:(t,e)=>t==e,gte:(t,e)=>t>=e,gt:(t,e)=>t>e};function C9(t,e,n,r){const i=w9[n];return t.filter(o=>i(e(o),r))}function Jy(t,e,n,r){const i=new Set(r),o=s=>i.has(s),a=n=="remove"?s=>!o(s):o;return t.filter(s=>a(e(s)))}function S9(t,e){const n=r=>r!=null;return t.filter(r=>n(e(r)))}const $y="setSamples",e2="sortBy",t2="retainFirstOfEach",n2="retainFirstNCategories",r2="filterByNominal",i2="filterByQuantitative",o2="removeUndefined",a2="groupByNominal",s2="groupToQuartiles",c2="groupByThresholds",u2="retainMatched",ti="sampleView";function E9(){return{sampleData:void 0,groupMetadata:[],rootGroup:{name:"ROOT",label:"Root",samples:[]}}}function D9(t){const e=(n,r)=>{const i=t(n.attribute).accessor;return o=>i(o,r)};return Zy({name:ti,initialState:E9(),reducers:{[$y]:(n,r)=>{const i=r.payload.samples;if(n.sampleData)throw new Error("Samples have already been set!");if(i.some(a=>a.id===void 0||a.id===null))throw new Error('The sample metadata contains missing sample ids or the "sample" column is missing!');if(new Set(i.map(a=>a.id)).size!=i.length)throw new Error("The sample metadata contains duplicate sample ids!");const o=i.map((a,s)=>({...a,indexNumber:s}));n.sampleData={ids:o.map(a=>a.id),entities:Object.fromEntries(o.map(a=>[a.id,a]))},n.rootGroup={name:"ROOT",label:"Root",samples:n.sampleData.ids}},[e2]:(n,r)=>{lr(n,i=>x9(i,b9(e(r.payload,n),t(r.payload.attribute)),!1))},[t2]:(n,r)=>{lr(n,i=>v9(i,e(r.payload,n)))},[n2]:(n,r)=>{lr(n,i=>A9(i,e(r.payload,n),r.payload.n))},[i2]:(n,r)=>{lr(n,i=>C9(i,e(r.payload,n),r.payload.operator,r.payload.operand))},[r2]:(n,r)=>{lr(n,i=>Jy(i,e(r.payload,n),r.payload.remove?"remove":"retain",r.payload.values))},[o2]:(n,r)=>{lr(n,i=>S9(i,e(r.payload,n)))},[a2]:(n,r)=>{var o;const i=(o=t(r.payload.attribute).scale)==null?void 0:o.domain();Ff(n,a=>qy(a,e(r.payload,n),i)),n.groupMetadata.push({attribute:r.payload.attribute})},[s2]:(n,r)=>{Ff(n,i=>f9(i,e(r.payload,n))),n.groupMetadata.push({attribute:r.payload.attribute})},[c2]:(n,r)=>{Ff(n,i=>l9(i,e(r.payload,n),r.payload.thresholds)),n.groupMetadata.push({attribute:r.payload.attribute})},[u2]:(n,r)=>{const i=e(r.payload,n),o=[];for(const s of zf(n))if(s.samples.length>0){const c=new Set;for(const u of s.samples)c.add(i(u));o.push(c)}const a=[];for(const s of o[0]){let c=!0;for(let u=1;u<o.length&&c;u++)c=o[u].has(s);c&&a.push(s)}lr(n,s=>Jy(s,i,"retain",a))}}})}function lr(t,e){for(const n of zf(t))n.samples=e(n.samples)}function Ff(t,e){for(const n of zf(t))e(n)}function zf(t){return l2(t).map(e=>je(e))}function Rf(t){return t.provenance.present[ti]}function l2(t){const e=[],n=[],r=i=>{if(e.push(i),d2(i))for(const o of i.groups)r(o);else n.push([...e]);e.pop()};return r(t.rootGroup),n}function f2(t){return"samples"in t}function d2(t){return"groups"in t}function*h2(t){if(yield[t],d2(t))for(const e of t.groups)for(const n of h2(e))yield[t,...n]}const M9=le(".4"),p2={lt:"<",lte:"\u2264",eq:"=",gte:"\u2265",gt:">"};function m2(t){return t.length>1?D`{${t.map((e,n)=>D`${n>0?", ":""}<strong>${e}</strong>`)}}`:D`<strong>${t[0]}</strong>`}function T9(t,e){if(!t.type.startsWith(ti))return;const n=t.payload,r=n.attribute&&e(n.attribute),i=r==null?void 0:r.name,o=(r==null?void 0:r.title)||D`<em>${i}</em>`,a={attributeName:i};switch(t.type.substring(ti.length+1)){case $y:return{...a,title:"The initial state",icon:g5};case e2:return{...a,title:"Sort by",provenanceTitle:D`Sort by ${o}`,icon:u5};case t2:return{...a,title:D`Retain the first sample of each <em>${i}</em>`,provenanceTitle:D`Retain the first sample of each ${o}`,icon:t1};case n2:return{...a,title:D`Retain first <strong>n</strong> categories of <em>${i}</em>...`,provenanceTitle:D`Retain first <strong>${n.n}</strong> categories of ${o}`,icon:t1};case r2:{const c=n.values,u=f=>D`${n.remove?"Remove":"Retain"} samples having ${c[0]===void 0||c[0]===null?D`undefined ${f}`:D`${f} ${c.length>1?"in":D`<span class="operator">=</span>`} ${m2(c)}`}`;return{...a,title:u(D`<em>${i}</em>`),provenanceTitle:u(o),icon:n.remove?Ol:er}}case i2:{const c=u=>D`Retain samples having ${u} <span class="operator">${p2[n.operator]}</span> <strong>${M9(n.operand)}</strong>`;return{...a,title:c(D`<em>${i}</em>`),provenanceTitle:c(o),icon:er}}case o2:return{...a,title:"Remove samples having missing attribute",provenanceTitle:D`Remove samples having missing ${o}`,icon:Ol};case a2:return{...a,title:"Group by",provenanceTitle:D`Group by ${o}`,icon:po};case s2:return{...a,title:"Group by quartiles",provenanceTitle:D`Group by quartiles on ${o}`,icon:po};case c2:return{...a,title:"Group by thresholds",provenanceTitle:D`Group by thresholds {${m2(n.thresholds.map(c=>`${p2[c.operator]} ${c.operand}`))}} on ${o}`,icon:po};case u2:return{...a,title:D`Retain group-wise matched samples using <em>${i}</em>`,provenanceTitle:D`Retain group-wise matched samples using ${o}`,icon:er};default:return{...a,title:JSON.stringify(t),icon:$g}}}class I9{constructor(){this.attributeInfoSourcesByType={}}addAttributeInfoSource(e,n){this.attributeInfoSourcesByType[e]=n}getAttributeInfo(e){const n=this.attributeInfoSourcesByType[e.type];if(!n)throw new Error("Cannot find attribute info source for: "+JSON.stringify(e));const r=n(e);if(r)return r;throw new Error("Unknown attribute: "+JSON.stringify(e))}}function zs(t,e,n){let r=n&&t(n);return i=>{const o=t(i);o!==r&&(e(o,r),r=o)}}function g2(t,{viewHeight:e=0,sampleHeight:n=0,groupSpacing:r=5,summaryHeight:i=0}){if(!e&&!n)throw new Error("viewHeight or sampleHeight must be provided!");const o=d=>je(d),a=t.map(d=>({path:d,sampleGroup:o(d),samples:o(d).samples})).filter(d=>d.samples.length),s=n?d=>({px:d.length*n+i,grow:0}):d=>({px:i,grow:d.length}),c=[];co(a.map(d=>s(d.samples)),e,{spacing:r}).forEach((d,h)=>{c.push({key:a[h].path,locSize:d})});const u=[];for(const[d,h]of a.entries()){const p={grow:1},m=h.samples;co(m.map(y=>p),Math.max(0,c[d].locSize.size-i),{offset:c[d].locSize.location+i}).forEach((y,g)=>{const{size:x,location:A}=y,C=x*.1*fg(15,22,x);y.location=A+C,y.size=x-2*C,u.push({key:m[g],locSize:y})})}function*f(){const d=[];for(const h of c){const p=h.key,m=je(p);for(;d.length<=p.length&&d.length&&p[d.length-1]!=d[d.length-1].group;)yield d.pop();for(let y=0;y<d.length;y++){const g=d[y];g.locSize.size=h.locSize.location-g.locSize.location+h.locSize.size}for(let y=d.length;y<p.length;y++)d.push({group:p[y],locSize:{...h.locSize},depth:d.length,n:0});for(const y of d)y.n+=m.samples.length}for(;d.length;)yield d.pop()}const l=[...f()].sort((d,h)=>d.depth-h.depth).map((d,h)=>({key:{index:h,group:d.group,depth:d.depth,n:d.n,attributeLabel:void 0},locSize:d.locSize}));return{samples:u,summaries:c,groups:l}}function k9(t,e){return e.find(n=>Vm(n.locSize,t))}const y2="VALUE_AT_LOCUS",b2=10;class jf extends Kn{constructor(n,r,i,o,a){var f;super(n,r,i,o);De(this,Qs);this.provenance=a,this.spec=n,this.stickySummaries=(f=n.stickySummaries)!=null?f:!0,this.compositeAttributeInfoSource=new I9,this.child=r.createView(n.spec,this,"sample-facets"),this.summaryViews=new Hr({vconcat:[]},r,this,"sampleSummaries"),this.child.visit(l=>{l instanceof ye&&this.summaryViews.setChildren(l.sampleAggregateViews)}),this.childCoords=dn.ZERO,this.facetTexture=void 0,this.facetTextureData=void 0,this.peripheryView=new Hr({title:"Sidebar",resolve:{scale:{default:"independent"},axis:{default:"independent"}},hconcat:[],spacing:0},r,this,"sample-sidebar"),this.peripheryCoords=dn.ZERO,this.groupPanel=new DI(this),this.attributePanel=new Ey(this),this.peripheryView.setChildren([this.groupPanel,this.attributePanel]),this.child.addInteractionEventListener("contextmenu",this._handleContextMenu.bind(this)),this.provenance.storeHelper.subscribe(zs(l=>Rf(l).rootGroup,l=>{this._locations=void 0,this.groupPanel.updateGroups(),this._peekState=0,this.context.requestLayoutReflow(),this.context.animator.requestRender()})),this.provenance.storeHelper.subscribe(zs(l=>Rf(l).sampleData,l=>{const d=l&&Object.values(l.entities);!d||(this.attributePanel._setSamples(d),this.facetTextureData=new Float32Array(Math.ceil(d.length*2/4)*4),this.groupPanel.updateGroups())})),this.compositeAttributeInfoSource.addAttributeInfoSource(y2,l=>{var C,v;const d=l.specifier,h=this.findDescendantByName(d.view);let p;if(ce(d.locus))p=d.locus;else{const b=this.getScaleResolution("x").getGenome();if(b)p=b.toContinuous(d.locus.chrom,d.locus.pos);else throw new Error("Encountered a complex locus but no genome is available!")}const m=b=>{var w;return(w=h.mark.findDatumAt(b,p))==null?void 0:w[d.field]},[y,g]=Object.entries(h.getEncoding()).find(([b,w])=>"field"in w&&w.field==d.field),x=y?(C=h.getScaleResolution(y))==null?void 0:C.getScale():void 0;return{name:d.field,attribute:l,title:D`<em class="attribute">${d.field}</em> <span class="viewTitle">(${(v=h.getTitleText())!=null?v:h.name})</span> at <span class="locus">${v2(d.locus)}</span>`,accessor:m,type:"type"in g?g.type:void 0,scale:x}}),this._addBroadcastHandler("dataLoaded",()=>this.extractSamplesFromData()),this._addBroadcastHandler("layout",()=>{this._locations=void 0}),this._scrollOffset=0,this._scrollableHeight=0,this._peekState=0,this._lastMouseY=-1,this.addInteractionEventListener("mousemove",(l,d)=>{this._lastMouseY=d.point.y-this.childCoords.y}),this.addInteractionEventListener("wheel",(l,d)=>{const h=d.uiEvent;this._peekState&&!h.ctrlKey&&(this._scrollOffset=cl(this._scrollOffset+h.deltaY,0,this._scrollableHeight-this.childCoords.height),this.groupPanel.updateRange(),this.context.animator.requestRender(),d.uiEvent={type:h.type,deltaX:h.deltaX,preventDefault:h.preventDefault.bind(h)})},!0),r.addKeyboardListener("keydown",l=>{l.code=="KeyE"&&!l.repeat&&this._togglePeek()}),r.addKeyboardListener("keyup",l=>{l.code=="KeyE"&&this._togglePeek(!1)});const s=l=>this.compositeAttributeInfoSource.getAttributeInfo(l),c=D9(s);this.provenance.addReducer(c.name,c.reducer),this.provenance.addActionInfoSource(l=>T9(l,s)),this.actions=c.actions;const u=XI(l=>{var d;return(d=l.sampleData)==null?void 0:d.entities},l=>l&&Object.values(l));this.getSamples=()=>u(this.sampleHierarchy),this.spec.samples.data&&this.loadSamples()}getOverhang(){let n=this.peripheryView.isVisible()?this.peripheryView.getSize().width.px:0;return n&&(n+=b2),new Je(0,0,0,n)}*[Symbol.iterator](){yield this.child,yield this.peripheryView}replaceChild(n,r){const i=r;if(n===this.child)this.child=i;else throw new Error("Not my child!")}loadSamples(){if(!this.spec.samples.data)throw new Error("SampleView has no explicit sample metadata specified! Cannot load anything.");const{dataSource:n,collector:r}=E8(kg(this.spec.samples.data,this.getBaseUrl()),new N9);r.observers.push(o=>{const a=o.getData();this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:a}))});const i="samples "+this.getPathString();this.context.dataFlow.addDataSource(n,i)}extractSamplesFromData(){if(this.getSamples())return;const n=this.getScaleResolution("sample");if(n){const r=n.getDataDomain().map((i,o)=>({id:i,displayName:i,indexNumber:o,attributes:[]}));this.provenance.storeHelper.dispatch(this.actions.setSamples({samples:r}))}else throw new Error("No explicit sample data nor sample channels found!")}get sampleHierarchy(){return this.provenance.getPresentState()[ti]}getLocations(){var n,r,i,o;if(!this._locations){if(!((n=this.childCoords)!=null&&n.height))return;const a=this.sampleHierarchy,s=l2(a),c=[null,...a.groupMetadata],u=(o=((r=this.summaryViews)==null?void 0:r.isVisible())&&((i=this.summaryViews)==null?void 0:i.getSize().height.px))!=null?o:0,f=g2(s,{viewHeight:this.childCoords.height,groupSpacing:5,summaryHeight:u}),l=g2(s,{sampleHeight:35,groupSpacing:15,summaryHeight:u}),d=()=>-this._scrollOffset,h=()=>this._peekState;this._scrollableLocations=l,this._scrollableHeight=l.summaries.map(g=>g.locSize.location+g.locSize.size).reduce((g,x)=>Math.max(g,x),0);const p=(g,x)=>{const A=[];for(let C=0;C<g.length;C++){const v=g[C].key;A.push({key:v,locSize:ND(g[C].locSize,LD(x[C].locSize,d),h)})}return A},m=p(f.groups,l.groups),y=document.createElement("div");m.forEach(g=>{if(g.key.depth==0)return;const x=c[g.key.depth].attribute,A=this.compositeAttributeInfoSource.getAttributeInfo(x).title;A?ee(A)?g.key.attributeLabel=A:(Be(A,y),g.key.attributeLabel=y.textContent.replace(/\s+/g," ").trim()):g.key.attributeLabel="unknown"}),this._locations={samples:p(f.samples,l.samples),summaries:p(f.summaries,l.summaries),groups:m}}return this._locations}getSampleAt(n){const r=k9(n,this.getLocations().samples);if(r)return this.sampleHierarchy.sampleData.entities[r.key]}getSummaryAt(n){const r=this.getLocations().summaries,i=r.findIndex(o=>Vm(o.locSize,n));return i>=0?{index:i,location:r[i]}:void 0}_clipBySummary(n){if(this.stickySummaries&&this.summaryViews.childCount){const r=this.summaryViews.getSize().height.px;return n.modify({y:()=>n.y+r,height:()=>n.height-r})}}renderChild(n,r,i={}){const o=1/r.height,a=()=>o,s=this._clipBySummary(r);for(const c of this.getLocations().samples)this.child.render(n,r,{...i,sampleFacetRenderingOptions:{locSize:BD(c.locSize,a)},facetId:[c.key],clipRect:s})}renderSummaries(n,r,i={}){i={...i,clipRect:r};const o=this.summaryViews.getSize().height.px;for(const[a,s]of this.getLocations().summaries.entries()){const c=()=>{const u=s.locSize.location;let f=r.y+u;return this.stickySummaries?f+cl(-u,0,s.locSize.size-o):f};this.summaryViews.render(n,r.modify({y:c,height:o}),{...i,facetId:[a]})}}render(n,r,i={}){if(!this.isVisible())return;n.pushView(this,r);const o=co([this.peripheryView.isVisible()?this.peripheryView.getSize().width:{px:0},{grow:1}],r.width,{spacing:b2}),a=s=>r.modify({x:s.location+r.x,width:s.size});this.peripheryCoords=a(o[0]),this.childCoords=a(o[1]),this.peripheryView.render(n,this.peripheryCoords,i),this.renderChild(n,this.childCoords,i),this.renderSummaries(n,this.childCoords,i),n.popView(this)}onBeforeRender(){this._updateFacetTexture()}_updateFacetTexture(){var o;const n=this.facetTextureData;n.fill(0);const r=(o=this.sampleHierarchy.sampleData)==null?void 0:o.entities;if(r){const a=this.getLocations().samples,s=this.childCoords.height;for(const c of a){const u=r[c.key].indexNumber;n[u*2+0]=c.locSize.location/s,n[u*2+1]=c.locSize.size/s}}const i=this.context.glHelper.gl;this.facetTexture=ao(i,{internalFormat:i.RG32F,format:i.RG,height:1},n,this.facetTexture)}_togglePeek(n){var i;if(this._peekState>0&&this._peekState<1||n!==void 0&&n==!!this._peekState)return;const r={requestAnimationFrame:o=>this.context.animator.requestTransition(o),onUpdate:o=>{this._peekState=Math.pow(o,2),this.groupPanel.updateRange(),this.context.animator.requestRender()},from:this._peekState};if(this._peekState==0){const o=this._lastMouseY,a=(i=this.getSampleAt(o))==null?void 0:i.id;let s;if(a)s=(u=>u.location+u.size/2)(this._scrollableLocations.samples.find(u=>u.key==a).locSize);else{const c=this.getSummaryAt(o);c&&(s=this._scrollableLocations.summaries[c.index].locSize.location-(c.location.locSize.location-o))}s?this._scrollOffset=s-o:this._scrollOffset=(this._scrollableHeight-this.childCoords.height)/2,this._scrollableHeight>this.childCoords.height?ss({...r,to:1,duration:500,easingFunction:gM}):ss({...r,from:0,to:1,duration:300,easingFunction:u=>(1-Math.pow(u*2-1,2))*.5})}else ss({...r,to:0,duration:400,easingFunction:pM})}_handleContextMenu(n,r){var l;const i=r.uiEvent,o=this.childCoords.normalizePoint(r.point.x,r.point.y).x,a=this.getScaleResolution("x").invertToComplex(o),s=zg([...this.getAncestors()].at(-1)),c=k8(this.child).filter(d=>!["sample","x","x2"].includes(d.channel)).filter(d=>["rect","rule"].includes(d.view.getMarkType())).filter(d=>s.has(d.view.name));let u=[{label:`Locus: ${v2(a)}`,type:"header"},{type:"divider"}],f="";for(const[d,h]of c.entries()){const p={view:h.view.name,field:h.field,locus:a},m=this.compositeAttributeInfoSource.getAttributeInfo({type:y2,specifier:p}),y=(l=h.view.getTitleText())!=null?l:h.view.spec.name;y!=f&&(d>0&&u.push({type:"divider"}),u.push({label:y,type:"header"}),f=y),u.push({label:h.field,submenu:lf(null,m,void 0,this)})}Cy({items:u},i)}getSampleFacetTexture(){return this.facetTexture}propagateInteractionEvent(n){this.handleInteractionEvent(void 0,n,!0),!n.stopped&&(this.childCoords.containsPoint(n.point.x,n.point.y)&&(this.child.propagateInteractionEvent(n),xg(n,this.childCoords,r=>be(this,Qs,J2).call(this,this.childCoords,this.child,r),this.context.getCurrentHover())),this.peripheryCoords.containsPoint(n.point.x,n.point.y)&&this.peripheryView.propagateInteractionEvent(n),!n.stopped&&this.handleInteractionEvent(void 0,n,!1))}getDefaultResolution(n,r){switch(n){case"x":case"sample":return"shared";default:return"independent"}}}Qs=new WeakSet,J2=function(n,r,i){const o=this.child.getScaleResolution("x");if(!o||!o.isZoomable())return;const a=n.normalizePoint(i.x,i.y),s=n.normalizePoint(i.x+i.xDelta,i.y+i.yDelta);o.zoom(2**i.zDelta,a.x,s.x-a.x),this.context.animator.requestRender()};function v2(t){return!ce(t)&&"chrom"in t?aM(t):""+t}class N9 extends se{constructor(){super(),this.reset()}reset(){this._index=0}handle(e){this._propagate({id:e.sample,displayName:e.displayName||e.sample,indexNumber:this._index++,attributes:L9(e)})}}function L9(t){const e=Object.assign({},t);return delete e.sample,delete e.displayName,e}function B9(t){return"samples"in t&&ze(t.samples)&&"spec"in t&&ze(t.spec)}const O9=(t,e)=>e.some(n=>t instanceof n);let A2,x2;function P9(){return A2||(A2=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function F9(){return x2||(x2=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const w2=new WeakMap,Uf=new WeakMap,C2=new WeakMap,Gf=new WeakMap,Hf=new WeakMap;function z9(t){const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("success",o),t.removeEventListener("error",a)},o=()=>{n(vn(t.result)),i()},a=()=>{r(t.error),i()};t.addEventListener("success",o),t.addEventListener("error",a)});return e.then(n=>{n instanceof IDBCursor&&w2.set(n,t)}).catch(()=>{}),Hf.set(e,t),e}function R9(t){if(Uf.has(t))return;const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("complete",o),t.removeEventListener("error",a),t.removeEventListener("abort",a)},o=()=>{n(),i()},a=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",o),t.addEventListener("error",a),t.addEventListener("abort",a)});Uf.set(t,e)}let Qf={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return Uf.get(t);if(e==="objectStoreNames")return t.objectStoreNames||C2.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return vn(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function j9(t){Qf=t(Qf)}function U9(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){const r=t.call(Vf(this),e,...n);return C2.set(r,e.sort?e.sort():[e]),vn(r)}:F9().includes(t)?function(...e){return t.apply(Vf(this),e),vn(w2.get(this))}:function(...e){return vn(t.apply(Vf(this),e))}}function G9(t){return typeof t=="function"?U9(t):(t instanceof IDBTransaction&&R9(t),O9(t,P9())?new Proxy(t,Qf):t)}function vn(t){if(t instanceof IDBRequest)return z9(t);if(Gf.has(t))return Gf.get(t);const e=G9(t);return e!==t&&(Gf.set(t,e),Hf.set(e,t)),e}const Vf=t=>Hf.get(t);function H9(t,e,{blocked:n,upgrade:r,blocking:i,terminated:o}={}){const a=indexedDB.open(t,e),s=vn(a);return r&&a.addEventListener("upgradeneeded",c=>{r(vn(a.result),c.oldVersion,c.newVersion,vn(a.transaction))}),n&&a.addEventListener("blocked",()=>n()),s.then(c=>{o&&c.addEventListener("close",()=>o()),i&&c.addEventListener("versionchange",()=>i())}).catch(()=>{}),s}const Q9=["get","getKey","getAll","getAllKeys","count"],V9=["put","add","delete","clear"],Yf=new Map;function S2(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(Yf.get(e))return Yf.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=V9.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||Q9.includes(n)))return;const o=async function(a,...s){const c=this.transaction(a,i?"readwrite":"readonly");let u=c.store;return r&&(u=u.index(s.shift())),(await Promise.all([u[n](...s),i&&c.done]))[0]};return Yf.set(e,o),o}j9(t=>({...t,get:(e,n,r)=>S2(e,n)||t.get(e,n,r),has:(e,n)=>!!S2(e,n)||t.has(e,n)}));class E2{isReadonly(){return!0}async put(e,n){this._checkReadonly()}async delete(e){this._checkReadonly()}async getNames(){return[]}async get(e){}_checkReadonly(){if(this.isReadonly())throw new Error("This bookmark")}}const Io="bookmarks";class Y9 extends E2{constructor(e){super(),this.specId=e,this._db=void 0}async _getDB(){if(!this._db){const e=`GenomeSpy: ${this.specId}`;this._db=H9(e,1,{upgrade(n,r,i,o){n.createObjectStore(Io,{keyPath:"name"})},blocked(){},blocking(){},terminated(){}})}return this._db}isReadonly(){return!1}async put(e,n){const i=(await this._getDB()).transaction(Io,"readwrite");try{n?(await i.store.delete(n),await i.store.put(e)):await i.store.put(e),await i.done}catch(o){throw i.abort(),o}}async delete(e){(await this._getDB()).delete(Io,e)}async getNames(){return(await this._getDB()).getAllKeys(Io)}async get(e){return(await this._getDB()).get(Io,e)}}/**
2146
2139
  * @license
2147
2140
  * Copyright 2020 Google LLC
2148
2141
  * SPDX-License-Identifier: BSD-3-Clause
2149
- */const mN=t=>t===null||typeof t!="object"&&typeof t!="function",Uv=t=>t.strings===void 0,gN={},yN=(t,e=gN)=>t._$AH=e;/**
2142
+ */const _9=t=>t===null||typeof t!="object"&&typeof t!="function",D2=t=>t.strings===void 0,W9={},X9=(t,e=W9)=>t._$AH=e;/**
2150
2143
  * @license
2151
2144
  * Copyright 2017 Google LLC
2152
2145
  * SPDX-License-Identifier: BSD-3-Clause
2153
- */const Lo=(t,e)=>{var n,r;const i=t._$AN;if(i===void 0)return!1;for(const o of i)(r=(n=o)._$AO)===null||r===void 0||r.call(n,e,!1),Lo(o,e);return!0},js=t=>{let e,n;do{if((e=t._$AM)===void 0)break;n=e._$AN,n.delete(t),t=e}while((n==null?void 0:n.size)===0)},Gv=t=>{for(let e;e=t._$AM;t=e){let n=e._$AN;if(n===void 0)e._$AN=n=new Set;else if(n.has(t))break;n.add(t),AN(e)}};function vN(t){this._$AN!==void 0?(js(this),this._$AM=t,Gv(this)):this._$AM=t}function bN(t,e=!1,n=0){const r=this._$AH,i=this._$AN;if(i!==void 0&&i.size!==0)if(e)if(Array.isArray(r))for(let o=n;o<r.length;o++)Lo(r[o],!1),js(r[o]);else r!=null&&(Lo(r,!1),js(r));else Lo(this,t)}const AN=t=>{var e,n,r,i;t.type==Bt.CHILD&&((e=(r=t)._$AP)!==null&&e!==void 0||(r._$AP=bN),(n=(i=t)._$AQ)!==null&&n!==void 0||(i._$AQ=vN))};class Hv extends go{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,n,r){super._$AT(e,n,r),Gv(this),this.isConnected=e._$AU}_$AO(e,n=!0){var r,i;e!==this.isConnected&&(this.isConnected=e,e?(r=this.reconnected)===null||r===void 0||r.call(this):(i=this.disconnected)===null||i===void 0||i.call(this)),n&&(Lo(this,e),js(this))}setValue(e){if(Uv(this._$Ct))this._$Ct._$AI(e,this);else{const n=[...this._$Ct._$AH];n[this._$Ci]=e,this._$Ct._$AI(n,this,0)}}disconnected(){}reconnected(){}}/**
2146
+ */const ko=(t,e)=>{var n,r;const i=t._$AN;if(i===void 0)return!1;for(const o of i)(r=(n=o)._$AO)===null||r===void 0||r.call(n,e,!1),ko(o,e);return!0},Rs=t=>{let e,n;do{if((e=t._$AM)===void 0)break;n=e._$AN,n.delete(t),t=e}while((n==null?void 0:n.size)===0)},M2=t=>{for(let e;e=t._$AM;t=e){let n=e._$AN;if(n===void 0)e._$AN=n=new Set;else if(n.has(t))break;n.add(t),K9(e)}};function Z9(t){this._$AN!==void 0?(Rs(this),this._$AM=t,M2(this)):this._$AM=t}function q9(t,e=!1,n=0){const r=this._$AH,i=this._$AN;if(i!==void 0&&i.size!==0)if(e)if(Array.isArray(r))for(let o=n;o<r.length;o++)ko(r[o],!1),Rs(r[o]);else r!=null&&(ko(r,!1),Rs(r));else ko(this,t)}const K9=t=>{var e,n,r,i;t.type==Ot.CHILD&&((e=(r=t)._$AP)!==null&&e!==void 0||(r._$AP=q9),(n=(i=t)._$AQ)!==null&&n!==void 0||(i._$AQ=Z9))};class T2 extends ho{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,n,r){super._$AT(e,n,r),M2(this),this.isConnected=e._$AU}_$AO(e,n=!0){var r,i;e!==this.isConnected&&(this.isConnected=e,e?(r=this.reconnected)===null||r===void 0||r.call(this):(i=this.disconnected)===null||i===void 0||i.call(this)),n&&(ko(this,e),Rs(this))}setValue(e){if(D2(this._$Ct))this._$Ct._$AI(e,this);else{const n=[...this._$Ct._$AH];n[this._$Ci]=e,this._$Ct._$AI(n,this,0)}}disconnected(){}reconnected(){}}/**
2154
2147
  * @license
2155
2148
  * Copyright 2020 Google LLC
2156
2149
  * SPDX-License-Identifier: BSD-3-Clause
2157
- */const Qv=()=>new wN;class wN{}const Kf=new WeakMap,Vv=Wr(class extends Hv{render(t){return R}update(t,[e]){var n;const r=e!==this.U;return r&&this.U!==void 0&&this.ot(void 0),(r||this.rt!==this.lt)&&(this.U=e,this.ht=(n=t.options)===null||n===void 0?void 0:n.host,this.ot(this.lt=t.element)),R}ot(t){var e;if(typeof this.U=="function"){const n=(e=this.ht)!==null&&e!==void 0?e:globalThis;let r=Kf.get(n);r===void 0&&(r=new WeakMap,Kf.set(n,r)),r.get(this.U)!==void 0&&this.U.call(this.ht,void 0),r.set(this.U,t),t!==void 0&&this.U.call(this.ht,t)}else this.U.value=t}get rt(){var t,e,n;return typeof this.U=="function"?(e=Kf.get((t=this.ht)!==null&&t!==void 0?t:globalThis))===null||e===void 0?void 0:e.get(this.U):(n=this.U)===null||n===void 0?void 0:n.value}disconnected(){this.rt===this.lt&&this.ot(void 0)}reconnected(){this.ot(this.lt)}});/**
2150
+ */const I2=()=>new J9;class J9{}const _f=new WeakMap,k2=Yr(class extends T2{render(t){return R}update(t,[e]){var n;const r=e!==this.U;return r&&this.U!==void 0&&this.ot(void 0),(r||this.rt!==this.lt)&&(this.U=e,this.ht=(n=t.options)===null||n===void 0?void 0:n.host,this.ot(this.lt=t.element)),R}ot(t){var e;if(typeof this.U=="function"){const n=(e=this.ht)!==null&&e!==void 0?e:globalThis;let r=_f.get(n);r===void 0&&(r=new WeakMap,_f.set(n,r)),r.get(this.U)!==void 0&&this.U.call(this.ht,void 0),r.set(this.U,t),t!==void 0&&this.U.call(this.ht,t)}else this.U.value=t}get rt(){var t,e,n;return typeof this.U=="function"?(e=_f.get((t=this.ht)!==null&&t!==void 0?t:globalThis))===null||e===void 0?void 0:e.get(this.U):(n=this.U)===null||n===void 0?void 0:n.value}disconnected(){this.rt===this.lt&&this.ot(void 0)}reconnected(){this.ot(this.lt)}});/**
2158
2151
  * @license
2159
2152
  * Copyright 2018 Google LLC
2160
2153
  * SPDX-License-Identifier: BSD-3-Clause
2161
- */const xN={},CN=Wr(class extends go{constructor(){super(...arguments),this.nt=xN}render(t,e){return e()}update(t,[e,n]){if(Array.isArray(e)){if(Array.isArray(this.nt)&&this.nt.length===e.length&&e.every((r,i)=>r===this.nt[i]))return xe}else if(this.nt===e)return xe;return this.nt=Array.isArray(e)?Array.from(e):e,this.render(e,n)}});class EN extends Ot{constructor(){super(),this.inputRef=Qv(),this.genomeSpy=void 0,this.getDefaultValue=()=>"",this._keyListener=this._onKeyDown.bind(this),this._documentClickListener=e=>{var n;e.target!==this._inputField&&((n=this._inputField)==null||n.blur())},this._focused=!1}get _inputField(){return this.inputRef.value}static get properties(){return{genomeSpy:{type:Object}}}connectedCallback(){super.connectedCallback(),this._initializeGenome(),document.addEventListener("keydown",this._keyListener),document.addEventListener("click",this._documentClickListener)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("keydown",this._keyListener),document.removeEventListener("click",this._documentClickListener)}createRenderRoot(){return this}_onKeyDown(e){switch(e.code){case"KeyF":e.metaKey||e.altKey||e.ctrlKey||(e.preventDefault(),this.inputRef.value.focus());break}}_initializeGenome(){const e=Yv(this.genomeSpy.viewRoot);e&&(this._genomeResolution=e,this._genome=this.genomeSpy.genomeStore.getGenome(),this.getDefaultValue=()=>this._genome.formatInterval(e.getDomain()),e.addEventListener("domain",ls(()=>this.requestUpdate(),60,!1)))}async searchViews(e){var r,i;const n=new Intl.Collator("en",{usage:"search",sensitivity:"base"});for(const o of this.genomeSpy.getSearchableViews()){const a=o.getAccessor("search"),s=o.getAccessor("x"),c=o.getAccessor("x2"),u=o.getScaleResolution("x");if(!(!s||!c||!(u!=null&&u.isZoomable()))){for(const f of(i=(r=o.getCollector())==null?void 0:r.getData())!=null?i:[])if(n.compare(a(f),e)===0){const l=Xs([s(f),c(f)],null,1.2);return await u.zoomTo(l),!0}}}return!1}async search(e){await(async()=>{if(this._genomeResolution&&this._genome){const r=this._genome.parseInterval(e);if(r){this._genomeResolution.zoomTo(r);return}if(await this.searchViews(e))return;this.genomeSpy.viewRoot.visit(i=>{i instanceof Ny&&i.handleVerboseCommand(e)})}})(),this._inputField.value=this.getDefaultValue(),this.requestUpdate()}_onSearchHelpClicked(e){const n=e.target;n.tagName=="LI"&&this._doExampleSearch(n.innerText)}_onSearchFocused(e){const n=e.target;switch(e.type){case"focus":this._focused=!0,n.select();break;case"blur":this._focused=!1;break}}_onSearchKeyDown(e){const n=e.target;e.code=="Enter"?(e.preventDefault(),this.search(n.value).then(()=>{n.focus(),n.select()}).catch(r=>{console.log(r),alert(r)})):e.code=="Escape"?n.blur():e.stopPropagation()}_doExampleSearch(e){SN(e,this._inputField).then(()=>{this._inputField.blur(),this.search(e)})}_getSearchHelp(){var n,r;const e=[];e.push(D`<p>Focus to a specific range. Examples:</p><ul><li>chr8</li><li>chr8:21,445,873</li><li>chr8:21,445,873-24,623,697</li><li>chr4:166,014,727-chr15:23,731,397</li></ul>`);for(const i of((n=this.genomeSpy)==null?void 0:n.getSearchableViews())||[]){const o=(r=i.getTitleText())!=null?r:i.spec.name,a=i.getAccessor("search"),s=a.fields.join(", "),c=Xm(3,i.getCollector().getData(),a);e.push(D`<p>Search <em>${o}</em> (${s}). Examples:</p><ul>${c.map(u=>D`<li>${u}</li>`)}</ul>`)}return D`<div class="search-help" @click="${this._onSearchHelpClicked}">${e}</div>`}updated(e){this._focused&&this._inputField.select()}render(){return D`<div class="search"><input type="text" class="search-input" .value="${this.getDefaultValue()}" @mousedown="${e=>{this._focused||(this._inputField.focus(),e.preventDefault(),e.stopPropagation())}}" @keydown="${this._onSearchKeyDown.bind(this)}" @focus="${this._onSearchFocused}" @blur="${this._onSearchFocused}" ${Vv(this.inputRef)}> ${CN([123],()=>this._getSearchHelp())}</div>`}}customElements.define("genome-spy-search-field",EN);function SN(t,e){return new Promise(n=>{let r=0;const i=700/t.length+30;function o(){e.value=t.substring(0,r),r>=t.length?setTimeout(n,500):(r++,setTimeout(o,Math.random()*i*2))}o()})}function Yv(t){let e;return t.visit(n=>{for(const r of["x","y"]){const i=n.resolutions.scale[r];if(i&&i.type=="locus"&&i.isZoomable())return e=i,Kn}}),e}const _v="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+";/**
2154
+ */const $9={},ek=Yr(class extends ho{constructor(){super(...arguments),this.nt=$9}render(t,e){return e()}update(t,[e,n]){if(Array.isArray(e)){if(Array.isArray(this.nt)&&this.nt.length===e.length&&e.every((r,i)=>r===this.nt[i]))return xe}else if(this.nt===e)return xe;return this.nt=Array.isArray(e)?Array.from(e):e,this.render(e,n)}});class tk extends Bt{constructor(){super(),this.inputRef=I2(),this.genomeSpy=void 0,this.getDefaultValue=()=>"",this._keyListener=this._onKeyDown.bind(this),this._documentClickListener=e=>{var n;e.target!==this._inputField&&((n=this._inputField)==null||n.blur())},this._focused=!1}get _inputField(){return this.inputRef.value}static get properties(){return{genomeSpy:{type:Object}}}connectedCallback(){super.connectedCallback(),this._initializeGenome(),document.addEventListener("keydown",this._keyListener),document.addEventListener("click",this._documentClickListener)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("keydown",this._keyListener),document.removeEventListener("click",this._documentClickListener)}createRenderRoot(){return this}_onKeyDown(e){switch(e.code){case"KeyF":e.metaKey||e.altKey||e.ctrlKey||(e.preventDefault(),this.inputRef.value.focus());break}}_initializeGenome(){const e=N2(this.genomeSpy.viewRoot);e&&(this._genomeResolution=e,this._genome=this.genomeSpy.genomeStore.getGenome(),this.getDefaultValue=()=>this._genome.formatInterval(e.getDomain()),e.addEventListener("domain",cs(()=>this.requestUpdate(),60,!1)))}async searchViews(e){var r,i;const n=new Intl.Collator("en",{usage:"search",sensitivity:"base"});for(const o of this.genomeSpy.getSearchableViews()){const a=o.getAccessor("search"),s=o.getAccessor("x"),c=o.getAccessor("x2"),u=o.getScaleResolution("x");if(!(!s||!c||!(u!=null&&u.isZoomable()))){for(const f of(i=(r=o.getCollector())==null?void 0:r.getData())!=null?i:[])if(n.compare(a(f),e)===0){const l=Ws([s(f),c(f)],null,1.2);return await u.zoomTo(l),!0}}}return!1}async search(e){await(async()=>{if(this._genomeResolution&&this._genome){const r=this._genome.parseInterval(e);if(r){this._genomeResolution.zoomTo(r);return}if(await this.searchViews(e))return;this.genomeSpy.viewRoot.visit(i=>{i instanceof Ey&&i.handleVerboseCommand(e)})}})(),this._inputField.value=this.getDefaultValue(),this.requestUpdate()}_onSearchHelpClicked(e){const n=e.target;n.tagName=="LI"&&this._doExampleSearch(n.innerText)}_onSearchFocused(e){const n=e.target;switch(e.type){case"focus":this._focused=!0,n.select();break;case"blur":this._focused=!1;break}}_onSearchKeyDown(e){const n=e.target;e.code=="Enter"?(e.preventDefault(),this.search(n.value).then(()=>{n.focus(),n.select()}).catch(r=>{console.log(r),alert(r)})):e.code=="Escape"?n.blur():e.stopPropagation()}_doExampleSearch(e){nk(e,this._inputField).then(()=>{this._inputField.blur(),this.search(e)})}_getSearchHelp(){var n,r;const e=[];e.push(D`<p>Focus to a specific range. Examples:</p><ul><li>chr8</li><li>chr8:21,445,873</li><li>chr8:21,445,873-24,623,697</li><li>chr4:166,014,727-chr15:23,731,397</li></ul>`);for(const i of((n=this.genomeSpy)==null?void 0:n.getSearchableViews())||[]){const o=(r=i.getTitleText())!=null?r:i.spec.name,a=i.getAccessor("search"),s=a.fields.join(", "),c=Qm(3,i.getCollector().getData(),a);e.push(D`<p>Search <em>${o}</em> (${s}). Examples:</p><ul>${c.map(u=>D`<li>${u}</li>`)}</ul>`)}return D`<div class="search-help" @click="${this._onSearchHelpClicked}">${e}</div>`}updated(e){this._focused&&this._inputField.select()}render(){return D`<div class="search"><input type="text" class="search-input" .value="${this.getDefaultValue()}" @mousedown="${e=>{this._focused||(this._inputField.focus(),e.preventDefault(),e.stopPropagation())}}" @keydown="${this._onSearchKeyDown.bind(this)}" @focus="${this._onSearchFocused}" @blur="${this._onSearchFocused}" ${k2(this.inputRef)}> ${ek([123],()=>this._getSearchHelp())}</div>`}}customElements.define("genome-spy-search-field",tk);function nk(t,e){return new Promise(n=>{let r=0;const i=700/t.length+30;function o(){e.value=t.substring(0,r),r>=t.length?setTimeout(n,500):(r++,setTimeout(o,Math.random()*i*2))}o()})}function N2(t){let e;return t.visit(n=>{for(const r of["x","y"]){const i=n.resolutions.scale[r];if(i&&i.type=="locus"&&i.isZoomable())return e=i,qn}}),e}const L2="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEuNSI+PHBhdGggZD0iTTQuNyAyMS4ycy40IDIuMyAxLjMgMy42QzcgMjYgOS44IDI4IDkuOCAyOHMzLjQtMi42IDYuNC04LjVjMCAwIDEgLjEgMS45LS40LjktLjYuOC0uNCAxLTEuMiAwIDAgMi45LjUgNi42IDAgMi4xLS4zIDQuMy0xIDYuMi0yLjUgMCAwLTEuMS0xLjctMi41LTUuMS0uNS0xLjMtMi0xLjgtNC42LTQuNmwtOC4yIDguNi0xMS45IDYuOXoiIGZpbGwtb3BhY2l0eT0iLjEiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSIjN2ZiYmRkIi8+PHBhdGggZD0iTTEyLjQgMTUuNWMtLjctLjUtMi40LS44LTQuNC0uNC0yIC40LTQgMS4zLTQuOCAxLjgtLjUuMy0xLjIgMS0xLjIgMS40IDAgLjcuMyAxLjguOCAyLjQuMy4zLjcuNSAxLjQuNi44IDAgMi41LTEuNCAzLjUtMiAxLS42IDEuNi0uOCAyLjctMS4ybC0yLjkgMi40Yy0xLjMgMS4yLTIuMiAxLjUtMi40IDIuMyAwIC41IDAgMS40LjUgMS44LjQuNS42LjggMS42LjguNiAwIDEgMCAyLjYtMS41LjktLjkgMi4zLTMgMi43LTMuNy42LTEuMSAxLTIuMi43LTMtLjItMS0uNC0xLjQtLjgtMS43ek0xNy40IDE0LjJjLS4zLS41LS45LTEuMi0uMi0yLjVsMS45LTNjLjUtLjggMi0yLjMgMi42LTIuNi42LS40IDEuNS0uNiAyLS4yLjYuNCAxIDEgMS4zIDEuNS40LjYuNyAxLjMuMiAyLS43IDEtMS42LjktMi44IDEuNy0xLjIuOC0xLjkgMS4yLTIuNSAxLjlsMy44LTEuOGMxLjMtLjYgMi43LTEuMSAzLjQtLjcuOC41LjguNyAxIDEuNC4zIDEtLjIgMS45LS44IDIuNC0uNS42LTEuNS45LTIuNiAxLjItMS40LjQtNC41IDEtNS44LjUtMS4zLS41LTEuMy0xLjQtMS41LTEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNyAxNC44cy00LTEuOC0xMiAyLjdjMCAwIDEgMy43IDIuNSA1LjMgMS40IDEuNSAyLjMgMy42IDQuNiA0LjYgMCAwIDQuNy0zIDYuOS05LjJsMy0yczQuNyAyLjggMTIuNi0xLjZjMCAwLS42LTMuMy0zLTYtMi42LTMtMy44LTQuNy0zLjgtNC43cy00LjEgMi4zLTcuNSA5LjNsLTMuMyAxLjZ6IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iLjUiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0iIzdmYmJkZCIvPjxwYXRoIGQ9Ik0xMy44IDE1LjNjLjkuOC42IDIgMS40IDEuOCAxLS4yIDEuNC0uOCAxLjMtMS41IDAtLjcgMC0uOC0uNC0xLjYtLjMtLjctMS0xLjEtMi0uNS0uNy41LTEuNCAxLjMtMS40IDEuM3MuMi0uMyAxLjEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTIuNCAxNC45czIuMS0yIDMtMmMxLjEgMCAyLjMgMi43IDIuMyAzLjUgMCAuOC0yLjEgMi40LTMuMSAyLjMgMCAwIDAtMS4yLS43LTIuNi0uOC0xLjMtMS41LTEuMi0xLjUtMS4yeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9Ii41Ii8+PC9zdmc+";/**
2162
2155
  * @license
2163
2156
  * Copyright 2020 Google LLC
2164
2157
  * SPDX-License-Identifier: BSD-3-Clause
2165
- */const DN=Wr(class extends go{constructor(t){if(super(t),t.type!==Bt.PROPERTY&&t.type!==Bt.ATTRIBUTE&&t.type!==Bt.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!Uv(t))throw Error("`live` bindings can only contain a single expression")}render(t){return t}update(t,[e]){if(e===xe||e===R)return e;const n=t.element,r=t.name;if(t.type===Bt.PROPERTY){if(e===n[r])return xe}else if(t.type===Bt.BOOLEAN_ATTRIBUTE){if(!!e===n.hasAttribute(r))return xe}else if(t.type===Bt.ATTRIBUTE&&n.getAttribute(r)===e+"")return xe;return yN(t),e}});function Wv(t,e){return new CustomEvent("query-dependency",{detail:{name:t,setter:e},bubbles:!0})}function MN(t){if(!(t!=null&&t.length))throw new Error("Can't nest an empty array!");const e=Xv(null);for(const n of t){if(!(n!=null&&n.length))throw new Error("Cannot nest, element has no path!");let r=e;for(const i of n){let o=r.children.find(a=>a.item===i);o||(o=Xv(i),r.children.push(o)),r=o}}return e.children[0]}const Xv=t=>({item:t,children:[]}),Jf=new Set;function $f(t){const n=t.currentTarget.parentNode,r=!n.classList.contains("show");for(const i of Jf)i.classList.remove("show"),document.body.classList.remove(Un);return Jf.clear(),t.stopPropagation(),r?(Jf.add(n),n.classList.add("show"),document.body.classList.add(Un),window.addEventListener("click",i=>{n.classList.contains("show")&&(n.classList.remove("show"),document.body.classList.remove(Un),i.preventDefault())},{once:!0})):window.dispatchEvent(new MouseEvent("click")),r}const ed={visibilities:{}},oi=uv({name:"viewSettings",initialState:ed,reducers:{setVisibility:(t,e)=>{t.visibilities[e.payload.name]=e.payload.visibility},restoreDefaultVisibility:(t,e)=>{delete t.visibilities[e.payload]},restoreDefaultVisibilities:(t,e)=>ed,setViewSettings:(t,e)=>({...ed,...e.payload?e.payload:{}})}});class TN extends Ot{constructor(){super(),this.app=void 0,this.nestedPaths=void 0,this.sateWatcher=Rs(e=>e.viewSettings,(e,n)=>this.requestUpdate()),this.style.display="none"}connectedCallback(){super.connectedCallback(),this.dispatchEvent(Wv("app",e=>{this.app=e})),this.app.addInitializationListener(()=>{this.updateToggles(),this.requestUpdate(),this.style.display=this.nestedPaths.children.length?"block":"none"}),this.app.storeHelper.subscribe(this.sateWatcher)}disconnectedCallback(){this.app.storeHelper.unsubscribe(this.sateWatcher)}createRenderRoot(){return this}toolButtonClicked(e){$f(e)}handleCheckboxClick(e,n){const r=e.target.checked;this.app.storeHelper.dispatch(r!=n.isVisibleInSpec()?oi.actions.setVisibility({name:n.name,visibility:r}):oi.actions.restoreDefaultVisibility(n.name)),this.requestUpdate(),e.stopPropagation()}handleResetClick(){this.app.storeHelper.dispatch(oi.actions.restoreDefaultVisibilities())}updateToggles(){const e=this.app.genomeSpy.viewRoot;if(!e)return;const n=[];e.visit(i=>{if(i instanceof xg)return as;n.push(i)});const r=n.filter(i=>_8(i.name)&&Zv(i)).map(i=>[...i.getAncestors()].reverse());this.nestedPaths=MN(r)}renderToggles(){const e=this.getVisibilities(),n=this.app.genomeSpy.viewRoot,r=Hg(n);var i=(a,s=!0)=>a.length?D`<ul class="${s?null:"unchecked"}">${a.map(o)}</ul>`:R,o=a=>{var u,f;const s=a.item,c=(u=e[s.name])!=null?u:s.isVisibleInSpec();return D`<li><label class="checkbox"><input type="checkbox" ?disabled="${!r.has(s.name)||!Zv(s)}" .checked="${DN(c)}" @change="${l=>this.handleCheckboxClick(l,s)}">${(f=s.getTitleText())!=null?f:s.name}</label> ${i(a.children,c)}</li>`};return i(this.nestedPaths.children)}render(){const e=!Object.keys(this.getVisibilities()).length;return D`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Toggle view visibilities" @click="${this.toolButtonClicked.bind(this)}">${q(W5).node[0]}</button><ul class="gs-dropdown-menu" @click="${n=>n.stopPropagation()}"><li class="menu-header">View visibility</li><li>${e?D`<span class="disabled-item">Restore defaults</span>`:D`<a @click="${()=>this.handleResetClick()}">Restore defaults</a>`}</li><li class="menu-divider"></li><li>${this.nestedPaths?this.renderToggles():R}</li></ul></div>`}getVisibilities(){return this.app.storeHelper.state.viewSettings.visibilities}}const Zv=t=>{var e;return(e=t.spec.configurableVisibility)!=null?e:!(t.parent&&t.parent instanceof kt)};customElements.define("genome-spy-view-visibility",TN);class IN extends Ot{constructor(){super(),this.provenance=void 0}connectedCallback(){super.connectedCallback(),this.provenance.storeHelper.subscribe(()=>{this.requestUpdate()})}disconnectedCallback(){super.disconnectedCallback()}createRenderRoot(){return this}render(){const e=(r,i)=>{var a,s;const o=this.provenance.getActionInfo(r);return o?D`<li><a @click="${()=>this.provenance.activateState(i)}" class="${i==this.provenance.getCurrentIndex()?"active":""}">${q((a=o.icon)!=null?a:i1).node[0]} ${(s=o.provenanceTitle)!=null?s:o.title}</a></li>`:R},n=()=>D`<div class="dropdown provenance-dropdown"><button class="tool-btn" title="Provenance" ?disabled="${this.provenance.isEmpty()}" @click="${$f}">${q(R5).node[0]}</button><ol class="gs-dropdown-menu provenance-menu">${this.provenance.getFullActionHistory().map(e)}</ol></div>`;return D`<div class="btn-group" @click="${r=>r.stopPropagation()}"><button class="tool-btn" title="Backtrack samples (B)" ?disabled="${!this.provenance.isUndoable()}" @click="${()=>this.provenance.undo()}">${q(S5).node[0]}</button> ${n()} <button class="tool-btn" title="Redo" ?disabled="${!this.provenance.isRedoable()}" @click="${()=>this.provenance.redo()}">${q(M5).node[0]}</button></div>`}}customElements.define("genome-spy-provenance-buttons",IN);/**
2158
+ */const rk=Yr(class extends ho{constructor(t){if(super(t),t.type!==Ot.PROPERTY&&t.type!==Ot.ATTRIBUTE&&t.type!==Ot.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!D2(t))throw Error("`live` bindings can only contain a single expression")}render(t){return t}update(t,[e]){if(e===xe||e===R)return e;const n=t.element,r=t.name;if(t.type===Ot.PROPERTY){if(e===n[r])return xe}else if(t.type===Ot.BOOLEAN_ATTRIBUTE){if(!!e===n.hasAttribute(r))return xe}else if(t.type===Ot.ATTRIBUTE&&n.getAttribute(r)===e+"")return xe;return X9(t),e}});function B2(t,e){return new CustomEvent("query-dependency",{detail:{name:t,setter:e},bubbles:!0})}function ik(t){if(!(t!=null&&t.length))throw new Error("Can't nest an empty array!");const e=O2(null);for(const n of t){if(!(n!=null&&n.length))throw new Error("Cannot nest, element has no path!");let r=e;for(const i of n){let o=r.children.find(a=>a.item===i);o||(o=O2(i),r.children.push(o)),r=o}}return e.children[0]}const O2=t=>({item:t,children:[]}),Wf=new Set;function Xf(t){const n=t.currentTarget.parentNode,r=!n.classList.contains("show");for(const i of Wf)i.classList.remove("show"),document.body.classList.remove(jn);return Wf.clear(),t.stopPropagation(),r?(Wf.add(n),n.classList.add("show"),document.body.classList.add(jn),window.addEventListener("click",i=>{n.classList.contains("show")&&(n.classList.remove("show"),document.body.classList.remove(jn),i.preventDefault())},{once:!0})):window.dispatchEvent(new MouseEvent("click")),r}const Zf={visibilities:{}},ni=Zy({name:"viewSettings",initialState:Zf,reducers:{setVisibility:(t,e)=>{t.visibilities[e.payload.name]=e.payload.visibility},restoreDefaultVisibility:(t,e)=>{delete t.visibilities[e.payload]},restoreDefaultVisibilities:(t,e)=>Zf,setViewSettings:(t,e)=>({...Zf,...e.payload?e.payload:{}})}});class ok extends Bt{constructor(){super(),this.app=void 0,this.nestedPaths=void 0,this.sateWatcher=zs(e=>e.viewSettings,(e,n)=>this.requestUpdate()),this.style.display="none"}connectedCallback(){super.connectedCallback(),this.dispatchEvent(B2("app",e=>{this.app=e})),this.app.addInitializationListener(()=>{this.updateToggles(),this.requestUpdate(),this.style.display=this.nestedPaths.children.length?"block":"none"}),this.app.storeHelper.subscribe(this.sateWatcher)}disconnectedCallback(){this.app.storeHelper.unsubscribe(this.sateWatcher)}createRenderRoot(){return this}toolButtonClicked(e){Xf(e)}handleCheckboxClick(e,n){const r=e.target.checked;this.app.storeHelper.dispatch(r!=n.isVisibleInSpec()?ni.actions.setVisibility({name:n.name,visibility:r}):ni.actions.restoreDefaultVisibility(n.name)),this.requestUpdate(),e.stopPropagation()}handleResetClick(){this.app.storeHelper.dispatch(ni.actions.restoreDefaultVisibilities())}updateToggles(){const e=this.app.genomeSpy.viewRoot;if(!e)return;const n=[];e.visit(i=>{if(i instanceof yg)return is;n.push(i)});const r=n.filter(i=>L8(i.name)&&P2(i)).map(i=>[...i.getAncestors()].reverse());this.nestedPaths=ik(r)}renderToggles(){const e=this.getVisibilities(),n=this.app.genomeSpy.viewRoot,r=zg(n);var i=(a,s=!0)=>a.length?D`<ul class="${s?null:"unchecked"}">${a.map(o)}</ul>`:R,o=a=>{var u,f;const s=a.item,c=(u=e[s.name])!=null?u:s.isVisibleInSpec();return D`<li><label class="checkbox"><input type="checkbox" ?disabled="${!r.has(s.name)||!P2(s)}" .checked="${rk(c)}" @change="${l=>this.handleCheckboxClick(l,s)}">${(f=s.getTitleText())!=null?f:s.name}</label> ${i(a.children,c)}</li>`};return i(this.nestedPaths.children)}render(){const e=!Object.keys(this.getVisibilities()).length;return D`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Toggle view visibilities" @click="${this.toolButtonClicked.bind(this)}">${q(B5).node[0]}</button><ul class="gs-dropdown-menu" @click="${n=>n.stopPropagation()}"><li class="menu-header">View visibility</li><li>${e?D`<span class="disabled-item">Restore defaults</span>`:D`<a @click="${()=>this.handleResetClick()}">Restore defaults</a>`}</li><li class="menu-divider"></li><li>${this.nestedPaths?this.renderToggles():R}</li></ul></div>`}getVisibilities(){return this.app.storeHelper.state.viewSettings.visibilities}}const P2=t=>{var e;return(e=t.spec.configurableVisibility)!=null?e:!(t.parent&&t.parent instanceof Nt)};customElements.define("genome-spy-view-visibility",ok);class ak extends Bt{constructor(){super(),this.provenance=void 0}connectedCallback(){super.connectedCallback(),this.provenance.storeHelper.subscribe(()=>{this.requestUpdate()})}disconnectedCallback(){super.disconnectedCallback()}createRenderRoot(){return this}render(){const e=(r,i)=>{var a,s;const o=this.provenance.getActionInfo(r);return o?D`<li><a @click="${()=>this.provenance.activateState(i)}" class="${i==this.provenance.getCurrentIndex()?"active":""}">${q((a=o.icon)!=null?a:$g).node[0]} ${(s=o.provenanceTitle)!=null?s:o.title}</a></li>`:R},n=()=>D`<div class="dropdown provenance-dropdown"><button class="tool-btn" title="Provenance" ?disabled="${this.provenance.isEmpty()}" @click="${Xf}">${q(S5).node[0]}</button><ol class="gs-dropdown-menu provenance-menu">${this.provenance.getFullActionHistory().map(e)}</ol></div>`;return D`<div class="btn-group" @click="${r=>r.stopPropagation()}"><button class="tool-btn" title="Backtrack samples (B)" ?disabled="${!this.provenance.isUndoable()}" @click="${()=>this.provenance.undo()}">${q(f5).node[0]}</button> ${n()} <button class="tool-btn" title="Redo" ?disabled="${!this.provenance.isRedoable()}" @click="${()=>this.provenance.redo()}">${q(h5).node[0]}</button></div>`}}customElements.define("genome-spy-provenance-buttons",ak);/**
2166
2159
  * @license
2167
2160
  * Copyright 2021 Google LLC
2168
2161
  * SPDX-License-Identifier: BSD-3-Clause
2169
- */class NN{constructor(e){this.U=e}disconnect(){this.U=void 0}reconnect(e){this.U=e}deref(){return this.U}}class kN{constructor(){this.Y=void 0,this.q=void 0}get(){return this.Y}pause(){var e;(e=this.Y)!==null&&e!==void 0||(this.Y=new Promise(n=>this.q=n))}resume(){var e;(e=this.q)===null||e===void 0||e.call(this),this.Y=this.q=void 0}}/**
2162
+ */class sk{constructor(e){this.U=e}disconnect(){this.U=void 0}reconnect(e){this.U=e}deref(){return this.U}}class ck{constructor(){this.Y=void 0,this.q=void 0}get(){return this.Y}pause(){var e;(e=this.Y)!==null&&e!==void 0||(this.Y=new Promise(n=>this.q=n))}resume(){var e;(e=this.q)===null||e===void 0||e.call(this),this.Y=this.q=void 0}}/**
2170
2163
  * @license
2171
2164
  * Copyright 2017 Google LLC
2172
2165
  * SPDX-License-Identifier: BSD-3-Clause
2173
- */const qv=t=>!mN(t)&&typeof t.then=="function";class LN extends Hv{constructor(){super(...arguments),this._$Cwt=1073741823,this._$Cyt=[],this._$CG=new NN(this),this._$CK=new kN}render(...e){var n;return(n=e.find(r=>!qv(r)))!==null&&n!==void 0?n:xe}update(e,n){const r=this._$Cyt;let i=r.length;this._$Cyt=n;const o=this._$CG,a=this._$CK;this.isConnected||this.disconnected();for(let s=0;s<n.length&&!(s>this._$Cwt);s++){const c=n[s];if(!qv(c))return this._$Cwt=s,c;s<i&&c===r[s]||(this._$Cwt=1073741823,i=0,Promise.resolve(c).then(async u=>{for(;a.get();)await a.get();const f=o.deref();if(f!==void 0){const l=f._$Cyt.indexOf(c);l>-1&&l<f._$Cwt&&(f._$Cwt=l,f.setValue(u))}}))}return xe}disconnected(){this._$CG.disconnect(),this._$CK.pause()}reconnected(){this._$CG.reconnect(this),this._$CK.resume()}}const ON=Wr(LN);var BN={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function Kv(t){return t.replace(RegExp("^"+(t.match(/^(\t| )+/)||"")[0],"gm"),"")}function Oo(t){return(t+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function td(t,e){var n,r,i,o,a,s=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,c=[],u="",f=e||{},l=0;function d(p){var m=BN[p[1]||""],y=c[c.length-1]==p;return m?m[1]?(y?c.pop():c.push(p),m[0|y]):m[0]:p}function h(){for(var p="";c.length;)p+=d(c[c.length-1]);return p}for(t=t.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(p,m,y){return f[m.toLowerCase()]=y,""}).replace(/^\n+|\n+$/g,"");i=s.exec(t);)r=t.substring(l,i.index),l=s.lastIndex,n=i[0],r.match(/[^\\](\\\\)*\\$/)||((a=i[3]||i[4])?n='<pre class="code '+(i[4]?"poetry":i[2].toLowerCase())+'"><code'+(i[2]?' class="language-'+i[2].toLowerCase()+'"':"")+">"+Kv(Oo(a).replace(/^\n+|\n+$/g,""))+"</code></pre>":(a=i[6])?(a.match(/\./)&&(i[5]=i[5].replace(/^\d+/gm,"")),o=td(Kv(i[5].replace(/^\s*[>*+.-]/gm,""))),a==">"?a="blockquote":(a=a.match(/\./)?"ol":"ul",o=o.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),n="<"+a+">"+o+"</"+a+">"):i[8]?n='<img src="'+Oo(i[8])+'" alt="'+Oo(i[7])+'">':i[10]?(u=u.replace("<a>",'<a href="'+Oo(i[11]||f[r.toLowerCase()])+'">'),n=h()+"</a>"):i[9]?n="<a>":i[12]||i[14]?n="<"+(a="h"+(i[14]?i[14].length:i[13]>"="?1:2))+">"+td(i[12]||i[15],f)+"</"+a+">":i[16]?n="<code>"+Oo(i[16])+"</code>":(i[17]||i[1])&&(n=d(i[17]||"--"))),u+=r,u+=n;return(u+t.substring(l)+h()).replace(/^\n+|\n+$/g,"")}function Jv(t,e){return!e||/^(data:|([A-Za-z]+:)?\/\/)/.test(t)||t.startsWith("/")?t:(e.endsWith("/")||(e+="/"),e+t)}function FN(t,e={}){const n=td(t),r=new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>${n}</div></body></html>`,"text/html");r.normalize(),$v(r.body);for(const o of r.querySelectorAll("a[href]"))o.setAttribute("target","blank"),o.setAttribute("rel","noopener noreferrer"),o.setAttribute("href",Jv(o.getAttribute("href"),e.baseUrl));for(const o of r.querySelectorAll("img[src]"))o.setAttribute("src",Jv(o.getAttribute("src"),e.baseUrl));const i=r.body.removeChild(r.querySelector("body > div"));return i.className="snarkdown",i}function $v(t){if(t.nodeType!==3){if(t.nodeType!==1||/^(script|iframe|object|embed|svg)$/i.test(t.tagName))return t.remove();for(let e=t.attributes.length;e--;){const n=t.attributes[e].name;/^(class|id|name|href|src|alt|align|valign|(on[a-z]+))$/i.test(n)||t.attributes.removeNamedItem(n)}for(let e=t.childNodes.length;e--;)$v(t.childNodes[e])}}function PN(t){t.stopPropagation(),t.preventDefault();const n=t.target.parentElement,r=n.parentElement,o=r.parentElement.querySelector(".panes"),a=[...r.children].findIndex(s=>s==n);for(const s of r.children)s.classList.remove("active-tab");for(const s of o.children)s.classList.remove("active-tab");r.children.item(a).classList.add("active-tab"),o.children.item(a).classList.add("active-tab")}var nd={exports:{}};(function(t){var e=function(){var n=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",o={};function a(c,u){if(!o[c]){o[c]={};for(var f=0;f<c.length;f++)o[c][c.charAt(f)]=f}return o[c][u]}var s={compressToBase64:function(c){if(c==null)return"";var u=s._compress(c,6,function(f){return r.charAt(f)});switch(u.length%4){default:case 0:return u;case 1:return u+"===";case 2:return u+"==";case 3:return u+"="}},decompressFromBase64:function(c){return c==null?"":c==""?null:s._decompress(c.length,32,function(u){return a(r,c.charAt(u))})},compressToUTF16:function(c){return c==null?"":s._compress(c,15,function(u){return n(u+32)})+" "},decompressFromUTF16:function(c){return c==null?"":c==""?null:s._decompress(c.length,16384,function(u){return c.charCodeAt(u)-32})},compressToUint8Array:function(c){for(var u=s.compress(c),f=new Uint8Array(u.length*2),l=0,d=u.length;l<d;l++){var h=u.charCodeAt(l);f[l*2]=h>>>8,f[l*2+1]=h%256}return f},decompressFromUint8Array:function(c){if(c==null)return s.decompress(c);for(var u=new Array(c.length/2),f=0,l=u.length;f<l;f++)u[f]=c[f*2]*256+c[f*2+1];var d=[];return u.forEach(function(h){d.push(n(h))}),s.decompress(d.join(""))},compressToEncodedURIComponent:function(c){return c==null?"":s._compress(c,6,function(u){return i.charAt(u)})},decompressFromEncodedURIComponent:function(c){return c==null?"":c==""?null:(c=c.replace(/ /g,"+"),s._decompress(c.length,32,function(u){return a(i,c.charAt(u))}))},compress:function(c){return s._compress(c,16,function(u){return n(u)})},_compress:function(c,u,f){if(c==null)return"";var l,d,h={},p={},m="",y="",g="",A=2,w=3,C=2,b=[],v=0,x=0,E;for(E=0;E<c.length;E+=1)if(m=c.charAt(E),Object.prototype.hasOwnProperty.call(h,m)||(h[m]=w++,p[m]=!0),y=g+m,Object.prototype.hasOwnProperty.call(h,y))g=y;else{if(Object.prototype.hasOwnProperty.call(p,g)){if(g.charCodeAt(0)<256){for(l=0;l<C;l++)v=v<<1,x==u-1?(x=0,b.push(f(v)),v=0):x++;for(d=g.charCodeAt(0),l=0;l<8;l++)v=v<<1|d&1,x==u-1?(x=0,b.push(f(v)),v=0):x++,d=d>>1}else{for(d=1,l=0;l<C;l++)v=v<<1|d,x==u-1?(x=0,b.push(f(v)),v=0):x++,d=0;for(d=g.charCodeAt(0),l=0;l<16;l++)v=v<<1|d&1,x==u-1?(x=0,b.push(f(v)),v=0):x++,d=d>>1}A--,A==0&&(A=Math.pow(2,C),C++),delete p[g]}else for(d=h[g],l=0;l<C;l++)v=v<<1|d&1,x==u-1?(x=0,b.push(f(v)),v=0):x++,d=d>>1;A--,A==0&&(A=Math.pow(2,C),C++),h[y]=w++,g=String(m)}if(g!==""){if(Object.prototype.hasOwnProperty.call(p,g)){if(g.charCodeAt(0)<256){for(l=0;l<C;l++)v=v<<1,x==u-1?(x=0,b.push(f(v)),v=0):x++;for(d=g.charCodeAt(0),l=0;l<8;l++)v=v<<1|d&1,x==u-1?(x=0,b.push(f(v)),v=0):x++,d=d>>1}else{for(d=1,l=0;l<C;l++)v=v<<1|d,x==u-1?(x=0,b.push(f(v)),v=0):x++,d=0;for(d=g.charCodeAt(0),l=0;l<16;l++)v=v<<1|d&1,x==u-1?(x=0,b.push(f(v)),v=0):x++,d=d>>1}A--,A==0&&(A=Math.pow(2,C),C++),delete p[g]}else for(d=h[g],l=0;l<C;l++)v=v<<1|d&1,x==u-1?(x=0,b.push(f(v)),v=0):x++,d=d>>1;A--,A==0&&(A=Math.pow(2,C),C++)}for(d=2,l=0;l<C;l++)v=v<<1|d&1,x==u-1?(x=0,b.push(f(v)),v=0):x++,d=d>>1;for(;;)if(v=v<<1,x==u-1){b.push(f(v));break}else x++;return b.join("")},decompress:function(c){return c==null?"":c==""?null:s._decompress(c.length,32768,function(u){return c.charCodeAt(u)})},_decompress:function(c,u,f){var l=[],d=4,h=4,p=3,m="",y=[],g,A,w,C,b,v,x,E={val:f(0),position:u,index:1};for(g=0;g<3;g+=1)l[g]=g;for(w=0,b=Math.pow(2,2),v=1;v!=b;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),w|=(C>0?1:0)*v,v<<=1;switch(w){case 0:for(w=0,b=Math.pow(2,8),v=1;v!=b;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),w|=(C>0?1:0)*v,v<<=1;x=n(w);break;case 1:for(w=0,b=Math.pow(2,16),v=1;v!=b;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),w|=(C>0?1:0)*v,v<<=1;x=n(w);break;case 2:return""}for(l[3]=x,A=x,y.push(x);;){if(E.index>c)return"";for(w=0,b=Math.pow(2,p),v=1;v!=b;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),w|=(C>0?1:0)*v,v<<=1;switch(x=w){case 0:for(w=0,b=Math.pow(2,8),v=1;v!=b;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),w|=(C>0?1:0)*v,v<<=1;l[h++]=n(w),x=h-1,d--;break;case 1:for(w=0,b=Math.pow(2,16),v=1;v!=b;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),w|=(C>0?1:0)*v,v<<=1;l[h++]=n(w),x=h-1,d--;break;case 2:return y.join("")}if(d==0&&(d=Math.pow(2,p),p++),l[x])m=l[x];else if(x===h)m=A+A.charAt(0);else return null;y.push(m),l[h++]=A+m.charAt(0),d--,A=m,d==0&&(d=Math.pow(2,p),p++)}}};return s}();t!=null&&(t.exports=e)})(nd);function zN(){const t=typeof process<"u"?require("util").TextEncoder:TextEncoder;return new t}let Us;function RN(){let t,e=[];for(let n=0;n<256;n++){t=n;for(let r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e}function jN(t){Us!=null||(Us=RN());let e=-1;const n=zN().encode(t);for(let r=0;r<n.length;r++)e=e>>>8^Us[(e^n[r])&255];return(e^-1)>>>0}function eb(t){return("00000000"+jN(t).toString(16)).slice(-8)}function tb(t){const e=nd.exports.compressToEncodedURIComponent(JSON.stringify(t));return"#"+e+eb(e)}function UN(t){if(!t||t.length<10)throw new Error("The state string in the URL is too short.");const e=t.slice(1,-8),n=t.slice(-8);if(eb(e)!==n)throw new Error("The state string in the URL is corrupted.");return JSON.parse(nd.exports.decompressFromEncodedURIComponent(e))}let Qt;function GN(t){for(const e of t.genomeSpy.getNamedScaleResolutions().values())e.isZoomable()&&e.resetZoom();t.storeHelper.dispatch([...t.provenance.isUndoable()?[jt.ActionCreators.jumpToPast(0)]:[],oi.actions.restoreDefaultVisibilities()])}async function rd(t,e){var n;try{t.actions&&e.provenance.dispatchBookmark(t.actions),e.storeHelper.dispatch(oi.actions.setViewSettings(t.viewSettings));const r=[];for(const[i,o]of Object.entries((n=t.scaleDomains)!=null?n:{})){const a=e.genomeSpy.getNamedScaleResolutions().get(i);a?r.push(a.zoomTo(o)):console.warn(`Cannot restore scale domain. Unknown name: ${i}`)}await Promise.all(r)}catch(r){console.error(r),Qe(D`<p>Cannot restore the state:</p><p>${r}</p>`),e.provenance.activateState(0)}}async function Bo(t,e,n={}){await rd(t,e),(Qt||t.notes||n.mode=="shared"&&(t.name||t.notes))&&await HN(t,e,n)}async function HN(t,e,n={}){Qt!=null||(Qt=or("tour",e.appContainer)),await QN(t,e,n)}async function QN(t,e,n){var m;const r=n.database,i=r?await r.getNames():[],o=i.indexOf(t.name),a=r?` ${o+1} of ${i.length}`:"",s=`${n.mode=="shared"?"Shared bookmark":"Bookmark"}${a}: ${(m=t.name)!=null?m:"Unnamed"}`,c=t.notes?FN(t.notes,{baseUrl:e.genomeSpy.spec.baseUrl}):D`<span class="no-notes">No notes provided</span>`,u=async()=>{if(Qt==null||Qt.close(),Qt=void 0,n.mode=="tour"){const y=n.afterTourBookmark;if(typeof y=="string"){const g=await n.database.get(y);if(!g)throw new Error(`No such bookmark: ${y}`);rd(g,e)}else y===null||GN(e)}},f=async y=>{const g=await r.get(i[y]);Bo(g,e,n),e.appContainer.querySelector("canvas").focus()},l=async()=>{if(await id(e.localBookmarkDatabase,t,"add"))try{await e.localBookmarkDatabase.put(t)}catch(y){console.warn(y),Qe(`Cannot import bookmark: ${y}`)}},d=D`<button @click="${u}">${n.mode=="tour"?"End tour":"Close"}</button> ${n.mode=="shared"&&e.localBookmarkDatabase?D`<button @click="${l}">${q(r1).node[0]} Import bookmark</button>`:R} ${r?D`<button @click="${()=>f(o-1)}" ?disabled="${o<=0}">${q(I5).node[0]} Previous</button> <button @click="${()=>f(o+1)}" ?disabled="${o>=i.length-1}">Next ${q(H5).node[0]}</button>`:R}`,p=D`<button title="Collapse" class="collapse" @click="${y=>y.target.closest(".gs-modal").classList.toggle("collapsed")}">${q(k5).node[0]}</button><div class="modal-title">${s}</div><div class="modal-body markdown" style="max-width:600px">${c}</div><div class="modal-buttons">${d}</div>`;Be(p,Qt.content)}function nb(t,e){const n=JSON.stringify(t,void 0,2),r=window.location,i=r.origin+r.pathname+r.search+(e?"#bookmark:"+t.name.replaceAll(" ","-"):tb(t));Qe(D`<div class="gs-tabs" style="width:600px"><ul class="tabs" @click="${PN}"><li class="active-tab"><button>URL</button></li><li><button>JSON</button></li></ul><div class="panes"><div class="gs-form-group active-tab"><label for="bookmark-url">Here's a link for you:</label><div class="copy-url"><input id="bookmark-url" type="text" .value="${i}"> <button @click="${a=>navigator.clipboard.writeText(i).then(()=>a.target.dispatchEvent(OI())).catch(()=>Qe("Failed to copy!"))}">Copy</button></div><small>The bookmark URL contains all the bookmarked data, including the possible notes, which will be shown when the link is opened.</small></div><div class="gs-form-group"><textarea id="bookmark-json" style="height:250px">
2174
- ${n}</textarea> <small>The JSON-formatted bookmark is currently available for development purposes.</small></div></div></div>`,{title:"Share a bookmark",okLabel:"Close"})}function id(t,e,n){const r={add:"Add bookmark",edit:"Edit bookmark",share:"Share the current view state as a bookmark"}[n],i=(c,u)=>{var f,l;return D`<div class="modal-title">${r}</div><div class="modal-body" style="width:500px">${n=="edit"?D`<div class="gs-alert warning">${q(O5).node[0]} The current visualization state will be updated to the bookmark you are editing.</div>`:R} ${n=="share"?D`<div class="gs-alert info">${q(o1).node[0]} <span>You can add an optional title and notes, which will be shown to the recipient when the bookmark link is opened.</span></div>`:R}<div class="gs-form-group"><label for="bookmark-title">Title</label> <input id="bookmark-title" type="text" ?required="${n=="add"||n=="edit"}" .value="${(f=e.name)!=null?f:""}" .placeholder="${n=="share"?"Add an optional title":""}" @change="${d=>{e.name=rb(d.target.value)}}"></div><div class="gs-form-group"><label for="bookmark-notes">Notes</label> <textarea id="bookmark-notes" rows="4" .value="${(l=e.notes)!=null?l:""}" .placeholder="${n=="share"?"... and notes":""}" @change="${d=>{e.notes=rb(d.target.value)}}"></textarea> <small>Notes will be shown when the bookmark is loaded. You can use <a href="https://www.markdownguide.org/basic-syntax/">markdown</a> for formatting.</small></div></div><div class="modal-buttons"><button class="btn-cancel" @click="${c}">Cancel</button> <button class="btn-primary" @click="${u}">${n=="share"?D`${q(Bl).node[0]} Create a link`:"Save"}</button></div>`},o=e.name,a=()=>!!e.name,s=or();return new Promise(c=>{const u=()=>{s.close(),c(!1)},f=async()=>{if(!a()){Qe("Name is missing!",{title:"Error"});return}let d=!0;t&&!(n&&e.name==o)&&await t.get(e.name)&&(d=await Qe(D`A bookmark with the name <em>${e.name}</em> already exists. It will be overwritten.`,{title:"Bookmark already exists",cancelButton:!0})),d&&(s.close(),c(!0))},l=()=>{s.close(),c(!0)};Be(i(u,n=="share"?l:f),s.content),s.content.querySelector("#bookmark-title").focus()})}function rb(t){if(t!==void 0&&(t=t.trim(),t.length))return t}class VN extends Ot{constructor(){super(),this.app=void 0}connectedCallback(){super.connectedCallback(),this.dispatchEvent(Wv("app",e=>{this.app=e}))}createRenderRoot(){return this}_createBookmarkWithCurrentState(){const e={name:void 0,timestamp:Date.now(),actions:this.app.provenance.getBookmarkableActionHistory(),scaleDomains:{}},n=this.app.storeHelper.state.viewSettings;Object.keys(n.visibilities).length&&(e.viewSettings=n);for(const[r,i]of this.app.genomeSpy.getNamedScaleResolutions().entries())i.isZoomable()&&(e.scaleDomains[r]=i.getComplexDomain());return e}async _shareCurrentState(){const e=this._createBookmarkWithCurrentState();await id(void 0,e,"share")&&nb(e,!1)}async _addBookmark(e,n){var a,s;const r=n?await e.get(n):void 0,i=!!r,o=this._createBookmarkWithCurrentState();if((a=o.name)!=null||(o.name=r==null?void 0:r.name),(s=o.notes)!=null||(o.notes=r==null?void 0:r.notes),await id(e,o,i?"edit":"add"))try{await e.put(o,r==null?void 0:r.name),this.requestUpdate()}catch(c){Qe(`${c}`,{title:"Cannot save the bookmark!"})}}async _loadBookmark(e,n){const r=await e.get(n);r&&Bo(r,this.app,{database:e})}_createContextMenu(e,n,r){r.stopPropagation();const i=r.target.closest("li"),o=()=>Qe(D`The bookmark <em>${n}</em> will be deleted.`,{title:"Are you sure?",cancelButton:!0}).then(async c=>{c&&(await e.delete(n),this.requestUpdate())}),a=[],s=e==this.app.globalBookmarkDatabase;s||(a.push({label:"Edit and replace...",icon:Y5,callback:()=>this._addBookmark(e,n)}),a.push({label:"Delete",icon:X5,callback:o})),a.push({label:"Share...",icon:Bl,callback:async()=>nb(await e.get(n),s)}),My({items:a},i,"right-start")}async _makeBookmarkMenuItems(e,n){const i=(await e.getNames()).map(o=>({label:o,callback:()=>this._loadBookmark(e,o),ellipsisCallback:a=>this._createContextMenu(e,o,a)}));return i.length?[{type:"divider"},{label:n,type:"header"},...i].map(o=>Sy(o)):R}_getBookmarks(){const e=(n,r)=>n?ON(this._makeBookmarkMenuItems(n,r),D`Loading...`):R;return[e(this.app.globalBookmarkDatabase,"Bookmarks on the server"),e(this.app.localBookmarkDatabase,"Bookmarks in the web browser")]}render(){const e=this.app.localBookmarkDatabase,n=e?D`<li><a @click="${()=>this._addBookmark(e)}">Add bookmark...</a></li>`:R,r=e||this.app.globalBookmarkDatabase?D`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Bookmarks" @click="${i=>{$f(i)&&this.requestUpdate()}}">${q(r1).node[0]}</button><ul class="gs-dropdown-menu">${n} ${this._getBookmarks()}</ul></div>`:R;return D`<div class="btn-group">${r} <button class="tool-btn" title="Share" @click="${()=>this._shareCurrentState()}">${q(Bl).node[0]}</button></div>`}}customElements.define("genome-spy-bookmark-button",VN);class YN extends Ot{constructor(){super(),this.app=void 0,this.appInitialized=!1}static get properties(){return{app:{type:Object},appInitialized:{type:Boolean}}}createRenderRoot(){return this}_getToolButtons(){const e=this.app.getSampleView(),n=this.app.provenance,r=[];n.isEnabled()&&r.push(D`<genome-spy-provenance-buttons .provenance="${n}"></genome-spy-provenance-buttons>`),r.push(D`<genome-spy-view-visibility></genome-spy-view-visibility>`),e&&r.push(D`<button class="tool-btn" title="Peek (E)" @click="${()=>e._togglePeek()}">${q(K5).node[0]}</button>`),r.push(D`<genome-spy-bookmark-button></genome-spy-bookmark-button>`);const i=this.app.config.description?Ke(this.app.config.description):[];return i.length>1&&r.push(D`<button class="tool-btn" title="Show a description of the visualization" @click="${()=>Qe(D`${i.slice(1).map(o=>D`<p>${o}</p>`)}`,{title:i[0]})}">${q(o1).node[0]}</button>`),i.length>0&&r.push(D`<span class="vis-title">${i[0]}</span>`),r.push(D`<span class="spacer"></span> ${this.app.appContainer.requestFullscreen?D`<button class="tool-btn" title="Fullscreen" @click="${()=>this.app.toggleFullScreen()}">${q(V5).node[0]}</button>`:R} <button class="tool-btn" title="Help" @click="${()=>window.open("https://genomespy.app/docs/","_blank")}">${q(P5).node[0]}</button>`),r}render(){const e=this.app.genomeSpy;return D`<nav class="gs-toolbar"><a href="https://genomespy.app" target="_blank" class="logo"><img title="GenomeSpy" alt="GenomeSpy" src="${_v}"> </a>${this.appInitialized&&Yv(e.viewRoot)?D`<genome-spy-search-field .genomeSpy="${e}"></genome-spy-search-field>`:R} ${this._getToolButtons()}</nav>`}}customElements.define("genome-spy-toolbar",YN);class _N{constructor(e){this.storeHelper=e,this._reducers={},this.actionInfoSources=[],this._reducer=void 0,e.addReducer("provenance",(n,r)=>this._reducer?this._reducer(n,r):n!=null?n:{})}addReducer(e,n){this._reducers[e]=n;const r=o=>Object.keys(this._reducers).some(a=>o.type.startsWith(a)),i=(o,a)=>r(a)?a:o!=null?o:null;this._reducer=o6(Ff({...this._reducers,lastAction:i}),{ignoreInitialState:!0,filter:r}),this.storeHelper.dispatch({type:"@@redux/REPLACE"+Math.random().toString(36).substring(7).split("").join(".")})}get _storeState(){return this.storeHelper.store.getState()}get _provenanceState(){return this._storeState.provenance}isEnabled(){return!!this.getPresentState()}getPresentState(){return this._provenanceState.present}addActionInfoSource(e){this.actionInfoSources.push(e)}getActionInfo(e){for(const n of this.actionInfoSources){const r=n(e);if(r)return r}}dispatchBookmark(e){this.storeHelper.dispatch([...this.isUndoable()?[jt.ActionCreators.jumpToPast(0)]:[],...e])}isRedoable(){return this.isEnabled()&&this._provenanceState.future.length>0}redo(){this.storeHelper.dispatch(jt.ActionCreators.redo())}isUndoable(){return this.isEnabled()&&this._provenanceState.past.length>0}undo(){this.storeHelper.dispatch(jt.ActionCreators.undo())}isAtInitialState(){return!this.isUndoable()}isEmpty(){const e=this._provenanceState;return!this.isEnabled()||e.past.length+e.future.length<=0}activateState(e){const n=this.getCurrentIndex();e<n?this.storeHelper.dispatch(jt.ActionCreators.jumpToPast(e)):e>n&&this.storeHelper.dispatch(jt.ActionCreators.jumpToFuture(e-n-1))}getCurrentIndex(){var e;return(e=this._provenanceState.past)==null?void 0:e.length}getActionHistory(){const e=this._provenanceState;return e.present&&[...e.past,e.present].map(n=>n.lastAction)}getFullActionHistory(){const e=this._provenanceState;return[...e.past,e.present,...e.future].map(n=>n.lastAction)}getBookmarkableActionHistory(){var e;return(e=this.getActionHistory())==null?void 0:e.slice(1)}}function*WN(t,e=n=>+n){const n=t.length,r=new mo,i=new Array(n).fill(0);for(const[a,s]of t.entries())s.length&&r.push(a,e(s[0]));let o=0;for(;(o=r.pop())!==void 0;){const a=t[o];let s=i[o];if(yield a[s++],s<a.length){const u=e(a[s]);r.push(o,u),i[o]=s}}}const XN="sampleCount";class ZN extends se{constructor(e,n){super(),this.view=n;const r=n.context.animator;for(const i of n.getAncestors())i instanceof Vf&&(this.provenance=i.provenance,this.provenance.storeHelper.subscribe(o=>r.requestTransition(()=>{this.reset(),this._mergeAndPropagate(Qf(o)),this.complete()})));if(!this.provenance)throw new Error("No SampleView was found!");this.contextObject=void 0}initialize(){this.contextObject=Object.create(super.getGlobalObject());const e=this.view.getEncoding().x;if(Vn(e))this.xAccessor=Z(e.field);else throw new Error("Crash!")}handle(e){}getGlobalObject(){return this.contextObject}_getCollector(){if(this.parent instanceof Yr)return this.parent;throw new Error("MergeFacetsTransform must be a direct child of a Collector")}complete(){this._mergeAndPropagate(this.provenance.getPresentState()[ii]),super.complete()}_mergeAndPropagate(e){const n=[...Mv(e.rootGroup)].filter(r=>Sv(Ue(r)));for(const[r,i]of n.entries()){const o=Ue(i);if(Sv(o)){this.contextObject[XN]=o.samples.length,this.beginBatch({type:"facet",facetId:[r]});const a=o.samples,s=this._getCollector(),c=WN(a.map(u=>{var f;return(f=s.facetBatches.get([u]))!=null?f:[]}),this.xAccessor);for(const u of c)this._propagate(u)}}this._updateScales()}setParent(e){super.setParent(e)}_updateScales(){const e=new Set;this.view.visit(n=>{if(n instanceof ye&&n.mark.encoding.y){const r=n.getScaleResolution("y");r&&e.add(r)}});for(const n of e)n.reconfigure()}}var qN="BATCHING_REDUCER.BATCH";function KN(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:qN;return{type:e,meta:{batch:!0},payload:t}}function JN(t){return function e(n,r){return r&&r.meta&&r.meta.batch?r.payload.reduce(e,n):t(n,r)}}class $N{constructor(e){this._reducers=e!=null?e:{},this.store=I9({reducer:{}}),this._listeners=new Set,this.store.subscribe(()=>{const n=this.store.getState();for(const r of this._listeners)r(n)})}get state(){return this.store.getState()}addReducer(e,n){this._reducers[e]=n,this.store.replaceReducer(JN(Ff(this._reducers)))}subscribe(e){this._listeners.add(e)}unsubscribe(e){this._listeners.delete(e)}dispatch(e){Array.isArray(e)?this.store.dispatch(KN(e)):this.store.dispatch(e)}getDispatcher(){return e=>this.dispatch(e)}}class ek extends jv{constructor(e){super(),this.bookmarks=e,this.names=e.map(n=>n.name)}async getNames(){return this.names}async get(e){return this.bookmarks.find(n=>n.name==e)}}Bg.mergeFacets=ZN;class ib{constructor(e,n,r={}){const i=this;this.config=n,this.storeHelper=new $N,this.storeHelper.addReducer("viewSettings",oi.reducer),this.provenance=new _N(this.storeHelper),this._initializationListeners=[],this.toolbarRef=Qv(),this.appContainer=e,this._configureContainer(),this.localBookmarkDatabase=typeof n.specId=="string"?new pN(n.specId):void 0,this.globalBookmarkDatabase=void 0,Be(D`<div class="genome-spy-app"><genome-spy-toolbar ${Vv(i.toolbarRef)} .app="${i}"></genome-spy-toolbar><div class="genome-spy-container"></div></div>`,i.appContainer),i.appContainer.querySelector(".genome-spy-app").addEventListener("query-dependency",s=>{s.detail.name=="app"&&(s.detail.setter(i),s.stopPropagation())});const o=s=>this.appContainer.getElementsByClassName(s)[0];this.genomeSpy=new Zg(o("genome-spy-container"),this.config,r),this.genomeSpy.viewFactory.addViewType(nN,(s,c,u,f)=>new Vf(s,c,u,f,this.provenance));const a=this.genomeSpy.viewVisibilityPredicate;this.genomeSpy.viewVisibilityPredicate=s=>{var c,u;return(u=(c=this.storeHelper.state.viewSettings)==null?void 0:c.visibilities[s.name])!=null?u:a(s)}}addInitializationListener(e){this._initializationListeners?this._initializationListeners.push(e):e()}toggleFullScreen(){document.fullscreenElement?document.exitFullscreen&&document.exitFullscreen():this.appContainer.requestFullscreen()}isFullPage(){return this.appContainer==document.body}async launch(){var a,s;const e=(a=this.config.bookmarks)!=null&&a.remote?Di({baseURL:this.config.baseUrl}).load(this.config.bookmarks.remote.url).then(c=>Promise.resolve(JSON.parse(c))):Promise.resolve([]);if(!await this.genomeSpy.launch())return;this.appContainer.querySelector("canvas").setAttribute("tabindex","-1"),this.storeHelper.subscribe(Rs(c=>{var u;return(u=c.viewSettings)==null?void 0:u.visibilities},(c,u)=>{var l,d;this.genomeSpy.viewRoot._invalidateCacheByPrefix("size","progeny"),(d=(l=this.getSampleView())==null?void 0:l.summaryViews)==null||d._invalidateCacheByPrefix("size","self");const f=this.genomeSpy.viewRoot.context;f.requestLayoutReflow(),f.animator.requestRender()},this.storeHelper.store.getState()));try{const c=await e;c.length&&(this.globalBookmarkDatabase=new ek(c))}catch(c){throw new Error(`Cannot load remote bookmarks: ${c}`)}try{await this._restoreStateFromUrlOrBookmark()}catch(c){Qe(c.toString())}this.storeHelper.subscribe(()=>{this._updateStateToUrl()}),window.addEventListener("hashchange",()=>this._restoreStateFromUrl().catch(c=>Qe(c.toString())),!1);const r=ls(()=>this._updateStateToUrl(),500,!1);for(const[,c]of this.genomeSpy.getNamedScaleResolutions())c.isZoomable()&&c.addEventListener("domain",r);const i=this.toolbarRef.value;i.appInitialized=!0;const o=Ke((s=this.genomeSpy.spec.description)!=null?s:[]);this.isFullPage()&&o.length>0&&(document.title="GenomeSpy - "+o);for(const c of this._initializationListeners)c();this._initializationListeners=void 0}async _restoreStateFromUrlOrBookmark(){var i,o;const e=(i=this.config.bookmarks)==null?void 0:i.remote,n=this.globalBookmarkDatabase;if(!await this._restoreStateFromUrl()&&e&&n){const a=(o=e.initialBookmark)!=null?o:e.tour&&(await n.getNames())[0];if(a){const s=await n.get(a);if(!s)throw new Error(`No such bookmark: ${a}`);e.tour?await Bo(s,this,{mode:"tour",database:n,afterTourBookmark:e.afterTourBookmark}):await rd(s,this)}}}_updateStateToUrl(){const e={actions:[],scaleDomains:{}},n=this.provenance.getBookmarkableActionHistory();n!=null&&n.length&&(e.actions=n);for(const[o,a]of this.genomeSpy.getNamedScaleResolutions().entries())a.isZoomed()||(e.scaleDomains[o]=a.getComplexDomain());const r=this.storeHelper.state.viewSettings;Object.keys(r.visibilities).length&&(e.viewSettings=r);const i=e.actions.length||Object.keys(e.scaleDomains).length||e.viewSettings?tb(e):"";window.history.replaceState(void 0,document.title,window.location.pathname+window.location.search+i)}async _restoreStateFromUrl(){var r,i;const e=window.location.hash,n=(r=e.match(/^#bookmark:(.+)$/))==null?void 0:r[1];if(n){const o=(i=this.config.bookmarks)==null?void 0:i.remote,a=this.globalBookmarkDatabase;if(o&&a){const s=(await a.getNames()).find(c=>c.replaceAll(" ","-")==n);if(s){const c=await a.get(s);if(!c)throw new Error(`No such bookmark: ${s}`);return await Bo(c,this,{mode:"tour",database:a}),!0}else throw new Error(`No such bookmark: ${n}`)}}if(e&&e.length>0)try{const o=UN(e);return Bo(o,this,{mode:"shared"}),!0}catch(o){console.error(o),Qe(D`<p>Cannot restore the state:</p><p>${o}</p>`)}return!1}_configureContainer(){this.isFullPage()?(this.appContainer.style.margin="0",this.appContainer.style.padding="0",this.appContainer.style.overflow="hidden",tk(g5)):this.appContainer.style.position="relative"}getSampleView(){var n;if(!((n=this.genomeSpy)!=null&&n.viewRoot))return;let e;return this.genomeSpy.viewRoot.visit(r=>{if(r instanceof Vf)return e=r,Kn}),e}}function tk(t){const e=document.querySelector("head"),n=document.createElement("link");n.setAttribute("rel","shortcut icon"),n.setAttribute("href",t),e.appendChild(n)}async function nk(t,e,n={}){var o,a,s;let r;if(ee(t)){if(r=document.querySelector(t),!r)throw new Error(`No such element: ${t}`)}else if(t instanceof HTMLElement)r=t;else throw new Error(`Invalid element: ${t}`);let i;try{const c=Re(e)?e:await ob(e);(o=c.baseUrl)!=null||(c.baseUrl=""),(a=c.width)!=null||(c.width="container"),(s=c.padding)!=null||(c.padding=10);const u=new ib(r,c,n);i=u.genomeSpy,rk(i,n),await u.launch()}catch(c){r.innerText=c.toString(),console.error(c)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(c,u){const f=i._eventListeners;let l=f.get(c);l||(l=new Set,f.set(c,l)),l.add(u)},removeEventListener(c,u){var l;(l=i._eventListeners.get(c))==null||l.delete(u)},getScaleResolutionByName(c){return i.getNamedScaleResolutions().get(c)}}}function rk(t,e){e.namedDataProvider&&t.registerNamedDataProvider(e.namedDataProvider)}async function ob(t){let e;try{e=JSON.parse(await Di().load(t))}catch(n){throw new Error(`Could not load or parse configuration: ${t}, reason: ${n.message}`)}if(!e.baseUrl){const n=t.match(/^[^?#]*\//);e.baseUrl=n&&n[0]||"./"}return e}j.GenomeSpy=Zg,j.GenomeSpyApp=ib,j.embed=nk,j.html=D,j.icon=_v,j.loadSpec=ob,Object.defineProperties(j,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
2166
+ */const F2=t=>!_9(t)&&typeof t.then=="function";class uk extends T2{constructor(){super(...arguments),this._$Cwt=1073741823,this._$Cyt=[],this._$CG=new sk(this),this._$CK=new ck}render(...e){var n;return(n=e.find(r=>!F2(r)))!==null&&n!==void 0?n:xe}update(e,n){const r=this._$Cyt;let i=r.length;this._$Cyt=n;const o=this._$CG,a=this._$CK;this.isConnected||this.disconnected();for(let s=0;s<n.length&&!(s>this._$Cwt);s++){const c=n[s];if(!F2(c))return this._$Cwt=s,c;s<i&&c===r[s]||(this._$Cwt=1073741823,i=0,Promise.resolve(c).then(async u=>{for(;a.get();)await a.get();const f=o.deref();if(f!==void 0){const l=f._$Cyt.indexOf(c);l>-1&&l<f._$Cwt&&(f._$Cwt=l,f.setValue(u))}}))}return xe}disconnected(){this._$CG.disconnect(),this._$CK.pause()}reconnected(){this._$CG.reconnect(this),this._$CK.resume()}}const lk=Yr(uk);var fk={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function z2(t){return t.replace(RegExp("^"+(t.match(/^(\t| )+/)||"")[0],"gm"),"")}function No(t){return(t+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function qf(t,e){var n,r,i,o,a,s=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,c=[],u="",f=e||{},l=0;function d(p){var m=fk[p[1]||""],y=c[c.length-1]==p;return m?m[1]?(y?c.pop():c.push(p),m[0|y]):m[0]:p}function h(){for(var p="";c.length;)p+=d(c[c.length-1]);return p}for(t=t.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(p,m,y){return f[m.toLowerCase()]=y,""}).replace(/^\n+|\n+$/g,"");i=s.exec(t);)r=t.substring(l,i.index),l=s.lastIndex,n=i[0],r.match(/[^\\](\\\\)*\\$/)||((a=i[3]||i[4])?n='<pre class="code '+(i[4]?"poetry":i[2].toLowerCase())+'"><code'+(i[2]?' class="language-'+i[2].toLowerCase()+'"':"")+">"+z2(No(a).replace(/^\n+|\n+$/g,""))+"</code></pre>":(a=i[6])?(a.match(/\./)&&(i[5]=i[5].replace(/^\d+/gm,"")),o=qf(z2(i[5].replace(/^\s*[>*+.-]/gm,""))),a==">"?a="blockquote":(a=a.match(/\./)?"ol":"ul",o=o.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),n="<"+a+">"+o+"</"+a+">"):i[8]?n='<img src="'+No(i[8])+'" alt="'+No(i[7])+'">':i[10]?(u=u.replace("<a>",'<a href="'+No(i[11]||f[r.toLowerCase()])+'">'),n=h()+"</a>"):i[9]?n="<a>":i[12]||i[14]?n="<"+(a="h"+(i[14]?i[14].length:i[13]>"="?1:2))+">"+qf(i[12]||i[15],f)+"</"+a+">":i[16]?n="<code>"+No(i[16])+"</code>":(i[17]||i[1])&&(n=d(i[17]||"--"))),u+=r,u+=n;return(u+t.substring(l)+h()).replace(/^\n+|\n+$/g,"")}function R2(t,e){return!e||/^(data:|([A-Za-z]+:)?\/\/)/.test(t)||t.startsWith("/")?t:(e.endsWith("/")||(e+="/"),e+t)}function dk(t,e={}){const n=qf(t),r=new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>${n}</div></body></html>`,"text/html");r.normalize(),j2(r.body);for(const o of r.querySelectorAll("a[href]"))o.setAttribute("target","blank"),o.setAttribute("rel","noopener noreferrer"),o.setAttribute("href",R2(o.getAttribute("href"),e.baseUrl));for(const o of r.querySelectorAll("img[src]"))o.setAttribute("src",R2(o.getAttribute("src"),e.baseUrl));const i=r.body.removeChild(r.querySelector("body > div"));return i.className="snarkdown",i}function j2(t){if(t.nodeType!==3){if(t.nodeType!==1||/^(script|iframe|object|embed|svg)$/i.test(t.tagName))return t.remove();for(let e=t.attributes.length;e--;){const n=t.attributes[e].name;/^(class|id|name|href|src|alt|align|valign|(on[a-z]+))$/i.test(n)||t.attributes.removeNamedItem(n)}for(let e=t.childNodes.length;e--;)j2(t.childNodes[e])}}function hk(t){t.stopPropagation(),t.preventDefault();const n=t.target.parentElement,r=n.parentElement,o=r.parentElement.querySelector(".panes"),a=[...r.children].findIndex(s=>s==n);for(const s of r.children)s.classList.remove("active-tab");for(const s of o.children)s.classList.remove("active-tab");r.children.item(a).classList.add("active-tab"),o.children.item(a).classList.add("active-tab")}var Kf={exports:{}};(function(t){var e=function(){var n=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",o={};function a(c,u){if(!o[c]){o[c]={};for(var f=0;f<c.length;f++)o[c][c.charAt(f)]=f}return o[c][u]}var s={compressToBase64:function(c){if(c==null)return"";var u=s._compress(c,6,function(f){return r.charAt(f)});switch(u.length%4){default:case 0:return u;case 1:return u+"===";case 2:return u+"==";case 3:return u+"="}},decompressFromBase64:function(c){return c==null?"":c==""?null:s._decompress(c.length,32,function(u){return a(r,c.charAt(u))})},compressToUTF16:function(c){return c==null?"":s._compress(c,15,function(u){return n(u+32)})+" "},decompressFromUTF16:function(c){return c==null?"":c==""?null:s._decompress(c.length,16384,function(u){return c.charCodeAt(u)-32})},compressToUint8Array:function(c){for(var u=s.compress(c),f=new Uint8Array(u.length*2),l=0,d=u.length;l<d;l++){var h=u.charCodeAt(l);f[l*2]=h>>>8,f[l*2+1]=h%256}return f},decompressFromUint8Array:function(c){if(c==null)return s.decompress(c);for(var u=new Array(c.length/2),f=0,l=u.length;f<l;f++)u[f]=c[f*2]*256+c[f*2+1];var d=[];return u.forEach(function(h){d.push(n(h))}),s.decompress(d.join(""))},compressToEncodedURIComponent:function(c){return c==null?"":s._compress(c,6,function(u){return i.charAt(u)})},decompressFromEncodedURIComponent:function(c){return c==null?"":c==""?null:(c=c.replace(/ /g,"+"),s._decompress(c.length,32,function(u){return a(i,c.charAt(u))}))},compress:function(c){return s._compress(c,16,function(u){return n(u)})},_compress:function(c,u,f){if(c==null)return"";var l,d,h={},p={},m="",y="",g="",x=2,A=3,C=2,v=[],b=0,w=0,E;for(E=0;E<c.length;E+=1)if(m=c.charAt(E),Object.prototype.hasOwnProperty.call(h,m)||(h[m]=A++,p[m]=!0),y=g+m,Object.prototype.hasOwnProperty.call(h,y))g=y;else{if(Object.prototype.hasOwnProperty.call(p,g)){if(g.charCodeAt(0)<256){for(l=0;l<C;l++)b=b<<1,w==u-1?(w=0,v.push(f(b)),b=0):w++;for(d=g.charCodeAt(0),l=0;l<8;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}else{for(d=1,l=0;l<C;l++)b=b<<1|d,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=0;for(d=g.charCodeAt(0),l=0;l<16;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}x--,x==0&&(x=Math.pow(2,C),C++),delete p[g]}else for(d=h[g],l=0;l<C;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1;x--,x==0&&(x=Math.pow(2,C),C++),h[y]=A++,g=String(m)}if(g!==""){if(Object.prototype.hasOwnProperty.call(p,g)){if(g.charCodeAt(0)<256){for(l=0;l<C;l++)b=b<<1,w==u-1?(w=0,v.push(f(b)),b=0):w++;for(d=g.charCodeAt(0),l=0;l<8;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}else{for(d=1,l=0;l<C;l++)b=b<<1|d,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=0;for(d=g.charCodeAt(0),l=0;l<16;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1}x--,x==0&&(x=Math.pow(2,C),C++),delete p[g]}else for(d=h[g],l=0;l<C;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1;x--,x==0&&(x=Math.pow(2,C),C++)}for(d=2,l=0;l<C;l++)b=b<<1|d&1,w==u-1?(w=0,v.push(f(b)),b=0):w++,d=d>>1;for(;;)if(b=b<<1,w==u-1){v.push(f(b));break}else w++;return v.join("")},decompress:function(c){return c==null?"":c==""?null:s._decompress(c.length,32768,function(u){return c.charCodeAt(u)})},_decompress:function(c,u,f){var l=[],d=4,h=4,p=3,m="",y=[],g,x,A,C,v,b,w,E={val:f(0),position:u,index:1};for(g=0;g<3;g+=1)l[g]=g;for(A=0,v=Math.pow(2,2),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;switch(A){case 0:for(A=0,v=Math.pow(2,8),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;w=n(A);break;case 1:for(A=0,v=Math.pow(2,16),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;w=n(A);break;case 2:return""}for(l[3]=w,x=w,y.push(w);;){if(E.index>c)return"";for(A=0,v=Math.pow(2,p),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;switch(w=A){case 0:for(A=0,v=Math.pow(2,8),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;l[h++]=n(A),w=h-1,d--;break;case 1:for(A=0,v=Math.pow(2,16),b=1;b!=v;)C=E.val&E.position,E.position>>=1,E.position==0&&(E.position=u,E.val=f(E.index++)),A|=(C>0?1:0)*b,b<<=1;l[h++]=n(A),w=h-1,d--;break;case 2:return y.join("")}if(d==0&&(d=Math.pow(2,p),p++),l[w])m=l[w];else if(w===h)m=x+x.charAt(0);else return null;y.push(m),l[h++]=x+m.charAt(0),d--,x=m,d==0&&(d=Math.pow(2,p),p++)}}};return s}();t!=null&&(t.exports=e)})(Kf);function pk(){const t=typeof process<"u"?require("util").TextEncoder:TextEncoder;return new t}let js;function mk(){let t,e=[];for(let n=0;n<256;n++){t=n;for(let r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e}function gk(t){js!=null||(js=mk());let e=-1;const n=pk().encode(t);for(let r=0;r<n.length;r++)e=e>>>8^js[(e^n[r])&255];return(e^-1)>>>0}function U2(t){return("00000000"+gk(t).toString(16)).slice(-8)}function G2(t){const e=Kf.exports.compressToEncodedURIComponent(JSON.stringify(t));return"#"+e+U2(e)}function yk(t){if(!t||t.length<10)throw new Error("The state string in the URL is too short.");const e=t.slice(1,-8),n=t.slice(-8);if(U2(e)!==n)throw new Error("The state string in the URL is corrupted.");return JSON.parse(Kf.exports.decompressFromEncodedURIComponent(e))}let Qt;function bk(t){for(const e of t.genomeSpy.getNamedScaleResolutions().values())e.isZoomable()&&e.resetZoom();t.storeHelper.dispatch([...t.provenance.isUndoable()?[jt.ActionCreators.jumpToPast(0)]:[],ni.actions.restoreDefaultVisibilities()])}async function Jf(t,e){var n;try{t.actions&&e.provenance.dispatchBookmark(t.actions),e.storeHelper.dispatch(ni.actions.setViewSettings(t.viewSettings));const r=[];for(const[i,o]of Object.entries((n=t.scaleDomains)!=null?n:{})){const a=e.genomeSpy.getNamedScaleResolutions().get(i);a?r.push(a.zoomTo(o)):console.warn(`Cannot restore scale domain. Unknown name: ${i}`)}await Promise.all(r)}catch(r){console.error(r),He(D`<p>Cannot restore the state:</p><p>${r}</p>`),e.provenance.activateState(0)}}async function Lo(t,e,n={}){await Jf(t,e),(Qt||t.notes||n.mode=="shared"&&(t.name||t.notes))&&await vk(t,e,n)}async function vk(t,e,n={}){Qt!=null||(Qt=ir("tour",e.appContainer)),await Ak(t,e,n)}async function Ak(t,e,n){var m;const r=n.database,i=r?await r.getNames():[],o=i.indexOf(t.name),a=r?` ${o+1} of ${i.length}`:"",s=`${n.mode=="shared"?"Shared bookmark":"Bookmark"}${a}: ${(m=t.name)!=null?m:"Unnamed"}`,c=t.notes?dk(t.notes,{baseUrl:e.genomeSpy.spec.baseUrl}):D`<span class="no-notes">No notes provided</span>`,u=async()=>{if(Qt==null||Qt.close(),Qt=void 0,n.mode=="tour"){const y=n.afterTourBookmark;if(typeof y=="string"){const g=await n.database.get(y);if(!g)throw new Error(`No such bookmark: ${y}`);Jf(g,e)}else y===null||bk(e)}},f=async y=>{const g=await r.get(i[y]);Lo(g,e,n),e.appContainer.querySelector("canvas").focus()},l=async()=>{if(await $f(e.localBookmarkDatabase,t,"add"))try{await e.localBookmarkDatabase.put(t)}catch(y){console.warn(y),He(`Cannot import bookmark: ${y}`)}},d=D`<button @click="${u}">${n.mode=="tour"?"End tour":"Close"}</button> ${n.mode=="shared"&&e.localBookmarkDatabase?D`<button @click="${l}">${q(Jg).node[0]} Import bookmark</button>`:R} ${r?D`<button @click="${()=>f(o-1)}" ?disabled="${o<=0}">${q(m5).node[0]} Previous</button> <button @click="${()=>f(o+1)}" ?disabled="${o>=i.length-1}">Next ${q(T5).node[0]}</button>`:R}`,p=D`<button title="Collapse" class="collapse" @click="${y=>y.target.closest(".gs-modal").classList.toggle("collapsed")}">${q(y5).node[0]}</button><div class="modal-title">${s}</div><div class="modal-body markdown" style="max-width:600px">${c}</div><div class="modal-buttons">${d}</div>`;Be(p,Qt.content)}function H2(t,e){const n=JSON.stringify(t,void 0,2),r=window.location,i=r.origin+r.pathname+r.search+(e?"#bookmark:"+t.name.replaceAll(" ","-"):G2(t));He(D`<div class="gs-tabs" style="width:600px"><ul class="tabs" @click="${hk}"><li class="active-tab"><button>URL</button></li><li><button>JSON</button></li></ul><div class="panes"><div class="gs-form-group active-tab"><label for="bookmark-url">Here's a link for you:</label><div class="copy-url"><input id="bookmark-url" type="text" .value="${i}"> <button @click="${a=>navigator.clipboard.writeText(i).then(()=>a.target.dispatchEvent(v6())).catch(()=>He("Failed to copy!"))}">Copy</button></div><small>The bookmark URL contains all the bookmarked data, including the possible notes, which will be shown when the link is opened.</small></div><div class="gs-form-group"><textarea id="bookmark-json" style="height:250px">
2167
+ ${n}</textarea> <small>The JSON-formatted bookmark is currently available for development purposes.</small></div></div></div>`,{title:"Share a bookmark",okLabel:"Close"})}function $f(t,e,n){const r={add:"Add bookmark",edit:"Edit bookmark",share:"Share the current view state as a bookmark"}[n],i=(c,u)=>{var f,l;return D`<div class="modal-title">${r}</div><div class="modal-body" style="width:500px">${n=="edit"?D`<div class="gs-alert warning">${q(v5).node[0]} The current visualization state will be updated to the bookmark you are editing.</div>`:R} ${n=="share"?D`<div class="gs-alert info">${q(e1).node[0]} <span>You can add an optional title and notes, which will be shown to the recipient when the bookmark link is opened.</span></div>`:R}<div class="gs-form-group"><label for="bookmark-title">Title</label> <input id="bookmark-title" type="text" ?required="${n=="add"||n=="edit"}" .value="${(f=e.name)!=null?f:""}" .placeholder="${n=="share"?"Add an optional title":""}" @change="${d=>{e.name=Q2(d.target.value)}}"></div><div class="gs-form-group"><label for="bookmark-notes">Notes</label> <textarea id="bookmark-notes" rows="4" .value="${(l=e.notes)!=null?l:""}" .placeholder="${n=="share"?"... and notes":""}" @change="${d=>{e.notes=Q2(d.target.value)}}"></textarea> <small>Notes will be shown when the bookmark is loaded. You can use <a href="https://www.markdownguide.org/basic-syntax/">markdown</a> for formatting.</small></div></div><div class="modal-buttons"><button class="btn-cancel" @click="${c}">Cancel</button> <button class="btn-primary" @click="${u}">${n=="share"?D`${q(Bl).node[0]} Create a link`:"Save"}</button></div>`},o=e.name,a=()=>!!e.name,s=ir();return new Promise(c=>{const u=()=>{s.close(),c(!1)},f=async()=>{if(!a()){He("Name is missing!",{title:"Error"});return}let d=!0;t&&!(n&&e.name==o)&&await t.get(e.name)&&(d=await He(D`A bookmark with the name <em>${e.name}</em> already exists. It will be overwritten.`,{title:"Bookmark already exists",cancelButton:!0})),d&&(s.close(),c(!0))},l=()=>{s.close(),c(!0)};Be(i(u,n=="share"?l:f),s.content),s.content.querySelector("#bookmark-title").focus()})}function Q2(t){if(t!==void 0&&(t=t.trim(),t.length))return t}class xk extends Bt{constructor(){super(),this.app=void 0}connectedCallback(){super.connectedCallback(),this.dispatchEvent(B2("app",e=>{this.app=e}))}createRenderRoot(){return this}_createBookmarkWithCurrentState(){const e={name:void 0,timestamp:Date.now(),actions:this.app.provenance.getBookmarkableActionHistory(),scaleDomains:{}},n=this.app.storeHelper.state.viewSettings;Object.keys(n.visibilities).length&&(e.viewSettings=n);for(const[r,i]of this.app.genomeSpy.getNamedScaleResolutions().entries())i.isZoomable()&&(e.scaleDomains[r]=i.getComplexDomain());return e}async _shareCurrentState(){const e=this._createBookmarkWithCurrentState();await $f(void 0,e,"share")&&H2(e,!1)}async _addBookmark(e,n){var a,s;const r=n?await e.get(n):void 0,i=!!r,o=this._createBookmarkWithCurrentState();if((a=o.name)!=null||(o.name=r==null?void 0:r.name),(s=o.notes)!=null||(o.notes=r==null?void 0:r.notes),await $f(e,o,i?"edit":"add"))try{await e.put(o,r==null?void 0:r.name),this.requestUpdate()}catch(c){He(`${c}`,{title:"Cannot save the bookmark!"})}}async _loadBookmark(e,n){const r=await e.get(n);r&&Lo(r,this.app,{database:e})}_createContextMenu(e,n,r){r.stopPropagation();const i=r.target.closest("li"),o=()=>He(D`The bookmark <em>${n}</em> will be deleted.`,{title:"Are you sure?",cancelButton:!0}).then(async c=>{c&&(await e.delete(n),this.requestUpdate())}),a=[],s=e==this.app.globalBookmarkDatabase;s||(a.push({label:"Edit and replace...",icon:N5,callback:()=>this._addBookmark(e,n)}),a.push({label:"Delete",icon:O5,callback:o})),a.push({label:"Share...",icon:Bl,callback:async()=>H2(await e.get(n),s)}),wy({items:a},i,"right-start")}async _makeBookmarkMenuItems(e,n){const i=(await e.getNames()).map(o=>({label:o,callback:()=>this._loadBookmark(e,o),ellipsisCallback:a=>this._createContextMenu(e,o,a)}));return i.length?[{type:"divider"},{label:n,type:"header"},...i].map(o=>Ay(o)):R}_getBookmarks(){const e=(n,r)=>n?lk(this._makeBookmarkMenuItems(n,r),D`Loading...`):R;return[e(this.app.globalBookmarkDatabase,"Bookmarks on the server"),e(this.app.localBookmarkDatabase,"Bookmarks in the web browser")]}render(){const e=this.app.localBookmarkDatabase,n=e?D`<li><a @click="${()=>this._addBookmark(e)}">Add bookmark...</a></li>`:R,r=e||this.app.globalBookmarkDatabase?D`<div class="dropdown bookmark-dropdown"><button class="tool-btn" title="Bookmarks" @click="${i=>{Xf(i)&&this.requestUpdate()}}">${q(Jg).node[0]}</button><ul class="gs-dropdown-menu">${n} ${this._getBookmarks()}</ul></div>`:R;return D`<div class="btn-group">${r} <button class="tool-btn" title="Share" @click="${()=>this._shareCurrentState()}">${q(Bl).node[0]}</button></div>`}}customElements.define("genome-spy-bookmark-button",xk);class wk extends Bt{constructor(){super(),this.app=void 0,this.appInitialized=!1}static get properties(){return{app:{type:Object},appInitialized:{type:Boolean}}}createRenderRoot(){return this}_getToolButtons(){const e=this.app.getSampleView(),n=this.app.provenance,r=[];n.isEnabled()&&r.push(D`<genome-spy-provenance-buttons .provenance="${n}"></genome-spy-provenance-buttons>`),r.push(D`<genome-spy-view-visibility></genome-spy-view-visibility>`),e&&r.push(D`<button class="tool-btn" title="Peek (E)" @click="${()=>e._togglePeek()}">${q(z5).node[0]}</button>`),r.push(D`<genome-spy-bookmark-button></genome-spy-bookmark-button>`);const i=this.app.config.description?qe(this.app.config.description):[];return i.length>1&&r.push(D`<button class="tool-btn" title="Show a description of the visualization" @click="${()=>He(D`${i.slice(1).map(o=>D`<p>${o}</p>`)}`,{title:i[0]})}">${q(e1).node[0]}</button>`),i.length>0&&r.push(D`<span class="vis-title">${i[0]}</span>`),r.push(D`<span class="spacer"></span> ${this.app.appContainer.requestFullscreen?D`<button class="tool-btn" title="Fullscreen" @click="${()=>this.app.toggleFullScreen()}">${q(k5).node[0]}</button>`:R} <button class="tool-btn" title="Help" @click="${()=>window.open("https://genomespy.app/docs/","_blank")}">${q(w5).node[0]}</button>`),r}render(){const e=this.app.genomeSpy;return D`<nav class="gs-toolbar"><a href="https://genomespy.app" target="_blank" class="logo"><img title="GenomeSpy" alt="GenomeSpy" src="${L2}"> </a>${this.appInitialized&&N2(e.viewRoot)?D`<genome-spy-search-field .genomeSpy="${e}"></genome-spy-search-field>`:R} ${this._getToolButtons()}</nav>`}}customElements.define("genome-spy-toolbar",wk);class Ck{constructor(e){this.storeHelper=e,this._reducers={},this.actionInfoSources=[],this._reducer=void 0,e.addReducer("provenance",(n,r)=>this._reducer?this._reducer(n,r):n!=null?n:{})}addReducer(e,n){this._reducers[e]=n;const r=o=>Object.keys(this._reducers).some(a=>o.type.startsWith(a)),i=(o,a)=>r(a)?a:o!=null?o:null;this._reducer=Y6(Bf({...this._reducers,lastAction:i}),{ignoreInitialState:!0,filter:r}),this.storeHelper.dispatch({type:"@@redux/REPLACE"+Math.random().toString(36).substring(7).split("").join(".")})}get _storeState(){return this.storeHelper.store.getState()}get _provenanceState(){return this._storeState.provenance}isEnabled(){return!!this.getPresentState()}getPresentState(){return this._provenanceState.present}addActionInfoSource(e){this.actionInfoSources.push(e)}getActionInfo(e){for(const n of this.actionInfoSources){const r=n(e);if(r)return r}}dispatchBookmark(e){this.storeHelper.dispatch([...this.isUndoable()?[jt.ActionCreators.jumpToPast(0)]:[],...e])}isRedoable(){return this.isEnabled()&&this._provenanceState.future.length>0}redo(){this.storeHelper.dispatch(jt.ActionCreators.redo())}isUndoable(){return this.isEnabled()&&this._provenanceState.past.length>0}undo(){this.storeHelper.dispatch(jt.ActionCreators.undo())}isAtInitialState(){return!this.isUndoable()}isEmpty(){const e=this._provenanceState;return!this.isEnabled()||e.past.length+e.future.length<=0}activateState(e){const n=this.getCurrentIndex();e<n?this.storeHelper.dispatch(jt.ActionCreators.jumpToPast(e)):e>n&&this.storeHelper.dispatch(jt.ActionCreators.jumpToFuture(e-n-1))}getCurrentIndex(){var e;return(e=this._provenanceState.past)==null?void 0:e.length}getActionHistory(){const e=this._provenanceState;return e.present&&[...e.past,e.present].map(n=>n.lastAction)}getFullActionHistory(){const e=this._provenanceState;return[...e.past,e.present,...e.future].map(n=>n.lastAction)}getBookmarkableActionHistory(){var e;return(e=this.getActionHistory())==null?void 0:e.slice(1)}}function*Sk(t,e=n=>+n){const n=t.length,r=new fo,i=new Array(n).fill(0);for(const[a,s]of t.entries())s.length&&r.push(a,e(s[0]));let o=0;for(;(o=r.pop())!==void 0;){const a=t[o];let s=i[o];if(yield a[s++],s<a.length){const u=e(a[s]);r.push(o,u),i[o]=s}}}const Ek="sampleCount";class Dk extends se{constructor(e,n){super(),this.view=n;const r=n.context.animator;for(const i of n.getAncestors())i instanceof jf&&(this.provenance=i.provenance,this.provenance.storeHelper.subscribe(o=>r.requestTransition(()=>{this.reset(),this._mergeAndPropagate(Rf(o)),this.complete()})));if(!this.provenance)throw new Error("No SampleView was found!");this.contextObject=void 0}initialize(){this.contextObject=Object.create(super.getGlobalObject());const e=this.view.getEncoding().x;if(Qn(e))this.xAccessor=Z(e.field);else throw new Error("Crash!")}handle(e){}getGlobalObject(){return this.contextObject}_getCollector(){if(this.parent instanceof Qr)return this.parent;throw new Error("MergeFacetsTransform must be a direct child of a Collector")}complete(){this._mergeAndPropagate(this.provenance.getPresentState()[ti]),super.complete()}_mergeAndPropagate(e){const n=[...h2(e.rootGroup)].filter(r=>f2(je(r)));for(const[r,i]of n.entries()){const o=je(i);if(f2(o)){this.contextObject[Ek]=o.samples.length,this.beginBatch({type:"facet",facetId:[r]});const a=o.samples,s=this._getCollector(),c=Sk(a.map(u=>{var f;return(f=s.facetBatches.get([u]))!=null?f:[]}),this.xAccessor);for(const u of c)this._propagate(u)}}this._updateScales()}setParent(e){super.setParent(e)}_updateScales(){const e=new Set;this.view.visit(n=>{if(n instanceof ye&&n.mark.encoding.y){const r=n.getScaleResolution("y");r&&e.add(r)}});for(const n of e)n.reconfigure()}}var Mk="BATCHING_REDUCER.BATCH";function Tk(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Mk;return{type:e,meta:{batch:!0},payload:t}}function Ik(t){return function e(n,r){return r&&r.meta&&r.meta.batch?r.payload.reduce(e,n):t(n,r)}}class kk{constructor(e){this._reducers=e!=null?e:{},this.store=a9({reducer:{}}),this._listeners=new Set,this.store.subscribe(()=>{const n=this.store.getState();for(const r of this._listeners)r(n)})}get state(){return this.store.getState()}addReducer(e,n){this._reducers[e]=n,this.store.replaceReducer(Ik(Bf(this._reducers)))}subscribe(e){this._listeners.add(e)}unsubscribe(e){this._listeners.delete(e)}dispatch(e){Array.isArray(e)?this.store.dispatch(Tk(e)):this.store.dispatch(e)}getDispatcher(){return e=>this.dispatch(e)}}class Nk extends E2{constructor(e){super(),this.bookmarks=e,this.names=e.map(n=>n.name)}async getNames(){return this.names}async get(e){return this.bookmarks.find(n=>n.name==e)}}Ig.mergeFacets=Dk;class V2{constructor(e,n,r={}){const i=this;this.config=n,this.storeHelper=new kk,this.storeHelper.addReducer("viewSettings",ni.reducer),this.provenance=new Ck(this.storeHelper),this._initializationListeners=[],this.toolbarRef=I2(),this.appContainer=e,this._configureContainer(),this.localBookmarkDatabase=typeof n.specId=="string"?new Y9(n.specId):void 0,this.globalBookmarkDatabase=void 0,Be(D`<div class="genome-spy-app"><genome-spy-toolbar ${k2(i.toolbarRef)} .app="${i}"></genome-spy-toolbar><div class="genome-spy-container"></div></div>`,i.appContainer),i.appContainer.querySelector(".genome-spy-app").addEventListener("query-dependency",s=>{s.detail.name=="app"&&(s.detail.setter(i),s.stopPropagation())});const o=s=>this.appContainer.getElementsByClassName(s)[0];this.genomeSpy=new Vg(o("genome-spy-container"),this.config,r),this.genomeSpy.viewFactory.addViewType(B9,(s,c,u,f)=>new jf(s,c,u,f,this.provenance));const a=this.genomeSpy.viewVisibilityPredicate;this.genomeSpy.viewVisibilityPredicate=s=>{var c,u;return(u=(c=this.storeHelper.state.viewSettings)==null?void 0:c.visibilities[s.name])!=null?u:a(s)}}addInitializationListener(e){this._initializationListeners?this._initializationListeners.push(e):e()}toggleFullScreen(){document.fullscreenElement?document.exitFullscreen&&document.exitFullscreen():this.appContainer.requestFullscreen()}isFullPage(){return this.appContainer==document.body}async launch(){var a,s;const e=(a=this.config.bookmarks)!=null&&a.remote?Ci({baseURL:this.config.baseUrl}).load(this.config.bookmarks.remote.url).then(c=>Promise.resolve(JSON.parse(c))):Promise.resolve([]);if(!await this.genomeSpy.launch())return;this.appContainer.querySelector("canvas").setAttribute("tabindex","-1"),this.storeHelper.subscribe(zs(c=>{var u;return(u=c.viewSettings)==null?void 0:u.visibilities},(c,u)=>{var l,d;this.genomeSpy.viewRoot._invalidateCacheByPrefix("size","progeny"),(d=(l=this.getSampleView())==null?void 0:l.summaryViews)==null||d._invalidateCacheByPrefix("size","self");const f=this.genomeSpy.viewRoot.context;f.requestLayoutReflow(),f.animator.requestRender()},this.storeHelper.store.getState()));try{const c=await e;c.length&&(this.globalBookmarkDatabase=new Nk(c))}catch(c){throw new Error(`Cannot load remote bookmarks: ${c}`)}try{await this._restoreStateFromUrlOrBookmark()}catch(c){He(c.toString())}this.storeHelper.subscribe(()=>{this._updateStateToUrl()}),window.addEventListener("hashchange",()=>this._restoreStateFromUrl().catch(c=>He(c.toString())),!1);const r=cs(()=>this._updateStateToUrl(),500,!1);for(const[,c]of this.genomeSpy.getNamedScaleResolutions())c.isZoomable()&&c.addEventListener("domain",r);const i=this.toolbarRef.value;i.appInitialized=!0;const o=qe((s=this.genomeSpy.spec.description)!=null?s:[]);this.isFullPage()&&o.length>0&&(document.title="GenomeSpy - "+o);for(const c of this._initializationListeners)c();this._initializationListeners=void 0}async _restoreStateFromUrlOrBookmark(){var i,o;const e=(i=this.config.bookmarks)==null?void 0:i.remote,n=this.globalBookmarkDatabase;if(!await this._restoreStateFromUrl()&&e&&n){const a=(o=e.initialBookmark)!=null?o:e.tour&&(await n.getNames())[0];if(a){const s=await n.get(a);if(!s)throw new Error(`No such bookmark: ${a}`);e.tour?await Lo(s,this,{mode:"tour",database:n,afterTourBookmark:e.afterTourBookmark}):await Jf(s,this)}}}_updateStateToUrl(){const e={actions:[],scaleDomains:{}},n=this.provenance.getBookmarkableActionHistory();n!=null&&n.length&&(e.actions=n);for(const[o,a]of this.genomeSpy.getNamedScaleResolutions().entries())a.isZoomed()||(e.scaleDomains[o]=a.getComplexDomain());const r=this.storeHelper.state.viewSettings;Object.keys(r.visibilities).length&&(e.viewSettings=r);const i=e.actions.length||Object.keys(e.scaleDomains).length||e.viewSettings?G2(e):"";window.history.replaceState(void 0,document.title,window.location.pathname+window.location.search+i)}async _restoreStateFromUrl(){var r,i;const e=window.location.hash,n=(r=e.match(/^#bookmark:(.+)$/))==null?void 0:r[1];if(n){const o=(i=this.config.bookmarks)==null?void 0:i.remote,a=this.globalBookmarkDatabase;if(o&&a){const s=(await a.getNames()).find(c=>c.replaceAll(" ","-")==n);if(s){const c=await a.get(s);if(!c)throw new Error(`No such bookmark: ${s}`);return await Lo(c,this,{mode:"tour",database:a}),!0}else throw new Error(`No such bookmark: ${n}`)}}if(e&&e.length>0)try{const o=yk(e);return Lo(o,this,{mode:"shared"}),!0}catch(o){console.error(o),He(D`<p>Cannot restore the state:</p><p>${o}</p>`)}return!1}_configureContainer(){this.isFullPage()?(this.appContainer.style.margin="0",this.appContainer.style.padding="0",this.appContainer.style.overflow="hidden",Lk(n5)):this.appContainer.style.position="relative"}getSampleView(){var n;if(!((n=this.genomeSpy)!=null&&n.viewRoot))return;let e;return this.genomeSpy.viewRoot.visit(r=>{if(r instanceof jf)return e=r,qn}),e}}function Lk(t){const e=document.querySelector("head"),n=document.createElement("link");n.setAttribute("rel","shortcut icon"),n.setAttribute("href",t),e.appendChild(n)}async function Bk(t,e,n={}){var o,a,s;let r;if(ee(t)){if(r=document.querySelector(t),!r)throw new Error(`No such element: ${t}`)}else if(t instanceof HTMLElement)r=t;else throw new Error(`Invalid element: ${t}`);let i;try{const c=ze(e)?e:await Y2(e);(o=c.baseUrl)!=null||(c.baseUrl=""),(a=c.width)!=null||(c.width="container"),(s=c.padding)!=null||(c.padding=10);const u=new V2(r,c,n);i=u.genomeSpy,Ok(i,n),await u.launch()}catch(c){r.innerText=c.toString(),console.error(c)}return{finalize(){for(i.destroy();r.firstChild;)r.firstChild.remove()},addEventListener(c,u){const f=i._eventListeners;let l=f.get(c);l||(l=new Set,f.set(c,l)),l.add(u)},removeEventListener(c,u){var l;(l=i._eventListeners.get(c))==null||l.delete(u)},getScaleResolutionByName(c){return i.getNamedScaleResolutions().get(c)}}}function Ok(t,e){e.namedDataProvider&&t.registerNamedDataProvider(e.namedDataProvider)}async function Y2(t){let e;try{e=JSON.parse(await Ci().load(t))}catch(n){throw new Error(`Could not load or parse configuration: ${t}, reason: ${n.message}`)}if(!e.baseUrl){const n=t.match(/^[^?#]*\//);e.baseUrl=n&&n[0]||"./"}return e}j.GenomeSpy=Vg,j.GenomeSpyApp=V2,j.embed=Bk,j.html=D,j.icon=L2,j.loadSpec=Y2,Object.defineProperties(j,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});